diff --git a/CHANGELOG.md b/CHANGELOG.md index 0dbbdf2a0..f9168a531 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,9 +15,10 @@ Each tagged version of Datastar is accompanied by a release note. Read the [rele - Updated Idiomorph to version [0.7.2](https://github.com/bigskysoftware/idiomorph/blob/main/CHANGELOG.md#072---2025-02-20). - When using `data-bind` on an element, the signal value now defaults to the element’s `value` attribute, provided the signal has not already been defined ([#685](https://github.com/starfederation/datastar/issues/685)). - Whitespace is now maintained in merged fragments ([#658](https://github.com/starfederation/datastar/issues/658)). +- Attribute plugins now define a hash of their contents, preventing duplicate applies ([#691](https://github.com/starfederation/datastar/issues/691)). +- Attribute plugins are now applied to the `html` element instead of the `body` element ([#691](https://github.com/starfederation/datastar/issues/691)). ### Fixed - Fixed a bug in which `datastar-remove-fragments` events were not having any effect ([#664](https://github.com/starfederation/datastar/issues/664)). -- Fixed a bug in which `datastarNaN` could be used as an auto-generated element ID ([#679](https://github.com/starfederation/datastar/issues/679)). -- Fixed a bug in which plugins were being applied to the DOM twice on page load. \ No newline at end of file +- Fixed a bug in which `datastarNaN` could be used as an auto-generated element ID ([#679](https://github.com/starfederation/datastar/issues/679)). \ No newline at end of file diff --git a/bundles/datastar-aliased.js b/bundles/datastar-aliased.js index bef3064b7..8712b5add 100644 --- a/bundles/datastar-aliased.js +++ b/bundles/datastar-aliased.js @@ -1,13 +1,13 @@ // Datastar v1.0.0-beta.7 -var Ge=/🖕JS_DS🚀/.source,oe=Ge.slice(0,5),Ce=Ge.slice(4),D="datastar";var Ue="Datastar-Request",he=300,Be=1e3,je="type module",ve=!1,Ke=!1,Je=!0,q={Morph:"morph",Inner:"inner",Outer:"outer",Prepend:"prepend",Append:"append",Before:"before",After:"after",UpsertAttributes:"upsertAttributes"},ze=q.Morph,k={MergeFragments:"datastar-merge-fragments",MergeSignals:"datastar-merge-signals",RemoveFragments:"datastar-remove-fragments",RemoveSignals:"datastar-remove-signals",ExecuteScript:"datastar-execute-script"};var M=(r=>(r[r.Attribute=1]="Attribute",r[r.Watcher=2]="Watcher",r[r.Action=3]="Action",r))(M||{});var ae=`${D}-signals`;var J=t=>t.trim()==="true",le=t=>t.replace(/[A-Z]+(?![a-z])|[A-Z]/g,(e,n)=>(n?"-":"")+e.toLowerCase()),j=t=>le(t).replace(/-./g,e=>e[1].toUpperCase()),Le=t=>le(t).replace(/-/g,"_"),vn=t=>j(t).replace(/^./,e=>e[0].toUpperCase()),ye=t=>new Function(`return Object.assign({}, ${t})`)(),z=t=>t.startsWith("$")?t.slice(1):t,yn={kebab:le,snake:Le,pascal:vn};function V(t,e){for(let n of e.get("case")||[]){let r=yn[n];r&&(t=r(t))}return t}var bn="computed",Ye={type:1,name:bn,keyReq:1,valReq:1,onLoad:({key:t,mods:e,signals:n,genRX:r})=>{t=V(t,e);let i=r();n.setComputed(t,i)}};var Xe={type:1,name:"signals",removeOnLoad:()=>!0,onLoad:t=>{let{key:e,mods:n,signals:r,value:i,genRX:s}=t,l=n.has("ifmissing");if(e!==""){let u=V(e,n),g=i===""?i:s()();l?r.upsertIfMissing(u,g):r.setValue(u,g)}else{let u=ye(t.value);t.value=JSON.stringify(u);let S=s()();r.merge(S,l)}}};var Qe={type:1,name:"star",keyReq:2,valReq:2,onLoad:()=>{alert("YOU ARE PROBABLY OVERCOMPLICATING IT")}};var ue=class{#e=0;#n;constructor(e=D){this.#n=e}with(e){if(typeof e=="string")for(let n of e.split(""))this.with(n.charCodeAt(0));else this.#e=(this.#e<<5)-this.#e+e}get value(){return this.#n+Math.abs(this.#e).toString(36)}};function Ze(t){if(t.id)return t.id;let e=new ue,n=t;for(;n;){if(e.with(n.tagName||""),n.id){e.with(n.id);break}let r=n?.parentNode;r&&e.with([...r.children].indexOf(n)),n=r}return e.value}function Ie(t,e){if(!t||!(t instanceof HTMLElement||t instanceof SVGElement))return null;let n=t.dataset;if("starIgnore"in n)return null;"starIgnore__self"in n||e(t);let r=t.firstElementChild;for(;r;)Ie(r,e),r=r.nextElementSibling}function be(t,e){return(...n)=>{setTimeout(()=>{t(...n)},e)}}function et(t,e,n=!1,r=!0){let i=-1,s=()=>i&&clearTimeout(i);return(...l)=>{s(),n&&!i&&t(...l),i=setTimeout(()=>{r&&t(...l),s()},e)}}function tt(t,e,n=!0,r=!1){let i=!1;return(...s)=>{i||(n&&t(...s),i=!0,setTimeout(()=>{i=!1,r&&t(...s)},e))}}var Sn="https://data-star.dev/errors";function Ve(t,e,n={}){let r=new Error;r.name=`${D} ${t} error`;let i=Le(e),s=new URLSearchParams({metadata:JSON.stringify(n)}).toString(),l=JSON.stringify(n,null,2);return r.message=`${e} -More info: ${Sn}/${t}/${i}?${s} -Context: ${l}`,r}function $(t,e,n={}){return Ve("internal",e,Object.assign({from:t},n))}function F(t,e,n={}){let r={plugin:{name:e.plugin.name,type:M[e.plugin.type]}};return Ve("init",t,Object.assign(r,n))}function N(t,e,n={}){let r={plugin:{name:e.plugin.name,type:M[e.plugin.type]},element:{id:e.el.id,tag:e.el.tagName},expression:{rawKey:e.rawKey,key:e.key,value:e.value,validSignals:e.signals.paths(),fnContent:e.fnContent}};return Ve("runtime",t,Object.assign(r,n))}var Z="preact-signals",Tn=Symbol.for("preact-signals"),G=1,ee=2,fe=4,ne=8,Se=16,te=32;function ke(){Te++}function Oe(){if(Te>1){Te--;return}let t,e=!1;for(;ce!==void 0;){let n=ce;for(ce=void 0,De++;n!==void 0;){let r=n._nextBatchedEffect;if(n._nextBatchedEffect=void 0,n._flags&=~ee,!(n._flags&ne)&&rt(n))try{n._callback()}catch(i){e||(t=i,e=!0)}n=r}}if(De=0,Te--,e)throw t}var P;var ce,Te=0,De=0,Ae=0;function nt(t){if(P===void 0)return;let e=t._node;if(e===void 0||e._target!==P)return e={_version:0,_source:t,_prevSource:P._sources,_nextSource:void 0,_target:P,_prevTarget:void 0,_nextTarget:void 0,_rollbackNode:e},P._sources!==void 0&&(P._sources._nextSource=e),P._sources=e,t._node=e,P._flags&te&&t._subscribe(e),e;if(e._version===-1)return e._version=0,e._nextSource!==void 0&&(e._nextSource._prevSource=e._prevSource,e._prevSource!==void 0&&(e._prevSource._nextSource=e._nextSource),e._prevSource=P._sources,e._nextSource=void 0,P._sources._nextSource=e,P._sources=e),e}function C(t){this._value=t,this._version=0,this._node=void 0,this._targets=void 0}C.prototype.brand=Tn;C.prototype._refresh=()=>!0;C.prototype._subscribe=function(t){this._targets!==t&&t._prevTarget===void 0&&(t._nextTarget=this._targets,this._targets!==void 0&&(this._targets._prevTarget=t),this._targets=t)};C.prototype._unsubscribe=function(t){if(this._targets!==void 0){let e=t._prevTarget,n=t._nextTarget;e!==void 0&&(e._nextTarget=n,t._prevTarget=void 0),n!==void 0&&(n._prevTarget=e,t._nextTarget=void 0),t===this._targets&&(this._targets=n)}};C.prototype.subscribe=function(t){return Ee(()=>{let e=this.value,n=P;P=void 0;try{t(e)}finally{P=n}})};C.prototype.valueOf=function(){return this.value};C.prototype.toString=function(){return`${this.value}`};C.prototype.toJSON=function(){return this.value};C.prototype.peek=function(){let t=P;P=void 0;try{return this.value}finally{P=t}};Object.defineProperty(C.prototype,"value",{get(){let t=nt(this);return t!==void 0&&(t._version=this._version),this._value},set(t){if(t!==this._value){if(De>100)throw $(Z,"SignalCycleDetected");let e=this._value,n=t;this._value=t,this._version++,Ae++,ke();try{for(let r=this._targets;r!==void 0;r=r._nextTarget)r._target._notify()}finally{Oe()}this?._onChange({old:e,revised:n})}}});function rt(t){for(let e=t._sources;e!==void 0;e=e._nextSource)if(e._source._version!==e._version||!e._source._refresh()||e._source._version!==e._version)return!0;return!1}function it(t){for(let e=t._sources;e!==void 0;e=e._nextSource){let n=e._source._node;if(n!==void 0&&(e._rollbackNode=n),e._source._node=e,e._version=-1,e._nextSource===void 0){t._sources=e;break}}}function st(t){let e=t._sources,n;for(;e!==void 0;){let r=e._prevSource;e._version===-1?(e._source._unsubscribe(e),r!==void 0&&(r._nextSource=e._nextSource),e._nextSource!==void 0&&(e._nextSource._prevSource=r)):n=e,e._source._node=e._rollbackNode,e._rollbackNode!==void 0&&(e._rollbackNode=void 0),e=r}t._sources=n}function X(t){C.call(this,void 0),this._fn=t,this._sources=void 0,this._globalVersion=Ae-1,this._flags=fe}X.prototype=new C;X.prototype._refresh=function(){if(this._flags&=~ee,this._flags&G)return!1;if((this._flags&(fe|te))===te||(this._flags&=~fe,this._globalVersion===Ae))return!0;if(this._globalVersion=Ae,this._flags|=G,this._version>0&&!rt(this))return this._flags&=~G,!0;let t=P;try{it(this),P=this;let e=this._fn();(this._flags&Se||this._value!==e||this._version===0)&&(this._value=e,this._flags&=~Se,this._version++)}catch(e){this._value=e,this._flags|=Se,this._version++}return P=t,st(this),this._flags&=~G,!0};X.prototype._subscribe=function(t){if(this._targets===void 0){this._flags|=fe|te;for(let e=this._sources;e!==void 0;e=e._nextSource)e._source._subscribe(e)}C.prototype._subscribe.call(this,t)};X.prototype._unsubscribe=function(t){if(this._targets!==void 0&&(C.prototype._unsubscribe.call(this,t),this._targets===void 0)){this._flags&=~te;for(let e=this._sources;e!==void 0;e=e._nextSource)e._source._unsubscribe(e)}};X.prototype._notify=function(){if(!(this._flags&ee)){this._flags|=fe|ee;for(let t=this._targets;t!==void 0;t=t._nextTarget)t._target._notify()}};Object.defineProperty(X.prototype,"value",{get(){if(this._flags&G)throw $(Z,"SignalCycleDetected");let t=nt(this);if(this._refresh(),t!==void 0&&(t._version=this._version),this._flags&Se)throw $(Z,"GetComputedError",{value:this._value});return this._value}});function ot(t){return new X(t)}function at(t){let e=t._cleanup;if(t._cleanup=void 0,typeof e=="function"){ke();let n=P;P=void 0;try{e()}catch(r){throw t._flags&=~G,t._flags|=ne,Fe(t),$(Z,"CleanupEffectError",{error:r})}finally{P=n,Oe()}}}function Fe(t){for(let e=t._sources;e!==void 0;e=e._nextSource)e._source._unsubscribe(e);t._fn=void 0,t._sources=void 0,at(t)}function An(t){if(P!==this)throw $(Z,"EndEffectError");st(this),P=t,this._flags&=~G,this._flags&ne&&Fe(this),Oe()}function de(t){this._fn=t,this._cleanup=void 0,this._sources=void 0,this._nextBatchedEffect=void 0,this._flags=te}de.prototype._callback=function(){let t=this._start();try{if(this._flags&ne||this._fn===void 0)return;let e=this._fn();typeof e=="function"&&(this._cleanup=e)}finally{t()}};de.prototype._start=function(){if(this._flags&G)throw $(Z,"SignalCycleDetected");this._flags|=G,this._flags&=~ne,at(this),it(this),ke();let t=P;return P=this,An.bind(this,t)};de.prototype._notify=function(){this._flags&ee||(this._flags|=ee,this._nextBatchedEffect=ce,ce=this)};de.prototype._dispose=function(){this._flags|=ne,this._flags&G||Fe(this)};function Ee(t){let e=new de(t);try{e._callback()}catch(n){throw e._dispose(),n}return e._dispose.bind(e)}var lt="namespacedSignals",re=t=>{document.dispatchEvent(new CustomEvent(ae,{detail:Object.assign({added:[],removed:[],updated:[]},t)}))};function ut(t,e=!1){let n={};for(let r in t)if(Object.hasOwn(t,r)){if(e&&r.startsWith("_"))continue;let i=t[r];i instanceof C?n[r]=i.value:n[r]=ut(i)}return n}function ct(t,e,n=!1){let r={added:[],removed:[],updated:[]};for(let i in e)if(Object.hasOwn(e,i)){if(i.match(/\_\_+/))throw $(lt,"InvalidSignalKey",{key:i});let s=e[i];if(s instanceof Object&&!Array.isArray(s)){t[i]||(t[i]={});let l=ct(t[i],s,n);r.added.push(...l.added.map(u=>`${i}.${u}`)),r.removed.push(...l.removed.map(u=>`${i}.${u}`)),r.updated.push(...l.updated.map(u=>`${i}.${u}`))}else{if(Object.hasOwn(t,i)){if(n)continue;let g=t[i];if(g instanceof C){let S=g.value;g.value=s,S!==s&&r.updated.push(i);continue}}let u=new C(s);u._onChange=()=>{re({updated:[i]})},t[i]=u,r.added.push(i)}}return r}function ft(t,e){for(let n in t)if(Object.hasOwn(t,n)){let r=t[n];r instanceof C?e(n,r):ft(r,(i,s)=>{e(`${n}.${i}`,s)})}}function En(t,...e){let n={};for(let r of e){let i=r.split("."),s=t,l=n;for(let g=0;gn());this.setSignal(e,r)}value(e){return this.signal(e)?.value}setValue(e,n){let{signal:r}=this.upsertIfMissing(e,n),i=r.value;r.value=n,i!==n&&re({updated:[e]})}upsertIfMissing(e,n){let r=e.split("."),i=this.#e;for(let g=0;g{re({updated:[e]})},i[s]=u,re({added:[e]}),{signal:u,inserted:!0}}remove(...e){if(!e.length){this.#e={};return}let n=Array();for(let r of e){let i=r.split("."),s=this.#e;for(let u=0;ue.push(n)),e}values(e=!1){return ut(this.#e,e)}JSON(e=!0,n=!1){let r=this.values(n);return e?JSON.stringify(r,null,2):JSON.stringify(r)}toString(){return this.JSON()}};var dt=(t,e)=>`${t}${oe}${e}`,xe=class{constructor(){this.aliasPrefix="";this.#e=new _e;this.#n=[];this.#r={};this.#a=[];this.#s=null;this.#t=new Map;this.#l=be(()=>{this.#o(document.body),this.#u()},1)}#e;#n;#r;#a;#s;#t;get signals(){return this.#e}load(...e){let n=this;for(let r of e){let i={get signals(){return n.#e},effect:l=>Ee(l),actions:this.#r,plugin:r,applyAttributePlugin:n.#i.bind(n)},s;switch(r.type){case 2:{let l=r;this.#a.push(l),s=l.onGlobalInit;break}case 3:{this.#r[r.name]=r;break}case 1:{let l=r;this.#n.push(l),s=l.onGlobalInit;break}default:throw F("InvalidPluginType",i)}s&&s(i)}this.#n.sort((r,i)=>{let s=i.name.length-r.name.length;return s!==0?s:r.name.localeCompare(i.name)}),this.#l()}#l;#o(e){Ie(e,n=>{let r=this.#t.get(n);if(r){for(let[,i]of r)i();this.#t.delete(n)}for(let i of Object.keys(n.dataset))this.#i(n,i)})}#u(){this.#s||(this.#s=new MutationObserver(e=>{for(let{target:n,type:r,attributeName:i,oldValue:s,addedNodes:l,removedNodes:u}of e)switch(r){case"childList":{for(let g of u){let S=g,v=this.#t.get(S);if(v){for(let[w,y]of v)y();this.#t.delete(S)}}for(let g of l){let S=g;this.#o(S)}}break;case"attributes":{{let g="data-",S=g+(this.aliasPrefix?`${this.aliasPrefix}-`:"");if(!i?.startsWith(S))break;let v=n,w=j(i.slice(g.length));if(s!==null&&v.dataset[w]!==s){let y=this.#t.get(v);if(y){let x=dt(w,s),b=y.get(x);b&&(b(),y.delete(x))}}w in v.dataset&&this.#i(v,w)}break}}}),this.#s.observe(document.body,{attributes:!0,attributeOldValue:!0,childList:!0,subtree:!0}))}#i(e,n){let r=n.slice(this.aliasPrefix.length),i=this.#n.find(m=>r.startsWith(m.name));if(!i)return;let s=this.#t.get(e);if(s)for(let[m,o]of s)m.startsWith(n)&&(o(),s.delete(m));e.id.length||(e.id=Ze(e));let[l,...u]=r.slice(i.name.length).split(/\_\_+/),g=l.length>0;g&&(l=j(l));let S=e.dataset[n]||"",v=S.length>0,w=this,y={get signals(){return w.#e},applyAttributePlugin:w.#i.bind(w),effect:m=>Ee(m),actions:this.#r,genRX:()=>this.#c(y,...i.argNames||[]),plugin:i,el:e,rawKey:r,key:l,value:S,mods:new Map},x=i.keyReq||0;if(g){if(x===2)throw N(`${i.name}KeyNotAllowed`,y)}else if(x===1)throw N(`${i.name}KeyRequired`,y);let b=i.valReq||0;if(v){if(b===2)throw N(`${i.name}ValueNotAllowed`,y)}else if(b===1)throw N(`${i.name}ValueRequired`,y);if(x===3||b===3){if(g&&v)throw N(`${i.name}KeyAndValueProvided`,y);if(!g&&!v)throw N(`${i.name}KeyOrValueRequired`,y)}for(let m of u){let[o,...c]=m.split(".");y.mods.set(j(o),new Set(c.map(a=>a.toLowerCase())))}let E=i.onLoad(y);if(E){let m=this.#t.get(e);m||(m=new Map,this.#t.set(e,m)),m.set(dt(n,S),E)}let A=i.removeOnLoad;A&&A(r)===!0&&delete e.dataset[n]}#c(e,...n){let r="",i=/(\/(\\\/|[^\/])*\/|"(\\"|[^\"])*"|'(\\'|[^'])*'|`(\\`|[^`])*`|[^;])+/gm,s=e.value.trim().match(i);if(s){let b=s.length-1,E=s[b].trim();E.startsWith("return")||(s[b]=`return (${E});`),r=s.join(`; -`)}let l=new Map,u=new RegExp(`(?:${oe})(.*?)(?:${Ce})`,"gm");for(let b of r.matchAll(u)){let E=b[1],A=new ue("dsEscaped").with(E).value;l.set(A,E),r=r.replace(oe+E+Ce,A)}let g=/@(\w*)\(/gm,S=r.matchAll(g),v=new Set;for(let b of S)v.add(b[1]);let w=new RegExp(`@(${Object.keys(this.#r).join("|")})\\(`,"gm");r=r.replaceAll(w,"ctx.actions.$1.fn(ctx,");let y=e.signals.paths();if(y.length){let b=new RegExp(`\\$(${y.join("|")})(\\W|$)`,"gm");r=r.replaceAll(b,"ctx.signals.signal('$1').value$2")}for(let[b,E]of l)r=r.replace(b,E);let x=`return (()=> { +var $e=/🖕JS_DS🚀/.source,ge=$e.slice(0,5),Pe=$e.slice(4),D="datastar";var Ge="Datastar-Request",he=300,Ue=1e3,Be="type module",ve=!1,je=!1,Ke=!0,W={Morph:"morph",Inner:"inner",Outer:"outer",Prepend:"prepend",Append:"append",Before:"before",After:"after",UpsertAttributes:"upsertAttributes"},Je=W.Morph,k={MergeFragments:"datastar-merge-fragments",MergeSignals:"datastar-merge-signals",RemoveFragments:"datastar-remove-fragments",RemoveSignals:"datastar-remove-signals",ExecuteScript:"datastar-execute-script"};var w=(r=>(r[r.Attribute=1]="Attribute",r[r.Watcher=2]="Watcher",r[r.Action=3]="Action",r))(w||{});var ae=`${D}-signals`;var K=t=>t.trim()==="true",le=t=>t.replace(/[A-Z]+(?![a-z])|[A-Z]/g,(e,n)=>(n?"-":"")+e.toLowerCase()),J=t=>le(t).replace(/-./g,e=>e[1].toUpperCase()),Ce=t=>le(t).replace(/-/g,"_"),hn=t=>J(t).replace(/^./,e=>e[0].toUpperCase()),ye=t=>new Function(`return Object.assign({}, ${t})`)(),z=t=>t.startsWith("$")?t.slice(1):t,vn={kebab:le,snake:Ce,pascal:hn};function V(t,e){for(let n of e.get("case")||[]){let r=vn[n];r&&(t=r(t))}return t}var yn="computed",ze={type:1,name:yn,keyReq:1,valReq:1,onLoad:({key:t,mods:e,signals:n,genRX:r})=>{t=V(t,e);let i=r();n.setComputed(t,i)}};var Ye={type:1,name:"signals",removeOnLoad:()=>!0,onLoad:t=>{let{key:e,mods:n,signals:r,value:i,genRX:s}=t,l=n.has("ifmissing");if(e!==""){let o=V(e,n),m=i===""?i:s()();l?r.upsertIfMissing(o,m):r.setValue(o,m)}else{let o=ye(t.value);t.value=JSON.stringify(o);let b=s()();r.merge(b,l)}}};var Xe={type:1,name:"star",keyReq:2,valReq:2,onLoad:()=>{alert("YOU ARE PROBABLY OVERCOMPLICATING IT")}};var Z=class{#e=0;#t;constructor(e=D){this.#t=e}with(e){if(typeof e=="string")for(let n of e.split(""))this.with(n.charCodeAt(0));else typeof e=="boolean"?this.with(1<<(e?7:3)):this.#e=(this.#e<<5)-this.#e+e;return this}get value(){return this.#e}get string(){return this.#t+Math.abs(this.#e).toString(36)}};function Qe(t){if(t.id)return t.id;let e=new Z,n=t;for(;n;){if(e.with(n.tagName||""),n.id){e.with(n.id);break}let r=n?.parentNode;r&&e.with([...r.children].indexOf(n)),n=r}return e.string}function Ze(t,e){return new Z().with(t).with(e).value}function Ie(t,e){if(!t||!(t instanceof HTMLElement||t instanceof SVGElement))return null;let n=t.dataset;if("starIgnore"in n)return null;"starIgnore__self"in n||e(t);let r=t.firstElementChild;for(;r;)Ie(r,e),r=r.nextElementSibling}var bn="https://data-star.dev/errors";function Le(t,e,n={}){let r=new Error;r.name=`${D} ${t} error`;let i=Ce(e),s=new URLSearchParams({metadata:JSON.stringify(n)}).toString(),l=JSON.stringify(n,null,2);return r.message=`${e} +More info: ${bn}/${t}/${i}?${s} +Context: ${l}`,r}function $(t,e,n={}){return Le("internal",e,Object.assign({from:t},n))}function H(t,e,n={}){let r={plugin:{name:e.plugin.name,type:w[e.plugin.type]}};return Le("init",t,Object.assign(r,n))}function M(t,e,n={}){let r={plugin:{name:e.plugin.name,type:w[e.plugin.type]},element:{id:e.el.id,tag:e.el.tagName},expression:{rawKey:e.rawKey,key:e.key,value:e.value,validSignals:e.signals.paths(),fnContent:e.fnContent}};return Le("runtime",t,Object.assign(r,n))}var ee="preact-signals",Sn=Symbol.for("preact-signals"),G=1,te=2,ce=4,re=8,be=16,ne=32;function De(){Se++}function ke(){if(Se>1){Se--;return}let t,e=!1;for(;ue!==void 0;){let n=ue;for(ue=void 0,Ve++;n!==void 0;){let r=n._nextBatchedEffect;if(n._nextBatchedEffect=void 0,n._flags&=~te,!(n._flags&re)&&tt(n))try{n._callback()}catch(i){e||(t=i,e=!0)}n=r}}if(Ve=0,Se--,e)throw t}var P;var ue,Se=0,Ve=0,Te=0;function et(t){if(P===void 0)return;let e=t._node;if(e===void 0||e._target!==P)return e={_version:0,_source:t,_prevSource:P._sources,_nextSource:void 0,_target:P,_prevTarget:void 0,_nextTarget:void 0,_rollbackNode:e},P._sources!==void 0&&(P._sources._nextSource=e),P._sources=e,t._node=e,P._flags&ne&&t._subscribe(e),e;if(e._version===-1)return e._version=0,e._nextSource!==void 0&&(e._nextSource._prevSource=e._prevSource,e._prevSource!==void 0&&(e._prevSource._nextSource=e._nextSource),e._prevSource=P._sources,e._nextSource=void 0,P._sources._nextSource=e,P._sources=e),e}function C(t){this._value=t,this._version=0,this._node=void 0,this._targets=void 0}C.prototype.brand=Sn;C.prototype._refresh=()=>!0;C.prototype._subscribe=function(t){this._targets!==t&&t._prevTarget===void 0&&(t._nextTarget=this._targets,this._targets!==void 0&&(this._targets._prevTarget=t),this._targets=t)};C.prototype._unsubscribe=function(t){if(this._targets!==void 0){let e=t._prevTarget,n=t._nextTarget;e!==void 0&&(e._nextTarget=n,t._prevTarget=void 0),n!==void 0&&(n._prevTarget=e,t._nextTarget=void 0),t===this._targets&&(this._targets=n)}};C.prototype.subscribe=function(t){return Ae(()=>{let e=this.value,n=P;P=void 0;try{t(e)}finally{P=n}})};C.prototype.valueOf=function(){return this.value};C.prototype.toString=function(){return`${this.value}`};C.prototype.toJSON=function(){return this.value};C.prototype.peek=function(){let t=P;P=void 0;try{return this.value}finally{P=t}};Object.defineProperty(C.prototype,"value",{get(){let t=et(this);return t!==void 0&&(t._version=this._version),this._value},set(t){if(t!==this._value){if(Ve>100)throw $(ee,"SignalCycleDetected");let e=this._value,n=t;this._value=t,this._version++,Te++,De();try{for(let r=this._targets;r!==void 0;r=r._nextTarget)r._target._notify()}finally{ke()}this?._onChange({old:e,revised:n})}}});function tt(t){for(let e=t._sources;e!==void 0;e=e._nextSource)if(e._source._version!==e._version||!e._source._refresh()||e._source._version!==e._version)return!0;return!1}function nt(t){for(let e=t._sources;e!==void 0;e=e._nextSource){let n=e._source._node;if(n!==void 0&&(e._rollbackNode=n),e._source._node=e,e._version=-1,e._nextSource===void 0){t._sources=e;break}}}function rt(t){let e=t._sources,n;for(;e!==void 0;){let r=e._prevSource;e._version===-1?(e._source._unsubscribe(e),r!==void 0&&(r._nextSource=e._nextSource),e._nextSource!==void 0&&(e._nextSource._prevSource=r)):n=e,e._source._node=e._rollbackNode,e._rollbackNode!==void 0&&(e._rollbackNode=void 0),e=r}t._sources=n}function X(t){C.call(this,void 0),this._fn=t,this._sources=void 0,this._globalVersion=Te-1,this._flags=ce}X.prototype=new C;X.prototype._refresh=function(){if(this._flags&=~te,this._flags&G)return!1;if((this._flags&(ce|ne))===ne||(this._flags&=~ce,this._globalVersion===Te))return!0;if(this._globalVersion=Te,this._flags|=G,this._version>0&&!tt(this))return this._flags&=~G,!0;let t=P;try{nt(this),P=this;let e=this._fn();(this._flags&be||this._value!==e||this._version===0)&&(this._value=e,this._flags&=~be,this._version++)}catch(e){this._value=e,this._flags|=be,this._version++}return P=t,rt(this),this._flags&=~G,!0};X.prototype._subscribe=function(t){if(this._targets===void 0){this._flags|=ce|ne;for(let e=this._sources;e!==void 0;e=e._nextSource)e._source._subscribe(e)}C.prototype._subscribe.call(this,t)};X.prototype._unsubscribe=function(t){if(this._targets!==void 0&&(C.prototype._unsubscribe.call(this,t),this._targets===void 0)){this._flags&=~ne;for(let e=this._sources;e!==void 0;e=e._nextSource)e._source._unsubscribe(e)}};X.prototype._notify=function(){if(!(this._flags&te)){this._flags|=ce|te;for(let t=this._targets;t!==void 0;t=t._nextTarget)t._target._notify()}};Object.defineProperty(X.prototype,"value",{get(){if(this._flags&G)throw $(ee,"SignalCycleDetected");let t=et(this);if(this._refresh(),t!==void 0&&(t._version=this._version),this._flags&be)throw $(ee,"GetComputedError",{value:this._value});return this._value}});function it(t){return new X(t)}function st(t){let e=t._cleanup;if(t._cleanup=void 0,typeof e=="function"){De();let n=P;P=void 0;try{e()}catch(r){throw t._flags&=~G,t._flags|=re,Oe(t),$(ee,"CleanupEffectError",{error:r})}finally{P=n,ke()}}}function Oe(t){for(let e=t._sources;e!==void 0;e=e._nextSource)e._source._unsubscribe(e);t._fn=void 0,t._sources=void 0,st(t)}function Tn(t){if(P!==this)throw $(ee,"EndEffectError");rt(this),P=t,this._flags&=~G,this._flags&re&&Oe(this),ke()}function fe(t){this._fn=t,this._cleanup=void 0,this._sources=void 0,this._nextBatchedEffect=void 0,this._flags=ne}fe.prototype._callback=function(){let t=this._start();try{if(this._flags&re||this._fn===void 0)return;let e=this._fn();typeof e=="function"&&(this._cleanup=e)}finally{t()}};fe.prototype._start=function(){if(this._flags&G)throw $(ee,"SignalCycleDetected");this._flags|=G,this._flags&=~re,st(this),nt(this),De();let t=P;return P=this,Tn.bind(this,t)};fe.prototype._notify=function(){this._flags&te||(this._flags|=te,this._nextBatchedEffect=ue,ue=this)};fe.prototype._dispose=function(){this._flags|=re,this._flags&G||Oe(this)};function Ae(t){let e=new fe(t);try{e._callback()}catch(n){throw e._dispose(),n}return e._dispose.bind(e)}var ot="namespacedSignals",ie=t=>{document.dispatchEvent(new CustomEvent(ae,{detail:Object.assign({added:[],removed:[],updated:[]},t)}))};function at(t,e=!1){let n={};for(let r in t)if(Object.hasOwn(t,r)){if(e&&r.startsWith("_"))continue;let i=t[r];i instanceof C?n[r]=i.value:n[r]=at(i)}return n}function lt(t,e,n=!1){let r={added:[],removed:[],updated:[]};for(let i in e)if(Object.hasOwn(e,i)){if(i.match(/\_\_+/))throw $(ot,"InvalidSignalKey",{key:i});let s=e[i];if(s instanceof Object&&!Array.isArray(s)){t[i]||(t[i]={});let l=lt(t[i],s,n);r.added.push(...l.added.map(o=>`${i}.${o}`)),r.removed.push(...l.removed.map(o=>`${i}.${o}`)),r.updated.push(...l.updated.map(o=>`${i}.${o}`))}else{if(Object.hasOwn(t,i)){if(n)continue;let m=t[i];if(m instanceof C){let b=m.value;m.value=s,b!==s&&r.updated.push(i);continue}}let o=new C(s);o._onChange=()=>{ie({updated:[i]})},t[i]=o,r.added.push(i)}}return r}function ut(t,e){for(let n in t)if(Object.hasOwn(t,n)){let r=t[n];r instanceof C?e(n,r):ut(r,(i,s)=>{e(`${n}.${i}`,s)})}}function An(t,...e){let n={};for(let r of e){let i=r.split("."),s=t,l=n;for(let m=0;mn());this.setSignal(e,r)}value(e){return this.signal(e)?.value}setValue(e,n){let{signal:r}=this.upsertIfMissing(e,n),i=r.value;r.value=n,i!==n&&ie({updated:[e]})}upsertIfMissing(e,n){let r=e.split("."),i=this.#e;for(let m=0;m{ie({updated:[e]})},i[s]=o,ie({added:[e]}),{signal:o,inserted:!0}}remove(...e){if(!e.length){this.#e={};return}let n=Array();for(let r of e){let i=r.split("."),s=this.#e;for(let o=0;oe.push(n)),e}values(e=!1){return at(this.#e,e)}JSON(e=!0,n=!1){let r=this.values(n);return e?JSON.stringify(r,null,2):JSON.stringify(r)}toString(){return this.JSON()}};var _e=class{constructor(){this.aliasPrefix="";this.#e=new Ee;this.#t=[];this.#r={};this.#o=[];this.#s=null;this.#n=new Map}#e;#t;#r;#o;#s;#n;get signals(){return this.#e}load(...e){let n=this;for(let r of e){let i={get signals(){return n.#e},effect:l=>Ae(l),actions:this.#r,plugin:r,applyPluginsTo:n.#i.bind(n)},s;switch(r.type){case 2:{let l=r;this.#o.push(l),s=l.onGlobalInit;break}case 3:{this.#r[r.name]=r;break}case 1:{let l=r;this.#t.push(l),s=l.onGlobalInit;break}default:throw H("InvalidPluginType",i)}s&&s(i)}this.#t.sort((r,i)=>{let s=i.name.length-r.name.length;return s!==0?s:r.name.localeCompare(i.name)}),this.#i(document.documentElement),this.#a()}#i(e){Ie(e,n=>{let r=new Array,i=this.#n.get(n)||new Map,s=new Map([...i]),l=new Map;for(let o of Object.keys(n.dataset)){let m=n.dataset[o]||"",b=Ze(o,m);l.set(o,b),i.has(b)?s.delete(b):r.push(o)}for(let[o,m]of s)m();for(let o of r){let m=l.get(o);this.#l(n,o,m)}})}#a(){this.#s||(this.#s=new MutationObserver(e=>{let n=new Set,r=new Set;for(let{target:i,type:s,attributeName:l,addedNodes:o,removedNodes:m}of e)switch(s){case"childList":{for(let b of m)n.add(b);for(let b of o)r.add(b)}break;case"attributes":{{let S="data-"+(this.aliasPrefix?`${this.aliasPrefix}-`:"");if(!l?.startsWith(S))break;r.add(i)}break}}for(let i of n){let s=this.#n.get(i);if(s){for(let[l,o]of s)o(),s.delete(l);s.size===0&&this.#n.delete(i)}}for(let i of r)this.#i(i)}),this.#s.observe(document.body,{attributes:!0,attributeOldValue:!0,childList:!0,subtree:!0}))}#l(e,n,r){let i=n.slice(this.aliasPrefix.length),s=this.#t.find(T=>i.startsWith(T.name));if(!s)return;e.id.length||(e.id=Qe(e));let[l,...o]=i.slice(s.name.length).split(/\_\_+/),m=l.length>0;m&&(l=J(l));let b=e.dataset[n]||"",S=b.length>0,N=this,v={get signals(){return N.#e},applyPluginsTo:N.#i.bind(N),effect:T=>Ae(T),actions:this.#r,genRX:()=>this.#u(v,...s.argNames||[]),plugin:s,el:e,rawKey:i,key:l,value:b,mods:new Map},x=s.keyReq||0;if(m){if(x===2)throw M(`${s.name}KeyNotAllowed`,v)}else if(x===1)throw M(`${s.name}KeyRequired`,v);let y=s.valReq||0;if(S){if(y===2)throw M(`${s.name}ValueNotAllowed`,v)}else if(y===1)throw M(`${s.name}ValueRequired`,v);if(x===3||y===3){if(m&&S)throw M(`${s.name}KeyAndValueProvided`,v);if(!m&&!S)throw M(`${s.name}KeyOrValueRequired`,v)}for(let T of o){let[g,...a]=T.split(".");v.mods.set(J(g),new Set(a.map(c=>c.toLowerCase())))}let E=s.onLoad(v);if(E){let T=this.#n.get(e);T||(T=new Map,this.#n.set(e,T)),T.set(r,E)}}#u(e,...n){let r="",i=/(\/(\\\/|[^\/])*\/|"(\\"|[^\"])*"|'(\\'|[^'])*'|`(\\`|[^`])*`|[^;])+/gm,s=e.value.trim().match(i);if(s){let y=s.length-1,E=s[y].trim();E.startsWith("return")||(s[y]=`return (${E});`),r=s.join(`; +`)}let l=new Map,o=new RegExp(`(?:${ge})(.*?)(?:${Pe})`,"gm");for(let y of r.matchAll(o)){let E=y[1],T=new Z("dsEscaped").with(E).string;l.set(T,E),r=r.replace(ge+E+Pe,T)}let m=/@(\w*)\(/gm,b=r.matchAll(m),S=new Set;for(let y of b)S.add(y[1]);let N=new RegExp(`@(${Object.keys(this.#r).join("|")})\\(`,"gm");r=r.replaceAll(N,"ctx.actions.$1.fn(ctx,");let v=e.signals.paths();if(v.length){let y=new RegExp(`\\$(${v.join("|")})(\\W|$)`,"gm");r=r.replaceAll(y,"ctx.signals.signal('$1').value$2")}for(let[y,E]of l)r=r.replace(y,E);let x=`return (()=> { ${r} -})()`;e.fnContent=x;try{let b=new Function("ctx",...n,x);return(...E)=>{try{return b(e,...E)}catch(A){throw N("ExecuteExpression",e,{error:A.message})}}}catch(b){throw N("GenerateExpression",e,{error:b.message})}}};var pt=new xe;pt.load(Qe,Xe,Ye);var Re=pt;async function _n(t,e){let n=t.getReader(),r;for(;!(r=await n.read()).done;)e(r.value)}function xn(t){let e,n,r,i=!1;return function(l){e===void 0?(e=l,n=0,r=-1):e=wn(e,l);let u=e.length,g=0;for(;n0){let g=i.decode(l.subarray(0,u)),S=u+(l[u+1]===32?2:1),v=i.decode(l.subarray(S));switch(g){case"data":r.data=r.data?`${r.data} -${v}`:v;break;case"event":r.event=v;break;case"id":t(r.id=v);break;case"retry":{let w=Number.parseInt(v,10);Number.isNaN(w)||e(r.retry=w);break}}}}}function wn(t,e){let n=new Uint8Array(t.length+e.length);return n.set(t),n.set(e,t.length),n}function mt(){return{data:"",event:"",id:"",retry:void 0}}var Mn="text/event-stream",gt="last-event-id";function ht(t,e,{signal:n,headers:r,onopen:i,onmessage:s,onclose:l,onerror:u,openWhenHidden:g,fetch:S,retryInterval:v=1e3,retryScaler:w=2,retryMaxWaitMs:y=3e4,retryMaxCount:x=10,...b}){return new Promise((E,A)=>{let m=0,o={...r};o.accept||(o.accept=Mn);let c;function a(){c.abort(),document.hidden||T()}g||document.addEventListener("visibilitychange",a);let d=0;function h(){document.removeEventListener("visibilitychange",a),window.clearTimeout(d),c.abort()}n?.addEventListener("abort",()=>{h(),E()});let p=S??window.fetch,f=i??function(){};async function T(){c=new AbortController;try{let _=await p(e,{...b,headers:o,signal:c.signal});await f(_),await _n(_.body,xn(Rn(R=>{R?o[gt]=R:delete o[gt]},R=>{v=R},s))),l?.(),h(),E()}catch(_){if(!c.signal.aborted)try{let R=u?.(_)??v;window.clearTimeout(d),d=window.setTimeout(T,R),v*=w,v=Math.min(v,y),m++,m>=x?(h(),A(N("SseMaxRetries",t,{retryMaxCount:x}))):console.error(`Datastar failed to reach ${b.method}: ${e.toString()} retry in ${R}ms`)}catch(R){h(),A(R)}}}T()})}var ie=`${D}-sse`,He=`${D}-settling`,Q=`${D}-swapping`,we="started",Me="finished",vt="error",yt="retrying";function U(t,e){document.addEventListener(ie,n=>{if(n.detail.type!==t)return;let{argsRaw:r}=n.detail;e(r)})}function pe(t,e){document.dispatchEvent(new CustomEvent(ie,{detail:{type:t,argsRaw:e}}))}var bt=t=>`${t}`.includes("text/event-stream"),B=async(t,e,n,r)=>{let{el:{id:i},el:s,signals:l}=t,{headers:u,contentType:g,includeLocal:S,selector:v,openWhenHidden:w,retryInterval:y,retryScaler:x,retryMaxWaitMs:b,retryMaxCount:E,abort:A}=Object.assign({headers:{},contentType:"json",includeLocal:!1,selector:null,openWhenHidden:!1,retryInterval:Be,retryScaler:2,retryMaxWaitMs:3e4,retryMaxCount:10,abort:void 0},r),m=e.toLowerCase(),o=()=>{};try{if(pe(we,{elId:i}),!n?.length)throw N("SseNoUrlProvided",t,{action:m});let c={};c[Ue]=!0,g==="json"&&(c["Content-Type"]="application/json");let a=Object.assign({},c,u),d={method:e,headers:a,openWhenHidden:w,retryInterval:y,retryScaler:x,retryMaxWaitMs:b,retryMaxCount:E,signal:A,onopen:async f=>{if(f.status>=400){let T=f.status.toString();pe(vt,{status:T})}},onmessage:f=>{if(!f.event.startsWith(D))return;let T=f.event,_={},R=f.data.split(` -`);for(let H of R){let I=H.indexOf(" "),W=H.slice(0,I),K=_[W];K||(K=[],_[W]=K);let hn=H.slice(I+1);K.push(hn)}let L={};for(let[H,I]of Object.entries(_))L[H]=I.join(` -`);pe(T,L)},onerror:f=>{if(bt(f))throw N("InvalidContentType",t,{url:n});f&&(console.error(f.message),pe(yt,{message:f.message}))}},h=new URL(n,window.location.origin),p=new URLSearchParams(h.search);if(g==="json"){let f=l.JSON(!1,!S);e==="GET"?p.set(D,f):d.body=f}else if(g==="form"){let f=v?document.querySelector(v):s.closest("form");if(f===null)throw v?N("SseFormNotFound",t,{action:m,selector:v}):N("SseClosestFormNotFound",t,{action:m});if(s!==f){let _=R=>R.preventDefault();f.addEventListener("submit",_),o=()=>f.removeEventListener("submit",_)}if(!f.checkValidity()){f.reportValidity(),o();return}let T=new FormData(f);if(e==="GET"){let _=new URLSearchParams(T);for(let[R,L]of _)p.set(R,L)}else d.body=T}else throw N("SseInvalidContentType",t,{action:m,contentType:g});h.search=p.toString();try{await ht(t,h.toString(),d)}catch(f){if(!bt(f))throw N("SseFetchFailed",t,{method:e,url:n,error:f})}}finally{pe(Me,{elId:i}),o()}};var St={type:3,name:"delete",fn:async(t,e,n)=>B(t,"DELETE",e,{...n})};var Tt={type:3,name:"get",fn:async(t,e,n)=>B(t,"GET",e,{...n})};var At={type:3,name:"patch",fn:async(t,e,n)=>B(t,"PATCH",e,{...n})};var Et={type:3,name:"post",fn:async(t,e,n)=>B(t,"POST",e,{...n})};var _t={type:3,name:"put",fn:async(t,e,n)=>B(t,"PUT",e,{...n})};var xt={type:1,name:"indicator",keyReq:3,valReq:3,onLoad:({el:t,key:e,mods:n,signals:r,value:i})=>{let s=e?V(e,n):z(i),{signal:l}=r.upsertIfMissing(s,!1),u=g=>{let{type:S,argsRaw:{elId:v}}=g.detail;if(v===t.id)switch(S){case we:l.value=!0;break;case Me:l.value=!1;break}};return document.addEventListener(ie,u),()=>{document.removeEventListener(ie,u)}}};var Rt={type:2,name:k.ExecuteScript,onGlobalInit:async t=>{U(k.ExecuteScript,({autoRemove:e=`${Je}`,attributes:n=je,script:r})=>{let i=J(e);if(!r?.length)throw F("NoScriptProvided",t);let s=document.createElement("script");for(let l of n.split(` -`)){let u=l.indexOf(" "),g=u?l.slice(0,u):l,S=u?l.slice(u):"";s.setAttribute(g.trim(),S.trim())}s.text=r,document.head.appendChild(s),i&&s.remove()})}};var me=document,Y=!!me.startViewTransition;var wt=function(){"use strict";let t=()=>{},e={morphStyle:"outerHTML",callbacks:{beforeNodeAdded:t,afterNodeAdded:t,beforeNodeMorphed:t,afterNodeMorphed:t,beforeNodeRemoved:t,afterNodeRemoved:t,beforeAttributeUpdated:t},head:{style:"merge",shouldPreserve:y=>y.getAttribute("im-preserve")==="true",shouldReAppend:y=>y.getAttribute("im-re-append")==="true",shouldRemove:t,afterHeadMorphed:t},restoreFocus:!0};function n(y,x,b={}){y=v(y);let E=w(x),A=S(y,E,b),m=i(A,()=>u(A,y,E,o=>o.morphStyle==="innerHTML"?(s(o,y,E),Array.from(y.childNodes)):r(o,y,E)));return A.pantry.remove(),m}function r(y,x,b){let E=w(x),A=Array.from(E.childNodes),m=A.indexOf(x),o=A.length-(m+1);return s(y,E,b,x,x.nextSibling),A=Array.from(E.childNodes),A.slice(m,A.length-o)}function i(y,x){if(!y.config.restoreFocus)return x();let b=document.activeElement;if(!(b instanceof HTMLInputElement||b instanceof HTMLTextAreaElement))return x();let{id:E,selectionStart:A,selectionEnd:m}=b,o=x();return E&&E!==document.activeElement?.id&&(b=y.target.querySelector(`#${E}`),b?.focus()),b&&!b.selectionEnd&&m&&b.setSelectionRange(A,m),o}let s=function(){function y(a,d,h,p=null,f=null){d instanceof HTMLTemplateElement&&h instanceof HTMLTemplateElement&&(d=d.content,h=h.content),p||=d.firstChild;for(let T of h.childNodes){if(p&&p!=f){let R=b(a,T,p,f);if(R){R!==p&&A(a,p,R),l(R,T,a),p=R.nextSibling;continue}}if(T instanceof Element&&a.persistentIds.has(T.id)){let R=m(d,T.id,p,a);l(R,T,a),p=R.nextSibling;continue}let _=x(d,T,p,a);_&&(p=_.nextSibling)}for(;p&&p!=f;){let T=p;p=p.nextSibling,E(a,T)}}function x(a,d,h,p){if(p.callbacks.beforeNodeAdded(d)===!1)return null;if(p.idMap.has(d)){let f=document.createElement(d.tagName);return a.insertBefore(f,h),l(f,d,p),p.callbacks.afterNodeAdded(f),f}else{let f=document.importNode(d,!0);return a.insertBefore(f,h),p.callbacks.afterNodeAdded(f),f}}let b=function(){function a(p,f,T,_){let R=null,L=f.nextSibling,H=0,I=T;for(;I&&I!=_;){if(h(I,f)){if(d(p,I,f))return I;R===null&&(p.idMap.has(I)||(R=I))}if(R===null&&L&&h(I,L)&&(H++,L=L.nextSibling,H>=2&&(R=void 0)),I.contains(document.activeElement))break;I=I.nextSibling}return R||null}function d(p,f,T){let _=p.idMap.get(f),R=p.idMap.get(T);if(!R||!_)return!1;for(let L of _)if(R.has(L))return!0;return!1}function h(p,f){let T=p,_=f;return T.nodeType===_.nodeType&&T.tagName===_.tagName&&(!T.id||T.id===_.id)}return a}();function E(a,d){if(a.idMap.has(d))c(a.pantry,d,null);else{if(a.callbacks.beforeNodeRemoved(d)===!1)return;d.parentNode?.removeChild(d),a.callbacks.afterNodeRemoved(d)}}function A(a,d,h){let p=d;for(;p&&p!==h;){let f=p;p=p.nextSibling,E(a,f)}return p}function m(a,d,h,p){let f=p.target.querySelector(`#${d}`)||p.pantry.querySelector(`#${d}`);return o(f,p),c(a,f,h),f}function o(a,d){let h=a.id;for(;a=a.parentNode;){let p=d.idMap.get(a);p&&(p.delete(h),p.size||d.idMap.delete(a))}}function c(a,d,h){if(a.moveBefore)try{a.moveBefore(d,h)}catch{a.insertBefore(d,h)}else a.insertBefore(d,h)}return y}(),l=function(){function y(o,c,a){return a.ignoreActive&&o===document.activeElement?null:(a.callbacks.beforeNodeMorphed(o,c)===!1||(o instanceof HTMLHeadElement&&a.head.ignore||(o instanceof HTMLHeadElement&&a.head.style!=="morph"?g(o,c,a):(x(o,c,a),m(o,a)||s(a,o,c))),a.callbacks.afterNodeMorphed(o,c)),o)}function x(o,c,a){let d=c.nodeType;if(d===1){let h=o,p=c,f=h.attributes,T=p.attributes;for(let _ of T)A(_.name,h,"update",a)||h.getAttribute(_.name)!==_.value&&h.setAttribute(_.name,_.value);for(let _=f.length-1;0<=_;_--){let R=f[_];if(R&&!p.hasAttribute(R.name)){if(A(R.name,h,"remove",a))continue;h.removeAttribute(R.name)}}m(h,a)||b(h,p,a)}(d===8||d===3)&&o.nodeValue!==c.nodeValue&&(o.nodeValue=c.nodeValue)}function b(o,c,a){if(o instanceof HTMLInputElement&&c instanceof HTMLInputElement&&c.type!=="file"){let d=c.value,h=o.value;E(o,c,"checked",a),E(o,c,"disabled",a),c.hasAttribute("value")?h!==d&&(A("value",o,"update",a)||(o.setAttribute("value",d),o.value=d)):A("value",o,"remove",a)||(o.value="",o.removeAttribute("value"))}else if(o instanceof HTMLOptionElement&&c instanceof HTMLOptionElement)E(o,c,"selected",a);else if(o instanceof HTMLTextAreaElement&&c instanceof HTMLTextAreaElement){let d=c.value,h=o.value;if(A("value",o,"update",a))return;d!==h&&(o.value=d),o.firstChild&&o.firstChild.nodeValue!==d&&(o.firstChild.nodeValue=d)}}function E(o,c,a,d){let h=c[a],p=o[a];if(h!==p){let f=A(a,o,"update",d);f||(o[a]=c[a]),h?f||o.setAttribute(a,""):A(a,o,"remove",d)||o.removeAttribute(a)}}function A(o,c,a,d){return o==="value"&&d.ignoreActiveValue&&c===document.activeElement?!0:d.callbacks.beforeAttributeUpdated(o,c,a)===!1}function m(o,c){return!!c.ignoreActiveValue&&o===document.activeElement&&o!==document.body}return y}();function u(y,x,b,E){if(y.head.block){let A=x.querySelector("head"),m=b.querySelector("head");if(A&&m){let o=g(A,m,y);return Promise.all(o).then(()=>{let c=Object.assign(y,{head:{block:!1,ignore:!0}});return E(c)})}}return E(y)}function g(y,x,b){let E=[],A=[],m=[],o=[],c=new Map;for(let d of x.children)c.set(d.outerHTML,d);for(let d of y.children){let h=c.has(d.outerHTML),p=b.head.shouldReAppend(d),f=b.head.shouldPreserve(d);h||f?p?A.push(d):(c.delete(d.outerHTML),m.push(d)):b.head.style==="append"?p&&(A.push(d),o.push(d)):b.head.shouldRemove(d)!==!1&&A.push(d)}o.push(...c.values());let a=[];for(let d of o){let h=document.createRange().createContextualFragment(d.outerHTML).firstChild;if(b.callbacks.beforeNodeAdded(h)!==!1){if("href"in h&&h.href||"src"in h&&h.src){let p,f=new Promise(function(T){p=T});h.addEventListener("load",function(){p()}),a.push(f)}y.appendChild(h),b.callbacks.afterNodeAdded(h),E.push(h)}}for(let d of A)b.callbacks.beforeNodeRemoved(d)!==!1&&(y.removeChild(d),b.callbacks.afterNodeRemoved(d));return b.head.afterHeadMorphed(y,{added:E,kept:m,removed:A}),a}let S=function(){function y(c,a,d){let{persistentIds:h,idMap:p}=m(c,a),f=x(d),T=f.morphStyle||"outerHTML";if(!["innerHTML","outerHTML"].includes(T))throw`Do not understand how to morph style ${T}`;return{target:c,newContent:a,config:f,morphStyle:T,ignoreActive:f.ignoreActive,ignoreActiveValue:f.ignoreActiveValue,restoreFocus:f.restoreFocus,idMap:p,persistentIds:h,pantry:b(),callbacks:f.callbacks,head:f.head}}function x(c){let a=Object.assign({},e);return Object.assign(a,c),a.callbacks=Object.assign({},e.callbacks,c.callbacks),a.head=Object.assign({},e.head,c.head),a}function b(){let c=document.createElement("div");return c.hidden=!0,document.body.insertAdjacentElement("afterend",c),c}function E(c){let a=Array.from(c.querySelectorAll("[id]"));return c.id&&a.push(c),a}function A(c,a,d,h){for(let p of h)if(a.has(p.id)){let f=p;for(;f;){let T=c.get(f);if(T==null&&(T=new Set,c.set(f,T)),T.add(p.id),f===d)break;f=f.parentElement}}}function m(c,a){let d=E(c),h=E(a),p=o(d,h),f=new Map;A(f,p,c,d);let T=a.__idiomorphRoot||a;return A(f,p,T,h),{persistentIds:p,idMap:f}}function o(c,a){let d=new Set,h=new Map;for(let{id:f,tagName:T}of c)h.has(f)?d.add(f):h.set(f,T);let p=new Set;for(let{id:f,tagName:T}of a)p.has(f)?d.add(f):h.get(f)===T&&p.add(f);for(let f of d)p.delete(f);return p}return y}(),{normalizeElement:v,normalizeParent:w}=function(){let y=new WeakSet;function x(m){return m instanceof Document?m.documentElement:m}function b(m){if(m==null)return document.createElement("div");if(typeof m=="string")return b(A(m));if(y.has(m))return m;if(m instanceof Node){if(m.parentNode)return E(m);{let o=document.createElement("div");return o.append(m),o}}else{let o=document.createElement("div");for(let c of[...m])o.append(c);return o}}function E(m){return{childNodes:[m],querySelectorAll:o=>{let c=m.querySelectorAll(o);return m.matches(o)?[m,...c]:c},insertBefore:(o,c)=>m.parentNode.insertBefore(o,c),moveBefore:(o,c)=>m.parentNode.moveBefore(o,c),get __idiomorphRoot(){return m}}}function A(m){let o=new DOMParser,c=m.replace(/]*>|>)([\s\S]*?)<\/svg>/gim,"");if(c.match(/<\/html>/)||c.match(/<\/head>/)||c.match(/<\/body>/)){let a=o.parseFromString(m,"text/html");if(c.match(/<\/html>/))return y.add(a),a;{let d=a.firstChild;return d&&y.add(d),d}}else{let d=o.parseFromString("","text/html").body.querySelector("template").content;return y.add(d),d}}return{normalizeElement:x,normalizeParent:b}}();return{morph:n,defaults:e}}();var Nt={type:2,name:k.MergeFragments,onGlobalInit:async t=>{let e=document.createElement("template");U(k.MergeFragments,({fragments:n="
",selector:r="",mergeMode:i=ze,settleDuration:s=`${he}`,useViewTransition:l=`${ve}`})=>{let u=Number.parseInt(s),g=J(l);e.innerHTML=n.trim();let S=[...e.content.children];for(let v of S){if(!(v instanceof Element))throw F("NoFragmentsFound",t);let w=r||`#${v.getAttribute("id")}`,y=[...document.querySelectorAll(w)||[]];if(!y.length)throw F("NoTargetsFound",t,{selectorOrID:w});g&&Y?me.startViewTransition(()=>Mt(t,i,u,v,y)):Mt(t,i,u,v,y)}})}};function Mt(t,e,n,r,i){for(let s of i){s.classList.add(Q);let l=s.outerHTML,u=s;switch(e){case q.Morph:{let v=new Map,w=r.cloneNode(!0),y=wt.morph(u,w,{restoreFocus:!0,callbacks:{beforeAttributeUpdated:(x,b,E)=>{if(E==="update"&&x.startsWith("data-")){let A=v.get(b);A||(A=[],v.set(b,A));let m=x.slice(5);A.push(j(m))}return!0}}});if(y?.length){u=y[0];for(let[x,b]of v.entries())for(let E of b)t.applyAttributePlugin(x,E)}break}case q.Inner:u.innerHTML=r.outerHTML;break;case q.Outer:u.replaceWith(r);break;case q.Prepend:u.prepend(r);break;case q.Append:u.append(r);break;case q.Before:u.before(r);break;case q.After:u.after(r);break;case q.UpsertAttributes:for(let v of r.getAttributeNames()){let w=r.getAttribute(v);u.setAttribute(v,w)}break;default:throw F("InvalidMergeMode",t,{mergeMode:e})}let g=u.classList;g?.add(Q),setTimeout(()=>{s.classList.remove(Q),g?.remove(Q)},n);let S=u.outerHTML;g&&l!==S&&(g.add(He),setTimeout(()=>{g.remove(He)},n))}}var Pt={type:2,name:k.MergeSignals,onGlobalInit:async t=>{U(k.MergeSignals,({signals:e="{}",onlyIfMissing:n=`${Ke}`})=>{let{signals:r}=t,i=J(n);r.merge(ye(e),i)})}};var Ct={type:2,name:k.RemoveFragments,onGlobalInit:async t=>{U(k.RemoveFragments,({selector:e,settleDuration:n=`${he}`,useViewTransition:r=`${ve}`})=>{if(!e.length)throw F("NoSelectorProvided",t);let i=Number.parseInt(n),s=J(r),l=document.querySelectorAll(e),u=()=>{for(let g of l)g.classList.add(Q);setTimeout(()=>{for(let g of l)g.remove()},i)};s&&Y?me.startViewTransition(()=>u()):u()})}};var Lt={type:2,name:k.RemoveSignals,onGlobalInit:async t=>{U(k.RemoveSignals,({paths:e=""})=>{let n=e.split(` -`).map(r=>r.trim());if(!n?.length)throw F("NoPathsProvided",t);t.signals.remove(...n)})}};var It={type:3,name:"clipboard",fn:(t,e)=>{if(!navigator.clipboard)throw N("ClipboardNotAvailable",t);navigator.clipboard.writeText(e)}};var Vt={type:1,name:"customValidity",keyReq:2,valReq:1,onLoad:t=>{let{el:e,genRX:n,effect:r}=t;if(!(e instanceof HTMLInputElement||e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement))throw N("CustomValidityInvalidElement",t);let i=n();return r(()=>{let s=i();if(typeof s!="string")throw N("CustomValidityInvalidExpression",t,{result:s});e.setCustomValidity(s)})}};var Dt="once",kt="half",Ot="full",Ft={type:1,name:"intersects",keyReq:2,mods:new Set([Dt,kt,Ot]),onLoad:({el:t,rawKey:e,mods:n,genRX:r})=>{let i={threshold:0};n.has(Ot)?i.threshold=1:n.has(kt)&&(i.threshold=.5);let s=r(),l=new IntersectionObserver(u=>{for(let g of u)g.isIntersecting&&(s(),n.has(Dt)&&(l.disconnect(),delete t.dataset[e]))},i);return l.observe(t),()=>l.disconnect()}};var Ht="session",Wt={type:1,name:"persist",mods:new Set([Ht]),onLoad:({key:t,effect:e,mods:n,signals:r,value:i})=>{t=V(t,n),t===""&&(t=D);let s=n.has(Ht)?sessionStorage:localStorage,l=i.split(/\s+/).filter(S=>S!=="");l=l.map(S=>z(S));let u=()=>{let S=s.getItem(t)||"{}",v=JSON.parse(S);r.merge(v)},g=()=>{let S;l.length?S=r.subset(...l):S=r.values(),s.setItem(t,JSON.stringify(S))};return u(),e(()=>{g()})}};var qt={type:1,name:"replaceUrl",keyReq:2,valReq:1,onLoad:({effect:t,genRX:e})=>{let n=e();return t(()=>{let r=n(),i=window.location.href,s=new URL(r,i).toString();window.history.replaceState({},"",s)})}};var Ne="smooth",We="instant",qe="auto",$t="hstart",Gt="hcenter",Ut="hend",Bt="hnearest",jt="vstart",Kt="vcenter",Jt="vend",zt="vnearest",Nn="focus",Pe="center",Yt="start",Xt="end",Qt="nearest",Zt={type:1,name:"scrollIntoView",keyReq:2,valReq:2,mods:new Set([Ne,We,qe,$t,Gt,Ut,Bt,jt,Kt,Jt,zt,Nn]),onLoad:t=>{let{el:e,mods:n,rawKey:r}=t;e.tabIndex||e.setAttribute("tabindex","0");let i={behavior:Ne,block:Pe,inline:Pe};if(n.has(Ne)&&(i.behavior=Ne),n.has(We)&&(i.behavior=We),n.has(qe)&&(i.behavior=qe),n.has($t)&&(i.inline=Yt),n.has(Gt)&&(i.inline=Pe),n.has(Ut)&&(i.inline=Xt),n.has(Bt)&&(i.inline=Qt),n.has(jt)&&(i.block=Yt),n.has(Kt)&&(i.block=Pe),n.has(Jt)&&(i.block=Xt),n.has(zt)&&(i.block=Qt),!(e instanceof HTMLElement||e instanceof SVGElement))throw N("ScrollIntoViewInvalidElement",t);return e.tabIndex||e.setAttribute("tabindex","0"),e.scrollIntoView(i),n.has("focus")&&e.focus(),delete e.dataset[r],()=>{}}};var en="none",tn="display",nn={type:1,name:"show",keyReq:2,valReq:1,onLoad:({el:{style:t},genRX:e,effect:n})=>{let r=e();return n(async()=>{r()?t.display===en&&t.removeProperty(tn):t.setProperty(tn,en)})}};var rn="view-transition",sn={type:1,name:"viewTransition",keyReq:2,valReq:1,onGlobalInit(){let t=!1;for(let e of document.head.childNodes)e instanceof HTMLMetaElement&&e.name===rn&&(t=!0);if(!t){let e=document.createElement("meta");e.name=rn,e.content="same-origin",document.head.appendChild(e)}},onLoad:({effect:t,el:e,genRX:n})=>{if(!Y){console.error("Browser does not support view transitions");return}let r=n();return t(()=>{let i=r();if(!i?.length)return;let s=e.style;s.viewTransitionName=i})}};var on={type:1,name:"attr",valReq:1,onLoad:({el:t,key:e,effect:n,genRX:r})=>{let i=r();return e===""?n(async()=>{let s=i();for(let[l,u]of Object.entries(s))t.setAttribute(l,u)}):(e=le(e),n(async()=>{let s=!1;try{s=i()}catch{}let l;typeof s=="string"?l=s:l=JSON.stringify(s),!l||l==="false"||l==="null"||l==="undefined"?t.removeAttribute(e):t.setAttribute(e,l)}))}};var Pn=/^data:(?[^;]+);base64,(?.*)$/,an=["change","input","keydown"],ln={type:1,name:"bind",keyReq:3,valReq:3,onLoad:t=>{let{el:e,key:n,mods:r,signals:i,value:s,effect:l}=t,u=n?V(n,r):z(s),g=e.tagName.toLowerCase(),S="",v=g.includes("input"),w=e.getAttribute("type"),y=g.includes("checkbox")||v&&w==="checkbox";y&&(S=!1),v&&w==="number"&&(S=0);let b=g.includes("select"),E=g.includes("radio")||v&&w==="radio",A=v&&w==="file";E&&(e.getAttribute("name")?.length||e.setAttribute("name",u));let m=()=>{let h="value"in e,p=i.value(u),f=`${p}`;if(y||E){let T=e;Array.isArray(p)?T.checked=p.includes(T.value):typeof p=="boolean"?T.checked=!!p:T.checked=f===T.value}else if(b){let T=e;if(T.multiple)for(let _ of T.options){if(_?.disabled)return;Array.isArray(p)||typeof p=="string"?_.selected=p.includes(_.value):typeof p=="number"?_.selected=p===Number(_.value):_.selected=p}else T.value=f}else A||(h?e.value=f:e.setAttribute("value",f))},o=async()=>{if(A){let T=[...e?.files||[]],_=[],R=[],L=[];await Promise.all(T.map(H=>new Promise(I=>{let W=new FileReader;W.onload=()=>{if(typeof W.result!="string")throw N("InvalidFileResultType",t,{resultType:typeof W.result});let K=W.result.match(Pn);if(!K?.groups)throw N("InvalidDataUri",t,{result:W.result});_.push(K.groups.contents),R.push(K.groups.mime),L.push(H.name)},W.onloadend=()=>I(void 0),W.readAsDataURL(H)}))),i.setValue(u,_),i.setValue(`${u}Mimes`,R),i.setValue(`${u}Names`,L);return}let h=i.value(u),p=e||e,f=p.value||p.getAttribute("value")||"";if(y){let T=p.checked||p.getAttribute("checked")==="true";if(Array.isArray(h)){let _=new Set(h);T?_.add(p.value):_.delete(p.value),i.setValue(u,[..._])}else if(p.getAttribute("value")){let R=T?f:!1;i.setValue(u,R)}else i.setValue(u,T);return}if(typeof h=="number")i.setValue(u,Number(f));else if(typeof h=="string")i.setValue(u,f||"");else if(typeof h=="boolean")i.setValue(u,!!f);else if(Array.isArray(h))if(b){let R=[...e.selectedOptions].filter(L=>L.selected).map(L=>L.value);i.setValue(u,R)}else i.setValue(u,JSON.stringify(f.split(",")));else if(!(typeof h>"u"))throw N("BindUnsupportedSignalType",t,{signalType:typeof h})},{inserted:c}=i.upsertIfMissing(u,S);c&&o();for(let h of an)e.addEventListener(h,o);let a=l(()=>m()),d=h=>{h.persisted&&o()};return window.addEventListener("pageshow",d),()=>{a();for(let h of an)e.removeEventListener(h,o);window.removeEventListener("pageshow",d)}}};var un={type:1,name:"class",valReq:1,onLoad:({el:t,key:e,mods:n,effect:r,genRX:i})=>{let s=t.classList,l=i();return r(()=>{if(e===""){let u=l();for(let[g,S]of Object.entries(u)){let v=g.split(/\s+/);S?s.add(...v):s.remove(...v)}}else e=V(e,n),l()?s.add(e):s.remove(e)})}};function ge(t){if(!t||t.size<=0)return 0;for(let e of t){if(e.endsWith("ms"))return Number(e.replace("ms",""));if(e.endsWith("s"))return Number(e.replace("s",""))*1e3;try{return Number.parseFloat(e)}catch{}}return 0}function se(t,e,n=!1){return t?t.has(e.toLowerCase()):n}var Cn="evt",$e="signalsChange",Ln=$e.length,cn={type:1,name:"on",keyReq:1,valReq:1,argNames:[Cn],removeOnLoad:t=>t.startsWith("onLoad"),onLoad:({el:t,key:e,mods:n,rawKey:r,signals:i,value:s,effect:l,genRX:u})=>{let g=u(),S=t;n.has("window")&&(S=window);let v=m=>{m&&((n.has("prevent")||e==="submit")&&m.preventDefault(),n.has("stop")&&m.stopPropagation()),g(m)},w=n.get("delay");if(w){let m=ge(w);v=be(v,m)}let y=n.get("debounce");if(y){let m=ge(y),o=se(y,"leading",!1),c=!se(y,"notrail",!1);v=et(v,m,o,c)}let x=n.get("throttle");if(x){let m=ge(x),o=!se(x,"noleading",!1),c=se(x,"trail",!1);v=tt(v,m,o,c)}if(n.has("viewtransition")&&Y){let m=v;v=(...o)=>document.startViewTransition(()=>m(...o))}let b={capture:!0,passive:!1,once:!1};if(n.has("capture")||(b.capture=!1),n.has("passive")&&(b.passive=!0),n.has("once")&&(b.once=!0),e==="load")return setTimeout(()=>v(),0),()=>{};if(e==="interval"){let m=1e3,o=n.get("duration");o&&(m=ge(o),se(o,"leading",!1)&&(t.dataset[r.replace(".leading","")]=s,delete t.dataset[r],v()));let c=setInterval(v,m);return()=>{clearInterval(c)}}if(e==="raf"){let m,o=()=>{v(),m=requestAnimationFrame(o)};return m=requestAnimationFrame(o),()=>{m&&cancelAnimationFrame(m)}}if(e.startsWith($e)){if(e===$e){v();let c=a=>v(a);return document.addEventListener(ae,c),()=>{document.removeEventListener(ae,c)}}let m=V(j(e.slice(Ln)),n),o=new Map;return i.walk((c,a)=>{c.startsWith(m)&&o.set(a,a.value)}),l(()=>{for(let[c,a]of o)a!==c.value&&(v(),o.set(c,c.value))})}if(n.has("outside")){S=document;let m=v;v=c=>{let a=c?.target;t.contains(a)||m(c)}}let A=V(e,n);return S.addEventListener(A,v,b),()=>{S.removeEventListener(A,v)}}};var fn={type:1,name:"ref",keyReq:3,valReq:3,onLoad:({el:t,key:e,mods:n,signals:r,value:i})=>{let s=e?V(e,n):z(i);r.setValue(s,t)}};var dn={type:1,name:"text",keyReq:2,valReq:1,onLoad:t=>{let{el:e,effect:n,genRX:r}=t,i=r();return e instanceof HTMLElement||N("TextInvalidElement",t),n(()=>{let s=i(t);e.textContent=`${s}`})}};var{round:In,max:Vn,min:Dn}=Math,pn={type:3,name:"fit",fn:(t,e,n,r,i,s,l=!1,u=!1)=>{let g=(e-n)/(r-n)*(s-i)+i;return u&&(g=In(g)),l&&(g=Vn(i,Dn(s,g))),g}};var mn={type:3,name:"setAll",fn:({signals:t},e,n)=>{t.walk((r,i)=>{r.startsWith(e)&&(i.value=n)})}};var gn={type:3,name:"toggleAll",fn:({signals:t},e)=>{t.walk((n,r)=>{n.startsWith(e)&&(r.value=!r.value)})}};Re.load(on,ln,un,cn,fn,nn,dn,xt,Tt,Et,_t,At,St,Nt,Pt,Ct,Lt,Rt,It,Vt,Ft,Wt,qt,Zt,sn,pn,mn,gn);Re.aliasPrefix="ds";var to=Re;export{to as Datastar}; +})()`;e.fnContent=x;try{let y=new Function("ctx",...n,x);return(...E)=>{try{return y(e,...E)}catch(T){throw M("ExecuteExpression",e,{error:T.message})}}}catch(y){throw M("GenerateExpression",e,{error:y.message})}}};var ct=new _e;ct.load(Xe,Ye,ze);var xe=ct;async function En(t,e){let n=t.getReader(),r;for(;!(r=await n.read()).done;)e(r.value)}function _n(t){let e,n,r,i=!1;return function(l){e===void 0?(e=l,n=0,r=-1):e=Rn(e,l);let o=e.length,m=0;for(;n0){let m=i.decode(l.subarray(0,o)),b=o+(l[o+1]===32?2:1),S=i.decode(l.subarray(b));switch(m){case"data":r.data=r.data?`${r.data} +${S}`:S;break;case"event":r.event=S;break;case"id":t(r.id=S);break;case"retry":{let N=Number.parseInt(S,10);Number.isNaN(N)||e(r.retry=N);break}}}}}function Rn(t,e){let n=new Uint8Array(t.length+e.length);return n.set(t),n.set(e,t.length),n}function ft(){return{data:"",event:"",id:"",retry:void 0}}var wn="text/event-stream",dt="last-event-id";function pt(t,e,{signal:n,headers:r,onopen:i,onmessage:s,onclose:l,onerror:o,openWhenHidden:m,fetch:b,retryInterval:S=1e3,retryScaler:N=2,retryMaxWaitMs:v=3e4,retryMaxCount:x=10,...y}){return new Promise((E,T)=>{let g=0,a={...r};a.accept||(a.accept=wn);let c;function u(){c.abort(),document.hidden||A()}m||document.addEventListener("visibilitychange",u);let d=0;function h(){document.removeEventListener("visibilitychange",u),window.clearTimeout(d),c.abort()}n?.addEventListener("abort",()=>{h(),E()});let p=b??window.fetch,f=i??function(){};async function A(){c=new AbortController;try{let _=await p(e,{...y,headers:a,signal:c.signal});await f(_),await En(_.body,_n(xn(R=>{R?a[dt]=R:delete a[dt]},R=>{S=R},s))),l?.(),h(),E()}catch(_){if(!c.signal.aborted)try{let R=o?.(_)??S;window.clearTimeout(d),d=window.setTimeout(A,R),S*=N,S=Math.min(S,v),g++,g>=x?(h(),T(M("SseMaxRetries",t,{retryMaxCount:x}))):console.error(`Datastar failed to reach ${y.method}: ${e.toString()} retry in ${R}ms`)}catch(R){h(),T(R)}}}A()})}var se=`${D}-sse`,He=`${D}-settling`,Q=`${D}-swapping`,Re="started",we="finished",mt="error",gt="retrying";function U(t,e){document.addEventListener(se,n=>{if(n.detail.type!==t)return;let{argsRaw:r}=n.detail;e(r)})}function de(t,e){document.dispatchEvent(new CustomEvent(se,{detail:{type:t,argsRaw:e}}))}var ht=t=>`${t}`.includes("text/event-stream"),B=async(t,e,n,r)=>{let{el:{id:i},el:s,signals:l}=t,{headers:o,contentType:m,includeLocal:b,selector:S,openWhenHidden:N,retryInterval:v,retryScaler:x,retryMaxWaitMs:y,retryMaxCount:E,abort:T}=Object.assign({headers:{},contentType:"json",includeLocal:!1,selector:null,openWhenHidden:!1,retryInterval:Ue,retryScaler:2,retryMaxWaitMs:3e4,retryMaxCount:10,abort:void 0},r),g=e.toLowerCase(),a=()=>{};try{if(de(Re,{elId:i}),!n?.length)throw M("SseNoUrlProvided",t,{action:g});let c={};c[Ge]=!0,m==="json"&&(c["Content-Type"]="application/json");let u=Object.assign({},c,o),d={method:e,headers:u,openWhenHidden:N,retryInterval:v,retryScaler:x,retryMaxWaitMs:y,retryMaxCount:E,signal:T,onopen:async f=>{if(f.status>=400){let A=f.status.toString();de(mt,{status:A})}},onmessage:f=>{if(!f.event.startsWith(D))return;let A=f.event,_={},R=f.data.split(` +`);for(let F of R){let L=F.indexOf(" "),q=F.slice(0,L),j=_[q];j||(j=[],_[q]=j);let gn=F.slice(L+1);j.push(gn)}let I={};for(let[F,L]of Object.entries(_))I[F]=L.join(` +`);de(A,I)},onerror:f=>{if(ht(f))throw M("InvalidContentType",t,{url:n});f&&(console.error(f.message),de(gt,{message:f.message}))}},h=new URL(n,window.location.origin),p=new URLSearchParams(h.search);if(m==="json"){let f=l.JSON(!1,!b);e==="GET"?p.set(D,f):d.body=f}else if(m==="form"){let f=S?document.querySelector(S):s.closest("form");if(f===null)throw S?M("SseFormNotFound",t,{action:g,selector:S}):M("SseClosestFormNotFound",t,{action:g});if(s!==f){let _=R=>R.preventDefault();f.addEventListener("submit",_),a=()=>f.removeEventListener("submit",_)}if(!f.checkValidity()){f.reportValidity(),a();return}let A=new FormData(f);if(e==="GET"){let _=new URLSearchParams(A);for(let[R,I]of _)p.set(R,I)}else d.body=A}else throw M("SseInvalidContentType",t,{action:g,contentType:m});h.search=p.toString();try{await pt(t,h.toString(),d)}catch(f){if(!ht(f))throw M("SseFetchFailed",t,{method:e,url:n,error:f})}}finally{de(we,{elId:i}),a()}};var vt={type:3,name:"delete",fn:async(t,e,n)=>B(t,"DELETE",e,{...n})};var yt={type:3,name:"get",fn:async(t,e,n)=>B(t,"GET",e,{...n})};var bt={type:3,name:"patch",fn:async(t,e,n)=>B(t,"PATCH",e,{...n})};var St={type:3,name:"post",fn:async(t,e,n)=>B(t,"POST",e,{...n})};var Tt={type:3,name:"put",fn:async(t,e,n)=>B(t,"PUT",e,{...n})};var At={type:1,name:"indicator",keyReq:3,valReq:3,onLoad:({el:t,key:e,mods:n,signals:r,value:i})=>{let s=e?V(e,n):z(i),{signal:l}=r.upsertIfMissing(s,!1),o=m=>{let{type:b,argsRaw:{elId:S}}=m.detail;if(S===t.id)switch(b){case Re:l.value=!0;break;case we:l.value=!1;break}};return document.addEventListener(se,o),()=>{document.removeEventListener(se,o)}}};var Et={type:2,name:k.ExecuteScript,onGlobalInit:async t=>{U(k.ExecuteScript,({autoRemove:e=`${Ke}`,attributes:n=Be,script:r})=>{let i=K(e);if(!r?.length)throw H("NoScriptProvided",t);let s=document.createElement("script");for(let l of n.split(` +`)){let o=l.indexOf(" "),m=o?l.slice(0,o):l,b=o?l.slice(o):"";s.setAttribute(m.trim(),b.trim())}s.text=r,document.head.appendChild(s),i&&s.remove()})}};var pe=document,Y=!!pe.startViewTransition;var _t=function(){"use strict";let t=()=>{},e={morphStyle:"outerHTML",callbacks:{beforeNodeAdded:t,afterNodeAdded:t,beforeNodeMorphed:t,afterNodeMorphed:t,beforeNodeRemoved:t,afterNodeRemoved:t,beforeAttributeUpdated:t},head:{style:"merge",shouldPreserve:v=>v.getAttribute("im-preserve")==="true",shouldReAppend:v=>v.getAttribute("im-re-append")==="true",shouldRemove:t,afterHeadMorphed:t},restoreFocus:!0};function n(v,x,y={}){v=S(v);let E=N(x),T=b(v,E,y),g=i(T,()=>o(T,v,E,a=>a.morphStyle==="innerHTML"?(s(a,v,E),Array.from(v.childNodes)):r(a,v,E)));return T.pantry.remove(),g}function r(v,x,y){let E=N(x),T=Array.from(E.childNodes),g=T.indexOf(x),a=T.length-(g+1);return s(v,E,y,x,x.nextSibling),T=Array.from(E.childNodes),T.slice(g,T.length-a)}function i(v,x){if(!v.config.restoreFocus)return x();let y=document.activeElement;if(!(y instanceof HTMLInputElement||y instanceof HTMLTextAreaElement))return x();let{id:E,selectionStart:T,selectionEnd:g}=y,a=x();return E&&E!==document.activeElement?.id&&(y=v.target.querySelector(`#${E}`),y?.focus()),y&&!y.selectionEnd&&g&&y.setSelectionRange(T,g),a}let s=function(){function v(u,d,h,p=null,f=null){d instanceof HTMLTemplateElement&&h instanceof HTMLTemplateElement&&(d=d.content,h=h.content),p||=d.firstChild;for(let A of h.childNodes){if(p&&p!=f){let R=y(u,A,p,f);if(R){R!==p&&T(u,p,R),l(R,A,u),p=R.nextSibling;continue}}if(A instanceof Element&&u.persistentIds.has(A.id)){let R=g(d,A.id,p,u);l(R,A,u),p=R.nextSibling;continue}let _=x(d,A,p,u);_&&(p=_.nextSibling)}for(;p&&p!=f;){let A=p;p=p.nextSibling,E(u,A)}}function x(u,d,h,p){if(p.callbacks.beforeNodeAdded(d)===!1)return null;if(p.idMap.has(d)){let f=document.createElement(d.tagName);return u.insertBefore(f,h),l(f,d,p),p.callbacks.afterNodeAdded(f),f}else{let f=document.importNode(d,!0);return u.insertBefore(f,h),p.callbacks.afterNodeAdded(f),f}}let y=function(){function u(p,f,A,_){let R=null,I=f.nextSibling,F=0,L=A;for(;L&&L!=_;){if(h(L,f)){if(d(p,L,f))return L;R===null&&(p.idMap.has(L)||(R=L))}if(R===null&&I&&h(L,I)&&(F++,I=I.nextSibling,F>=2&&(R=void 0)),L.contains(document.activeElement))break;L=L.nextSibling}return R||null}function d(p,f,A){let _=p.idMap.get(f),R=p.idMap.get(A);if(!R||!_)return!1;for(let I of _)if(R.has(I))return!0;return!1}function h(p,f){let A=p,_=f;return A.nodeType===_.nodeType&&A.tagName===_.tagName&&(!A.id||A.id===_.id)}return u}();function E(u,d){if(u.idMap.has(d))c(u.pantry,d,null);else{if(u.callbacks.beforeNodeRemoved(d)===!1)return;d.parentNode?.removeChild(d),u.callbacks.afterNodeRemoved(d)}}function T(u,d,h){let p=d;for(;p&&p!==h;){let f=p;p=p.nextSibling,E(u,f)}return p}function g(u,d,h,p){let f=p.target.querySelector(`#${d}`)||p.pantry.querySelector(`#${d}`);return a(f,p),c(u,f,h),f}function a(u,d){let h=u.id;for(;u=u.parentNode;){let p=d.idMap.get(u);p&&(p.delete(h),p.size||d.idMap.delete(u))}}function c(u,d,h){if(u.moveBefore)try{u.moveBefore(d,h)}catch{u.insertBefore(d,h)}else u.insertBefore(d,h)}return v}(),l=function(){function v(a,c,u){return u.ignoreActive&&a===document.activeElement?null:(u.callbacks.beforeNodeMorphed(a,c)===!1||(a instanceof HTMLHeadElement&&u.head.ignore||(a instanceof HTMLHeadElement&&u.head.style!=="morph"?m(a,c,u):(x(a,c,u),g(a,u)||s(u,a,c))),u.callbacks.afterNodeMorphed(a,c)),a)}function x(a,c,u){let d=c.nodeType;if(d===1){let h=a,p=c,f=h.attributes,A=p.attributes;for(let _ of A)T(_.name,h,"update",u)||h.getAttribute(_.name)!==_.value&&h.setAttribute(_.name,_.value);for(let _=f.length-1;0<=_;_--){let R=f[_];if(R&&!p.hasAttribute(R.name)){if(T(R.name,h,"remove",u))continue;h.removeAttribute(R.name)}}g(h,u)||y(h,p,u)}(d===8||d===3)&&a.nodeValue!==c.nodeValue&&(a.nodeValue=c.nodeValue)}function y(a,c,u){if(a instanceof HTMLInputElement&&c instanceof HTMLInputElement&&c.type!=="file"){let d=c.value,h=a.value;E(a,c,"checked",u),E(a,c,"disabled",u),c.hasAttribute("value")?h!==d&&(T("value",a,"update",u)||(a.setAttribute("value",d),a.value=d)):T("value",a,"remove",u)||(a.value="",a.removeAttribute("value"))}else if(a instanceof HTMLOptionElement&&c instanceof HTMLOptionElement)E(a,c,"selected",u);else if(a instanceof HTMLTextAreaElement&&c instanceof HTMLTextAreaElement){let d=c.value,h=a.value;if(T("value",a,"update",u))return;d!==h&&(a.value=d),a.firstChild&&a.firstChild.nodeValue!==d&&(a.firstChild.nodeValue=d)}}function E(a,c,u,d){let h=c[u],p=a[u];if(h!==p){let f=T(u,a,"update",d);f||(a[u]=c[u]),h?f||a.setAttribute(u,""):T(u,a,"remove",d)||a.removeAttribute(u)}}function T(a,c,u,d){return a==="value"&&d.ignoreActiveValue&&c===document.activeElement?!0:d.callbacks.beforeAttributeUpdated(a,c,u)===!1}function g(a,c){return!!c.ignoreActiveValue&&a===document.activeElement&&a!==document.body}return v}();function o(v,x,y,E){if(v.head.block){let T=x.querySelector("head"),g=y.querySelector("head");if(T&&g){let a=m(T,g,v);return Promise.all(a).then(()=>{let c=Object.assign(v,{head:{block:!1,ignore:!0}});return E(c)})}}return E(v)}function m(v,x,y){let E=[],T=[],g=[],a=[],c=new Map;for(let d of x.children)c.set(d.outerHTML,d);for(let d of v.children){let h=c.has(d.outerHTML),p=y.head.shouldReAppend(d),f=y.head.shouldPreserve(d);h||f?p?T.push(d):(c.delete(d.outerHTML),g.push(d)):y.head.style==="append"?p&&(T.push(d),a.push(d)):y.head.shouldRemove(d)!==!1&&T.push(d)}a.push(...c.values());let u=[];for(let d of a){let h=document.createRange().createContextualFragment(d.outerHTML).firstChild;if(y.callbacks.beforeNodeAdded(h)!==!1){if("href"in h&&h.href||"src"in h&&h.src){let p,f=new Promise(function(A){p=A});h.addEventListener("load",function(){p()}),u.push(f)}v.appendChild(h),y.callbacks.afterNodeAdded(h),E.push(h)}}for(let d of T)y.callbacks.beforeNodeRemoved(d)!==!1&&(v.removeChild(d),y.callbacks.afterNodeRemoved(d));return y.head.afterHeadMorphed(v,{added:E,kept:g,removed:T}),u}let b=function(){function v(c,u,d){let{persistentIds:h,idMap:p}=g(c,u),f=x(d),A=f.morphStyle||"outerHTML";if(!["innerHTML","outerHTML"].includes(A))throw`Do not understand how to morph style ${A}`;return{target:c,newContent:u,config:f,morphStyle:A,ignoreActive:f.ignoreActive,ignoreActiveValue:f.ignoreActiveValue,restoreFocus:f.restoreFocus,idMap:p,persistentIds:h,pantry:y(),callbacks:f.callbacks,head:f.head}}function x(c){let u=Object.assign({},e);return Object.assign(u,c),u.callbacks=Object.assign({},e.callbacks,c.callbacks),u.head=Object.assign({},e.head,c.head),u}function y(){let c=document.createElement("div");return c.hidden=!0,document.body.insertAdjacentElement("afterend",c),c}function E(c){let u=Array.from(c.querySelectorAll("[id]"));return c.id&&u.push(c),u}function T(c,u,d,h){for(let p of h)if(u.has(p.id)){let f=p;for(;f;){let A=c.get(f);if(A==null&&(A=new Set,c.set(f,A)),A.add(p.id),f===d)break;f=f.parentElement}}}function g(c,u){let d=E(c),h=E(u),p=a(d,h),f=new Map;T(f,p,c,d);let A=u.__idiomorphRoot||u;return T(f,p,A,h),{persistentIds:p,idMap:f}}function a(c,u){let d=new Set,h=new Map;for(let{id:f,tagName:A}of c)h.has(f)?d.add(f):h.set(f,A);let p=new Set;for(let{id:f,tagName:A}of u)p.has(f)?d.add(f):h.get(f)===A&&p.add(f);for(let f of d)p.delete(f);return p}return v}(),{normalizeElement:S,normalizeParent:N}=function(){let v=new WeakSet;function x(g){return g instanceof Document?g.documentElement:g}function y(g){if(g==null)return document.createElement("div");if(typeof g=="string")return y(T(g));if(v.has(g))return g;if(g instanceof Node){if(g.parentNode)return E(g);{let a=document.createElement("div");return a.append(g),a}}else{let a=document.createElement("div");for(let c of[...g])a.append(c);return a}}function E(g){return{childNodes:[g],querySelectorAll:a=>{let c=g.querySelectorAll(a);return g.matches(a)?[g,...c]:c},insertBefore:(a,c)=>g.parentNode.insertBefore(a,c),moveBefore:(a,c)=>g.parentNode.moveBefore(a,c),get __idiomorphRoot(){return g}}}function T(g){let a=new DOMParser,c=g.replace(/]*>|>)([\s\S]*?)<\/svg>/gim,"");if(c.match(/<\/html>/)||c.match(/<\/head>/)||c.match(/<\/body>/)){let u=a.parseFromString(g,"text/html");if(c.match(/<\/html>/))return v.add(u),u;{let d=u.firstChild;return d&&v.add(d),d}}else{let d=a.parseFromString("","text/html").body.querySelector("template").content;return v.add(d),d}}return{normalizeElement:x,normalizeParent:y}}();return{morph:n,defaults:e}}();var Rt={type:2,name:k.MergeFragments,onGlobalInit:async t=>{let e=document.createElement("template");U(k.MergeFragments,({fragments:n="
",selector:r="",mergeMode:i=Je,settleDuration:s=`${he}`,useViewTransition:l=`${ve}`})=>{let o=Number.parseInt(s),m=K(l);e.innerHTML=n.trim();let b=[...e.content.children];for(let S of b){if(!(S instanceof Element))throw H("NoFragmentsFound",t);let N=r||`#${S.getAttribute("id")}`,v=[...document.querySelectorAll(N)||[]];if(!v.length)throw H("NoTargetsFound",t,{selectorOrID:N});m&&Y?pe.startViewTransition(()=>xt(t,i,o,S,v)):xt(t,i,o,S,v)}})}};function xt(t,e,n,r,i){for(let s of i){s.classList.add(Q);let l=s.outerHTML,o=s;switch(e){case W.Morph:{let S=new Map,N=r.cloneNode(!0),v=_t.morph(o,N,{restoreFocus:!0,callbacks:{beforeAttributeUpdated:(x,y,E)=>{if(E==="update"&&x.startsWith("data-")){let T=S.get(y);T||(T=[],S.set(y,T));let g=x.slice(5);T.push(J(g))}return!0}}});if(v?.length){o=v[0];for(let[x,y]of S.entries())for(let E of y)t.applyAttributePlugin(x,E)}break}case W.Inner:o.innerHTML=r.outerHTML;break;case W.Outer:o.replaceWith(r);break;case W.Prepend:o.prepend(r);break;case W.Append:o.append(r);break;case W.Before:o.before(r);break;case W.After:o.after(r);break;case W.UpsertAttributes:for(let S of r.getAttributeNames()){let N=r.getAttribute(S);o.setAttribute(S,N)}break;default:throw H("InvalidMergeMode",t,{mergeMode:e})}let m=o.classList;m?.add(Q),setTimeout(()=>{s.classList.remove(Q),m?.remove(Q)},n);let b=o.outerHTML;m&&l!==b&&(m.add(He),setTimeout(()=>{m.remove(He)},n))}}var wt={type:2,name:k.MergeSignals,onGlobalInit:async t=>{U(k.MergeSignals,({signals:e="{}",onlyIfMissing:n=`${je}`})=>{let{signals:r}=t,i=K(n);r.merge(ye(e),i)})}};var Mt={type:2,name:k.RemoveFragments,onGlobalInit:async t=>{U(k.RemoveFragments,({selector:e,settleDuration:n=`${he}`,useViewTransition:r=`${ve}`})=>{if(!e.length)throw H("NoSelectorProvided",t);let i=Number.parseInt(n),s=K(r),l=document.querySelectorAll(e),o=()=>{for(let m of l)m.classList.add(Q);setTimeout(()=>{for(let m of l)m.remove()},i)};s&&Y?pe.startViewTransition(()=>o()):o()})}};var Nt={type:2,name:k.RemoveSignals,onGlobalInit:async t=>{U(k.RemoveSignals,({paths:e=""})=>{let n=e.split(` +`).map(r=>r.trim());if(!n?.length)throw H("NoPathsProvided",t);t.signals.remove(...n)})}};var Pt={type:3,name:"clipboard",fn:(t,e)=>{if(!navigator.clipboard)throw M("ClipboardNotAvailable",t);navigator.clipboard.writeText(e)}};var Ct={type:1,name:"customValidity",keyReq:2,valReq:1,onLoad:t=>{let{el:e,genRX:n,effect:r}=t;if(!(e instanceof HTMLInputElement||e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement))throw M("CustomValidityInvalidElement",t);let i=n();return r(()=>{let s=i();if(typeof s!="string")throw M("CustomValidityInvalidExpression",t,{result:s});e.setCustomValidity(s)})}};var It="once",Lt="half",Vt="full",Dt={type:1,name:"intersects",keyReq:2,mods:new Set([It,Lt,Vt]),onLoad:({el:t,rawKey:e,mods:n,genRX:r})=>{let i={threshold:0};n.has(Vt)?i.threshold=1:n.has(Lt)&&(i.threshold=.5);let s=r(),l=new IntersectionObserver(o=>{for(let m of o)m.isIntersecting&&(s(),n.has(It)&&(l.disconnect(),delete t.dataset[e]))},i);return l.observe(t),()=>l.disconnect()}};var kt="session",Ot={type:1,name:"persist",mods:new Set([kt]),onLoad:({key:t,effect:e,mods:n,signals:r,value:i})=>{t=V(t,n),t===""&&(t=D);let s=n.has(kt)?sessionStorage:localStorage,l=i.split(/\s+/).filter(b=>b!=="");l=l.map(b=>z(b));let o=()=>{let b=s.getItem(t)||"{}",S=JSON.parse(b);r.merge(S)},m=()=>{let b;l.length?b=r.subset(...l):b=r.values(),s.setItem(t,JSON.stringify(b))};return o(),e(()=>{m()})}};var Ht={type:1,name:"replaceUrl",keyReq:2,valReq:1,onLoad:({effect:t,genRX:e})=>{let n=e();return t(()=>{let r=n(),i=window.location.href,s=new URL(r,i).toString();window.history.replaceState({},"",s)})}};var Me="smooth",Fe="instant",qe="auto",Ft="hstart",qt="hcenter",Wt="hend",$t="hnearest",Gt="vstart",Ut="vcenter",Bt="vend",jt="vnearest",Mn="focus",Ne="center",Kt="start",Jt="end",zt="nearest",Yt={type:1,name:"scrollIntoView",keyReq:2,valReq:2,mods:new Set([Me,Fe,qe,Ft,qt,Wt,$t,Gt,Ut,Bt,jt,Mn]),onLoad:t=>{let{el:e,mods:n,rawKey:r}=t;e.tabIndex||e.setAttribute("tabindex","0");let i={behavior:Me,block:Ne,inline:Ne};if(n.has(Me)&&(i.behavior=Me),n.has(Fe)&&(i.behavior=Fe),n.has(qe)&&(i.behavior=qe),n.has(Ft)&&(i.inline=Kt),n.has(qt)&&(i.inline=Ne),n.has(Wt)&&(i.inline=Jt),n.has($t)&&(i.inline=zt),n.has(Gt)&&(i.block=Kt),n.has(Ut)&&(i.block=Ne),n.has(Bt)&&(i.block=Jt),n.has(jt)&&(i.block=zt),!(e instanceof HTMLElement||e instanceof SVGElement))throw M("ScrollIntoViewInvalidElement",t);return e.tabIndex||e.setAttribute("tabindex","0"),e.scrollIntoView(i),n.has("focus")&&e.focus(),delete e.dataset[r],()=>{}}};var Xt="none",Qt="display",Zt={type:1,name:"show",keyReq:2,valReq:1,onLoad:({el:{style:t},genRX:e,effect:n})=>{let r=e();return n(async()=>{r()?t.display===Xt&&t.removeProperty(Qt):t.setProperty(Qt,Xt)})}};var en="view-transition",tn={type:1,name:"viewTransition",keyReq:2,valReq:1,onGlobalInit(){let t=!1;for(let e of document.head.childNodes)e instanceof HTMLMetaElement&&e.name===en&&(t=!0);if(!t){let e=document.createElement("meta");e.name=en,e.content="same-origin",document.head.appendChild(e)}},onLoad:({effect:t,el:e,genRX:n})=>{if(!Y){console.error("Browser does not support view transitions");return}let r=n();return t(()=>{let i=r();if(!i?.length)return;let s=e.style;s.viewTransitionName=i})}};var nn={type:1,name:"attr",valReq:1,onLoad:({el:t,key:e,effect:n,genRX:r})=>{let i=r();return e===""?n(async()=>{let s=i();for(let[l,o]of Object.entries(s))t.setAttribute(l,o)}):(e=le(e),n(async()=>{let s=!1;try{s=i()}catch{}let l;typeof s=="string"?l=s:l=JSON.stringify(s),!l||l==="false"||l==="null"||l==="undefined"?t.removeAttribute(e):t.setAttribute(e,l)}))}};var Nn=/^data:(?[^;]+);base64,(?.*)$/,rn=["change","input","keydown"],sn={type:1,name:"bind",keyReq:3,valReq:3,onLoad:t=>{let{el:e,key:n,mods:r,signals:i,value:s,effect:l}=t,o=n?V(n,r):z(s),m=e.tagName.toLowerCase(),b="",S=m.includes("input"),N=e.getAttribute("type"),v=m.includes("checkbox")||S&&N==="checkbox";v&&(b=!1),S&&N==="number"&&(b=0);let y=m.includes("select"),E=m.includes("radio")||S&&N==="radio",T=S&&N==="file";E&&(e.getAttribute("name")?.length||e.setAttribute("name",o));let g=()=>{let h="value"in e,p=i.value(o),f=`${p}`;if(v||E){let A=e;Array.isArray(p)?A.checked=p.includes(A.value):typeof p=="boolean"?A.checked=!!p:A.checked=f===A.value}else if(y){let A=e;if(A.multiple)for(let _ of A.options){if(_?.disabled)return;Array.isArray(p)||typeof p=="string"?_.selected=p.includes(_.value):typeof p=="number"?_.selected=p===Number(_.value):_.selected=p}else A.value=f}else T||(h?e.value=f:e.setAttribute("value",f))},a=async()=>{if(T){let A=[...e?.files||[]],_=[],R=[],I=[];await Promise.all(A.map(F=>new Promise(L=>{let q=new FileReader;q.onload=()=>{if(typeof q.result!="string")throw M("InvalidFileResultType",t,{resultType:typeof q.result});let j=q.result.match(Nn);if(!j?.groups)throw M("InvalidDataUri",t,{result:q.result});_.push(j.groups.contents),R.push(j.groups.mime),I.push(F.name)},q.onloadend=()=>L(void 0),q.readAsDataURL(F)}))),i.setValue(o,_),i.setValue(`${o}Mimes`,R),i.setValue(`${o}Names`,I);return}let h=i.value(o),p=e||e,f=p.value||p.getAttribute("value")||"";if(v){let A=p.checked||p.getAttribute("checked")==="true";if(Array.isArray(h)){let _=new Set(h);A?_.add(p.value):_.delete(p.value),i.setValue(o,[..._])}else if(p.getAttribute("value")){let R=A?f:!1;i.setValue(o,R)}else i.setValue(o,A);return}if(typeof h=="number")i.setValue(o,Number(f));else if(typeof h=="string")i.setValue(o,f||"");else if(typeof h=="boolean")i.setValue(o,!!f);else if(Array.isArray(h))if(y){let R=[...e.selectedOptions].filter(I=>I.selected).map(I=>I.value);i.setValue(o,R)}else i.setValue(o,JSON.stringify(f.split(",")));else if(!(typeof h>"u"))throw M("BindUnsupportedSignalType",t,{signalType:typeof h})},{inserted:c}=i.upsertIfMissing(o,b);c&&a();for(let h of rn)e.addEventListener(h,a);let u=l(()=>g()),d=h=>{h.persisted&&a()};return window.addEventListener("pageshow",d),()=>{u();for(let h of rn)e.removeEventListener(h,a);window.removeEventListener("pageshow",d)}}};var on={type:1,name:"class",valReq:1,onLoad:({el:t,key:e,mods:n,effect:r,genRX:i})=>{let s=t.classList,l=i();return r(()=>{if(e===""){let o=l();for(let[m,b]of Object.entries(o)){let S=m.split(/\s+/);b?s.add(...S):s.remove(...S)}}else e=V(e,n),l()?s.add(e):s.remove(e)})}};function me(t){if(!t||t.size<=0)return 0;for(let e of t){if(e.endsWith("ms"))return Number(e.replace("ms",""));if(e.endsWith("s"))return Number(e.replace("s",""))*1e3;try{return Number.parseFloat(e)}catch{}}return 0}function oe(t,e,n=!1){return t?t.has(e.toLowerCase()):n}function an(t,e,n=!1,r=!0){let i=-1,s=()=>i&&clearTimeout(i);return(...l)=>{s(),n&&!i&&t(...l),i=setTimeout(()=>{r&&t(...l),s()},e)}}function ln(t,e,n=!0,r=!1){let i=!1;return(...s)=>{i||(n&&t(...s),i=!0,setTimeout(()=>{i=!1,r&&t(...s)},e))}}var Pn="evt",We="signalsChange",Cn=We.length,un={type:1,name:"on",keyReq:1,valReq:1,argNames:[Pn],onLoad:({el:t,key:e,mods:n,rawKey:r,signals:i,value:s,effect:l,genRX:o})=>{let m=o(),b=t;n.has("window")&&(b=window);let S=g=>{g&&((n.has("prevent")||e==="submit")&&g.preventDefault(),n.has("stop")&&g.stopPropagation()),m(g)},N=n.get("delay");if(N){let g=me(N);setTimeout(()=>{S()},g)}let v=n.get("debounce");if(v){let g=me(v),a=oe(v,"leading",!1),c=!oe(v,"notrail",!1);S=an(S,g,a,c)}let x=n.get("throttle");if(x){let g=me(x),a=!oe(x,"noleading",!1),c=oe(x,"trail",!1);S=ln(S,g,a,c)}if(n.has("viewtransition")&&Y){let g=S;S=(...a)=>document.startViewTransition(()=>g(...a))}let y={capture:!0,passive:!1,once:!1};if(n.has("capture")||(y.capture=!1),n.has("passive")&&(y.passive=!0),n.has("once")&&(y.once=!0),e==="load")return setTimeout(()=>S(),0),()=>{};if(e==="interval"){let g=1e3,a=n.get("duration");a&&(g=me(a),oe(a,"leading",!1)&&(t.dataset[r.replace(".leading","")]=s,delete t.dataset[r],S()));let c=setInterval(S,g);return()=>{clearInterval(c)}}if(e==="raf"){let g,a=()=>{S(),g=requestAnimationFrame(a)};return g=requestAnimationFrame(a),()=>{g&&cancelAnimationFrame(g)}}if(e.startsWith(We)){if(e===We){S();let c=u=>S(u);return document.addEventListener(ae,c),()=>{document.removeEventListener(ae,c)}}let g=V(J(e.slice(Cn)),n),a=new Map;return i.walk((c,u)=>{c.startsWith(g)&&a.set(u,u.value)}),l(()=>{for(let[c,u]of a)u!==c.value&&(S(),a.set(c,c.value))})}if(n.has("outside")){b=document;let g=S;S=c=>{let u=c?.target;t.contains(u)||g(c)}}let T=V(e,n);return b.addEventListener(T,S,y),()=>{b.removeEventListener(T,S)}}};var cn={type:1,name:"ref",keyReq:3,valReq:3,onLoad:({el:t,key:e,mods:n,signals:r,value:i})=>{let s=e?V(e,n):z(i);r.setValue(s,t)}};var fn={type:1,name:"text",keyReq:2,valReq:1,onLoad:t=>{let{el:e,effect:n,genRX:r}=t,i=r();return e instanceof HTMLElement||M("TextInvalidElement",t),n(()=>{let s=i(t);e.textContent=`${s}`})}};var{round:In,max:Ln,min:Vn}=Math,dn={type:3,name:"fit",fn:(t,e,n,r,i,s,l=!1,o=!1)=>{let m=(e-n)/(r-n)*(s-i)+i;return o&&(m=In(m)),l&&(m=Ln(i,Vn(s,m))),m}};var pn={type:3,name:"setAll",fn:({signals:t},e,n)=>{t.walk((r,i)=>{r.startsWith(e)&&(i.value=n)})}};var mn={type:3,name:"toggleAll",fn:({signals:t},e)=>{t.walk((n,r)=>{n.startsWith(e)&&(r.value=!r.value)})}};xe.load(nn,sn,on,un,cn,Zt,fn,At,yt,St,Tt,bt,vt,Rt,wt,Mt,Nt,Et,Pt,Ct,Dt,Ot,Ht,Yt,tn,dn,pn,mn);xe.aliasPrefix="ds";var Zs=xe;export{Zs as Datastar}; //# sourceMappingURL=datastar-aliased.js.map diff --git a/bundles/datastar-aliased.js.map b/bundles/datastar-aliased.js.map index fd5c650be..d2876d9a5 100644 --- a/bundles/datastar-aliased.js.map +++ b/bundles/datastar-aliased.js.map @@ -1,7 +1,7 @@ { "version": 3, - "sources": ["../library/src/engine/consts.ts", "../library/src/engine/types.ts", "../library/src/utils/text.ts", "../library/src/plugins/official/core/attributes/computed.ts", "../library/src/plugins/official/core/attributes/signals.ts", "../library/src/plugins/official/core/attributes/star.ts", "../library/src/utils/dom.ts", "../library/src/utils/timing.ts", "../library/src/engine/errors.ts", "../library/src/vendored/preact-core.ts", "../library/src/engine/signals.ts", "../library/src/engine/engine.ts", "../library/src/engine/index.ts", "../library/src/vendored/fetch-event-source.ts", "../library/src/plugins/official/backend/shared.ts", "../library/src/plugins/official/backend/actions/sse.ts", "../library/src/plugins/official/backend/actions/delete.ts", "../library/src/plugins/official/backend/actions/get.ts", "../library/src/plugins/official/backend/actions/patch.ts", "../library/src/plugins/official/backend/actions/post.ts", "../library/src/plugins/official/backend/actions/put.ts", "../library/src/plugins/official/backend/attributes/indicator.ts", "../library/src/plugins/official/backend/watchers/executeScript.ts", "../library/src/utils/view-transtions.ts", "../library/src/vendored/idiomorph.esm.js", "../library/src/plugins/official/backend/watchers/mergeFragments.ts", "../library/src/plugins/official/backend/watchers/mergeSignals.ts", "../library/src/plugins/official/backend/watchers/removeFragments.ts", "../library/src/plugins/official/backend/watchers/removeSignals.ts", "../library/src/plugins/official/browser/actions/clipboard.ts", "../library/src/plugins/official/browser/attributes/customValidity.ts", "../library/src/plugins/official/browser/attributes/intersects.ts", "../library/src/plugins/official/browser/attributes/persist.ts", "../library/src/plugins/official/browser/attributes/replaceUrl.ts", "../library/src/plugins/official/browser/attributes/scrollIntoView.ts", "../library/src/plugins/official/browser/attributes/show.ts", "../library/src/plugins/official/browser/attributes/viewTransition.ts", "../library/src/plugins/official/dom/attributes/attr.ts", "../library/src/plugins/official/dom/attributes/bind.ts", "../library/src/plugins/official/dom/attributes/class.ts", "../library/src/utils/tags.ts", "../library/src/plugins/official/dom/attributes/on.ts", "../library/src/plugins/official/dom/attributes/ref.ts", "../library/src/plugins/official/dom/attributes/text.ts", "../library/src/plugins/official/logic/actions/fit.ts", "../library/src/plugins/official/logic/actions/setAll.ts", "../library/src/plugins/official/logic/actions/toggleAll.ts", "../library/src/bundles/datastar-aliased.ts"], - "sourcesContent": ["// This is auto-generated by Datastar. DO NOT EDIT.\nconst lol = /\uD83D\uDD95JS_DS\uD83D\uDE80/.source\nexport const DSP = lol.slice(0, 5)\nexport const DSS = lol.slice(4)\n\nexport const DATASTAR = \"datastar\";\nexport const DATASTAR_EVENT = \"datastar-event\";\nexport const DATASTAR_REQUEST = \"Datastar-Request\";\n\n// #region Defaults\n\n// #region Default durations\n\n// The default duration for settling during fragment merges. Allows for CSS transitions to complete.\nexport const DefaultFragmentsSettleDurationMs = 300;\n// The default duration for retrying SSE on connection reset. This is part of the underlying retry mechanism of SSE.\nexport const DefaultSseRetryDurationMs = 1000;\n\n// #endregion\n\n\n// #region Default strings\n\n// The default attributes for