@ryupold/vode 1.8.10 → 1.8.12

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.mjs CHANGED
@@ -1 +1 @@
1
- var E={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 K(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=E.requestAnimationFrame,t.asyncRenderer=E.startViewTransition,t.isRendering=0,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]);async function r(c,S){t.stats.liveEffectCount++;try{let d=await c;o.patch(d,S)}finally{t.stats.liveEffectCount--}}async function f(c,S){let d=c;t.stats.liveEffectCount++;try{let p=await d.next();for(;p.done===!1;){t.stats.liveEffectCount++;try{o.patch(p.value,S),p=await d.next()}finally{t.stats.liveEffectCount--}}o.patch(p.value,S)}finally{t.stats.liveEffectCount--}}Object.defineProperty(n,"patch",{enumerable:!1,configurable:!0,writable:!1,value:(c,S)=>{for(;typeof c=="function";)c=c(t.state);if(!(!c||typeof c!="object"))if(t.stats.patchCount++,c?.next)f(c,S);else if(c.then)r(c,S);else if(Array.isArray(c))if(c.length>0)for(let d of c)o.patch(d,!document.hidden&&!!t.asyncRenderer);else{m(t.state,t.qAsync,!0),t.qAsync=null;try{E.currentViewTransition?.skipTransition()}catch{}t.stats.syncRenderPatchCount++,t.renderSync()}else S?(t.stats.asyncRenderPatchCount++,t.qAsync=m(t.qAsync||{},c,!1),t.renderAsync()):(t.stats.syncRenderPatchCount++,m(t.state,c,!0),t.renderSync())}});function i(c){let S=performance.now(),d=s(t.state);if(t.vode=P(t.state,e.parentElement,0,0,t.vode,d),e.tagName.toUpperCase()!==d[0].toUpperCase()&&(e=t.vode.node,e._vode=t),!c){t.stats.lastSyncRenderTime=performance.now()-S;let p=t.isRendering!==t.stats.syncRenderPatchCount;t.stats.syncRenderCount++,t.isRendering=0,p&&t.renderSync()}}let l=i.bind(null,!1),g=i.bind(null,!0);Object.defineProperty(t,"renderSync",{enumerable:!1,configurable:!0,writable:!1,value:()=>{t.isRendering||(t.isRendering=t.stats.syncRenderPatchCount,t.syncRenderer(l))}}),Object.defineProperty(t,"renderAsync",{enumerable:!1,configurable:!0,writable:!1,value:async()=>{if(t.isAnimating||!t.qAsync||(await E.currentViewTransition?.updateCallbackDone,t.isAnimating||!t.qAsync||document.hidden))return;t.isAnimating=!0;let c=performance.now();try{t.state=m(t.state,t.qAsync,!0),t.qAsync=null,E.currentViewTransition=t.asyncRenderer(g),await E.currentViewTransition?.updateCallbackDone}finally{t.stats.lastAsyncRenderTime=performance.now()-c,t.stats.asyncRenderCount++,t.isAnimating=!1}t.qAsync&&t.renderAsync()}}),t.state=o;let u=e;u._vode=t;let x=Array.from(e.parentElement.children).indexOf(e),T=t.stats.syncRenderPatchCount;t.isRendering=t.stats.syncRenderPatchCount,t.vode=P(n,e.parentElement,x,x,D(e,!0),s(n));let y=t.stats.syncRenderPatchCount!==T;t.isRendering=0,t.stats.syncRenderCount++,y&&t.renderSync();for(let c of a)o.patch(c);return c=>o.patch(c)}function I(e){if(e?._vode){let s=function(t){if(!t?.node)return;let o=b(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)I(t.node);else{let r=L(t);if(r)for(let f of r)s(f)}};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)I(s)}function D(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&&D(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 child vode");if(n.__memo){let s=n;n=a=>s(a)}return n.__memo=e,n}function w(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 X(e){return e}function Y(e){return e?Array.isArray(e)?e[0]:typeof e=="string"||e.nodeType===Node.TEXT_NODE?"#text":void 0:void 0}function b(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=A(e);return n>0?e.slice(n):null}function W(e){let n=A(e);return n<0?0:e.length-n}function $(e,n){let s=A(e);if(s>0)return e[n+s]}function A(e){return b(e)?e.length>2?2:-1:Array.isArray(e)&&e.length>1?1:-1}function m(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]=m({},t,s):typeof o=="object"?m(e[a],t,s):e[a]=m({},t,s):Array.isArray(t)?e[a]=[...t]:t instanceof Date?e[a]=new Date(t):e[a]=m({},t,s)}else t===void 0&&s?delete e[a]:e[a]=t}return e}function P(e,n,s,a,t,o,r){try{o=F(e,o,t);let f=!o||typeof o=="number"||typeof o=="boolean";if(o===t||!t&&f)return t;let i=t?.nodeType===Node.TEXT_NODE,l=i?t:t?.node;if(f){R(e,t),l?.remove();return}let g=!f&&B(o),u=!f&&k(o),x=!!o&&typeof o!="string"&&!!(o?.node||o?.nodeType===Node.TEXT_NODE);if(!g&&!u&&!x&&!t)throw new Error("Invalid vode: "+typeof o+" "+JSON.stringify(o));if(x&&g?o=o.wholeText:x&&u&&(o=[...o]),i&&g)return l.nodeValue!==o&&(l.nodeValue=o),t;if(g&&(!l||!i)){let T=document.createTextNode(o);if(l)R(e,t),l.replaceWith(T);else{let y=!1;for(let c=a;c<n.childNodes.length;c++){let S=n.childNodes[c];if(S){S.before(T),y=!0;break}}y||n.appendChild(T)}return T}if(u&&(!l||i||t[0]!==o[0])){let T=o;1 in T&&(T[1]=F(e,T[1],void 0));let y=b(o);y?.xmlns!==void 0&&(r=y.xmlns);let c=r?document.createElementNS(r,o[0]):document.createElement(o[0]);if(o.node=c,H(e,c,void 0,y,r??null),y&&"catch"in y&&(o.node.catch=null,o.node.removeAttribute("catch")),l)R(e,t),l.replaceWith(c);else{let d=!1;for(let p=a;p<n.childNodes.length;p++){let h=n.childNodes[p];if(h){h.before(c),d=!0;break}}d||n.appendChild(c)}let S=A(o);if(S>0){let d=y?2:1,p=0;for(let h=0;h<o.length-S;h++){let O=o[h+S],C=P(e,c,h,p,void 0,O,r??null);o[h+d]=C,C&&p++}}return o._unmountCount=(y?.onUnmount?1:0)+V(o),typeof y?.onMount=="function"&&e.patch(y.onMount(e,c)),o}if(!i&&u&&t[0]===o[0]){o.node=l;let T=b(o),y=b(t);T?.xmlns!==void 0&&(r=T.xmlns),H(e,l,y,T,r),T?.catch&&y?.catch!==T.catch&&(o.node.catch=null,o.node.removeAttribute("catch"));let c=A(o),S=A(t);if(c>0){let d=0;for(let p=0;p<o.length-c;p++){let h=o[p+c],O=S>0?t[p+S]:void 0,C=P(e,l,p,d,O,h,r);o[p+c]=C,C&&d++}}if(S>0){let d=c>0?o.length-c:0;for(let p=t.length-1-S;p>=d;p--)P(e,l,p,p,t[p+S],void 0,r)}return o._unmountCount=(T?.onUnmount?1:0)+V(o),o}}catch(f){let i=b(o)?.catch;if(i){let l=typeof i=="function"?i(e,f):i;return P(e,n,s,a,D(o?.node||t?.node,!0),l,r)}else throw f}}function R(e,n){if(!n||!Array.isArray(n)||(n._unmountCount|0)===0)return;let s=L(n);if(s)for(let t=s.length-1;t>=0;t--)R(e,s[t]);let a=b(n);typeof a?.onUnmount=="function"&&e.patch(a.onUnmount(e,n.node))}function V(e){let n=L(e);if(!n)return 0;let s=0;for(let a of n)a&&Array.isArray(a)&&(s+=a._unmountCount|0);return s}function k(e){return Array.isArray(e)&&e.length>0&&typeof e[0]=="string"}function B(e){return typeof e=="string"||e?.nodeType===Node.TEXT_NODE}function F(e,n,s){for(;typeof n=="function"&&!n.__memo;)n=n(e);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 o=!0;for(let r=0;r<a.length;r++)if(a[r]!==t[r]){o=!1;break}if(o)return s}for(;typeof n=="function";)n=n(e);return typeof n=="object"&&(n.__memo=a),n}function H(e,n,s,a,t){if(!a&&!s)return;let o=t!==void 0;if(s)for(let r in s){let f=s[r],i=a?.[r];f!==i&&(a?a[r]=M(e,n,r,f,i,o):M(e,n,r,f,void 0,o))}if(a&&s){for(let r in a)if(!(r in s)){let f=a[r];a[r]=M(e,n,r,void 0,f,o)}}else if(a)for(let r in a){let f=a[r];a[r]=M(e,n,r,void 0,f,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 f=a[r],i=t[r];f!==i&&(n.style[r]=i)}}else for(let r in t)n.style[r]=t[r];else if(s==="class")t?n.setAttribute("class",G(t)):n.removeAttribute("class");else if(s[0]==="o"&&s[1]==="n")if(t){let r=null;if(typeof t=="function"){let f=t;r=i=>e.patch(f(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 G(e){return typeof e=="string"?e:Array.isArray(e)?e.map(G).join(" "):typeof e=="object"?Object.keys(e).filter(n=>e[n]).join(" "):""}var Q="a",z="abbr",Z="address",tt="area",et="article",nt="aside",ot="audio",at="b",st="base",rt="bdi",ct="bdo",it="blockquote",lt="body",ft="br",pt="button",St="canvas",ut="caption",dt="cite",Tt="code",yt="col",gt="colgroup",ht="data",xt="datalist",mt="dd",bt="del",Et="details",Pt="dfn",At="dialog",Ct="div",Mt="dl",Rt="dt",Nt="em",Ot="embed",Dt="fieldset",Lt="figcaption",vt="figure",It="footer",Vt="form",Ft="h1",Ht="h2",Gt="h3",jt="h4",Ut="h5",kt="h6",Bt="head",_t="header",Kt="hgroup",qt="hr",wt="html",Xt="i",Yt="iframe",Wt="img",$t="input",Jt="ins",Qt="kbd",zt="label",Zt="legend",te="li",ee="link",ne="main",oe="map",ae="mark",se="menu",re="meta",ce="meter",ie="nav",le="noscript",fe="object",pe="ol",Se="optgroup",ue="option",de="output",Te="p",ye="picture",ge="pre",he="progress",xe="q",me="rp",be="rt",Ee="ruby",Pe="s",Ae="samp",Ce="script",Me="search",Re="section",Ne="select",Oe="slot",De="small",Le="source",ve="span",Ie="strong",Ve="style",Fe="sub",He="summary",Ge="sup",je="table",Ue="tbody",ke="td",Be="template",_e="textarea",Ke="tfoot",qe="th",we="thead",Xe="time",Ye="title",We="tr",$e="track",Je="u",Qe="ul",ze="var",Ze="video",tn="wbr",en="animate",nn="animateMotion",on="animateTransform",an="circle",sn="clipPath",rn="defs",cn="desc",ln="ellipse",fn="feBlend",pn="feColorMatrix",Sn="feComponentTransfer",un="feComposite",dn="feConvolveMatrix",Tn="feDiffuseLighting",yn="feDisplacementMap",gn="feDistantLight",hn="feDropShadow",xn="feFlood",mn="feFuncA",bn="feFuncB",En="feFuncG",Pn="feFuncR",An="feGaussianBlur",Cn="feImage",Mn="feMerge",Rn="feMergeNode",Nn="feMorphology",On="feOffset",Dn="fePointLight",Ln="feSpecularLighting",vn="feSpotLight",In="feTile",Vn="feTurbulence",Fn="filter",Hn="foreignObject",Gn="g",jn="image",Un="line",kn="linearGradient",Bn="marker",_n="mask",Kn="metadata",qn="mpath",wn="path",Xn="pattern",Yn="polygon",Wn="polyline",$n="radialGradient",Jn="rect",Qn="set",zn="stop",Zn="svg",to="switch",eo="symbol",no="text",oo="textPath",ao="tspan",so="use",ro="view",co="annotation",io="annotation-xml",lo="maction",fo="math",po="merror",So="mfrac",uo="mi",To="mmultiscripts",yo="mn",go="mo",ho="mover",xo="mpadded",mo="mphantom",bo="mprescripts",Eo="mroot",Po="mrow",Ao="ms",Co="mspace",Mo="msqrt",Ro="mstyle",No="msub",Oo="msubsup",Do="msup",Lo="mtable",vo="mtd",Io="mtext",Vo="mtr",Fo="munder",Ho="munderover",Go="semantics";function j(...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(" "),f=new Set([...o,...r]);n=Array.from(f).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 N;function U(...e){N||(N=document.createElement("div"));try{let n=N.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{N.style.cssText=""}}function Ko(...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=U(n.style,s.style):a==="class"?n.class=j(n.class,s.class):n[a]=s[a]}return n}function wo(e){return new v(e,[])}var v=class e{constructor(n,s){this.state=n;this.keys=s;function a(i,l){if(s.length>1){let g=0,u=l[s[g]];for((typeof u!="object"||u===null)&&(l[s[g]]=u={}),g=1;g<s.length-1;g++){let x=u;u=u[s[g]],(typeof u!="object"||u===null)&&(x[s[g]]=u={})}u[s[g]]=i}else s.length===1?typeof l[s[0]]=="object"&&typeof i=="object"&&i!==null?Object.assign(l[s[0]],i):l[s[0]]=i:Object.assign(l,i)}function t(i){let l={};return a(i,l),l}function o(){if(s.length===0)return n;let i=n?n[s[0]]:void 0;for(let l=1;l<s.length&&i;l++)i=i[s[l]];return i}function r(i){a(i,n)}function f(i,l){l?n.patch([t(i)]):n.patch(t(i))}return new Proxy(this,{get:(i,l,g)=>{if(l==="state")return n;if(l==="get")return o;if(l==="put")return r;if(l==="patch")return f;let u=[...i.keys,String(l)];return new e(i.state,u)}})}state;keys;get(){}put(n){}patch(n){}};export{Q as A,z as ABBR,Z as ADDRESS,en as ANIMATE,nn as ANIMATEMOTION,on as ANIMATETRANSFORM,co as ANNOTATION,io as ANNOTATION_XML,tt as AREA,et as ARTICLE,nt as ASIDE,ot as AUDIO,at as B,st as BASE,rt as BDI,ct as BDO,it as BLOCKQUOTE,lt as BODY,ft as BR,pt as BUTTON,St as CANVAS,ut as CAPTION,an as CIRCLE,dt as CITE,sn as CLIPPATH,Tt as CODE,yt as COL,gt as COLGROUP,ht as DATA,xt as DATALIST,mt as DD,rn as DEFS,bt as DEL,cn as DESC,Et as DETAILS,Pt as DFN,At as DIALOG,Ct as DIV,Mt as DL,Rt as DT,ln as ELLIPSE,Nt as EM,Ot as EMBED,fn as FEBLEND,pn as FECOLORMATRIX,Sn as FECOMPONENTTRANSFER,un as FECOMPOSITE,dn as FECONVOLVEMATRIX,Tn as FEDIFFUSELIGHTING,yn as FEDISPLACEMENTMAP,gn as FEDISTANTLIGHT,hn as FEDROPSHADOW,xn as FEFLOOD,mn as FEFUNCA,bn as FEFUNCB,En as FEFUNCG,Pn as FEFUNCR,An as FEGAUSSIANBLUR,Cn as FEIMAGE,Mn as FEMERGE,Rn as FEMERGENODE,Nn as FEMORPHOLOGY,On as FEOFFSET,Dn as FEPOINTLIGHT,Ln as FESPECULARLIGHTING,vn as FESPOTLIGHT,In as FETILE,Vn as FETURBULENCE,Dt as FIELDSET,Lt as FIGCAPTION,vt as FIGURE,Fn as FILTER,It as FOOTER,Hn as FOREIGNOBJECT,Vt as FORM,Gn as G,Ft as H1,Ht as H2,Gt as H3,jt as H4,Ut as H5,kt as H6,Bt as HEAD,_t as HEADER,Kt as HGROUP,qt as HR,wt as HTML,Xt as I,Yt as IFRAME,jn as IMAGE,Wt as IMG,$t as INPUT,Jt as INS,Qt as KBD,zt as LABEL,Zt as LEGEND,te as LI,Un as LINE,kn as LINEARGRADIENT,ee as LINK,lo as MACTION,ne as MAIN,oe as MAP,ae as MARK,Bn as MARKER,_n as MASK,fo as MATH,se as MENU,po as MERROR,re as META,Kn as METADATA,ce as METER,So as MFRAC,uo as MI,To as MMULTISCRIPTS,yo as MN,go as MO,ho as MOVER,xo as MPADDED,qn as MPATH,mo as MPHANTOM,bo as MPRESCRIPTS,Eo as MROOT,Po as MROW,Ao as MS,Co as MSPACE,Mo as MSQRT,Ro as MSTYLE,No as MSUB,Oo as MSUBSUP,Do as MSUP,Lo as MTABLE,vo as MTD,Io as MTEXT,Vo as MTR,Fo as MUNDER,Ho as MUNDEROVER,ie as NAV,le as NOSCRIPT,fe as OBJECT,pe as OL,Se as OPTGROUP,ue as OPTION,de as OUTPUT,Te as P,wn as PATH,Xn as PATTERN,ye as PICTURE,Yn as POLYGON,Wn as POLYLINE,ge as PRE,he as PROGRESS,xe as Q,$n as RADIALGRADIENT,Jn as RECT,me as RP,be as RT,Ee as RUBY,Pe as S,Ae as SAMP,Ce as SCRIPT,Me as SEARCH,Re as SECTION,Ne as SELECT,Go as SEMANTICS,Qn as SET,Oe as SLOT,De as SMALL,Le as SOURCE,ve as SPAN,zn as STOP,Ie as STRONG,Ve as STYLE,Fe as SUB,He as SUMMARY,Ge as SUP,Zn as SVG,to as SWITCH,eo as SYMBOL,je as TABLE,Ue as TBODY,ke as TD,Be as TEMPLATE,no as TEXT,_e as TEXTAREA,oo as TEXTPATH,Ke as TFOOT,qe as TH,we as THEAD,Xe as TIME,Ye as TITLE,We as TR,$e as TRACK,ao as TSPAN,Je as U,Qe as UL,so as USE,ze as VAR,Ze as VIDEO,ro as VIEW,tn as WBR,K as app,$ as child,W as childCount,L as children,A as childrenStart,wo as context,X as createPatch,w as createState,I as defuse,E as globals,D as hydrate,q as memo,j as mergeClass,Ko as mergeProps,U as mergeStyle,b as props,Y as tag,_ as vode};
1
+ var E={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 K(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=E.requestAnimationFrame,t.asyncRenderer=E.startViewTransition,t.isRendering=0,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]);async function r(c,S){t.stats.liveEffectCount++;try{let d=await c;await o.patch(d,S)}finally{t.stats.liveEffectCount--}}async function f(c,S){let d=c;t.stats.liveEffectCount++;try{let p=await d.next();for(;p.done===!1;){t.stats.liveEffectCount++;try{await o.patch(p.value,S),p=await d.next()}finally{t.stats.liveEffectCount--}}await o.patch(p.value,S)}finally{t.stats.liveEffectCount--}}Object.defineProperty(n,"patch",{enumerable:!1,configurable:!0,writable:!1,value:(c,S)=>{for(;typeof c=="function";)c=c(t.state);if(!(!c||typeof c!="object")){if(t.stats.patchCount++,c?.next)return f(c,S);if(c.then)return r(c,S);if(Array.isArray(c))if(c.length>0)for(let d of c)o.patch(d,!document.hidden&&!!t.asyncRenderer);else{m(t.state,t.qAsync,!0),t.qAsync=null;try{E.currentViewTransition?.skipTransition()}catch{}t.stats.syncRenderPatchCount++,t.renderSync()}else S?(t.stats.asyncRenderPatchCount++,t.qAsync=m(t.qAsync||{},c,!1),t.renderAsync()):(t.stats.syncRenderPatchCount++,m(t.state,c,!0),t.renderSync())}}});function i(c){let S=performance.now(),d=s(t.state);if(t.vode=P(t.state,e.parentElement,0,0,t.vode,d),e.tagName.toUpperCase()!==d[0].toUpperCase()&&(e=t.vode.node,e._vode=t),!c){t.stats.lastSyncRenderTime=performance.now()-S;let p=t.isRendering!==t.stats.syncRenderPatchCount;t.stats.syncRenderCount++,t.isRendering=0,p&&t.renderSync()}}let l=i.bind(null,!1),g=i.bind(null,!0);Object.defineProperty(t,"renderSync",{enumerable:!1,configurable:!0,writable:!1,value:()=>{t.isRendering||(t.isRendering=t.stats.syncRenderPatchCount,t.syncRenderer(l))}}),Object.defineProperty(t,"renderAsync",{enumerable:!1,configurable:!0,writable:!1,value:async()=>{if(t.isAnimating||!t.qAsync||(await E.currentViewTransition?.updateCallbackDone,t.isAnimating||!t.qAsync||document.hidden))return;t.isAnimating=!0;let c=performance.now();try{t.state=m(t.state,t.qAsync,!0),t.qAsync=null,E.currentViewTransition=t.asyncRenderer(g),await E.currentViewTransition?.updateCallbackDone}finally{t.stats.lastAsyncRenderTime=performance.now()-c,t.stats.asyncRenderCount++,t.isAnimating=!1}t.qAsync&&t.renderAsync()}}),t.state=o;let u=e;u._vode=t;let x=Array.from(e.parentElement.children).indexOf(e),T=t.stats.syncRenderPatchCount;t.isRendering=t.stats.syncRenderPatchCount,t.vode=P(n,e.parentElement,x,x,D(e,!0),s(n));let y=t.stats.syncRenderPatchCount!==T;t.isRendering=0,t.stats.syncRenderCount++,y&&t.renderSync();for(let c of a)o.patch(c);return c=>o.patch(c)}function I(e){if(e?._vode){let s=function(t){if(!t?.node)return;let o=b(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)I(t.node);else{let r=L(t);if(r)for(let f of r)s(f)}};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)I(s)}function D(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&&D(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 child vode");if(n.__memo){let s=n;n=a=>s(a)}return n.__memo=e,n}function w(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 X(e){return e}function Y(e){return e?Array.isArray(e)?e[0]:typeof e=="string"||e.nodeType===Node.TEXT_NODE?"#text":void 0:void 0}function b(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=A(e);return n>0?e.slice(n):null}function W(e){let n=A(e);return n<0?0:e.length-n}function $(e,n){let s=A(e);if(s>0)return e[n+s]}function A(e){return b(e)?e.length>2?2:-1:Array.isArray(e)&&e.length>1?1:-1}function m(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]=m({},t,s):typeof o=="object"?m(e[a],t,s):e[a]=m({},t,s):Array.isArray(t)?e[a]=[...t]:t instanceof Date?e[a]=new Date(t):e[a]=m({},t,s)}else t===void 0&&s?delete e[a]:e[a]=t}return e}function P(e,n,s,a,t,o,r){try{o=F(e,o,t);let f=!o||typeof o=="number"||typeof o=="boolean";if(o===t||!t&&f)return t;let i=t?.nodeType===Node.TEXT_NODE,l=i?t:t?.node;if(f){R(e,t),l?.remove();return}let g=!f&&B(o),u=!f&&k(o),x=!!o&&typeof o!="string"&&!!(o?.node||o?.nodeType===Node.TEXT_NODE);if(!g&&!u&&!x&&!t)throw new Error("Invalid vode: "+typeof o+" "+JSON.stringify(o));if(x&&g?o=o.wholeText:x&&u&&(o=[...o]),i&&g)return l.nodeValue!==o&&(l.nodeValue=o),t;if(g&&(!l||!i)){let T=document.createTextNode(o);if(l)R(e,t),l.replaceWith(T);else{let y=!1;for(let c=a;c<n.childNodes.length;c++){let S=n.childNodes[c];if(S){S.before(T),y=!0;break}}y||n.appendChild(T)}return T}if(u&&(!l||i||t[0]!==o[0])){let T=o;1 in T&&(T[1]=F(e,T[1],void 0));let y=b(o);y?.xmlns!==void 0&&(r=y.xmlns);let c=r?document.createElementNS(r,o[0]):document.createElement(o[0]);if(o.node=c,H(e,c,void 0,y,r??null),y&&"catch"in y&&(o.node.catch=null,o.node.removeAttribute("catch")),l)R(e,t),l.replaceWith(c);else{let d=!1;for(let p=a;p<n.childNodes.length;p++){let h=n.childNodes[p];if(h){h.before(c),d=!0;break}}d||n.appendChild(c)}let S=A(o);if(S>0){let d=y?2:1,p=0;for(let h=0;h<o.length-S;h++){let O=o[h+S],C=P(e,c,h,p,void 0,O,r??null);o[h+d]=C,C&&p++}}return o._unmountCount=(y?.onUnmount?1:0)+V(o),typeof y?.onMount=="function"&&e.patch(y.onMount(e,c)),o}if(!i&&u&&t[0]===o[0]){o.node=l;let T=b(o),y=b(t);T?.xmlns!==void 0&&(r=T.xmlns),H(e,l,y,T,r),T?.catch&&y?.catch!==T.catch&&(o.node.catch=null,o.node.removeAttribute("catch"));let c=A(o),S=A(t);if(c>0){let d=0;for(let p=0;p<o.length-c;p++){let h=o[p+c],O=S>0?t[p+S]:void 0,C=P(e,l,p,d,O,h,r);o[p+c]=C,C&&d++}}if(S>0){let d=c>0?o.length-c:0;for(let p=t.length-1-S;p>=d;p--)P(e,l,p,p,t[p+S],void 0,r)}return o._unmountCount=(T?.onUnmount?1:0)+V(o),o}}catch(f){let i=b(o)?.catch;if(i){let l=typeof i=="function"?i(e,f):i;return P(e,n,s,a,D(o?.node||t?.node,!0),l,r)}else throw f}}function R(e,n){if(!n||!Array.isArray(n)||(n._unmountCount|0)===0)return;let s=L(n);if(s)for(let t=s.length-1;t>=0;t--)R(e,s[t]);let a=b(n);typeof a?.onUnmount=="function"&&e.patch(a.onUnmount(e,n.node))}function V(e){let n=L(e);if(!n)return 0;let s=0;for(let a of n)a&&Array.isArray(a)&&(s+=a._unmountCount|0);return s}function k(e){return Array.isArray(e)&&e.length>0&&typeof e[0]=="string"}function B(e){return typeof e=="string"||e?.nodeType===Node.TEXT_NODE}function F(e,n,s){for(;typeof n=="function"&&!n.__memo;)n=n(e);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 o=!0;for(let r=0;r<a.length;r++)if(a[r]!==t[r]){o=!1;break}if(o)return s}for(;typeof n=="function";)n=n(e);return typeof n=="object"&&(n.__memo=a),n}function H(e,n,s,a,t){if(!a&&!s)return;let o=t!==void 0;if(s)for(let r in s){let f=s[r],i=a?.[r];f!==i&&(a?a[r]=M(e,n,r,f,i,o):M(e,n,r,f,void 0,o))}if(a&&s){for(let r in a)if(!(r in s)){let f=a[r];a[r]=M(e,n,r,void 0,f,o)}}else if(a)for(let r in a){let f=a[r];a[r]=M(e,n,r,void 0,f,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 f=a[r],i=t[r];f!==i&&(n.style[r]=i)}}else for(let r in t)n.style[r]=t[r];else if(s==="class")t?n.setAttribute("class",G(t)):n.removeAttribute("class");else if(s[0]==="o"&&s[1]==="n")if(t){let r=null;if(typeof t=="function"){let f=t;r=i=>e.patch(f(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 G(e){return typeof e=="string"?e:Array.isArray(e)?e.map(G).join(" "):typeof e=="object"?Object.keys(e).filter(n=>e[n]).join(" "):""}var Q="a",z="abbr",Z="address",tt="area",et="article",nt="aside",ot="audio",at="b",st="base",rt="bdi",ct="bdo",it="blockquote",lt="body",ft="br",pt="button",St="canvas",ut="caption",dt="cite",Tt="code",yt="col",gt="colgroup",ht="data",xt="datalist",mt="dd",bt="del",Et="details",Pt="dfn",At="dialog",Ct="div",Mt="dl",Rt="dt",Nt="em",Ot="embed",Dt="fieldset",Lt="figcaption",vt="figure",It="footer",Vt="form",Ft="h1",Ht="h2",Gt="h3",jt="h4",Ut="h5",kt="h6",Bt="head",_t="header",Kt="hgroup",qt="hr",wt="html",Xt="i",Yt="iframe",Wt="img",$t="input",Jt="ins",Qt="kbd",zt="label",Zt="legend",te="li",ee="link",ne="main",oe="map",ae="mark",se="menu",re="meta",ce="meter",ie="nav",le="noscript",fe="object",pe="ol",Se="optgroup",ue="option",de="output",Te="p",ye="picture",ge="pre",he="progress",xe="q",me="rp",be="rt",Ee="ruby",Pe="s",Ae="samp",Ce="script",Me="search",Re="section",Ne="select",Oe="slot",De="small",Le="source",ve="span",Ie="strong",Ve="style",Fe="sub",He="summary",Ge="sup",je="table",Ue="tbody",ke="td",Be="template",_e="textarea",Ke="tfoot",qe="th",we="thead",Xe="time",Ye="title",We="tr",$e="track",Je="u",Qe="ul",ze="var",Ze="video",tn="wbr",en="animate",nn="animateMotion",on="animateTransform",an="circle",sn="clipPath",rn="defs",cn="desc",ln="ellipse",fn="feBlend",pn="feColorMatrix",Sn="feComponentTransfer",un="feComposite",dn="feConvolveMatrix",Tn="feDiffuseLighting",yn="feDisplacementMap",gn="feDistantLight",hn="feDropShadow",xn="feFlood",mn="feFuncA",bn="feFuncB",En="feFuncG",Pn="feFuncR",An="feGaussianBlur",Cn="feImage",Mn="feMerge",Rn="feMergeNode",Nn="feMorphology",On="feOffset",Dn="fePointLight",Ln="feSpecularLighting",vn="feSpotLight",In="feTile",Vn="feTurbulence",Fn="filter",Hn="foreignObject",Gn="g",jn="image",Un="line",kn="linearGradient",Bn="marker",_n="mask",Kn="metadata",qn="mpath",wn="path",Xn="pattern",Yn="polygon",Wn="polyline",$n="radialGradient",Jn="rect",Qn="set",zn="stop",Zn="svg",to="switch",eo="symbol",no="text",oo="textPath",ao="tspan",so="use",ro="view",co="annotation",io="annotation-xml",lo="maction",fo="math",po="merror",So="mfrac",uo="mi",To="mmultiscripts",yo="mn",go="mo",ho="mover",xo="mpadded",mo="mphantom",bo="mprescripts",Eo="mroot",Po="mrow",Ao="ms",Co="mspace",Mo="msqrt",Ro="mstyle",No="msub",Oo="msubsup",Do="msup",Lo="mtable",vo="mtd",Io="mtext",Vo="mtr",Fo="munder",Ho="munderover",Go="semantics";function j(...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(" "),f=new Set([...o,...r]);n=Array.from(f).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"&&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 if(typeof a=="object"&&typeof t=="object")n={...a,...t};else throw new Error(`cannot merge classes of ${a} (${typeof a}) and ${t} (${typeof t})`);else continue}return n}var N;function U(...e){N||(N=document.createElement("div"));try{let n=N.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{N.style.cssText=""}}function Ko(...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=U(n.style,s.style):a==="class"?n.class=j(n.class,s.class):n[a]=s[a]}return n}function wo(e){return new v(e,[])}var v=class e{constructor(n,s){this.state=n;this.keys=s;function a(i,l){if(s.length>1){let g=0,u=l[s[g]];for((typeof u!="object"||u===null)&&(l[s[g]]=u={}),g=1;g<s.length-1;g++){let x=u;u=u[s[g]],(typeof u!="object"||u===null)&&(x[s[g]]=u={})}u[s[g]]=i}else s.length===1?typeof l[s[0]]=="object"&&typeof i=="object"&&i!==null?Object.assign(l[s[0]],i):l[s[0]]=i:Object.assign(l,i)}function t(i){let l={};return a(i,l),l}function o(){if(s.length===0)return n;let i=n?n[s[0]]:void 0;for(let l=1;l<s.length&&i;l++)i=i[s[l]];return i}function r(i){a(i,n)}function f(i,l){l?n.patch([t(i)]):n.patch(t(i))}return new Proxy(this,{get:(i,l,g)=>{if(l==="state")return n;if(l==="get")return o;if(l==="put")return r;if(l==="patch")return f;let u=[...i.keys,String(l)];return new e(i.state,u)}})}state;keys;get(){}put(n){}patch(n){}};export{Q as A,z as ABBR,Z as ADDRESS,en as ANIMATE,nn as ANIMATEMOTION,on as ANIMATETRANSFORM,co as ANNOTATION,io as ANNOTATION_XML,tt as AREA,et as ARTICLE,nt as ASIDE,ot as AUDIO,at as B,st as BASE,rt as BDI,ct as BDO,it as BLOCKQUOTE,lt as BODY,ft as BR,pt as BUTTON,St as CANVAS,ut as CAPTION,an as CIRCLE,dt as CITE,sn as CLIPPATH,Tt as CODE,yt as COL,gt as COLGROUP,ht as DATA,xt as DATALIST,mt as DD,rn as DEFS,bt as DEL,cn as DESC,Et as DETAILS,Pt as DFN,At as DIALOG,Ct as DIV,Mt as DL,Rt as DT,ln as ELLIPSE,Nt as EM,Ot as EMBED,fn as FEBLEND,pn as FECOLORMATRIX,Sn as FECOMPONENTTRANSFER,un as FECOMPOSITE,dn as FECONVOLVEMATRIX,Tn as FEDIFFUSELIGHTING,yn as FEDISPLACEMENTMAP,gn as FEDISTANTLIGHT,hn as FEDROPSHADOW,xn as FEFLOOD,mn as FEFUNCA,bn as FEFUNCB,En as FEFUNCG,Pn as FEFUNCR,An as FEGAUSSIANBLUR,Cn as FEIMAGE,Mn as FEMERGE,Rn as FEMERGENODE,Nn as FEMORPHOLOGY,On as FEOFFSET,Dn as FEPOINTLIGHT,Ln as FESPECULARLIGHTING,vn as FESPOTLIGHT,In as FETILE,Vn as FETURBULENCE,Dt as FIELDSET,Lt as FIGCAPTION,vt as FIGURE,Fn as FILTER,It as FOOTER,Hn as FOREIGNOBJECT,Vt as FORM,Gn as G,Ft as H1,Ht as H2,Gt as H3,jt as H4,Ut as H5,kt as H6,Bt as HEAD,_t as HEADER,Kt as HGROUP,qt as HR,wt as HTML,Xt as I,Yt as IFRAME,jn as IMAGE,Wt as IMG,$t as INPUT,Jt as INS,Qt as KBD,zt as LABEL,Zt as LEGEND,te as LI,Un as LINE,kn as LINEARGRADIENT,ee as LINK,lo as MACTION,ne as MAIN,oe as MAP,ae as MARK,Bn as MARKER,_n as MASK,fo as MATH,se as MENU,po as MERROR,re as META,Kn as METADATA,ce as METER,So as MFRAC,uo as MI,To as MMULTISCRIPTS,yo as MN,go as MO,ho as MOVER,xo as MPADDED,qn as MPATH,mo as MPHANTOM,bo as MPRESCRIPTS,Eo as MROOT,Po as MROW,Ao as MS,Co as MSPACE,Mo as MSQRT,Ro as MSTYLE,No as MSUB,Oo as MSUBSUP,Do as MSUP,Lo as MTABLE,vo as MTD,Io as MTEXT,Vo as MTR,Fo as MUNDER,Ho as MUNDEROVER,ie as NAV,le as NOSCRIPT,fe as OBJECT,pe as OL,Se as OPTGROUP,ue as OPTION,de as OUTPUT,Te as P,wn as PATH,Xn as PATTERN,ye as PICTURE,Yn as POLYGON,Wn as POLYLINE,ge as PRE,he as PROGRESS,xe as Q,$n as RADIALGRADIENT,Jn as RECT,me as RP,be as RT,Ee as RUBY,Pe as S,Ae as SAMP,Ce as SCRIPT,Me as SEARCH,Re as SECTION,Ne as SELECT,Go as SEMANTICS,Qn as SET,Oe as SLOT,De as SMALL,Le as SOURCE,ve as SPAN,zn as STOP,Ie as STRONG,Ve as STYLE,Fe as SUB,He as SUMMARY,Ge as SUP,Zn as SVG,to as SWITCH,eo as SYMBOL,je as TABLE,Ue as TBODY,ke as TD,Be as TEMPLATE,no as TEXT,_e as TEXTAREA,oo as TEXTPATH,Ke as TFOOT,qe as TH,we as THEAD,Xe as TIME,Ye as TITLE,We as TR,$e as TRACK,ao as TSPAN,Je as U,Qe as UL,so as USE,ze as VAR,Ze as VIDEO,ro as VIEW,tn as WBR,K as app,$ as child,W as childCount,L as children,A as childrenStart,wo as context,X as createPatch,w as createState,I as defuse,E as globals,D as hydrate,q as memo,j as mergeClass,Ko as mergeProps,U as mergeStyle,b as props,Y as tag,_ as vode};
package/dist/vode.mjs CHANGED
@@ -28,7 +28,7 @@ function app(container, state, dom, ...initialPatches) {
28
28
  _vode.stats.liveEffectCount++;
29
29
  try {
30
30
  const resolvedPatch = await action;
31
- patchableState.patch(resolvedPatch, isAnimated);
31
+ await patchableState.patch(resolvedPatch, isAnimated);
32
32
  } finally {
33
33
  _vode.stats.liveEffectCount--;
34
34
  }
@@ -41,13 +41,13 @@ function app(container, state, dom, ...initialPatches) {
41
41
  while (v.done === false) {
42
42
  _vode.stats.liveEffectCount++;
43
43
  try {
44
- patchableState.patch(v.value, isAnimated);
44
+ await patchableState.patch(v.value, isAnimated);
45
45
  v = await generator.next();
46
46
  } finally {
47
47
  _vode.stats.liveEffectCount--;
48
48
  }
49
49
  }
50
- patchableState.patch(v.value, isAnimated);
50
+ await patchableState.patch(v.value, isAnimated);
51
51
  } finally {
52
52
  _vode.stats.liveEffectCount--;
53
53
  }
@@ -63,9 +63,9 @@ function app(container, state, dom, ...initialPatches) {
63
63
  if (!action || typeof action !== "object") return;
64
64
  _vode.stats.patchCount++;
65
65
  if (action?.next) {
66
- generatorPatch(action, isAnimated);
66
+ return generatorPatch(action, isAnimated);
67
67
  } else if (action.then) {
68
- promisePatch(action, isAnimated);
68
+ return promisePatch(action, isAnimated);
69
69
  } else if (Array.isArray(action)) {
70
70
  if (action.length > 0) {
71
71
  for (const p of action) {
@@ -866,8 +866,6 @@ function mergeClass(...classes) {
866
866
  finalClass = { [a]: true, ...b };
867
867
  } else if (typeof a === "object" && typeof b === "string") {
868
868
  finalClass = { ...a, [b]: true };
869
- } else if (typeof a === "object" && typeof b === "object") {
870
- finalClass = { ...a, ...b };
871
869
  } else if (typeof a === "object" && Array.isArray(b)) {
872
870
  const aa = { ...a };
873
871
  for (const item of b) {
@@ -883,6 +881,8 @@ function mergeClass(...classes) {
883
881
  aa[bKey] = b[bKey];
884
882
  }
885
883
  finalClass = aa;
884
+ } else if (typeof a === "object" && typeof b === "object") {
885
+ finalClass = { ...a, ...b };
886
886
  } else throw new Error(`cannot merge classes of ${a} (${typeof a}) and ${b} (${typeof b})`);
887
887
  }
888
888
  return finalClass;