vanilla-breeze 0.4.0 → 0.5.0
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.
- package/custom-elements.json +13966 -11505
- package/dist/cdn/components/accordion-wc.js +1 -1
- package/dist/cdn/components/activity-feed.js +1 -1
- package/dist/cdn/components/ai-chat.js +9 -6
- package/dist/cdn/components/ai-summary.js +4 -2
- package/dist/cdn/components/analytics-panel.js +19 -21
- package/dist/cdn/components/audio-player.js +17 -7
- package/dist/cdn/components/audio-visualizer.js +3 -3
- package/dist/cdn/components/author-index.js +2 -2
- package/dist/cdn/components/brand-mark.js +1 -1
- package/dist/cdn/components/bread-crumb.js +1 -1
- package/dist/cdn/components/calendar-wc.js +2 -2
- package/dist/cdn/components/card-list.js +1 -1
- package/dist/cdn/components/carousel-wc.js +1 -1
- package/dist/cdn/components/change-set.js +1 -11
- package/dist/cdn/components/chart-wc.js +32 -32
- package/dist/cdn/components/chat-input.js +1 -1
- package/dist/cdn/components/chat-window.js +1 -1
- package/dist/cdn/components/color-picker.js +1 -1
- package/dist/cdn/components/combo-box.js +1 -1
- package/dist/cdn/components/command-palette.js +1 -1
- package/dist/cdn/components/comment-box.js +49 -49
- package/dist/cdn/components/comment-thread.js +32 -32
- package/dist/cdn/components/comment-wc.js +1 -1
- package/dist/cdn/components/compare-surface.js +1 -1
- package/dist/cdn/components/consent-banner.js +1 -1
- package/dist/cdn/components/content-lens.js +1 -1
- package/dist/cdn/components/content-swap.js +1 -1
- package/dist/cdn/components/context-menu.js +1 -1
- package/dist/cdn/components/data-table.js +1 -1
- package/dist/cdn/components/date-picker.js +1 -1
- package/dist/cdn/components/day-view.js +1 -1
- package/dist/cdn/components/diagram-wc.js +2 -2
- package/dist/cdn/components/drag-surface.js +1 -1
- package/dist/cdn/components/drop-down.js +1 -1
- package/dist/cdn/components/emoji-picker.js +1 -1
- package/dist/cdn/components/flow-diagram.js +1 -1
- package/dist/cdn/components/foot-notes.js +1 -1
- package/dist/cdn/components/form-field.js +1 -1
- package/dist/cdn/components/geo-map.js +4 -4
- package/dist/cdn/components/glossary-index.js +1 -1
- package/dist/cdn/components/glossary-wc.js +1 -1
- package/dist/cdn/components/heading-links.js +1 -1
- package/dist/cdn/components/highlight-wc.js +2 -2
- package/dist/cdn/components/image-gallery.js +1 -1
- package/dist/cdn/components/image-map.js +1 -1
- package/dist/cdn/components/include-file.js +1 -1
- package/dist/cdn/components/manifest.json +100 -100
- package/dist/cdn/components/markdown-editor.js +1 -1
- package/dist/cdn/components/markdown-viewer.js +11 -11
- package/dist/cdn/components/nav-bar.js +1 -1
- package/dist/cdn/components/note-wc.js +2 -2
- package/dist/cdn/components/notification-wc.js +4 -4
- package/dist/cdn/components/page-info.js +2 -2
- package/dist/cdn/components/page-stats.js +1 -1
- package/dist/cdn/components/page-toc.js +1 -1
- package/dist/cdn/components/page-tools.js +1 -1
- package/dist/cdn/components/page-tour.js +5 -5
- package/dist/cdn/components/pager-wc.js +1 -1
- package/dist/cdn/components/poll-wc.js +1 -1
- package/dist/cdn/components/pop-over.js +1 -1
- package/dist/cdn/components/popularity-index.js +4 -4
- package/dist/cdn/components/print-page.js +1 -1
- package/dist/cdn/components/progress-tracker.js +1 -1
- package/dist/cdn/components/qr-code.js +1 -1
- package/dist/cdn/components/reaction-bar.js +1 -1
- package/dist/cdn/components/reader-view.js +3 -3
- package/dist/cdn/components/reading-progress.js +1 -1
- package/dist/cdn/components/recently-visited.js +7 -7
- package/dist/cdn/components/score-card.js +2 -2
- package/dist/cdn/components/selection-menu.js +1 -1
- package/dist/cdn/components/settings-panel.js +4 -4
- package/dist/cdn/components/share-wc.js +2 -2
- package/dist/cdn/components/short-cuts.js +1 -1
- package/dist/cdn/components/site-index.js +6 -6
- package/dist/cdn/components/site-map.js +1 -1
- package/dist/cdn/components/site-search.js +3 -3
- package/dist/cdn/components/slide-accept.js +1 -1
- package/dist/cdn/components/social-embed.js +1 -1
- package/dist/cdn/components/split-surface.js +1 -1
- package/dist/cdn/components/star-rating.js +1 -1
- package/dist/cdn/components/status-wc.js +1 -1
- package/dist/cdn/components/stepper-wc.js +1 -1
- package/dist/cdn/components/tab-set.js +1 -1
- package/dist/cdn/components/text-reader.js +2 -2
- package/dist/cdn/components/theme-picker.js +44 -44
- package/dist/cdn/components/time-index.js +2 -2
- package/dist/cdn/components/time-picker.js +1 -1
- package/dist/cdn/components/toast-msg.js +1 -1
- package/dist/cdn/components/tool-tip.js +1 -1
- package/dist/cdn/components/topic-map.js +3 -3
- package/dist/cdn/components/trust-filter.js +3 -3
- package/dist/cdn/components/version-switcher.js +3 -13
- package/dist/cdn/components/video-player.js +1 -1
- package/dist/cdn/components/watch-wc.js +2 -2
- package/dist/cdn/components/week-view.js +1 -1
- package/dist/cdn/components/youtube-player.js +1 -1
- package/dist/cdn/packs/effects.full.js +1 -1
- package/dist/cdn/packs/kawaii.effects.css +1 -1
- package/dist/cdn/packs/kawaii.full.css +1 -1
- package/dist/cdn/packs/kawaii.full.js +4 -4
- package/dist/cdn/packs/manifest.json +7 -7
- package/dist/cdn/packs/memphis.full.css +1 -1
- package/dist/cdn/packs/memphis.theme.css +1 -1
- package/dist/cdn/packs/ui.full.js +46 -46
- package/dist/cdn/themes/8bit.css +1 -1
- package/dist/cdn/themes/8bit.tokens.json +1 -1
- package/dist/cdn/themes/alpha1999-dark.tokens.json +1 -1
- package/dist/cdn/themes/alpha1999.tokens.json +1 -1
- package/dist/cdn/themes/art-deco-dark.tokens.json +33 -1
- package/dist/cdn/themes/art-deco.css +1 -1
- package/dist/cdn/themes/art-deco.tokens.json +23 -1
- package/dist/cdn/themes/bauhaus-dark.tokens.json +23 -1
- package/dist/cdn/themes/bauhaus.css +1 -1
- package/dist/cdn/themes/bauhaus.tokens.json +1 -1
- package/dist/cdn/themes/brutalist-dark.tokens.json +33 -1
- package/dist/cdn/themes/brutalist.css +1 -1
- package/dist/cdn/themes/brutalist.tokens.json +23 -1
- package/dist/cdn/themes/catppuccin-frappe.tokens.json +1 -1
- package/dist/cdn/themes/catppuccin-latte-dark.tokens.json +1 -1
- package/dist/cdn/themes/catppuccin-latte.tokens.json +1 -1
- package/dist/cdn/themes/catppuccin-macchiato.tokens.json +1 -1
- package/dist/cdn/themes/catppuccin-mocha.tokens.json +1 -1
- package/dist/cdn/themes/classic-dark.tokens.json +1 -1
- package/dist/cdn/themes/classic.tokens.json +1 -1
- package/dist/cdn/themes/claymorphism-dark.tokens.json +33 -1
- package/dist/cdn/themes/claymorphism.css +1 -1
- package/dist/cdn/themes/claymorphism.tokens.json +23 -1
- package/dist/cdn/themes/clinical-dark.tokens.json +1 -1
- package/dist/cdn/themes/clinical.tokens.json +1 -1
- package/dist/cdn/themes/cottagecore-dark.tokens.json +1 -1
- package/dist/cdn/themes/cottagecore.css +1 -1
- package/dist/cdn/themes/cottagecore.tokens.json +1 -1
- package/dist/cdn/themes/cyber.css +1 -1
- package/dist/cdn/themes/cyber.tokens.json +1 -1
- package/dist/cdn/themes/dawn-dark.tokens.json +33 -1
- package/dist/cdn/themes/dawn.css +1 -1
- package/dist/cdn/themes/dawn.tokens.json +23 -1
- package/dist/cdn/themes/dracula.tokens.json +1 -1
- package/dist/cdn/themes/dusk.css +1 -1
- package/dist/cdn/themes/dusk.tokens.json +1 -1
- package/dist/cdn/themes/editorial-dark.tokens.json +1 -1
- package/dist/cdn/themes/editorial.css +1 -1
- package/dist/cdn/themes/editorial.tokens.json +1 -1
- package/dist/cdn/themes/financial-dark.tokens.json +1 -1
- package/dist/cdn/themes/financial.tokens.json +1 -1
- package/dist/cdn/themes/genai.css +1 -1
- package/dist/cdn/themes/genai.tokens.json +1 -1
- package/dist/cdn/themes/glassmorphism-dark.tokens.json +1 -1
- package/dist/cdn/themes/glassmorphism.tokens.json +1 -1
- package/dist/cdn/themes/government-dark.tokens.json +1 -1
- package/dist/cdn/themes/government.tokens.json +1 -1
- package/dist/cdn/themes/gruvbox-dark.tokens.json +1 -1
- package/dist/cdn/themes/gruvbox.tokens.json +1 -1
- package/dist/cdn/themes/high-noon-dark.tokens.json +23 -1
- package/dist/cdn/themes/high-noon.css +1 -1
- package/dist/cdn/themes/high-noon.tokens.json +1 -1
- package/dist/cdn/themes/journal-dark.tokens.json +33 -1
- package/dist/cdn/themes/journal.css +1 -1
- package/dist/cdn/themes/journal.tokens.json +23 -1
- package/dist/cdn/themes/kawaii-dark.tokens.json +1 -1
- package/dist/cdn/themes/kawaii.css +1 -1
- package/dist/cdn/themes/kawaii.tokens.json +1 -1
- package/dist/cdn/themes/magna-dark.tokens.json +1 -1
- package/dist/cdn/themes/magna.tokens.json +1 -1
- package/dist/cdn/themes/manifest.json +26 -50
- package/dist/cdn/themes/midnight.tokens.json +1 -1
- package/dist/cdn/themes/minimal-dark.tokens.json +1 -1
- package/dist/cdn/themes/minimal.tokens.json +1 -1
- package/dist/cdn/themes/modern-dark.tokens.json +1 -1
- package/dist/cdn/themes/modern.tokens.json +1 -1
- package/dist/cdn/themes/nes-dark.tokens.json +1 -1
- package/dist/cdn/themes/nes.css +1 -1
- package/dist/cdn/themes/nes.tokens.json +1 -1
- package/dist/cdn/themes/neumorphism-dark.tokens.json +1 -1
- package/dist/cdn/themes/neumorphism.css +1 -1
- package/dist/cdn/themes/neumorphism.tokens.json +1 -1
- package/dist/cdn/themes/nord-dark.tokens.json +33 -1
- package/dist/cdn/themes/nord.css +1 -1
- package/dist/cdn/themes/nord.tokens.json +23 -1
- package/dist/cdn/themes/organic-dark.tokens.json +1 -1
- package/dist/cdn/themes/organic.css +1 -1
- package/dist/cdn/themes/organic.tokens.json +1 -1
- package/dist/cdn/themes/rose-pine-dark.tokens.json +1 -1
- package/dist/cdn/themes/rose-pine.tokens.json +1 -1
- package/dist/cdn/themes/rough-dark.tokens.json +1 -1
- package/dist/cdn/themes/rough.css +1 -1
- package/dist/cdn/themes/rough.tokens.json +1 -1
- package/dist/cdn/themes/solarized-dark.tokens.json +23 -1
- package/dist/cdn/themes/solarized.css +1 -1
- package/dist/cdn/themes/solarized.tokens.json +23 -1
- package/dist/cdn/themes/startup-dark.tokens.json +1 -1
- package/dist/cdn/themes/startup.tokens.json +1 -1
- package/dist/cdn/themes/super2026-dark.tokens.json +33 -1
- package/dist/cdn/themes/super2026.css +1 -1
- package/dist/cdn/themes/super2026.tokens.json +23 -1
- package/dist/cdn/themes/swiss-dark.tokens.json +1 -1
- package/dist/cdn/themes/swiss.css +1 -1
- package/dist/cdn/themes/swiss.tokens.json +1 -1
- package/dist/cdn/themes/terminal.css +1 -1
- package/dist/cdn/themes/terminal.tokens.json +1 -1
- package/dist/cdn/themes/tokyo-night-dark.tokens.json +33 -1
- package/dist/cdn/themes/tokyo-night.css +1 -1
- package/dist/cdn/themes/tokyo-night.tokens.json +23 -1
- package/dist/cdn/themes/vaporwave-dark.tokens.json +33 -1
- package/dist/cdn/themes/vaporwave.css +1 -1
- package/dist/cdn/themes/vaporwave.tokens.json +23 -1
- package/dist/cdn/themes/win9x-dark.tokens.json +15 -4
- package/dist/cdn/themes/win9x.css +1 -1
- package/dist/cdn/themes/win9x.tokens.json +1 -1
- package/dist/cdn/vanilla-breeze-autoload.js +663 -0
- package/dist/cdn/vanilla-breeze-charts.css +1 -1
- package/dist/cdn/vanilla-breeze-charts.js +32 -32
- package/dist/cdn/vanilla-breeze-core.css +1 -1
- package/dist/cdn/vanilla-breeze-core.js +78 -80
- package/dist/cdn/vanilla-breeze-dev.css +1 -1
- package/dist/cdn/vanilla-breeze-extras.js +47 -37
- package/dist/cdn/vanilla-breeze.css +1 -1
- package/dist/cdn/vanilla-breeze.js +180 -177
- package/package.json +12 -7
- package/dist/cdn/themes/amber.css +0 -2
- package/dist/cdn/themes/anthropic.css +0 -2
- package/dist/cdn/themes/anthropic.tokens.json +0 -564
- package/dist/cdn/themes/coral.css +0 -2
- package/dist/cdn/themes/emerald.css +0 -2
- package/dist/cdn/themes/forest.css +0 -2
- package/dist/cdn/themes/ibm.css +0 -2
- package/dist/cdn/themes/ibm.tokens.json +0 -568
- package/dist/cdn/themes/indigo.css +0 -2
- package/dist/cdn/themes/lavender.css +0 -2
- package/dist/cdn/themes/mcdonalds.css +0 -2
- package/dist/cdn/themes/mcdonalds.tokens.json +0 -533
- package/dist/cdn/themes/ocean.css +0 -2
- package/dist/cdn/themes/rose.css +0 -2
- package/dist/cdn/themes/slate.css +0 -2
- package/dist/cdn/themes/starbucks.css +0 -2
- package/dist/cdn/themes/starbucks.tokens.json +0 -593
- package/dist/cdn/themes/sunset.css +0 -2
|
@@ -0,0 +1,663 @@
|
|
|
1
|
+
var nh=Object.defineProperty;var w=(e,t)=>()=>(e&&(t=e(e=0)),t);var E=(e,t)=>{for(var i in t)nh(e,i,{get:t[i],enumerable:!0})};function dh(){let e=globalThis.localStorage;if(!e)throw new Error("VBStore: localStorage is not available in this environment");return{async getRaw(t){return e.getItem(t)},async setRaw(t,i){e.setItem(t,i)},async removeRaw(t){e.removeItem(t)},async keys(t){let i=[];for(let s=0;s<e.length;s++){let n=e.key(s);n&&n.startsWith(t)&&i.push(n)}return i}}}function tt(){return Se[xe]||(Se[xe]=dh()),Se[xe]}function Bi(e,t){if(typeof e!="string"||!e)throw new TypeError("VBStore: namespace must be a non-empty string");if(typeof t!="string"||!t)throw new TypeError("VBStore: key must be a non-empty string");return`vb:${e}:${t}`}function za(e){if(typeof e!="string"||!e)throw new TypeError("VBStore: namespace must be a non-empty string");return`vb:${e}:`}function Va(e){try{let t=JSON.parse(e);if(t&&typeof t=="object"&&typeof t.timestamp=="number")return t}catch{}return null}var xe,Se,k,et=w(()=>{xe="__vbStoreBackend",Se=globalThis;k={configure(e={}){Se[xe]=e.backend??null},async set(e,t,i){let s={data:i,timestamp:Date.now()};await tt().setRaw(Bi(e,t),JSON.stringify(s))},async get(e,t,i){let s=await tt().getRaw(Bi(e,t));if(s==null)return null;let n=Va(s);return!n||i?.maxAge!=null&&Date.now()-n.timestamp>i.maxAge?null:n.data},async remove(e,t){await tt().removeRaw(Bi(e,t))},async list(e){let t=za(e),i=await tt().keys(t),s=[];for(let n of i){let r=await tt().getRaw(n);if(r==null)continue;let a=Va(r);a&&s.push({key:n.slice(t.length),data:a.data,timestamp:a.timestamp})}return s},async clear(e){let t=za(e),i=await tt().keys(t);for(let s of i)await tt().removeRaw(s)},async clearAll(){let e=await tt().keys("vb:");for(let t of e)await tt().removeRaw(t)},async setMany(e,t){for(let[i,s]of t)await k.set(e,i,s)}};if(typeof window<"u"){let e=window.VB??(window.VB={});e.store??=k}});var no={};E(no,{copyRich:()=>wh,copyText:()=>mt,initCopyButtons:()=>Qi,pasteFromClipboard:()=>so});async function mt(e,t={}){if(e==null||e==="")return!1;let{button:i,announceMessage:s=io,duration:n=1500}=t;try{await navigator.clipboard.writeText(e)}catch{return!1}return es({button:i,duration:n,announceMessage:s,eventDetail:{text:e}}),!0}async function wh(e,t={}){let{text:i,html:s,blob:n}=e??{};if(!i&&!s&&!n)return!1;let{button:r,announceMessage:a=io,duration:o=1500}=t;if(typeof ClipboardItem<"u"&&typeof navigator.clipboard?.write=="function"){let l={};i&&(l["text/plain"]=new Blob([i],{type:"text/plain"})),s&&(l["text/html"]=new Blob([s],{type:"text/html"})),n&&(l[n.type]=n);try{return await navigator.clipboard.write([new ClipboardItem(l)]),es({button:r,duration:o,announceMessage:a,eventDetail:{payload:e}}),!0}catch{}}return i?mt(i,t):!1}function es({button:e,duration:t,announceMessage:i,eventDetail:s,state:n="copied",eventName:r="copy"}){if(e){e.dataset.state=n;let a=Zi.get(e);a&&clearTimeout(a),Zi.set(e,setTimeout(()=>{delete e.dataset.state,Zi.delete(e)},t)),e.dispatchEvent(new CustomEvent(r,{bubbles:!0,detail:s}))}Eh(i,e??document.body)}async function so(e,t={}){let{button:i,announceMessage:s=vh,duration:n=1500}=t,r;try{r=await navigator.clipboard.readText()}catch{return null}return e&&("value"in e&&(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement)?e.value=r:e.textContent=r,e.dispatchEvent(new Event("input",{bubbles:!0}))),es({button:i,duration:n,announceMessage:s,eventDetail:{text:r},state:"pasted",eventName:"paste"}),r}function Qi(e=document){e.querySelectorAll(Ji).forEach(ts)}function ts(e){e.hasAttribute("data-copy-init")||(e.setAttribute("data-copy-init",""),e.addEventListener("click",()=>{if(e.dataset.pasteTarget){let i=document.querySelector(e.dataset.pasteTarget);if(!i)return;so(i,{button:e});return}let t=Ah(e);t&&mt(t,{button:e})}))}function Ah(e){if(e.dataset.copy)return e.dataset.copy;if(e.dataset.copyTarget){let t=document.querySelector(e.dataset.copyTarget);if(!t)return"";let i=e.dataset.copyAttr;return i?t.getAttribute(i)??"":t.textContent??""}return""}function Eh(e,t){let i=document.createElement("div");i.setAttribute("role","status"),i.setAttribute("aria-live","polite"),i.className="visually-hidden",i.textContent=e,t.appendChild(i),setTimeout(()=>i.remove(),1e3)}var Ji,io,vh,Zi,kh,Vt=w(()=>{Ji="[data-copy], [data-copy-target], [data-paste-target]",io="Copied to clipboard",vh="Pasted from clipboard",Zi=new WeakMap;document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>Qi()):Qi();kh=new MutationObserver(e=>{for(let t of e)for(let i of t.addedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i;s.matches(Ji)&&ts(s),s.querySelectorAll(Ji).forEach(n=>ts(n))}});kh.observe(document.documentElement,{childList:!0,subtree:!0})});function ro(e){let t=nt?Ut.mac:Ut.other;return e.split("+").map(i=>{let s=i.trim().toLowerCase();return t[s]??s.toUpperCase()}).join(nt?"":"+")}function ao(e){let t=e.toLowerCase().split("+").map(s=>s.trim());return{key:t.pop()??"",meta:t.includes("meta")||t.includes("cmd"),ctrl:t.includes("ctrl"),shift:t.includes("shift"),alt:t.includes("alt")}}function oo(e,t){if(e.key.toLowerCase()!==t.key)return!1;let i,s;return nt?(i=t.meta,s=t.ctrl):(i=!1,s=t.meta||t.ctrl),!(i!==e.metaKey||s!==e.ctrlKey||t.shift!==e.shiftKey||t.alt!==e.altKey)}var nt,Ut,Ne=w(()=>{nt=/Mac|iPhone|iPad|iPod/.test(navigator.platform??""),Ut={mac:{meta:"\u2318",cmd:"\u2318",alt:"\u2325",shift:"\u21E7",ctrl:"\u2303"},other:{meta:"Ctrl",cmd:"Ctrl",alt:"Alt",shift:"Shift",ctrl:"Ctrl"}}});function Sh(e){let t=xh.has(e.target.tagName)||e.target.isContentEditable;for(let i of Tt)if(!(t&&!i.global)&&oo(e,i.descriptor)){e.preventDefault(),i.callback(e);return}}function Ch(){co||(document.addEventListener("keydown",Sh),co=!0)}function rt(e,t,i={}){Ch();let s=ao(e),n={combo:e,descriptor:s,callback:t,global:i.global===!0};return Tt.find(a=>a.combo===e)&&console.warn(`[hotkey-bind] Shortcut "${e}" already bound. Last-connected-wins.`),Tt.unshift(n),function(){let o=Tt.indexOf(n);o!==-1&&Tt.splice(o,1)}}function lo(){return Tt.map(e=>e.combo)}var xh,Tt,co,Wt=w(()=>{Ne();xh=new Set(["INPUT","TEXTAREA","SELECT"]),Tt=[],co=!1});function Gt(e){if(!e||typeof e!="string")return"";let t=document.createElement("template");return t.innerHTML=e,t.content.querySelectorAll("script, iframe, object, embed, form, base, link, meta, noscript").forEach(n=>n.remove()),t.content.querySelectorAll("*").forEach(n=>{for(let r of[...n.attributes]){if(r.name.startsWith("on")){n.removeAttribute(r.name);continue}if(["href","src","action","formaction","xlink:href"].includes(r.name)){let a=r.value.trim().toLowerCase();(a.startsWith("javascript:")||a.startsWith("data:text/html"))&&n.removeAttribute(r.name);continue}(r.name==="srcdoc"||r.name==="data"&&n.tagName==="OBJECT")&&n.removeAttribute(r.name)}}),t.innerHTML}var _e=w(()=>{});var ds={};E(ds,{addDialogDismiss:()=>xo,addFlickListener:()=>Ao,addLongPress:()=>ko,addPullToRefresh:()=>jh,addSwipeListener:()=>wo,haptic:()=>qe,initGestures:()=>So,makeSwipeable:()=>Eo});function wo(e,t={}){let i=t.threshold??50,s=t.restraint??100,n=t.timeout??300,r=t.velocity??.5,a=t.minFlickDistance??10,o,c,l;function u(h){h.isPrimary&&(o=h.clientX,c=h.clientY,l=Date.now())}function d(h){if(!h.isPrimary)return;let p=h.clientX-o,f=h.clientY-c,m=Date.now()-l;if(m>n)return;let v=Math.abs(p),A=Math.abs(f),L=Math.max(v,A),N=m>0?L/m:0,K=N>=r&&L>=a,P;if((v>=i||K&&v>A)&&A<=s?P=p<0?"left":"right":(A>=i||K&&A>v)&&v<=s&&(P=f<0?"up":"down"),P){let X=P==="left"||P==="right"?v:A;e.dispatchEvent(new CustomEvent(`swipe-${P}`,{bubbles:!0,detail:{distance:X,duration:m,velocity:N,flick:K}}))}}return e.addEventListener("pointerdown",u,{passive:!0}),e.addEventListener("pointerup",d,{passive:!0}),()=>{e.removeEventListener("pointerdown",u),e.removeEventListener("pointerup",d)}}function Ao(e,t={}){let i=t.minDistance??10,s=t.velocity??.6,n=t.timeout??250,r=t.restraint??80,a,o,c;function l(d){d.isPrimary&&(a=d.clientX,o=d.clientY,c=Date.now())}function u(d){if(!d.isPrimary)return;let h=d.clientX-a,p=d.clientY-o,f=Date.now()-c;if(f===0||f>n)return;let m=Math.abs(h),v=Math.abs(p),A=Math.max(m,v);if(A<i)return;let L=A/f;if(L<s)return;let N;if(m>v&&v<=r?N=h<0?"left":"right":v>m&&m<=r&&(N=p<0?"up":"down"),N){let K=N==="left"||N==="right"?m:v;e.dispatchEvent(new CustomEvent(`swipe-${N}`,{bubbles:!0,detail:{distance:K,duration:f,velocity:L,flick:!0}}))}}return e.addEventListener("pointerdown",l,{passive:!0}),e.addEventListener("pointerup",u,{passive:!0}),()=>{e.removeEventListener("pointerdown",l),e.removeEventListener("pointerup",u)}}function Eo(e,t={}){let i=t.threshold??100,s=t.direction??"horizontal",n=t.removeOnDismiss??!0,r=s==="horizontal",a=0,o=0,c=!1;function l(m){!m.isPrimary||e.hasAttribute("data-dismissed")||(m.preventDefault(),c=!0,a=r?m.clientX:m.clientY,o=0,e.setPointerCapture(m.pointerId),e.setAttribute("data-swiping",""))}function u(m){if(!c||!m.isPrimary)return;o=(r?m.clientX:m.clientY)-a;let A=1-Math.min(Math.abs(o)/i,1)*.5;r?e.style.transform=`translateX(${o}px)`:e.style.transform=`translateY(${o}px)`,e.style.opacity=String(A)}function d(m){!c||!m.isPrimary||(c=!1,e.releasePointerCapture(m.pointerId),e.removeAttribute("data-swiping"),Math.abs(o)>=i?p(o>0?"right":"left"):f())}function h(m){!c||!m.isPrimary||(c=!1,e.releasePointerCapture(m.pointerId),e.removeAttribute("data-swiping"),f())}function p(m){let v=m==="right"?"100%":"-100%";e.style.transition="transform 0.2s ease-out, opacity 0.2s ease-out",e.style.transform=r?`translateX(${v})`:`translateY(${v})`,e.style.opacity="0",e.setAttribute("data-dismissed",""),qe.dismiss(),e.dispatchEvent(new CustomEvent("swipe-dismiss",{bubbles:!0,detail:{direction:m,distance:Math.abs(o)}})),n&&e.addEventListener("transitionend",()=>e.remove(),{once:!0})}function f(){e.style.transition="transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.3s ease",e.style.transform="",e.style.opacity="",e.addEventListener("transitionend",()=>{e.style.transition=""},{once:!0})}return e.addEventListener("pointerdown",l),e.addEventListener("pointermove",u),e.addEventListener("pointerup",d),e.addEventListener("pointercancel",h),()=>{e.removeEventListener("pointerdown",l),e.removeEventListener("pointermove",u),e.removeEventListener("pointerup",d),e.removeEventListener("pointercancel",h)}}function jh(e,t,i={}){let s=i.threshold??70,n=i.maxPull??120,r=document.createElement("div");r.setAttribute("data-pull-indicator",""),r.setAttribute("aria-hidden","true");let a=document.createElement("div");a.setAttribute("data-pull-spinner",""),r.appendChild(a),e.prepend(r);let o=0,c=!1,l=!1;function u(v){!v.isPrimary||l||e.scrollTop<=0&&(o=v.clientY,c=!0)}function d(v){if(!c||!v.isPrimary||l)return;let A=v.clientY-o;if(A<=0){r.style.transform="",r.style.opacity="";return}let L=Math.min(A,n),N=L/s;r.style.transform=`translateY(${L}px)`,r.style.opacity=String(Math.min(N,1)),N>=1?r.setAttribute("data-pull-ready",""):r.removeAttribute("data-pull-ready")}function h(v){!c||!v.isPrimary||(c=!1,r.hasAttribute("data-pull-ready")&&!l?f():m())}function p(v){!c||!v.isPrimary||(c=!1,m())}async function f(){l=!0,r.removeAttribute("data-pull-ready"),r.setAttribute("data-pull-loading",""),r.style.transform=`translateY(${s}px)`,r.style.opacity="1";try{await t()}finally{l=!1,r.removeAttribute("data-pull-loading"),m()}}function m(){r.style.transition="transform 0.3s ease, opacity 0.3s ease",r.style.transform="",r.style.opacity="",r.removeAttribute("data-pull-ready"),r.addEventListener("transitionend",()=>{r.style.transition=""},{once:!0})}return e.addEventListener("pointerdown",u,{passive:!0}),e.addEventListener("pointermove",d,{passive:!0}),e.addEventListener("pointerup",h,{passive:!0}),e.addEventListener("pointercancel",p,{passive:!0}),()=>{e.removeEventListener("pointerdown",u),e.removeEventListener("pointermove",d),e.removeEventListener("pointerup",h),e.removeEventListener("pointercancel",p),r.remove()}}function ko(e,t,i={}){let s=i.duration??500,n=i.hapticFeedback??!0,r=i.blockContextMenu??!0,a=null;function o(u){u.isPrimary&&(a=setTimeout(()=>{n&&qe.tap(),t(u),a=null},s))}function c(){a&&(clearTimeout(a),a=null)}function l(u){r&&u.preventDefault()}return e.addEventListener("pointerdown",o,{passive:!0}),e.addEventListener("pointermove",c,{passive:!0}),e.addEventListener("pointerup",c,{passive:!0}),e.addEventListener("pointercancel",c,{passive:!0}),e.addEventListener("contextmenu",l),()=>{c(),e.removeEventListener("pointerdown",o),e.removeEventListener("pointermove",c),e.removeEventListener("pointerup",c),e.removeEventListener("pointercancel",c),e.removeEventListener("contextmenu",l)}}function xo(e,t={}){let i=t.threshold??80,s=0,n=0,r=!1;function a(h){if(!h.isPrimary||!e.open)return;let p=h.target;p.closest("a, button, input, select, textarea, [contenteditable]")&&!p.closest("header")||(r=!0,s=h.clientY,n=0,e.setPointerCapture(h.pointerId),e.style.transition="none")}function o(h){if(!r||!h.isPrimary)return;if(n=h.clientY-s,n<=0){e.style.transform="",e.style.opacity="";return}let f=1-Math.min(n/i,1)*.4;e.style.transform=`translateY(${n}px)`,e.style.opacity=String(f)}function c(h){!r||!h.isPrimary||(r=!1,e.releasePointerCapture(h.pointerId),n>=i?u():d())}function l(h){!r||!h.isPrimary||(r=!1,e.releasePointerCapture(h.pointerId),d())}function u(){e.style.transition="transform 0.2s ease-out, opacity 0.2s ease-out",e.style.transform="translateY(100%)",e.style.opacity="0",qe.dismiss(),e.addEventListener("transitionend",()=>{e.style.transition="",e.style.transform="",e.style.opacity="",e.close("dismiss")},{once:!0})}function d(){e.style.transition="transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.3s ease",e.style.transform="",e.style.opacity="",e.addEventListener("transitionend",()=>{e.style.transition=""},{once:!0})}return e.addEventListener("pointerdown",a),e.addEventListener("pointermove",o),e.addEventListener("pointerup",c),e.addEventListener("pointercancel",l),()=>{e.removeEventListener("pointerdown",a),e.removeEventListener("pointermove",o),e.removeEventListener("pointerup",c),e.removeEventListener("pointercancel",l)}}function So(e=document){let t=[];for(let i of e.querySelectorAll('[data-gesture="swipe"]'))t.push(wo(i));for(let i of e.querySelectorAll('[data-gesture="flick"]'))t.push(Ao(i));for(let i of e.querySelectorAll('[data-gesture="dismiss"]'))t.push(Eo(i));for(let i of e.querySelectorAll('[data-gesture="long-press"]'))t.push(ko(i,()=>{i.dispatchEvent(new CustomEvent("long-press",{bubbles:!0}))}));for(let i of e.querySelectorAll('dialog[data-gesture="dismiss-down"]'))t.push(xo(i));return()=>t.forEach(i=>i())}var qe,us,hs=w(()=>{qe={tap:()=>navigator.vibrate?.(8),confirm:()=>navigator.vibrate?.([8,40,8]),error:()=>navigator.vibrate?.([30,60,30]),dismiss:()=>navigator.vibrate?.(15)};us=typeof document<"u"?document.documentElement:null;(!us||!us.hasAttribute("data-vb-gestures-init"))&&(us?.setAttribute("data-vb-gestures-init",""),So())});var ze={};E(ze,{destroyStickyManager:()=>xp,initStickyManager:()=>kp});function yt(){let e=document.documentElement;if(!e.hasAttribute("data-sticky"))return;let t=document.querySelector("header");t&&!t.hasAttribute("data-sticky")&&(t.dataset.sticky="",Ds=!0);let i=document.querySelector("header[data-sticky]"),s=i?i.getBoundingClientRect().height:0;e.style.setProperty("--sticky-offset",`${s}px`)}function Fo(){yt()}function kp(){if(He)return;He=!0,yt(),requestAnimationFrame(yt),document.fonts?.ready?.then(yt),window.addEventListener("resize",yt,{passive:!0}),document.addEventListener("toggle",Fo,!0),_s=new ResizeObserver(yt);let e=document.querySelector("header[data-sticky]");e&&_s.observe(e)}function xp(){if(He){if(He=!1,window.removeEventListener("resize",yt),document.removeEventListener("toggle",Fo,!0),_s?.disconnect(),Ds){let e=document.querySelector("header[data-sticky]");e&&delete e.dataset.sticky,Ds=!1}document.documentElement.style.removeProperty("--sticky-offset")}}var He,_s,Ds,Ve=w(()=>{He=!1,Ds=!1});var Ro={};E(Ro,{SoundManager:()=>Sp});var Po,$s,Sp,jo=w(()=>{Po="vb-sound",$s={enabled:!1,volume:.5},Sp={_ctx:null,_enabled:!1,_volume:.5,_initialized:!1,init(){if(this._initialized)return this;let e=this._load();return this._enabled=e.enabled,this._volume=e.volume,this._initialized=!0,this},_getContext(){return this._ctx||(this._ctx=new(window.AudioContext||window.webkitAudioContext)),this._ctx.state==="suspended"&&this._ctx.resume(),this._ctx},_load(){try{let e=localStorage.getItem(Po);return e?{...$s,...JSON.parse(e)}:{...$s}}catch{return{...$s}}},_save(e){try{let t=this._load();localStorage.setItem(Po,JSON.stringify({...t,...e}))}catch{}},_playTone(e,t,i="sine"){if(!this._enabled)return;let s=this._getContext(),n=s.createOscillator(),r=s.createGain();n.connect(r),r.connect(s.destination),n.frequency.value=e,n.type=i,r.gain.value=this._volume*.3,n.start(),r.gain.exponentialRampToValueAtTime(.01,s.currentTime+t),n.stop(s.currentTime+t)},enable(){this._enabled=!0,this._save({enabled:!0}),this.play("click")},disable(){this._enabled=!1,this._save({enabled:!1})},toggle(){return this._enabled?this.disable():this.enable(),this._enabled},isEnabled(){return this._enabled},setVolume(e){this._volume=Math.max(0,Math.min(1,e)),this._save({volume:this._volume})},getVolume(){return this._volume},play(e){if(this._enabled)switch(e){case"click":this._playTone(800,.1);break;case"success":this._playTone(523,.1),setTimeout(()=>this._playTone(659,.1),100),setTimeout(()=>this._playTone(784,.15),200);break;case"error":this._playTone(200,.15,"sawtooth"),setTimeout(()=>this._playTone(180,.2,"sawtooth"),150);break;case"notification":this._playTone(880,.1),setTimeout(()=>this._playTone(1100,.15),100);break;case"soft":this._playTone(600,.05);break;case"tick":this._playTone(1200,.02,"square");break}},getState(){return{enabled:this._enabled,volume:this._volume}}}});function Cp(e,t){if(!t)return e;let i=e??new URLSearchParams;for(let[s,n]of Object.entries(t))n!=null&&i.set(s,String(n));return i}async function Tp(e){if((e.headers.get("content-type")??"").includes("application/json"))try{return await e.json()}catch{return null}try{return await e.text()}catch{return null}}function Ho(e){return e.endsWith("/")?e.slice(0,-1):e}var Qt,te,zo,qs,I,R,$t=w(()=>{Qt="__vbServiceConfig",te=globalThis,zo=()=>({baseUrl:"/go",headers:{},services:{}});te[Qt]||(te[Qt]=zo());qs=()=>te[Qt],I=class extends Error{constructor(t,i,s,n){super(`VBService(${s}): ${t} ${n}`),this.name="VBServiceError",this.status=t,this.body=i,this.role=s,this.path=n}};R=class e{static configure(t={}){let i=qs();te[Qt]={baseUrl:t.baseUrl??i.baseUrl,headers:{...i.headers,...t.headers??{}},services:{...i.services,...t.services??{}}}}static resolve(t){if(!t||typeof t!="string")throw new TypeError("VBService: role must be a non-empty string");let i=qs();return i.services[t]?Ho(i.services[t]):i.baseUrl?`${Ho(i.baseUrl)}/${t}`:`/go/${t}`}static _reset(){te[Qt]=zo()}constructor(t){if(!t||typeof t!="string")throw new TypeError("VBService: role must be a non-empty string");this.role=t}async get(t,i){return this.#e("GET",t,{params:i})}async post(t,i){return this.#e("POST",t,{body:i})}async patch(t,i){return this.#e("PATCH",t,{body:i})}async delete(t){return this.#e("DELETE",t,{})}async#e(t,i,s){let n=e.resolve(this.role),r=i?i.startsWith("/")?i:`/${i}`:"",a=new URL(`${n}${r}`,globalThis.location?.origin??"http://localhost"),o=Cp(a.searchParams,s.params);o&&(a.search=o.toString());let c={method:t,headers:{...qs().headers}};s.body!==void 0&&(c.body=JSON.stringify(s.body),c.headers["content-type"]="application/json");let l=a.toString(),u=await fetch(l,c),d=await Tp(u);if(!u.ok)throw new I(u.status,d,this.role,`${r||"/"}`);return d}};if(typeof window<"u"){let e=window.VB??(window.VB={});e.service??=R,e.ServiceError??=I}});var Xo={};E(Xo,{HighlightController:()=>Ue,findRangeFromOffsets:()=>wt,fnv1a:()=>ie,initHighlights:()=>We});function ie(e){let t=2166136261;for(let i=0;i<e.length;i++)t^=e.charCodeAt(i),t=Math.imul(t,16777619);return(t>>>0).toString(36)}function _p(){return"hn-"+crypto.randomUUID().slice(0,8)}function Uo(e){return typeof e=="string"&&Dp.test(e)}function Ko(){if(At.size===0){vt&&(document.adoptedStyleSheets=document.adoptedStyleSheets.filter(t=>t!==vt),vt=null);return}vt||(vt=new CSSStyleSheet,document.adoptedStyleSheets=[...document.adoptedStyleSheets,vt]);let e=[...At.keys()].map(t=>`::highlight(hn-${t}) { background-color: var(--highlight-${t}); text-decoration-line: underline; text-decoration-color: var(--highlight-${t}); text-underline-offset: 2px; }`).join(`
|
|
2
|
+
`);vt.replaceSync(e)}function $p(e){for(let t of e)At.set(t,(At.get(t)??0)+1);Ko()}function Ip(e){for(let t of e){let i=(At.get(t)??0)-1;i>0?At.set(t,i):At.delete(t)}Ko()}function qp(e){let t=ee.get(e),i=t?[...t.values()].flat():[];i.length===0?(CSS.highlights.delete(`hn-${e}`),ee.delete(e)):CSS.highlights.set(`hn-${e}`,new Highlight(...i))}function Wo(e,t){let i=new Set(t.keys());for(let[s,n]of ee)n.has(e)&&i.add(s);for(let s of i){let n=t.get(s)??[],r=ee.get(s);n.length?(r||ee.set(s,r=new Map),r.set(e,n)):r?.delete(e),qp(s)}}function Os(e){lt||(lt=document.createElement("div"),lt.setAttribute("aria-live","polite"),lt.setAttribute("aria-atomic","true"),lt.className="hn-sr-only",document.body.appendChild(lt)),lt.textContent="",requestAnimationFrame(()=>{lt.textContent=e})}function Go(e,t,i){let s=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),n=0;for(;s.nextNode();){if(s.currentNode===t)return n+i;n+=(s.currentNode.textContent??"").length}return-1}function wt(e,t,i){let s=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),n=0,r=null,a=0,o=null,c=0;for(;s.nextNode();){let l=s.currentNode,u=(l.textContent??"").length;if(!r&&n+u>t&&(r=l,a=t-n),n+u>=i){o=l,c=i-n;break}n+=u}if(!r||!o)return null;try{let l=document.createRange();return l.setStart(r,Math.min(a,(r.textContent??"").length)),l.setEnd(o,Math.min(c,(o.textContent??"").length)),l}catch{return null}}function We(e){if(Fs.has(e))return Fs.get(e);let t=new Ue(e);return Fs.set(e,t),t}function Yo(e=document){e.querySelectorAll(Ps).forEach(t=>{t.hasAttribute("data-highlights-init")||We(t)})}var Ps,Vo,Mp,Np,Dp,vt,At,ee,lt,Ue,Fs,Bp,Rs=w(()=>{et();Ps="[data-highlights]",Vo="highlights",Mp=["yellow","green","blue","pink"],Np=typeof CSS<"u"&&"highlights"in CSS;Dp=/^[a-z0-9_-]+$/i;vt=null,At=new Map,ee=new Map;lt=null;Ue=class{#e;#t;#i;#s;#r=[];#n=!Np;#a;#o;#l=!1;#c=[];constructor(t){this.#e=t,this.#s=t.hasAttribute("data-highlights-readonly");let i=t.dataset.highlights;this.#t=i&&i!==""?i:location.pathname;let s=t.dataset.highlightsColors,n=s?s.split(",").map(r=>r.trim()).filter(Uo):[...Mp];this.#i=[...new Set(n)],this.#n||$p(this.#i),this.#u(),this.#s||(this.#a=this.#p.bind(this),this.#o=this.#m.bind(this),t.addEventListener("pointerup",this.#a),t.addEventListener("click",this.#o)),t.setAttribute("data-highlights-init",""),this.#d().then(()=>{this.#l||this.#u()})}get colors(){return[...this.#i]}get element(){return this.#e}getHighlights(){return this.#r.map(t=>({...t}))}removeHighlight(t){let i=this.#r.findIndex(s=>s.id===t);i<0||(this.#r.splice(i,1),this.#f(),this.#u(),this.#w("highlights:removed",{id:t}),Os("Highlight removed"))}clearAll(){this.#r=[],this.#f(),this.#u()}exportHighlights(){return JSON.stringify({version:1,highlights:this.#r})}importHighlights(t){try{let i=typeof t=="string"?JSON.parse(t):t;if(!i.highlights||!Array.isArray(i.highlights))return;this.#r=i.highlights,this.#f(),this.#u()}catch{}}destroy(){this.#l||(this.#l=!0,this.#a&&this.#e.removeEventListener("pointerup",this.#a),this.#o&&this.#e.removeEventListener("click",this.#o),this.#n?this.#e.querySelectorAll("mark[data-hn-id]").forEach(t=>{let i=t.parentNode;for(;t.firstChild;)i.insertBefore(t.firstChild,t);i.removeChild(t),i.normalize()}):(Wo(this,new Map),Ip(this.#i)),this.#k(),this.#e.removeAttribute("data-highlights-init"))}#p(){requestAnimationFrame(()=>{if(this.#l)return;let t=window.getSelection();if(!t||t.isCollapsed||!t.toString().trim())return;let i=t.getRangeAt(0);this.#e.contains(i.commonAncestorContainer)&&this.#w("highlights:selected",{text:t.toString().trim(),rect:i.getBoundingClientRect()})})}#m(t){let i=t.target.closest?.(".hn-margin-annotation");if(i){let n=i.dataset.hnId,r=this.#r.find(a=>a.id===n);if(r){this.#w("highlights:clicked",{id:n,highlight:{...r}}),this.#w("highlights:request-note",{id:n,highlight:{...r},controller:this});return}}let s=t.target.closest?.("mark[data-hn-id]");if(s){let n=s.dataset.hnId,r=this.#r.find(a=>a.id===n);if(r){this.#w("highlights:clicked",{id:n,highlight:{...r}});return}}if(!this.#n){let n=this.#h(t.clientX,t.clientY);n&&this.#w("highlights:clicked",{id:n.id,highlight:{...n}})}}findHighlightRect(t){let i=this.#r.find(r=>r.id===t);if(!i)return null;let s=wt(this.#e,i.startOffset,i.endOffset);if(!s)return null;let n=s.getClientRects();return n.length?n[0]:null}#h(t,i){for(let s of this.#r){let n=wt(this.#e,s.startOffset,s.endOffset);if(!n)continue;let r=n.getClientRects();for(let a of r)if(t>=a.left&&t<=a.right&&i>=a.top&&i<=a.bottom)return s}return null}_createFromSelection(t){let i=window.getSelection();if(!i||i.isCollapsed)return;let s=i.getRangeAt(0);if(!this.#e.contains(s.commonAncestorContainer))return;let n=Go(this.#e,s.startContainer,s.startOffset),r=Go(this.#e,s.endContainer,s.endOffset);if(n<0||r<0||n>=r)return;let a=i.toString().trim(),o={id:_p(),startOffset:n,endOffset:r,text:a,color:t,note:"",created:Date.now()};this.#r.push(o),this.#f(),this.#u(),i.removeAllRanges(),this.#w("highlights:added",{id:o.id,text:a,color:t,note:""}),Os("Highlight added")}_changeColor(t,i){let s=this.#r.find(n=>n.id===t);s&&(s.color=i,this.#f(),this.#u())}_updateNote(t,i){let s=this.#r.find(n=>n.id===t);s&&(s.note=i,this.#f(),this.#A(),this.#w("highlights:note-changed",{id:t,note:i}),Os("Note saved"))}async#d(){let t=await k.get(Vo,this.#t);if(!t||!Array.isArray(t.highlights))return;let i=ie(this.#e.textContent);t.contentHash&&t.contentHash!==i?(this.#r=t.highlights.filter(s=>{let n=wt(this.#e,s.startOffset,s.endOffset);return n?n.toString().trim()===s.text:!1}),this.#f()):this.#r=t.highlights}#f(){let t={version:1,contentHash:ie(this.#e.textContent),highlights:this.#r};k.set(Vo,this.#t,t).catch(()=>{})}#u(){this.#n?this.#b():this.#g(),this.#A()}#g(){let t=new Map;for(let i of this.#i)t.set(i,[]);for(let i of this.#r){let s=wt(this.#e,i.startOffset,i.endOffset);s&&t.has(i.color)&&t.get(i.color).push(s)}Wo(this,t)}#b(){this.#e.querySelectorAll("mark[data-hn-id]").forEach(i=>{let s=i.parentNode;for(;i.firstChild;)s.insertBefore(i.firstChild,i);s.removeChild(i)}),this.#e.normalize();let t=[...this.#r].sort((i,s)=>s.startOffset-i.startOffset);for(let i of t){let s=wt(this.#e,i.startOffset,i.endOffset);if(!s)continue;let n=document.createElement("mark");n.dataset.hnId=i.id,Uo(i.color)&&(n.dataset.hnColor=i.color,n.style.setProperty("--_hn-color",`var(--highlight-${i.color})`));try{s.surroundContents(n)}catch{let r=s.extractContents();n.appendChild(r),s.insertNode(n)}}}#k(){for(let t of this.#c)t.remove();this.#c=[]}#A(){if(this.#k(),this.#r.length===0)return;getComputedStyle(this.#e).position==="static"&&(this.#e.style.position="relative");for(let i of this.#r){let s=wt(this.#e,i.startOffset,i.endOffset);if(!s)continue;let n=s.getClientRects();if(n.length===0)continue;let r=n[0],a=this.#e.getBoundingClientRect(),o=r.top-a.top,c=document.createElement("span");c.className="hn-margin-annotation",c.dataset.hnId=i.id,c.setAttribute("aria-hidden","true"),c.style.top=`${o}px`,i.note?(c.innerHTML='<span class="hn-note-indicator">*</span> You highlighted',c.classList.add("hn-has-note")):c.textContent="You highlighted",this.#e.appendChild(c),this.#c.push(c)}}#w(t,i={}){this.#e.dispatchEvent(new CustomEvent(t,{detail:i,bubbles:!0}))}},Fs=new WeakMap;document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>Yo()):Yo();Bp=new MutationObserver(e=>{for(let t of e)for(let i of t.addedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i;s.matches(Ps)&&We(s),s.querySelectorAll(Ps).forEach(n=>{n.hasAttribute("data-highlights-init")||We(n)})}});Bp.observe(document.documentElement,{childList:!0,subtree:!0})});var Gs={};E(Gs,{currentHash:()=>Ws,initPageWatch:()=>Vs,readWatch:()=>Ge,removeWatch:()=>Jo,writeWatch:()=>se});function Zo(){return typeof window<"u"&&window.vbPageWatch?.serverSync===!0?!0:document.querySelector('meta[name="vb-page-watch-server"]')?.getAttribute("content")==="true"}async function Op(e){if(!Zo())return null;try{let t=new R("notify"),i={url:e.url,type:"page-watch",notify:["panel"]},s=await t.post("/subscribe",i);return typeof s?.id=="string"?s.id:null}catch(t){let i=t instanceof I?`${t.status}`:String(t);return console.warn("[page-watch] server subscribe failed; client-only watch in effect.",i),null}}async function Fp(e){if(!(!e||!Zo()))try{await new R("notify").delete(`/subscribe/${encodeURIComponent(e)}`)}catch(t){let i=t instanceof I?`${t.status}`:String(t);console.warn("[page-watch] server unsubscribe failed; local state already cleared.",i)}}function Pp(){return document.querySelector("main")||document.querySelector("article")||document.body}function ne(){return location.pathname||"/"}function Ws(){let e=Pp();return e?ie(e.textContent||""):""}function Rp(){return document.title||ne()}async function Ge(){return await k.get(Us,ne())}async function se(e){await k.set(Us,ne(),e)}async function Jo(){await k.remove(Us,ne())}function js(e,t){e.setAttribute("aria-pressed",t?"true":"false"),e.dataset.watching="",t||delete e.dataset.watching;let i=e.querySelector("icon-wc");i&&i.setAttribute("name",t?"bookmark-check":"bookmark");let s=[...e.childNodes].find(n=>n.nodeType===Node.TEXT_NODE&&(n.textContent||"").trim());s&&!e.hasAttribute("data-watch-label-locked")&&(s.textContent=t?"Watching":"Watch for updates"),e.setAttribute("title",t?"Stop watching this page":"Watch this page for content updates")}async function zs(e){if(e.hasAttribute("data-watch-page-init"))return;e.setAttribute("data-watch-page-init",""),e.setAttribute("type",e.getAttribute("type")||"button");let t=await Ge();js(e,!!t),e.addEventListener("click",async i=>{i.preventDefault();let s=await Ge();if(s)await Jo(),js(e,!1),e.dispatchEvent(new CustomEvent("page-watch:remove",{bubbles:!0,composed:!0,detail:{url:s.url,subscriptionId:s.subscriptionId}})),Fp(s.subscriptionId);else{let n={url:ne(),title:Rp(),contentHash:Ws(),watchedAt:new Date().toISOString(),lastChecked:new Date().toISOString(),lastChanged:null,subscriptionId:null};await se(n),js(e,!0),e.dispatchEvent(new CustomEvent("page-watch:add",{bubbles:!0,composed:!0,detail:{entry:n}}));let r=await Op(n);r&&await se({...n,subscriptionId:r})}})}async function jp(){let e=await Ge();if(!e)return;let t=Ws(),i=new Date().toISOString(),s=e.contentHash,n={...e,lastChecked:i};if(t&&t!==s){n.contentHash=t,n.lastChanged=i,await se(n);let r={id:`page-watch:${e.url}:${t}`,type:"watch",title:`Updated: ${e.title}`,body:"Content changed since your last visit.",url:e.url,date:i,read:!1,dismissed:!1,priority:"normal"};document.dispatchEvent(new CustomEvent("notification-wc:new",{bubbles:!0,composed:!0,detail:{notification:r}}))}else await se(n)}function Vs(e=document){for(let t of e.querySelectorAll(Hs))zs(t);jp()}var Hs,Us,Hp,Ys=w(()=>{et();$t();Rs();Hs="[data-watch-page]",Us="watches";document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>Vs()):Vs();Hp=new MutationObserver(e=>{for(let t of e)for(let i of t.addedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i;s.matches?.(Hs)&&zs(s),s.querySelectorAll?.(Hs).forEach(n=>zs(n))}});Hp.observe(document.documentElement,{childList:!0,subtree:!0})});var yc={};E(yc,{initAll:()=>fn});function pn(e){e.hasAttribute("data-back-to-top-init")||(e.setAttribute("data-back-to-top-init",""),e.toggleAttribute("data-visible",!1),e.addEventListener("click",gc),ei.add(e),bf(),bc())}function fc(e){e.hasAttribute("data-back-to-top-init")&&(e.removeAttribute("data-back-to-top-init"),e.removeEventListener("click",gc),ei.delete(e),ei.size===0&&Et&&(window.removeEventListener("scroll",Et),Et=null))}function mc(){if(Bt&&Bt.isConnected)return Bt;let e=document.documentElement,t=document.body;if(t&&t.scrollHeight>e.clientHeight+1&&t){let s=getComputedStyle(t);if(/auto|scroll/.test(s.overflowY))return Bt=t,t}return Bt=document.scrollingElement||e,Bt}function gc(e){let t=e.currentTarget.getAttribute("href")||"";if(t===""||t==="#"||t==="#top")e.preventDefault();else return;mc().scrollTo({top:0,left:0,behavior:gf.matches?"auto":"smooth"})}function bf(){Et||(Et=()=>{hn||(hn=!0,requestAnimationFrame(()=>{bc(),hn=!1}))},window.addEventListener("scroll",Et,{passive:!0}),document.addEventListener("scroll",Et,{capture:!0,passive:!0}))}function bc(){let t=mc().scrollTop||window.scrollY,s=window.innerHeight*1,n=t>s,r=t<200;for(let a of ei)a.toggleAttribute("data-visible",n&&!r)}function fn(e=document){e.querySelectorAll(ce).forEach(pn)}var ce,gf,ei,Et,hn,Bt,yf,mn=w(()=>{ce="[data-back-to-top]",gf=matchMedia("(prefers-reduced-motion: reduce)"),ei=new Set,Et=null,hn=!1;Bt=null;document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>fn(),{once:!0}):fn();yf=new MutationObserver(e=>{for(let t of e){for(let i of t.addedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i;s.matches(ce)&&pn(s),s.querySelectorAll(ce).forEach(n=>pn(n))}for(let i of t.removedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i;s.matches?.(ce)&&fc(s),s.querySelectorAll?.(ce).forEach(n=>fc(n))}}});yf.observe(document.documentElement,{childList:!0,subtree:!0})});function ut(){return document.documentElement.lang||navigator.language||"en"}var le=w(()=>{});var wc={};E(wc,{initFormatNumber:()=>vn});function vn(e=document){e.querySelectorAll(yn).forEach(wn)}function wn(e){if(e.hasAttribute("data-format-number-init"))return;e.setAttribute("data-format-number-init","");let t=e.getAttribute("value");if(t==null)return;let i=Number(t);if(isNaN(i))return;e.title||(e.title=e.textContent.trim());let s=e.getAttribute("data-format-number")||"decimal",n=e.getAttribute("data-locale")||ut(),r={};switch(s){case"currency":{r.style="currency",r.currency=e.getAttribute("data-currency")||"USD";break}case"percent":r.style="percent";break;case"compact":r.notation="compact";break;default:break}try{e.textContent=new Intl.NumberFormat(n,r).format(i)}catch{}}var yn,wf,An=w(()=>{le();yn="data[data-format-number]";document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>vn()):vn();wf=new MutationObserver(e=>{for(let t of e)for(let i of t.addedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i;s.matches(yn)&&wn(s),s.querySelectorAll(yn).forEach(n=>wn(n))}});wf.observe(document.documentElement,{childList:!0,subtree:!0})});var xc={};E(xc,{initFormatDate:()=>En});function En(e=document){e.querySelectorAll(ii).forEach(kn)}function kn(e){if(e.hasAttribute("data-format-date-init"))return;e.setAttribute("data-format-date-init","");let t=e.getAttribute("datetime");if(!t)return;let i=new Date(t);if(isNaN(i.getTime()))return;e.title||(e.title=e.textContent.trim());let s=e.getAttribute("data-format-date")||"medium",n=e.getAttribute("data-locale")||ut();s==="relative"?(e.textContent=Ec(i,n),kc(e,i,n)):e.textContent=Af(i,s,e,n)}function Af(e,t,i,s){let n=t||"medium",r=i.getAttribute("data-format-time")||void 0;try{let a={dateStyle:n};return r&&(a.timeStyle=r),new Intl.DateTimeFormat(s,a).format(e)}catch{return i.textContent}}function Ec(e,t){let i=Date.now(),s=Math.round((e.getTime()-i)/1e3),n=Math.abs(s),r=[{unit:"year",seconds:31536e3},{unit:"month",seconds:2592e3},{unit:"week",seconds:604800},{unit:"day",seconds:86400},{unit:"hour",seconds:3600},{unit:"minute",seconds:60},{unit:"second",seconds:1}];for(let{unit:a,seconds:o}of r)if(n>=o){let c=Math.round(s/o);try{return new Intl.RelativeTimeFormat(t,{numeric:"auto"}).format(c,a)}catch{let l=Math.abs(c),u=l===1?a:`${a}s`;return c<0?`${l} ${u} ago`:`in ${l} ${u}`}}try{return new Intl.RelativeTimeFormat(t,{numeric:"auto"}).format(0,"second")}catch{return"just now"}}function kc(e,t,i){clearInterval(ue.get(e));let s=Math.abs(Date.now()-t.getTime()),n=36e5,r=864e5,a;s<n?a=6e4:s<r?a=3e5:a=36e5;let o=setInterval(()=>{e.textContent=Ec(t,i),kc(e,t,i)},a);ue.set(e,o)}function Ac(e){ue.has(e)&&(clearInterval(ue.get(e)),ue.delete(e))}var ii,ue,Ef,xn=w(()=>{le();ii="time[data-format-date]",ue=new Map;document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>En()):En();Ef=new MutationObserver(e=>{for(let t of e){for(let i of t.addedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i;s.matches(ii)&&kn(s),s.querySelectorAll(ii).forEach(n=>kn(n))}for(let i of t.removedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i;Ac(s),s.querySelectorAll(ii).forEach(Ac)}}});Ef.observe(document.documentElement,{childList:!0,subtree:!0})});var Sc={};E(Sc,{initFormatBytes:()=>Tn});function Tn(e=document){e.querySelectorAll(Cn).forEach(Ln)}function Ln(e){if(e.hasAttribute("data-format-bytes-init"))return;e.setAttribute("data-format-bytes-init","");let t=e.getAttribute("value");if(t==null)return;let i=Number(t);if(isNaN(i)||i<0)return;e.title||(e.title=e.textContent.trim());let s=parseInt(e.getAttribute("data-format-bytes")??"0",10)||0,n=e.getAttribute("data-unit")==="decimal",r=e.getAttribute("data-locale")||ut(),a=n?1e3:1024;if(i===0){e.textContent="0 B";return}let o=Math.min(Math.floor(Math.log(i)/Math.log(a)),Sn.length-1),c=i/Math.pow(a,o);try{let l=new Intl.NumberFormat(r,{minimumFractionDigits:s,maximumFractionDigits:s}).format(c);e.textContent=`${l} ${Sn[o]}`}catch{e.textContent=`${c.toFixed(s)} ${Sn[o]}`}}var Cn,Sn,kf,Mn=w(()=>{le();Cn="data[data-format-bytes]",Sn=["B","KB","MB","GB","TB","PB"];document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>Tn()):Tn();kf=new MutationObserver(e=>{for(let t of e)for(let i of t.addedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i;s.matches(Cn)&&Ln(s),s.querySelectorAll(Cn).forEach(n=>Ln(n))}});kf.observe(document.documentElement,{childList:!0,subtree:!0})});var Lc={};E(Lc,{initSpoilers:()=>_n});function _n(e=document){e.querySelectorAll(Nn).forEach(Dn)}function Dn(e){if(e.hasAttribute("data-spoiler-init"))return;e.setAttribute("data-spoiler-init","");let t=e.getAttribute("data-spoiler")||"blur";e.getAttribute("data-spoiler")||e.setAttribute("data-spoiler","blur");let i=Tc.has(e.tagName),s=i?"span":"div";e.setAttribute("role","group"),e.setAttribute("aria-label","Spoiler");let n=document.createElement(s);for(n.setAttribute("data-spoiler-content",""),n.setAttribute("inert","");e.firstChild;)n.appendChild(e.firstChild);e.appendChild(n);let r=e.getAttribute("data-spoiler-label")||"Reveal spoiler",a;i?(a=document.createElement("span"),a.setAttribute("role","button"),a.setAttribute("tabindex","0")):(a=document.createElement("button"),a.setAttribute("type","button")),a.setAttribute("data-spoiler-trigger",""),a.setAttribute("aria-expanded","false");let o=document.createElement("span");o.setAttribute("data-spoiler-label",""),o.textContent=r,a.appendChild(o),e.appendChild(a),a.addEventListener("click",()=>Cc(e)),i&&a.addEventListener("keydown",c=>{(c.key==="Enter"||c.key===" ")&&(c.preventDefault(),Cc(e))}),e.addEventListener("keydown",c=>{c.key==="Escape"&&e.hasAttribute("data-spoiler-visible")&&(c.stopPropagation(),si(e))})}function Cc(e){let t=e.getAttribute("data-spoiler-group");t&&document.querySelectorAll(`[data-spoiler-group="${t}"][data-spoiler-visible]`).forEach(n=>{n!==e&&si(n)});let i=e.querySelector("[data-spoiler-content]"),s=e.querySelector("[data-spoiler-trigger]");if(i&&i.removeAttribute("inert"),s&&(s.setAttribute("aria-expanded","true"),s.hidden=!0),e.setAttribute("data-spoiler-visible",""),!e.hasAttribute("data-spoiler-persist")){let n=Tc.has(e.tagName),r;n?(r=document.createElement("span"),r.setAttribute("role","button"),r.setAttribute("tabindex","0"),r.addEventListener("keydown",a=>{(a.key==="Enter"||a.key===" ")&&(a.preventDefault(),si(e))})):(r=document.createElement("button"),r.setAttribute("type","button")),r.setAttribute("data-spoiler-hide",""),r.textContent="Hide",r.addEventListener("click",()=>si(e)),e.appendChild(r)}xf("Spoiler revealed"),e.dispatchEvent(new CustomEvent("spoiler:toggle",{bubbles:!0,detail:{visible:!0}}))}function si(e){if(e.hasAttribute("data-spoiler-persist"))return;let t=e.querySelector("[data-spoiler-content]"),i=e.querySelector("[data-spoiler-trigger]"),s=e.querySelector("[data-spoiler-hide]");t&&t.setAttribute("inert",""),i&&(i.setAttribute("aria-expanded","false"),i.hidden=!1,i.focus()),s&&s.remove(),e.removeAttribute("data-spoiler-visible"),e.dispatchEvent(new CustomEvent("spoiler:toggle",{bubbles:!0,detail:{visible:!1}}))}function xf(e){let t=document.createElement("div");t.setAttribute("role","status"),t.setAttribute("aria-live","polite"),Object.assign(t.style,{position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0,0,0,0)",whiteSpace:"nowrap",border:"0"}),t.textContent=e,document.body.appendChild(t),setTimeout(()=>t.remove(),1e3)}var Nn,Tc,Sf,$n=w(()=>{Nn="[data-spoiler]",Tc=new Set(["SPAN","EM","STRONG","CODE","A","B","I","S","U","SMALL","SUB","SUP","MARK","ABBR","Q","CITE","DFN","SAMP","VAR","KBD","BDI","BDO","DATA","TIME","WBR"]);document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>_n()):_n();Sf=new MutationObserver(e=>{for(let t of e)for(let i of t.addedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i;s.matches(Nn)&&Dn(s),s.querySelectorAll(Nn).forEach(Dn)}});Sf.observe(document.documentElement,{childList:!0,subtree:!0})});var Mc={};E(Mc,{initSplitters:()=>qn});function qn(e=document){e.querySelectorAll(In).forEach(Bn)}function Bn(e){if(e.hasAttribute("data-splitter-init"))return;e.setAttribute("data-splitter-init","");let t=[...e.children];if(t.length<2)return;let i=t[0],s=t[1],n=e.getAttribute("data-splitter")==="vertical",r=Number(i.dataset.min)||10,a=Number(i.dataset.max)||90,o=document.createElement("div");o.className="split-divider",o.setAttribute("role","separator"),o.setAttribute("aria-orientation",n?"vertical":"horizontal"),o.setAttribute("aria-valuenow","50"),o.setAttribute("aria-valuemin",String(r)),o.setAttribute("aria-valuemax",String(a)),o.setAttribute("aria-label","Resize panels"),o.setAttribute("tabindex","0"),e.insertBefore(o,s),i.style.flexBasis="50%",i.style.flexGrow="0",i.style.flexShrink="0",i.style.overflow="auto",s.style.flexGrow="1",s.style.overflow="auto";let c=!1;function l(u){let d=Math.min(a,Math.max(r,u));i.style.flexBasis=`${d}%`,o.setAttribute("aria-valuenow",String(Math.round(d))),e.dispatchEvent(new CustomEvent("split-surface:resize",{detail:{position:d},bubbles:!0}))}o.addEventListener("pointerdown",u=>{u.preventDefault(),c=!0,o.setPointerCapture(u.pointerId),e.style.userSelect="none"}),o.addEventListener("pointermove",u=>{if(!c)return;let d=e.getBoundingClientRect(),h;n?h=(u.clientY-d.top)/d.height*100:h=(u.clientX-d.left)/d.width*100,l(h)}),o.addEventListener("pointerup",u=>{c=!1,o.releasePointerCapture(u.pointerId),e.style.userSelect=""}),o.addEventListener("keydown",u=>{let d=u.shiftKey?10:1,h=Number(o.getAttribute("aria-valuenow")),p=n?["ArrowUp"]:["ArrowLeft"],f=n?["ArrowDown"]:["ArrowRight"];p.includes(u.key)?(u.preventDefault(),l(h-d)):f.includes(u.key)?(u.preventDefault(),l(h+d)):u.key==="Home"?(u.preventDefault(),l(r)):u.key==="End"&&(u.preventDefault(),l(a))})}var In,Cf,On=w(()=>{In="[data-splitter]";document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>qn()):qn();Cf=new MutationObserver(e=>{for(let t of e)for(let i of t.addedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i;s.matches(In)&&Bn(s),s.querySelectorAll(In).forEach(Bn)}});Cf.observe(document.documentElement,{childList:!0,subtree:!0})});var Nc={};E(Nc,{initSwitches:()=>Rn});function Pn(e){e.hasAttribute("data-switch-init")||(e.setAttribute("data-switch-init",""),e.setAttribute("role","switch"))}function Rn(e=document){e.querySelectorAll(Fn).forEach(Pn)}var Fn,Tf,jn=w(()=>{Fn='input[type="checkbox"][data-switch]';document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>Rn()):Rn();Tf=new MutationObserver(e=>{for(let t of e)for(let i of t.addedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i;s.matches(Fn)&&Pn(s),s.querySelectorAll(Fn).forEach(n=>Pn(n))}});Tf.observe(document.documentElement,{childList:!0,subtree:!0})});function Lf(e){for(let[t,i]of ni)e.querySelectorAll(t).forEach(i)}function Mf(e){if(e.nodeType!==Node.ELEMENT_NODE)return;let t=e;for(let[i,s]of ni)t.matches(i)&&s(t),t.querySelectorAll(i).forEach(s)}function Nf(){Hn||(Hn=new MutationObserver(e=>{for(let t of e)for(let i of t.addedNodes)Mf(i)}),Hn.observe(document.documentElement,{childList:!0,subtree:!0}))}function _f(){ri||(ri=!0,Lf(document))}function S(e,t){ni.set(e,t),Nf(),ri||document.readyState!=="loading"?(ri=!0,document.querySelectorAll(e).forEach(t)):ni.size===1&&document.addEventListener("DOMContentLoaded",_f)}var ni,Hn,ri,B=w(()=>{ni=new Map,Hn=null,ri=!1});var $c={};E($c,{initTextareaCounts:()=>Df});function Dc(e){if(e.hasAttribute("data-count-init"))return;e.setAttribute("data-count-init","");let t=e.dataset.count==="words",i=t?parseInt(e.dataset.maxwords??"0",10)||0:e.maxLength>0?e.maxLength:0,s=document.createElement("output");s.className="textarea-counter",s.setAttribute("aria-live","polite"),s.setAttribute("aria-atomic","true");let n=e.closest("form-field");n?n.appendChild(s):e.insertAdjacentElement("afterend",s);function r(){let a=e.value,o=t?a.trim()?a.trim().split(/\s+/).length:0:a.length;if(i>0){s.textContent=`${o} / ${i}`;let c=o/i;s.dataset.state=c>=1?"error":c>=.8?"warning":""}else{let c=t?o===1?"word":"words":o===1?"character":"characters";s.textContent=`${o} ${c}`,s.dataset.state=""}}e.addEventListener("input",r),r()}function Df(e=document){e.querySelectorAll(_c).forEach(Dc)}var _c,zn=w(()=>{B();_c="textarea[data-count]";S(_c,Dc)});var Bc={};E(Bc,{initTextareaGrow:()=>If});function qc(e){if(e.hasAttribute("data-grow-init"))return;e.setAttribute("data-grow-init","");let t=parseInt(e.dataset.maxRows??"0",10)||0;if(e.style.resize="none",$f){e.style.fieldSizing="content",t>0&&(e.style.maxBlockSize=`${t}lh`);return}e.style.overflow="hidden";function i(){e.style.blockSize="auto";let s=e.scrollHeight;if(t>0){let n=getComputedStyle(e),r=parseFloat(n.lineHeight)||parseFloat(n.fontSize)*1.2,a=parseFloat(n.paddingTop)+parseFloat(n.paddingBottom),o=r*t+a;s>o?(s=o,e.style.overflow="auto"):e.style.overflow="hidden"}e.style.blockSize=s+"px"}e.addEventListener("input",i),e.addEventListener("change",i),i()}function If(e=document){e.querySelectorAll(Ic).forEach(qc)}var Ic,$f,Vn=w(()=>{B();Ic="textarea[data-grow]",$f=CSS.supports("field-sizing","content");S(Ic,qc)});var Pc={};E(Pc,{initConditionalFields:()=>Wn});function Un(e){let t=e.indexOf("=");return t===-1?{name:e,value:null}:{name:e.slice(0,t),value:e.slice(t+1)}}function qf(e,t){let i=t.querySelectorAll(`[name="${CSS.escape(e)}"]`);if(!i.length)return"";let s=i[0];if(s.type==="radio"){let n=Array.from(i).find(r=>r.checked);return n?n.value:""}return s.type==="checkbox"?s.checked?s.value||"true":"":s.value}function Oc(e,t){let i=qf(e.name,t);return e.value===null?i!=="":i===e.value}function oi(e){let t=e.closest("form")||document,i;if(e.dataset.showWhen){let s=Un(e.dataset.showWhen);i=Oc(s,t)}else if(e.dataset.hideWhen){let s=Un(e.dataset.hideWhen);i=!Oc(s,t)}i?(e.removeAttribute("hidden"),e.removeAttribute("inert")):(e.setAttribute("hidden",""),e.setAttribute("inert",""))}function Wn(e=document){let t=e.querySelectorAll(ai);t.forEach(n=>{n.hasAttribute("data-conditional-init")||(n.setAttribute("data-conditional-init",""),oi(n))});let i=new Set;t.forEach(n=>{let r=n.closest("form");r&&!r.hasAttribute("data-conditional-listener")&&(r.setAttribute("data-conditional-listener",""),i.add(r))}),(i.size?[...i]:[document]).forEach(n=>{n.addEventListener("change",Fc),n.addEventListener("input",Fc)})}function Fc(e){let t=e.target.name;if(!t)return;(e.target.closest("form")||document).querySelectorAll(ai).forEach(n=>{let r=n.dataset.showWhen||n.dataset.hideWhen||"";Un(r).name===t&&oi(n)})}var ai,Bf,Gn=w(()=>{ai="[data-show-when], [data-hide-when]";document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>Wn()):Wn();Bf=new MutationObserver(e=>{for(let t of e)for(let i of t.addedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i;s.matches(ai)&&(s.hasAttribute("data-conditional-init")||(s.setAttribute("data-conditional-init",""),oi(s))),s.querySelectorAll(ai).forEach(n=>{n.hasAttribute("data-conditional-init")||(n.setAttribute("data-conditional-init",""),oi(n))})}});Bf.observe(document.documentElement,{childList:!0,subtree:!0})});var Hc={};E(Hc,{initRangeSliders:()=>Of});function jc(e){if(e.hasAttribute("data-range-init"))return;e.setAttribute("data-range-init","");let t=e.dataset.prefix||"",i=e.dataset.suffix||"",s=e.hasAttribute("data-bubble"),n=document.createElement("div");if(n.className="range-wrapper",!e.parentNode)return;e.parentNode.insertBefore(n,e),n.appendChild(e);function r(){let u=parseFloat(e.min)||0,d=parseFloat(e.max)||100,h=(parseFloat(e.value)-u)/(d-u);n.style.setProperty("--range-pct",`${h*100}%`),n.style.setProperty("--range-frac",String(h))}let a;s&&(a=document.createElement("output"),a.className="range-bubble",a.setAttribute("for",e.id||""),n.appendChild(a));function o(){a&&(a.textContent=`${t}${e.value}${i}`)}if(e.hasAttribute("data-markers")){let u=parseFloat(e.min)||0,d=parseFloat(e.max)||100,h=parseFloat(e.step)||1,p=document.createElement("div");p.className="range-markers";let f=Math.round((d-u)/h);for(let m=0;m<=f;m++)p.appendChild(document.createElement("span"));n.appendChild(p)}let c=e.getAttribute("list");if(c){let u=document.getElementById(c);if(u){let d=document.createElement("div");d.className="range-labels";let h=parseFloat(e.min)||0,p=parseFloat(e.max)||100;Array.from(u.options).forEach(f=>{let m=document.createElement("span");m.textContent=f.label||f.value,m.style.setProperty("--range-frac",String((parseFloat(f.value)-h)/(p-h))),d.appendChild(m)}),n.appendChild(d)}}function l(){r(),o()}e.addEventListener("input",l),l()}function Of(e=document){e.querySelectorAll(Rc).forEach(jc)}var Rc,Yn=w(()=>{B();Rc='input[type="range"][data-range]';S(Rc,jc)});var zc={};E(zc,{initUploadZones:()=>Zn});function Ff(e){if(e===0)return"0 B";let t=["B","KB","MB","GB"],i=Math.floor(Math.log(e)/Math.log(1024));return`${(e/Math.pow(1024,i)).toFixed(i>0?1:0)} ${t[i]}`}function Xn(e){if(e.hasAttribute("data-upload-init"))return;e.setAttribute("data-upload-init","");let t=e.hasAttribute("multiple"),i=e.getAttribute("accept")||"",s=document.createElement("div");if(s.className="upload-zone",s.setAttribute("role","presentation"),!e.parentNode)return;e.parentNode.insertBefore(s,e),s.appendChild(e);let n=document.createElement("div");n.className="upload-prompt",n.innerHTML=`
|
|
3
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
4
|
+
<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/>
|
|
5
|
+
<polyline points="17 8 12 3 7 8"/>
|
|
6
|
+
<line x1="12" y1="3" x2="12" y2="15"/>
|
|
7
|
+
</svg>
|
|
8
|
+
<span>Drag files here or <button type="button" class="upload-browse">browse</button></span>
|
|
9
|
+
${i?`<small>${i.replace(/\./g,"").toUpperCase().replace(/,/g,", ")}</small>`:""}
|
|
10
|
+
`,s.appendChild(n);let r=document.createElement("ul");r.className="upload-file-list",r.setAttribute("aria-label","Selected files"),s.appendChild(r);let a=n.querySelector(".upload-browse");if(!a)return;a.addEventListener("click",()=>e.click()),s.addEventListener("click",c=>{(c.target===s||c.target===n||c.target.closest(".upload-prompt"))&&e.click()});let o=0;s.addEventListener("dragenter",c=>{c.preventDefault(),o++,s.dataset.dragover=""}),s.addEventListener("dragleave",()=>{o--,o===0&&delete s.dataset.dragover}),s.addEventListener("dragover",c=>{c.preventDefault()}),s.addEventListener("drop",c=>{c.preventDefault(),o=0,delete s.dataset.dragover,c.dataTransfer&&c.dataTransfer.files.length&&(e.files=c.dataTransfer.files,e.dispatchEvent(new Event("change",{bubbles:!0})))}),e.addEventListener("change",()=>{r.innerHTML="";let c=Array.from(e.files??[]);if(c.length===0){r.hidden=!0;return}r.hidden=!1,c.forEach(l=>{let u=document.createElement("li");u.innerHTML=`
|
|
11
|
+
<span class="upload-file-name">${Pf(l.name)}</span>
|
|
12
|
+
<span class="upload-file-size">${Ff(l.size)}</span>
|
|
13
|
+
`,r.appendChild(u)})})}function Pf(e){let t=document.createElement("div");return t.textContent=e,t.innerHTML}function Zn(e=document){e.querySelectorAll(Kn).forEach(Xn)}var Kn,Rf,Jn=w(()=>{Kn='input[type="file"][data-upload]';document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>Zn()):Zn();Rf=new MutationObserver(e=>{for(let t of e)for(let i of t.addedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i;s.matches(Kn)&&Xn(s),s.querySelectorAll(Kn).forEach(n=>Xn(n))}});Rf.observe(document.documentElement,{childList:!0,subtree:!0})});var Uc={};E(Uc,{initAutosave:()=>ir});function Hf(e){let t=e.dataset.autosave;if(typeof t=="string"&&t.trim()!=="")return t.trim();let i=(e.method||"get").toLowerCase(),s=e.action||(typeof location<"u"?location.href:"");return`${i} ${s}`}function zf(e){let t=e.dataset.autosaveRetain;if(typeof t!="string")return null;let i=t.trim();return i===""?null:new Set(i.split(/\s+/))}function er(e){if(e.hasAttribute("data-autosave-init"))return;e.setAttribute("data-autosave-init","");let t=Hf(e),i=zf(e),s;function n(u){return i===null||i.has(u)}function r(){let u={},d=e.elements;for(let h of d){let p=h;p.name&&(p.type==="password"||p.type==="file"||n(p.name)&&(p.type==="checkbox"?u[p.name]=p.checked?"on":"":p.type==="radio"?p.checked&&(u[p.name]=p.value):p instanceof HTMLSelectElement&&p.multiple?u[p.name]=Array.from(p.selectedOptions).map(f=>f.value):u[p.name]=p.value))}return u}function a(){k.set(Qn,t,r()).catch(()=>{})}async function o(){let u=await k.get(Qn,t,{maxAge:jf});if(!u)return!1;let d=!1;for(let[h,p]of Object.entries(u)){if(!n(h))continue;let f=e.querySelectorAll(`[name="${CSS.escape(h)}"]`);f.forEach(m=>{let v=m;if(v.type==="checkbox")v.checked=p==="on";else if(v.type==="radio")v.checked=v.value===p;else if(v instanceof HTMLSelectElement&&v.multiple){let A=Array.isArray(p)?p:[p];Array.from(v.options).forEach(L=>{L.selected=A.includes(L.value)})}else typeof p=="string"&&(v.value=p)}),f.length&&(d=!0)}return d}function c(){k.remove(Qn,t).catch(()=>{})}function l(){if(customElements.get("toast-msg")){let u=document.createElement("toast-msg");u.setAttribute("variant","info"),u.setAttribute("duration","3000"),u.textContent="Draft restored",document.body.appendChild(u)}}o().then(u=>{u&&(l(),Array.from(e.elements).forEach(d=>{let h=d;h.name&&h.type!=="password"&&h.type!=="file"&&h.dispatchEvent(new Event("input",{bubbles:!0}))}))}),e.addEventListener("input",()=>{clearTimeout(s),s=setTimeout(a,Vc)}),e.addEventListener("change",()=>{clearTimeout(s),s=setTimeout(a,Vc)}),e.addEventListener("submit",c),e.addEventListener("reset",()=>{setTimeout(c,0)})}function ir(e=document){e.querySelectorAll(tr).forEach(er)}var tr,Qn,Vc,jf,Vf,sr=w(()=>{et();tr="form[data-autosave]",Qn="autosave",Vc=500,jf=1440*60*1e3;document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>ir()):ir();Vf=new MutationObserver(e=>{for(let t of e)for(let i of t.addedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i;s.matches(tr)&&er(s),s.querySelectorAll(tr).forEach(er)}});Vf.observe(document.documentElement,{childList:!0,subtree:!0})});var Zc={};E(Zc,{initMaskInputs:()=>Kf});function Wf(e){let t=e.dataset.mask;if(Wc[t])return Wc[t];if(t==="custom"&&e.dataset.pattern){let i=e.dataset.pattern,s=new Set;for(let r of i)r==="#"?s.add("0-9"):r==="A"?s.add("a-zA-Z"):r==="*"&&s.add("a-zA-Z0-9");let n=s.size>0?new RegExp(`[${[...s].join("")}]`):/./;return{pattern:i,accept:n}}return null}function ci(e){return e==="#"||e==="A"||e==="*"}function Gf(e,t){let i=Uf[e];return i?i.test(t):!1}function Gc(e,t){let i="",s=0;for(let n=0;n<t.length&&s<e.length;n++){let r=t[n];if(ci(r)){for(;s<e.length&&!Gf(r,e[s]);)s++;s<e.length&&(i+=e[s],s++)}else i+=r}return i}function Yc(e,t){return e.split("").filter(i=>t.test(i)).join("")}function Yf(e){for(let t of e)if(ci(t)&&t!=="#")return!1;return!0}function Xc(e){if(e.hasAttribute("data-mask-init"))return;e.setAttribute("data-mask-init","");let t=Wf(e);if(!t)return;let{pattern:i}=t,s=t.accept;Yf(i)&&!e.getAttribute("inputmode")&&e.setAttribute("inputmode","numeric"),e.getAttribute("maxlength")||e.setAttribute("maxlength",String(i.length));let n=!1;e.addEventListener("compositionstart",()=>{n=!0}),e.addEventListener("compositionend",()=>{n=!1,r()});function r(){if(n)return;let a=e.selectionStart??0,o=0;for(let h=0;h<a&&h<e.value.length;h++)s.test(e.value[h])&&o++;let c=Yc(e.value,s),l=Gc(c,i);e.value=l,e.dataset.rawValue=c;let u=0,d=l.length;for(let h=0;h<l.length;h++)if(h<i.length&&ci(i[h])&&(u++,u===o)){for(d=h+1;d<i.length&&!ci(i[d]);)d++;break}e.setSelectionRange(d,d)}if(e.addEventListener("input",r),e.value){let a=Yc(e.value,s);e.value=Gc(a,i),e.dataset.rawValue=a}}function Kf(e=document){e.querySelectorAll(Kc).forEach(Xc)}var Kc,Wc,Uf,nr=w(()=>{B();Kc="input[data-mask]",Wc={phone:{pattern:"(###) ###-####",accept:/\d/},"credit-card":{pattern:"#### #### #### ####",accept:/\d/},date:{pattern:"##/##/####",accept:/\d/},ssn:{pattern:"###-##-####",accept:/\d/},zip:{pattern:"#####",accept:/\d/}},Uf={"#":/\d/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/};S(Kc,Xc)});var tl={};E(tl,{initAcceptInputs:()=>Qf});function Zf(e){if(!e)return null;let t=Xf[e];if(t)return{regex:new RegExp(t.pattern),inputmode:t.inputmode};if(e.startsWith("["))try{return{regex:new RegExp(e),inputmode:"text"}}catch{return console.warn(`[data-accept] Invalid character class: ${e}`),null}return console.warn(`[data-accept] Unknown preset: ${e}`),null}function Qc(e){if(e.hasAttribute("data-accept-init"))return;if(e.setAttribute("data-accept-init",""),e.hasAttribute("data-mask")){console.warn("[data-accept] Conflict: data-mask is also present \u2014 deferring to mask.",e);return}let t=Zf(e.dataset.accept||"");if(!t)return;let{regex:i,inputmode:s}=t;e.dataset.acceptPattern=i.source,e.getAttribute("inputmode")||e.setAttribute("inputmode",s);let n=!1;e.addEventListener("compositionstart",()=>{n=!0}),e.addEventListener("compositionend",()=>{n=!1,r()}),e.addEventListener("beforeinput",a=>{if(n)return;let o=a.data;if(o!=null){if(a.inputType==="insertFromPaste"){let c=o.split("").filter(l=>i.test(l)).join("");if(c===o||(a.preventDefault(),!c))return;document.execCommand("insertText",!1,c)||Jf(e,c);return}if(a.inputType==="insertText"||a.inputType==="insertCompositionText"){for(let c of o)if(!i.test(c)){a.preventDefault();return}}}}),e.addEventListener("input",()=>{n||r()});function r(){let a=e.value,o=a.split("").filter(d=>i.test(d)).join("");if(o===a)return;let c=e.selectionStart??0,l=0;for(let d=0;d<c&&d<a.length;d++)i.test(a[d])&&l++;e.value=o;let u=Math.min(l,o.length);e.setSelectionRange(u,u)}if(e.value){let a=e.value.split("").filter(o=>i.test(o)).join("");a!==e.value&&(e.value=a)}}function Jf(e,t){let i=e.selectionStart??0,s=e.selectionEnd??0,n=e.value.slice(0,i),r=e.value.slice(s);e.value=n+t+r;let a=i+t.length;e.setSelectionRange(a,a),e.dispatchEvent(new Event("input",{bubbles:!0}))}function Qf(e=document){e.querySelectorAll(Jc).forEach(Qc)}var Jc,Xf,rr=w(()=>{B();Jc="input[data-accept]",Xf={digits:{pattern:"[0-9]",inputmode:"numeric"},alpha:{pattern:"[a-zA-Z]",inputmode:"text"},alphanum:{pattern:"[a-zA-Z0-9]",inputmode:"text"},phone:{pattern:"[0-9+()\\- ]",inputmode:"tel"},date:{pattern:"[0-9/\\-.]",inputmode:"numeric"},hex:{pattern:"[0-9a-fA-F]",inputmode:"text"},currency:{pattern:"[0-9.,]",inputmode:"decimal"},cc:{pattern:"[0-9 \\-]",inputmode:"numeric"}};S(Jc,Qc)});var el={};E(el,{initToggleTags:()=>cr});function or(e){if(e.hasAttribute("data-toggle-tags-init"))return;e.setAttribute("data-toggle-tags-init","");let t=parseInt(e.dataset.max,10);if(!t||t<1)return;function i(){let s=e.querySelectorAll('input[type="checkbox"]'),n=e.querySelectorAll('input[type="checkbox"]:checked').length;s.forEach(r=>{r.checked||(r.disabled=n>=t)})}e.addEventListener("change",i),i()}function cr(e=document){e.querySelectorAll(ar).forEach(or)}var ar,tm,lr=w(()=>{ar="fieldset[data-toggle-tags][data-max]";document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>cr()):cr();tm=new MutationObserver(e=>{for(let t of e)for(let i of t.addedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i;s.matches(ar)&&or(s),s.querySelectorAll(ar).forEach(or)}});tm.observe(document.documentElement,{childList:!0,subtree:!0})});var nl={};E(nl,{initNumberSteppers:()=>sm});function sl(e){if(e.hasAttribute("data-stepper-init"))return;e.setAttribute("data-stepper-init","");let t=document.createElement("div");t.className="number-wrapper",e.parentNode.insertBefore(t,e);let i=document.createElement("button");i.type="button",i.className="number-dec",i.innerHTML=em,i.setAttribute("aria-label","Decrease"),i.tabIndex=-1;let s=document.createElement("button");s.type="button",s.className="number-inc",s.innerHTML=im,s.setAttribute("aria-label","Increase"),s.tabIndex=-1,t.appendChild(i),t.appendChild(e),t.appendChild(s);function n(a){let o=e.min!==""?parseFloat(e.min):-1/0,c=e.max!==""?parseFloat(e.max):1/0,l=parseFloat(e.step)||1,u=parseFloat(e.value)||0,d=(l.toString().split(".")[1]||"").length,h=parseFloat((u+l*a).toFixed(d)),p=Math.min(Math.max(h,o),c);e.value=p,e.dispatchEvent(new Event("input",{bubbles:!0})),e.dispatchEvent(new Event("change",{bubbles:!0})),r()}function r(){let a=e.min!==""?parseFloat(e.min):-1/0,o=e.max!==""?parseFloat(e.max):1/0,c=parseFloat(e.value)||0;i.disabled=c<=a,s.disabled=c>=o}i.addEventListener("click",()=>n(-1)),s.addEventListener("click",()=>n(1)),e.addEventListener("input",r),r()}function sm(e=document){e.querySelectorAll(il).forEach(sl)}var il,em,im,ur=w(()=>{B();il='input[type="number"][data-stepper]',em='<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="5" y1="12" x2="19" y2="12"/></svg>',im='<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>';S(il,sl)});var ul={};E(ul,{initSelectAll:()=>fr});function fr(e=document){e.querySelectorAll(pr).forEach(mr)}function mr(e){if(e.hasAttribute("data-select-all-init"))return;e.setAttribute("data-select-all-init","");let t=e.dataset.selectAll??"";if(!t)return;function i(){return(e.closest("[data-select-all-scope]")||e.closest("table, form, fieldset")||document).querySelectorAll(t)}function s(){let a=i(),o=a.length,c=0;a.forEach(d=>{d.checked&&c++}),c===0?(e.checked=!1,e.indeterminate=!1):c===o?(e.checked=!0,e.indeterminate=!1):(e.checked=!1,e.indeterminate=!0);let u=(e.closest("[data-select-all-scope]")||e.closest("table, form, fieldset")||document).querySelector("[data-selected-count]");u&&(u.textContent=String(c)),e.dispatchEvent(new CustomEvent("select-all:change",{bubbles:!0,detail:{checked:c,total:o,selected:[...a].filter(d=>d.checked)}}))}let n=!1;e.addEventListener("change",()=>{n=!0;let a=e.checked;i().forEach(c=>{c.checked=a,c.dispatchEvent(new Event("change",{bubbles:!0}))}),n=!1,e.indeterminate=!1,s()}),(e.closest("[data-select-all-scope]")||e.closest("table, form, fieldset")||document).addEventListener("change",a=>{n||a.target!==e&&a.target.matches?.(t)&&s()}),s()}var pr,lm,gr=w(()=>{pr="[data-select-all]";document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>fr()):fr();lm=new MutationObserver(e=>{for(let t of e)for(let i of t.addedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i;s.matches(pr)&&mr(s),s.querySelectorAll(pr).forEach(n=>mr(n))}});lm.observe(document.documentElement,{childList:!0,subtree:!0})});var hl={};E(hl,{initMath:()=>yr});function yr(e=document){e.querySelectorAll(br).forEach(vr)}function um(e){let t=e.getAttribute("data-math")||"";return new Set(t.split(/\s+/).filter(Boolean))}function vr(e){if(e.hasAttribute("data-math-init"))return;e.setAttribute("data-math-init",""),!e.hasAttribute("data-math")&&e.classList.contains("language-math")&&e.setAttribute("data-math","");let t=um(e),i=e.getAttribute("data-mathml"),s=e.textContent.trim(),n=t.has("inline");if(!i){e.setAttribute("data-math-state","source");return}let r=n?document.createElement("span"):document.createElement("div");r.setAttribute("data-math-rendered",""),r.innerHTML=i;let a=e.id||null;a&&(r.id=a,e.removeAttribute("id"));let o=r.querySelector("math");o&&!n&&o.setAttribute("display","block");let c=null;t.has("numbered")&&(dl++,c=dl,r.setAttribute("data-math-numbered",""),r.setAttribute("data-equation-number",String(c)),a&&window.VBMath?.equations.push({id:a,number:c,latex:s})),t.has("copyable")&&(r.setAttribute("data-math-copyable",""),r.style.cursor="copy",r.addEventListener("click",async()=>{try{await navigator.clipboard.writeText(s),hm("Copied to clipboard",r)}catch{}})),e.setAttribute("data-math-state","rendered"),e.insertAdjacentElement("afterend",r);let l=e.closest("pre");l?(l.setAttribute("data-math-state","rendered"),l.hidden=!0):e.hidden=!0,dm(),e.dispatchEvent(new CustomEvent("math:rendered",{bubbles:!0,detail:{latex:s,inline:n,number:c}}))}function dm(){if(document.querySelector("[data-vb-math-font]"))return;let e=document.createElement("link");e.rel="stylesheet",e.href="/fonts/math-fonts.css",e.setAttribute("data-vb-math-font",""),document.head.appendChild(e)}function hm(e,t){let i=document.createElement("div");i.setAttribute("role","status"),i.setAttribute("aria-live","polite"),i.className="visually-hidden",i.textContent=e,t.appendChild(i),setTimeout(()=>i.remove(),1e3)}var br,dl,pm,wr=w(()=>{br="[data-math], code.language-math",dl=0;window.VBMath=window.VBMath||{equations:[]};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>yr()):yr();pm=new MutationObserver(e=>{for(let t of e)for(let i of t.addedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i;s.matches(br)&&vr(s),s.querySelectorAll(br).forEach(vr)}});pm.observe(document.documentElement,{childList:!0,subtree:!0})});var kl={};E(kl,{WizardController:()=>di,initWizards:()=>Mr});function Lr(e){if(e.hasAttribute("data-wizard-enhanced"))return;let t=new di(e);e.wizardController=t,e.wizardGoTo=i=>t.goTo(i),e.wizardNext=()=>t.next(),e.wizardPrev=()=>t.prev(),e.wizardReset=()=>t.reset()}function Mr(){document.querySelectorAll("form[data-wizard]").forEach(e=>{Lr(e)})}function El(){new MutationObserver(t=>{for(let i of t)for(let s of i.addedNodes){if(s.nodeType!==Node.ELEMENT_NODE)continue;let n=s;n.matches("form[data-wizard]")&&Lr(n),n.querySelectorAll?.("form[data-wizard]:not([data-wizard-enhanced])").forEach(r=>{Lr(r)})}}).observe(document.documentElement,{childList:!0,subtree:!0})}var di,xl=w(()=>{di=class{#e;#t=[];#i=0;#s=null;#r=null;#n=null;#a=!1;#o="step";#l=null;#c="";#p=0;#m=0;constructor(t){if(!t||!(t instanceof HTMLFormElement))throw new Error("WizardController requires a form element");this.#e=t,this.#h()}#h(){if(this.#t=Array.from(this.#e.querySelectorAll("fieldset[data-wizard-step]")),this.#t.length===0){console.warn("Wizard form has no steps");return}this.#a=this.#e.hasAttribute("data-wizard-history"),this.#o=this.#e.getAttribute("data-wizard-validate")||"step",this.#d(),this.#s=this.#e.querySelector("[data-wizard-progress]"),this.#w(),this.#y(),this.#A(),this.#e.setAttribute("data-wizard-enhanced",""),this.#e.setAttribute("data-wizard-total",String(this.#t.length)),this.#I(),this.#C(),this.#N();let t=()=>{cancelAnimationFrame(this.#p),this.#p=requestAnimationFrame(()=>this.#T())};if(this.#e.addEventListener("change",t),this.#e.addEventListener("input",t),this.#l&&(this.#e.addEventListener("change",()=>this.#u()),this.#e.addEventListener("input",()=>this.#u())),this.#e.addEventListener("submit",i=>this.#k(i)),this.#e.addEventListener("reset",()=>{requestAnimationFrame(()=>this.reset())}),this.#a){let i=this.#B();i!==null&&i>=0&&i<this.#t.length&&(this.#i=i),window.addEventListener("hashchange",()=>{let s=this.#B();s!==null&&s!==this.#i&&this.goTo(s)})}this.#g(),this.#T(),this.#F()}#d(){let t=this.#e.getAttribute("data-wizard-persist");if(t){if(!this.#e.id){console.warn("Wizard persistence requires an id on the form element");return}this.#c=`vb-wizard:${this.#e.id}`,t==="local"?this.#l=localStorage:this.#l=sessionStorage}}#f(){if(!this.#l)return;let t={},i=new FormData(this.#e);for(let[s,n]of i.entries())t[s]!==void 0?(Array.isArray(t[s])||(t[s]=[t[s]]),t[s].push(n)):t[s]=n;try{this.#l.setItem(this.#c,JSON.stringify({step:this.#i,data:t}))}catch{}}#u(){this.#l&&(cancelAnimationFrame(this.#m),this.#m=requestAnimationFrame(()=>this.#f()))}#g(){if(this.#l)try{let t=this.#l.getItem(this.#c);if(!t)return;let i=JSON.parse(t);if(!i||typeof i!="object")return;if(i.data&&typeof i.data=="object")for(let[s,n]of Object.entries(i.data)){let r=this.#e.elements.namedItem(s);if(r)if(r instanceof RadioNodeList)r.value=n;else if(r instanceof HTMLInputElement)if(r.type==="checkbox"){let a=Array.isArray(n)?n:[n];r.checked=a.includes(r.value||"on")}else r.type==="radio"?r.checked=r.value===n:r.value=n;else(r instanceof HTMLSelectElement||r instanceof HTMLTextAreaElement)&&(r.value=n)}typeof i.step=="number"&&i.step>=0&&i.step<this.#t.length&&(this.#i=i.step)}catch{}}#b(){this.#l&&(cancelAnimationFrame(this.#m),this.#l.removeItem(this.#c))}#k(t){let i=this.#_();this.#i===i.length-1&&(this.#z("wizard:complete"),this.#b())}#A(){this.#r=document.createElement("div"),this.#r.setAttribute("role","status"),this.#r.setAttribute("aria-live","polite"),this.#r.setAttribute("aria-atomic","true"),this.#r.setAttribute("data-wizard-status",""),this.#e.prepend(this.#r)}#w(){let t=this.#e.getAttribute("data-wizard-steps");if(t){this.#n=document.querySelector(t);return}this.#n=this.#e.querySelector("nav.steps")}#y(){if(!this.#n)return;let t=this.#n.querySelector("ol");if(!(!t||t.children.length>0))for(let i of this.#t){let s=i.querySelector("legend"),n=document.createElement("li");n.textContent=s?.textContent||`Step ${this.#t.indexOf(i)+1}`,t.appendChild(n)}}#E(){if(!this.#n)return;let t=Array.from(this.#n.querySelectorAll("ol > li")),i=this.#_(),s=0;for(let n=0;n<this.#t.length;n++){let r=this.#t[n],a=t[s];if(!a)break;if(r.hasAttribute("data-wizard-hidden")){a.setAttribute("hidden","");continue}else a.removeAttribute("hidden");let o=i.indexOf(r);if(a.removeAttribute("data-completed"),a.removeAttribute("aria-current"),a.removeAttribute("aria-disabled"),o<this.#i){a.setAttribute("data-completed",""),this.#v(a,o);let c=a.querySelector("a");if(c){let u=r.querySelector("legend")?.textContent||`Step ${o+1}`;c.setAttribute("aria-label",`Go to ${u} (completed)`)}}else o===this.#i?a.setAttribute("aria-current","step"):a.setAttribute("aria-disabled","true");s++}for(let n of t){if(n.hasAttribute("hidden"))continue;let r=n.querySelector("a, button")||n,a=n.hasAttribute("aria-current");r.setAttribute("tabindex",a?"0":"-1")}}#v(t,i){if(t.hasAttribute("data-wizard-nav-bound"))return;t.setAttribute("data-wizard-nav-bound","");let s=t.querySelector("a, button")||t;s.addEventListener("click",n=>{n.preventDefault(),this.goTo(i)}),s===t&&!t.getAttribute("tabindex")&&(t.setAttribute("tabindex","0"),t.setAttribute("role","button"),t.addEventListener("keydown",n=>{(n.key==="Enter"||n.key===" ")&&(n.preventDefault(),this.goTo(i))}))}#C(){let t=this.#e.querySelector("[data-wizard-prev]"),i=this.#e.querySelector("[data-wizard-next]");t?.addEventListener("click",s=>{s.preventDefault(),this.prev()}),i?.addEventListener("click",s=>{s.preventDefault(),this.next()})}#I(){if(this.#e.querySelector("[data-wizard-nav]"))return;let t=document.createElement("nav");t.setAttribute("data-wizard-nav","");let i=document.createElement("button");i.type="button",i.setAttribute("data-wizard-prev",""),i.textContent="Back";let s=document.createElement("button");s.type="button",s.setAttribute("data-wizard-next",""),s.textContent="Next";let n=document.createElement("button");n.type="submit",n.textContent="Submit",t.append(i,s,n),this.#e.appendChild(t)}#N(){this.#n&&this.#n.addEventListener("keydown",t=>{if(!this.#n)return;let i=Array.from(this.#n.querySelectorAll("ol > li:not([hidden])")),s=t.target.closest("li"),n=s?i.indexOf(s):-1;if(n===-1)return;let r;switch(t.key){case"ArrowRight":case"ArrowDown":r=Math.min(n+1,i.length-1);break;case"ArrowLeft":case"ArrowUp":r=Math.max(n-1,0);break;case"Home":r=0;break;case"End":r=i.length-1;break;default:return}t.preventDefault();let a=i[n].querySelector("a, button")||i[n],o=i[r].querySelector("a, button")||i[r];a.setAttribute("tabindex","-1"),o.setAttribute("tabindex","0"),o.focus()})}#_(){return this.#t.filter(t=>!t.hasAttribute("data-wizard-hidden"))}#O(){return this.#_()[this.#i]}#F(){let t=this.#_();this.#t.forEach(n=>{n.removeAttribute("data-wizard-active")});let i=t[this.#i];i&&i.setAttribute("data-wizard-active","");let s=this.#i+1;this.#e.setAttribute("data-wizard-current",String(s)),this.#e.setAttribute("data-wizard-total",String(t.length)),this.#i===t.length-1?this.#e.setAttribute("data-wizard-last",""):this.#e.removeAttribute("data-wizard-last"),this.#D(),this.#E(),this.#a&&this.#L(),this.#$(),this.#x()}#D(){if(!this.#s)return;let t=this.#_();this.#s.max=t.length,this.#s.value=this.#i+1}#L(){let t=`#step=${this.#i+1}`;window.location.hash!==t&&history.replaceState(null,"",t)}#B(){let i=window.location.hash.match(/step=(\d+)/);return i?parseInt(i[1],10)-1:null}#$(){if(!this.#r)return;let s=this.#O()?.querySelector("legend")?.textContent||`Step ${this.#i+1}`,n=this.#_();this.#r.textContent=`Now on step ${this.#i+1} of ${n.length}: ${s}`}#S(){if(this.#o==="none")return!0;let t=this.#O();if(!t||t.hasAttribute("data-wizard-optional"))return!0;let i=t.querySelectorAll("input, select, textarea"),s=!0;for(let n of i){let r=n;if(!r.checkValidity()){r.reportValidity(),s=!1;break}}return s}#T(){this.#t.forEach(i=>{let s=i.getAttribute("data-wizard-if");if(!s)return;this.#q(s)?i.removeAttribute("data-wizard-hidden"):i.setAttribute("data-wizard-hidden","")});let t=this.#_();this.#i>=t.length&&(this.#i=Math.max(0,t.length-1)),this.#F()}#q(t){return t.includes("||")?t.split("||").some(i=>this.#q(i.trim())):t.includes("&&")?t.split("&&").every(i=>this.#j(i.trim())):this.#j(t)}#j(t){let i=t.startsWith("!"),s=i?t.slice(1):t;if(s.includes(":")){let[o,c]=s.split(":"),l=c.startsWith("!"),u=l?c.slice(1):c,d=this.#M(o);return l?d!==u:d===u}let a=!!this.#M(s);return i?!a:a}#M(t){let i=this.#e.elements.namedItem(t);return i?i instanceof RadioNodeList?i.value:i instanceof HTMLInputElement?i.type==="checkbox"?i.checked?i.value||"true":"":i.value:i instanceof HTMLSelectElement||i instanceof HTMLTextAreaElement?i.value:"":""}#x(){let t=this.#O();if(!t||!t.hasAttribute("data-wizard-summary"))return;let i=t.querySelectorAll("[data-wizard-field]");if(i.length>0){for(let r of i){let a=r.getAttribute("data-wizard-field")||"";r.textContent=this.#M(a)||"\u2014"}return}let s=t.querySelector("[data-wizard-summary-list]");s||(s=document.createElement("dl"),s.setAttribute("data-wizard-summary-list",""),t.appendChild(s)),s.innerHTML="";let n=new Set;for(let r of this.#t){if(r===t||r.hasAttribute("data-wizard-hidden"))continue;let a=r.querySelectorAll("input, select, textarea");for(let o of a){let c=o.name;if(!c||n.has(c))continue;n.add(c);let l=this.#M(c);if(!l)continue;let u=this.#R(o),d=document.createElement("dt");d.textContent=u||c;let h=document.createElement("dd");h.textContent=l,s.append(d,h)}}}#R(t){if(t.id){let n=this.#e.querySelector(`label[for="${CSS.escape(t.id)}"]`);if(n)return n.textContent.trim()}let i=t.closest("label");if(i){let n=i.cloneNode(!0);n.querySelectorAll("input, select, textarea").forEach(a=>a.remove());let r=n.textContent.trim();if(r)return r}let s=t.closest("form-field");if(s){let n=s.querySelector("label");if(n)return n.textContent.trim()}return""}#z(t,i={}){this.#e.dispatchEvent(new CustomEvent(t,{bubbles:!0,detail:i}))}goTo(t){let i=this.#_();if(t<0||t>=i.length||t>this.#i&&!this.#S())return!1;let s=this.#i;return this.#i=t,this.#F(),this.#z("wizard:step-change",{from:s,to:t}),this.#u(),!0}next(){let t=this.#_();return this.#i>=t.length-1?!1:this.goTo(this.#i+1)}prev(){return this.#i<=0?!1:this.goTo(this.#i-1)}reset(){this.#i=0,this.#F(),this.#b(),this.#z("wizard:reset")}get currentStep(){return this.#i}get totalSteps(){return this.#_().length}get form(){return this.#e}};typeof document<"u"&&(document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{Mr(),El()}):(Mr(),El()))});var Cl={};E(Cl,{initMobileForms:()=>Sl});function Sl(e=document){return()=>{}}var Tl=w(()=>{typeof document<"u"&&Sl()});var Ml={};E(Ml,{activateTrap:()=>de,deactivateTrap:()=>pi,initFocusTraps:()=>Nr});function Nr(e=document){e.querySelectorAll(hi).forEach(t=>de(t))}function de(e){if(Ot.has(e))return;let t=document.activeElement,i=e.getAttribute("data-focus-trap")==="no-autofocus";function s(r){if(r.key!=="Tab")return;let a=Ll(e);if(!a.length)return;let o=a[0],c=a[a.length-1],l=document.activeElement;r.shiftKey&&l===o?(r.preventDefault(),c.focus()):!r.shiftKey&&l===c&&(r.preventDefault(),o.focus())}e.addEventListener("keydown",s);let n=()=>{e.removeEventListener("keydown",s)};Ot.set(e,{cleanup:n,previousFocus:t}),i||requestAnimationFrame(()=>{let r=e.querySelector("[autofocus]");if(r)r.focus();else{let a=Ll(e);a.length&&a[0].focus()}})}function pi(e){let t=Ot.get(e);t&&(t.cleanup(),Ot.delete(e),t.previousFocus&&t.previousFocus.isConnected&&t.previousFocus.focus())}function Ll(e){return[...e.querySelectorAll(Tm)].filter(t=>t.offsetParent!==null)}var hi,Tm,Ot,Lm,Nl=w(()=>{hi="[data-focus-trap]",Tm='a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"]):not([disabled])',Ot=new WeakMap;document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>Nr()):Nr();Lm=new MutationObserver(e=>{for(let t of e){for(let i of t.addedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i;s.matches(hi)&&de(s),s.querySelectorAll(hi).forEach(n=>de(n))}for(let i of t.removedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i;Ot.has(s)&&pi(s),s.querySelectorAll(hi).forEach(n=>{Ot.has(n)&&pi(n)})}if(t.type==="attributes"&&t.attributeName==="data-focus-trap"){let i=t.target;i.hasAttribute("data-focus-trap")?de(i):pi(i)}}});Lm.observe(document.documentElement,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-focus-trap"]})});var _m={};var Mm,Nm,_l=w(()=>{Mm=80,Nm=40;document.querySelectorAll("header[data-scroll-hide]").forEach(e=>{let t=0,i=!1,s=e.closest("main")??window,n=()=>s===window?window.scrollY:s.scrollTop,r=()=>{let a=n(),o=a-t;!i&&o>0&&a>Mm?(e.setAttribute("data-hidden",""),i=!0):i&&o<-Nm&&(e.removeAttribute("data-hidden"),i=!1),t=a};s.addEventListener("scroll",r,{passive:!0})})});var $l={};E($l,{initSpotlights:()=>Dl});function Dm(e){if(e.__vbSpotlight)return;e.__vbSpotlight=!0;let t=s=>{let n=e.getBoundingClientRect();e.style.setProperty("--spotlight-x",((s.clientX-n.left)/n.width*100).toFixed(1)+"%"),e.style.setProperty("--spotlight-y",((s.clientY-n.top)/n.height*100).toFixed(1)+"%")},i=()=>{e.style.setProperty("--spotlight-x","50%"),e.style.setProperty("--spotlight-y","50%")};e.addEventListener("mousemove",t,{passive:!0}),e.addEventListener("mouseleave",i,{passive:!0})}function Dl(e=document){e.querySelectorAll?.("[data-spotlight]").forEach(Dm)}var Il=w(()=>{Dl()});var Pl={};E(Pl,{getHotkeyActions:()=>Fl});function Im(e){if(ql.has(e))return;ql.add(e);let t=e.getAttribute("data-hotkey");if(!t)return;let i=e.getAttribute("data-hotkey-action")||"click",s=Bl[i]||Bl.click,n=e.hasAttribute("data-hotkey-global"),r=e.getAttribute("data-hotkey-label")||e.textContent?.trim()||t,a=e.getAttribute("data-hotkey-group")||"Page Actions",o=rt(t,()=>s(e),{global:n});Ol.set(e,{combo:t,label:r,group:a,unbind:o}),document.dispatchEvent(new CustomEvent("vb:command-registry-change",{detail:{action:"add",element:e}}))}function Fl(){let e=new Map;for(let[t,i]of Ol){let s=t;if(s.hidden||s.closest("[hidden]"))continue;let n=e.get(i.group)||[];n.push({label:i.label,shortcut:i.combo,element:t}),e.set(i.group,n)}return e}var $m,ql,Ol,Bl,Rl=w(()=>{B();Wt();$m="[data-hotkey]:not(kbd)",ql=new WeakSet,Ol=new Map,Bl={click(e){e.click()},focus(e){e.focus()},submit(e){let t=e.closest("form")||(e.tagName==="FORM"?e:null);t&&t.requestSubmit()},toggle(e){"open"in e?e.open=!e.open:e.hasAttribute("hidden")?e.removeAttribute("hidden"):e.setAttribute("hidden","")}};typeof window<"u"&&(window.__hotkeyActionRegistry={getHotkeyActions:Fl});S($m,Im)});var zl={};E(zl,{collectLinksByRel:()=>Om,upgradeBlankTargets:()=>Hl});function jl(e){return new Set((e.getAttribute("rel")||"").split(/\s+/).filter(Boolean))}function Bm(e,t){e.setAttribute("rel",[...t].join(" "))}function Hl(e=document){let t=document.documentElement?.dataset?.linkPrivacy==="strict";for(let i of e.querySelectorAll('a[href][target="_blank"]')){let s=jl(i),n=[...s].some(a=>qm.has(a)),r=!1;n||(s.add("noopener"),r=!0),t&&!s.has("noreferrer")&&(s.add("noreferrer"),r=!0),r&&Bm(i,s)}}function Om(e=document){let t=new Map;for(let i of e.querySelectorAll("a[rel]"))for(let s of jl(i)){let n=t.get(s)??[];n.push(i),t.set(s,n)}return t}var qm,Vl=w(()=>{qm=new Set(["opener","noopener","noreferrer"]);Hl(document)});var Gl={};E(Gl,{initResponsiveImages:()=>Wl});function Pm(e,t){let i=e.lastIndexOf(".");if(i===-1)return"";let s=e.substring(0,i),n=e.substring(i);return t.map(r=>`${s}-${r}${n} ${r}w`).join(", ")}function Rm(e){let t=document.createElement("span");t.setAttribute("aria-hidden","true"),Object.assign(t.style,{position:"absolute",top:"4px",left:"4px",padding:"2px 6px",fontSize:"11px",fontFamily:"monospace",lineHeight:"1.4",background:"oklch(0.15 0 0 / 0.8)",color:"#0f0",borderRadius:"3px",zIndex:"1",pointerEvents:"none"});function i(){let r=(e.currentSrc||e.src).split("/").pop(),a=e.naturalWidth;t.textContent=`${r} (${a}px)`}e.addEventListener("load",i),e.complete&&i();let s=e.parentElement;return getComputedStyle(s).position==="static"&&(s.style.position="relative"),s.insertBefore(t,e),t}function jm(e){new ResizeObserver(i=>{for(let s of i){let n=Math.round(s.contentBoxSize?.[0]?.inlineSize??s.contentRect.width);n>0&&(e.sizes=`${n}px`)}}).observe(e)}function Wl(e){if(Ul.has(e))return;Ul.add(e);let t=e.getAttribute("data-responsive");if(t){let i=t.split(",").map(s=>parseInt(s.trim(),10)).filter(s=>s>0);i.length&&e.src&&(e.srcset=Pm(e.src,i))}e.srcset&&e.srcset.includes("w")&&jm(e),e.hasAttribute("loading")||(e.loading="lazy"),e.hasAttribute("decoding")||(e.decoding="async"),e.hasAttribute("data-responsive-debug")&&Rm(e)}var Fm,Ul,Yl=w(()=>{B();Fm="img[data-responsive]",Ul=new WeakSet;S(Fm,Wl)});var Zl={};E(Zl,{initFloatingLabels:()=>Xl});function Xl(e){if(Kl.has(e))return;Kl.add(e);let t=e.querySelector("input, textarea, select");t&&(t.hasAttribute("placeholder")||t.setAttribute("placeholder"," "),e.setAttribute("data-floating-label-ready",""))}var Hm,Kl,Jl=w(()=>{B();Hm="form-field[data-floating-label]",Kl=new WeakSet;S(Hm,Xl)});var tu={};E(tu,{activate:()=>_r,deactivate:()=>fi});function _r(e){if(e.getAttribute("aria-busy")==="true")return;e._vbLoadingOriginal=e.innerHTML,e._vbLoadingWidth=e.offsetWidth,e.style.minInlineSize=`${e._vbLoadingWidth}px`;let t=e.getAttribute("data-loading"),i=document.createElement("span");i.className="vb-btn-spinner",i.setAttribute("aria-hidden","true");let s=document.createElement("span");t?s.textContent=t:(s.className="visually-hidden",s.textContent=e.textContent.trim()),e.replaceChildren(i," ",s),e.setAttribute("aria-busy","true"),e.setAttribute("aria-disabled","true"),e.dataset.loadingActive="";let n=parseInt(e.getAttribute("data-loading-timeout"),10)||Vm;e._vbLoadingTimer=setTimeout(()=>fi(e),n)}function fi(e){e.getAttribute("aria-busy")==="true"&&(clearTimeout(e._vbLoadingTimer),e._vbLoadingOriginal!=null&&(e.innerHTML=e._vbLoadingOriginal,delete e._vbLoadingOriginal),e.style.minInlineSize="",e.removeAttribute("aria-busy"),e.removeAttribute("aria-disabled"),delete e.dataset.loadingActive)}function Um(e){if(Ql.has(e))return;Ql.add(e),e.addEventListener("click",s=>{e.getAttribute("aria-busy")==="true"&&(s.preventDefault(),s.stopImmediatePropagation())},!0);let t=e.form;t&&e.type==="submit"&&(t.addEventListener("submit",n=>{let r=n.submitter;(r?r===e:t.querySelector('button[type="submit"], button:not([type]), input[type="submit"]')===e)&&_r(e)}),new MutationObserver(()=>{!t.hasAttribute("data-submitting")&&e.getAttribute("aria-busy")==="true"&&fi(e)}).observe(t,{attributes:!0,attributeFilter:["data-submitting"]})),new MutationObserver(()=>{e.hasAttribute("data-loading-active")?_r(e):e.getAttribute("aria-busy")==="true"&&fi(e)}).observe(e,{attributes:!0,attributeFilter:["data-loading-active"]})}var zm,Ql,Vm,eu=w(()=>{B();zm="button[data-loading]",Ql=new WeakSet,Vm=1e4;S(zm,Um)});var su={};E(su,{initEmailForm:()=>qr});function Wm(e){let t={};for(let i of e.elements){let s=i;s.name&&(s.type==="password"||s.type==="file"||(s.type==="checkbox"?t[s.name]=s.checked:s.type==="radio"?s.checked&&(t[s.name]=s.value):t[s.name]=s.value))}return t}async function Gm(e){let t=e.currentTarget,i=t.getAttribute("data-vb-email-form"),s=t.getAttribute("data-vb-email-to");if(!i||(e.preventDefault(),t.hasAttribute(Dr)))return;t.setAttribute(Dr,"");let n=t.querySelector('button[type="submit"], button:not([type])'),r=n?.textContent;n&&(n.disabled=!0,t.dataset.vbEmailLoadingLabel&&(n.textContent=t.dataset.vbEmailLoadingLabel)),t.dispatchEvent(new CustomEvent("vb-email-form:submitting",{bubbles:!0,composed:!0,detail:{template:i}}));let a=Wm(t);try{let c=await new R("email").post("/",{to:s||a.to||a.email,template:i,data:a});t.dispatchEvent(new CustomEvent("vb-email-form:success",{bubbles:!0,composed:!0,detail:{id:c?.id}})),t.hasAttribute("data-vb-email-no-reset")||t.reset(),iu(t,"success")}catch(o){let c={error:o};o instanceof I&&(c.status=o.status,c.body=o.body),t.dispatchEvent(new CustomEvent("vb-email-form:error",{bubbles:!0,composed:!0,detail:c})),iu(t,"error")}finally{t.removeAttribute(Dr),n&&(n.disabled=!1,r&&(n.textContent=r))}}function iu(e,t){let i=e.querySelector("[data-vb-email-status]");if(!i)return;let s=e.dataset.vbEmailSuccess||"Sent. Thank you.",n=e.dataset.vbEmailError||"Sorry, the message could not be sent. Try again.";i.dataset.state=t,i.textContent=t==="success"?s:n}function Ir(e){e.hasAttribute("data-vb-email-form-init")||(e.setAttribute("data-vb-email-form-init",""),e.addEventListener("submit",Gm))}function qr(e=document){for(let t of e.querySelectorAll($r))Ir(t)}var $r,Dr,Ym,nu=w(()=>{$t();$r="form[data-vb-email-form]",Dr="data-vb-email-submitting";document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>qr()):qr();Ym=new MutationObserver(e=>{for(let t of e)for(let i of t.addedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i;s.matches?.($r)&&Ir(s),s.querySelectorAll?.($r).forEach(n=>Ir(n))}});Ym.observe(document.documentElement,{childList:!0,subtree:!0})});var uu={};E(uu,{initNewsletterForm:()=>jr});function cu(e){let t=(e.getAttribute("data-vb-newsletter-form")||"subscribe").trim();return Km.includes(t)?t:"subscribe"}function ru(e){let t=[...e.querySelectorAll('input[type="checkbox"][name="lists"]')].filter(s=>s.checked).map(s=>s.value);return t.length?t:(e.getAttribute("data-vb-newsletter-lists")||"").split(",").map(s=>s.trim()).filter(Boolean)}function lu(e){return e.querySelector('input[name="email"]')}function Or(e,t,i){let s=e.querySelector("[data-vb-newsletter-status]");s&&(s.dataset.state=t,s.textContent=i)}function au(e,t,i){return i==="error"?e.dataset.vbNewsletterError||"Sorry, that did not work. Try again.":t==="unsubscribe"?e.dataset.vbNewsletterUnsubscribed||"Unsubscribed.":t==="preferences"?e.dataset.vbNewsletterSaved||"Preferences saved.":e.dataset.vbNewsletterSubscribed||"Subscribed. Check your inbox."}function ou(e,t){let i=e.querySelector('button[type="submit"], button:not([type])');i&&(t?(i.dataset.vbNewsletterPrevLabel=i.textContent||"",i.disabled=!0,e.dataset.vbNewsletterLoadingLabel&&(i.textContent=e.dataset.vbNewsletterLoadingLabel)):(i.disabled=!1,i.dataset.vbNewsletterPrevLabel!=null&&(i.textContent=i.dataset.vbNewsletterPrevLabel,delete i.dataset.vbNewsletterPrevLabel)))}async function mi(e,t,i){let s=new R("newsletter");if(e==="POST")return s.post(t,i);if(e==="GET")return s.get(t,i);throw new Error(`unsupported method ${e}`)}async function Xm(e,t,i,s){if(!s.length&&t!=="preferences")throw new Error("No lists selected.");return mi("POST",t==="unsubscribe"?"/unsubscribe":"/subscribe",{email:i,lists:s})}async function Zm(e,t){if(t)try{let i=await mi("GET","/preferences",{email:t});if(!i)return;let s=new Set(i.subscriptions||[]);for(let n of e.querySelectorAll('input[type="checkbox"][name="lists"]')){let r=n;r.checked=s.has(r.value)}e.dispatchEvent(new CustomEvent("vb-newsletter-form:preferences",{bubbles:!0,composed:!0,detail:{email:t,subscriptions:i.subscriptions,available:i.available}}))}catch(i){if(i instanceof I&&i.status===404)return;console.warn("[newsletter-form] preferences fetch failed",i)}}function Pr(e){return new Set([...e.querySelectorAll('input[type="checkbox"][name="lists"]')].filter(t=>t.checked).map(t=>t.value))}async function Jm(e,t){let i=e.__vbNewsletterSnapshot??new Set,s=Pr(e),n=[...s].filter(o=>!i.has(o)),r=[...i].filter(o=>!s.has(o)),a={};return n.length&&(a.subscribe=await mi("POST","/subscribe",{email:t,lists:n})),r.length&&(a.unsubscribe=await mi("POST","/unsubscribe",{email:t,lists:r})),e.__vbNewsletterSnapshot=Pr(e),a}async function Qm(e){let t=e.currentTarget,i=cu(t),s=lu(t)?.value?.trim();if(e.preventDefault(),!s){Or(t,"error","Email is required.");return}if(!t.hasAttribute(Br)){t.setAttribute(Br,""),ou(t,!0),t.dispatchEvent(new CustomEvent("vb-newsletter-form:submitting",{bubbles:!0,composed:!0,detail:{mode:i}}));try{let n;if(i==="preferences")n=await Jm(t,s);else{let r=ru(t);n=await Xm(t,i,s,r)}t.dispatchEvent(new CustomEvent("vb-newsletter-form:success",{bubbles:!0,composed:!0,detail:{mode:i,lists:ru(t),response:n}})),Or(t,"success",au(t,i,"success")),i==="subscribe"&&!t.hasAttribute("data-vb-newsletter-no-reset")&&t.reset()}catch(n){let r={mode:i,error:n};n instanceof I&&(r.status=n.status,r.body=n.body),t.dispatchEvent(new CustomEvent("vb-newsletter-form:error",{bubbles:!0,composed:!0,detail:r}));let a=n instanceof Error&&n.message==="No lists selected."?"Pick at least one list.":au(t,i,"error");Or(t,"error",a)}finally{t.removeAttribute(Br),ou(t,!1)}}}function Rr(e){if(!e.hasAttribute("data-vb-newsletter-form-init")&&(e.setAttribute("data-vb-newsletter-form-init",""),e.addEventListener("submit",Qm),cu(e)==="preferences")){let t=lu(e);if(t){let i=async()=>{let s=t.value.trim();s&&(await Zm(e,s),e.__vbNewsletterSnapshot=Pr(e))};t.addEventListener("change",i),t.addEventListener("blur",i)}}}function jr(e=document){for(let t of e.querySelectorAll(Fr))Rr(t)}var Fr,Br,Km,tg,du=w(()=>{$t();Fr="form[data-vb-newsletter-form]",Br="data-vb-newsletter-submitting",Km=["subscribe","unsubscribe","preferences"];document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>jr()):jr();tg=new MutationObserver(e=>{for(let t of e)for(let i of t.addedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i;s.matches?.(Fr)&&Rr(s),s.querySelectorAll?.(Fr).forEach(n=>Rr(n))}});tg.observe(document.documentElement,{childList:!0,subtree:!0})});function eg(e,t){let i=Number(e);return!Number.isFinite(i)||t<=0?1:Math.min(Math.max(1,Math.floor(i)),t)}function ig({page:e,size:t}){let i=(e-1)*t;return{start:i,end:i+t}}function sg(e,t,i=2){if(t<=0)return[];if(t===1)return[1];let s=Math.max(2,e-i),n=Math.min(t-1,e+i),r=[1];s>2&&r.push("\u2026");for(let a=s;a<=n;a++)r.push(a);return n<t-1&&r.push("\u2026"),r.push(t),r}function Hr({total:e,size:t,page:i,window:s=2}){if(t<=0)return{page:(e>0,1),totalPages:e>0?1:0,start:0,end:e,pageNumbers:e>0?[1]:[]};let n=e>0?Math.ceil(e/t):0,r=eg(i,n),a=ig({page:r,size:t}),o=Math.min(a.end,e);return{page:r,totalPages:n,start:a.start,end:o,pageNumbers:sg(r,n,s)}}var hu=w(()=>{});function zr(e){switch(e.style){case"load-more":return ag(e);case"prev-next":return rg(e);default:return ng(e)}}function Vr(){let e=document.createElement("nav");return e.setAttribute("data-paged-nav",""),e.setAttribute("aria-label","Pagination"),e}function ng({page:e,totalPages:t,pageNumbers:i,prevLabel:s="Previous",nextLabel:n="Next"}){let r=Vr(),a=document.createElement("ol");a.setAttribute("role","list"),a.appendChild(he(s,e-1,e===1,!1,"prev"));for(let o of i)if(o==="\u2026"){let c=document.createElement("li");c.textContent="\u2026",c.setAttribute("aria-hidden","true"),c.setAttribute("data-paged-ellipsis",""),a.appendChild(c)}else a.appendChild(he(String(o),o,!1,o===e,"page"));return a.appendChild(he(n,e+1,e===t,!1,"next")),r.appendChild(a),r}function rg({page:e,totalPages:t,prevLabel:i="Previous",nextLabel:s="Next"}){let n=Vr(),r=document.createElement("ol");r.setAttribute("role","list"),r.appendChild(he(i,e-1,e===1,!1,"prev"));let a=document.createElement("li");return a.setAttribute("data-paged-status",""),a.setAttribute("aria-live","polite"),a.textContent=`Page ${e} of ${t}`,r.appendChild(a),r.appendChild(he(s,e+1,e===t,!1,"next")),n.appendChild(r),n}function ag({total:e,visible:t,loadMoreLabel:i=n=>`Load more (${n})`,noMoreLabel:s="No more"}){let n=Vr(),r=document.createElement("button");r.type="button",r.setAttribute("data-paged-loadmore","");let a=e-t;return r.textContent=a>0?i(a):s,r.disabled=a<=0,n.appendChild(r),n}function he(e,t,i,s,n){let r=document.createElement("li"),a=document.createElement("button");return a.type="button",a.setAttribute("data-paged-action",n),a.dataset.pagedTarget=String(t),a.textContent=e,s&&a.setAttribute("aria-current","page"),i&&(a.disabled=!0),r.appendChild(a),r}function Ur(e,{onNavigate:t,onLoadMore:i}){t&&e.querySelectorAll("button[data-paged-target]").forEach(s=>{s.addEventListener("click",()=>t(parseInt(s.dataset.pagedTarget||"1",10)))}),i&&e.querySelectorAll("button[data-paged-loadmore]").forEach(s=>{s.addEventListener("click",()=>i())})}var pu=w(()=>{});var vu={};E(vu,{initDataPaged:()=>gu});function gu(e){if(fu.has(e))return;let t={host:e,nav:{before:null,after:null},sentinel:null,intersect:null,children:[],childObserver:null,visible:0};fu.set(e,t);let i=e.dataset.pagedUrl;if(i){let n=new URL(window.location.href).searchParams.get(i);n&&!e.hasAttribute("data-paged-page")&&e.setAttribute("data-paged-page",n),window.addEventListener("popstate",()=>{let a=new URL(window.location.href).searchParams.get(i);a&&e.setAttribute("data-paged-page",a)})}t.childObserver=new MutationObserver(()=>gi(t)),t.childObserver.observe(e,{childList:!0}),e.addEventListener("paged:goto",s=>yu(t,s.detail?.page??1)),e.addEventListener("paged:loadmore",()=>Gr(t)),gi(t)}function Wr(e){return{size:parseInt(e.dataset.pagedSize||"10",10)||0,page:parseInt(e.dataset.pagedPage||"1",10)||1,style:e.dataset.pagedStyle||"numbered",window:parseInt(e.dataset.pagedWindow||"2",10)||2,controls:e.dataset.pagedControls||"after",urlParam:e.dataset.pagedUrl||""}}function bu(e){if(e.tagName==="TABLE"){let t=e.querySelector(":scope > tbody");if(t)return Array.from(t.children)}return Array.from(e.children).filter(t=>!t.matches("nav[data-paged-nav], div[data-paged-sentinel]"))}function gi(e){let{host:t}=e,i=Wr(t),s=bu(t);e.children=s;let n=Hr({total:s.length,size:i.size,page:i.page,window:i.window}),r=i.style==="load-more"||i.style==="infinite";if(r){e.visible===0&&(e.visible=i.size||s.length);let a=Math.min(e.visible,s.length);s.forEach((o,c)=>{o.hidden=c>=a})}else s.forEach((a,o)=>{a.hidden=o<n.start||o>=n.end});cg(e,n,i,r),t.dispatchEvent(new CustomEvent("paged:change",{bubbles:!0,detail:{page:n.page,size:i.size,total:s.length,totalPages:n.totalPages}}))}function cg(e,t,i,s){if(e.nav.before?.remove(),e.nav.after?.remove(),e.sentinel?.remove(),e.intersect?.disconnect(),e.intersect=null,e.nav={before:null,after:null},i.controls==="none"&&!s)return;if(s){if(i.style==="load-more"){let r=zr({style:"load-more",page:t.page,totalPages:t.totalPages,pageNumbers:t.pageNumbers,total:e.children.length,visible:e.visible});mu(e,r,i)}else{let r=document.createElement("div");r.setAttribute("data-paged-sentinel",""),r.setAttribute("aria-hidden","true"),r.style.cssText="block-size:1px;inline-size:100%",e.host.parentNode?.insertBefore(r,e.host.nextSibling),e.sentinel=r,e.intersect=new IntersectionObserver(a=>{for(let o of a)o.isIntersecting&&Gr(e)},{rootMargin:"200px"}),e.intersect.observe(r)}return}if(t.totalPages<=1)return;let n=zr({style:i.style,page:t.page,totalPages:t.totalPages,pageNumbers:t.pageNumbers,total:e.children.length,visible:e.visible});mu(e,n,i)}function mu(e,t,i){let{host:s}=e,n={onNavigate:r=>yu(e,r),onLoadMore:()=>Gr(e)};if(i.controls==="before"||i.controls==="both"){let r=t.cloneNode(!0);Ur(r,n),s.parentNode?.insertBefore(r,s),e.nav.before=r}(i.controls==="after"||i.controls==="both"||i.controls==="none")&&(Ur(t,n),s.parentNode?.insertBefore(t,s.nextSibling),e.nav.after=t)}function yu(e,t){let{host:i}=e,s=Wr(i),n=bu(i),r=Hr({total:n.length,size:s.size,page:t,window:s.window});if(r.page!==s.page){if(i.setAttribute("data-paged-page",String(r.page)),s.urlParam){let a=new URL(window.location.href);a.searchParams.set(s.urlParam,String(r.page)),window.history.pushState({},"",a)}gi(e)}}function Gr(e){let i=Wr(e.host).size||10;e.visible=Math.min(e.visible+i,e.children.length),gi(e)}var og,fu,wu=w(()=>{B();hu();pu();og="[data-paged]",fu=new WeakMap;S(og,gu)});function pe(e){if(!e)return null;let t=String(e);return t.startsWith("-")?{key:t.slice(1),direction:"desc"}:t.startsWith("+")?{key:t.slice(1),direction:"asc"}:{key:t,direction:"asc"}}function lg(e,t){let i=t==="desc"?-1:1,s=Au[e]||Au.text;return(n,r)=>{let a=ku(n),o=ku(r);return a&&o?0:a?1:o?-1:i*s(n,r)}}function xu(e,t,i,s){let n=lg(i,s),r=Array.from({length:e.length},(a,o)=>o);return r.sort((a,o)=>{let c=n(t(e[a]),t(e[o]));return c===0?a-o:c}),r}function Su(e){return e==="asc"?"desc":e==="desc"?"none":"asc"}function Eu(e){return e instanceof Date?e.getTime():Date.parse(String(e))}function ku(e){return e==null||e===""}var Au,Cu=w(()=>{Au={text(e,t){return String(e).localeCompare(String(t),void 0,{sensitivity:"base",numeric:!0})},number(e,t){let i=Number(e),s=Number(t);return Number.isNaN(i)&&Number.isNaN(s)?0:Number.isNaN(i)?1:Number.isNaN(s)||i<s?-1:i>s?1:0},date(e,t){let i=Eu(e),s=Eu(t);return Number.isNaN(i)&&Number.isNaN(s)?0:Number.isNaN(i)?1:Number.isNaN(s)||i<s?-1:i>s?1:0}}});var Mu={};E(Mu,{initDataSortable:()=>Lu});function Lu(e){if(bi.has(e))return;bi.add(e),e.tagName==="TABLE"&&dg(e);let i=e.dataset.sortableDefault;if(i&&!e.dataset.sortBy){let s=pe(i);s&&kt(e,s.key,s.direction)}}function dg(e){e.querySelectorAll(":scope > thead th[data-sort]").forEach(i=>{i.setAttribute("role","button"),i.setAttribute("tabindex","0"),i.style.cursor="pointer";let s=()=>{let n=i.dataset.sort;if(!n)return;let r=e.dataset.sortBy===n?e.dataset.sortDirection:"none",a=Su(r||"none");a==="none"?kt(e,"","none"):kt(e,n,a,i.dataset.sortType)};i.addEventListener("click",s),i.addEventListener("keydown",n=>{(n.key==="Enter"||n.key===" ")&&(n.preventDefault(),s())})})}function hg(){return document.querySelectorAll("[data-sort-target]")}function Yr(){for(let e of hg()){if(bi.has(e))continue;bi.add(e);let t=e.getAttribute("data-sort-target");if(!t)continue;let i=document.querySelector(t);if(!(!i||!i.matches("[data-sortable]")))if(e.tagName==="SELECT"){e.addEventListener("change",()=>{let n=e.value,r=pe(n);if(!r){kt(i,"","none");return}kt(i,r.key,r.direction)});let s=e.value;if(s){let n=pe(s);n&&kt(i,n.key,n.direction)}}else e.addEventListener("click",()=>{let s=e.getAttribute("data-sort-by")||"",n=pe(s);n&&kt(i,n.key,n.direction)})}}function pg(e,t,i,s={}){if(s.isTable){let r=s.colIndex,a=e.children[r];if(!a)return"";if(a.dataset.value!=null)return a.dataset.value;if(i==="date"){let o=a.querySelector("time[datetime]");if(o)return o.getAttribute("datetime")||""}return(a.textContent||"").trim()}let n=e.dataset[`sort${fg(t)}`];return n??(e.dataset.value!=null?e.dataset.value:(e.textContent||"").trim())}function fg(e){return e?e[0].toUpperCase()+e.slice(1):""}function mg(e){if(e.tagName==="TABLE"){let t=e.querySelector(":scope > tbody");return t?Array.from(t.children):[]}return Array.from(e.children)}function gg(e,t){return Array.from(e.querySelectorAll(":scope > thead th")).findIndex(s=>s.dataset.sort===t)}function kt(e,t,i,s){let n=e.tagName==="TABLE",r=mg(e);if(i==="none"||!t){e.removeAttribute("data-sort-by"),e.dataset.sortDirection="none",n&&Tu(e,"","none"),e.dispatchEvent(new CustomEvent("sort:change",{bubbles:!0,detail:{key:"",direction:"none",total:r.length}}));return}let a=bg(e,t,s),o=n?gg(e,t):-1,c=xu(r,u=>pg(u,t,a,{isTable:n,colIndex:o}),a,i),l=n?e.querySelector(":scope > tbody"):e;if(l){for(let u of c)l.appendChild(r[u]);e.dataset.sortBy=t,e.dataset.sortDirection=i,n&&Tu(e,t,i),e.hasAttribute("data-paged")&&e.dispatchEvent(new CustomEvent("paged:goto",{detail:{page:1}})),e.dispatchEvent(new CustomEvent("sort:change",{bubbles:!0,detail:{key:t,direction:i,total:r.length}}))}}function bg(e,t,i){if(i==="text"||i==="number"||i==="date")return i;if(e.tagName==="TABLE"){let r=e.querySelector(`:scope > thead th[data-sort="${yg(t)}"]`)?.dataset.sortType;if(r==="text"||r==="number"||r==="date")return r}let s=e.dataset.sortType;return s==="text"||s==="number"||s==="date"?s:"text"}function yg(e){return String(e).replace(/["\\]/g,"\\$&")}function Tu(e,t,i){e.querySelectorAll(":scope > thead th[data-sort]").forEach(n=>{n.dataset.sort===t&&i!=="none"?n.setAttribute("aria-sort",i==="asc"?"ascending":"descending"):n.setAttribute("aria-sort","none")})}var ug,bi,Nu=w(()=>{B();Cu();ug="[data-sortable]",bi=new WeakSet;S(ug,Lu);typeof document<"u"&&(document.readyState!=="loading"?Yr():document.addEventListener("DOMContentLoaded",Yr),S("[data-sort-target]",()=>Yr()))});function _u(e){if(!e)return null;let t=String(e).trim();if(!t)return null;if(t.startsWith("class:")){let i=t.slice(6).trim();return i?{kind:"class",name:i}:null}return{kind:"attr",name:t}}function fe(e){return vg.has(String(e).toLowerCase())}function Kr(e){return wg.has(String(e).toLowerCase())}function Du(e,t,i){if(e.kind==="class")return t?{present:!1}:{present:!0};if(fe(e.name))return t?{present:!1}:{present:!0,value:""};if(Kr(e.name))return{present:!0,value:t==="true"||t===!0?"false":"true"};let s=i.on??"true",n=i.off??"false";return{present:!0,value:t===s?n:s}}var vg,wg,$u=w(()=>{vg=new Set(["hidden","disabled","open","checked","readonly","required","multiple","selected","autofocus","autoplay","controls","defer","inert","loop","muted","nomodule","novalidate","playsinline","reversed"]),wg=new Set(["aria-pressed","aria-expanded","aria-selected","aria-checked"])});var Ou={};E(Ou,{initDataToggle:()=>Bu});function Bu(e){if(Iu.has(e))return;Iu.add(e);let t=_u(e.dataset.toggle);if(!t)return;let i=e.dataset.toggleTarget,s=i?document.querySelector(i):e;if(!s)return;let n=s!==e;n&&s.id&&e.setAttribute("aria-controls",s.id),t.kind==="attr"&&fe(t.name)&&!n&&e.setAttribute("aria-pressed",String(s.hasAttribute(t.name))),qu(e,s,t),e.addEventListener("click",r=>{r.preventDefault();let a={on:e.dataset.toggleOn,off:e.dataset.toggleOff},o;t.kind==="class"?o=s.classList.contains(t.name):fe(t.name)?o=s.hasAttribute(t.name):o=s.getAttribute(t.name);let c=Du(t,o,a);t.kind==="class"?c.present?s.classList.add(t.name):s.classList.remove(t.name):c.present?s.setAttribute(t.name,c.value??""):s.removeAttribute(t.name),!n&&fe(t.name)&&e.setAttribute("aria-pressed",String(c.present)),!n&&Kr(t.name),qu(e,s,t,c),e.dispatchEvent(new CustomEvent("toggle:change",{bubbles:!0,detail:{spec:t.kind==="class"?`class:${t.name}`:t.name,value:c.value,present:c.present,target:s}}))})}function qu(e,t,i,s){if(t===e)return;let n=t.hasAttribute("popover"),r=i.kind==="attr"&&i.name.startsWith("data-")&&(e.dataset.toggleOn||"").toLowerCase()==="open";if(!n&&!r)return;let a;s?a=n?s.present:s.value==="open":a=n?t.matches(":popover-open"):t.getAttribute(i.name)==="open",e.setAttribute("aria-expanded",String(a))}var Ag,Iu,Fu=w(()=>{B();$u();Ag="[data-toggle]",Iu=new WeakSet;S(Ag,Bu)});var zu={};E(zu,{EMOJI_ALIASES:()=>ju,EMOJI_GROUPS:()=>Eg,EMOJI_GROUP_ICONS:()=>xg,EMOJI_GROUP_LABELS:()=>kg,EMOJI_MAP:()=>me,getByGroup:()=>Cg,resolveEmoji:()=>Sg,searchEmoji:()=>Tg});function Hu(e){for(let[t,i,s,n]of e){if(me.has(t))continue;let r={shortcode:t,emoji:i,name:s,keywords:[],group:n};me.set(t,r),vi.push(r)}}function Sg(e){let t=me.get(e);if(t)return t;let i=ju.get(e);return i&&me.get(i)||null}function Cg(e){let t=yi.filter(s=>s.group===e),i=vi.filter(s=>s.group===e);return i.length>0?t.concat(i):t}function Tg(e){let t=e.toLowerCase().trim(),i=vi.length>0?yi.concat(vi):yi;return t?i.filter(s=>s.shortcode.includes(t)||s.name.toLowerCase().includes(t)||s.keywords&&s.keywords.some(n=>n.includes(t))):i}var yi,me,ju,Eg,kg,xg,vi,Vu=w(()=>{yi=[{shortcode:"smile",emoji:"\u{1F604}",name:"Smiling Face with Open Mouth",keywords:["happy","joy","laugh"],group:"smileys"},{shortcode:"grinning",emoji:"\u{1F600}",name:"Grinning Face",keywords:["happy","smile"],group:"smileys"},{shortcode:"laughing",emoji:"\u{1F606}",name:"Grinning Squinting Face",keywords:["happy","laugh"],group:"smileys"},{shortcode:"sweat_smile",emoji:"\u{1F605}",name:"Grinning Face with Sweat",keywords:["hot","relief"],group:"smileys"},{shortcode:"rofl",emoji:"\u{1F923}",name:"Rolling on the Floor Laughing",keywords:["lol","funny"],group:"smileys"},{shortcode:"joy",emoji:"\u{1F602}",name:"Face with Tears of Joy",keywords:["happy","cry","laugh"],group:"smileys"},{shortcode:"slightly_smiling_face",emoji:"\u{1F642}",name:"Slightly Smiling Face",keywords:["smile"],group:"smileys"},{shortcode:"upside_down_face",emoji:"\u{1F643}",name:"Upside-Down Face",keywords:["sarcasm","silly"],group:"smileys"},{shortcode:"wink",emoji:"\u{1F609}",name:"Winking Face",keywords:["flirt","joke"],group:"smileys"},{shortcode:"blush",emoji:"\u{1F60A}",name:"Smiling Face with Smiling Eyes",keywords:["happy","shy"],group:"smileys"},{shortcode:"innocent",emoji:"\u{1F607}",name:"Smiling Face with Halo",keywords:["angel","good"],group:"smileys"},{shortcode:"heart_eyes",emoji:"\u{1F60D}",name:"Smiling Face with Heart-Eyes",keywords:["love","crush"],group:"smileys"},{shortcode:"star_struck",emoji:"\u{1F929}",name:"Star-Struck",keywords:["wow","amazing"],group:"smileys"},{shortcode:"kissing_heart",emoji:"\u{1F618}",name:"Face Blowing a Kiss",keywords:["love","kiss"],group:"smileys"},{shortcode:"yum",emoji:"\u{1F60B}",name:"Face Savoring Food",keywords:["delicious","tasty"],group:"smileys"},{shortcode:"stuck_out_tongue",emoji:"\u{1F61B}",name:"Face with Tongue",keywords:["playful","silly"],group:"smileys"},{shortcode:"stuck_out_tongue_winking_eye",emoji:"\u{1F61C}",name:"Winking Face with Tongue",keywords:["silly","playful"],group:"smileys"},{shortcode:"zany_face",emoji:"\u{1F92A}",name:"Zany Face",keywords:["crazy","wild"],group:"smileys"},{shortcode:"hugs",emoji:"\u{1F917}",name:"Hugging Face",keywords:["hug","warm"],group:"smileys"},{shortcode:"thinking",emoji:"\u{1F914}",name:"Thinking Face",keywords:["hmm","consider"],group:"smileys"},{shortcode:"shushing_face",emoji:"\u{1F92B}",name:"Shushing Face",keywords:["quiet","secret"],group:"smileys"},{shortcode:"smirk",emoji:"\u{1F60F}",name:"Smirking Face",keywords:["sly","suggestive"],group:"smileys"},{shortcode:"unamused",emoji:"\u{1F612}",name:"Unamused Face",keywords:["bored","unimpressed"],group:"smileys"},{shortcode:"roll_eyes",emoji:"\u{1F644}",name:"Face with Rolling Eyes",keywords:["annoyed","whatever"],group:"smileys"},{shortcode:"grimacing",emoji:"\u{1F62C}",name:"Grimacing Face",keywords:["awkward","nervous"],group:"smileys"},{shortcode:"relieved",emoji:"\u{1F60C}",name:"Relieved Face",keywords:["calm","peaceful"],group:"smileys"},{shortcode:"pensive",emoji:"\u{1F614}",name:"Pensive Face",keywords:["sad","thoughtful"],group:"smileys"},{shortcode:"sleepy",emoji:"\u{1F62A}",name:"Sleepy Face",keywords:["tired","sleep"],group:"smileys"},{shortcode:"sleeping",emoji:"\u{1F634}",name:"Sleeping Face",keywords:["zzz","sleep"],group:"smileys"},{shortcode:"mask",emoji:"\u{1F637}",name:"Face with Medical Mask",keywords:["sick","health"],group:"smileys"},{shortcode:"nerd_face",emoji:"\u{1F913}",name:"Nerd Face",keywords:["geek","smart"],group:"smileys"},{shortcode:"sunglasses",emoji:"\u{1F60E}",name:"Smiling Face with Sunglasses",keywords:["cool","chill"],group:"smileys"},{shortcode:"confused",emoji:"\u{1F615}",name:"Confused Face",keywords:["puzzled","unsure"],group:"smileys"},{shortcode:"worried",emoji:"\u{1F61F}",name:"Worried Face",keywords:["anxious","concern"],group:"smileys"},{shortcode:"cry",emoji:"\u{1F622}",name:"Crying Face",keywords:["sad","tear"],group:"smileys"},{shortcode:"sob",emoji:"\u{1F62D}",name:"Loudly Crying Face",keywords:["sad","cry"],group:"smileys"},{shortcode:"angry",emoji:"\u{1F620}",name:"Angry Face",keywords:["mad","annoyed"],group:"smileys"},{shortcode:"rage",emoji:"\u{1F92C}",name:"Face with Symbols on Mouth",keywords:["angry","swear"],group:"smileys"},{shortcode:"exploding_head",emoji:"\u{1F92F}",name:"Exploding Head",keywords:["mind blown","shocked"],group:"smileys"},{shortcode:"flushed",emoji:"\u{1F633}",name:"Flushed Face",keywords:["embarrassed","shocked"],group:"smileys"},{shortcode:"scream",emoji:"\u{1F631}",name:"Face Screaming in Fear",keywords:["scared","horror"],group:"smileys"},{shortcode:"skull",emoji:"\u{1F480}",name:"Skull",keywords:["dead","death"],group:"smileys"},{shortcode:"clown_face",emoji:"\u{1F921}",name:"Clown Face",keywords:["joke","funny"],group:"smileys"},{shortcode:"ghost",emoji:"\u{1F47B}",name:"Ghost",keywords:["halloween","spooky"],group:"smileys"},{shortcode:"wave",emoji:"\u{1F44B}",name:"Waving Hand",keywords:["hello","goodbye"],group:"people"},{shortcode:"raised_hand",emoji:"\u270B",name:"Raised Hand",keywords:["stop","high five"],group:"people"},{shortcode:"ok_hand",emoji:"\u{1F44C}",name:"OK Hand",keywords:["perfect","nice"],group:"people"},{shortcode:"thumbsup",emoji:"\u{1F44D}",name:"Thumbs Up",keywords:["approve","good","yes"],group:"people"},{shortcode:"thumbsdown",emoji:"\u{1F44E}",name:"Thumbs Down",keywords:["disapprove","bad","no"],group:"people"},{shortcode:"clap",emoji:"\u{1F44F}",name:"Clapping Hands",keywords:["applause","bravo"],group:"people"},{shortcode:"raised_hands",emoji:"\u{1F64C}",name:"Raising Hands",keywords:["celebration","hooray"],group:"people"},{shortcode:"pray",emoji:"\u{1F64F}",name:"Folded Hands",keywords:["thanks","please","hope"],group:"people"},{shortcode:"handshake",emoji:"\u{1F91D}",name:"Handshake",keywords:["deal","agreement"],group:"people"},{shortcode:"point_up",emoji:"\u261D\uFE0F",name:"Index Pointing Up",keywords:["attention","important"],group:"people"},{shortcode:"point_right",emoji:"\u{1F449}",name:"Backhand Index Pointing Right",keywords:["direction","this"],group:"people"},{shortcode:"point_left",emoji:"\u{1F448}",name:"Backhand Index Pointing Left",keywords:["direction","that"],group:"people"},{shortcode:"point_down",emoji:"\u{1F447}",name:"Backhand Index Pointing Down",keywords:["direction","below"],group:"people"},{shortcode:"v",emoji:"\u270C\uFE0F",name:"Victory Hand",keywords:["peace","two"],group:"people"},{shortcode:"crossed_fingers",emoji:"\u{1F91E}",name:"Crossed Fingers",keywords:["luck","hope"],group:"people"},{shortcode:"muscle",emoji:"\u{1F4AA}",name:"Flexed Biceps",keywords:["strong","power"],group:"people"},{shortcode:"writing_hand",emoji:"\u270D\uFE0F",name:"Writing Hand",keywords:["write","note"],group:"people"},{shortcode:"eyes",emoji:"\u{1F440}",name:"Eyes",keywords:["look","see","watch"],group:"people"},{shortcode:"brain",emoji:"\u{1F9E0}",name:"Brain",keywords:["smart","think","mind"],group:"people"},{shortcode:"speaking_head",emoji:"\u{1F5E3}\uFE0F",name:"Speaking Head",keywords:["talk","announce"],group:"people"},{shortcode:"baby",emoji:"\u{1F476}",name:"Baby",keywords:["child","newborn"],group:"people"},{shortcode:"person_shrugging",emoji:"\u{1F937}",name:"Person Shrugging",keywords:["dunno","whatever"],group:"people"},{shortcode:"person_facepalming",emoji:"\u{1F926}",name:"Person Facepalming",keywords:["frustration","disbelief"],group:"people"},{shortcode:"person_raising_hand",emoji:"\u{1F64B}",name:"Person Raising Hand",keywords:["question","volunteer"],group:"people"},{shortcode:"ninja",emoji:"\u{1F977}",name:"Ninja",keywords:["stealth","hidden"],group:"people"},{shortcode:"dog",emoji:"\u{1F436}",name:"Dog Face",keywords:["puppy","pet"],group:"animals"},{shortcode:"cat",emoji:"\u{1F431}",name:"Cat Face",keywords:["kitten","pet"],group:"animals"},{shortcode:"mouse",emoji:"\u{1F42D}",name:"Mouse Face",keywords:["rodent"],group:"animals"},{shortcode:"rabbit",emoji:"\u{1F430}",name:"Rabbit Face",keywords:["bunny","easter"],group:"animals"},{shortcode:"fox",emoji:"\u{1F98A}",name:"Fox",keywords:["clever","sly"],group:"animals"},{shortcode:"bear",emoji:"\u{1F43B}",name:"Bear",keywords:["teddy","nature"],group:"animals"},{shortcode:"unicorn",emoji:"\u{1F984}",name:"Unicorn",keywords:["magic","fantasy"],group:"animals"},{shortcode:"bee",emoji:"\u{1F41D}",name:"Honeybee",keywords:["honey","buzz"],group:"animals"},{shortcode:"butterfly",emoji:"\u{1F98B}",name:"Butterfly",keywords:["pretty","nature"],group:"animals"},{shortcode:"turtle",emoji:"\u{1F422}",name:"Turtle",keywords:["slow","shell"],group:"animals"},{shortcode:"snake",emoji:"\u{1F40D}",name:"Snake",keywords:["reptile"],group:"animals"},{shortcode:"whale",emoji:"\u{1F433}",name:"Spouting Whale",keywords:["ocean","sea"],group:"animals"},{shortcode:"dolphin",emoji:"\u{1F42C}",name:"Dolphin",keywords:["ocean","smart"],group:"animals"},{shortcode:"eagle",emoji:"\u{1F985}",name:"Eagle",keywords:["bird","freedom"],group:"animals"},{shortcode:"owl",emoji:"\u{1F989}",name:"Owl",keywords:["wise","night"],group:"animals"},{shortcode:"penguin",emoji:"\u{1F427}",name:"Penguin",keywords:["cold","linux"],group:"animals"},{shortcode:"octopus",emoji:"\u{1F419}",name:"Octopus",keywords:["ocean","tentacle"],group:"animals"},{shortcode:"seedling",emoji:"\u{1F331}",name:"Seedling",keywords:["plant","grow"],group:"animals"},{shortcode:"evergreen_tree",emoji:"\u{1F332}",name:"Evergreen Tree",keywords:["nature","pine"],group:"animals"},{shortcode:"sunflower",emoji:"\u{1F33B}",name:"Sunflower",keywords:["flower","yellow"],group:"animals"},{shortcode:"rose",emoji:"\u{1F339}",name:"Rose",keywords:["flower","love"],group:"animals"},{shortcode:"apple",emoji:"\u{1F34E}",name:"Red Apple",keywords:["fruit","healthy"],group:"food"},{shortcode:"banana",emoji:"\u{1F34C}",name:"Banana",keywords:["fruit","yellow"],group:"food"},{shortcode:"grapes",emoji:"\u{1F347}",name:"Grapes",keywords:["fruit","wine"],group:"food"},{shortcode:"watermelon",emoji:"\u{1F349}",name:"Watermelon",keywords:["fruit","summer"],group:"food"},{shortcode:"avocado",emoji:"\u{1F951}",name:"Avocado",keywords:["guacamole","healthy"],group:"food"},{shortcode:"pizza",emoji:"\u{1F355}",name:"Pizza",keywords:["food","italian"],group:"food"},{shortcode:"hamburger",emoji:"\u{1F354}",name:"Hamburger",keywords:["burger","fast food"],group:"food"},{shortcode:"taco",emoji:"\u{1F32E}",name:"Taco",keywords:["mexican","food"],group:"food"},{shortcode:"sushi",emoji:"\u{1F363}",name:"Sushi",keywords:["japanese","fish"],group:"food"},{shortcode:"cookie",emoji:"\u{1F36A}",name:"Cookie",keywords:["sweet","biscuit"],group:"food"},{shortcode:"cake",emoji:"\u{1F382}",name:"Birthday Cake",keywords:["birthday","celebration"],group:"food"},{shortcode:"ice_cream",emoji:"\u{1F366}",name:"Soft Ice Cream",keywords:["dessert","cold"],group:"food"},{shortcode:"chocolate_bar",emoji:"\u{1F36B}",name:"Chocolate Bar",keywords:["sweet","candy"],group:"food"},{shortcode:"popcorn",emoji:"\u{1F37F}",name:"Popcorn",keywords:["movie","snack"],group:"food"},{shortcode:"coffee",emoji:"\u2615",name:"Hot Beverage",keywords:["tea","drink","morning"],group:"food"},{shortcode:"beer",emoji:"\u{1F37A}",name:"Beer Mug",keywords:["drink","bar"],group:"food"},{shortcode:"wine_glass",emoji:"\u{1F377}",name:"Wine Glass",keywords:["drink","alcohol"],group:"food"},{shortcode:"cocktail",emoji:"\u{1F378}",name:"Cocktail Glass",keywords:["drink","martini"],group:"food"},{shortcode:"hot_pepper",emoji:"\u{1F336}\uFE0F",name:"Hot Pepper",keywords:["spicy","chili"],group:"food"},{shortcode:"egg",emoji:"\u{1F95A}",name:"Egg",keywords:["breakfast","food"],group:"food"},{shortcode:"earth_americas",emoji:"\u{1F30E}",name:"Globe Americas",keywords:["world","planet"],group:"travel"},{shortcode:"earth_europe",emoji:"\u{1F30D}",name:"Globe Europe-Africa",keywords:["world","planet"],group:"travel"},{shortcode:"sun",emoji:"\u2600\uFE0F",name:"Sun",keywords:["weather","bright","warm"],group:"travel"},{shortcode:"moon",emoji:"\u{1F319}",name:"Crescent Moon",keywords:["night","sleep"],group:"travel"},{shortcode:"star",emoji:"\u2B50",name:"Star",keywords:["favorite","rating"],group:"travel"},{shortcode:"star2",emoji:"\u{1F31F}",name:"Glowing Star",keywords:["sparkle","shine"],group:"travel"},{shortcode:"cloud",emoji:"\u2601\uFE0F",name:"Cloud",keywords:["weather","sky"],group:"travel"},{shortcode:"rainbow",emoji:"\u{1F308}",name:"Rainbow",keywords:["colorful","weather"],group:"travel"},{shortcode:"snowflake",emoji:"\u2744\uFE0F",name:"Snowflake",keywords:["cold","winter"],group:"travel"},{shortcode:"zap",emoji:"\u26A1",name:"High Voltage",keywords:["lightning","electric","fast"],group:"travel"},{shortcode:"fire",emoji:"\u{1F525}",name:"Fire",keywords:["hot","flame","lit"],group:"travel"},{shortcode:"ocean",emoji:"\u{1F30A}",name:"Water Wave",keywords:["sea","wave","surf"],group:"travel"},{shortcode:"airplane",emoji:"\u2708\uFE0F",name:"Airplane",keywords:["travel","flight"],group:"travel"},{shortcode:"rocket",emoji:"\u{1F680}",name:"Rocket",keywords:["launch","space","fast"],group:"travel"},{shortcode:"car",emoji:"\u{1F697}",name:"Automobile",keywords:["drive","vehicle"],group:"travel"},{shortcode:"house",emoji:"\u{1F3E0}",name:"House",keywords:["home","building"],group:"travel"},{shortcode:"tent",emoji:"\u26FA",name:"Tent",keywords:["camping","outdoor"],group:"travel"},{shortcode:"mountain",emoji:"\u26F0\uFE0F",name:"Mountain",keywords:["nature","hike"],group:"travel"},{shortcode:"desert_island",emoji:"\u{1F3DD}\uFE0F",name:"Desert Island",keywords:["beach","vacation"],group:"travel"},{shortcode:"volcano",emoji:"\u{1F30B}",name:"Volcano",keywords:["eruption","nature"],group:"travel"},{shortcode:"soccer",emoji:"\u26BD",name:"Soccer Ball",keywords:["football","sport"],group:"activities"},{shortcode:"basketball",emoji:"\u{1F3C0}",name:"Basketball",keywords:["sport","hoop"],group:"activities"},{shortcode:"tennis",emoji:"\u{1F3BE}",name:"Tennis",keywords:["sport","ball"],group:"activities"},{shortcode:"video_game",emoji:"\u{1F3AE}",name:"Video Game",keywords:["gaming","controller"],group:"activities"},{shortcode:"dart",emoji:"\u{1F3AF}",name:"Bullseye",keywords:["target","goal"],group:"activities"},{shortcode:"trophy",emoji:"\u{1F3C6}",name:"Trophy",keywords:["winner","champion"],group:"activities"},{shortcode:"medal",emoji:"\u{1F947}",name:"Gold Medal",keywords:["first","winner"],group:"activities"},{shortcode:"tada",emoji:"\u{1F389}",name:"Party Popper",keywords:["celebration","party"],group:"activities"},{shortcode:"confetti_ball",emoji:"\u{1F38A}",name:"Confetti Ball",keywords:["party","celebration"],group:"activities"},{shortcode:"balloon",emoji:"\u{1F388}",name:"Balloon",keywords:["party","birthday"],group:"activities"},{shortcode:"art",emoji:"\u{1F3A8}",name:"Artist Palette",keywords:["paint","creative"],group:"activities"},{shortcode:"musical_note",emoji:"\u{1F3B5}",name:"Musical Note",keywords:["music","song"],group:"activities"},{shortcode:"microphone",emoji:"\u{1F3A4}",name:"Microphone",keywords:["sing","karaoke"],group:"activities"},{shortcode:"guitar",emoji:"\u{1F3B8}",name:"Guitar",keywords:["music","rock"],group:"activities"},{shortcode:"dice",emoji:"\u{1F3B2}",name:"Game Die",keywords:["chance","random"],group:"activities"},{shortcode:"bulb",emoji:"\u{1F4A1}",name:"Light Bulb",keywords:["idea","bright"],group:"objects"},{shortcode:"computer",emoji:"\u{1F4BB}",name:"Laptop",keywords:["tech","work"],group:"objects"},{shortcode:"keyboard",emoji:"\u2328\uFE0F",name:"Keyboard",keywords:["type","computer"],group:"objects"},{shortcode:"phone",emoji:"\u{1F4F1}",name:"Mobile Phone",keywords:["cell","call"],group:"objects"},{shortcode:"camera",emoji:"\u{1F4F7}",name:"Camera",keywords:["photo","picture"],group:"objects"},{shortcode:"tv",emoji:"\u{1F4FA}",name:"Television",keywords:["watch","screen"],group:"objects"},{shortcode:"battery",emoji:"\u{1F50B}",name:"Battery",keywords:["charge","power"],group:"objects"},{shortcode:"electric_plug",emoji:"\u{1F50C}",name:"Electric Plug",keywords:["power","connect"],group:"objects"},{shortcode:"mag",emoji:"\u{1F50D}",name:"Magnifying Glass Left",keywords:["search","find"],group:"objects"},{shortcode:"lock",emoji:"\u{1F512}",name:"Locked",keywords:["security","private"],group:"objects"},{shortcode:"unlock",emoji:"\u{1F513}",name:"Unlocked",keywords:["open","access"],group:"objects"},{shortcode:"key",emoji:"\u{1F511}",name:"Key",keywords:["access","password"],group:"objects"},{shortcode:"hammer",emoji:"\u{1F528}",name:"Hammer",keywords:["tool","build"],group:"objects"},{shortcode:"wrench",emoji:"\u{1F527}",name:"Wrench",keywords:["tool","fix"],group:"objects"},{shortcode:"gear",emoji:"\u2699\uFE0F",name:"Gear",keywords:["settings","config"],group:"objects"},{shortcode:"link",emoji:"\u{1F517}",name:"Link",keywords:["chain","url"],group:"objects"},{shortcode:"paperclip",emoji:"\u{1F4CE}",name:"Paperclip",keywords:["attach","clip"],group:"objects"},{shortcode:"scissors",emoji:"\u2702\uFE0F",name:"Scissors",keywords:["cut","snip"],group:"objects"},{shortcode:"pen",emoji:"\u{1F58A}\uFE0F",name:"Pen",keywords:["write","sign"],group:"objects"},{shortcode:"pencil",emoji:"\u270F\uFE0F",name:"Pencil",keywords:["write","draw"],group:"objects"},{shortcode:"book",emoji:"\u{1F4D6}",name:"Open Book",keywords:["read","study"],group:"objects"},{shortcode:"memo",emoji:"\u{1F4DD}",name:"Memo",keywords:["note","write"],group:"objects"},{shortcode:"package",emoji:"\u{1F4E6}",name:"Package",keywords:["box","delivery"],group:"objects"},{shortcode:"mailbox",emoji:"\u{1F4EC}",name:"Open Mailbox with Raised Flag",keywords:["mail","letter"],group:"objects"},{shortcode:"bell",emoji:"\u{1F514}",name:"Bell",keywords:["notification","alert"],group:"objects"},{shortcode:"red_heart",emoji:"\u2764\uFE0F",name:"Red Heart",keywords:["love","valentine"],group:"symbols"},{shortcode:"orange_heart",emoji:"\u{1F9E1}",name:"Orange Heart",keywords:["love"],group:"symbols"},{shortcode:"yellow_heart",emoji:"\u{1F49B}",name:"Yellow Heart",keywords:["love","friendship"],group:"symbols"},{shortcode:"green_heart",emoji:"\u{1F49A}",name:"Green Heart",keywords:["love","nature"],group:"symbols"},{shortcode:"blue_heart",emoji:"\u{1F499}",name:"Blue Heart",keywords:["love","trust"],group:"symbols"},{shortcode:"purple_heart",emoji:"\u{1F49C}",name:"Purple Heart",keywords:["love"],group:"symbols"},{shortcode:"broken_heart",emoji:"\u{1F494}",name:"Broken Heart",keywords:["sad","breakup"],group:"symbols"},{shortcode:"sparkles",emoji:"\u2728",name:"Sparkles",keywords:["shine","magic","new"],group:"symbols"},{shortcode:"hundred",emoji:"\u{1F4AF}",name:"Hundred Points",keywords:["perfect","score"],group:"symbols"},{shortcode:"boom",emoji:"\u{1F4A5}",name:"Collision",keywords:["explosion","impact"],group:"symbols"},{shortcode:"speech_balloon",emoji:"\u{1F4AC}",name:"Speech Balloon",keywords:["talk","chat","message"],group:"symbols"},{shortcode:"thought_balloon",emoji:"\u{1F4AD}",name:"Thought Balloon",keywords:["think","dream"],group:"symbols"},{shortcode:"check_mark",emoji:"\u2705",name:"Check Mark Button",keywords:["done","yes","complete"],group:"symbols"},{shortcode:"x",emoji:"\u274C",name:"Cross Mark",keywords:["no","wrong","delete"],group:"symbols"},{shortcode:"warning",emoji:"\u26A0\uFE0F",name:"Warning",keywords:["caution","alert"],group:"symbols"},{shortcode:"no_entry",emoji:"\u26D4",name:"No Entry",keywords:["stop","forbidden"],group:"symbols"},{shortcode:"question",emoji:"\u2753",name:"Question Mark",keywords:["help","what"],group:"symbols"},{shortcode:"exclamation",emoji:"\u2757",name:"Exclamation Mark",keywords:["important","attention"],group:"symbols"},{shortcode:"arrow_right",emoji:"\u27A1\uFE0F",name:"Right Arrow",keywords:["next","forward"],group:"symbols"},{shortcode:"arrow_left",emoji:"\u2B05\uFE0F",name:"Left Arrow",keywords:["back","previous"],group:"symbols"},{shortcode:"arrow_up",emoji:"\u2B06\uFE0F",name:"Up Arrow",keywords:["above"],group:"symbols"},{shortcode:"arrow_down",emoji:"\u2B07\uFE0F",name:"Down Arrow",keywords:["below"],group:"symbols"},{shortcode:"recycle",emoji:"\u267B\uFE0F",name:"Recycling Symbol",keywords:["environment","green"],group:"symbols"},{shortcode:"infinity",emoji:"\u267E\uFE0F",name:"Infinity",keywords:["forever","loop"],group:"symbols"},{shortcode:"checkered_flag",emoji:"\u{1F3C1}",name:"Chequered Flag",keywords:["finish","race"],group:"flags"},{shortcode:"triangular_flag",emoji:"\u{1F6A9}",name:"Triangular Flag",keywords:["red flag","warning"],group:"flags"},{shortcode:"white_flag",emoji:"\u{1F3F3}\uFE0F",name:"White Flag",keywords:["surrender","peace"],group:"flags"},{shortcode:"rainbow_flag",emoji:"\u{1F3F3}\uFE0F\u200D\u{1F308}",name:"Rainbow Flag",keywords:["pride","lgbtq"],group:"flags"},{shortcode:"pirate_flag",emoji:"\u{1F3F4}\u200D\u2620\uFE0F",name:"Pirate Flag",keywords:["jolly roger","skull"],group:"flags"},{shortcode:"flag_us",emoji:"\u{1F1FA}\u{1F1F8}",name:"Flag: United States",keywords:["usa","america"],group:"flags"},{shortcode:"flag_gb",emoji:"\u{1F1EC}\u{1F1E7}",name:"Flag: United Kingdom",keywords:["uk","britain"],group:"flags"},{shortcode:"flag_fr",emoji:"\u{1F1EB}\u{1F1F7}",name:"Flag: France",keywords:["french"],group:"flags"},{shortcode:"flag_de",emoji:"\u{1F1E9}\u{1F1EA}",name:"Flag: Germany",keywords:["german"],group:"flags"},{shortcode:"flag_jp",emoji:"\u{1F1EF}\u{1F1F5}",name:"Flag: Japan",keywords:["japanese"],group:"flags"},{shortcode:"flag_kr",emoji:"\u{1F1F0}\u{1F1F7}",name:"Flag: South Korea",keywords:["korean"],group:"flags"},{shortcode:"flag_br",emoji:"\u{1F1E7}\u{1F1F7}",name:"Flag: Brazil",keywords:["brazilian"],group:"flags"},{shortcode:"flag_in",emoji:"\u{1F1EE}\u{1F1F3}",name:"Flag: India",keywords:["indian"],group:"flags"},{shortcode:"flag_ca",emoji:"\u{1F1E8}\u{1F1E6}",name:"Flag: Canada",keywords:["canadian","maple"],group:"flags"},{shortcode:"flag_au",emoji:"\u{1F1E6}\u{1F1FA}",name:"Flag: Australia",keywords:["australian"],group:"flags"}],me=new Map(yi.map(e=>[e.shortcode,e])),ju=new Map([["+1","thumbsup"],["-1","thumbsdown"],["heart","red_heart"],["thumbs_up","thumbsup"],["thumbs_down","thumbsdown"],["grin","grinning"],["laughing_crying","joy"],["lol","rofl"],["smiley","smile"],["cool","sunglasses"],["nerd","nerd_face"],["kiss","kissing_heart"],["hug","hugs"],["think","thinking"],["sad","cry"],["mad","angry"],["shrug","person_shrugging"],["facepalm","person_facepalming"],["raised_fist","muscle"],["pray_hands","pray"],["hi","wave"],["bye","wave"],["lightning","zap"],["flame","fire"],["hot","fire"],["bomb","boom"],["idea","bulb"],["laptop","computer"],["search","mag"],["party","tada"],["celebrate","tada"],["congrats","tada"],["check","check_mark"],["done","check_mark"],["yes","check_mark"],["no","x"],["wrong","x"],["love","red_heart"],["star_eyes","star_struck"],["mindblown","exploding_head"],["poop","skull"],["memo_pad","memo"],["notes","memo"],["coffee_cup","coffee"],["tea","coffee"]]),Eg=["smileys","people","animals","food","travel","activities","objects","symbols","flags"],kg={smileys:"Smileys & Emotion",people:"People & Body",animals:"Animals & Nature",food:"Food & Drink",travel:"Travel & Places",activities:"Activities",objects:"Objects",symbols:"Symbols",flags:"Flags"},xg={smileys:"\u{1F600}",people:"\u{1F44B}",animals:"\u{1F436}",food:"\u{1F355}",travel:"\u{1F30D}",activities:"\u{1F389}",objects:"\u{1F4A1}",symbols:"\u2764\uFE0F",flags:"\u{1F3C1}"},vi=[];globalThis.__vbEmojiRegister=Hu;globalThis.__vbEmojiExtended&&(Hu(globalThis.__vbEmojiExtended),delete globalThis.__vbEmojiExtended)});var Ku={};E(Ku,{initEmoji:()=>_g});async function Wu(){if(wi)return;wi=(await Promise.resolve().then(()=>(Vu(),zu))).resolveEmoji}async function _g(e=document){let t=e.querySelectorAll(Gu);t.length!==0&&(await Wu(),t.forEach(Yu))}function Yu(e){if(e.hasAttribute("data-emoji-init"))return;if(e.setAttribute("data-emoji-init",""),Mg.has(e.tagName)){Dg(e);return}let t=e.getAttribute("data-emoji-unknown")||"keep";if(Uu(e,t),e.getAttribute("data-emoji-scan")==="observe"){let i=null;new MutationObserver(()=>{i&&clearTimeout(i),i=setTimeout(()=>{Uu(e,t),i=null},Ng)}).observe(e,{childList:!0,subtree:!0,characterData:!0})}}function Dg(e){let t=!1;e.addEventListener("compositionstart",()=>{t=!0}),e.addEventListener("compositionend",()=>{t=!1,Xr(e)}),e.addEventListener("input",()=>{t||Xr(e)}),e.value&&dt.test(e.value)&&(dt.lastIndex=0,Xr(e))}function Xr(e){let t=e.value;dt.lastIndex=0;let i,s="",n=0,r=0,a=e.selectionStart??t.length,o=!1;for(;(i=dt.exec(t))!==null;){let l=i[0],u=i[1],d=wi(u);if(s+=t.slice(n,i.index),d){s+=d.emoji,o=!0;let h=i.index+l.length;a>=h?r+=l.length-d.emoji.length:a>i.index&&(r+=a-i.index-d.emoji.length)}else s+=l;n=i.index+l.length}if(!o)return;s+=t.slice(n),e.value=s;let c=Math.max(0,a-r);e.setSelectionRange(c,c)}function Uu(e,t){let i=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,{acceptNode(n){let r=n.parentElement;return!r||Lg.has(r.tagName)||r.isContentEditable||r.hasAttribute("data-emoji-processed")?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}}),s=[];for(;i.nextNode();)dt.test(i.currentNode.textContent??"")&&s.push(i.currentNode),dt.lastIndex=0;for(let n of s)$g(n,t)}function $g(e,t){let i=e.textContent;dt.lastIndex=0;let s,n=0,r=[],a=!1;for(;(s=dt.exec(i))!==null;){let o=s[1],c=wi(o);s.index>n&&r.push(i.slice(n,s.index)),c?(r.push(c.emoji),a=!0):t==="strip"?a=!0:r.push(s[0]),n=s.index+s[0].length}a&&(n<i.length&&r.push(i.slice(n)),e.textContent=r.join(""))}function Ig(e){Wu().then(()=>Yu(e))}var wi,Gu,dt,Lg,Mg,Ng,Xu=w(()=>{B();wi=null;Gu="[data-emoji]",dt=/:([a-z0-9_+-]+):/g,Lg=new Set(["SCRIPT","STYLE","CODE","PRE","TEXTAREA"]),Mg=new Set(["INPUT","TEXTAREA"]),Ng=100;S(Gu,Ig)});var Qu={};E(Qu,{getRegisteredCommands:()=>Zu,initCommands:()=>Jr,scanAutoDiscoverable:()=>Ju});function Ai(e){if(W.has(e)||e.hasAttribute("data-command-init"))return;e.setAttribute("data-command-init","");let t=e.getAttribute("data-command")||e.textContent.trim();if(!t)return;let i=e.getAttribute("data-command-group")||qg,s=e.getAttribute("data-command-icon")||null,n=e.getAttribute("data-shortcut")||null,r=null;n&&(r=rt(n,()=>e.click()));let a={element:e,label:t,group:i,icon:s,shortcut:n,unbind:r};W.set(e,a),document.dispatchEvent(new CustomEvent("vb:command-registry-change",{detail:{action:"add",entry:a}}))}function Zr(e){let t=W.get(e);t&&(t.unbind?.(),W.delete(e),e.removeAttribute("data-command-init"),document.dispatchEvent(new CustomEvent("vb:command-registry-change",{detail:{action:"remove",element:e}})))}function Zu(){let e=new Map;for(let t of W.values()){if(t.element.hidden||t.element.closest("[hidden]"))continue;let i=e.get(t.group)||[];i.push(t),e.set(t.group,i)}return e}function Jr(e=document){e.querySelectorAll(Ft).forEach(Ai)}function Ju(){let e='footer, aside, dialog, [hidden], [aria-hidden="true"]',i=[];return document.querySelectorAll("nav a[href]").forEach(s=>{if(s.closest(e)||W.has(s))return;let n=s.textContent.trim();!n||i.length>=50||i.push({element:s,label:n,group:"Navigation",icon:null,shortcut:null,auto:!0,action:null})}),document.querySelectorAll("h2[id], h3[id]").forEach(s=>{if(s.closest(e)||W.has(s))return;let n=s.textContent.trim();!n||i.length>=50||i.push({element:s,label:`Jump to: ${n}`,group:"On This Page",icon:null,shortcut:null,auto:!0,action:()=>s.scrollIntoView({behavior:"smooth"})})}),i}var Ft,qg,W,Bg,td=w(()=>{Wt();Ft="[data-command], [commandfor]",qg="Page Actions",W=new Map;document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>Jr()):Jr();Bg=new MutationObserver(e=>{for(let t of e){for(let i of t.addedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i;s.matches(Ft)&&Ai(s),s.querySelectorAll(Ft).forEach(Ai)}for(let i of t.removedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i;W.has(s)&&Zr(s),s.querySelectorAll(Ft).forEach(n=>{W.has(n)&&Zr(n)})}if(t.type==="attributes"&&t.target.nodeType===Node.ELEMENT_NODE){let i=t.target;i.matches(Ft)&&!W.has(i)?Ai(i):!i.matches(Ft)&&W.has(i)&&Zr(i)}}});Bg.observe(document.documentElement,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-command","commandfor"]});window.__commandRegistry={getRegisteredCommands:Zu,scanAutoDiscoverable:Ju}});function ia(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}function od(e){Ct=e}function x(e,t=""){let i=typeof e=="string"?e:e.source,s={replace:(n,r)=>{let a=typeof r=="string"?r:r.source;return a=a.replace(O.caret,"$1"),i=i.replace(n,a),s},getRegex:()=>new RegExp(i,t)};return s}function Q(e,t){if(t){if(O.escapeTest.test(e))return e.replace(O.escapeReplace,sd)}else if(O.escapeTestNoEncode.test(e))return e.replace(O.escapeReplaceNoEncode,sd);return e}function nd(e){try{e=encodeURI(e).replace(O.percentDecode,"%")}catch{return null}return e}function rd(e,t){let i=e.replace(O.findPipe,(r,a,o)=>{let c=!1,l=a;for(;--l>=0&&o[l]==="\\";)c=!c;return c?"|":" |"}),s=i.split(O.splitPipe),n=0;if(s[0].trim()||s.shift(),s.length>0&&!s.at(-1)?.trim()&&s.pop(),t)if(s.length>t)s.splice(t);else for(;s.length<t;)s.push("");for(;n<s.length;n++)s[n]=s[n].trim().replace(O.slashPipe,"|");return s}function be(e,t,i){let s=e.length;if(s===0)return"";let n=0;for(;n<s;){let r=e.charAt(s-n-1);if(r===t&&!i)n++;else if(r!==t&&i)n++;else break}return e.slice(0,s-n)}function wb(e,t){if(e.indexOf(t[1])===-1)return-1;let i=0;for(let s=0;s<e.length;s++)if(e[s]==="\\")s++;else if(e[s]===t[0])i++;else if(e[s]===t[1]&&(i--,i<0))return s;return i>0?-2:-1}function Ab(e,t=0){let i=t,s="";for(let n of e)if(n===" "){let r=4-i%4;s+=" ".repeat(r),i+=r}else s+=n,i++;return s}function ad(e,t,i,s,n){let r=t.href,a=t.title||null,o=e[1].replace(n.other.outputLinkReplace,"$1");s.state.inLink=!0;let c={type:e[0].charAt(0)==="!"?"image":"link",raw:i,href:r,title:a,text:o,tokens:s.inlineTokens(o)};return s.state.inLink=!1,c}function Eb(e,t,i){let s=e.match(i.other.indentCodeCompensation);if(s===null)return t;let n=s[1];return t.split(`
|
|
14
|
+
`).map(r=>{let a=r.match(i.other.beginningSpace);if(a===null)return r;let[o]=a;return o.length>=n.length?r.slice(n.length):r}).join(`
|
|
15
|
+
`)}function C(e,t){return St.parse(e,t)}var Ct,xt,Og,O,Fg,Pg,Rg,ve,jg,sa,cd,ld,Hg,na,zg,ra,Vg,Ug,Ci,aa,Wg,ud,Gg,oa,ed,Yg,Kg,Xg,Zg,dd,Jg,Pt,Ti,ca,Qg,hd,tb,eb,ib,pd,sb,nb,fd,rb,ab,ob,cb,lb,ub,db,hb,pb,fb,ki,mb,md,gd,gb,id,la,bb,Qr,yb,Ei,ge,vb,sd,xi,G,Si,ua,Y,ye,kb,St,LE,ME,NE,_E,DE,$E,IE,bd=w(()=>{Ct=ia();xt={exec:()=>null};Og=(()=>{try{return!!new RegExp("(?<=1)(?<!1)")}catch{return!1}})(),O={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i"),blockquoteBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}>`)},Fg=/^(?:[ \t]*(?:\n|$))+/,Pg=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Rg=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,ve=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,jg=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,sa=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,cd=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,ld=x(cd).replace(/bull/g,sa).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),Hg=x(cd).replace(/bull/g,sa).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),na=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,zg=/^[^\n]+/,ra=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,Vg=x(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",ra).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Ug=x(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,sa).getRegex(),Ci="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",aa=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,Wg=x("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",aa).replace("tag",Ci).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),ud=x(na).replace("hr",ve).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Ci).getRegex(),Gg=x(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",ud).getRegex(),oa={blockquote:Gg,code:Pg,def:Vg,fences:Rg,heading:jg,hr:ve,html:Wg,lheading:ld,list:Ug,newline:Fg,paragraph:ud,table:xt,text:zg},ed=x("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",ve).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Ci).getRegex(),Yg={...oa,lheading:Hg,table:ed,paragraph:x(na).replace("hr",ve).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",ed).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Ci).getRegex()},Kg={...oa,html:x(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",aa).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:xt,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:x(na).replace("hr",ve).replace("heading",` *#{1,6} *[^
|
|
16
|
+
]`).replace("lheading",ld).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},Xg=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,Zg=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,dd=/^( {2,}|\\)\n(?!\s*$)/,Jg=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,Pt=/[\p{P}\p{S}]/u,Ti=/[\s\p{P}\p{S}]/u,ca=/[^\s\p{P}\p{S}]/u,Qg=x(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,Ti).getRegex(),hd=/(?!~)[\p{P}\p{S}]/u,tb=/(?!~)[\s\p{P}\p{S}]/u,eb=/(?:[^\s\p{P}\p{S}]|~)/u,ib=x(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",Og?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),pd=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,sb=x(pd,"u").replace(/punct/g,Pt).getRegex(),nb=x(pd,"u").replace(/punct/g,hd).getRegex(),fd="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",rb=x(fd,"gu").replace(/notPunctSpace/g,ca).replace(/punctSpace/g,Ti).replace(/punct/g,Pt).getRegex(),ab=x(fd,"gu").replace(/notPunctSpace/g,eb).replace(/punctSpace/g,tb).replace(/punct/g,hd).getRegex(),ob=x("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,ca).replace(/punctSpace/g,Ti).replace(/punct/g,Pt).getRegex(),cb=x(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,Pt).getRegex(),lb="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",ub=x(lb,"gu").replace(/notPunctSpace/g,ca).replace(/punctSpace/g,Ti).replace(/punct/g,Pt).getRegex(),db=x(/\\(punct)/,"gu").replace(/punct/g,Pt).getRegex(),hb=x(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),pb=x(aa).replace("(?:-->|$)","-->").getRegex(),fb=x("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",pb).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),ki=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,mb=x(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",ki).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),md=x(/^!?\[(label)\]\[(ref)\]/).replace("label",ki).replace("ref",ra).getRegex(),gd=x(/^!?\[(ref)\](?:\[\])?/).replace("ref",ra).getRegex(),gb=x("reflink|nolink(?!\\()","g").replace("reflink",md).replace("nolink",gd).getRegex(),id=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,la={_backpedal:xt,anyPunctuation:db,autolink:hb,blockSkip:ib,br:dd,code:Zg,del:xt,delLDelim:xt,delRDelim:xt,emStrongLDelim:sb,emStrongRDelimAst:rb,emStrongRDelimUnd:ob,escape:Xg,link:mb,nolink:gd,punctuation:Qg,reflink:md,reflinkSearch:gb,tag:fb,text:Jg,url:xt},bb={...la,link:x(/^!?\[(label)\]\((.*?)\)/).replace("label",ki).getRegex(),reflink:x(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",ki).getRegex()},Qr={...la,emStrongRDelimAst:ab,emStrongLDelim:nb,delLDelim:cb,delRDelim:ub,url:x(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",id).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:x(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",id).getRegex()},yb={...Qr,br:x(dd).replace("{2,}","*").getRegex(),text:x(Qr.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},Ei={normal:oa,gfm:Yg,pedantic:Kg},ge={normal:la,gfm:Qr,breaks:yb,pedantic:bb},vb={"&":"&","<":"<",">":">",'"':""","'":"'"},sd=e=>vb[e];xi=class{options;rules;lexer;constructor(e){this.options=e||Ct}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let i=t[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?i:be(i,`
|
|
17
|
+
`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let i=t[0],s=Eb(i,t[3]||"",this.rules);return{type:"code",raw:i,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:s}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let i=t[2].trim();if(this.rules.other.endingHash.test(i)){let s=be(i,"#");(this.options.pedantic||!s||this.rules.other.endingSpaceChar.test(s))&&(i=s.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:i,tokens:this.lexer.inline(i)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:be(t[0],`
|
|
18
|
+
`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let i=be(t[0],`
|
|
19
|
+
`).split(`
|
|
20
|
+
`),s="",n="",r=[];for(;i.length>0;){let a=!1,o=[],c;for(c=0;c<i.length;c++)if(this.rules.other.blockquoteStart.test(i[c]))o.push(i[c]),a=!0;else if(!a)o.push(i[c]);else break;i=i.slice(c);let l=o.join(`
|
|
21
|
+
`),u=l.replace(this.rules.other.blockquoteSetextReplace,`
|
|
22
|
+
$1`).replace(this.rules.other.blockquoteSetextReplace2,"");s=s?`${s}
|
|
23
|
+
${l}`:l,n=n?`${n}
|
|
24
|
+
${u}`:u;let d=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(u,r,!0),this.lexer.state.top=d,i.length===0)break;let h=r.at(-1);if(h?.type==="code")break;if(h?.type==="blockquote"){let p=h,f=p.raw+`
|
|
25
|
+
`+i.join(`
|
|
26
|
+
`),m=this.blockquote(f);r[r.length-1]=m,s=s.substring(0,s.length-p.raw.length)+m.raw,n=n.substring(0,n.length-p.text.length)+m.text;break}else if(h?.type==="list"){let p=h,f=p.raw+`
|
|
27
|
+
`+i.join(`
|
|
28
|
+
`),m=this.list(f);r[r.length-1]=m,s=s.substring(0,s.length-h.raw.length)+m.raw,n=n.substring(0,n.length-p.raw.length)+m.raw,i=f.substring(r.at(-1).raw.length).split(`
|
|
29
|
+
`);continue}}return{type:"blockquote",raw:s,tokens:r,text:n}}}list(e){let t=this.rules.block.list.exec(e);if(t){let i=t[1].trim(),s=i.length>1,n={type:"list",raw:"",ordered:s,start:s?+i.slice(0,-1):"",loose:!1,items:[]};i=s?`\\d{1,9}\\${i.slice(-1)}`:`\\${i}`,this.options.pedantic&&(i=s?i:"[*+-]");let r=this.rules.other.listItemRegex(i),a=!1;for(;e;){let c=!1,l="",u="";if(!(t=r.exec(e))||this.rules.block.hr.test(e))break;l=t[0],e=e.substring(l.length);let d=Ab(t[2].split(`
|
|
30
|
+
`,1)[0],t[1].length),h=e.split(`
|
|
31
|
+
`,1)[0],p=!d.trim(),f=0;if(this.options.pedantic?(f=2,u=d.trimStart()):p?f=t[1].length+1:(f=d.search(this.rules.other.nonSpaceChar),f=f>4?1:f,u=d.slice(f),f+=t[1].length),p&&this.rules.other.blankLine.test(h)&&(l+=h+`
|
|
32
|
+
`,e=e.substring(h.length+1),c=!0),!c){let m=this.rules.other.nextBulletRegex(f),v=this.rules.other.hrRegex(f),A=this.rules.other.fencesBeginRegex(f),L=this.rules.other.headingBeginRegex(f),N=this.rules.other.htmlBeginRegex(f),K=this.rules.other.blockquoteBeginRegex(f);for(;e;){let P=e.split(`
|
|
33
|
+
`,1)[0],X;if(h=P,this.options.pedantic?(h=h.replace(this.rules.other.listReplaceNesting," "),X=h):X=h.replace(this.rules.other.tabCharGlobal," "),A.test(h)||L.test(h)||N.test(h)||K.test(h)||m.test(h)||v.test(h))break;if(X.search(this.rules.other.nonSpaceChar)>=f||!h.trim())u+=`
|
|
34
|
+
`+X.slice(f);else{if(p||d.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||A.test(d)||L.test(d)||v.test(d))break;u+=`
|
|
35
|
+
`+h}p=!h.trim(),l+=P+`
|
|
36
|
+
`,e=e.substring(P.length+1),d=X.slice(f)}}n.loose||(a?n.loose=!0:this.rules.other.doubleBlankLine.test(l)&&(a=!0)),n.items.push({type:"list_item",raw:l,task:!!this.options.gfm&&this.rules.other.listIsTask.test(u),loose:!1,text:u,tokens:[]}),n.raw+=l}let o=n.items.at(-1);if(o)o.raw=o.raw.trimEnd(),o.text=o.text.trimEnd();else return;n.raw=n.raw.trimEnd();for(let c of n.items){if(this.lexer.state.top=!1,c.tokens=this.lexer.blockTokens(c.text,[]),c.task){if(c.text=c.text.replace(this.rules.other.listReplaceTask,""),c.tokens[0]?.type==="text"||c.tokens[0]?.type==="paragraph"){c.tokens[0].raw=c.tokens[0].raw.replace(this.rules.other.listReplaceTask,""),c.tokens[0].text=c.tokens[0].text.replace(this.rules.other.listReplaceTask,"");for(let u=this.lexer.inlineQueue.length-1;u>=0;u--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[u].src)){this.lexer.inlineQueue[u].src=this.lexer.inlineQueue[u].src.replace(this.rules.other.listReplaceTask,"");break}}let l=this.rules.other.listTaskCheckbox.exec(c.raw);if(l){let u={type:"checkbox",raw:l[0]+" ",checked:l[0]!=="[ ]"};c.checked=u.checked,n.loose?c.tokens[0]&&["paragraph","text"].includes(c.tokens[0].type)&&"tokens"in c.tokens[0]&&c.tokens[0].tokens?(c.tokens[0].raw=u.raw+c.tokens[0].raw,c.tokens[0].text=u.raw+c.tokens[0].text,c.tokens[0].tokens.unshift(u)):c.tokens.unshift({type:"paragraph",raw:u.raw,text:u.raw,tokens:[u]}):c.tokens.unshift(u)}}if(!n.loose){let l=c.tokens.filter(d=>d.type==="space"),u=l.length>0&&l.some(d=>this.rules.other.anyLine.test(d.raw));n.loose=u}}if(n.loose)for(let c of n.items){c.loose=!0;for(let l of c.tokens)l.type==="text"&&(l.type="paragraph")}return n}}html(e){let t=this.rules.block.html.exec(e);if(t)return{type:"html",block:!0,raw:t[0],pre:t[1]==="pre"||t[1]==="script"||t[1]==="style",text:t[0]}}def(e){let t=this.rules.block.def.exec(e);if(t){let i=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),s=t[2]?t[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",n=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):t[3];return{type:"def",tag:i,raw:t[0],href:s,title:n}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let i=rd(t[1]),s=t[2].replace(this.rules.other.tableAlignChars,"").split("|"),n=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,"").split(`
|
|
37
|
+
`):[],r={type:"table",raw:t[0],header:[],align:[],rows:[]};if(i.length===s.length){for(let a of s)this.rules.other.tableAlignRight.test(a)?r.align.push("right"):this.rules.other.tableAlignCenter.test(a)?r.align.push("center"):this.rules.other.tableAlignLeft.test(a)?r.align.push("left"):r.align.push(null);for(let a=0;a<i.length;a++)r.header.push({text:i[a],tokens:this.lexer.inline(i[a]),header:!0,align:r.align[a]});for(let a of n)r.rows.push(rd(a,r.header.length).map((o,c)=>({text:o,tokens:this.lexer.inline(o),header:!1,align:r.align[c]})));return r}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let i=t[1].trim();return{type:"heading",raw:t[0],depth:t[2].charAt(0)==="="?1:2,text:i,tokens:this.lexer.inline(i)}}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let i=t[1].charAt(t[1].length-1)===`
|
|
38
|
+
`?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:i,tokens:this.lexer.inline(i)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let i=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(i)){if(!this.rules.other.endAngleBracket.test(i))return;let r=be(i.slice(0,-1),"\\");if((i.length-r.length)%2===0)return}else{let r=wb(t[2],"()");if(r===-2)return;if(r>-1){let a=(t[0].indexOf("!")===0?5:4)+t[1].length+r;t[2]=t[2].substring(0,r),t[0]=t[0].substring(0,a).trim(),t[3]=""}}let s=t[2],n="";if(this.options.pedantic){let r=this.rules.other.pedanticHrefTitle.exec(s);r&&(s=r[1],n=r[3])}else n=t[3]?t[3].slice(1,-1):"";return s=s.trim(),this.rules.other.startAngleBracket.test(s)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(i)?s=s.slice(1):s=s.slice(1,-1)),ad(t,{href:s&&s.replace(this.rules.inline.anyPunctuation,"$1"),title:n&&n.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(e,t){let i;if((i=this.rules.inline.reflink.exec(e))||(i=this.rules.inline.nolink.exec(e))){let s=(i[2]||i[1]).replace(this.rules.other.multipleSpaceGlobal," "),n=t[s.toLowerCase()];if(!n){let r=i[0].charAt(0);return{type:"text",raw:r,text:r}}return ad(i,n,i[0],this.lexer,this.rules)}}emStrong(e,t,i=""){let s=this.rules.inline.emStrongLDelim.exec(e);if(!(!s||!s[1]&&!s[2]&&!s[3]&&!s[4]||s[4]&&i.match(this.rules.other.unicodeAlphaNumeric))&&(!(s[1]||s[3])||!i||this.rules.inline.punctuation.exec(i))){let n=[...s[0]].length-1,r,a,o=n,c=0,l=s[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(l.lastIndex=0,t=t.slice(-1*e.length+n);(s=l.exec(t))!==null;){if(r=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!r)continue;if(a=[...r].length,s[3]||s[4]){o+=a;continue}else if((s[5]||s[6])&&n%3&&!((n+a)%3)){c+=a;continue}if(o-=a,o>0)continue;a=Math.min(a,a+o+c);let u=[...s[0]][0].length,d=e.slice(0,n+s.index+u+a);if(Math.min(n,a)%2){let p=d.slice(1,-1);return{type:"em",raw:d,text:p,tokens:this.lexer.inlineTokens(p)}}let h=d.slice(2,-2);return{type:"strong",raw:d,text:h,tokens:this.lexer.inlineTokens(h)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let i=t[2].replace(this.rules.other.newLineCharGlobal," "),s=this.rules.other.nonSpaceChar.test(i),n=this.rules.other.startingSpaceChar.test(i)&&this.rules.other.endingSpaceChar.test(i);return s&&n&&(i=i.substring(1,i.length-1)),{type:"codespan",raw:t[0],text:i}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e,t,i=""){let s=this.rules.inline.delLDelim.exec(e);if(s&&(!s[1]||!i||this.rules.inline.punctuation.exec(i))){let n=[...s[0]].length-1,r,a,o=n,c=this.rules.inline.delRDelim;for(c.lastIndex=0,t=t.slice(-1*e.length+n);(s=c.exec(t))!==null;){if(r=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!r||(a=[...r].length,a!==n))continue;if(s[3]||s[4]){o+=a;continue}if(o-=a,o>0)continue;a=Math.min(a,a+o);let l=[...s[0]][0].length,u=e.slice(0,n+s.index+l+a),d=u.slice(n,-n);return{type:"del",raw:u,text:d,tokens:this.lexer.inlineTokens(d)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let i,s;return t[2]==="@"?(i=t[1],s="mailto:"+i):(i=t[1],s=i),{type:"link",raw:t[0],text:i,href:s,tokens:[{type:"text",raw:i,text:i}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let i,s;if(t[2]==="@")i=t[0],s="mailto:"+i;else{let n;do n=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??"";while(n!==t[0]);i=t[0],t[1]==="www."?s="http://"+t[0]:s=t[0]}return{type:"link",raw:t[0],text:i,href:s,tokens:[{type:"text",raw:i,text:i}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let i=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:i}}}},G=class ta{tokens;options;state;inlineQueue;tokenizer;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||Ct,this.options.tokenizer=this.options.tokenizer||new xi,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let i={other:O,block:Ei.normal,inline:ge.normal};this.options.pedantic?(i.block=Ei.pedantic,i.inline=ge.pedantic):this.options.gfm&&(i.block=Ei.gfm,this.options.breaks?i.inline=ge.breaks:i.inline=ge.gfm),this.tokenizer.rules=i}static get rules(){return{block:Ei,inline:ge}}static lex(t,i){return new ta(i).lex(t)}static lexInline(t,i){return new ta(i).inlineTokens(t)}lex(t){t=t.replace(O.carriageReturn,`
|
|
39
|
+
`),this.blockTokens(t,this.tokens);for(let i=0;i<this.inlineQueue.length;i++){let s=this.inlineQueue[i];this.inlineTokens(s.src,s.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(t,i=[],s=!1){for(this.tokenizer.lexer=this,this.options.pedantic&&(t=t.replace(O.tabCharGlobal," ").replace(O.spaceLine,""));t;){let n;if(this.options.extensions?.block?.some(a=>(n=a.call({lexer:this},t,i))?(t=t.substring(n.raw.length),i.push(n),!0):!1))continue;if(n=this.tokenizer.space(t)){t=t.substring(n.raw.length);let a=i.at(-1);n.raw.length===1&&a!==void 0?a.raw+=`
|
|
40
|
+
`:i.push(n);continue}if(n=this.tokenizer.code(t)){t=t.substring(n.raw.length);let a=i.at(-1);a?.type==="paragraph"||a?.type==="text"?(a.raw+=(a.raw.endsWith(`
|
|
41
|
+
`)?"":`
|
|
42
|
+
`)+n.raw,a.text+=`
|
|
43
|
+
`+n.text,this.inlineQueue.at(-1).src=a.text):i.push(n);continue}if(n=this.tokenizer.fences(t)){t=t.substring(n.raw.length),i.push(n);continue}if(n=this.tokenizer.heading(t)){t=t.substring(n.raw.length),i.push(n);continue}if(n=this.tokenizer.hr(t)){t=t.substring(n.raw.length),i.push(n);continue}if(n=this.tokenizer.blockquote(t)){t=t.substring(n.raw.length),i.push(n);continue}if(n=this.tokenizer.list(t)){t=t.substring(n.raw.length),i.push(n);continue}if(n=this.tokenizer.html(t)){t=t.substring(n.raw.length),i.push(n);continue}if(n=this.tokenizer.def(t)){t=t.substring(n.raw.length);let a=i.at(-1);a?.type==="paragraph"||a?.type==="text"?(a.raw+=(a.raw.endsWith(`
|
|
44
|
+
`)?"":`
|
|
45
|
+
`)+n.raw,a.text+=`
|
|
46
|
+
`+n.raw,this.inlineQueue.at(-1).src=a.text):this.tokens.links[n.tag]||(this.tokens.links[n.tag]={href:n.href,title:n.title},i.push(n));continue}if(n=this.tokenizer.table(t)){t=t.substring(n.raw.length),i.push(n);continue}if(n=this.tokenizer.lheading(t)){t=t.substring(n.raw.length),i.push(n);continue}let r=t;if(this.options.extensions?.startBlock){let a=1/0,o=t.slice(1),c;this.options.extensions.startBlock.forEach(l=>{c=l.call({lexer:this},o),typeof c=="number"&&c>=0&&(a=Math.min(a,c))}),a<1/0&&a>=0&&(r=t.substring(0,a+1))}if(this.state.top&&(n=this.tokenizer.paragraph(r))){let a=i.at(-1);s&&a?.type==="paragraph"?(a.raw+=(a.raw.endsWith(`
|
|
47
|
+
`)?"":`
|
|
48
|
+
`)+n.raw,a.text+=`
|
|
49
|
+
`+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=a.text):i.push(n),s=r.length!==t.length,t=t.substring(n.raw.length);continue}if(n=this.tokenizer.text(t)){t=t.substring(n.raw.length);let a=i.at(-1);a?.type==="text"?(a.raw+=(a.raw.endsWith(`
|
|
50
|
+
`)?"":`
|
|
51
|
+
`)+n.raw,a.text+=`
|
|
52
|
+
`+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=a.text):i.push(n);continue}if(t){let a="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(a);break}else throw new Error(a)}}return this.state.top=!0,i}inline(t,i=[]){return this.inlineQueue.push({src:t,tokens:i}),i}inlineTokens(t,i=[]){this.tokenizer.lexer=this;let s=t,n=null;if(this.tokens.links){let c=Object.keys(this.tokens.links);if(c.length>0)for(;(n=this.tokenizer.rules.inline.reflinkSearch.exec(s))!==null;)c.includes(n[0].slice(n[0].lastIndexOf("[")+1,-1))&&(s=s.slice(0,n.index)+"["+"a".repeat(n[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(n=this.tokenizer.rules.inline.anyPunctuation.exec(s))!==null;)s=s.slice(0,n.index)+"++"+s.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let r;for(;(n=this.tokenizer.rules.inline.blockSkip.exec(s))!==null;)r=n[2]?n[2].length:0,s=s.slice(0,n.index+r)+"["+"a".repeat(n[0].length-r-2)+"]"+s.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);s=this.options.hooks?.emStrongMask?.call({lexer:this},s)??s;let a=!1,o="";for(;t;){a||(o=""),a=!1;let c;if(this.options.extensions?.inline?.some(u=>(c=u.call({lexer:this},t,i))?(t=t.substring(c.raw.length),i.push(c),!0):!1))continue;if(c=this.tokenizer.escape(t)){t=t.substring(c.raw.length),i.push(c);continue}if(c=this.tokenizer.tag(t)){t=t.substring(c.raw.length),i.push(c);continue}if(c=this.tokenizer.link(t)){t=t.substring(c.raw.length),i.push(c);continue}if(c=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(c.raw.length);let u=i.at(-1);c.type==="text"&&u?.type==="text"?(u.raw+=c.raw,u.text+=c.text):i.push(c);continue}if(c=this.tokenizer.emStrong(t,s,o)){t=t.substring(c.raw.length),i.push(c);continue}if(c=this.tokenizer.codespan(t)){t=t.substring(c.raw.length),i.push(c);continue}if(c=this.tokenizer.br(t)){t=t.substring(c.raw.length),i.push(c);continue}if(c=this.tokenizer.del(t,s,o)){t=t.substring(c.raw.length),i.push(c);continue}if(c=this.tokenizer.autolink(t)){t=t.substring(c.raw.length),i.push(c);continue}if(!this.state.inLink&&(c=this.tokenizer.url(t))){t=t.substring(c.raw.length),i.push(c);continue}let l=t;if(this.options.extensions?.startInline){let u=1/0,d=t.slice(1),h;this.options.extensions.startInline.forEach(p=>{h=p.call({lexer:this},d),typeof h=="number"&&h>=0&&(u=Math.min(u,h))}),u<1/0&&u>=0&&(l=t.substring(0,u+1))}if(c=this.tokenizer.inlineText(l)){t=t.substring(c.raw.length),c.raw.slice(-1)!=="_"&&(o=c.raw.slice(-1)),a=!0;let u=i.at(-1);u?.type==="text"?(u.raw+=c.raw,u.text+=c.text):i.push(c);continue}if(t){let u="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(u);break}else throw new Error(u)}}return i}},Si=class{options;parser;constructor(e){this.options=e||Ct}space(e){return""}code({text:e,lang:t,escaped:i}){let s=(t||"").match(O.notSpaceStart)?.[0],n=e.replace(O.endingNewline,"")+`
|
|
53
|
+
`;return s?'<pre><code class="language-'+Q(s)+'">'+(i?n:Q(n,!0))+`</code></pre>
|
|
54
|
+
`:"<pre><code>"+(i?n:Q(n,!0))+`</code></pre>
|
|
55
|
+
`}blockquote({tokens:e}){return`<blockquote>
|
|
56
|
+
${this.parser.parse(e)}</blockquote>
|
|
57
|
+
`}html({text:e}){return e}def(e){return""}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>
|
|
58
|
+
`}hr(e){return`<hr>
|
|
59
|
+
`}list(e){let t=e.ordered,i=e.start,s="";for(let a=0;a<e.items.length;a++){let o=e.items[a];s+=this.listitem(o)}let n=t?"ol":"ul",r=t&&i!==1?' start="'+i+'"':"";return"<"+n+r+`>
|
|
60
|
+
`+s+"</"+n+`>
|
|
61
|
+
`}listitem(e){return`<li>${this.parser.parse(e.tokens)}</li>
|
|
62
|
+
`}checkbox({checked:e}){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox"> '}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p>
|
|
63
|
+
`}table(e){let t="",i="";for(let n=0;n<e.header.length;n++)i+=this.tablecell(e.header[n]);t+=this.tablerow({text:i});let s="";for(let n=0;n<e.rows.length;n++){let r=e.rows[n];i="";for(let a=0;a<r.length;a++)i+=this.tablecell(r[a]);s+=this.tablerow({text:i})}return s&&(s=`<tbody>${s}</tbody>`),`<table>
|
|
64
|
+
<thead>
|
|
65
|
+
`+t+`</thead>
|
|
66
|
+
`+s+`</table>
|
|
67
|
+
`}tablerow({text:e}){return`<tr>
|
|
68
|
+
${e}</tr>
|
|
69
|
+
`}tablecell(e){let t=this.parser.parseInline(e.tokens),i=e.header?"th":"td";return(e.align?`<${i} align="${e.align}">`:`<${i}>`)+t+`</${i}>
|
|
70
|
+
`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${Q(e,!0)}</code>`}br(e){return"<br>"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:i}){let s=this.parser.parseInline(i),n=nd(e);if(n===null)return s;e=n;let r='<a href="'+e+'"';return t&&(r+=' title="'+Q(t)+'"'),r+=">"+s+"</a>",r}image({href:e,title:t,text:i,tokens:s}){s&&(i=this.parser.parseInline(s,this.parser.textRenderer));let n=nd(e);if(n===null)return Q(i);e=n;let r=`<img src="${e}" alt="${Q(i)}"`;return t&&(r+=` title="${Q(t)}"`),r+=">",r}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:Q(e.text)}},ua=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return""+e}image({text:e}){return""+e}br(){return""}checkbox({raw:e}){return e}},Y=class ea{options;renderer;textRenderer;constructor(t){this.options=t||Ct,this.options.renderer=this.options.renderer||new Si,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new ua}static parse(t,i){return new ea(i).parse(t)}static parseInline(t,i){return new ea(i).parseInline(t)}parse(t){this.renderer.parser=this;let i="";for(let s=0;s<t.length;s++){let n=t[s];if(this.options.extensions?.renderers?.[n.type]){let a=n,o=this.options.extensions.renderers[a.type].call({parser:this},a);if(o!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(a.type)){i+=o||"";continue}}let r=n;switch(r.type){case"space":{i+=this.renderer.space(r);break}case"hr":{i+=this.renderer.hr(r);break}case"heading":{i+=this.renderer.heading(r);break}case"code":{i+=this.renderer.code(r);break}case"table":{i+=this.renderer.table(r);break}case"blockquote":{i+=this.renderer.blockquote(r);break}case"list":{i+=this.renderer.list(r);break}case"checkbox":{i+=this.renderer.checkbox(r);break}case"html":{i+=this.renderer.html(r);break}case"def":{i+=this.renderer.def(r);break}case"paragraph":{i+=this.renderer.paragraph(r);break}case"text":{i+=this.renderer.text(r);break}default:{let a='Token with "'+r.type+'" type was not found.';if(this.options.silent)return console.error(a),"";throw new Error(a)}}}return i}parseInline(t,i=this.renderer){this.renderer.parser=this;let s="";for(let n=0;n<t.length;n++){let r=t[n];if(this.options.extensions?.renderers?.[r.type]){let o=this.options.extensions.renderers[r.type].call({parser:this},r);if(o!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(r.type)){s+=o||"";continue}}let a=r;switch(a.type){case"escape":{s+=i.text(a);break}case"html":{s+=i.html(a);break}case"link":{s+=i.link(a);break}case"image":{s+=i.image(a);break}case"checkbox":{s+=i.checkbox(a);break}case"strong":{s+=i.strong(a);break}case"em":{s+=i.em(a);break}case"codespan":{s+=i.codespan(a);break}case"br":{s+=i.br(a);break}case"del":{s+=i.del(a);break}case"text":{s+=i.text(a);break}default:{let o='Token with "'+a.type+'" type was not found.';if(this.options.silent)return console.error(o),"";throw new Error(o)}}}return s}},ye=class{options;block;constructor(e){this.options=e||Ct}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?G.lex:G.lexInline}provideParser(e=this.block){return e?Y.parse:Y.parseInline}},kb=class{defaults=ia();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=Y;Renderer=Si;TextRenderer=ua;Lexer=G;Tokenizer=xi;Hooks=ye;constructor(...e){this.use(...e)}walkTokens(e,t){let i=[];for(let s of e)switch(i=i.concat(t.call(this,s)),s.type){case"table":{let n=s;for(let r of n.header)i=i.concat(this.walkTokens(r.tokens,t));for(let r of n.rows)for(let a of r)i=i.concat(this.walkTokens(a.tokens,t));break}case"list":{let n=s;i=i.concat(this.walkTokens(n.items,t));break}default:{let n=s;this.defaults.extensions?.childTokens?.[n.type]?this.defaults.extensions.childTokens[n.type].forEach(r=>{let a=n[r].flat(1/0);i=i.concat(this.walkTokens(a,t))}):n.tokens&&(i=i.concat(this.walkTokens(n.tokens,t)))}}return i}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(i=>{let s={...i};if(s.async=this.defaults.async||s.async||!1,i.extensions&&(i.extensions.forEach(n=>{if(!n.name)throw new Error("extension name required");if("renderer"in n){let r=t.renderers[n.name];r?t.renderers[n.name]=function(...a){let o=n.renderer.apply(this,a);return o===!1&&(o=r.apply(this,a)),o}:t.renderers[n.name]=n.renderer}if("tokenizer"in n){if(!n.level||n.level!=="block"&&n.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let r=t[n.level];r?r.unshift(n.tokenizer):t[n.level]=[n.tokenizer],n.start&&(n.level==="block"?t.startBlock?t.startBlock.push(n.start):t.startBlock=[n.start]:n.level==="inline"&&(t.startInline?t.startInline.push(n.start):t.startInline=[n.start]))}"childTokens"in n&&n.childTokens&&(t.childTokens[n.name]=n.childTokens)}),s.extensions=t),i.renderer){let n=this.defaults.renderer||new Si(this.defaults);for(let r in i.renderer){if(!(r in n))throw new Error(`renderer '${r}' does not exist`);if(["options","parser"].includes(r))continue;let a=r,o=i.renderer[a],c=n[a];n[a]=(...l)=>{let u=o.apply(n,l);return u===!1&&(u=c.apply(n,l)),u||""}}s.renderer=n}if(i.tokenizer){let n=this.defaults.tokenizer||new xi(this.defaults);for(let r in i.tokenizer){if(!(r in n))throw new Error(`tokenizer '${r}' does not exist`);if(["options","rules","lexer"].includes(r))continue;let a=r,o=i.tokenizer[a],c=n[a];n[a]=(...l)=>{let u=o.apply(n,l);return u===!1&&(u=c.apply(n,l)),u}}s.tokenizer=n}if(i.hooks){let n=this.defaults.hooks||new ye;for(let r in i.hooks){if(!(r in n))throw new Error(`hook '${r}' does not exist`);if(["options","block"].includes(r))continue;let a=r,o=i.hooks[a],c=n[a];ye.passThroughHooks.has(r)?n[a]=l=>{if(this.defaults.async&&ye.passThroughHooksRespectAsync.has(r))return(async()=>{let d=await o.call(n,l);return c.call(n,d)})();let u=o.call(n,l);return c.call(n,u)}:n[a]=(...l)=>{if(this.defaults.async)return(async()=>{let d=await o.apply(n,l);return d===!1&&(d=await c.apply(n,l)),d})();let u=o.apply(n,l);return u===!1&&(u=c.apply(n,l)),u}}s.hooks=n}if(i.walkTokens){let n=this.defaults.walkTokens,r=i.walkTokens;s.walkTokens=function(a){let o=[];return o.push(r.call(this,a)),n&&(o=o.concat(n.call(this,a))),o}}this.defaults={...this.defaults,...s}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return G.lex(e,t??this.defaults)}parser(e,t){return Y.parse(e,t??this.defaults)}parseMarkdown(e){return(t,i)=>{let s={...i},n={...this.defaults,...s},r=this.onError(!!n.silent,!!n.async);if(this.defaults.async===!0&&s.async===!1)return r(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||t===null)return r(new Error("marked(): input parameter is undefined or null"));if(typeof t!="string")return r(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(n.hooks&&(n.hooks.options=n,n.hooks.block=e),n.async)return(async()=>{let a=n.hooks?await n.hooks.preprocess(t):t,o=await(n.hooks?await n.hooks.provideLexer(e):e?G.lex:G.lexInline)(a,n),c=n.hooks?await n.hooks.processAllTokens(o):o;n.walkTokens&&await Promise.all(this.walkTokens(c,n.walkTokens));let l=await(n.hooks?await n.hooks.provideParser(e):e?Y.parse:Y.parseInline)(c,n);return n.hooks?await n.hooks.postprocess(l):l})().catch(r);try{n.hooks&&(t=n.hooks.preprocess(t));let a=(n.hooks?n.hooks.provideLexer(e):e?G.lex:G.lexInline)(t,n);n.hooks&&(a=n.hooks.processAllTokens(a)),n.walkTokens&&this.walkTokens(a,n.walkTokens);let o=(n.hooks?n.hooks.provideParser(e):e?Y.parse:Y.parseInline)(a,n);return n.hooks&&(o=n.hooks.postprocess(o)),o}catch(a){return r(a)}}}onError(e,t){return i=>{if(i.message+=`
|
|
71
|
+
Please report this to https://github.com/markedjs/marked.`,e){let s="<p>An error occurred:</p><pre>"+Q(i.message+"",!0)+"</pre>";return t?Promise.resolve(s):s}if(t)return Promise.reject(i);throw i}}},St=new kb;C.options=C.setOptions=function(e){return St.setOptions(e),C.defaults=St.defaults,od(C.defaults),C};C.getDefaults=ia;C.defaults=Ct;C.use=function(...e){return St.use(...e),C.defaults=St.defaults,od(C.defaults),C};C.walkTokens=function(e,t){return St.walkTokens(e,t)};C.parseInline=St.parseInline;C.Parser=Y;C.parser=Y.parse;C.Renderer=Si;C.TextRenderer=ua;C.Lexer=G;C.lexer=G.lex;C.Tokenizer=xi;C.Hooks=ye;C.parse=C;LE=C.options,ME=C.setOptions,NE=C.use,_E=C.walkTokens,DE=C.parseInline,$E=Y.parse,IE=G.lex});var Lb={};function da(e){return e.trim()?Gt(C.parseInline(e,{gfm:!0})):""}function yd(e,t,i){e.dispatchEvent(new CustomEvent("markdown-editable:change",{bubbles:!0,detail:{value:t,html:i}}))}function Sb(e){e.contentEditable="true",e.setAttribute("role","textbox"),e.setAttribute("aria-multiline","false");let t=e.textContent.trim();e.dataset.markdownValue=t,t&&(e.innerHTML=da(t));let i=!1;e.addEventListener("compositionstart",()=>{i=!0}),e.addEventListener("compositionend",()=>{i=!1}),e.addEventListener("focus",()=>{if(i)return;let s=e.dataset.markdownValue||"";e.textContent=s,e.setAttribute("data-md-editing",""),requestAnimationFrame(()=>{let n=window.getSelection();n&&e.childNodes.length&&n.collapse(e.childNodes[e.childNodes.length-1],e.textContent.length)})}),e.addEventListener("blur",()=>{if(i)return;let s=e.textContent.trim(),n=e.dataset.markdownValue;e.dataset.markdownValue=s,e.removeAttribute("data-md-editing"),s?e.innerHTML=da(s):e.textContent="",s!==n&&yd(e,s,e.innerHTML)})}function Cb(e){let t=e.dataset.preview?document.getElementById(e.dataset.preview):null;t||(t=document.createElement("output"),t.className="md-editable-preview",t.setAttribute("aria-label","Markdown preview"),e.after(t));function i(){let s=da(e.value);return t&&(t.innerHTML=s),s}e.addEventListener("blur",()=>{let s=i();yd(e,e.value,s)}),e.value.trim()&&i()}function Tb(e){if(e.hasAttribute("data-markdown-editable-init"))return;e.setAttribute("data-markdown-editable-init","");let t=e.tagName;t==="TEXTAREA"||t==="INPUT"?Cb(e):Sb(e)}var xb,vd=w(()=>{B();bd();_e();xb="[data-markdown-editable]";S(xb,Tb)});function wd(e=document,t={}){let i=t.language||"mermaid",s=t.type||"mermaid",n=Array.isArray(t.primingSvgs)?t.primingSvgs:null,r=`pre > code.language-${i}`,a=[],o=0;for(let c of e.querySelectorAll(r)){let l=c.parentElement;if(!l||l.parentElement?.tagName.toLowerCase()==="diagram-wc")continue;let u=l.parentNode,d=l.nextSibling,h=document.createElement("diagram-wc");if(h.setAttribute("type",s),h.appendChild(l),n&&n[o]){let p=document.createElement("figure");p.className="dwc-figure",p.setAttribute("role","img"),p.innerHTML=n[o],h.appendChild(p)}u?.insertBefore(h,d),a.push(h),o++}return a}var Ad=w(()=>{});var Db={};function Nb(e){return!e||!e.hasAttribute?!1:e.hasAttribute("data-auto-mermaid")?!0:!!e.closest?.("markdown-editor[data-auto-mermaid]")}function kd(e){let t=fa.get(e);return t||(t=[],fa.set(e,t)),t}function _b(e,t){let i=ha.get(e);i&&clearTimeout(i);let s=setTimeout(()=>{ha.delete(e),xd(e,t||e)},Mb);ha.set(e,s)}function xd(e,t){let i=kd(e),s=wd(t,{primingSvgs:i});s.forEach((n,r)=>{n.dataset.bridgeIndex=String(r)}),i.length>s.length&&(i.length=s.length),i.length>Ed&&(i.length=Ed)}var Mb,Ed,ha,fa,pa,Sd=w(()=>{Ad();Mb=250,Ed=16,ha=new WeakMap,fa=new WeakMap;pa=typeof document<"u"?document.documentElement:null;if(pa&&!pa.hasAttribute("data-vb-mermaid-bridge-init")){pa.setAttribute("data-vb-mermaid-bridge-init",""),document.addEventListener("markdown-viewer:rendered",t=>{let i=t.target;if(!Nb(i))return;let s=t.detail?.node||i;_b(i,s)}),document.addEventListener("diagram-wc:ready",t=>{let i=t.target,s=i.closest?.("markdown-viewer");if(!s)return;let n=parseInt(i.dataset.bridgeIndex||"",10);if(Number.isNaN(n))return;let r=kd(s);r[n]=t.detail?.svg||r[n]}),window.addEventListener("vb:theme-change",()=>{for(let t of document.querySelectorAll("markdown-viewer")){let i=fa.get(t);i&&(i.length=0)}});let e="markdown-viewer[data-auto-mermaid], markdown-editor[data-auto-mermaid] markdown-viewer";for(let t of document.querySelectorAll(e))xd(t,t)}});function Ib(e){let t=0;for(let i=0;i<e.length;i++)t=e.charCodeAt(i)+((t<<5)-t);return t}function qb(e){let t=Li[0],i=Math.abs(e-t);for(let s=1;s<Li.length;s++){let n=Math.abs(e-Li[s]);n<i&&(t=Li[s],i=n)}return t}function Cd(e,t=128){let i=Ib(String(e)),s=(i%100+100)%100,n=(i>>>16&1)===0?"female":"male",r=qb(t);return`${$b}/${n}/${r}/${s}.jpg`}var $b,Li,Td=w(()=>{$b="https://cdn.jsdelivr.net/gh/faker-js/assets-person-portrait",Li=[32,64,128,256,512]});var Nd={};E(Nd,{initMockMedia:()=>ba});function Md(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function Ld(e,t,i){let s=Math.min(Math.max(e/15,12),32),n=e/2,r=t/2,a=i?Md(i):"",o=a?`<text x="${n}" y="${r}" text-anchor="middle" dominant-baseline="middle" font-family="system-ui,sans-serif" font-size="${s}" fill="#6b7280">${a}</text>`:"",c=`<svg xmlns="http://www.w3.org/2000/svg" width="${e}" height="${t}" viewBox="0 0 ${e} ${t}"><rect width="${e}" height="${t}" fill="#f3f4f6"/><line x1="0" y1="0" x2="${e}" y2="${t}" stroke="#d1d5db"/><line x1="${e}" y1="0" x2="0" y2="${t}" stroke="#d1d5db"/>${o}</svg>`;return`data:image/svg+xml,${encodeURIComponent(c)}`}function Fb(e){let t=Ob[e.dataset.mock],i=Number(e.getAttribute("width"))||t?.w||400,s=Number(e.getAttribute("height"))||t?.h||300;return{w:i,h:s}}function ga(e){if(e.hasAttribute("data-mock-init"))return;e.setAttribute("data-mock-init","");let t=e.tagName.toLowerCase(),i=e.dataset.mock,{w:s,h:n}=Fb(e);if(t==="img"){if(i==="photo"){let r=e.dataset.seed,a=r?`https://picsum.photos/seed/${encodeURIComponent(r)}/${s}/${n}`:`https://picsum.photos/${s}/${n}`;e.getAttribute("src")||(e.setAttribute("src",a),e.setAttribute("loading","lazy"))}else if(i==="placehold"){if(!e.getAttribute("src")){let r=e.getAttribute("alt")||"",a=r?`?text=${encodeURIComponent(r)}`:"";e.setAttribute("src",`https://placehold.co/${s}x${n}${a}`),e.setAttribute("loading","lazy")}}else if(i==="portrait"||i==="profile"||i==="headshot"||i==="avatar"){if(!e.getAttribute("src")){let r=e.dataset.seed||e.getAttribute("alt")||String(Bb++);e.setAttribute("src",Cd(r,Math.max(s,n))),e.setAttribute("loading","lazy")}}else if(!e.getAttribute("src")){let r=e.getAttribute("alt")||`${s}\xD7${n}`;e.setAttribute("src",Ld(s,n,r))}}else if(t==="video"){if(!e.getAttribute("poster")){let r=e.getAttribute("alt")||e.getAttribute("title")||"Video";e.setAttribute("poster",Ld(s,n,`\u25B6 ${r}`))}}else if(t==="iframe"){if(!e.getAttribute("src")&&!e.getAttribute("srcdoc")){let r=e.getAttribute("title")||"Embedded content";e.setAttribute("srcdoc",`<!DOCTYPE html><html><body style="display:grid;place-items:center;height:100vh;margin:0;background:#f3f4f6;font-family:system-ui,sans-serif;color:#6b7280"><p>${Md(r)}</p></body></html>`)}}else t==="canvas"&&Pb(e,s,n)}function Pb(e,t,i){e.width=t,e.height=i;let s=e.getContext("2d");if(!s)return;s.fillStyle="#f3f4f6",s.fillRect(0,0,t,i),s.strokeStyle="#d1d5db",s.lineWidth=1,s.beginPath(),s.moveTo(0,0),s.lineTo(t,i),s.moveTo(t,0),s.lineTo(0,i),s.stroke();let n=e.getAttribute("aria-label")||e.getAttribute("title")||`${t}\xD7${i}`,r=Math.min(Math.max(t/15,12),32);s.fillStyle="#6b7280",s.font=`${r}px system-ui, sans-serif`,s.textAlign="center",s.textBaseline="middle",s.fillText(n,t/2,i/2)}function ba(e=document){e.querySelectorAll(ma).forEach(ga)}var ma,Bb,Ob,Rb,_d=w(()=>{Td();ma=":is(img, video, iframe, canvas)[data-mock]",Bb=0,Ob={hero:{w:1200,h:400},card:{w:400,h:225},avatar:{w:48,h:48},product:{w:400,h:400},thumbnail:{w:150,h:150},logo:{w:200,h:50},og:{w:1200,h:630},banner:{w:728,h:90},portrait:{w:128,h:128},profile:{w:128,h:128},headshot:{w:256,h:256}};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>ba()):ba();Rb=new MutationObserver(e=>{for(let t of e)for(let i of t.addedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i;s.matches(ma)&&ga(s),s.querySelectorAll(ma).forEach(n=>ga(n))}});Rb.observe(document.documentElement,{childList:!0,subtree:!0})});var $d={};E($d,{initLorem:()=>Aa});function we(e){let t=e.closest("[lang]")?.getAttribute("lang")?.split("-")[0]?.toLowerCase();return t&&Ub[t]||"latin"}function Wb(e){return e.split(/(?<=[.!?\u3002])\s*/).filter(Boolean)}function va(e){return e==="cjk"}function Gb(e,t,i){if(va(i)){let r=[...e],a=[];for(let o=0;o<t;o++)a.push(r[o%r.length]);return a.join("")}let s=e.split(/\s+/),n=[];for(let r=0;r<t;r++)n.push(s[r%s.length]);return n.join(" ")}function Yb(e,t){let i=(e||"").trim();if(Dd[i])return{mode:"words",count:va(i)?80:50,corpus:i};if(i==="heading")return{mode:"words",count:5,corpus:we(t)};let s=i.match(/^(\d+)\s+sentences?$/i);if(s)return{mode:"sentences",count:Number(s[1]),corpus:we(t)};let n=i.match(/^(\d+)\s+items?$/i);if(n)return{mode:"items",count:Number(n[1]),corpus:we(t)};let r=i.match(/^(\d+)$/);if(r)return{mode:"words",count:Number(r[1]),corpus:we(t)};let a=we(t);return{mode:"words",count:va(a)?80:50,corpus:a}}function Kb(e){let t=Dd[e.corpus],i=Wb(t);if(e.mode==="sentences"){let s=[];for(let n=0;n<e.count;n++)s.push(i[n%i.length]);return s.join(" ")}if(e.mode==="items"){let s=[];for(let n=0;n<e.count;n++)s.push(i[n%i.length]);return s}return Gb(t,e.count,e.corpus)}function wa(e){if(e.hasAttribute("data-lorem-init"))return;e.setAttribute("data-lorem-init","");let t=Yb(e.dataset.lorem??"",e),i=Kb(t),s=e.tagName.toLowerCase();t.mode==="items"&&Array.isArray(i)&&(s==="ul"||s==="ol")?e.innerHTML=i.map(n=>`<li>${n}</li>`).join(""):Array.isArray(i)?e.textContent=i.join(" "):e.textContent=i,e.setAttribute("data-lorem-filled",""),e.setAttribute("translate","no")}function Aa(e=document){e.querySelectorAll(ya).forEach(wa)}var ya,jb,Hb,zb,Vb,Dd,Ub,Xb,Id=w(()=>{ya="[data-lorem]",jb="Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident sunt in culpa qui officia deserunt mollit anim id est laborum. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium totam rem aperiam eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est qui dolorem ipsum quia dolor sit amet consectetur adipisci velit sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam quis nostrum exercitationem ullam corporis suscipit laboriosam nisi ut aliquid ex ea commodi consequatur. Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur vel illum qui dolorem eum fugiat quo voluptas nulla pariatur. At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident similique sunt in culpa qui officia deserunt mollitia animi id est laborum et dolorum fuga.",Hb="\u3053\u308C\u306F\u30C0\u30DF\u30FC\u30C6\u30AD\u30B9\u30C8\u3067\u3059\u3002\u30EC\u30A4\u30A2\u30A6\u30C8\u306E\u78BA\u8A8D\u306B\u4F7F\u7528\u3057\u307E\u3059\u3002\u5B9F\u969B\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u306F\u5F8C\u3067\u8FFD\u52A0\u3055\u308C\u307E\u3059\u3002\u3053\u306E\u6587\u7AE0\u306F\u30D7\u30EC\u30FC\u30B9\u30DB\u30EB\u30C0\u30FC\u3068\u3057\u3066\u6A5F\u80FD\u3057\u307E\u3059\u3002\u30C7\u30B6\u30A4\u30F3\u306E\u30D7\u30ED\u30C8\u30BF\u30A4\u30D7\u4F5C\u6210\u4E2D\u306B\u3001\u30C6\u30AD\u30B9\u30C8\u304C\u5FC5\u8981\u306A\u5834\u6240\u306B\u914D\u7F6E\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u65E5\u672C\u8A9E\u306E\u6587\u5B57\u306F\u7D04\u5343\u5E74\u524D\u306B\u4E2D\u56FD\u304B\u3089\u4F1D\u308F\u308A\u307E\u3057\u305F\u3002\u73FE\u4EE3\u306E\u65E5\u672C\u8A9E\u306F\u6F22\u5B57\u3001\u3072\u3089\u304C\u306A\u3001\u30AB\u30BF\u30AB\u30CA\u306E\u4E09\u7A2E\u985E\u306E\u6587\u5B57\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002\u30A6\u30A7\u30D6\u30C7\u30B6\u30A4\u30F3\u3067\u306F\u3001\u30C6\u30AD\u30B9\u30C8\u306E\u8AAD\u307F\u3084\u3059\u3055\u3068\u30EC\u30A4\u30A2\u30A6\u30C8\u306E\u30D0\u30E9\u30F3\u30B9\u304C\u91CD\u8981\u3067\u3059\u3002",zb="\u0647\u0630\u0627 \u0646\u0635 \u062A\u062C\u0631\u064A\u0628\u064A \u064A\u0633\u062A\u062E\u062F\u0645 \u0644\u0639\u0631\u0636 \u0627\u0644\u062A\u0635\u0645\u064A\u0645. \u064A\u0645\u0643\u0646 \u0627\u0633\u062A\u0628\u062F\u0627\u0644\u0647 \u0628\u0627\u0644\u0645\u062D\u062A\u0648\u0649 \u0627\u0644\u0641\u0639\u0644\u064A \u0644\u0627\u062D\u0642\u0627. \u0627\u0644\u063A\u0631\u0636 \u0645\u0646\u0647 \u0647\u0648 \u0625\u0638\u0647\u0627\u0631 \u0643\u064A\u0641 \u0633\u064A\u0628\u062F\u0648 \u0627\u0644\u0646\u0635 \u0641\u064A \u0627\u0644\u0645\u0648\u0642\u0639. \u062A\u0635\u0645\u064A\u0645 \u0627\u0644\u0648\u064A\u0628 \u064A\u062A\u0637\u0644\u0628 \u0646\u0635\u0648\u0635\u0627 \u0646\u0627\u0626\u0628\u0629 \u0644\u0645\u0644\u0621 \u0627\u0644\u0641\u0631\u0627\u063A\u0627\u062A. \u0647\u0630\u0627 \u0627\u0644\u0646\u0635 \u0647\u0648 \u0628\u062F\u064A\u0644 \u0639\u0631\u0628\u064A \u0644\u0646\u0635 \u0644\u0648\u0631\u064A\u0645 \u0625\u064A\u0628\u0633\u0648\u0645 \u0627\u0644\u0644\u0627\u062A\u064A\u0646\u064A. \u064A\u0633\u0627\u0639\u062F \u0641\u064A \u0627\u062E\u062A\u0628\u0627\u0631 \u0627\u0644\u062A\u062E\u0637\u064A\u0637\u0627\u062A \u0648\u0627\u0644\u062E\u0637\u0648\u0637 \u0648\u0627\u0644\u0627\u062A\u062C\u0627\u0647 \u0645\u0646 \u0627\u0644\u064A\u0645\u064A\u0646 \u0625\u0644\u0649 \u0627\u0644\u064A\u0633\u0627\u0631. \u0627\u0644\u0644\u063A\u0629 \u0627\u0644\u0639\u0631\u0628\u064A\u0629 \u0645\u0646 \u0623\u0643\u062B\u0631 \u0627\u0644\u0644\u063A\u0627\u062A \u0627\u0646\u062A\u0634\u0627\u0631\u0627 \u0641\u064A \u0627\u0644\u0639\u0627\u0644\u0645.",Vb="\u042D\u0442\u043E \u043F\u0440\u0438\u043C\u0435\u0440 \u0442\u0435\u043A\u0441\u0442\u0430 \u0434\u043B\u044F \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 \u043C\u0430\u043A\u0435\u0442\u0430. \u041E\u043D \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u043A\u0430\u043A \u0437\u0430\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C \u0434\u043B\u044F \u043F\u0440\u043E\u0442\u043E\u0442\u0438\u043F\u043E\u0432. \u0420\u0435\u0430\u043B\u044C\u043D\u044B\u0439 \u043A\u043E\u043D\u0442\u0435\u043D\u0442 \u0431\u0443\u0434\u0435\u0442 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D \u043F\u043E\u0437\u0436\u0435. \u0412\u0435\u0431-\u0434\u0438\u0437\u0430\u0439\u043D \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0445 \u0437\u0430\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u0435\u0439 \u0434\u043B\u044F \u043F\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0433\u043E \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430 \u043C\u0430\u043A\u0435\u0442\u043E\u0432. \u042D\u0442\u043E\u0442 \u0442\u0435\u043A\u0441\u0442 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0440\u0443\u0441\u0441\u043A\u043E\u044F\u0437\u044B\u0447\u043D\u043E\u0439 \u0430\u043B\u044C\u0442\u0435\u0440\u043D\u0430\u0442\u0438\u0432\u043E\u0439 \u043B\u0430\u0442\u0438\u043D\u0441\u043A\u043E\u043C\u0443 \u0442\u0435\u043A\u0441\u0442\u0443. \u041A\u0438\u0440\u0438\u043B\u043B\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0448\u0440\u0438\u0444\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u043C\u043D\u043E\u0433\u0438\u043C\u0438 \u044F\u0437\u044B\u043A\u0430\u043C\u0438 \u043C\u0438\u0440\u0430. \u041F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u043A\u0430\u043A \u0432\u0430\u0448 \u0434\u0438\u0437\u0430\u0439\u043D \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u0441 \u044D\u0442\u0438\u043C \u043D\u0430\u0431\u043E\u0440\u043E\u043C \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432.",Dd={latin:jb,cjk:Hb,arabic:zb,cyrillic:Vb},Ub={ja:"cjk",zh:"cjk",ko:"cjk",ar:"arabic",fa:"arabic",ur:"arabic",he:"arabic",ru:"cyrillic",uk:"cyrillic",bg:"cyrillic",sr:"cyrillic"};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>Aa()):Aa();Xb=new MutationObserver(e=>{for(let t of e)for(let i of t.addedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i;s.matches(ya)&&wa(s),s.querySelectorAll(ya).forEach(n=>wa(n))}});Xb.observe(document.documentElement,{childList:!0,subtree:!0})});var ht=new Map,Di=new Map;var Ba=null;function Oa(){if(typeof window<"u"&&window.__VB_THEME_BASE)return String(window.__VB_THEME_BASE).replace(/\/$/,"");if(Ba)return Ba;if(typeof document<"u"){let e=document.querySelectorAll('script[src*="vanilla-breeze"]');for(let t of e){let i=t.getAttribute("src");if(i){let s=i.lastIndexOf("/");if(s!==-1)return i.slice(0,s)}}}return"/cdn"}var rh=new Set(["default","a11y-high-contrast","a11y-large-text","a11y-dyslexia","modern","minimal","classic"]),ah=new Set(["kawaii","memphis"]);function $i(e){return ah.has(e)}function oh(e,t){return`${t}/themes/${e}.css`}function Fa(e,t){if(!$i(e))return Promise.resolve();if(Di.has(e))return Di.get(e);let i=import(`${t}/packs/${e}.full.js`).catch(()=>{});return Di.set(e,i),i}function ch(e,t){let i=Oa(),s=()=>{($i(t)||e.hasAttribute("data-vb-pack"))&&Fa(t,i)};return e.getAttribute("data-vb-theme-state")==="error"?Promise.reject(new Error(`Failed to load theme: ${t}`)):e.getAttribute("data-vb-theme-state")==="ready"||e.sheet?(s(),Promise.resolve()):new Promise((n,r)=>{let a=()=>{e.setAttribute("data-vb-theme-state","ready"),c(),s(),n(void 0)},o=()=>{e.setAttribute("data-vb-theme-state","error"),ht.delete(t),c(),r(new Error(`Failed to load theme: ${t}`))},c=()=>{e.removeEventListener("load",a),e.removeEventListener("error",o)};e.addEventListener("load",a,{once:!0}),e.addEventListener("error",o,{once:!0})})}async function jt(e){if(!e||rh.has(e))return;if(ht.has(e))return ht.get(e);if(typeof document<"u"){let s=document.querySelector(`link[data-vb-theme="${e}"]`);if(s){let n=ch(s,e);return ht.set(e,n),n}}let t=Oa(),i=$i(e)?uh(e,t):lh(e,t);return ht.set(e,i),i}async function lh(e,t){let i=oh(e,t);return new Promise((s,n)=>{let r=document.querySelector(`link[data-vb-theme-preload="${e}"]`);r&&r.remove();let a=document.createElement("link");a.rel="stylesheet",a.href=i,a.setAttribute("data-vb-theme",e),a.setAttribute("data-vb-theme-state","loading"),a.onload=()=>{a.setAttribute("data-vb-theme-state","ready"),s()},a.onerror=()=>{a.setAttribute("data-vb-theme-state","error"),a.remove(),ht.delete(e),n(new Error(`Failed to load theme: ${e}`))},document.head.appendChild(a)})}function uh(e,t){let i=`${t}/packs/${e}.theme.css`,s=`${t}/packs/${e}.effects.css`;return new Promise((n,r)=>{let a=document.querySelector(`link[data-vb-theme-preload="${e}"]`);a&&a.remove();let o=document.createElement("link");o.rel="stylesheet",o.href=i,o.setAttribute("data-vb-theme",e),o.setAttribute("data-vb-pack",e),o.setAttribute("data-vb-theme-state","loading"),o.onload=()=>{o.setAttribute("data-vb-theme-state","ready");let c=document.createElement("link");c.rel="stylesheet",c.href=s,c.setAttribute("data-vb-pack-effects",e),document.head.appendChild(c),Fa(e,t),n()},o.onerror=()=>{o.setAttribute("data-vb-theme-state","error"),o.remove(),ht.delete(e),r(new Error(`Failed to load pack: ${e}`))},document.head.appendChild(o)})}var Pa=[{id:"default",name:"Default",swatchBg:"#3b82f6",seeds:{}},{id:"ocean",name:"Ocean",swatchBg:"#0891b2",seeds:{"--hue-primary":200,"--hue-secondary":180,"--hue-accent":45,"--lightness-primary":"50%","--chroma-primary":.15,"--lightness-secondary":"45%","--chroma-secondary":.1,"--lightness-accent":"70%","--chroma-accent":.15},seedsDark:{"--lightness-primary":"60%","--chroma-primary":.12}},{id:"forest",name:"Forest",swatchBg:"#059669",seeds:{"--hue-primary":145,"--hue-secondary":90,"--hue-accent":30,"--lightness-primary":"45%","--chroma-primary":.15,"--lightness-secondary":"55%","--chroma-secondary":.12,"--lightness-accent":"65%","--chroma-accent":.16},seedsDark:{"--lightness-primary":"58%","--chroma-primary":.12}},{id:"sunset",name:"Sunset",swatchBg:"#ea580c",seeds:{"--hue-primary":25,"--hue-secondary":0,"--hue-accent":280,"--lightness-primary":"57%","--chroma-primary":.2,"--lightness-secondary":"55%","--chroma-secondary":.18,"--lightness-accent":"55%","--chroma-accent":.18},seedsDark:{"--lightness-primary":"65%","--chroma-primary":.16}},{id:"rose",name:"Rose",swatchBg:"#e11d48",seeds:{"--hue-primary":350,"--hue-secondary":330,"--hue-accent":200,"--lightness-primary":"55%","--chroma-primary":.18,"--lightness-secondary":"50%","--chroma-secondary":.14,"--lightness-accent":"60%","--chroma-accent":.12},seedsDark:{"--lightness-primary":"65%","--chroma-primary":.14}},{id:"lavender",name:"Lavender",swatchBg:"#a855f7",seeds:{"--hue-primary":280,"--hue-secondary":300,"--hue-accent":60,"--lightness-primary":"55%","--chroma-primary":.14,"--lightness-secondary":"50%","--chroma-secondary":.12,"--lightness-accent":"70%","--chroma-accent":.14},seedsDark:{"--lightness-primary":"65%","--chroma-primary":.12}},{id:"coral",name:"Coral",swatchBg:"#f97316",seeds:{"--hue-primary":15,"--hue-secondary":25,"--hue-accent":180,"--lightness-primary":"57%","--chroma-primary":.18,"--lightness-secondary":"55%","--chroma-secondary":.15,"--lightness-accent":"55%","--chroma-accent":.12},seedsDark:{"--lightness-primary":"65%","--chroma-primary":.15}},{id:"slate",name:"Slate",swatchBg:"#64748b",seeds:{"--hue-primary":220,"--hue-secondary":210,"--hue-accent":45,"--lightness-primary":"48%","--chroma-primary":.1,"--lightness-secondary":"45%","--chroma-secondary":.06,"--lightness-accent":"68%","--chroma-accent":.15},seedsDark:{"--lightness-primary":"60%","--chroma-primary":.08}},{id:"emerald",name:"Emerald",swatchBg:"#10b981",seeds:{"--hue-primary":160,"--hue-secondary":140,"--hue-accent":30,"--lightness-primary":"50%","--chroma-primary":.15,"--lightness-secondary":"48%","--chroma-secondary":.12,"--lightness-accent":"65%","--chroma-accent":.16},seedsDark:{"--lightness-primary":"60%","--chroma-primary":.12}},{id:"amber",name:"Amber",swatchBg:"#f59e0b",seeds:{"--hue-primary":45,"--hue-secondary":30,"--hue-accent":240,"--lightness-primary":"56%","--chroma-primary":.16,"--lightness-secondary":"55%","--chroma-secondary":.15,"--lightness-accent":"52%","--chroma-accent":.14},seedsDark:{"--lightness-primary":"68%","--chroma-primary":.14}},{id:"indigo",name:"Indigo",swatchBg:"#6366f1",seeds:{"--hue-primary":250,"--hue-secondary":270,"--hue-accent":35,"--lightness-primary":"48%","--chroma-primary":.18,"--lightness-secondary":"45%","--chroma-secondary":.14,"--lightness-accent":"68%","--chroma-accent":.16},seedsDark:{"--lightness-primary":"62%","--chroma-primary":.14}}],Ra=[{id:"default",name:"Default",hue:210,shape:"balanced",character:"The default",swatchBg:"#3b82f6",tier:"core"},{id:"modern",name:"Modern",hue:270,shape:"rounded",character:"Vibrant & elevated",swatchBg:"#6366f1",tier:"core"},{id:"minimal",name:"Minimal",hue:240,shape:"sharp",character:"Clean & flat",swatchBg:"#71717a",tier:"core"},{id:"classic",name:"Classic",hue:220,shape:"subtle",character:"Serif & elegant",swatchBg:"#92400e",tier:"core"}],Ii=[{id:"swiss",name:"Swiss",icon:"grid-3x3",character:"Precision grid",swatchBg:"#ff3e00",swatchFg:"white",tier:"showcase",category:"Design"},{id:"brutalist",name:"Brutalist",icon:"square",character:"Raw, industrial",swatchBg:"#1a1a1a",swatchFg:"#f5f5f5",tier:"showcase",category:"Design"},{id:"art-deco",name:"Art Deco",icon:"crown",character:"1920s luxury",swatchBg:"#1A1A1A",swatchFg:"#C9A84C",tier:"showcase",category:"Design"},{id:"editorial",name:"Editorial",icon:"newspaper",character:"Magazine elegance",swatchBg:"#1a1a1a",swatchFg:"#c9a227",tier:"showcase",category:"Content"},{id:"genai",name:"GenAI",icon:"sparkles",character:"AI aesthetic",swatchBg:"#1a0a2e",swatchFg:"#a855f7",tier:"showcase",category:"Modern"},{id:"glassmorphism",name:"Glass",icon:"glass-water",character:"Frosted surfaces",swatchBg:"#667eea",swatchFg:"#ffffff",tier:"showcase",category:"Modern"},{id:"startup",name:"Startup",icon:"rocket",character:"SaaS energy",swatchBg:"#4f46e5",swatchFg:"#ffffff",tier:"showcase",category:"Modern"},{id:"organic",name:"Organic",icon:"leaf",character:"Natural, handcrafted",swatchBg:"#2d5016",swatchFg:"#faf5e6",tier:"showcase",category:"Creative"},{id:"rough",name:"Rough",icon:"pencil",character:"Hand-drawn sketch",swatchBg:"#f5f0e8",swatchFg:"#3a3a3a",tier:"showcase",category:"Creative"},{id:"cyber",name:"Cyber",icon:"zap",character:"Neon futuristic",swatchBg:"#0a0a1a",swatchFg:"#00ff88",tier:"showcase",category:"Creative"},{id:"journal",name:"Journal",icon:"notebook-pen",character:"Dot-grid bullet journal",swatchBg:"#f3ecdc",swatchFg:"#27313f",tier:"showcase",category:"Creative"},{id:"vaporwave",name:"Vaporwave",icon:"radio",character:"Neon dreamy",swatchBg:"#2b0040",swatchFg:"#ff6ad5",tier:"showcase",category:"Aesthetic"},{id:"neumorphism",name:"Neumorph",icon:"circle",character:"Soft embossed",swatchBg:"#e0e0e0",swatchFg:"#a0a0a0",tier:"showcase",category:"Aesthetic"},{id:"bauhaus",name:"Bauhaus",icon:"shapes",character:"Geometric",swatchBg:"#F1FAEE",swatchFg:"#E63946",tier:"showcase",category:"Aesthetic"},{id:"claymorphism",name:"Clay",icon:"circle-dot",character:"Puffy 3D",swatchBg:"#f0f0f5",swatchFg:"#FF6B9D",tier:"showcase",category:"Aesthetic"},{id:"alpha1999",name:"Alpha1999",icon:"orbit",character:"Space retro-fi",swatchBg:"#0a0a14",swatchFg:"#d4880f",tier:"showcase",category:"Signature"},{id:"super2026",name:"Super2026",icon:"triangle",character:"Supergraphic bold",swatchBg:"#f5f0e6",swatchFg:"#c23616",tier:"showcase",category:"Signature"},{id:"magna",name:"Magna",icon:"orbit",character:"Odyssey 2 retro",swatchBg:"#0d0b14",swatchFg:"#f97316",tier:"showcase",category:"Signature"},{id:"win9x",name:"Win9x",icon:"monitor",character:"Classic desktop",swatchBg:"#008080",swatchFg:"#c0c0c0",tier:"showcase",category:"OS Styles"},{id:"nes",name:"NES",icon:"joystick",character:"Console pixels",swatchBg:"#bcbcbc",swatchFg:"#e40521",tier:"showcase",category:"OS Styles"},{id:"8bit",name:"8-Bit",icon:"gamepad-2",character:"Retro pixel art",swatchBg:"#000080",swatchFg:"#ffff00",tier:"showcase",category:"OS Styles"}],qi=[{id:"nord",name:"Nord",icon:"snowflake",character:"Arctic calm",swatchBg:"#2E3440",swatchFg:"#81A1C1",tier:"community",category:"Editor Palettes"},{id:"solarized",name:"Solarized",icon:"sun-dim",character:"Engineered precision",swatchBg:"#002B36",swatchFg:"#268BD2",tier:"community",category:"Editor Palettes"},{id:"dracula",name:"Dracula",icon:"moon-star",character:"Dark elegance",swatchBg:"#282A36",swatchFg:"#BD93F9",tier:"community",category:"Editor Palettes"},{id:"catppuccin-mocha",name:"Catppuccin",icon:"coffee",character:"Warm pastels",swatchBg:"#1E1E2E",swatchFg:"#CBA6F7",tier:"community",category:"Editor Palettes"},{id:"catppuccin-latte",name:"Ctp Latte",icon:"coffee",character:"Cozy daytime",swatchBg:"#eff1f5",swatchFg:"#8839ef",tier:"community",category:"Editor Palettes"},{id:"catppuccin-frappe",name:"Ctp Frapp\xE9",icon:"coffee",character:"Cool twilight",swatchBg:"#303446",swatchFg:"#ca9ee6",tier:"community",category:"Editor Palettes"},{id:"catppuccin-macchiato",name:"Ctp Macchiato",icon:"coffee",character:"Deep blue",swatchBg:"#24273a",swatchFg:"#c6a0f6",tier:"community",category:"Editor Palettes"},{id:"gruvbox",name:"Gruvbox",icon:"palette",character:"Retro warmth",swatchBg:"#282828",swatchFg:"#ebdbb2",tier:"community",category:"Editor Palettes"},{id:"tokyo-night",name:"Tokyo Night",icon:"moon",character:"Night-owl vibes",swatchBg:"#1a1b26",swatchFg:"#7aa2f7",tier:"community",category:"Editor Palettes"},{id:"rose-pine",name:"Ros\xE9 Pine",icon:"flower-2",character:"Muted elegance",swatchBg:"#191724",swatchFg:"#ebbcba",tier:"community",category:"Editor Palettes"},{id:"cottagecore",name:"Cottagecore",icon:"flower-2",character:"Pastoral",swatchBg:"#fdf8f0",swatchFg:"#7d8c6d",tier:"community",category:"Niche"},{id:"terminal",name:"Terminal",icon:"terminal",character:"Retro CRT",swatchBg:"#0d1117",swatchFg:"#00ff00",tier:"community",category:"Niche"},{id:"clinical",name:"Clinical",icon:"heart-pulse",character:"Sterile precision",swatchBg:"#ffffff",swatchFg:"#0077b6",tier:"community",category:"Industry"},{id:"financial",name:"Financial",icon:"landmark",character:"Navy + gold",swatchBg:"#1b2a4a",swatchFg:"#c9a84c",tier:"community",category:"Industry"},{id:"government",name:"Government",icon:"shield",character:"Official",swatchBg:"#002868",swatchFg:"#bf0a30",tier:"community",category:"Industry"},{id:"dawn",name:"Dawn",icon:"sunrise",character:"Golden morning",swatchBg:"#fef3e2",swatchFg:"#d4a574",tier:"community",category:"Mood/Time"},{id:"dusk",name:"Dusk",icon:"sunset",character:"Twilight",swatchBg:"#1a1b2e",swatchFg:"#e5a858",tier:"community",category:"Mood/Time"},{id:"midnight",name:"Midnight",icon:"moon",character:"Deep night",swatchBg:"#0d1117",swatchFg:"#58a6ff",tier:"community",category:"Mood/Time"},{id:"high-noon",name:"High Noon",icon:"sun",character:"Maximum bright",swatchBg:"#ffffff",swatchFg:"#e63946",tier:"community",category:"Mood/Time"}],ja=[{id:"kawaii",name:"Kawaii",icon:"heart",character:"Cute aesthetic",swatchBg:"#ffb7c5",swatchFg:"#ff69b4",tier:"showcase",category:"Packs"},{id:"memphis",name:"Memphis",icon:"star",character:"Bold patterns",swatchBg:"#FFF8F0",swatchFg:"#d03040",tier:"showcase",category:"Packs"}];var By=[...Ii,...qi],Oy=[...Ra,...Ii,...qi,...ja],pt=e=>Ii.filter(t=>t.category===e),Ha=[{label:"Style",themes:Ra,tier:"core"},{label:"Design",themes:pt("Design"),tier:"showcase"},{label:"Content",themes:pt("Content"),tier:"showcase"},{label:"Modern",themes:pt("Modern"),tier:"showcase"},{label:"Creative",themes:pt("Creative"),tier:"showcase"},{label:"Aesthetic",themes:pt("Aesthetic"),tier:"showcase"},{label:"Signature",themes:pt("Signature"),tier:"showcase"},{label:"OS Styles",themes:pt("OS Styles"),tier:"showcase"},{label:"Packs",themes:ja,tier:"showcase"},{label:"More Themes",themes:qi,tier:"community"}];et();var Ce="theme",Te="current",H={mode:"auto",brand:"default",accent:"default",borderStyle:"",iconSet:"",fluid:"",backdrop:"",backdropChrome:"",pageBgType:"",pageBgColor:"",pageBgGradStart:"",pageBgGradEnd:"",pageBgGradDir:""};function Ga(e){return(e||"").split(/\s+/).find(t=>t&&!t.startsWith("a11y-"))||""}function Ua(e,t){return e?.brand&&e.brand!==H.brand?e.brand:Ga(t)||H.brand}var Wa=["--hue-primary","--hue-secondary","--hue-accent","--lightness-primary","--chroma-primary","--lightness-secondary","--chroma-secondary","--lightness-accent","--chroma-accent"],M=null,ft="",T={_initPromise:null,async init(){return this._initPromise?this._initPromise:(this._initPromise=(async()=>{let e=await k.get(Ce,Te);M=e?{...H,...e}:{...H},ft=Ga(document.documentElement.dataset.theme),M.brand=Ua(e,ft);try{await jt(M.brand)}catch{M.brand!==ft&&(M.brand=ft||H.brand)}return this.apply(M),this._watchSystemPreference(),this._watchRootAttributes(),this._watchCrossDocumentStorage(),M})(),this._initPromise)},_watchCrossDocumentStorage(){typeof window>"u"||window.addEventListener("storage",async e=>{if(e.key!==`vb:${Ce}:${Te}`||!e.newValue)return;let t;try{t=JSON.parse(e.newValue)?.data}catch{return}if(!t||typeof t!="object")return;let i={...H,...M,...t};if(i.brand=Ua(t,ft),i.brand&&i.brand!==M?.brand)try{await jt(i.brand)}catch{i.brand=ft||H.brand}M=i,this.apply(M||{})})},load(){return M?{...M}:{...H}},save(e){let t={...M??H,...e};return M=t,k.set(Ce,Te,t).catch(()=>{}),t},apply({mode:e="auto",brand:t="default",borderStyle:i="",iconSet:s="",fluid:n="",backdrop:r="",backdropChrome:a="",pageBgType:o="",pageBgColor:c="",pageBgGradStart:l="",pageBgGradEnd:u="",pageBgGradDir:d=""}={}){let h=document.documentElement;h.dataset.mode=e==="auto"?this.getEffectiveMode():e;let f=(h.dataset.theme||"").split(" ").filter(N=>N.startsWith("a11y-")),m=t!=="default"?[t,...f]:[...f];m.length?h.dataset.theme=m.join(" "):delete h.dataset.theme;let v=i||this._readCSSHint("--theme-border-style");v&&v!=="clean"?h.dataset.borderStyle=v:delete h.dataset.borderStyle;let A=s||this._readCSSHint("--theme-icon-set");if(A&&A!=="lucide"?h.dataset.iconSet=A:delete h.dataset.iconSet,n?h.dataset.fluid=n:delete h.dataset.fluid,r?h.dataset.backdrop=r:delete h.dataset.backdrop,a&&a!=="card"?h.dataset.backdropChrome=a:delete h.dataset.backdropChrome,o==="color"&&c)h.style.setProperty("--page-bg-color",c),h.style.removeProperty("--page-bg-gradient");else if(o==="gradient"&&l&&u){let N=d||"to bottom";h.style.setProperty("--page-bg-gradient",`linear-gradient(${N}, ${l}, ${u})`),h.style.removeProperty("--page-bg-color")}else h.style.removeProperty("--page-bg-color"),h.style.removeProperty("--page-bg-gradient");let L=this.load().accent||"default";this._applyAccent(L),window.dispatchEvent(new CustomEvent("vb:theme-change",{detail:{mode:e,brand:t,accent:L,borderStyle:v,iconSet:A,fluid:n,backdrop:r,backdropChrome:a,pageBgType:o,effectiveMode:this.getEffectiveMode()}}))},setMode(e){let t=this.save({mode:e});this.apply(t)},async setBrand(e){try{await jt(e)}catch(i){console.warn(`[VB] Theme "${e}" failed to load, using default`,i),e="default"}let t=this.save({brand:e});this.apply(t)},setAccent(e){this.save({accent:e}),this._applyAccent(e),window.dispatchEvent(new CustomEvent("vb:theme-change",{detail:{...this.getState()}}))},setBorderStyle(e){let t=this.save({borderStyle:e});this.apply(t)},setIconSet(e){let t=this.save({iconSet:e});this.apply(t)},setFluid(e){let t=this.save({fluid:e});this.apply(t)},setBackdrop(e){let t=this.save({backdrop:e});this.apply(t)},setBackdropChrome(e){let t=this.save({backdropChrome:e});this.apply(t)},setPageBg({type:e="",color:t="",gradStart:i="",gradEnd:s="",gradDir:n=""}={}){let r=this.save({pageBgType:e,pageBgColor:t,pageBgGradStart:i,pageBgGradEnd:s,pageBgGradDir:n});this.apply(r)},getEffectiveMode(){let{mode:e}=this.load();return e!=="auto"?e:window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"},getState(){let{mode:e,brand:t,accent:i,borderStyle:s,iconSet:n,fluid:r,backdrop:a,backdropChrome:o,pageBgType:c,pageBgColor:l,pageBgGradStart:u,pageBgGradEnd:d,pageBgGradDir:h}=this.load();return{mode:e,brand:t,accent:i,borderStyle:s,iconSet:n,fluid:r,backdrop:a,backdropChrome:o,pageBgType:c,pageBgColor:l,pageBgGradStart:u,pageBgGradEnd:d,pageBgGradDir:h,effectiveMode:this.getEffectiveMode()}},toggleMode(){let t=this.getEffectiveMode()==="dark"?"light":"dark";this.setMode(t)},reset(){M={...H,brand:ft||H.brand},k.remove(Ce,Te).catch(()=>{});let e=document.documentElement;e.style.removeProperty("--page-bg-color"),e.style.removeProperty("--page-bg-gradient");for(let t of Wa)e.style.removeProperty(t);this.apply(M)},_readCSSHint(e){return getComputedStyle(document.documentElement).getPropertyValue(e).trim()},_applyAccent(e){let t=document.documentElement;for(let s of Wa)t.style.removeProperty(s);let i=Pa.find(s=>s.id===e);if(!i||!i.seeds||Object.keys(i.seeds).length===0){delete t.dataset.accent;return}t.dataset.accent=i.id},_watchRootAttributes(){this._rootObserver||(this._rootObserver=new MutationObserver(e=>{for(let t of e)t.attributeName==="data-theme"?this._syncFromDataTheme():t.attributeName==="data-mode"&&this._syncFromDataMode()}),this._rootObserver.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme","data-mode"]}))},_syncFromDataTheme(){if(!M)return;let i=(document.documentElement.dataset.theme||"").split(/\s+/).filter(Boolean).find(s=>!s.startsWith("a11y-"))||"default";i!==M.brand&&(M.brand=i,jt(i).catch(()=>{}),window.dispatchEvent(new CustomEvent("vb:theme-change",{detail:{...this.getState()}})))},_syncFromDataMode(){if(!M)return;let e=document.documentElement.dataset.mode||"auto",t=M.mode==="auto"?this.getEffectiveMode():M.mode;e!==t&&(M.mode=e,window.dispatchEvent(new CustomEvent("vb:theme-change",{detail:{...this.getState()}})))},_watchSystemPreference(){window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",()=>{let t=this.load();t.mode==="auto"&&this.apply(t)})}};var hh=["layout-text","layout-reel","layout-canvas","dl-item"];hh.forEach(e=>{customElements.get(e)||customElements.define(e,class extends HTMLElement{})});var Uy=window.matchMedia("(prefers-reduced-motion: reduce)");var Ya=new Map;function b(e,t,i={}){let s=i.priority??10,n={impl:t,bundle:i.bundle,contract:i.contract,priority:s},r=Ya.get(e);if(customElements.get(e)){if(!r||r.priority>=s){r&&r.priority===s&&r.impl!==t&&console.warn(`[VB Bundle] Tag <${e}> already registered by "${r.bundle}" (priority ${r.priority}). Skipping "${i.bundle}".`);return}console.warn(`[VB Bundle] Tag <${e}> defined by "${r.bundle}" cannot be replaced (customElements.define is permanent). "${i.bundle}" has higher priority but arrived late.`);return}if(r&&r.priority>=s){r.priority===s&&console.warn(`[VB Bundle] Tag <${e}> already registered by "${r.bundle}". Skipping "${i.bundle}" (first wins at equal priority).`);return}Ya.set(e,n),customElements.define(e,t)}var y=class extends HTMLElement{#e=[];#t;connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&(this.setAttribute("data-upgraded",""),queueMicrotask(()=>{this.dispatchEvent(new CustomEvent(`${this.localName}:upgraded`,{bubbles:!0}))}))}disconnectedCallback(){for(let t of this.#e)t();this.#e=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(t,i,s,n){t.addEventListener(i,s,n),this.#e.push(()=>t.removeEventListener(i,s,n))}_reinit(){for(let t of this.#e)t();this.#e=[],this.teardown(),this.removeAttribute("data-upgraded"),this.isConnected&&this.setup()!==!1&&this.setAttribute("data-upgraded","")}setup(){}teardown(){}setState(t,i){this.#t||(this.#t=this.attachInternals());let s=this.#t.states;try{i?s.add(t):s.delete(t)}catch{let n=`--${t}`;i?s.add(n):s.delete(n)}}_adoptInternals(t){this.#t||(this.#t=t)}};var ph=["valueMissing","typeMismatch","patternMismatch","tooShort","tooLong","rangeUnderflow","rangeOverflow","stepMismatch","customError"],Oi=class extends y{#e=null;#t=null;#i=!1;setup(){return this.#e=this.querySelector("input, textarea, select"),this.#t=this.querySelector("output.error")??this.querySelector("output:not(.hint)"),this.#e?(this.listen(this.#e,"blur",()=>this.validate()),this.listen(this.#e,"input",()=>{this.#i&&this.validate()}),!0):!1}teardown(){this.#e=null,this.#t=null,this.#i=!1}validate(){let t=this.#e;if(!t)return!0;t.validity.customError||t.setCustomValidity("");let i=t.checkValidity();return i?(this.#s(t.value?"valid":null),t.removeAttribute("aria-invalid"),this.#t&&(this.#t.textContent="")):(this.#i=!0,this.#s("invalid"),t.setAttribute("aria-invalid","true"),this.#r(t.validity)),i}setError(t){this.#e&&(this.#e.setCustomValidity(t),this.#i=!0,this.#s("invalid"),this.#e.setAttribute("aria-invalid","true"),this.#t&&(this.#t.textContent=t))}clearError(){this.#e&&(this.#e.setCustomValidity(""),this.#s(null),this.#e.removeAttribute("aria-invalid"),this.#i=!1,this.#t&&(this.#t.textContent=""))}get fieldName(){return this.querySelector("label")?.textContent?.trim()??this.#e?.getAttribute("aria-label")??this.#e?.name??this.#e?.id??"Field"}get input(){return this.#e}#s(t){delete this.dataset.valid,delete this.dataset.invalid,t&&(this.dataset[t]="")}#r(t){if(!this.#t)return;let i=this.#e;if(!(!i||!this.#t))for(let s of ph){if(!t[s])continue;let n=`data-message-${s.toLowerCase()}`,r=i.getAttribute(n)??i.validationMessage;this.#t.textContent=r;return}}};b("form-field",Oi);function Z(e){return document.startViewTransition?document.startViewTransition(e):e()}var fh=0,Fi=class extends y{#e=[];#t=[];#i=!1;#s=0;setup(){return this.#e=[...this.querySelectorAll(":scope > details")],this.#t=this.#e.map(t=>t.querySelector("summary")),this.#e.length===0?!1:(this.style.setProperty("--_tab-count",String(this.#e.length)),this.#a(),this.#o(),this.#r(),!0)}teardown(){this.style.removeProperty("--_tab-count"),this.#e=[],this.#t=[],this.#i=!1}get tabs(){return this.#e.map((t,i)=>({id:t.id||void 0,label:t.querySelector("summary")?.textContent?.trim()||`Tab ${i+1}`,content:t.querySelector(":scope > :not(summary)")?.innerHTML||"",active:t.hasAttribute("open")}))}set tabs(t){let i=Array.isArray(t)?t:[];for(;this.firstChild;)this.firstChild.remove();let s=!1;for(let n of i){let r=document.createElement("details");n.id&&(r.id=n.id),n.active&&!s&&(r.setAttribute("open",""),s=!0);let a=document.createElement("summary");a.textContent=n.label||"",r.appendChild(a);let o=document.createElement("div");o.innerHTML=n.content||"",r.appendChild(o),this.appendChild(r)}!s&&this.firstElementChild&&this.firstElementChild.setAttribute("open",""),this.teardown(),this.removeAttribute("data-upgraded"),this.setup(),this.dispatchEvent(new CustomEvent("tab-set:tabs-changed",{detail:{tabs:i,source:"property"},bubbles:!0}))}#r(){if(!this.hasAttribute("transition")||!document.startViewTransition)return;this.#i=!0;let t=++fh,i=this.getAttribute("transition")||"fade",s=i==="slide"?"vt-tabs-slide":i==="scale"?"vt-tabs-scale":"vt-tabs";this.#e.forEach(n=>{let r=n.querySelector(":scope > :not(summary)");r&&(r.style.viewTransitionName=`tabs-${t}`,r.style.viewTransitionClass=s)}),this.#s=this.#e.findIndex(n=>n.open),this.#s===-1&&(this.#s=0)}#n(t){if(t===this.#s)return;let i=t>this.#s?"forward":"backward";document.documentElement.dataset.vtDirection=i,Z(()=>{this.#e[t].open=!0}).finished?.then(()=>{delete document.documentElement.dataset.vtDirection})}#a(){this.#e.forEach((t,i)=>{let s=this.#t[i],n=t.querySelector(":scope > :not(summary)");if(!s||!n)return;let r=s.id||`tab-${crypto.randomUUID().slice(0,8)}`,a=n.id||`panel-${crypto.randomUUID().slice(0,8)}`;s.id=r,s.setAttribute("aria-controls",a),s.setAttribute("tabindex",t.open?"0":"-1"),s.setAttribute("aria-expanded",t.open?"true":"false"),n.id=a,n.setAttribute("aria-labelledby",r),this.listen(s,"click",o=>{if(t.open){o.preventDefault();return}this.#i&&(o.preventDefault(),this.#n(i))}),this.listen(s,"keydown",o=>this.#p(o,i)),this.listen(t,"toggle",()=>this.#l(i))})}#o(){!this.#e.some(i=>i.open)&&this.#e.length>0&&(this.#e[0].open=!0,this.#c())}#l(t){this.#e[t].open&&(this.#s=t),this.#c(),this.dispatchEvent(new CustomEvent("tab-set:change",{detail:{index:t},bubbles:!0}))}#c(){this.#e.forEach((t,i)=>{let s=this.#t[i];s.setAttribute("tabindex",t.open?"0":"-1"),s.setAttribute("aria-expanded",t.open?"true":"false")})}#p(t,i){let{key:s}=t,n;switch(s){case"ArrowRight":n=(i+1)%this.#e.length;break;case"ArrowLeft":n=(i-1+this.#e.length)%this.#e.length;break;case"Home":n=0;break;case"End":n=this.#e.length-1;break;default:return}t.preventDefault(),this.#i?this.#n(n):this.#e[n].open=!0,this.#t[n].focus()}};b("tab-set",Fi);var Pi=class e extends y{static#e=0;#t;#i=[];#s="Back to content";setup(){this.#t=++e.#e,this.hasAttribute("data-back-label")&&(this.#s=this.getAttribute("data-back-label")??this.#s),this.#r(),this.getAttribute("data-mode")==="sidenotes"?this.#o():this.#n()}#r(){let t=[...document.querySelectorAll("foot-note:not([data-enhanced])")];this.#i=t.filter(i=>this.compareDocumentPosition(i)&Node.DOCUMENT_POSITION_PRECEDING)}#n(){if(this.#i.length===0)return;let t=document.createElement("ol");this.#i.forEach((i,s)=>{let n=s+1,r=`fnref-${this.#t}-${n}`,a=`fn-${this.#t}-${n}`;this.#a(i,n,r,a);let o=this.#c(i,n,r,a);t.appendChild(o)}),this.appendChild(t)}#a(t,i,s,n){t.setAttribute("data-enhanced",""),t.id=s;let r=t.innerHTML,a=document.createElement("span");a.innerHTML=r;let o=document.createElement("a");o.href=`#${n}`,o.setAttribute("aria-describedby",n),o.textContent=`[${i}]`,t.innerHTML="",t.appendChild(a),t.appendChild(o)}#o(){if(this.#i.length===0)return;let t=[];if(this.#i.forEach((i,s)=>{let n=s+1,r=`fnref-${this.#t}-${n}`,a=`fn-${this.#t}-${n}`;i.getAttribute("data-side")==="false"?(this.#a(i,n,r,a),t.push({ref:i,num:n,refId:r,noteId:a})):this.#l(i,n,r,a)}),t.length>0){let i=document.createElement("ol");for(let{ref:s,num:n,refId:r,noteId:a}of t)i.appendChild(this.#c(s,n,r,a));this.appendChild(i)}else this.hidden=!0}#l(t,i,s,n){let r=t.innerHTML;t.setAttribute("data-enhanced",""),t.setAttribute("data-side",""),t.id=s;let a=document.createElement("a");a.href=`#${n}`,a.setAttribute("aria-describedby",n),a.textContent=`[${i}]`;let o=document.createElement("aside");o.className="sidenote",o.id=n,o.setAttribute("role","note"),o.innerHTML=`<span class="sidenote-number">${i}.</span> ${r}`,t.innerHTML="",t.appendChild(a),t.appendChild(o)}#c(t,i,s,n){let r=document.createElement("li");r.id=n;let a=t.querySelector("span"),o=a?a.innerHTML:"",c=document.createElement("a");return c.href=`#${s}`,c.setAttribute("data-backref",""),c.setAttribute("aria-label",this.#s),c.textContent="\u21A9",r.innerHTML=o+" ",r.appendChild(c),r}},Ri=class extends HTMLElement{};b("foot-notes",Pi);b("foot-note",Ri);var Ka=0,ji=class extends y{#e=[];#t=[];#i=[];#s=!1;setup(){return this.#e=[...this.querySelectorAll(":scope > details")],this.#t=this.#e.map(t=>t.querySelector("summary")),this.#e.length===0?!1:(this.#r(),this.#o(),this.#n(),!0)}teardown(){this.#e=[],this.#t=[],this.#i=[],this.#s=!1}get panels(){return this.#e.map((t,i)=>({id:t.id||void 0,summary:t.querySelector("summary")?.textContent?.trim()||`Panel ${i+1}`,content:this.#i[i]?.innerHTML||"",open:t.hasAttribute("open")}))}set panels(t){let i=Array.isArray(t)?t:[],n=this.hasAttribute("single")?`acc-${++Ka}`:null;for(;this.firstChild;)this.firstChild.remove();for(let r of i){let a=document.createElement("details");r.id&&(a.id=r.id),r.open&&a.setAttribute("open",""),n&&a.setAttribute("name",n);let o=document.createElement("summary");o.textContent=r.summary||"",a.appendChild(o);let c=document.createElement("div");c.innerHTML=r.content||"",a.appendChild(c),this.appendChild(a)}this._reinit(),this.dispatchEvent(new CustomEvent("accordion-wc:panels-changed",{detail:{panels:i,source:"property"},bubbles:!0}))}#r(){this.#i=this.#e.map(t=>{let i=t.querySelector("summary");if(!i)return null;let s=[...t.children].filter(n=>n!==i);if(s.length===1&&s[0].localName==="div")return s[0];if(s.length>=1){let n=document.createElement("div");for(let r of s)n.appendChild(r);return t.appendChild(n),n}return null})}#n(){if(!this.hasAttribute("transition")||!document.startViewTransition)return;this.#s=!0;let t=++Ka,i=this.getAttribute("transition")||"fade",s=i==="slide"?"vt-accordion-slide":i==="scale"?"vt-accordion-scale":"vt-accordion";this.#i.forEach((n,r)=>{n&&(n.style.viewTransitionName=`accordion-${t}-${r}`,n.style.viewTransitionClass=s)})}#a(t){Z(()=>{t.open=!t.open})}#o(){this.#e.forEach((t,i)=>{let s=this.#t[i],n=this.#i[i];if(s){if(n){let r=s.id||`accordion-heading-${crypto.randomUUID().slice(0,8)}`,a=n.id||`accordion-panel-${crypto.randomUUID().slice(0,8)}`;s.id=r,n.id=a,s.setAttribute("aria-expanded",t.open?"true":"false"),s.setAttribute("aria-controls",a),n.setAttribute("aria-labelledby",r),n.setAttribute("role","region")}else s.setAttribute("aria-expanded",t.open?"true":"false");this.listen(s,"click",r=>{this.#s&&(r.preventDefault(),this.#a(t))}),this.listen(s,"keydown",r=>this.#c(r,i)),this.listen(t,"toggle",()=>this.#l(t,i))}})}#l(t,i){this.#t[i].setAttribute("aria-expanded",t.open?"true":"false"),this.hasAttribute("single")&&t.open&&this.#e.forEach((n,r)=>{r!==i&&n.open&&(n.open=!1,this.#t[r].setAttribute("aria-expanded","false"))}),this.dispatchEvent(new CustomEvent("accordion-wc:toggle",{detail:{index:i,open:t.open},bubbles:!0}))}#c(t,i){let{key:s}=t,n;switch(s){case"ArrowDown":n=(i+1)%this.#e.length;break;case"ArrowUp":n=(i-1+this.#e.length)%this.#e.length;break;case"Home":n=0;break;case"End":n=this.#e.length-1;break;default:return}t.preventDefault(),this.#t[n].focus()}open(t){t<0||t>=this.#e.length||(this.#s&&!this.#e[t].open?Z(()=>{this.#e[t].open=!0}):this.#e[t].open=!0)}close(t){t<0||t>=this.#e.length||(this.#s&&this.#e[t].open?Z(()=>{this.#e[t].open=!1}):this.#e[t].open=!1)}toggle(t){t<0||t>=this.#e.length||(this.#s?this.#a(this.#e[t]):this.#e[t].open=!this.#e[t].open)}openAll(){this.hasAttribute("single")||this.#e.forEach(t=>{t.open=!0})}closeAll(){this.#e.forEach(t=>{t.open=!1})}};b("accordion-wc",ji);var Hi=class extends y{#e=[];#t=[];static get observedAttributes(){return["position","max"]}setup(){this.setAttribute("role","region"),this.setAttribute("aria-label","Notifications"),this.setAttribute("aria-live","polite")}teardown(){this.#t.forEach(t=>{t._dismissTimer&&clearTimeout(t._dismissTimer)}),this.#e=[],this.#t=[]}show(t){let{message:i,variant:s="info",duration:n=this.#n(),dismissible:r=!0,action:a,onAction:o,source:c="api"}=t,l=this.#i({message:i,variant:s,dismissible:r,action:a,onAction:o}),u=this.#a();return this.#t.length>=u?this.#e.push({toast:l,duration:n}):this.#s(l,n),this.dispatchEvent(new CustomEvent("toast-msg:enqueued",{detail:{message:i,variant:s,duration:n,source:c},bubbles:!0})),l}get queue(){let t=this.#t.map(s=>({message:s.querySelector(".message")?.textContent||"",variant:s.getAttribute("data-variant")||"info",state:"visible"})),i=this.#e.map(({toast:s})=>({message:s.querySelector(".message")?.textContent||"",variant:s.getAttribute("data-variant")||"info",state:"queued"}));return[...t,...i]}#i({message:t,variant:i,dismissible:s,action:n,onAction:r}){let a=document.createElement("div");a.className="toast",a.setAttribute("role",i==="error"||i==="warning"?"alert":"status"),a.setAttribute("data-variant",i);let o={info:"ⓘ",success:"✓",warning:"⚠",error:"✗"};return a.innerHTML=`
|
|
72
|
+
<span class="icon" aria-hidden="true">${o[i]||o.info}</span>
|
|
73
|
+
<span class="message">${this.#o(t)}</span>
|
|
74
|
+
${n?`<button type="button" class="action">${this.#o(n)}</button>`:""}
|
|
75
|
+
${s?'<button type="button" class="close" aria-label="Dismiss">✕</button>':""}
|
|
76
|
+
`,s&&a.querySelector(".close")?.addEventListener("click",()=>{this.#r(a)}),n&&r&&a.querySelector(".action")?.addEventListener("click",()=>{r(),this.#r(a)}),a}#s(t,i){this.appendChild(t),this.#t.push(t),requestAnimationFrame(()=>{t.setAttribute("data-state","visible")}),i>0&&(t._dismissTimer=setTimeout(()=>{this.#r(t)},i)),this.dispatchEvent(new CustomEvent("toast-msg:show",{bubbles:!0,detail:{toast:t}}))}#r(t){if(!this.contains(t))return;t._dismissTimer&&clearTimeout(t._dismissTimer),t.setAttribute("data-state","hiding");let i=()=>{t.removeEventListener("animationend",i),t.remove();let s=this.#t.indexOf(t);if(s>-1&&this.#t.splice(s,1),this.#e.length>0){let{toast:n,duration:r}=this.#e.shift();this.#s(n,r)}this.dispatchEvent(new CustomEvent("toast-msg:hide",{bubbles:!0,detail:{toast:t}}))};t.addEventListener("animationend",i),setTimeout(()=>{this.contains(t)&&i()},300)}dismissAll(){this.#e=[],[...this.#t].forEach(t=>this.#r(t))}#n(){let t=this.getAttribute("duration");return t!==null?parseInt(t,10):5e3}#a(){let t=this.getAttribute("max");return t!==null?parseInt(t,10):5}#o(t){let i=document.createElement("div");return i.textContent=t,i.innerHTML}};b("toast-msg",Hi);var zi=CSS.supports("anchor-name","--x"),mh=CSS.supports("position-area","bottom"),gh=0,Vi=class extends y{#e=null;#t=null;#i=null;#s=null;setup(){this.id||(this.id=`pop-over-${++gh}`);let t=this.dataset.mode||"auto";this.hasAttribute("popover")||this.setAttribute("popover",t),this.#r(),this.#n(),this.#i=i=>{let s=i.newState==="open"?"show":"hide";this.dispatchEvent(new CustomEvent(`pop-over:${s}`,{detail:{state:i.newState},bubbles:!0,composed:!0})),!zi&&i.newState==="open"&&this.#e&&this.#o()},this.listen(this,"beforetoggle",this.#i),zi||(this.#s=()=>{this.matches(":popover-open")&&this.#e&&this.#o()},this.listen(window,"resize",this.#s),this.listen(window,"scroll",this.#s,{capture:!0,passive:!0}))}show(){this.matches(":popover-open")||this.showPopover()}hide(){this.matches(":popover-open")&&this.hidePopover()}toggle(){this.matches(":popover-open")?this.hide():this.show()}get open(){return this.matches(":popover-open")}#r(){let t=this.dataset.anchor;t?this.#e=document.getElementById(t)||document.querySelector(t):this.#e=document.querySelector(`[popovertarget="${CSS.escape(this.id)}"]`)}#n(){if(!(!this.#e||!zi)&&(this.#t=`--pop-over-anchor-${this.id}`,this.#e.style.setProperty("anchor-name",this.#t),this.style.setProperty("position-anchor",this.#t),this.setAttribute("data-anchor-name",this.#t||""),!mh)){let t=this.dataset.position||"bottom";this.#a(t)}}#a(t){let i="var(--_pop-over-offset, var(--size-xs))",s={top:{bottom:`calc(anchor(top) + ${i})`,left:"anchor(left)"},bottom:{top:`calc(anchor(bottom) + ${i})`,left:"anchor(left)"},left:{right:`calc(anchor(left) + ${i})`,top:"anchor(top)"},right:{left:`calc(anchor(right) + ${i})`,top:"anchor(top)"}},n=t.split("-")[0],r=s[n]||s.bottom;Object.entries(r).forEach(([a,o])=>this.style.setProperty(a,o))}#o(){if(!this.#e)return;let t=this.#e.getBoundingClientRect(),i=this.dataset.position||"bottom",s=this.#l(),n,r;switch(i.split("-")[0]){case"top":n=t.top-this.offsetHeight-s,r=t.left;break;case"left":n=t.top,r=t.left-this.offsetWidth-s;break;case"right":n=t.top,r=t.right+s;break;default:n=t.bottom+s,r=t.left;break}i.endsWith("-end")&&(i.startsWith("top")||i.startsWith("bottom")?r=t.right-this.offsetWidth:n=t.bottom-this.offsetHeight),this.style.position="fixed",this.style.top=`${Math.round(n)}px`,this.style.left=`${Math.round(r)}px`,this.style.margin="0"}#l(){let t={none:0,xs:4,s:8,m:16,l:24};return t[this.dataset.offset]??t.xs}};b("pop-over",Vi);var bh=new Set(["BUTTON","A","AREA"]);function Xa(e){return document.documentElement.hasAttribute("data-interest-polyfill")?!0:"interestForElement"in HTMLButtonElement.prototype?bh.has(e.tagName):!1}var Le=0,Ui=class extends y{#e=null;#t=null;#i;#s;#r=!1;#n=!1;#a;setup(){this.#r=this.getAttribute("variant")==="card",this.#r?this.#l():this.#o()}#o(){if(this.#e=this.querySelector(":scope > :not(template)"),!this.#e)return;this.#n=Xa(this.#e);let t=this.querySelector(":scope > template[data-tooltip]"),i=this.getAttribute("content"),s=this.#e.getAttribute("title");if(!t&&!i&&!s)return;s&&(this.#a=s,this.#e.removeAttribute("title"));let n=this.getAttribute("position")||"top";this.#e.id||(this.#e.id=`tooltip-trigger-${++Le}`);let r=document.createElement("pop-over");r.className="tooltip",r.setAttribute("role","tooltip"),r.dataset.mode="hint",r.dataset.anchor=this.#e.id,r.dataset.tooltipPosition=n,r.id=`tooltip-${++Le}`,t?r.innerHTML=t.innerHTML:r.textContent=i||s;let a=document.createElement("span");a.className="tooltip-arrow",a.setAttribute("aria-hidden","true"),r.appendChild(a),this.appendChild(r),this.#t=r,this.#n?(this.#e.setAttribute("interestfor",r.id),this.#e.hasAttribute("aria-describedby")||this.#e.setAttribute("aria-describedby",r.id)):(this.#e.setAttribute("aria-describedby",r.id),this.listen(this.#e,"mouseenter",this.#c),this.listen(this.#e,"mouseleave",this.#p),this.listen(this.#e,"focus",this.#m),this.listen(this.#e,"blur",this.#h),this.listen(r,"mouseenter",this.#d),this.listen(r,"mouseleave",this.#p)),this.listen(r,"pop-over:show",()=>{this.dispatchEvent(new CustomEvent("tool-tip:show",{bubbles:!0}))}),this.listen(r,"pop-over:hide",()=>{this.dispatchEvent(new CustomEvent("tool-tip:hide",{bubbles:!0}))})}#l(){this.#e=this.querySelector(":scope > [data-trigger]");let t=this.querySelector(":scope > [data-content]");if(!this.#e||!t)return;this.#n=Xa(this.#e),this.#e.id||(this.#e.id=`tooltip-trigger-${++Le}`);let i=document.createElement("pop-over");i.className="hover-card",i.dataset.mode="manual",i.dataset.anchor=this.#e.id,i.dataset.position=this.getAttribute("position")||"bottom",i.id=`hc-${++Le}`,i.appendChild(t),t.removeAttribute("data-content"),t.hidden=!1,this.appendChild(i),this.#t=i,this.#n?this.#e.setAttribute("interestfor",i.id):(this.listen(this.#e,"mouseenter",this.#c),this.listen(this.#e,"mouseleave",this.#p),this.listen(this.#e,"focus",this.#m),this.listen(this.#e,"blur",this.#p),this.listen(i,"mouseenter",this.#d),this.listen(i,"mouseleave",this.#p),this.listen(document,"keydown",this.#f)),this.listen(i,"pop-over:show",()=>{this.dispatchEvent(new CustomEvent("tool-tip:show",{bubbles:!0}))}),this.listen(i,"pop-over:hide",()=>{this.dispatchEvent(new CustomEvent("tool-tip:hide",{bubbles:!0}))})}teardown(){this.#e&&(this.#n&&this.#e.removeAttribute("interestfor"),this.#a&&(this.#e.setAttribute("title",this.#a),this.#a=void 0)),this.#t&&(this.#t.remove(),this.#t=null),clearTimeout(this.#i),clearTimeout(this.#s)}#c=()=>{clearTimeout(this.#s);let t=this.#r?300:200,i=parseInt(this.getAttribute("delay")||String(t),10);this.setState("show-pending",!0),this.#i=setTimeout(()=>{this.setState("show-pending",!1),this.show()},i)};#p=()=>{clearTimeout(this.#i),this.setState("show-pending",!1);let t=this.#r?200:100;this.#s=setTimeout(()=>this.hide(),t)};#m=()=>{clearTimeout(this.#s),this.show()};#h=()=>{clearTimeout(this.#i),this.setState("show-pending",!1),this.hide()};#d=()=>{clearTimeout(this.#s)};#f=t=>{t.key==="Escape"&&this.isVisible&&this.hide()};show(){!this.#t||this.isVisible||(typeof this.#t.show=="function"?this.#t.show():this.#t.showPopover())}hide(){!this.#t||!this.isVisible||(typeof this.#t.hide=="function"?this.#t.hide():this.#t.hidePopover())}get isVisible(){return this.#t?.matches(":popover-open")??!1}};b("tool-tip",Ui);var Wi=0,Gi=class extends y{#e;#t;#i;#s=[];#r=-1;#n=!1;#a=!1;#o=null;setup(){let t=this.querySelector(":scope > [data-trigger]")||this.querySelector(":scope > button");if(!t)return!1;this.#e=t;let i=this.querySelector('menu, ul[role="menu"]');if(!i)return!1;this.#t=i,this.#a=this.hasAttribute("hover"),this.#e.id||(this.#e.id=`dropdown-trigger-${++Wi}`);let s=this.querySelector(":scope > pop-over[data-dropdown-host]");return s?this.#i=s:(this.#i=document.createElement("pop-over"),this.#i.setAttribute("data-dropdown-host",""),this.#i.id=`dropdown-${++Wi}`,this.#i.dataset.mode=this.#a?"manual":"auto",this.#i.dataset.position=this.getAttribute("position")||"bottom-start",this.#i.dataset.anchor=this.#e.id,this.#i.appendChild(this.#t),this.appendChild(this.#i)),this.#i.dataset.mode=this.#a?"manual":"auto",this.#i.dataset.position=this.getAttribute("position")||"bottom-start",this.#i.dataset.anchor=this.#e.id,this.#t.parentElement!==this.#i&&this.#i.appendChild(this.#t),this.#e.setAttribute("aria-haspopup","menu"),this.#e.setAttribute("aria-expanded","false"),this.#t.id||(this.#t.id=`dropdown-menu-${++Wi}`),this.#e.setAttribute("aria-controls",this.#t.id),this.#t.setAttribute("role","menu"),this.#l(),this.#a?(this.listen(this,"mouseenter",this.#p),this.listen(this,"mouseleave",this.#m),this.listen(this.#e,"focus",this.#h),this.listen(this.#e,"blur",this.#d)):this.listen(this.#e,"click",this.#c),this.listen(this.#e,"keydown",this.#f),this.listen(this.#t,"keydown",this.#u),this.listen(this.#i,"pop-over:hide",this.#A),this.listen(this.#i,"pop-over:show",this.#k),this.#a&&this.listen(document,"keydown",this.#g),!0}teardown(){this.#o&&clearTimeout(this.#o)}get items(){if(!this.#t)return[];let t=[];for(let i of this.#t.querySelectorAll(":scope > li")){if(i.matches('[role="separator"]')||i.querySelector("hr")){t.push({separator:!0});continue}let s=i.querySelector('button, a, [role="menuitem"]');s&&t.push({label:s.textContent.trim().replace(/\s+/g," "),value:s.getAttribute("data-value")||void 0,href:s.tagName==="A"?s.getAttribute("href"):void 0,disabled:s.disabled||s.hasAttribute("data-disabled")||void 0})}return t}set items(t){let i=Array.isArray(t)?t:[],s=this.querySelector('menu, ul[role="menu"]');for(s||(s=document.createElement("menu"),this.appendChild(s));s.firstChild;)s.firstChild.remove();for(let n of i){let r=document.createElement("li");if(n.separator)r.setAttribute("role","separator");else{let a=n.href?document.createElement("a"):document.createElement("button");n.href&&a.setAttribute("href",n.href),n.value&&a.setAttribute("data-value",n.value),n.disabled&&(a.tagName==="BUTTON"?a.disabled=!0:a.setAttribute("data-disabled","")),a.textContent=n.label||"",r.appendChild(a)}s.appendChild(r)}this.teardown(),this.removeAttribute("data-upgraded"),this.setup(),this.dispatchEvent(new CustomEvent("drop-down:items-changed",{detail:{items:i,source:"property"},bubbles:!0}))}#l(){this.#s=Array.from(this.#t.querySelectorAll('button, a, [role="menuitem"]')).filter(t=>!t.disabled&&!t.closest('[role="separator"]')),this.#s.forEach(t=>{t.setAttribute("role","menuitem"),t.setAttribute("tabindex","-1"),t.addEventListener("click",this.#b)}),this.#t.querySelectorAll('li:empty, [role="separator"], hr').forEach(t=>{t.setAttribute("role","separator")})}#c=t=>{t.stopPropagation(),this.toggle()};#p=()=>{this.#o&&(clearTimeout(this.#o),this.#o=null,this.setState("hover-grace-pending",!1)),this.open()};#m=()=>{this.setState("hover-grace-pending",!0),this.#o=setTimeout(()=>{this.setState("hover-grace-pending",!1),this.close()},100)};#h=()=>{this.#o&&(clearTimeout(this.#o),this.#o=null,this.setState("hover-grace-pending",!1)),this.open()};#d=t=>{this.#t?.contains(t.relatedTarget)||(this.setState("hover-grace-pending",!0),this.#o=setTimeout(()=>{this.setState("hover-grace-pending",!1),this.contains(document.activeElement)||this.close()},100))};#f=t=>{switch(t.key){case"ArrowDown":case"Down":t.preventDefault(),this.open(),this.#w(0);break;case"ArrowUp":case"Up":t.preventDefault(),this.open(),this.#w(this.#s.length-1);break}};#u=t=>{switch(t.key){case"ArrowDown":case"Down":t.preventDefault(),this.#w(this.#r+1);break;case"ArrowUp":case"Up":t.preventDefault(),this.#w(this.#r-1);break;case"Home":t.preventDefault(),this.#w(0);break;case"End":t.preventDefault(),this.#w(this.#s.length-1);break;case"Tab":this.close();break;case"Enter":case" ":t.preventDefault(),this.#r>=0&&this.#s[this.#r].click();break}};#g=t=>{t.key==="Escape"&&this.#n&&(t.preventDefault(),this.close(),this.#e?.focus())};#b=t=>{t.defaultPrevented||(this.close(),this.#e?.focus())};#k=()=>{this.#n||(this.#n=!0,this.setAttribute("open",""),this.#e?.setAttribute("aria-expanded","true"),this.#r=-1,this.dispatchEvent(new CustomEvent("drop-down:open",{bubbles:!0})))};#A=()=>{this.#n&&(this.#n=!1,this.removeAttribute("open"),this.#e?.setAttribute("aria-expanded","false"),this.#r=-1,this.dispatchEvent(new CustomEvent("drop-down:close",{bubbles:!0})))};#w(t){this.#s.length!==0&&(t<0&&(t=this.#s.length-1),t>=this.#s.length&&(t=0),this.#r=t,this.#s[t].focus())}open(){this.#n||!this.#i||this.#i.show()}close(){!this.#n||!this.#i||this.#i.hide()}toggle(){this.#n?this.close():this.open()}get isOpen(){return this.#n}};b("drop-down",Gi);function Za({basePath:e,set:t,name:i}){return`${e}/${t}/${i}.svg`}function Ja(e,t=document){let i=e.getAttribute("data-icon-set");if(i)return i;let s=e.closest("[data-icon-set]")?.getAttribute("data-icon-set");return s||t.documentElement.dataset.iconSet||"lucide"}function Qa(e=document){return e.documentElement.dataset.iconPath||"/cdn/icons"}function Ki(e){let t=e.getAttribute("data-icon");if(!t){e.style.removeProperty("--vb-icon");return}let i=Za({basePath:Qa(document),set:Ja(e,document),name:t});e.style.setProperty("--vb-icon",`url("${i}")`)}function Yi(e=document){for(let t of e.querySelectorAll("[data-icon]"))Ki(t)}var to=!1;function yh(){if(to)return;to=!0,Yi(),new MutationObserver(t=>{for(let i of t)if(i.type==="attributes"){let s=i.target;s.hasAttribute&&s.hasAttribute("data-icon")&&Ki(s),i.attributeName==="data-icon-set"&&Yi(s)}else for(let s of i.addedNodes){if(s.nodeType!==1)continue;let n=s;n.hasAttribute("data-icon")&&Ki(n),Yi(n)}}).observe(document.documentElement,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["data-icon","data-icon-set"]})}typeof document<"u"&&yh();var eo=`
|
|
77
|
+
:host {
|
|
78
|
+
display: inline-flex;
|
|
79
|
+
align-items: center;
|
|
80
|
+
justify-content: center;
|
|
81
|
+
inline-size: 1.5em;
|
|
82
|
+
block-size: 1.5em;
|
|
83
|
+
vertical-align: middle;
|
|
84
|
+
line-height: 1;
|
|
85
|
+
color: inherit;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
:host([size="xs"]) {
|
|
89
|
+
inline-size: 1em;
|
|
90
|
+
block-size: 1em;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
:host([size="sm"]) {
|
|
94
|
+
inline-size: 1.25em;
|
|
95
|
+
block-size: 1.25em;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
:host([size="md"]) {
|
|
99
|
+
inline-size: 1.5em;
|
|
100
|
+
block-size: 1.5em;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
:host([size="lg"]) {
|
|
104
|
+
inline-size: 2em;
|
|
105
|
+
block-size: 2em;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
:host([size="xl"]) {
|
|
109
|
+
inline-size: 2.5em;
|
|
110
|
+
block-size: 2.5em;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
:host([size="2xl"]) {
|
|
114
|
+
inline-size: 3em;
|
|
115
|
+
block-size: 3em;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
svg {
|
|
119
|
+
inline-size: 100%;
|
|
120
|
+
block-size: 100%;
|
|
121
|
+
stroke: currentColor;
|
|
122
|
+
stroke-width: 2;
|
|
123
|
+
stroke-linecap: round;
|
|
124
|
+
stroke-linejoin: round;
|
|
125
|
+
fill: none;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/* Error state */
|
|
129
|
+
:host([data-error]) {
|
|
130
|
+
opacity: 0.5;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/* Hidden state for missing icons */
|
|
134
|
+
:host([hidden]) {
|
|
135
|
+
display: none;
|
|
136
|
+
}
|
|
137
|
+
`;var Ht=new Map,zt=new Map,Xi=class e extends HTMLElement{static#e=new Set;static#t=null;static#i(){e.#t||(e.#t=new MutationObserver(t=>{for(let i of t)if(i.attributeName==="data-icon-set")for(let s of e.#e)s.hasAttribute("set")||(s.render(),s.loadIcon())}),e.#t?.observe(document.documentElement,{attributes:!0,attributeFilter:["data-icon-set"]}))}static get observedAttributes(){return["name","set","size","label"]}constructor(){super(),this.attachShadow({mode:"open"})}get name(){return this.getAttribute("name")||""}get set(){return this.getAttribute("set")||document.documentElement.dataset.iconSet||"lucide"}get size(){return this.getAttribute("size")||"md"}get label(){return this.getAttribute("label")}get basePath(){return this.getAttribute("base-path")||document.documentElement.dataset.iconPath||"/cdn/icons"}get iconPath(){return`${this.basePath}/${this.set}/${this.name}.svg`}render(){this.shadowRoot.innerHTML=`
|
|
138
|
+
<style>${eo}</style>
|
|
139
|
+
<slot></slot>
|
|
140
|
+
`}async loadIcon(){if(!this.name){this.setError("No icon name specified");return}let t=`${this.set}/${this.name}`;if(Ht.has(t)){this.displayIcon(Ht.get(t));return}try{let i=await this.#s(this.set,t);this.displayIcon(i)}catch(i){let s="lucide";if(this.set!==s){let n=`${s}/${this.name}`;if(Ht.has(n)){this.displayIcon(Ht.get(n));return}try{let r=await this.#s(s,n);this.displayIcon(r);return}catch{}}this.setError(i.message)}}async#s(t,i){return zt.has(i)||zt.set(i,this.#r(t).then(s=>(Ht.set(i,s),zt.delete(i),s)).catch(s=>{throw zt.delete(i),s})),zt.get(i)}async#r(t){let i=`${this.basePath}/${t}/${this.name}.svg`,s=await fetch(i);if(!s.ok)throw new Error(`Icon not found: ${this.name}`);let n=await s.text();if(!n.includes("<svg"))throw new Error(`Invalid SVG: ${this.name}`);return n}displayIcon(t){let n=new DOMParser().parseFromString(t,"image/svg+xml").querySelector("svg");if(!n){this.setError("Invalid SVG content");return}n.removeAttribute("width"),n.removeAttribute("height"),this.label?(n.setAttribute("role","img"),n.setAttribute("aria-label",this.label)):n.setAttribute("aria-hidden","true"),this.removeAttribute("data-error");let r=this.shadowRoot?.querySelector("slot");r&&r.replaceWith(n)}setError(t){this.setAttribute("data-error","true"),console.warn(`icon-wc: ${t}`);let i=this.shadowRoot?.querySelector("slot");i&&(i.textContent="")}connectedCallback(){e.#e.add(this),e.#i(),this.render(),this.loadIcon(),this._onThemeChange=()=>{let t=this.shadowRoot?.querySelector("svg");t&&(t.style.stroke="none",requestAnimationFrame(()=>{t.style.stroke=""}))},window.addEventListener("vb:theme-change",this._onThemeChange),this.setAttribute("data-upgraded","")}disconnectedCallback(){this.removeAttribute("data-upgraded"),e.#e.delete(this),this._onThemeChange&&window.removeEventListener("vb:theme-change",this._onThemeChange)}attributeChangedCallback(t,i,s){if(i!==s&&this.isConnected){if(t==="name"||t==="set")this.render(),this.loadIcon();else if(t==="label"){let n=this.shadowRoot?.querySelector("svg");n&&(s?(n.setAttribute("role","img"),n.setAttribute("aria-label",s)):(n.removeAttribute("role"),n.setAttribute("aria-hidden","true")))}}}};b("icon-wc",Xi);Vt();var is=class extends y{#e;#t=new WeakSet;setup(){this.#i(),this.#e=new MutationObserver(t=>{for(let i of t)i.type==="childList"&&this.#i()}),this.#e.observe(this,{childList:!0,subtree:!0})}teardown(){this.#e?.disconnect()}#i(){let i=(this.getAttribute("levels")||"h2,h3").split(",").map(n=>n.trim()).join(","),s=this.querySelectorAll(i);for(let n of s)this.#t.has(n)||(this.#s(n),this.#t.add(n))}#s(t){if(t.closest("dialog, [data-toc-ignore]")||t.hasAttribute("data-toc-ignore")||(t.id||(t.id=this.#r(t.textContent)),t.querySelector(".heading-anchor")))return;let i=document.createElement("a");i.className="heading-anchor",i.href=`#${t.id}`,i.setAttribute("aria-label",`Link to ${t.textContent.trim()}`),i.innerHTML='<icon-wc name="link" size="sm"></icon-wc>',i.addEventListener("click",s=>{s.preventDefault(),this.#n(t,i)}),t.appendChild(i),t.hasAttribute("tabindex")||t.setAttribute("tabindex","-1")}#r(t){let i=t.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").substring(0,50),s=i,n=1;for(;document.getElementById(s);)s=`${i}-${n}`,n++;return s}async#n(t,i){let s=new URL(window.location.href);if(s.hash=t.id,window.history.pushState(null,"",s),t.scrollIntoView({behavior:"smooth",block:"start"}),t.focus(),await mt(s.href,{button:i,announceMessage:"Link copied to clipboard"})){let r=i.innerHTML;i.innerHTML='<icon-wc name="check" size="sm"></icon-wc>',i.classList.add("copied"),setTimeout(()=>{i.innerHTML=r,i.classList.remove("copied")},1500)}this.dispatchEvent(new CustomEvent("heading-links:navigate",{bubbles:!0,detail:{id:t.id,url:s.href}}))}};b("heading-links",is);var ss=class extends y{#e;#t=[];#i=new Map;#s;#r;#n;#a=!1;setup(){requestAnimationFrame(()=>this.#o())}get entries(){return this.#t.map(t=>({id:t.id||void 0,text:t.textContent?.trim()||"",level:parseInt(t.tagName.slice(1),10)||0}))}teardown(){this.#e?.disconnect(),clearTimeout(this.#n)}#o(){this.#a=this.#l(),this.#a?this.#c():this.#b(),this.#w(),this.#p(),this.#d()}#l(){return this.querySelector("nav, details")!==null}#c(){this.#r=this.querySelector("details");let t=this.querySelectorAll('a[href^="#"]');for(let i of t){let s=i.getAttribute("href");if(!s)continue;let n=s.slice(1);if(n){let r=document.getElementById(n);r&&(this.#t.push(r),this.#i.set(n,i),i.classList.contains("link")||i.classList.add("link"),i.addEventListener("click",a=>{a.preventDefault(),this.#A(r)}))}}}#p(){this.#s=window.matchMedia("(min-width: 64rem)"),this.listen(this.#s,"change",this.#m),this.listen(window,"resize",this.#h)}#m=t=>{t.matches&&this.#r&&(this.#r.open=!0)};#h=()=>{clearTimeout(this.#n),this.#n=setTimeout(()=>this.#u(),150)};#d(){this.listen(window,"hashchange",this.#f),this.#u()}#f=()=>{this.#u()};#u(){let t=window.location.hash.slice(1);t&&this.#i.has(t)&&this.#g(t)}#g(t){for(let s of this.#i.values())s.classList.remove("active"),s.removeAttribute("aria-current");let i=this.#i.get(t);i&&(i.classList.add("active"),i.setAttribute("aria-current","true"))}#b(){let t=(this.getAttribute("levels")||"h2,h3").split(",").map(u=>u.trim().toLowerCase()),i=this.getAttribute("scope")||"main",s=this.getAttribute("title")||"On this page",n=document.querySelector(i);if(!n||(this.#t=Array.from(n.querySelectorAll(t.join(","))).filter(u=>u.id).filter(u=>!u.hasAttribute("data-toc-ignore")&&!u.closest("[data-toc-ignore]")),this.#t.length===0))return;let r={depth:-1,children:[]},a=[r];for(let u of this.#t){let d=t.indexOf(u.tagName.toLowerCase());for(;a[a.length-1].depth>=d;)a.pop();let h={heading:u,depth:d,children:[]};a[a.length-1].children.push(h),a.push(h)}let o=u=>{let d=document.createElement("ul");d.className="list";for(let h of u){let p=document.createElement("li");p.className="item",p.dataset.level=String(h.depth);let f=document.createElement("a");f.href=`#${h.heading.id}`,f.className="link",f.textContent=this.#k(h.heading),f.addEventListener("click",m=>{m.preventDefault(),this.#A(h.heading)}),p.appendChild(f),h.children.length&&p.appendChild(o(h.children)),d.appendChild(p),this.#i.set(h.heading.id,f)}return d};this.#r=document.createElement("details"),this.#r.className="details",this.#r.open=!0;let c=document.createElement("summary");c.className="summary",c.textContent=s,this.#r.appendChild(c);let l=document.createElement("nav");l.className="nav",l.setAttribute("aria-label",s),l.appendChild(o(r.children)),this.#r.appendChild(l),this.appendChild(this.#r)}#k(t){let i=t.cloneNode(!0);return i.querySelectorAll(".heading-anchor").forEach(n=>n.remove()),i.textContent.trim()}#A(t){let i=new URL(window.location.href);i.hash=t.id,window.history.pushState(null,"",i),t.scrollIntoView({behavior:"smooth",block:"start"}),t.focus(),this.dispatchEvent(new CustomEvent("page-toc:navigate",{bubbles:!0,detail:{id:t.id}}))}#w(){if(this.#t.length===0)return;let t=new Set;this.#e=new IntersectionObserver(i=>{for(let s of i)s.isIntersecting?t.add(s.target.id):t.delete(s.target.id);this.#y(t)},{rootMargin:"-80px 0px -70% 0px",threshold:0});for(let i of this.#t)this.#e.observe(i)}#y(t){for(let i of this.#t)if(t.has(i.id)){this.#g(i.id);return}this.#u()}refresh(){this.#a||(this.innerHTML=""),this.#i.clear(),this.#t=[],this.#e?.disconnect(),this.#o()}};b("page-toc",ss);function Me({newItems:e,nodes:t,keyOf:i,renderItem:s,containerFor:n}){let r=[],a=[],o=[],c=new Set;for(let u of e)c.add(i(u));for(let[u,d]of[...t])c.has(u)||(d.remove(),t.delete(u),o.push(u));let l=new Map;for(let u of e){let d=i(u),h=t.get(d)||null,p=n(u,h);l.has(p)||l.set(p,[]),l.get(p)?.push({item:u,key:d,existing:h})}for(let[u,d]of l)for(let h=0;h<d.length;h++){let{item:p,key:f,existing:m}=d[h],v=m;v?(v.parentElement!==u||u.children[h]!==v)&&a.push(f):(v=s(p),t.set(f,v),r.push(f));let A=u.children[h];A!==v&&u.insertBefore(v,A||null)}return{added:r,moved:a,removed:o}}var ns=class e extends y{#e;#t;#i=[];#s=[];#r=[];#n=-1;#a=null;#o=1;#l=0;#c=null;#p=null;#m=null;#h="";#d=null;#f=null;#u=[];#g=new Map;#b=[];setup(){return this.#e=this.querySelector(":scope > table"),!this.#e||(this.#t=this.#e.querySelector("tbody"),!this.#t)?!1:(this.#k(),!0)}teardown(){this.#_(),this.#i=[],this.#s=[],this.#r=[]}#k(){this.#s=[...this.#t.querySelectorAll(":scope > tr:not([data-expand-content])")],this.#r=[...this.#s],this.#b=[...this.#e.tHead?.rows[0]?.cells||[]].map(i=>({key:i.getAttribute("data-key")||i.textContent.trim().toLowerCase(),label:i.textContent.trim(),sort:i.getAttribute("data-sort")||void 0})),this.#g.clear(),this.#u=[];for(let i of this.#s){let s=i.getAttribute("data-id")||i.getAttribute("data-key");s&&(this.#g.set(s,i),this.#u.push({id:s}))}this.#E(),this.#v(),this.#N(),this.#O(),this.#e.hasAttribute("data-filterable")&&this.#q();let t=this.#e.getAttribute("data-paginate");t&&(this.#l=parseInt(t,10),this.#l>0&&this.#x()),this.#R(),this.#P(),this.#W()}get rows(){return this.#u}set rows(t){let i=t||[],s=Me({newItems:i,nodes:this.#g,keyOf:n=>n.id,renderItem:n=>this._renderRow(n),containerFor:()=>this.#t});this.#u=i,this.#s=[...this.#t.querySelectorAll(":scope > tr:not([data-expand-content])")],this.#v(),this.#N(),this.#M(this.#h),this.dispatchEvent(new CustomEvent("data-table:rows-changed",{detail:{rows:i,added:s.added,moved:s.moved,removed:s.removed,source:"api"},bubbles:!0}))}get columns(){return this.#b}_renderRow(t){let i=this;if(typeof i.renderRow=="function"){let n=i.renderRow(t,this.#b);if(!(n instanceof Element))throw new Error("data-table: renderRow must return an Element");return n.hasAttribute("data-id")||n.setAttribute("data-id",String(t.id)),n}let s=document.createElement("tr");s.setAttribute("data-id",String(t.id));for(let n of this.#b){let r=document.createElement("td"),a=t[n.key];r.textContent=a==null?"":String(a),s.appendChild(r)}return s}#A=[];#w=[];#y=[];#E(){let t=[...this.#e.tHead?.rows[0]?.cells||[]];this.#A=t.map(i=>{let s=parseFloat(i.getAttribute("data-weight"));return Number.isFinite(s)?s:null}),this.#w=t.map(i=>i.getAttribute("data-rollup")||null),this.#y=t.map(i=>i.getAttribute("data-heatmap")||null)}#v(){if(this.#w.some(Boolean))for(let t=0;t<this.#w.length;t++){let i=this.#w[t];if(i)for(let s of this.#s){let n=s.children[t];if(!n)continue;let r=this.#C(s,t,i),a=e.#I(r);n.textContent=a,n.setAttribute("data-rollup-value",String(r)),n.hasAttribute("data-sort-value")||n.setAttribute("data-sort-value",String(r))}}}#C(t,i,s){let n=[...t.children],r=0,a=0,o=-1/0,c=0,l=1,u=!1;for(let d=0;d<n.length;d++){if(d===i||this.#w[d])continue;let h=n[d].getAttribute("data-sort-value")??n[d].textContent??"",p=parseFloat(h);if(!Number.isFinite(p))continue;r+=p,a++,p>o&&(o=p),l*=p,u=!0;let f=this.#A[d];f!==null&&(c+=p*f)}switch(s){case"sum":return r;case"avg":return a?r/a:0;case"max":return o===-1/0?0:o;case"weighted-sum":return c;case"product":return u?l:0;default:return r}}static#I(t){return Number.isFinite(t)?Number.isInteger(t)?String(t):(Math.round(t*100)/100).toString():""}#N(){if(this.#y.some(Boolean))for(let t=0;t<this.#y.length;t++){let i=this.#y[t];if(!i)continue;let s=this.#s.map(c=>{let l=c.children[t];if(!l)return null;let u=l.getAttribute("data-rollup-value")??l.getAttribute("data-sort-value")??l.textContent??"",d=parseFloat(u);return Number.isFinite(d)?d:null}),n=s.filter(c=>c!==null);if(!n.length)continue;let r=Math.min(...n),o=Math.max(...n)-r||1;for(let c=0;c<this.#s.length;c++){let l=this.#s[c].children[t];if(!l)continue;let u=s[c];if(u===null){l.removeAttribute("data-heat-level");continue}let d=(u-r)/o;i==="low-good"&&(d=1-d);let h=d<.34?"low":d<.67?"mid":"high";l.setAttribute("data-heat-level",h)}}}#_(){this.#m&&clearTimeout(this.#m),this.#c?.parentElement?.remove(),this.#p?.remove()}#O(){this.#e.querySelectorAll("thead th[data-sort]").forEach((i,s)=>{let n=i.getAttribute("data-sort"),r=this.#F(i);this.#i.push({th:i,sortType:n,columnIndex:r}),i.setAttribute("tabindex","0"),i.setAttribute("role","columnheader"),i.setAttribute("aria-sort","none"),i.dataset.columnIndex=r,this.listen(i,"click",this.#D),this.listen(i,"keydown",this.#L)})}#F(t){return[...t.parentElement.children].indexOf(t)}#D=t=>{let i=t.currentTarget,s=parseInt(i.dataset.columnIndex,10);this.#$(s)};#L=t=>{if(t.key==="Enter"||t.key===" "){t.preventDefault();let i=t.currentTarget,s=parseInt(i.dataset.columnIndex,10);this.#$(s)}};#B(t,i,s){let n=this.#r;if(n.length<2)return!0;let r=s==="asc"?1:-1;for(let a=1;a<n.length;a++){let o=this.#T(n[a-1].children[t],i),c=this.#T(n[a].children[t],i);if((typeof o=="string"?o.localeCompare(c)*r:(o-c)*r)>0)return!1}return!0}#$(t){let i=this.#i.find(n=>n.columnIndex===t);if(!i)return;let s;this.#n===t?s=this.#a==="asc"?"desc":"asc":this.#B(t,i.sortType,"asc")?s="desc":s="asc",this.#i.forEach(({th:n})=>{n.setAttribute("aria-sort","none")}),i.th.setAttribute("aria-sort",s==="asc"?"ascending":"descending"),this.#n=t,this.#a=s,this.#S(t,s,i.sortType),this.#o=1,this.#W(),this.dispatchEvent(new CustomEvent("data-table:sort",{detail:{column:t,direction:s,columnName:i.th.textContent.trim()},bubbles:!0}))}#S(t,i,s){let n=i==="asc"?1:-1;this.#r.sort((r,a)=>{let o=r.children[t],c=a.children[t];if(!o||!c)return 0;let l=this.#T(o,s),u=this.#T(c,s),d=0;switch(s){case"number":d=l-u;break;case"date":d=l-u;break;default:d=l.localeCompare(u,void 0,{numeric:!0,sensitivity:"base"});break}return d*n})}#T(t,i){let n=t.getAttribute("data-sort-value")??t.textContent.trim();switch(i){case"number":return parseFloat(n)||0;case"date":return new Date(n).getTime()||0;default:return n.toLowerCase()}}#q(){let t=document.createElement("div");t.setAttribute("data-table-filter","");let i=document.createElement("input");i.type="search",i.setAttribute("data-filter-input",""),i.setAttribute("placeholder","Filter table..."),i.setAttribute("aria-label","Filter table rows"),t.appendChild(i),this.insertBefore(t,this.#e),this.#c=i,this.listen(i,"input",this.#j)}#j=t=>{let i=t.target.value;this.#m&&clearTimeout(this.#m),this.#m=setTimeout(()=>{this.#M(i)},150)};#M(t){if(this.#h=t.toLowerCase().trim(),this.#h===""?this.#r=[...this.#s]:this.#r=this.#s.filter(i=>[...i.children].some(n=>(n.getAttribute("data-filter-value")??n.textContent).toLowerCase().includes(this.#h))),this.#n>=0&&this.#a){let i=this.#i.find(s=>s.columnIndex===this.#n);i&&this.#S(this.#n,this.#a,i.sortType)}this.#o=1,this.#W(),this.dispatchEvent(new CustomEvent("data-table:filter",{detail:{query:this.#h,count:this.#r.length},bubbles:!0}))}#x(){let t=document.createElement("nav");t.setAttribute("data-pagination",""),t.setAttribute("aria-label","Table pagination"),this.appendChild(t),this.#p=t}#R(){this.listen(this.#e,"click",this.#z)}#z=t=>{let i=t.target.closest('[data-action="toggle-expand"]');if(!i)return;let s=i.closest("tr[data-expandable]");if(!s)return;let n=s.hasAttribute("data-state-expanded"),r=s.nextElementSibling;n?(s.removeAttribute("data-state-expanded"),i.setAttribute("aria-expanded","false"),r?.hasAttribute("data-expand-content")&&(r.hidden=!0,r.setAttribute("aria-hidden","true"))):(s.setAttribute("data-state-expanded",""),i.setAttribute("aria-expanded","true"),r?.hasAttribute("data-expand-content")&&(r.hidden=!1,r.removeAttribute("aria-hidden"))),this.dispatchEvent(new CustomEvent("data-table:expand",{detail:{row:s,expanded:!n},bubbles:!0}))};#P(){this.#d=this.#e.querySelector('thead [data-action="select-all"]'),this.#d&&this.listen(this.#d,"change",this.#H),this.listen(this.#t,"change",this.#G),this.#f=this.querySelector("[data-selected-count]"),this.#K()}#H=t=>{let i=t.target.checked;this.#t.querySelectorAll("tr[data-selectable]").forEach(n=>{let r=n.querySelector('[data-action="select-row"]');i?(n.setAttribute("data-state-selected",""),r&&(r.checked=!0)):(n.removeAttribute("data-state-selected"),r&&(r.checked=!1))}),t.target.indeterminate=!1,this.#Y(),this.#V()};#G=t=>{let i=t.target.closest('[data-action="select-row"]');if(!i)return;let s=i.closest("tr[data-selectable]");s&&(i.checked?s.setAttribute("data-state-selected",""):s.removeAttribute("data-state-selected"),this.#K(),this.#V())};#K(){if(!this.#d){this.#Y();return}let t=this.#t.querySelectorAll("tr[data-selectable]"),i=this.#t.querySelectorAll("tr[data-selectable][data-state-selected]"),s=t.length,n=i.length;n===0?(this.#d.checked=!1,this.#d.indeterminate=!1):n===s?(this.#d.checked=!0,this.#d.indeterminate=!1):(this.#d.checked=!1,this.#d.indeterminate=!0),this.#Y()}#Y(){let i=this.#t.querySelectorAll("tr[data-selectable][data-state-selected]").length;this.#f&&(this.#f.textContent=i)}#V(){let t=[...this.#t.querySelectorAll("tr[data-selectable][data-state-selected]")];this.dispatchEvent(new CustomEvent("data-table:selection",{detail:{count:t.length,rows:t},bubbles:!0}))}#U(){if(!this.#p||this.#l<=0)return;let t=this.#p,i=Math.ceil(this.#r.length/this.#l);if(t.innerHTML="",i<=1)return;let s=document.createElement("button");s.type="button",s.textContent="Previous",s.setAttribute("data-pagination-prev",""),s.disabled=this.#o===1,s.addEventListener("click",()=>this.goToPage(this.#o-1)),t.appendChild(s),this.#X(i).forEach(a=>{if(a==="..."){let o=document.createElement("span");o.textContent="...",o.setAttribute("data-pagination-ellipsis",""),t.appendChild(o)}else{let o=document.createElement("button");o.type="button",o.textContent=a,o.setAttribute("data-pagination-page",""),a===this.#o&&(o.setAttribute("aria-current","page"),o.setAttribute("data-current","")),o.addEventListener("click",()=>this.goToPage(a)),t.appendChild(o)}});let r=document.createElement("button");r.type="button",r.textContent="Next",r.setAttribute("data-pagination-next",""),r.disabled=this.#o===i,r.addEventListener("click",()=>this.goToPage(this.#o+1)),t.appendChild(r)}#X(t){let i=this.#o,s=[];if(t<=7)for(let n=1;n<=t;n++)s.push(n);else{s.push(1),i>3&&s.push("...");let n=Math.max(2,i-1),r=Math.min(t-1,i+1);for(let a=n;a<=r;a++)s.push(a);i<t-2&&s.push("..."),s.push(t)}return s}#W(){this.#s.forEach(i=>{i.setAttribute("data-state-hidden","")});let t;if(this.#l>0){let i=(this.#o-1)*this.#l,s=i+this.#l;t=this.#r.slice(i,s)}else t=this.#r;t.forEach(i=>{i.removeAttribute("data-state-hidden"),this.#t.appendChild(i);let s=i.nextElementSibling?.hasAttribute?.("data-expand-content")?i.nextElementSibling:this.#Z(i);s&&this.#t.appendChild(s)}),this.#r.forEach(i=>{if(i.hasAttribute("data-state-hidden")){this.#t.appendChild(i);let s=this.#Z(i);s&&this.#t.appendChild(s)}}),this.#s.forEach(i=>{if(!this.#r.includes(i)){this.#t.appendChild(i);let s=this.#Z(i);s&&this.#t.appendChild(s)}}),this.#U()}#Z(t){if(!t.hasAttribute("data-expandable"))return null;let i=t.nextElementSibling;return i?.hasAttribute("data-expand-content")?i:null}goToPage(t){let i=Math.ceil(this.#r.length/this.#l),s=Math.max(1,Math.min(t,i));s!==this.#o&&(this.#o=s,this.#W(),this.dispatchEvent(new CustomEvent("data-table:page",{detail:{page:this.#o},bubbles:!0})))}setFilter(t){this.#c&&(this.#c.value=t),this.#M(t)}refresh(){if(this.#s=[...this.#t.querySelectorAll(":scope > tr")],this.#h?this.#M(this.#h):this.#r=[...this.#s],this.#n>=0&&this.#a){let i=this.#i.find(s=>s.columnIndex===this.#n);i&&this.#S(this.#n,this.#a,i.sortType)}let t=Math.max(1,Math.ceil(this.#r.length/this.#l));this.#o>t&&(this.#o=t),this.#W()}get currentPage(){return this.#o}get totalPages(){return this.#l<=0?1:Math.ceil(this.#r.length/this.#l)}get filteredCount(){return this.#r.length}get totalCount(){return this.#s.length}getSelectedRows(){return this.#t?[...this.#t.querySelectorAll("tr[data-selectable][data-state-selected]")]:[]}};b("data-table",ns);Wt();var rs=class e extends y{static#e=150;static#t=8;#i=null;#s=null;#r=null;#n=null;#a=[];#o=-1;#l=!1;#c=null;#p=null;#m=null;setup(){this.#h(),this.#d()}teardown(){this.#l&&(document.body.style.overflow="",this.removeAttribute("open"),this.#l=!1),this.#m?.(),this.#I(),this.#s?.remove(),this.#s=null}get value(){return this.#r?.value??""}set value(t){if(!this.#r)return;let i=t==null?"":String(t);this.#r.value!==i&&(this.#r.value=i,this.#r.dispatchEvent(new Event("input",{bubbles:!0})),this.dispatchEvent(new CustomEvent("site-search:change",{detail:{value:i,source:"api"},bubbles:!0})))}get results(){return[...this.#a]}#h(){this.#i=this.querySelector(":scope > [data-trigger]"),this.#i||(this.#i=this.querySelector(":scope > button")),this.#i||(this.#i=document.createElement("button"),this.#i.setAttribute("data-trigger",""),this.#i.innerHTML=`
|
|
141
|
+
<icon-wc name="search" label="Search"></icon-wc>
|
|
142
|
+
`,this.prepend(this.#i)),this.#i.setAttribute("aria-haspopup","dialog"),this.#i.setAttribute("aria-expanded","false"),this.#s=document.createElement("div"),this.#s.className="dialog",this.#s.setAttribute("role","dialog"),this.#s.setAttribute("aria-label","Site search"),this.#s.id=`search-dialog-${crypto.randomUUID().slice(0,8)}`,this.#i.setAttribute("aria-controls",this.#s.id),this.#s.innerHTML=`
|
|
143
|
+
<div class="backdrop"></div>
|
|
144
|
+
<div class="panel">
|
|
145
|
+
<div class="input-wrapper">
|
|
146
|
+
<icon-wc name="search" class="icon"></icon-wc>
|
|
147
|
+
<input
|
|
148
|
+
type="search"
|
|
149
|
+
name="search"
|
|
150
|
+
class="input"
|
|
151
|
+
placeholder="Search documentation..."
|
|
152
|
+
autocomplete="off"
|
|
153
|
+
autocorrect="off"
|
|
154
|
+
autocapitalize="off"
|
|
155
|
+
spellcheck="false"
|
|
156
|
+
aria-label="Search"
|
|
157
|
+
aria-autocomplete="list"
|
|
158
|
+
/>
|
|
159
|
+
<kbd class="shortcut">Esc</kbd>
|
|
160
|
+
</div>
|
|
161
|
+
<div class="results" role="listbox" aria-label="Search results"></div>
|
|
162
|
+
<div class="footer">
|
|
163
|
+
<span class="hint">
|
|
164
|
+
<kbd>\u2191</kbd><kbd>\u2193</kbd> to navigate
|
|
165
|
+
<kbd>\u21B5</kbd> to select
|
|
166
|
+
<kbd>esc</kbd> to close
|
|
167
|
+
</span>
|
|
168
|
+
<span class="powered">
|
|
169
|
+
Powered by <a href="https://pagefind.app" target="_blank" rel="noopener">Pagefind</a>
|
|
170
|
+
</span>
|
|
171
|
+
</div>
|
|
172
|
+
</div>
|
|
173
|
+
`,this.appendChild(this.#s),this.#r=this.#s.querySelector(".input"),this.#n=this.#s.querySelector(".results")}#d(){this.#i.addEventListener("click",this.#f),lo().includes("meta+k")||(this.#m=rt("meta+k",()=>{this.#l?this.close():this.open()},{global:!0})),this.listen(document,"keydown",this.#u),this.#s.querySelector(".backdrop")?.addEventListener("click",()=>this.close()),this.#r.addEventListener("input",this.#g),this.#r.addEventListener("keydown",this.#b),this.#n.addEventListener("click",this.#k)}#f=t=>{t.stopPropagation(),this.open()};#u=t=>{t.key==="Escape"&&this.#l&&(t.preventDefault(),this.close())};#g=()=>{this.#I(),this.setState("input-debounce-pending",!0),this.#p=setTimeout(()=>{this.setState("input-debounce-pending",!1),this.#w(this.#r.value)},e.#e)};#b=t=>{switch(t.key){case"ArrowDown":t.preventDefault(),this.#v(this.#o+1);break;case"ArrowUp":t.preventDefault(),this.#v(this.#o-1);break;case"Enter":t.preventDefault(),this.#o>=0&&this.#a[this.#o]&&this.#C(this.#a[this.#o]);break}};#k=t=>{let i=t.target.closest("[data-result-index]");if(i){let s=parseInt(i.dataset.resultIndex,10);this.#a[s]&&this.#C(this.#a[s])}};async#A(){if(!this.#c)try{this.#c=await import("/pagefind/pagefind.js"),await this.#c.options({excerptLength:20})}catch{console.warn("Pagefind not available. Run `npm run search:index` to build the search index."),this.#c=null}}async#w(t){if(!t.trim()){this.#y([]);return}if(await this.#A(),!this.#c){this.#E();return}try{this.#n.innerHTML='<div class="loading">Searching...</div>';let i=await this.#c.search(t),s=await Promise.all(i.results.slice(0,e.#t).map(n=>n.data()));this.#a=s,this.#y(s)}catch(i){console.error("Search error:",i),this.#n.innerHTML='<div class="error">Search error. Please try again.</div>'}}#y(t){if(this.#o=-1,t.length===0){this.#r.value.trim()?this.#n.innerHTML='<div class="empty">No results found</div>':this.#n.innerHTML="";return}this.#n.innerHTML=t.map((i,s)=>`
|
|
174
|
+
<a
|
|
175
|
+
id="search-result-${s}"
|
|
176
|
+
href="${i.url}"
|
|
177
|
+
class="result"
|
|
178
|
+
role="option"
|
|
179
|
+
data-result-index="${s}"
|
|
180
|
+
tabindex="-1"
|
|
181
|
+
>
|
|
182
|
+
<span class="result-title">${i.meta?.title||"Untitled"}</span>
|
|
183
|
+
<span class="result-excerpt">${i.excerpt||""}</span>
|
|
184
|
+
</a>
|
|
185
|
+
`).join("")}#E(){this.#n.innerHTML=`
|
|
186
|
+
<div class="error">
|
|
187
|
+
Search index not found.<br>
|
|
188
|
+
Run <code>npm run search:index</code> after building.
|
|
189
|
+
</div>
|
|
190
|
+
`}#v(t){if(this.#a.length===0)return;t<0&&(t=this.#a.length-1),t>=this.#a.length&&(t=0);let i=this.#n.querySelector("[data-active]");i&&i.removeAttribute("data-active"),this.#r?.removeAttribute("aria-activedescendant"),this.#o=t;let s=this.#n.querySelector(`[data-result-index="${t}"]`);s&&(s.setAttribute("data-active",""),this.#r?.setAttribute("aria-activedescendant",s.id),s.scrollIntoView({block:"nearest"}))}#C(t){t.url&&(this.close(),window.location.href=t.url)}#I(){this.#p&&(clearTimeout(this.#p),this.#p=null,this.setState("input-debounce-pending",!1))}open(){this.#l||(this.#l=!0,this.setAttribute("open",""),this.#i?.setAttribute("aria-expanded","true"),document.body.style.overflow="hidden",requestAnimationFrame(()=>{this.#r?.focus(),this.#r?.select()}),this.#A(),this.dispatchEvent(new CustomEvent("site-search:open",{bubbles:!0})))}close(){this.#l&&(this.#l=!1,this.removeAttribute("open"),this.#i?.setAttribute("aria-expanded","false"),document.body.style.overflow="",this.#I(),this.#r.value="",this.#r?.removeAttribute("aria-activedescendant"),this.#a=[],this.#o=-1,this.#n.innerHTML="",this.#i?.focus(),this.dispatchEvent(new CustomEvent("site-search:close",{bubbles:!0})))}get isOpen(){return this.#l}};b("site-search",rs);_e();_e();var Th=/^[a-zA-Z_$][a-zA-Z0-9_$]*(\.[a-zA-Z_$][a-zA-Z0-9_$]*|\[\d+\])*$/;function ho(e){return!e||typeof e!="string"?!1:Th.test(e.trim())}function Yt(e,t){if(!ho(t)){console.warn(`[card-list] Unsafe property path rejected: "${t}"`);return}let s=String(t).replace(/\[(\d+)\]/g,".$1").split("."),n=e;for(let r of s){if(n==null)return;n=n[r]}return n}function Lh(e){return e?e.split(",").map(t=>{let[i,s]=t.split(":").map(n=>n.trim());return{attr:(i||"").toLowerCase(),path:s}}).filter(({attr:t,path:i})=>t&&i):[]}var Mh=new Set(["href","src","action","formaction","xlink:href","poster","cite","background","ping","data","manifest","longdesc","codebase"]),po=new Set(["srcdoc","style","is"]),Nh=new Set(["http:","https:","mailto:","tel:"]);function fo(e){let t=String(e).replace(/[\u0000-\u0020\u007f]+/g,"");if(!t)return!0;let i=/^([a-z][a-z0-9+.-]*):/i.exec(t);return i?Nh.has(`${i[1].toLowerCase()}:`):!0}function _h(e){return String(e).split(",").every(t=>fo(t.trim().split(/\s+/)[0]||""))}function Dh(e,t){return e.startsWith("on")||po.has(e)||!/^[a-z_][a-z0-9_.:-]*$/.test(e)?!1:e==="srcset"||e==="imagesrcset"?_h(t):Mh.has(e)?fo(t):!0}function $h(e,t){let i=new Set;return e.map((s,n)=>{let r=s!=null&&typeof s=="object"?s[t]:void 0,a=r==null?null:`k:${String(r)}`;return a==null||i.has(a)?`i:${n}`:(i.add(a),a)})}var uo=":scope > [data-card-list-status]",as=class extends y{#e=null;#t=[];#i="id";#s=new Map;#r=!1;#n=null;#a=null;static get observedAttributes(){return["src","data-items","data-key"]}setup(){if(this.#e=this.querySelector(":scope > template")||this.querySelector("template"),!this.#e)return console.warn("[card-list] No template found"),!1;if(this.#i=this.getAttribute("data-key")||"id",this.#r)return this.#n&&this.#h(this.#n),this.#n=null,!0;let t=this.getAttribute("data-items");if(t)return this.#o(t),!0;let i=this.getAttribute("src");return i&&this.#m(i),!0}teardown(){this.#l()}attributeChangedCallback(t,i,s){i!==s&&this.hasAttribute("data-upgraded")&&(t==="data-items"?s&&this.#o(s):t==="src"?s?this.#m(s):this.#l():t==="data-key"&&(this.#i=s||"id",this.#h("attribute")))}#o(t){this.#l();try{let i=JSON.parse(t);this.#t=Array.isArray(i)?i:[],this.#r=!0,this.#h("attribute")}catch(i){console.error("[card-list] Invalid JSON in data-items:",i)}}#l(){this.#a&&(this.#a.abort(),this.#a=null,this.removeAttribute("data-loading"),this.removeAttribute("aria-busy"),this.#p(""))}#c(){let t=this.querySelector(uo);return t||(t=document.createElement("p"),t.setAttribute("role","status"),t.setAttribute("data-card-list-status",""),this.append(t)),t}#p(t){let i=this.querySelector(uo);!i&&!t||((i||this.#c()).textContent=t)}async#m(t){this.#l();let i=new AbortController;this.#a=i,this.removeAttribute("data-error"),this.setAttribute("data-loading",""),this.setAttribute("aria-busy","true"),this.#c().textContent="Loading\u2026";try{let s=await fetch(t,{signal:i.signal});if(!s.ok)throw new Error(`HTTP ${s.status}`);let n=await s.json();if(i.signal.aborted)return;this.#t=Array.isArray(n)?n:n?.items||n?.data||[],this.#r=!0,this.#p(""),this.#h("attribute")}catch(s){if(i.signal.aborted)return;let n=s instanceof Error?s.message:String(s);console.error("[card-list] Fetch error:",s),this.setAttribute("data-error",n),this.#p(`Error: ${n}`)}finally{this.#a===i&&(this.#a=null,this.removeAttribute("data-loading"),this.removeAttribute("aria-busy"))}}#h(t){if(!this.#e)return;this.querySelectorAll(":scope > [data-fallback]").forEach(n=>n.remove());let i=this.#e;if([...i.content.children].length!==1){this.querySelectorAll(":scope > :not(template, [data-card-list-status])").forEach(r=>r.remove()),this.#s.clear();let n=document.createDocumentFragment();for(let r of this.#t){let a=i.content.cloneNode(!0);this.#d(a,r),n.appendChild(a)}this.prepend(n)}else{let n=$h(this.#t,this.#i),r=this.#t.map((c,l)=>({item:c,key:n[l]})),a=Me({newItems:r,nodes:this.#s,keyOf:c=>c.key,renderItem:c=>{let u=i.content.cloneNode(!0).firstElementChild;return this.#d(u,c.item),u},containerFor:()=>this}),o=new Set(a.added);for(let{item:c,key:l}of r){if(o.has(l))continue;let u=this.#s.get(l);u&&this.#d(u,c)}}this.dispatchEvent(new CustomEvent("card-list:rendered",{detail:{count:this.#t.length},bubbles:!0})),this.dispatchEvent(new CustomEvent("card-list:items-changed",{detail:{items:this.#t,source:t},bubbles:!0}))}#d(t,i){let s=n=>{let r=[...t.querySelectorAll(n)];return t instanceof Element&&t.matches(n)&&r.unshift(t),r};s("[data-field]").forEach(n=>{let r=Yt(i,n.getAttribute("data-field"));n.textContent=r??""}),s("[data-field-attr]").forEach(n=>{for(let{attr:r,path:a}of Lh(n.getAttribute("data-field-attr"))){if(!ho(a))continue;let o=Yt(i,a);if(r.startsWith("on")||po.has(r)){console.warn(`[card-list] Refusing to bind "${r}" from data`);continue}let c=r.startsWith("aria-");o==null||o===!1&&!c?n.removeAttribute(r):Dh(r,o)?n.setAttribute(r,o===!0&&!c?"":String(o)):(console.warn(`[card-list] Unsafe value refused for "${r}"`),n.removeAttribute(r))}}),s("[data-field-html]").forEach(n=>{n.innerHTML=Gt(Yt(i,n.getAttribute("data-field-html")))}),s("[data-field-if]").forEach(n=>{n.hidden=!Yt(i,n.getAttribute("data-field-if"))}),s("[data-field-unless]").forEach(n=>{n.hidden=!!Yt(i,n.getAttribute("data-field-unless"))})}get items(){return this.#t}set items(t){this.#l(),this.#t=Array.isArray(t)?t:[],this.#r=!0,this.#e&&this.hasAttribute("data-upgraded")?this.#h("api"):this.#n="api"}};b("card-list",as);var mo=`
|
|
191
|
+
:host {
|
|
192
|
+
--_padding: var(--score-card-padding, var(--size-l, 1.5rem));
|
|
193
|
+
--_radius: var(--score-card-radius, var(--radius-m, 0.5rem));
|
|
194
|
+
--_gap: var(--score-card-gap, var(--size-s, 0.75rem));
|
|
195
|
+
--_value-size: var(--score-card-value-size, var(--font-size-3xl, 2rem));
|
|
196
|
+
--_value-weight: var(--score-card-value-weight, var(--font-weight-bold, 700));
|
|
197
|
+
--_title-size: var(--score-card-title-size, var(--font-size-s, 0.875rem));
|
|
198
|
+
--_meta-size: var(--score-card-meta-size, var(--font-size-s, 0.875rem));
|
|
199
|
+
--_sparkline-h: var(--score-card-sparkline-height, 40px);
|
|
200
|
+
--_surface: var(--score-card-surface, var(--color-surface, #fff));
|
|
201
|
+
--_border: var(--score-card-border, 1px solid var(--color-border-subtle, var(--color-border, #e5e7eb)));
|
|
202
|
+
--_text: var(--score-card-text, var(--color-text, #1a1a1a));
|
|
203
|
+
--_muted: var(--score-card-muted, var(--color-text-muted, #6b7280));
|
|
204
|
+
--_accent: var(--score-card-tone-accent, var(--color-interactive, var(--color-primary, #6366f1)));
|
|
205
|
+
--_trend-up: var(--score-card-trend-up, var(--color-success, #16a34a));
|
|
206
|
+
--_trend-down: var(--score-card-trend-down, var(--color-error, #dc2626));
|
|
207
|
+
--_trend-flat: var(--score-card-trend-flat, var(--color-text-muted, #6b7280));
|
|
208
|
+
--_focus: var(--color-focus-ring, var(--color-interactive, currentColor));
|
|
209
|
+
--_duration: var(--score-card-duration, var(--duration-fast, 150ms));
|
|
210
|
+
--_ease: var(--score-card-ease, var(--ease-default, ease));
|
|
211
|
+
|
|
212
|
+
display: block;
|
|
213
|
+
box-sizing: border-box;
|
|
214
|
+
color: var(--_text);
|
|
215
|
+
background: var(--_surface);
|
|
216
|
+
border: var(--_border);
|
|
217
|
+
border-radius: var(--_radius);
|
|
218
|
+
padding: var(--_padding);
|
|
219
|
+
container-type: inline-size;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
*, *::before, *::after { box-sizing: border-box; }
|
|
223
|
+
|
|
224
|
+
/* \u2500\u2500 Tone accent \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
225
|
+
:host([tone="success"]) { --_accent: var(--color-success, #16a34a); }
|
|
226
|
+
:host([tone="warning"]) { --_accent: var(--color-warning, #d97706); }
|
|
227
|
+
:host([tone="error"]) { --_accent: var(--color-error, #dc2626); }
|
|
228
|
+
:host([tone="info"]) { --_accent: var(--color-info, #2563eb); }
|
|
229
|
+
|
|
230
|
+
/* \u2500\u2500 Layout grid \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
231
|
+
.card {
|
|
232
|
+
display: grid;
|
|
233
|
+
grid-template-columns: 1fr auto;
|
|
234
|
+
grid-template-areas:
|
|
235
|
+
"title icon"
|
|
236
|
+
"value icon"
|
|
237
|
+
"change change"
|
|
238
|
+
"sparkline sparkline"
|
|
239
|
+
"description description";
|
|
240
|
+
gap: var(--_gap);
|
|
241
|
+
align-items: start;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
/* cluster: icon stays right, value+change wrap on the left */
|
|
245
|
+
:host([layout="cluster"]) .card {
|
|
246
|
+
grid-template-areas:
|
|
247
|
+
"title icon"
|
|
248
|
+
"value icon"
|
|
249
|
+
"change icon"
|
|
250
|
+
"sparkline sparkline"
|
|
251
|
+
"description description";
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
/* compact: dense vertical, smaller value */
|
|
255
|
+
:host([layout="compact"]) {
|
|
256
|
+
--_padding: var(--size-m, 1rem);
|
|
257
|
+
--_value-size: var(--font-size-2xl, 1.5rem);
|
|
258
|
+
--_gap: var(--size-2xs, 0.25rem);
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
/* \u2500\u2500 Slot regions \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
262
|
+
.title { grid-area: title; }
|
|
263
|
+
.value { grid-area: value; }
|
|
264
|
+
.change { grid-area: change; }
|
|
265
|
+
.sparkline { grid-area: sparkline; }
|
|
266
|
+
.description { grid-area: description; }
|
|
267
|
+
.icon { grid-area: icon; }
|
|
268
|
+
|
|
269
|
+
.title ::slotted(*) {
|
|
270
|
+
margin: 0;
|
|
271
|
+
font-size: var(--_title-size);
|
|
272
|
+
font-weight: var(--font-weight-medium, 500);
|
|
273
|
+
color: var(--_muted);
|
|
274
|
+
line-height: 1.3;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
.value ::slotted(*) {
|
|
278
|
+
font-size: var(--_value-size);
|
|
279
|
+
font-weight: var(--_value-weight);
|
|
280
|
+
line-height: 1.1;
|
|
281
|
+
color: var(--_text);
|
|
282
|
+
font-variant-numeric: tabular-nums;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
.change ::slotted(*) {
|
|
286
|
+
display: inline-flex;
|
|
287
|
+
align-items: center;
|
|
288
|
+
gap: var(--size-2xs, 0.25rem);
|
|
289
|
+
font-size: var(--_meta-size);
|
|
290
|
+
color: var(--_muted);
|
|
291
|
+
line-height: 1.4;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
.description ::slotted(*) {
|
|
295
|
+
font-size: var(--_meta-size);
|
|
296
|
+
color: var(--_muted);
|
|
297
|
+
line-height: 1.4;
|
|
298
|
+
margin: 0;
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
/* Empty optional slots collapse to zero so they don't reserve grid rows.
|
|
302
|
+
:state(has-*) is set by JS when slotchange fires with assigned nodes. */
|
|
303
|
+
.change, .sparkline, .description, .icon { display: none; }
|
|
304
|
+
:host(:state(has-change)) .change { display: block; }
|
|
305
|
+
:host(:state(has-sparkline)) .sparkline { display: block; min-block-size: var(--_sparkline-h); overflow: hidden; }
|
|
306
|
+
:host(:state(has-description)) .description { display: block; }
|
|
307
|
+
:host(:state(has-icon)) .icon { display: inline-flex; align-items: center; justify-content: center; }
|
|
308
|
+
|
|
309
|
+
.sparkline ::slotted(*) {
|
|
310
|
+
display: block;
|
|
311
|
+
inline-size: 100%;
|
|
312
|
+
block-size: var(--_sparkline-h);
|
|
313
|
+
max-block-size: var(--_sparkline-h);
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
/* icon region \u2014 accent color from tone */
|
|
317
|
+
.icon ::slotted(*) {
|
|
318
|
+
color: var(--_accent);
|
|
319
|
+
--icon-color: var(--_accent);
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
/* \u2500\u2500 Trend coloring (drives change row) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
323
|
+
:host(:state(trend-up)) .change ::slotted(*) { color: var(--_trend-up); }
|
|
324
|
+
:host(:state(trend-down)) .change ::slotted(*) { color: var(--_trend-down); }
|
|
325
|
+
:host(:state(trend-flat)) .change ::slotted(*) { color: var(--_trend-flat); }
|
|
326
|
+
|
|
327
|
+
/* \u2500\u2500 Interactive (wrapped in <a>) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
328
|
+
:host(:state(interactive)) {
|
|
329
|
+
cursor: pointer;
|
|
330
|
+
transition: transform var(--_duration) var(--_ease),
|
|
331
|
+
box-shadow var(--_duration) var(--_ease),
|
|
332
|
+
border-color var(--_duration) var(--_ease);
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
/* Lift on hover of the wrapping anchor. We can't reach the anchor from
|
|
336
|
+
shadow CSS, so consumers should use the :has() partner rule in their
|
|
337
|
+
light-DOM stylesheet (documented in the spec). The transition above
|
|
338
|
+
still applies to any state changes the consumer drives. */
|
|
339
|
+
|
|
340
|
+
/* \u2500\u2500 Loading skeleton \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
341
|
+
:host(:state(loading)) .value,
|
|
342
|
+
:host(:state(loading)) .sparkline,
|
|
343
|
+
:host(:state(loading)) .change {
|
|
344
|
+
background: linear-gradient(
|
|
345
|
+
90deg,
|
|
346
|
+
color-mix(in oklch, var(--_muted) 12%, transparent),
|
|
347
|
+
color-mix(in oklch, var(--_muted) 24%, transparent),
|
|
348
|
+
color-mix(in oklch, var(--_muted) 12%, transparent)
|
|
349
|
+
);
|
|
350
|
+
background-size: 200% 100%;
|
|
351
|
+
border-radius: var(--radius-s, 0.25rem);
|
|
352
|
+
color: transparent;
|
|
353
|
+
animation: score-card-shimmer 1.4s var(--_ease) infinite;
|
|
354
|
+
}
|
|
355
|
+
:host(:state(loading)) .value ::slotted(*),
|
|
356
|
+
:host(:state(loading)) .change ::slotted(*),
|
|
357
|
+
:host(:state(loading)) .sparkline ::slotted(*) {
|
|
358
|
+
visibility: hidden;
|
|
359
|
+
}
|
|
360
|
+
:host(:state(loading)) .value { min-block-size: var(--_value-size); }
|
|
361
|
+
:host(:state(loading)) .change { min-block-size: 1.4em; }
|
|
362
|
+
|
|
363
|
+
@keyframes score-card-shimmer {
|
|
364
|
+
from { background-position: 200% 0; }
|
|
365
|
+
to { background-position: -200% 0; }
|
|
366
|
+
}
|
|
367
|
+
@media (prefers-reduced-motion: reduce) {
|
|
368
|
+
:host(:state(loading)) .value,
|
|
369
|
+
:host(:state(loading)) .sparkline,
|
|
370
|
+
:host(:state(loading)) .change {
|
|
371
|
+
animation: none;
|
|
372
|
+
background: color-mix(in oklch, var(--_muted) 18%, transparent);
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
`;var Ih=new Set(["up","down","flat"]),go=["change","sparkline","description","icon"],qh=`
|
|
376
|
+
<style>${mo}</style>
|
|
377
|
+
<div class="card" part="card">
|
|
378
|
+
<span class="title" part="title"><slot name="title"></slot></span>
|
|
379
|
+
<span class="value" part="value"><slot name="value"><slot></slot></slot></span>
|
|
380
|
+
<span class="change" part="change"><slot name="change" data-slot="change"></slot></span>
|
|
381
|
+
<span class="sparkline" part="sparkline"><slot name="sparkline" data-slot="sparkline"></slot></span>
|
|
382
|
+
<span class="description" part="description"><slot name="description" data-slot="description"></slot></span>
|
|
383
|
+
<span class="icon" part="icon"><slot name="icon" data-slot="icon"></slot></span>
|
|
384
|
+
</div>
|
|
385
|
+
`,os=class extends y{static get observedAttributes(){return["trend","loading"]}setup(){if(this.shadowRoot)for(let t of go){let i=this.shadowRoot.querySelector(`slot[name="${t}"]`);this.#e(t,i)}else{let t=this.attachShadow({mode:"open"});t.innerHTML=qh;for(let i of go){let s=t.querySelector(`slot[name="${i}"]`);s?.addEventListener("slotchange",()=>this.#e(i,s)),this.#e(i,s)}}this.#t(),this.#i(),this.#s()}attributeChangedCallback(t){this.isConnected&&(t==="trend"?this.#t():t==="loading"&&this.#i())}#e(t,i){let s=!!i&&i.assignedNodes({flatten:!0}).some(n=>n.nodeType===Node.ELEMENT_NODE||n.nodeType===Node.TEXT_NODE&&n.textContent.trim().length>0);this.setState(`has-${t}`,s)}#t(){let t=(this.getAttribute("trend")||"").toLowerCase();for(let i of Ih)this.setState(`trend-${i}`,i===t)}#i(){this.setState("loading",this.hasAttribute("loading"))}#s(){let t=this.closest("a[href]");this.setState("interactive",!!t)}};b("score-card",os);var Bh=0;function Ie(e,t){return e.matches("content-swap")?t:`data-${t}`}function De(e){let t=e.querySelector(':scope > [data-face="front"]'),i=e.querySelector(':scope > [data-face="back"]');if(!t||!i)return;e.style.viewTransitionName||(e.style.viewTransitionName=`content-swap-${++Bh}`);let s=e.matches("content-swap");s||e.setAttribute("data-swap-init","");let n=[];function r(l,u,d,h){l.addEventListener(u,d,h),n.push(()=>l.removeEventListener(u,d,h))}let a=[...e.querySelectorAll("[data-swap]")].filter(l=>l.parentElement?.closest("content-swap, [data-swap]")===e),o=a.length===0,c=e.querySelector(":scope > [data-swap-toggle]");if(o){if(!c){let l=document.createElement("button");l.type="button",l.setAttribute("data-swap-toggle",""),l.textContent="Show back",e.append(l),c=l}r(c,"click",l=>{l.stopPropagation(),gt(e,l.detail===0?"keyboard":"pointer")}),r(e,"click",l=>{let d=l.target.closest?.(Oh);d&&d!==e&&e.contains(d)||gt(e,"pointer")})}else c&&!c.hasAttribute("data-swap")&&c.remove(),c=null,a.forEach(l=>{r(l,"click",u=>{u.stopPropagation(),gt(e,"pointer")}),r(l,"keydown",u=>{(u.key==="Enter"||u.key===" ")&&(u.preventDefault(),gt(e,"keyboard"))})});if(e.matches('[data-gesture="flick"], [data-gesture="swipe"]')&&(r(e,"swipe-left",()=>gt(e,"pointer")),r(e,"swipe-right",()=>gt(e,"pointer"))),!s){let l=new MutationObserver(()=>$e(e,t,i));l.observe(e,{attributes:!0,attributeFilter:["data-swapped"]}),n.push(()=>l.disconnect())}return $e(e,t,i),Fh([t,i]),()=>{for(let l of n)l();n.length=0}}var Oh='a[href], button, input, select, textarea, label, summary, [contenteditable=""], [contenteditable="true"], [tabindex]';function Fh(e){let t=e.map(i=>i.style.transition);for(let i of e)i.style.transition="none";for(let i of e)getComputedStyle(i).transform;e.forEach((i,s)=>{i.style.transition=t[s]})}function $e(e,t,i){let s=e.hasAttribute(Ie(e,"swapped"));t.inert=s,i.inert=!s,e.querySelector(":scope > [data-swap-toggle]")?.setAttribute("aria-pressed",String(s))}function vo(e){return{front:e.querySelector(':scope > [data-face="front"]'),back:e.querySelector(':scope > [data-face="back"]')}}function Kt(e,t,i="api"){let{front:s,back:n}=vo(e);if(!s||!n)return;let r=Ie(e,"swapped");if(t&&e.hasAttribute(r)||!t&&!e.hasAttribute(r))return;let a=document.activeElement,o=()=>{t?e.setAttribute(r,""):e.removeAttribute(r),$e(e,s,n),Ph(e,i);let u=t?n:s,d=t?s:n,h=u.querySelector("[autofocus]");h?h.focus():i==="keyboard"&&d.contains(a)&&Rh(u)},c=u=>{let d=e;typeof d.setState=="function"&&d.setState("transition-running",u)};c(!0);let l=Z(o);l&&l.finished&&typeof l.finished.finally=="function"?l.finished.finally(()=>c(!1)):c(!1)}function gt(e,t="api"){Kt(e,!e.hasAttribute(Ie(e,"swapped")),t)}function Ph(e,t="internal"){e.dispatchEvent(new CustomEvent("content-swap:swap",{detail:{swapped:e.hasAttribute(Ie(e,"swapped")),source:t},bubbles:!0}))}function Rh(e){let t=e.querySelector("[data-swap], button, a, input, select, textarea");t&&t.focus()}var cs=class extends y{static observedAttributes=["swapped"];#e=null;attributeChangedCallback(){if(!this.isConnected)return;let{front:t,back:i}=vo(this);t&&i&&$e(this,t,i)}setup(){this.#e=De(this)??null}teardown(){this.#e?.(),this.#e=null}flip(){Kt(this,!0)}unflip(){Kt(this,!1)}toggle(){gt(this)}get flipped(){return this.hasAttribute("swapped")}set flipped(t){Kt(this,!!t)}get swapped(){return this.hasAttribute("swapped")}set swapped(t){Kt(this,!!t)}};b("content-swap",cs);function bo(){document.querySelectorAll("[data-swap]:not(content-swap):not([data-swap-init])").forEach(e=>{e.querySelector(":scope > [data-face]")&&De(e)})}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",bo):bo();var yo=new MutationObserver(e=>{for(let t of e)for(let i of t.addedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i;s.hasAttribute("data-swap")&&!s.matches("content-swap")&&!s.hasAttribute("data-swap-init")&&s.querySelector(":scope > [data-face]")&&De(s),s.querySelectorAll("[data-swap]:not(content-swap):not([data-swap-init])").forEach(n=>{n.querySelector(":scope > [data-face]")&&De(n)})}});document.body?yo.observe(document.body,{childList:!0,subtree:!0}):document.addEventListener("DOMContentLoaded",()=>{yo.observe(document.body,{childList:!0,subtree:!0})});var ls=class extends y{#e=null;#t=!1;#i=null;setup(){this.hasAttribute("role")||this.setAttribute("role","navigation"),this.#n("pathname"),this.listen(window,"popstate",this.#r)}get items(){return this.#e?this.#e.map(t=>({...t})):Array.from(this.#s()).map(t=>({href:t.getAttribute("href")||"",label:t.textContent?.trim()||""}))}set items(t){if(!Array.isArray(t))return;let i=t.map(s=>({...s}));this.#e&&this.#p(this.#e,i)||(this.#e=i,this.#l(i),this.#n(this.#t?"property":"pathname"),this.dispatchEvent(new CustomEvent("nav-bar:items-changed",{detail:{items:this.items,source:"property"},bubbles:!0,composed:!0})))}get current(){if(this.#t)return this.#i;for(let t of this.#s())if(t.getAttribute("aria-current")==="page")return t.getAttribute("data-route")||t.getAttribute("href")||null;return null}set current(t){let i=this.current,s=t==null?null:String(t);this.#t=!0,this.#i=s,this.#o(s),i!==s&&this.dispatchEvent(new CustomEvent("nav-bar:current-changed",{detail:{current:s,previous:i,source:"property"},bubbles:!0,composed:!0}))}releaseCurrent(){this.#t&&(this.#t=!1,this.#i=null,this.#n("pathname"))}refresh(){this.#t||this.#n("pathname")}#s(){let t=this.querySelectorAll("a[data-nav-link]");return t.length>0?t:this.querySelectorAll(":scope > a")}#r=()=>{this.#t||this.#n("popstate")};#n(t){let i=this.current,s=this.#a();this.#o(s),i!==s&&this.dispatchEvent(new CustomEvent("nav-bar:current-changed",{detail:{current:s,previous:i,source:t},bubbles:!0,composed:!0}))}#a(){let t=window.location.pathname,i=Array.from(this.#s());if(i.length===0)return null;let s=this.getAttribute("data-match")==="exact",n=null,r=null,a=-1;for(let c of i){let l=c.getAttribute("href");if(!l||/^[a-z]+:/i.test(l)||l.startsWith("//"))continue;let u=l.split("?")[0].split("#")[0];if(u===t&&n==null){n=c;continue}!s&&u!=="/"&&(t===u||t.startsWith(u.replace(/\/$/,"")+"/"))&&u.length>a&&(r=c,a=u.length)}let o=n||r;return o?o.getAttribute("data-route")||o.getAttribute("href"):null}#o(t){let i=this.#s();for(let s of i){let n=s.getAttribute("data-route")||s.getAttribute("href");t!=null&&n===t?s.setAttribute("aria-current","page"):s.removeAttribute("aria-current")}}#l(t){this.#s().forEach(n=>n.remove());let s=document.createDocumentFragment();for(let n of t)s.appendChild(this.#c(n));this.appendChild(s)}#c(t){let i=document.createElement("a");if(i.href=t.href||"#",t.route&&i.setAttribute("data-route",t.route),t.external&&(i.target="_blank",i.rel="noopener noreferrer"),t.icon){let s=document.createElement("icon-wc");s.setAttribute("name",String(t.icon)),s.setAttribute("size","sm"),i.appendChild(s)}if(i.appendChild(document.createTextNode(t.label||"")),t.external){let s=document.createElement("span");s.className="sr-only",s.textContent=" (opens in new tab)",i.appendChild(s)}if(t.badge!=null){let s=document.createElement("span");s.className="badge",s.textContent=String(t.badge),i.appendChild(s)}return i}#p(t,i){if(t.length!==i.length)return!1;for(let s=0;s<t.length;s++){let n=Object.keys(t[s]).sort(),r=Object.keys(i[s]).sort();if(n.length!==r.length)return!1;for(let a=0;a<n.length;a++)if(n[a]!==r[a]||t[s][n[a]]!==i[s][r[a]])return!1}return!0}};b("nav-bar",ls);var Hh=0,ps=class extends y{#e;#t=[];#i;#s;#r;#n;#a;#o;#l=null;#c=0;#p=0;#m=!1;#h=!1;#d=!1;#f=null;#u=!1;#g=!1;#b=!1;#k=!1;#A=new WeakSet;get currentIndex(){return this.#c}get slideCount(){return this.#t.length}get playing(){return this.#l!==null}setup(){let t=[...this.children];if(t.length===0)return!1;this.#h=window.matchMedia("(prefers-reduced-motion: reduce)").matches||document.documentElement.hasAttribute("data-motion-reduced"),this.#d=this.hasAttribute("transition")&&!!document.startViewTransition,this.hasAttribute("transition")&&!this.#d&&this.removeAttribute("transition"),this.setAttribute("role","region"),this.setAttribute("aria-roledescription","carousel"),!this.hasAttribute("aria-label")&&!this.hasAttribute("aria-labelledby")&&this.setAttribute("aria-label","Carousel"),this.#e=document.createElement("div"),this.#e.className="carousel-track",this.#e.setAttribute("tabindex","0");let i=this.getAttribute("item-width");if(i&&i!=="auto"&&i!=="full"&&CSS.supports("inline-size",i)&&this.#e.style.setProperty("--_item-width",i),t.forEach((a,o)=>{a.setAttribute("role","group"),a.setAttribute("aria-roledescription","slide"),a.hasAttribute("aria-label")||(a.setAttribute("aria-label",`${o+1} of ${t.length}`),this.#A.add(a)),this.#e.appendChild(a)}),this.#t=[...this.#e.children],this.hasAttribute("autoplay")&&!this.#h&&this.#y(),this.#s=document.createElement("button"),this.#s.className="carousel-prev",this.#s.setAttribute("aria-label","Previous slide"),this.#s.innerHTML='<icon-wc name="chevron-left" size="sm"></icon-wc>',this.#r=document.createElement("button"),this.#r.className="carousel-next",this.#r.setAttribute("aria-label","Next slide"),this.#r.innerHTML='<icon-wc name="chevron-right" size="sm"></icon-wc>',this.getAttribute("indicators")!=="false"&&(this.#n=document.createElement("div"),this.#n.className="carousel-indicators",this.#n.setAttribute("role","group"),this.#n.setAttribute("aria-label","Slide indicators"),this.#t.forEach((a,o)=>{let c=document.createElement("button");c.className="carousel-dot",c.setAttribute("aria-label",`Go to slide ${o+1}`),c.setAttribute("aria-current",o===0?"true":"false"),this.listen(c,"click",()=>this.goTo(o)),this.#n.appendChild(c)})),this.#a=document.createElement("div"),this.#a.className="carousel-live",this.#a.setAttribute("aria-live","polite"),this.#a.setAttribute("aria-atomic","true"),this.#i&&this.appendChild(this.#i),this.appendChild(this.#s),this.appendChild(this.#e),this.appendChild(this.#r),this.#n&&this.appendChild(this.#n),this.appendChild(this.#a),this.listen(this.#s,"click",()=>this.prev()),this.listen(this.#r,"click",()=>this.next()),this.listen(this.#e,"keydown",this.#L),this.listen(this,"mouseenter",()=>{this.#b=!0,this.#v()}),this.listen(this,"mouseleave",()=>{this.#b=!1,this.#v()}),this.listen(this,"touchstart",()=>{this.#b=!0,this.#v()},{passive:!0}),this.listen(this,"focusin",()=>{this.#k=!0,this.#v()}),this.listen(this,"focusout",a=>{this.contains(a.relatedTarget)||(this.#k=!1,this.#v())}),this.#d){let a=++Hh,o=this.getAttribute("transition")||"fade",c=o==="slide"?"vt-carousel-slide":o==="scale"?"vt-carousel-scale":"vt-carousel";this.#e.style.viewTransitionName=`carousel-${a}`,this.#e.style.viewTransitionClass=c}if(this.#d){let a=this.#e;Promise.resolve().then(()=>(hs(),ds)).then(({addSwipeListener:o})=>{!this.isConnected||this.#e!==a||(this.#f=o(a,{threshold:40}),this.listen(a,"swipe-left",()=>this.#N()?this.prev():this.next()),this.listen(a,"swipe-right",()=>this.#N()?this.next():this.prev()))})}this.#d||(this.#o=new IntersectionObserver(this.#D,{root:this.#e,threshold:.5}),this.#t.forEach(a=>this.#o.observe(a)),"onscrollend"in window&&this.listen(this.#e,"scrollend",()=>{this.#m=!1,this.#O()}));let r=this.#B()??(Number(this.getAttribute("start"))||0);if(this.#d){let a=r>0&&r<this.#t.length?r:0;this.#t.forEach((o,c)=>{o.hidden=c!==a}),this.#_(a)}else r>0&&r<this.#t.length&&this.goTo(r,!1);return this.#F(),this.#b=this.#k=!1,this.#u=this.hasAttribute("autoplay")&&!this.#h&&!this.#g,this.#v(),!0}teardown(){this.#u=!1,this.#I(),this.#o&&(this.#o.disconnect(),this.#o=null),this.#f&&(this.#f(),this.#f=null),this.#e?.parentElement===this&&[...this.#e.children].forEach(t=>this.appendChild(t)),this.#t.forEach(t=>{this.#A.has(t)&&t.removeAttribute("aria-label")}),this.#e?.remove(),this.#i?.remove(),this.#s?.remove(),this.#r?.remove(),this.#n?.remove(),this.#a?.remove(),this.#e=this.#i=this.#s=this.#r=this.#n=this.#a=null,this.#t=[],this.#d=!1,this.#c=0,this.#p=0,this.#m=!1}get slides(){return this.#t.map((t,i)=>({id:t.id||void 0,html:t.innerHTML,label:t.getAttribute("aria-label")||`${i+1} of ${this.#t.length}`}))}set slides(t){let i=Array.isArray(t)?t:[];for(;this.firstChild;)this.firstChild.remove();for(let s of i){let n=document.createElement("div");s.id&&(n.id=s.id),s.label&&n.setAttribute("aria-label",s.label),n.innerHTML=s.html||"",this.appendChild(n)}this._reinit(),this.dispatchEvent(new CustomEvent("carousel-wc:slides-changed",{detail:{slides:i,source:"property"},bubbles:!0}))}next(){let t=this.hasAttribute("loop");this.#c<this.#t.length-1?this.goTo(this.#c+1):t&&this.goTo(0)}prev(){let t=this.hasAttribute("loop");this.#c>0?this.goTo(this.#c-1):t&&this.goTo(this.#t.length-1)}goTo(t,i=!0){if(!(t<0||t>=this.#t.length)){if(this.#d)if(i&&t!==this.#c){let s=t>this.#c?"forward":"backward";document.documentElement.dataset.vtDirection=s,Z(()=>{this.#w(t)}).finished?.then(()=>{delete document.documentElement.dataset.vtDirection})}else this.#w(t);else{let s=this.#t[t].getBoundingClientRect(),n=this.#e.getBoundingClientRect(),r=this.#N()?s.right-n.right:s.left-n.left,a=i&&!this.#h?"smooth":"instant";this.#e.scrollTo({left:this.#e.scrollLeft+r,behavior:a})}this.#_(t)}}#w(t){this.#t.forEach((i,s)=>{i.hidden=s!==t})}play(){this.#h||!this.#e||(this.#g=!1,this.#u=!0,this.#b=this.#k=!1,this.#i||(this.#y(),this.insertBefore(this.#i,this.firstChild)),this.#v())}pause(){this.#g=!0,this.#u=!1,this.#v()}#y(){let t=document.createElement("button");t.type="button",t.className="carousel-rotate",this.listen(t,"click",()=>{this.#u?this.pause():this.play()}),this.#i=t,this.#E()}#E(){let t=this.#i;if(!t)return;let i=this.#u?"Pause automatic slide show":"Start automatic slide show";t.getAttribute("aria-label")!==i&&(t.setAttribute("aria-label",i),t.innerHTML=`<icon-wc name="${this.#u?"pause":"play"}" size="sm"></icon-wc>`)}#v(){this.#u&&!this.#b&&!this.#k&&!this.#h&&this.isConnected&&!!this.#e?this.#C():this.#I(),this.#E()}#C(){if(this.#l)return;let t=Number(this.getAttribute("autoplay-delay"))||5e3;this.#l=setInterval(()=>this.next(),t),this.#a?.setAttribute("aria-live","off"),this.dispatchEvent(new CustomEvent("carousel-wc:play",{bubbles:!0}))}#I(){this.#a?.setAttribute("aria-live","polite"),this.#l&&(clearInterval(this.#l),this.#l=null,this.dispatchEvent(new CustomEvent("carousel-wc:pause",{bubbles:!0})))}#N(){return getComputedStyle(this).direction==="rtl"}reset(){let t=Number(this.getAttribute("start"))||0;this.goTo(t,!1),this.#S()}#_(t){this.#c=t,this.#F(),this.#$(),this.#a&&(this.#a.textContent=`Slide ${t+1} of ${this.#t.length}`),!this.#m&&(this.#O(),!this.#d&&"onscrollend"in window&&(this.#m=!0))}#O(){this.#c!==this.#p&&(this.#p=this.#c,this.dispatchEvent(new CustomEvent("carousel-wc:change",{detail:{index:this.#c,slide:this.#t[this.#c]},bubbles:!0})))}#F(){let t=this.hasAttribute("loop"),i=this.#c===0,s=this.#c===this.#t.length-1;if(this.#s&&(this.#s.disabled=!t&&i),this.#r&&(this.#r.disabled=!t&&s),this.#n){let n=this.#n.children;for(let r=0;r<n.length;r++){let a=r===this.#c;n[r].setAttribute("aria-current",a?"true":"false"),a?n[r].setAttribute("data-active",""):n[r].removeAttribute("data-active")}}}#D=t=>{for(let i of t)if(i.isIntersecting){let s=this.#t.indexOf(i.target);s!==-1&&s!==this.#c&&this.#_(s)}};#L=t=>{let i=(t.key==="ArrowLeft"||t.key==="ArrowRight")&&this.#N();switch(t.key){case"ArrowLeft":t.preventDefault(),i?this.next():this.prev();break;case"ArrowRight":t.preventDefault(),i?this.prev():this.next();break;case"Home":t.preventDefault(),this.goTo(0);break;case"End":t.preventDefault(),this.goTo(this.#t.length-1);break}};#B(){let t=this.getAttribute("persist");if(!t)return null;try{let i=localStorage.getItem(`carousel:${t}`);return i!==null?Number(i):null}catch{return null}}#$(){let t=this.getAttribute("persist");if(t)try{localStorage.setItem(`carousel:${t}`,String(this.#c))}catch{}}#S(){let t=this.getAttribute("persist");if(t)try{localStorage.removeItem(`carousel:${t}`)}catch{}}};b("carousel-wc",ps);var zh=0,fs=class extends y{static formAssociated=!0;#e;#t;#i;#s;#r=[];#n=[];#a=-1;#o=!1;#l="";#c="";#p;#m=!1;#h;#d;#f=[];constructor(){super(),this.#e=this.attachInternals(),this._adoptInternals(this.#e)}get#u(){return this.hasAttribute("multiple")}setup(){let t=this.querySelector(":scope > input")||this.querySelector(":scope > .tags-input-area > input");if(!t)return!1;this.#t=t;let i=this.#t.getAttribute("name");i&&(this.hasAttribute("name")||this.setAttribute("name",i),this.#t.removeAttribute("name"));let s=this.querySelector("ul, ol");if(!s)return!1;if(this.#i=s,this.#u){let c=this.querySelector(":scope > .tags-input-area");if(!c){c=document.createElement("div"),c.className="tags-input-area";let u=this.querySelector(":scope > pop-over[data-combobox-host]")||this.#i;this.insertBefore(c,u)}this.#h=c,this.#t.parentNode!==this.#h&&this.#h.appendChild(this.#t);let l=this.querySelector(":scope > [data-combobox-live]");l||(l=document.createElement("div"),l.setAttribute("aria-live","polite"),l.setAttribute("aria-atomic","true"),l.setAttribute("data-combobox-live",""),l.className="visually-hidden",this.appendChild(l)),this.#d=l}let n=this.getAttribute("placeholder");n&&!this.#t.getAttribute("placeholder")&&this.#t.setAttribute("placeholder",n);let r=`cb${++zh}`;this.#i.id||(this.#i.id=`combobox-listbox-${r}`),this.#t.setAttribute("role","combobox"),this.#t.setAttribute("aria-expanded","false"),this.#t.setAttribute("aria-autocomplete","list"),this.#t.setAttribute("aria-controls",this.#i.id),this.#t.setAttribute("autocomplete","off"),this.#i.setAttribute("role","listbox"),this.#u&&this.#i.setAttribute("aria-multiselectable","true");let a=this.#u?this.#h:this.#t;a.id||(a.id=`combobox-anchor-${r}`);let o=this.querySelector(":scope > pop-over[data-combobox-host]");if(o?this.#s=o:(this.#s=document.createElement("pop-over"),this.#s.setAttribute("data-combobox-host",""),this.#s.id=`combobox-pop-${r}`,this.#s.dataset.mode="manual",this.#s.dataset.position="bottom-start",this.#s.dataset.anchor=a.id,this.#s.appendChild(this.#i),this.appendChild(this.#s)),this.#s.dataset.anchor=a.id,this.#i.parentElement!==this.#s&&this.#s.appendChild(this.#i),this.#k(),!this.#u){let c=this.getAttribute("value");c&&this.#S(c,!1),this.#p===void 0&&(this.#p=this.#l)}return this.listen(this.#t,"input",this.#v),this.listen(this.#t,"keydown",this.#C),this.listen(this.#t,"focus",this.#I),this.listen(this.#t,"click",this.#N),this.listen(this.#i,"click",this.#_),this.listen(this.#i,"pointerdown",this.#O),this.listen(document,"click",this.#F),this.listen(this.#s,"pop-over:hide",this.#j),this.listen(this,"invalid",this.#g),this.#M(),this.#x(),this.#q(),this.#b(this.matches(":disabled")),!0}teardown(){}#g=()=>{this.#t.setAttribute("aria-invalid","true")};formDisabledCallback(t){this.#t&&this.#b(t)}#b(t){this.#m=t,t&&this.#q();let i=this.#y(),s=this.#u&&i>0&&this.#f.length>=i;if(this.#t.disabled=t||s,this.#h)for(let n of this.#h.querySelectorAll(".tag button"))n.disabled=t}#k(){this.#r=Array.from(this.#i.querySelectorAll(":scope > li[data-value]")),this.#r.forEach((t,i)=>{t.setAttribute("role","option"),t.setAttribute("aria-selected","false"),t.id||(t.id=`${this.#i.id}-option-${i}`)}),this.#n=[...this.#r]}#A(t,i){if(this.#f.some(o=>o.value===t))return;let s=this.#y();if(s&&this.#f.length>=s)return;this.#f.push({value:t,label:i});let n=document.createElement("span");n.className="tag",n.dataset.value=t,n.textContent=i+" ";let r=document.createElement("button");r.type="button",r.setAttribute("aria-label",`Remove ${i}`),r.innerHTML="×",r.disabled=this.#m,r.addEventListener("click",o=>{o.stopPropagation(),this.#w(t)}),n.appendChild(r),this.#h.insertBefore(n,this.#t);let a=this.#r.find(o=>o.getAttribute("data-value")===t);a&&a.setAttribute("aria-selected","true"),this.#E(`${i} added`),this.#t.value="",this.#D(""),this.#M(),this.#x(),this.#R(),s&&this.#f.length>=s&&(this.#t.disabled=!0,this.#q())}#w(t){let i=this.#f.findIndex(o=>o.value===t);if(i===-1)return;let s=this.#f.splice(i,1)[0],n=this.#h.querySelector(`.tag[data-value="${CSS.escape(t)}"]`);n&&n.remove();let r=this.#r.find(o=>o.getAttribute("data-value")===t);r&&r.setAttribute("aria-selected","false"),this.#E(`${s.label} removed`),this.#y()&&this.#t.disabled&&(this.#t.disabled=this.#m),this.#D(this.#t.value.trim()),this.#M(),this.#x(),this.#R(),this.#t.focus()}#y(){let t=this.getAttribute("max");return t?parseInt(t,10):0}#E(t){this.#d&&(this.#d.textContent="",requestAnimationFrame(()=>{this.#d.textContent=t}))}#v=()=>{let t=this.#t.value.trim();if(!this.#u&&this.#l){let i=this.#i.querySelector('[aria-selected="true"]');i&&i.setAttribute("aria-selected","false"),this.#l="",this.#c="",this.removeAttribute("value"),this.#M(),this.#x()}this.#D(t),this.#T()};#C=t=>{switch(t.key){case"ArrowDown":t.preventDefault(),this.#o||this.#T(),this.#L(this.#a+1);break;case"ArrowUp":t.preventDefault(),this.#o||this.#T(),this.#L(this.#a-1);break;case"Home":this.#o&&(t.preventDefault(),this.#L(0));break;case"End":this.#o&&(t.preventDefault(),this.#L(this.#n.length-1));break;case"Enter":if(t.preventDefault(),this.#o&&this.#a>=0&&this.#n[this.#a]){let i=this.#n[this.#a];this.#u?this.#A(i.getAttribute("data-value"),i.textContent.trim()):this.#$(i)}else if(this.#u&&this.hasAttribute("custom")&&this.#t.value.trim()){let i=this.#t.value.trim();this.#A(i,i)}break;case"Backspace":if(this.#u&&!this.#t.value&&this.#f.length>0){let i=this.#f[this.#f.length-1];this.#w(i.value)}break;case",":if(this.#u&&this.hasAttribute("custom")&&this.#t.value.trim()){t.preventDefault();let i=this.#t.value.trim();this.#A(i,i)}break;case"Escape":this.#o&&(t.preventDefault(),t.stopPropagation(),this.#q(),this.#t.focus());break;case"Tab":this.#o&&this.#q();break}};#I=()=>{this.#u?(this.#D(this.#t.value.trim()),this.#T()):(this.#t.value||!this.#l)&&(this.#D(this.#t.value.trim()),this.#T())};#N=()=>{this.#o||(this.#D(this.#t.value.trim()),this.#T())};#_=t=>{let i=t.target.closest("li[data-value]");i&&this.#n.includes(i)&&(this.#u?this.#A(i.getAttribute("data-value"),i.textContent.trim()):this.#$(i))};#O=t=>{t.preventDefault()};#F=t=>{this.#o&&!this.contains(t.target)&&this.#q()};#D(t){let i=this.getAttribute("filter")||"contains",s=t.toLowerCase(),n=this.#u?new Set(this.#f.map(r=>r.value)):null;this.#n=[],this.#r.forEach(r=>{let a=r.getAttribute("data-value"),o=r.textContent.trim().toLowerCase();if(n&&n.has(a)){r.hidden=!0;return}let c;t?i==="startsWith"?c=o.startsWith(s):c=o.includes(s):c=!0,r.hidden=!c,c&&this.#n.push(r)}),this.#a=-1,this.#B(),this.setState("no-matches",this.#n.length===0)}#L(t){if(this.#n.length===0)return;t<0&&(t=this.#n.length-1),t>=this.#n.length&&(t=0),this.#a>=0&&this.#n[this.#a]&&this.#n[this.#a].removeAttribute("data-active"),this.#a=t;let i=this.#n[t];i.setAttribute("data-active",""),i.scrollIntoView({block:"nearest"}),this.#t.setAttribute("aria-activedescendant",i.id)}#B(){this.#r.forEach(t=>t.removeAttribute("data-active")),this.#t.removeAttribute("aria-activedescendant")}#$(t,i="internal"){let s=t.getAttribute("data-value")||"",n=t.textContent.trim();if(this.#l===s){this.#t.value=n,this.#q(),this.#t.focus();return}this.#r.forEach(r=>r.setAttribute("aria-selected","false")),t.setAttribute("aria-selected","true"),this.#l=s,this.#c=n,this.#t.value=n,this.setAttribute("value",s),this.#M(),this.#x(),this.#q(),this.#t.focus(),this.dispatchEvent(new CustomEvent("combo-box:change",{bubbles:!0,detail:{value:s,label:n,source:i}}))}#S(t,i=!0,s="api"){let n=this.#r.find(r=>r.getAttribute("data-value")===t);n&&(i?this.#$(n,s):(this.#r.forEach(r=>r.setAttribute("aria-selected","false")),n.setAttribute("aria-selected","true"),this.#l=t,this.#c=n.textContent.trim(),this.#t.value=this.#c,this.setAttribute("value",t)))}#T(){this.#o||this.#m||(this.#o=!0,this.setAttribute("open",""),this.#t.setAttribute("aria-expanded","true"),this.#s?.show(),this.dispatchEvent(new CustomEvent("combo-box:open",{bubbles:!0})))}#q(){this.#o&&(this.#o=!1,this.removeAttribute("open"),this.#t.setAttribute("aria-expanded","false"),this.#a=-1,this.#B(),this.#s?.hide(),this.dispatchEvent(new CustomEvent("combo-box:close",{bubbles:!0})))}#j=()=>{this.#o&&(this.#o=!1,this.removeAttribute("open"),this.#t.setAttribute("aria-expanded","false"),this.#a=-1,this.#B(),this.dispatchEvent(new CustomEvent("combo-box:close",{bubbles:!0})))};#M(){if(this.#u)if(this.#f.length>0){let t=new FormData,i=this.getAttribute("name")||"";for(let s of this.#f)t.append(i,s.value);this.#e.setFormValue(t)}else this.#e.setFormValue(null);else this.#l?this.#e.setFormValue(this.#l,this.#c):this.#e.setFormValue(null)}#x(){this.hasAttribute("required")?this.#u?this.#f.length===0?this.#e.setValidity({valueMissing:!0},"Please select at least one option",this.#t):this.#e.setValidity({}):this.#l?this.#e.setValidity({}):this.#e.setValidity({valueMissing:!0},"Please select an option",this.#t):this.#e.setValidity({}),this.#e.validity.valid&&this.#t.removeAttribute("aria-invalid")}#R(){this.dispatchEvent(new CustomEvent("combo-box:change",{bubbles:!0,detail:{values:this.#f.map(t=>t.value),labels:this.#f.map(t=>t.label),source:"internal"}}))}formResetCallback(){this.#u?(this.#h.querySelectorAll(".tag").forEach(t=>t.remove()),this.#f=[],this.#t.value="",this.#t.disabled=this.#m):(this.#l="",this.#c="",this.#t.value="",this.removeAttribute("value")),this.#r.forEach(t=>{t.setAttribute("aria-selected","false"),t.hidden=!1}),this.#n=[...this.#r],this.#a=-1,this.#B(),this.#q(),this.#t.removeAttribute("aria-invalid"),!this.#u&&this.#p&&this.#S(this.#p,!1),this.#M(),this.#x()}formStateRestoreCallback(t){t&&(this.#u||(this.#S(t,!1),this.#M(),this.#x()))}get value(){return this.#l}set value(t){t?this.#S(t):this.#z()}#z(){this.#r.forEach(t=>t.setAttribute("aria-selected","false")),this.#l="",this.#c="",this.#t&&(this.#t.value=""),this.removeAttribute("value"),this.#M(),this.#x()}get label(){return this.#c}get values(){return this.#f.map(t=>t.value)}get labels(){return this.#f.map(t=>t.label)}static get observedAttributes(){return["value","disabled"]}attributeChangedCallback(t,i,s){if(!this.#t)return;if(t==="disabled"){this.#b(this.matches(":disabled"));return}let n=s??"";t==="value"&&n!==this.#l&&(n?(this.#S(n,!1),this.#M(),this.#x()):this.#z())}};b("combo-box",fs);function Vh(){try{let e=new Intl.DateTimeFormat(void 0,{hour:"numeric"}).resolvedOptions();return e.hourCycle==="h12"||e.hourCycle==="h11"?"12h":"24h"}catch{return"12h"}}function z(e){return String(e).padStart(2,"0")}function Lt(e){if(!e)return null;let t=e.split(":").map(Number);return{h:t[0]||0,m:t[1]||0,s:t[2]||0}}function Xt(e,t,i,s){return s?`${z(e)}:${z(t)}:${z(i)}`:`${z(e)}:${z(t)}`}function Uh(e,t,i,s,n){if(n==="12h"){let r=e>=12?"PM":"AM",a=e%12||12;return s?`${a}:${z(t)}:${z(i)} ${r}`:`${a}:${z(t)} ${r}`}return Xt(e,t,i,s)}function Co(e){let t=e.trim();if(!t)return null;let i=t.match(/\s*(am|pm|a\.m\.|p\.m\.|a|p)\s*$/i),s=null,n=t;i&&(s=i[1].toLowerCase().replace(/\./g,"").startsWith("p")?"PM":"AM",n=t.slice(0,i.index).trim());let r=n.split(/[:.]/);if(r.length<1||r.length>3)return null;let a=Number(r[0]),o=r.length>1?Number(r[1]):0,c=r.length>2?Number(r[2]):0;if(isNaN(a)||isNaN(o)||isNaN(c)||o<0||o>59||c<0||c>59)return null;let l=a;if(s){if(l<1||l>12)return null;s==="AM"?l=l===12?0:l:l=l===12?12:l+12}else if(l<0||l>23)return null;return{h:l,m:o,s:c}}function Wh(e,t,i){return e>i?t:e<t?i:e}var ms=class extends y{static formAssociated=!0;#e;#t;#i;#s;#r;#n;#a=[];#o;#l;#c;#p=0;#m=0;#h=0;#d="AM";#f=null;#u=null;#g=60;#b;#k=0;#A=!1;#w;constructor(){super(),this.#e=this.attachInternals(),this._adoptInternals(this.#e)}setup(){if(this.#t=this.querySelector(':scope > input[type="time"]'),!this.#t)return!1;this.#g=Number(this.#t.getAttribute("step"))||60,this.#c=this.#g<60,this.#f=Lt(this.#t.getAttribute("min")),this.#u=Lt(this.#t.getAttribute("max")),this.#l=this.getAttribute("data-format")||Vh();let t=Lt(this.#t.value);return t&&(this.#p=t.h,this.#m=t.m,this.#h=t.s),this.#b=this.#t.value,this.#l==="12h"&&(this.#d=this.#p>=12?"PM":"AM"),this.#t.setAttribute("tabindex","-1"),this.#t.setAttribute("aria-hidden","true"),this.#t.style.cssText="position:absolute;opacity:0;pointer-events:none;width:1px;height:1px;overflow:hidden;",this.#y(),this.#E(),this.#j(),this.#M(),this.#x(),this.#R(),this.listen(document,"click",this.#_),(this.#t.disabled||this.hasAttribute("disabled"))&&(this.setAttribute("data-disabled",""),this.#i.disabled=!0),!0}#y(){if(this.#s?.parentNode===this)return;this.#s=document.createElement("div"),this.#s.className="time-trigger",this.#i=document.createElement("input"),this.#i.type="text",this.#i.className="time-input",this.#i.setAttribute("role","combobox"),this.#i.setAttribute("aria-haspopup","listbox"),this.#i.setAttribute("aria-expanded","false"),this.#i.setAttribute("autocomplete","off"),this.#i.setAttribute("placeholder","Type a time\u2026"),this.#s.appendChild(this.#i),this.#r=document.createElement("button"),this.#r.type="button",this.#r.className="time-trigger-icon",this.#r.setAttribute("aria-label","Toggle time spinner"),this.#r.setAttribute("tabindex","-1");let t=document.createElement("icon-wc");t.setAttribute("name","clock"),t.setAttribute("size","sm"),t.setAttribute("aria-hidden","true"),this.#r.appendChild(t),this.#s.appendChild(this.#r),this.appendChild(this.#s),this.listen(this.#r,"click",i=>{i.stopPropagation(),this.#A?this.#N():this.#I(),this.#i.focus()}),this.listen(this.#i,"focus",()=>this.#i.select()),this.listen(this.#i,"keydown",this.#O),this.listen(this.#i,"blur",this.#F)}#E(){if(this.#n?.parentNode===this)return;this.#w=`tp-${Math.random().toString(36).slice(2,8)}`,this.#n=document.createElement("div"),this.#n.className="time-panel",this.#n.id=this.#w,this.#n.setAttribute("role","group"),this.#n.setAttribute("aria-label","Time spinners"),this.#i.setAttribute("aria-controls",this.#w);let t=this.#l==="12h"?1:0,i=this.#l==="12h"?12:23,s=this.#v("Hours",t,i,1);this.#n.appendChild(s.el),this.#a.push(s),this.#n.appendChild(this.#C());let n=this.#g>=60?Math.max(1,Math.round(this.#g/60)):1,r=this.#v("Minutes",0,59,n);if(this.#n.appendChild(r.el),this.#a.push(r),this.#c){this.#n.appendChild(this.#C());let a=this.#v("Seconds",0,59,this.#g);this.#n.appendChild(a.el),this.#a.push(a)}this.#l==="12h"&&(this.#o=document.createElement("button"),this.#o.type="button",this.#o.className="period-toggle",this.#o.setAttribute("aria-label","Toggle AM/PM"),this.#o.textContent=this.#d,this.#n.appendChild(this.#o),this.listen(this.#o,"click",()=>{this.#d=this.#d==="AM"?"PM":"AM",this.#o.textContent=this.#d,this.#p=this.#z(this.#P(),this.#d),this.#q()}),this.listen(this.#o,"keydown",a=>{let o=a;o.key==="ArrowLeft"&&(o.preventDefault(),this.#H(this.#a.length-1)),o.key==="Escape"&&(o.preventDefault(),this.#N(),this.#i.focus())})),this.appendChild(this.#n)}#v(t,i,s,n){let r=document.createElement("div");r.className="time-spinner",r.setAttribute("role","spinbutton"),r.setAttribute("aria-label",t),r.setAttribute("aria-valuemin",String(i)),r.setAttribute("aria-valuemax",String(s)),r.setAttribute("tabindex","0");let a=document.createElement("button");a.type="button",a.className="time-inc",a.setAttribute("aria-hidden","true"),a.setAttribute("tabindex","-1"),a.innerHTML="▲";let o=document.createElement("span");o.className="time-value";let c=document.createElement("button");c.type="button",c.className="time-dec",c.setAttribute("aria-hidden","true"),c.setAttribute("tabindex","-1"),c.innerHTML="▼",r.appendChild(a),r.appendChild(o),r.appendChild(c);let l={el:r,valueEl:o,label:t,min:i,max:s,step:n};return this.listen(a,"click",()=>{this.#S(l,n)}),this.listen(c,"click",()=>{this.#S(l,-n)}),this.listen(r,"keydown",u=>{this.#D(u,l)}),this.listen(r,"focus",()=>{this.#k=this.#a.indexOf(l)}),l}#C(){let t=document.createElement("span");return t.className="time-sep",t.setAttribute("aria-hidden","true"),t.textContent=":",t}#I(){this.#A||(this.#A=!0,this.#n.setAttribute("data-open",""),this.#i.setAttribute("aria-expanded","true"))}#N(){this.#A&&(this.#A=!1,this.#n.removeAttribute("data-open"),this.#i.setAttribute("aria-expanded","false"))}#_=t=>{this.#A&&!this.contains(t.target)&&this.#N()};#O=t=>{switch(t.key){case"Enter":{t.preventDefault(),t.stopPropagation();let i=Co(this.#i.value);i&&(this.#p=i.h,this.#m=i.m,this.#h=i.s,this.#l==="12h"&&(this.#d=this.#p>=12?"PM":"AM"),this.#q()),this.#M(),this.#A&&this.#N();return}case"ArrowDown":t.preventDefault(),t.stopPropagation(),this.#A||this.#I(),requestAnimationFrame(()=>this.#H(0));return;case"Escape":t.preventDefault(),t.stopPropagation(),this.#A&&this.#N(),this.#M();return;case"Tab":this.#A&&this.#N();return}};#F=t=>{if(t.relatedTarget&&this.contains(t.relatedTarget))return;let i=this.#i.value.trim();if(i){let s=Co(i);s&&(this.#p=s.h,this.#m=s.m,this.#h=s.s,this.#l==="12h"&&(this.#d=this.#p>=12?"PM":"AM"),this.#x(),this.#R(),this.dispatchEvent(new CustomEvent("time-picker:change",{bubbles:!0,detail:{value:Xt(this.#p,this.#m,this.#h,this.#c),hours:this.#p,minutes:this.#m,seconds:this.#h}})))}this.#M(),this.#A&&this.#N(),this.#t.dispatchEvent(new Event("blur",{bubbles:!0}))};#D=(t,i)=>{let s=this.#a.indexOf(i);switch(t.key){case"ArrowUp":t.preventDefault(),this.#S(i,i.step);break;case"ArrowDown":t.preventDefault(),this.#S(i,-i.step);break;case"ArrowRight":t.preventDefault(),s<this.#a.length-1?this.#H(s+1):this.#o&&this.#o.focus();break;case"ArrowLeft":t.preventDefault(),s>0&&this.#H(s-1);break;case"PageUp":t.preventDefault(),this.#S(i,i.step*(i.label==="Hours"?1:10));break;case"PageDown":t.preventDefault(),this.#S(i,-i.step*(i.label==="Hours"?1:10));break;case"Home":t.preventDefault(),this.#T(i,i.min);break;case"End":t.preventDefault(),this.#T(i,i.max);break;case"Escape":t.preventDefault(),this.#N(),this.#i.focus();break;default:/^\d$/.test(t.key)&&(t.preventDefault(),this.#$(t.key,i))}};#L="";#B=0;#$(t,i){clearTimeout(this.#B),this.#L+=t;let s=Number(this.#L);if(this.#L.length>=2||s*10>i.max){let n=Math.min(Math.max(s,i.min),i.max);this.#T(i,n),this.#L=""}else this.#B=setTimeout(()=>{let n=Number(this.#L),r=Math.min(Math.max(n,i.min),i.max);this.#T(i,r),this.#L=""},800)}#S(t,i){let s;t.label==="Hours"?s=this.#l==="12h"?this.#P():this.#p:t.label==="Minutes"?s=this.#m:s=this.#h;let n=Wh(s+i,t.min,t.max);this.#T(t,n)}#T(t,i){t.label==="Hours"?this.#l==="12h"?this.#p=this.#z(i,this.#d):this.#p=i:t.label==="Minutes"?this.#m=i:this.#h=i,this.#q()}#q(t="internal"){this.#j(),this.#M(),this.#x(),this.#R(),this.dispatchEvent(new CustomEvent("time-picker:change",{bubbles:!0,detail:{value:Xt(this.#p,this.#m,this.#h,this.#c),hours:this.#p,minutes:this.#m,seconds:this.#h,source:t}}))}#j(){let t=this.#l==="12h"?this.#P():this.#p;this.#a[0].valueEl.textContent=z(t),this.#a[0].el.setAttribute("aria-valuenow",String(t)),this.#a[0].el.setAttribute("aria-valuetext",this.#l==="12h"?`${t} ${this.#d}`:String(t)),this.#a[1].valueEl.textContent=z(this.#m),this.#a[1].el.setAttribute("aria-valuenow",String(this.#m)),this.#c&&this.#a[2]&&(this.#a[2].valueEl.textContent=z(this.#h),this.#a[2].el.setAttribute("aria-valuenow",String(this.#h))),this.#o&&(this.#o.textContent=this.#d)}#M(){this.#p!==void 0&&(this.#i.value=Uh(this.#p,this.#m,this.#h,this.#c,this.#l))}#x(){let t=Xt(this.#p,this.#m,this.#h,this.#c);this.#e.setFormValue(t),this.#t.value=t,this.#t.dispatchEvent(new Event("input",{bubbles:!0}))}#R(){if((this.hasAttribute("required")||this.#t.hasAttribute("required"))&&!this.#t.value){this.#e.setValidity({valueMissing:!0},"Please select a time",this.#i||this);return}this.#e.setValidity({})}#z(t,i){return i==="AM"?t===12?0:t:t===12?12:t+12}#P(){if(this.#l==="24h")return this.#p;let t=this.#p%12;return t===0?12:t}#H(t){this.#a[t]?.el.focus()}formResetCallback(){let t=Lt(this.#b);t?(this.#p=t.h,this.#m=t.m,this.#h=t.s):(this.#p=0,this.#m=0,this.#h=0),this.#l==="12h"&&(this.#d=this.#p>=12?"PM":"AM"),this.#q()}formStateRestoreCallback(t){if(!t)return;let i=Lt(t);i&&(this.#p=i.h,this.#m=i.m,this.#h=i.s,this.#l==="12h"&&(this.#d=this.#p>=12?"PM":"AM"),this.#q())}get value(){return Xt(this.#p,this.#m,this.#h,this.#c)}set value(t){let i=Lt(t);i&&(i.h===this.#p&&i.m===this.#m&&i.s===this.#h||(this.#p=i.h,this.#m=i.m,this.#h=i.s,this.#l==="12h"&&(this.#d=this.#p>=12?"PM":"AM"),this.#q("api")))}};b("time-picker",ms);var Be="popover"in HTMLElement.prototype;var Gh=["Su","Mo","Tu","We","Th","Fr","Sa"],Yh=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ys=["january","february","march","april","may","june","july","august","september","october","november","december"];function j(e){let t=e.getFullYear(),i=String(e.getMonth()+1).padStart(2,"0"),s=String(e.getDate()).padStart(2,"0");return`${t}-${i}-${s}`}function V(e){if(!e)return null;let[t,i,s]=e.split("-").map(Number);return new Date(t,i-1,s)}function Oe(e,t){return new Date(e,t+1,0).getDate()}function Kh(){try{let e=new Intl.Locale(navigator.language);if(e.weekInfo)return e.weekInfo.firstDay%7}catch{}return 0}function Xh(e){try{return new Intl.DateTimeFormat(void 0,{year:"numeric",month:"long",day:"numeric"}).format(e)}catch{return j(e)}}function Fe(e,t){return e&&t&&e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}function Zh(){let e=new Map;ys.forEach((t,i)=>{e.set(t,i),e.set(t.slice(0,3),i)});try{for(let t=0;t<12;t++){let i=new Intl.DateTimeFormat(void 0,{month:"long"}).format(new Date(2e3,t,1)).toLowerCase(),s=new Intl.DateTimeFormat(void 0,{month:"short"}).format(new Date(2e3,t,1)).toLowerCase().replace(".","");e.set(i,t),e.set(s,t)}}catch{}return e}var gs=Zh();function bs(e){let t=e.trim();if(!t)return{date:null,partial:null};if(/^\d{4}-\d{2}-\d{2}$/.test(t)){let a=V(t);return a&&!isNaN(a.getTime())?{date:a,partial:null}:{date:null,partial:null}}if(/^\d{4}\/\d{2}\/\d{2}$/.test(t)){let a=V(t.replace(/\//g,"-"));return a&&!isNaN(a.getTime())?{date:a,partial:null}:{date:null,partial:null}}let i=/^([a-z\u00C0-\u024F]+)\s+(\d{1,2}),?\s+(\d{4})$/i,s=t.match(i);if(s){let a=gs.get(s[1].toLowerCase());if(a!==void 0){let o=new Date(Number(s[3]),a,Number(s[2]));if(!isNaN(o.getTime()))return{date:o,partial:null}}}let n=/^(\d{1,2})\s+([a-z\u00C0-\u024F]+)\s+(\d{4})$/i;if(s=t.match(n),s){let a=gs.get(s[2].toLowerCase());if(a!==void 0){let o=new Date(Number(s[3]),a,Number(s[1]));if(!isNaN(o.getTime()))return{date:o,partial:null}}}let r=/^([a-z\u00C0-\u024F]+)\s+(\d{4})$/i;if(s=t.match(r),s){let a=gs.get(s[1].toLowerCase());if(a!==void 0)return{date:null,partial:{year:Number(s[2]),month:a}}}return{date:null,partial:null}}var vs=class extends y{static formAssociated=!0;#e;#t;#i;#s;#r;#n;#a;#o;#l;#c;#p=!1;#m=!1;#h=null;#d=null;#f=new Date().getFullYear();#u=new Date().getMonth();#g=null;#b=null;#k=new Map;#A=new Map;#w=null;#y=0;constructor(){super(),this.#e=this.attachInternals(),this._adoptInternals(this.#e)}setup(){if(this.#t=this.querySelector(':scope > input[type="date"]'),!this.#t)return!1;this.#g=V(this.#t.getAttribute("min")),this.#b=V(this.#t.getAttribute("max")),this.#y=Kh();let t=this.getAttribute("data-disabled-dates");t&&t.split(",").forEach(n=>{let[r,a]=n.trim().split(":");this.#k.set(r,a||"")});let i=this.getAttribute("data-highlight-dates");i&&i.split(",").forEach(n=>{let[r,a]=n.trim().split(":");this.#A.set(r,a||"")}),this.#h=V(this.#t.value),this.#w=this.#t.value;let s=new Date;return this.#b&&s>this.#b&&(s=this.#b),this.#g&&s<this.#g&&(s=this.#g),this.#f=this.#h?this.#h.getFullYear():s.getFullYear(),this.#u=this.#h?this.#h.getMonth():s.getMonth(),this.#d=this.#h||s,this.#t.setAttribute("tabindex","-1"),this.#t.setAttribute("aria-hidden","true"),this.#t.style.cssText="position:absolute;opacity:0;pointer-events:none;width:1px;height:1px;overflow:hidden;",this.#E(),this.#v(),this.#L(),this.#P(),this.#H(),this.#m=Be,this.#m&&this.#n.setAttribute("popover","manual"),this.listen(document,"click",this.#x),(this.#t.disabled||this.hasAttribute("disabled"))&&(this.setAttribute("data-disabled",""),this.#i.disabled=!0),!0}teardown(){window.removeEventListener("scroll",this.#T,{capture:!0}),window.removeEventListener("resize",this.#T)}#E(){this.#r=document.createElement("div"),this.#r.className="date-trigger",this.#i=document.createElement("input"),this.#i.type="text",this.#i.className="date-input",this.#i.setAttribute("role","combobox"),this.#i.setAttribute("aria-haspopup","dialog"),this.#i.setAttribute("aria-expanded","false"),this.#i.setAttribute("autocomplete","off"),this.#i.setAttribute("placeholder","Type a date\u2026"),this.#r.appendChild(this.#i),this.#s=document.createElement("button"),this.#s.type="button",this.#s.className="date-trigger-icon",this.#s.setAttribute("aria-label","Toggle calendar"),this.#s.setAttribute("tabindex","-1");let t=document.createElement("icon-wc");t.setAttribute("name","calendar"),t.setAttribute("size","sm"),t.setAttribute("aria-hidden","true"),this.#s.appendChild(t),this.#r.appendChild(this.#s),this.appendChild(this.#r),this.listen(this.#s,"click",i=>{i.stopPropagation(),this.#p?this.#$():this.#B(),this.#i.focus()}),this.listen(this.#i,"focus",()=>this.#i.select()),this.listen(this.#i,"input",this.#q),this.listen(this.#i,"keydown",this.#j),this.listen(this.#i,"blur",this.#M)}#v(){this.#a=`dp-${Math.random().toString(36).slice(2,8)}`,this.#n=document.createElement("div"),this.#n.className="calendar",this.#n.id=this.#a,this.#n.setAttribute("role","dialog"),this.#n.setAttribute("aria-modal","false"),this.#n.setAttribute("aria-label","Choose date"),this.#n.hidden=!0,this.#i.setAttribute("aria-controls",this.#a);let t=document.createElement("div");t.className="calendar-header";let i=document.createElement("button");i.type="button",i.className="calendar-nav",i.setAttribute("aria-label","Previous month");let s=document.createElement("icon-wc");s.setAttribute("name","chevron-left"),s.setAttribute("size","sm"),s.setAttribute("aria-hidden","true"),i.appendChild(s);let n=document.createElement("span");n.className="calendar-title",n.id=`${this.#a}-title`,n.setAttribute("aria-live","polite"),this.#l=document.createElement("span"),this.#l.className="calendar-month",this.#c=document.createElement("select"),this.#c.className="calendar-year",this.#c.setAttribute("aria-label","Year"),this.#_(),n.appendChild(this.#l),n.appendChild(this.#c);let r=document.createElement("button");r.type="button",r.className="calendar-nav",r.setAttribute("aria-label","Next month");let a=document.createElement("icon-wc");a.setAttribute("name","chevron-right"),a.setAttribute("size","sm"),a.setAttribute("aria-hidden","true"),r.appendChild(a),t.appendChild(i),t.appendChild(n),t.appendChild(r),this.#n.appendChild(t);let o=document.createElement("table");o.setAttribute("role","grid"),o.setAttribute("aria-labelledby",`${this.#a}-title`);let c=document.createElement("thead"),l=document.createElement("tr");for(let u=0;u<7;u++){let d=(this.#y+u)%7,h=document.createElement("th");h.setAttribute("abbr",Yh[d]),h.setAttribute("scope","col"),h.textContent=Gh[d],l.appendChild(h)}c.appendChild(l),o.appendChild(c),this.#o=document.createElement("tbody"),o.appendChild(this.#o),this.#n.appendChild(o),this.appendChild(this.#n),this.#C(),this.listen(i,"click",()=>this.#O(-1)),this.listen(r,"click",()=>this.#O(1)),this.listen(this.#c,"change",()=>{this.#f=Number(this.#c.value);let u=Oe(this.#f,this.#u),d=Math.min(this.#d?.getDate()??1,u);this.#d=new Date(this.#f,this.#u,d),this.#C()}),this.listen(this.#o,"click",this.#R),this.listen(this.#n,"keydown",this.#z)}#C(){try{this.#l.textContent=new Intl.DateTimeFormat(void 0,{month:"long"}).format(new Date(this.#f,this.#u,1))}catch{this.#l.textContent=ys[this.#u].charAt(0).toUpperCase()+ys[this.#u].slice(1)}this.#c.querySelector(`option[value="${this.#f}"]`)||this.#_(),this.#c.value=String(this.#f),this.#o.innerHTML="";let t=Oe(this.#f,this.#u),s=(new Date(this.#f,this.#u,1).getDay()-this.#y+7)%7,n=new Date,r=document.createElement("tr");for(let o=0;o<s;o++)r.appendChild(document.createElement("td"));for(let o=1;o<=t;o++){let c=new Date(this.#f,this.#u,o),l=j(c),u=document.createElement("td"),d=document.createElement("button");d.type="button",d.setAttribute("data-date",l),d.textContent=String(o),Fe(c,n)&&d.setAttribute("aria-current","date"),Fe(c,this.#h)&&d.setAttribute("aria-selected","true");let h=this.#N(c,l);if(h.disabled&&(d.setAttribute("aria-disabled","true"),d.setAttribute("disabled",""),h.reason&&d.setAttribute("data-disabled-reason",h.reason)),this.#A.has(l)){let p=this.#A.get(l);d.setAttribute("data-highlight",p||"")}Fe(c,this.#d)?(d.setAttribute("tabindex","0"),Fe(c,this.#h)||d.setAttribute("data-focused","")):d.setAttribute("tabindex","-1"),u.appendChild(d),r.appendChild(u),(s+o)%7===0&&(this.#o.appendChild(r),r=document.createElement("tr"))}let a=(s+t)%7;if(a>0){for(let o=a;o<7;o++)r.appendChild(document.createElement("td"));this.#o.appendChild(r)}}#I(t,i){return this.#N(t,i).disabled}#N(t,i){return this.#k.has(i)?{disabled:!0,reason:this.#k.get(i)}:this.#g&&t<this.#g?{disabled:!0,reason:null}:this.#b&&t>this.#b?{disabled:!0,reason:null}:{disabled:!1,reason:null}}#_(){this.#c.innerHTML="";let t=new Date().getFullYear(),i=this.#g?this.#g.getFullYear():t-100,s=this.#b?this.#b.getFullYear():t+10;for(let n=i;n<=s;n++){let r=document.createElement("option");r.value=String(n),r.textContent=String(n),this.#c.appendChild(r)}}#O(t){this.#u+=t,this.#u>11?(this.#u=0,this.#f++):this.#u<0&&(this.#u=11,this.#f--);let i=Oe(this.#f,this.#u),s=Math.min(this.#d?.getDate()??1,i);this.#d=new Date(this.#f,this.#u,s),this.#C(),this.#D(this.#d)}#F(t,i="internal"){let s=j(t);this.#I(t,s)||this.#h&&j(this.#h)===s||(this.#h=t,this.#d=t,this.#L(),this.#P(),this.#H(),this.#C(),this.#$(),this.#i.focus(),this.dispatchEvent(new CustomEvent("date-picker:change",{bubbles:!0,detail:{value:s,date:new Date(t),source:i}})))}#D(t){let i=j(t),s=this.#o.querySelector(`[data-date="${i}"]`);s&&(this.#o.querySelectorAll('button[tabindex="0"]').forEach(n=>{n.setAttribute("tabindex","-1")}),s.setAttribute("tabindex","0"),s.focus())}#L(){this.#h?this.#i.value=Xh(this.#h):this.#i.value=""}#B(){if(!this.#p){if(this.#p=!0,this.setAttribute("open",""),this.#i.setAttribute("aria-expanded","true"),this.#n.hidden=!1,this.#d&&(this.#f=this.#d.getFullYear(),this.#u=this.#d.getMonth()),this.#C(),this.#m){try{this.#n.showPopover()}catch{}this.#S(),window.addEventListener("scroll",this.#T,{capture:!0,passive:!0}),window.addEventListener("resize",this.#T,{passive:!0})}this.dispatchEvent(new CustomEvent("date-picker:open",{bubbles:!0}))}}#$(){if(this.#p){if(this.#p=!1,this.removeAttribute("open"),this.#i.setAttribute("aria-expanded","false"),this.#n.hidden=!0,this.#m){try{this.#n.hidePopover()}catch{}window.removeEventListener("scroll",this.#T,{capture:!0}),window.removeEventListener("resize",this.#T)}this.dispatchEvent(new CustomEvent("date-picker:close",{bubbles:!0}))}}#S(){if(!this.#m)return;let t=this.#r.getBoundingClientRect(),i=this.#n.getBoundingClientRect(),s=4,n=8,r=window.innerHeight,a=window.innerWidth,o=r-t.bottom-n,c=t.top-n,l;o<i.height&&c>o?(l=t.top-i.height-s,this.#n.dataset.placement="top"):(l=t.bottom+s,delete this.#n.dataset.placement);let u=t.left;u+i.width>a-n&&(u=a-i.width-n),u<n&&(u=n),this.#n.style.setProperty("--calendar-top",`${l}px`),this.#n.style.setProperty("--calendar-left",`${u}px`)}#T=()=>{this.#p&&this.#S()};#q=()=>{let t=this.#i.value,{date:i,partial:s}=bs(t);if(i)this.#d=i,this.#f=i.getFullYear(),this.#u=i.getMonth(),this.#C();else if(s){this.#f=s.year,this.#u=s.month;let n=Oe(s.year,s.month),r=Math.min(this.#d?.getDate()??1,n);this.#d=new Date(s.year,s.month,r),this.#C()}!this.#p&&t.length>0&&this.#B()};#j=t=>{switch(t.key){case"Enter":{t.preventDefault(),t.stopPropagation();let{date:i}=bs(this.#i.value);i&&!this.#I(i,j(i))&&this.#F(i);return}case"ArrowDown":t.preventDefault(),t.stopPropagation(),this.#p||this.#B(),requestAnimationFrame(()=>this.#D(this.#d));return;case"Escape":t.preventDefault(),t.stopPropagation(),this.#p&&this.#$(),this.#L();return;case"Tab":this.#p&&this.#$();return}};#M=t=>{if(t.relatedTarget&&this.contains(t.relatedTarget))return;let i=this.#i.value.trim();if(i){let{date:s}=bs(i);s&&!this.#I(s,j(s))&&(this.#h=s,this.#d=s,this.#P(),this.#H(),this.dispatchEvent(new CustomEvent("date-picker:change",{bubbles:!0,detail:{value:j(s),date:new Date(s)}})))}this.#L(),this.#p&&this.#$(),this.#t.dispatchEvent(new Event("blur",{bubbles:!0}))};#x=t=>{this.#p&&!this.contains(t.target)&&this.#$()};#R=t=>{let s=t.target?.closest("button[data-date]");if(!s||s.hasAttribute("disabled"))return;let n=V(s.getAttribute("data-date"));n&&this.#F(n)};#z=t=>{if(t.key==="Tab"){this.#$();return}let i=this.#d;if(!i)return;let s;switch(t.key){case"ArrowRight":s=new Date(i.getFullYear(),i.getMonth(),i.getDate()+1);break;case"ArrowLeft":s=new Date(i.getFullYear(),i.getMonth(),i.getDate()-1);break;case"ArrowDown":s=new Date(i.getFullYear(),i.getMonth(),i.getDate()+7);break;case"ArrowUp":s=new Date(i.getFullYear(),i.getMonth(),i.getDate()-7);break;case"PageDown":t.shiftKey?s=new Date(i.getFullYear()+1,i.getMonth(),i.getDate()):s=new Date(i.getFullYear(),i.getMonth()+1,i.getDate());break;case"PageUp":t.shiftKey?s=new Date(i.getFullYear()-1,i.getMonth(),i.getDate()):s=new Date(i.getFullYear(),i.getMonth()-1,i.getDate());break;case"Home":s=new Date(i.getFullYear(),i.getMonth(),i.getDate()-i.getDay()+this.#y);break;case"End":s=new Date(i.getFullYear(),i.getMonth(),i.getDate()+(6-i.getDay()+this.#y));break;case"Enter":case" ":t.preventDefault(),t.stopPropagation(),this.#F(i);return;case"Escape":t.preventDefault(),t.stopPropagation(),this.#$(),this.#i.focus();return;default:return}t.preventDefault(),t.stopPropagation(),s&&(this.#g&&s<this.#g&&(s=this.#g),this.#b&&s>this.#b&&(s=this.#b),this.#d=s,(s.getMonth()!==this.#u||s.getFullYear()!==this.#f)&&(this.#u=s.getMonth(),this.#f=s.getFullYear(),this.#C()),this.#D(s))};#P(){let t=this.#h?j(this.#h):"";this.#e.setFormValue(t||null),this.#t.value=t,this.#t.dispatchEvent(new Event("input",{bubbles:!0}))}#H(){(this.hasAttribute("required")||this.#t.hasAttribute("required"))&&!this.#h?this.#e.setValidity({valueMissing:!0},"Please select a date",this.#i||this):this.#e.setValidity({})}formResetCallback(){this.#h=V(this.#w);let t=new Date;this.#d=this.#h||t,this.#f=this.#d.getFullYear(),this.#u=this.#d.getMonth(),this.#L(),this.#P(),this.#H(),this.#p&&this.#C()}formStateRestoreCallback(t){t&&(this.#h=V(t),this.#h&&(this.#d=this.#h,this.#f=this.#h.getFullYear(),this.#u=this.#h.getMonth(),this.#L(),this.#P(),this.#H()))}get value(){return this.#h?j(this.#h):""}set value(t){let i=V(t);i&&this.#F(i,"api")}get min(){return this.#g?j(this.#g):""}set min(t){this.#g=t?V(t):null,this.#t&&this.#t.setAttribute("min",t||""),this.#C()}get max(){return this.#b?j(this.#b):""}set max(t){this.#b=t?V(t):null,this.#t&&this.#t.setAttribute("max",t||""),this.#C()}};b("date-picker",vs);Vt();function Mt(e,t,i){t/=100,i/=100;let s=a=>(a+e/30)%12,n=t*Math.min(i,1-i),r=a=>i-n*Math.max(-1,Math.min(s(a)-3,9-s(a),1));return{r:Math.round(r(0)*255),g:Math.round(r(8)*255),b:Math.round(r(4)*255)}}function Pe(e,t,i,s=!1){e/=255,t/=255,i/=255;let n=Math.max(e,t,i),r=Math.min(e,t,i),a=(n+r)/2,o=0,c=0;if(n!==r){let l=n-r;switch(c=a>.5?l/(2-n-r):l/(n+r),n){case e:o=((t-i)/l+(t<i?6:0))/6;break;case t:o=((i-e)/l+2)/6;break;case i:o=((e-t)/l+4)/6;break}}return s?{h:o*360,s:c*100,l:a*100}:{h:Math.round(o*360),s:Math.round(c*100),l:Math.round(a*100)}}function Jh(e){e=e.replace(/^#/,""),e.length===3&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]);let t=parseInt(e,16);return{r:t>>16&255,g:t>>8&255,b:t&255}}function Qh(e,t,i){return"#"+[e,t,i].map(s=>Math.max(0,Math.min(255,Math.round(s))).toString(16).padStart(2,"0")).join("")}function at(e,t=!1){let{r:i,g:s,b:n}=Jh(e);return Pe(i,s,n,t)}function ot(e,t,i){let{r:s,g:n,b:r}=Mt(e,t,i);return Qh(s,n,r)}function D(e,t,i){return Math.max(t,Math.min(i,e))}function ws(e){return e/=255,e<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function As(e){let t=e<=.0031308?e*12.92:1.055*Math.pow(e,.4166666666666667)-.055;return Math.round(D(t,0,1)*255)}function tp(e,t,i){let s=ws(e),n=ws(t),r=ws(i),a=.4122214708*s+.5363325363*n+.0514459929*r,o=.2119034982*s+.6806995451*n+.1073969566*r,c=.0883024619*s+.2817188376*n+.6299787005*r,l=Math.cbrt(a),u=Math.cbrt(o),d=Math.cbrt(c),h=.2104542553*l+.793617785*u-.0040720468*d,p=1.9779984951*l-2.428592205*u+.4505937099*d,f=.0259040371*l+.7827717662*u-.808675766*d,m=Math.sqrt(p*p+f*f),v=Math.atan2(f,p)*180/Math.PI;return v<0&&(v+=360),m<1e-4&&(v=0),{L:h,C:m,H:v}}function ep(e,t,i){let s=i*Math.PI/180,n=t*Math.cos(s),r=t*Math.sin(s),a=e+.3963377774*n+.2158037573*r,o=e-.1055613458*n-.0638541728*r,c=e-.0894841775*n-1.291485548*r,l=a**3,u=o**3,d=c**3,h=4.0767416621*l-3.3077115913*u+.2309699292*d,p=-1.2684380046*l+2.6097574011*u-.3413193965*d,f=-.0041960863*l-.7034186147*u+1.707614701*d;return{r:As(h),g:As(p),b:As(f)}}function Es(e,t,i){let s=Mt(e,t,i);return tp(s.r,s.g,s.b)}function To(e,t,i,s=!1){let{r:n,g:r,b:a}=ep(e,t,i);return Pe(n,r,a,s)}function ip(e,t,i){return ot(e,t,i)}function sp(e,t,i){let{r:s,g:n,b:r}=Mt(e,t,i);return`rgb(${s} ${n} ${r})`}function np(e,t,i){return`hsl(${Math.round(e)}deg ${Math.round(t)}% ${Math.round(i)}%)`}function rp(e,t,i){let{L:s,C:n,H:r}=Es(e,t,i);return`oklch(${(s*100).toFixed(1)}% ${n.toFixed(3)} ${r.toFixed(1)}deg)`}function Lo(e,t,i,s){switch(e){case"rgb":return sp(t,i,s);case"hsl":return np(t,i,s);case"oklch":return rp(t,i,s);default:return ip(t,i,s)}}var Nt=["hex","rgb","hsl","oklch"],ap="hex",op=/^#[0-9a-fA-F]{6}$/,_t=8,cp=0,ks=class extends y{static formAssociated=!0;#e;#t;#i;#s;#r;#n;#a;#o;#l;#c;#p;#m;#h={};#d=ap;#f;#u;#g;#b=!1;#k=!1;#A=!1;#w=`cp${++cp}`;#y=0;#E=100;#v=50;#C;static get observedAttributes(){return["disabled"]}constructor(){super(),this.#e=this.attachInternals(),this._adoptInternals(this.#e)}setup(){if(this.#t=this.querySelector(':scope > input[type="color"]'),!this.#t)return!1;if(!this.#A){let s=this.getAttribute("format");s&&Nt.includes(s)&&(this.#d=s),this.#A=!0}if(this.#C===void 0){let s=this.#t.defaultValue;this.#C=op.test(s)?s.toLowerCase():this.#t.value||"#000000"}let t=at(this.#t.value||this.#C,!0);this.#y=t.h,this.#E=t.s,this.#v=t.l;let i=this.#t.getAttribute("name");return i&&(this.hasAttribute("name")||this.setAttribute("name",i),this.#t.removeAttribute("name")),this.#t.hasAttribute("disabled")&&(this.#t.removeAttribute("disabled"),this.hasAttribute("disabled")||this.setAttribute("disabled","")),this.#t.setAttribute("tabindex","-1"),this.#t.setAttribute("aria-hidden","true"),this.#t.style.cssText="position:absolute;opacity:0;pointer-events:none;width:1px;height:1px;overflow:hidden;",this.listen(this.#t,"click",this.#N),this.#O(),this.#F(),this.#U(),this.#Q(),this.#k=Be,this.#k&&this.#a.setAttribute("popover","manual"),this.listen(document,"click",this.#tt),this.listen(this,"keydown",this.#_),this.#I(this.matches(":disabled")),!0}teardown(){this.#b=!1,this.removeAttribute("open"),window.removeEventListener("scroll",this.#J,{capture:!0}),window.removeEventListener("resize",this.#J),this.#i?.remove(),this.#a?.remove()}attributeChangedCallback(t){t==="disabled"&&this.#i&&this.#I(this.matches(":disabled"))}formDisabledCallback(t){this.#i&&this.#I(t)}#I(t){this.#i.disabled=t,t&&this.#W()}#N=t=>{t.preventDefault(),this.#i.disabled||this.#i.focus()};#_=t=>{t.key!=="Escape"||!this.#b||(t.preventDefault(),t.stopPropagation(),this.#W(),this.#i.focus())};#O(){this.#i=document.createElement("button"),this.#i.type="button",this.#i.className="color-trigger",this.#i.setAttribute("aria-haspopup","dialog"),this.#i.setAttribute("aria-expanded","false"),this.#s=document.createElement("span"),this.#s.className="color-swatch",this.#r=document.createElement("span"),this.#r.className="color-hex",this.#r.id=`${this.#w}-value`,this.#i.appendChild(this.#s),this.#i.appendChild(this.#r);let t=[];for(let i of Array.from(this.#t.labels||[]))i.id||(i.id=`${this.#w}-label-${t.length}`),t.push(i.id);t.length===0&&(this.#n=document.createElement("span"),this.#n.className="visually-hidden",this.#n.id=`${this.#w}-name`,this.#n.textContent=this.#t.getAttribute("aria-label")||this.getAttribute("aria-label")||"Color",this.#i.prepend(this.#n),t.push(this.#n.id)),this.#i.setAttribute("aria-labelledby",[...t,this.#r.id].join(" ")),this.appendChild(this.#i),this.listen(this.#i,"click",()=>{this.#b?this.#W():this.#X()})}#F(){this.#f=void 0,this.#u=void 0,this.#a=document.createElement("div"),this.#a.className="color-panel",this.#a.setAttribute("role","dialog"),this.#a.setAttribute("aria-label","Color picker"),this.#o=document.createElement("div"),this.#o.className="color-area",this.#o.setAttribute("role","slider"),this.#o.setAttribute("aria-label","Saturation and lightness"),this.#o.setAttribute("aria-valuemin","0"),this.#o.setAttribute("aria-valuemax","100"),this.#o.setAttribute("tabindex","0"),this.#l=document.createElement("div"),this.#l.className="color-area-thumb",this.#o.appendChild(this.#l),this.#a.appendChild(this.#o);let t=document.createElement("div");t.className="color-hue-wrap",this.#c=document.createElement("div"),this.#c.className="color-hue",this.#c.setAttribute("role","slider"),this.#c.setAttribute("aria-label","Hue"),this.#c.setAttribute("aria-valuemin","0"),this.#c.setAttribute("aria-valuemax","360"),this.#c.setAttribute("tabindex","0"),this.#p=document.createElement("div"),this.#p.className="color-hue-thumb",this.#c.appendChild(this.#p),t.appendChild(this.#c),this.#a.appendChild(t);let i=document.createElement("div");i.className="color-format-row";let s=document.createElement("label");s.className="color-format-label";let n=document.createElement("span");n.textContent="Format",this.#m=document.createElement("select"),this.#m.className="color-format-select";for(let o of Nt){let c=document.createElement("option");c.value=o,c.textContent=o.toUpperCase(),this.#m.appendChild(c)}this.#m.value=this.#d,s.appendChild(n),s.appendChild(this.#m),i.appendChild(s),this.#a.appendChild(i),this.listen(this.#m,"change",this.#B),this.#h.hex=this.#D("hex",[{label:"Hex",channel:"hex",kind:"text",maxLength:7}]),this.#h.rgb=this.#D("rgb",[{label:"R",channel:"r",kind:"number",min:0,max:255,step:1},{label:"G",channel:"g",kind:"number",min:0,max:255,step:1},{label:"B",channel:"b",kind:"number",min:0,max:255,step:1}]),this.#h.hsl=this.#D("hsl",[{label:"H",channel:"h",kind:"number",min:0,max:360,step:1},{label:"S",channel:"s",kind:"number",min:0,max:100,step:1},{label:"L",channel:"l",kind:"number",min:0,max:100,step:1}]),this.#h.oklch=this.#D("oklch",[{label:"L%",channel:"oL",kind:"number",min:0,max:100,step:.1},{label:"C",channel:"oC",kind:"number",min:0,max:.4,step:.001},{label:"H\xB0",channel:"oH",kind:"number",min:0,max:360,step:.1}]);for(let o of Nt)this.#a.appendChild(this.#h[o].wrapper);this.#L();let r=this.querySelector(":scope > datalist");if(r){this.#f=document.createElement("div"),this.#f.className="color-swatches",this.#f.setAttribute("role","group"),this.#f.setAttribute("aria-label","Preset colors");for(let o of r.querySelectorAll("option[value]")){let c=document.createElement("button");c.type="button",c.setAttribute("aria-pressed","false"),c.style.background=o.value,c.setAttribute("aria-label",o.textContent||o.value),c.setAttribute("data-color",o.value),this.#f.appendChild(c)}this.#a.appendChild(this.#f),this.listen(this.#f,"click",this.#G)}let a=document.createElement("div");a.className="color-actions","EyeDropper"in window&&(this.#u=document.createElement("button"),this.#u.type="button",this.#u.className="color-eyedropper",this.#u.setAttribute("aria-label","Pick color from screen"),this.#u.textContent="\u{1F4A7}",a.appendChild(this.#u),this.listen(this.#u,"click",this.#K)),this.#g=document.createElement("button"),this.#g.type="button",this.#g.className="color-copy",this.#g.setAttribute("aria-label","Copy hex value"),this.#g.textContent="Copy",a.appendChild(this.#g),this.listen(this.#g,"click",this.#Y),this.#a.appendChild(a),this.appendChild(this.#a),this.listen(this.#o,"pointerdown",this.#$),this.listen(this.#o,"keydown",this.#T),this.listen(this.#c,"pointerdown",this.#q),this.listen(this.#c,"keydown",this.#M);for(let o of Nt){let c=o==="hex"?this.#R:o==="rgb"?this.#z:o==="hsl"?this.#P:this.#H;for(let{el:l}of this.#h[o].inputs)this.listen(l,"change",c)}}#D(t,i){let s=document.createElement("div");s.className=`color-inputs color-inputs-${t}`,s.setAttribute("data-format",t);let n=[];for(let r of i){let a=document.createElement("label");a.className="color-input-label";let o=document.createElement("span");o.textContent=r.label;let c=document.createElement("input");c.type=r.kind,c.setAttribute("data-channel",r.channel),c.setAttribute("autocomplete","off"),c.setAttribute("spellcheck","false"),r.kind==="text"&&r.maxLength&&c.setAttribute("maxlength",String(r.maxLength)),r.kind==="number"&&(c.min=String(r.min),c.max=String(r.max),r.step!=null&&(c.step=String(r.step))),a.appendChild(o),a.appendChild(c),s.appendChild(a),n.push({el:c,channel:r.channel})}return{wrapper:s,inputs:n}}#L(){for(let t of Nt)this.#h[t].wrapper.hidden=t!==this.#d;this.#g&&this.#g.setAttribute("aria-label",`Copy ${this.#d.toUpperCase()} value`)}#B=()=>{let t=this.#m.value;Nt.includes(t)&&(this.#d=t,this.#L(),this.#U())};#$=t=>{t.preventDefault(),this.#o.setPointerCapture(t.pointerId),this.#S(t);let i=n=>this.#S(n),s=n=>{this.#o.releasePointerCapture(n.pointerId),this.#o.removeEventListener("pointermove",i),this.#o.removeEventListener("pointerup",s)};this.#o.addEventListener("pointermove",i),this.#o.addEventListener("pointerup",s)};#S(t){let i=this.#o.getBoundingClientRect(),s=D((t.clientX-i.left)/i.width,0,1),n=D((t.clientY-i.top)/i.height,0,1);this.#E=Math.round(s*100),this.#v=Math.round((1-n)*100),this.#V("pointer")}#T=t=>{let i=t.shiftKey?10:1;switch(this.#E=Math.round(this.#E),this.#v=Math.round(this.#v),t.key){case"ArrowRight":t.preventDefault(),this.#E=D(this.#E+i,0,100);break;case"ArrowLeft":t.preventDefault(),this.#E=D(this.#E-i,0,100);break;case"ArrowUp":t.preventDefault(),this.#v=D(this.#v+i,0,100);break;case"ArrowDown":t.preventDefault(),this.#v=D(this.#v-i,0,100);break;default:return}this.#V("keyboard")};#q=t=>{t.preventDefault(),this.#c.setPointerCapture(t.pointerId),this.#j(t);let i=n=>this.#j(n),s=n=>{this.#c.releasePointerCapture(n.pointerId),this.#c.removeEventListener("pointermove",i),this.#c.removeEventListener("pointerup",s)};this.#c.addEventListener("pointermove",i),this.#c.addEventListener("pointerup",s)};#j(t){let i=this.#c.getBoundingClientRect(),s=D((t.clientX-i.left)/i.width,0,1);this.#y=Math.round(s*360),this.#V("pointer")}#M=t=>{let i=t.shiftKey?10:1;switch(this.#y=Math.round(this.#y),t.key){case"ArrowRight":case"ArrowUp":t.preventDefault(),this.#y=(this.#y+i)%361;break;case"ArrowLeft":case"ArrowDown":t.preventDefault(),this.#y=(this.#y-i+361)%361;break;default:return}this.#V("keyboard")};#x(t,i){return this.#h[t].inputs.find(s=>s.channel===i)?.el}#R=()=>{let t=this.#x("hex","hex");if(!t)return;let i=t.value.trim();if(i.startsWith("#")||(i="#"+i),/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/.test(i)){let s=at(i,!0);this.#y=s.h,this.#E=s.s,this.#v=s.l,this.#V()}};#z=()=>{let t=D(Number(this.#x("rgb","r").value)||0,0,255),i=D(Number(this.#x("rgb","g").value)||0,0,255),s=D(Number(this.#x("rgb","b").value)||0,0,255),n=Pe(t,i,s,!0);this.#y=n.h,this.#E=n.s,this.#v=n.l,this.#V()};#P=()=>{let t=D(Number(this.#x("hsl","h").value)||0,0,360)%361,i=D(Number(this.#x("hsl","s").value)||0,0,100),s=D(Number(this.#x("hsl","l").value)||0,0,100);this.#y=t,this.#E=i,this.#v=s,this.#V()};#H=()=>{let t=D(Number(this.#x("oklch","oL").value)||0,0,100)/100,i=D(Number(this.#x("oklch","oC").value)||0,0,.4),s=D(Number(this.#x("oklch","oH").value)||0,0,360),n=To(t,i,s,!0);this.#y=n.h,this.#E=n.s,this.#v=n.l,this.#V()};#G=t=>{let i=t.target.closest("button[data-color]");if(!i)return;let s=i.getAttribute("data-color"),n=at(s,!0);this.#y=n.h,this.#E=n.s,this.#v=n.l,this.#V()};#K=async()=>{try{let i=await new window.EyeDropper().open(),s=at(i.sRGBHex,!0);this.#y=s.h,this.#E=s.s,this.#v=s.l,this.#V()}catch{}};#Y=()=>{let t=Lo(this.#d,this.#y,this.#E,this.#v);mt(t,{button:this.#g,announceMessage:"Color copied"})};#V(t="internal"){this.#U(),this.#Q();let i=ot(this.#y,this.#E,this.#v),s=Mt(this.#y,this.#E,this.#v);this.dispatchEvent(new CustomEvent("color-picker:change",{bubbles:!0,detail:{hex:i,rgb:{r:s.r,g:s.g,b:s.b},hsl:{h:Math.round(this.#y),s:Math.round(this.#E),l:Math.round(this.#v)},source:t}}))}#U(){let t=ot(this.#y,this.#E,this.#v),i=Mt(this.#y,this.#E,this.#v),s=ot(this.#y,100,50);this.#s.style.background=t,this.#r.textContent=t,this.#o.style.setProperty("--area-hue",s),this.#l.style.left=`${this.#E}%`,this.#l.style.top=`${100-this.#v}%`,this.#l.style.background=t;let n=Math.round(this.#y),r=Math.round(this.#E),a=Math.round(this.#v);this.#o.setAttribute("aria-valuenow",String(r)),this.#o.setAttribute("aria-valuetext",`Saturation ${r}%, lightness ${a}%`),this.#p.style.left=`${this.#y/360*100}%`,this.#c.setAttribute("aria-valuenow",String(n)),this.#c.setAttribute("aria-valuetext",`Hue ${n}\xB0`);let o=(l,u,d)=>{let h=this.#x(l,u);h&&(h.value=String(d))};o("hex","hex",t),o("rgb","r",i.r),o("rgb","g",i.g),o("rgb","b",i.b),o("hsl","h",n),o("hsl","s",r),o("hsl","l",a);let c=Es(this.#y,this.#E,this.#v);if(o("oklch","oL",(c.L*100).toFixed(1)),o("oklch","oC",c.C.toFixed(3)),o("oklch","oH",c.H.toFixed(1)),this.#f)for(let l of this.#f.querySelectorAll("button[data-color]")){let u=(l.getAttribute("data-color")||"").toLowerCase()===t.toLowerCase();l.setAttribute("aria-pressed",String(u))}}#X(){if(!(this.#b||this.#i.disabled)){if(this.#b=!0,this.setAttribute("open",""),this.#i.setAttribute("aria-expanded","true"),this.#k){try{this.#a.showPopover()}catch{}this.#Z(),window.addEventListener("scroll",this.#J,{capture:!0,passive:!0}),window.addEventListener("resize",this.#J,{passive:!0})}requestAnimationFrame(()=>this.#o.focus()),this.dispatchEvent(new CustomEvent("color-picker:open",{bubbles:!0}))}}#W(){if(this.#b){if(this.#b=!1,this.removeAttribute("open"),this.#i.setAttribute("aria-expanded","false"),this.#k){try{this.#a.hidePopover()}catch{}window.removeEventListener("scroll",this.#J,{capture:!0}),window.removeEventListener("resize",this.#J)}this.dispatchEvent(new CustomEvent("color-picker:close",{bubbles:!0}))}}#Z(){if(!this.#k)return;let t=this.#i.getBoundingClientRect(),i=this.#a.offsetWidth,s=this.#a.offsetHeight,n=document.documentElement.clientWidth,r=document.documentElement.clientHeight,o=getComputedStyle(this).direction==="rtl"?t.right-i:t.left;o=Math.min(o,n-i-_t),o=Math.max(o,_t);let c=t.bottom+4;c+s>r-_t&&t.top-s-4>=_t&&(c=t.top-s-4),c=Math.max(_t,Math.min(c,r-s-_t)),this.#a.style.setProperty("--panel-top",`${Math.round(c)}px`),this.#a.style.setProperty("--panel-left",`${Math.round(o)}px`)}#J=()=>{this.#b&&this.#Z()};#tt=t=>{this.#b&&!this.contains(t.target)&&this.#W()};#Q(){let t=ot(this.#y,this.#E,this.#v);this.#e.setFormValue(t),this.#t.value=t,this.#t.dispatchEvent(new Event("input",{bubbles:!0}))}formResetCallback(){if(!this.#i)return;let t=at(this.#C,!0);this.#y=t.h,this.#E=t.s,this.#v=t.l,this.#U(),this.#Q()}formStateRestoreCallback(t){if(!t||!this.#i)return;let i=at(t,!0);this.#y=i.h,this.#E=i.s,this.#v=i.l,this.#U(),this.#Q()}get value(){return ot(this.#y,this.#E,this.#v)}set value(t){if(!/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/.test(t))return;let i=ot(this.#y,this.#E,this.#v).toLowerCase(),s=t.toLowerCase();if(i===s||i===s.toLowerCase())return;let n=at(t,!0);this.#y=n.h,this.#E=n.s,this.#v=n.l,this.#V("api")}};b("color-picker",ks);var lp='<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><line x1="5" y1="12" x2="19" y2="12"/></svg>',up='<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>';function dp(e){if(!e)return[];let t=e.trim();if(t.startsWith("["))try{return JSON.parse(t).map(s=>({value:String(s.value),label:String(s.label??s.value)}))}catch{return[]}return t.split(",").map(i=>{let s=i.trim();return{value:s,label:s}})}function hp(e){return e?e.split(",").map(t=>t.trim()).filter(Boolean):[]}function pp(e){let t=Math.max(0,Math.round(e)),i=Math.floor(t/3600),s=Math.floor(t%3600/60),n=t%60,r=a=>String(a).padStart(2,"0");return i>0?`${i}:${r(s)}:${r(n)}`:`${s}:${r(n)}`}function fp(e,t){let i=Number(e)||0,s=["B","KB","MB","GB","TB","PB"],n=0,r=Math.abs(i);for(;r>=1e3&&n<s.length-1;)r/=1e3,n+=1;let a=new Intl.NumberFormat(t,{minimumFractionDigits:n===0?0:1,maximumFractionDigits:n===0?0:2});return`${i<0?"-":""}${a.format(r)} ${s[n]}`}function mp(){return document.documentElement.lang||void 0}function xs(e){let t=String(e),i=t.indexOf(".");return i<0?0:t.length-i-1}var Ss=class extends y{static formAssociated=!0;static observedAttributes=["value","disabled","readonly"];#e;#t;#i=-1/0;#s=1/0;#r=1;#n=[];#a=[];#o;#l;#c="";#p=!1;#m=!1;#h;#d;#f;#u;#g;#b;#k;#A;#w;#y=0;#E=0;#v=!1;#C=!1;constructor(){super(),this.#e=this.attachInternals(),this._adoptInternals(this.#e)}setup(){this.#I(),this.#N(),this.#F();let t=this.getAttribute("value");this.#f=t,this.#x(t??this.#O(),"init")}attributeChangedCallback(t,i,s){!this.isConnected||!this.#u||(t==="value"?this.#x(s??this.#O(),"attr"):(t==="disabled"||t==="readonly")&&this.#$())}#I(){this.hasAttribute("data-options")?this.#t="enum":this.hasAttribute("data-values")?this.#t="token":this.hasAttribute("data-format")||this.hasAttribute("data-suffix")?this.#t="formatted":(this.#t="numeric",console.info('[stepper-wc] No mode attribute set. Plain numeric stepping is better served by `<input type="number" data-stepper>`. See /docs/concepts/numeric-inputs/'))}#N(){this.#i=this.hasAttribute("data-min")?Number(this.getAttribute("data-min")):-1/0,this.#s=this.hasAttribute("data-max")?Number(this.getAttribute("data-max")):1/0,this.#r=Number(this.getAttribute("data-step"))||1,this.#n=hp(this.getAttribute("data-values")),this.#a=dp(this.getAttribute("data-options")),this.#o=this.getAttribute("data-format")||(this.hasAttribute("data-suffix")?"number":null),this.#l=this.getAttribute("data-currency")||"USD",this.#c=this.getAttribute("data-suffix")||"",this.#p=this.hasAttribute("data-show-label"),this.#m=this.hasAttribute("data-accelerate"),this.#h=mp(),this.#w=this.#_()}#_(){if(!this.#o)return null;let t=xs(this.#r);return this.#o==="number"?new Intl.NumberFormat(this.#h,{minimumFractionDigits:t,maximumFractionDigits:t}):this.#o==="currency"?new Intl.NumberFormat(this.#h,{style:"currency",currency:this.#l}):this.#o==="percent"?new Intl.NumberFormat(this.#h,{style:"percent",minimumFractionDigits:t,maximumFractionDigits:t}):null}#O(){return this.#t==="enum"?this.#a[0]?.value??"":this.#t==="token"?this.#n[0]??"":"0"}#F(){this.replaceChildren(),this.#k=document.createElement("button"),this.#k.type="button",this.#k.className="stepper-dec",this.#k.setAttribute("aria-label","Decrease"),this.#k.setAttribute("tabindex","-1"),this.#k.innerHTML=lp,this.#A=document.createElement("button"),this.#A.type="button",this.#A.className="stepper-inc",this.#A.setAttribute("aria-label","Increase"),this.#A.setAttribute("tabindex","-1"),this.#A.innerHTML=up,this.#u=document.createElement("span"),this.#u.className="stepper-value",this.#u.setAttribute("role","spinbutton"),this.#u.setAttribute("tabindex","0"),this.#g=document.createElement("span"),this.#g.className="stepper-value-display",this.#u.appendChild(this.#g),this.#b=new Set;for(let t of this.#H())this.#G(t);this.appendChild(this.#k),this.appendChild(this.#u),this.appendChild(this.#A),this.#D(this.#k,-1),this.#D(this.#A,1),this.listen(this.#u,"keydown",this.#L),this.#$()}#D(t,i){if(this.listen(t,"click",n=>{if(this.#C){this.#C=!1,n.preventDefault();return}this.#S(i,1)}),!this.#m)return;this.listen(t,"pointerdown",n=>{let r=n;r.pointerType==="mouse"&&r.button!==0||this.#B()||(this.#v=!1,this.#y=window.setTimeout(()=>{this.#v=!0,this.#E=window.setInterval(()=>this.#S(i,1),100),this.#y=window.setTimeout(()=>{window.clearInterval(this.#E),this.#E=window.setInterval(()=>this.#S(i,5),50)},1e3)},500))});let s=()=>{window.clearTimeout(this.#y),window.clearInterval(this.#E),this.#y=0,this.#E=0,this.#v&&(this.#C=!0)};this.listen(t,"pointerup",s),this.listen(t,"pointerleave",s),this.listen(t,"pointercancel",s)}#L=t=>{if(!this.#B())switch(t.key){case"ArrowUp":case"ArrowRight":t.preventDefault(),this.#S(1,1);break;case"ArrowDown":case"ArrowLeft":t.preventDefault(),this.#S(-1,1);break;case"PageUp":t.preventDefault(),this.#S(1,10);break;case"PageDown":t.preventDefault(),this.#S(-1,10);break;case"Home":t.preventDefault(),this.#T("min");break;case"End":t.preventDefault(),this.#T("max");break;default:}};#B(){return this.hasAttribute("disabled")||this.hasAttribute("readonly")}#$(){let t=this.hasAttribute("disabled");this.#k.disabled=t,this.#A.disabled=t,this.#u.setAttribute("aria-disabled",String(t)),t?this.#u.removeAttribute("tabindex"):this.#u.setAttribute("tabindex","0")}#S(t,i){if(this.#B())return;let s=this.#q(t,i);s===null||s===this.#d||this.#x(s,"step")}#T(t){if(this.#t==="enum"){let s=t==="min"?0:this.#a.length-1;this.#x(this.#a[s]?.value,"step");return}if(this.#t==="token"){let s=t==="min"?0:this.#n.length-1;this.#x(this.#n[s],"step");return}let i=t==="min"?this.#i===-1/0?this.#d:this.#i:this.#s===1/0?this.#d:this.#s;this.#x(String(i),"step")}#q(t,i){if(this.#t==="enum"){let c=this.#a.findIndex(d=>d.value===this.#d),l=c===-1?0:c,u=Math.min(this.#a.length-1,Math.max(0,l+t*i));return this.#a[u]?.value}if(this.#t==="token"){let l=this.#j(this.#d);l===-1&&(l=this.#M(this.#d));let u=Math.min(this.#n.length-1,Math.max(0,l+t*i));return this.#n[u]}let s=Number(this.#d)||0,n=xs(this.#r),r=s+t*this.#r*i,a=Number(r.toFixed(n)),o=Math.min(this.#s,Math.max(this.#i,a));return String(o)}#j(t){if(t==null)return-1;let i=this.#n.indexOf(String(t));if(i!==-1)return i;let s=Number(t);if(Number.isFinite(s)){let n=this.#n.findIndex(r=>Number(r)===s);if(n!==-1)return n}return-1}#M(t){let i=Number(t);if(!Number.isFinite(i))return 0;let s=0,n=1/0;return this.#n.forEach((r,a)=>{let o=Number(r);if(!Number.isFinite(o))return;let c=Math.abs(o-i);c<n&&(n=c,s=a)}),s}#x(t,i){let s=this.#R(t),n=s!==this.#d;this.#d=s,this.getAttribute("value")!==String(s)&&this.setAttribute("value",String(s)),this.#z(),this.#K(),this.#Y(),this.#X(),this.#W(),n&&i!=="init"&&(this.dispatchEvent(new Event("input",{bubbles:!0})),this.dispatchEvent(new Event("change",{bubbles:!0})))}#R(t){if(t==null)return this.#O();if(this.#t==="enum"){let n=String(t);return this.#a.find(a=>a.value===n)?n:this.#a[0]?.value??""}if(this.#t==="token")return String(t);let i=Number(t);if(!Number.isFinite(i))return String(this.#i===-1/0?0:this.#i);let s=xs(this.#r);return String(Number(Math.min(this.#s,Math.max(this.#i,i)).toFixed(s)))}#z(){let t=this.#P();this.#g.textContent=t,this.#G(t)}#P(t=this.#d){if(this.#t==="enum")return this.#a.find(s=>s.value===t)?.label??t??"";if(this.#t==="token"){let i=this.#p?String(t).replace(/^--/,""):String(t);return this.#c?`${i}${this.#c}`:i}if(this.#t==="formatted"){let i=Number(t)||0;if(this.#o==="duration")return pp(i);if(this.#o==="bytes")return fp(i,this.#h);if(this.#w){let s=this.#o==="percent"?i/100:i,n=this.#w.format(s);return this.#c&&this.#o==="number"?`${n}${this.#c}`:n}return this.#c?`${i}${this.#c}`:String(i)}return String(t??"")}#H(){if(this.#t==="enum")return this.#a.map(s=>this.#P(s.value));if(this.#t==="token")return this.#n.map(s=>this.#P(s));let t=new Set,i=s=>{Number.isFinite(s)&&t.add(s)};if(this.#i!==-1/0&&i(this.#i),this.#s!==1/0&&i(this.#s),i(Number(this.getAttribute("value"))||0),this.#s===1/0){let s=[10,100,1e3,1e4];for(let n of s)i(n);if(this.#o==="bytes")for(let n of[999,999e3,999e6,999e9])i(n)}return[...t].map(s=>this.#P(String(s)))}#G(t){let i=String(t??"");if(!i||this.#b.has(i))return;this.#b.add(i);let s=document.createElement("span");s.className="stepper-value-reserve",s.setAttribute("aria-hidden","true"),s.textContent=i,this.#u.appendChild(s)}recomputeWidth(){if(this.#u){this.#u.querySelectorAll(".stepper-value-reserve").forEach(t=>t.remove()),this.#b=new Set;for(let t of this.#H())this.#G(t)}}#K(){if(this.#t==="enum"){let i=this.#a.findIndex(s=>s.value===this.#d);this.#u.setAttribute("aria-valuemin","1"),this.#u.setAttribute("aria-valuemax",String(this.#a.length)),this.#u.setAttribute("aria-valuenow",String((i===-1?0:i)+1)),this.#u.setAttribute("aria-valuetext",this.#P());return}if(this.#t==="token"){let i=this.#j(this.#d);this.#u.setAttribute("aria-valuemin","1"),this.#u.setAttribute("aria-valuemax",String(this.#n.length)),this.#u.setAttribute("aria-valuenow",String((i===-1?0:i)+1)),this.#u.setAttribute("aria-valuetext",this.#P());return}let t=Number(this.#d)||0;this.#i!==-1/0?this.#u.setAttribute("aria-valuemin",String(this.#i)):this.#u.removeAttribute("aria-valuemin"),this.#s!==1/0?this.#u.setAttribute("aria-valuemax",String(this.#s)):this.#u.removeAttribute("aria-valuemax"),this.#u.setAttribute("aria-valuenow",String(t)),this.#u.setAttribute("aria-valuetext",this.#P())}#Y(){let t=this.#V(),i=this.#U();this.#k.disabled=t||this.hasAttribute("disabled"),this.#A.disabled=i||this.hasAttribute("disabled")}#V(){return this.#t==="enum"?this.#d===this.#a[0]?.value:this.#t==="token"?this.#j(this.#d)===0:this.#i!==-1/0&&Number(this.#d)<=this.#i}#U(){return this.#t==="enum"?this.#d===this.#a[this.#a.length-1]?.value:this.#t==="token"?this.#j(this.#d)===this.#n.length-1:this.#s!==1/0&&Number(this.#d)>=this.#s}#X(){this.#e.setFormValue(String(this.#d??""))}#W(){this.setState("at-min",this.#V()),this.setState("at-max",this.#U())}formResetCallback(){this.#x(this.#f??this.#O(),"reset")}formStateRestoreCallback(t){t!=null&&this.#x(t,"restore")}get displayText(){return this.#g?.textContent??""}get value(){return this.#d==null?"":String(this.#d)}set value(t){String(t)!==String(this.#d)&&this.#x(t,"api")}get form(){return this.#e.form}get name(){return this.getAttribute("name")}get type(){return this.localName}get validity(){return this.#e.validity}get validationMessage(){return this.#e.validationMessage}checkValidity(){return this.#e.checkValidity()}reportValidity(){return this.#e.reportValidity()}};b("stepper-wc",Ss);var gp=new Set(["live","recording","streaming","error","online","running","away","paused","busy","offline","stopped"]),Cs=class extends y{static observedAttributes=["data-variant","data-live"];#e;setup(){let t=document.createElement("span");for(t.className="status-dot",t.setAttribute("aria-hidden","true"),this.#e=document.createElement("span"),this.#e.className="status-label";this.firstChild;)this.#e.appendChild(this.firstChild);this.appendChild(t),this.appendChild(this.#e),this.#t(),this.#i(),this.#r()}attributeChangedCallback(t,i,s){!this.isConnected||i===s||(t==="data-variant"?(this.#i(),this.dispatchEvent(new CustomEvent("status-wc:change",{bubbles:!0,detail:{variant:s,previousVariant:i}}))):t==="data-live"&&this.#t())}#t(){this.getAttribute("data-live")==="off"?(this.removeAttribute("role"),this.removeAttribute("aria-live")):(this.hasAttribute("role")||this.setAttribute("role","status"),this.hasAttribute("aria-live")||this.setAttribute("aria-live","polite"))}#i(){let t=this.getAttribute("data-variant");t&&(gp.has(t)||this.#s(t)||console.info(`[status-wc] data-variant="${t}" is not a built-in; add a CSS rule (status-wc[data-variant="${t}"] { --status-dot-color: \u2026; }) or use a built-in.`))}#s(t){let i=this.querySelector(".status-dot");if(!i)return!0;let s=getComputedStyle(i).getPropertyValue("--status-dot-color").trim();return s&&s!==""}#r(){let t=this.#e?.textContent.trim(),i=this.hasAttribute("aria-label");!t&&!i&&console.warn("[status-wc] needs slot text or aria-label for accessibility.")}get variant(){return this.getAttribute("data-variant")}set variant(t){t?this.setAttribute("data-variant",t):this.removeAttribute("data-variant")}};b("status-wc",Cs);Ne();Wt();var Ts=0,bp='a[href], button, input, select, textarea, summary, iframe, [tabindex], [contenteditable]:not([contenteditable="false"])';function Re(e){return e.hasAttribute("data-disabled")||e.getAttribute("aria-disabled")==="true"||!!e.disabled}function yp(e){return e.split("+").map(t=>{let i=t.trim().toLowerCase();return i==="meta"||i==="cmd"?nt?"Meta":"Control":i==="ctrl"?"Control":i==="alt"?"Alt":i==="shift"?"Shift":i.length===1?i.toUpperCase():i.charAt(0).toUpperCase()+i.slice(1)}).join("+")}function vp(e){return e.pointerType===""||e.pointerId===-1||e.button===-1||e.clientX===0&&e.clientY===0&&e.buttons===0}var Ls=class extends y{#e;#t;#i;#s=[];#r=-1;#n=!1;#a=[];setup(){let t=this.querySelector(":scope > [data-trigger]"),i=this.querySelector('menu, ul[role="menu"]');if(!t||!i)return!1;this.#e=t,this.#t=i;let s=this.querySelector(":scope > pop-over[data-context-menu-host]");s?this.#i=s:(this.#i=document.createElement("pop-over"),this.#i.setAttribute("data-context-menu-host",""),this.#i.id=`ctx-menu-${++Ts}`,this.#i.dataset.mode="auto",this.#i.appendChild(this.#t),this.appendChild(this.#i)),this.#t.parentElement!==this.#i&&this.#i.appendChild(this.#t),this.#t.setAttribute("role","menu"),this.#t.id||(this.#t.id=`ctx-menu-list-${++Ts}`),this.#e.setAttribute("aria-haspopup","menu"),this.#e.setAttribute("aria-expanded","false"),this.#e.setAttribute("aria-controls",this.#t.id),this.#e.matches(bp)||this.#e.setAttribute("tabindex","0"),this.#t.querySelectorAll(':scope > li:empty:not([data-group]), :scope > [role="separator"], :scope > hr').forEach(r=>{r.setAttribute("role","separator")}),this.#o();let n=Array.from(this.#t.querySelectorAll('button, a, [role="menuitem"]'));return n.forEach(r=>{r.setAttribute("role","menuitem"),r.setAttribute("tabindex","-1")}),this.#s=n.filter(r=>!r.disabled),this.#t.querySelectorAll("li").forEach(r=>{r.querySelector(':scope > :is(button, a, [role="menuitem"])')&&r.setAttribute("role","none")}),this.#s.forEach(r=>{r.hasAttribute("data-disabled")&&r.setAttribute("aria-disabled","true"),this.listen(r,"click",this.#b);let a=r.getAttribute("data-shortcut");if(a){if(!r.querySelector(":scope > .ctx-kbd")){let c=document.createElement("kbd");c.className="ctx-kbd",c.setAttribute("aria-hidden","true"),c.textContent=ro(a),r.appendChild(c)}r.setAttribute("aria-keyshortcuts",yp(a));let o=rt(a,()=>{Re(r)||r.click()});this.#a.push(o)}}),this.listen(this.#e,"contextmenu",this.#c),this.listen(this.#e,"keydown",this.#p),this.listen(this.#t,"keydown",this.#u),this.listen(this.#t,"click",this.#g,{capture:!0}),this.listen(window,"scroll",this.#A,{capture:!0}),this.listen(this.#i,"pop-over:hide",this.#k),!0}teardown(){this.#a.forEach(t=>t()),this.#a=[],this.#n&&(this.#n=!1,this.removeAttribute("data-open"),this.#i?.hide?.()),this.#r=-1,this.#s=[],this.#t?.querySelectorAll(".ctx-kbd").forEach(t=>t.remove()),this.#l()}#o(){let t=this.#t;for(let i of Array.from(t.querySelectorAll(":scope > li[data-group]"))){i.id||(i.id=`ctx-group-${++Ts}`),i.classList.add("ctx-group-label"),i.setAttribute("aria-hidden","true");let s=document.createElement("li");s.setAttribute("role","group"),s.setAttribute("aria-labelledby",i.id),s.setAttribute("data-ctx-group","");let n=document.createElement("ul");n.setAttribute("role","none"),s.appendChild(n),t.insertBefore(s,i),n.appendChild(i);let r=s.nextElementSibling;for(;r&&!r.hasAttribute("data-group")&&r.getAttribute("role")!=="separator";){let a=r;r=r.nextElementSibling,n.appendChild(a)}}}#l(){let t=this.#t;if(t)for(let i of Array.from(t.querySelectorAll(":scope > li[data-ctx-group]"))){let s=i.querySelector(":scope > ul");if(s)for(let n of Array.from(s.children))t.insertBefore(n,i);i.remove()}}get items(){if(!this.#t)return[];let t=[],i=this.#t.querySelectorAll(":scope > li:not([data-ctx-group]), :scope > li[data-ctx-group] > ul > li");for(let s of i){if(s.hasAttribute("data-group")){t.push({group:s.textContent.trim()});continue}if(s.matches(':empty, [role="separator"]')||s.querySelector("hr")){t.push({separator:!0});continue}let n=s.querySelector('button, a, [role="menuitem"]');if(!n)continue;let r=Array.from(n.childNodes).filter(a=>!(a instanceof Element&&a.classList.contains("ctx-kbd"))).map(a=>a.textContent).join("");t.push({label:r.trim().replace(/\s+/g," "),value:n.getAttribute("data-value")||void 0,href:n.tagName==="A"?n.getAttribute("href"):void 0,shortcut:n.getAttribute("data-shortcut")||void 0,disabled:n.disabled||n.hasAttribute("data-disabled")||void 0})}return t}set items(t){let i=Array.isArray(t)?t:[],s=this.querySelector('menu, ul[role="menu"]');for(s||(s=document.createElement("menu"),this.appendChild(s));s.firstChild;)s.firstChild.remove();for(let n of i){let r=document.createElement("li");if(n.separator)r.setAttribute("role","separator");else if(n.group!=null)r.setAttribute("data-group",""),r.textContent=n.group;else{let a=n.href?document.createElement("a"):document.createElement("button");n.href&&a.setAttribute("href",n.href),n.value&&a.setAttribute("data-value",n.value),n.shortcut&&a.setAttribute("data-shortcut",n.shortcut),n.disabled&&a.setAttribute("data-disabled",""),a.tagName==="BUTTON"&&a.setAttribute("type","button"),a.textContent=n.label||"",r.appendChild(a)}s.appendChild(r)}this._reinit(),this.dispatchEvent(new CustomEvent("context-menu:items-changed",{detail:{items:i,source:"property"},bubbles:!0}))}#c=t=>{if(t.preventDefault(),vp(t)){this.#n||this.#m();return}t.buttons!==0?this.listen(window,"pointerup",()=>{setTimeout(()=>this.#h(t.clientX,t.clientY),0)},{once:!0,capture:!0}):this.#h(t.clientX,t.clientY)};#p=t=>{t.target===this.#e&&(t.key==="ContextMenu"||t.key==="F10"&&t.shiftKey)&&(t.preventDefault(),this.#n||this.#m())};#m(){let t=this.#e.getBoundingClientRect();this.#h(t.left,t.bottom)}#h(t,i){this.#n=!0,this.setAttribute("data-open",""),this.#e?.setAttribute("aria-expanded","true"),this.#i.style.top=`${i}px`,this.#i.style.left=`${t}px`,this.#i.show(),requestAnimationFrame(()=>{let s=this.#i.getBoundingClientRect(),n=t+s.width>window.innerWidth?t-s.width:t,r=i+s.height>window.innerHeight?i-s.height:i;this.#i.style.top=`${Math.max(0,r)}px`,this.#i.style.left=`${Math.max(0,n)}px`}),this.#r=-1,this.#w(0),this.dispatchEvent(new CustomEvent("context-menu:open",{bubbles:!0}))}close(){if(!this.#n)return;let t=this.#d();this.#n=!1,this.removeAttribute("data-open"),this.#e?.setAttribute("aria-expanded","false"),this.#r=-1,this.#i?.hide(),t&&this.#f(),this.dispatchEvent(new CustomEvent("context-menu:close",{bubbles:!0}))}#d(){let t=document.activeElement;return!t||t===document.body||!!this.#i?.contains(t)}#f(){this.#e?.isConnected&&this.#e.focus({preventScroll:!0})}#u=t=>{switch(t.key){case"ArrowDown":case"Down":t.preventDefault(),this.#w(this.#r+1);break;case"ArrowUp":case"Up":t.preventDefault(),this.#w(this.#r-1);break;case"Home":t.preventDefault(),this.#w(0);break;case"End":t.preventDefault(),this.#w(this.#s.length-1);break;case"Enter":case" ":{t.preventDefault();let i=this.#s[this.#r];i&&!Re(i)&&i.click();break}case"Tab":this.close();break}};#g=t=>{let i=t.target.closest?.('button, a, [role="menuitem"]');i&&this.#t.contains(i)&&Re(i)&&(t.preventDefault(),t.stopPropagation())};#b=t=>{let i=t.currentTarget;Re(i)||(this.close(),this.dispatchEvent(new CustomEvent("context-menu:select",{bubbles:!0,detail:{item:i,value:i.getAttribute("data-value")||void 0}})))};#k=()=>{this.#n&&(this.#n=!1,this.removeAttribute("data-open"),this.#e?.setAttribute("aria-expanded","false"),this.#r=-1,this.#d()&&this.#f(),this.dispatchEvent(new CustomEvent("context-menu:close",{bubbles:!0})))};#A=()=>{this.#n&&this.close()};#w(t){this.#s.length!==0&&(t<0&&(t=this.#s.length-1),t>=this.#s.length&&(t=0),this.#r=t,this.#s[t].focus())}get isOpen(){return this.#n}};b("context-menu",Ls);var Ms=class extends y{#e;#t;#i=null;#s=!1;setup(){if(this.#s)return;let t=this.getAttribute("src");return t?(this.#i===null&&(this.#i=this.innerHTML),this.hasAttribute("lazy")?this.#n():this.#a(t),!0):!1}teardown(){this.#e?.disconnect(),this.#t?.abort()}get src(){return this.getAttribute("src")||""}set src(t){let i=t==null?"":String(t);this.src!==i&&(i?this.setAttribute("src",i):this.removeAttribute("src"),this.dispatchEvent(new CustomEvent("include-file:src-changed",{detail:{src:i,source:"property"},bubbles:!0})))}static get observedAttributes(){return["src"]}attributeChangedCallback(t,i,s){t==="src"&&s&&i!==s&&this.isConnected&&(this.hasAttribute("lazy")&&!this.#r()?this.#n():this.#a(s))}#r(){let t=this.getBoundingClientRect();return t.top<window.innerHeight+200&&t.bottom>-200}#n(){this.#e?.disconnect(),this.#e=new IntersectionObserver(t=>{for(let i of t)if(i.isIntersecting){this.#e.disconnect();let s=this.getAttribute("src");s&&this.#a(s)}},{rootMargin:"200px"}),this.#e.observe(this)}async#a(t){this.#t?.abort(),this.#t=new AbortController,this.setAttribute("data-loading",""),this.removeAttribute("data-loaded"),this.removeAttribute("data-error");try{let i=await fetch(t,{signal:this.#t.signal});if(!i.ok)throw new Error(`HTTP ${i.status}: ${i.statusText}`);let s=await i.text(),n=this.getAttribute("mode")||"replace";n==="replace"?this.innerHTML=s:n==="append"?this.insertAdjacentHTML("beforeend",s):n==="prepend"&&this.insertAdjacentHTML("afterbegin",s),this.hasAttribute("allow-scripts")?this.querySelectorAll("script").forEach(r=>{let a=document.createElement("script");for(let o of r.attributes)a.setAttribute(o.name,o.value);a.textContent=r.textContent,r.replaceWith(a)}):this.querySelectorAll("script").forEach(r=>r.remove()),this.removeAttribute("data-loading"),this.setAttribute("data-loaded",""),this.#s=!0,this.dispatchEvent(new CustomEvent("include-file:loaded",{bubbles:!0,detail:{src:t,html:s}}))}catch(i){if(i.name==="AbortError")return;this.removeAttribute("data-loading"),this.setAttribute("data-error",""),(this.getAttribute("mode")||"replace")==="replace"&&this.#i!==null&&!this.#s&&(this.innerHTML=this.#i),this.dispatchEvent(new CustomEvent("include-file:error",{bubbles:!0,detail:{src:t,error:i.message}}))}}reload(){let t=this.getAttribute("src");t&&this.#a(t)}};b("include-file",Ms);et();var Mo="environment",No="preferences",Ns={timeOfDay:!1,seasonal:!1},wp=900*1e3,ct={...Ns};function bt(e,t,i){return e+(t-e)*Math.min(1,Math.max(0,i))}var Zt={_timer:null,_baseHues:null,_timeOverride:null,_monthOverride:null,async init(){let e=await k.get(Mo,No);ct=e?{...Ns,...e}:{...Ns},(ct.timeOfDay||ct.seasonal)&&(this._captureBaseHues(),this._update(),this._startLoop()),window.addEventListener("vb:theme-change",()=>{this._hasActiveSource()&&requestAnimationFrame(()=>{this._captureBaseHues(),this._update()})})},load(){return{...ct}},save(e){return ct={...ct,...e},k.set(Mo,No,ct).catch(()=>{}),{...ct}},setTimeOverride(e){this._timeOverride=e,this._hasActiveSource()&&this._update()},setMonthOverride(e){this._monthOverride=e,this._hasActiveSource()&&this._update()},setSource(e,t){let i=this.save({[e]:t});t?(this._captureBaseHues(),this._update(),this._startLoop()):this._hasActiveSource(i)?this._update():(this._clearModifiers(),this._stopLoop())},_hasActiveSource(e){let t=e||this.load();return t.timeOfDay||t.seasonal},_captureBaseHues(){let e=document.documentElement;e.style.removeProperty("--hue-primary"),e.style.removeProperty("--hue-secondary"),e.style.removeProperty("--hue-accent");let t=e.getAttribute("data-theme");if(t){let i=`[data-theme~="${t}"]`;for(let s of document.styleSheets)try{for(let n=0;n<s.cssRules.length;n++){let r=s.cssRules[n];if(r.selectorText?.includes(i)&&!r.selectorText.includes("dark")){let a=r.style?.getPropertyValue("--hue-primary");if(a){this._baseHues={primary:parseFloat(a)||260,secondary:parseFloat(r.style.getPropertyValue("--hue-secondary"))||200,accent:parseFloat(r.style.getPropertyValue("--hue-accent"))||30};return}}}}catch{}}this._baseHues={primary:260,secondary:200,accent:30}},_update(){let e=this.load(),t=0;e.timeOfDay&&(t+=this._getTimeOfDayOffset()),e.seasonal&&(t+=this._getSeasonalOffset());let i=document.documentElement;t!==0&&this._baseHues?(i.style.setProperty("--hue-primary",String(this._baseHues.primary+t)),i.style.setProperty("--hue-secondary",String(this._baseHues.secondary+t)),i.style.setProperty("--hue-accent",String(this._baseHues.accent+t*.5))):t===0&&this._clearModifiers()},_clearModifiers(){let e=document.documentElement;e.style.removeProperty("--hue-primary"),e.style.removeProperty("--hue-secondary"),e.style.removeProperty("--hue-accent")},_getTimeOfDayOffset(){let e=this._timeOverride??new Date().getHours()+new Date().getMinutes()/60;return e<5?-20:e<7?bt(-20,20,(e-5)/2):e<10?bt(20,5,(e-7)/3):e<14?bt(5,0,(e-10)/4):e<17?bt(0,-5,(e-14)/3):e<19?bt(-5,15,(e-17)/2):e<21?bt(15,-10,(e-19)/2):bt(-10,-20,(e-21)/8)},_getHemisphere(){return window.__VB_ENV_LOCATION?.hemisphere||"north"},_getSeasonalOffset(){let e=this._monthOverride??new Date().getMonth(),i=this._getHemisphere()==="south"?(e+6)%12:e;return i>=2&&i<=4?5:i>=5&&i<=7?10:i>=8&&i<=10?-5:-10},_startLoop(){this._timer||(this._timer=setInterval(()=>this._update(),wp))},_stopLoop(){this._timer&&clearInterval(this._timer),this._timer=null}};var je=null;function Do(){return"0.5.0-c9fb648d"}function Ap(){let e=document.querySelectorAll('script[src*="vanilla-breeze"]'),t="/cdn/sw.js";for(let i of e){let s=i.getAttribute("src");if(s){let n=s.lastIndexOf("/");if(n!==-1){t=s.slice(0,n)+"/sw.js";break}}}return t}function $o(){return je||(je=navigator.serviceWorker?.ready??Promise.reject(new Error("SW not supported"))),je}function Io(e){return new Promise((t,i)=>{navigator.serviceWorker?.controller?_o(navigator.serviceWorker.controller,e,t,i):$o().then(s=>{let n=s.active||s.waiting||s.installing;n?_o(n,e,t,i):i(new Error("No active service worker"))}).catch(i)})}function _o(e,t,i,s){let n=new MessageChannel;n.port1.onmessage=r=>i(r.data),n.port1.onmessageerror=()=>s(new Error("Message error")),e.postMessage({type:t},[n.port2]),setTimeout(()=>s(new Error("SW message timeout")),5e3)}async function qo(){return Io("GET_STATUS")}async function Bo(){return Io("CLEAR_CACHE")}async function Oo(){let e=await $o();return await e.update(),{updated:!!e.waiting}}function Ep(){return typeof window>"u"||!("serviceWorker"in navigator)?!1:window.__VB_SERVICE_WORKER?!0:document.querySelector('meta[name="vb-service-worker"]')?.content==="true"}if(Ep()){let e=Ap();window.addEventListener("load",()=>{je=navigator.serviceWorker.register(e).catch(t=>{console.warn("[VB] Service worker registration failed:",t)})})}et();var Dt=null,U="settings",Jt={motionFx:!0,sounds:!1},Is=class extends y{#e=null;#t=null;#i=!1;#s=[];#r={...Jt};#n=!1;setup(){return this.#a(),!0}async#a(){await this.#o(),this.#k(),this.#w(),this.#R(),this.listen(window,"vb:theme-change",this.#x),this.listen(window,"vb:extensions-change",this.#x),this.listen(window,"vb:a11y-themes-change",this.#x)}teardown(){this.#t?.remove(),this.#t=null}get data(){return{a11yThemes:[...this.#s],extensions:{...this.#r},sticky:this.#n}}set data(t){if(!t||typeof t!="object")return;let i=[];Array.isArray(t.a11yThemes)&&(this.#s=[...t.a11yThemes],i.push(k.set(U,"a11y",this.#s))),t.extensions&&typeof t.extensions=="object"&&(this.#r={...Jt,...t.extensions},i.push(k.set(U,"extensions",this.#r))),t.sticky!=null&&(this.#n=!!t.sticky,i.push(k.set(U,"sticky",this.#n?"on":"off"))),Promise.all(i).then(()=>{this.#R?.(),this.dispatchEvent(new CustomEvent("settings-panel:data-changed",{detail:{data:this.data,source:"property"},bubbles:!0}))})}async#o(){let[t,i,s]=await Promise.all([k.get(U,"a11y"),k.get(U,"extensions"),k.get(U,"sticky")]);this.#s=Array.isArray(t)?t:[],this.#r={...Jt,...i??{}},this.#n=s==="on"}#l(t){return t!==""&&t!==void 0}#c(t){return t==="compact"?"compact":t==="spacious"?"spacious":"default"}#p(t,i){return t?i==="compact"?"compact":i==="spacious"?"spacious":"default":""}#m(){return this.#n}#h(t){return t!==""&&t!==void 0}#d(t){return t==="flush"?"flush":t==="elevated"?"elevated":"default"}#f(t,i){return t?i==="flush"?"flush":i==="elevated"?"elevated":"default":""}#u(t){if(!t)return"card";let i=t.split(/\s+/);for(let s of i)if(s==="stretch"||s==="integrated")return s;return"card"}#g(t){return t?t.split(/\s+/).includes("fixed"):!1}#b(t,i){let s=[];return t&&t!=="card"&&s.push(t),i&&s.push("fixed"),s.join(" ")||"card"}#k(){this.#e=this.querySelector(":scope > [data-trigger]")||this.querySelector(":scope > button"),this.#e||(this.#e=document.createElement("button"),this.#e.setAttribute("data-trigger",""),this.#e.setAttribute("aria-label","Site settings"),this.#e.className="settings-trigger",this.#e.innerHTML='<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"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"/><circle cx="12" cy="12" r="3"/></svg>',this.prepend(this.#e)),this.#e.setAttribute("aria-haspopup","dialog"),this.#e.setAttribute("aria-expanded","false"),this.#t=document.createElement("div"),this.#t.className="settings-panel",this.#t.setAttribute("role","dialog"),this.#t.setAttribute("aria-label","Site settings");let t=`settings-panel-${crypto.randomUUID().slice(0,8)}`;this.#t.id=t,this.#e.setAttribute("aria-controls",t),this.#t.innerHTML=this.#A(),this.appendChild(this.#t)}#A(){let{mode:t,brand:i,fluid:s,backdrop:n,backdropChrome:r,pageBgType:a,pageBgColor:o,pageBgGradStart:c,pageBgGradEnd:l,pageBgGradDir:u}=T.getState(),d=this.#G(),h=this.#X(),p=this.#l(s),f=this.#c(s),m=this.#h(n),v=this.#d(n);return`
|
|
386
|
+
<header class="settings-header">
|
|
387
|
+
<strong>Settings</strong>
|
|
388
|
+
<button type="button" class="settings-close" aria-label="Close settings">
|
|
389
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
|
|
390
|
+
</button>
|
|
391
|
+
</header>
|
|
392
|
+
|
|
393
|
+
<div class="settings-body">
|
|
394
|
+
<!-- Appearance -->
|
|
395
|
+
<details name="settings" open>
|
|
396
|
+
<summary>Appearance</summary>
|
|
397
|
+
<div class="settings-section">
|
|
398
|
+
<span class="settings-label">Color Mode</span>
|
|
399
|
+
<fieldset data-segmented>
|
|
400
|
+
<legend class="visually-hidden">Color mode</legend>
|
|
401
|
+
${[{id:"auto",name:"Auto",icon:"monitor"},{id:"light",name:"Light",icon:"sun"},{id:"dark",name:"Dark",icon:"moon"}].map(A=>`
|
|
402
|
+
<label>
|
|
403
|
+
<input type="radio" name="settings-mode" value="${A.id}" ${t===A.id?"checked":""} />
|
|
404
|
+
<icon-wc name="${A.icon}" size="xs"></icon-wc> ${A.name}
|
|
405
|
+
</label>
|
|
406
|
+
`).join("")}
|
|
407
|
+
</fieldset>
|
|
408
|
+
|
|
409
|
+
<label class="settings-label" for="settings-theme">Theme</label>
|
|
410
|
+
<select id="settings-theme" name="settings-theme">
|
|
411
|
+
${Ha.map(A=>`
|
|
412
|
+
<optgroup label="${A.label}">
|
|
413
|
+
${A.themes.map(L=>`
|
|
414
|
+
<option value="${L.id}" ${i===L.id?"selected":""}>${L.name}</option>
|
|
415
|
+
`).join("")}
|
|
416
|
+
</optgroup>
|
|
417
|
+
`).join("")}
|
|
418
|
+
</select>
|
|
419
|
+
</div>
|
|
420
|
+
</details>
|
|
421
|
+
|
|
422
|
+
<!-- Accessibility -->
|
|
423
|
+
<details name="settings">
|
|
424
|
+
<summary>Accessibility</summary>
|
|
425
|
+
<div class="settings-section">
|
|
426
|
+
<label class="toggle-row">
|
|
427
|
+
<span>High Contrast</span>
|
|
428
|
+
<input type="checkbox" name="a11y-high-contrast" data-switch="sm" data-a11y="a11y-high-contrast" ${d.includes("a11y-high-contrast")?"checked":""} />
|
|
429
|
+
</label>
|
|
430
|
+
<label class="toggle-row">
|
|
431
|
+
<span>Large Text</span>
|
|
432
|
+
<input type="checkbox" name="a11y-large-text" data-switch="sm" data-a11y="a11y-large-text" ${d.includes("a11y-large-text")?"checked":""} />
|
|
433
|
+
</label>
|
|
434
|
+
<label class="toggle-row">
|
|
435
|
+
<span>Dyslexia-Friendly</span>
|
|
436
|
+
<input type="checkbox" name="a11y-dyslexia" data-switch="sm" data-a11y="a11y-dyslexia" ${d.includes("a11y-dyslexia")?"checked":""} />
|
|
437
|
+
</label>
|
|
438
|
+
</div>
|
|
439
|
+
</details>
|
|
440
|
+
|
|
441
|
+
<!-- Layout -->
|
|
442
|
+
<details name="settings">
|
|
443
|
+
<summary>Layout</summary>
|
|
444
|
+
<div class="settings-section">
|
|
445
|
+
<label class="toggle-row">
|
|
446
|
+
<span>Fluid Scaling</span>
|
|
447
|
+
<input type="checkbox" name="fluid-scaling" data-switch="sm" data-fluid-toggle ${p?"checked":""} />
|
|
448
|
+
</label>
|
|
449
|
+
<div class="density-row" ${p?"":"hidden"}>
|
|
450
|
+
<span class="settings-label">Density</span>
|
|
451
|
+
<fieldset data-segmented>
|
|
452
|
+
<legend class="visually-hidden">Density</legend>
|
|
453
|
+
${["compact","default","spacious"].map(A=>`
|
|
454
|
+
<label>
|
|
455
|
+
<input type="radio" name="settings-density" value="${A}" ${f===A?"checked":""} />
|
|
456
|
+
${A[0].toUpperCase()+A.slice(1)}
|
|
457
|
+
</label>
|
|
458
|
+
`).join("")}
|
|
459
|
+
</fieldset>
|
|
460
|
+
</div>
|
|
461
|
+
|
|
462
|
+
<label class="toggle-row">
|
|
463
|
+
<span>Canvas Backdrop</span>
|
|
464
|
+
<input type="checkbox" name="canvas-backdrop" data-switch="sm" data-backdrop-toggle ${m?"checked":""} />
|
|
465
|
+
</label>
|
|
466
|
+
<div class="backdrop-row" ${m?"":"hidden"}>
|
|
467
|
+
<span class="settings-label">Style</span>
|
|
468
|
+
<fieldset data-segmented>
|
|
469
|
+
<legend class="visually-hidden">Backdrop style</legend>
|
|
470
|
+
${["default","flush","elevated"].map(A=>`
|
|
471
|
+
<label>
|
|
472
|
+
<input type="radio" name="settings-backdrop" value="${A}" ${v===A?"checked":""} />
|
|
473
|
+
${A[0].toUpperCase()+A.slice(1)}
|
|
474
|
+
</label>
|
|
475
|
+
`).join("")}
|
|
476
|
+
</fieldset>
|
|
477
|
+
</div>
|
|
478
|
+
<div class="backdrop-row" ${m?"":"hidden"}>
|
|
479
|
+
<span class="settings-label">Chrome</span>
|
|
480
|
+
<fieldset data-segmented>
|
|
481
|
+
<legend class="visually-hidden">Backdrop chrome mode</legend>
|
|
482
|
+
${["card","stretch","integrated"].map(A=>`
|
|
483
|
+
<label>
|
|
484
|
+
<input type="radio" name="settings-backdrop-chrome" value="${A}" ${this.#u(r)===A?"checked":""} />
|
|
485
|
+
${A[0].toUpperCase()+A.slice(1)}
|
|
486
|
+
</label>
|
|
487
|
+
`).join("")}
|
|
488
|
+
</fieldset>
|
|
489
|
+
</div>
|
|
490
|
+
<div class="backdrop-row" ${m?"":"hidden"}>
|
|
491
|
+
<label class="toggle-row">
|
|
492
|
+
<span>Fixed Header</span>
|
|
493
|
+
<input type="checkbox" name="settings-backdrop-fixed" data-switch="sm" data-backdrop-fixed ${this.#g(r)?"checked":""} />
|
|
494
|
+
</label>
|
|
495
|
+
</div>
|
|
496
|
+
<div class="backdrop-row" ${m?"":"hidden"}>
|
|
497
|
+
<label class="settings-label" for="settings-page-bg">Page Background</label>
|
|
498
|
+
<select id="settings-page-bg" name="settings-page-bg">
|
|
499
|
+
<option value="" ${a===""?"selected":""}>Theme Default</option>
|
|
500
|
+
<option value="color" ${a==="color"?"selected":""}>Solid Color</option>
|
|
501
|
+
<option value="gradient" ${a==="gradient"?"selected":""}>Gradient</option>
|
|
502
|
+
</select>
|
|
503
|
+
</div>
|
|
504
|
+
<div class="page-bg-color-row backdrop-row" ${a==="color"&&m?"":"hidden"}>
|
|
505
|
+
<span class="settings-label">Color</span>
|
|
506
|
+
<input type="color" name="settings-page-bg-color" value="${o||"#1a1a2e"}" />
|
|
507
|
+
</div>
|
|
508
|
+
<div class="page-bg-grad-row backdrop-row" ${a==="gradient"&&m?"":"hidden"}>
|
|
509
|
+
<span class="settings-label">Start</span>
|
|
510
|
+
<input type="color" name="settings-page-bg-grad-start" value="${c||"#1a1a2e"}" />
|
|
511
|
+
<span class="settings-label">End</span>
|
|
512
|
+
<input type="color" name="settings-page-bg-grad-end" value="${l||"#16213e"}" />
|
|
513
|
+
</div>
|
|
514
|
+
<div class="page-bg-grad-dir-row backdrop-row" ${a==="gradient"&&m?"":"hidden"}>
|
|
515
|
+
<span class="settings-label">Direction</span>
|
|
516
|
+
<select name="settings-page-bg-grad-dir">
|
|
517
|
+
<option value="to bottom" ${(u||"to bottom")==="to bottom"?"selected":""}>Top \u2192 Bottom</option>
|
|
518
|
+
<option value="to right" ${u==="to right"?"selected":""}>Left \u2192 Right</option>
|
|
519
|
+
<option value="135deg" ${u==="135deg"?"selected":""}>Diagonal \u2198</option>
|
|
520
|
+
<option value="45deg" ${u==="45deg"?"selected":""}>Diagonal \u2197</option>
|
|
521
|
+
</select>
|
|
522
|
+
</div>
|
|
523
|
+
|
|
524
|
+
<label class="toggle-row">
|
|
525
|
+
<span>Sticky Navigation</span>
|
|
526
|
+
<input type="checkbox" name="sticky-nav" data-switch="sm" data-sticky-toggle ${this.#m()?"checked":""} />
|
|
527
|
+
</label>
|
|
528
|
+
</div>
|
|
529
|
+
</details>
|
|
530
|
+
|
|
531
|
+
<!-- Effects -->
|
|
532
|
+
<details name="settings">
|
|
533
|
+
<summary>Effects</summary>
|
|
534
|
+
<div class="settings-section">
|
|
535
|
+
<label class="toggle-row">
|
|
536
|
+
<span>Motion Effects</span>
|
|
537
|
+
<input type="checkbox" name="ext-motionFx" data-switch="sm" data-ext="motionFx" ${h.motionFx?"checked":""} />
|
|
538
|
+
</label>
|
|
539
|
+
<label class="toggle-row">
|
|
540
|
+
<span>Sound Effects</span>
|
|
541
|
+
<input type="checkbox" name="ext-sounds" data-switch="sm" data-ext="sounds" ${h.sounds?"checked":""} />
|
|
542
|
+
</label>
|
|
543
|
+
</div>
|
|
544
|
+
</details>
|
|
545
|
+
|
|
546
|
+
<!-- Environment -->
|
|
547
|
+
<details name="settings">
|
|
548
|
+
<summary>Environment</summary>
|
|
549
|
+
<div class="settings-section">
|
|
550
|
+
<label class="toggle-row">
|
|
551
|
+
<span>Time-of-Day Shifts</span>
|
|
552
|
+
<input type="checkbox" name="env-timeOfDay" data-switch="sm" data-env="timeOfDay" ${this.#U().timeOfDay?"checked":""} />
|
|
553
|
+
</label>
|
|
554
|
+
<label class="toggle-row">
|
|
555
|
+
<span>Seasonal Tinting</span>
|
|
556
|
+
<input type="checkbox" name="env-seasonal" data-switch="sm" data-env="seasonal" ${this.#U().seasonal?"checked":""} />
|
|
557
|
+
</label>
|
|
558
|
+
</div>
|
|
559
|
+
</details>
|
|
560
|
+
|
|
561
|
+
<!-- System -->
|
|
562
|
+
<details name="settings">
|
|
563
|
+
<summary>System</summary>
|
|
564
|
+
<div class="settings-section system-info">
|
|
565
|
+
<p class="system-version">Vanilla Breeze <code>v${Do()}</code></p>
|
|
566
|
+
<p class="system-sw-status" data-sw-status>Service Worker: <span>checking\u2026</span></p>
|
|
567
|
+
<footer class="system-actions">
|
|
568
|
+
<button type="button" data-action="clear-cache">Clear Cache</button>
|
|
569
|
+
<button type="button" data-action="check-update">Check for Updates</button>
|
|
570
|
+
</footer>
|
|
571
|
+
</div>
|
|
572
|
+
</details>
|
|
573
|
+
</div>
|
|
574
|
+
|
|
575
|
+
<footer class="settings-footer">
|
|
576
|
+
<button type="button" class="settings-reset">Reset to Defaults</button>
|
|
577
|
+
</footer>
|
|
578
|
+
`}#w(){this.#e.addEventListener("click",this.#y),this.listen(document,"click",this.#E),this.listen(document,"keydown",this.#v),this.#t.querySelector(".settings-close")?.addEventListener("click",()=>this.close()),this.#t.querySelectorAll('input[name="settings-mode"]').forEach(t=>{t.addEventListener("change",this.#C)}),this.#t.querySelector("#settings-theme")?.addEventListener("change",this.#I),this.#t.querySelector("input[data-fluid-toggle]")?.addEventListener("change",this.#N),this.#t.querySelectorAll('input[name="settings-density"]').forEach(t=>{t.addEventListener("change",this.#_)}),this.#t.querySelector("input[data-backdrop-toggle]")?.addEventListener("change",this.#O),this.#t.querySelectorAll('input[name="settings-backdrop"]').forEach(t=>{t.addEventListener("change",this.#F)}),this.#t.querySelectorAll('input[name="settings-backdrop-chrome"]').forEach(t=>{t.addEventListener("change",this.#D)}),this.#t.querySelector("input[data-backdrop-fixed]")?.addEventListener("change",this.#L),this.#t.querySelector("input[data-sticky-toggle]")?.addEventListener("change",this.#B),this.#t.querySelector('[name="settings-page-bg"]')?.addEventListener("change",this.#$),this.#t.querySelector('[name="settings-page-bg-color"]')?.addEventListener("input",this.#S),this.#t.querySelector('[name="settings-page-bg-grad-start"]')?.addEventListener("input",this.#S),this.#t.querySelector('[name="settings-page-bg-grad-end"]')?.addEventListener("input",this.#S),this.#t.querySelector('[name="settings-page-bg-grad-dir"]')?.addEventListener("change",this.#S),this.#t.querySelectorAll("input[data-a11y]").forEach(t=>{t.addEventListener("change",this.#T)}),this.#t.querySelectorAll("input[data-ext]").forEach(t=>{t.addEventListener("change",this.#q)}),this.#t.querySelectorAll("input[data-env]").forEach(t=>{t.addEventListener("change",this.#j)}),this.#t.querySelector(".settings-reset")?.addEventListener("click",this.#M),this.#t.querySelector('[data-action="clear-cache"]')?.addEventListener("click",this.#tt),this.#t.querySelector('[data-action="check-update"]')?.addEventListener("click",this.#Q),this.#J()}#y=t=>{t.stopPropagation(),this.toggle()};#E=t=>{this.#i&&!this.contains(t.target)&&this.close()};#v=t=>{t.key==="Escape"&&this.#i&&(t.preventDefault(),this.close(),this.#e?.focus())};#C=t=>{T.setMode(t.target.value)};#I=async t=>{let i=t.target;i.disabled=!0;try{await T.setBrand(i.value),this.#V()}catch{console.warn("[VB] Theme load failed, using default")}finally{i.disabled=!1}};#N=t=>{let i=t.target.checked,s=this.#c(T.getState().fluid)||"default";T.setFluid(this.#p(i,s)),this.#z(i)};#_=t=>{T.setFluid(this.#p(!0,t.target.value))};#O=t=>{let i=t.target.checked,s=this.#d(T.getState().backdrop)||"default";T.setBackdrop(this.#f(i,s)),this.#P(i)};#F=t=>{T.setBackdrop(this.#f(!0,t.target.value))};#D=t=>{let i=this.#g(T.getState().backdropChrome);T.setBackdropChrome(this.#b(t.target.value,i))};#L=t=>{let i=this.#u(T.getState().backdropChrome);T.setBackdropChrome(this.#b(i,t.target.checked))};#B=async t=>{let i=t.target.checked;this.#n=i,await k.set(U,"sticky",i?"on":"off");let s=document.querySelector("header");if(i){document.documentElement.dataset.sticky="",s&&(s.dataset.sticky="");let{initStickyManager:n}=await Promise.resolve().then(()=>(Ve(),ze));n()}else{delete document.documentElement.dataset.sticky,s&&delete s.dataset.sticky;let{destroyStickyManager:n}=await Promise.resolve().then(()=>(Ve(),ze));n()}};#$=t=>{let i=t.target.value;if(this.#H(i),i==="color"){let s=this.#t.querySelector('[name="settings-page-bg-color"]')?.value||"#1a1a2e";T.setPageBg({type:i,color:s})}else if(i==="gradient"){let s=this.#t.querySelector('[name="settings-page-bg-grad-start"]')?.value||"#1a1a2e",n=this.#t.querySelector('[name="settings-page-bg-grad-end"]')?.value||"#16213e",r=this.#t.querySelector('[name="settings-page-bg-grad-dir"]')?.value||"to bottom";T.setPageBg({type:i,gradStart:s,gradEnd:n,gradDir:r})}else T.setPageBg({})};#S=()=>{let t=this.#t.querySelector('[name="settings-page-bg"]')?.value||"";if(t==="color"){let i=this.#t.querySelector('[name="settings-page-bg-color"]')?.value||"";T.setPageBg({type:t,color:i})}else if(t==="gradient"){let i=this.#t.querySelector('[name="settings-page-bg-grad-start"]')?.value||"",s=this.#t.querySelector('[name="settings-page-bg-grad-end"]')?.value||"",n=this.#t.querySelector('[name="settings-page-bg-grad-dir"]')?.value||"to bottom";T.setPageBg({type:t,gradStart:i,gradEnd:s,gradDir:n})}};#T=t=>{let i=t.target.dataset.a11y,s=this.#G();if(t.target.checked&&!s.includes(i))s.push(i);else if(!t.target.checked){let n=s.indexOf(i);n!==-1&&s.splice(n,1)}this.#K(s),this.#Y(),window.dispatchEvent(new CustomEvent("vb:a11y-themes-change",{detail:s}))};#q=t=>{let i=t.target.dataset.ext,s=t.target.checked;this.#W(i,s),this.#Z()};#j=t=>{let i=t.target.dataset.env,s=t.target.checked;Zt.setSource(i,s)};#M=()=>{confirm("Reset all settings to defaults?")&&(T.reset(),this.#K([]),this.#Y(),window.dispatchEvent(new CustomEvent("vb:a11y-themes-change",{detail:[]})),this.#r={...Jt},k.remove(U,"extensions").catch(()=>{}),this.#Z(),this.#n=!1,k.remove(U,"sticky").catch(()=>{}),delete document.documentElement.dataset.sticky,Promise.resolve().then(()=>(Ve(),ze)).then(t=>t.destroyStickyManager()).catch(()=>{}),Zt.setSource("timeOfDay",!1),Zt.setSource("seasonal",!1),this.#R())};#x=()=>{this.#R()};#R(){let{mode:t,brand:i,fluid:s,backdrop:n,backdropChrome:r,pageBgType:a,pageBgColor:o,pageBgGradStart:c,pageBgGradEnd:l,pageBgGradDir:u}=T.getState(),d=this.#G(),h=this.#X(),p=this.#l(s),f=this.#c(s),m=this.#h(n),v=this.#d(n),A=this.#t.querySelector(`input[name="settings-mode"][value="${t}"]`);A&&(A.checked=!0);let L=this.#t.querySelector("#settings-theme");L&&(L.value=i||"default");let N=this.#t.querySelector("input[data-fluid-toggle]");N&&(N.checked=p);let K=this.#t.querySelector(`input[name="settings-density"][value="${f}"]`);K&&(K.checked=!0),this.#z(p);let P=this.#t.querySelector("input[data-backdrop-toggle]");P&&(P.checked=m);let X=this.#t.querySelector(`input[name="settings-backdrop"][value="${v}"]`);X&&(X.checked=!0);let eh=this.#u(r),La=this.#t.querySelector(`input[name="settings-backdrop-chrome"][value="${eh}"]`);La&&(La.checked=!0);let Ma=this.#t.querySelector("input[data-backdrop-fixed]");Ma&&(Ma.checked=this.#g(r)),this.#P(m);let Na=this.#t.querySelector('[name="settings-page-bg"]');Na&&(Na.value=a||"");let _a=this.#t.querySelector('[name="settings-page-bg-color"]');_a&&o&&(_a.value=o);let Da=this.#t.querySelector('[name="settings-page-bg-grad-start"]');Da&&c&&(Da.value=c);let $a=this.#t.querySelector('[name="settings-page-bg-grad-end"]');$a&&l&&($a.value=l);let Ia=this.#t.querySelector('[name="settings-page-bg-grad-dir"]');Ia&&u&&(Ia.value=u),m&&this.#H(a||""),this.#t.querySelectorAll("input[data-a11y]").forEach(Rt=>{let st=Rt;st.checked=d.includes(st.dataset.a11y||"")}),this.#t.querySelectorAll("input[data-ext]").forEach(Rt=>{let st=Rt,ke=st.dataset.ext,sh=h[ke];st.checked=sh??Jt[ke]});let qa=this.#t.querySelector("input[data-sticky-toggle]");qa&&(qa.checked=this.#m());let ih=this.#U();this.#t.querySelectorAll("input[data-env]").forEach(Rt=>{let st=Rt,ke=st.dataset.env;st.checked=ih[ke]??!1})}#z(t){let i=this.#t.querySelector(".density-row");i&&(i.hidden=!t)}#P(t){if(this.#t.querySelectorAll(".backdrop-row").forEach(i=>{i.hidden=!t}),t){let i=this.#t.querySelector('[name="settings-page-bg"]')?.value||"";this.#H(i)}}#H(t){let i=this.#t.querySelector(".page-bg-color-row"),s=this.#t.querySelector(".page-bg-grad-row"),n=this.#t.querySelector(".page-bg-grad-dir-row");i&&(i.hidden=t!=="color"),s&&(s.hidden=t!=="gradient"),n&&(n.hidden=t!=="gradient")}#G(){return[...this.#s]}#K(t){this.#s=[...t],k.set(U,"a11y",this.#s).catch(()=>{})}#Y(){let t=this.#G(),{brand:i}=T.getState(),s=document.documentElement,n=i!=="default"?[i,...t]:[...t];n.length?s.dataset.theme=n.join(" "):delete s.dataset.theme}#V(){this.#Y()}#U(){return Zt.load()}#X(){return{...this.#r}}#W(t,i){this.#r={...this.#r,[t]:i},k.set(U,"extensions",this.#r).catch(()=>{})}async#Z(){let t=this.#X(),i=document.documentElement;t.motionFx?delete i.dataset.motionReduced:i.dataset.motionReduced="",t.sounds?(Dt||(Dt=(await Promise.resolve().then(()=>(jo(),Ro))).SoundManager),Dt.init(),Dt.enable()):Dt&&Dt.disable(),window.dispatchEvent(new CustomEvent("vb:extensions-change",{detail:t}))}async#J(){let t=this.#t.querySelector("[data-sw-status] span");if(t){if(!("serviceWorker"in navigator)){t.textContent="Not supported";return}try{let s=(await qo()).cachedURLs?.length??0;t.textContent=`Active (${s} cached files)`}catch{t.textContent="Not registered"}}}#tt=async t=>{let i=t.target;i.disabled=!0,i.textContent="Clearing\u2026";try{await Bo(),i.textContent="Cleared!",this.#J(),setTimeout(()=>{i.textContent="Clear Cache",i.disabled=!1},2e3)}catch{i.textContent="Failed",setTimeout(()=>{i.textContent="Clear Cache",i.disabled=!1},2e3)}};#Q=async t=>{let i=t.target;i.disabled=!0,i.textContent="Checking\u2026";try{let{updated:s}=await Oo();i.textContent=s?"Update available!":"Up to date",setTimeout(()=>{i.textContent="Check for Updates",i.disabled=!1},2e3)}catch{i.textContent="Failed",setTimeout(()=>{i.textContent="Check for Updates",i.disabled=!1},2e3)}};open(){this.#i||(this.#i=!0,this.setAttribute("open",""),this.#e?.setAttribute("aria-expanded","true"),this.#R(),this.#et())}#et(){let t=this.getBoundingClientRect(),i=this.#t;i.style.removeProperty("top"),i.style.removeProperty("bottom"),i.style.removeProperty("left"),i.style.removeProperty("right");let s=i.getBoundingClientRect(),n=window.innerWidth,r=window.innerHeight,a=t.top,o=r-t.bottom;a<s.height&&o>a?(i.style.top="calc(100% + 8px)",i.style.bottom="auto"):(i.style.bottom="calc(100% + 8px)",i.style.top="auto");let c=n-t.right,l=t.left,u=s.width;t.right<u&&l<c?(i.style.left="0",i.style.right="auto"):(i.style.right="0",i.style.left="auto")}close(){this.#i&&(this.#i=!1,this.removeAttribute("open"),this.#e?.setAttribute("aria-expanded","false"))}toggle(){this.#i?this.close():this.open()}};b("settings-panel",Is);et();$t();var Lp={update:"package",alert:"alert-triangle",watch:"eye",system:"settings",message:"mail",stewardship:"shield"};function F(e){return String(e??"").replace(/[&<>"']/g,t=>({"&":"&","<":"<",">":">",'"':""","'":"'"})[t])}var Bs=class extends y{#e="panel";#t=null;#i=null;#s=null;#r=null;#n=new Set;#a=[];#o=!1;#l=null;#c=new Set;#p="all";#m=[];setup(){return this.#e=this.getAttribute("mode")==="banner"?"banner":"panel",this.#e==="banner"?this.#h():this.#f(),!0}teardown(){this.#l!=null&&(clearInterval(this.#l),this.#l=null)}get notifications(){return[...this.#a]}set notifications(t){this.#e==="panel"&&(this.#a=Array.isArray(t)?t:[],typeof this.#w=="function"&&this.#w(),typeof this.#E=="function"&&this.#E(),this.dispatchEvent(new CustomEvent("notification-wc:notifications-changed",{detail:{notifications:this.#a,source:"property"},bubbles:!0})))}async#h(){let t=this.getAttribute("persist");if(t||console.warn("[notification-wc] banner mode requires a persist attribute"),this.dataset.mode="banner",this.dataset.variant=this.getAttribute("variant")||"info",this.dataset.position=this.getAttribute("position")||"top",t){let s=Number(this.getAttribute("expires")??""),n=Number.isFinite(s)&&s>0?s*864e5:void 0,r=await k.get("notifications",t,n?{maxAge:n}:void 0);if(r&&r.dismissed){this.hidden=!0;return}}let i=this.querySelector('[value="dismiss"], [data-dismiss]');i&&(this.#t=i,this.listen(i,"click",this.#d))}#d=async t=>{t.preventDefault();let i=this.getAttribute("persist");i&&await k.set("notifications",i,{dismissed:!0}),this.dispatchEvent(new CustomEvent("notification-wc:dismiss",{bubbles:!0,composed:!0,detail:{id:i}})),this.hidden=!0};async#f(){if(this.dataset.mode="panel",await this.#u(),this.#b(),this.#k(),await this.#v(),this.#E(),this.listen(document,"click",this.#F),this.listen(document,"keydown",this.#D),this.listen(document,"page-watch:add",()=>this.#v()),this.listen(document,"page-watch:remove",()=>this.#v()),this.getAttribute("src")){await this.#T();let t=Number(this.getAttribute("poll"));Number.isFinite(t)&&t>0&&(this.#l=setInterval(()=>this.#T(),t))}}async#u(){let t=this.getAttribute("storage-key")||"notifications",i=await k.get(t,"read-ids");Array.isArray(i)&&(this.#n=new Set(i.filter(s=>typeof s=="string")))}async#g(){let t=this.getAttribute("storage-key")||"notifications";await k.set(t,"read-ids",Array.from(this.#n))}#b(){if(this.#i=this.querySelector(":scope > [data-trigger]"),this.#i){let t=this.#i.querySelector(".notification-badge");t||(t=document.createElement("span"),t.className="notification-badge",t.hidden=!0,this.#i.appendChild(t))}else{let t=document.createElement("button");t.type="button",t.setAttribute("data-trigger",""),t.className="notification-trigger",t.setAttribute("aria-label","Notifications"),t.innerHTML='<icon-wc name="bell" size="sm"></icon-wc><span class="notification-badge" hidden>0</span>',this.#i=t,this.prepend(t)}this.#r=this.#i.querySelector(".notification-badge"),this.#i.setAttribute("aria-haspopup","dialog"),this.#i.setAttribute("aria-expanded","false"),this.listen(this.#i,"click",this.#O)}#k(){this.#s=document.createElement("div"),this.#s.className="notification-panel",this.#s.setAttribute("role","dialog"),this.#s.setAttribute("aria-label","Notifications"),this.#s.hidden=!0;let t=`notification-panel-${crypto.randomUUID().slice(0,8)}`;this.#s.id=t,this.#i?.setAttribute("aria-controls",t),this.#s.innerHTML=`
|
|
579
|
+
<header class="notification-header">
|
|
580
|
+
<strong>Notifications</strong>
|
|
581
|
+
<button type="button" class="notification-mark-all">Mark all read</button>
|
|
582
|
+
</header>
|
|
583
|
+
<nav class="notification-tabs" role="tablist" aria-label="Notification categories">
|
|
584
|
+
<button type="button" role="tab" data-tab="all" aria-selected="true">All</button>
|
|
585
|
+
<button type="button" role="tab" data-tab="watching" aria-selected="false">Watching <span class="notification-tab-count" hidden>0</span></button>
|
|
586
|
+
</nav>
|
|
587
|
+
<ul class="notification-list" role="list" data-tab-panel="all"></ul>
|
|
588
|
+
<ul class="notification-watch-list" role="list" data-tab-panel="watching" hidden></ul>
|
|
589
|
+
<footer class="notification-footer" hidden>
|
|
590
|
+
<em>No notifications</em>
|
|
591
|
+
</footer>
|
|
592
|
+
`,this.appendChild(this.#s);let i=this.#s.querySelector(".notification-mark-all");i&&this.listen(i,"click",this.#B);for(let s of this.#s.querySelectorAll('[role="tab"]'))this.listen(s,"click",this.#N);this.#w()}#A(){let t=Array.from(this.querySelectorAll(":scope > article")),i=new Map;for(let s of t){let n=s.getAttribute("data-id")||s.id||`static-${i.size}`,r=s.getAttribute("data-type")||"update",a=s.getAttribute("data-date")||"",o=s.querySelector("h1, h2, h3, h4, h5, h6")?.textContent?.trim()||n,l=s.querySelector("p")?.textContent?.trim()||"",u=s.querySelector("a");i.set(n,{id:n,type:r,date:a,title:o,body:l,url:u?.getAttribute("href")||null,source:"static"})}for(let s of this.#a)if(!(!s||typeof s.id!="string")){if(s.dismissed){i.delete(s.id);continue}i.set(s.id,{...i.get(s.id),...s,source:"dynamic"})}return Array.from(i.values()).sort((s,n)=>{let r=s.date?Date.parse(s.date):0;return(n.date?Date.parse(n.date):0)-r})}#w(){if(!this.#s)return;let t=this.#s.querySelector(".notification-list"),i=this.#s.querySelector(".notification-footer");if(!t)return;let s=this.#A();t.innerHTML=s.map(n=>this.#y(n)).join(""),i&&(i.hidden=s.length>0);for(let n of t.querySelectorAll("[data-notification-id]"))this.listen(n,"click",this.#L);this.#E()}#y(t){let i=Lp[t.type]||"bell",s=this.#n.has(t.id),n=t.date?new Date(t.date).toLocaleString():"",r=`
|
|
593
|
+
<icon-wc class="notification-type-icon" name="${F(i)}" size="sm"></icon-wc>
|
|
594
|
+
<div class="notification-body">
|
|
595
|
+
<h4>${F(t.title)}</h4>
|
|
596
|
+
${t.body?`<p>${F(t.body)}</p>`:""}
|
|
597
|
+
${n?`<time datetime="${F(t.date)}">${F(n)}</time>`:""}
|
|
598
|
+
</div>
|
|
599
|
+
`,a=t.url?"a":"button",o=t.url?`href="${F(t.url)}"`:'type="button"';return`<li role="listitem" data-notification-id="${F(t.id)}" data-type="${F(t.type||"update")}"${s?" data-read":""}>
|
|
600
|
+
<${a} class="notification-row" ${o}>${r}</${a}>
|
|
601
|
+
</li>`}#E(){if(!this.#r)return;let i=this.#A().filter(s=>!this.#n.has(s.id)).length;i>0?(this.#r.textContent=String(i),this.#r.hidden=!1,this.#i?.querySelector("icon-wc")?.setAttribute("name","bell-dot")):(this.#r.hidden=!0,this.#i?.querySelector("icon-wc")?.setAttribute("name","bell"))}async#v(){try{this.#m=await k.list("watches")}catch{this.#m=[]}this.#C()}#C(){if(!this.#s)return;let t=this.#s.querySelector(".notification-watch-list"),i=this.#s.querySelector(".notification-tab-count");if(t){if(t.innerHTML=this.#m.map(s=>this.#I(s)).join("")||`<li class="notification-empty"><em>You aren't watching any pages yet. Use the “Watch” button on a page to start.</em></li>`,i){let s=this.#m.length;s>0?(i.textContent=String(s),i.hidden=!1):i.hidden=!0}for(let s of t.querySelectorAll("[data-watch-unwatch]"))this.listen(s,"click",this.#_)}}#I(t){let i=t.data||{},s=i.url||t.key,n=i.title||s,r=i.lastChecked?new Date(i.lastChecked).toLocaleString():"\u2014",a=!!i.lastChanged;return`<li class="notification-watch-item"${a?" data-changed":""}>
|
|
602
|
+
<a class="notification-watch-row" href="${F(s)}">
|
|
603
|
+
<icon-wc class="notification-type-icon" name="eye" size="sm"></icon-wc>
|
|
604
|
+
<div class="notification-body">
|
|
605
|
+
<h4>${F(n)}${a?' <span class="notification-changed-badge">Changed</span>':""}</h4>
|
|
606
|
+
<p>${F(s)}</p>
|
|
607
|
+
<time>Last checked: ${F(r)}</time>
|
|
608
|
+
</div>
|
|
609
|
+
</a>
|
|
610
|
+
<button type="button" class="notification-unwatch" data-watch-unwatch data-watch-key="${F(t.key)}" aria-label="Unwatch ${F(n)}">
|
|
611
|
+
<icon-wc name="x" size="xs"></icon-wc>
|
|
612
|
+
</button>
|
|
613
|
+
</li>`}#N=t=>{let i=t.currentTarget.dataset.tab;if(!i||i===this.#p||(this.#p=i,!this.#s))return;for(let n of this.#s.querySelectorAll('[role="tab"]')){let r=n.dataset.tab===i;n.setAttribute("aria-selected",r?"true":"false")}for(let n of this.#s.querySelectorAll("[data-tab-panel]"))n.hidden=n.dataset.tabPanel!==i;let s=this.#s.querySelector(".notification-footer");s&&(s.hidden=!0)};#_=async t=>{t.preventDefault(),t.stopPropagation();let s=t.currentTarget.getAttribute("data-watch-key");if(!s)return;let n=this.#m.find(r=>r.key===s);await k.remove("watches",s),this.#m=this.#m.filter(r=>r.key!==s),this.#C(),this.dispatchEvent(new CustomEvent("page-watch:remove",{bubbles:!0,composed:!0,detail:{url:n?.data?.url||s,subscriptionId:n?.data?.subscriptionId||null}}))};#O=t=>{t.stopPropagation(),this.#o?this.#S():this.#$()};#F=t=>{this.#o&&!this.contains(t.target)&&this.#S()};#D=t=>{t.key==="Escape"&&this.#o&&(t.preventDefault(),this.#S(),this.#i?.focus())};#L=async t=>{let i=t.currentTarget.closest("[data-notification-id]");if(!i)return;let s=i.getAttribute("data-notification-id");s&&(this.#n.has(s)||(this.#n.add(s),i.setAttribute("data-read",""),await this.#g(),this.#E(),this.dispatchEvent(new CustomEvent("notification-wc:read",{bubbles:!0,composed:!0,detail:{id:s}}))))};#B=async()=>{let t=this.#A();for(let i of t)this.#n.add(i.id);await this.#g(),this.#w();for(let i of t)this.dispatchEvent(new CustomEvent("notification-wc:read",{bubbles:!0,composed:!0,detail:{id:i.id}}))};#$(){this.#s&&(this.#o=!0,this.#s.hidden=!1,this.#i?.setAttribute("aria-expanded","true"),this.#v(),this.dispatchEvent(new CustomEvent("notification-wc:open",{bubbles:!0,composed:!0})))}#S(){this.#s&&(this.#o=!1,this.#s.hidden=!0,this.#i?.setAttribute("aria-expanded","false"),this.dispatchEvent(new CustomEvent("notification-wc:close",{bubbles:!0,composed:!0})))}async#T(){let t=this.getAttribute("src");if(!t)return;let i,s=0;try{if(t.startsWith("http")||t.startsWith("/")){let c=await fetch(t,{headers:{accept:"application/json"}});if(s=c.status,!c.ok)throw new Error(`${c.status}`);i=await c.json()}else i=await new R(t).get("/")}catch(c){let l=c instanceof I?c.status:s;if(l===404||l===503)return;let u=c instanceof I?`${c.status}`:String(c);console.warn("[notification-wc] failed to fetch",t,u);return}let n=Array.isArray(i)?i:Array.isArray(i?.notifications)?i.notifications:[],r=this.#c,a=r.size===0,o=this.hasAttribute("toast-new")?document.querySelector("toast-msg"):null;for(let c of n)c?.id&&(r.has(c.id)||(this.dispatchEvent(new CustomEvent("notification-wc:new",{bubbles:!0,composed:!0,detail:{notification:c}})),!a&&o&&typeof o.show=="function"&&o.show({message:c.title||c.body||"New notification",variant:c.type==="alert"||c.type==="stewardship"?"warning":"info",duration:5e3})),r.add(c.id));this.#a=n,this.#w()}};b("notification-wc",Bs);var Qo="Watch for updates",zp="Watching",Ks=class extends y{#e=null;setup(){if(this.hasAttribute("server-sync")){let i=window;i.vbPageWatch={...i.vbPageWatch??{},serverSync:!0}}let t=this.#t();this.dataset.variant=t;for(let i of Array.from(this.children))i.hasAttribute?.("data-watch-page")&&i.remove();this.#e=this.#i(t),this.appendChild(this.#e),this.listen(document,"page-watch:add",this.#s),this.listen(document,"page-watch:remove",this.#s)}teardown(){this.#e&&(this.#e.remove(),this.#e=null)}#t(){let t=this.getAttribute("variant");return t==="compact"||t==="button"?t:"icon"}#i(t){let i=document.createElement("button");i.type="button",i.setAttribute("data-watch-page",""),i.className="ghost",i.setAttribute("aria-label","Watch this page for updates");let s=t==="icon"?"sm":"xs",n=this.getAttribute("label")??Qo;return t==="icon"?i.innerHTML=`<icon-wc name="bookmark" size="${s}"></icon-wc>`:(i.innerHTML=`<icon-wc name="bookmark" size="${s}"></icon-wc><span>${this.#r(n)}</span>`,i.setAttribute("data-watch-label-locked","")),i}#s=async()=>{if(this.#e)try{let{readWatch:t}=await Promise.resolve().then(()=>(Ys(),Gs)),s=!!await t();this.#e.setAttribute("aria-pressed",s?"true":"false");let n=this.#e.querySelector("icon-wc");n&&n.setAttribute("name",s?"bookmark-check":"bookmark");let r=this.#e.querySelector("span");if(r&&this.#t()!=="icon"){let a=this.getAttribute("label");r.textContent=a||(s?zp:Qo)}this.#e.setAttribute("title",s?"Stop watching this page":"Watch this page for content updates")}catch{}};#r(t){let i=document.createElement("div");return i.textContent=t,i.innerHTML}};b("watch-wc",Ks);function ic(e){let t=!1;try{t=sessionStorage.getItem("vb_optout")==="1"}catch{}let i=!1;if(typeof e?.consent=="function")try{i=e.consent()===!1}catch{i=!0}return{user:t,gpc:navigator.globalPrivacyControl===!0,dnt:navigator.doNotTrack==="1",consent:i}}function sc(e){let t=ic(e);return t.user?"user":t.gpc?"gpc":t.dnt?"dnt":t.consent?"consent":null}function Xe(e){return sc(e)!==null}function nc(e){return e?.closest?.("[data-vb-no-track]")!=null}function Vp(){let{dataset:e}=document.documentElement,t={};for(let i of Object.keys(e)){let s=e[i];s!=null&&s!==""&&(t[i]=s)}return t}function Up(){let e={};for(let i of document.querySelectorAll('meta[name^="vb:"]')){let s=i.getAttribute("name")?.slice(3),n=i.getAttribute("content")?.trim();s&&n&&(e[s]=n)}let t=[];for(let i of document.querySelectorAll('meta[name="concept"]')){let s=i.getAttribute("content")?.trim();s&&t.push(s)}return t.length&&(e.concepts=t),e}function Wp(e,t){if(!t?.length)return e;for(let{pattern:i,replace:s}of t)if(i.test(e))return e.replace(i,s);return e}function Gp(e,t){let i=JSON.stringify(t);if(typeof navigator.sendBeacon=="function"){let s=new Blob([i],{type:"application/json"});if(navigator.sendBeacon(e,s))return!0}try{return fetch(e,{method:"POST",body:i,keepalive:!0,headers:{"content-type":"application/json"}}),!0}catch{return!1}}var _={config:null,queue:[]},It={sent:0,logged:0,iframeDisabled:!1},Xs=Symbol.for("vanilla-breeze.analytics"),Js="vb:analytics-status";function Ye(){try{document.dispatchEvent(new CustomEvent(Js))}catch{}}function Qs(e){return`${(_.config?.endpoint??"/api/analytics").replace(/\/+$/,"")}/${e}`}function Ke(e,t){let i=_.config;if(!i)throw new Error("analytics: buildEnvelope called before init");let s=Wp(location.pathname+location.search,i.urlMasks),n=typeof i.context=="function"?i.context()??{}:{};return{name:e,ts:Date.now(),site:i.siteId,path:s,referrer:document.referrer||"",context:{...Vp(),...Up(),...n},props:t??{}}}function Ze(e,t){let i=_.config;if(!i||i.transport==="disabled")return!1;if(i.transport==="console")return console.log("%c[vb:analytics]","color:#0aa;font-weight:600",e,t),It.logged++,Ye(),!0;let s=Gp(Qs(e),t);return s&&(It.sent++,Ye()),s}function rc(){let e=_.config?.sampleRate??1;return e>=1?!0:Math.random()<e}var tc=null;function ac(){if(!_.config||Xe(_.config)||document.documentElement.hasAttribute("data-vb-no-track")||!rc())return;let e=location.pathname+location.search;e!==tc&&(tc=e,Ze("hit",Ke("page.view",{})))}function Yp(){let e,t=()=>{clearTimeout(e),e=setTimeout(ac,100)},i=history.pushState.bind(history);history.pushState=function(...n){i(...n),t()};let s=history.replaceState.bind(history);history.replaceState=function(...n){s(...n),t()},window.addEventListener("popstate",t)}function Kp(e){let t={};for(let[i,s]of Object.entries(e.dataset)){if(i==="vbEvent"||!i.startsWith("vbEvent"))continue;let n=i.slice(7).replace(/^./,r=>r.toLowerCase());t[n]=s}return t}function Xp(e){if(!_.config||Xe(_.config))return;let i=e.target?.closest?.("[data-vb-event]");if(!i||nc(i))return;let s=i.dataset.vbEvent;s&&tn.track(s,Kp(i))}function ec(){let e=document.querySelectorAll('a[href^="http"]');for(let t of e){if(t.hostname===location.hostname||nc(t)||t.hasAttribute("data-vb-analytics-wired"))continue;let i=encodeURIComponent(_.config?.siteId??"default"),s=`${Qs("click")}?site=${i}&from=${encodeURIComponent(location.pathname)}`;t.hasAttribute("ping")||t.setAttribute("ping",s),t.addEventListener("click",()=>{if(Xe(_.config))return;let n=navigator.userAgent;/Firefox|Brave/.test(n)&&Ze("click",Ke("link.outbound",{to:t.hostname,href:t.href}))}),t.setAttribute("data-vb-analytics-wired","")}}function Zs(){if(!_.queue.length)return;let e=_.queue.splice(0);Ze("events",{site:_.config?.siteId,events:e})}function Zp(){document.visibilityState==="hidden"&&Zs()}var Jp={endpoint:"/api/analytics",siteId:"default",transport:"disabled",sampleRate:1,consent:null,context:null,urlMasks:null,autoPageView:!0,autoOutboundLinks:!0,autoDeclarative:!0,allowInIframe:!1};function Qp(){try{return window.top!==window.self}catch{return!0}}var tn={init(e={}){if(_.config)return;let t={...Jp,...e};if(_.config=t,globalThis[Xs]||(globalThis[Xs]=tn),queueMicrotask(Ye),Qp()&&!t.allowInIframe){It.iframeDisabled=!0,t.transport="disabled",t.autoPageView=!1,t.autoOutboundLinks=!1,t.autoDeclarative=!1;return}t.transport==="disabled"&&(t.autoOutboundLinks=!1),t.autoDeclarative&&document.addEventListener("click",Xp,{capture:!0}),t.autoOutboundLinks&&(ec(),new MutationObserver(()=>ec()).observe(document.body,{childList:!0,subtree:!0})),t.autoPageView&&(ac(),Yp()),document.addEventListener("visibilitychange",Zp),window.addEventListener("pagehide",Zs)},track(e,t={}){_.config&&(Xe(_.config)||rc()&&Ze("hit",Ke(e,t)))},flush:Zs,setConsent(e){try{e?sessionStorage.removeItem("vb_optout"):sessionStorage.setItem("vb_optout","1")}catch{}Ye()},getStatus(){let e=_.config,t=ic(e),i=sc(e),s=null;if(e)try{s=Ke("page.view",{})}catch{s=null}let n=e?.transport??null;return{initialized:e!=null,active:e!=null&&n!=="disabled"&&i===null,optedOut:i!==null,reason:i,signals:t,transport:n,inIframe:It.iframeDisabled,endpoint:e?Qs("hit"):null,siteId:e?.siteId??null,sampleRate:e?.sampleRate??null,outboundLinks:e?.autoOutboundLinks??!1,queued:_.queue.length,sent:It.sent,logged:It.logged,collects:s?Object.keys(s):[],contextKeys:s?Object.keys(s.context):[],preview:s}},get config(){return _.config?{..._.config}:null}};function en(){return globalThis[Xs]??tn}var tf="Analytics on this page",ef=2;function sf(e){let t=Number.parseInt(e??"",10);return Number.isInteger(t)&&t>=1&&t<=6?t:ef}var oc={gpc:"your browser sends a Global Privacy Control signal",dnt:"your browser sends Do Not Track",consent:"this site has not been given consent to collect analytics"};function nf(e){if(!e||!e.initialized)return{state:"off",reason:"uninitialized",text:"Off. The analytics runtime is not running on this page, so nothing is sent."};if(e.inIframe)return{state:"off",reason:"iframe",text:"Off. Analytics does not run inside embedded frames, so nothing is sent."};if(e.reason==="user")return{state:"paused",reason:"user",text:"Paused for this tab. Nothing is being sent."};if(e.reason){let i=oc[e.reason];return{state:"off",reason:e.reason,text:`Off because ${i}. Nothing is sent.`}}if(e.transport==="disabled")return{state:"off",reason:"disabled",text:"Off. This site has analytics switched off, so nothing is sent."};if(e.transport==="console")return{state:"debug",reason:null,text:"Debug mode. Events are written to this browser\u2019s console, not sent anywhere."};let t=typeof e.sampleRate=="number"&&e.sampleRate<1?` (a ${Math.round(e.sampleRate*100)}% sample)`:"";return{state:"active",reason:null,text:`Active. Events from this page are sent to ${e.endpoint}${t}.`}}function rf(e){return e?.signals?["gpc","dnt","consent"].filter(t=>e.signals[t]):[]}var sn=class extends y{static get observedAttributes(){return["heading","heading-level"]}#e={};setup(){(!this.#e.status||!this.contains(this.#e.status))&&this.#r(),this.listen(this,"click",this.#i),this.listen(document,Js,()=>this.refresh()),this.refresh()}attributeChangedCallback(t){this.#e.heading&&(t==="heading"&&(this.#e.heading.textContent=this.#t),t==="heading-level"&&this.#n())}get#t(){return this.getAttribute("heading")||tf}get status(){let t=en();return typeof t?.getStatus=="function"?t.getStatus():null}#i=t=>{let i=t.target?.closest?.("[data-analytics-action]");if(!i||!this.contains(i)||i.getAttribute("aria-disabled")==="true")return;let s=i.dataset.analyticsAction;s==="toggle"&&this.#s(),s==="refresh"&&this.refresh()};#s(){let t=!this.status?.signals?.user;en().setConsent(!t),this.dispatchEvent(new CustomEvent(t?"analytics-panel:optout":"analytics-panel:optin",{bubbles:!0,composed:!0})),this.refresh()}#r(){let t=`analytics-panel-${Math.random().toString(36).slice(2,8)}`;this.innerHTML=`
|
|
614
|
+
<header class="analytics-panel__header">
|
|
615
|
+
<h2 data-part="heading"></h2>
|
|
616
|
+
<p class="analytics-panel__status" role="status">
|
|
617
|
+
<span class="analytics-panel__dot" aria-hidden="true"></span>
|
|
618
|
+
<span data-part="status"></span>
|
|
619
|
+
</p>
|
|
620
|
+
</header>
|
|
621
|
+
|
|
622
|
+
<section class="analytics-panel__body" aria-labelledby="${t}-fields">
|
|
623
|
+
<h3 id="${t}-fields" data-part="fields-heading">What an event from this page contains</h3>
|
|
624
|
+
<dl class="analytics-panel__data" data-part="data"></dl>
|
|
625
|
+
<p class="analytics-panel__empty" data-part="empty" hidden></p>
|
|
626
|
+
</section>
|
|
627
|
+
|
|
628
|
+
<footer class="analytics-panel__actions">
|
|
629
|
+
<button type="button" data-analytics-action="toggle" data-part="toggle"
|
|
630
|
+
class="analytics-panel__action analytics-panel__action--toggle"></button>
|
|
631
|
+
<button type="button" data-analytics-action="refresh" class="analytics-panel__action">Refresh</button>
|
|
632
|
+
<p class="analytics-panel__hint" id="${t}-hint" data-part="hint" hidden></p>
|
|
633
|
+
</footer>
|
|
634
|
+
|
|
635
|
+
<p class="analytics-panel__note">
|
|
636
|
+
No cookies and no visitor ID. The only thing stored on this device is
|
|
637
|
+
the pause setting, kept in this tab’s session storage until you
|
|
638
|
+
close it. Events already sent are stored on the server without an
|
|
639
|
+
identifier, so they cannot be looked up or deleted from here. The
|
|
640
|
+
server records your country from the request; your IP address is not
|
|
641
|
+
stored.
|
|
642
|
+
</p>
|
|
643
|
+
`;for(let i of this.querySelectorAll("[data-part]"))this.#e[i.dataset.part??""]=i;this.#e.heading.textContent=this.#t,this.#n()}#n(){let t=sf(this.getAttribute("heading-level")),i={heading:t,"fields-heading":Math.min(t+1,6)};for(let[s,n]of Object.entries(i)){let r=this.#e[s];if(!r||r.localName===`h${n}`)continue;let a=document.createElement(`h${n}`);for(let{name:o,value:c}of r.attributes)a.setAttribute(o,c);a.textContent=r.textContent,r.replaceWith(a),this.#e[s]=a}}refresh(){if(!this.#e.status)return;let t=this.status,i=nf(t),s=this.#e;this.setAttribute("data-state",i.state),i.reason?this.setAttribute("data-reason",i.reason):this.removeAttribute("data-reason"),s.status.textContent!==i.text&&(s.status.textContent=i.text),this.#a(t);let n=!!t?.signals?.user,r=rf(t),a=n?"Resume analytics":"Pause analytics";if(s.toggle.textContent!==a&&(s.toggle.textContent=a),s.toggle.setAttribute("aria-pressed",String(n)),n&&r.length>0?s.toggle.setAttribute("aria-disabled","true"):s.toggle.removeAttribute("aria-disabled"),r.length){let c=r.map(l=>oc[l]).join(" and ");s.hint.textContent=n?`Resume is unavailable because ${c}.`:`Analytics stays off because ${c}; pausing as well changes nothing.`,s.hint.hidden=!1,s.toggle.setAttribute("aria-describedby",s.hint.id)}else s.hint.textContent="",s.hint.hidden=!0,s.toggle.removeAttribute("aria-describedby")}#a(t){let{data:i,empty:s}=this.#e;if(!t?.initialized||!t.preview){i.hidden=!0,i.replaceChildren(),s.hidden=!1,s.textContent="Nothing to show: the analytics runtime has not started on this page.";return}s.hidden=!0,i.hidden=!1;let n=[["Fields",t.collects.join(", ")],["Page path",t.preview.path],["Referrer",t.preview.referrer||"(none)"],["Page context",t.contextKeys.length?t.contextKeys.join(", "):"(none)"]];t.transport==="beacon"?(n.push(["Sent to",t.endpoint]),n.push(["Sent from this page",String(t.sent)])):t.transport==="console"&&n.push(["Logged on this page",String(t.logged)]),t.queued>0&&n.push(["Waiting to send",String(t.queued)]),t.outboundLinks&&n.push(["Outbound link clicks","Reported (site, page path, destination)"]);let r=document.createDocumentFragment();for(let[a,o]of n){let c=document.createElement("dt");c.textContent=a;let l=document.createElement("dd");l.textContent=o,r.append(c,l)}i.replaceChildren(r)}};b("analytics-panel",sn);var nn="data-brand-mark-img",af="(width < 48rem)",rn=class extends y{static observedAttributes=["src","src-dark","src-compact","compact-media","alt","wordmark","height"];#e=null;#t=null;#i=null;#s=!1;setup(){this.#o(),this.hasAttribute("src-dark")&&this.#n(),this.#c(),this.#t=new MutationObserver(()=>this.#p()),this.#t.observe(this,{childList:!0,characterData:!0,subtree:!0})}teardown(){this.#e?.disconnect(),this.#e=null,this.#t?.disconnect(),this.#t=null,this.#i=null,this.#s=!1}attributeChangedCallback(t,i,s){if(i!==s&&!(!this.isConnected||!this.hasAttribute("data-upgraded"))){if(t==="height"){this.#o();return}t==="src-dark"&&s!==null&&this.#n(),this.#c()}}#r(){let t=document.documentElement.getAttribute("data-mode");if(t==="dark")return!0;if(t==="light")return!1;let i=getComputedStyle(this).colorScheme||"";return/\bdark\b/.test(i)&&!/\blight\b/.test(i)?!0:/\blight\b/.test(i)&&!/\bdark\b/.test(i)?!1:(this.#i??matchMedia("(prefers-color-scheme: dark)")).matches}#n(){this.#s||(this.#s=!0,this.#i=matchMedia("(prefers-color-scheme: dark)"),this.listen(this.#i,"change",this.#a),this.listen(window,"vb:theme-change",this.#a),this.#e=new MutationObserver(this.#a),this.#e.observe(document.documentElement,{attributes:!0,attributeFilter:["data-mode","data-theme"]}))}#a=()=>{this.isConnected&&this.#c()};#o(){let t=this.getAttribute("height")?.trim();if(!t){this.style.removeProperty("--brand-mark-height"),this.getAttribute("style")||this.removeAttribute("style");return}this.style.setProperty("--brand-mark-height",/^\d+(\.\d+)?$/.test(t)?`${t}px`:t)}#l(){return this.querySelector(`:scope > [${nn}]`)}#c(){let t=this.getAttribute("src"),i=this.#l();if(!t){i?.remove();return}let s=this.getAttribute("src-dark"),n=s&&this.#r()?s:t;if(!(i instanceof HTMLPictureElement)||!i.querySelector(":scope > img")){i?.remove(),i=document.createElement("picture"),i.setAttribute(nn,"");let c=document.createElement("img");c.decoding="async",i.append(c),this.prepend(i)}let r=i.querySelector(":scope > img");r.getAttribute("src")!==n&&r.setAttribute("src",n);let a=this.getAttribute("src-compact"),o=i.querySelector(":scope > source");if(a){o||(o=document.createElement("source"),i.prepend(o));let c=this.getAttribute("compact-media")||af;o.getAttribute("media")!==c&&o.setAttribute("media",c),o.getAttribute("srcset")!==a&&o.setAttribute("srcset",a)}else o?.remove();this.#p()}#p(){let t=this.#l()?.querySelector(":scope > img");if(!t)return;let i=this.getAttribute("alt"),s=!this.hasAttribute("wordmark"),n;s&&i?n=i:this.#m()?n="":n=i??"",t.getAttribute("alt")!==n&&t.setAttribute("alt",n)}#m(){for(let t of this.childNodes)if(!(t instanceof Element&&t.hasAttribute(nn))&&t.textContent?.trim())return!0;return!1}};b("brand-mark",rn);var of="52rem",an=class extends HTMLElement{#e=null;connectedCallback(){let t=this.getAttribute("breakpoint")||of;this.#e=matchMedia(`(max-width: ${t})`),this.#e.addEventListener("change",this.#t),this.#t(void 0)}disconnectedCallback(){this.#e?.removeEventListener("change",this.#t),this.#e=null}#t=t=>{let i=this.#e?.matches??!1;if(i)this.setAttribute("data-mobile","");else{this.removeAttribute("data-mobile");let n=this.querySelector("[popover]");n?.matches(":popover-open")&&n.hidePopover?.()}let s=this.closest("header");if(s)for(let n of s.children)n!==this&&n.matches("nav, nav-bar, site-tools")&&(n.style.display=i?"none":"")}};customElements.get("mobile-menu")||customElements.define("mobile-menu",an);var q="interestfor",dc="interestForElement"in HTMLButtonElement.prototype,$=new WeakMap,qt=new WeakMap,ti=new Set,ln=!1,un=CSS.supports?.("anchor-name","--a")??!1;function cc(e){let t=String(e).trim(),i=t.match(/^([\d.]+)s$/);if(i)return parseFloat(i[1])*1e3;let s=t.match(/^([\d.]+)ms$/);return s?parseFloat(s[1]):parseFloat(t)||0}function hc(e,t){let i=getComputedStyle(e),s=i.getPropertyValue(t).trim();if(s.toLowerCase()!=="normal")return cc(s);let n=i.getPropertyValue("--interest-delay").trim();if(n&&n.toLowerCase()!=="normal"){let r=n.split(/\s+/).filter(a=>a.length>0);if(r.length>0){let a=t==="--interest-delay-start"?r[0]:r[1]||r[0];if(a.toLowerCase()!=="normal")return cc(a)}}return t==="--interest-delay-start"?500:250}var cf=["a[href]","area[href]","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","button:not([disabled])","iframe","object","embed","[contenteditable]",'[tabindex]:not([tabindex="-1"])'].join(","),lf="h1,h2,h3,h4,h5,h6,ul,ol,li,table,nav,header,footer,main,aside,article,section,form,blockquote,details,summary,dialog";function dn(e){if(e.getAttribute("popover")?.toLowerCase()!=="hint"||e.querySelector(cf)||e.querySelector(lf))return!1;for(let t of e.querySelectorAll("[role]")){let i=t.getAttribute("role").toLowerCase();if(!["presentation","none","generic","image"].includes(i))return!1}return!0}function uf(e,t){dn(t)?e.setAttribute("aria-describedby",t.id):(e.setAttribute("aria-details",t.id),e.setAttribute("aria-expanded","false"),t.hasAttribute("role")||t.setAttribute("role","tooltip"))}function J(e){let t=e.getAttribute(q);return t?document.getElementById(t):null}function Qe(e){let t=qt.get(e);return t?.invoker&&$.get(t.invoker)?.state==="full"?t.invoker:null}function oe(e){if($.has(e))return $.get(e);let t={state:"none",gainedTimer:null,lostTimer:null,longPressTimer:null};$.set(e,t);let i=J(e);return i&&uf(e,i),t}function pc(e,t){if(!e||!t||!e.isConnected||J(e)!==t)return!1;let i=Qe(t);if(i){if(i===e)return clearTimeout($.get(i).lostTimer),!1;if(!ae(i,t)||!e.isConnected||J(e)!==t)return!1}let s=oe(e);if(s.state!=="none")return!1;let n=new CustomEvent("interest",{bubbles:!1,cancelable:!0,detail:{source:e}});if(t.dispatchEvent(n),t.hasAttribute("popover")){try{t.showPopover()}catch{}hf(e,t)}s.state="full",qt.has(t)||qt.set(t,{});let r=qt.get(t);if(r.invoker=e,t.hasAttribute("popover")){let a=o=>{o.newState==="closed"&&ae(e,t)};r.toggleListener=a,t.addEventListener("toggle",a)}return ti.add(e),e.classList.add("interest-source"),t.classList.add("interest-target"),dn(t)||e.setAttribute("aria-expanded","true"),!0}function ae(e,t){if(!e||!t||J(e)!==t||Qe(t)!==e)return!1;let i=$.get(e);if(!i||i.state==="none")return!1;if(clearTimeout(i.gainedTimer),clearTimeout(i.lostTimer),t.dispatchEvent(new CustomEvent("loseinterest",{bubbles:!1,detail:{source:e}})),t.hasAttribute("popover"))try{t.hidePopover()}catch{}let s=qt.get(t);return s?.toggleListener&&t.removeEventListener("toggle",s.toggleListener),qt.delete(t),ti.delete(e),e.classList.remove("interest-source"),t.classList.remove("interest-target"),dn(t)||e.setAttribute("aria-expanded","false"),i.state="none",!0}function df(e){let t=oe(e);clearTimeout(t.gainedTimer);let i=hc(e,"--interest-delay-start");t.gainedTimer=setTimeout(()=>{let s=J(e);s&&pc(e,s)},i)}function on(e){let t=$.get(e);if(!t)return;clearTimeout(t.lostTimer);let i=hc(e,"--interest-delay-end");t.lostTimer=setTimeout(()=>{let s=J(e);s&&ae(e,s)},i)}function re(e){if(!un)return;let t=e.getAttribute(q),i=t?document.getElementById(t):null;if(!i?.id)return;let s=`--interest-${i.id}`;e.style.anchorName=s,i.style.positionAnchor=s}function hf(e,t){if(un)return;let i=e.getBoundingClientRect(),s=t.getBoundingClientRect(),n=8,r=8,a=i.top-s.height-n,o=i.left+(i.width-s.width)/2;a<r&&(a=i.bottom+n),o=Math.max(r,Math.min(o,window.innerWidth-s.width-r)),a=Math.max(r,Math.min(a,window.innerHeight-s.height-r)),t.style.top=`${a}px`,t.style.left=`${o}px`,t.style.margin="0"}function pf(e,t){if(ln||!e.isConnected)return;if(!J(e)){let r=e.closest(".interest-target");if(r){let a=Qe(r);a&&(t?clearTimeout($.get(a)?.lostTimer):on(a))}return}let s=oe(e),n=Qe(e);if(t)clearTimeout(s.lostTimer),n&&clearTimeout($.get(n)?.lostTimer),df(e);else if(clearTimeout(s.gainedTimer),s.state!=="none"&&on(e),n){let r=$.get(n);r&&clearTimeout(r.gainedTimer),on(n)}}function ff(){let e=(s,n)=>{for(let r=s.target;r;r=r.parentElement)pf(r,n)};document.body.addEventListener("mouseover",s=>e(s,!0)),document.body.addEventListener("mouseout",s=>e(s,!1)),document.body.addEventListener("focusin",s=>e(s,!0)),document.body.addEventListener("focusout",s=>e(s,!1)),document.body.addEventListener("keydown",s=>{if(s.key==="Escape")for(let n of ti){let r=J(n);r&&ae(n,r)}});let t=500;document.body.addEventListener("touchstart",s=>{ln=!0;let n=s.target.closest(`button[${q}]`);if(!n)return;let r=oe(n);r.longPressTimer=setTimeout(()=>{let a=J(n);a&&pc(n,a),r.longPressTimer=null},t)});let i=s=>{let n=s.target.closest(`button[${q}]`);if(!n)return;let r=$.get(n);r?.longPressTimer&&(clearTimeout(r.longPressTimer),r.longPressTimer=null)};document.body.addEventListener("touchend",s=>{i(s),ln=!1}),document.body.addEventListener("touchmove",i)}function mf(){let e=document.createElement("style");e.textContent=['@property --interest-delay-start { syntax: "normal | <time>"; inherits: false; initial-value: normal; }','@property --interest-delay-end { syntax: "normal | <time>"; inherits: false; initial-value: normal; }','@property --interest-delay { syntax: "*"; inherits: false; initial-value: normal; }'].join(`
|
|
644
|
+
`),document.head.appendChild(e)}function Je(e){oe(e),re(e)}function cn(e){let t=$.get(e);if(t){if(clearTimeout(t.gainedTimer),clearTimeout(t.lostTimer),clearTimeout(t.longPressTimer),t.state!=="none"){let i=J(e);i&&ae(e,i)}e.classList.remove("interest-source"),$.delete(e),ti.delete(e)}}function lc(e=document){e.querySelectorAll(`[${q}]`).forEach(Je)}var uc=new MutationObserver(e=>{for(let t of e){for(let i of t.addedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i;s.hasAttribute(q)&&Je(s),s.querySelectorAll(`[${q}]`).forEach(Je)}for(let i of t.removedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i;$.has(s)&&cn(s),s.querySelectorAll(`[${q}]`).forEach(n=>{$.has(n)&&cn(n)})}if(t.type==="attributes"&&t.target.nodeType===Node.ELEMENT_NODE){let i=t.target;i.hasAttribute(q)?$.has(i)||Je(i):$.has(i)&&cn(i)}}});dc||(mf(),ff(),document.documentElement.setAttribute("data-interest-polyfill",""),document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{lc(),uc.observe(document.documentElement,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[q]})}):(lc(),uc.observe(document.documentElement,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[q]})));if(dc&&un){let e=()=>{document.querySelectorAll(`[${q}]`).forEach(re),new MutationObserver(t=>{for(let i of t){for(let s of i.addedNodes){if(s.nodeType!==Node.ELEMENT_NODE)continue;let n=s;n.hasAttribute(q)&&re(n),n.querySelectorAll(`[${q}]`).forEach(re)}i.type==="attributes"&&i.target.hasAttribute?.(q)&&re(i.target)}}).observe(document.documentElement,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[q]})};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",e):e()}Vt();mn();Ne();var gn="kbd[data-hotkey]";function vc(e=document){e.querySelectorAll(gn).forEach(bn)}function bn(e){if(e.hasAttribute("data-hotkey-init"))return;e.setAttribute("data-hotkey-init","");let t=e.dataset.hotkey;if(!t)return;let i=nt?Ut.mac:Ut.other,s=t.toLowerCase().split("+").map(r=>r.trim()),n=document.createDocumentFragment();s.forEach((r,a)=>{let o=document.createElement("kbd");o.textContent=i[r]??r.toUpperCase(),n.appendChild(o),a<s.length-1&&!nt&&n.appendChild(document.createTextNode("+"))}),e.replaceChildren(n),e.setAttribute("aria-label",e.textContent)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>vc()):vc();var vf=new MutationObserver(e=>{for(let t of e)for(let i of t.addedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i;s.matches(gn)&&bn(s),s.querySelectorAll(gn).forEach(n=>bn(n))}});vf.observe(document.documentElement,{childList:!0,subtree:!0});An();xn();Mn();$n();On();jn();zn();Vn();Gn();Yn();Jn();sr();nr();rr();lr();ur();var dr='input[type="color"][data-color]';function hr(e){if(e.hasAttribute("data-color-init")||e.closest("color-picker"))return;e.setAttribute("data-color-init","");let t=document.createElement("div");t.className="color-wrapper",e.parentNode.insertBefore(t,e),t.appendChild(e);let i=document.createElement("button");i.type="button",i.className="color-display";let s=document.createElement("span");s.className="color-swatch";let n=document.createElement("span");n.className="color-hex",i.appendChild(s),i.appendChild(n),t.appendChild(i);function r(){s.style.background=e.value,n.textContent=e.value}i.addEventListener("click",()=>e.click()),e.addEventListener("input",r),r()}function rl(e=document){e.querySelectorAll(dr).forEach(hr)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>rl()):rl();var nm=new MutationObserver(e=>{for(let t of e)for(let i of t.addedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i;s.matches(dr)&&hr(s),s.querySelectorAll(dr).forEach(hr)}});nm.observe(document.documentElement,{childList:!0,subtree:!0});var rm=window.matchMedia("(prefers-reduced-motion: reduce)");function al(){return rm.matches||document.documentElement.hasAttribute("data-motion-reduced")}var ol=0,am=new Map([["vb-fade-in","entrance"],["vb-slide-up","entrance"],["vb-pop","entrance"],["vb-slide-in-ltr","entrance"],["vb-slide-in-rtl","entrance"],["vb-fade-slide-up","entrance"],["vb-shadow-lift","entrance"],["vb-fade-out","exit"],["vb-collapse","exit"],["vb-slide-out-ltr","exit"],["vb-slide-out-rtl","exit"],["vb-shake","attention"],["vb-pulse","attention"],["vb-bounce","attention"],["vb-blink","attention"],["vb-neon-pulse","decoration"],["vb-3d-shift","decoration"],["vb-outline-glow-pulse","decoration"],["vb-rainbow","decoration"],["vb-gradient-flow","decoration"],["vb-shimmer","decoration"],["vb-shimmer-gradient","decoration"],["vb-glow","decoration"],["vb-float","decoration"]]),cl="__vbEffectsRuntime",ll=globalThis,g=ll[cl]??{_effects:new Map,_triggers:new Map,_transitions:new Map,_instances:new WeakMap,_triggerCleanups:new WeakMap,_wiredTriggers:new WeakMap,_transitionCleanups:new WeakMap,_transitionFallback:new WeakSet,_keyframePhase:am,_observer:null,_animationEndHandler:null,_autoBooted:!1,effect(e,t){this._effects.set(e,t),document.querySelectorAll("[data-effect]").forEach(i=>{if(!(i.getAttribute("data-effect")||"").split(/\s+/).includes(e))return;let n=!this._instances.get(i)?.has(e);this._initEffect(i,e),n&&i.hasAttribute("data-effect-active")&&this._instances.get(i)?.get(e)?.activate?.()})},trigger(e,t){this._triggers.set(e,t),document.querySelectorAll("[data-effect-processed][data-trigger]").forEach(i=>{let s=i.getAttribute("data-effect")?.split(/\s+/).filter(Boolean)||[];this._wireTrigger(i,s)})},transition(e,t){this._transitions.set(e,t),document.querySelectorAll("[data-transition-processed][data-transition]").forEach(i=>{if(!this._transitionFallback.has(i))return;let s=i.getAttribute("data-transition")||"",n=s.indexOf(":");if((n>-1?s.slice(0,n):s)!==e)return;this._transitionFallback.delete(i);let r=i;r.style.viewTransitionName="";let a=t(i,n>-1?s.slice(n+1):null);a&&this._transitionCleanups.set(i,a)})},uid(e){return e.id?e.id:(e._vbUid||(ol++,e._vbUid=`vb-${ol}`),e._vbUid)},theme(e,t){this._themes=this._themes||new Map,this._themes.set(e,t)},applyTheme(e,t=document.documentElement){let i=this._themes?.get(e);if(i)for(let[s,n]of Object.entries(i))t.style.setProperty(s,n)},swap(e){if(!document.startViewTransition){e(),queueMicrotask(()=>this._dispatchVtDone(document.body));return}let t=document.startViewTransition(e);return t.updateCallbackDone.then(()=>{this._dispatchVtDone(document.body)}).catch(()=>{}),t},_dispatchVtDone(e){e.querySelectorAll('[data-trigger~="vt"]').forEach(t=>{this.emit(t,"vb:vt-update-done",{})})},activate(e){this._activateEffects(e)},deactivate(e){e.hasAttribute("data-effect-active")&&(e.removeAttribute("data-effect-active"),this.emit(e,"vb:phase-change",{active:!1}))},onPhaseEnd(e,t,i){let s=n=>{n.detail?.phase===t&&i(n.detail)};return e.addEventListener("vb:effect-phase-end",s),()=>e.removeEventListener("vb:effect-phase-end",s)},registerKeyframe(e,t){this._keyframePhase.set(e,t)},observe(e=document){if(e.querySelectorAll("[data-effect]").forEach(i=>this._processElement(i)),e.querySelectorAll("[data-stagger]").forEach(i=>this._processStagger(i)),e.querySelectorAll("[data-transition]").forEach(i=>this._processTransition(i)),this._observer)return;this._observer=new MutationObserver(i=>{for(let s of i){if(s.type==="childList"){for(let n of s.addedNodes)n.nodeType===Node.ELEMENT_NODE&&this._processTree(n);for(let n of s.removedNodes)n.nodeType===Node.ELEMENT_NODE&&(n.isConnected||this._cleanupTree(n))}if(s.type==="attributes"){let n=s.target;s.attributeName==="data-effect"&&this._reconcileEffects(n),s.attributeName==="data-trigger"&&this._reconcileTrigger(n),s.attributeName==="data-stagger"&&this._processStagger(n),s.attributeName==="data-transition"&&this._processTransition(n)}}});let t=e===document?document.body:e;this._observer.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-effect","data-trigger","data-stagger","data-transition"]}),this._animationEndHandler||(this._animationEndHandler=i=>{let s=i.target;if(!(s instanceof Element)||!s.hasAttribute("data-effect"))return;let n=this._keyframePhase.get(i.animationName);n&&this.emit(s,"vb:effect-phase-end",{phase:n,animationName:i.animationName})},document.addEventListener("animationend",this._animationEndHandler))},disconnect(){this._observer&&(this._observer.disconnect(),this._observer=null),this._animationEndHandler&&(document.removeEventListener("animationend",this._animationEndHandler),this._animationEndHandler=null)},params(e){let t=getComputedStyle(e);return{get(i){return t.getPropertyValue(`--vb-${i}`).trim()},getNumber(i,s=0){let n=t.getPropertyValue(`--vb-${i}`).trim();return n?parseFloat(n):s},getTime(i,s=0){let n=t.getPropertyValue(`--vb-${i}`).trim();if(!n)return s;let r=parseFloat(n);return Number.isFinite(r)?/s\s*$/.test(n)&&!/ms\s*$/.test(n)?r*1e3:r:s},hasClass(i){return e.classList.contains(i)}}},emit(e,t,i={}){e.dispatchEvent(new CustomEvent(t,{bubbles:!0,detail:i}))},prefersReducedMotion:al,_processTree(e){e.hasAttribute?.("data-effect")&&this._processElement(e),e.hasAttribute?.("data-stagger")&&this._processStagger(e),e.hasAttribute?.("data-transition")&&this._processTransition(e),e.querySelectorAll?.("[data-effect]").forEach(t=>this._processElement(t)),e.querySelectorAll?.("[data-stagger]").forEach(t=>this._processStagger(t)),e.querySelectorAll?.("[data-transition]").forEach(t=>this._processTransition(t))},_cleanupTree(e){e.hasAttribute?.("data-effect")&&this._cleanupElement(e),e.hasAttribute?.("data-transition")&&this._cleanupTransition(e),e.querySelectorAll?.("[data-effect]").forEach(t=>this._cleanupElement(t)),e.querySelectorAll?.("[data-transition]").forEach(t=>this._cleanupTransition(t))},_processElement(e){if(e.hasAttribute("data-effect-processed"))return;e.setAttribute("data-effect-processed","");let t=e.getAttribute("data-effect")?.split(/\s+/).filter(Boolean)||[];for(let i of t)this._initEffect(e,i);this._wireTrigger(e,t)},_initEffect(e,t){let i=this._effects.get(t);if(!i)return;let s=this._instances.get(e);if(s?.has(t))return;al();let n=i(e);n&&(s||(s=new Map,this._instances.set(e,s)),typeof n=="function"?s.set(t,{cleanup:n}):s.set(t,n))},_wireTrigger(e,t){let i=e.getAttribute("data-trigger");if(!i){this._activateEffects(e);return}let s=i.split(/\s+/).filter(Boolean);this._wiredTriggers??=new WeakMap;let n=this._wiredTriggers.get(e);n||(n=new Set,this._wiredTriggers.set(e,n));for(let r of s){if(n.has(r))continue;let a=r.indexOf(":"),o=a>-1?r.slice(0,a):r,c=a>-1?r.slice(a+1):null,l=this._triggers.get(o);if(!l)continue;n.add(r);let u=l(e,()=>this._activateEffects(e),c);if(u){let d=this._triggerCleanups.get(e);if(d){let h=d;this._triggerCleanups.set(e,()=>{h(),u()})}else this._triggerCleanups.set(e,u)}}},_activateEffects(e){e.setAttribute("data-effect-active",""),this.emit(e,"vb:phase-change",{active:!0});let t=this._instances.get(e);if(t)for(let[,i]of t)i.activate&&i.activate()},_cleanupElement(e){let t=this._instances.get(e);if(t){for(let[,s]of t)s.cleanup&&s.cleanup();this._instances.delete(e)}let i=this._triggerCleanups.get(e);i&&(i(),this._triggerCleanups.delete(e)),this._wiredTriggers?.delete(e)},_reconcileEffects(e){let t=e.getAttribute("data-effect")?.split(/\s+/).filter(Boolean)||[],i=this._instances.get(e);if(i)for(let[s,n]of i)t.includes(s)||(n.cleanup&&n.cleanup(),i.delete(s));for(let s of t)i?.has(s)||this._initEffect(e,s);e.hasAttribute("data-effect-processed")||(e.setAttribute("data-effect-processed",""),this._wireTrigger(e,t))},_reconcileTrigger(e){let t=this._triggerCleanups.get(e);t&&(t(),this._triggerCleanups.delete(e)),this._wiredTriggers?.delete(e);let i=e.getAttribute("data-effect")?.split(/\s+/).filter(Boolean)||[];this._wireTrigger(e,i)},_processStagger(e){let t=e.getAttribute("data-stagger")||"",i=e.children,s=i.length,n;if(t==="reverse")n=Array.from({length:s},(r,a)=>s-1-a);else if(t==="random"){let r=this._hashString(this.uid(e));n=Array.from({length:s},(o,c)=>c);let a=r;for(let o=s-1;o>0;o--){a^=a<<13,a^=a>>>17,a^=a<<5;let c=Math.abs(a)%(o+1);[n[o],n[c]]=[n[c],n[o]]}}else if(t==="grid"){let r=[];for(let a=0;a<s;a++){let o=getComputedStyle(i[a]),c=parseInt(o.gridRowStart,10),l=parseInt(o.gridColumnStart,10);r.push({i:a,dist:Number.isFinite(c)&&Number.isFinite(l)?c-1+(l-1):a})}r.sort((a,o)=>a.dist-o.dist),n=new Array(s),r.forEach((a,o)=>{n[a.i]=o})}else n=Array.from({length:s},(r,a)=>a);for(let r=0;r<s;r++)i[r].style.setProperty("--vb-stagger-index",String(n[r]))},_hashString(e){let t=5381;for(let i=0;i<e.length;i++)t=(t<<5)+t^e.charCodeAt(i);return t|0},_processTransition(e){if(e.hasAttribute("data-transition-processed"))return;e.setAttribute("data-transition-processed","");let t=e.getAttribute("data-transition");if(!t)return;let i=t.indexOf(":"),s=i>-1?t.slice(0,i):t,n=i>-1?t.slice(i+1):null,r=this._transitions.get(s);if(r){let a=r(e,n);a&&this._transitionCleanups.set(e,a)}else e.style.viewTransitionName=`${t}-${this.uid(e)}`,this._transitionFallback.add(e)},_cleanupTransition(e){let t=this._transitionCleanups.get(e);t&&(t(),this._transitionCleanups.delete(e)),this._transitionFallback.delete(e),e.style.viewTransitionName=""}};ll[cl]=g;if(typeof window<"u"){let e=window.VB;if(e&&e!==g)for(let t of Object.keys(e))t in g||(g[t]=e[t]);window.VB=g}typeof document<"u"&&!g._autoBooted&&(g._autoBooted=!0,document.body?g.observe():document.addEventListener("DOMContentLoaded",()=>g.observe(),{once:!0}));function om(e){let t=e.textContent;e.setAttribute("aria-label",t),e.innerHTML="",t.split(/(\s+)/).forEach((s,n)=>{if(/^\s+$/.test(s)){e.appendChild(document.createTextNode(s));return}let r=document.createElement("span");r.className="vb-reveal-chunk",r.textContent=s,r.style.setProperty("--i",String(Math.floor(n/2))),r.setAttribute("aria-hidden","true"),e.appendChild(r)})}function cm(e){let t=e.textContent;e.setAttribute("aria-label",t);let i=document.createElement("div");i.style.cssText=getComputedStyle(e).cssText,i.style.position="absolute",i.style.visibility="hidden",i.style.whiteSpace="normal",document.body.appendChild(i);let s=t.split(/\s+/).filter(Boolean),n=[],r="";s.forEach(a=>{let o=r?r+" "+a:a;i.textContent=o,i.style.width=getComputedStyle(e).width,i.scrollWidth>i.clientWidth&&r?(n.push(r),r=a):r=o}),r&&n.push(r),document.body.removeChild(i),n.length===0&&n.push(t),e.innerHTML="",n.forEach((a,o)=>{let c=document.createElement("span");c.className="vb-reveal-chunk",c.textContent=a,c.style.setProperty("--i",String(o)),c.setAttribute("aria-hidden","true"),e.appendChild(c),o<n.length-1&&e.appendChild(document.createTextNode(" "))})}g.effect("reveal",e=>{if(e.hasAttribute("data-effect-reveal-init")||(e.setAttribute("data-effect-reveal-init",""),g.prefersReducedMotion()))return;let t=e.classList.contains("line")?"line":"word",i=g.params(e),s=i.get("reveal-delay")||"80ms",n=i.get("reveal-duration")||"400ms";return e.style.setProperty("--reveal-delay",s),e.style.setProperty("--reveal-duration",n),t==="line"?cm(e):om(e),{activate(){e.setAttribute("data-effect-active","")},cleanup(){}}});g.effect("highlight",e=>{if(e.hasAttribute("data-effect-highlight-init"))return;e.setAttribute("data-effect-highlight-init","");let i=getComputedStyle(e).getPropertyValue("--vb-highlight-color").trim();return i&&e.style.setProperty("--highlight-color",i),g.prefersReducedMotion()&&e.setAttribute("data-effect-active",""),{activate(){e.setAttribute("data-effect-active","")},cleanup(){}}});gr();wr();var pl="vb:recently-visited",fm="vb:recently-visited:paused";function mm(){try{return localStorage.getItem(fm)==="1"}catch{return!1}}function gm(){return!!document.querySelector('meta[name="vb:no-track-history"]')}function bm(){try{let e=localStorage.getItem(pl);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}function ym(e){try{localStorage.setItem(pl,JSON.stringify(e))}catch{}}function vm(e){if(!e)return"";let t=e.slice(1);if(!t)return"";let i=null;try{i=document.getElementById(t)}catch{}return i&&(i.textContent||"").trim().slice(0,80)||t}function Ar(){if(mm()||gm()||location.protocol==="file:"||location.protocol==="about:")return;let e=location.pathname+location.search,t=location.hash,i=(document.title||"").trim();if(!i)return;let s=vm(t),n=Date.now(),r=bm(),a=e+t;if((r[0]?r[0].url+(r[0].hash||""):"")===a)return;let c=r.filter(l=>l.url+(l.hash||"")!==a);c.unshift({url:e,hash:t,title:i,hashTitle:s,ts:n}),ym(c.slice(0,100))}var Er=typeof document<"u"?document.documentElement:null;Er&&!Er.hasAttribute("data-vb-recently-visited-init")&&(Er.setAttribute("data-vb-recently-visited-init",""),Ar(),window.addEventListener("pageshow",e=>{e.persisted&&Ar()}),window.addEventListener("hashchange",Ar));var wm=CSS.supports("anchor-name","--test"),Am=new Set(["BUTTON","A","AREA"]);function Em(e){return document.documentElement.hasAttribute("data-interest-polyfill")?!0:"interestForElement"in HTMLButtonElement.prototype?Am.has(e.tagName):!1}function kr(e,t){if(Em(e)){e.setAttribute("interestfor",t.id),t.addEventListener("toggle",l=>{l.newState==="open"&&li(e,t)});return}let i=null,s=null,n=t,r=()=>{clearTimeout(s),i=setTimeout(()=>{n.showPopover(),li(e,t)},200)},a=()=>{clearTimeout(i),s=setTimeout(()=>{n.hidePopover()},100)},o=()=>{clearTimeout(s),n.showPopover(),li(e,t)},c=()=>{clearTimeout(i),n.hidePopover()};e.addEventListener("mouseenter",r),e.addEventListener("mouseleave",a),e.addEventListener("focus",o),e.addEventListener("blur",c),t.addEventListener("mouseenter",()=>clearTimeout(s)),t.addEventListener("mouseleave",a)}function xr(e,t){if(!wm)return;let i=`--tooltip-anchor-${t.id}`;e.style.anchorName=i,t.style.positionAnchor=i,t.setAttribute("data-anchor","")}function km(e){let t=e.getAttribute("title");if(!t)return;e.removeAttribute("title");let i=document.createElement("div");i.setAttribute("role","tooltip"),i.setAttribute("popover","hint"),i.id=`tooltip-${crypto.randomUUID().slice(0,8)}`,i.textContent=t;let s=e.dataset.tooltipPosition||"top";i.dataset.tooltipPosition=s;let n=document.createElement("span");n.className="tooltip-arrow",n.setAttribute("aria-hidden","true"),i.appendChild(n),e.after(i),e.setAttribute("aria-describedby",i.id),xr(e,i),kr(e,i)}function xm(e,t){let i=document.getElementById(t);i?.hasAttribute("popover")&&(e.hasAttribute("title")&&e.removeAttribute("title"),e.hasAttribute("aria-describedby")||e.setAttribute("aria-describedby",t),xr(e,i),kr(e,i))}function fl(e=document){e.querySelectorAll("[data-tooltip]").forEach(t=>{if(t.closest("tool-tip")||t.hasAttribute("data-tooltip-init"))return;t.setAttribute("data-tooltip-init","");let i=t.dataset.tooltip;i?xm(t,i):km(t)}),e.querySelectorAll("[aria-describedby]").forEach(t=>{let i=t.getAttribute("aria-describedby")??"",s=document.getElementById(i);!s?.hasAttribute("popover")||!s.matches('[role="tooltip"]')||t.closest("tool-tip")||t.hasAttribute("data-tooltip-init")||(t.setAttribute("data-tooltip-init",""),xr(t,s),kr(t,s))}),e.querySelectorAll("[popovertarget]").forEach(t=>{let i=t.getAttribute("popovertarget")??"",s=document.getElementById(i);!s?.hasAttribute("popover")||!s.matches('[role="tooltip"]')||s.hasAttribute("data-tooltip-click-init")||(s.setAttribute("data-tooltip-click-init",""),s.addEventListener("toggle",n=>{n.newState==="open"&&li(t,s)}))})}function li(e,t){if(t.hasAttribute("data-anchor"))return;let i=e.getBoundingClientRect(),s=t.dataset.tooltipPosition||"top",n=8,r=t.getBoundingClientRect(),a,o;switch(s){case"bottom":a=i.bottom+n,o=i.left+(i.width-r.width)/2;break;case"left":a=i.top+(i.height-r.height)/2,o=i.left-r.width-n;break;case"right":a=i.top+(i.height-r.height)/2,o=i.right+n;break;default:a=i.top-r.height-n,o=i.left+(i.width-r.width)/2;break}let c=8;o=Math.max(c,Math.min(o,window.innerWidth-r.width-c)),a=Math.max(c,Math.min(a,window.innerHeight-r.height-c)),t.style.top=`${a}px`,t.style.left=`${o}px`}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>fl()):fl();var Sr="[data-vt-name]";function Cr(e){e.hasAttribute("data-vt-name-init")||(e.setAttribute("data-vt-name-init",""),e.style.viewTransitionName=e.dataset.vtName)}function ml(e=document){e.querySelectorAll(Sr).forEach(Cr)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>ml()):ml();var Sm=new MutationObserver(e=>{for(let t of e)for(let i of t.addedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i;s.matches(Sr)&&Cr(s),s.querySelectorAll(Sr).forEach(Cr)}});Sm.observe(document.documentElement,{childList:!0,subtree:!0});var ui='progress[data-type="ring"]',gl={xs:"2em",s:"3em",m:"4em",l:"6em",xl:"8em"};function yl(e){let t=e.max||100,i=e.value;return t>0?Math.round(i/t*100):0}function vl(e){let t=yl(e);e.style.setProperty("--progress",String(t));let i=e.parentElement?.querySelector(".progress-ring-label");i&&!e.dataset.label&&(i.textContent=t+"%")}function Tr(e){if(e.hasAttribute("data-enhanced"))return;e.setAttribute("data-enhanced",""),vl(e);let t=e.dataset.label,i=t==="none",s=!e.hasAttribute("value");if(!i&&!s){let n=document.createElement("div");n.className="progress-ring-wrap";let r=e.dataset.size;r&&gl[r]&&n.style.setProperty("--progress-ring-size",gl[r]),e.parentNode?.insertBefore(n,e),n.appendChild(e);let a=document.createElement("span");a.className="progress-ring-label",a.textContent=t||yl(e)+"%",a.setAttribute("aria-hidden","true"),n.appendChild(a)}}function bl(e=document){e.querySelectorAll(ui).forEach(t=>Tr(t))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>bl()):bl();var Cm=new MutationObserver(e=>{for(let t of e){for(let i of t.addedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i;s.matches(ui)&&Tr(s),s.querySelectorAll(ui).forEach(n=>Tr(n))}if(t.type==="attributes"&&t.attributeName==="value"){let i=t.target;i.matches(ui)&&i.hasAttribute("data-enhanced")&&vl(i)}}});Cm.observe(document.documentElement,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]});function wl(e){document.querySelectorAll("browser-window").forEach(t=>{t.setAttribute("mode",e)}),document.querySelectorAll("code-block").forEach(t=>{t.setAttribute("theme",e)})}function Al(){let{effectiveMode:e}=T.getState();wl(e),window.addEventListener("vb:theme-change",i=>{wl(i.detail.effectiveMode)}),new MutationObserver(i=>{let{effectiveMode:s}=T.getState();for(let n of i)for(let r of n.addedNodes){if(r.nodeType!==Node.ELEMENT_NODE)continue;let a=r;a.tagName==="BROWSER-WINDOW"?a.setAttribute("mode",s):a.tagName==="CODE-BLOCK"&&a.setAttribute("theme",s),a.querySelectorAll("browser-window").forEach(o=>{o.setAttribute("mode",s)}),a.querySelectorAll("code-block").forEach(o=>{o.setAttribute("theme",s)})}}).observe(document.body,{childList:!0,subtree:!0})}var Pu=[{selector:"[data-wizard]",load:()=>Promise.resolve().then(()=>(xl(),kl))},{selector:"[data-gesture]",load:()=>Promise.resolve().then(()=>(hs(),ds))},{selector:"[data-keyboard-aware]",load:()=>Promise.resolve().then(()=>(Tl(),Cl))},{selector:"[data-focus-trap]",load:()=>Promise.resolve().then(()=>(Nl(),Ml))},{selector:"[data-scroll-hide]",load:()=>Promise.resolve().then(()=>(_l(),_m))},{selector:"[data-spotlight]",load:()=>Promise.resolve().then(()=>(Il(),$l))},{selector:"[data-splitter]",load:()=>Promise.resolve().then(()=>(On(),Mc))},{selector:"[data-back-to-top]",load:()=>Promise.resolve().then(()=>(mn(),yc))},{selector:"[data-hotkey]:not(kbd)",load:()=>Promise.resolve().then(()=>(Rl(),Pl))},{selector:'a[target="_blank"]',load:()=>Promise.resolve().then(()=>(Vl(),zl))},{selector:"[data-watch-page], watch-wc",load:()=>Promise.resolve().then(()=>(Ys(),Gs))},{selector:"img[data-responsive]",load:()=>Promise.resolve().then(()=>(Yl(),Gl))},{selector:"form-field[data-floating-label]",load:()=>Promise.resolve().then(()=>(Jl(),Zl))},{selector:"button[data-loading]",load:()=>Promise.resolve().then(()=>(eu(),tu))},{selector:"input[data-mask]",load:()=>Promise.resolve().then(()=>(nr(),Zc))},{selector:"input[data-accept]",load:()=>Promise.resolve().then(()=>(rr(),tl))},{selector:'input[type="file"][data-upload]',load:()=>Promise.resolve().then(()=>(Jn(),zc))},{selector:'input[type="range"][data-range]',load:()=>Promise.resolve().then(()=>(Yn(),Hc))},{selector:'input[type="number"][data-stepper]',load:()=>Promise.resolve().then(()=>(ur(),nl))},{selector:'input[type="checkbox"][data-switch]',load:()=>Promise.resolve().then(()=>(jn(),Nc))},{selector:"textarea[data-grow]",load:()=>Promise.resolve().then(()=>(Vn(),Bc))},{selector:"textarea[data-count]",load:()=>Promise.resolve().then(()=>(zn(),$c))},{selector:"fieldset[data-toggle-tags][data-max]",load:()=>Promise.resolve().then(()=>(lr(),el))},{selector:"form[data-autosave]",load:()=>Promise.resolve().then(()=>(sr(),Uc))},{selector:"form[data-vb-email-form]",load:()=>Promise.resolve().then(()=>(nu(),su))},{selector:"form[data-vb-newsletter-form]",load:()=>Promise.resolve().then(()=>(du(),uu))},{selector:"[data-copy], [data-copy-target], [data-paste-target]",load:()=>Promise.resolve().then(()=>(Vt(),no))},{selector:"[data-select-all]",load:()=>Promise.resolve().then(()=>(gr(),ul))},{selector:"[data-show-when], [data-hide-when]",load:()=>Promise.resolve().then(()=>(Gn(),Pc))},{selector:"[data-spoiler]",load:()=>Promise.resolve().then(()=>($n(),Lc))},{selector:"[data-math], code.language-math",load:()=>Promise.resolve().then(()=>(wr(),hl))},{selector:"time[data-format-date]",load:()=>Promise.resolve().then(()=>(xn(),xc))},{selector:"data[data-format-number]",load:()=>Promise.resolve().then(()=>(An(),wc))},{selector:"data[data-format-bytes]",load:()=>Promise.resolve().then(()=>(Mn(),Sc))},{selector:"[data-paged]",load:()=>Promise.resolve().then(()=>(wu(),vu))},{selector:"[data-sortable], [data-sort-target]",load:()=>Promise.resolve().then(()=>(Nu(),Mu))},{selector:"[data-toggle]",load:()=>Promise.resolve().then(()=>(Fu(),Ou))}];function Ru(e,t=document){for(let i of e)t.querySelector(i.selector)&&i.load()}var Zb=[{selector:"[data-emoji]",load:()=>Promise.resolve().then(()=>(Xu(),Ku))},{selector:"[data-highlights]",load:()=>Promise.resolve().then(()=>(Rs(),Xo))},{selector:"[data-command], [commandfor]",load:()=>Promise.resolve().then(()=>(td(),Qu))},{selector:"[data-markdown-editable]",load:()=>Promise.resolve().then(()=>(vd(),Lb))},{selector:"markdown-viewer[data-auto-mermaid], markdown-editor[data-auto-mermaid]",load:()=>Promise.resolve().then(()=>(Sd(),Db))},{selector:":is(img, video, iframe, canvas)[data-mock]",load:()=>Promise.resolve().then(()=>(_d(),Nd))},{selector:"[data-lorem]",load:()=>Promise.resolve().then(()=>(Id(),$d))}],Jb=[...Pu,...Zb];function qd(e=document){Ru(Jb,e)}function Ee(e){return[...e.querySelectorAll("input, select, textarea")].filter(t=>t.type!=="submit"&&t.type!=="button"&&t.type!=="hidden"&&!("honeypot"in t.dataset))}function Fd(e){return[...e.querySelectorAll("form-field[data-upgraded]")]}function Qb(e){return e.labels?.[0]?.textContent?.trim()??e.getAttribute("aria-label")??e.name??e.id}function Ae(e,t){let i=e.dataset.match;if(!i)return;let s=t.querySelector(`#${CSS.escape(i)}`)??t.querySelector(`[name="${CSS.escape(i)}"]`);if(s){if(e.setCustomValidity(""),e.value&&s.value&&e.value!==s.value){let n=e.dataset.messageMatch??"Values do not match";e.setCustomValidity(n);let r=Bd(e);r&&(r.textContent=n)}else if(e.validity.valid){let n=Bd(e);n&&(n.textContent="")}}}function Bd(e){let t=e.getAttribute("aria-describedby")?.split(/\s+/)??[];for(let s of t){let n=document.getElementById(s);if(n?.tagName==="OUTPUT"&&n.classList.contains("error"))return n}return e.closest("form-field")?.querySelector("output.error")??null}function Od(e){let i=[...e.querySelectorAll('input[type="checkbox"]')].filter(o=>o.checked).length,s=parseInt(e.dataset.minChecked??"0",10),n=parseInt(e.dataset.maxChecked??"999",10),r=e.querySelector(":scope > output"),a=null;return i<s&&(a=e.dataset.messageMinChecked??`Select at least ${s}`),i>n&&(a=e.dataset.messageMaxChecked??`Select no more than ${n}`),r&&(r.textContent=a??""),a?e.dataset.invalid="":delete e.dataset.invalid,!a}function Pd(e){let t=e.querySelector("[data-form-summary]");if(t)return{el:t,type:"authored"};let i=e.querySelector("output.error-summary");return i?{el:i,type:"legacy"}:null}function Mi(e,t,{focus:i=!1}={}){if(!t)return;let s=[];for(let n of Ee(e))n.validity.valid||s.push({id:n.id||n.name,label:Qb(n),message:n.validationMessage});for(let n of e.querySelectorAll("fieldset[data-invalid]")){let r=n.querySelector(":scope > output");s.push({id:n.id||"",label:n.querySelector("legend")?.textContent?.trim()??"Group",message:r?.textContent||"Invalid selection"})}if(s.length===0){Rd(t);return}if(t.type==="authored"){let n=t.el.querySelector("[data-summary-list]");if(n){n.innerHTML="";for(let r of s){let a=document.createElement("li"),o=document.createElement("a");o.href=r.id?`#${r.id}`:"#",o.textContent=`${r.label}: ${r.message}`,a.appendChild(o),n.appendChild(a)}}t.el.removeAttribute("hidden"),t.el.dataset.visible=""}else{let n=s.length,r=s.map(a=>`<li><a href="${a.id?`#${a.id}`:"#"}">${a.label}: ${a.message}</a></li>`).join(`
|
|
645
|
+
`);t.el.innerHTML=`<p>Please fix ${n} error${n===1?"":"s"}:</p>
|
|
646
|
+
<ul>
|
|
647
|
+
${r}
|
|
648
|
+
</ul>`}i&&t.el.focus()}function Rd(e){if(e)if(e.type==="authored"){delete e.el.dataset.visible;let t=e.el.querySelector("[data-summary-list]");t&&e.el.addEventListener("transitionend",()=>{e.el.dataset.visible||(t.innerHTML="")},{once:!0})}else e.el.innerHTML=""}function ty(e){e&&e.el.addEventListener("click",t=>{let i=t.target.closest('a[href^="#"]');if(!i)return;t.preventDefault();let s=i.getAttribute("href").slice(1),n=document.getElementById(s);n&&(n.scrollIntoView({behavior:"smooth",block:"center"}),n.focus())})}function ey(e){for(let t of Ee(e))t.focus({preventScroll:!0}),t.blur()}async function iy(e){let t=e.querySelector('[type="submit"]');e.dataset.submitting="",delete e.dataset.error,t&&t.setAttribute("aria-disabled","true");try{let i=new FormData(e),s=await fetch(e.action,{method:e.method||"post",body:i});if(delete e.dataset.submitting,t&&t.removeAttribute("aria-disabled"),!s.ok){if((s.headers.get("content-type")??"").includes("application/json")){let a=await s.json();if(a.errors){sy(e,a.errors);return}}throw new Error(`Server error: ${s.status}`)}e.dataset.success="";let n=e.querySelector("[data-form-success]");n&&(n.hidden=!1,n.focus())}catch{delete e.dataset.submitting,t&&t.removeAttribute("aria-disabled"),e.dataset.error="network"}}function sy(e,t){e.dataset.error="";let i=Fd(e),s=[];for(let n of i){let r=n.querySelector("input, textarea, select");if(!r)continue;let a=t[r.name];a&&(n.setError(a),s.push(n))}if(s.length>0){let n=Pd(e);Mi(e,n,{focus:!0})}for(let n of i)n.querySelector("input, textarea, select")?.addEventListener("input",()=>n.clearError(),{once:!0})}function Ea(e){if(e.hasAttribute("data-vb-enhanced"))return;e.setAttribute("novalidate",""),e.setAttribute("data-vb-enhanced","");let t=Pd(e);t&&ty(t);for(let i of Ee(e))if(i.dataset.match){i.addEventListener("input",()=>Ae(i,e)),i.addEventListener("blur",()=>Ae(i,e));let s=i.dataset.match,n=e.querySelector(`#${CSS.escape(s)}`)??e.querySelector(`[name="${CSS.escape(s)}"]`);n&&n.addEventListener("input",()=>Ae(i,e))}for(let i of e.querySelectorAll("fieldset[data-min-checked], fieldset[data-max-checked]"))i.addEventListener("change",()=>{Od(i),t&&Mi(e,t)});e.addEventListener("submit",i=>{i.preventDefault();let s=Fd(e);for(let o of s)o.validate();for(let o of Ee(e))o.dataset.match&&Ae(o,e);for(let o of e.querySelectorAll("fieldset[data-min-checked], fieldset[data-max-checked]"))Od(o);if(ey(e),!(e.checkValidity()&&![...e.querySelectorAll("fieldset[data-invalid]")].length)){if(t)Mi(e,t,{focus:!0});else{let o=e.querySelector(":invalid");o&&(o.scrollIntoView({behavior:"smooth",block:"center"}),o.focus())}return}Rd(t);let r=new CustomEvent("vb:beforesubmit",{bubbles:!0,cancelable:!0,detail:{form:e}});if(e.dispatchEvent(r),r.defaultPrevented)return;let a=e.dataset.submit??"native";if(a==="fetch")iy(e);else if(a==="event"){let o=new CustomEvent("vb:submit",{bubbles:!0,cancelable:!0,detail:new FormData(e)});e.dispatchEvent(o)}else e.submit()}),t&&e.addEventListener("input",()=>{requestAnimationFrame(()=>{for(let i of Ee(e))i.dataset.match&&Ae(i,e);Mi(e,t)})})}function jd(){for(let t of document.querySelectorAll("form[data-validate]"))Ea(t);new MutationObserver(t=>{for(let i of t)for(let s of i.addedNodes){if(s.nodeType!==Node.ELEMENT_NODE)continue;let n=s;n.matches?.("form[data-validate]")&&Ea(n),n.querySelectorAll?.("form[data-validate]").forEach(r=>Ea(r))}}).observe(document.body,{childList:!0,subtree:!0})}var Hd='<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0"/><circle cx="12" cy="12" r="3"/></svg>',ny='<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49"/><path d="M14.084 14.158a3 3 0 0 1-4.242-4.242"/><path d="M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143"/><path d="m2 2 20 20"/></svg>';function ka(e){let t=e.querySelector('input[type="password"]');if(!t||e.dataset.enhanced==="password")return;e.dataset.enhanced="password";let i=document.createElement("div");i.className="password-wrapper",t.parentNode.insertBefore(i,t),i.appendChild(t);let s=document.createElement("button");s.type="button",s.className="password-toggle",s.setAttribute("aria-label","Show password"),s.setAttribute("aria-pressed","false"),s.innerHTML=Hd,i.appendChild(s),s.addEventListener("click",()=>{let n=t.type==="password";t.type=n?"text":"password",s.setAttribute("aria-pressed",String(n)),s.setAttribute("aria-label",n?"Hide password":"Show password"),s.innerHTML=n?ny:Hd})}function xa(e){let t=e.querySelector('input[data-type="otp"], input[data-type="pin"]');if(!t||e.dataset.enhanced==="otp")return;e.dataset.enhanced="otp";let i=parseInt(t.dataset.length||"6",10);t.type="hidden",t.removeAttribute("inputmode"),t.removeAttribute("pattern");let s=document.createElement("div");s.className="otp-wrapper",t.parentNode.insertBefore(s,t.nextSibling);let n=[];for(let a=0;a<i;a++){let o=document.createElement("input");o.type="text",o.inputMode="numeric",o.maxLength=1,o.pattern="[0-9]",o.className="otp-digit",o.setAttribute("aria-label",`Digit ${a+1} of ${i}`),n.push(o),s.appendChild(o)}function r(){t.value=n.map(a=>a.value).join(""),t.dispatchEvent(new Event("input",{bubbles:!0}))}n.forEach((a,o)=>{a.addEventListener("input",c=>{let l=c.target.value;if(l&&!/^\d$/.test(l)){c.target.value="";return}l&&o<n.length-1&&n[o+1].focus(),r()}),a.addEventListener("keydown",c=>{c.key==="Backspace"&&!c.target.value&&o>0&&n[o-1].focus(),c.key==="ArrowLeft"&&o>0&&(c.preventDefault(),n[o-1].focus()),c.key==="ArrowRight"&&o<n.length-1&&(c.preventDefault(),n[o+1].focus())}),a.addEventListener("paste",c=>{c.preventDefault();let u=((c.clipboardData||window.clipboardData)?.getData("text")??"").replace(/\D/g,"").slice(0,i).split("");u.forEach((h,p)=>{n[p]&&(n[p].value=h)});let d=n.findIndex(h=>!h.value);d!==-1?n[d].focus():u.length>0&&n[Math.min(u.length-1,i-1)].focus(),r()}),a.addEventListener("focus",()=>{a.select()})}),e.addEventListener("click",a=>{a.target===e&&n[0].focus()})}function Sa(e){let t=e.querySelector("input[data-strength]");if(!t||e.dataset.enhanced==="strength")return;e.dataset.enhanced="strength";let i=t.dataset.rules||"length:8",s=ry(i),n=document.createElement("div");n.className="strength-meter";let r=document.createElement("meter");r.min=0,r.max=s.length,r.low=Math.ceil(s.length*.4),r.high=Math.ceil(s.length*.75),r.optimum=s.length,r.value=0,r.className="xs";let a=document.createElement("span");a.className="strength-label",a.textContent="",n.appendChild(r),n.appendChild(a);let o=document.createElement("ul");o.className="strength-rules",o.setAttribute("aria-label","Password requirements"),s.forEach(l=>{let u=document.createElement("li");u.dataset.rule=l.type,u.textContent=l.label,o.appendChild(u)}),(e.querySelector(".password-wrapper")||t).insertAdjacentElement("afterend",n),n.insertAdjacentElement("afterend",o),t.addEventListener("input",()=>{let l=t.value,u=0;s.forEach((h,p)=>{let f=ay(h,l),m=o.children[p];m.dataset.met=f?"":void 0,f?(m.setAttribute("data-met",""),u++):m.removeAttribute("data-met")}),r.value=u;let d=u/s.length;l.length===0?(a.textContent="",n.dataset.level=""):d<.4?(a.textContent="Weak",n.dataset.level="weak"):d<.75?(a.textContent="Fair",n.dataset.level="fair"):d<1?(a.textContent="Good",n.dataset.level="good"):(a.textContent="Strong",n.dataset.level="strong")})}function ry(e){return e.split(",").map(t=>{let[i,s]=t.trim().split(":");switch(i){case"length":return{type:i,param:parseInt(s)||8,label:`At least ${s||8} characters`};case"uppercase":return{type:i,label:"One uppercase letter"};case"lowercase":return{type:i,label:"One lowercase letter"};case"number":return{type:i,label:"One number"};case"special":return{type:i,label:"One special character"};default:return{type:i,label:i}}})}function ay(e,t){switch(e.type){case"length":return t.length>=(e.param||8);case"uppercase":return/[A-Z]/.test(t);case"lowercase":return/[a-z]/.test(t);case"number":return/\d/.test(t);case"special":return/[^A-Za-z0-9]/.test(t);default:return!1}}function oy(){document.querySelectorAll('form-field:has(input[type="password"])').forEach(ka)}function cy(){document.querySelectorAll('form-field:has(input[data-type="otp"]), form-field:has(input[data-type="pin"])').forEach(xa)}function ly(){document.querySelectorAll("form-field:has(input[data-strength])").forEach(Sa)}function zd(){oy(),cy(),ly(),new MutationObserver(t=>{for(let i of t)for(let s of i.addedNodes){if(s.nodeType!==Node.ELEMENT_NODE)continue;let n=s;n.matches?.('form-field:has(input[type="password"])')&&ka(n),(n.matches?.('form-field:has(input[data-type="otp"])')||n.matches?.('form-field:has(input[data-type="pin"])'))&&xa(n),n.matches?.("form-field:has(input[data-strength])")&&Sa(n),n.querySelectorAll?.('form-field:has(input[type="password"])')?.forEach(ka),n.querySelectorAll?.('form-field:has(input[data-type="otp"]), form-field:has(input[data-type="pin"])')?.forEach(xa),n.querySelectorAll?.("form-field:has(input[data-strength])")?.forEach(Sa)}}).observe(document.body,{childList:!0,subtree:!0})}function uy(e){let t=Date.now(),i=e*7+t%9973&65535;return btoa(JSON.stringify({s:e,t,c:i}))}function dy(e,t,i){let s=0,n=e.submitAt-(e.firstInteractionAt??e.submitAt),r=t.querySelector("[data-honeypot]");return r&&r.value.trim()&&(s+=80),[...t.querySelectorAll('input[type="text"], input[type="email"], input[type="tel"], textarea')].filter(o=>o.value.trim()&&!("honeypot"in o.dataset)).length>0&&e.keyboardEventCount===0&&(s+=30),e.fieldFocusCount===0&&(s+=40),!i&&!e.mouseMovedInForm&&(s+=20),n<1e3?s+=80:n<3e3&&(s+=50),Math.min(s,100)}function hy(e){return new Promise((t,i)=>{let s=document.createElement("script");s.src=e,s.async=!0,s.onload=t,s.onerror=i,document.head.appendChild(s)})}async function py(e,t){if(!document.querySelector("[data-cf-turnstile-loaded]"))try{await hy("https://challenges.cloudflare.com/turnstile/v0/api.js"),document.head.dataset.cfTurnstileLoaded="";let i=document.createElement("div");i.className="cf-turnstile",i.dataset.sitekey=t,i.dataset.size="invisible",e.appendChild(i)}catch{}}function Ca(e){if(e.hasAttribute("data-bot-enhanced"))return;e.setAttribute("data-bot-enhanced","");let t={fieldFocusCount:0,keyboardEventCount:0,mouseMovedInForm:!1,firstInteractionAt:null,submitAt:null},i=navigator.maxTouchPoints>0;e.addEventListener("focusin",s=>{s.target.matches("input, textarea, select")&&!("honeypot"in s.target.dataset)&&(t.fieldFocusCount++,t.firstInteractionAt??=Date.now())},{capture:!0}),e.addEventListener("keydown",s=>{s.target.matches("input, textarea")&&t.keyboardEventCount++},{capture:!0}),i||e.addEventListener("mousemove",()=>{t.mouseMovedInForm=!0},{once:!0}),e.addEventListener("vb:beforesubmit",s=>{t.submitAt=Date.now();let n=dy(t,e,i),r=e.querySelector("[data-bot-score-field]");if(r||(r=document.createElement("input"),r.type="hidden",r.name="_vb_score",r.dataset.botScoreField="",e.appendChild(r)),r.value=uy(n),n>=80){s.preventDefault(),e.dispatchEvent(new CustomEvent("vb:botblocked",{bubbles:!0,detail:{score:n}}));return}n>=60&&e.dataset.turnstileSitekey&&py(e,e.dataset.turnstileSitekey)})}function Vd(){for(let t of document.querySelectorAll("form[data-bot-protection]"))Ca(t);new MutationObserver(t=>{for(let i of t)for(let s of i.addedNodes){if(s.nodeType!==Node.ELEMENT_NODE)continue;let n=s;n.matches?.("form[data-bot-protection]")&&Ca(n),n.querySelectorAll?.("form[data-bot-protection]").forEach(r=>Ca(r))}}).observe(document.body,{childList:!0,subtree:!0})}var it=null,Ni=new Map,Ta=null;function fy(){if(typeof window<"u"&&window.__VB_COMPONENT_BASE)return String(window.__VB_COMPONENT_BASE).replace(/\/$/,"");if(typeof document<"u"){let e=document.querySelectorAll('script[src*="vanilla-breeze"]');for(let t of e){let i=t.getAttribute("src");if(i){let s=i.lastIndexOf("/");if(s!==-1)return i.slice(0,s)}}}return"/cdn"}async function my(){if(it)return it;let e=fy();it=new Map;try{let t=await fetch(`${e}/components/manifest.json`);if(!t.ok)throw new Error(`HTTP ${t.status}`);let i=await t.json();for(let[s,n]of Object.entries(i))it.set(s,`${e}/components/${n.file}`)}catch{console.warn("[VB] Component manifest unavailable \u2014 autoloader disabled")}return it}async function Wd(e){if(customElements.get(e))return;if(Ni.has(e))return Ni.get(e);let t=it?.get(e);if(!t)return;let i=import(t).then(()=>customElements.whenDefined(e)).then(()=>{}).catch(s=>{console.warn(`[VB] Failed to autoload ${e}:`,s),Ni.delete(e)});return Ni.set(e,i),i}function Ud(e){if(!it)return;let t=e===document?document.querySelectorAll("*"):e.querySelectorAll?.("*")||[],i=new Set;for(let s of t){let n=s.localName;n.includes("-")&&!customElements.get(n)&&it.has(n)&&i.add(n)}for(let s of i)Wd(s)}async function Gd(){await my(),Ud(document),!Ta&&(Ta=new MutationObserver(e=>{for(let t of e)for(let i of t.addedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i,n=s.localName;n.includes("-")&&it?.has(n)&&Wd(n),s.querySelectorAll&&Ud(s)}}),Ta.observe(document.documentElement,{childList:!0,subtree:!0}))}et();$t();g.trigger("scroll",(e,t)=>{if(g.prefersReducedMotion()){t();return}let i=new IntersectionObserver(([s])=>{s.isIntersecting&&(i.disconnect(),t())},{threshold:.1});return i.observe(e),()=>i.disconnect()});g.trigger("hover",(e,t)=>{function i(){e.removeAttribute("data-effect-active"),e.offsetWidth,t()}function s(){e.removeAttribute("data-effect-active")}return e.addEventListener("pointerenter",i),e.addEventListener("pointerleave",s),()=>{e.removeEventListener("pointerenter",i),e.removeEventListener("pointerleave",s)}});g.trigger("click",(e,t)=>{function i(){e.removeAttribute("data-effect-active"),e.offsetWidth,t()}return e.addEventListener("click",i),()=>e.removeEventListener("click",i)});g.trigger("time",(e,t,i)=>{let s=parseInt(i||"0",10),n=setTimeout(t,s);return()=>clearTimeout(n)});g.trigger("intersect",(e,t,i)=>{if(g.prefersReducedMotion()){t();return}if((i||"once")==="toggle"){let r=new IntersectionObserver(([a])=>{a.isIntersecting?t():g.deactivate(e)},{threshold:.1});return r.observe(e),()=>r.disconnect()}let n=new IntersectionObserver(([r])=>{r.isIntersecting&&(n.disconnect(),t())},{threshold:.1});return n.observe(e),()=>n.disconnect()});g.trigger("media",(e,t,i)=>{if(!i)return;let s=window.matchMedia(i);function n(){s.matches?t():g.deactivate(e)}return s.addEventListener("change",n),n(),()=>s.removeEventListener("change",n)});g.trigger("event",(e,t,i)=>{if(!i)return;function s(){e.removeAttribute("data-effect-active"),e.offsetWidth,t()}return e.addEventListener(i,s),()=>e.removeEventListener(i,s)});g.trigger("vt",(e,t)=>{function i(){e.removeAttribute("data-effect-active"),e.offsetWidth,t()}return e.addEventListener("vb:vt-update-done",i),()=>e.removeEventListener("vb:vt-update-done",i)});g.transition("morph",e=>{let t=`morph-${g.uid(e)}`;return e.style.viewTransitionName=t,()=>{e.style.viewTransitionName=""}});g.transition("slide",e=>{let t=`slide-${g.uid(e)}`;return e.style.viewTransitionName=t,e.style.viewTransitionClass="slide-left",()=>{e.style.viewTransitionName="",e.style.viewTransitionClass=""}});g.transition("fade",e=>{let t=`fade-${g.uid(e)}`;return e.style.viewTransitionName=t,e.style.viewTransitionClass="fade",()=>{e.style.viewTransitionName="",e.style.viewTransitionClass=""}});g.transition("scale",e=>{let t=`scale-${g.uid(e)}`;return e.style.viewTransitionName=t,e.style.viewTransitionClass="scale",()=>{e.style.viewTransitionName="",e.style.viewTransitionClass=""}});g.transition("stagger",e=>{let t=e.children;for(let i=0;i<t.length;i++){let s=t[i];s.style.viewTransitionName=`stagger-${g.uid(e)}-${i}`,s.style.viewTransitionClass="fade"}return()=>{for(let i=0;i<t.length;i++)t[i].style.viewTransitionName="",t[i].style.viewTransitionClass=""}});g.transition("none",e=>{let t=`none-${g.uid(e)}`;return e.style.viewTransitionName=t,e.style.viewTransitionClass="none",()=>{e.style.viewTransitionName="",e.style.viewTransitionClass=""}});g.transition("effect",(e,t)=>{let i=`effect-${g.uid(e)}`;return e.style.viewTransitionName=i,e.style.viewTransitionClass=t||"fade",()=>{e.style.viewTransitionName="",e.style.viewTransitionClass=""}});g.effect("glitch",e=>{e.hasAttribute("data-effect-glitch-init")||(e.setAttribute("data-effect-glitch-init",""),e.setAttribute("data-glitch-text",e.textContent))});function gy(e){let t=e.textContent;e.setAttribute("aria-label",t),e.innerHTML="",t.split(/(\s+)/).forEach((s,n)=>{if(/^\s+$/.test(s)){e.appendChild(document.createTextNode(s));return}let r=document.createElement("span");r.className="vb-blur-chunk",r.textContent=s,r.style.setProperty("--i",String(Math.floor(n/2))),r.setAttribute("aria-hidden","true"),e.appendChild(r)})}function by(e){let t=e.textContent;e.setAttribute("aria-label",t);let i=t.split(/\s+/).filter(Boolean),s=[],n="",r=e.offsetWidth,a=document.createElement("span");a.style.visibility="hidden",a.style.position="absolute",a.style.font=getComputedStyle(e).font,document.body.appendChild(a),i.forEach(o=>{let c=n?n+" "+o:o;a.textContent=c,a.offsetWidth>r&&n?(s.push(n),n=o):n=c}),n&&s.push(n),document.body.removeChild(a),s.length===0&&s.push(t),e.innerHTML="",s.forEach((o,c)=>{let l=document.createElement("span");l.className="vb-blur-chunk",l.textContent=o,l.style.setProperty("--i",String(c)),l.setAttribute("aria-hidden","true"),e.appendChild(l),c<s.length-1&&e.appendChild(document.createTextNode(" "))})}g.effect("blur-reveal",e=>{if(e.hasAttribute("data-effect-blur-reveal-init")||(e.setAttribute("data-effect-blur-reveal-init",""),g.prefersReducedMotion()))return;let t=e.classList.contains("line")?"line":"word",i=g.params(e).get("blur-reveal-delay")||"80ms";return e.style.setProperty("--blur-delay",i),t==="line"?by(e):gy(e),{activate(){e.setAttribute("data-effect-active","")},cleanup(){}}});function yy(e,t,i,s){let n=0;function r(){n<=t.length?(e.firstChild.textContent=t.slice(0,n),n++,setTimeout(r,i)):s&&s()}r()}function vy(e,t,i){let s=e.firstChild.textContent,n=s.length;function r(){n>=0?(e.firstChild.textContent=s.slice(0,n),n--,setTimeout(r,t/2)):i&&i()}r()}function wy(e){let t=e.getAttribute("data-typewriter-text"),i=g.params(e),s=i.getTime("typewriter-speed",50),n=i.getTime("typewriter-delay",0),a=e.classList.contains("loop")?2e3:null;e.textContent="";let o=document.createTextNode("");if(e.appendChild(o),!e.classList.contains("no-cursor")){let u=document.createElement("span");u.className="vb-typewriter-cursor",u.textContent="|",u.setAttribute("aria-hidden","true"),e.appendChild(u)}function l(){yy(e,t,s,()=>{a!==null&&setTimeout(()=>{vy(e,s,()=>{setTimeout(l,400)})},a)})}setTimeout(l,n)}g.effect("typewriter",e=>{if(e.hasAttribute("data-effect-typewriter-init"))return;e.setAttribute("data-effect-typewriter-init","");let t=e.textContent.trim();if(e.setAttribute("data-typewriter-text",t),e.setAttribute("aria-label",t),!g.prefersReducedMotion())return e.textContent="",{activate(){wy(e)},cleanup(){}}});var Yd="!<>-_\\/[]{}=+*^?#";function Kd(e){return e[Math.floor(Math.random()*e.length)]}function Ay(e){let t=e.getAttribute("data-scramble-text"),i=g.params(e),s=i.getTime("scramble-duration",1500),n=i.get("scramble-chars")||Yd,r=i.getTime("scramble-speed",30),a=t.length,o=0,c=Math.ceil(s/r);function l(){let u=o/c,d=Math.floor(u*a),h="";for(let p=0;p<a;p++)p<d?h+=t[p]:t[p]===" "?h+=" ":h+=Kd(n);e.textContent=h,o++,o<=c?setTimeout(l,r):e.textContent=t}l()}g.effect("scramble",e=>{if(e.hasAttribute("data-effect-scramble-init"))return;e.setAttribute("data-effect-scramble-init","");let t=e.textContent.trim();if(e.setAttribute("data-scramble-text",t),e.setAttribute("aria-label",t),g.prefersReducedMotion())return;let i=g.params(e).get("scramble-chars")||Yd;return e.textContent=t.replace(/\S/g,()=>Kd(i)),{activate(){Ay(e)},cleanup(){}}});le();function Ey(e){return e===1?1:1-Math.pow(2,-10*e)}function ky(e){let t=e.indexOf(".");return t===-1?0:e.length-t-1}function xy(e,t){let i=e.getAttribute("data-locale")||ut(),s=e.getAttribute("data-format-number");if(s!=null){let n={minimumFractionDigits:t,maximumFractionDigits:t};switch(s){case"currency":n.style="currency",n.currency=e.getAttribute("data-currency")||"USD";break;case"percent":n.style="percent";break;case"compact":n.notation="compact";break}try{return new Intl.NumberFormat(i,n)}catch{return null}}try{return new Intl.NumberFormat(i,{minimumFractionDigits:t,maximumFractionDigits:t})}catch{return null}}function Sy(e){let t=e.getAttribute("value");if(t==null)return;let i=Number(t);if(isNaN(i))return;let s=g.params(e),n=s.getNumber("ticker-start",0),r=s.getTime("ticker-duration",1e3),a=s.get("ticker-decimals")?parseInt(s.get("ticker-decimals"),10):ky(t),o=xy(e,a),c=i-n;if(c===0)return;let l=null;function u(d){l||(l=d);let h=d-l,p=Math.min(h/r,1),f=Ey(p),m=n+c*f;e.textContent=o?o.format(m):m.toFixed(a),p<1?requestAnimationFrame(u):(e.textContent=o?o.format(i):i.toFixed(a),e.hasAttribute("data-format-number")&&e.setAttribute("data-format-number-init",""))}requestAnimationFrame(u)}g.effect("ticker",e=>{if(!e.hasAttribute("data-effect-ticker-init")&&(e.setAttribute("data-effect-ticker-init",""),!g.prefersReducedMotion()))return{activate(){Sy(e)},cleanup(){}}});g.effect("animate-image",e=>{if(e.hasAttribute("data-effect-animate-image-init"))return;e.setAttribute("data-effect-animate-image-init","");let t=e,i=document.createElement("div");if(i.className="animate-image-wrapper",!t.parentNode)return;t.parentNode.insertBefore(i,t),i.appendChild(t);let s=document.createElement("button");s.type="button",s.className="animate-image-toggle",s.setAttribute("aria-label","Pause animation"),i.appendChild(s);let n=t.src,r=null,a=!1;function o(){let d=document.createElement("canvas");d.width=t.naturalWidth||t.width,d.height=t.naturalHeight||t.height;let h=d.getContext("2d");if(h){h.drawImage(t,0,0);try{r=d.toDataURL("image/png")}catch{r=null}}}function c(){a||(a=!0,t.setAttribute("data-animate-image-paused",""),s.setAttribute("aria-label","Play animation"),s.classList.add("paused"),r&&(t.src=r))}function l(){a&&(a=!1,t.removeAttribute("data-animate-image-paused"),s.setAttribute("aria-label","Pause animation"),s.classList.remove("paused"),t.src=n)}s.addEventListener("click",()=>a?l():c()),t.complete&&t.naturalWidth?o():t.addEventListener("load",o,{once:!0});let u=window.matchMedia("(prefers-reduced-motion: reduce)");return(u.matches||document.documentElement.dataset.motionReduced!==void 0)&&(t.complete?(o(),c()):t.addEventListener("load",()=>{o(),c()},{once:!0})),u.addEventListener("change",d=>{d.matches&&c()}),t.hasAttribute("data-animate-image-paused")&&(t.complete?(o(),a=!1,c()):t.addEventListener("load",()=>{o(),a=!1,c()},{once:!0})),{cleanup(){i.parentNode&&(i.parentNode.insertBefore(t,i),i.remove())}}});var _i=" ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.,:!?/-",Xd=60,Cy=30,Ty=80;function Ly(){let e=document.createElement("span");return e.className="vb-flap-char",e.innerHTML=`
|
|
649
|
+
<span class="vb-flap-top"><span class="vb-flap-text">\xA0</span></span>
|
|
650
|
+
<span class="vb-flap-bottom"><span class="vb-flap-text">\xA0</span></span>
|
|
651
|
+
<span class="vb-flap-flip-top"><span class="vb-flap-text">\xA0</span></span>
|
|
652
|
+
<span class="vb-flap-flip-bottom"><span class="vb-flap-text">\xA0</span></span>
|
|
653
|
+
<span class="vb-flap-hinge"></span>
|
|
654
|
+
`,e}function Jd(e,t){for(let i of e.querySelectorAll(".vb-flap-text"))i.textContent=t||"\xA0"}function My(e,t,i){return new Promise(s=>{let n=e.querySelector(".vb-flap-top .vb-flap-text"),r=e.querySelector(".vb-flap-bottom .vb-flap-text"),a=e.querySelector(".vb-flap-flip-top"),o=a.querySelector(".vb-flap-text"),c=e.querySelector(".vb-flap-flip-bottom"),l=c.querySelector(".vb-flap-text");n.textContent=t||"\xA0",r.textContent=t||"\xA0",o.textContent=t||"\xA0",l.textContent=i||"\xA0",a.classList.add("vb-flap-flipping"),c.classList.add("vb-flap-flipping"),setTimeout(()=>{n.textContent=i||"\xA0"},Xd/2),setTimeout(()=>{r.textContent=i||"\xA0",a.classList.remove("vb-flap-flipping"),c.classList.remove("vb-flap-flipping"),s(void 0)},Xd)})}async function Ny(e,t,i,s,n){let r=0;for(let a=0;a<i;a++){if(n._flipGeneration!==s)return;let o=a===i-1,c=_i[r%_i.length],l=o?t:_i[(r+1)%_i.length];await My(e,c,l),r++,o||await new Promise(u=>setTimeout(u,Cy))}}function Zd(e,t){let i=(e._flipGeneration||0)+1;for(e._flipGeneration=i;e.firstChild;)e.removeChild(e.firstChild);e.classList.add("vb-flap-board");let s=[];for(let n=0;n<t.length;n++){let r=Ly();e.appendChild(r),s.push(r)}return e._flipboardCells=s,{cells:s,generation:i}}async function _y(e,t,i,s){let n=i.map((r,a)=>new Promise(o=>{setTimeout(()=>{if(e._flipGeneration!==s){o(void 0);return}let c=4+Math.floor(Math.random()*7);Ny(r,t[a],c,s,e).then(o)},a*Ty)}));await Promise.all(n),e._flipGeneration===s&&i.forEach((r,a)=>Jd(r,t[a]))}g.effect("flipboard",e=>{if(e.hasAttribute("data-effect-flipboard-init"))return;e.setAttribute("data-effect-flipboard-init","");let t=(e.textContent||"").trim().toUpperCase();if(!t)return;if(e._flipboardOriginal=t,g.prefersReducedMotion()){let{cells:n}=Zd(e,t);n.forEach((r,a)=>Jd(r,t[a]));return}let{cells:i,generation:s}=Zd(e,t);return _y(e,t,i,s),{cleanup(){e._flipGeneration=(e._flipGeneration||0)+1,e._flipboardOriginal&&(e.textContent=e._flipboardOriginal,e.classList.remove("vb-flap-board"))}}});g.effect("stamp",e=>{if(document.getElementById("vb-stamp-noise"))return;let t=document.createElementNS("http://www.w3.org/2000/svg","svg");t.setAttribute("aria-hidden","true"),t.style.cssText="position:absolute;width:0;height:0;overflow:hidden",t.innerHTML=`
|
|
655
|
+
<defs>
|
|
656
|
+
<filter id="vb-stamp-noise" x="-5%" y="-5%" width="110%" height="110%">
|
|
657
|
+
<feTurbulence type="fractalNoise" baseFrequency="0.75" numOctaves="4" stitchTiles="stitch" result="noise"/>
|
|
658
|
+
<feColorMatrix type="saturate" values="0" in="noise" result="greyNoise"/>
|
|
659
|
+
<feComposite in="SourceGraphic" in2="greyNoise" operator="in"/>
|
|
660
|
+
</filter>
|
|
661
|
+
</defs>
|
|
662
|
+
`,document.body.prepend(t)});var Dy=1e3;function Qd(e){let t=document.createElement("div");t.setAttribute("role","status"),t.setAttribute("aria-live","polite"),Object.assign(t.style,{position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0,0,0,0)",whiteSpace:"nowrap",border:"0"}),t.textContent=e,document.body.appendChild(t),setTimeout(()=>t.remove(),Dy)}function th(e,t){e.dispatchEvent(new CustomEvent("rating:change",{bubbles:!0,detail:{value:t}}))}function $y(e){let t=e.querySelector('input[type="radio"]:checked');return t?t.value:"0"}g.effect("rating",e=>{if(e.hasAttribute("data-effect-rating-init")||(e.setAttribute("data-effect-rating-init",""),e.hasAttribute("data-rating-readonly")))return;let t=$y(e),i=!1;function s(a){let o=a.target.closest("label");if(!o)return;let c=o.querySelector('input[type="radio"]');c&&(i=c.checked&&c.value===t)}function n(a){if(!i)return;i=!1;let o=a.target.closest("label");if(!o)return;let c=o.querySelector('input[type="radio"]');c&&(c.checked=!1,t="0",th(e,0),Qd("Rating cleared"))}function r(a){a.target.type==="radio"&&(i||(t=a.target.value,th(e,Number(a.target.value)),Qd(`Rating: ${a.target.value} ${Number(a.target.value)===1?"star":"stars"}`)))}return e.addEventListener("mousedown",s),e.addEventListener("click",n),e.addEventListener("change",r),{cleanup(){e.removeEventListener("mousedown",s),e.removeEventListener("click",n),e.removeEventListener("change",r)}}});await T.init();Al();jd();zd();Vd();qd();g.observe();await Gd();export{R as VBService,I as VBServiceError,k as VBStore};
|
|
663
|
+
//# sourceMappingURL=vanilla-breeze-autoload.js.map
|