Bring up the stage 1 skeleton described in the PRD, enough that the app builds, serves, and can be populated with dishes. - net/http server with shared-password Basic auth, /healthz outside it, graceful shutdown, and TZ-aware calendar days - SQLite via modernc (pure Go, static binary), opened with WAL and a single connection - migration runner: numbered SQL files embedded and applied once each inside a transaction, recorded in schema_migrations - bundle import (PRD §7.3) as a live feature on the Ruoat tab: paste JSON or upload a file, get a per-row Finnish report. The same importer is reachable as `foodster -import` for repopulating a scratch database - templ views and hand-written CSS with light-dark() theming; the Datastar v1.0.3 client is vendored, since the Go SDK ships no browser asset and a CDN would break an offline LAN Names are normalized to sentence case rather than title case: Finnish capitalizes only the first word of a phrase, so "Keitetyt perunat" is right and "Keitetyt Perunat" is not. PRD §6 and §7.3 are amended to match. Testing is behind make targets rather than ad-hoc commands: `make check` runs lint, unit tests and scripts/smoke.sh, which exercises auth, static assets and every import path against a scratch database on a spare port.
11 lines
33 KiB
JavaScript
11 lines
33 KiB
JavaScript
// Datastar v1.0.3
|
|
var W="datastar-fetch",be="datastar-prop-change",At="datastar-ready",et="datastar-scope-children",re="datastar-signal-patch",p=document,J=HTMLInputElement,R=MutationObserver;var wt="data-nonce",Mt=p.documentElement,tt=Mt.getAttribute(wt),nt=tt!==null,ve;if(nt){if(!tt)throw new Error("Datastar CSP requires a nonempty html data-nonce.");Mt.removeAttribute(wt),ve=window.trustedTypes?.createPolicy("datastar",{createHTML:e=>e,createScript:e=>e})}var Ee=(e,t)=>{nt&&(e.nonce=tt),e.text=ve?ve.createScript(t):t},rt=e=>ve?ve.createHTML(e):e,Rt=new Map,_e=(e,t)=>{if(!nt)return Function(...e,t);let n=`function(${e.join(",")}){${t}
|
|
}`,r=Rt.get(n);if(r)return r;let s=p.createElement("script");Ee(s,`document.currentScript.x=${n}`),p.head.appendChild(s),s.remove();let i=s.x;if(!i)throw new Error("CSP blocked Datastar expression compilation.");return Rt.set(n,i),i};var N=Object.hasOwn??Object.prototype.hasOwnProperty.call;var Y=e=>e!==null&&typeof e=="object"&&(Object.getPrototypeOf(e)===Object.prototype||Object.getPrototypeOf(e)===null),xt=e=>{for(let t in e)if(N(e,t))return!1;return!0},se=(e,t)=>{for(let n in e){let r=e[n];Y(r)||Array.isArray(r)?se(r,t):e[n]=t(r)}},He=e=>{let t={};for(let[n,r]of e){let s=n.split("."),i=s.pop(),o=s.reduce((a,c)=>a[c]??={},t);o[i]=r}return t};var ke=[],st=[],Ge=0,De=0,it=0,Se,K,Ie=0,O=()=>{Ge++},P=()=>{--Ge||(Nt(),X())},F=e=>{Se={t:K,u:Se},K=e},_=()=>{K=Se?.t,Se=Se?.u},Te=e=>yn.bind(0,{g:e,t:e,e:1}),ot=Symbol("computed"),je=e=>{let t=bn.bind(0,{e:17,h:e});return t[ot]=1,t},T=e=>{let t={T:e,e:2};K&&ct(t,K),F(t),O();try{t.T()}finally{P(),_()}return _t.bind(0,t)},Nt=()=>{for(;De<it;){let e=st[De];st[De++]=void 0,Ft(e,e.e&=-65)}De=0,it=0},Lt=e=>"h"in e?Ot(e):Pt(e,e.t),Ot=e=>{F(e),Ht(e);try{let t=e.t;return t!==(e.t=e.h(t))}finally{_(),kt(e)}},Pt=(e,t)=>(e.e=1,e.g!==(e.g=t)),at=e=>{let t=e.e;if(!(t&64)){e.e=t|64;let n=e.r;n?at(n.c):st[it++]=e}},Ft=(e,t)=>{if(t&16||t&32&&Dt(e.s,e)){F(e),Ht(e),O();try{e.T()}finally{P(),_(),kt(e)}return}t&32&&(e.e=t&-33);let n=e.s;for(;n;){let r=n.p,s=r.e;s&64&&Ft(r,r.e=s&-65),n=n.i}},yn=(e,...t)=>{if(t.length){if(e.t!==(e.t=t[0])){e.e=17;let r=e.r;return r&&(vn(r),Ge||Nt()),!0}return!1}let n=e.t;if(e.e&16&&Pt(e,n)){let r=e.r;r&&qe(r)}return K&&ct(e,K),n},bn=e=>{let t=e.e;if(t&16||t&32&&Dt(e.s,e)){if(Ot(e)){let n=e.r;n&&qe(n)}}else t&32&&(e.e=t&-33);return K&&ct(e,K),e.t},_t=e=>{let t=e.s;for(;t;)t=$e(t,e);let n=e.r;n&&$e(n),e.e=0},ct=(e,t)=>{let n=t.l;if(n&&n.p===e)return;let r=n?n.i:t.s;if(r&&r.p===e){r.S=Ie,t.l=r;return}let s=e.A;if(s&&s.S===Ie&&s.c===t)return;let i=t.l=e.A={S:Ie,p:e,c:t,d:n,i:r,y:s};r&&(r.d=i),n?n.i=i:t.s=i,s?s.n=i:e.r=i},$e=(e,t=e.c)=>{let n=e.p,r=e.d,s=e.i,i=e.n,o=e.y;if(s?s.d=r:t.l=r,r?r.i=s:t.s=s,i?i.y=o:n.A=o,o)o.n=i;else if(!(n.r=i))if("h"in n){let a=n.s;if(a){n.e=17;do a=$e(a,n);while(a)}}else"g"in n||_t(n);return s},vn=e=>{let t=e.n,n;e:for(;;){let r=e.c,s=r.e;if(s&60?s&12?s&4?!(s&48)&&En(e,r)?(r.e=s|40,s&=1):s=0:r.e=s&-9|32:s=0:r.e=s|32,s&2&&at(r),s&1){let i=r.r;if(i){let o=(e=i).n;o&&(n={t,u:n},t=o);continue}}if(e=t){t=e.n;continue}for(;n;)if(e=n.t,n=n.u,e){t=e.n;continue e}break}},Ht=e=>{Ie++,e.l=void 0,e.e=e.e&-57|4},kt=e=>{let t=e.l,n=t?t.i:e.s;for(;n;)n=$e(n,e);e.e&=-5},Dt=(e,t)=>{let n,r=0,s=!1;e:for(;;){let i=e.p,o=i.e;if(t.e&16)s=!0;else if((o&17)===17){if(Lt(i)){let a=i.r;a.n&&qe(a),s=!0}}else if((o&33)===33){(e.n||e.y)&&(n={t:e,u:n}),e=i.s,t=i,++r;continue}if(!s){let a=e.i;if(a){e=a;continue}}for(;r--;){let a=t.r,c=a.n;if(c?(e=n.t,n=n.u):e=a,s){if(Lt(t)){c&&qe(a),t=e.c;continue}s=!1}else t.e&=-33;if(t=e.c,e.i){e=e.i;continue e}}return s}},qe=e=>{do{let t=e.c,n=t.e;(n&48)===32&&(t.e=n|16,n&2&&at(t))}while(e=e.n)},En=(e,t)=>{let n=t.l;for(;n;){if(n===e)return!0;n=n.d}return!1},oe=e=>{let t=ie,n=e.split(".");for(let r of n){if(t==null||!N(t,r))return;t=t[r]}return t},Ve=(e,t="")=>{let n=Array.isArray(e);if(n||Y(e)){let r=n?[]:{};for(let i in e)r[i]=Te(Ve(e[i],`${t+i}.`));let s=Te(0);return new Proxy(r,{get(i,o){if(!(o==="toJSON"&&!N(r,o)))return n&&o in Array.prototype?(s(),r[o]):typeof o=="symbol"?r[o]:((!N(r,o)||r[o]()==null)&&(r[o]=Te(""),X(t+o,""),s(s()+1)),r[o]())},set(i,o,a){let c=t+o;if(n&&o==="length"){let l=r[o]-a;if(r[o]=a,l>0){let f={};for(let u=a;u<r[o];u++)f[u]=null;X(t.slice(0,-1),f),s(s()+1)}}else if(N(r,o))if(a==null)delete r[o];else if(N(a,ot))r[o]=a,X(c,"");else{let l=r[o](),f=`${c}.`;if(Y(l)&&Y(a)){for(let u in l)N(a,u)||(delete l[u],X(f+u,null));for(let u in a){let g=a[u];l[u]!==g&&(l[u]=g)}}else r[o](Ve(a,f))&&X(c,a)}else a!=null&&(N(a,ot)?(r[o]=a,X(c,"")):(r[o]=Te(Ve(a,`${c}.`)),X(c,a)),s(s()+1));return!0},deleteProperty(i,o){return delete r[o],s(s()+1),!0},ownKeys(){return s(),Reflect.ownKeys(r)},has(i,o){return s(),o in r}})}return e},X=(e,t)=>{if(e!==void 0&&t!==void 0&&ke.push([e,t]),!Ge&&ke.length){let n=He(ke);ke.length=0,p.dispatchEvent(new CustomEvent(re,{detail:n}))}},I=(e,{ifMissing:t}={})=>{O();for(let n in e)e[n]==null?t||delete ie[n]:It(e[n],n,ie,"",t);P()},S=(e,t)=>I(He(e),t),It=(e,t,n,r,s)=>{if(Y(e)){N(n,t)&&(Y(n[t])||Array.isArray(n[t]))||(n[t]={});for(let i in e)e[i]==null?s||delete n[t][i]:It(e[i],i,n[t],`${r+t}.`,s)}else s&&N(n,t)||(n[t]=e)},Ct=e=>typeof e=="string"?RegExp(e.replace(/^\/|\/$/g,"")):e,G=({include:e=/.*/,exclude:t=/(?!)/}={},n=ie)=>{let r=Ct(e),s=Ct(t),i=[],o=[[n,""]];for(;o.length;){let[a,c]=o.pop();for(let l in a){let f=c+l;Y(a[l])?o.push([a[l],`${f}.`]):r.test(f)&&!s.test(f)&&i.push([f,oe(f)])}}return He(i)},ie=Ve({});var ee=e=>e instanceof HTMLElement||e instanceof SVGElement||e instanceof MathMLElement;var ue=e=>e.replace(/([A-Z]+)([A-Z][a-z])/g,"$1-$2").replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/([a-z])([0-9]+)/gi,"$1-$2").replace(/([0-9]+)([a-z])/gi,"$1-$2").replace(/[\s_]+/g,"-").toLowerCase(),$t=e=>ue(e).replace(/-./g,t=>t[1].toUpperCase()),qt=e=>ue(e).replace(/-/g,"_");var Be=e=>typeof e=="string"&&e.trim()==="true",Tn=/^(?:(?:async\s+)?function\b|(?:async\s*)?(?:\([^)]*\)|[A-Za-z_$][\w$]*)\s*=>)/,Vt=e=>_e([],`return (${e})`)(),pe=(e,t={})=>{let{reviveFunctionStrings:n=!1}=t;try{return n?JSON.parse(e,(r,s)=>{if(typeof s!="string")return s;let i=s.trim();if(!Tn.test(i))return s;try{let o=Vt(i);return typeof o=="function"?o:s}catch{return s}}):JSON.parse(e)}catch{return Vt(e)}},Gt={camel:e=>e.replace(/-[a-z]/g,t=>t[1].toUpperCase()),snake:e=>e.replace(/-/g,"_"),pascal:e=>e[0].toUpperCase()+Gt.camel(e.slice(1))},H=(e,t,n="camel")=>{for(let r of t.get("case")||[n])e=Gt[r]?.(e)||e;return e},z=e=>`data-${e}`,lt=e=>e;var Sn="https://data-star.dev/errors",Ae=(e,t,n={})=>{Object.assign(n,e);let r=new Error,s=qt(t),i=new URLSearchParams({metadata:JSON.stringify(n)}).toString(),o=JSON.stringify(n,null,2);return r.message=`${t}
|
|
More info: ${Sn}/${s}?${i}
|
|
Context: ${o}`,r},Re=new Map,ft=new Map,Wt=new Map,Jt=new Proxy({},{get:(e,t)=>Re.get(t)?.apply,has:(e,t)=>Re.has(t),ownKeys:()=>Reflect.ownKeys(Re),set:()=>!1,deleteProperty:()=>!1}),Me=new Map,Ue=[],ut=new Set,we=new Set,jt=!1,m=e=>{Ue.push(e),Ue.length===1&&setTimeout(()=>{for(let n of Ue)ut.add(n.name),ft.set(n.name,n);Ue.length=0;let t=we.size?[...we]:[p.documentElement];for(let n of t)Cn(n,!we.has(n));ut.clear()})},V=e=>{Re.set(e.name,e)};p.addEventListener(W,(e=>{let t=Wt.get(e.detail.type);t&&t.apply({error:Ae.bind(0,{plugin:{type:"watcher",name:t.name},element:{id:e.target.id,tag:e.target.tagName}})},e.detail.argsRaw)}));var xe=e=>{Wt.set(e.name,e)},Bt=e=>{for(let t of e){let n=Me.get(t);if(n&&Me.delete(t))for(let r of n.values())for(let s of r.values())s()}},Kt=z("ignore"),An=`[${Kt}]`,zt=e=>e.hasAttribute(`${Kt}__self`)||!!e.closest(An),We=(e,t)=>{for(let n of e)if(!zt(n)){let r=new Set;for(let s in n.dataset){let i=s.replace(/[A-Z]/g,"-$&").toLowerCase();r.add(i),pt(n,i,n.dataset[s],t)}for(let s of Array.from(n.attributes)){if(!s.name.startsWith("data-"))continue;let i=s.name.slice(5);r.has(i)||pt(n,i,s.value,t)}}},Rn=e=>{for(let{target:t,type:n,attributeName:r,addedNodes:s,removedNodes:i}of e)if(n==="childList"){for(let o of i)ee(o)&&(Bt([o]),Bt(o.querySelectorAll("*")));for(let o of s)ee(o)&&(We([o]),We(o.querySelectorAll("*")))}else if(n==="attributes"&&r.startsWith("data-")&&ee(t)&&!zt(t)){let o=r.slice(5),a=lt(o);if(!a)continue;let c=t.getAttribute(r);if(c===null){let l=Me.get(t);if(l){let f=l.get(a);if(f){for(let u of f.values())u();l.delete(a)}}}else pt(t,o,c)}},wn=new R(Rn),Mn=e=>{let[t,...n]=e.split("__"),[r,s]=t.split(/:(.+)/),i=new Map;for(let o of n){let[a,...c]=o.split(".");i.set(a,new Set(c))}return{pluginName:r,key:s,mods:i}},xn=()=>we.has(p.documentElement),Ln=()=>{jt||!xn()||(jt=!0,p.dispatchEvent(new Event(At)))},Cn=(e=p.documentElement,t=!0)=>{ee(e)&&We([e],!0),We(e.querySelectorAll("*"),!0),t&&(wn.observe(e,{subtree:!0,childList:!0,attributes:!0}),we.add(e),Ln())};var pt=(e,t,n,r)=>{let s=lt(t);if(!s)return;let{pluginName:i,key:o,mods:a}=Mn(s),c=ft.get(i);if((!r||ut.has(i))&&!!c){let f={el:e,rawKey:s,mods:a,error:Ae.bind(0,{plugin:{type:"attribute",name:c.name},element:{id:e.id,tag:e.tagName},expression:{rawKey:s,key:o,value:n}}),key:o,value:n,loadedPluginNames:{actions:new Set(Re.keys()),attributes:new Set(ft.keys())},rx:void 0},u=c.requirement&&(typeof c.requirement=="string"?c.requirement:c.requirement.key)||"allowed",g=c.requirement&&(typeof c.requirement=="string"?c.requirement:c.requirement.value)||"allowed",w=o!=null&&o!=="",y=n!=null&&n!=="";if(w){if(u==="denied")throw f.error("KeyNotAllowed")}else if(u==="must")throw f.error("KeyRequired");if(y){if(g==="denied")throw f.error("ValueNotAllowed")}else if(g==="must")throw f.error("ValueRequired");if(u==="exclusive"||g==="exclusive"){if(w&&y)throw f.error("KeyAndValueProvided");if(!w&&!y)throw f.error("KeyOrValueRequired")}let A=new Map;if(y){let M;f.rx=(...k)=>(M||(M=Nn(n,{R:c.returnsValue,w:c.argNames,M:A})),M(e,...k))}let d=c.apply(f);d&&A.set("attribute",d);let h=Me.get(e);if(h){let M=h.get(s);if(M)for(let k of M.values())k()}else h=new Map,Me.set(e,h);h.set(s,A)}},Ut=e=>e.split(".").reduce((t,n)=>`${t}['${n}']`,"$"),Nn=(e,{R:t=!1,w:n=[],M:r=new Map}={})=>{let s="";if(t){let i=/(?:\/(?:\\\/|[^/])*\/|"(?:\\"|[^"])*"|'(?:\\'|[^'])*'|`(?:\\`|[^`])*`|\(\s*(?:(?:function)\s*\(\s*\)|(?:\(\s*\))\s*=>)\s*(?:\{[\s\S]*?\}|[^;){]*)\s*\)\s*\(\s*\)|[^;])+/gm,o=e.trim().match(i);if(o){let a=o.length-1,c=o[a].trim();c.startsWith("return")||(o[a]=`return (${c});`),s=o.join(`;
|
|
`)}}else s=e.trim();s=s.replace(/(?:"[^"\\]*(?:\\.[^"\\]*)*"|'[^'\\]*(?:\\.[^'\\]*)*'|`[^`\\$]*(?:(?:\\.|\$(?!\{))[^`\\$]*)*`)|\$\{([^{}]*)\}|\$(\w+(?:[.-]\w+)*)/g,(i,o,a)=>o===void 0&&a===void 0?i:o!==void 0?`\${${o.replace(/\$(\w+(?:[.-]\w+)*)/g,(c,l)=>Ut(l))}}`:Ut(a)),s=s.replaceAll(/@([A-Za-z_$][\w$]*)\(/g,'__action("$1",evt,');try{let i=_e(["el","$","__action","evt",...n],s);return(o,...a)=>{let c=(l,f,...u)=>{let g=Ae.bind(0,{plugin:{type:"action",name:l},element:{id:o.id,tag:o.tagName},expression:{fnContent:s,value:e}}),w=Jt[l];if(w)return w({el:o,evt:f,error:g,cleanups:r},...u);throw g("UndefinedAction")};try{return i(o,ie,c,void 0,...a)}catch(l){throw console.error(l),Ae({element:{id:o.id,tag:o.tagName},expression:{fnContent:s,value:e},error:l.message},"ExecuteExpression")}}}catch(i){throw console.error(i),Ae({expression:{fnContent:s,value:e},error:i.message},"GenerateExpression")}};V({name:"peek",apply(e,t){F();try{return t()}finally{_()}}});V({name:"setAll",apply(e,t,n){F();let r=G(n);se(r,()=>t),I(r),_()}});V({name:"toggleAll",apply(e,t){F();let n=G(t);se(n,r=>!r),I(n),_()}});var Qt=new Map,dt=e=>!["GET","DELETE"].includes(e),Le=(e,t,n=!0)=>V({name:e,apply:async({el:r,evt:s,error:i,cleanups:o},a,{selector:c,headers:l,contentType:f="json",filterSignals:{include:u=/.*/,exclude:g=/(^|\.)_/}={},openWhenHidden:w=n,payload:y,requestCancellation:A="auto",retry:d="auto",retryInterval:h=1e3,retryScaler:M=2,retryMaxWait:k=3e4,retryMaxCount:le=10}={})=>{let L=A instanceof AbortController?A:new AbortController,q=`@${e}`;if(A==="auto"||A==="cleanup"){let B=Qt.get(t)??new Map;B.get(a)?.abort(),B.set(a,L),Qt.set(t,B)}A==="cleanup"&&(o.get(q)?.(),o.set(q,async()=>{L.abort(),await Promise.resolve()}));let j=()=>{};try{if(!a?.length)throw i("FetchNoUrlProvided",{action:V});let B={Accept:"text/event-stream, text/html, application/json","Datastar-Request":!0};f==="json"&&dt(t)&&(B["Content-Type"]="application/json"),Object.assign(B,l);let Q={b:"",method:t,headers:B,L:w,v:d,C:h,N:M,O:k,P:le,signal:L.signal,F:async v=>{v.status>=400&&ae(On,r,{status:v.status.toString()})},_:v=>{if(!v.E.startsWith("datastar"))return;let Z=v.E,b={};for(let x of v.m.split(`
|
|
`)){let C=x.indexOf(" "),fe=x.slice(0,C),D=x.slice(C+1);(b[fe]||=[]).push(D)}let E=Object.fromEntries(Object.entries(b).map(([x,C])=>[x,C.join(`
|
|
`)]));ae(Z,r,E)},onerror:v=>{if(Zt(v))throw i("FetchExpectedTextEventStream",{url:a})}},Oe=()=>{let v=new URL(a,p.baseURI),Z=new URLSearchParams(v.search);if(f==="json"){F();let b=y!==void 0?y:G({include:u,exclude:g});_();let E=JSON.stringify(b);dt(t)?Q.body=E:Z.set("datastar",E)}else if(f==="form"){let b=c?p.querySelector(c):r.closest("form");if(!b)throw i("FetchFormNotFound",{action:V,selector:c});if(!b.noValidate&&!b.checkValidity()){b.reportValidity();return}let E=new FormData(b),x=r;if(r===b&&s instanceof SubmitEvent)x=s.submitter;else{let D=he=>he.preventDefault();b.addEventListener("submit",D),j=()=>{b.removeEventListener("submit",D)}}if(x instanceof HTMLButtonElement||x instanceof J&&x.type==="submit"){let D=x.getAttribute("name");D&&E.append(D,x.value)}let C=b.getAttribute("enctype")==="multipart/form-data";C||(B["Content-Type"]="application/x-www-form-urlencoded");let fe=new URLSearchParams(E);if(dt(t))Q.body=C?E:fe;else for(let[D,he]of fe)Z.append(D,he)}else throw i("FetchInvalidContentType",{action:V,contentType:f});return v.search=Z.toString(),Q.b=v.toString(),Q};ae(mt,r,{});try{await Dn(r,Oe)}catch(v){if(!Zt(v))throw i("FetchFailed",{method:t,url:a,error:v.message})}}finally{ae(gt,r,{}),j(),o.delete(q)}}});Le("get","GET",!1);Le("patch","PATCH");Le("post","POST");Le("put","PUT");Le("delete","DELETE");var mt="started",gt="finished",On="error",Pn="retrying",Fn="retries-failed",ae=(e,t,n)=>p.dispatchEvent(new CustomEvent(W,{detail:{type:e,el:t,argsRaw:n}})),Zt=e=>`${e}`.includes("text/event-stream"),_n=async(e,t)=>{let n=e.getReader(),r=await n.read();for(;!r.done;)t(r.value),r=await n.read()},Hn=e=>{let t,n,r,s=!1;return i=>{if(!t)t=i,n=0,r=-1;else{let c=new Uint8Array(t.length+i.length);c.set(t),c.set(i,t.length),t=c}let o=t.length,a=0;for(;n<o;){s&&(t[n]===10&&(a=++n),s=!1);let c=-1;for(;n<o&&c===-1;++n)switch(t[n]){case 58:r===-1&&(r=n-a);break;case 13:s=!0;case 10:c=n;break}if(c===-1)break;e(t.subarray(a,c),r),a=n,r=-1}a===o?t=void 0:a&&(t=t.subarray(a),n-=a)}},kn=(e,t,n)=>{let r=Yt(),s=new TextDecoder;return(i,o)=>{if(!i.length)n?.(r),r=Yt();else if(o>0){let a=s.decode(i.subarray(0,o)),c=o+(i[o+1]===32?2:1),l=s.decode(i.subarray(c));switch(a){case"data":r.m=r.m?`${r.m}
|
|
${l}`:l;break;case"event":r.E=l;break;case"id":e(r.H=l);break;case"retry":{let f=+l;Number.isNaN(f)||t(r.v=f);break}}}}},Yt=()=>({m:"",E:"",H:"",v:void 0}),Dn=(e,t)=>new Promise((n,r)=>{let s=t();if(!s)return;let{b:i,signal:o,headers:a,F:c,_:l,L:f,v:u,C:g,N:w,O:y,P:A,$:d,...h}=s,M={...a},k,le=()=>{let b=t();b&&(i=b.b,h.body=b.body,Z())},L=()=>{k.abort(),p.hidden||le()};f||p.addEventListener("visibilitychange",L);let q,j=()=>{p.removeEventListener("visibilitychange",L),clearTimeout(q),k.abort()};o.addEventListener("abort",()=>{j(),n()});let B=c,Q=0,Oe=g,v=()=>{Q<A?(ae(Pn,e,{}),clearTimeout(q),q=setTimeout(le,g),Q++,g=Math.min(g*w,y)):(ae(Fn,e,{}),j(),r("Max retries reached."))},Z=async()=>{k=new AbortController;let b=k.signal;try{let E=await fetch(i,{...h,headers:M,signal:b});await B(E);let x=async(U,ye,Qe,Pe,...Ze)=>{let St={[Qe]:await ye.text()};for(let Ye of Ze){let Xe=ye.headers.get(`datastar-${ue(Ye)}`);if(Pe){let Fe=Pe[Ye];Fe&&(Xe=typeof Fe=="string"?Fe:JSON.stringify(Fe))}Xe&&(St[Ye]=Xe)}ae(U,e,St),j(),n()},C=E.status,fe=C===204,D=C>=300&&C<400,he=C>=400&&C<600;if(C!==200){if(u!=="never"&&!fe&&!D&&(u==="always"||u==="error"&&he)){v();return}j(),n();return}Q=0,g=Oe;let ze=E.headers.get("Content-Type");if(ze?.includes("text/html"))return await x("datastar-patch-elements",E,"elements",d,"selector","mode","namespace","useViewTransition");if(ze?.includes("application/json"))return await x("datastar-patch-signals",E,"signals",d,"onlyIfMissing");if(ze?.includes("text/javascript")){let U=p.createElement("script"),ye=E.headers.get("datastar-script-attributes");if(ye)for(let[Pe,Ze]of Object.entries(JSON.parse(ye)))U.setAttribute(Pe,Ze);let Qe=await E.text();Ee(U,Qe),p.head.appendChild(U),j();return}if(await _n(E.body,Hn(kn(U=>{U?M["last-event-id"]=U:delete M["last-event-id"]},U=>{Oe=g=U},l))),u==="always"&&!D){v();return}j(),n()}catch{if(!b.aborted)try{v()}catch(E){j(),r(E)}}};Z()});m({name:"attr",requirement:{value:"must"},returnsValue:!0,apply({el:e,key:t,rx:n}){let r=(a,c)=>{c===""||c===!0?e.setAttribute(a,""):c===!1||c==null?e.removeAttribute(a):typeof c=="string"?e.setAttribute(a,c):typeof c=="function"?e.setAttribute(a,c.toString()):e.setAttribute(a,JSON.stringify(c,(l,f)=>typeof f=="function"?f.toString():f))},s=t?()=>{i.disconnect();let a=n();r(t,a),i.observe(e,{attributeFilter:[t]})}:()=>{i.disconnect();let a=n(),c=Object.keys(a);for(let l of c)r(l,a[l]);i.observe(e,{attributeFilter:c})},i=new R(s),o=T(s);return()=>{i.disconnect(),o()}}});var Je=(e,...t)=>({a:n=>n[e],f:(n,r)=>{n[e]=r},o:t}),Xt=(e,...t)=>({a:n=>n.getAttribute(e),f:(n,r)=>{n.setAttribute(e,`${r}`)},o:t}),en=(e=!1,...t)=>({a:(n,r)=>r==="string"||e&&r==="undefined"?n.value:+n.value,f:(n,r)=>{n.value=`${r}`},o:t}),In=()=>{let e=new Set;return{a:(t,n)=>t.multiple?[...t.selectedOptions].map(r=>e.has(r.value)?+r.value:r.value):n==="string"||n==="undefined"?t.value:+t.value,f:(t,n)=>{if(!t.multiple){t.value=`${n}`;return}for(let r of t.options)n.includes(r.value)?(e.delete(r.value),r.selected=!0):n.includes(+r.value)?(e.add(r.value),r.selected=!0):r.selected=!1},o:["change"]}},Vn=/^data:(?<mime>[^;]+);base64,(?<contents>.*)$/,tn=Symbol("empty"),nn=(e,t,n,r,s,i)=>{let o=z(CSS.escape(n)),a=t?`[${o}]`:`[${o}="${CSS.escape(r)}"]`;if(i===void 0&&e instanceof J&&e.type==="radio"){let u=[...p.querySelectorAll(a)].find(g=>g instanceof J&&g.checked);u&&S([[r,u.value]],{ifMissing:!0})}if(!Array.isArray(i)||e instanceof HTMLSelectElement&&e.multiple)return S([[r,s.a(e,typeof i)]],{ifMissing:!0}),r;let c=p.querySelectorAll(a),l=[],f=0;for(let u of c){if(l.push([`${r}.${f}`,s.a(u,typeof(N(i,f)?i[f]:void 0))]),e===u)break;f++}return S(l,{ifMissing:!0}),`${r}.${f}`};m({name:"bind",requirement:"exclusive",apply({el:e,key:t,rawKey:n,mods:r,value:s,error:i}){let o=t!=null?H(t,r):s,a=r.get("prop"),c=r.get("event"),l=null;if(e instanceof J)switch(e.type){case"range":case"number":l=en(!1,"input");break;case"checkbox":l={a:(d,h)=>d.value!=="on"?h==="boolean"?d.checked:d.checked?d.value:"":h==="string"?d.checked?d.value:"":d.checked,f:(d,h)=>{d.checked=typeof h=="string"?h===d.value:h},o:["input"]};break;case"radio":e.getAttribute("name")?.length||e.setAttribute("name",o),l={a:(d,h)=>d.checked?h==="number"?+d.value:d.value:tn,f:(d,h)=>{d.checked=h===(typeof h=="number"?+d.value:d.value)},o:["input"]};break;case"file":{let d=()=>{let h=[...e.files||[]],M=[];Promise.all(h.map(k=>new Promise(le=>{let L=new FileReader;L.onload=()=>{if(typeof L.result!="string")throw i("InvalidFileResultType",{resultType:typeof L.result});let q=L.result.match(Vn);if(!q?.groups)throw i("InvalidDataUri",{result:L.result});M.push({name:k.name,contents:q.groups.contents,mime:q.groups.mime})},L.onloadend=()=>le(),L.readAsDataURL(k)}))).then(()=>{S([[o,M]])})};return e.addEventListener("change",d),()=>{e.removeEventListener("change",d)}}default:l=en(!0,"input")}else e instanceof HTMLSelectElement?l=In():e instanceof HTMLTextAreaElement?l=Je("value","input"):e instanceof HTMLElement&&e.tagName.includes("-")?l="value"in e?Je("value","input","change"):Xt("value","input","change"):e instanceof HTMLElement&&"value"in e?l=Je("value","change"):l=Xt("value","change");if(!l)throw i("InvalidBindAdapter");let f=a&&[...a][0];if(a&&!f)throw i("BindPropNameMissing");if(f){let d=$t(f);l=Je(d,...c?[...c]:l.o)}else c&&(l.o=[...c]);let u=nn(e,t,n,o,l,oe(o)),g=()=>{let d=oe(u);if(d!=null){let h=l.a(e,typeof d);h!==tn&&S([[u,h]])}},w=()=>{l.f(e,oe(u))};for(let d of l.o)e.addEventListener(d,g);e.addEventListener(be,g);let y=T(w),A=e instanceof HTMLSelectElement?new R(()=>{y(),u=nn(e,t,n,o,l,oe(o)),y=T(w)}):null;return A?.observe(e,{attributeFilter:["multiple"]}),()=>{A?.disconnect(),y();for(let d of l.o)e.removeEventListener(d,g);e.removeEventListener(be,g)}}});m({name:"class",requirement:{value:"must"},returnsValue:!0,apply({key:e,el:t,mods:n,rx:r}){e&&=H(e,n,"kebab");let s,i=()=>{o.disconnect(),s=e?{[e]:r()}:r();for(let c in s){let l=c.split(/\s+/).filter(f=>f.length>0);if(s[c])for(let f of l)t.classList.contains(f)||t.classList.add(f);else for(let f of l)t.classList.contains(f)&&t.classList.remove(f)}o.observe(t,{attributeFilter:["class"]})},o=new R(i),a=T(i);return()=>{o.disconnect(),a();for(let c in s){let l=c.split(/\s+/).filter(f=>f.length>0);for(let f of l)t.classList.remove(f)}}}});m({name:"computed",requirement:{value:"must"},returnsValue:!0,apply({key:e,mods:t,rx:n,error:r}){if(e)S([[H(e,t),je(n)]]);else{let s=Object.assign({},n());se(s,i=>{if(typeof i=="function")return je(i);throw r("ComputedExpectedFunction")}),I(s)}}});m({name:"effect",requirement:{key:"denied",value:"must"},apply:({rx:e})=>T(e)});m({name:"indicator",requirement:"exclusive",apply({el:e,key:t,mods:n,value:r}){let s=t!=null?H(t,n):r,i=0;S([[s,!1]]);let o=(a=>{let{type:c,el:l}=a.detail;if(l===e)switch(c){case mt:i++,S([[s,!0]]);break;case gt:i=Math.max(0,i-1),S([[s,i>0]]);break}});return p.addEventListener(W,o),()=>{i=0,S([[s,!1]]),p.removeEventListener(W,o)}}});var te=e=>{for(let t of e)return t.endsWith("ms")?+t.slice(0,-2):t.endsWith("s")?+t.slice(0,-1)*1e3:Number.parseFloat(t);return 0},ce=(e,t)=>e.has(t.toLowerCase()),rn=(e,t="")=>{if(e)for(let n of e)return n;return t};var ht=(e,t)=>(...n)=>{setTimeout(e,t,...n)},sn=(e,t,n=!0,r=!1,s=!1)=>{let i=null,o=0;return(...a)=>{n&&!o?(e(...a),i=null):i=a,(!o||s)&&(o&&clearTimeout(o),o=setTimeout(()=>{r&&i!==null&&e(...i),i=null,o=0},t))}},de=(e,t)=>{let n=t.get("delay");if(n){let i=te(n);e=ht(e,i)}let r=t.get("debounce");if(r){let i=te(r),o=ce(r,"leading"),a=!ce(r,"notrailing");e=sn(e,i,o,a,!0)}let s=t.get("throttle");if(s){let i=te(s),o=!ce(s,"noleading"),a=ce(s,"trailing");e=sn(e,i,o,a)}return e};var yt=e=>"startViewTransition"in e,ne=(e,t)=>{if(t.has("viewtransition")&&yt(p)){let n=e;e=(...r)=>p.startViewTransition(()=>n(...r))}return e};m({name:"init",requirement:{key:"denied",value:"must"},apply({rx:e,mods:t}){let n=()=>{O();try{e()}finally{P()}};n=ne(n,t);let r=0,s=t.get("delay");s&&(r=te(s),r>0&&(n=ht(n,r))),n()}});m({name:"json-signals",requirement:{key:"denied"},apply({el:e,value:t,mods:n}){let r=n.has("terse")?0:2,s={};t&&(s=pe(t));let i=()=>{o.disconnect(),e.textContent=JSON.stringify(G(s),null,r),o.observe(e,{childList:!0,characterData:!0,subtree:!0})},o=new R(i),a=T(i);return()=>{o.disconnect(),a()}}});m({name:"on",requirement:"must",argNames:["evt"],apply({el:e,key:t,mods:n,rx:r}){let s=e;n.has("window")?s=window:n.has("document")&&(s=p);let i=l=>{O();try{r(l)}finally{P()}};i=ne(i,n),i=de(i,n);let o=H(t,n,"kebab"),a={capture:n.has("capture"),passive:n.has("passive"),once:n.has("once")};if(n.has("outside")){s=p;let l=i;i=f=>{e.contains(f?.target)||l(f)}}(o===W||o===re)&&(s=p);let c=l=>{l&&(n.has("prevent")&&l.preventDefault(),n.has("stop")&&l.stopPropagation(),e instanceof HTMLFormElement&&o==="submit"&&l.preventDefault()),i(l)};return s.addEventListener(o,c,a),()=>{s.removeEventListener(o,c,a)}}});var on=(e,t,n)=>Math.max(t,Math.min(n,e));var bt=new WeakSet;m({name:"on-intersect",requirement:{key:"denied",value:"must"},apply({el:e,mods:t,rx:n}){let r=()=>{O();try{n()}finally{P()}};r=ne(r,t),r=de(r,t);let s={threshold:0};if(t.has("full"))s.threshold=1;else if(t.has("half"))s.threshold=.5;else{let a=t.get("threshold");a&&(s.threshold=on(Number(rn(a)),0,100)/100)}let i=t.has("exit"),o=new IntersectionObserver(a=>{for(let c of a)c.isIntersecting!==i&&(r(),o&&bt.has(e)&&o.disconnect())},s);return o.observe(e),t.has("once")&&bt.add(e),()=>{t.has("once")||bt.delete(e),o&&(o.disconnect(),o=null)}}});m({name:"on-interval",requirement:{key:"denied",value:"must"},apply({mods:e,rx:t}){let n=()=>{O();try{t()}finally{P()}};n=ne(n,e);let r=1e3,s=e.get("duration");s&&(r=te(s),ce(s,"leading")&&n());let i=setInterval(n,r);return()=>{clearInterval(i)}}});m({name:"on-signal-patch",requirement:{value:"must"},argNames:["patch"],returnsValue:!0,apply({el:e,key:t,mods:n,rx:r,error:s}){if(t&&t!=="filter")throw s("KeyNotAllowed");let i=z(`${this.name}-filter`),o=e.getAttribute(i),a={};o&&(a=pe(o));let c=!1,l=de(f=>{if(c)return;F();let u=G(a,f.detail);if(_(),!xt(u)){c=!0,O();try{r(u)}finally{P(),c=!1}}},n);return p.addEventListener(re,l),()=>{p.removeEventListener(re,l)}}});m({name:"ref",requirement:"exclusive",apply({el:e,key:t,mods:n,value:r}){let s=t!=null?H(t,n):r;S([[s,e]])}});var an="none",cn="display";m({name:"show",requirement:{key:"denied",value:"must"},returnsValue:!0,apply({el:e,rx:t}){let n=()=>{r.disconnect(),t()?e.style.display===an&&e.style.removeProperty(cn):e.style.setProperty(cn,an),r.observe(e,{attributeFilter:["style"]})},r=new R(n),s=T(n);return()=>{r.disconnect(),s()}}});m({name:"signals",returnsValue:!0,apply({key:e,mods:t,rx:n}){let r=t.has("ifmissing");if(e){e=H(e,t);let s=n?.();S([[e,s]],{ifMissing:r})}else{let s=Object.assign({},n?.());I(s,{ifMissing:r})}}});m({name:"style",requirement:{value:"must"},returnsValue:!0,apply({key:e,el:t,rx:n}){let{style:r}=t,s=new Map,i=(l,f)=>{let u=s.get(l);!f&&f!==0?u!==void 0&&(u?r.setProperty(l,u):r.removeProperty(l)):(u===void 0&&s.set(l,r.getPropertyValue(l)),r.setProperty(l,String(f)))},o=()=>{if(a.disconnect(),e)i(e,n());else{let l=n();for(let[f,u]of s)f in l||(u?r.setProperty(f,u):r.removeProperty(f));for(let f in l)i(ue(f),l[f])}a.observe(t,{attributeFilter:["style"]})},a=new R(o),c=T(o);return()=>{a.disconnect(),c();for(let[l,f]of s)f?r.setProperty(l,f):r.removeProperty(l)}}});m({name:"text",requirement:{key:"denied",value:"must"},returnsValue:!0,apply({el:e,rx:t}){let n=()=>{r.disconnect(),e.textContent=`${t()}`,r.observe(e,{childList:!0,characterData:!0,subtree:!0})},r=new R(n),s=T(n);return()=>{r.disconnect(),s()}}});var $n=["remove","outer","inner","replace","prepend","append","before","after"],qn=["html","svg","mathml"];xe({name:"datastar-patch-elements",apply(e,t){let n=typeof t.selector=="string"?t.selector:"",r=typeof t.mode=="string"?t.mode:"outer",s=typeof t.namespace=="string"?t.namespace:"html",i=Be(t.useViewTransition),o=typeof t.viewTransitionSelector=="string"?t.viewTransitionSelector:"",a=t.elements;if(!$n.includes(r))throw e.error("PatchElementsInvalidMode",{mode:r});if(!n&&r!=="outer"&&r!=="replace")throw e.error("PatchElementsExpectedSelector");if(!qn.includes(s))throw e.error("PatchElementsInvalidNamespace",{namespace:s});let c={k:n,D:r,I:s,V:a};if(i){let l=p;if(o){let f=p.querySelector(o);f&&(l=f)}yt(l)?l.startViewTransition(()=>vt(e,c)):vt(e,c)}else vt(e,c)}});var vt=({error:e},{k:t,D:n,I:r,V:s})=>{let i=p.createDocumentFragment(),o=typeof s!="string"&&!!s;if(typeof s=="string"){let a=s.replace(/<svg(\s[^>]*>|>)([\s\S]*?)<\/svg>/gim,""),c=/<\/html>/.test(a),l=/<\/head>/.test(a),f=/<\/body>/.test(a),u=r==="svg"?"svg":r==="mathml"?"math":"",g=u?`<${u}>${s}</${u}>`:s,w=c||l||f?s:`<body><template>${g}</template></body>`,y=new DOMParser().parseFromString(rt(w),"text/html");if(c)i.appendChild(y.documentElement);else if(l&&f)i.appendChild(y.head),i.appendChild(y.body);else if(l)i.appendChild(y.head);else if(f)i.appendChild(y.body);else if(u){let A=y.querySelector("template").content.querySelector(u);for(let d of A.childNodes)i.appendChild(d)}else i=y.querySelector("template").content}else s&&(s instanceof DocumentFragment?i=s:s instanceof Element&&i.appendChild(s));if(!t&&(n==="outer"||n==="replace")){let a=Array.from(i.children);for(let c of a){let l;if(c instanceof HTMLHtmlElement)l=p.documentElement;else if(c instanceof HTMLBodyElement)l=p.body;else if(c instanceof HTMLHeadElement)l=p.head;else if(l=p.getElementById(c.id),!l){console.warn(e("PatchElementsNoTargetsFound"),{element:{id:c.id}});continue}fn(n,c,[l],!0)}}else{let a=p.querySelectorAll(t);if(!a.length){console.warn(e("PatchElementsNoTargetsFound"),{selector:t});return}let c=o&&n!=="remove"?[a[0]]:a;c.length===1&&(o=!0),fn(n,i,c,o)}},Tt=new WeakSet;for(let e of p.querySelectorAll("script"))Tt.add(e);var mn=e=>{let t=e instanceof HTMLScriptElement?[e]:e.querySelectorAll("script");for(let n of t)if(!Tt.has(n)){let r=p.createElement("script");for(let{name:s,value:i}of n.attributes)r.setAttribute(s,i);Ee(r,n.text),n.replaceWith(r),Tt.add(r)}},ln=(e,t,n,r)=>{let s=!1;for(let i of e){if(r&&s)break;let o=r?t:t.cloneNode(!0);mn(o),i[n](o),s=!0}},fn=(e,t,n,r)=>{switch(e){case"remove":for(let s of n)s.remove();break;case"outer":case"inner":{let s=!1;for(let i of n){if(r&&s)break;let o=r?t:t.cloneNode(!0);jn(i,o,e),mn(i);let a=i.closest("[data-scope-children]");a&&a.dispatchEvent(new CustomEvent(et,{bubbles:!1})),s=!0}}break;case"replace":ln(n,t,"replaceWith",r);break;case"prepend":case"append":case"before":case"after":ln(n,t,e,r)}},$=new Map,ge=new Set,me=new Map,Ce=new Set,Ke=p.createElement("div");Ke.hidden=!0;var Ne=z("ignore-morph"),Gn=`[${Ne}]`,jn=(e,t,n="outer")=>{if(ee(e)&&ee(t)&&e.hasAttribute(Ne)&&t.hasAttribute(Ne)||e.parentElement?.closest(Gn))return;let r=p.createElement("div");r.append(t),p.body.insertAdjacentElement("afterend",Ke);let s=e.querySelectorAll("[id]");for(let{id:a,tagName:c}of s)me.has(a)?Ce.add(a):me.set(a,c);e instanceof Element&&e.id&&(me.has(e.id)?Ce.add(e.id):me.set(e.id,e.tagName)),ge.clear();let i=r.querySelectorAll("[id]");for(let{id:a,tagName:c}of i)ge.has(a)?Ce.add(a):me.get(a)===c&&ge.add(a);for(let a of Ce)ge.delete(a);me.clear(),Ce.clear(),$.clear();let o=n==="outer"?e.parentElement:e;dn(o,s),dn(r,i),gn(o,r,n==="outer"?e:null,e.nextSibling),Ke.remove()},gn=(e,t,n=null,r=null)=>{e instanceof HTMLTemplateElement&&t instanceof HTMLTemplateElement&&(e=e.content,t=t.content),n??=e.firstChild;for(let s of t.childNodes){if(n&&n!==r){let i=Bn(s,n,r);if(i){if(i!==n){let o=n;for(;o&&o!==i;){let a=o;o=o.nextSibling,pn(a)}}Et(i,s),n=i.nextSibling;continue}}if(s instanceof Element&&ge.has(s.id)){let i=p.getElementById(s.id),o=i;for(;o=o.parentNode;){let a=$.get(o);a&&(a.delete(s.id),a.size||$.delete(o))}hn(e,i,n),Et(i,s),n=i.nextSibling;continue}if($.has(s)){let i=s.namespaceURI,o=s.tagName,a=i&&i!=="http://www.w3.org/1999/xhtml"?p.createElementNS(i,o):p.createElement(o);e.insertBefore(a,n),Et(a,s),n=a.nextSibling}else{let i=p.importNode(s,!0);e.insertBefore(i,n),n=i.nextSibling}}for(;n&&n!==r;){let s=n;n=n.nextSibling,pn(s)}},Bn=(e,t,n)=>{let r=null,s=e.nextSibling,i=0,o=0,a=$.get(e)?.size||0,c=t;for(;c&&c!==n;){if(un(c,e)){let l=!1,f=$.get(c),u=$.get(e);if(u&&f){for(let g of f)if(u.has(g)){l=!0;break}}if(l)return c;if(!r&&!$.has(c)){if(!a)return c;r=c}}if(o+=$.get(c)?.size||0,o>a)break;r===null&&s&&un(c,s)&&(i++,s=s.nextSibling,i>=2&&(r=void 0)),c=c.nextSibling}return r||null},un=(e,t)=>e.nodeType===t.nodeType&&e.tagName===t.tagName&&(!e.id||e.id===t.id),pn=e=>{$.has(e)?hn(Ke,e,null):e.parentNode?.removeChild(e)},hn=(e,t,n)=>{if("moveBefore"in e){e.moveBefore(t,n);return}e.insertBefore(t,n)},Un=z("preserve-attr"),Et=(e,t)=>{let n=t.nodeType;if(n===1){let r=e,s=t,i=r.hasAttribute("data-scope-children");if(r.hasAttribute(Ne)&&s.hasAttribute(Ne))return e;let o=(t.getAttribute(Un)??"").split(" "),a=(l,f,u)=>{let g=f.hasAttribute(u);return l.hasAttribute(u)!==g&&!o.includes(u)?(l[u]=g,!0):!1},c=!1;if(r instanceof J&&s instanceof J&&s.type!=="file"){let l=s.getAttribute("value");r.getAttribute("value")!==l&&!o.includes("value")&&(r.value=l??"",c=!0),c=a(r,s,"checked")||c,a(r,s,"disabled")}else if(r instanceof HTMLTextAreaElement&&s instanceof HTMLTextAreaElement){let l=s.value;r.defaultValue!==l&&(r.value=l,c=!0)}else r instanceof HTMLOptionElement&&s instanceof HTMLOptionElement&&(c=a(r,s,"selected")||c);for(let{name:l,value:f}of s.attributes)r.getAttribute(l)!==f&&!o.includes(l)&&r.setAttribute(l,f);for(let{name:l}of Array.from(r.attributes))!s.hasAttribute(l)&&!o.includes(l)&&r.removeAttribute(l);c&&(r instanceof HTMLOptionElement?r.closest("select"):r)?.dispatchEvent(new Event(be,{bubbles:!0})),i&&!r.hasAttribute("data-scope-children")&&r.setAttribute("data-scope-children",""),r instanceof HTMLTemplateElement&&s instanceof HTMLTemplateElement?r.innerHTML=rt(s.innerHTML):r.isEqualNode(s)||gn(r,s),i&&r.dispatchEvent(new CustomEvent(et,{bubbles:!1}))}return(n===8||n===3)&&e.nodeValue!==t.nodeValue&&(e.nodeValue=t.nodeValue),e},dn=(e,t)=>{for(let n of t)if(ge.has(n.id)){let r=n;for(;r&&r!==e;){let s=$.get(r);s||(s=new Set,$.set(r,s)),s.add(n.id),r=r.parentElement}}};xe({name:"datastar-patch-signals",apply({error:e},{signals:t,onlyIfMissing:n}){if(typeof t!="string")throw e("PatchSignalsExpectedSignals");let r=Be(n);I(pe(t),{ifMissing:r})}});export{V as action,Jt as actions,m as attribute,O as beginBatch,je as computed,T as effect,P as endBatch,G as filtered,oe as getPath,I as mergePatch,S as mergePaths,ie as root,Te as signal,F as startPeeking,_ as stopPeeking,xe as watcher};
|
|
//# sourceMappingURL=datastar.js.map
|