@ryupold/vode 1.8.5 → 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 v=Object.defineProperty;var K=Object.getOwnPropertyDescriptor;var q=Object.getOwnPropertyNames;var w=Object.prototype.hasOwnProperty;var X=(e,n)=>{for(var s in n)v(e,s,{get:n[s],enumerable:!0})},Y=(e,n,s,a)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of q(n))!w.call(e,t)&&t!==s&&v(e,t,{get:()=>n[t],enumerable:!(a=K(n,t))||a.enumerable});return e};var W=e=>Y(v({},"__esModule",{value:!0}),e);var Wo={};X(Wo,{A:()=>st,ABBR:()=>rt,ADDRESS:()=>ct,ANIMATE:()=>pn,ANIMATEMOTION:()=>fn,ANIMATETRANSFORM:()=>Sn,ANNOTATION:()=>yo,ANNOTATION_XML:()=>go,AREA:()=>it,ARTICLE:()=>lt,ASIDE:()=>pt,AUDIO:()=>ft,B:()=>St,BASE:()=>dt,BDI:()=>ut,BDO:()=>Tt,BLOCKQUOTE:()=>yt,BODY:()=>gt,BR:()=>xt,BUTTON:()=>ht,CANVAS:()=>mt,CAPTION:()=>bt,CIRCLE:()=>dn,CITE:()=>Et,CLIPPATH:()=>un,CODE:()=>Pt,COL:()=>At,COLGROUP:()=>Ct,DATA:()=>Mt,DATALIST:()=>Nt,DD:()=>Rt,DEFS:()=>Tn,DEL:()=>Ot,DESC:()=>yn,DETAILS:()=>Dt,DFN:()=>vt,DIALOG:()=>Lt,DIV:()=>It,DL:()=>Ft,DT:()=>Vt,ELLIPSE:()=>gn,EM:()=>jt,EMBED:()=>Ht,FEBLEND:()=>xn,FECOLORMATRIX:()=>hn,FECOMPONENTTRANSFER:()=>mn,FECOMPOSITE:()=>bn,FECONVOLVEMATRIX:()=>En,FEDIFFUSELIGHTING:()=>Pn,FEDISPLACEMENTMAP:()=>An,FEDISTANTLIGHT:()=>Cn,FEDROPSHADOW:()=>Mn,FEFLOOD:()=>Nn,FEFUNCA:()=>Rn,FEFUNCB:()=>On,FEFUNCG:()=>Dn,FEFUNCR:()=>vn,FEGAUSSIANBLUR:()=>Ln,FEIMAGE:()=>In,FEMERGE:()=>Fn,FEMERGENODE:()=>Vn,FEMORPHOLOGY:()=>jn,FEOFFSET:()=>Hn,FEPOINTLIGHT:()=>Un,FESPECULARLIGHTING:()=>Gn,FESPOTLIGHT:()=>kn,FETILE:()=>_n,FETURBULENCE:()=>Bn,FIELDSET:()=>Ut,FIGCAPTION:()=>Gt,FIGURE:()=>kt,FILTER:()=>Kn,FOOTER:()=>_t,FOREIGNOBJECT:()=>qn,FORM:()=>Bt,G:()=>wn,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,IMAGE:()=>Xn,IMG:()=>ne,INPUT:()=>oe,INS:()=>ae,KBD:()=>se,LABEL:()=>re,LEGEND:()=>ce,LI:()=>ie,LINE:()=>Yn,LINEARGRADIENT:()=>Wn,LINK:()=>le,MACTION:()=>xo,MAIN:()=>pe,MAP:()=>fe,MARK:()=>Se,MARKER:()=>$n,MASK:()=>Jn,MATH:()=>ho,MENU:()=>de,MERROR:()=>mo,META:()=>ue,METADATA:()=>Qn,METER:()=>Te,MFRAC:()=>bo,MI:()=>Eo,MMULTISCRIPTS:()=>Po,MN:()=>Ao,MO:()=>Co,MOVER:()=>Mo,MPADDED:()=>No,MPATH:()=>zn,MPHANTOM:()=>Ro,MPRESCRIPTS:()=>Oo,MROOT:()=>Do,MROW:()=>vo,MS:()=>Lo,MSPACE:()=>Io,MSQRT:()=>Fo,MSTYLE:()=>Vo,MSUB:()=>jo,MSUBSUP:()=>Ho,MSUP:()=>Uo,MTABLE:()=>Go,MTD:()=>ko,MTEXT:()=>_o,MTR:()=>Bo,MUNDER:()=>Ko,MUNDEROVER:()=>qo,NAV:()=>ye,NOSCRIPT:()=>ge,OBJECT:()=>xe,OL:()=>he,OPTGROUP:()=>me,OPTION:()=>be,OUTPUT:()=>Ee,P:()=>Pe,PATH:()=>Zn,PATTERN:()=>to,PICTURE:()=>Ae,POLYGON:()=>eo,POLYLINE:()=>no,PRE:()=>Ce,PROGRESS:()=>Me,Q:()=>Ne,RADIALGRADIENT:()=>oo,RECT:()=>ao,RP:()=>Re,RT:()=>Oe,RUBY:()=>De,S:()=>ve,SAMP:()=>Le,SCRIPT:()=>Ie,SEARCH:()=>Fe,SECTION:()=>Ve,SELECT:()=>je,SEMANTICS:()=>wo,SET:()=>so,SLOT:()=>He,SMALL:()=>Ue,SOURCE:()=>Ge,SPAN:()=>ke,STOP:()=>ro,STRONG:()=>_e,STYLE:()=>Be,SUB:()=>Ke,SUMMARY:()=>qe,SUP:()=>we,SVG:()=>co,SWITCH:()=>io,SYMBOL:()=>lo,TABLE:()=>Xe,TBODY:()=>Ye,TD:()=>We,TEMPLATE:()=>$e,TEXT:()=>po,TEXTAREA:()=>Je,TEXTPATH:()=>fo,TFOOT:()=>Qe,TH:()=>ze,THEAD:()=>Ze,TIME:()=>tn,TITLE:()=>en,TR:()=>nn,TRACK:()=>on,TSPAN:()=>So,U:()=>an,UL:()=>sn,USE:()=>uo,VAR:()=>rn,VIDEO:()=>cn,VIEW:()=>To,WBR:()=>ln,app:()=>J,child:()=>nt,childCount:()=>et,children:()=>M,childrenStart:()=>O,context:()=>Yo,createPatch:()=>Z,createState:()=>z,defuse:()=>F,globals:()=>P,hydrate:()=>R,memo:()=>Q,mergeClass:()=>V,mergeProps:()=>Xo,mergeStyle:()=>j,props:()=>A,tag:()=>tt,vode:()=>$});var P={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=P.requestAnimationFrame,t.asyncRenderer=P.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 u=await f.next();for(;u.done===!1;){t.stats.liveEffectCount++;try{o.patch(u.value,y),u=await f.next()}finally{t.stats.liveEffectCount--}}o.patch(u.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{P.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),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=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 P.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,P.currentViewTransition=t.asyncRenderer(i),await P.currentViewTransition?.updateCallbackDone}finally{t.stats.lastAsyncRenderTime=Date.now()-l,t.stats.asyncRenderCount++,t.isAnimating=!1}t.qAsync&&t.renderAsync()}}),t.state=o;let c=e;c._vode=t;let S=Array.from(e.parentElement.children).indexOf(e);t.vode=C(n,e.parentElement,S,S,R(e,!0),s(n));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=A(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=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)F(s)}function R(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&&R(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 A(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=O(e);return n>0?e.slice(n):null}function et(e){let n=O(e);return n<0?0:e.length-n}function nt(e,n){let s=O(e);if(s>0)return e[n+s]}function O(e){return A(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=L(e,o,t);let p=!o||typeof o=="number"||typeof o=="boolean";if(o===t||!t&&p)return t;let i=t?.nodeType===Node.TEXT_NODE,c=i?t:t?.node;if(p){c?.onUnmount&&e.patch(c.onUnmount(c)),c?.remove();return}let S=!p&&at(o),l=!p&&ot(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]),i&&S)return c.nodeValue!==o&&(c.nodeValue=o),t;if(S&&(!c||!i)){let f=document.createTextNode(o);if(c)c.onUnmount&&e.patch(c.onUnmount(c)),c.replaceWith(f);else{let u=!1;for(let d=a;d<n.childNodes.length;d++){let x=n.childNodes[d];if(x){x.before(f,x),u=!0;break}}u||n.appendChild(f)}return f}if(l&&(!c||i||t[0]!==o[0])){let f=o;1 in f&&(f[1]=L(e,f[1],void 0));let u=A(o);u?.xmlns!==void 0&&(r=u.xmlns);let d=r?document.createElementNS(r,o[0]):document.createElement(o[0]);if(o.node=d,I(e,d,void 0,u,r??null),u&&"catch"in u&&(o.node.catch=null,o.node.removeAttribute("catch")),c)c.onUnmount&&e.patch(c.onUnmount(c)),c.replaceWith(d);else{let h=!1;for(let g=a;g<n.childNodes.length;g++){let T=n.childNodes[g];if(T){T.before(d,T),h=!0;break}}h||n.appendChild(d)}let x=M(o);if(x){let h=u?2:1,g=0;for(let T=0;T<x.length;T++){let m=x[T],b=C(e,d,T,g,void 0,m,r??null);o[T+h]=b,b&&g++}}return d.onMount&&e.patch(d.onMount(d)),o}if(!i&&l&&t[0]===o[0]){o.node=c;let f=o,u=t,d=A(o),x=A(t);if(d?.xmlns!==void 0&&(r=d.xmlns),f[1]?.__memo){let T=f[1];f[1]=L(e,f[1],u[1]),T!==f[1]&&I(e,c,x,d,r)}else I(e,c,x,d,r);d?.catch&&x?.catch!==d.catch&&(o.node.catch=null,o.node.removeAttribute("catch"));let h=M(o),g=M(t);if(h){let T=d?2:1,m=0;for(let b=0;b<h.length;b++){let _=h[b],B=g&&g[b],U=C(e,c,b,m,B,_,r);o[b+T]=U,U&&m++}}if(g){let T=h?h.length:0;for(let m=g.length-1;m>=T;m--)C(e,c,m,m,g[m],void 0,r)}return o}}catch(p){let i=A(o)?.catch;if(i){let c=typeof i=="function"?i(e,p):i;return C(e,n,s,a,R(o?.node||t?.node,!0),c,r)}else throw p}}function ot(e){return Array.isArray(e)&&e.length>0&&typeof e[0]=="string"}function at(e){return typeof e=="string"||e?.nodeType===Node.TEXT_NODE}function L(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 i=0;i<a.length;i++)if(a[i]!==t[i]){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 c=!0;for(let S=0;S<p.length;S++)if(p[S]!==t[S]){c=!1;break}if(c)return s}let i=o(e);return typeof i=="object"&&(i.__memo=p),i}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 I(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],i=a?.[r];p!==i&&(a?a[r]=N(e,n,r,p,i,o):N(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]=N(e,n,r,void 0,p,o)}}else if(a)for(let r in a){let p=a[r];a[r]=N(e,n,r,void 0,p,o)}}function N(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],i=t[r];p!==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 p=t;r=i=>e.patch(p(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 st="a",rt="abbr",ct="address",it="area",lt="article",pt="aside",ft="audio",St="b",dt="base",ut="bdi",Tt="bdo",yt="blockquote",gt="body",xt="br",ht="button",mt="canvas",bt="caption",Et="cite",Pt="code",At="col",Ct="colgroup",Mt="data",Nt="datalist",Rt="dd",Ot="del",Dt="details",vt="dfn",Lt="dialog",It="div",Ft="dl",Vt="dt",jt="em",Ht="embed",Ut="fieldset",Gt="figcaption",kt="figure",_t="footer",Bt="form",Kt="h1",qt="h2",wt="h3",Xt="h4",Yt="h5",Wt="h6",$t="head",Jt="header",Qt="hgroup",zt="hr",Zt="html",te="i",ee="iframe",ne="img",oe="input",ae="ins",se="kbd",re="label",ce="legend",ie="li",le="link",pe="main",fe="map",Se="mark",de="menu",ue="meta",Te="meter",ye="nav",ge="noscript",xe="object",he="ol",me="optgroup",be="option",Ee="output",Pe="p",Ae="picture",Ce="pre",Me="progress",Ne="q",Re="rp",Oe="rt",De="ruby",ve="s",Le="samp",Ie="script",Fe="search",Ve="section",je="select",He="slot",Ue="small",Ge="source",ke="span",_e="strong",Be="style",Ke="sub",qe="summary",we="sup",Xe="table",Ye="tbody",We="td",$e="template",Je="textarea",Qe="tfoot",ze="th",Ze="thead",tn="time",en="title",nn="tr",on="track",an="u",sn="ul",rn="var",cn="video",ln="wbr",pn="animate",fn="animateMotion",Sn="animateTransform",dn="circle",un="clipPath",Tn="defs",yn="desc",gn="ellipse",xn="feBlend",hn="feColorMatrix",mn="feComponentTransfer",bn="feComposite",En="feConvolveMatrix",Pn="feDiffuseLighting",An="feDisplacementMap",Cn="feDistantLight",Mn="feDropShadow",Nn="feFlood",Rn="feFuncA",On="feFuncB",Dn="feFuncG",vn="feFuncR",Ln="feGaussianBlur",In="feImage",Fn="feMerge",Vn="feMergeNode",jn="feMorphology",Hn="feOffset",Un="fePointLight",Gn="feSpecularLighting",kn="feSpotLight",_n="feTile",Bn="feTurbulence",Kn="filter",qn="foreignObject",wn="g",Xn="image",Yn="line",Wn="linearGradient",$n="marker",Jn="mask",Qn="metadata",zn="mpath",Zn="path",to="pattern",eo="polygon",no="polyline",oo="radialGradient",ao="rect",so="set",ro="stop",co="svg",io="switch",lo="symbol",po="text",fo="textPath",So="tspan",uo="use",To="view",yo="annotation",go="annotation-xml",xo="maction",ho="math",mo="merror",bo="mfrac",Eo="mi",Po="mmultiscripts",Ao="mn",Co="mo",Mo="mover",No="mpadded",Ro="mphantom",Oo="mprescripts",Do="mroot",vo="mrow",Lo="ms",Io="mspace",Fo="msqrt",Vo="mstyle",jo="msub",Ho="msubsup",Uo="msup",Go="mtable",ko="mtd",_o="mtext",Bo="mtr",Ko="munder",qo="munderover",wo="semantics";function V(...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 D;function j(...e){D||(D=document.createElement("div"));try{let n=D.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{D.style.cssText=""}}function Xo(...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=V(n.class,s.class):n[a]=s[a]}return n}function Yo(e){return new H(e,[])}var H=class e{constructor(n,s){this.state=n;this.keys=s;function a(i,c){if(s.length>1){let S=0,l=c[s[S]];for((typeof l!="object"||l===null)&&(c[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]]=i}else s.length===1?typeof c[s[0]]=="object"&&typeof i=="object"?Object.assign(c[s[0]],i):c[s[0]]=i:Object.assign(c,i)}function t(i){let c={};return a(i,c),c}function o(){if(s.length===0)return n;let i=n?n[s[0]]:void 0;for(let c=1;c<s.length&&i;c++)i=i[s[c]];return i}function r(i){a(i,n)}function p(i,c){c?n.patch([t(i)]):n.patch(t(i))}return new Proxy(this,{get:(i,c,S)=>{if(c==="state")return n;if(c==="get")return o;if(c==="put")return r;if(c==="patch")return p;let l=[...i.keys,String(c)];return new e(i.state,l)}})}state;keys;get(){}put(n){}patch(n){}};return W(Wo);})();
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 P={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 w(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=P.requestAnimationFrame,t.asyncRenderer=P.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 u=await f.next();for(;u.done===!1;){t.stats.liveEffectCount++;try{o.patch(u.value,y),u=await f.next()}finally{t.stats.liveEffectCount--}}o.patch(u.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{P.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),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=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 P.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,P.currentViewTransition=t.asyncRenderer(i),await P.currentViewTransition?.updateCallbackDone}finally{t.stats.lastAsyncRenderTime=Date.now()-l,t.stats.asyncRenderCount++,t.isAnimating=!1}t.qAsync&&t.renderAsync()}}),t.state=o;let c=e;c._vode=t;let S=Array.from(e.parentElement.children).indexOf(e);t.vode=C(n,e.parentElement,S,S,v(e,!0),s(n));for(let l of a)o.patch(l);return l=>o.patch(l)}function V(e){if(e?._vode){let s=function(t){if(!t?.node)return;let o=A(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)V(t.node);else{let r=N(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)V(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 X(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 Y(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 W(e){return e}function $(e){return e?Array.isArray(e)?e[0]:typeof e=="string"||e.nodeType===Node.TEXT_NODE?"#text":void 0:void 0}function A(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 N(e){let n=L(e);return n>0?e.slice(n):null}function J(e){let n=L(e);return n<0?0:e.length-n}function Q(e,n){let s=L(e);if(s>0)return e[n+s]}function L(e){return A(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=O(e,o,t);let p=!o||typeof o=="number"||typeof o=="boolean";if(o===t||!t&&p)return t;let i=t?.nodeType===Node.TEXT_NODE,c=i?t:t?.node;if(p){c?.onUnmount&&e.patch(c.onUnmount(c)),c?.remove();return}let S=!p&&K(o),l=!p&&B(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]),i&&S)return c.nodeValue!==o&&(c.nodeValue=o),t;if(S&&(!c||!i)){let f=document.createTextNode(o);if(c)c.onUnmount&&e.patch(c.onUnmount(c)),c.replaceWith(f);else{let u=!1;for(let d=a;d<n.childNodes.length;d++){let x=n.childNodes[d];if(x){x.before(f,x),u=!0;break}}u||n.appendChild(f)}return f}if(l&&(!c||i||t[0]!==o[0])){let f=o;1 in f&&(f[1]=O(e,f[1],void 0));let u=A(o);u?.xmlns!==void 0&&(r=u.xmlns);let d=r?document.createElementNS(r,o[0]):document.createElement(o[0]);if(o.node=d,D(e,d,void 0,u,r??null),u&&"catch"in u&&(o.node.catch=null,o.node.removeAttribute("catch")),c)c.onUnmount&&e.patch(c.onUnmount(c)),c.replaceWith(d);else{let h=!1;for(let g=a;g<n.childNodes.length;g++){let T=n.childNodes[g];if(T){T.before(d,T),h=!0;break}}h||n.appendChild(d)}let x=N(o);if(x){let h=u?2:1,g=0;for(let T=0;T<x.length;T++){let m=x[T],b=C(e,d,T,g,void 0,m,r??null);o[T+h]=b,b&&g++}}return d.onMount&&e.patch(d.onMount(d)),o}if(!i&&l&&t[0]===o[0]){o.node=c;let f=o,u=t,d=A(o),x=A(t);if(d?.xmlns!==void 0&&(r=d.xmlns),f[1]?.__memo){let T=f[1];f[1]=O(e,f[1],u[1]),T!==f[1]&&D(e,c,x,d,r)}else D(e,c,x,d,r);d?.catch&&x?.catch!==d.catch&&(o.node.catch=null,o.node.removeAttribute("catch"));let h=N(o),g=N(t);if(h){let T=d?2:1,m=0;for(let b=0;b<h.length;b++){let k=h[b],_=g&&g[b],F=C(e,c,b,m,_,k,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,c,m,m,g[m],void 0,r)}return o}}catch(p){let i=A(o)?.catch;if(i){let c=typeof i=="function"?i(e,p):i;return C(e,n,s,a,v(o?.node||t?.node,!0),c,r)}else throw p}}function B(e){return Array.isArray(e)&&e.length>0&&typeof e[0]=="string"}function K(e){return typeof e=="string"||e?.nodeType===Node.TEXT_NODE}function O(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 i=0;i<a.length;i++)if(a[i]!==t[i]){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 c=!0;for(let S=0;S<p.length;S++)if(p[S]!==t[S]){c=!1;break}if(c)return s}let i=o(e);return typeof i=="object"&&(i.__memo=p),i}let r=typeof o=="function"?j(o,e):o;return typeof r=="object"&&(r.__memo=o?.__memo||n?.__memo),r}function j(e,n){return typeof e=="function"?j(e(n),n):e}function D(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],i=a?.[r];p!==i&&(a?a[r]=M(e,n,r,p,i,o):M(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]=M(e,n,r,void 0,p,o)}}else if(a)for(let r in a){let p=a[r];a[r]=M(e,n,r,void 0,p,o)}}function M(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],i=t[r];p!==i&&(n.style[r]=i)}}else for(let r in t)n.style[r]=t[r];else if(s==="class")t?n.setAttribute("class",H(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=i=>e.patch(p(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 H(e){return typeof e=="string"?e:Array.isArray(e)?e.map(H).join(" "):typeof e=="object"?Object.keys(e).filter(n=>e[n]).join(" "):""}var Z="a",tt="abbr",et="address",nt="area",ot="article",at="aside",st="audio",rt="b",ct="base",it="bdi",lt="bdo",pt="blockquote",ft="body",St="br",dt="button",ut="canvas",Tt="caption",yt="cite",gt="code",xt="col",ht="colgroup",mt="data",bt="datalist",Et="dd",Pt="del",At="details",Ct="dfn",Mt="dialog",Nt="div",Rt="dl",Ot="dt",Dt="em",vt="embed",Lt="fieldset",It="figcaption",Ft="figure",Vt="footer",jt="form",Ht="h1",Ut="h2",Gt="h3",kt="h4",_t="h5",Bt="h6",Kt="head",qt="header",wt="hgroup",Xt="hr",Yt="html",Wt="i",$t="iframe",Jt="img",Qt="input",zt="ins",Zt="kbd",te="label",ee="legend",ne="li",oe="link",ae="main",se="map",re="mark",ce="menu",ie="meta",le="meter",pe="nav",fe="noscript",Se="object",de="ol",ue="optgroup",Te="option",ye="output",ge="p",xe="picture",he="pre",me="progress",be="q",Ee="rp",Pe="rt",Ae="ruby",Ce="s",Me="samp",Ne="script",Re="search",Oe="section",De="select",ve="slot",Le="small",Ie="source",Fe="span",Ve="strong",je="style",He="sub",Ue="summary",Ge="sup",ke="table",_e="tbody",Be="td",Ke="template",qe="textarea",we="tfoot",Xe="th",Ye="thead",We="time",$e="title",Je="tr",Qe="track",ze="u",Ze="ul",tn="var",en="video",nn="wbr",on="animate",an="animateMotion",sn="animateTransform",rn="circle",cn="clipPath",ln="defs",pn="desc",fn="ellipse",Sn="feBlend",dn="feColorMatrix",un="feComponentTransfer",Tn="feComposite",yn="feConvolveMatrix",gn="feDiffuseLighting",xn="feDisplacementMap",hn="feDistantLight",mn="feDropShadow",bn="feFlood",En="feFuncA",Pn="feFuncB",An="feFuncG",Cn="feFuncR",Mn="feGaussianBlur",Nn="feImage",Rn="feMerge",On="feMergeNode",Dn="feMorphology",vn="feOffset",Ln="fePointLight",In="feSpecularLighting",Fn="feSpotLight",Vn="feTile",jn="feTurbulence",Hn="filter",Un="foreignObject",Gn="g",kn="image",_n="line",Bn="linearGradient",Kn="marker",qn="mask",wn="metadata",Xn="mpath",Yn="path",Wn="pattern",$n="polygon",Jn="polyline",Qn="radialGradient",zn="rect",Zn="set",to="stop",eo="svg",no="switch",oo="symbol",ao="text",so="textPath",ro="tspan",co="use",io="view",lo="annotation",po="annotation-xml",fo="maction",So="math",uo="merror",To="mfrac",yo="mi",go="mmultiscripts",xo="mn",ho="mo",mo="mover",bo="mpadded",Eo="mphantom",Po="mprescripts",Ao="mroot",Co="mrow",Mo="ms",No="mspace",Ro="msqrt",Oo="mstyle",Do="msub",vo="msubsup",Lo="msup",Io="mtable",Fo="mtd",Vo="mtext",jo="mtr",Ho="munder",Uo="munderover",Go="semantics";function U(...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 R;function G(...e){R||(R=document.createElement("div"));try{let n=R.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{R.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=G(n.style,s.style):a==="class"?n.class=U(n.class,s.class):n[a]=s[a]}return n}function Yo(e){return new I(e,[])}var I=class e{constructor(n,s){this.state=n;this.keys=s;function a(i,c){if(s.length>1){let S=0,l=c[s[S]];for((typeof l!="object"||l===null)&&(c[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]]=i}else s.length===1?typeof c[s[0]]=="object"&&typeof i=="object"?Object.assign(c[s[0]],i):c[s[0]]=i:Object.assign(c,i)}function t(i){let c={};return a(i,c),c}function o(){if(s.length===0)return n;let i=n?n[s[0]]:void 0;for(let c=1;c<s.length&&i;c++)i=i[s[c]];return i}function r(i){a(i,n)}function p(i,c){c?n.patch([t(i)]):n.patch(t(i))}return new Proxy(this,{get:(i,c,S)=>{if(c==="state")return n;if(c==="get")return o;if(c==="put")return r;if(c==="patch")return p;let l=[...i.keys,String(c)];return new e(i.state,l)}})}state;keys;get(){}put(n){}patch(n){}};export{Z as A,tt as ABBR,et as ADDRESS,on as ANIMATE,an as ANIMATEMOTION,sn as ANIMATETRANSFORM,lo as ANNOTATION,po as ANNOTATION_XML,nt as AREA,ot as ARTICLE,at as ASIDE,st as AUDIO,rt as B,ct as BASE,it as BDI,lt as BDO,pt as BLOCKQUOTE,ft as BODY,St as BR,dt as BUTTON,ut as CANVAS,Tt as CAPTION,rn as CIRCLE,yt as CITE,cn as CLIPPATH,gt as CODE,xt as COL,ht as COLGROUP,mt as DATA,bt as DATALIST,Et as DD,ln as DEFS,Pt as DEL,pn as DESC,At as DETAILS,Ct as DFN,Mt as DIALOG,Nt as DIV,Rt as DL,Ot as DT,fn as ELLIPSE,Dt as EM,vt as EMBED,Sn as FEBLEND,dn as FECOLORMATRIX,un as FECOMPONENTTRANSFER,Tn as FECOMPOSITE,yn as FECONVOLVEMATRIX,gn as FEDIFFUSELIGHTING,xn as FEDISPLACEMENTMAP,hn as FEDISTANTLIGHT,mn as FEDROPSHADOW,bn as FEFLOOD,En as FEFUNCA,Pn as FEFUNCB,An as FEFUNCG,Cn as FEFUNCR,Mn as FEGAUSSIANBLUR,Nn as FEIMAGE,Rn as FEMERGE,On as FEMERGENODE,Dn as FEMORPHOLOGY,vn as FEOFFSET,Ln as FEPOINTLIGHT,In as FESPECULARLIGHTING,Fn as FESPOTLIGHT,Vn as FETILE,jn as FETURBULENCE,Lt as FIELDSET,It as FIGCAPTION,Ft as FIGURE,Hn as FILTER,Vt as FOOTER,Un as FOREIGNOBJECT,jt as FORM,Gn as G,Ht as H1,Ut as H2,Gt as H3,kt as H4,_t as H5,Bt as H6,Kt as HEAD,qt as HEADER,wt as HGROUP,Xt as HR,Yt as HTML,Wt as I,$t as IFRAME,kn as IMAGE,Jt as IMG,Qt as INPUT,zt as INS,Zt as KBD,te as LABEL,ee as LEGEND,ne as LI,_n as LINE,Bn as LINEARGRADIENT,oe as LINK,fo as MACTION,ae as MAIN,se as MAP,re as MARK,Kn as MARKER,qn as MASK,So as MATH,ce as MENU,uo as MERROR,ie as META,wn as METADATA,le as METER,To as MFRAC,yo as MI,go as MMULTISCRIPTS,xo as MN,ho as MO,mo as MOVER,bo as MPADDED,Xn as MPATH,Eo as MPHANTOM,Po as MPRESCRIPTS,Ao as MROOT,Co as MROW,Mo as MS,No as MSPACE,Ro as MSQRT,Oo as MSTYLE,Do as MSUB,vo as MSUBSUP,Lo as MSUP,Io as MTABLE,Fo as MTD,Vo as MTEXT,jo as MTR,Ho as MUNDER,Uo as MUNDEROVER,pe as NAV,fe as NOSCRIPT,Se as OBJECT,de as OL,ue as OPTGROUP,Te as OPTION,ye as OUTPUT,ge as P,Yn as PATH,Wn as PATTERN,xe as PICTURE,$n as POLYGON,Jn as POLYLINE,he as PRE,me as PROGRESS,be as Q,Qn as RADIALGRADIENT,zn as RECT,Ee as RP,Pe as RT,Ae as RUBY,Ce as S,Me as SAMP,Ne as SCRIPT,Re as SEARCH,Oe as SECTION,De as SELECT,Go as SEMANTICS,Zn as SET,ve as SLOT,Le as SMALL,Ie as SOURCE,Fe as SPAN,to as STOP,Ve as STRONG,je as STYLE,He as SUB,Ue as SUMMARY,Ge as SUP,eo as SVG,no as SWITCH,oo as SYMBOL,ke as TABLE,_e as TBODY,Be as TD,Ke as TEMPLATE,ao as TEXT,qe as TEXTAREA,so as TEXTPATH,we as TFOOT,Xe as TH,Ye as THEAD,We as TIME,$e as TITLE,Je as TR,Qe as TRACK,ro as TSPAN,ze as U,Ze as UL,co as USE,tn as VAR,en as VIDEO,io as VIEW,nn as WBR,w as app,Q as child,J as childCount,N as children,L as childrenStart,Yo as context,W as createPatch,Y as createState,V as defuse,P as globals,v as hydrate,X as memo,U as mergeClass,wo as mergeProps,G as mergeStyle,A as props,$ as tag,q 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
@@ -143,6 +143,7 @@ function app(container, state, dom, ...initialPatches) {
143
143
  const root = container;
144
144
  root._vode = _vode;
145
145
  const indexInParent = Array.from(container.parentElement.children).indexOf(container);
146
+ _vode.isRendering = true;
146
147
  _vode.vode = render(
147
148
  state,
148
149
  container.parentElement,
@@ -151,6 +152,8 @@ function app(container, state, dom, ...initialPatches) {
151
152
  hydrate(container, true),
152
153
  dom(state)
153
154
  );
155
+ _vode.isRendering = false;
156
+ if (_vode.qSync) _vode.renderSync();
154
157
  for (const effect of initialPatches) {
155
158
  patchableState.patch(effect);
156
159
  }
@@ -327,7 +330,7 @@ function render(state, parent, childIndex, indexInParent, oldVode, newVode, xmln
327
330
  const oldIsText = oldVode?.nodeType === Node.TEXT_NODE;
328
331
  const oldNode = oldIsText ? oldVode : oldVode?.node;
329
332
  if (isNoVode) {
330
- oldNode?.onUnmount && state.patch(oldNode.onUnmount(oldNode));
333
+ unmountTree(state, oldVode);
331
334
  oldNode?.remove();
332
335
  return void 0;
333
336
  }
@@ -350,7 +353,7 @@ function render(state, parent, childIndex, indexInParent, oldVode, newVode, xmln
350
353
  if (isText && (!oldNode || !oldIsText)) {
351
354
  const text = document.createTextNode(newVode);
352
355
  if (oldNode) {
353
- oldNode.onUnmount && state.patch(oldNode.onUnmount(oldNode));
356
+ unmountTree(state, oldVode);
354
357
  oldNode.replaceWith(text);
355
358
  } else {
356
359
  let inserted = false;
@@ -383,7 +386,7 @@ function render(state, parent, childIndex, indexInParent, oldVode, newVode, xmln
383
386
  newVode.node.removeAttribute("catch");
384
387
  }
385
388
  if (oldNode) {
386
- oldNode.onUnmount && state.patch(oldNode.onUnmount(oldNode));
389
+ unmountTree(state, oldVode);
387
390
  oldNode.replaceWith(newNode);
388
391
  } else {
389
392
  let inserted = false;
@@ -410,7 +413,10 @@ function render(state, parent, childIndex, indexInParent, oldVode, newVode, xmln
410
413
  if (attached) indexP++;
411
414
  }
412
415
  }
413
- newNode.onMount && state.patch(newNode.onMount(newNode));
416
+ newVode._unmountCount = (properties?.onUnmount ? 1 : 0) + sumChildUnmountCounts(newVode);
417
+ if (typeof properties?.onMount === "function") {
418
+ state.patch(properties.onMount(state, newNode));
419
+ }
414
420
  return newVode;
415
421
  }
416
422
  if (!oldIsText && isNode && oldVode[0] === newVode[0]) {
@@ -452,6 +458,7 @@ function render(state, parent, childIndex, indexInParent, oldVode, newVode, xmln
452
458
  render(state, oldNode, i, i, oldKids[i], void 0, xmlns);
453
459
  }
454
460
  }
461
+ newVode._unmountCount = (properties?.onUnmount ? 1 : 0) + sumChildUnmountCounts(newVode);
455
462
  return newVode;
456
463
  }
457
464
  } catch (error) {
@@ -473,6 +480,31 @@ function render(state, parent, childIndex, indexInParent, oldVode, newVode, xmln
473
480
  }
474
481
  return void 0;
475
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
+ }
476
508
  function isNaturalVode(x) {
477
509
  return Array.isArray(x) && x.length > 0 && typeof x[0] === "string";
478
510
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ryupold/vode",
3
- "version": "1.8.5",
3
+ "version": "1.8.7",
4
4
  "description": "a minimalist web framework",
5
5
  "author": "Michael Scherbakow (ryupold)",
6
6
  "license": "MIT",
package/src/vode.ts CHANGED
@@ -280,6 +280,8 @@ export function app<S extends PatchableState = PatchableState>(
280
280
  const root = container as ContainerNode<S>;
281
281
  root._vode = _vode;
282
282
  const indexInParent = Array.from(container.parentElement.children).indexOf(container);
283
+
284
+ _vode.isRendering = true;
283
285
  _vode.vode = render(
284
286
  <S>state,
285
287
  container.parentElement,
@@ -288,6 +290,8 @@ export function app<S extends PatchableState = PatchableState>(
288
290
  hydrate<S>(container, true) as AttachedVode<S>,
289
291
  dom(<S>state)
290
292
  )!;
293
+ _vode.isRendering = false;
294
+ if (_vode.qSync) _vode.renderSync();
291
295
 
292
296
  for (const effect of initialPatches) {
293
297
  patchableState.patch(effect);
@@ -518,7 +522,7 @@ function render<S extends PatchableState>(state: S, parent: Element, childIndex:
518
522
 
519
523
  // falsy|text|element(A) -> undefined
520
524
  if (isNoVode) {
521
- (<any>oldNode)?.onUnmount && state.patch((<any>oldNode).onUnmount(oldNode));
525
+ unmountTree(state, oldVode as AttachedVode<S>);
522
526
  oldNode?.remove();
523
527
  return undefined;
524
528
  }
@@ -548,7 +552,7 @@ function render<S extends PatchableState>(state: S, parent: Element, childIndex:
548
552
  if (isText && (!oldNode || !oldIsText)) {
549
553
  const text = document.createTextNode(newVode as string)
550
554
  if (oldNode) {
551
- (<any>oldNode).onUnmount && state.patch((<any>oldNode).onUnmount(oldNode));
555
+ unmountTree(state, oldVode as AttachedVode<S>);
552
556
  oldNode.replaceWith(text);
553
557
  } else {
554
558
  let inserted = false;
@@ -594,7 +598,7 @@ function render<S extends PatchableState>(state: S, parent: Element, childIndex:
594
598
  }
595
599
 
596
600
  if (oldNode) {
597
- (<any>oldNode).onUnmount && state.patch((<any>oldNode).onUnmount(oldNode));
601
+ unmountTree(state, oldVode as AttachedVode<S>);
598
602
  oldNode.replaceWith(newNode);
599
603
  } else {
600
604
  let inserted = false;
@@ -624,7 +628,10 @@ function render<S extends PatchableState>(state: S, parent: Element, childIndex:
624
628
  }
625
629
  }
626
630
 
627
- (<any>newNode).onMount && state.patch((<any>newNode).onMount(newNode));
631
+ (<any>newVode)._unmountCount = (properties?.onUnmount ? 1 : 0) + sumChildUnmountCounts(newVode as Vode<S>);
632
+ if (typeof properties?.onMount === "function") {
633
+ state.patch(properties.onMount(state, newNode as HTMLElement & SVGSVGElement & MathMLElement));
634
+ }
628
635
  return <AttachedVode<S>>newVode;
629
636
  }
630
637
 
@@ -678,6 +685,7 @@ function render<S extends PatchableState>(state: S, parent: Element, childIndex:
678
685
  }
679
686
  }
680
687
 
688
+ (<any>newVode)._unmountCount = (properties?.onUnmount ? 1 : 0) + sumChildUnmountCounts(newVode as Vode<S>);
681
689
  return <AttachedVode<S>>newVode;
682
690
  }
683
691
  } catch (error) {
@@ -699,6 +707,35 @@ function render<S extends PatchableState>(state: S, parent: Element, childIndex:
699
707
  return undefined;
700
708
  }
701
709
 
710
+ function unmountTree<S extends PatchableState>(state: S, v: AttachedVode<S> | ChildVode<S> | undefined): void {
711
+ if (!v || !Array.isArray(v)) return;
712
+ if (((<any>v)._unmountCount | 0) === 0) return;
713
+
714
+ const kids = children(v as Vode<S>) as AttachedVode<S>[] | null;
715
+ if (kids) {
716
+ for (let i = kids.length - 1; i >= 0; i--) {
717
+ unmountTree(state, kids[i]);
718
+ }
719
+ }
720
+
721
+ const p = props(v);
722
+ if (typeof p?.onUnmount === "function") {
723
+ state.patch(p.onUnmount(state, (v as AttachedVode<S>).node as HTMLElement & SVGSVGElement & MathMLElement));
724
+ }
725
+ }
726
+
727
+ function sumChildUnmountCounts<S>(v: Vode<S>): number {
728
+ const kids = children(v) as AttachedVode<S>[] | null;
729
+ if (!kids) return 0;
730
+ let n = 0;
731
+ for (const k of kids) {
732
+ if (k && Array.isArray(k)) {
733
+ n += ((<any>k)._unmountCount | 0);
734
+ }
735
+ }
736
+ return n;
737
+ }
738
+
702
739
  function isNaturalVode<S>(x: ChildVode<S>): x is Vode<S> {
703
740
  return Array.isArray(x) && x.length > 0 && typeof x[0] === "string";
704
741
  }
package/test/index.ts CHANGED
@@ -16,6 +16,7 @@ import mergeClassTests from "./tests-mergeClass";
16
16
  import mergeStyleTests from "./tests-mergeStyle";
17
17
  import mergePropsTests from "./tests-mergeProps";
18
18
  import stateContextTests from "./tests-state-context";
19
+ import mountUnmountTests from "./tests-mount-unmount";
19
20
 
20
21
  const tests = {
21
22
  ...vodeTests,
@@ -23,6 +24,7 @@ const tests = {
23
24
  ...defuseTests,
24
25
  ...hydrateTests,
25
26
  ...memoTests,
27
+ ...mountUnmountTests,
26
28
 
27
29
  ...createStateTests,
28
30
  ...createPatchTests,