@getforma/core 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- "use strict";var FormaJS=(()=>{var we=Object.defineProperty;var _n=Object.getOwnPropertyDescriptor;var Pn=Object.getOwnPropertyNames;var In=Object.prototype.hasOwnProperty;var On=(e,t)=>{for(var n in t)we(e,n,{get:t[n],enumerable:!0})},Fn=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Pn(t))!In.call(e,r)&&r!==n&&we(e,r,{get:()=>t[r],enumerable:!(o=_n(t,r))||o.enumerable});return e};var Bn=e=>Fn(we({},"__esModule",{value:!0}),e);var Do={};On(Do,{$:()=>St,$$:()=>vt,$$serverFunction:()=>Zt,activateIslands:()=>ot,addClass:()=>bt,applyRevalidation:()=>Te,batch:()=>_,children:()=>At,cleanup:()=>Je,closest:()=>Nt,createAction:()=>Gt,createBus:()=>ht,createComputed:()=>Z,createContext:()=>lt,createEffect:()=>X,createErrorBoundary:()=>tt,createFetch:()=>Vt,createHistory:()=>gt,createIndexedDB:()=>jt,createList:()=>ee,createLocalStorage:()=>Ft,createMemo:()=>Oe,createPortal:()=>et,createRPCMiddleware:()=>nn,createReducer:()=>Ke,createRef:()=>Be,createResource:()=>je,createRoot:()=>H,createSSE:()=>Wt,createSessionStorage:()=>Bt,createShow:()=>te,createSignal:()=>R,createStore:()=>mt,createSuspense:()=>nt,createSwitch:()=>Qe,createText:()=>Xe,createWebSocket:()=>Ut,defineComponent:()=>st,delegate:()=>Tt,disposeComponent:()=>at,enableAutoRevalidation:()=>Yt,fetchJSON:()=>$t,fragment:()=>Ye,getRegisteredEndpoints:()=>tn,getServerFunction:()=>en,h:()=>re,handleRPC:()=>Se,hydrateIsland:()=>K,inject:()=>ut,longestIncreasingSubsequence:()=>Q,mount:()=>Ze,nextSibling:()=>Ht,on:()=>Fe,onCleanup:()=>Le,onError:()=>_e,onIntersect:()=>It,onKey:()=>xt,onMount:()=>rt,onMutation:()=>Ot,onResize:()=>Pt,onUnmount:()=>it,parent:()=>Dt,persist:()=>yt,prevSibling:()=>_t,provide:()=>ft,reconcileList:()=>U,registerResource:()=>Jt,registerServerFunction:()=>Qt,removeClass:()=>wt,renderIsland:()=>Hn,renderLocal:()=>Dn,setAttr:()=>Rt,setHTML:()=>Mt,setStyle:()=>Et,setText:()=>kt,siblings:()=>Lt,toggleClass:()=>Ct,trackDisposer:()=>ct,unprovide:()=>dt,unregisterResource:()=>qt,untrack:()=>A,withRevalidation:()=>Xt});var Kn=(e=>(e[e.Computed=1]="Computed",e[e.Effect=2]="Effect",e[e.Tracking=4]="Tracking",e[e.Notified=8]="Notified",e[e.Recursed=16]="Recursed",e[e.Dirty=32]="Dirty",e[e.PendingComputed=64]="PendingComputed",e[e.PendingEffect=128]="PendingEffect",e[e.Propagated=224]="Propagated",e))(Kn||{});function jn({updateComputed:e,notifyEffect:t}){let n=[],o=0,r=0;return{link:i,propagate:c,updateDirtyFlag:m,startTracking:a,endTracking:f,processEffectNotifications:h,processComputedUpdate:p,processPendingInnerEffects:g};function i(u,d){let s=d.depsTail;if(s!==void 0&&s.dep===u)return;let l=s!==void 0?s.nextDep:d.deps;if(l!==void 0&&l.dep===u){d.depsTail=l;return}let y=u.subsTail;if(!(y!==void 0&&y.sub===d&&C(y,d)))return T(u,d,l,s)}function c(u){let d=u.nextSub,s,l=0,y=32;e:do{let v=u.sub,b=v.flags,k=!1;if(b&244?b&16&&!(b&4)?(v.flags=b&-17|y|8,k=!0):!(b&224)&&C(u,v)&&(v.flags=b|16|y|8,k=v.subs!==void 0):(v.flags=b|y|8,k=!0),k){let N=v.subs;if(N!==void 0){u=N,N.nextSub!==void 0?(s={target:d,linked:s},++l,d=u.nextSub,y=64):y=b&2?128:64;continue}b&2&&(n[r++]=v)}else b&(4|y)?!(b&y)&&b&224&&C(u,v)&&(v.flags=b|y):(v.flags=b|y|8,(b&10)===2&&(n[r++]=v));if((u=d)!==void 0){d=u.nextSub,y=l?64:32;continue}for(;l--;)if(u=s.target,s=s.linked,u!==void 0){d=u.nextSub,y=l?64:32;continue e}break}while(!0)}function a(u){u.depsTail=void 0,u.flags=u.flags&-249|4}function f(u){let d=u.depsTail;if(d!==void 0){let s=d.nextDep;s!==void 0&&(x(s),d.nextDep=void 0)}else u.deps!==void 0&&(x(u.deps),u.deps=void 0);u.flags&=-5}function m(u,d){return S(u.deps)?(u.flags=d|32,!0):(u.flags=d&-65,!1)}function p(u,d){if(d&32||S(u.deps)){if(e(u)){let s=u.subs;s!==void 0&&w(s)}}else u.flags=d&-65}function g(u,d){if(d&128){u.flags=d&-129;let s=u.deps;do{let l=s.dep;"flags"in l&&l.flags&2&&l.flags&224&&t(l),s=s.nextDep}while(s!==void 0)}}function h(){for(;o<r;){let u=n[o];n[o++]=void 0,t(u)||(u.flags&=-9)}o=0,r=0}function T(u,d,s,l){let y={dep:u,sub:d,nextDep:s,prevSub:void 0,nextSub:void 0};if(l===void 0?d.deps=y:l.nextDep=y,u.subs===void 0)u.subs=y;else{let v=u.subsTail;y.prevSub=v,v.nextSub=y}return d.depsTail=y,u.subsTail=y,y}function S(u){let d,s=0,l;e:do{l=!1;let y=u.dep;if(u.sub.flags&32)l=!0;else if("flags"in y){let v=y.flags;if((v&33)===33){if(e(y)){let b=y.subs;b.nextSub!==void 0&&w(b),l=!0}}else if((v&65)===65){(u.nextSub!==void 0||u.prevSub!==void 0)&&(d={target:u,linked:d}),u=y.deps,++s;continue}}if(!l&&u.nextDep!==void 0){u=u.nextDep;continue}for(;s;){--s;let v=u.sub,b=v.subs;if(l){if(e(v)){b.nextSub!==void 0?(u=d.target,d=d.linked,w(b)):u=b;continue}}else v.flags&=-65;if(b.nextSub!==void 0?(u=d.target,d=d.linked):u=b,u.nextDep!==void 0){u=u.nextDep;continue e}l=!1}return l}while(!0)}function w(u){do{let d=u.sub,s=d.flags;(s&96)===64&&(d.flags=s|32|8,(s&10)===2&&(n[r++]=d)),u=u.nextSub}while(u!==void 0)}function C(u,d){let s=d.depsTail;if(s!==void 0){let l=d.deps;do{if(l===u)return!0;if(l===s)break;l=l.nextDep}while(l!==void 0)}return!1}function x(u){do{let d=u.dep,s=u.nextDep,l=u.nextSub,y=u.prevSub;if(l!==void 0?l.prevSub=y:d.subsTail=y,y!==void 0?y.nextSub=l:d.subs=l,d.subs===void 0&&"deps"in d){let v=d.flags;v&32||(d.flags=v|32);let b=d.deps;if(b!==void 0){u=b,d.depsTail.nextDep=s,d.deps=void 0,d.depsTail=void 0;continue}}u=s}while(u!==void 0)}}var{link:Y,propagate:Vn,updateDirtyFlag:$n,startTracking:Ce,endTracking:Ee,processEffectNotifications:on,processComputedUpdate:Wn,processPendingInnerEffects:rn}=jn({updateComputed(e){let t=L;L=e,Ce(e);try{let n=e.currentValue,o=e.getter(n);return n!==o?(e.currentValue=o,!0):!1}finally{L=t,Ee(e)}},notifyEffect(e){return"isScope"in e?Gn(e):Un(e)}}),sn=[],Re=0,L,le;function an(){++Re}function cn(){--Re||on()}function fe(){sn.push(L),L=void 0}function ue(){L=sn.pop()}function ln(e){return Jn.bind({currentValue:e,subs:void 0,subsTail:void 0})}function fn(e){return zn.bind({currentValue:void 0,subs:void 0,subsTail:void 0,deps:void 0,depsTail:void 0,flags:33,getter:e})}function ke(e){let t={fn:e,subs:void 0,subsTail:void 0,deps:void 0,depsTail:void 0,flags:2};L!==void 0?Y(t,L):le!==void 0&&Y(t,le);let n=L;L=t;try{t.fn()}finally{L=n}return qn.bind(t)}function Un(e){let t=e.flags;if(t&32||t&64&&$n(e,t)){let n=L;L=e,Ce(e);try{e.fn()}finally{L=n,Ee(e)}}else rn(e,e.flags);return!0}function Gn(e){return e.flags&128?(rn(e,e.flags),!0):!1}function zn(){let e=this.flags;return e&96&&Wn(this,e),L!==void 0?Y(this,L):le!==void 0&&Y(this,le),this.currentValue}function Jn(...e){if(e.length){if(this.currentValue!==(this.currentValue=e[0])){let t=this.subs;t!==void 0&&(Vn(t),Re||on())}}else return L!==void 0&&Y(this,L),this.currentValue}function qn(){Ce(this),Ee(this)}function Yn(e,t){if(typeof t!="function"){e(t);return}fe();let n=e();ue(),e(t(n))}function R(e){let t=ln(e);return[t,r=>Yn(t,r)]}var I=R;var $=null,V=[];function H(e){let t={disposers:[]};V.push($),$=t;let n=()=>{for(let o of t.disposers)try{o()}catch{}t.disposers.length=0};try{return e(n)}finally{$=V.pop()??null,V.length===0&&V.length!==V.__capacity&&(V.length=0)}}function Me(e){$&&$.disposers.push(e)}function Ne(){return $!==null}var Ae=null;function Le(e){Ae?.(e)}function De(e){let t=Ae;return Ae=e,t}var D=typeof process<"u"?process.env?.NODE_ENV!=="production":!0,He=null;function _e(e){He=e}function W(e,t){if(He)try{He(e,t?{source:t}:{})}catch{}D&&console.error(`[forma] ${t??"Unknown"} error:`,e)}var Pe=32,un=100,Ie=[];for(let e=0;e<Pe;e++)Ie.push([]);var de=Pe;function Xn(){if(de>0){let e=Ie[--de];return e.length=0,e}return[]}function dn(e){e.length=0,de<Pe&&(Ie[de++]=e)}function pn(e){if(e!==void 0)try{e()}catch(t){W(t,"effect cleanup")}}function mn(e){if(e!==void 0)for(let t=0;t<e.length;t++)try{e[t]()}catch(n){W(n,"effect cleanup")}}function E(e){let t=ke(e);return Ne()&&Me(t),t}function X(e){let t=Ne(),n,o,r,i,c=C=>{if(i!==void 0){i.push(C);return}if(r!==void 0){let x=Xn();x.push(r,C),r=void 0,i=x;return}r=C},a=!1,f=!0,m=!1,p=!1,g=()=>{if(n!==void 0&&(pn(n),n=void 0),o!==void 0&&(mn(o),dn(o),o=void 0),a){try{e()}catch(x){W(x,"effect")}return}r=void 0,i=void 0;let C=De(c);try{let x=e();if(typeof x=="function"&&c(x),r===void 0&&i===void 0){f&&(a=!0);return}i!==void 0?o=i:n=r}catch(x){W(x,"effect"),i!==void 0?o=i:n=r}finally{De(C),f=!1}},T=ke(()=>{if(m){p=!0;return}m=!0;try{let C=0;do p=!1,g(),p&&(C++,C>=un&&(W(new Error(`createEffect exceeded ${un} re-entrant runs`),"effect"),p=!1));while(p)}finally{m=!1}}),S=!1,w=()=>{S||(S=!0,T(),n!==void 0&&(pn(n),n=void 0),o!==void 0&&(mn(o),dn(o),o=void 0))};return t&&Me(w),w}function Z(e){return fn(e)}var Oe=Z;function _(e){an();try{e()}finally{cn()}}function A(e){fe();try{return e()}finally{ue()}}function Fe(e,t,n){let o,r=!0;return()=>{let i=e();if(n?.defer&&r){r=!1,o=i;return}let c=A(()=>t(i,o));return o=i,c}}function Be(e){return{current:e}}function Ke(e,t){let[n,o]=R(t);return[n,i=>{o(c=>e(c,i))}]}var pe=null,gn=[];function yn(e){gn.push(pe),pe=e}function hn(){pe=gn.pop()??null}function Tn(){return pe}function je(e,t,n){let[o,r]=R(n?.initialValue),[i,c]=I(!1),[a,f]=I(void 0),m=Tn(),p=null,g=0,h=()=>{let S=A(e);p&&p.abort();let w=new AbortController;p=w;let C=++g,x=()=>C===g,u=!1;m&&(m.increment(),u=!0),c(!0),f(void 0),Promise.resolve(t(S)).then(d=>{x()&&!w.signal.aborted&&r(()=>d)}).catch(d=>{x()&&!w.signal.aborted&&d?.name!=="AbortError"&&f(d)}).finally(()=>{u&&m?.decrement(),x()&&(c(!1),p===w&&(p=null))})};E(()=>{e(),h()});let T=(()=>o());return T.loading=i,T.error=a,T.refetch=h,T.mutate=S=>r(()=>S),T}function Q(e){let t=e.length;if(t===0)return[];let n=new Int32Array(t),o=new Int32Array(t),r=new Int32Array(t).fill(-1),i=0;for(let f=0;f<t;f++){let m=e[f],p=0,g=i;for(;p<g;){let h=p+g>>1;n[h]<m?p=h+1:g=h}n[p]=m,o[p]=f,p>0&&(r[f]=o[p-1]),p>=i&&i++}let c=new Array(i),a=o[i-1];for(let f=i-1;f>=0;f--)c[f]=a,a=r[a];return c}var Zn=32,Ve=Symbol.for("forma-abort"),$e=Symbol.for("forma-attr-cache"),We=Symbol.for("forma-dynamic-child");function Qn(e,t){return e instanceof HTMLElement&&t instanceof HTMLElement&&e.tagName===t.tagName&&!e[Ve]&&!e[$e]&&!e[We]&&!t[Ve]&&!t[$e]&&!t[We]}function eo(e,t){let n=new Set;for(let o of Array.from(t.attributes))n.add(o.name),e.getAttribute(o.name)!==o.value&&e.setAttribute(o.name,o.value);for(let o of Array.from(e.attributes))n.has(o.name)||e.removeAttribute(o.name);e.replaceChildren(...Array.from(t.childNodes))}function to(e,t,n,o,r,i,c,a,f){let m=t.length,p=n.length,g=new Array(m);for(let s=0;s<m;s++)g[s]=r(t[s]);let h=new Array(p),T=new Uint8Array(m);for(let s=0;s<p;s++){let l=r(n[s]),y=-1;for(let v=0;v<m;v++)if(!T[v]&&g[v]===l){y=v,T[v]=1;break}h[s]=y}for(let s=0;s<m;s++)if(!T[s])if(f?.onBeforeRemove){let l=o[s];f.onBeforeRemove(l,()=>{l.parentNode&&l.parentNode.removeChild(l)})}else e.removeChild(o[s]);if(m===p){let s=!0;for(let l=0;l<p;l++)if(h[l]!==l){s=!1;break}if(s){let l=new Array(p);for(let y=0;y<p;y++){let v=o[y];c(v,n[y]),l[y]=v}return{nodes:l,items:n}}}let S=[],w=[];for(let s=0;s<p;s++)h[s]!==-1&&(S.push(h[s]),w.push(s));let C=Q(S),x=new Uint8Array(p);for(let s of C)x[w[s]]=1;let u=new Array(p),d=a??null;for(let s=p-1;s>=0;s--){let l,y=!1;if(h[s]===-1)l=i(n[s]),y=!0;else if(l=o[h[s]],c(l,n[s]),x[s]){u[s]=l,d=l;continue}d?e.insertBefore(l,d):e.appendChild(l),y&&f?.onInsert?.(l),u[s]=l,d=l}return{nodes:u,items:n}}function U(e,t,n,o,r,i,c,a,f){let m=t.length,p=n.length;if(p===0){for(let s=0;s<m;s++)if(f?.onBeforeRemove){let l=o[s];f.onBeforeRemove(l,()=>{l.parentNode&&l.parentNode.removeChild(l)})}else e.removeChild(o[s]);return{nodes:[],items:[]}}if(m===0){let s=new Array(p);for(let l=0;l<p;l++){let y=i(n[l]);a?e.insertBefore(y,a):e.appendChild(y),f?.onInsert?.(y),s[l]=y}return{nodes:s,items:n}}if(m<Zn)return to(e,t,n,o,r,i,c,a,f);let g=new Map;for(let s=0;s<m;s++)g.set(r(t[s]),s);let h=new Array(p),T=new Uint8Array(m);for(let s=0;s<p;s++){let l=r(n[s]),y=g.get(l);y!==void 0?(h[s]=y,T[y]=1):h[s]=-1}for(let s=0;s<m;s++)if(!T[s])if(f?.onBeforeRemove){let l=o[s];f.onBeforeRemove(l,()=>{l.parentNode&&l.parentNode.removeChild(l)})}else e.removeChild(o[s]);if(m===p){let s=!0;for(let l=0;l<p;l++)if(h[l]!==l){s=!1;break}if(s){let l=new Array(p);for(let y=0;y<p;y++){let v=o[y];c(v,n[y]),l[y]=v}return{nodes:l,items:n}}}let S=[],w=[];for(let s=0;s<p;s++)h[s]!==-1&&(S.push(h[s]),w.push(s));let C=Q(S),x=new Uint8Array(p);for(let s of C)x[w[s]]=1;let u=new Array(p),d=a??null;for(let s=p-1;s>=0;s--){let l,y=!1;if(h[s]===-1)l=i(n[s]),y=!0;else if(l=o[h[s]],c(l,n[s]),x[s]){u[s]=l,d=l;continue}d?e.insertBefore(l,d):e.appendChild(l),y&&f?.onInsert?.(l),u[s]=l,d=l}return{nodes:u,items:n}}function ee(e,t,n,o){if(M)return{type:"list",items:e,keyFn:t,renderFn:n,options:o};let r=document.createComment("forma-list-start"),i=document.createComment("forma-list-end"),c=document.createDocumentFragment();c.appendChild(r),c.appendChild(i);let a=new Map,f=[],m=[],p=o?.updateOnItemChange??"none";return E(()=>{let g=e(),h=r.parentNode;if(!h)return;if(!Array.isArray(g)){D&&console.warn("[forma] createList: value is not an array, treating as empty");for(let x of f)x.parentNode===h&&h.removeChild(x);a=new Map,f=[],m=[];return}let T=g;for(let x=0;x<g.length;x++)if(g[x]==null){T=g.filter(u=>u!=null);break}if(D){let x=new Set;for(let u of T){let d=t(u);x.has(d)&&console.warn("[forma] createList: duplicate key detected:",d),x.add(d)}}let w=U(h,m,T,f,t,x=>{let u=t(x),[d,s]=R(0),l=A(()=>n(x,d));return a.set(u,{element:l,item:x,getIndex:d,setIndex:s}),l},p==="rerender"?(x,u)=>{let d=t(u),s=a.get(d);if(!s||s.item===u||(s.item=u,!(x instanceof HTMLElement))||x[Ve]||x[$e]||x[We])return;let l=A(()=>n(u,s.getIndex));Qn(x,l)&&(eo(x,l),s.element=x)}:(x,u)=>{let d=t(u),s=a.get(d);s&&(s.item=u)},i),C=new Map;for(let x=0;x<T.length;x++){let u=t(T[x]),d=a.get(u);d&&(d.setIndex(x),C.set(u,d))}a=C,f=w.nodes,m=w.items}),c}function te(e,t,n){if(M){let g=e()?t():n?.()??null;return{type:"show",condition:e,whenTrue:t,whenFalse:n,initialBranch:g}}let o=document.createComment("forma-show"),r=document.createComment("/forma-show"),i=document.createDocumentFragment();i.appendChild(o),i.appendChild(r);let c=null,a=null,f=null,m=t.toString().slice(0,60),p=E(()=>{let g=!!e(),h=typeof globalThis.__FORMA_DEBUG__<"u";if(g===a){h&&console.log("[forma:show] skip (same)",g,m);return}h&&console.log("[forma:show]",a,"\u2192",g,m),a=g;let T=o.parentNode;if(!T){h&&console.warn("[forma:show] parentNode is null! skipping.",m);return}if(h&&console.log("[forma:show] parent:",T.nodeName,"inDoc:",document.contains(T)),f&&(f(),f=null),c)if(c.parentNode===T)T.removeChild(c);else for(;o.nextSibling&&o.nextSibling!==r;)T.removeChild(o.nextSibling);let S=g?t:n;if(S){let w;c=H(C=>(w=C,A(()=>S()))),f=w}else c=null;c&&T.insertBefore(c,r)});return i.__showDispose=()=>{p(),f&&(f(),f=null)},i}var M=!1;function xn(e){M=e}function J(e){return e!=null&&typeof e=="object"&&e.type==="element"}function me(e){return e!=null&&typeof e=="object"&&e.type==="show"}function Ge(e){return e!=null&&typeof e=="object"&&e.type==="list"}function no(e,t){if(t)for(let n in t){let o=t[n];if(typeof o!="function")continue;if(n.charCodeAt(0)===111&&n.charCodeAt(1)===110&&n.length>2){e.addEventListener(n.slice(2).toLowerCase(),o);continue}let r=o,i=n;E(()=>{let c=r();c===!1||c==null?e.removeAttribute(i):c===!0?e.setAttribute(i,""):e.setAttribute(i,String(c))})}}function ne(e){if(e instanceof Node)return e;if(e==null||e===!1||e===!0)return null;if(typeof e=="string")return new Text(e);if(typeof e=="number")return new Text(String(e));if(J(e))return z(e);if(me(e)){let t=M;M=!1;try{return te(e.condition,()=>ne(e.whenTrue())??document.createComment("empty"),e.whenFalse?()=>ne(e.whenFalse())??document.createComment("empty"):void 0)}finally{M=t}}if(Ge(e)){let t=M;M=!1;try{return ee(e.items,e.keyFn,e.renderFn,e.options)}finally{M=t}}return null}function z(e){let t=M;M=!1;try{let n=e.children.map(o=>J(o)?z(o):me(o)||Ge(o)?ne(o):o);return re(e.tag,e.props,...n)}finally{M=t}}function oo(e){return e.length>=4&&e.charCodeAt(0)===102&&e.charCodeAt(1)===58&&e.charCodeAt(2)===105}function Ue(e){return e.length>=4&&e.charCodeAt(0)===102&&e.charCodeAt(1)===58&&e.charCodeAt(2)===115}function ro(e){return e.length>=4&&e.charCodeAt(0)===102&&e.charCodeAt(1)===58&&e.charCodeAt(2)===116}function io(e){return e.length>=4&&e.charCodeAt(0)===102&&e.charCodeAt(1)===58&&e.charCodeAt(2)===108}function G(e){let t="/"+e.data,n=e.nextSibling;for(;n;){if(n.nodeType===8&&n.data===t)return n;n=n.nextSibling}return null}function so(e,t){let n=e.nextSibling;for(;n&&n!==t;){if(n.nodeType===3)return n;n=n.nextSibling}return null}function ao(e,t){let n=e.nextSibling;for(;n&&n!==t;){if(n.nodeType===1)return n;n=n.nextSibling}}function co(e,t){let n=document.createDocumentFragment(),o=e.nextSibling;for(;o&&o!==t;){let r=o.nextSibling;n.appendChild(o),o=r}return n}function Sn(e,t){let n=!!e.condition(),o=null,r=null;if(!(t.start.nextSibling!==t.end)&&n){D&&console.warn("[forma] Hydration: show condition mismatch \u2014 SSR empty but client condition is true");let c=e.whenTrue();c instanceof Node&&t.start.parentNode.insertBefore(c,t.end)}E(()=>{let c=!!e.condition();if(c===n)return;n=c;let a=t.start.parentNode;if(!a)return;let f=co(t.start,t.end);c?r=f:o=f;let m=c?o??e.whenTrue():e.whenFalse?r??e.whenFalse():null;c&&o&&(o=null),!c&&r&&(r=null),m!=null&&!(m instanceof Node)&&(m=ne(m)),m instanceof Node&&a.insertBefore(m,t.end)})}function vn(e,t,n){if(J(e)){let o=ao(t,n);o&&oe(e,o)}else if(me(e)){let o=t.nextSibling;for(;o&&o!==n;){if(o.nodeType===8&&Ue(o.data)){let r=o,i=G(r);i&&(e.initialBranch&&vn(e.initialBranch,r,i),Sn(e,{start:r,end:i,cachedContent:null}));break}o=o.nextSibling}}}function oe(e,t){if(!t||t.tagName!==e.tag.toUpperCase()){console.warn(`Hydration mismatch: expected <${e.tag}>, got <${t?.tagName?.toLowerCase()??"nothing"}>`);let o=z(e);t&&t.replaceWith(o);return}no(t,e.props);let n=t.firstChild;for(let o of e.children)if(!(o===!1||o==null))if(J(o)){for(;n&&n.nodeType===3&&!n.data.trim();)n=n.nextSibling;for(;n&&n.nodeType===1&&n.hasAttribute("data-forma-island");)n=n.nextSibling;if(!n){t.appendChild(z(o));continue}if(n.nodeType===1){let r=n;n=n.nextSibling,oe(o,r)}else if(n.nodeType===8&&oo(n.data)){let r=G(n),i=z(o);r?(r.parentNode.insertBefore(i,r),n=r.nextSibling):(t.appendChild(i),n=null)}else t.appendChild(z(o))}else if(me(o)){for(;n&&!(n.nodeType===8&&Ue(n.data));)n=n.nextSibling;if(n){let r=n,i=G(r);i&&(o.initialBranch&&vn(o.initialBranch,r,i),Sn(o,{start:r,end:i,cachedContent:null}),n=i.nextSibling)}}else if(Ge(o)){for(;n&&!(n.nodeType===8&&io(n.data));)n=n.nextSibling;if(n){let r=n,i=G(r);if(i){let c=new Map,a=[],f=r.nextSibling;for(;f&&f!==i;){if(f.nodeType===1){let s=f;a.push(s);let l=s.getAttribute("data-forma-key");l!=null&&c.set(l,s)}f=f.nextSibling}let m=A(()=>o.items()),p=o.keyFn,g=o.renderFn,h=c.size===0&&a.length>0,T=[],S=[],w=new Set;for(let s=0;s<m.length;s++){let l=m[s],y=p(l),v;if(h?s<a.length&&(v=a[s],w.add(s)):(v=c.get(String(y)),v&&c.delete(String(y))),v)T.push(v),S.push(l);else{D&&console.warn(`[FormaJS] Hydration: list item key "${y}" not found in SSR \u2014 rendering fresh`);let b=M;M=!1;try{let[k]=R(s),N=g(l,k);i.parentNode.insertBefore(N,i),T.push(N),S.push(l)}finally{M=b}}}if(h)for(let s=0;s<a.length;s++)!w.has(s)&&a[s].parentNode&&a[s].parentNode.removeChild(a[s]);else for(let[s,l]of c)D&&console.warn(`[FormaJS] Hydration: removing extra SSR list item with key "${s}"`),l.parentNode&&l.parentNode.removeChild(l);let C=r.parentNode;for(let s of T)C.insertBefore(s,i);let x=new Map;for(let s=0;s<S.length;s++){let l=S[s],y=p(l),[v,b]=R(s);x.set(y,{element:T[s],item:l,getIndex:v,setIndex:b})}let u=T.slice(),d=S.slice();E(()=>{let s=o.items(),l=r.parentNode;if(!l)return;let y=U(l,d,s,u,p,b=>{let k=M;M=!1;try{let N=p(b),[P,be]=R(0),ce=A(()=>g(b,P));return x.set(N,{element:ce,item:b,getIndex:P,setIndex:be}),ce}finally{M=k}},(b,k)=>{let N=p(k),P=x.get(N);P&&(P.item=k)},i),v=new Map;for(let b=0;b<s.length;b++){let k=p(s[b]),N=x.get(k);N&&(N.setIndex(b),v.set(k,N))}x=v,u=y.nodes,d=y.items}),n=i.nextSibling}}}else if(typeof o=="function"){for(;n&&n.nodeType===3&&!n.data.trim();)n=n.nextSibling;if(n&&n.nodeType===1){let r=o();if(J(r)){let i=n;n=n.nextSibling,oe(r,i);continue}}if(n&&n.nodeType===8){let r=n.data;if(ro(r)){let i=G(n),c=n.nextSibling;if(!c||c.nodeType!==3){D&&console.warn(`[FormaJS] Hydration: created text node for marker ${r} \u2014 SSR walker should emit content between markers`);let a=document.createTextNode("");n.parentNode.insertBefore(a,i||n.nextSibling),c=a}E(()=>{c.data=String(o())}),n=i?i.nextSibling:c.nextSibling}else if(Ue(r)){let i=n,c=G(i);if(c){let a=so(i,c);a||(D&&console.warn(`[FormaJS] Hydration: created text node for show marker ${i.data} \u2014 SSR walker should emit content between markers`),a=document.createTextNode(""),i.parentNode.insertBefore(a,c)),E(()=>{a.data=String(o())}),n=c.nextSibling}else n=n.nextSibling}else n=n.nextSibling}else if(n&&n.nodeType===3){let r=n;n=n.nextSibling,E(()=>{r.data=String(o())})}else{D&&console.warn(`[FormaJS] Hydration: created text node in empty <${t.tagName.toLowerCase()}> \u2014 IR may not cover this component`);let r=document.createTextNode("");t.appendChild(r),E(()=>{r.data=String(o())})}}else(typeof o=="string"||typeof o=="number")&&n&&n.nodeType===3&&(n=n.nextSibling)}function K(e,t){if(!(t.childElementCount>0||t.childNodes.length>0&&Array.from(t.childNodes).some(r=>r.nodeType===1||r.nodeType===3&&r.data.trim()))){if(D){let i=t.getAttribute("data-forma-component")||"unknown";console.warn(`[forma] Island "${i}" has no SSR content \u2014 falling back to CSR. This means the IR walker did not render content between ISLAND_START and ISLAND_END.`)}let r=e();if(r instanceof Element){for(let i of Array.from(t.attributes))i.name.startsWith("data-forma-")&&r.setAttribute(i.name,i.value);return t.replaceWith(r),r}else r instanceof Node&&t.appendChild(r);return t}xn(!0);let o;try{o=e()}finally{xn(!1)}return!o||!J(o)?(t.removeAttribute("data-forma-ssr"),t):(t.hasAttribute("data-forma-island")?oe(o,t):oe(o,t.children[0]),t.removeAttribute("data-forma-ssr"),t)}var lo="http://www.w3.org/2000/svg",ie="http://www.w3.org/1999/xlink",fo=new Set(["svg","path","circle","rect","line","polyline","polygon","ellipse","g","text","tspan","textPath","defs","use","symbol","clipPath","mask","pattern","marker","linearGradient","radialGradient","stop","filter","feGaussianBlur","feColorMatrix","feOffset","feBlend","feMerge","feMergeNode","feComposite","feFlood","feMorphology","feTurbulence","feDisplacementMap","feImage","foreignObject","animate","animateTransform","animateMotion","set","image","switch","desc","title","metadata"]),wn=new Set(["disabled","checked","readonly","required","autofocus","autoplay","controls","default","defer","formnovalidate","hidden","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","reversed","selected","async"]),B=null;function uo(e){if(!B){B=Object.create(null);for(let t of["div","span","p","a","li","ul","ol","button","input","label","h1","h2","h3","h4","h5","h6","section","header","footer","main","nav","table","tr","td","th","tbody","img","form","select","option","textarea","i","b","strong","em","small","article","aside","details","summary"])B[t]=document.createElement(t)}return B[e]??(B[e]=document.createElement(e))}var bn=Object.create(null);function po(e){return bn[e]??(bn[e]=e.slice(2).toLowerCase())}var ge=Symbol.for("forma-abort");function mo(e){let t=e[ge];return t||(t=new AbortController,e[ge]=t),t}function Je(e){let t=e[ge];t&&(t.abort(),delete e[ge])}var ze=Symbol.for("forma-attr-cache"),go=Symbol.for("forma-dynamic-child");function O(e){return e[ze]??(e[ze]=Object.create(null))}function qe(e,t,n){if(typeof n=="function")E(()=>{let o=n(),r=O(e);r.class!==o&&(r.class=o,e instanceof HTMLElement?e.className=o:e.setAttribute("class",o))});else{let o=O(e);if(o.class===n)return;o.class=n,e instanceof HTMLElement?e.className=n:e.setAttribute("class",n)}}function yo(e,t,n){if(typeof n=="function"){let o=[];E(()=>{let r=n();if(typeof r=="string"){let i=O(e);if(i.style===r)return;i.style=r,o=[],e.style.cssText=r}else if(r&&typeof r=="object"){let i=e.style,c=Object.keys(r);for(let a of o)a in r||i.removeProperty(a.replace(/[A-Z]/g,f=>"-"+f.toLowerCase()));Object.assign(i,r),o=c}})}else if(typeof n=="string"){let o=O(e);if(o.style===n)return;o.style=n,e.style.cssText=n}else n&&typeof n=="object"&&Object.assign(e.style,n)}function Cn(e,t,n){let o=mo(e);e.addEventListener(po(t),n,{signal:o.signal})}function ho(e,t,n){let o=n;e.innerHTML=o.__html}function To(e,t,n){let o=t.slice(6);typeof n=="function"?E(()=>{let r=n();r==null||r===!1?e.removeAttributeNS(ie,o):e.setAttributeNS(ie,t,String(r))}):n==null||n===!1?e.removeAttributeNS(ie,o):e.setAttributeNS(ie,t,String(n))}function xo(e,t,n){if(typeof n=="function")E(()=>{let o=n(),r=O(e);r[t]!==o&&(r[t]=o,o?e.setAttribute(t,""):e.removeAttribute(t))});else{let o=O(e);if(o[t]===n)return;o[t]=n,n?e.setAttribute(t,""):e.removeAttribute(t)}}function So(e,t,n){if(typeof n=="function")E(()=>{let o=n();if(o==null||o===!1){let r=O(e);if(r[t]===null)return;r[t]=null,e.removeAttribute(t)}else{let r=String(o),i=O(e);if(i[t]===r)return;i[t]=r,e.setAttribute(t,r)}});else if(n==null||n===!1){let o=O(e);if(o[t]===null)return;o[t]=null,e.removeAttribute(t)}else{let o=String(n),r=O(e);if(r[t]===o)return;r[t]=o,e.setAttribute(t,o)}}var j=new Map;j.set("class",qe);j.set("className",qe);j.set("style",yo);j.set("ref",()=>{});j.set("dangerouslySetInnerHTML",ho);for(let e of wn)j.set(e,xo);function vo(e,t,n){if(t==="class"){qe(e,t,n);return}if(t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&t.length>2){Cn(e,t,n);return}let o=j.get(t);if(o){o(e,t,n);return}if(t.charCodeAt(0)===120&&t.startsWith("xlink:")){To(e,t,n);return}So(e,t,n)}function bo(e,t,n){if(!(n==null||n===!1)){if(t==="class"||t==="className"){e.className=n;return}if(t==="style"){typeof n=="string"?e.style.cssText=n:n&&typeof n=="object"&&Object.assign(e.style,n);return}if(t==="dangerouslySetInnerHTML"){e.innerHTML=n.__html;return}if(t.charCodeAt(0)===120&&t.startsWith("xlink:")){e.setAttributeNS(ie,t,String(n));return}if(wn.has(t)){n&&e.setAttribute(t,"");return}n===!0?e.setAttribute(t,""):e.setAttribute(t,String(n))}}function ye(e,t){if(t instanceof Node){e.appendChild(t);return}if(typeof t=="string"){e.appendChild(new Text(t));return}if(!(t==null||t===!1||t===!0)){if(typeof t=="number"){e.appendChild(new Text(String(t)));return}if(typeof t=="function"){e instanceof Element&&(e[go]=!0);let n=null;E(()=>{let o=t();if(o instanceof Node)n?e.replaceChild(o,n):e.appendChild(o),n=o;else{let r=String(typeof o=="symbol"?o:o??"");if(!n)n=new Text(r),e.appendChild(n);else if(n.nodeType===3)n.data=r;else{let i=new Text(r);e.replaceChild(i,n),n=i}}});return}if(Array.isArray(t)){for(let n of t)ye(e,n);return}}}function re(e,t,...n){if(M)return{type:"element",tag:e,props:t??null,children:n};let o;if(B&&B[e]?o=B[e].cloneNode(!1):fo.has(e)?o=document.createElementNS(lo,e):o=uo(e).cloneNode(!1),t){let i=!1;for(let c in t){if(c==="ref")continue;let a=t[c];if(c.charCodeAt(0)===111&&c.charCodeAt(1)===110&&c.length>2){Cn(o,c,a);continue}if(typeof a=="function"){i||(o[ze]=Object.create(null),i=!0),vo(o,c,a);continue}bo(o,c,a)}}let r=n.length;if(r===1){let i=n[0];typeof i=="string"?o.textContent=i:typeof i=="number"?o.textContent=String(i):ye(o,i)}else if(r>1)for(let i of n)ye(o,i);return t&&typeof t.ref=="function"&&t.ref(o),o}function Ye(...e){let t=document.createDocumentFragment();for(let n of e)ye(t,n);return t}function Xe(e){if(typeof e=="function"){let t=new Text("");return E(()=>{t.data=e()}),t}return new Text(e)}function Ze(e,t){let n=typeof t=="string"?document.querySelector(t):t;if(!n)throw new Error(`mount: container not found \u2014 "${t}"`);let o;if(n.hasAttribute("data-forma-ssr"))H(i=>{o=i,K(e,n)});else{let i=H(c=>(o=c,e()));n.innerHTML="",n.appendChild(i)}let r=!1;return()=>{r||(r=!0,o(),n.innerHTML="")}}function Qe(e,t,n){let o=document.createComment("forma-switch"),r=document.createComment("/forma-switch"),i=document.createDocumentFragment();i.appendChild(o),i.appendChild(r);let c=new Map,a=null,f=wo,m=E(()=>{let p=e();if(p===f)return;let g=typeof globalThis.__FORMA_DEBUG__<"u";g&&console.log("[forma:switch] transition",String(f),"\u2192",String(p)),f=p;let h=o.parentNode;if(!h){g&&console.warn("[forma:switch] markers not in DOM yet, skipping");return}if(a)if(a.parentNode===h)g&&console.log("[forma:switch] removing single node"),h.removeChild(a);else if(a.nodeType===11){g&&console.log("[forma:switch] scooping nodes back into fragment");let S=0;for(;o.nextSibling&&o.nextSibling!==r;)a.appendChild(o.nextSibling),S++;g&&console.log("[forma:switch] scooped",S,"nodes back into fragment")}else for(g&&console.log("[forma:switch] clearing detached node between markers");o.nextSibling&&o.nextSibling!==r;)h.removeChild(o.nextSibling);let T=t.find(S=>S.match===p);if(T){let S=c.get(p);if(S)g&&console.log("[forma:switch] reusing cached branch for",String(p),"\u2192",S.node.nodeName,"type",S.node.nodeType,"childNodes",S.node.childNodes?.length);else{let w,C=H(x=>(w=x,A(()=>T.render())));S={node:C,dispose:w},c.set(p,S),g&&console.log("[forma:switch] rendered new branch for",String(p),"\u2192",C.nodeName,"type",C.nodeType)}a=S.node}else a=n?.()??null,g&&console.log("[forma:switch] no match, using fallback");a&&(h.insertBefore(a,r),g&&console.log("[forma:switch] inserted",a.nodeName,"before end marker"))});return i.__switchDispose=()=>{m();for(let p of c.values())p.dispose();c.clear()},i}var wo=Symbol("unset");function et(e,t){let n=document.createComment("forma-portal"),o=typeof t=="string"?document.querySelector(t):t??document.body;if(!o)throw new Error(`createPortal: target not found: ${t}`);let r=null,i=()=>{r&&r.parentNode===o&&o.removeChild(r),r=null};return X(()=>{let c=e();return i(),r=c,o.appendChild(c),()=>{i()}}),n}function tt(e,t){let n=document.createComment("forma-error-boundary"),o=document.createComment("/forma-error-boundary"),r=document.createDocumentFragment();r.appendChild(n),r.appendChild(o);let[i,c]=R(0),a=null;return E(()=>{i();let f=n.parentNode;if(f){a&&a.parentNode===f&&f.removeChild(a);try{a=e()}catch(m){let p=m instanceof Error?m:new Error(String(m));a=t(p,()=>c(h=>h+1))}a&&f.insertBefore(a,o)}}),r}function nt(e,t){let n=document.createComment("forma-suspense"),o=document.createComment("/forma-suspense"),r=document.createDocumentFragment();r.appendChild(n),r.appendChild(o);let[i,c]=R(0),a=null,f=null,m=null;yn({increment(){c(g=>g+1)},decrement(){c(g=>Math.max(0,g-1))}});try{f=t()}finally{hn()}return E(()=>{let g=n.parentNode;if(!g)return;let T=i()>0?m??=e():f;T!==a&&(a&&a.parentNode===g&&g.removeChild(a),T&&g.insertBefore(T,o),a=T)}),r}function Co(e,t,n){let o=e.getAttribute("data-forma-props");return o?JSON.parse(o):n&&String(t)in n?n[String(t)]:null}function ot(e){let t=document.getElementById("__forma_islands"),n=t?JSON.parse(t.textContent):null,o=document.querySelectorAll("[data-forma-island]");for(let r of o){let i=parseInt(r.getAttribute("data-forma-island"),10),c=r.getAttribute("data-forma-component"),a=e[c];if(!a){console.warn(`[forma] No hydrate function for island "${c}" (id=${i})`),r.setAttribute("data-forma-status","error");continue}let f=r.getAttribute("data-forma-hydrate")||"load";if((f==="interaction"||f==="idle")&&console.warn(`[forma] Trigger "${f}" not yet implemented for island "${c}" (id=${i}), falling back to load`),f==="visible"){let m=new IntersectionObserver(p=>{for(let g of p)g.isIntersecting&&(m.disconnect(),En(r,i,c,a,n))},{rootMargin:"200px"});m.observe(r)}else En(r,i,c,a,n)}}function En(e,t,n,o,r){try{let i=Co(e,t,r);e.setAttribute("data-forma-status","hydrating");let c=e;H(a=>{c=K(()=>o(i),e),c.__formaDispose=a}),c.setAttribute("data-forma-status","active")}catch(i){console.error(`[forma] Island "${n}" (id=${t}) failed:`,i),e.setAttribute("data-forma-status","error")}}var F=null,Rn=[];function Eo(e){Rn.push(F),F=e}function Ro(){F=Rn.pop()??null}function rt(e){if(F===null)throw new Error("onMount() must be called inside a component setup function");F.mountCallbacks.push(e)}function it(e){if(F===null)throw new Error("onUnmount() must be called inside a component setup function");F.unmountCallbacks.push(e)}var he=Symbol("forma:component:dispose");function st(e){let t=typeof e=="function"?e:e.setup,n=typeof e=="function"?void 0:e.name;return function(){let r={disposers:[],mountCallbacks:[],unmountCallbacks:[]};Eo(r);let i;try{i=t()}finally{Ro()}let c=()=>{for(let a of r.unmountCallbacks)try{a()}catch{}for(let a of r.disposers)try{a()}catch{}r.disposers.length=0,r.mountCallbacks.length=0,r.unmountCallbacks.length=0};i[he]=c;for(let a of r.mountCallbacks)try{let f=a();typeof f=="function"&&r.unmountCallbacks.push(f)}catch{}return i}}function at(e){let t=e;typeof t[he]=="function"&&(t[he](),delete t[he])}function ct(e){F!==null&&F.disposers.push(e)}var se=new Map;function lt(e){return{id:Symbol("forma:context"),defaultValue:e}}function ft(e,t){let n=se.get(e.id);n===void 0&&(n=[],se.set(e.id,n)),n.push(t)}function ut(e){let t=se.get(e.id);return t===void 0||t.length===0?e.defaultValue:t[t.length-1]}function dt(e){let t=se.get(e.id);t!==void 0&&t.length>0&&(t.pop(),t.length===0&&se.delete(e.id))}var ae=Symbol("forma-raw"),Mn=Symbol("forma-proxy"),ko=new Set(["push","pop","shift","unshift","splice","sort","reverse","fill","copyWithin"]);function kn(e){return!(e==null||typeof e!="object"||e instanceof Date||e instanceof RegExp||e instanceof Map||e instanceof Set||e instanceof WeakMap||e instanceof WeakSet||e instanceof Error||e instanceof Promise||e[Mn])}function pt(e){if(e==null||typeof e!="object")return e;if(Array.isArray(e))return e.map(pt);if(e instanceof Date)return new Date(e.getTime());let t={};for(let n of Object.keys(e))t[n]=pt(e[n]);return t}function mt(e){let t=new Map,n=new Map;function o(g){let h=g.lastIndexOf(".");if(h===-1)return;let T=g.substring(0,h),S=n.get(T);S||(S=new Set,n.set(T,S)),S.add(g)}function r(g,h){let T=t.get(g);return T||(T=R(h),t.set(g,T),o(g)),T}let i=new WeakMap;function c(g){let h=n.get(g);if(h){for(let T of h)c(T),t.delete(T),n.delete(T);h.clear()}}function a(g,h){if(!kn(g))return g;let T=i.get(g);if(T)return T;let S=Array.isArray(g),w=h?h+".":"",C="",x,u=new Proxy(g,{get(d,s,l){if(s===ae)return d;if(s===Mn)return!0;if(typeof s=="symbol")return Reflect.get(d,s,l);let y=String(s),v=w+y;if(S&&ko.has(y))return(...N)=>{let P;return _(()=>{let be=N.map(q=>q!=null&&typeof q=="object"&&q[ae]?q[ae]:q);P=d[y].apply(d,be),c(h);let[,ce]=r(w+"length",d.length);ce(d.length)}),P};if(S&&y==="length"){let[N]=r(v,d.length);return N(),d.length}let b=Reflect.get(d,s),k;return y===C&&x?k=x:(k=r(v,b),C=y,x=k),k[0](),kn(b)?a(b,v):b},set(d,s,l){if(typeof s=="symbol")return Reflect.set(d,s,l);let y=String(s),v=w+y,b=l!=null&&typeof l=="object"&&l[ae]?l[ae]:l;if(Reflect.set(d,s,b),b!=null&&typeof b=="object"&&c(v),S&&y!=="length"){let N=w+"length",P=t.get(N);P&&P[1](d.length)}let[,k]=r(v,b);return k(b),!0},has(d,s){if(typeof s=="symbol")return Reflect.has(d,s);let l=String(s),y=w+l,[v]=r(y,Reflect.get(d,s));return v(),Reflect.has(d,s)},ownKeys(d){return Reflect.ownKeys(d)},getOwnPropertyDescriptor(d,s){return Object.getOwnPropertyDescriptor(d,s)},deleteProperty(d,s){if(typeof s=="symbol")return Reflect.deleteProperty(d,s);let l=String(s),y=w+l,v=Reflect.deleteProperty(d,s);c(y),t.delete(y);let b=h;if(b!==void 0){let k=n.get(b);k&&(k.delete(y),k.size===0&&n.delete(b))}return n.delete(y),v}});return i.set(g,u),u}let f=a(e,"");function m(){return A(()=>pt(e))}return[f,g=>{let h=typeof g=="function"?g(m()):g;_(()=>{for(let T of Object.keys(h))f[T]=h[T]})}]}function gt(e,t){let[n,o]=e,r=t?.maxLength??100,i=[n()],c=0,[a,f]=I([...i]),[m,p]=I(c),[g,h]=I(i.length);function T(){_(()=>{f([...i]),p(c),h(i.length)})}let S=!1,w=!0;return E(()=>{let l=n();if(w){w=!1;return}if(S){S=!1;return}i=i.slice(0,c+1),i.push(l),i.length>r&&i.splice(0,i.length-r),c=i.length-1,T()}),{undo:()=>{c<=0||(c--,S=!0,o(i[c]),T())},redo:()=>{c>=i.length-1||(c++,S=!0,o(i[c]),T())},canUndo:()=>m()>0,canRedo:()=>m()<g()-1,history:()=>a(),cursor:()=>m(),clear:()=>{i=[n()],c=0,T()}}}function yt(e,t,n){let[o,r]=e,i=n?.storage??globalThis.localStorage,c=n?.serialize??JSON.stringify,a=n?.deserialize??JSON.parse;try{let f=i.getItem(t);if(f!==null){let m=a(f);r(m)}}catch{}E(()=>{let f=o();try{let m=c(f);i.setItem(t,m)}catch{}})}function ht(){let e=new Map;function t(a){let f=e.get(a);return f||(f=new Set,e.set(a,f)),f}function n(a,f){let m=t(a);return m.add(f),()=>{m.delete(f)}}function o(a,f){let m=p=>{i(a,m),f(p)};return n(a,m)}function r(a,f){let m=e.get(a);if(m)for(let p of[...m])try{p(f)}catch(g){console.error(`[forma] Bus handler error on "${String(a)}":`,g)}}function i(a,f){let m=e.get(a);m&&m.delete(f)}function c(){e.clear()}return{on:n,once:o,emit:r,off:i,clear:c}}function Tt(e,t,n,o,r){let i=c=>{let a=c.target;if(!(a instanceof HTMLElement))return;let f=e instanceof Document?e.documentElement:e,m=a.closest(t);m instanceof HTMLElement&&f.contains(m)&&o(c,m)};return e.addEventListener(n,i,r),()=>{e.removeEventListener(n,i,r)}}function Mo(e){let t=e.toLowerCase().split("+").map(o=>o.trim()),n={ctrl:!1,shift:!1,alt:!1,meta:!1,key:""};for(let o of t)switch(o){case"ctrl":case"control":n.ctrl=!0;break;case"shift":n.shift=!0;break;case"alt":n.alt=!0;break;case"meta":case"cmd":case"command":n.meta=!0;break;default:n.key=o}return n}function No(e,t){return e.ctrlKey!==t.ctrl||e.shiftKey!==t.shift||e.altKey!==t.alt||e.metaKey!==t.meta?!1:e.key.toLowerCase()===t.key}function xt(e,t,n){let o=n?.target??document,r=n?.preventDefault??!0,i=Mo(e),c=a=>{a instanceof KeyboardEvent&&No(a,i)&&(r&&a.preventDefault(),t(a))};return o.addEventListener("keydown",c),()=>{o.removeEventListener("keydown",c)}}function St(e,t){return(t??document).querySelector(e)}function vt(e,t){return Array.from((t??document).querySelectorAll(e))}function bt(e,...t){e.classList.add(...t)}function wt(e,...t){e.classList.remove(...t)}function Ct(e,t,n){return e.classList.toggle(t,n)}function Et(e,t){for(let[n,o]of Object.entries(t))o!==void 0&&(e.style[n]=o)}function Rt(e,t){for(let[n,o]of Object.entries(t))o===!1||o===null?e.removeAttribute(n):o===!0?e.setAttribute(n,""):e.setAttribute(n,o)}function kt(e,t){e.textContent=t}function Mt(e,t){e.innerHTML=t}function Nt(e,t){return e.closest(t)}function At(e,t){let n=Array.from(e.children);return t?n.filter(o=>o.matches(t)):n}function Lt(e,t){let n=e.parentElement;if(!n)return[];let r=Array.from(n.children).filter(i=>i!==e);return t?r.filter(i=>i.matches(t)):r}function Dt(e){return e.parentElement}function Ht(e,t){let n=e.nextElementSibling;for(;n;){if(n instanceof HTMLElement&&(!t||n.matches(t)))return n;n=n.nextElementSibling}return null}function _t(e,t){let n=e.previousElementSibling;for(;n;){if(n instanceof HTMLElement&&(!t||n.matches(t)))return n;n=n.previousElementSibling}return null}function Pt(e,t){let n=new ResizeObserver(o=>{for(let r of o)t(r)});return n.observe(e),()=>{n.disconnect()}}function It(e,t,n){let o=new IntersectionObserver(r=>{for(let i of r)t(i)},n);return o.observe(e),()=>{o.disconnect()}}function Ot(e,t,n){let o=new MutationObserver(r=>{t(r)});return o.observe(e,n??{childList:!0,subtree:!0}),()=>{o.disconnect()}}function Ft(e,t){let n=t?.serialize??JSON.stringify,o=t?.deserialize??JSON.parse;return{key:e,get(){try{let r=localStorage.getItem(e);return r===null?null:o(r)}catch{return null}},set(r){let i=n(r);localStorage.setItem(e,i)},remove(){localStorage.removeItem(e)}}}function Bt(e,t){let n=t?.serialize??JSON.stringify,o=t?.deserialize??JSON.parse;return{key:e,get(){try{let r=sessionStorage.getItem(e);return r===null?null:o(r)}catch{return null}},set(r){let i=n(r);sessionStorage.setItem(e,i)},remove(){sessionStorage.removeItem(e)}}}var Kt=new Map;function Ao(e,t){let n=`${e}::${t}`,o=Kt.get(n);if(o)return o;let r=new Promise((i,c)=>{let a=indexedDB.open(e);a.onerror=()=>c(a.error),a.onsuccess=()=>{let f=a.result;if(f.objectStoreNames.contains(t)){i(f);return}let m=f.version+1;f.close();let p=indexedDB.open(e,m);p.onerror=()=>c(p.error),p.onupgradeneeded=()=>{let g=p.result;g.objectStoreNames.contains(t)||g.createObjectStore(t)},p.onsuccess=()=>i(p.result)},a.onupgradeneeded=()=>{let f=a.result;f.objectStoreNames.contains(t)||f.createObjectStore(t)}});return Kt.set(n,r),r.catch(()=>{Kt.delete(n)}),r}function jt(e,t="default"){function n(o,r){return Ao(e,t).then(i=>new Promise((c,a)=>{let m=i.transaction(t,o).objectStore(t),p=r(m);p.onsuccess=()=>c(p.result),p.onerror=()=>a(p.error)}))}return{get(o){return n("readonly",r=>r.get(o))},set(o,r){return n("readwrite",i=>i.put(r,o)).then(()=>{})},delete(o){return n("readwrite",r=>r.delete(o)).then(()=>{})},getAll(){return n("readonly",o=>o.getAll())},keys(){return n("readonly",o=>o.getAllKeys()).then(o=>o.map(String))},clear(){return n("readwrite",o=>o.clear()).then(()=>{})}}}function Vt(e,t){let[n,o]=R(null),[r,i]=R(null),[c,a]=R(!1),f=null;function m(){let g=typeof e=="function"?e():e,h=t?.base??"",T=new URL(g,h||void 0);if(t?.params)for(let[S,w]of Object.entries(t.params))T.searchParams.set(S,w);return T.toString()}async function p(){f&&f.abort(),f=new AbortController;let g=f,h=t?.timeout??3e4,T=setTimeout(()=>g.abort(),h);a(!0),i(null);try{let S=m(),{base:w,params:C,timeout:x,transform:u,...d}=t??{},s=await fetch(S,{...d,signal:g.signal});if(!s.ok)throw new Error(`HTTP ${s.status}: ${s.statusText}`);let l=await s.json(),y=u?u(l):l;o(y)}catch(S){if(S?.name==="AbortError")return;i(S instanceof Error?S:new Error(String(S)))}finally{clearTimeout(T),f===g&&(f=null,a(!1))}}return typeof e=="function"?E(()=>{e(),p()}):p(),{data:n,error:r,loading:c,refetch:p,abort(){f&&f.abort()}}}async function $t(e,t){let n=await fetch(e,t);if(!n.ok)throw new Error(`HTTP ${n.status}: ${n.statusText}`);return await n.json()}function Wt(e,t){let[n,o]=R(null),[r,i]=R(null),[c,a]=R(!1),f=new EventSource(e,{withCredentials:t?.withCredentials??!1});return f.onopen=()=>{a(!0),i(null)},f.onmessage=m=>{try{let p=JSON.parse(m.data);o(p)}catch{o(m.data)}},f.onerror=m=>{i(m),a(!1)},{data:n,error:r,connected:c,close(){f.close(),a(!1)},on(m,p){let g=h=>{try{p(JSON.parse(h.data))}catch{p(h.data)}};return f.addEventListener(m,g),()=>{f.removeEventListener(m,g)}}}}function Ut(e,t){let n=t?.reconnect??!0,o=t?.reconnectInterval??1e3,r=t?.maxReconnects??5,[i,c]=R(null),[a,f]=R("connecting"),m=new Set,p=null,g=0,h=null,T=!1;function S(){T||(f("connecting"),p=new WebSocket(e,t?.protocols),p.onopen=()=>{f("open"),g=0},p.onmessage=w=>{let C;try{C=JSON.parse(w.data)}catch{C=w.data}c(C);for(let x of m)x(C)},p.onerror=()=>{f("error")},p.onclose=()=>{if(T){f("closed");return}if(f("closed"),n&&g<r){let w=o*Math.pow(2,g);g++,h=setTimeout(S,w)}})}return S(),{data:i,status:a,send(w){p&&p.readyState===WebSocket.OPEN&&p.send(JSON.stringify(w))},close(){T=!0,h!==null&&(clearTimeout(h),h=null),p&&(p.close(),p=null),f("closed")},on(w){return m.add(w),()=>{m.delete(w)}}}}function Gt(e,t){let[n,o]=I(!1),[r,i]=I(void 0),a=async(...f)=>{if(o(!0),i(void 0),t?.optimistic)try{_(()=>t.optimistic(...f))}catch{}try{let m=await e(...f);if(t?.onSuccess&&_(()=>t.onSuccess(m,...f)),t?.invalidates)for(let p of t.invalidates)p.refetch();return o(!1),m}catch(m){if(t?.onError)try{_(()=>t.onError(m,...f))}catch{}throw i(m),o(!1),m}};return a.pending=n,a.error=r,a.clearError=()=>i(void 0),a}var zt=new Map;function Jt(e,t){zt.set(e,t)}function qt(e){zt.delete(e)}function Te(e){for(let[t,n]of Object.entries(e)){let o=zt.get(t);o&&o.mutate(n)}}function Yt(){let e=t=>{let n=t.detail;n&&typeof n=="object"&&Te(n)};return window.addEventListener("forma:revalidate",e),()=>window.removeEventListener("forma:revalidate",e)}function Xt(e,t){return{data:e,__revalidate:t}}function Zt(e){return async(...n)=>{let o=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json","X-Forma-RPC":"1"},body:JSON.stringify({args:n})});if(!o.ok){let i=await o.text();throw new Error(`Server function failed (${o.status}): ${i}`)}let r=await o.json();return r&&typeof r=="object"&&"__revalidate"in r?(typeof window<"u"&&window.dispatchEvent(new CustomEvent("forma:revalidate",{detail:r.__revalidate})),r.data):r}}var xe=new Map;function Qt(e,t){xe.set(e,t)}function en(e){return xe.get(e)}function tn(){return[...xe.keys()]}var Lo=new Set(["__proto__","constructor","prototype"]);async function Se(e,t,n){let o=e.split("/").pop()??"";if(Lo.has(o))return{error:"Forbidden endpoint name"};let r=xe.get(e);if(!r)return{error:`Unknown server function: ${e}`};try{let i=await r(...t.args);return n?{data:i,__revalidate:n}:i}catch(i){return{error:i instanceof Error?i.message:String(i)}}}function nn(){return async(e,t)=>{if(e.method!=="POST"){t.status(405).json({error:"Method not allowed"});return}let n=e.body;if(!n||!Array.isArray(n.args)){t.status(400).json({error:"Invalid RPC request: missing args array"});return}let o=await Se(e.url,n);o.error?t.status(500).json(o):t.json(o)}}var ve=null,Nn=new Map;async function An(){if(ve)return ve;let e=window.__FORMA_WASM__;if(!e)throw new Error("No __FORMA_WASM__ config");let t=await import(e.loader);return await t.default(e.binary),ve=t,ve}async function Ln(){let e=window.__FORMA_WASM__;if(!e)throw new Error("No __FORMA_WASM__ config");let t=Nn.get(e.ir);if(t)return t;let n=await fetch(e.ir),o=new Uint8Array(await n.arrayBuffer());return Nn.set(e.ir,o),o}async function Dn(e){let[t,n]=await Promise.all([An(),Ln()]);return t.render(n,e)}async function Hn(e,t){let[n,o]=await Promise.all([An(),Ln()]);return n.render_island(o,e,t)}return Bn(Do);})();
1
+ "use strict";var FormaJS=(()=>{var Ce=Object.defineProperty;var Pn=Object.getOwnPropertyDescriptor;var In=Object.getOwnPropertyNames;var On=Object.prototype.hasOwnProperty;var Fn=(e,t)=>{for(var n in t)Ce(e,n,{get:t[n],enumerable:!0})},Bn=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of In(t))!On.call(e,r)&&r!==n&&Ce(e,r,{get:()=>t[r],enumerable:!(o=Pn(t,r))||o.enumerable});return e};var Kn=e=>Bn(Ce({},"__esModule",{value:!0}),e);var Ho={};Fn(Ho,{$:()=>vt,$$:()=>bt,$$serverFunction:()=>Qt,Fragment:()=>he,activateIslands:()=>rt,addClass:()=>wt,applyRevalidation:()=>xe,batch:()=>_,children:()=>Lt,cleanup:()=>qe,closest:()=>At,createAction:()=>zt,createBus:()=>Tt,createComputed:()=>Z,createContext:()=>ft,createEffect:()=>X,createErrorBoundary:()=>nt,createFetch:()=>$t,createHistory:()=>yt,createIndexedDB:()=>Vt,createList:()=>ee,createLocalStorage:()=>Bt,createMemo:()=>Fe,createPortal:()=>tt,createRPCMiddleware:()=>on,createReducer:()=>je,createRef:()=>Ke,createResource:()=>Ve,createRoot:()=>H,createSSE:()=>Ut,createSessionStorage:()=>Kt,createShow:()=>te,createSignal:()=>R,createStore:()=>gt,createSuspense:()=>ot,createSwitch:()=>et,createText:()=>Ze,createWebSocket:()=>Gt,defineComponent:()=>at,delegate:()=>xt,disposeComponent:()=>ct,enableAutoRevalidation:()=>Xt,fetchJSON:()=>Wt,fragment:()=>Xe,getRegisteredEndpoints:()=>nn,getServerFunction:()=>tn,h:()=>re,handleRPC:()=>ve,hydrateIsland:()=>K,inject:()=>dt,longestIncreasingSubsequence:()=>Q,mount:()=>Qe,nextSibling:()=>_t,on:()=>Be,onCleanup:()=>De,onError:()=>Pe,onIntersect:()=>Ot,onKey:()=>St,onMount:()=>it,onMutation:()=>Ft,onResize:()=>It,onUnmount:()=>st,parent:()=>Ht,persist:()=>ht,prevSibling:()=>Pt,provide:()=>ut,reconcileList:()=>U,registerResource:()=>qt,registerServerFunction:()=>en,removeClass:()=>Ct,renderIsland:()=>_n,renderLocal:()=>Hn,setAttr:()=>kt,setHTML:()=>Nt,setStyle:()=>Rt,setText:()=>Mt,siblings:()=>Dt,toggleClass:()=>Et,trackDisposer:()=>lt,unprovide:()=>pt,unregisterResource:()=>Yt,untrack:()=>A,withRevalidation:()=>Zt});var jn=(e=>(e[e.Computed=1]="Computed",e[e.Effect=2]="Effect",e[e.Tracking=4]="Tracking",e[e.Notified=8]="Notified",e[e.Recursed=16]="Recursed",e[e.Dirty=32]="Dirty",e[e.PendingComputed=64]="PendingComputed",e[e.PendingEffect=128]="PendingEffect",e[e.Propagated=224]="Propagated",e))(jn||{});function Vn({updateComputed:e,notifyEffect:t}){let n=[],o=0,r=0;return{link:s,propagate:c,updateDirtyFlag:m,startTracking:a,endTracking:l,processEffectNotifications:h,processComputedUpdate:p,processPendingInnerEffects:g};function s(u,d){let i=d.depsTail;if(i!==void 0&&i.dep===u)return;let f=i!==void 0?i.nextDep:d.deps;if(f!==void 0&&f.dep===u){d.depsTail=f;return}let y=u.subsTail;if(!(y!==void 0&&y.sub===d&&C(y,d)))return T(u,d,f,i)}function c(u){let d=u.nextSub,i,f=0,y=32;e:do{let v=u.sub,b=v.flags,k=!1;if(b&244?b&16&&!(b&4)?(v.flags=b&-17|y|8,k=!0):!(b&224)&&C(u,v)&&(v.flags=b|16|y|8,k=v.subs!==void 0):(v.flags=b|y|8,k=!0),k){let N=v.subs;if(N!==void 0){u=N,N.nextSub!==void 0?(i={target:d,linked:i},++f,d=u.nextSub,y=64):y=b&2?128:64;continue}b&2&&(n[r++]=v)}else b&(4|y)?!(b&y)&&b&224&&C(u,v)&&(v.flags=b|y):(v.flags=b|y|8,(b&10)===2&&(n[r++]=v));if((u=d)!==void 0){d=u.nextSub,y=f?64:32;continue}for(;f--;)if(u=i.target,i=i.linked,u!==void 0){d=u.nextSub,y=f?64:32;continue e}break}while(!0)}function a(u){u.depsTail=void 0,u.flags=u.flags&-249|4}function l(u){let d=u.depsTail;if(d!==void 0){let i=d.nextDep;i!==void 0&&(x(i),d.nextDep=void 0)}else u.deps!==void 0&&(x(u.deps),u.deps=void 0);u.flags&=-5}function m(u,d){return S(u.deps)?(u.flags=d|32,!0):(u.flags=d&-65,!1)}function p(u,d){if(d&32||S(u.deps)){if(e(u)){let i=u.subs;i!==void 0&&w(i)}}else u.flags=d&-65}function g(u,d){if(d&128){u.flags=d&-129;let i=u.deps;do{let f=i.dep;"flags"in f&&f.flags&2&&f.flags&224&&t(f),i=i.nextDep}while(i!==void 0)}}function h(){for(;o<r;){let u=n[o];n[o++]=void 0,t(u)||(u.flags&=-9)}o=0,r=0}function T(u,d,i,f){let y={dep:u,sub:d,nextDep:i,prevSub:void 0,nextSub:void 0};if(f===void 0?d.deps=y:f.nextDep=y,u.subs===void 0)u.subs=y;else{let v=u.subsTail;y.prevSub=v,v.nextSub=y}return d.depsTail=y,u.subsTail=y,y}function S(u){let d,i=0,f;e:do{f=!1;let y=u.dep;if(u.sub.flags&32)f=!0;else if("flags"in y){let v=y.flags;if((v&33)===33){if(e(y)){let b=y.subs;b.nextSub!==void 0&&w(b),f=!0}}else if((v&65)===65){(u.nextSub!==void 0||u.prevSub!==void 0)&&(d={target:u,linked:d}),u=y.deps,++i;continue}}if(!f&&u.nextDep!==void 0){u=u.nextDep;continue}for(;i;){--i;let v=u.sub,b=v.subs;if(f){if(e(v)){b.nextSub!==void 0?(u=d.target,d=d.linked,w(b)):u=b;continue}}else v.flags&=-65;if(b.nextSub!==void 0?(u=d.target,d=d.linked):u=b,u.nextDep!==void 0){u=u.nextDep;continue e}f=!1}return f}while(!0)}function w(u){do{let d=u.sub,i=d.flags;(i&96)===64&&(d.flags=i|32|8,(i&10)===2&&(n[r++]=d)),u=u.nextSub}while(u!==void 0)}function C(u,d){let i=d.depsTail;if(i!==void 0){let f=d.deps;do{if(f===u)return!0;if(f===i)break;f=f.nextDep}while(f!==void 0)}return!1}function x(u){do{let d=u.dep,i=u.nextDep,f=u.nextSub,y=u.prevSub;if(f!==void 0?f.prevSub=y:d.subsTail=y,y!==void 0?y.nextSub=f:d.subs=f,d.subs===void 0&&"deps"in d){let v=d.flags;v&32||(d.flags=v|32);let b=d.deps;if(b!==void 0){u=b,d.depsTail.nextDep=i,d.deps=void 0,d.depsTail=void 0;continue}}u=i}while(u!==void 0)}}var{link:Y,propagate:$n,updateDirtyFlag:Wn,startTracking:Ee,endTracking:Re,processEffectNotifications:rn,processComputedUpdate:Un,processPendingInnerEffects:sn}=Vn({updateComputed(e){let t=L;L=e,Ee(e);try{let n=e.currentValue,o=e.getter(n);return n!==o?(e.currentValue=o,!0):!1}finally{L=t,Re(e)}},notifyEffect(e){return"isScope"in e?zn(e):Gn(e)}}),an=[],ke=0,L,fe;function cn(){++ke}function ln(){--ke||rn()}function ue(){an.push(L),L=void 0}function de(){L=an.pop()}function fn(e){return qn.bind({currentValue:e,subs:void 0,subsTail:void 0})}function un(e){return Jn.bind({currentValue:void 0,subs:void 0,subsTail:void 0,deps:void 0,depsTail:void 0,flags:33,getter:e})}function Me(e){let t={fn:e,subs:void 0,subsTail:void 0,deps:void 0,depsTail:void 0,flags:2};L!==void 0?Y(t,L):fe!==void 0&&Y(t,fe);let n=L;L=t;try{t.fn()}finally{L=n}return Yn.bind(t)}function Gn(e){let t=e.flags;if(t&32||t&64&&Wn(e,t)){let n=L;L=e,Ee(e);try{e.fn()}finally{L=n,Re(e)}}else sn(e,e.flags);return!0}function zn(e){return e.flags&128?(sn(e,e.flags),!0):!1}function Jn(){let e=this.flags;return e&96&&Un(this,e),L!==void 0?Y(this,L):fe!==void 0&&Y(this,fe),this.currentValue}function qn(...e){if(e.length){if(this.currentValue!==(this.currentValue=e[0])){let t=this.subs;t!==void 0&&($n(t),ke||rn())}}else return L!==void 0&&Y(this,L),this.currentValue}function Yn(){Ee(this),Re(this)}function Xn(e,t){if(typeof t!="function"){e(t);return}ue();let n=e();de(),e(t(n))}function R(e){let t=fn(e);return[t,r=>Xn(t,r)]}var I=R;var $=null,V=[];function H(e){let t={disposers:[]};V.push($),$=t;let n=()=>{for(let o of t.disposers)try{o()}catch{}t.disposers.length=0};try{return e(n)}finally{$=V.pop()??null,V.length===0&&V.length!==V.__capacity&&(V.length=0)}}function Ne(e){$&&$.disposers.push(e)}function Ae(){return $!==null}var Le=null;function De(e){Le?.(e)}function He(e){let t=Le;return Le=e,t}var D=typeof process<"u"?process.env?.NODE_ENV!=="production":!0,_e=null;function Pe(e){_e=e}function W(e,t){if(_e)try{_e(e,t?{source:t}:{})}catch{}D&&console.error(`[forma] ${t??"Unknown"} error:`,e)}var Ie=32,dn=100,Oe=[];for(let e=0;e<Ie;e++)Oe.push([]);var pe=Ie;function Zn(){if(pe>0){let e=Oe[--pe];return e.length=0,e}return[]}function pn(e){e.length=0,pe<Ie&&(Oe[pe++]=e)}function mn(e){if(e!==void 0)try{e()}catch(t){W(t,"effect cleanup")}}function gn(e){if(e!==void 0)for(let t=0;t<e.length;t++)try{e[t]()}catch(n){W(n,"effect cleanup")}}function E(e){let t=Me(e);return Ae()&&Ne(t),t}function X(e){let t=Ae(),n,o,r,s,c=C=>{if(s!==void 0){s.push(C);return}if(r!==void 0){let x=Zn();x.push(r,C),r=void 0,s=x;return}r=C},a=!1,l=!0,m=!1,p=!1,g=()=>{if(n!==void 0&&(mn(n),n=void 0),o!==void 0&&(gn(o),pn(o),o=void 0),a){try{e()}catch(x){W(x,"effect")}return}r=void 0,s=void 0;let C=He(c);try{let x=e();if(typeof x=="function"&&c(x),r===void 0&&s===void 0){l&&(a=!0);return}s!==void 0?o=s:n=r}catch(x){W(x,"effect"),s!==void 0?o=s:n=r}finally{He(C),l=!1}},T=Me(()=>{if(m){p=!0;return}m=!0;try{let C=0;do p=!1,g(),p&&(C++,C>=dn&&(W(new Error(`createEffect exceeded ${dn} re-entrant runs`),"effect"),p=!1));while(p)}finally{m=!1}}),S=!1,w=()=>{S||(S=!0,T(),n!==void 0&&(mn(n),n=void 0),o!==void 0&&(gn(o),pn(o),o=void 0))};return t&&Ne(w),w}function Z(e){return un(e)}var Fe=Z;function _(e){cn();try{e()}finally{ln()}}function A(e){ue();try{return e()}finally{de()}}function Be(e,t,n){let o,r=!0;return()=>{let s=e();if(n?.defer&&r){r=!1,o=s;return}let c=A(()=>t(s,o));return o=s,c}}function Ke(e){return{current:e}}function je(e,t){let[n,o]=R(t);return[n,s=>{o(c=>e(c,s))}]}var me=null,yn=[];function hn(e){yn.push(me),me=e}function Tn(){me=yn.pop()??null}function xn(){return me}function Ve(e,t,n){let[o,r]=R(n?.initialValue),[s,c]=I(!1),[a,l]=I(void 0),m=xn(),p=null,g=0,h=()=>{let S=A(e);p&&p.abort();let w=new AbortController;p=w;let C=++g,x=()=>C===g,u=!1;m&&(m.increment(),u=!0),c(!0),l(void 0),Promise.resolve(t(S)).then(d=>{x()&&!w.signal.aborted&&r(()=>d)}).catch(d=>{x()&&!w.signal.aborted&&d?.name!=="AbortError"&&l(d)}).finally(()=>{u&&m?.decrement(),x()&&(c(!1),p===w&&(p=null))})};E(()=>{e(),h()});let T=(()=>o());return T.loading=s,T.error=a,T.refetch=h,T.mutate=S=>r(()=>S),T}function Q(e){let t=e.length;if(t===0)return[];let n=new Int32Array(t),o=new Int32Array(t),r=new Int32Array(t).fill(-1),s=0;for(let l=0;l<t;l++){let m=e[l],p=0,g=s;for(;p<g;){let h=p+g>>1;n[h]<m?p=h+1:g=h}n[p]=m,o[p]=l,p>0&&(r[l]=o[p-1]),p>=s&&s++}let c=new Array(s),a=o[s-1];for(let l=s-1;l>=0;l--)c[l]=a,a=r[a];return c}var Qn=32,$e=Symbol.for("forma-abort"),We=Symbol.for("forma-attr-cache"),Ue=Symbol.for("forma-dynamic-child");function eo(e,t){return e instanceof HTMLElement&&t instanceof HTMLElement&&e.tagName===t.tagName&&!e[$e]&&!e[We]&&!e[Ue]&&!t[$e]&&!t[We]&&!t[Ue]}function to(e,t){let n=new Set;for(let o of Array.from(t.attributes))n.add(o.name),e.getAttribute(o.name)!==o.value&&e.setAttribute(o.name,o.value);for(let o of Array.from(e.attributes))n.has(o.name)||e.removeAttribute(o.name);e.replaceChildren(...Array.from(t.childNodes))}function no(e,t,n,o,r,s,c,a,l){let m=t.length,p=n.length,g=new Array(m);for(let i=0;i<m;i++)g[i]=r(t[i]);let h=new Array(p),T=new Uint8Array(m);for(let i=0;i<p;i++){let f=r(n[i]),y=-1;for(let v=0;v<m;v++)if(!T[v]&&g[v]===f){y=v,T[v]=1;break}h[i]=y}for(let i=0;i<m;i++)if(!T[i])if(l?.onBeforeRemove){let f=o[i];l.onBeforeRemove(f,()=>{f.parentNode&&f.parentNode.removeChild(f)})}else e.removeChild(o[i]);if(m===p){let i=!0;for(let f=0;f<p;f++)if(h[f]!==f){i=!1;break}if(i){let f=new Array(p);for(let y=0;y<p;y++){let v=o[y];c(v,n[y]),f[y]=v}return{nodes:f,items:n}}}let S=[],w=[];for(let i=0;i<p;i++)h[i]!==-1&&(S.push(h[i]),w.push(i));let C=Q(S),x=new Uint8Array(p);for(let i of C)x[w[i]]=1;let u=new Array(p),d=a??null;for(let i=p-1;i>=0;i--){let f,y=!1;if(h[i]===-1)f=s(n[i]),y=!0;else if(f=o[h[i]],c(f,n[i]),x[i]){u[i]=f,d=f;continue}d?e.insertBefore(f,d):e.appendChild(f),y&&l?.onInsert?.(f),u[i]=f,d=f}return{nodes:u,items:n}}function U(e,t,n,o,r,s,c,a,l){let m=t.length,p=n.length;if(p===0){for(let i=0;i<m;i++)if(l?.onBeforeRemove){let f=o[i];l.onBeforeRemove(f,()=>{f.parentNode&&f.parentNode.removeChild(f)})}else e.removeChild(o[i]);return{nodes:[],items:[]}}if(m===0){let i=new Array(p);for(let f=0;f<p;f++){let y=s(n[f]);a?e.insertBefore(y,a):e.appendChild(y),l?.onInsert?.(y),i[f]=y}return{nodes:i,items:n}}if(m<Qn)return no(e,t,n,o,r,s,c,a,l);let g=new Map;for(let i=0;i<m;i++)g.set(r(t[i]),i);let h=new Array(p),T=new Uint8Array(m);for(let i=0;i<p;i++){let f=r(n[i]),y=g.get(f);y!==void 0?(h[i]=y,T[y]=1):h[i]=-1}for(let i=0;i<m;i++)if(!T[i])if(l?.onBeforeRemove){let f=o[i];l.onBeforeRemove(f,()=>{f.parentNode&&f.parentNode.removeChild(f)})}else e.removeChild(o[i]);if(m===p){let i=!0;for(let f=0;f<p;f++)if(h[f]!==f){i=!1;break}if(i){let f=new Array(p);for(let y=0;y<p;y++){let v=o[y];c(v,n[y]),f[y]=v}return{nodes:f,items:n}}}let S=[],w=[];for(let i=0;i<p;i++)h[i]!==-1&&(S.push(h[i]),w.push(i));let C=Q(S),x=new Uint8Array(p);for(let i of C)x[w[i]]=1;let u=new Array(p),d=a??null;for(let i=p-1;i>=0;i--){let f,y=!1;if(h[i]===-1)f=s(n[i]),y=!0;else if(f=o[h[i]],c(f,n[i]),x[i]){u[i]=f,d=f;continue}d?e.insertBefore(f,d):e.appendChild(f),y&&l?.onInsert?.(f),u[i]=f,d=f}return{nodes:u,items:n}}function ee(e,t,n,o){if(M)return{type:"list",items:e,keyFn:t,renderFn:n,options:o};let r=document.createComment("forma-list-start"),s=document.createComment("forma-list-end"),c=document.createDocumentFragment();c.appendChild(r),c.appendChild(s);let a=new Map,l=[],m=[],p=o?.updateOnItemChange??"none";return E(()=>{let g=e(),h=r.parentNode;if(!h)return;if(!Array.isArray(g)){D&&console.warn("[forma] createList: value is not an array, treating as empty");for(let x of l)x.parentNode===h&&h.removeChild(x);a=new Map,l=[],m=[];return}let T=g;for(let x=0;x<g.length;x++)if(g[x]==null){T=g.filter(u=>u!=null);break}if(D){let x=new Set;for(let u of T){let d=t(u);x.has(d)&&console.warn("[forma] createList: duplicate key detected:",d),x.add(d)}}let w=U(h,m,T,l,t,x=>{let u=t(x),[d,i]=R(0),f=A(()=>n(x,d));return a.set(u,{element:f,item:x,getIndex:d,setIndex:i}),f},p==="rerender"?(x,u)=>{let d=t(u),i=a.get(d);if(!i||i.item===u||(i.item=u,!(x instanceof HTMLElement))||x[$e]||x[We]||x[Ue])return;let f=A(()=>n(u,i.getIndex));eo(x,f)&&(to(x,f),i.element=x)}:(x,u)=>{let d=t(u),i=a.get(d);i&&(i.item=u)},s),C=new Map;for(let x=0;x<T.length;x++){let u=t(T[x]),d=a.get(u);d&&(d.setIndex(x),C.set(u,d))}a=C,l=w.nodes,m=w.items}),c}function te(e,t,n){if(M){let g=e()?t():n?.()??null;return{type:"show",condition:e,whenTrue:t,whenFalse:n,initialBranch:g}}let o=document.createComment("forma-show"),r=document.createComment("/forma-show"),s=document.createDocumentFragment();s.appendChild(o),s.appendChild(r);let c=null,a=null,l=null,m=t.toString().slice(0,60),p=E(()=>{let g=!!e(),h=typeof globalThis.__FORMA_DEBUG__<"u";if(g===a){h&&console.log("[forma:show] skip (same)",g,m);return}h&&console.log("[forma:show]",a,"\u2192",g,m),a=g;let T=o.parentNode;if(!T){h&&console.warn("[forma:show] parentNode is null! skipping.",m);return}if(h&&console.log("[forma:show] parent:",T.nodeName,"inDoc:",document.contains(T)),l&&(l(),l=null),c)if(c.parentNode===T)T.removeChild(c);else for(;o.nextSibling&&o.nextSibling!==r;)T.removeChild(o.nextSibling);let S=g?t:n;if(S){let w;c=H(C=>(w=C,A(()=>S()))),l=w}else c=null;c&&T.insertBefore(c,r)});return s.__showDispose=()=>{p(),l&&(l(),l=null)},s}var M=!1;function Sn(e){M=e}function J(e){return e!=null&&typeof e=="object"&&e.type==="element"}function ge(e){return e!=null&&typeof e=="object"&&e.type==="show"}function ze(e){return e!=null&&typeof e=="object"&&e.type==="list"}function oo(e,t){if(t)for(let n in t){let o=t[n];if(typeof o!="function")continue;if(n.charCodeAt(0)===111&&n.charCodeAt(1)===110&&n.length>2){e.addEventListener(n.slice(2).toLowerCase(),o);continue}let r=o,s=n;E(()=>{let c=r();c===!1||c==null?e.removeAttribute(s):c===!0?e.setAttribute(s,""):e.setAttribute(s,String(c))})}}function ne(e){if(e instanceof Node)return e;if(e==null||e===!1||e===!0)return null;if(typeof e=="string")return new Text(e);if(typeof e=="number")return new Text(String(e));if(J(e))return z(e);if(ge(e)){let t=M;M=!1;try{return te(e.condition,()=>ne(e.whenTrue())??document.createComment("empty"),e.whenFalse?()=>ne(e.whenFalse())??document.createComment("empty"):void 0)}finally{M=t}}if(ze(e)){let t=M;M=!1;try{return ee(e.items,e.keyFn,e.renderFn,e.options)}finally{M=t}}return null}function z(e){let t=M;M=!1;try{let n=e.children.map(o=>J(o)?z(o):ge(o)||ze(o)?ne(o):o);return re(e.tag,e.props,...n)}finally{M=t}}function ro(e){return e.length>=4&&e.charCodeAt(0)===102&&e.charCodeAt(1)===58&&e.charCodeAt(2)===105}function Ge(e){return e.length>=4&&e.charCodeAt(0)===102&&e.charCodeAt(1)===58&&e.charCodeAt(2)===115}function io(e){return e.length>=4&&e.charCodeAt(0)===102&&e.charCodeAt(1)===58&&e.charCodeAt(2)===116}function so(e){return e.length>=4&&e.charCodeAt(0)===102&&e.charCodeAt(1)===58&&e.charCodeAt(2)===108}function G(e){let t="/"+e.data,n=e.nextSibling;for(;n;){if(n.nodeType===8&&n.data===t)return n;n=n.nextSibling}return null}function ao(e,t){let n=e.nextSibling;for(;n&&n!==t;){if(n.nodeType===3)return n;n=n.nextSibling}return null}function co(e,t){let n=e.nextSibling;for(;n&&n!==t;){if(n.nodeType===1)return n;n=n.nextSibling}}function lo(e,t){let n=document.createDocumentFragment(),o=e.nextSibling;for(;o&&o!==t;){let r=o.nextSibling;n.appendChild(o),o=r}return n}function vn(e,t){let n=!!e.condition(),o=null,r=null;if(!(t.start.nextSibling!==t.end)&&n){D&&console.warn("[forma] Hydration: show condition mismatch \u2014 SSR empty but client condition is true");let c=e.whenTrue();c instanceof Node&&t.start.parentNode.insertBefore(c,t.end)}E(()=>{let c=!!e.condition();if(c===n)return;n=c;let a=t.start.parentNode;if(!a)return;let l=lo(t.start,t.end);c?r=l:o=l;let m=c?o??e.whenTrue():e.whenFalse?r??e.whenFalse():null;c&&o&&(o=null),!c&&r&&(r=null),m!=null&&!(m instanceof Node)&&(m=ne(m)),m instanceof Node&&a.insertBefore(m,t.end)})}function bn(e,t,n){if(J(e)){let o=co(t,n);o&&oe(e,o)}else if(ge(e)){let o=t.nextSibling;for(;o&&o!==n;){if(o.nodeType===8&&Ge(o.data)){let r=o,s=G(r);s&&(e.initialBranch&&bn(e.initialBranch,r,s),vn(e,{start:r,end:s,cachedContent:null}));break}o=o.nextSibling}}}function oe(e,t){if(!t||t.tagName!==e.tag.toUpperCase()){console.warn(`Hydration mismatch: expected <${e.tag}>, got <${t?.tagName?.toLowerCase()??"nothing"}>`);let o=z(e);t&&t.replaceWith(o);return}oo(t,e.props);let n=t.firstChild;for(let o of e.children)if(!(o===!1||o==null))if(J(o)){for(;n&&n.nodeType===3&&!n.data.trim();)n=n.nextSibling;for(;n&&n.nodeType===1&&n.hasAttribute("data-forma-island");)n=n.nextSibling;if(!n){t.appendChild(z(o));continue}if(n.nodeType===1){let r=n;n=n.nextSibling,oe(o,r)}else if(n.nodeType===8&&ro(n.data)){let r=G(n),s=z(o);r?(r.parentNode.insertBefore(s,r),n=r.nextSibling):(t.appendChild(s),n=null)}else t.appendChild(z(o))}else if(ge(o)){for(;n&&!(n.nodeType===8&&Ge(n.data));)n=n.nextSibling;if(n){let r=n,s=G(r);s&&(o.initialBranch&&bn(o.initialBranch,r,s),vn(o,{start:r,end:s,cachedContent:null}),n=s.nextSibling)}}else if(ze(o)){for(;n&&!(n.nodeType===8&&so(n.data));)n=n.nextSibling;if(n){let r=n,s=G(r);if(s){let c=new Map,a=[],l=r.nextSibling;for(;l&&l!==s;){if(l.nodeType===1){let i=l;a.push(i);let f=i.getAttribute("data-forma-key");f!=null&&c.set(f,i)}l=l.nextSibling}let m=A(()=>o.items()),p=o.keyFn,g=o.renderFn,h=c.size===0&&a.length>0,T=[],S=[],w=new Set;for(let i=0;i<m.length;i++){let f=m[i],y=p(f),v;if(h?i<a.length&&(v=a[i],w.add(i)):(v=c.get(String(y)),v&&c.delete(String(y))),v)T.push(v),S.push(f);else{D&&console.warn(`[FormaJS] Hydration: list item key "${y}" not found in SSR \u2014 rendering fresh`);let b=M;M=!1;try{let[k]=R(i),N=g(f,k);s.parentNode.insertBefore(N,s),T.push(N),S.push(f)}finally{M=b}}}if(h)for(let i=0;i<a.length;i++)!w.has(i)&&a[i].parentNode&&a[i].parentNode.removeChild(a[i]);else for(let[i,f]of c)D&&console.warn(`[FormaJS] Hydration: removing extra SSR list item with key "${i}"`),f.parentNode&&f.parentNode.removeChild(f);let C=r.parentNode;for(let i of T)C.insertBefore(i,s);let x=new Map;for(let i=0;i<S.length;i++){let f=S[i],y=p(f),[v,b]=R(i);x.set(y,{element:T[i],item:f,getIndex:v,setIndex:b})}let u=T.slice(),d=S.slice();E(()=>{let i=o.items(),f=r.parentNode;if(!f)return;let y=U(f,d,i,u,p,b=>{let k=M;M=!1;try{let N=p(b),[P,we]=R(0),le=A(()=>g(b,P));return x.set(N,{element:le,item:b,getIndex:P,setIndex:we}),le}finally{M=k}},(b,k)=>{let N=p(k),P=x.get(N);P&&(P.item=k)},s),v=new Map;for(let b=0;b<i.length;b++){let k=p(i[b]),N=x.get(k);N&&(N.setIndex(b),v.set(k,N))}x=v,u=y.nodes,d=y.items}),n=s.nextSibling}}}else if(typeof o=="function"){for(;n&&n.nodeType===3&&!n.data.trim();)n=n.nextSibling;if(n&&n.nodeType===1){let r=o();if(J(r)){let s=n;n=n.nextSibling,oe(r,s);continue}}if(n&&n.nodeType===8){let r=n.data;if(io(r)){let s=G(n),c=n.nextSibling;if(!c||c.nodeType!==3){D&&console.warn(`[FormaJS] Hydration: created text node for marker ${r} \u2014 SSR walker should emit content between markers`);let a=document.createTextNode("");n.parentNode.insertBefore(a,s||n.nextSibling),c=a}E(()=>{c.data=String(o())}),n=s?s.nextSibling:c.nextSibling}else if(Ge(r)){let s=n,c=G(s);if(c){let a=ao(s,c);a||(D&&console.warn(`[FormaJS] Hydration: created text node for show marker ${s.data} \u2014 SSR walker should emit content between markers`),a=document.createTextNode(""),s.parentNode.insertBefore(a,c)),E(()=>{a.data=String(o())}),n=c.nextSibling}else n=n.nextSibling}else n=n.nextSibling}else if(n&&n.nodeType===3){let r=n;n=n.nextSibling,E(()=>{r.data=String(o())})}else{D&&console.warn(`[FormaJS] Hydration: created text node in empty <${t.tagName.toLowerCase()}> \u2014 IR may not cover this component`);let r=document.createTextNode("");t.appendChild(r),E(()=>{r.data=String(o())})}}else(typeof o=="string"||typeof o=="number")&&n&&n.nodeType===3&&(n=n.nextSibling)}function K(e,t){if(!(t.childElementCount>0||t.childNodes.length>0&&Array.from(t.childNodes).some(r=>r.nodeType===1||r.nodeType===3&&r.data.trim()))){if(D){let s=t.getAttribute("data-forma-component")||"unknown";console.warn(`[forma] Island "${s}" has no SSR content \u2014 falling back to CSR. This means the IR walker did not render content between ISLAND_START and ISLAND_END.`)}let r=e();if(r instanceof Element){for(let s of Array.from(t.attributes))s.name.startsWith("data-forma-")&&r.setAttribute(s.name,s.value);return t.replaceWith(r),r}else r instanceof Node&&t.appendChild(r);return t}Sn(!0);let o;try{o=e()}finally{Sn(!1)}return!o||!J(o)?(t.removeAttribute("data-forma-ssr"),t):(t.hasAttribute("data-forma-island")?oe(o,t):oe(o,t.children[0]),t.removeAttribute("data-forma-ssr"),t)}var he=Symbol.for("forma.fragment"),fo="http://www.w3.org/2000/svg",ie="http://www.w3.org/1999/xlink",uo=new Set(["svg","path","circle","rect","line","polyline","polygon","ellipse","g","text","tspan","textPath","defs","use","symbol","clipPath","mask","pattern","marker","linearGradient","radialGradient","stop","filter","feGaussianBlur","feColorMatrix","feOffset","feBlend","feMerge","feMergeNode","feComposite","feFlood","feMorphology","feTurbulence","feDisplacementMap","feImage","foreignObject","animate","animateTransform","animateMotion","set","image","switch","desc","title","metadata"]),Cn=new Set(["disabled","checked","readonly","required","autofocus","autoplay","controls","default","defer","formnovalidate","hidden","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","reversed","selected","async"]),B=null;function po(e){if(!B){B=Object.create(null);for(let t of["div","span","p","a","li","ul","ol","button","input","label","h1","h2","h3","h4","h5","h6","section","header","footer","main","nav","table","tr","td","th","tbody","img","form","select","option","textarea","i","b","strong","em","small","article","aside","details","summary"])B[t]=document.createElement(t)}return B[e]??(B[e]=document.createElement(e))}var wn=Object.create(null);function mo(e){return wn[e]??(wn[e]=e.slice(2).toLowerCase())}var ye=Symbol.for("forma-abort");function go(e){let t=e[ye];return t||(t=new AbortController,e[ye]=t),t}function qe(e){let t=e[ye];t&&(t.abort(),delete e[ye])}var Je=Symbol.for("forma-attr-cache"),yo=Symbol.for("forma-dynamic-child");function O(e){return e[Je]??(e[Je]=Object.create(null))}function Ye(e,t,n){if(typeof n=="function")E(()=>{let o=n(),r=O(e);r.class!==o&&(r.class=o,e instanceof HTMLElement?e.className=o:e.setAttribute("class",o))});else{let o=O(e);if(o.class===n)return;o.class=n,e instanceof HTMLElement?e.className=n:e.setAttribute("class",n)}}function ho(e,t,n){if(typeof n=="function"){let o=[];E(()=>{let r=n();if(typeof r=="string"){let s=O(e);if(s.style===r)return;s.style=r,o=[],e.style.cssText=r}else if(r&&typeof r=="object"){let s=e.style,c=Object.keys(r);for(let a of o)a in r||s.removeProperty(a.replace(/[A-Z]/g,l=>"-"+l.toLowerCase()));Object.assign(s,r),o=c}})}else if(typeof n=="string"){let o=O(e);if(o.style===n)return;o.style=n,e.style.cssText=n}else n&&typeof n=="object"&&Object.assign(e.style,n)}function En(e,t,n){let o=go(e);e.addEventListener(mo(t),n,{signal:o.signal})}function To(e,t,n){let o=n;e.innerHTML=o.__html}function xo(e,t,n){let o=t.slice(6);typeof n=="function"?E(()=>{let r=n();r==null||r===!1?e.removeAttributeNS(ie,o):e.setAttributeNS(ie,t,String(r))}):n==null||n===!1?e.removeAttributeNS(ie,o):e.setAttributeNS(ie,t,String(n))}function So(e,t,n){if(typeof n=="function")E(()=>{let o=n(),r=O(e);r[t]!==o&&(r[t]=o,o?e.setAttribute(t,""):e.removeAttribute(t))});else{let o=O(e);if(o[t]===n)return;o[t]=n,n?e.setAttribute(t,""):e.removeAttribute(t)}}function vo(e,t,n){if(typeof n=="function")E(()=>{let o=n();if(o==null||o===!1){let r=O(e);if(r[t]===null)return;r[t]=null,e.removeAttribute(t)}else{let r=String(o),s=O(e);if(s[t]===r)return;s[t]=r,e.setAttribute(t,r)}});else if(n==null||n===!1){let o=O(e);if(o[t]===null)return;o[t]=null,e.removeAttribute(t)}else{let o=String(n),r=O(e);if(r[t]===o)return;r[t]=o,e.setAttribute(t,o)}}var j=new Map;j.set("class",Ye);j.set("className",Ye);j.set("style",ho);j.set("ref",()=>{});j.set("dangerouslySetInnerHTML",To);for(let e of Cn)j.set(e,So);function bo(e,t,n){if(t==="class"){Ye(e,t,n);return}if(t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&t.length>2){En(e,t,n);return}let o=j.get(t);if(o){o(e,t,n);return}if(t.charCodeAt(0)===120&&t.startsWith("xlink:")){xo(e,t,n);return}vo(e,t,n)}function wo(e,t,n){if(!(n==null||n===!1)){if(t==="class"||t==="className"){e.className=n;return}if(t==="style"){typeof n=="string"?e.style.cssText=n:n&&typeof n=="object"&&Object.assign(e.style,n);return}if(t==="dangerouslySetInnerHTML"){e.innerHTML=n.__html;return}if(t.charCodeAt(0)===120&&t.startsWith("xlink:")){e.setAttributeNS(ie,t,String(n));return}if(Cn.has(t)){n&&e.setAttribute(t,"");return}n===!0?e.setAttribute(t,""):e.setAttribute(t,String(n))}}function se(e,t){if(t instanceof Node){e.appendChild(t);return}if(typeof t=="string"){e.appendChild(new Text(t));return}if(!(t==null||t===!1||t===!0)){if(typeof t=="number"){e.appendChild(new Text(String(t)));return}if(typeof t=="function"){e instanceof Element&&(e[yo]=!0);let n=null;E(()=>{let o=t();if(o instanceof Node)n?e.replaceChild(o,n):e.appendChild(o),n=o;else{let r=String(typeof o=="symbol"?o:o??"");if(!n)n=new Text(r),e.appendChild(n);else if(n.nodeType===3)n.data=r;else{let s=new Text(r);e.replaceChild(s,n),n=s}}});return}if(Array.isArray(t)){for(let n of t)se(e,n);return}}}function re(e,t,...n){if(e===he){let c=document.createDocumentFragment();for(let a of n)se(c,a);return c}let o=e;if(M)return{type:"element",tag:o,props:t??null,children:n};let r;if(B&&B[o]?r=B[o].cloneNode(!1):uo.has(o)?r=document.createElementNS(fo,o):r=po(o).cloneNode(!1),t){let c=!1;for(let a in t){if(a==="ref")continue;let l=t[a];if(a.charCodeAt(0)===111&&a.charCodeAt(1)===110&&a.length>2){En(r,a,l);continue}if(typeof l=="function"){c||(r[Je]=Object.create(null),c=!0),bo(r,a,l);continue}wo(r,a,l)}}let s=n.length;if(s===1){let c=n[0];typeof c=="string"?r.textContent=c:typeof c=="number"?r.textContent=String(c):se(r,c)}else if(s>1)for(let c of n)se(r,c);return t&&typeof t.ref=="function"&&t.ref(r),r}function Xe(...e){let t=document.createDocumentFragment();for(let n of e)se(t,n);return t}function Ze(e){if(typeof e=="function"){let t=new Text("");return E(()=>{t.data=e()}),t}return new Text(e)}function Qe(e,t){let n=typeof t=="string"?document.querySelector(t):t;if(!n)throw new Error(`mount: container not found \u2014 "${t}"`);let o;if(n.hasAttribute("data-forma-ssr"))H(s=>{o=s,K(e,n)});else{let s=H(c=>(o=c,e()));n.innerHTML="",n.appendChild(s)}let r=!1;return()=>{r||(r=!0,o(),n.innerHTML="")}}function et(e,t,n){let o=document.createComment("forma-switch"),r=document.createComment("/forma-switch"),s=document.createDocumentFragment();s.appendChild(o),s.appendChild(r);let c=new Map,a=null,l=Co,m=E(()=>{let p=e();if(p===l)return;let g=typeof globalThis.__FORMA_DEBUG__<"u";g&&console.log("[forma:switch] transition",String(l),"\u2192",String(p)),l=p;let h=o.parentNode;if(!h){g&&console.warn("[forma:switch] markers not in DOM yet, skipping");return}if(a)if(a.parentNode===h)g&&console.log("[forma:switch] removing single node"),h.removeChild(a);else if(a.nodeType===11){g&&console.log("[forma:switch] scooping nodes back into fragment");let S=0;for(;o.nextSibling&&o.nextSibling!==r;)a.appendChild(o.nextSibling),S++;g&&console.log("[forma:switch] scooped",S,"nodes back into fragment")}else for(g&&console.log("[forma:switch] clearing detached node between markers");o.nextSibling&&o.nextSibling!==r;)h.removeChild(o.nextSibling);let T=t.find(S=>S.match===p);if(T){let S=c.get(p);if(S)g&&console.log("[forma:switch] reusing cached branch for",String(p),"\u2192",S.node.nodeName,"type",S.node.nodeType,"childNodes",S.node.childNodes?.length);else{let w,C=H(x=>(w=x,A(()=>T.render())));S={node:C,dispose:w},c.set(p,S),g&&console.log("[forma:switch] rendered new branch for",String(p),"\u2192",C.nodeName,"type",C.nodeType)}a=S.node}else a=n?.()??null,g&&console.log("[forma:switch] no match, using fallback");a&&(h.insertBefore(a,r),g&&console.log("[forma:switch] inserted",a.nodeName,"before end marker"))});return s.__switchDispose=()=>{m();for(let p of c.values())p.dispose();c.clear()},s}var Co=Symbol("unset");function tt(e,t){let n=document.createComment("forma-portal"),o=typeof t=="string"?document.querySelector(t):t??document.body;if(!o)throw new Error(`createPortal: target not found: ${t}`);let r=null,s=()=>{r&&r.parentNode===o&&o.removeChild(r),r=null};return X(()=>{let c=e();return s(),r=c,o.appendChild(c),()=>{s()}}),n}function nt(e,t){let n=document.createComment("forma-error-boundary"),o=document.createComment("/forma-error-boundary"),r=document.createDocumentFragment();r.appendChild(n),r.appendChild(o);let[s,c]=R(0),a=null;return E(()=>{s();let l=n.parentNode;if(l){a&&a.parentNode===l&&l.removeChild(a);try{a=e()}catch(m){let p=m instanceof Error?m:new Error(String(m));a=t(p,()=>c(h=>h+1))}a&&l.insertBefore(a,o)}}),r}function ot(e,t){let n=document.createComment("forma-suspense"),o=document.createComment("/forma-suspense"),r=document.createDocumentFragment();r.appendChild(n),r.appendChild(o);let[s,c]=R(0),a=null,l=null,m=null;hn({increment(){c(g=>g+1)},decrement(){c(g=>Math.max(0,g-1))}});try{l=t()}finally{Tn()}return E(()=>{let g=n.parentNode;if(!g)return;let T=s()>0?m??=e():l;T!==a&&(a&&a.parentNode===g&&g.removeChild(a),T&&g.insertBefore(T,o),a=T)}),r}function Eo(e,t,n){let o=e.getAttribute("data-forma-props");return o?JSON.parse(o):n&&String(t)in n?n[String(t)]:null}function rt(e){let t=document.getElementById("__forma_islands"),n=t?JSON.parse(t.textContent):null,o=document.querySelectorAll("[data-forma-island]");for(let r of o){let s=parseInt(r.getAttribute("data-forma-island"),10),c=r.getAttribute("data-forma-component"),a=e[c];if(!a){console.warn(`[forma] No hydrate function for island "${c}" (id=${s})`),r.setAttribute("data-forma-status","error");continue}let l=r.getAttribute("data-forma-hydrate")||"load";if((l==="interaction"||l==="idle")&&console.warn(`[forma] Trigger "${l}" not yet implemented for island "${c}" (id=${s}), falling back to load`),l==="visible"){let m=new IntersectionObserver(p=>{for(let g of p)g.isIntersecting&&(m.disconnect(),Rn(r,s,c,a,n))},{rootMargin:"200px"});m.observe(r)}else Rn(r,s,c,a,n)}}function Rn(e,t,n,o,r){try{let s=Eo(e,t,r);e.setAttribute("data-forma-status","hydrating");let c=e;H(a=>{c=K(()=>o(s),e),c.__formaDispose=a}),c.setAttribute("data-forma-status","active")}catch(s){console.error(`[forma] Island "${n}" (id=${t}) failed:`,s),e.setAttribute("data-forma-status","error")}}var F=null,kn=[];function Ro(e){kn.push(F),F=e}function ko(){F=kn.pop()??null}function it(e){if(F===null)throw new Error("onMount() must be called inside a component setup function");F.mountCallbacks.push(e)}function st(e){if(F===null)throw new Error("onUnmount() must be called inside a component setup function");F.unmountCallbacks.push(e)}var Te=Symbol("forma:component:dispose");function at(e){let t=typeof e=="function"?e:e.setup,n=typeof e=="function"?void 0:e.name;return function(){let r={disposers:[],mountCallbacks:[],unmountCallbacks:[]};Ro(r);let s;try{s=t()}finally{ko()}let c=()=>{for(let a of r.unmountCallbacks)try{a()}catch{}for(let a of r.disposers)try{a()}catch{}r.disposers.length=0,r.mountCallbacks.length=0,r.unmountCallbacks.length=0};s[Te]=c;for(let a of r.mountCallbacks)try{let l=a();typeof l=="function"&&r.unmountCallbacks.push(l)}catch{}return s}}function ct(e){let t=e;typeof t[Te]=="function"&&(t[Te](),delete t[Te])}function lt(e){F!==null&&F.disposers.push(e)}var ae=new Map;function ft(e){return{id:Symbol("forma:context"),defaultValue:e}}function ut(e,t){let n=ae.get(e.id);n===void 0&&(n=[],ae.set(e.id,n)),n.push(t)}function dt(e){let t=ae.get(e.id);return t===void 0||t.length===0?e.defaultValue:t[t.length-1]}function pt(e){let t=ae.get(e.id);t!==void 0&&t.length>0&&(t.pop(),t.length===0&&ae.delete(e.id))}var ce=Symbol("forma-raw"),Nn=Symbol("forma-proxy"),Mo=new Set(["push","pop","shift","unshift","splice","sort","reverse","fill","copyWithin"]);function Mn(e){return!(e==null||typeof e!="object"||e instanceof Date||e instanceof RegExp||e instanceof Map||e instanceof Set||e instanceof WeakMap||e instanceof WeakSet||e instanceof Error||e instanceof Promise||e[Nn])}function mt(e){if(e==null||typeof e!="object")return e;if(Array.isArray(e))return e.map(mt);if(e instanceof Date)return new Date(e.getTime());let t={};for(let n of Object.keys(e))t[n]=mt(e[n]);return t}function gt(e){let t=new Map,n=new Map;function o(g){let h=g.lastIndexOf(".");if(h===-1)return;let T=g.substring(0,h),S=n.get(T);S||(S=new Set,n.set(T,S)),S.add(g)}function r(g,h){let T=t.get(g);return T||(T=R(h),t.set(g,T),o(g)),T}let s=new WeakMap;function c(g){let h=n.get(g);if(h){for(let T of h)c(T),t.delete(T),n.delete(T);h.clear()}}function a(g,h){if(!Mn(g))return g;let T=s.get(g);if(T)return T;let S=Array.isArray(g),w=h?h+".":"",C="",x,u=new Proxy(g,{get(d,i,f){if(i===ce)return d;if(i===Nn)return!0;if(typeof i=="symbol")return Reflect.get(d,i,f);let y=String(i),v=w+y;if(S&&Mo.has(y))return(...N)=>{let P;return _(()=>{let we=N.map(q=>q!=null&&typeof q=="object"&&q[ce]?q[ce]:q);P=d[y].apply(d,we),c(h);let[,le]=r(w+"length",d.length);le(d.length)}),P};if(S&&y==="length"){let[N]=r(v,d.length);return N(),d.length}let b=Reflect.get(d,i),k;return y===C&&x?k=x:(k=r(v,b),C=y,x=k),k[0](),Mn(b)?a(b,v):b},set(d,i,f){if(typeof i=="symbol")return Reflect.set(d,i,f);let y=String(i),v=w+y,b=f!=null&&typeof f=="object"&&f[ce]?f[ce]:f;if(Reflect.set(d,i,b),b!=null&&typeof b=="object"&&c(v),S&&y!=="length"){let N=w+"length",P=t.get(N);P&&P[1](d.length)}let[,k]=r(v,b);return k(b),!0},has(d,i){if(typeof i=="symbol")return Reflect.has(d,i);let f=String(i),y=w+f,[v]=r(y,Reflect.get(d,i));return v(),Reflect.has(d,i)},ownKeys(d){return Reflect.ownKeys(d)},getOwnPropertyDescriptor(d,i){return Object.getOwnPropertyDescriptor(d,i)},deleteProperty(d,i){if(typeof i=="symbol")return Reflect.deleteProperty(d,i);let f=String(i),y=w+f,v=Reflect.deleteProperty(d,i);c(y),t.delete(y);let b=h;if(b!==void 0){let k=n.get(b);k&&(k.delete(y),k.size===0&&n.delete(b))}return n.delete(y),v}});return s.set(g,u),u}let l=a(e,"");function m(){return A(()=>mt(e))}return[l,g=>{let h=typeof g=="function"?g(m()):g;_(()=>{for(let T of Object.keys(h))l[T]=h[T]})}]}function yt(e,t){let[n,o]=e,r=t?.maxLength??100,s=[n()],c=0,[a,l]=I([...s]),[m,p]=I(c),[g,h]=I(s.length);function T(){_(()=>{l([...s]),p(c),h(s.length)})}let S=!1,w=!0;return E(()=>{let f=n();if(w){w=!1;return}if(S){S=!1;return}s=s.slice(0,c+1),s.push(f),s.length>r&&s.splice(0,s.length-r),c=s.length-1,T()}),{undo:()=>{c<=0||(c--,S=!0,o(s[c]),T())},redo:()=>{c>=s.length-1||(c++,S=!0,o(s[c]),T())},canUndo:()=>m()>0,canRedo:()=>m()<g()-1,history:()=>a(),cursor:()=>m(),clear:()=>{s=[n()],c=0,T()}}}function ht(e,t,n){let[o,r]=e,s=n?.storage??globalThis.localStorage,c=n?.serialize??JSON.stringify,a=n?.deserialize??JSON.parse;try{let l=s.getItem(t);if(l!==null){let m=a(l);r(m)}}catch{}E(()=>{let l=o();try{let m=c(l);s.setItem(t,m)}catch{}})}function Tt(){let e=new Map;function t(a){let l=e.get(a);return l||(l=new Set,e.set(a,l)),l}function n(a,l){let m=t(a);return m.add(l),()=>{m.delete(l)}}function o(a,l){let m=p=>{s(a,m),l(p)};return n(a,m)}function r(a,l){let m=e.get(a);if(m)for(let p of[...m])try{p(l)}catch(g){console.error(`[forma] Bus handler error on "${String(a)}":`,g)}}function s(a,l){let m=e.get(a);m&&m.delete(l)}function c(){e.clear()}return{on:n,once:o,emit:r,off:s,clear:c}}function xt(e,t,n,o,r){let s=c=>{let a=c.target;if(!(a instanceof HTMLElement))return;let l=e instanceof Document?e.documentElement:e,m=a.closest(t);m instanceof HTMLElement&&l.contains(m)&&o(c,m)};return e.addEventListener(n,s,r),()=>{e.removeEventListener(n,s,r)}}function No(e){let t=e.toLowerCase().split("+").map(o=>o.trim()),n={ctrl:!1,shift:!1,alt:!1,meta:!1,key:""};for(let o of t)switch(o){case"ctrl":case"control":n.ctrl=!0;break;case"shift":n.shift=!0;break;case"alt":n.alt=!0;break;case"meta":case"cmd":case"command":n.meta=!0;break;default:n.key=o}return n}function Ao(e,t){return e.ctrlKey!==t.ctrl||e.shiftKey!==t.shift||e.altKey!==t.alt||e.metaKey!==t.meta?!1:e.key.toLowerCase()===t.key}function St(e,t,n){let o=n?.target??document,r=n?.preventDefault??!0,s=No(e),c=a=>{a instanceof KeyboardEvent&&Ao(a,s)&&(r&&a.preventDefault(),t(a))};return o.addEventListener("keydown",c),()=>{o.removeEventListener("keydown",c)}}function vt(e,t){return(t??document).querySelector(e)}function bt(e,t){return Array.from((t??document).querySelectorAll(e))}function wt(e,...t){e.classList.add(...t)}function Ct(e,...t){e.classList.remove(...t)}function Et(e,t,n){return e.classList.toggle(t,n)}function Rt(e,t){for(let[n,o]of Object.entries(t))o!==void 0&&(e.style[n]=o)}function kt(e,t){for(let[n,o]of Object.entries(t))o===!1||o===null?e.removeAttribute(n):o===!0?e.setAttribute(n,""):e.setAttribute(n,o)}function Mt(e,t){e.textContent=t}function Nt(e,t){e.innerHTML=t}function At(e,t){return e.closest(t)}function Lt(e,t){let n=Array.from(e.children);return t?n.filter(o=>o.matches(t)):n}function Dt(e,t){let n=e.parentElement;if(!n)return[];let r=Array.from(n.children).filter(s=>s!==e);return t?r.filter(s=>s.matches(t)):r}function Ht(e){return e.parentElement}function _t(e,t){let n=e.nextElementSibling;for(;n;){if(n instanceof HTMLElement&&(!t||n.matches(t)))return n;n=n.nextElementSibling}return null}function Pt(e,t){let n=e.previousElementSibling;for(;n;){if(n instanceof HTMLElement&&(!t||n.matches(t)))return n;n=n.previousElementSibling}return null}function It(e,t){let n=new ResizeObserver(o=>{for(let r of o)t(r)});return n.observe(e),()=>{n.disconnect()}}function Ot(e,t,n){let o=new IntersectionObserver(r=>{for(let s of r)t(s)},n);return o.observe(e),()=>{o.disconnect()}}function Ft(e,t,n){let o=new MutationObserver(r=>{t(r)});return o.observe(e,n??{childList:!0,subtree:!0}),()=>{o.disconnect()}}function Bt(e,t){let n=t?.serialize??JSON.stringify,o=t?.deserialize??JSON.parse;return{key:e,get(){try{let r=localStorage.getItem(e);return r===null?null:o(r)}catch{return null}},set(r){let s=n(r);localStorage.setItem(e,s)},remove(){localStorage.removeItem(e)}}}function Kt(e,t){let n=t?.serialize??JSON.stringify,o=t?.deserialize??JSON.parse;return{key:e,get(){try{let r=sessionStorage.getItem(e);return r===null?null:o(r)}catch{return null}},set(r){let s=n(r);sessionStorage.setItem(e,s)},remove(){sessionStorage.removeItem(e)}}}var jt=new Map;function Lo(e,t){let n=`${e}::${t}`,o=jt.get(n);if(o)return o;let r=new Promise((s,c)=>{let a=indexedDB.open(e);a.onerror=()=>c(a.error),a.onsuccess=()=>{let l=a.result;if(l.objectStoreNames.contains(t)){s(l);return}let m=l.version+1;l.close();let p=indexedDB.open(e,m);p.onerror=()=>c(p.error),p.onupgradeneeded=()=>{let g=p.result;g.objectStoreNames.contains(t)||g.createObjectStore(t)},p.onsuccess=()=>s(p.result)},a.onupgradeneeded=()=>{let l=a.result;l.objectStoreNames.contains(t)||l.createObjectStore(t)}});return jt.set(n,r),r.catch(()=>{jt.delete(n)}),r}function Vt(e,t="default"){function n(o,r){return Lo(e,t).then(s=>new Promise((c,a)=>{let m=s.transaction(t,o).objectStore(t),p=r(m);p.onsuccess=()=>c(p.result),p.onerror=()=>a(p.error)}))}return{get(o){return n("readonly",r=>r.get(o))},set(o,r){return n("readwrite",s=>s.put(r,o)).then(()=>{})},delete(o){return n("readwrite",r=>r.delete(o)).then(()=>{})},getAll(){return n("readonly",o=>o.getAll())},keys(){return n("readonly",o=>o.getAllKeys()).then(o=>o.map(String))},clear(){return n("readwrite",o=>o.clear()).then(()=>{})}}}function $t(e,t){let[n,o]=R(null),[r,s]=R(null),[c,a]=R(!1),l=null;function m(){let g=typeof e=="function"?e():e,h=t?.base??"",T=new URL(g,h||void 0);if(t?.params)for(let[S,w]of Object.entries(t.params))T.searchParams.set(S,w);return T.toString()}async function p(){l&&l.abort(),l=new AbortController;let g=l,h=t?.timeout??3e4,T=setTimeout(()=>g.abort(),h);a(!0),s(null);try{let S=m(),{base:w,params:C,timeout:x,transform:u,...d}=t??{},i=await fetch(S,{...d,signal:g.signal});if(!i.ok)throw new Error(`HTTP ${i.status}: ${i.statusText}`);let f=await i.json(),y=u?u(f):f;o(y)}catch(S){if(S?.name==="AbortError")return;s(S instanceof Error?S:new Error(String(S)))}finally{clearTimeout(T),l===g&&(l=null,a(!1))}}return typeof e=="function"?E(()=>{e(),p()}):p(),{data:n,error:r,loading:c,refetch:p,abort(){l&&l.abort()}}}async function Wt(e,t){let n=await fetch(e,t);if(!n.ok)throw new Error(`HTTP ${n.status}: ${n.statusText}`);return await n.json()}function Ut(e,t){let[n,o]=R(null),[r,s]=R(null),[c,a]=R(!1),l=new EventSource(e,{withCredentials:t?.withCredentials??!1});return l.onopen=()=>{a(!0),s(null)},l.onmessage=m=>{try{let p=JSON.parse(m.data);o(p)}catch{o(m.data)}},l.onerror=m=>{s(m),a(!1)},{data:n,error:r,connected:c,close(){l.close(),a(!1)},on(m,p){let g=h=>{try{p(JSON.parse(h.data))}catch{p(h.data)}};return l.addEventListener(m,g),()=>{l.removeEventListener(m,g)}}}}function Gt(e,t){let n=t?.reconnect??!0,o=t?.reconnectInterval??1e3,r=t?.maxReconnects??5,[s,c]=R(null),[a,l]=R("connecting"),m=new Set,p=null,g=0,h=null,T=!1;function S(){T||(l("connecting"),p=new WebSocket(e,t?.protocols),p.onopen=()=>{l("open"),g=0},p.onmessage=w=>{let C;try{C=JSON.parse(w.data)}catch{C=w.data}c(C);for(let x of m)x(C)},p.onerror=()=>{l("error")},p.onclose=()=>{if(T){l("closed");return}if(l("closed"),n&&g<r){let w=o*Math.pow(2,g);g++,h=setTimeout(S,w)}})}return S(),{data:s,status:a,send(w){p&&p.readyState===WebSocket.OPEN&&p.send(JSON.stringify(w))},close(){T=!0,h!==null&&(clearTimeout(h),h=null),p&&(p.close(),p=null),l("closed")},on(w){return m.add(w),()=>{m.delete(w)}}}}function zt(e,t){let[n,o]=I(!1),[r,s]=I(void 0),a=async(...l)=>{if(o(!0),s(void 0),t?.optimistic)try{_(()=>t.optimistic(...l))}catch{}try{let m=await e(...l);if(t?.onSuccess&&_(()=>t.onSuccess(m,...l)),t?.invalidates)for(let p of t.invalidates)p.refetch();return o(!1),m}catch(m){if(t?.onError)try{_(()=>t.onError(m,...l))}catch{}throw s(m),o(!1),m}};return a.pending=n,a.error=r,a.clearError=()=>s(void 0),a}var Jt=new Map;function qt(e,t){Jt.set(e,t)}function Yt(e){Jt.delete(e)}function xe(e){for(let[t,n]of Object.entries(e)){let o=Jt.get(t);o&&o.mutate(n)}}function Xt(){let e=t=>{let n=t.detail;n&&typeof n=="object"&&xe(n)};return window.addEventListener("forma:revalidate",e),()=>window.removeEventListener("forma:revalidate",e)}function Zt(e,t){return{data:e,__revalidate:t}}function Qt(e){return async(...n)=>{let o=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json","X-Forma-RPC":"1"},body:JSON.stringify({args:n})});if(!o.ok){let s=await o.text();throw new Error(`Server function failed (${o.status}): ${s}`)}let r=await o.json();return r&&typeof r=="object"&&"__revalidate"in r?(typeof window<"u"&&window.dispatchEvent(new CustomEvent("forma:revalidate",{detail:r.__revalidate})),r.data):r}}var Se=new Map;function en(e,t){Se.set(e,t)}function tn(e){return Se.get(e)}function nn(){return[...Se.keys()]}var Do=new Set(["__proto__","constructor","prototype"]);async function ve(e,t,n){let o=e.split("/").pop()??"";if(Do.has(o))return{error:"Forbidden endpoint name"};let r=Se.get(e);if(!r)return{error:`Unknown server function: ${e}`};try{let s=await r(...t.args);return n?{data:s,__revalidate:n}:s}catch(s){return{error:s instanceof Error?s.message:String(s)}}}function on(){return async(e,t)=>{if(e.method!=="POST"){t.status(405).json({error:"Method not allowed"});return}let n=e.body;if(!n||!Array.isArray(n.args)){t.status(400).json({error:"Invalid RPC request: missing args array"});return}let o=await ve(e.url,n);o.error?t.status(500).json(o):t.json(o)}}var be=null,An=new Map;async function Ln(){if(be)return be;let e=window.__FORMA_WASM__;if(!e)throw new Error("No __FORMA_WASM__ config");let t=await import(e.loader);return await t.default(e.binary),be=t,be}async function Dn(){let e=window.__FORMA_WASM__;if(!e)throw new Error("No __FORMA_WASM__ config");let t=An.get(e.ir);if(t)return t;let n=await fetch(e.ir),o=new Uint8Array(await n.arrayBuffer());return An.set(e.ir,o),o}async function Hn(e){let[t,n]=await Promise.all([Ln(),Dn()]);return t.render(n,e)}async function _n(e,t){let[n,o]=await Promise.all([Ln(),Dn()]);return n.render_island(o,e,t)}return Kn(Ho);})();
2
2
  //# sourceMappingURL=formajs.global.js.map