@xamukavila/pxpipe 0.8.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/LICENSE +21 -0
- package/README.md +312 -0
- package/bin/cli.js +7 -0
- package/dist/core/applicability.d.ts +31 -0
- package/dist/core/applicability.js +96 -0
- package/dist/core/atlas-gray.d.ts +26 -0
- package/dist/core/atlas-gray.js +64 -0
- package/dist/core/atlas.d.ts +34 -0
- package/dist/core/atlas.js +71 -0
- package/dist/core/baseline.d.ts +80 -0
- package/dist/core/baseline.js +101 -0
- package/dist/core/caveman.d.ts +38 -0
- package/dist/core/caveman.js +183 -0
- package/dist/core/export.d.ts +128 -0
- package/dist/core/export.js +390 -0
- package/dist/core/factsheet.d.ts +78 -0
- package/dist/core/factsheet.js +216 -0
- package/dist/core/gpt-model-profiles.d.ts +60 -0
- package/dist/core/gpt-model-profiles.js +161 -0
- package/dist/core/history.d.ts +141 -0
- package/dist/core/history.js +553 -0
- package/dist/core/index.d.ts +8 -0
- package/dist/core/index.js +8 -0
- package/dist/core/library.d.ts +74 -0
- package/dist/core/library.js +133 -0
- package/dist/core/measurement.d.ts +22 -0
- package/dist/core/measurement.js +213 -0
- package/dist/core/openai-history.d.ts +124 -0
- package/dist/core/openai-history.js +494 -0
- package/dist/core/openai-savings.d.ts +44 -0
- package/dist/core/openai-savings.js +75 -0
- package/dist/core/openai.d.ts +24 -0
- package/dist/core/openai.js +839 -0
- package/dist/core/png.d.ts +11 -0
- package/dist/core/png.js +132 -0
- package/dist/core/proxy.d.ts +81 -0
- package/dist/core/proxy.js +730 -0
- package/dist/core/render.d.ts +188 -0
- package/dist/core/render.js +785 -0
- package/dist/core/schema-strip.d.ts +29 -0
- package/dist/core/schema-strip.js +160 -0
- package/dist/core/tracker.d.ts +154 -0
- package/dist/core/tracker.js +216 -0
- package/dist/core/transform.d.ts +362 -0
- package/dist/core/transform.js +1828 -0
- package/dist/core/types.d.ts +77 -0
- package/dist/core/types.js +8 -0
- package/dist/dashboard/fragments.d.ts +36 -0
- package/dist/dashboard/fragments.js +938 -0
- package/dist/dashboard/types.d.ts +154 -0
- package/dist/dashboard/types.js +3 -0
- package/dist/dashboard/vendor.d.ts +3 -0
- package/dist/dashboard/vendor.js +6 -0
- package/dist/dashboard.d.ts +245 -0
- package/dist/dashboard.js +1140 -0
- package/dist/export-collect.d.ts +36 -0
- package/dist/export-collect.js +59 -0
- package/dist/node.d.ts +9 -0
- package/dist/node.js +9038 -0
- package/dist/sessions.d.ts +172 -0
- package/dist/sessions.js +510 -0
- package/dist/stats.d.ts +74 -0
- package/dist/stats.js +248 -0
- package/dist/worker.d.ts +53 -0
- package/dist/worker.js +102 -0
- package/package.json +96 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// GENERATED by scripts/vendor-ui.mjs - do not edit by hand.
|
|
2
|
+
// htmx 2.0.4 (BSD-2) + Alpine.js 3.14.9 (MIT), inlined so the dashboard
|
|
3
|
+
// works offline and ships inside the single-file npm package.
|
|
4
|
+
export const HTMX_JS = "var htmx=function(){\"use strict\";const Q={onLoad:null,process:null,on:null,off:null,trigger:null,ajax:null,find:null,findAll:null,closest:null,values:function(e,t){const n=cn(e,t||\"post\");return n.values},remove:null,addClass:null,removeClass:null,toggleClass:null,takeClass:null,swap:null,defineExtension:null,removeExtension:null,logAll:null,logNone:null,logger:null,config:{historyEnabled:true,historyCacheSize:10,refreshOnHistoryMiss:false,defaultSwapStyle:\"innerHTML\",defaultSwapDelay:0,defaultSettleDelay:20,includeIndicatorStyles:true,indicatorClass:\"htmx-indicator\",requestClass:\"htmx-request\",addedClass:\"htmx-added\",settlingClass:\"htmx-settling\",swappingClass:\"htmx-swapping\",allowEval:true,allowScriptTags:true,inlineScriptNonce:\"\",inlineStyleNonce:\"\",attributesToSettle:[\"class\",\"style\",\"width\",\"height\"],withCredentials:false,timeout:0,wsReconnectDelay:\"full-jitter\",wsBinaryType:\"blob\",disableSelector:\"[hx-disable], [data-hx-disable]\",scrollBehavior:\"instant\",defaultFocusScroll:false,getCacheBusterParam:false,globalViewTransitions:false,methodsThatUseUrlParams:[\"get\",\"delete\"],selfRequestsOnly:true,ignoreTitle:false,scrollIntoViewOnBoost:true,triggerSpecsCache:null,disableInheritance:false,responseHandling:[{code:\"204\",swap:false},{code:\"[23]..\",swap:true},{code:\"[45]..\",swap:false,error:true}],allowNestedOobSwaps:true},parseInterval:null,_:null,version:\"2.0.4\"};Q.onLoad=j;Q.process=kt;Q.on=ye;Q.off=be;Q.trigger=he;Q.ajax=Rn;Q.find=u;Q.findAll=x;Q.closest=g;Q.remove=z;Q.addClass=K;Q.removeClass=G;Q.toggleClass=W;Q.takeClass=Z;Q.swap=$e;Q.defineExtension=Fn;Q.removeExtension=Bn;Q.logAll=V;Q.logNone=_;Q.parseInterval=d;Q._=e;const n={addTriggerHandler:St,bodyContains:le,canAccessLocalStorage:B,findThisElement:Se,filterValues:hn,swap:$e,hasAttribute:s,getAttributeValue:te,getClosestAttributeValue:re,getClosestMatch:o,getExpressionVars:En,getHeaders:fn,getInputValues:cn,getInternalData:ie,getSwapSpecification:gn,getTriggerSpecs:st,getTarget:Ee,makeFragment:P,mergeObjects:ce,makeSettleInfo:xn,oobSwap:He,querySelectorExt:ae,settleImmediately:Kt,shouldCancel:ht,triggerEvent:he,triggerErrorEvent:fe,withExtensions:Ft};const r=[\"get\",\"post\",\"put\",\"delete\",\"patch\"];const H=r.map(function(e){return\"[hx-\"+e+\"], [data-hx-\"+e+\"]\"}).join(\", \");function d(e){if(e==undefined){return undefined}let t=NaN;if(e.slice(-2)==\"ms\"){t=parseFloat(e.slice(0,-2))}else if(e.slice(-1)==\"s\"){t=parseFloat(e.slice(0,-1))*1e3}else if(e.slice(-1)==\"m\"){t=parseFloat(e.slice(0,-1))*1e3*60}else{t=parseFloat(e)}return isNaN(t)?undefined:t}function ee(e,t){return e instanceof Element&&e.getAttribute(t)}function s(e,t){return!!e.hasAttribute&&(e.hasAttribute(t)||e.hasAttribute(\"data-\"+t))}function te(e,t){return ee(e,t)||ee(e,\"data-\"+t)}function c(e){const t=e.parentElement;if(!t&&e.parentNode instanceof ShadowRoot)return e.parentNode;return t}function ne(){return document}function m(e,t){return e.getRootNode?e.getRootNode({composed:t}):ne()}function o(e,t){while(e&&!t(e)){e=c(e)}return e||null}function i(e,t,n){const r=te(t,n);const o=te(t,\"hx-disinherit\");var i=te(t,\"hx-inherit\");if(e!==t){if(Q.config.disableInheritance){if(i&&(i===\"*\"||i.split(\" \").indexOf(n)>=0)){return r}else{return null}}if(o&&(o===\"*\"||o.split(\" \").indexOf(n)>=0)){return\"unset\"}}return r}function re(t,n){let r=null;o(t,function(e){return!!(r=i(t,ue(e),n))});if(r!==\"unset\"){return r}}function h(e,t){const n=e instanceof Element&&(e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector);return!!n&&n.call(e,t)}function T(e){const t=/<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i;const n=t.exec(e);if(n){return n[1].toLowerCase()}else{return\"\"}}function q(e){const t=new DOMParser;return t.parseFromString(e,\"text/html\")}function L(e,t){while(t.childNodes.length>0){e.append(t.childNodes[0])}}function A(e){const t=ne().createElement(\"script\");se(e.attributes,function(e){t.setAttribute(e.name,e.value)});t.textContent=e.textContent;t.async=false;if(Q.config.inlineScriptNonce){t.nonce=Q.config.inlineScriptNonce}return t}function N(e){return e.matches(\"script\")&&(e.type===\"text/javascript\"||e.type===\"module\"||e.type===\"\")}function I(e){Array.from(e.querySelectorAll(\"script\")).forEach(e=>{if(N(e)){const t=A(e);const n=e.parentNode;try{n.insertBefore(t,e)}catch(e){O(e)}finally{e.remove()}}})}function P(e){const t=e.replace(/<head(\\s[^>]*)?>[\\s\\S]*?<\\/head>/i,\"\");const n=T(t);let r;if(n===\"html\"){r=new DocumentFragment;const i=q(e);L(r,i.body);r.title=i.title}else if(n===\"body\"){r=new DocumentFragment;const i=q(t);L(r,i.body);r.title=i.title}else{const i=q('<body><template class=\"internal-htmx-wrapper\">'+t+\"</template></body>\");r=i.querySelector(\"template\").content;r.title=i.title;var o=r.querySelector(\"title\");if(o&&o.parentNode===r){o.remove();r.title=o.innerText}}if(r){if(Q.config.allowScriptTags){I(r)}else{r.querySelectorAll(\"script\").forEach(e=>e.remove())}}return r}function oe(e){if(e){e()}}function t(e,t){return Object.prototype.toString.call(e)===\"[object \"+t+\"]\"}function k(e){return typeof e===\"function\"}function D(e){return t(e,\"Object\")}function ie(e){const t=\"htmx-internal-data\";let n=e[t];if(!n){n=e[t]={}}return n}function M(t){const n=[];if(t){for(let e=0;e<t.length;e++){n.push(t[e])}}return n}function se(t,n){if(t){for(let e=0;e<t.length;e++){n(t[e])}}}function X(e){const t=e.getBoundingClientRect();const n=t.top;const r=t.bottom;return n<window.innerHeight&&r>=0}function le(e){return e.getRootNode({composed:true})===document}function F(e){return e.trim().split(/\\s+/)}function ce(e,t){for(const n in t){if(t.hasOwnProperty(n)){e[n]=t[n]}}return e}function S(e){try{return JSON.parse(e)}catch(e){O(e);return null}}function B(){const e=\"htmx:localStorageTest\";try{localStorage.setItem(e,e);localStorage.removeItem(e);return true}catch(e){return false}}function U(t){try{const e=new URL(t);if(e){t=e.pathname+e.search}if(!/^\\/$/.test(t)){t=t.replace(/\\/+$/,\"\")}return t}catch(e){return t}}function e(e){return vn(ne().body,function(){return eval(e)})}function j(t){const e=Q.on(\"htmx:load\",function(e){t(e.detail.elt)});return e}function V(){Q.logger=function(e,t,n){if(console){console.log(t,e,n)}}}function _(){Q.logger=null}function u(e,t){if(typeof e!==\"string\"){return e.querySelector(t)}else{return u(ne(),e)}}function x(e,t){if(typeof e!==\"string\"){return e.querySelectorAll(t)}else{return x(ne(),e)}}function E(){return window}function z(e,t){e=y(e);if(t){E().setTimeout(function(){z(e);e=null},t)}else{c(e).removeChild(e)}}function ue(e){return e instanceof Element?e:null}function $(e){return e instanceof HTMLElement?e:null}function J(e){return typeof e===\"string\"?e:null}function f(e){return e instanceof Element||e instanceof Document||e instanceof DocumentFragment?e:null}function K(e,t,n){e=ue(y(e));if(!e){return}if(n){E().setTimeout(function(){K(e,t);e=null},n)}else{e.classList&&e.classList.add(t)}}function G(e,t,n){let r=ue(y(e));if(!r){return}if(n){E().setTimeout(function(){G(r,t);r=null},n)}else{if(r.classList){r.classList.remove(t);if(r.classList.length===0){r.removeAttribute(\"class\")}}}}function W(e,t){e=y(e);e.classList.toggle(t)}function Z(e,t){e=y(e);se(e.parentElement.children,function(e){G(e,t)});K(ue(e),t)}function g(e,t){e=ue(y(e));if(e&&e.closest){return e.closest(t)}else{do{if(e==null||h(e,t)){return e}}while(e=e&&ue(c(e)));return null}}function l(e,t){return e.substring(0,t.length)===t}function Y(e,t){return e.substring(e.length-t.length)===t}function ge(e){const t=e.trim();if(l(t,\"<\")&&Y(t,\"/>\")){return t.substring(1,t.length-2)}else{return t}}function p(t,r,n){if(r.indexOf(\"global \")===0){return p(t,r.slice(7),true)}t=y(t);const o=[];{let t=0;let n=0;for(let e=0;e<r.length;e++){const l=r[e];if(l===\",\"&&t===0){o.push(r.substring(n,e));n=e+1;continue}if(l===\"<\"){t++}else if(l===\"/\"&&e<r.length-1&&r[e+1]===\">\"){t--}}if(n<r.length){o.push(r.substring(n))}}const i=[];const s=[];while(o.length>0){const r=ge(o.shift());let e;if(r.indexOf(\"closest \")===0){e=g(ue(t),ge(r.substr(8)))}else if(r.indexOf(\"find \")===0){e=u(f(t),ge(r.substr(5)))}else if(r===\"next\"||r===\"nextElementSibling\"){e=ue(t).nextElementSibling}else if(r.indexOf(\"next \")===0){e=pe(t,ge(r.substr(5)),!!n)}else if(r===\"previous\"||r===\"previousElementSibling\"){e=ue(t).previousElementSibling}else if(r.indexOf(\"previous \")===0){e=me(t,ge(r.substr(9)),!!n)}else if(r===\"document\"){e=document}else if(r===\"window\"){e=window}else if(r===\"body\"){e=document.body}else if(r===\"root\"){e=m(t,!!n)}else if(r===\"host\"){e=t.getRootNode().host}else{s.push(r)}if(e){i.push(e)}}if(s.length>0){const e=s.join(\",\");const c=f(m(t,!!n));i.push(...M(c.querySelectorAll(e)))}return i}var pe=function(t,e,n){const r=f(m(t,n)).querySelectorAll(e);for(let e=0;e<r.length;e++){const o=r[e];if(o.compareDocumentPosition(t)===Node.DOCUMENT_POSITION_PRECEDING){return o}}};var me=function(t,e,n){const r=f(m(t,n)).querySelectorAll(e);for(let e=r.length-1;e>=0;e--){const o=r[e];if(o.compareDocumentPosition(t)===Node.DOCUMENT_POSITION_FOLLOWING){return o}}};function ae(e,t){if(typeof e!==\"string\"){return p(e,t)[0]}else{return p(ne().body,e)[0]}}function y(e,t){if(typeof e===\"string\"){return u(f(t)||document,e)}else{return e}}function xe(e,t,n,r){if(k(t)){return{target:ne().body,event:J(e),listener:t,options:n}}else{return{target:y(e),event:J(t),listener:n,options:r}}}function ye(t,n,r,o){Vn(function(){const e=xe(t,n,r,o);e.target.addEventListener(e.event,e.listener,e.options)});const e=k(n);return e?n:r}function be(t,n,r){Vn(function(){const e=xe(t,n,r);e.target.removeEventListener(e.event,e.listener)});return k(n)?n:r}const ve=ne().createElement(\"output\");function we(e,t){const n=re(e,t);if(n){if(n===\"this\"){return[Se(e,t)]}else{const r=p(e,n);if(r.length===0){O('The selector \"'+n+'\" on '+t+\" returned no matches!\");return[ve]}else{return r}}}}function Se(e,t){return ue(o(e,function(e){return te(ue(e),t)!=null}))}function Ee(e){const t=re(e,\"hx-target\");if(t){if(t===\"this\"){return Se(e,\"hx-target\")}else{return ae(e,t)}}else{const n=ie(e);if(n.boosted){return ne().body}else{return e}}}function Ce(t){const n=Q.config.attributesToSettle;for(let e=0;e<n.length;e++){if(t===n[e]){return true}}return false}function Oe(t,n){se(t.attributes,function(e){if(!n.hasAttribute(e.name)&&Ce(e.name)){t.removeAttribute(e.name)}});se(n.attributes,function(e){if(Ce(e.name)){t.setAttribute(e.name,e.value)}})}function Re(t,e){const n=Un(e);for(let e=0;e<n.length;e++){const r=n[e];try{if(r.isInlineSwap(t)){return true}}catch(e){O(e)}}return t===\"outerHTML\"}function He(e,o,i,t){t=t||ne();let n=\"#\"+ee(o,\"id\");let s=\"outerHTML\";if(e===\"true\"){}else if(e.indexOf(\":\")>0){s=e.substring(0,e.indexOf(\":\"));n=e.substring(e.indexOf(\":\")+1)}else{s=e}o.removeAttribute(\"hx-swap-oob\");o.removeAttribute(\"data-hx-swap-oob\");const r=p(t,n,false);if(r){se(r,function(e){let t;const n=o.cloneNode(true);t=ne().createDocumentFragment();t.appendChild(n);if(!Re(s,e)){t=f(n)}const r={shouldSwap:true,target:e,fragment:t};if(!he(e,\"htmx:oobBeforeSwap\",r))return;e=r.target;if(r.shouldSwap){qe(t);_e(s,e,e,t,i);Te()}se(i.elts,function(e){he(e,\"htmx:oobAfterSwap\",r)})});o.parentNode.removeChild(o)}else{o.parentNode.removeChild(o);fe(ne().body,\"htmx:oobErrorNoTarget\",{content:o})}return e}function Te(){const e=u(\"#--htmx-preserve-pantry--\");if(e){for(const t of[...e.children]){const n=u(\"#\"+t.id);n.parentNode.moveBefore(t,n);n.remove()}e.remove()}}function qe(e){se(x(e,\"[hx-preserve], [data-hx-preserve]\"),function(e){const t=te(e,\"id\");const n=ne().getElementById(t);if(n!=null){if(e.moveBefore){let e=u(\"#--htmx-preserve-pantry--\");if(e==null){ne().body.insertAdjacentHTML(\"afterend\",\"<div id='--htmx-preserve-pantry--'></div>\");e=u(\"#--htmx-preserve-pantry--\")}e.moveBefore(n,null)}else{e.parentNode.replaceChild(n,e)}}})}function Le(l,e,c){se(e.querySelectorAll(\"[id]\"),function(t){const n=ee(t,\"id\");if(n&&n.length>0){const r=n.replace(\"'\",\"\\\\'\");const o=t.tagName.replace(\":\",\"\\\\:\");const e=f(l);const i=e&&e.querySelector(o+\"[id='\"+r+\"']\");if(i&&i!==e){const s=t.cloneNode();Oe(t,i);c.tasks.push(function(){Oe(t,s)})}}})}function Ae(e){return function(){G(e,Q.config.addedClass);kt(ue(e));Ne(f(e));he(e,\"htmx:load\")}}function Ne(e){const t=\"[autofocus]\";const n=$(h(e,t)?e:e.querySelector(t));if(n!=null){n.focus()}}function a(e,t,n,r){Le(e,n,r);while(n.childNodes.length>0){const o=n.firstChild;K(ue(o),Q.config.addedClass);e.insertBefore(o,t);if(o.nodeType!==Node.TEXT_NODE&&o.nodeType!==Node.COMMENT_NODE){r.tasks.push(Ae(o))}}}function Ie(e,t){let n=0;while(n<e.length){t=(t<<5)-t+e.charCodeAt(n++)|0}return t}function Pe(t){let n=0;if(t.attributes){for(let e=0;e<t.attributes.length;e++){const r=t.attributes[e];if(r.value){n=Ie(r.name,n);n=Ie(r.value,n)}}}return n}function ke(t){const n=ie(t);if(n.onHandlers){for(let e=0;e<n.onHandlers.length;e++){const r=n.onHandlers[e];be(t,r.event,r.listener)}delete n.onHandlers}}function De(e){const t=ie(e);if(t.timeout){clearTimeout(t.timeout)}if(t.listenerInfos){se(t.listenerInfos,function(e){if(e.on){be(e.on,e.trigger,e.listener)}})}ke(e);se(Object.keys(t),function(e){if(e!==\"firstInitCompleted\")delete t[e]})}function b(e){he(e,\"htmx:beforeCleanupElement\");De(e);if(e.children){se(e.children,function(e){b(e)})}}function Me(t,e,n){if(t instanceof Element&&t.tagName===\"BODY\"){return Ve(t,e,n)}let r;const o=t.previousSibling;const i=c(t);if(!i){return}a(i,t,e,n);if(o==null){r=i.firstChild}else{r=o.nextSibling}n.elts=n.elts.filter(function(e){return e!==t});while(r&&r!==t){if(r instanceof Element){n.elts.push(r)}r=r.nextSibling}b(t);if(t instanceof Element){t.remove()}else{t.parentNode.removeChild(t)}}function Xe(e,t,n){return a(e,e.firstChild,t,n)}function Fe(e,t,n){return a(c(e),e,t,n)}function Be(e,t,n){return a(e,null,t,n)}function Ue(e,t,n){return a(c(e),e.nextSibling,t,n)}function je(e){b(e);const t=c(e);if(t){return t.removeChild(e)}}function Ve(e,t,n){const r=e.firstChild;a(e,r,t,n);if(r){while(r.nextSibling){b(r.nextSibling);e.removeChild(r.nextSibling)}b(r);e.removeChild(r)}}function _e(t,e,n,r,o){switch(t){case\"none\":return;case\"outerHTML\":Me(n,r,o);return;case\"afterbegin\":Xe(n,r,o);return;case\"beforebegin\":Fe(n,r,o);return;case\"beforeend\":Be(n,r,o);return;case\"afterend\":Ue(n,r,o);return;case\"delete\":je(n);return;default:var i=Un(e);for(let e=0;e<i.length;e++){const s=i[e];try{const l=s.handleSwap(t,n,r,o);if(l){if(Array.isArray(l)){for(let e=0;e<l.length;e++){const c=l[e];if(c.nodeType!==Node.TEXT_NODE&&c.nodeType!==Node.COMMENT_NODE){o.tasks.push(Ae(c))}}}return}}catch(e){O(e)}}if(t===\"innerHTML\"){Ve(n,r,o)}else{_e(Q.config.defaultSwapStyle,e,n,r,o)}}}function ze(e,n,r){var t=x(e,\"[hx-swap-oob], [data-hx-swap-oob]\");se(t,function(e){if(Q.config.allowNestedOobSwaps||e.parentElement===null){const t=te(e,\"hx-swap-oob\");if(t!=null){He(t,e,n,r)}}else{e.removeAttribute(\"hx-swap-oob\");e.removeAttribute(\"data-hx-swap-oob\")}});return t.length>0}function $e(e,t,r,o){if(!o){o={}}e=y(e);const i=o.contextElement?m(o.contextElement,false):ne();const n=document.activeElement;let s={};try{s={elt:n,start:n?n.selectionStart:null,end:n?n.selectionEnd:null}}catch(e){}const l=xn(e);if(r.swapStyle===\"textContent\"){e.textContent=t}else{let n=P(t);l.title=n.title;if(o.selectOOB){const u=o.selectOOB.split(\",\");for(let t=0;t<u.length;t++){const a=u[t].split(\":\",2);let e=a[0].trim();if(e.indexOf(\"#\")===0){e=e.substring(1)}const f=a[1]||\"true\";const h=n.querySelector(\"#\"+e);if(h){He(f,h,l,i)}}}ze(n,l,i);se(x(n,\"template\"),function(e){if(e.content&&ze(e.content,l,i)){e.remove()}});if(o.select){const d=ne().createDocumentFragment();se(n.querySelectorAll(o.select),function(e){d.appendChild(e)});n=d}qe(n);_e(r.swapStyle,o.contextElement,e,n,l);Te()}if(s.elt&&!le(s.elt)&&ee(s.elt,\"id\")){const g=document.getElementById(ee(s.elt,\"id\"));const p={preventScroll:r.focusScroll!==undefined?!r.focusScroll:!Q.config.defaultFocusScroll};if(g){if(s.start&&g.setSelectionRange){try{g.setSelectionRange(s.start,s.end)}catch(e){}}g.focus(p)}}e.classList.remove(Q.config.swappingClass);se(l.elts,function(e){if(e.classList){e.classList.add(Q.config.settlingClass)}he(e,\"htmx:afterSwap\",o.eventInfo)});if(o.afterSwapCallback){o.afterSwapCallback()}if(!r.ignoreTitle){kn(l.title)}const c=function(){se(l.tasks,function(e){e.call()});se(l.elts,function(e){if(e.classList){e.classList.remove(Q.config.settlingClass)}he(e,\"htmx:afterSettle\",o.eventInfo)});if(o.anchor){const e=ue(y(\"#\"+o.anchor));if(e){e.scrollIntoView({block:\"start\",behavior:\"auto\"})}}yn(l.elts,r);if(o.afterSettleCallback){o.afterSettleCallback()}};if(r.settleDelay>0){E().setTimeout(c,r.settleDelay)}else{c()}}function Je(e,t,n){const r=e.getResponseHeader(t);if(r.indexOf(\"{\")===0){const o=S(r);for(const i in o){if(o.hasOwnProperty(i)){let e=o[i];if(D(e)){n=e.target!==undefined?e.target:n}else{e={value:e}}he(n,i,e)}}}else{const s=r.split(\",\");for(let e=0;e<s.length;e++){he(n,s[e].trim(),[])}}}const Ke=/\\s/;const v=/[\\s,]/;const Ge=/[_$a-zA-Z]/;const We=/[_$a-zA-Z0-9]/;const Ze=['\"',\"'\",\"/\"];const w=/[^\\s]/;const Ye=/[{(]/;const Qe=/[})]/;function et(e){const t=[];let n=0;while(n<e.length){if(Ge.exec(e.charAt(n))){var r=n;while(We.exec(e.charAt(n+1))){n++}t.push(e.substring(r,n+1))}else if(Ze.indexOf(e.charAt(n))!==-1){const o=e.charAt(n);var r=n;n++;while(n<e.length&&e.charAt(n)!==o){if(e.charAt(n)===\"\\\\\"){n++}n++}t.push(e.substring(r,n+1))}else{const i=e.charAt(n);t.push(i)}n++}return t}function tt(e,t,n){return Ge.exec(e.charAt(0))&&e!==\"true\"&&e!==\"false\"&&e!==\"this\"&&e!==n&&t!==\".\"}function nt(r,o,i){if(o[0]===\"[\"){o.shift();let e=1;let t=\" return (function(\"+i+\"){ return (\";let n=null;while(o.length>0){const s=o[0];if(s===\"]\"){e--;if(e===0){if(n===null){t=t+\"true\"}o.shift();t+=\")})\";try{const l=vn(r,function(){return Function(t)()},function(){return true});l.source=t;return l}catch(e){fe(ne().body,\"htmx:syntax:error\",{error:e,source:t});return null}}}else if(s===\"[\"){e++}if(tt(s,n,i)){t+=\"((\"+i+\".\"+s+\") ? (\"+i+\".\"+s+\") : (window.\"+s+\"))\"}else{t=t+s}n=o.shift()}}}function C(e,t){let n=\"\";while(e.length>0&&!t.test(e[0])){n+=e.shift()}return n}function rt(e){let t;if(e.length>0&&Ye.test(e[0])){e.shift();t=C(e,Qe).trim();e.shift()}else{t=C(e,v)}return t}const ot=\"input, textarea, select\";function it(e,t,n){const r=[];const o=et(t);do{C(o,w);const l=o.length;const c=C(o,/[,\\[\\s]/);if(c!==\"\"){if(c===\"every\"){const u={trigger:\"every\"};C(o,w);u.pollInterval=d(C(o,/[,\\[\\s]/));C(o,w);var i=nt(e,o,\"event\");if(i){u.eventFilter=i}r.push(u)}else{const a={trigger:c};var i=nt(e,o,\"event\");if(i){a.eventFilter=i}C(o,w);while(o.length>0&&o[0]!==\",\"){const f=o.shift();if(f===\"changed\"){a.changed=true}else if(f===\"once\"){a.once=true}else if(f===\"consume\"){a.consume=true}else if(f===\"delay\"&&o[0]===\":\"){o.shift();a.delay=d(C(o,v))}else if(f===\"from\"&&o[0]===\":\"){o.shift();if(Ye.test(o[0])){var s=rt(o)}else{var s=C(o,v);if(s===\"closest\"||s===\"find\"||s===\"next\"||s===\"previous\"){o.shift();const h=rt(o);if(h.length>0){s+=\" \"+h}}}a.from=s}else if(f===\"target\"&&o[0]===\":\"){o.shift();a.target=rt(o)}else if(f===\"throttle\"&&o[0]===\":\"){o.shift();a.throttle=d(C(o,v))}else if(f===\"queue\"&&o[0]===\":\"){o.shift();a.queue=C(o,v)}else if(f===\"root\"&&o[0]===\":\"){o.shift();a[f]=rt(o)}else if(f===\"threshold\"&&o[0]===\":\"){o.shift();a[f]=C(o,v)}else{fe(e,\"htmx:syntax:error\",{token:o.shift()})}C(o,w)}r.push(a)}}if(o.length===l){fe(e,\"htmx:syntax:error\",{token:o.shift()})}C(o,w)}while(o[0]===\",\"&&o.shift());if(n){n[t]=r}return r}function st(e){const t=te(e,\"hx-trigger\");let n=[];if(t){const r=Q.config.triggerSpecsCache;n=r&&r[t]||it(e,t,r)}if(n.length>0){return n}else if(h(e,\"form\")){return[{trigger:\"submit\"}]}else if(h(e,'input[type=\"button\"], input[type=\"submit\"]')){return[{trigger:\"click\"}]}else if(h(e,ot)){return[{trigger:\"change\"}]}else{return[{trigger:\"click\"}]}}function lt(e){ie(e).cancelled=true}function ct(e,t,n){const r=ie(e);r.timeout=E().setTimeout(function(){if(le(e)&&r.cancelled!==true){if(!gt(n,e,Mt(\"hx:poll:trigger\",{triggerSpec:n,target:e}))){t(e)}ct(e,t,n)}},n.pollInterval)}function ut(e){return location.hostname===e.hostname&&ee(e,\"href\")&&ee(e,\"href\").indexOf(\"#\")!==0}function at(e){return g(e,Q.config.disableSelector)}function ft(t,n,e){if(t instanceof HTMLAnchorElement&&ut(t)&&(t.target===\"\"||t.target===\"_self\")||t.tagName===\"FORM\"&&String(ee(t,\"method\")).toLowerCase()!==\"dialog\"){n.boosted=true;let r,o;if(t.tagName===\"A\"){r=\"get\";o=ee(t,\"href\")}else{const i=ee(t,\"method\");r=i?i.toLowerCase():\"get\";o=ee(t,\"action\");if(o==null||o===\"\"){o=ne().location.href}if(r===\"get\"&&o.includes(\"?\")){o=o.replace(/\\?[^#]+/,\"\")}}e.forEach(function(e){pt(t,function(e,t){const n=ue(e);if(at(n)){b(n);return}de(r,o,n,t)},n,e,true)})}}function ht(e,t){const n=ue(t);if(!n){return false}if(e.type===\"submit\"||e.type===\"click\"){if(n.tagName===\"FORM\"){return true}if(h(n,'input[type=\"submit\"], button')&&(h(n,\"[form]\")||g(n,\"form\")!==null)){return true}if(n instanceof HTMLAnchorElement&&n.href&&(n.getAttribute(\"href\")===\"#\"||n.getAttribute(\"href\").indexOf(\"#\")!==0)){return true}}return false}function dt(e,t){return ie(e).boosted&&e instanceof HTMLAnchorElement&&t.type===\"click\"&&(t.ctrlKey||t.metaKey)}function gt(e,t,n){const r=e.eventFilter;if(r){try{return r.call(t,n)!==true}catch(e){const o=r.source;fe(ne().body,\"htmx:eventFilter:error\",{error:e,source:o});return true}}return false}function pt(l,c,e,u,a){const f=ie(l);let t;if(u.from){t=p(l,u.from)}else{t=[l]}if(u.changed){if(!(\"lastValue\"in f)){f.lastValue=new WeakMap}t.forEach(function(e){if(!f.lastValue.has(u)){f.lastValue.set(u,new WeakMap)}f.lastValue.get(u).set(e,e.value)})}se(t,function(i){const s=function(e){if(!le(l)){i.removeEventListener(u.trigger,s);return}if(dt(l,e)){return}if(a||ht(e,l)){e.preventDefault()}if(gt(u,l,e)){return}const t=ie(e);t.triggerSpec=u;if(t.handledFor==null){t.handledFor=[]}if(t.handledFor.indexOf(l)<0){t.handledFor.push(l);if(u.consume){e.stopPropagation()}if(u.target&&e.target){if(!h(ue(e.target),u.target)){return}}if(u.once){if(f.triggeredOnce){return}else{f.triggeredOnce=true}}if(u.changed){const n=event.target;const r=n.value;const o=f.lastValue.get(u);if(o.has(n)&&o.get(n)===r){return}o.set(n,r)}if(f.delayed){clearTimeout(f.delayed)}if(f.throttle){return}if(u.throttle>0){if(!f.throttle){he(l,\"htmx:trigger\");c(l,e);f.throttle=E().setTimeout(function(){f.throttle=null},u.throttle)}}else if(u.delay>0){f.delayed=E().setTimeout(function(){he(l,\"htmx:trigger\");c(l,e)},u.delay)}else{he(l,\"htmx:trigger\");c(l,e)}}};if(e.listenerInfos==null){e.listenerInfos=[]}e.listenerInfos.push({trigger:u.trigger,listener:s,on:i});i.addEventListener(u.trigger,s)})}let mt=false;let xt=null;function yt(){if(!xt){xt=function(){mt=true};window.addEventListener(\"scroll\",xt);window.addEventListener(\"resize\",xt);setInterval(function(){if(mt){mt=false;se(ne().querySelectorAll(\"[hx-trigger*='revealed'],[data-hx-trigger*='revealed']\"),function(e){bt(e)})}},200)}}function bt(e){if(!s(e,\"data-hx-revealed\")&&X(e)){e.setAttribute(\"data-hx-revealed\",\"true\");const t=ie(e);if(t.initHash){he(e,\"revealed\")}else{e.addEventListener(\"htmx:afterProcessNode\",function(){he(e,\"revealed\")},{once:true})}}}function vt(e,t,n,r){const o=function(){if(!n.loaded){n.loaded=true;he(e,\"htmx:trigger\");t(e)}};if(r>0){E().setTimeout(o,r)}else{o()}}function wt(t,n,e){let i=false;se(r,function(r){if(s(t,\"hx-\"+r)){const o=te(t,\"hx-\"+r);i=true;n.path=o;n.verb=r;e.forEach(function(e){St(t,e,n,function(e,t){const n=ue(e);if(g(n,Q.config.disableSelector)){b(n);return}de(r,o,n,t)})})}});return i}function St(r,e,t,n){if(e.trigger===\"revealed\"){yt();pt(r,n,t,e);bt(ue(r))}else if(e.trigger===\"intersect\"){const o={};if(e.root){o.root=ae(r,e.root)}if(e.threshold){o.threshold=parseFloat(e.threshold)}const i=new IntersectionObserver(function(t){for(let e=0;e<t.length;e++){const n=t[e];if(n.isIntersecting){he(r,\"intersect\");break}}},o);i.observe(ue(r));pt(ue(r),n,t,e)}else if(!t.firstInitCompleted&&e.trigger===\"load\"){if(!gt(e,r,Mt(\"load\",{elt:r}))){vt(ue(r),n,t,e.delay)}}else if(e.pollInterval>0){t.polling=true;ct(ue(r),n,e)}else{pt(r,n,t,e)}}function Et(e){const t=ue(e);if(!t){return false}const n=t.attributes;for(let e=0;e<n.length;e++){const r=n[e].name;if(l(r,\"hx-on:\")||l(r,\"data-hx-on:\")||l(r,\"hx-on-\")||l(r,\"data-hx-on-\")){return true}}return false}const Ct=(new XPathEvaluator).createExpression('.//*[@*[ starts-with(name(), \"hx-on:\") or starts-with(name(), \"data-hx-on:\") or'+' starts-with(name(), \"hx-on-\") or starts-with(name(), \"data-hx-on-\") ]]');function Ot(e,t){if(Et(e)){t.push(ue(e))}const n=Ct.evaluate(e);let r=null;while(r=n.iterateNext())t.push(ue(r))}function Rt(e){const t=[];if(e instanceof DocumentFragment){for(const n of e.childNodes){Ot(n,t)}}else{Ot(e,t)}return t}function Ht(e){if(e.querySelectorAll){const n=\", [hx-boost] a, [data-hx-boost] a, a[hx-boost], a[data-hx-boost]\";const r=[];for(const i in Mn){const s=Mn[i];if(s.getSelectors){var t=s.getSelectors();if(t){r.push(t)}}}const o=e.querySelectorAll(H+n+\", form, [type='submit'],\"+\" [hx-ext], [data-hx-ext], [hx-trigger], [data-hx-trigger]\"+r.flat().map(e=>\", \"+e).join(\"\"));return o}else{return[]}}function Tt(e){const t=g(ue(e.target),\"button, input[type='submit']\");const n=Lt(e);if(n){n.lastButtonClicked=t}}function qt(e){const t=Lt(e);if(t){t.lastButtonClicked=null}}function Lt(e){const t=g(ue(e.target),\"button, input[type='submit']\");if(!t){return}const n=y(\"#\"+ee(t,\"form\"),t.getRootNode())||g(t,\"form\");if(!n){return}return ie(n)}function At(e){e.addEventListener(\"click\",Tt);e.addEventListener(\"focusin\",Tt);e.addEventListener(\"focusout\",qt)}function Nt(t,e,n){const r=ie(t);if(!Array.isArray(r.onHandlers)){r.onHandlers=[]}let o;const i=function(e){vn(t,function(){if(at(t)){return}if(!o){o=new Function(\"event\",n)}o.call(t,e)})};t.addEventListener(e,i);r.onHandlers.push({event:e,listener:i})}function It(t){ke(t);for(let e=0;e<t.attributes.length;e++){const n=t.attributes[e].name;const r=t.attributes[e].value;if(l(n,\"hx-on\")||l(n,\"data-hx-on\")){const o=n.indexOf(\"-on\")+3;const i=n.slice(o,o+1);if(i===\"-\"||i===\":\"){let e=n.slice(o+1);if(l(e,\":\")){e=\"htmx\"+e}else if(l(e,\"-\")){e=\"htmx:\"+e.slice(1)}else if(l(e,\"htmx-\")){e=\"htmx:\"+e.slice(5)}Nt(t,e,r)}}}}function Pt(t){if(g(t,Q.config.disableSelector)){b(t);return}const n=ie(t);const e=Pe(t);if(n.initHash!==e){De(t);n.initHash=e;he(t,\"htmx:beforeProcessNode\");const r=st(t);const o=wt(t,n,r);if(!o){if(re(t,\"hx-boost\")===\"true\"){ft(t,n,r)}else if(s(t,\"hx-trigger\")){r.forEach(function(e){St(t,e,n,function(){})})}}if(t.tagName===\"FORM\"||ee(t,\"type\")===\"submit\"&&s(t,\"form\")){At(t)}n.firstInitCompleted=true;he(t,\"htmx:afterProcessNode\")}}function kt(e){e=y(e);if(g(e,Q.config.disableSelector)){b(e);return}Pt(e);se(Ht(e),function(e){Pt(e)});se(Rt(e),It)}function Dt(e){return e.replace(/([a-z0-9])([A-Z])/g,\"$1-$2\").toLowerCase()}function Mt(e,t){let n;if(window.CustomEvent&&typeof window.CustomEvent===\"function\"){n=new CustomEvent(e,{bubbles:true,cancelable:true,composed:true,detail:t})}else{n=ne().createEvent(\"CustomEvent\");n.initCustomEvent(e,true,true,t)}return n}function fe(e,t,n){he(e,t,ce({error:t},n))}function Xt(e){return e===\"htmx:afterProcessNode\"}function Ft(e,t){se(Un(e),function(e){try{t(e)}catch(e){O(e)}})}function O(e){if(console.error){console.error(e)}else if(console.log){console.log(\"ERROR: \",e)}}function he(e,t,n){e=y(e);if(n==null){n={}}n.elt=e;const r=Mt(t,n);if(Q.logger&&!Xt(t)){Q.logger(e,t,n)}if(n.error){O(n.error);he(e,\"htmx:error\",{errorInfo:n})}let o=e.dispatchEvent(r);const i=Dt(t);if(o&&i!==t){const s=Mt(i,r.detail);o=o&&e.dispatchEvent(s)}Ft(ue(e),function(e){o=o&&(e.onEvent(t,r)!==false&&!r.defaultPrevented)});return o}let Bt=location.pathname+location.search;function Ut(){const e=ne().querySelector(\"[hx-history-elt],[data-hx-history-elt]\");return e||ne().body}function jt(t,e){if(!B()){return}const n=_t(e);const r=ne().title;const o=window.scrollY;if(Q.config.historyCacheSize<=0){localStorage.removeItem(\"htmx-history-cache\");return}t=U(t);const i=S(localStorage.getItem(\"htmx-history-cache\"))||[];for(let e=0;e<i.length;e++){if(i[e].url===t){i.splice(e,1);break}}const s={url:t,content:n,title:r,scroll:o};he(ne().body,\"htmx:historyItemCreated\",{item:s,cache:i});i.push(s);while(i.length>Q.config.historyCacheSize){i.shift()}while(i.length>0){try{localStorage.setItem(\"htmx-history-cache\",JSON.stringify(i));break}catch(e){fe(ne().body,\"htmx:historyCacheError\",{cause:e,cache:i});i.shift()}}}function Vt(t){if(!B()){return null}t=U(t);const n=S(localStorage.getItem(\"htmx-history-cache\"))||[];for(let e=0;e<n.length;e++){if(n[e].url===t){return n[e]}}return null}function _t(e){const t=Q.config.requestClass;const n=e.cloneNode(true);se(x(n,\".\"+t),function(e){G(e,t)});se(x(n,\"[data-disabled-by-htmx]\"),function(e){e.removeAttribute(\"disabled\")});return n.innerHTML}function zt(){const e=Ut();const t=Bt||location.pathname+location.search;let n;try{n=ne().querySelector('[hx-history=\"false\" i],[data-hx-history=\"false\" i]')}catch(e){n=ne().querySelector('[hx-history=\"false\"],[data-hx-history=\"false\"]')}if(!n){he(ne().body,\"htmx:beforeHistorySave\",{path:t,historyElt:e});jt(t,e)}if(Q.config.historyEnabled)history.replaceState({htmx:true},ne().title,window.location.href)}function $t(e){if(Q.config.getCacheBusterParam){e=e.replace(/org\\.htmx\\.cache-buster=[^&]*&?/,\"\");if(Y(e,\"&\")||Y(e,\"?\")){e=e.slice(0,-1)}}if(Q.config.historyEnabled){history.pushState({htmx:true},\"\",e)}Bt=e}function Jt(e){if(Q.config.historyEnabled)history.replaceState({htmx:true},\"\",e);Bt=e}function Kt(e){se(e,function(e){e.call(undefined)})}function Gt(o){const e=new XMLHttpRequest;const i={path:o,xhr:e};he(ne().body,\"htmx:historyCacheMiss\",i);e.open(\"GET\",o,true);e.setRequestHeader(\"HX-Request\",\"true\");e.setRequestHeader(\"HX-History-Restore-Request\",\"true\");e.setRequestHeader(\"HX-Current-URL\",ne().location.href);e.onload=function(){if(this.status>=200&&this.status<400){he(ne().body,\"htmx:historyCacheMissLoad\",i);const e=P(this.response);const t=e.querySelector(\"[hx-history-elt],[data-hx-history-elt]\")||e;const n=Ut();const r=xn(n);kn(e.title);qe(e);Ve(n,t,r);Te();Kt(r.tasks);Bt=o;he(ne().body,\"htmx:historyRestore\",{path:o,cacheMiss:true,serverResponse:this.response})}else{fe(ne().body,\"htmx:historyCacheMissLoadError\",i)}};e.send()}function Wt(e){zt();e=e||location.pathname+location.search;const t=Vt(e);if(t){const n=P(t.content);const r=Ut();const o=xn(r);kn(t.title);qe(n);Ve(r,n,o);Te();Kt(o.tasks);E().setTimeout(function(){window.scrollTo(0,t.scroll)},0);Bt=e;he(ne().body,\"htmx:historyRestore\",{path:e,item:t})}else{if(Q.config.refreshOnHistoryMiss){window.location.reload(true)}else{Gt(e)}}}function Zt(e){let t=we(e,\"hx-indicator\");if(t==null){t=[e]}se(t,function(e){const t=ie(e);t.requestCount=(t.requestCount||0)+1;e.classList.add.call(e.classList,Q.config.requestClass)});return t}function Yt(e){let t=we(e,\"hx-disabled-elt\");if(t==null){t=[]}se(t,function(e){const t=ie(e);t.requestCount=(t.requestCount||0)+1;e.setAttribute(\"disabled\",\"\");e.setAttribute(\"data-disabled-by-htmx\",\"\")});return t}function Qt(e,t){se(e.concat(t),function(e){const t=ie(e);t.requestCount=(t.requestCount||1)-1});se(e,function(e){const t=ie(e);if(t.requestCount===0){e.classList.remove.call(e.classList,Q.config.requestClass)}});se(t,function(e){const t=ie(e);if(t.requestCount===0){e.removeAttribute(\"disabled\");e.removeAttribute(\"data-disabled-by-htmx\")}})}function en(t,n){for(let e=0;e<t.length;e++){const r=t[e];if(r.isSameNode(n)){return true}}return false}function tn(e){const t=e;if(t.name===\"\"||t.name==null||t.disabled||g(t,\"fieldset[disabled]\")){return false}if(t.type===\"button\"||t.type===\"submit\"||t.tagName===\"image\"||t.tagName===\"reset\"||t.tagName===\"file\"){return false}if(t.type===\"checkbox\"||t.type===\"radio\"){return t.checked}return true}function nn(t,e,n){if(t!=null&&e!=null){if(Array.isArray(e)){e.forEach(function(e){n.append(t,e)})}else{n.append(t,e)}}}function rn(t,n,r){if(t!=null&&n!=null){let e=r.getAll(t);if(Array.isArray(n)){e=e.filter(e=>n.indexOf(e)<0)}else{e=e.filter(e=>e!==n)}r.delete(t);se(e,e=>r.append(t,e))}}function on(t,n,r,o,i){if(o==null||en(t,o)){return}else{t.push(o)}if(tn(o)){const s=ee(o,\"name\");let e=o.value;if(o instanceof HTMLSelectElement&&o.multiple){e=M(o.querySelectorAll(\"option:checked\")).map(function(e){return e.value})}if(o instanceof HTMLInputElement&&o.files){e=M(o.files)}nn(s,e,n);if(i){sn(o,r)}}if(o instanceof HTMLFormElement){se(o.elements,function(e){if(t.indexOf(e)>=0){rn(e.name,e.value,n)}else{t.push(e)}if(i){sn(e,r)}});new FormData(o).forEach(function(e,t){if(e instanceof File&&e.name===\"\"){return}nn(t,e,n)})}}function sn(e,t){const n=e;if(n.willValidate){he(n,\"htmx:validation:validate\");if(!n.checkValidity()){t.push({elt:n,message:n.validationMessage,validity:n.validity});he(n,\"htmx:validation:failed\",{message:n.validationMessage,validity:n.validity})}}}function ln(n,e){for(const t of e.keys()){n.delete(t)}e.forEach(function(e,t){n.append(t,e)});return n}function cn(e,t){const n=[];const r=new FormData;const o=new FormData;const i=[];const s=ie(e);if(s.lastButtonClicked&&!le(s.lastButtonClicked)){s.lastButtonClicked=null}let l=e instanceof HTMLFormElement&&e.noValidate!==true||te(e,\"hx-validate\")===\"true\";if(s.lastButtonClicked){l=l&&s.lastButtonClicked.formNoValidate!==true}if(t!==\"get\"){on(n,o,i,g(e,\"form\"),l)}on(n,r,i,e,l);if(s.lastButtonClicked||e.tagName===\"BUTTON\"||e.tagName===\"INPUT\"&&ee(e,\"type\")===\"submit\"){const u=s.lastButtonClicked||e;const a=ee(u,\"name\");nn(a,u.value,o)}const c=we(e,\"hx-include\");se(c,function(e){on(n,r,i,ue(e),l);if(!h(e,\"form\")){se(f(e).querySelectorAll(ot),function(e){on(n,r,i,e,l)})}});ln(r,o);return{errors:i,formData:r,values:An(r)}}function un(e,t,n){if(e!==\"\"){e+=\"&\"}if(String(n)===\"[object Object]\"){n=JSON.stringify(n)}const r=encodeURIComponent(n);e+=encodeURIComponent(t)+\"=\"+r;return e}function an(e){e=qn(e);let n=\"\";e.forEach(function(e,t){n=un(n,t,e)});return n}function fn(e,t,n){const r={\"HX-Request\":\"true\",\"HX-Trigger\":ee(e,\"id\"),\"HX-Trigger-Name\":ee(e,\"name\"),\"HX-Target\":te(t,\"id\"),\"HX-Current-URL\":ne().location.href};bn(e,\"hx-headers\",false,r);if(n!==undefined){r[\"HX-Prompt\"]=n}if(ie(e).boosted){r[\"HX-Boosted\"]=\"true\"}return r}function hn(n,e){const t=re(e,\"hx-params\");if(t){if(t===\"none\"){return new FormData}else if(t===\"*\"){return n}else if(t.indexOf(\"not \")===0){se(t.slice(4).split(\",\"),function(e){e=e.trim();n.delete(e)});return n}else{const r=new FormData;se(t.split(\",\"),function(t){t=t.trim();if(n.has(t)){n.getAll(t).forEach(function(e){r.append(t,e)})}});return r}}else{return n}}function dn(e){return!!ee(e,\"href\")&&ee(e,\"href\").indexOf(\"#\")>=0}function gn(e,t){const n=t||re(e,\"hx-swap\");const r={swapStyle:ie(e).boosted?\"innerHTML\":Q.config.defaultSwapStyle,swapDelay:Q.config.defaultSwapDelay,settleDelay:Q.config.defaultSettleDelay};if(Q.config.scrollIntoViewOnBoost&&ie(e).boosted&&!dn(e)){r.show=\"top\"}if(n){const s=F(n);if(s.length>0){for(let e=0;e<s.length;e++){const l=s[e];if(l.indexOf(\"swap:\")===0){r.swapDelay=d(l.slice(5))}else if(l.indexOf(\"settle:\")===0){r.settleDelay=d(l.slice(7))}else if(l.indexOf(\"transition:\")===0){r.transition=l.slice(11)===\"true\"}else if(l.indexOf(\"ignoreTitle:\")===0){r.ignoreTitle=l.slice(12)===\"true\"}else if(l.indexOf(\"scroll:\")===0){const c=l.slice(7);var o=c.split(\":\");const u=o.pop();var i=o.length>0?o.join(\":\"):null;r.scroll=u;r.scrollTarget=i}else if(l.indexOf(\"show:\")===0){const a=l.slice(5);var o=a.split(\":\");const f=o.pop();var i=o.length>0?o.join(\":\"):null;r.show=f;r.showTarget=i}else if(l.indexOf(\"focus-scroll:\")===0){const h=l.slice(\"focus-scroll:\".length);r.focusScroll=h==\"true\"}else if(e==0){r.swapStyle=l}else{O(\"Unknown modifier in hx-swap: \"+l)}}}}return r}function pn(e){return re(e,\"hx-encoding\")===\"multipart/form-data\"||h(e,\"form\")&&ee(e,\"enctype\")===\"multipart/form-data\"}function mn(t,n,r){let o=null;Ft(n,function(e){if(o==null){o=e.encodeParameters(t,r,n)}});if(o!=null){return o}else{if(pn(n)){return ln(new FormData,qn(r))}else{return an(r)}}}function xn(e){return{tasks:[],elts:[e]}}function yn(e,t){const n=e[0];const r=e[e.length-1];if(t.scroll){var o=null;if(t.scrollTarget){o=ue(ae(n,t.scrollTarget))}if(t.scroll===\"top\"&&(n||o)){o=o||n;o.scrollTop=0}if(t.scroll===\"bottom\"&&(r||o)){o=o||r;o.scrollTop=o.scrollHeight}}if(t.show){var o=null;if(t.showTarget){let e=t.showTarget;if(t.showTarget===\"window\"){e=\"body\"}o=ue(ae(n,e))}if(t.show===\"top\"&&(n||o)){o=o||n;o.scrollIntoView({block:\"start\",behavior:Q.config.scrollBehavior})}if(t.show===\"bottom\"&&(r||o)){o=o||r;o.scrollIntoView({block:\"end\",behavior:Q.config.scrollBehavior})}}}function bn(r,e,o,i){if(i==null){i={}}if(r==null){return i}const s=te(r,e);if(s){let e=s.trim();let t=o;if(e===\"unset\"){return null}if(e.indexOf(\"javascript:\")===0){e=e.slice(11);t=true}else if(e.indexOf(\"js:\")===0){e=e.slice(3);t=true}if(e.indexOf(\"{\")!==0){e=\"{\"+e+\"}\"}let n;if(t){n=vn(r,function(){return Function(\"return (\"+e+\")\")()},{})}else{n=S(e)}for(const l in n){if(n.hasOwnProperty(l)){if(i[l]==null){i[l]=n[l]}}}}return bn(ue(c(r)),e,o,i)}function vn(e,t,n){if(Q.config.allowEval){return t()}else{fe(e,\"htmx:evalDisallowedError\");return n}}function wn(e,t){return bn(e,\"hx-vars\",true,t)}function Sn(e,t){return bn(e,\"hx-vals\",false,t)}function En(e){return ce(wn(e),Sn(e))}function Cn(t,n,r){if(r!==null){try{t.setRequestHeader(n,r)}catch(e){t.setRequestHeader(n,encodeURIComponent(r));t.setRequestHeader(n+\"-URI-AutoEncoded\",\"true\")}}}function On(t){if(t.responseURL&&typeof URL!==\"undefined\"){try{const e=new URL(t.responseURL);return e.pathname+e.search}catch(e){fe(ne().body,\"htmx:badResponseUrl\",{url:t.responseURL})}}}function R(e,t){return t.test(e.getAllResponseHeaders())}function Rn(t,n,r){t=t.toLowerCase();if(r){if(r instanceof Element||typeof r===\"string\"){return de(t,n,null,null,{targetOverride:y(r)||ve,returnPromise:true})}else{let e=y(r.target);if(r.target&&!e||r.source&&!e&&!y(r.source)){e=ve}return de(t,n,y(r.source),r.event,{handler:r.handler,headers:r.headers,values:r.values,targetOverride:e,swapOverride:r.swap,select:r.select,returnPromise:true})}}else{return de(t,n,null,null,{returnPromise:true})}}function Hn(e){const t=[];while(e){t.push(e);e=e.parentElement}return t}function Tn(e,t,n){let r;let o;if(typeof URL===\"function\"){o=new URL(t,document.location.href);const i=document.location.origin;r=i===o.origin}else{o=t;r=l(t,document.location.origin)}if(Q.config.selfRequestsOnly){if(!r){return false}}return he(e,\"htmx:validateUrl\",ce({url:o,sameHost:r},n))}function qn(e){if(e instanceof FormData)return e;const t=new FormData;for(const n in e){if(e.hasOwnProperty(n)){if(e[n]&&typeof e[n].forEach===\"function\"){e[n].forEach(function(e){t.append(n,e)})}else if(typeof e[n]===\"object\"&&!(e[n]instanceof Blob)){t.append(n,JSON.stringify(e[n]))}else{t.append(n,e[n])}}}return t}function Ln(r,o,e){return new Proxy(e,{get:function(t,e){if(typeof e===\"number\")return t[e];if(e===\"length\")return t.length;if(e===\"push\"){return function(e){t.push(e);r.append(o,e)}}if(typeof t[e]===\"function\"){return function(){t[e].apply(t,arguments);r.delete(o);t.forEach(function(e){r.append(o,e)})}}if(t[e]&&t[e].length===1){return t[e][0]}else{return t[e]}},set:function(e,t,n){e[t]=n;r.delete(o);e.forEach(function(e){r.append(o,e)});return true}})}function An(o){return new Proxy(o,{get:function(e,t){if(typeof t===\"symbol\"){const r=Reflect.get(e,t);if(typeof r===\"function\"){return function(){return r.apply(o,arguments)}}else{return r}}if(t===\"toJSON\"){return()=>Object.fromEntries(o)}if(t in e){if(typeof e[t]===\"function\"){return function(){return o[t].apply(o,arguments)}}else{return e[t]}}const n=o.getAll(t);if(n.length===0){return undefined}else if(n.length===1){return n[0]}else{return Ln(e,t,n)}},set:function(t,n,e){if(typeof n!==\"string\"){return false}t.delete(n);if(e&&typeof e.forEach===\"function\"){e.forEach(function(e){t.append(n,e)})}else if(typeof e===\"object\"&&!(e instanceof Blob)){t.append(n,JSON.stringify(e))}else{t.append(n,e)}return true},deleteProperty:function(e,t){if(typeof t===\"string\"){e.delete(t)}return true},ownKeys:function(e){return Reflect.ownKeys(Object.fromEntries(e))},getOwnPropertyDescriptor:function(e,t){return Reflect.getOwnPropertyDescriptor(Object.fromEntries(e),t)}})}function de(t,n,r,o,i,D){let s=null;let l=null;i=i!=null?i:{};if(i.returnPromise&&typeof Promise!==\"undefined\"){var e=new Promise(function(e,t){s=e;l=t})}if(r==null){r=ne().body}const M=i.handler||Dn;const X=i.select||null;if(!le(r)){oe(s);return e}const c=i.targetOverride||ue(Ee(r));if(c==null||c==ve){fe(r,\"htmx:targetError\",{target:te(r,\"hx-target\")});oe(l);return e}let u=ie(r);const a=u.lastButtonClicked;if(a){const L=ee(a,\"formaction\");if(L!=null){n=L}const A=ee(a,\"formmethod\");if(A!=null){if(A.toLowerCase()!==\"dialog\"){t=A}}}const f=re(r,\"hx-confirm\");if(D===undefined){const K=function(e){return de(t,n,r,o,i,!!e)};const G={target:c,elt:r,path:n,verb:t,triggeringEvent:o,etc:i,issueRequest:K,question:f};if(he(r,\"htmx:confirm\",G)===false){oe(s);return e}}let h=r;let d=re(r,\"hx-sync\");let g=null;let F=false;if(d){const N=d.split(\":\");const I=N[0].trim();if(I===\"this\"){h=Se(r,\"hx-sync\")}else{h=ue(ae(r,I))}d=(N[1]||\"drop\").trim();u=ie(h);if(d===\"drop\"&&u.xhr&&u.abortable!==true){oe(s);return e}else if(d===\"abort\"){if(u.xhr){oe(s);return e}else{F=true}}else if(d===\"replace\"){he(h,\"htmx:abort\")}else if(d.indexOf(\"queue\")===0){const W=d.split(\" \");g=(W[1]||\"last\").trim()}}if(u.xhr){if(u.abortable){he(h,\"htmx:abort\")}else{if(g==null){if(o){const P=ie(o);if(P&&P.triggerSpec&&P.triggerSpec.queue){g=P.triggerSpec.queue}}if(g==null){g=\"last\"}}if(u.queuedRequests==null){u.queuedRequests=[]}if(g===\"first\"&&u.queuedRequests.length===0){u.queuedRequests.push(function(){de(t,n,r,o,i)})}else if(g===\"all\"){u.queuedRequests.push(function(){de(t,n,r,o,i)})}else if(g===\"last\"){u.queuedRequests=[];u.queuedRequests.push(function(){de(t,n,r,o,i)})}oe(s);return e}}const p=new XMLHttpRequest;u.xhr=p;u.abortable=F;const m=function(){u.xhr=null;u.abortable=false;if(u.queuedRequests!=null&&u.queuedRequests.length>0){const e=u.queuedRequests.shift();e()}};const B=re(r,\"hx-prompt\");if(B){var x=prompt(B);if(x===null||!he(r,\"htmx:prompt\",{prompt:x,target:c})){oe(s);m();return e}}if(f&&!D){if(!confirm(f)){oe(s);m();return e}}let y=fn(r,c,x);if(t!==\"get\"&&!pn(r)){y[\"Content-Type\"]=\"application/x-www-form-urlencoded\"}if(i.headers){y=ce(y,i.headers)}const U=cn(r,t);let b=U.errors;const j=U.formData;if(i.values){ln(j,qn(i.values))}const V=qn(En(r));const v=ln(j,V);let w=hn(v,r);if(Q.config.getCacheBusterParam&&t===\"get\"){w.set(\"org.htmx.cache-buster\",ee(c,\"id\")||\"true\")}if(n==null||n===\"\"){n=ne().location.href}const S=bn(r,\"hx-request\");const _=ie(r).boosted;let E=Q.config.methodsThatUseUrlParams.indexOf(t)>=0;const C={boosted:_,useUrlParams:E,formData:w,parameters:An(w),unfilteredFormData:v,unfilteredParameters:An(v),headers:y,target:c,verb:t,errors:b,withCredentials:i.credentials||S.credentials||Q.config.withCredentials,timeout:i.timeout||S.timeout||Q.config.timeout,path:n,triggeringEvent:o};if(!he(r,\"htmx:configRequest\",C)){oe(s);m();return e}n=C.path;t=C.verb;y=C.headers;w=qn(C.parameters);b=C.errors;E=C.useUrlParams;if(b&&b.length>0){he(r,\"htmx:validation:halted\",C);oe(s);m();return e}const z=n.split(\"#\");const $=z[0];const O=z[1];let R=n;if(E){R=$;const Z=!w.keys().next().done;if(Z){if(R.indexOf(\"?\")<0){R+=\"?\"}else{R+=\"&\"}R+=an(w);if(O){R+=\"#\"+O}}}if(!Tn(r,R,C)){fe(r,\"htmx:invalidPath\",C);oe(l);return e}p.open(t.toUpperCase(),R,true);p.overrideMimeType(\"text/html\");p.withCredentials=C.withCredentials;p.timeout=C.timeout;if(S.noHeaders){}else{for(const k in y){if(y.hasOwnProperty(k)){const Y=y[k];Cn(p,k,Y)}}}const H={xhr:p,target:c,requestConfig:C,etc:i,boosted:_,select:X,pathInfo:{requestPath:n,finalRequestPath:R,responsePath:null,anchor:O}};p.onload=function(){try{const t=Hn(r);H.pathInfo.responsePath=On(p);M(r,H);if(H.keepIndicators!==true){Qt(T,q)}he(r,\"htmx:afterRequest\",H);he(r,\"htmx:afterOnLoad\",H);if(!le(r)){let e=null;while(t.length>0&&e==null){const n=t.shift();if(le(n)){e=n}}if(e){he(e,\"htmx:afterRequest\",H);he(e,\"htmx:afterOnLoad\",H)}}oe(s);m()}catch(e){fe(r,\"htmx:onLoadError\",ce({error:e},H));throw e}};p.onerror=function(){Qt(T,q);fe(r,\"htmx:afterRequest\",H);fe(r,\"htmx:sendError\",H);oe(l);m()};p.onabort=function(){Qt(T,q);fe(r,\"htmx:afterRequest\",H);fe(r,\"htmx:sendAbort\",H);oe(l);m()};p.ontimeout=function(){Qt(T,q);fe(r,\"htmx:afterRequest\",H);fe(r,\"htmx:timeout\",H);oe(l);m()};if(!he(r,\"htmx:beforeRequest\",H)){oe(s);m();return e}var T=Zt(r);var q=Yt(r);se([\"loadstart\",\"loadend\",\"progress\",\"abort\"],function(t){se([p,p.upload],function(e){e.addEventListener(t,function(e){he(r,\"htmx:xhr:\"+t,{lengthComputable:e.lengthComputable,loaded:e.loaded,total:e.total})})})});he(r,\"htmx:beforeSend\",H);const J=E?null:mn(p,r,w);p.send(J);return e}function Nn(e,t){const n=t.xhr;let r=null;let o=null;if(R(n,/HX-Push:/i)){r=n.getResponseHeader(\"HX-Push\");o=\"push\"}else if(R(n,/HX-Push-Url:/i)){r=n.getResponseHeader(\"HX-Push-Url\");o=\"push\"}else if(R(n,/HX-Replace-Url:/i)){r=n.getResponseHeader(\"HX-Replace-Url\");o=\"replace\"}if(r){if(r===\"false\"){return{}}else{return{type:o,path:r}}}const i=t.pathInfo.finalRequestPath;const s=t.pathInfo.responsePath;const l=re(e,\"hx-push-url\");const c=re(e,\"hx-replace-url\");const u=ie(e).boosted;let a=null;let f=null;if(l){a=\"push\";f=l}else if(c){a=\"replace\";f=c}else if(u){a=\"push\";f=s||i}if(f){if(f===\"false\"){return{}}if(f===\"true\"){f=s||i}if(t.pathInfo.anchor&&f.indexOf(\"#\")===-1){f=f+\"#\"+t.pathInfo.anchor}return{type:a,path:f}}else{return{}}}function In(e,t){var n=new RegExp(e.code);return n.test(t.toString(10))}function Pn(e){for(var t=0;t<Q.config.responseHandling.length;t++){var n=Q.config.responseHandling[t];if(In(n,e.status)){return n}}return{swap:false}}function kn(e){if(e){const t=u(\"title\");if(t){t.innerHTML=e}else{window.document.title=e}}}function Dn(o,i){const s=i.xhr;let l=i.target;const e=i.etc;const c=i.select;if(!he(o,\"htmx:beforeOnLoad\",i))return;if(R(s,/HX-Trigger:/i)){Je(s,\"HX-Trigger\",o)}if(R(s,/HX-Location:/i)){zt();let e=s.getResponseHeader(\"HX-Location\");var t;if(e.indexOf(\"{\")===0){t=S(e);e=t.path;delete t.path}Rn(\"get\",e,t).then(function(){$t(e)});return}const n=R(s,/HX-Refresh:/i)&&s.getResponseHeader(\"HX-Refresh\")===\"true\";if(R(s,/HX-Redirect:/i)){i.keepIndicators=true;location.href=s.getResponseHeader(\"HX-Redirect\");n&&location.reload();return}if(n){i.keepIndicators=true;location.reload();return}if(R(s,/HX-Retarget:/i)){if(s.getResponseHeader(\"HX-Retarget\")===\"this\"){i.target=o}else{i.target=ue(ae(o,s.getResponseHeader(\"HX-Retarget\")))}}const u=Nn(o,i);const r=Pn(s);const a=r.swap;let f=!!r.error;let h=Q.config.ignoreTitle||r.ignoreTitle;let d=r.select;if(r.target){i.target=ue(ae(o,r.target))}var g=e.swapOverride;if(g==null&&r.swapOverride){g=r.swapOverride}if(R(s,/HX-Retarget:/i)){if(s.getResponseHeader(\"HX-Retarget\")===\"this\"){i.target=o}else{i.target=ue(ae(o,s.getResponseHeader(\"HX-Retarget\")))}}if(R(s,/HX-Reswap:/i)){g=s.getResponseHeader(\"HX-Reswap\")}var p=s.response;var m=ce({shouldSwap:a,serverResponse:p,isError:f,ignoreTitle:h,selectOverride:d,swapOverride:g},i);if(r.event&&!he(l,r.event,m))return;if(!he(l,\"htmx:beforeSwap\",m))return;l=m.target;p=m.serverResponse;f=m.isError;h=m.ignoreTitle;d=m.selectOverride;g=m.swapOverride;i.target=l;i.failed=f;i.successful=!f;if(m.shouldSwap){if(s.status===286){lt(o)}Ft(o,function(e){p=e.transformResponse(p,s,o)});if(u.type){zt()}var x=gn(o,g);if(!x.hasOwnProperty(\"ignoreTitle\")){x.ignoreTitle=h}l.classList.add(Q.config.swappingClass);let n=null;let r=null;if(c){d=c}if(R(s,/HX-Reselect:/i)){d=s.getResponseHeader(\"HX-Reselect\")}const y=re(o,\"hx-select-oob\");const b=re(o,\"hx-select\");let e=function(){try{if(u.type){he(ne().body,\"htmx:beforeHistoryUpdate\",ce({history:u},i));if(u.type===\"push\"){$t(u.path);he(ne().body,\"htmx:pushedIntoHistory\",{path:u.path})}else{Jt(u.path);he(ne().body,\"htmx:replacedInHistory\",{path:u.path})}}$e(l,p,x,{select:d||b,selectOOB:y,eventInfo:i,anchor:i.pathInfo.anchor,contextElement:o,afterSwapCallback:function(){if(R(s,/HX-Trigger-After-Swap:/i)){let e=o;if(!le(o)){e=ne().body}Je(s,\"HX-Trigger-After-Swap\",e)}},afterSettleCallback:function(){if(R(s,/HX-Trigger-After-Settle:/i)){let e=o;if(!le(o)){e=ne().body}Je(s,\"HX-Trigger-After-Settle\",e)}oe(n)}})}catch(e){fe(o,\"htmx:swapError\",i);oe(r);throw e}};let t=Q.config.globalViewTransitions;if(x.hasOwnProperty(\"transition\")){t=x.transition}if(t&&he(o,\"htmx:beforeTransition\",i)&&typeof Promise!==\"undefined\"&&document.startViewTransition){const v=new Promise(function(e,t){n=e;r=t});const w=e;e=function(){document.startViewTransition(function(){w();return v})}}if(x.swapDelay>0){E().setTimeout(e,x.swapDelay)}else{e()}}if(f){fe(o,\"htmx:responseError\",ce({error:\"Response Status Error Code \"+s.status+\" from \"+i.pathInfo.requestPath},i))}}const Mn={};function Xn(){return{init:function(e){return null},getSelectors:function(){return null},onEvent:function(e,t){return true},transformResponse:function(e,t,n){return e},isInlineSwap:function(e){return false},handleSwap:function(e,t,n,r){return false},encodeParameters:function(e,t,n){return null}}}function Fn(e,t){if(t.init){t.init(n)}Mn[e]=ce(Xn(),t)}function Bn(e){delete Mn[e]}function Un(e,n,r){if(n==undefined){n=[]}if(e==undefined){return n}if(r==undefined){r=[]}const t=te(e,\"hx-ext\");if(t){se(t.split(\",\"),function(e){e=e.replace(/ /g,\"\");if(e.slice(0,7)==\"ignore:\"){r.push(e.slice(7));return}if(r.indexOf(e)<0){const t=Mn[e];if(t&&n.indexOf(t)<0){n.push(t)}}})}return Un(ue(c(e)),n,r)}var jn=false;ne().addEventListener(\"DOMContentLoaded\",function(){jn=true});function Vn(e){if(jn||ne().readyState===\"complete\"){e()}else{ne().addEventListener(\"DOMContentLoaded\",e)}}function _n(){if(Q.config.includeIndicatorStyles!==false){const e=Q.config.inlineStyleNonce?` nonce=\"${Q.config.inlineStyleNonce}\"`:\"\";ne().head.insertAdjacentHTML(\"beforeend\",\"<style\"+e+\"> .\"+Q.config.indicatorClass+\"{opacity:0} .\"+Q.config.requestClass+\" .\"+Q.config.indicatorClass+\"{opacity:1; transition: opacity 200ms ease-in;} .\"+Q.config.requestClass+\".\"+Q.config.indicatorClass+\"{opacity:1; transition: opacity 200ms ease-in;} </style>\")}}function zn(){const e=ne().querySelector('meta[name=\"htmx-config\"]');if(e){return S(e.content)}else{return null}}function $n(){const e=zn();if(e){Q.config=ce(Q.config,e)}}Vn(function(){$n();_n();let e=ne().body;kt(e);const t=ne().querySelectorAll(\"[hx-trigger='restored'],[data-hx-trigger='restored']\");e.addEventListener(\"htmx:abort\",function(e){const t=e.target;const n=ie(t);if(n&&n.xhr){n.xhr.abort()}});const n=window.onpopstate?window.onpopstate.bind(window):null;window.onpopstate=function(e){if(e.state&&e.state.htmx){Wt();se(t,function(e){he(e,\"htmx:restored\",{document:ne(),triggerEvent:he})})}else{if(n){n(e)}}};E().setTimeout(function(){he(e,\"htmx:load\",{});e=null},0)});return Q}();";
|
|
5
|
+
export const ALPINE_JS = "(()=>{var nt=!1,it=!1,W=[],ot=-1;function Ut(e){Rn(e)}function Rn(e){W.includes(e)||W.push(e),Mn()}function Wt(e){let t=W.indexOf(e);t!==-1&&t>ot&&W.splice(t,1)}function Mn(){!it&&!nt&&(nt=!0,queueMicrotask(Nn))}function Nn(){nt=!1,it=!0;for(let e=0;e<W.length;e++)W[e](),ot=e;W.length=0,ot=-1,it=!1}var T,N,$,at,st=!0;function Gt(e){st=!1,e(),st=!0}function Jt(e){T=e.reactive,$=e.release,N=t=>e.effect(t,{scheduler:r=>{st?Ut(r):r()}}),at=e.raw}function ct(e){N=e}function Yt(e){let t=()=>{};return[n=>{let i=N(n);return e._x_effects||(e._x_effects=new Set,e._x_runEffects=()=>{e._x_effects.forEach(o=>o())}),e._x_effects.add(i),t=()=>{i!==void 0&&(e._x_effects.delete(i),$(i))},i},()=>{t()}]}function ve(e,t){let r=!0,n,i=N(()=>{let o=e();JSON.stringify(o),r?n=o:queueMicrotask(()=>{t(o,n),n=o}),r=!1});return()=>$(i)}var Xt=[],Zt=[],Qt=[];function er(e){Qt.push(e)}function te(e,t){typeof t==\"function\"?(e._x_cleanups||(e._x_cleanups=[]),e._x_cleanups.push(t)):(t=e,Zt.push(t))}function Ae(e){Xt.push(e)}function Oe(e,t,r){e._x_attributeCleanups||(e._x_attributeCleanups={}),e._x_attributeCleanups[t]||(e._x_attributeCleanups[t]=[]),e._x_attributeCleanups[t].push(r)}function lt(e,t){e._x_attributeCleanups&&Object.entries(e._x_attributeCleanups).forEach(([r,n])=>{(t===void 0||t.includes(r))&&(n.forEach(i=>i()),delete e._x_attributeCleanups[r])})}function tr(e){for(e._x_effects?.forEach(Wt);e._x_cleanups?.length;)e._x_cleanups.pop()()}var ut=new MutationObserver(mt),ft=!1;function ue(){ut.observe(document,{subtree:!0,childList:!0,attributes:!0,attributeOldValue:!0}),ft=!0}function dt(){kn(),ut.disconnect(),ft=!1}var le=[];function kn(){let e=ut.takeRecords();le.push(()=>e.length>0&&mt(e));let t=le.length;queueMicrotask(()=>{if(le.length===t)for(;le.length>0;)le.shift()()})}function m(e){if(!ft)return e();dt();let t=e();return ue(),t}var pt=!1,Se=[];function rr(){pt=!0}function nr(){pt=!1,mt(Se),Se=[]}function mt(e){if(pt){Se=Se.concat(e);return}let t=[],r=new Set,n=new Map,i=new Map;for(let o=0;o<e.length;o++)if(!e[o].target._x_ignoreMutationObserver&&(e[o].type===\"childList\"&&(e[o].removedNodes.forEach(s=>{s.nodeType===1&&s._x_marker&&r.add(s)}),e[o].addedNodes.forEach(s=>{if(s.nodeType===1){if(r.has(s)){r.delete(s);return}s._x_marker||t.push(s)}})),e[o].type===\"attributes\")){let s=e[o].target,a=e[o].attributeName,c=e[o].oldValue,l=()=>{n.has(s)||n.set(s,[]),n.get(s).push({name:a,value:s.getAttribute(a)})},u=()=>{i.has(s)||i.set(s,[]),i.get(s).push(a)};s.hasAttribute(a)&&c===null?l():s.hasAttribute(a)?(u(),l()):u()}i.forEach((o,s)=>{lt(s,o)}),n.forEach((o,s)=>{Xt.forEach(a=>a(s,o))});for(let o of r)t.some(s=>s.contains(o))||Zt.forEach(s=>s(o));for(let o of t)o.isConnected&&Qt.forEach(s=>s(o));t=null,r=null,n=null,i=null}function Ce(e){return z(B(e))}function k(e,t,r){return e._x_dataStack=[t,...B(r||e)],()=>{e._x_dataStack=e._x_dataStack.filter(n=>n!==t)}}function B(e){return e._x_dataStack?e._x_dataStack:typeof ShadowRoot==\"function\"&&e instanceof ShadowRoot?B(e.host):e.parentNode?B(e.parentNode):[]}function z(e){return new Proxy({objects:e},Dn)}var Dn={ownKeys({objects:e}){return Array.from(new Set(e.flatMap(t=>Object.keys(t))))},has({objects:e},t){return t==Symbol.unscopables?!1:e.some(r=>Object.prototype.hasOwnProperty.call(r,t)||Reflect.has(r,t))},get({objects:e},t,r){return t==\"toJSON\"?Pn:Reflect.get(e.find(n=>Reflect.has(n,t))||{},t,r)},set({objects:e},t,r,n){let i=e.find(s=>Object.prototype.hasOwnProperty.call(s,t))||e[e.length-1],o=Object.getOwnPropertyDescriptor(i,t);return o?.set&&o?.get?o.set.call(n,r)||!0:Reflect.set(i,t,r)}};function Pn(){return Reflect.ownKeys(this).reduce((t,r)=>(t[r]=Reflect.get(this,r),t),{})}function Te(e){let t=n=>typeof n==\"object\"&&!Array.isArray(n)&&n!==null,r=(n,i=\"\")=>{Object.entries(Object.getOwnPropertyDescriptors(n)).forEach(([o,{value:s,enumerable:a}])=>{if(a===!1||s===void 0||typeof s==\"object\"&&s!==null&&s.__v_skip)return;let c=i===\"\"?o:`${i}.${o}`;typeof s==\"object\"&&s!==null&&s._x_interceptor?n[o]=s.initialize(e,c,o):t(s)&&s!==n&&!(s instanceof Element)&&r(s,c)})};return r(e)}function Re(e,t=()=>{}){let r={initialValue:void 0,_x_interceptor:!0,initialize(n,i,o){return e(this.initialValue,()=>In(n,i),s=>ht(n,i,s),i,o)}};return t(r),n=>{if(typeof n==\"object\"&&n!==null&&n._x_interceptor){let i=r.initialize.bind(r);r.initialize=(o,s,a)=>{let c=n.initialize(o,s,a);return r.initialValue=c,i(o,s,a)}}else r.initialValue=n;return r}}function In(e,t){return t.split(\".\").reduce((r,n)=>r[n],e)}function ht(e,t,r){if(typeof t==\"string\"&&(t=t.split(\".\")),t.length===1)e[t[0]]=r;else{if(t.length===0)throw error;return e[t[0]]||(e[t[0]]={}),ht(e[t[0]],t.slice(1),r)}}var ir={};function y(e,t){ir[e]=t}function fe(e,t){let r=Ln(t);return Object.entries(ir).forEach(([n,i])=>{Object.defineProperty(e,`$${n}`,{get(){return i(t,r)},enumerable:!1})}),e}function Ln(e){let[t,r]=_t(e),n={interceptor:Re,...t};return te(e,r),n}function or(e,t,r,...n){try{return r(...n)}catch(i){re(i,e,t)}}function re(e,t,r=void 0){e=Object.assign(e??{message:\"No error message given.\"},{el:t,expression:r}),console.warn(`Alpine Expression Error: ${e.message}\n\n${r?'Expression: \"'+r+`\"\n\n`:\"\"}`,t),setTimeout(()=>{throw e},0)}var Me=!0;function ke(e){let t=Me;Me=!1;let r=e();return Me=t,r}function R(e,t,r={}){let n;return x(e,t)(i=>n=i,r),n}function x(...e){return sr(...e)}var sr=xt;function ar(e){sr=e}function xt(e,t){let r={};fe(r,e);let n=[r,...B(e)],i=typeof t==\"function\"?$n(n,t):Fn(n,t,e);return or.bind(null,e,t,i)}function $n(e,t){return(r=()=>{},{scope:n={},params:i=[]}={})=>{let o=t.apply(z([n,...e]),i);Ne(r,o)}}var gt={};function jn(e,t){if(gt[e])return gt[e];let r=Object.getPrototypeOf(async function(){}).constructor,n=/^[\\n\\s]*if.*\\(.*\\)/.test(e.trim())||/^(let|const)\\s/.test(e.trim())?`(async()=>{ ${e} })()`:e,o=(()=>{try{let s=new r([\"__self\",\"scope\"],`with (scope) { __self.result = ${n} }; __self.finished = true; return __self.result;`);return Object.defineProperty(s,\"name\",{value:`[Alpine] ${e}`}),s}catch(s){return re(s,t,e),Promise.resolve()}})();return gt[e]=o,o}function Fn(e,t,r){let n=jn(t,r);return(i=()=>{},{scope:o={},params:s=[]}={})=>{n.result=void 0,n.finished=!1;let a=z([o,...e]);if(typeof n==\"function\"){let c=n(n,a).catch(l=>re(l,r,t));n.finished?(Ne(i,n.result,a,s,r),n.result=void 0):c.then(l=>{Ne(i,l,a,s,r)}).catch(l=>re(l,r,t)).finally(()=>n.result=void 0)}}}function Ne(e,t,r,n,i){if(Me&&typeof t==\"function\"){let o=t.apply(r,n);o instanceof Promise?o.then(s=>Ne(e,s,r,n)).catch(s=>re(s,i,t)):e(o)}else typeof t==\"object\"&&t instanceof Promise?t.then(o=>e(o)):e(t)}var wt=\"x-\";function C(e=\"\"){return wt+e}function cr(e){wt=e}var De={};function d(e,t){return De[e]=t,{before(r){if(!De[r]){console.warn(String.raw`Cannot find directive \\`${r}\\`. \\`${e}\\` will use the default order of execution`);return}let n=G.indexOf(r);G.splice(n>=0?n:G.indexOf(\"DEFAULT\"),0,e)}}}function lr(e){return Object.keys(De).includes(e)}function pe(e,t,r){if(t=Array.from(t),e._x_virtualDirectives){let o=Object.entries(e._x_virtualDirectives).map(([a,c])=>({name:a,value:c})),s=Et(o);o=o.map(a=>s.find(c=>c.name===a.name)?{name:`x-bind:${a.name}`,value:`\"${a.value}\"`}:a),t=t.concat(o)}let n={};return t.map(dr((o,s)=>n[o]=s)).filter(mr).map(zn(n,r)).sort(Kn).map(o=>Bn(e,o))}function Et(e){return Array.from(e).map(dr()).filter(t=>!mr(t))}var yt=!1,de=new Map,ur=Symbol();function fr(e){yt=!0;let t=Symbol();ur=t,de.set(t,[]);let r=()=>{for(;de.get(t).length;)de.get(t).shift()();de.delete(t)},n=()=>{yt=!1,r()};e(r),n()}function _t(e){let t=[],r=a=>t.push(a),[n,i]=Yt(e);return t.push(i),[{Alpine:K,effect:n,cleanup:r,evaluateLater:x.bind(x,e),evaluate:R.bind(R,e)},()=>t.forEach(a=>a())]}function Bn(e,t){let r=()=>{},n=De[t.type]||r,[i,o]=_t(e);Oe(e,t.original,o);let s=()=>{e._x_ignore||e._x_ignoreSelf||(n.inline&&n.inline(e,t,i),n=n.bind(n,e,t,i),yt?de.get(ur).push(n):n())};return s.runCleanups=o,s}var Pe=(e,t)=>({name:r,value:n})=>(r.startsWith(e)&&(r=r.replace(e,t)),{name:r,value:n}),Ie=e=>e;function dr(e=()=>{}){return({name:t,value:r})=>{let{name:n,value:i}=pr.reduce((o,s)=>s(o),{name:t,value:r});return n!==t&&e(n,t),{name:n,value:i}}}var pr=[];function ne(e){pr.push(e)}function mr({name:e}){return hr().test(e)}var hr=()=>new RegExp(`^${wt}([^:^.]+)\\\\b`);function zn(e,t){return({name:r,value:n})=>{let i=r.match(hr()),o=r.match(/:([a-zA-Z0-9\\-_:]+)/),s=r.match(/\\.[^.\\]]+(?=[^\\]]*$)/g)||[],a=t||e[r]||r;return{type:i?i[1]:null,value:o?o[1]:null,modifiers:s.map(c=>c.replace(\".\",\"\")),expression:n,original:a}}}var bt=\"DEFAULT\",G=[\"ignore\",\"ref\",\"data\",\"id\",\"anchor\",\"bind\",\"init\",\"for\",\"model\",\"modelable\",\"transition\",\"show\",\"if\",bt,\"teleport\"];function Kn(e,t){let r=G.indexOf(e.type)===-1?bt:e.type,n=G.indexOf(t.type)===-1?bt:t.type;return G.indexOf(r)-G.indexOf(n)}function J(e,t,r={}){e.dispatchEvent(new CustomEvent(t,{detail:r,bubbles:!0,composed:!0,cancelable:!0}))}function D(e,t){if(typeof ShadowRoot==\"function\"&&e instanceof ShadowRoot){Array.from(e.children).forEach(i=>D(i,t));return}let r=!1;if(t(e,()=>r=!0),r)return;let n=e.firstElementChild;for(;n;)D(n,t,!1),n=n.nextElementSibling}function E(e,...t){console.warn(`Alpine Warning: ${e}`,...t)}var _r=!1;function gr(){_r&&E(\"Alpine has already been initialized on this page. Calling Alpine.start() more than once can cause problems.\"),_r=!0,document.body||E(\"Unable to initialize. Trying to load Alpine before `<body>` is available. Did you forget to add `defer` in Alpine's `<script>` tag?\"),J(document,\"alpine:init\"),J(document,\"alpine:initializing\"),ue(),er(t=>S(t,D)),te(t=>P(t)),Ae((t,r)=>{pe(t,r).forEach(n=>n())});let e=t=>!Y(t.parentElement,!0);Array.from(document.querySelectorAll(br().join(\",\"))).filter(e).forEach(t=>{S(t)}),J(document,\"alpine:initialized\"),setTimeout(()=>{Vn()})}var vt=[],xr=[];function yr(){return vt.map(e=>e())}function br(){return vt.concat(xr).map(e=>e())}function Le(e){vt.push(e)}function $e(e){xr.push(e)}function Y(e,t=!1){return j(e,r=>{if((t?br():yr()).some(i=>r.matches(i)))return!0})}function j(e,t){if(e){if(t(e))return e;if(e._x_teleportBack&&(e=e._x_teleportBack),!!e.parentElement)return j(e.parentElement,t)}}function wr(e){return yr().some(t=>e.matches(t))}var Er=[];function vr(e){Er.push(e)}var Hn=1;function S(e,t=D,r=()=>{}){j(e,n=>n._x_ignore)||fr(()=>{t(e,(n,i)=>{n._x_marker||(r(n,i),Er.forEach(o=>o(n,i)),pe(n,n.attributes).forEach(o=>o()),n._x_ignore||(n._x_marker=Hn++),n._x_ignore&&i())})})}function P(e,t=D){t(e,r=>{tr(r),lt(r),delete r._x_marker})}function Vn(){[[\"ui\",\"dialog\",[\"[x-dialog], [x-popover]\"]],[\"anchor\",\"anchor\",[\"[x-anchor]\"]],[\"sort\",\"sort\",[\"[x-sort]\"]]].forEach(([t,r,n])=>{lr(r)||n.some(i=>{if(document.querySelector(i))return E(`found \"${i}\", but missing ${t} plugin`),!0})})}var St=[],At=!1;function ie(e=()=>{}){return queueMicrotask(()=>{At||setTimeout(()=>{je()})}),new Promise(t=>{St.push(()=>{e(),t()})})}function je(){for(At=!1;St.length;)St.shift()()}function Sr(){At=!0}function me(e,t){return Array.isArray(t)?Ar(e,t.join(\" \")):typeof t==\"object\"&&t!==null?qn(e,t):typeof t==\"function\"?me(e,t()):Ar(e,t)}function Ar(e,t){let r=o=>o.split(\" \").filter(Boolean),n=o=>o.split(\" \").filter(s=>!e.classList.contains(s)).filter(Boolean),i=o=>(e.classList.add(...o),()=>{e.classList.remove(...o)});return t=t===!0?t=\"\":t||\"\",i(n(t))}function qn(e,t){let r=a=>a.split(\" \").filter(Boolean),n=Object.entries(t).flatMap(([a,c])=>c?r(a):!1).filter(Boolean),i=Object.entries(t).flatMap(([a,c])=>c?!1:r(a)).filter(Boolean),o=[],s=[];return i.forEach(a=>{e.classList.contains(a)&&(e.classList.remove(a),s.push(a))}),n.forEach(a=>{e.classList.contains(a)||(e.classList.add(a),o.push(a))}),()=>{s.forEach(a=>e.classList.add(a)),o.forEach(a=>e.classList.remove(a))}}function X(e,t){return typeof t==\"object\"&&t!==null?Un(e,t):Wn(e,t)}function Un(e,t){let r={};return Object.entries(t).forEach(([n,i])=>{r[n]=e.style[n],n.startsWith(\"--\")||(n=Gn(n)),e.style.setProperty(n,i)}),setTimeout(()=>{e.style.length===0&&e.removeAttribute(\"style\")}),()=>{X(e,r)}}function Wn(e,t){let r=e.getAttribute(\"style\",t);return e.setAttribute(\"style\",t),()=>{e.setAttribute(\"style\",r||\"\")}}function Gn(e){return e.replace(/([a-z])([A-Z])/g,\"$1-$2\").toLowerCase()}function he(e,t=()=>{}){let r=!1;return function(){r?t.apply(this,arguments):(r=!0,e.apply(this,arguments))}}d(\"transition\",(e,{value:t,modifiers:r,expression:n},{evaluate:i})=>{typeof n==\"function\"&&(n=i(n)),n!==!1&&(!n||typeof n==\"boolean\"?Yn(e,r,t):Jn(e,n,t))});function Jn(e,t,r){Or(e,me,\"\"),{enter:i=>{e._x_transition.enter.during=i},\"enter-start\":i=>{e._x_transition.enter.start=i},\"enter-end\":i=>{e._x_transition.enter.end=i},leave:i=>{e._x_transition.leave.during=i},\"leave-start\":i=>{e._x_transition.leave.start=i},\"leave-end\":i=>{e._x_transition.leave.end=i}}[r](t)}function Yn(e,t,r){Or(e,X);let n=!t.includes(\"in\")&&!t.includes(\"out\")&&!r,i=n||t.includes(\"in\")||[\"enter\"].includes(r),o=n||t.includes(\"out\")||[\"leave\"].includes(r);t.includes(\"in\")&&!n&&(t=t.filter((g,b)=>b<t.indexOf(\"out\"))),t.includes(\"out\")&&!n&&(t=t.filter((g,b)=>b>t.indexOf(\"out\")));let s=!t.includes(\"opacity\")&&!t.includes(\"scale\"),a=s||t.includes(\"opacity\"),c=s||t.includes(\"scale\"),l=a?0:1,u=c?_e(t,\"scale\",95)/100:1,p=_e(t,\"delay\",0)/1e3,h=_e(t,\"origin\",\"center\"),w=\"opacity, transform\",F=_e(t,\"duration\",150)/1e3,Ee=_e(t,\"duration\",75)/1e3,f=\"cubic-bezier(0.4, 0.0, 0.2, 1)\";i&&(e._x_transition.enter.during={transformOrigin:h,transitionDelay:`${p}s`,transitionProperty:w,transitionDuration:`${F}s`,transitionTimingFunction:f},e._x_transition.enter.start={opacity:l,transform:`scale(${u})`},e._x_transition.enter.end={opacity:1,transform:\"scale(1)\"}),o&&(e._x_transition.leave.during={transformOrigin:h,transitionDelay:`${p}s`,transitionProperty:w,transitionDuration:`${Ee}s`,transitionTimingFunction:f},e._x_transition.leave.start={opacity:1,transform:\"scale(1)\"},e._x_transition.leave.end={opacity:l,transform:`scale(${u})`})}function Or(e,t,r={}){e._x_transition||(e._x_transition={enter:{during:r,start:r,end:r},leave:{during:r,start:r,end:r},in(n=()=>{},i=()=>{}){Fe(e,t,{during:this.enter.during,start:this.enter.start,end:this.enter.end},n,i)},out(n=()=>{},i=()=>{}){Fe(e,t,{during:this.leave.during,start:this.leave.start,end:this.leave.end},n,i)}})}window.Element.prototype._x_toggleAndCascadeWithTransitions=function(e,t,r,n){let i=document.visibilityState===\"visible\"?requestAnimationFrame:setTimeout,o=()=>i(r);if(t){e._x_transition&&(e._x_transition.enter||e._x_transition.leave)?e._x_transition.enter&&(Object.entries(e._x_transition.enter.during).length||Object.entries(e._x_transition.enter.start).length||Object.entries(e._x_transition.enter.end).length)?e._x_transition.in(r):o():e._x_transition?e._x_transition.in(r):o();return}e._x_hidePromise=e._x_transition?new Promise((s,a)=>{e._x_transition.out(()=>{},()=>s(n)),e._x_transitioning&&e._x_transitioning.beforeCancel(()=>a({isFromCancelledTransition:!0}))}):Promise.resolve(n),queueMicrotask(()=>{let s=Cr(e);s?(s._x_hideChildren||(s._x_hideChildren=[]),s._x_hideChildren.push(e)):i(()=>{let a=c=>{let l=Promise.all([c._x_hidePromise,...(c._x_hideChildren||[]).map(a)]).then(([u])=>u?.());return delete c._x_hidePromise,delete c._x_hideChildren,l};a(e).catch(c=>{if(!c.isFromCancelledTransition)throw c})})})};function Cr(e){let t=e.parentNode;if(t)return t._x_hidePromise?t:Cr(t)}function Fe(e,t,{during:r,start:n,end:i}={},o=()=>{},s=()=>{}){if(e._x_transitioning&&e._x_transitioning.cancel(),Object.keys(r).length===0&&Object.keys(n).length===0&&Object.keys(i).length===0){o(),s();return}let a,c,l;Xn(e,{start(){a=t(e,n)},during(){c=t(e,r)},before:o,end(){a(),l=t(e,i)},after:s,cleanup(){c(),l()}})}function Xn(e,t){let r,n,i,o=he(()=>{m(()=>{r=!0,n||t.before(),i||(t.end(),je()),t.after(),e.isConnected&&t.cleanup(),delete e._x_transitioning})});e._x_transitioning={beforeCancels:[],beforeCancel(s){this.beforeCancels.push(s)},cancel:he(function(){for(;this.beforeCancels.length;)this.beforeCancels.shift()();o()}),finish:o},m(()=>{t.start(),t.during()}),Sr(),requestAnimationFrame(()=>{if(r)return;let s=Number(getComputedStyle(e).transitionDuration.replace(/,.*/,\"\").replace(\"s\",\"\"))*1e3,a=Number(getComputedStyle(e).transitionDelay.replace(/,.*/,\"\").replace(\"s\",\"\"))*1e3;s===0&&(s=Number(getComputedStyle(e).animationDuration.replace(\"s\",\"\"))*1e3),m(()=>{t.before()}),n=!0,requestAnimationFrame(()=>{r||(m(()=>{t.end()}),je(),setTimeout(e._x_transitioning.finish,s+a),i=!0)})})}function _e(e,t,r){if(e.indexOf(t)===-1)return r;let n=e[e.indexOf(t)+1];if(!n||t===\"scale\"&&isNaN(n))return r;if(t===\"duration\"||t===\"delay\"){let i=n.match(/([0-9]+)ms/);if(i)return i[1]}return t===\"origin\"&&[\"top\",\"right\",\"left\",\"center\",\"bottom\"].includes(e[e.indexOf(t)+2])?[n,e[e.indexOf(t)+2]].join(\" \"):n}var I=!1;function A(e,t=()=>{}){return(...r)=>I?t(...r):e(...r)}function Tr(e){return(...t)=>I&&e(...t)}var Rr=[];function H(e){Rr.push(e)}function Mr(e,t){Rr.forEach(r=>r(e,t)),I=!0,kr(()=>{S(t,(r,n)=>{n(r,()=>{})})}),I=!1}var Be=!1;function Nr(e,t){t._x_dataStack||(t._x_dataStack=e._x_dataStack),I=!0,Be=!0,kr(()=>{Zn(t)}),I=!1,Be=!1}function Zn(e){let t=!1;S(e,(n,i)=>{D(n,(o,s)=>{if(t&&wr(o))return s();t=!0,i(o,s)})})}function kr(e){let t=N;ct((r,n)=>{let i=t(r);return $(i),()=>{}}),e(),ct(t)}function ge(e,t,r,n=[]){switch(e._x_bindings||(e._x_bindings=T({})),e._x_bindings[t]=r,t=n.includes(\"camel\")?si(t):t,t){case\"value\":Qn(e,r);break;case\"style\":ti(e,r);break;case\"class\":ei(e,r);break;case\"selected\":case\"checked\":ri(e,t,r);break;default:Pr(e,t,r);break}}function Qn(e,t){if(Ot(e))e.attributes.value===void 0&&(e.value=t),window.fromModel&&(typeof t==\"boolean\"?e.checked=xe(e.value)===t:e.checked=Dr(e.value,t));else if(ze(e))Number.isInteger(t)?e.value=t:!Array.isArray(t)&&typeof t!=\"boolean\"&&![null,void 0].includes(t)?e.value=String(t):Array.isArray(t)?e.checked=t.some(r=>Dr(r,e.value)):e.checked=!!t;else if(e.tagName===\"SELECT\")oi(e,t);else{if(e.value===t)return;e.value=t===void 0?\"\":t}}function ei(e,t){e._x_undoAddedClasses&&e._x_undoAddedClasses(),e._x_undoAddedClasses=me(e,t)}function ti(e,t){e._x_undoAddedStyles&&e._x_undoAddedStyles(),e._x_undoAddedStyles=X(e,t)}function ri(e,t,r){Pr(e,t,r),ii(e,t,r)}function Pr(e,t,r){[null,void 0,!1].includes(r)&&ci(t)?e.removeAttribute(t):(Ir(t)&&(r=t),ni(e,t,r))}function ni(e,t,r){e.getAttribute(t)!=r&&e.setAttribute(t,r)}function ii(e,t,r){e[t]!==r&&(e[t]=r)}function oi(e,t){let r=[].concat(t).map(n=>n+\"\");Array.from(e.options).forEach(n=>{n.selected=r.includes(n.value)})}function si(e){return e.toLowerCase().replace(/-(\\w)/g,(t,r)=>r.toUpperCase())}function Dr(e,t){return e==t}function xe(e){return[1,\"1\",\"true\",\"on\",\"yes\",!0].includes(e)?!0:[0,\"0\",\"false\",\"off\",\"no\",!1].includes(e)?!1:e?Boolean(e):null}var ai=new Set([\"allowfullscreen\",\"async\",\"autofocus\",\"autoplay\",\"checked\",\"controls\",\"default\",\"defer\",\"disabled\",\"formnovalidate\",\"inert\",\"ismap\",\"itemscope\",\"loop\",\"multiple\",\"muted\",\"nomodule\",\"novalidate\",\"open\",\"playsinline\",\"readonly\",\"required\",\"reversed\",\"selected\",\"shadowrootclonable\",\"shadowrootdelegatesfocus\",\"shadowrootserializable\"]);function Ir(e){return ai.has(e)}function ci(e){return![\"aria-pressed\",\"aria-checked\",\"aria-expanded\",\"aria-selected\"].includes(e)}function Lr(e,t,r){return e._x_bindings&&e._x_bindings[t]!==void 0?e._x_bindings[t]:jr(e,t,r)}function $r(e,t,r,n=!0){if(e._x_bindings&&e._x_bindings[t]!==void 0)return e._x_bindings[t];if(e._x_inlineBindings&&e._x_inlineBindings[t]!==void 0){let i=e._x_inlineBindings[t];return i.extract=n,ke(()=>R(e,i.expression))}return jr(e,t,r)}function jr(e,t,r){let n=e.getAttribute(t);return n===null?typeof r==\"function\"?r():r:n===\"\"?!0:Ir(t)?!![t,\"true\"].includes(n):n}function ze(e){return e.type===\"checkbox\"||e.localName===\"ui-checkbox\"||e.localName===\"ui-switch\"}function Ot(e){return e.type===\"radio\"||e.localName===\"ui-radio\"}function Ke(e,t){var r;return function(){var n=this,i=arguments,o=function(){r=null,e.apply(n,i)};clearTimeout(r),r=setTimeout(o,t)}}function He(e,t){let r;return function(){let n=this,i=arguments;r||(e.apply(n,i),r=!0,setTimeout(()=>r=!1,t))}}function Ve({get:e,set:t},{get:r,set:n}){let i=!0,o,s,a=N(()=>{let c=e(),l=r();if(i)n(Ct(c)),i=!1;else{let u=JSON.stringify(c),p=JSON.stringify(l);u!==o?n(Ct(c)):u!==p&&t(Ct(l))}o=JSON.stringify(e()),s=JSON.stringify(r())});return()=>{$(a)}}function Ct(e){return typeof e==\"object\"?JSON.parse(JSON.stringify(e)):e}function Fr(e){(Array.isArray(e)?e:[e]).forEach(r=>r(K))}var Z={},Br=!1;function zr(e,t){if(Br||(Z=T(Z),Br=!0),t===void 0)return Z[e];Z[e]=t,Te(Z[e]),typeof t==\"object\"&&t!==null&&t.hasOwnProperty(\"init\")&&typeof t.init==\"function\"&&Z[e].init()}function Kr(){return Z}var Hr={};function Vr(e,t){let r=typeof t!=\"function\"?()=>t:t;return e instanceof Element?Tt(e,r()):(Hr[e]=r,()=>{})}function qr(e){return Object.entries(Hr).forEach(([t,r])=>{Object.defineProperty(e,t,{get(){return(...n)=>r(...n)}})}),e}function Tt(e,t,r){let n=[];for(;n.length;)n.pop()();let i=Object.entries(t).map(([s,a])=>({name:s,value:a})),o=Et(i);return i=i.map(s=>o.find(a=>a.name===s.name)?{name:`x-bind:${s.name}`,value:`\"${s.value}\"`}:s),pe(e,i,r).map(s=>{n.push(s.runCleanups),s()}),()=>{for(;n.length;)n.pop()()}}var Ur={};function Wr(e,t){Ur[e]=t}function Gr(e,t){return Object.entries(Ur).forEach(([r,n])=>{Object.defineProperty(e,r,{get(){return(...i)=>n.bind(t)(...i)},enumerable:!1})}),e}var li={get reactive(){return T},get release(){return $},get effect(){return N},get raw(){return at},version:\"3.14.9\",flushAndStopDeferringMutations:nr,dontAutoEvaluateFunctions:ke,disableEffectScheduling:Gt,startObservingMutations:ue,stopObservingMutations:dt,setReactivityEngine:Jt,onAttributeRemoved:Oe,onAttributesAdded:Ae,closestDataStack:B,skipDuringClone:A,onlyDuringClone:Tr,addRootSelector:Le,addInitSelector:$e,interceptClone:H,addScopeToNode:k,deferMutations:rr,mapAttributes:ne,evaluateLater:x,interceptInit:vr,setEvaluator:ar,mergeProxies:z,extractProp:$r,findClosest:j,onElRemoved:te,closestRoot:Y,destroyTree:P,interceptor:Re,transition:Fe,setStyles:X,mutateDom:m,directive:d,entangle:Ve,throttle:He,debounce:Ke,evaluate:R,initTree:S,nextTick:ie,prefixed:C,prefix:cr,plugin:Fr,magic:y,store:zr,start:gr,clone:Nr,cloneNode:Mr,bound:Lr,$data:Ce,watch:ve,walk:D,data:Wr,bind:Vr},K=li;function Rt(e,t){let r=Object.create(null),n=e.split(\",\");for(let i=0;i<n.length;i++)r[n[i]]=!0;return t?i=>!!r[i.toLowerCase()]:i=>!!r[i]}var ui=\"itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly\";var Ls=Rt(ui+\",async,autofocus,autoplay,controls,default,defer,disabled,hidden,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected\");var Jr=Object.freeze({}),$s=Object.freeze([]);var fi=Object.prototype.hasOwnProperty,ye=(e,t)=>fi.call(e,t),V=Array.isArray,oe=e=>Yr(e)===\"[object Map]\";var di=e=>typeof e==\"string\",qe=e=>typeof e==\"symbol\",be=e=>e!==null&&typeof e==\"object\";var pi=Object.prototype.toString,Yr=e=>pi.call(e),Mt=e=>Yr(e).slice(8,-1);var Ue=e=>di(e)&&e!==\"NaN\"&&e[0]!==\"-\"&&\"\"+parseInt(e,10)===e;var We=e=>{let t=Object.create(null);return r=>t[r]||(t[r]=e(r))},mi=/-(\\w)/g,js=We(e=>e.replace(mi,(t,r)=>r?r.toUpperCase():\"\")),hi=/\\B([A-Z])/g,Fs=We(e=>e.replace(hi,\"-$1\").toLowerCase()),Nt=We(e=>e.charAt(0).toUpperCase()+e.slice(1)),Bs=We(e=>e?`on${Nt(e)}`:\"\"),kt=(e,t)=>e!==t&&(e===e||t===t);var Dt=new WeakMap,we=[],L,Q=Symbol(\"iterate\"),Pt=Symbol(\"Map key iterate\");function _i(e){return e&&e._isEffect===!0}function rn(e,t=Jr){_i(e)&&(e=e.raw);let r=xi(e,t);return t.lazy||r(),r}function nn(e){e.active&&(on(e),e.options.onStop&&e.options.onStop(),e.active=!1)}var gi=0;function xi(e,t){let r=function(){if(!r.active)return e();if(!we.includes(r)){on(r);try{return bi(),we.push(r),L=r,e()}finally{we.pop(),sn(),L=we[we.length-1]}}};return r.id=gi++,r.allowRecurse=!!t.allowRecurse,r._isEffect=!0,r.active=!0,r.raw=e,r.deps=[],r.options=t,r}function on(e){let{deps:t}=e;if(t.length){for(let r=0;r<t.length;r++)t[r].delete(e);t.length=0}}var se=!0,Lt=[];function yi(){Lt.push(se),se=!1}function bi(){Lt.push(se),se=!0}function sn(){let e=Lt.pop();se=e===void 0?!0:e}function M(e,t,r){if(!se||L===void 0)return;let n=Dt.get(e);n||Dt.set(e,n=new Map);let i=n.get(r);i||n.set(r,i=new Set),i.has(L)||(i.add(L),L.deps.push(i),L.options.onTrack&&L.options.onTrack({effect:L,target:e,type:t,key:r}))}function U(e,t,r,n,i,o){let s=Dt.get(e);if(!s)return;let a=new Set,c=u=>{u&&u.forEach(p=>{(p!==L||p.allowRecurse)&&a.add(p)})};if(t===\"clear\")s.forEach(c);else if(r===\"length\"&&V(e))s.forEach((u,p)=>{(p===\"length\"||p>=n)&&c(u)});else switch(r!==void 0&&c(s.get(r)),t){case\"add\":V(e)?Ue(r)&&c(s.get(\"length\")):(c(s.get(Q)),oe(e)&&c(s.get(Pt)));break;case\"delete\":V(e)||(c(s.get(Q)),oe(e)&&c(s.get(Pt)));break;case\"set\":oe(e)&&c(s.get(Q));break}let l=u=>{u.options.onTrigger&&u.options.onTrigger({effect:u,target:e,key:r,type:t,newValue:n,oldValue:i,oldTarget:o}),u.options.scheduler?u.options.scheduler(u):u()};a.forEach(l)}var wi=Rt(\"__proto__,__v_isRef,__isVue\"),an=new Set(Object.getOwnPropertyNames(Symbol).map(e=>Symbol[e]).filter(qe)),Ei=cn();var vi=cn(!0);var Xr=Si();function Si(){let e={};return[\"includes\",\"indexOf\",\"lastIndexOf\"].forEach(t=>{e[t]=function(...r){let n=_(this);for(let o=0,s=this.length;o<s;o++)M(n,\"get\",o+\"\");let i=n[t](...r);return i===-1||i===!1?n[t](...r.map(_)):i}}),[\"push\",\"pop\",\"shift\",\"unshift\",\"splice\"].forEach(t=>{e[t]=function(...r){yi();let n=_(this)[t].apply(this,r);return sn(),n}}),e}function cn(e=!1,t=!1){return function(n,i,o){if(i===\"__v_isReactive\")return!e;if(i===\"__v_isReadonly\")return e;if(i===\"__v_raw\"&&o===(e?t?Bi:dn:t?Fi:fn).get(n))return n;let s=V(n);if(!e&&s&&ye(Xr,i))return Reflect.get(Xr,i,o);let a=Reflect.get(n,i,o);return(qe(i)?an.has(i):wi(i))||(e||M(n,\"get\",i),t)?a:It(a)?!s||!Ue(i)?a.value:a:be(a)?e?pn(a):et(a):a}}var Ai=Oi();function Oi(e=!1){return function(r,n,i,o){let s=r[n];if(!e&&(i=_(i),s=_(s),!V(r)&&It(s)&&!It(i)))return s.value=i,!0;let a=V(r)&&Ue(n)?Number(n)<r.length:ye(r,n),c=Reflect.set(r,n,i,o);return r===_(o)&&(a?kt(i,s)&&U(r,\"set\",n,i,s):U(r,\"add\",n,i)),c}}function Ci(e,t){let r=ye(e,t),n=e[t],i=Reflect.deleteProperty(e,t);return i&&r&&U(e,\"delete\",t,void 0,n),i}function Ti(e,t){let r=Reflect.has(e,t);return(!qe(t)||!an.has(t))&&M(e,\"has\",t),r}function Ri(e){return M(e,\"iterate\",V(e)?\"length\":Q),Reflect.ownKeys(e)}var Mi={get:Ei,set:Ai,deleteProperty:Ci,has:Ti,ownKeys:Ri},Ni={get:vi,set(e,t){return console.warn(`Set operation on key \"${String(t)}\" failed: target is readonly.`,e),!0},deleteProperty(e,t){return console.warn(`Delete operation on key \"${String(t)}\" failed: target is readonly.`,e),!0}};var $t=e=>be(e)?et(e):e,jt=e=>be(e)?pn(e):e,Ft=e=>e,Qe=e=>Reflect.getPrototypeOf(e);function Ge(e,t,r=!1,n=!1){e=e.__v_raw;let i=_(e),o=_(t);t!==o&&!r&&M(i,\"get\",t),!r&&M(i,\"get\",o);let{has:s}=Qe(i),a=n?Ft:r?jt:$t;if(s.call(i,t))return a(e.get(t));if(s.call(i,o))return a(e.get(o));e!==i&&e.get(t)}function Je(e,t=!1){let r=this.__v_raw,n=_(r),i=_(e);return e!==i&&!t&&M(n,\"has\",e),!t&&M(n,\"has\",i),e===i?r.has(e):r.has(e)||r.has(i)}function Ye(e,t=!1){return e=e.__v_raw,!t&&M(_(e),\"iterate\",Q),Reflect.get(e,\"size\",e)}function Zr(e){e=_(e);let t=_(this);return Qe(t).has.call(t,e)||(t.add(e),U(t,\"add\",e,e)),this}function Qr(e,t){t=_(t);let r=_(this),{has:n,get:i}=Qe(r),o=n.call(r,e);o?un(r,n,e):(e=_(e),o=n.call(r,e));let s=i.call(r,e);return r.set(e,t),o?kt(t,s)&&U(r,\"set\",e,t,s):U(r,\"add\",e,t),this}function en(e){let t=_(this),{has:r,get:n}=Qe(t),i=r.call(t,e);i?un(t,r,e):(e=_(e),i=r.call(t,e));let o=n?n.call(t,e):void 0,s=t.delete(e);return i&&U(t,\"delete\",e,void 0,o),s}function tn(){let e=_(this),t=e.size!==0,r=oe(e)?new Map(e):new Set(e),n=e.clear();return t&&U(e,\"clear\",void 0,void 0,r),n}function Xe(e,t){return function(n,i){let o=this,s=o.__v_raw,a=_(s),c=t?Ft:e?jt:$t;return!e&&M(a,\"iterate\",Q),s.forEach((l,u)=>n.call(i,c(l),c(u),o))}}function Ze(e,t,r){return function(...n){let i=this.__v_raw,o=_(i),s=oe(o),a=e===\"entries\"||e===Symbol.iterator&&s,c=e===\"keys\"&&s,l=i[e](...n),u=r?Ft:t?jt:$t;return!t&&M(o,\"iterate\",c?Pt:Q),{next(){let{value:p,done:h}=l.next();return h?{value:p,done:h}:{value:a?[u(p[0]),u(p[1])]:u(p),done:h}},[Symbol.iterator](){return this}}}}function q(e){return function(...t){{let r=t[0]?`on key \"${t[0]}\" `:\"\";console.warn(`${Nt(e)} operation ${r}failed: target is readonly.`,_(this))}return e===\"delete\"?!1:this}}function ki(){let e={get(o){return Ge(this,o)},get size(){return Ye(this)},has:Je,add:Zr,set:Qr,delete:en,clear:tn,forEach:Xe(!1,!1)},t={get(o){return Ge(this,o,!1,!0)},get size(){return Ye(this)},has:Je,add:Zr,set:Qr,delete:en,clear:tn,forEach:Xe(!1,!0)},r={get(o){return Ge(this,o,!0)},get size(){return Ye(this,!0)},has(o){return Je.call(this,o,!0)},add:q(\"add\"),set:q(\"set\"),delete:q(\"delete\"),clear:q(\"clear\"),forEach:Xe(!0,!1)},n={get(o){return Ge(this,o,!0,!0)},get size(){return Ye(this,!0)},has(o){return Je.call(this,o,!0)},add:q(\"add\"),set:q(\"set\"),delete:q(\"delete\"),clear:q(\"clear\"),forEach:Xe(!0,!0)};return[\"keys\",\"values\",\"entries\",Symbol.iterator].forEach(o=>{e[o]=Ze(o,!1,!1),r[o]=Ze(o,!0,!1),t[o]=Ze(o,!1,!0),n[o]=Ze(o,!0,!0)}),[e,r,t,n]}var[Di,Pi,Ii,Li]=ki();function ln(e,t){let r=t?e?Li:Ii:e?Pi:Di;return(n,i,o)=>i===\"__v_isReactive\"?!e:i===\"__v_isReadonly\"?e:i===\"__v_raw\"?n:Reflect.get(ye(r,i)&&i in n?r:n,i,o)}var $i={get:ln(!1,!1)};var ji={get:ln(!0,!1)};function un(e,t,r){let n=_(r);if(n!==r&&t.call(e,n)){let i=Mt(e);console.warn(`Reactive ${i} contains both the raw and reactive versions of the same object${i===\"Map\"?\" as keys\":\"\"}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`)}}var fn=new WeakMap,Fi=new WeakMap,dn=new WeakMap,Bi=new WeakMap;function zi(e){switch(e){case\"Object\":case\"Array\":return 1;case\"Map\":case\"Set\":case\"WeakMap\":case\"WeakSet\":return 2;default:return 0}}function Ki(e){return e.__v_skip||!Object.isExtensible(e)?0:zi(Mt(e))}function et(e){return e&&e.__v_isReadonly?e:mn(e,!1,Mi,$i,fn)}function pn(e){return mn(e,!0,Ni,ji,dn)}function mn(e,t,r,n,i){if(!be(e))return console.warn(`value cannot be made reactive: ${String(e)}`),e;if(e.__v_raw&&!(t&&e.__v_isReactive))return e;let o=i.get(e);if(o)return o;let s=Ki(e);if(s===0)return e;let a=new Proxy(e,s===2?n:r);return i.set(e,a),a}function _(e){return e&&_(e.__v_raw)||e}function It(e){return Boolean(e&&e.__v_isRef===!0)}y(\"nextTick\",()=>ie);y(\"dispatch\",e=>J.bind(J,e));y(\"watch\",(e,{evaluateLater:t,cleanup:r})=>(n,i)=>{let o=t(n),a=ve(()=>{let c;return o(l=>c=l),c},i);r(a)});y(\"store\",Kr);y(\"data\",e=>Ce(e));y(\"root\",e=>Y(e));y(\"refs\",e=>(e._x_refs_proxy||(e._x_refs_proxy=z(Hi(e))),e._x_refs_proxy));function Hi(e){let t=[];return j(e,r=>{r._x_refs&&t.push(r._x_refs)}),t}var Bt={};function zt(e){return Bt[e]||(Bt[e]=0),++Bt[e]}function hn(e,t){return j(e,r=>{if(r._x_ids&&r._x_ids[t])return!0})}function _n(e,t){e._x_ids||(e._x_ids={}),e._x_ids[t]||(e._x_ids[t]=zt(t))}y(\"id\",(e,{cleanup:t})=>(r,n=null)=>{let i=`${r}${n?`-${n}`:\"\"}`;return Vi(e,i,t,()=>{let o=hn(e,r),s=o?o._x_ids[r]:zt(r);return n?`${r}-${s}-${n}`:`${r}-${s}`})});H((e,t)=>{e._x_id&&(t._x_id=e._x_id)});function Vi(e,t,r,n){if(e._x_id||(e._x_id={}),e._x_id[t])return e._x_id[t];let i=n();return e._x_id[t]=i,r(()=>{delete e._x_id[t]}),i}y(\"el\",e=>e);gn(\"Focus\",\"focus\",\"focus\");gn(\"Persist\",\"persist\",\"persist\");function gn(e,t,r){y(t,n=>E(`You can't use [$${t}] without first installing the \"${e}\" plugin here: https://alpinejs.dev/plugins/${r}`,n))}d(\"modelable\",(e,{expression:t},{effect:r,evaluateLater:n,cleanup:i})=>{let o=n(t),s=()=>{let u;return o(p=>u=p),u},a=n(`${t} = __placeholder`),c=u=>a(()=>{},{scope:{__placeholder:u}}),l=s();c(l),queueMicrotask(()=>{if(!e._x_model)return;e._x_removeModelListeners.default();let u=e._x_model.get,p=e._x_model.set,h=Ve({get(){return u()},set(w){p(w)}},{get(){return s()},set(w){c(w)}});i(h)})});d(\"teleport\",(e,{modifiers:t,expression:r},{cleanup:n})=>{e.tagName.toLowerCase()!==\"template\"&&E(\"x-teleport can only be used on a <template> tag\",e);let i=xn(r),o=e.content.cloneNode(!0).firstElementChild;e._x_teleport=o,o._x_teleportBack=e,e.setAttribute(\"data-teleport-template\",!0),o.setAttribute(\"data-teleport-target\",!0),e._x_forwardEvents&&e._x_forwardEvents.forEach(a=>{o.addEventListener(a,c=>{c.stopPropagation(),e.dispatchEvent(new c.constructor(c.type,c))})}),k(o,{},e);let s=(a,c,l)=>{l.includes(\"prepend\")?c.parentNode.insertBefore(a,c):l.includes(\"append\")?c.parentNode.insertBefore(a,c.nextSibling):c.appendChild(a)};m(()=>{s(o,i,t),A(()=>{S(o)})()}),e._x_teleportPutBack=()=>{let a=xn(r);m(()=>{s(e._x_teleport,a,t)})},n(()=>m(()=>{o.remove(),P(o)}))});var qi=document.createElement(\"div\");function xn(e){let t=A(()=>document.querySelector(e),()=>qi)();return t||E(`Cannot find x-teleport element for selector: \"${e}\"`),t}var yn=()=>{};yn.inline=(e,{modifiers:t},{cleanup:r})=>{t.includes(\"self\")?e._x_ignoreSelf=!0:e._x_ignore=!0,r(()=>{t.includes(\"self\")?delete e._x_ignoreSelf:delete e._x_ignore})};d(\"ignore\",yn);d(\"effect\",A((e,{expression:t},{effect:r})=>{r(x(e,t))}));function ae(e,t,r,n){let i=e,o=c=>n(c),s={},a=(c,l)=>u=>l(c,u);if(r.includes(\"dot\")&&(t=Ui(t)),r.includes(\"camel\")&&(t=Wi(t)),r.includes(\"passive\")&&(s.passive=!0),r.includes(\"capture\")&&(s.capture=!0),r.includes(\"window\")&&(i=window),r.includes(\"document\")&&(i=document),r.includes(\"debounce\")){let c=r[r.indexOf(\"debounce\")+1]||\"invalid-wait\",l=tt(c.split(\"ms\")[0])?Number(c.split(\"ms\")[0]):250;o=Ke(o,l)}if(r.includes(\"throttle\")){let c=r[r.indexOf(\"throttle\")+1]||\"invalid-wait\",l=tt(c.split(\"ms\")[0])?Number(c.split(\"ms\")[0]):250;o=He(o,l)}return r.includes(\"prevent\")&&(o=a(o,(c,l)=>{l.preventDefault(),c(l)})),r.includes(\"stop\")&&(o=a(o,(c,l)=>{l.stopPropagation(),c(l)})),r.includes(\"once\")&&(o=a(o,(c,l)=>{c(l),i.removeEventListener(t,o,s)})),(r.includes(\"away\")||r.includes(\"outside\"))&&(i=document,o=a(o,(c,l)=>{e.contains(l.target)||l.target.isConnected!==!1&&(e.offsetWidth<1&&e.offsetHeight<1||e._x_isShown!==!1&&c(l))})),r.includes(\"self\")&&(o=a(o,(c,l)=>{l.target===e&&c(l)})),(Ji(t)||wn(t))&&(o=a(o,(c,l)=>{Yi(l,r)||c(l)})),i.addEventListener(t,o,s),()=>{i.removeEventListener(t,o,s)}}function Ui(e){return e.replace(/-/g,\".\")}function Wi(e){return e.toLowerCase().replace(/-(\\w)/g,(t,r)=>r.toUpperCase())}function tt(e){return!Array.isArray(e)&&!isNaN(e)}function Gi(e){return[\" \",\"_\"].includes(e)?e:e.replace(/([a-z])([A-Z])/g,\"$1-$2\").replace(/[_\\s]/,\"-\").toLowerCase()}function Ji(e){return[\"keydown\",\"keyup\"].includes(e)}function wn(e){return[\"contextmenu\",\"click\",\"mouse\"].some(t=>e.includes(t))}function Yi(e,t){let r=t.filter(o=>![\"window\",\"document\",\"prevent\",\"stop\",\"once\",\"capture\",\"self\",\"away\",\"outside\",\"passive\"].includes(o));if(r.includes(\"debounce\")){let o=r.indexOf(\"debounce\");r.splice(o,tt((r[o+1]||\"invalid-wait\").split(\"ms\")[0])?2:1)}if(r.includes(\"throttle\")){let o=r.indexOf(\"throttle\");r.splice(o,tt((r[o+1]||\"invalid-wait\").split(\"ms\")[0])?2:1)}if(r.length===0||r.length===1&&bn(e.key).includes(r[0]))return!1;let i=[\"ctrl\",\"shift\",\"alt\",\"meta\",\"cmd\",\"super\"].filter(o=>r.includes(o));return r=r.filter(o=>!i.includes(o)),!(i.length>0&&i.filter(s=>((s===\"cmd\"||s===\"super\")&&(s=\"meta\"),e[`${s}Key`])).length===i.length&&(wn(e.type)||bn(e.key).includes(r[0])))}function bn(e){if(!e)return[];e=Gi(e);let t={ctrl:\"control\",slash:\"/\",space:\" \",spacebar:\" \",cmd:\"meta\",esc:\"escape\",up:\"arrow-up\",down:\"arrow-down\",left:\"arrow-left\",right:\"arrow-right\",period:\".\",comma:\",\",equal:\"=\",minus:\"-\",underscore:\"_\"};return t[e]=e,Object.keys(t).map(r=>{if(t[r]===e)return r}).filter(r=>r)}d(\"model\",(e,{modifiers:t,expression:r},{effect:n,cleanup:i})=>{let o=e;t.includes(\"parent\")&&(o=e.parentNode);let s=x(o,r),a;typeof r==\"string\"?a=x(o,`${r} = __placeholder`):typeof r==\"function\"&&typeof r()==\"string\"?a=x(o,`${r()} = __placeholder`):a=()=>{};let c=()=>{let h;return s(w=>h=w),En(h)?h.get():h},l=h=>{let w;s(F=>w=F),En(w)?w.set(h):a(()=>{},{scope:{__placeholder:h}})};typeof r==\"string\"&&e.type===\"radio\"&&m(()=>{e.hasAttribute(\"name\")||e.setAttribute(\"name\",r)});var u=e.tagName.toLowerCase()===\"select\"||[\"checkbox\",\"radio\"].includes(e.type)||t.includes(\"lazy\")?\"change\":\"input\";let p=I?()=>{}:ae(e,u,t,h=>{l(Kt(e,t,h,c()))});if(t.includes(\"fill\")&&([void 0,null,\"\"].includes(c())||ze(e)&&Array.isArray(c())||e.tagName.toLowerCase()===\"select\"&&e.multiple)&&l(Kt(e,t,{target:e},c())),e._x_removeModelListeners||(e._x_removeModelListeners={}),e._x_removeModelListeners.default=p,i(()=>e._x_removeModelListeners.default()),e.form){let h=ae(e.form,\"reset\",[],w=>{ie(()=>e._x_model&&e._x_model.set(Kt(e,t,{target:e},c())))});i(()=>h())}e._x_model={get(){return c()},set(h){l(h)}},e._x_forceModelUpdate=h=>{h===void 0&&typeof r==\"string\"&&r.match(/\\./)&&(h=\"\"),window.fromModel=!0,m(()=>ge(e,\"value\",h)),delete window.fromModel},n(()=>{let h=c();t.includes(\"unintrusive\")&&document.activeElement.isSameNode(e)||e._x_forceModelUpdate(h)})});function Kt(e,t,r,n){return m(()=>{if(r instanceof CustomEvent&&r.detail!==void 0)return r.detail!==null&&r.detail!==void 0?r.detail:r.target.value;if(ze(e))if(Array.isArray(n)){let i=null;return t.includes(\"number\")?i=Ht(r.target.value):t.includes(\"boolean\")?i=xe(r.target.value):i=r.target.value,r.target.checked?n.includes(i)?n:n.concat([i]):n.filter(o=>!Xi(o,i))}else return r.target.checked;else{if(e.tagName.toLowerCase()===\"select\"&&e.multiple)return t.includes(\"number\")?Array.from(r.target.selectedOptions).map(i=>{let o=i.value||i.text;return Ht(o)}):t.includes(\"boolean\")?Array.from(r.target.selectedOptions).map(i=>{let o=i.value||i.text;return xe(o)}):Array.from(r.target.selectedOptions).map(i=>i.value||i.text);{let i;return Ot(e)?r.target.checked?i=r.target.value:i=n:i=r.target.value,t.includes(\"number\")?Ht(i):t.includes(\"boolean\")?xe(i):t.includes(\"trim\")?i.trim():i}}})}function Ht(e){let t=e?parseFloat(e):null;return Zi(t)?t:e}function Xi(e,t){return e==t}function Zi(e){return!Array.isArray(e)&&!isNaN(e)}function En(e){return e!==null&&typeof e==\"object\"&&typeof e.get==\"function\"&&typeof e.set==\"function\"}d(\"cloak\",e=>queueMicrotask(()=>m(()=>e.removeAttribute(C(\"cloak\")))));$e(()=>`[${C(\"init\")}]`);d(\"init\",A((e,{expression:t},{evaluate:r})=>typeof t==\"string\"?!!t.trim()&&r(t,{},!1):r(t,{},!1)));d(\"text\",(e,{expression:t},{effect:r,evaluateLater:n})=>{let i=n(t);r(()=>{i(o=>{m(()=>{e.textContent=o})})})});d(\"html\",(e,{expression:t},{effect:r,evaluateLater:n})=>{let i=n(t);r(()=>{i(o=>{m(()=>{e.innerHTML=o,e._x_ignoreSelf=!0,S(e),delete e._x_ignoreSelf})})})});ne(Pe(\":\",Ie(C(\"bind:\"))));var vn=(e,{value:t,modifiers:r,expression:n,original:i},{effect:o,cleanup:s})=>{if(!t){let c={};qr(c),x(e,n)(u=>{Tt(e,u,i)},{scope:c});return}if(t===\"key\")return Qi(e,n);if(e._x_inlineBindings&&e._x_inlineBindings[t]&&e._x_inlineBindings[t].extract)return;let a=x(e,n);o(()=>a(c=>{c===void 0&&typeof n==\"string\"&&n.match(/\\./)&&(c=\"\"),m(()=>ge(e,t,c,r))})),s(()=>{e._x_undoAddedClasses&&e._x_undoAddedClasses(),e._x_undoAddedStyles&&e._x_undoAddedStyles()})};vn.inline=(e,{value:t,modifiers:r,expression:n})=>{t&&(e._x_inlineBindings||(e._x_inlineBindings={}),e._x_inlineBindings[t]={expression:n,extract:!1})};d(\"bind\",vn);function Qi(e,t){e._x_keyExpression=t}Le(()=>`[${C(\"data\")}]`);d(\"data\",(e,{expression:t},{cleanup:r})=>{if(eo(e))return;t=t===\"\"?\"{}\":t;let n={};fe(n,e);let i={};Gr(i,n);let o=R(e,t,{scope:i});(o===void 0||o===!0)&&(o={}),fe(o,e);let s=T(o);Te(s);let a=k(e,s);s.init&&R(e,s.init),r(()=>{s.destroy&&R(e,s.destroy),a()})});H((e,t)=>{e._x_dataStack&&(t._x_dataStack=e._x_dataStack,t.setAttribute(\"data-has-alpine-state\",!0))});function eo(e){return I?Be?!0:e.hasAttribute(\"data-has-alpine-state\"):!1}d(\"show\",(e,{modifiers:t,expression:r},{effect:n})=>{let i=x(e,r);e._x_doHide||(e._x_doHide=()=>{m(()=>{e.style.setProperty(\"display\",\"none\",t.includes(\"important\")?\"important\":void 0)})}),e._x_doShow||(e._x_doShow=()=>{m(()=>{e.style.length===1&&e.style.display===\"none\"?e.removeAttribute(\"style\"):e.style.removeProperty(\"display\")})});let o=()=>{e._x_doHide(),e._x_isShown=!1},s=()=>{e._x_doShow(),e._x_isShown=!0},a=()=>setTimeout(s),c=he(p=>p?s():o(),p=>{typeof e._x_toggleAndCascadeWithTransitions==\"function\"?e._x_toggleAndCascadeWithTransitions(e,p,s,o):p?a():o()}),l,u=!0;n(()=>i(p=>{!u&&p===l||(t.includes(\"immediate\")&&(p?a():o()),c(p),l=p,u=!1)}))});d(\"for\",(e,{expression:t},{effect:r,cleanup:n})=>{let i=ro(t),o=x(e,i.items),s=x(e,e._x_keyExpression||\"index\");e._x_prevKeys=[],e._x_lookup={},r(()=>to(e,i,o,s)),n(()=>{Object.values(e._x_lookup).forEach(a=>m(()=>{P(a),a.remove()})),delete e._x_prevKeys,delete e._x_lookup})});function to(e,t,r,n){let i=s=>typeof s==\"object\"&&!Array.isArray(s),o=e;r(s=>{no(s)&&s>=0&&(s=Array.from(Array(s).keys(),f=>f+1)),s===void 0&&(s=[]);let a=e._x_lookup,c=e._x_prevKeys,l=[],u=[];if(i(s))s=Object.entries(s).map(([f,g])=>{let b=Sn(t,g,f,s);n(v=>{u.includes(v)&&E(\"Duplicate key on x-for\",e),u.push(v)},{scope:{index:f,...b}}),l.push(b)});else for(let f=0;f<s.length;f++){let g=Sn(t,s[f],f,s);n(b=>{u.includes(b)&&E(\"Duplicate key on x-for\",e),u.push(b)},{scope:{index:f,...g}}),l.push(g)}let p=[],h=[],w=[],F=[];for(let f=0;f<c.length;f++){let g=c[f];u.indexOf(g)===-1&&w.push(g)}c=c.filter(f=>!w.includes(f));let Ee=\"template\";for(let f=0;f<u.length;f++){let g=u[f],b=c.indexOf(g);if(b===-1)c.splice(f,0,g),p.push([Ee,f]);else if(b!==f){let v=c.splice(f,1)[0],O=c.splice(b-1,1)[0];c.splice(f,0,O),c.splice(b,0,v),h.push([v,O])}else F.push(g);Ee=g}for(let f=0;f<w.length;f++){let g=w[f];g in a&&(m(()=>{P(a[g]),a[g].remove()}),delete a[g])}for(let f=0;f<h.length;f++){let[g,b]=h[f],v=a[g],O=a[b],ee=document.createElement(\"div\");m(()=>{O||E('x-for \":key\" is undefined or invalid',o,b,a),O.after(ee),v.after(O),O._x_currentIfEl&&O.after(O._x_currentIfEl),ee.before(v),v._x_currentIfEl&&v.after(v._x_currentIfEl),ee.remove()}),O._x_refreshXForScope(l[u.indexOf(b)])}for(let f=0;f<p.length;f++){let[g,b]=p[f],v=g===\"template\"?o:a[g];v._x_currentIfEl&&(v=v._x_currentIfEl);let O=l[b],ee=u[b],ce=document.importNode(o.content,!0).firstElementChild,qt=T(O);k(ce,qt,o),ce._x_refreshXForScope=On=>{Object.entries(On).forEach(([Cn,Tn])=>{qt[Cn]=Tn})},m(()=>{v.after(ce),A(()=>S(ce))()}),typeof ee==\"object\"&&E(\"x-for key cannot be an object, it must be a string or an integer\",o),a[ee]=ce}for(let f=0;f<F.length;f++)a[F[f]]._x_refreshXForScope(l[u.indexOf(F[f])]);o._x_prevKeys=u})}function ro(e){let t=/,([^,\\}\\]]*)(?:,([^,\\}\\]]*))?$/,r=/^\\s*\\(|\\)\\s*$/g,n=/([\\s\\S]*?)\\s+(?:in|of)\\s+([\\s\\S]*)/,i=e.match(n);if(!i)return;let o={};o.items=i[2].trim();let s=i[1].replace(r,\"\").trim(),a=s.match(t);return a?(o.item=s.replace(t,\"\").trim(),o.index=a[1].trim(),a[2]&&(o.collection=a[2].trim())):o.item=s,o}function Sn(e,t,r,n){let i={};return/^\\[.*\\]$/.test(e.item)&&Array.isArray(t)?e.item.replace(\"[\",\"\").replace(\"]\",\"\").split(\",\").map(s=>s.trim()).forEach((s,a)=>{i[s]=t[a]}):/^\\{.*\\}$/.test(e.item)&&!Array.isArray(t)&&typeof t==\"object\"?e.item.replace(\"{\",\"\").replace(\"}\",\"\").split(\",\").map(s=>s.trim()).forEach(s=>{i[s]=t[s]}):i[e.item]=t,e.index&&(i[e.index]=r),e.collection&&(i[e.collection]=n),i}function no(e){return!Array.isArray(e)&&!isNaN(e)}function An(){}An.inline=(e,{expression:t},{cleanup:r})=>{let n=Y(e);n._x_refs||(n._x_refs={}),n._x_refs[t]=e,r(()=>delete n._x_refs[t])};d(\"ref\",An);d(\"if\",(e,{expression:t},{effect:r,cleanup:n})=>{e.tagName.toLowerCase()!==\"template\"&&E(\"x-if can only be used on a <template> tag\",e);let i=x(e,t),o=()=>{if(e._x_currentIfEl)return e._x_currentIfEl;let a=e.content.cloneNode(!0).firstElementChild;return k(a,{},e),m(()=>{e.after(a),A(()=>S(a))()}),e._x_currentIfEl=a,e._x_undoIf=()=>{m(()=>{P(a),a.remove()}),delete e._x_currentIfEl},a},s=()=>{e._x_undoIf&&(e._x_undoIf(),delete e._x_undoIf)};r(()=>i(a=>{a?o():s()})),n(()=>e._x_undoIf&&e._x_undoIf())});d(\"id\",(e,{expression:t},{evaluate:r})=>{r(t).forEach(i=>_n(e,i))});H((e,t)=>{e._x_ids&&(t._x_ids=e._x_ids)});ne(Pe(\"@\",Ie(C(\"on:\"))));d(\"on\",A((e,{value:t,modifiers:r,expression:n},{cleanup:i})=>{let o=n?x(e,n):()=>{};e.tagName.toLowerCase()===\"template\"&&(e._x_forwardEvents||(e._x_forwardEvents=[]),e._x_forwardEvents.includes(t)||e._x_forwardEvents.push(t));let s=ae(e,t,r,a=>{o(()=>{},{scope:{$event:a},params:[a]})});i(()=>s())}));rt(\"Collapse\",\"collapse\",\"collapse\");rt(\"Intersect\",\"intersect\",\"intersect\");rt(\"Focus\",\"trap\",\"focus\");rt(\"Mask\",\"mask\",\"mask\");function rt(e,t,r){d(t,n=>E(`You can't use [x-${t}] without first installing the \"${e}\" plugin here: https://alpinejs.dev/plugins/${r}`,n))}K.setEvaluator(xt);K.setReactivityEngine({reactive:et,effect:rn,release:nn,raw:_});var Vt=K;window.Alpine=Vt;queueMicrotask(()=>{Vt.start()});})();\n";
|
|
6
|
+
//# sourceMappingURL=vendor.js.map
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Live dashboard for the Node host. Serves the main HTML page and JSON
|
|
3
|
+
* polling endpoints. All "/api/*.json" endpoints recompute from disk on
|
|
4
|
+
* every request — pxpipe doesn't have a query layer, but a 1.5 MB JSONL
|
|
5
|
+
* streams in well under 100 ms.
|
|
6
|
+
*
|
|
7
|
+
* Legacy live-poll endpoints (left in place, the existing tick() loop uses
|
|
8
|
+
* them):
|
|
9
|
+
*
|
|
10
|
+
* GET /, /dashboard → main HTML page
|
|
11
|
+
* GET /proxy-stats → JSON aggregate over the in-mem ring
|
|
12
|
+
* GET /proxy-recent → JSON ring buffer of recent requests
|
|
13
|
+
* GET /proxy-latest-png[?crop=N] → raw PNG of the latest rendered image
|
|
14
|
+
*
|
|
15
|
+
* Session endpoints (read-only telemetry — no destructive operations):
|
|
16
|
+
*
|
|
17
|
+
* GET /api/sessions.json → grouped sessions (sha8 + project + counts)
|
|
18
|
+
* GET /api/stats.json → full-history aggregate (formerly `pxpipe stats`)
|
|
19
|
+
*
|
|
20
|
+
* Metric formulas and HTML shell originally ported from the Python reference
|
|
21
|
+
* implementation (deleted after live cache-rate validation hit 98.7% by tokens).
|
|
22
|
+
*
|
|
23
|
+
* Node-only by design. Workers host has no dashboard; use Workers Logs.
|
|
24
|
+
*
|
|
25
|
+
* Memory bound: ring buffer cap 50 events + a parallel ring of the last 50
|
|
26
|
+
* rendered PNGs (images are never persisted to disk, so this ring is the
|
|
27
|
+
* only place to view them). At a typical 75 KB PNG that's ~3-4 MB resident;
|
|
28
|
+
* a process restart starts the image ring empty.
|
|
29
|
+
*/
|
|
30
|
+
import type { ProxyEvent } from './core/proxy.js';
|
|
31
|
+
import { type ClaudeCodeSessionRef, type ListOptions, type SessionsPaths } from './sessions.js';
|
|
32
|
+
/** One row in the dashboard's "recent requests" table. Compact on purpose —
|
|
33
|
+
* this lives in memory and gets serialized on every poll.
|
|
34
|
+
*
|
|
35
|
+
* The "input" numbers (`actual_input`, `baseline_input`) are input-side
|
|
36
|
+
* only — input + cache_create×1.25 + cache_read×0.10 — because that's
|
|
37
|
+
* the slice the proxy can move. `output_tokens` is reported separately so
|
|
38
|
+
* the operator can see what fraction of the bill is unaffected by
|
|
39
|
+
* compression (and decide whether the headline % makes sense for their
|
|
40
|
+
* workload). */
|
|
41
|
+
export interface RecentRow {
|
|
42
|
+
ts: number;
|
|
43
|
+
method: string;
|
|
44
|
+
path: string;
|
|
45
|
+
model?: string;
|
|
46
|
+
status: number;
|
|
47
|
+
size_in?: number;
|
|
48
|
+
compressed: boolean;
|
|
49
|
+
cc_added?: number;
|
|
50
|
+
input_tokens?: number;
|
|
51
|
+
/** From /v1/messages `usage.output_tokens`. Identical with/without
|
|
52
|
+
* compression — shown so the operator can see why an output-heavy
|
|
53
|
+
* turn moves the headline less than a cache-create-heavy one. */
|
|
54
|
+
output_tokens?: number;
|
|
55
|
+
cache_create?: number;
|
|
56
|
+
cache_read?: number;
|
|
57
|
+
/** input + cache_create×1.25 + cache_read×0.10, from the upstream usage
|
|
58
|
+
* block. Missing when the request 4xx'd or wasn't /v1/messages. */
|
|
59
|
+
actual_input?: number;
|
|
60
|
+
/** /v1/messages/count_tokens(originalBody).input_tokens. Missing when the
|
|
61
|
+
* side-probe failed or the request body wasn't an Anthropic Messages payload. */
|
|
62
|
+
baseline_input?: number;
|
|
63
|
+
/** How much the running "saved" total moved on this request. */
|
|
64
|
+
session_saved_so_far_delta?: number;
|
|
65
|
+
/** Id of the image rendered for this request, if any — resolves against
|
|
66
|
+
* the image ring via /proxy-latest-png?id=${img_id}. Absent when the
|
|
67
|
+
* request rendered no image, or once the image has been evicted from the
|
|
68
|
+
* ring (the id stays on the row but no longer fetches). */
|
|
69
|
+
img_id?: number;
|
|
70
|
+
img_ids?: number[];
|
|
71
|
+
}
|
|
72
|
+
/** Per-million-token input rate ASSUMED for the headline dollar figure.
|
|
73
|
+
* Source: https://docs.claude.com/en/docs/about-claude/pricing — Opus 4.7
|
|
74
|
+
* input is $5/Mtok (same as Opus 4.5 / 4.6; the previous "$2.50" value
|
|
75
|
+
* here was a regression). Cache-write 5m = $6.25/Mtok (1.25×),
|
|
76
|
+
* cache-read = $0.50/Mtok (0.10×).
|
|
77
|
+
*
|
|
78
|
+
* This is exposed on /proxy-stats as `pricing_assumptions.input_per_mtok`
|
|
79
|
+
* so the operator can see what we assumed and override if they're
|
|
80
|
+
* running against a non-default deployment (Bedrock/Vertex add a 10%
|
|
81
|
+
* premium; Sonnet would be $3/Mtok, etc.).
|
|
82
|
+
*
|
|
83
|
+
* NOTE: Opus 4.7 uses a different tokenizer than 4.5/4.6 (per
|
|
84
|
+
* docs.claude.com/en/docs/about-claude/pricing), so even at the same
|
|
85
|
+
* $/Mtok rate, the same string maps to a different token count. The
|
|
86
|
+
* honest oracle for "tokens in this body" is `count_tokens` against the
|
|
87
|
+
* actual target model; do not trust hardcoded chars-per-token or
|
|
88
|
+
* tokens-per-image constants on 4.7 without verifying against the
|
|
89
|
+
* upstream probe. */
|
|
90
|
+
export declare const ASSUMED_INPUT_USD_PER_MTOK = 10;
|
|
91
|
+
export declare class DashboardState {
|
|
92
|
+
private recent;
|
|
93
|
+
/** Per-session dollar-weighted totals, keyed by `info.firstUserSha8`. The
|
|
94
|
+
* dashboard surfaces ONLY the most-recently-active session via the
|
|
95
|
+
* `serveCurrentSessionJson` endpoint — older sessions linger in the Map
|
|
96
|
+
* so a tab refresh during a brief lull still finds the previous session,
|
|
97
|
+
* but get evicted at `SESSION_CAP` to bound memory in long-running hosts. */
|
|
98
|
+
private sessions;
|
|
99
|
+
/** sha8 of the most-recently-active session id. null when no events have
|
|
100
|
+
* ever carried a `firstUserSha8` (e.g. a cold start with only passthrough
|
|
101
|
+
* hits that the upstream probe never tagged). */
|
|
102
|
+
private currentSessionId;
|
|
103
|
+
/** Per-session prior prefix size for the cache-aware TEXT baseline. Warm/cold
|
|
104
|
+
* comes only from the server-observed cache_read on the actual request; this
|
|
105
|
+
* map is used only after cr>0 to split the text counterfactual into reused vs
|
|
106
|
+
* grown prefix tokens. Reconstructed identically in replay() from persisted
|
|
107
|
+
* timestamps, so live and restored numbers agree. Capped with sessions. */
|
|
108
|
+
private baselineWarmth;
|
|
109
|
+
/** Max age for reusing a prior prefix size after cr>0 has proved warmth. */
|
|
110
|
+
private static readonly CACHE_TTL_SEC;
|
|
111
|
+
/** Hard cap on `sessions` Map entries. Keeps memory bounded in
|
|
112
|
+
* long-running deployments. 50 sessions × ~13 numeric fields each is
|
|
113
|
+
* comfortably under a MB even with fat bucket/passthrough histograms. */
|
|
114
|
+
private static readonly SESSION_CAP;
|
|
115
|
+
private totals;
|
|
116
|
+
/** Bounded ring of the most recently rendered images (last IMAGE_RING_CAP).
|
|
117
|
+
* Each request that rendered an image pushes one entry; the matching
|
|
118
|
+
* RecentRow carries `img_id` so the dashboard can pull any image still in
|
|
119
|
+
* the ring via /proxy-latest-png?id=N. In-memory only — images are never
|
|
120
|
+
* persisted, so a restart starts this empty. */
|
|
121
|
+
private images;
|
|
122
|
+
/** Monotonic image id source. Never reset, never reused — an evicted id
|
|
123
|
+
* stays dangling on its RecentRow rather than pointing at a new image. */
|
|
124
|
+
private nextImageId;
|
|
125
|
+
/** Runtime kill switch for compression. When false, the proxy forwards
|
|
126
|
+
* /v1/messages unchanged to upstream — pure passthrough, no images,
|
|
127
|
+
* no transforms. Controlled by the dashboard "passthrough" toggle so
|
|
128
|
+
* the operator can toggle the proxy's transform instantly.
|
|
129
|
+
*
|
|
130
|
+
* Defaults to TRUE since 2026-06-09: scope is Fable 5 only, which reads
|
|
131
|
+
* renders at 100/100 (no Opus read tax) with the same image billing, and
|
|
132
|
+
* the live proxy record measured ~68% real input-token savings on dense
|
|
133
|
+
* traffic — the old off-default rationale ("cache-illusory savings")
|
|
134
|
+
* cited the superseded dead verdict. Verbatim recall is still lossy;
|
|
135
|
+
* the dashboard toggle remains the kill switch. See FINDINGS.md. */
|
|
136
|
+
private compressionEnabled;
|
|
137
|
+
/** Recent requests' transform breakdowns, for the Context Map panel + its
|
|
138
|
+
* history selector. In-memory ring, newest last. */
|
|
139
|
+
private contextHistory;
|
|
140
|
+
setCompressionEnabled(on: boolean): void;
|
|
141
|
+
getCompressionEnabled(): boolean;
|
|
142
|
+
/** Resolved disk paths for the events.jsonl + 4xx-bodies sidecar dir. The
|
|
143
|
+
* new sessions / cleanup endpoints need this; legacy callers that don't
|
|
144
|
+
* pass `paths` opt out of those endpoints by returning 503. */
|
|
145
|
+
private readonly paths;
|
|
146
|
+
/** Test hook: when set, /api/sessions.json and /api/sessions/${id}.json
|
|
147
|
+
* call this instead of `claudeCodeMap()` with the real `~/.claude/projects/`
|
|
148
|
+
* path. Lets unit tests run in tens of ms instead of scanning hundreds of
|
|
149
|
+
* the developer's actual Claude Code session files. */
|
|
150
|
+
private readonly ccMapFn;
|
|
151
|
+
constructor(paths?: SessionsPaths, ccMapFn?: () => Promise<Map<string, ClaudeCodeSessionRef>>);
|
|
152
|
+
/** Stash every rendered image into the ring (called from onRequest with the
|
|
153
|
+
* raw ProxyEvent before info.firstImagePng is dropped by toTrackEvent).
|
|
154
|
+
* Returns the assigned image ids in render order; empty array when there
|
|
155
|
+
* are no images. The caller stamps ids[0] onto the RecentRow as `img_id`
|
|
156
|
+
* for back-compat and the full list as `img_ids`. */
|
|
157
|
+
captureImage(info: NonNullable<ProxyEvent['info']>): number[];
|
|
158
|
+
/** Fold one event into the running totals + ring buffer.
|
|
159
|
+
*
|
|
160
|
+
* Savings math is gated on a per-request `baseline_tokens` measurement
|
|
161
|
+
* from the parallel count_tokens probe AND an upstream usage block.
|
|
162
|
+
* When either is missing, we still count the request but skip its
|
|
163
|
+
* savings contribution — no estimation. */
|
|
164
|
+
update(ev: ProxyEvent): void;
|
|
165
|
+
/** On startup, fold the last N entries from the JSONL events file back
|
|
166
|
+
* into the ring buffer so a process restart doesn't show an empty table.
|
|
167
|
+
* Cumulative totals are *not* restored (the file may have rotated, and
|
|
168
|
+
* double-counting is worse than starting fresh). */
|
|
169
|
+
replay(filePath: string): Promise<void>;
|
|
170
|
+
/**
|
|
171
|
+
* Per-session "what's happening right now" payload backing the
|
|
172
|
+
* `SessionSummary` panel. Scopes the dollar-weighted savings ratio + the
|
|
173
|
+
* per-bucket char attribution + the passthrough-reason histogram to the
|
|
174
|
+
* most-recently-active session (tracked via `info.firstUserSha8`) so the
|
|
175
|
+
* top-of-dashboard headline reflects the live session rather than stale
|
|
176
|
+
* lifetime aggregates from a previous run.
|
|
177
|
+
*
|
|
178
|
+
* Returns `{ sessionId: null, message: 'no active session yet' }` when no
|
|
179
|
+
* events have been received yet (or the first events were all untagged —
|
|
180
|
+
* cold start, probe failures) — `update()` only sets `currentSessionId`
|
|
181
|
+
* when a `firstUserSha8`-tagged event lands. The client renders a stale
|
|
182
|
+
* panel rather than zeroes when a session goes idle (NO `lastSeen >
|
|
183
|
+
* threshold` check here; see comment in `update()` for the rationale).
|
|
184
|
+
*/
|
|
185
|
+
serveCurrentSessionJson(): Response;
|
|
186
|
+
serveStats(): Response;
|
|
187
|
+
serveRecent(): Response;
|
|
188
|
+
/** GET /proxy-latest-png[?id=N] — raw PNG from the image ring. With no id
|
|
189
|
+
* (or an unknown id) the latest render is returned; ?id=N pulls that
|
|
190
|
+
* specific image while it's still in the ring. 404 once evicted. */
|
|
191
|
+
servePng(id?: number): Response;
|
|
192
|
+
/** GET /api/image-source[?id=N] — the source text the PNG was rendered
|
|
193
|
+
* from, so the operator can see the text → image conversion side by side.
|
|
194
|
+
* Falls back to the latest image; 404 if evicted or text wasn't captured. */
|
|
195
|
+
serveImageSource(id?: number): Response;
|
|
196
|
+
serveHtml(port: number): Response;
|
|
197
|
+
/** GET /fragments/<name> — server-rendered htmx fragments. Each one reuses
|
|
198
|
+
* the corresponding JSON endpoint's payload (via Response.json()) so the
|
|
199
|
+
* HTML and JSON surfaces can't drift apart. */
|
|
200
|
+
serveFragment(name: string, url: URL, port: number): Promise<Response>;
|
|
201
|
+
/** GET /api/sessions.json — grouped sessions enriched with the Claude Code
|
|
202
|
+
* cross-reference. The body is the top-level `sessions` array; the client
|
|
203
|
+
* renders a bar chart of the top savers. */
|
|
204
|
+
serveSessionsJson(opts?: ListOptions): Promise<Response>;
|
|
205
|
+
/** GET /api/stats.json — full-history aggregate. Migrated from the
|
|
206
|
+
* former `pxpipe stats` CLI. */
|
|
207
|
+
serveApiStats(): Promise<Response>;
|
|
208
|
+
/** POST /api/compression — flip the runtime kill switch.
|
|
209
|
+
* Body: { enabled: boolean }. Returns the new state. In-memory only;
|
|
210
|
+
* restart resets to the default (on). */
|
|
211
|
+
handleCompressionToggle(body: {
|
|
212
|
+
enabled?: unknown;
|
|
213
|
+
}): Response;
|
|
214
|
+
/** POST /fragments/models — add/remove ONE model (Claude or GPT) from the
|
|
215
|
+
* runtime compress scope. In-memory only; restart resets to the PXPIPE_MODELS
|
|
216
|
+
* env / built-in default. The model checks read this live. */
|
|
217
|
+
handleModelsToggle(model: string, on: boolean): void;
|
|
218
|
+
}
|
|
219
|
+
/** Result of route-matching a dashboard URL. The legacy `kind` values
|
|
220
|
+
* (html/stats/recent/png) stay alongside the `/api/*` JSON endpoints. */
|
|
221
|
+
export type DashboardRoute = {
|
|
222
|
+
kind: 'html';
|
|
223
|
+
} | {
|
|
224
|
+
kind: 'stats';
|
|
225
|
+
} | {
|
|
226
|
+
kind: 'recent';
|
|
227
|
+
} | {
|
|
228
|
+
kind: 'png';
|
|
229
|
+
} | {
|
|
230
|
+
kind: 'api-sessions';
|
|
231
|
+
} | {
|
|
232
|
+
kind: 'api-stats';
|
|
233
|
+
} | {
|
|
234
|
+
kind: 'current-session';
|
|
235
|
+
} | {
|
|
236
|
+
kind: 'api-compression';
|
|
237
|
+
} | {
|
|
238
|
+
kind: 'api-image-source';
|
|
239
|
+
} | {
|
|
240
|
+
kind: 'fragment';
|
|
241
|
+
name: string;
|
|
242
|
+
};
|
|
243
|
+
/** Match dashboard paths (handle query strings on /proxy-latest-png). */
|
|
244
|
+
export declare function dashboardPath(pathname: string): DashboardRoute | null;
|
|
245
|
+
//# sourceMappingURL=dashboard.d.ts.map
|