@ryupold/vode 1.8.6 → 1.8.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/vode.min.js CHANGED
@@ -1 +1 @@
1
- "use strict";var V=(()=>{var j=Object.defineProperty;var W=Object.getOwnPropertyDescriptor;var $=Object.getOwnPropertyNames;var J=Object.prototype.hasOwnProperty;var Q=(e,n)=>{for(var s in n)j(e,s,{get:n[s],enumerable:!0})},z=(e,n,s,a)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of $(n))!J.call(e,t)&&t!==s&&j(e,t,{get:()=>n[t],enumerable:!(a=W(n,t))||a.enumerable});return e};var Z=e=>z(j({},"__esModule",{value:!0}),e);var Zo={};Q(Zo,{A:()=>pt,ABBR:()=>ft,ADDRESS:()=>St,ANIMATE:()=>Tn,ANIMATEMOTION:()=>yn,ANIMATETRANSFORM:()=>gn,ANNOTATION:()=>bo,ANNOTATION_XML:()=>Eo,AREA:()=>ut,ARTICLE:()=>dt,ASIDE:()=>Tt,AUDIO:()=>yt,B:()=>gt,BASE:()=>xt,BDI:()=>ht,BDO:()=>mt,BLOCKQUOTE:()=>bt,BODY:()=>Et,BR:()=>Pt,BUTTON:()=>At,CANVAS:()=>Ct,CAPTION:()=>Mt,CIRCLE:()=>xn,CITE:()=>Rt,CLIPPATH:()=>hn,CODE:()=>Nt,COL:()=>Ot,COLGROUP:()=>Dt,DATA:()=>vt,DATALIST:()=>Lt,DD:()=>It,DEFS:()=>mn,DEL:()=>Ft,DESC:()=>bn,DETAILS:()=>Vt,DFN:()=>Ht,DIALOG:()=>jt,DIV:()=>Gt,DL:()=>Ut,DT:()=>kt,ELLIPSE:()=>En,EM:()=>_t,EMBED:()=>Bt,FEBLEND:()=>Pn,FECOLORMATRIX:()=>An,FECOMPONENTTRANSFER:()=>Cn,FECOMPOSITE:()=>Mn,FECONVOLVEMATRIX:()=>Rn,FEDIFFUSELIGHTING:()=>Nn,FEDISPLACEMENTMAP:()=>On,FEDISTANTLIGHT:()=>Dn,FEDROPSHADOW:()=>vn,FEFLOOD:()=>Ln,FEFUNCA:()=>In,FEFUNCB:()=>Fn,FEFUNCG:()=>Vn,FEFUNCR:()=>Hn,FEGAUSSIANBLUR:()=>jn,FEIMAGE:()=>Gn,FEMERGE:()=>Un,FEMERGENODE:()=>kn,FEMORPHOLOGY:()=>_n,FEOFFSET:()=>Bn,FEPOINTLIGHT:()=>Kn,FESPECULARLIGHTING:()=>qn,FESPOTLIGHT:()=>wn,FETILE:()=>Xn,FETURBULENCE:()=>Yn,FIELDSET:()=>Kt,FIGCAPTION:()=>qt,FIGURE:()=>wt,FILTER:()=>Wn,FOOTER:()=>Xt,FOREIGNOBJECT:()=>$n,FORM:()=>Yt,G:()=>Jn,H1:()=>Wt,H2:()=>$t,H3:()=>Jt,H4:()=>Qt,H5:()=>zt,H6:()=>Zt,HEAD:()=>te,HEADER:()=>ee,HGROUP:()=>ne,HR:()=>oe,HTML:()=>ae,I:()=>se,IFRAME:()=>re,IMAGE:()=>Qn,IMG:()=>ce,INPUT:()=>ie,INS:()=>le,KBD:()=>pe,LABEL:()=>fe,LEGEND:()=>Se,LI:()=>ue,LINE:()=>zn,LINEARGRADIENT:()=>Zn,LINK:()=>de,MACTION:()=>Po,MAIN:()=>Te,MAP:()=>ye,MARK:()=>ge,MARKER:()=>to,MASK:()=>eo,MATH:()=>Ao,MENU:()=>xe,MERROR:()=>Co,META:()=>he,METADATA:()=>no,METER:()=>me,MFRAC:()=>Mo,MI:()=>Ro,MMULTISCRIPTS:()=>No,MN:()=>Oo,MO:()=>Do,MOVER:()=>vo,MPADDED:()=>Lo,MPATH:()=>oo,MPHANTOM:()=>Io,MPRESCRIPTS:()=>Fo,MROOT:()=>Vo,MROW:()=>Ho,MS:()=>jo,MSPACE:()=>Go,MSQRT:()=>Uo,MSTYLE:()=>ko,MSUB:()=>_o,MSUBSUP:()=>Bo,MSUP:()=>Ko,MTABLE:()=>qo,MTD:()=>wo,MTEXT:()=>Xo,MTR:()=>Yo,MUNDER:()=>Wo,MUNDEROVER:()=>$o,NAV:()=>be,NOSCRIPT:()=>Ee,OBJECT:()=>Pe,OL:()=>Ae,OPTGROUP:()=>Ce,OPTION:()=>Me,OUTPUT:()=>Re,P:()=>Ne,PATH:()=>ao,PATTERN:()=>so,PICTURE:()=>Oe,POLYGON:()=>ro,POLYLINE:()=>co,PRE:()=>De,PROGRESS:()=>ve,Q:()=>Le,RADIALGRADIENT:()=>io,RECT:()=>lo,RP:()=>Ie,RT:()=>Fe,RUBY:()=>Ve,S:()=>He,SAMP:()=>je,SCRIPT:()=>Ge,SEARCH:()=>Ue,SECTION:()=>ke,SELECT:()=>_e,SEMANTICS:()=>Jo,SET:()=>po,SLOT:()=>Be,SMALL:()=>Ke,SOURCE:()=>qe,SPAN:()=>we,STOP:()=>fo,STRONG:()=>Xe,STYLE:()=>Ye,SUB:()=>We,SUMMARY:()=>$e,SUP:()=>Je,SVG:()=>So,SWITCH:()=>uo,SYMBOL:()=>To,TABLE:()=>Qe,TBODY:()=>ze,TD:()=>Ze,TEMPLATE:()=>tn,TEXT:()=>yo,TEXTAREA:()=>en,TEXTPATH:()=>go,TFOOT:()=>nn,TH:()=>on,THEAD:()=>an,TIME:()=>sn,TITLE:()=>rn,TR:()=>cn,TRACK:()=>ln,TSPAN:()=>xo,U:()=>pn,UL:()=>fn,USE:()=>ho,VAR:()=>Sn,VIDEO:()=>un,VIEW:()=>mo,WBR:()=>dn,app:()=>et,child:()=>ct,childCount:()=>rt,children:()=>D,childrenStart:()=>F,context:()=>zo,createPatch:()=>at,createState:()=>ot,defuse:()=>k,globals:()=>M,hydrate:()=>I,memo:()=>nt,mergeClass:()=>_,mergeProps:()=>Qo,mergeStyle:()=>B,props:()=>R,tag:()=>st,vode:()=>tt});var M={currentViewTransition:void 0,requestAnimationFrame:typeof window<"u"&&typeof window.requestAnimationFrame=="function"?window.requestAnimationFrame.bind(window):(e=>e()),startViewTransition:typeof document<"u"&&typeof document.startViewTransition=="function"?document.startViewTransition.bind(document):null};function tt(e,n,...s){if(!e)throw new Error("first argument to vode() must be a tag name or a vode");return Array.isArray(e)?e:typeof n=="object"?[e,n,...s]:[e,...s]}function et(e,n,s,...a){if(!e?.parentElement)throw new Error("first argument to app() must be a valid HTMLElement inside the <html></html> document");if(!n||typeof n!="object")throw new Error("second argument to app() must be a state object");if(typeof s!="function")throw new Error("third argument to app() must be a function that returns a vode");let t={};t.syncRenderer=M.requestAnimationFrame,t.asyncRenderer=M.startViewTransition,t.qSync=null,t.qAsync=null,t.stats={lastSyncRenderTime:0,lastAsyncRenderTime:0,syncRenderCount:0,asyncRenderCount:0,liveEffectCount:0,patchCount:0,syncRenderPatchCount:0,asyncRenderPatchCount:0},t.unmounts=[];let o=n;"patch"in n&&typeof n.patch=="function"&&Array.isArray(n.patch.initialPatches)&&(a=[...n.patch.initialPatches,...a]),Object.defineProperty(n,"patch",{enumerable:!1,configurable:!0,writable:!1,value:async(c,x)=>{if(!(!c||typeof c!="function"&&typeof c!="object"))if(t.stats.patchCount++,c?.next){let h=c;t.stats.liveEffectCount++;try{let A=await h.next();for(;A.done===!1;){t.stats.liveEffectCount++;try{o.patch(A.value,x),A=await h.next()}finally{t.stats.liveEffectCount--}}o.patch(A.value,x)}finally{t.stats.liveEffectCount--}}else if(c.then){t.stats.liveEffectCount++;try{let h=await c;o.patch(h,x)}finally{t.stats.liveEffectCount--}}else if(Array.isArray(c))if(c.length>0)for(let h of c)o.patch(h,!document.hidden&&!!t.asyncRenderer);else{t.qSync=P(t.qSync||{},t.qAsync,!1),t.qAsync=null;try{M.currentViewTransition?.skipTransition()}catch{}t.stats.syncRenderPatchCount++,t.renderSync()}else typeof c=="function"?o.patch(c(t.state),x):x?(t.stats.asyncRenderPatchCount++,t.qAsync=P(t.qAsync||{},c,!1),await t.renderAsync()):(t.stats.syncRenderPatchCount++,t.qSync=P(t.qSync||{},c,!1),t.renderSync())}});function r(c){let x=Date.now(),h=s(t.state);t.vode=O(t.state,e.parentElement,0,0,t.vode,h,null,t.unmounts,0),e.tagName.toUpperCase()!==h[0].toUpperCase()&&(e=t.vode.node,e._vode=t),c||(t.stats.lastSyncRenderTime=Date.now()-x,t.stats.syncRenderCount++,t.isRendering=!1,t.qSync&&t.renderSync())}let l=r.bind(null,!1),i=r.bind(null,!0);Object.defineProperty(t,"renderSync",{enumerable:!1,configurable:!0,writable:!1,value:()=>{t.isRendering||!t.qSync||(t.isRendering=!0,t.state=P(t.state,t.qSync,!0),t.qSync=null,t.syncRenderer(l))}}),Object.defineProperty(t,"renderAsync",{enumerable:!1,configurable:!0,writable:!1,value:async()=>{if(t.isAnimating||!t.qAsync||(await M.currentViewTransition?.updateCallbackDone,t.isAnimating||!t.qAsync||document.hidden))return;t.isAnimating=!0;let c=Date.now();try{t.state=P(t.state,t.qAsync,!0),t.qAsync=null,M.currentViewTransition=t.asyncRenderer(i),await M.currentViewTransition?.updateCallbackDone}finally{t.stats.lastAsyncRenderTime=Date.now()-c,t.stats.asyncRenderCount++,t.isAnimating=!1}t.qAsync&&t.renderAsync()}}),t.state=o;let p=e;p._vode=t;let f=Array.from(e.parentElement.children).indexOf(e);t.isRendering=!0,t.vode=O(n,e.parentElement,f,f,I(e,!0),s(n),null,t.unmounts,0),t.isRendering=!1,t.qSync&&t.renderSync();for(let c of a)o.patch(c);return c=>o.patch(c)}function k(e){if(e?._vode){let s=function(t){if(!t?.node)return;let o=R(t);if(o){for(let r in o)r[0]==="o"&&r[1]==="n"&&(t.node[r]=null);t.node.catch=null}if(t.node._vode)k(t.node);else{let r=D(t);if(r)for(let l of r)s(l)}};var n=s;let a=e._vode;delete e._vode,Object.defineProperty(a.state,"patch",{value:void 0}),Object.defineProperty(a,"renderSync",{value:()=>{}}),Object.defineProperty(a,"renderAsync",{value:()=>{}}),s(a.vode)}else for(let s of e.children)k(s)}function I(e,n){if(e?.nodeType===Node.TEXT_NODE)return e.nodeValue?.trim()!==""?n?e:e.nodeValue:void 0;if(e.nodeType===Node.ELEMENT_NODE){let a=[e.tagName.toLowerCase()];if(n&&(a.node=e),e?.hasAttributes()){let t={},o=e.attributes;for(let r of o)t[r.name]=r.value;a.push(t)}if(e.hasChildNodes()){let t=[];for(let o of e.childNodes){let r=o&&I(o,n);r?a.push(r):o&&n&&t.push(o)}for(let o of t)o.remove()}return a}else return}function nt(e,n){if(!e||!Array.isArray(e))throw new Error("first argument to memo() must be an array of values to compare");if(typeof n!="function")throw new Error("second argument to memo() must be a function that returns a vode or props object");return n.__memo=e,n}function ot(e){if(!e||typeof e!="object")throw new Error("createState() must be called with a state object");return"patch"in e||Object.defineProperty(e,"patch",{enumerable:!1,configurable:!0,writable:!1,value:n=>{let s=e;Array.isArray(s.patch.initialPatches)||(s.patch.initialPatches=[]),s.patch.initialPatches.push(n)}}),e}function at(e){return e}function st(e){return e?Array.isArray(e)?e[0]:typeof e=="string"||e.nodeType===Node.TEXT_NODE?"#text":void 0:void 0}function R(e){if(Array.isArray(e)&&e.length>1&&e[1]&&!Array.isArray(e[1])&&typeof e[1]=="object"&&e[1].nodeType!==Node.TEXT_NODE)return e[1]}function D(e){let n=F(e);return n>0?e.slice(n):null}function rt(e){let n=F(e);return n<0?0:e.length-n}function ct(e,n){let s=F(e);if(s>0)return e[n+s]}function F(e){return R(e)?e.length>2?2:-1:Array.isArray(e)&&e.length>1?1:-1}function P(e,n,s){if(!n)return e;for(let a in n){let t=n[a];if(t&&typeof t=="object"){let o=e[a];o?Array.isArray(t)?e[a]=[...t]:t instanceof Date&&o!==t?e[a]=new Date(t):Array.isArray(o)?e[a]=P({},t,s):typeof o=="object"?P(e[a],t,s):e[a]=P({},t,s):Array.isArray(t)?e[a]=[...t]:t instanceof Date?e[a]=new Date(t):e[a]=P({},t,s)}else t===void 0&&s?delete e[a]:e[a]=t}return e}function O(e,n,s,a,t,o,r,l,i){try{o=G(e,o,t);let p=!o||typeof o=="number"||typeof o=="boolean";if(o===t||!t&&p)return t;let f=t?.nodeType===Node.TEXT_NODE,c=f?t:t?.node;if(p){if(!f&&typeof t?.unmountCount=="number"){let y=t.unmountStart,d=t.unmountCount;for(let S=d-1;S>=0;S--){let T=l[y+S];T&&(e.patch(T(e,c)),l[y+S]=null)}}c?.remove();return}let x=!p&&lt(o),h=!p&&it(o),A=!!o&&typeof o!="string"&&!!(o?.node||o?.nodeType===Node.TEXT_NODE);if(!x&&!h&&!A&&!t)throw new Error("Invalid vode: "+typeof o+" "+JSON.stringify(o));if(A&&x?o=o.wholeText:A&&h&&(o=[...o]),f&&x)return c.nodeValue!==o&&(c.nodeValue=o),t;if(x&&(!c||!f)){let y=document.createTextNode(o);if(c){if(!f&&typeof t?.unmountCount=="number"){let d=t.unmountStart,S=t.unmountCount;for(let T=S-1;T>=0;T--){let C=l[d+T];C&&(e.patch(C(e,c)),l[d+T]=null)}}c.replaceWith(y)}else{let d=!1;for(let S=a;S<n.childNodes.length;S++){let T=n.childNodes[S];if(T){T.before(y,T),d=!0;break}}d||n.appendChild(y)}return y}if(h&&(!c||f||t[0]!==o[0])){let y=o;1 in y&&(y[1]=G(e,y[1],void 0));let d=R(o);d?.xmlns!==void 0&&(r=d.xmlns);let S=r?document.createElementNS(r,o[0]):document.createElement(o[0]);if(o.node=S,U(e,S,void 0,d,r??null),d&&"catch"in d&&(o.node.catch=null,o.node.removeAttribute("catch")),c){if(!f&&typeof t?.unmountCount=="number"){let b=t.unmountStart,g=t.unmountCount;for(let u=g-1;u>=0;u--){let m=l[b+u];m&&(e.patch(m(e,c)),l[b+u]=null)}}l[i]=d?.onUnmount??null,c.replaceWith(S)}else{l[i]=d?.onUnmount??null;let b=!1;for(let g=a;g<n.childNodes.length;g++){let u=n.childNodes[g];if(u){u.before(S,u),b=!0;break}}b||n.appendChild(S)}let T=0,C=i+1,N=D(o);if(N){let b=d?2:1,g=0;for(let u=0;u<N.length;u++){let m=N[u],E=O(e,S,u,g,void 0,m,r??null,l,C);if(o[u+b]=E,E){g++;let v=E.unmountCount||0;T+=v,C+=v}}}return S.onMount&&e.patch(S.onMount(S)),o.unmountCount=1+T,o.unmountStart=i,o}if(!f&&h&&t[0]===o[0]){o.node=c;let y=o,d=t,S=R(o),T=R(t);if(S?.xmlns!==void 0&&(r=S.xmlns),y[1]?.__memo){let u=y[1];y[1]=G(e,y[1],d[1]),u!==y[1]&&U(e,c,T,S,r)}else U(e,c,T,S,r);S?.catch&&T?.catch!==S.catch&&(o.node.catch=null,o.node.removeAttribute("catch")),l[i]=S?.onUnmount??null;let C=0,N=i+1,b=D(o),g=D(t);if(b){let u=S?2:1,m=0;for(let E=0;E<b.length;E++){let v=b[E],Y=g&&g[E],H=O(e,c,E,m,Y,v,r,l,N);if(o[E+u]=H,H){m++;let q=H.unmountCount||0;C+=q,N+=q}}}if(g){let u=b?b.length:0;for(let m=g.length-1;m>=u;m--)O(e,c,m,m,g[m],void 0,r,l,g[m].unmountStart)}return o.unmountCount=1+C,o.unmountStart=i,o}}catch(p){let f=R(o)?.catch;if(f){let c=typeof f=="function"?f(e,p):f;return O(e,n,s,a,I(o?.node||t?.node,!0),c,r,l,i)}else throw p}}function it(e){return Array.isArray(e)&&e.length>0&&typeof e[0]=="string"}function lt(e){return typeof e=="string"||e?.nodeType===Node.TEXT_NODE}function G(e,n,s){if(typeof n!="function")return n;let a=n?.__memo,t=s?.__memo;if(Array.isArray(a)&&Array.isArray(t)&&a.length===t.length){let l=!0;for(let i=0;i<a.length;i++)if(a[i]!==t[i]){l=!1;break}if(l)return s}let o=n(e);if(typeof o=="function"&&o?.__memo){let l=o.__memo;if(Array.isArray(l)&&Array.isArray(t)&&l.length===t.length){let p=!0;for(let f=0;f<l.length;f++)if(l[f]!==t[f]){p=!1;break}if(p)return s}let i=o(e);return typeof i=="object"&&(i.__memo=l),i}let r=typeof o=="function"?w(o,e):o;return typeof r=="object"&&(r.__memo=o?.__memo||n?.__memo),r}function w(e,n){return typeof e=="function"?w(e(n),n):e}function U(e,n,s,a,t){if(!a&&!s)return;let o=t!==void 0;if(s)for(let r in s){let l=s[r],i=a?.[r];l!==i&&(a?a[r]=L(e,n,r,l,i,o):L(e,n,r,l,void 0,o))}if(a&&s){for(let r in a)if(!(r in s)){let l=a[r];a[r]=L(e,n,r,void 0,l,o)}}else if(a)for(let r in a){let l=a[r];a[r]=L(e,n,r,void 0,l,o)}}function L(e,n,s,a,t,o){if(s==="style")if(!t)n.style.cssText="";else if(typeof t=="string")a!==t&&(n.style.cssText=t);else if(a&&typeof a=="object"){for(let r in a)t[r]||(n.style[r]=null);for(let r in t){let l=a[r],i=t[r];l!==i&&(n.style[r]=i)}}else for(let r in t)n.style[r]=t[r];else if(s==="class")t?n.setAttribute("class",X(t)):n.removeAttribute("class");else if(s[0]==="o"&&s[1]==="n")if(t){let r=null;if(typeof t=="function"){let l=t;r=i=>e.patch(l(e,i))}else typeof t=="object"&&(r=()=>e.patch(t));n[s]=r}else n[s]=null;else o||(n[s]=t),t==null||t===!1?n.removeAttribute(s):n.setAttribute(s,t);return t}function X(e){return typeof e=="string"?e:Array.isArray(e)?e.map(X).join(" "):typeof e=="object"?Object.keys(e).filter(n=>e[n]).join(" "):""}var pt="a",ft="abbr",St="address",ut="area",dt="article",Tt="aside",yt="audio",gt="b",xt="base",ht="bdi",mt="bdo",bt="blockquote",Et="body",Pt="br",At="button",Ct="canvas",Mt="caption",Rt="cite",Nt="code",Ot="col",Dt="colgroup",vt="data",Lt="datalist",It="dd",Ft="del",Vt="details",Ht="dfn",jt="dialog",Gt="div",Ut="dl",kt="dt",_t="em",Bt="embed",Kt="fieldset",qt="figcaption",wt="figure",Xt="footer",Yt="form",Wt="h1",$t="h2",Jt="h3",Qt="h4",zt="h5",Zt="h6",te="head",ee="header",ne="hgroup",oe="hr",ae="html",se="i",re="iframe",ce="img",ie="input",le="ins",pe="kbd",fe="label",Se="legend",ue="li",de="link",Te="main",ye="map",ge="mark",xe="menu",he="meta",me="meter",be="nav",Ee="noscript",Pe="object",Ae="ol",Ce="optgroup",Me="option",Re="output",Ne="p",Oe="picture",De="pre",ve="progress",Le="q",Ie="rp",Fe="rt",Ve="ruby",He="s",je="samp",Ge="script",Ue="search",ke="section",_e="select",Be="slot",Ke="small",qe="source",we="span",Xe="strong",Ye="style",We="sub",$e="summary",Je="sup",Qe="table",ze="tbody",Ze="td",tn="template",en="textarea",nn="tfoot",on="th",an="thead",sn="time",rn="title",cn="tr",ln="track",pn="u",fn="ul",Sn="var",un="video",dn="wbr",Tn="animate",yn="animateMotion",gn="animateTransform",xn="circle",hn="clipPath",mn="defs",bn="desc",En="ellipse",Pn="feBlend",An="feColorMatrix",Cn="feComponentTransfer",Mn="feComposite",Rn="feConvolveMatrix",Nn="feDiffuseLighting",On="feDisplacementMap",Dn="feDistantLight",vn="feDropShadow",Ln="feFlood",In="feFuncA",Fn="feFuncB",Vn="feFuncG",Hn="feFuncR",jn="feGaussianBlur",Gn="feImage",Un="feMerge",kn="feMergeNode",_n="feMorphology",Bn="feOffset",Kn="fePointLight",qn="feSpecularLighting",wn="feSpotLight",Xn="feTile",Yn="feTurbulence",Wn="filter",$n="foreignObject",Jn="g",Qn="image",zn="line",Zn="linearGradient",to="marker",eo="mask",no="metadata",oo="mpath",ao="path",so="pattern",ro="polygon",co="polyline",io="radialGradient",lo="rect",po="set",fo="stop",So="svg",uo="switch",To="symbol",yo="text",go="textPath",xo="tspan",ho="use",mo="view",bo="annotation",Eo="annotation-xml",Po="maction",Ao="math",Co="merror",Mo="mfrac",Ro="mi",No="mmultiscripts",Oo="mn",Do="mo",vo="mover",Lo="mpadded",Io="mphantom",Fo="mprescripts",Vo="mroot",Ho="mrow",jo="ms",Go="mspace",Uo="msqrt",ko="mstyle",_o="msub",Bo="msubsup",Ko="msup",qo="mtable",wo="mtd",Xo="mtext",Yo="mtr",Wo="munder",$o="munderover",Jo="semantics";function _(...e){if(!e||e.length===0)return null;if(e.length===1)return e[0];let n=e[0];for(let s=1;s<e.length;s++){let a=n,t=e[s];if(!a)n=t;else if(t)if(typeof a=="string"&&typeof t=="string"){let o=a.split(" "),r=t.split(" "),l=new Set([...o,...r]);n=Array.from(l).join(" ").trim()}else if(typeof a=="string"&&Array.isArray(t)){let o=new Set([...t,...a.split(" ")]);n=Array.from(o).join(" ").trim()}else if(Array.isArray(a)&&typeof t=="string"){let o=new Set([...a,...t.split(" ")]);n=Array.from(o).join(" ").trim()}else if(Array.isArray(a)&&Array.isArray(t)){let o=new Set([...a,...t]);n=Array.from(o).join(" ").trim()}else if(typeof a=="string"&&typeof t=="object")n={[a]:!0,...t};else if(typeof a=="object"&&typeof t=="string")n={...a,[t]:!0};else if(typeof a=="object"&&typeof t=="object")n={...a,...t};else if(typeof a=="object"&&Array.isArray(t)){let o={...a};for(let r of t)o[r]=!0;n=o}else if(Array.isArray(a)&&typeof t=="object"){let o={};for(let r of a)o[r]=!0;for(let r of Object.keys(t))o[r]=t[r];n=o}else throw new Error(`cannot merge classes of ${a} (${typeof a}) and ${t} (${typeof t})`);else continue}return n}var V;function B(...e){V||(V=document.createElement("div"));try{let n=V.style;for(let s of e)if(typeof s=="object"&&s!==null)for(let a in s)n[a]=s[a];else typeof s=="string"&&(n.cssText+=";"+s);return n.cssText}finally{V.style.cssText=""}}function Qo(...e){if(e.length===0)return;if(e.length===1)return e[0]||void 0;let n;for(let s of e)if(!(typeof s!="object"||s===null)){n||(n={});for(let a in s)a==="style"?n.style=B(n.style,s.style):a==="class"?n.class=_(n.class,s.class):n[a]=s[a]}return n}function zo(e){return new K(e,[])}var K=class e{constructor(n,s){this.state=n;this.keys=s;function a(i,p){if(s.length>1){let f=0,c=p[s[f]];for((typeof c!="object"||c===null)&&(p[s[f]]=c={}),f=1;f<s.length-1;f++){let x=c;c=c[s[f]],(typeof c!="object"||c===null)&&(x[s[f]]=c={})}c[s[f]]=i}else s.length===1?typeof p[s[0]]=="object"&&typeof i=="object"?Object.assign(p[s[0]],i):p[s[0]]=i:Object.assign(p,i)}function t(i){let p={};return a(i,p),p}function o(){if(s.length===0)return n;let i=n?n[s[0]]:void 0;for(let p=1;p<s.length&&i;p++)i=i[s[p]];return i}function r(i){a(i,n)}function l(i,p){p?n.patch([t(i)]):n.patch(t(i))}return new Proxy(this,{get:(i,p,f)=>{if(p==="state")return n;if(p==="get")return o;if(p==="put")return r;if(p==="patch")return l;let c=[...i.keys,String(p)];return new e(i.state,c)}})}state;keys;get(){}put(n){}patch(n){}};return Z(Zo);})();
1
+ "use strict";var V=(()=>{var v=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var X=Object.getOwnPropertyNames;var Y=Object.prototype.hasOwnProperty;var W=(e,n)=>{for(var s in n)v(e,s,{get:n[s],enumerable:!0})},$=(e,n,s,a)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of X(n))!Y.call(e,t)&&t!==s&&v(e,t,{get:()=>n[t],enumerable:!(a=w(n,t))||a.enumerable});return e};var J=e=>$(v({},"__esModule",{value:!0}),e);var Jo={};W(Jo,{A:()=>ct,ABBR:()=>it,ADDRESS:()=>lt,ANIMATE:()=>Sn,ANIMATEMOTION:()=>un,ANIMATETRANSFORM:()=>dn,ANNOTATION:()=>xo,ANNOTATION_XML:()=>ho,AREA:()=>pt,ARTICLE:()=>ft,ASIDE:()=>St,AUDIO:()=>ut,B:()=>dt,BASE:()=>Tt,BDI:()=>yt,BDO:()=>gt,BLOCKQUOTE:()=>xt,BODY:()=>ht,BR:()=>mt,BUTTON:()=>bt,CANVAS:()=>Et,CAPTION:()=>Pt,CIRCLE:()=>Tn,CITE:()=>At,CLIPPATH:()=>yn,CODE:()=>Ct,COL:()=>Mt,COLGROUP:()=>Rt,DATA:()=>Nt,DATALIST:()=>Ot,DD:()=>Dt,DEFS:()=>gn,DEL:()=>Lt,DESC:()=>xn,DETAILS:()=>vt,DFN:()=>It,DIALOG:()=>Vt,DIV:()=>Ft,DL:()=>Ht,DT:()=>jt,ELLIPSE:()=>hn,EM:()=>Gt,EMBED:()=>Ut,FEBLEND:()=>mn,FECOLORMATRIX:()=>bn,FECOMPONENTTRANSFER:()=>En,FECOMPOSITE:()=>Pn,FECONVOLVEMATRIX:()=>An,FEDIFFUSELIGHTING:()=>Cn,FEDISPLACEMENTMAP:()=>Mn,FEDISTANTLIGHT:()=>Rn,FEDROPSHADOW:()=>Nn,FEFLOOD:()=>On,FEFUNCA:()=>Dn,FEFUNCB:()=>Ln,FEFUNCG:()=>vn,FEFUNCR:()=>In,FEGAUSSIANBLUR:()=>Vn,FEIMAGE:()=>Fn,FEMERGE:()=>Hn,FEMERGENODE:()=>jn,FEMORPHOLOGY:()=>Gn,FEOFFSET:()=>Un,FEPOINTLIGHT:()=>kn,FESPECULARLIGHTING:()=>_n,FESPOTLIGHT:()=>Bn,FETILE:()=>Kn,FETURBULENCE:()=>qn,FIELDSET:()=>kt,FIGCAPTION:()=>_t,FIGURE:()=>Bt,FILTER:()=>wn,FOOTER:()=>Kt,FOREIGNOBJECT:()=>Xn,FORM:()=>qt,G:()=>Yn,H1:()=>wt,H2:()=>Xt,H3:()=>Yt,H4:()=>Wt,H5:()=>$t,H6:()=>Jt,HEAD:()=>Qt,HEADER:()=>zt,HGROUP:()=>Zt,HR:()=>te,HTML:()=>ee,I:()=>ne,IFRAME:()=>oe,IMAGE:()=>Wn,IMG:()=>ae,INPUT:()=>se,INS:()=>re,KBD:()=>ce,LABEL:()=>ie,LEGEND:()=>le,LI:()=>pe,LINE:()=>$n,LINEARGRADIENT:()=>Jn,LINK:()=>fe,MACTION:()=>mo,MAIN:()=>Se,MAP:()=>ue,MARK:()=>de,MARKER:()=>Qn,MASK:()=>zn,MATH:()=>bo,MENU:()=>Te,MERROR:()=>Eo,META:()=>ye,METADATA:()=>Zn,METER:()=>ge,MFRAC:()=>Po,MI:()=>Ao,MMULTISCRIPTS:()=>Co,MN:()=>Mo,MO:()=>Ro,MOVER:()=>No,MPADDED:()=>Oo,MPATH:()=>to,MPHANTOM:()=>Do,MPRESCRIPTS:()=>Lo,MROOT:()=>vo,MROW:()=>Io,MS:()=>Vo,MSPACE:()=>Fo,MSQRT:()=>Ho,MSTYLE:()=>jo,MSUB:()=>Go,MSUBSUP:()=>Uo,MSUP:()=>ko,MTABLE:()=>_o,MTD:()=>Bo,MTEXT:()=>Ko,MTR:()=>qo,MUNDER:()=>wo,MUNDEROVER:()=>Xo,NAV:()=>xe,NOSCRIPT:()=>he,OBJECT:()=>me,OL:()=>be,OPTGROUP:()=>Ee,OPTION:()=>Pe,OUTPUT:()=>Ae,P:()=>Ce,PATH:()=>eo,PATTERN:()=>no,PICTURE:()=>Me,POLYGON:()=>oo,POLYLINE:()=>ao,PRE:()=>Re,PROGRESS:()=>Ne,Q:()=>Oe,RADIALGRADIENT:()=>so,RECT:()=>ro,RP:()=>De,RT:()=>Le,RUBY:()=>ve,S:()=>Ie,SAMP:()=>Ve,SCRIPT:()=>Fe,SEARCH:()=>He,SECTION:()=>je,SELECT:()=>Ge,SEMANTICS:()=>Yo,SET:()=>co,SLOT:()=>Ue,SMALL:()=>ke,SOURCE:()=>_e,SPAN:()=>Be,STOP:()=>io,STRONG:()=>Ke,STYLE:()=>qe,SUB:()=>we,SUMMARY:()=>Xe,SUP:()=>Ye,SVG:()=>lo,SWITCH:()=>po,SYMBOL:()=>fo,TABLE:()=>We,TBODY:()=>$e,TD:()=>Je,TEMPLATE:()=>Qe,TEXT:()=>So,TEXTAREA:()=>ze,TEXTPATH:()=>uo,TFOOT:()=>Ze,TH:()=>tn,THEAD:()=>en,TIME:()=>nn,TITLE:()=>on,TR:()=>an,TRACK:()=>sn,TSPAN:()=>To,U:()=>rn,UL:()=>cn,USE:()=>yo,VAR:()=>ln,VIDEO:()=>pn,VIEW:()=>go,WBR:()=>fn,app:()=>z,child:()=>at,childCount:()=>ot,children:()=>C,childrenStart:()=>D,context:()=>$o,createPatch:()=>et,createState:()=>tt,defuse:()=>F,globals:()=>A,hydrate:()=>O,memo:()=>Z,mergeClass:()=>H,mergeProps:()=>Wo,mergeStyle:()=>j,props:()=>P,tag:()=>nt,vode:()=>Q});var A={currentViewTransition:void 0,requestAnimationFrame:typeof window<"u"&&typeof window.requestAnimationFrame=="function"?window.requestAnimationFrame.bind(window):(e=>e()),startViewTransition:typeof document<"u"&&typeof document.startViewTransition=="function"?document.startViewTransition.bind(document):null};function Q(e,n,...s){if(!e)throw new Error("first argument to vode() must be a tag name or a vode");return Array.isArray(e)?e:typeof n=="object"?[e,n,...s]:[e,...s]}function z(e,n,s,...a){if(!e?.parentElement)throw new Error("first argument to app() must be a valid HTMLElement inside the <html></html> document");if(!n||typeof n!="object")throw new Error("second argument to app() must be a state object");if(typeof s!="function")throw new Error("third argument to app() must be a function that returns a vode");let t={};t.syncRenderer=A.requestAnimationFrame,t.asyncRenderer=A.startViewTransition,t.qSync=null,t.qAsync=null,t.stats={lastSyncRenderTime:0,lastAsyncRenderTime:0,syncRenderCount:0,asyncRenderCount:0,liveEffectCount:0,patchCount:0,syncRenderPatchCount:0,asyncRenderPatchCount:0};let o=n;"patch"in n&&typeof n.patch=="function"&&Array.isArray(n.patch.initialPatches)&&(a=[...n.patch.initialPatches,...a]),Object.defineProperty(n,"patch",{enumerable:!1,configurable:!0,writable:!1,value:async(l,y)=>{if(!(!l||typeof l!="function"&&typeof l!="object"))if(t.stats.patchCount++,l?.next){let f=l;t.stats.liveEffectCount++;try{let d=await f.next();for(;d.done===!1;){t.stats.liveEffectCount++;try{o.patch(d.value,y),d=await f.next()}finally{t.stats.liveEffectCount--}}o.patch(d.value,y)}finally{t.stats.liveEffectCount--}}else if(l.then){t.stats.liveEffectCount++;try{let f=await l;o.patch(f,y)}finally{t.stats.liveEffectCount--}}else if(Array.isArray(l))if(l.length>0)for(let f of l)o.patch(f,!document.hidden&&!!t.asyncRenderer);else{t.qSync=E(t.qSync||{},t.qAsync,!1),t.qAsync=null;try{A.currentViewTransition?.skipTransition()}catch{}t.stats.syncRenderPatchCount++,t.renderSync()}else typeof l=="function"?o.patch(l(t.state),y):y?(t.stats.asyncRenderPatchCount++,t.qAsync=E(t.qAsync||{},l,!1),await t.renderAsync()):(t.stats.syncRenderPatchCount++,t.qSync=E(t.qSync||{},l,!1),t.renderSync())}});function r(l){let y=Date.now(),f=s(t.state);t.vode=M(t.state,e.parentElement,0,0,t.vode,f),e.tagName.toUpperCase()!==f[0].toUpperCase()&&(e=t.vode.node,e._vode=t),l||(t.stats.lastSyncRenderTime=Date.now()-y,t.stats.syncRenderCount++,t.isRendering=!1,t.qSync&&t.renderSync())}let p=r.bind(null,!1),c=r.bind(null,!0);Object.defineProperty(t,"renderSync",{enumerable:!1,configurable:!0,writable:!1,value:()=>{t.isRendering||!t.qSync||(t.isRendering=!0,t.state=E(t.state,t.qSync,!0),t.qSync=null,t.syncRenderer(p))}}),Object.defineProperty(t,"renderAsync",{enumerable:!1,configurable:!0,writable:!1,value:async()=>{if(t.isAnimating||!t.qAsync||(await A.currentViewTransition?.updateCallbackDone,t.isAnimating||!t.qAsync||document.hidden))return;t.isAnimating=!0;let l=Date.now();try{t.state=E(t.state,t.qAsync,!0),t.qAsync=null,A.currentViewTransition=t.asyncRenderer(c),await A.currentViewTransition?.updateCallbackDone}finally{t.stats.lastAsyncRenderTime=Date.now()-l,t.stats.asyncRenderCount++,t.isAnimating=!1}t.qAsync&&t.renderAsync()}}),t.state=o;let i=e;i._vode=t;let S=Array.from(e.parentElement.children).indexOf(e);t.isRendering=!0,t.vode=M(n,e.parentElement,S,S,O(e,!0),s(n)),t.isRendering=!1,t.qSync&&t.renderSync();for(let l of a)o.patch(l);return l=>o.patch(l)}function F(e){if(e?._vode){let s=function(t){if(!t?.node)return;let o=P(t);if(o){for(let r in o)r[0]==="o"&&r[1]==="n"&&(t.node[r]=null);t.node.catch=null}if(t.node._vode)F(t.node);else{let r=C(t);if(r)for(let p of r)s(p)}};var n=s;let a=e._vode;delete e._vode,Object.defineProperty(a.state,"patch",{value:void 0}),Object.defineProperty(a,"renderSync",{value:()=>{}}),Object.defineProperty(a,"renderAsync",{value:()=>{}}),s(a.vode)}else for(let s of e.children)F(s)}function O(e,n){if(e?.nodeType===Node.TEXT_NODE)return e.nodeValue?.trim()!==""?n?e:e.nodeValue:void 0;if(e.nodeType===Node.ELEMENT_NODE){let a=[e.tagName.toLowerCase()];if(n&&(a.node=e),e?.hasAttributes()){let t={},o=e.attributes;for(let r of o)t[r.name]=r.value;a.push(t)}if(e.hasChildNodes()){let t=[];for(let o of e.childNodes){let r=o&&O(o,n);r?a.push(r):o&&n&&t.push(o)}for(let o of t)o.remove()}return a}else return}function Z(e,n){if(!e||!Array.isArray(e))throw new Error("first argument to memo() must be an array of values to compare");if(typeof n!="function")throw new Error("second argument to memo() must be a function that returns a vode or props object");return n.__memo=e,n}function tt(e){if(!e||typeof e!="object")throw new Error("createState() must be called with a state object");return"patch"in e||Object.defineProperty(e,"patch",{enumerable:!1,configurable:!0,writable:!1,value:n=>{let s=e;Array.isArray(s.patch.initialPatches)||(s.patch.initialPatches=[]),s.patch.initialPatches.push(n)}}),e}function et(e){return e}function nt(e){return e?Array.isArray(e)?e[0]:typeof e=="string"||e.nodeType===Node.TEXT_NODE?"#text":void 0:void 0}function P(e){if(Array.isArray(e)&&e.length>1&&e[1]&&!Array.isArray(e[1])&&typeof e[1]=="object"&&e[1].nodeType!==Node.TEXT_NODE)return e[1]}function C(e){let n=D(e);return n>0?e.slice(n):null}function ot(e){let n=D(e);return n<0?0:e.length-n}function at(e,n){let s=D(e);if(s>0)return e[n+s]}function D(e){return P(e)?e.length>2?2:-1:Array.isArray(e)&&e.length>1?1:-1}function E(e,n,s){if(!n)return e;for(let a in n){let t=n[a];if(t&&typeof t=="object"){let o=e[a];o?Array.isArray(t)?e[a]=[...t]:t instanceof Date&&o!==t?e[a]=new Date(t):Array.isArray(o)?e[a]=E({},t,s):typeof o=="object"?E(e[a],t,s):e[a]=E({},t,s):Array.isArray(t)?e[a]=[...t]:t instanceof Date?e[a]=new Date(t):e[a]=E({},t,s)}else t===void 0&&s?delete e[a]:e[a]=t}return e}function M(e,n,s,a,t,o,r){try{o=I(e,o,t);let p=!o||typeof o=="number"||typeof o=="boolean";if(o===t||!t&&p)return t;let c=t?.nodeType===Node.TEXT_NODE,i=c?t:t?.node;if(p){N(e,t),i?.remove();return}let S=!p&&rt(o),l=!p&&st(o),y=!!o&&typeof o!="string"&&!!(o?.node||o?.nodeType===Node.TEXT_NODE);if(!S&&!l&&!y&&!t)throw new Error("Invalid vode: "+typeof o+" "+JSON.stringify(o));if(y&&S?o=o.wholeText:y&&l&&(o=[...o]),c&&S)return i.nodeValue!==o&&(i.nodeValue=o),t;if(S&&(!i||!c)){let f=document.createTextNode(o);if(i)N(e,t),i.replaceWith(f);else{let d=!1;for(let u=a;u<n.childNodes.length;u++){let x=n.childNodes[u];if(x){x.before(f,x),d=!0;break}}d||n.appendChild(f)}return f}if(l&&(!i||c||t[0]!==o[0])){let f=o;1 in f&&(f[1]=I(e,f[1],void 0));let d=P(o);d?.xmlns!==void 0&&(r=d.xmlns);let u=r?document.createElementNS(r,o[0]):document.createElement(o[0]);if(o.node=u,V(e,u,void 0,d,r??null),d&&"catch"in d&&(o.node.catch=null,o.node.removeAttribute("catch")),i)N(e,t),i.replaceWith(u);else{let h=!1;for(let g=a;g<n.childNodes.length;g++){let T=n.childNodes[g];if(T){T.before(u,T),h=!0;break}}h||n.appendChild(u)}let x=C(o);if(x){let h=d?2:1,g=0;for(let T=0;T<x.length;T++){let m=x[T],b=M(e,u,T,g,void 0,m,r??null);o[T+h]=b,b&&g++}}return o._unmountCount=(d?.onUnmount?1:0)+k(o),typeof d?.onMount=="function"&&e.patch(d.onMount(e,u)),o}if(!c&&l&&t[0]===o[0]){o.node=i;let f=o,d=t,u=P(o),x=P(t);if(u?.xmlns!==void 0&&(r=u.xmlns),f[1]?.__memo){let T=f[1];f[1]=I(e,f[1],d[1]),T!==f[1]&&V(e,i,x,u,r)}else V(e,i,x,u,r);u?.catch&&x?.catch!==u.catch&&(o.node.catch=null,o.node.removeAttribute("catch"));let h=C(o),g=C(t);if(h){let T=u?2:1,m=0;for(let b=0;b<h.length;b++){let K=h[b],q=g&&g[b],U=M(e,i,b,m,q,K,r);o[b+T]=U,U&&m++}}if(g){let T=h?h.length:0;for(let m=g.length-1;m>=T;m--)M(e,i,m,m,g[m],void 0,r)}return o._unmountCount=(u?.onUnmount?1:0)+k(o),o}}catch(p){let c=P(o)?.catch;if(c){let i=typeof c=="function"?c(e,p):c;return M(e,n,s,a,O(o?.node||t?.node,!0),i,r)}else throw p}}function N(e,n){if(!n||!Array.isArray(n)||(n._unmountCount|0)===0)return;let s=C(n);if(s)for(let t=s.length-1;t>=0;t--)N(e,s[t]);let a=P(n);typeof a?.onUnmount=="function"&&e.patch(a.onUnmount(e,n.node))}function k(e){let n=C(e);if(!n)return 0;let s=0;for(let a of n)a&&Array.isArray(a)&&(s+=a._unmountCount|0);return s}function st(e){return Array.isArray(e)&&e.length>0&&typeof e[0]=="string"}function rt(e){return typeof e=="string"||e?.nodeType===Node.TEXT_NODE}function I(e,n,s){if(typeof n!="function")return n;let a=n?.__memo,t=s?.__memo;if(Array.isArray(a)&&Array.isArray(t)&&a.length===t.length){let p=!0;for(let c=0;c<a.length;c++)if(a[c]!==t[c]){p=!1;break}if(p)return s}let o=n(e);if(typeof o=="function"&&o?.__memo){let p=o.__memo;if(Array.isArray(p)&&Array.isArray(t)&&p.length===t.length){let i=!0;for(let S=0;S<p.length;S++)if(p[S]!==t[S]){i=!1;break}if(i)return s}let c=o(e);return typeof c=="object"&&(c.__memo=p),c}let r=typeof o=="function"?_(o,e):o;return typeof r=="object"&&(r.__memo=o?.__memo||n?.__memo),r}function _(e,n){return typeof e=="function"?_(e(n),n):e}function V(e,n,s,a,t){if(!a&&!s)return;let o=t!==void 0;if(s)for(let r in s){let p=s[r],c=a?.[r];p!==c&&(a?a[r]=R(e,n,r,p,c,o):R(e,n,r,p,void 0,o))}if(a&&s){for(let r in a)if(!(r in s)){let p=a[r];a[r]=R(e,n,r,void 0,p,o)}}else if(a)for(let r in a){let p=a[r];a[r]=R(e,n,r,void 0,p,o)}}function R(e,n,s,a,t,o){if(s==="style")if(!t)n.style.cssText="";else if(typeof t=="string")a!==t&&(n.style.cssText=t);else if(a&&typeof a=="object"){for(let r in a)t[r]||(n.style[r]=null);for(let r in t){let p=a[r],c=t[r];p!==c&&(n.style[r]=c)}}else for(let r in t)n.style[r]=t[r];else if(s==="class")t?n.setAttribute("class",B(t)):n.removeAttribute("class");else if(s[0]==="o"&&s[1]==="n")if(t){let r=null;if(typeof t=="function"){let p=t;r=c=>e.patch(p(e,c))}else typeof t=="object"&&(r=()=>e.patch(t));n[s]=r}else n[s]=null;else o||(n[s]=t),t==null||t===!1?n.removeAttribute(s):n.setAttribute(s,t);return t}function B(e){return typeof e=="string"?e:Array.isArray(e)?e.map(B).join(" "):typeof e=="object"?Object.keys(e).filter(n=>e[n]).join(" "):""}var ct="a",it="abbr",lt="address",pt="area",ft="article",St="aside",ut="audio",dt="b",Tt="base",yt="bdi",gt="bdo",xt="blockquote",ht="body",mt="br",bt="button",Et="canvas",Pt="caption",At="cite",Ct="code",Mt="col",Rt="colgroup",Nt="data",Ot="datalist",Dt="dd",Lt="del",vt="details",It="dfn",Vt="dialog",Ft="div",Ht="dl",jt="dt",Gt="em",Ut="embed",kt="fieldset",_t="figcaption",Bt="figure",Kt="footer",qt="form",wt="h1",Xt="h2",Yt="h3",Wt="h4",$t="h5",Jt="h6",Qt="head",zt="header",Zt="hgroup",te="hr",ee="html",ne="i",oe="iframe",ae="img",se="input",re="ins",ce="kbd",ie="label",le="legend",pe="li",fe="link",Se="main",ue="map",de="mark",Te="menu",ye="meta",ge="meter",xe="nav",he="noscript",me="object",be="ol",Ee="optgroup",Pe="option",Ae="output",Ce="p",Me="picture",Re="pre",Ne="progress",Oe="q",De="rp",Le="rt",ve="ruby",Ie="s",Ve="samp",Fe="script",He="search",je="section",Ge="select",Ue="slot",ke="small",_e="source",Be="span",Ke="strong",qe="style",we="sub",Xe="summary",Ye="sup",We="table",$e="tbody",Je="td",Qe="template",ze="textarea",Ze="tfoot",tn="th",en="thead",nn="time",on="title",an="tr",sn="track",rn="u",cn="ul",ln="var",pn="video",fn="wbr",Sn="animate",un="animateMotion",dn="animateTransform",Tn="circle",yn="clipPath",gn="defs",xn="desc",hn="ellipse",mn="feBlend",bn="feColorMatrix",En="feComponentTransfer",Pn="feComposite",An="feConvolveMatrix",Cn="feDiffuseLighting",Mn="feDisplacementMap",Rn="feDistantLight",Nn="feDropShadow",On="feFlood",Dn="feFuncA",Ln="feFuncB",vn="feFuncG",In="feFuncR",Vn="feGaussianBlur",Fn="feImage",Hn="feMerge",jn="feMergeNode",Gn="feMorphology",Un="feOffset",kn="fePointLight",_n="feSpecularLighting",Bn="feSpotLight",Kn="feTile",qn="feTurbulence",wn="filter",Xn="foreignObject",Yn="g",Wn="image",$n="line",Jn="linearGradient",Qn="marker",zn="mask",Zn="metadata",to="mpath",eo="path",no="pattern",oo="polygon",ao="polyline",so="radialGradient",ro="rect",co="set",io="stop",lo="svg",po="switch",fo="symbol",So="text",uo="textPath",To="tspan",yo="use",go="view",xo="annotation",ho="annotation-xml",mo="maction",bo="math",Eo="merror",Po="mfrac",Ao="mi",Co="mmultiscripts",Mo="mn",Ro="mo",No="mover",Oo="mpadded",Do="mphantom",Lo="mprescripts",vo="mroot",Io="mrow",Vo="ms",Fo="mspace",Ho="msqrt",jo="mstyle",Go="msub",Uo="msubsup",ko="msup",_o="mtable",Bo="mtd",Ko="mtext",qo="mtr",wo="munder",Xo="munderover",Yo="semantics";function H(...e){if(!e||e.length===0)return null;if(e.length===1)return e[0];let n=e[0];for(let s=1;s<e.length;s++){let a=n,t=e[s];if(!a)n=t;else if(t)if(typeof a=="string"&&typeof t=="string"){let o=a.split(" "),r=t.split(" "),p=new Set([...o,...r]);n=Array.from(p).join(" ").trim()}else if(typeof a=="string"&&Array.isArray(t)){let o=new Set([...t,...a.split(" ")]);n=Array.from(o).join(" ").trim()}else if(Array.isArray(a)&&typeof t=="string"){let o=new Set([...a,...t.split(" ")]);n=Array.from(o).join(" ").trim()}else if(Array.isArray(a)&&Array.isArray(t)){let o=new Set([...a,...t]);n=Array.from(o).join(" ").trim()}else if(typeof a=="string"&&typeof t=="object")n={[a]:!0,...t};else if(typeof a=="object"&&typeof t=="string")n={...a,[t]:!0};else if(typeof a=="object"&&typeof t=="object")n={...a,...t};else if(typeof a=="object"&&Array.isArray(t)){let o={...a};for(let r of t)o[r]=!0;n=o}else if(Array.isArray(a)&&typeof t=="object"){let o={};for(let r of a)o[r]=!0;for(let r of Object.keys(t))o[r]=t[r];n=o}else throw new Error(`cannot merge classes of ${a} (${typeof a}) and ${t} (${typeof t})`);else continue}return n}var L;function j(...e){L||(L=document.createElement("div"));try{let n=L.style;for(let s of e)if(typeof s=="object"&&s!==null)for(let a in s)n[a]=s[a];else typeof s=="string"&&(n.cssText+=";"+s);return n.cssText}finally{L.style.cssText=""}}function Wo(...e){if(e.length===0)return;if(e.length===1)return e[0]||void 0;let n;for(let s of e)if(!(typeof s!="object"||s===null)){n||(n={});for(let a in s)a==="style"?n.style=j(n.style,s.style):a==="class"?n.class=H(n.class,s.class):n[a]=s[a]}return n}function $o(e){return new G(e,[])}var G=class e{constructor(n,s){this.state=n;this.keys=s;function a(c,i){if(s.length>1){let S=0,l=i[s[S]];for((typeof l!="object"||l===null)&&(i[s[S]]=l={}),S=1;S<s.length-1;S++){let y=l;l=l[s[S]],(typeof l!="object"||l===null)&&(y[s[S]]=l={})}l[s[S]]=c}else s.length===1?typeof i[s[0]]=="object"&&typeof c=="object"?Object.assign(i[s[0]],c):i[s[0]]=c:Object.assign(i,c)}function t(c){let i={};return a(c,i),i}function o(){if(s.length===0)return n;let c=n?n[s[0]]:void 0;for(let i=1;i<s.length&&c;i++)c=c[s[i]];return c}function r(c){a(c,n)}function p(c,i){i?n.patch([t(c)]):n.patch(t(c))}return new Proxy(this,{get:(c,i,S)=>{if(i==="state")return n;if(i==="get")return o;if(i==="put")return r;if(i==="patch")return p;let l=[...c.keys,String(i)];return new e(c.state,l)}})}state;keys;get(){}put(n){}patch(n){}};return J(Jo);})();
package/dist/vode.min.mjs CHANGED
@@ -1 +1 @@
1
- var R={currentViewTransition:void 0,requestAnimationFrame:typeof window<"u"&&typeof window.requestAnimationFrame=="function"?window.requestAnimationFrame.bind(window):(e=>e()),startViewTransition:typeof document<"u"&&typeof document.startViewTransition=="function"?document.startViewTransition.bind(document):null};function $(e,n,...s){if(!e)throw new Error("first argument to vode() must be a tag name or a vode");return Array.isArray(e)?e:typeof n=="object"?[e,n,...s]:[e,...s]}function J(e,n,s,...a){if(!e?.parentElement)throw new Error("first argument to app() must be a valid HTMLElement inside the <html></html> document");if(!n||typeof n!="object")throw new Error("second argument to app() must be a state object");if(typeof s!="function")throw new Error("third argument to app() must be a function that returns a vode");let t={};t.syncRenderer=R.requestAnimationFrame,t.asyncRenderer=R.startViewTransition,t.qSync=null,t.qAsync=null,t.stats={lastSyncRenderTime:0,lastAsyncRenderTime:0,syncRenderCount:0,asyncRenderCount:0,liveEffectCount:0,patchCount:0,syncRenderPatchCount:0,asyncRenderPatchCount:0},t.unmounts=[];let o=n;"patch"in n&&typeof n.patch=="function"&&Array.isArray(n.patch.initialPatches)&&(a=[...n.patch.initialPatches,...a]),Object.defineProperty(n,"patch",{enumerable:!1,configurable:!0,writable:!1,value:async(c,x)=>{if(!(!c||typeof c!="function"&&typeof c!="object"))if(t.stats.patchCount++,c?.next){let h=c;t.stats.liveEffectCount++;try{let A=await h.next();for(;A.done===!1;){t.stats.liveEffectCount++;try{o.patch(A.value,x),A=await h.next()}finally{t.stats.liveEffectCount--}}o.patch(A.value,x)}finally{t.stats.liveEffectCount--}}else if(c.then){t.stats.liveEffectCount++;try{let h=await c;o.patch(h,x)}finally{t.stats.liveEffectCount--}}else if(Array.isArray(c))if(c.length>0)for(let h of c)o.patch(h,!document.hidden&&!!t.asyncRenderer);else{t.qSync=P(t.qSync||{},t.qAsync,!1),t.qAsync=null;try{R.currentViewTransition?.skipTransition()}catch{}t.stats.syncRenderPatchCount++,t.renderSync()}else typeof c=="function"?o.patch(c(t.state),x):x?(t.stats.asyncRenderPatchCount++,t.qAsync=P(t.qAsync||{},c,!1),await t.renderAsync()):(t.stats.syncRenderPatchCount++,t.qSync=P(t.qSync||{},c,!1),t.renderSync())}});function r(c){let x=Date.now(),h=s(t.state);t.vode=O(t.state,e.parentElement,0,0,t.vode,h,null,t.unmounts,0),e.tagName.toUpperCase()!==h[0].toUpperCase()&&(e=t.vode.node,e._vode=t),c||(t.stats.lastSyncRenderTime=Date.now()-x,t.stats.syncRenderCount++,t.isRendering=!1,t.qSync&&t.renderSync())}let l=r.bind(null,!1),i=r.bind(null,!0);Object.defineProperty(t,"renderSync",{enumerable:!1,configurable:!0,writable:!1,value:()=>{t.isRendering||!t.qSync||(t.isRendering=!0,t.state=P(t.state,t.qSync,!0),t.qSync=null,t.syncRenderer(l))}}),Object.defineProperty(t,"renderAsync",{enumerable:!1,configurable:!0,writable:!1,value:async()=>{if(t.isAnimating||!t.qAsync||(await R.currentViewTransition?.updateCallbackDone,t.isAnimating||!t.qAsync||document.hidden))return;t.isAnimating=!0;let c=Date.now();try{t.state=P(t.state,t.qAsync,!0),t.qAsync=null,R.currentViewTransition=t.asyncRenderer(i),await R.currentViewTransition?.updateCallbackDone}finally{t.stats.lastAsyncRenderTime=Date.now()-c,t.stats.asyncRenderCount++,t.isAnimating=!1}t.qAsync&&t.renderAsync()}}),t.state=o;let p=e;p._vode=t;let f=Array.from(e.parentElement.children).indexOf(e);t.isRendering=!0,t.vode=O(n,e.parentElement,f,f,j(e,!0),s(n),null,t.unmounts,0),t.isRendering=!1,t.qSync&&t.renderSync();for(let c of a)o.patch(c);return c=>o.patch(c)}function _(e){if(e?._vode){let s=function(t){if(!t?.node)return;let o=N(t);if(o){for(let r in o)r[0]==="o"&&r[1]==="n"&&(t.node[r]=null);t.node.catch=null}if(t.node._vode)_(t.node);else{let r=L(t);if(r)for(let l of r)s(l)}};var n=s;let a=e._vode;delete e._vode,Object.defineProperty(a.state,"patch",{value:void 0}),Object.defineProperty(a,"renderSync",{value:()=>{}}),Object.defineProperty(a,"renderAsync",{value:()=>{}}),s(a.vode)}else for(let s of e.children)_(s)}function j(e,n){if(e?.nodeType===Node.TEXT_NODE)return e.nodeValue?.trim()!==""?n?e:e.nodeValue:void 0;if(e.nodeType===Node.ELEMENT_NODE){let a=[e.tagName.toLowerCase()];if(n&&(a.node=e),e?.hasAttributes()){let t={},o=e.attributes;for(let r of o)t[r.name]=r.value;a.push(t)}if(e.hasChildNodes()){let t=[];for(let o of e.childNodes){let r=o&&j(o,n);r?a.push(r):o&&n&&t.push(o)}for(let o of t)o.remove()}return a}else return}function Q(e,n){if(!e||!Array.isArray(e))throw new Error("first argument to memo() must be an array of values to compare");if(typeof n!="function")throw new Error("second argument to memo() must be a function that returns a vode or props object");return n.__memo=e,n}function z(e){if(!e||typeof e!="object")throw new Error("createState() must be called with a state object");return"patch"in e||Object.defineProperty(e,"patch",{enumerable:!1,configurable:!0,writable:!1,value:n=>{let s=e;Array.isArray(s.patch.initialPatches)||(s.patch.initialPatches=[]),s.patch.initialPatches.push(n)}}),e}function Z(e){return e}function tt(e){return e?Array.isArray(e)?e[0]:typeof e=="string"||e.nodeType===Node.TEXT_NODE?"#text":void 0:void 0}function N(e){if(Array.isArray(e)&&e.length>1&&e[1]&&!Array.isArray(e[1])&&typeof e[1]=="object"&&e[1].nodeType!==Node.TEXT_NODE)return e[1]}function L(e){let n=G(e);return n>0?e.slice(n):null}function et(e){let n=G(e);return n<0?0:e.length-n}function nt(e,n){let s=G(e);if(s>0)return e[n+s]}function G(e){return N(e)?e.length>2?2:-1:Array.isArray(e)&&e.length>1?1:-1}function P(e,n,s){if(!n)return e;for(let a in n){let t=n[a];if(t&&typeof t=="object"){let o=e[a];o?Array.isArray(t)?e[a]=[...t]:t instanceof Date&&o!==t?e[a]=new Date(t):Array.isArray(o)?e[a]=P({},t,s):typeof o=="object"?P(e[a],t,s):e[a]=P({},t,s):Array.isArray(t)?e[a]=[...t]:t instanceof Date?e[a]=new Date(t):e[a]=P({},t,s)}else t===void 0&&s?delete e[a]:e[a]=t}return e}function O(e,n,s,a,t,o,r,l,i){try{o=V(e,o,t);let p=!o||typeof o=="number"||typeof o=="boolean";if(o===t||!t&&p)return t;let f=t?.nodeType===Node.TEXT_NODE,c=f?t:t?.node;if(p){if(!f&&typeof t?.unmountCount=="number"){let y=t.unmountStart,d=t.unmountCount;for(let S=d-1;S>=0;S--){let T=l[y+S];T&&(e.patch(T(e,c)),l[y+S]=null)}}c?.remove();return}let x=!p&&W(o),h=!p&&Y(o),A=!!o&&typeof o!="string"&&!!(o?.node||o?.nodeType===Node.TEXT_NODE);if(!x&&!h&&!A&&!t)throw new Error("Invalid vode: "+typeof o+" "+JSON.stringify(o));if(A&&x?o=o.wholeText:A&&h&&(o=[...o]),f&&x)return c.nodeValue!==o&&(c.nodeValue=o),t;if(x&&(!c||!f)){let y=document.createTextNode(o);if(c){if(!f&&typeof t?.unmountCount=="number"){let d=t.unmountStart,S=t.unmountCount;for(let T=S-1;T>=0;T--){let C=l[d+T];C&&(e.patch(C(e,c)),l[d+T]=null)}}c.replaceWith(y)}else{let d=!1;for(let S=a;S<n.childNodes.length;S++){let T=n.childNodes[S];if(T){T.before(y,T),d=!0;break}}d||n.appendChild(y)}return y}if(h&&(!c||f||t[0]!==o[0])){let y=o;1 in y&&(y[1]=V(e,y[1],void 0));let d=N(o);d?.xmlns!==void 0&&(r=d.xmlns);let S=r?document.createElementNS(r,o[0]):document.createElement(o[0]);if(o.node=S,H(e,S,void 0,d,r??null),d&&"catch"in d&&(o.node.catch=null,o.node.removeAttribute("catch")),c){if(!f&&typeof t?.unmountCount=="number"){let b=t.unmountStart,g=t.unmountCount;for(let u=g-1;u>=0;u--){let m=l[b+u];m&&(e.patch(m(e,c)),l[b+u]=null)}}l[i]=d?.onUnmount??null,c.replaceWith(S)}else{l[i]=d?.onUnmount??null;let b=!1;for(let g=a;g<n.childNodes.length;g++){let u=n.childNodes[g];if(u){u.before(S,u),b=!0;break}}b||n.appendChild(S)}let T=0,C=i+1,M=L(o);if(M){let b=d?2:1,g=0;for(let u=0;u<M.length;u++){let m=M[u],E=O(e,S,u,g,void 0,m,r??null,l,C);if(o[u+b]=E,E){g++;let D=E.unmountCount||0;T+=D,C+=D}}}return S.onMount&&e.patch(S.onMount(S)),o.unmountCount=1+T,o.unmountStart=i,o}if(!f&&h&&t[0]===o[0]){o.node=c;let y=o,d=t,S=N(o),T=N(t);if(S?.xmlns!==void 0&&(r=S.xmlns),y[1]?.__memo){let u=y[1];y[1]=V(e,y[1],d[1]),u!==y[1]&&H(e,c,T,S,r)}else H(e,c,T,S,r);S?.catch&&T?.catch!==S.catch&&(o.node.catch=null,o.node.removeAttribute("catch")),l[i]=S?.onUnmount??null;let C=0,M=i+1,b=L(o),g=L(t);if(b){let u=S?2:1,m=0;for(let E=0;E<b.length;E++){let D=b[E],X=g&&g[E],F=O(e,c,E,m,X,D,r,l,M);if(o[E+u]=F,F){m++;let k=F.unmountCount||0;C+=k,M+=k}}}if(g){let u=b?b.length:0;for(let m=g.length-1;m>=u;m--)O(e,c,m,m,g[m],void 0,r,l,g[m].unmountStart)}return o.unmountCount=1+C,o.unmountStart=i,o}}catch(p){let f=N(o)?.catch;if(f){let c=typeof f=="function"?f(e,p):f;return O(e,n,s,a,j(o?.node||t?.node,!0),c,r,l,i)}else throw p}}function Y(e){return Array.isArray(e)&&e.length>0&&typeof e[0]=="string"}function W(e){return typeof e=="string"||e?.nodeType===Node.TEXT_NODE}function V(e,n,s){if(typeof n!="function")return n;let a=n?.__memo,t=s?.__memo;if(Array.isArray(a)&&Array.isArray(t)&&a.length===t.length){let l=!0;for(let i=0;i<a.length;i++)if(a[i]!==t[i]){l=!1;break}if(l)return s}let o=n(e);if(typeof o=="function"&&o?.__memo){let l=o.__memo;if(Array.isArray(l)&&Array.isArray(t)&&l.length===t.length){let p=!0;for(let f=0;f<l.length;f++)if(l[f]!==t[f]){p=!1;break}if(p)return s}let i=o(e);return typeof i=="object"&&(i.__memo=l),i}let r=typeof o=="function"?B(o,e):o;return typeof r=="object"&&(r.__memo=o?.__memo||n?.__memo),r}function B(e,n){return typeof e=="function"?B(e(n),n):e}function H(e,n,s,a,t){if(!a&&!s)return;let o=t!==void 0;if(s)for(let r in s){let l=s[r],i=a?.[r];l!==i&&(a?a[r]=v(e,n,r,l,i,o):v(e,n,r,l,void 0,o))}if(a&&s){for(let r in a)if(!(r in s)){let l=a[r];a[r]=v(e,n,r,void 0,l,o)}}else if(a)for(let r in a){let l=a[r];a[r]=v(e,n,r,void 0,l,o)}}function v(e,n,s,a,t,o){if(s==="style")if(!t)n.style.cssText="";else if(typeof t=="string")a!==t&&(n.style.cssText=t);else if(a&&typeof a=="object"){for(let r in a)t[r]||(n.style[r]=null);for(let r in t){let l=a[r],i=t[r];l!==i&&(n.style[r]=i)}}else for(let r in t)n.style[r]=t[r];else if(s==="class")t?n.setAttribute("class",K(t)):n.removeAttribute("class");else if(s[0]==="o"&&s[1]==="n")if(t){let r=null;if(typeof t=="function"){let l=t;r=i=>e.patch(l(e,i))}else typeof t=="object"&&(r=()=>e.patch(t));n[s]=r}else n[s]=null;else o||(n[s]=t),t==null||t===!1?n.removeAttribute(s):n.setAttribute(s,t);return t}function K(e){return typeof e=="string"?e:Array.isArray(e)?e.map(K).join(" "):typeof e=="object"?Object.keys(e).filter(n=>e[n]).join(" "):""}var at="a",st="abbr",rt="address",ct="area",it="article",lt="aside",pt="audio",ft="b",St="base",ut="bdi",dt="bdo",Tt="blockquote",yt="body",gt="br",xt="button",ht="canvas",mt="caption",bt="cite",Et="code",Pt="col",At="colgroup",Ct="data",Mt="datalist",Rt="dd",Nt="del",Ot="details",Dt="dfn",vt="dialog",Lt="div",It="dl",Ft="dt",Vt="em",Ht="embed",jt="fieldset",Gt="figcaption",Ut="figure",kt="footer",_t="form",Bt="h1",Kt="h2",qt="h3",wt="h4",Xt="h5",Yt="h6",Wt="head",$t="header",Jt="hgroup",Qt="hr",zt="html",Zt="i",te="iframe",ee="img",ne="input",oe="ins",ae="kbd",se="label",re="legend",ce="li",ie="link",le="main",pe="map",fe="mark",Se="menu",ue="meta",de="meter",Te="nav",ye="noscript",ge="object",xe="ol",he="optgroup",me="option",be="output",Ee="p",Pe="picture",Ae="pre",Ce="progress",Me="q",Re="rp",Ne="rt",Oe="ruby",De="s",ve="samp",Le="script",Ie="search",Fe="section",Ve="select",He="slot",je="small",Ge="source",Ue="span",ke="strong",_e="style",Be="sub",Ke="summary",qe="sup",we="table",Xe="tbody",Ye="td",We="template",$e="textarea",Je="tfoot",Qe="th",ze="thead",Ze="time",tn="title",en="tr",nn="track",on="u",an="ul",sn="var",rn="video",cn="wbr",ln="animate",pn="animateMotion",fn="animateTransform",Sn="circle",un="clipPath",dn="defs",Tn="desc",yn="ellipse",gn="feBlend",xn="feColorMatrix",hn="feComponentTransfer",mn="feComposite",bn="feConvolveMatrix",En="feDiffuseLighting",Pn="feDisplacementMap",An="feDistantLight",Cn="feDropShadow",Mn="feFlood",Rn="feFuncA",Nn="feFuncB",On="feFuncG",Dn="feFuncR",vn="feGaussianBlur",Ln="feImage",In="feMerge",Fn="feMergeNode",Vn="feMorphology",Hn="feOffset",jn="fePointLight",Gn="feSpecularLighting",Un="feSpotLight",kn="feTile",_n="feTurbulence",Bn="filter",Kn="foreignObject",qn="g",wn="image",Xn="line",Yn="linearGradient",Wn="marker",$n="mask",Jn="metadata",Qn="mpath",zn="path",Zn="pattern",to="polygon",eo="polyline",no="radialGradient",oo="rect",ao="set",so="stop",ro="svg",co="switch",io="symbol",lo="text",po="textPath",fo="tspan",So="use",uo="view",To="annotation",yo="annotation-xml",go="maction",xo="math",ho="merror",mo="mfrac",bo="mi",Eo="mmultiscripts",Po="mn",Ao="mo",Co="mover",Mo="mpadded",Ro="mphantom",No="mprescripts",Oo="mroot",Do="mrow",vo="ms",Lo="mspace",Io="msqrt",Fo="mstyle",Vo="msub",Ho="msubsup",jo="msup",Go="mtable",Uo="mtd",ko="mtext",_o="mtr",Bo="munder",Ko="munderover",qo="semantics";function q(...e){if(!e||e.length===0)return null;if(e.length===1)return e[0];let n=e[0];for(let s=1;s<e.length;s++){let a=n,t=e[s];if(!a)n=t;else if(t)if(typeof a=="string"&&typeof t=="string"){let o=a.split(" "),r=t.split(" "),l=new Set([...o,...r]);n=Array.from(l).join(" ").trim()}else if(typeof a=="string"&&Array.isArray(t)){let o=new Set([...t,...a.split(" ")]);n=Array.from(o).join(" ").trim()}else if(Array.isArray(a)&&typeof t=="string"){let o=new Set([...a,...t.split(" ")]);n=Array.from(o).join(" ").trim()}else if(Array.isArray(a)&&Array.isArray(t)){let o=new Set([...a,...t]);n=Array.from(o).join(" ").trim()}else if(typeof a=="string"&&typeof t=="object")n={[a]:!0,...t};else if(typeof a=="object"&&typeof t=="string")n={...a,[t]:!0};else if(typeof a=="object"&&typeof t=="object")n={...a,...t};else if(typeof a=="object"&&Array.isArray(t)){let o={...a};for(let r of t)o[r]=!0;n=o}else if(Array.isArray(a)&&typeof t=="object"){let o={};for(let r of a)o[r]=!0;for(let r of Object.keys(t))o[r]=t[r];n=o}else throw new Error(`cannot merge classes of ${a} (${typeof a}) and ${t} (${typeof t})`);else continue}return n}var I;function w(...e){I||(I=document.createElement("div"));try{let n=I.style;for(let s of e)if(typeof s=="object"&&s!==null)for(let a in s)n[a]=s[a];else typeof s=="string"&&(n.cssText+=";"+s);return n.cssText}finally{I.style.cssText=""}}function Jo(...e){if(e.length===0)return;if(e.length===1)return e[0]||void 0;let n;for(let s of e)if(!(typeof s!="object"||s===null)){n||(n={});for(let a in s)a==="style"?n.style=w(n.style,s.style):a==="class"?n.class=q(n.class,s.class):n[a]=s[a]}return n}function zo(e){return new U(e,[])}var U=class e{constructor(n,s){this.state=n;this.keys=s;function a(i,p){if(s.length>1){let f=0,c=p[s[f]];for((typeof c!="object"||c===null)&&(p[s[f]]=c={}),f=1;f<s.length-1;f++){let x=c;c=c[s[f]],(typeof c!="object"||c===null)&&(x[s[f]]=c={})}c[s[f]]=i}else s.length===1?typeof p[s[0]]=="object"&&typeof i=="object"?Object.assign(p[s[0]],i):p[s[0]]=i:Object.assign(p,i)}function t(i){let p={};return a(i,p),p}function o(){if(s.length===0)return n;let i=n?n[s[0]]:void 0;for(let p=1;p<s.length&&i;p++)i=i[s[p]];return i}function r(i){a(i,n)}function l(i,p){p?n.patch([t(i)]):n.patch(t(i))}return new Proxy(this,{get:(i,p,f)=>{if(p==="state")return n;if(p==="get")return o;if(p==="put")return r;if(p==="patch")return l;let c=[...i.keys,String(p)];return new e(i.state,c)}})}state;keys;get(){}put(n){}patch(n){}};export{at as A,st as ABBR,rt as ADDRESS,ln as ANIMATE,pn as ANIMATEMOTION,fn as ANIMATETRANSFORM,To as ANNOTATION,yo as ANNOTATION_XML,ct as AREA,it as ARTICLE,lt as ASIDE,pt as AUDIO,ft as B,St as BASE,ut as BDI,dt as BDO,Tt as BLOCKQUOTE,yt as BODY,gt as BR,xt as BUTTON,ht as CANVAS,mt as CAPTION,Sn as CIRCLE,bt as CITE,un as CLIPPATH,Et as CODE,Pt as COL,At as COLGROUP,Ct as DATA,Mt as DATALIST,Rt as DD,dn as DEFS,Nt as DEL,Tn as DESC,Ot as DETAILS,Dt as DFN,vt as DIALOG,Lt as DIV,It as DL,Ft as DT,yn as ELLIPSE,Vt as EM,Ht as EMBED,gn as FEBLEND,xn as FECOLORMATRIX,hn as FECOMPONENTTRANSFER,mn as FECOMPOSITE,bn as FECONVOLVEMATRIX,En as FEDIFFUSELIGHTING,Pn as FEDISPLACEMENTMAP,An as FEDISTANTLIGHT,Cn as FEDROPSHADOW,Mn as FEFLOOD,Rn as FEFUNCA,Nn as FEFUNCB,On as FEFUNCG,Dn as FEFUNCR,vn as FEGAUSSIANBLUR,Ln as FEIMAGE,In as FEMERGE,Fn as FEMERGENODE,Vn as FEMORPHOLOGY,Hn as FEOFFSET,jn as FEPOINTLIGHT,Gn as FESPECULARLIGHTING,Un as FESPOTLIGHT,kn as FETILE,_n as FETURBULENCE,jt as FIELDSET,Gt as FIGCAPTION,Ut as FIGURE,Bn as FILTER,kt as FOOTER,Kn as FOREIGNOBJECT,_t as FORM,qn as G,Bt as H1,Kt as H2,qt as H3,wt as H4,Xt as H5,Yt as H6,Wt as HEAD,$t as HEADER,Jt as HGROUP,Qt as HR,zt as HTML,Zt as I,te as IFRAME,wn as IMAGE,ee as IMG,ne as INPUT,oe as INS,ae as KBD,se as LABEL,re as LEGEND,ce as LI,Xn as LINE,Yn as LINEARGRADIENT,ie as LINK,go as MACTION,le as MAIN,pe as MAP,fe as MARK,Wn as MARKER,$n as MASK,xo as MATH,Se as MENU,ho as MERROR,ue as META,Jn as METADATA,de as METER,mo as MFRAC,bo as MI,Eo as MMULTISCRIPTS,Po as MN,Ao as MO,Co as MOVER,Mo as MPADDED,Qn as MPATH,Ro as MPHANTOM,No as MPRESCRIPTS,Oo as MROOT,Do as MROW,vo as MS,Lo as MSPACE,Io as MSQRT,Fo as MSTYLE,Vo as MSUB,Ho as MSUBSUP,jo as MSUP,Go as MTABLE,Uo as MTD,ko as MTEXT,_o as MTR,Bo as MUNDER,Ko as MUNDEROVER,Te as NAV,ye as NOSCRIPT,ge as OBJECT,xe as OL,he as OPTGROUP,me as OPTION,be as OUTPUT,Ee as P,zn as PATH,Zn as PATTERN,Pe as PICTURE,to as POLYGON,eo as POLYLINE,Ae as PRE,Ce as PROGRESS,Me as Q,no as RADIALGRADIENT,oo as RECT,Re as RP,Ne as RT,Oe as RUBY,De as S,ve as SAMP,Le as SCRIPT,Ie as SEARCH,Fe as SECTION,Ve as SELECT,qo as SEMANTICS,ao as SET,He as SLOT,je as SMALL,Ge as SOURCE,Ue as SPAN,so as STOP,ke as STRONG,_e as STYLE,Be as SUB,Ke as SUMMARY,qe as SUP,ro as SVG,co as SWITCH,io as SYMBOL,we as TABLE,Xe as TBODY,Ye as TD,We as TEMPLATE,lo as TEXT,$e as TEXTAREA,po as TEXTPATH,Je as TFOOT,Qe as TH,ze as THEAD,Ze as TIME,tn as TITLE,en as TR,nn as TRACK,fo as TSPAN,on as U,an as UL,So as USE,sn as VAR,rn as VIDEO,uo as VIEW,cn as WBR,J as app,nt as child,et as childCount,L as children,G as childrenStart,zo as context,Z as createPatch,z as createState,_ as defuse,R as globals,j as hydrate,Q as memo,q as mergeClass,Jo as mergeProps,w as mergeStyle,N as props,tt as tag,$ as vode};
1
+ var A={currentViewTransition:void 0,requestAnimationFrame:typeof window<"u"&&typeof window.requestAnimationFrame=="function"?window.requestAnimationFrame.bind(window):(e=>e()),startViewTransition:typeof document<"u"&&typeof document.startViewTransition=="function"?document.startViewTransition.bind(document):null};function X(e,n,...s){if(!e)throw new Error("first argument to vode() must be a tag name or a vode");return Array.isArray(e)?e:typeof n=="object"?[e,n,...s]:[e,...s]}function Y(e,n,s,...a){if(!e?.parentElement)throw new Error("first argument to app() must be a valid HTMLElement inside the <html></html> document");if(!n||typeof n!="object")throw new Error("second argument to app() must be a state object");if(typeof s!="function")throw new Error("third argument to app() must be a function that returns a vode");let t={};t.syncRenderer=A.requestAnimationFrame,t.asyncRenderer=A.startViewTransition,t.qSync=null,t.qAsync=null,t.stats={lastSyncRenderTime:0,lastAsyncRenderTime:0,syncRenderCount:0,asyncRenderCount:0,liveEffectCount:0,patchCount:0,syncRenderPatchCount:0,asyncRenderPatchCount:0};let o=n;"patch"in n&&typeof n.patch=="function"&&Array.isArray(n.patch.initialPatches)&&(a=[...n.patch.initialPatches,...a]),Object.defineProperty(n,"patch",{enumerable:!1,configurable:!0,writable:!1,value:async(l,y)=>{if(!(!l||typeof l!="function"&&typeof l!="object"))if(t.stats.patchCount++,l?.next){let f=l;t.stats.liveEffectCount++;try{let d=await f.next();for(;d.done===!1;){t.stats.liveEffectCount++;try{o.patch(d.value,y),d=await f.next()}finally{t.stats.liveEffectCount--}}o.patch(d.value,y)}finally{t.stats.liveEffectCount--}}else if(l.then){t.stats.liveEffectCount++;try{let f=await l;o.patch(f,y)}finally{t.stats.liveEffectCount--}}else if(Array.isArray(l))if(l.length>0)for(let f of l)o.patch(f,!document.hidden&&!!t.asyncRenderer);else{t.qSync=E(t.qSync||{},t.qAsync,!1),t.qAsync=null;try{A.currentViewTransition?.skipTransition()}catch{}t.stats.syncRenderPatchCount++,t.renderSync()}else typeof l=="function"?o.patch(l(t.state),y):y?(t.stats.asyncRenderPatchCount++,t.qAsync=E(t.qAsync||{},l,!1),await t.renderAsync()):(t.stats.syncRenderPatchCount++,t.qSync=E(t.qSync||{},l,!1),t.renderSync())}});function r(l){let y=Date.now(),f=s(t.state);t.vode=C(t.state,e.parentElement,0,0,t.vode,f),e.tagName.toUpperCase()!==f[0].toUpperCase()&&(e=t.vode.node,e._vode=t),l||(t.stats.lastSyncRenderTime=Date.now()-y,t.stats.syncRenderCount++,t.isRendering=!1,t.qSync&&t.renderSync())}let p=r.bind(null,!1),c=r.bind(null,!0);Object.defineProperty(t,"renderSync",{enumerable:!1,configurable:!0,writable:!1,value:()=>{t.isRendering||!t.qSync||(t.isRendering=!0,t.state=E(t.state,t.qSync,!0),t.qSync=null,t.syncRenderer(p))}}),Object.defineProperty(t,"renderAsync",{enumerable:!1,configurable:!0,writable:!1,value:async()=>{if(t.isAnimating||!t.qAsync||(await A.currentViewTransition?.updateCallbackDone,t.isAnimating||!t.qAsync||document.hidden))return;t.isAnimating=!0;let l=Date.now();try{t.state=E(t.state,t.qAsync,!0),t.qAsync=null,A.currentViewTransition=t.asyncRenderer(c),await A.currentViewTransition?.updateCallbackDone}finally{t.stats.lastAsyncRenderTime=Date.now()-l,t.stats.asyncRenderCount++,t.isAnimating=!1}t.qAsync&&t.renderAsync()}}),t.state=o;let i=e;i._vode=t;let S=Array.from(e.parentElement.children).indexOf(e);t.isRendering=!0,t.vode=C(n,e.parentElement,S,S,v(e,!0),s(n)),t.isRendering=!1,t.qSync&&t.renderSync();for(let l of a)o.patch(l);return l=>o.patch(l)}function H(e){if(e?._vode){let s=function(t){if(!t?.node)return;let o=P(t);if(o){for(let r in o)r[0]==="o"&&r[1]==="n"&&(t.node[r]=null);t.node.catch=null}if(t.node._vode)H(t.node);else{let r=M(t);if(r)for(let p of r)s(p)}};var n=s;let a=e._vode;delete e._vode,Object.defineProperty(a.state,"patch",{value:void 0}),Object.defineProperty(a,"renderSync",{value:()=>{}}),Object.defineProperty(a,"renderAsync",{value:()=>{}}),s(a.vode)}else for(let s of e.children)H(s)}function v(e,n){if(e?.nodeType===Node.TEXT_NODE)return e.nodeValue?.trim()!==""?n?e:e.nodeValue:void 0;if(e.nodeType===Node.ELEMENT_NODE){let a=[e.tagName.toLowerCase()];if(n&&(a.node=e),e?.hasAttributes()){let t={},o=e.attributes;for(let r of o)t[r.name]=r.value;a.push(t)}if(e.hasChildNodes()){let t=[];for(let o of e.childNodes){let r=o&&v(o,n);r?a.push(r):o&&n&&t.push(o)}for(let o of t)o.remove()}return a}else return}function W(e,n){if(!e||!Array.isArray(e))throw new Error("first argument to memo() must be an array of values to compare");if(typeof n!="function")throw new Error("second argument to memo() must be a function that returns a vode or props object");return n.__memo=e,n}function $(e){if(!e||typeof e!="object")throw new Error("createState() must be called with a state object");return"patch"in e||Object.defineProperty(e,"patch",{enumerable:!1,configurable:!0,writable:!1,value:n=>{let s=e;Array.isArray(s.patch.initialPatches)||(s.patch.initialPatches=[]),s.patch.initialPatches.push(n)}}),e}function J(e){return e}function Q(e){return e?Array.isArray(e)?e[0]:typeof e=="string"||e.nodeType===Node.TEXT_NODE?"#text":void 0:void 0}function P(e){if(Array.isArray(e)&&e.length>1&&e[1]&&!Array.isArray(e[1])&&typeof e[1]=="object"&&e[1].nodeType!==Node.TEXT_NODE)return e[1]}function M(e){let n=I(e);return n>0?e.slice(n):null}function z(e){let n=I(e);return n<0?0:e.length-n}function Z(e,n){let s=I(e);if(s>0)return e[n+s]}function I(e){return P(e)?e.length>2?2:-1:Array.isArray(e)&&e.length>1?1:-1}function E(e,n,s){if(!n)return e;for(let a in n){let t=n[a];if(t&&typeof t=="object"){let o=e[a];o?Array.isArray(t)?e[a]=[...t]:t instanceof Date&&o!==t?e[a]=new Date(t):Array.isArray(o)?e[a]=E({},t,s):typeof o=="object"?E(e[a],t,s):e[a]=E({},t,s):Array.isArray(t)?e[a]=[...t]:t instanceof Date?e[a]=new Date(t):e[a]=E({},t,s)}else t===void 0&&s?delete e[a]:e[a]=t}return e}function C(e,n,s,a,t,o,r){try{o=D(e,o,t);let p=!o||typeof o=="number"||typeof o=="boolean";if(o===t||!t&&p)return t;let c=t?.nodeType===Node.TEXT_NODE,i=c?t:t?.node;if(p){N(e,t),i?.remove();return}let S=!p&&w(o),l=!p&&q(o),y=!!o&&typeof o!="string"&&!!(o?.node||o?.nodeType===Node.TEXT_NODE);if(!S&&!l&&!y&&!t)throw new Error("Invalid vode: "+typeof o+" "+JSON.stringify(o));if(y&&S?o=o.wholeText:y&&l&&(o=[...o]),c&&S)return i.nodeValue!==o&&(i.nodeValue=o),t;if(S&&(!i||!c)){let f=document.createTextNode(o);if(i)N(e,t),i.replaceWith(f);else{let d=!1;for(let u=a;u<n.childNodes.length;u++){let x=n.childNodes[u];if(x){x.before(f,x),d=!0;break}}d||n.appendChild(f)}return f}if(l&&(!i||c||t[0]!==o[0])){let f=o;1 in f&&(f[1]=D(e,f[1],void 0));let d=P(o);d?.xmlns!==void 0&&(r=d.xmlns);let u=r?document.createElementNS(r,o[0]):document.createElement(o[0]);if(o.node=u,L(e,u,void 0,d,r??null),d&&"catch"in d&&(o.node.catch=null,o.node.removeAttribute("catch")),i)N(e,t),i.replaceWith(u);else{let h=!1;for(let g=a;g<n.childNodes.length;g++){let T=n.childNodes[g];if(T){T.before(u,T),h=!0;break}}h||n.appendChild(u)}let x=M(o);if(x){let h=d?2:1,g=0;for(let T=0;T<x.length;T++){let m=x[T],b=C(e,u,T,g,void 0,m,r??null);o[T+h]=b,b&&g++}}return o._unmountCount=(d?.onUnmount?1:0)+j(o),typeof d?.onMount=="function"&&e.patch(d.onMount(e,u)),o}if(!c&&l&&t[0]===o[0]){o.node=i;let f=o,d=t,u=P(o),x=P(t);if(u?.xmlns!==void 0&&(r=u.xmlns),f[1]?.__memo){let T=f[1];f[1]=D(e,f[1],d[1]),T!==f[1]&&L(e,i,x,u,r)}else L(e,i,x,u,r);u?.catch&&x?.catch!==u.catch&&(o.node.catch=null,o.node.removeAttribute("catch"));let h=M(o),g=M(t);if(h){let T=u?2:1,m=0;for(let b=0;b<h.length;b++){let B=h[b],K=g&&g[b],F=C(e,i,b,m,K,B,r);o[b+T]=F,F&&m++}}if(g){let T=h?h.length:0;for(let m=g.length-1;m>=T;m--)C(e,i,m,m,g[m],void 0,r)}return o._unmountCount=(u?.onUnmount?1:0)+j(o),o}}catch(p){let c=P(o)?.catch;if(c){let i=typeof c=="function"?c(e,p):c;return C(e,n,s,a,v(o?.node||t?.node,!0),i,r)}else throw p}}function N(e,n){if(!n||!Array.isArray(n)||(n._unmountCount|0)===0)return;let s=M(n);if(s)for(let t=s.length-1;t>=0;t--)N(e,s[t]);let a=P(n);typeof a?.onUnmount=="function"&&e.patch(a.onUnmount(e,n.node))}function j(e){let n=M(e);if(!n)return 0;let s=0;for(let a of n)a&&Array.isArray(a)&&(s+=a._unmountCount|0);return s}function q(e){return Array.isArray(e)&&e.length>0&&typeof e[0]=="string"}function w(e){return typeof e=="string"||e?.nodeType===Node.TEXT_NODE}function D(e,n,s){if(typeof n!="function")return n;let a=n?.__memo,t=s?.__memo;if(Array.isArray(a)&&Array.isArray(t)&&a.length===t.length){let p=!0;for(let c=0;c<a.length;c++)if(a[c]!==t[c]){p=!1;break}if(p)return s}let o=n(e);if(typeof o=="function"&&o?.__memo){let p=o.__memo;if(Array.isArray(p)&&Array.isArray(t)&&p.length===t.length){let i=!0;for(let S=0;S<p.length;S++)if(p[S]!==t[S]){i=!1;break}if(i)return s}let c=o(e);return typeof c=="object"&&(c.__memo=p),c}let r=typeof o=="function"?G(o,e):o;return typeof r=="object"&&(r.__memo=o?.__memo||n?.__memo),r}function G(e,n){return typeof e=="function"?G(e(n),n):e}function L(e,n,s,a,t){if(!a&&!s)return;let o=t!==void 0;if(s)for(let r in s){let p=s[r],c=a?.[r];p!==c&&(a?a[r]=R(e,n,r,p,c,o):R(e,n,r,p,void 0,o))}if(a&&s){for(let r in a)if(!(r in s)){let p=a[r];a[r]=R(e,n,r,void 0,p,o)}}else if(a)for(let r in a){let p=a[r];a[r]=R(e,n,r,void 0,p,o)}}function R(e,n,s,a,t,o){if(s==="style")if(!t)n.style.cssText="";else if(typeof t=="string")a!==t&&(n.style.cssText=t);else if(a&&typeof a=="object"){for(let r in a)t[r]||(n.style[r]=null);for(let r in t){let p=a[r],c=t[r];p!==c&&(n.style[r]=c)}}else for(let r in t)n.style[r]=t[r];else if(s==="class")t?n.setAttribute("class",U(t)):n.removeAttribute("class");else if(s[0]==="o"&&s[1]==="n")if(t){let r=null;if(typeof t=="function"){let p=t;r=c=>e.patch(p(e,c))}else typeof t=="object"&&(r=()=>e.patch(t));n[s]=r}else n[s]=null;else o||(n[s]=t),t==null||t===!1?n.removeAttribute(s):n.setAttribute(s,t);return t}function U(e){return typeof e=="string"?e:Array.isArray(e)?e.map(U).join(" "):typeof e=="object"?Object.keys(e).filter(n=>e[n]).join(" "):""}var et="a",nt="abbr",ot="address",at="area",st="article",rt="aside",ct="audio",it="b",lt="base",pt="bdi",ft="bdo",St="blockquote",ut="body",dt="br",Tt="button",yt="canvas",gt="caption",xt="cite",ht="code",mt="col",bt="colgroup",Et="data",Pt="datalist",At="dd",Ct="del",Mt="details",Rt="dfn",Nt="dialog",Ot="div",Dt="dl",Lt="dt",vt="em",It="embed",Vt="fieldset",Ft="figcaption",Ht="figure",jt="footer",Gt="form",Ut="h1",kt="h2",_t="h3",Bt="h4",Kt="h5",qt="h6",wt="head",Xt="header",Yt="hgroup",Wt="hr",$t="html",Jt="i",Qt="iframe",zt="img",Zt="input",te="ins",ee="kbd",ne="label",oe="legend",ae="li",se="link",re="main",ce="map",ie="mark",le="menu",pe="meta",fe="meter",Se="nav",ue="noscript",de="object",Te="ol",ye="optgroup",ge="option",xe="output",he="p",me="picture",be="pre",Ee="progress",Pe="q",Ae="rp",Ce="rt",Me="ruby",Re="s",Ne="samp",Oe="script",De="search",Le="section",ve="select",Ie="slot",Ve="small",Fe="source",He="span",je="strong",Ge="style",Ue="sub",ke="summary",_e="sup",Be="table",Ke="tbody",qe="td",we="template",Xe="textarea",Ye="tfoot",We="th",$e="thead",Je="time",Qe="title",ze="tr",Ze="track",tn="u",en="ul",nn="var",on="video",an="wbr",sn="animate",rn="animateMotion",cn="animateTransform",ln="circle",pn="clipPath",fn="defs",Sn="desc",un="ellipse",dn="feBlend",Tn="feColorMatrix",yn="feComponentTransfer",gn="feComposite",xn="feConvolveMatrix",hn="feDiffuseLighting",mn="feDisplacementMap",bn="feDistantLight",En="feDropShadow",Pn="feFlood",An="feFuncA",Cn="feFuncB",Mn="feFuncG",Rn="feFuncR",Nn="feGaussianBlur",On="feImage",Dn="feMerge",Ln="feMergeNode",vn="feMorphology",In="feOffset",Vn="fePointLight",Fn="feSpecularLighting",Hn="feSpotLight",jn="feTile",Gn="feTurbulence",Un="filter",kn="foreignObject",_n="g",Bn="image",Kn="line",qn="linearGradient",wn="marker",Xn="mask",Yn="metadata",Wn="mpath",$n="path",Jn="pattern",Qn="polygon",zn="polyline",Zn="radialGradient",to="rect",eo="set",no="stop",oo="svg",ao="switch",so="symbol",ro="text",co="textPath",io="tspan",lo="use",po="view",fo="annotation",So="annotation-xml",uo="maction",To="math",yo="merror",go="mfrac",xo="mi",ho="mmultiscripts",mo="mn",bo="mo",Eo="mover",Po="mpadded",Ao="mphantom",Co="mprescripts",Mo="mroot",Ro="mrow",No="ms",Oo="mspace",Do="msqrt",Lo="mstyle",vo="msub",Io="msubsup",Vo="msup",Fo="mtable",Ho="mtd",jo="mtext",Go="mtr",Uo="munder",ko="munderover",_o="semantics";function k(...e){if(!e||e.length===0)return null;if(e.length===1)return e[0];let n=e[0];for(let s=1;s<e.length;s++){let a=n,t=e[s];if(!a)n=t;else if(t)if(typeof a=="string"&&typeof t=="string"){let o=a.split(" "),r=t.split(" "),p=new Set([...o,...r]);n=Array.from(p).join(" ").trim()}else if(typeof a=="string"&&Array.isArray(t)){let o=new Set([...t,...a.split(" ")]);n=Array.from(o).join(" ").trim()}else if(Array.isArray(a)&&typeof t=="string"){let o=new Set([...a,...t.split(" ")]);n=Array.from(o).join(" ").trim()}else if(Array.isArray(a)&&Array.isArray(t)){let o=new Set([...a,...t]);n=Array.from(o).join(" ").trim()}else if(typeof a=="string"&&typeof t=="object")n={[a]:!0,...t};else if(typeof a=="object"&&typeof t=="string")n={...a,[t]:!0};else if(typeof a=="object"&&typeof t=="object")n={...a,...t};else if(typeof a=="object"&&Array.isArray(t)){let o={...a};for(let r of t)o[r]=!0;n=o}else if(Array.isArray(a)&&typeof t=="object"){let o={};for(let r of a)o[r]=!0;for(let r of Object.keys(t))o[r]=t[r];n=o}else throw new Error(`cannot merge classes of ${a} (${typeof a}) and ${t} (${typeof t})`);else continue}return n}var O;function _(...e){O||(O=document.createElement("div"));try{let n=O.style;for(let s of e)if(typeof s=="object"&&s!==null)for(let a in s)n[a]=s[a];else typeof s=="string"&&(n.cssText+=";"+s);return n.cssText}finally{O.style.cssText=""}}function Yo(...e){if(e.length===0)return;if(e.length===1)return e[0]||void 0;let n;for(let s of e)if(!(typeof s!="object"||s===null)){n||(n={});for(let a in s)a==="style"?n.style=_(n.style,s.style):a==="class"?n.class=k(n.class,s.class):n[a]=s[a]}return n}function $o(e){return new V(e,[])}var V=class e{constructor(n,s){this.state=n;this.keys=s;function a(c,i){if(s.length>1){let S=0,l=i[s[S]];for((typeof l!="object"||l===null)&&(i[s[S]]=l={}),S=1;S<s.length-1;S++){let y=l;l=l[s[S]],(typeof l!="object"||l===null)&&(y[s[S]]=l={})}l[s[S]]=c}else s.length===1?typeof i[s[0]]=="object"&&typeof c=="object"?Object.assign(i[s[0]],c):i[s[0]]=c:Object.assign(i,c)}function t(c){let i={};return a(c,i),i}function o(){if(s.length===0)return n;let c=n?n[s[0]]:void 0;for(let i=1;i<s.length&&c;i++)c=c[s[i]];return c}function r(c){a(c,n)}function p(c,i){i?n.patch([t(c)]):n.patch(t(c))}return new Proxy(this,{get:(c,i,S)=>{if(i==="state")return n;if(i==="get")return o;if(i==="put")return r;if(i==="patch")return p;let l=[...c.keys,String(i)];return new e(c.state,l)}})}state;keys;get(){}put(n){}patch(n){}};export{et as A,nt as ABBR,ot as ADDRESS,sn as ANIMATE,rn as ANIMATEMOTION,cn as ANIMATETRANSFORM,fo as ANNOTATION,So as ANNOTATION_XML,at as AREA,st as ARTICLE,rt as ASIDE,ct as AUDIO,it as B,lt as BASE,pt as BDI,ft as BDO,St as BLOCKQUOTE,ut as BODY,dt as BR,Tt as BUTTON,yt as CANVAS,gt as CAPTION,ln as CIRCLE,xt as CITE,pn as CLIPPATH,ht as CODE,mt as COL,bt as COLGROUP,Et as DATA,Pt as DATALIST,At as DD,fn as DEFS,Ct as DEL,Sn as DESC,Mt as DETAILS,Rt as DFN,Nt as DIALOG,Ot as DIV,Dt as DL,Lt as DT,un as ELLIPSE,vt as EM,It as EMBED,dn as FEBLEND,Tn as FECOLORMATRIX,yn as FECOMPONENTTRANSFER,gn as FECOMPOSITE,xn as FECONVOLVEMATRIX,hn as FEDIFFUSELIGHTING,mn as FEDISPLACEMENTMAP,bn as FEDISTANTLIGHT,En as FEDROPSHADOW,Pn as FEFLOOD,An as FEFUNCA,Cn as FEFUNCB,Mn as FEFUNCG,Rn as FEFUNCR,Nn as FEGAUSSIANBLUR,On as FEIMAGE,Dn as FEMERGE,Ln as FEMERGENODE,vn as FEMORPHOLOGY,In as FEOFFSET,Vn as FEPOINTLIGHT,Fn as FESPECULARLIGHTING,Hn as FESPOTLIGHT,jn as FETILE,Gn as FETURBULENCE,Vt as FIELDSET,Ft as FIGCAPTION,Ht as FIGURE,Un as FILTER,jt as FOOTER,kn as FOREIGNOBJECT,Gt as FORM,_n as G,Ut as H1,kt as H2,_t as H3,Bt as H4,Kt as H5,qt as H6,wt as HEAD,Xt as HEADER,Yt as HGROUP,Wt as HR,$t as HTML,Jt as I,Qt as IFRAME,Bn as IMAGE,zt as IMG,Zt as INPUT,te as INS,ee as KBD,ne as LABEL,oe as LEGEND,ae as LI,Kn as LINE,qn as LINEARGRADIENT,se as LINK,uo as MACTION,re as MAIN,ce as MAP,ie as MARK,wn as MARKER,Xn as MASK,To as MATH,le as MENU,yo as MERROR,pe as META,Yn as METADATA,fe as METER,go as MFRAC,xo as MI,ho as MMULTISCRIPTS,mo as MN,bo as MO,Eo as MOVER,Po as MPADDED,Wn as MPATH,Ao as MPHANTOM,Co as MPRESCRIPTS,Mo as MROOT,Ro as MROW,No as MS,Oo as MSPACE,Do as MSQRT,Lo as MSTYLE,vo as MSUB,Io as MSUBSUP,Vo as MSUP,Fo as MTABLE,Ho as MTD,jo as MTEXT,Go as MTR,Uo as MUNDER,ko as MUNDEROVER,Se as NAV,ue as NOSCRIPT,de as OBJECT,Te as OL,ye as OPTGROUP,ge as OPTION,xe as OUTPUT,he as P,$n as PATH,Jn as PATTERN,me as PICTURE,Qn as POLYGON,zn as POLYLINE,be as PRE,Ee as PROGRESS,Pe as Q,Zn as RADIALGRADIENT,to as RECT,Ae as RP,Ce as RT,Me as RUBY,Re as S,Ne as SAMP,Oe as SCRIPT,De as SEARCH,Le as SECTION,ve as SELECT,_o as SEMANTICS,eo as SET,Ie as SLOT,Ve as SMALL,Fe as SOURCE,He as SPAN,no as STOP,je as STRONG,Ge as STYLE,Ue as SUB,ke as SUMMARY,_e as SUP,oo as SVG,ao as SWITCH,so as SYMBOL,Be as TABLE,Ke as TBODY,qe as TD,we as TEMPLATE,ro as TEXT,Xe as TEXTAREA,co as TEXTPATH,Ye as TFOOT,We as TH,$e as THEAD,Je as TIME,Qe as TITLE,ze as TR,Ze as TRACK,io as TSPAN,tn as U,en as UL,lo as USE,nn as VAR,on as VIDEO,po as VIEW,an as WBR,Y as app,Z as child,z as childCount,M as children,I as childrenStart,$o as context,J as createPatch,$ as createState,H as defuse,A as globals,v as hydrate,W as memo,k as mergeClass,Yo as mergeProps,_ as mergeStyle,P as props,Q as tag,X as vode};
package/dist/vode.mjs CHANGED
@@ -20,7 +20,6 @@ function app(container, state, dom, ...initialPatches) {
20
20
  _vode.qSync = null;
21
21
  _vode.qAsync = null;
22
22
  _vode.stats = { lastSyncRenderTime: 0, lastAsyncRenderTime: 0, syncRenderCount: 0, asyncRenderCount: 0, liveEffectCount: 0, patchCount: 0, syncRenderPatchCount: 0, asyncRenderPatchCount: 0 };
23
- _vode.unmounts = [];
24
23
  const patchableState = state;
25
24
  if ("patch" in state && typeof state.patch === "function" && Array.isArray(state.patch.initialPatches)) {
26
25
  initialPatches = [...state.patch.initialPatches, ...initialPatches];
@@ -91,7 +90,7 @@ function app(container, state, dom, ...initialPatches) {
91
90
  function renderDom(isAsync) {
92
91
  const sw = Date.now();
93
92
  const vom = dom(_vode.state);
94
- _vode.vode = render(_vode.state, container.parentElement, 0, 0, _vode.vode, vom, null, _vode.unmounts, 0);
93
+ _vode.vode = render(_vode.state, container.parentElement, 0, 0, _vode.vode, vom);
95
94
  if (container.tagName.toUpperCase() !== vom[0].toUpperCase()) {
96
95
  container = _vode.vode.node;
97
96
  container._vode = _vode;
@@ -151,10 +150,7 @@ function app(container, state, dom, ...initialPatches) {
151
150
  indexInParent,
152
151
  indexInParent,
153
152
  hydrate(container, true),
154
- dom(state),
155
- null,
156
- _vode.unmounts,
157
- 0
153
+ dom(state)
158
154
  );
159
155
  _vode.isRendering = false;
160
156
  if (_vode.qSync) _vode.renderSync();
@@ -324,7 +320,7 @@ function mergeState(target, source, allowDeletion) {
324
320
  }
325
321
  return target;
326
322
  }
327
- function render(state, parent, childIndex, indexInParent, oldVode, newVode, xmlns, unmounts, unmountStart) {
323
+ function render(state, parent, childIndex, indexInParent, oldVode, newVode, xmlns) {
328
324
  try {
329
325
  newVode = remember(state, newVode, oldVode);
330
326
  const isNoVode = !newVode || typeof newVode === "number" || typeof newVode === "boolean";
@@ -334,17 +330,7 @@ function render(state, parent, childIndex, indexInParent, oldVode, newVode, xmln
334
330
  const oldIsText = oldVode?.nodeType === Node.TEXT_NODE;
335
331
  const oldNode = oldIsText ? oldVode : oldVode?.node;
336
332
  if (isNoVode) {
337
- if (!oldIsText && typeof oldVode?.unmountCount === "number") {
338
- const start = oldVode.unmountStart;
339
- const count = oldVode.unmountCount;
340
- for (let i = count - 1; i >= 0; i--) {
341
- const fn = unmounts[start + i];
342
- if (fn) {
343
- state.patch(fn(state, oldNode));
344
- unmounts[start + i] = null;
345
- }
346
- }
347
- }
333
+ unmountTree(state, oldVode);
348
334
  oldNode?.remove();
349
335
  return void 0;
350
336
  }
@@ -367,17 +353,7 @@ function render(state, parent, childIndex, indexInParent, oldVode, newVode, xmln
367
353
  if (isText && (!oldNode || !oldIsText)) {
368
354
  const text = document.createTextNode(newVode);
369
355
  if (oldNode) {
370
- if (!oldIsText && typeof oldVode?.unmountCount === "number") {
371
- const start = oldVode.unmountStart;
372
- const count = oldVode.unmountCount;
373
- for (let i = count - 1; i >= 0; i--) {
374
- const fn = unmounts[start + i];
375
- if (fn) {
376
- state.patch(fn(state, oldNode));
377
- unmounts[start + i] = null;
378
- }
379
- }
380
- }
356
+ unmountTree(state, oldVode);
381
357
  oldNode.replaceWith(text);
382
358
  } else {
383
359
  let inserted = false;
@@ -410,21 +386,9 @@ function render(state, parent, childIndex, indexInParent, oldVode, newVode, xmln
410
386
  newVode.node.removeAttribute("catch");
411
387
  }
412
388
  if (oldNode) {
413
- if (!oldIsText && typeof oldVode?.unmountCount === "number") {
414
- const start = oldVode.unmountStart;
415
- const count = oldVode.unmountCount;
416
- for (let i = count - 1; i >= 0; i--) {
417
- const fn = unmounts[start + i];
418
- if (fn) {
419
- state.patch(fn(state, oldNode));
420
- unmounts[start + i] = null;
421
- }
422
- }
423
- }
424
- unmounts[unmountStart] = properties?.onUnmount ?? null;
389
+ unmountTree(state, oldVode);
425
390
  oldNode.replaceWith(newNode);
426
391
  } else {
427
- unmounts[unmountStart] = properties?.onUnmount ?? null;
428
392
  let inserted = false;
429
393
  for (let i = indexInParent; i < parent.childNodes.length; i++) {
430
394
  const nextSibling = parent.childNodes[i];
@@ -438,27 +402,21 @@ function render(state, parent, childIndex, indexInParent, oldVode, newVode, xmln
438
402
  parent.appendChild(newNode);
439
403
  }
440
404
  }
441
- let totalChildUnmounts = 0;
442
- let childUnmountStart = unmountStart + 1;
443
405
  const newKids = children(newVode);
444
406
  if (newKids) {
445
407
  const childOffset = !!properties ? 2 : 1;
446
408
  let indexP = 0;
447
409
  for (let i = 0; i < newKids.length; i++) {
448
410
  const child2 = newKids[i];
449
- const attached = render(state, newNode, i, indexP, void 0, child2, xmlns ?? null, unmounts, childUnmountStart);
411
+ const attached = render(state, newNode, i, indexP, void 0, child2, xmlns ?? null);
450
412
  newVode[i + childOffset] = attached;
451
- if (attached) {
452
- indexP++;
453
- const childUnmounts = attached.unmountCount || 0;
454
- totalChildUnmounts += childUnmounts;
455
- childUnmountStart += childUnmounts;
456
- }
413
+ if (attached) indexP++;
457
414
  }
458
415
  }
459
- newNode.onMount && state.patch(newNode.onMount(newNode));
460
- newVode.unmountCount = 1 + totalChildUnmounts;
461
- newVode.unmountStart = unmountStart;
416
+ newVode._unmountCount = (properties?.onUnmount ? 1 : 0) + sumChildUnmountCounts(newVode);
417
+ if (typeof properties?.onMount === "function") {
418
+ state.patch(properties.onMount(state, newNode));
419
+ }
462
420
  return newVode;
463
421
  }
464
422
  if (!oldIsText && isNode && oldVode[0] === newVode[0]) {
@@ -481,9 +439,6 @@ function render(state, parent, childIndex, indexInParent, oldVode, newVode, xmln
481
439
  newVode.node["catch"] = null;
482
440
  newVode.node.removeAttribute("catch");
483
441
  }
484
- unmounts[unmountStart] = properties?.onUnmount ?? null;
485
- let totalChildUnmounts = 0;
486
- let childUnmountStart = unmountStart + 1;
487
442
  const newKids = children(newVode);
488
443
  const oldKids = children(oldVode);
489
444
  if (newKids) {
@@ -492,24 +447,18 @@ function render(state, parent, childIndex, indexInParent, oldVode, newVode, xmln
492
447
  for (let i = 0; i < newKids.length; i++) {
493
448
  const child2 = newKids[i];
494
449
  const oldChild = oldKids && oldKids[i];
495
- const attached = render(state, oldNode, i, indexP, oldChild, child2, xmlns, unmounts, childUnmountStart);
450
+ const attached = render(state, oldNode, i, indexP, oldChild, child2, xmlns);
496
451
  newVode[i + childOffset] = attached;
497
- if (attached) {
498
- indexP++;
499
- const childUnmounts = attached.unmountCount || 0;
500
- totalChildUnmounts += childUnmounts;
501
- childUnmountStart += childUnmounts;
502
- }
452
+ if (attached) indexP++;
503
453
  }
504
454
  }
505
455
  if (oldKids) {
506
456
  const newKidsCount = newKids ? newKids.length : 0;
507
457
  for (let i = oldKids.length - 1; i >= newKidsCount; i--) {
508
- render(state, oldNode, i, i, oldKids[i], void 0, xmlns, unmounts, oldKids[i].unmountStart);
458
+ render(state, oldNode, i, i, oldKids[i], void 0, xmlns);
509
459
  }
510
460
  }
511
- newVode.unmountCount = 1 + totalChildUnmounts;
512
- newVode.unmountStart = unmountStart;
461
+ newVode._unmountCount = (properties?.onUnmount ? 1 : 0) + sumChildUnmountCounts(newVode);
513
462
  return newVode;
514
463
  }
515
464
  } catch (error) {
@@ -523,9 +472,7 @@ function render(state, parent, childIndex, indexInParent, oldVode, newVode, xmln
523
472
  indexInParent,
524
473
  hydrate(newVode?.node || oldVode?.node, true),
525
474
  handledVode,
526
- xmlns,
527
- unmounts,
528
- unmountStart
475
+ xmlns
529
476
  );
530
477
  } else {
531
478
  throw error;
@@ -533,6 +480,31 @@ function render(state, parent, childIndex, indexInParent, oldVode, newVode, xmln
533
480
  }
534
481
  return void 0;
535
482
  }
483
+ function unmountTree(state, v) {
484
+ if (!v || !Array.isArray(v)) return;
485
+ if ((v._unmountCount | 0) === 0) return;
486
+ const kids = children(v);
487
+ if (kids) {
488
+ for (let i = kids.length - 1; i >= 0; i--) {
489
+ unmountTree(state, kids[i]);
490
+ }
491
+ }
492
+ const p = props(v);
493
+ if (typeof p?.onUnmount === "function") {
494
+ state.patch(p.onUnmount(state, v.node));
495
+ }
496
+ }
497
+ function sumChildUnmountCounts(v) {
498
+ const kids = children(v);
499
+ if (!kids) return 0;
500
+ let n = 0;
501
+ for (const k of kids) {
502
+ if (k && Array.isArray(k)) {
503
+ n += k._unmountCount | 0;
504
+ }
505
+ }
506
+ return n;
507
+ }
536
508
  function isNaturalVode(x) {
537
509
  return Array.isArray(x) && x.length > 0 && typeof x[0] === "string";
538
510
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ryupold/vode",
3
- "version": "1.8.6",
3
+ "version": "1.8.7",
4
4
  "description": "a minimalist web framework",
5
5
  "author": "Michael Scherbakow (ryupold)",
6
6
  "license": "MIT",