@ryupold/vode 1.5.0 → 1.5.1

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/README.md CHANGED
@@ -1,10 +1,9 @@
1
1
  # ![vode-logo](https://raw.githubusercontent.com/ryupold/vode/refs/heads/main/logo.webp)
2
+ | [![TypeScript](https://img.shields.io/badge/TypeScript-100%25-blue?logo=typescript)](https://www.typescriptlang.org/) | [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE) |
3
+ | :-------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------: |
4
+ | [![NPM](https://badge.fury.io/js/%40ryupold%2Fvode.svg)](https://www.npmjs.com/package/@ryupold/vode) | [![Dependencies](https://img.shields.io/badge/dependencies-0-success)](package.json) |
2
5
 
3
- [![TypeScript](https://img.shields.io/badge/TypeScript-100%25-blue?logo=typescript)](https://www.typescriptlang.org/)
4
- [![Dependencies](https://img.shields.io/badge/dependencies-0-success)](package.json)
5
- [![NPM](https://badge.fury.io/js/%40ryupold%2Fvode.svg)](https://www.npmjs.com/package/@ryupold/vode)
6
- [![NPM Downloads](https://img.shields.io/npm/dm/@ryupold/vode)](https://www.npmjs.com/package/@ryupold/vode)
7
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE)
6
+ ---
8
7
 
9
8
  A compact web framework for minimalist developers. Zero dependencies, no build step except for typescript compilation, and a simple virtual DOM implementation that is easy to understand and use. Autocompletion out of the box thanks to `lib.dom.d.ts`.
10
9
 
@@ -81,20 +80,10 @@ Binds the library to the global `V` variable.
81
80
 
82
81
  ### NPM
83
82
 
84
- [![NPM](https://badge.fury.io/js/%40ryupold%2Fvode.svg)](https://www.npmjs.com/package/@ryupold/vode)
85
-
86
- ```bash
87
- # npm
88
- npm install @ryupold/vode --save
89
-
90
- # yarn
91
- yarn add @ryupold/vode
92
-
93
- # bun
94
- bun add @ryupold/vode
95
- ```
83
+ [![NPM](https://nodei.co/npm/@ryupold/vode.svg?color=red&data=n,v,s,d,u)](https://www.npmjs.com/package/@ryupold/vode)
96
84
 
97
85
  index.html
86
+
98
87
  ```html
99
88
  <html>
100
89
  <head>
package/dist/vode.js CHANGED
@@ -406,6 +406,7 @@ var V = (() => {
406
406
  av.node[key] = null;
407
407
  }
408
408
  }
409
+ av.node["catch"] = null;
409
410
  }
410
411
  const kids = children(av);
411
412
  if (kids) {
@@ -627,6 +628,10 @@ var V = (() => {
627
628
  const properties = props(newVode);
628
629
  patchProperties(state, patch, oldNode, props(oldVode), properties);
629
630
  hasProps = !!properties;
631
+ if (hasProps && "catch" in properties) {
632
+ newVode.node["catch"] = null;
633
+ newVode.node.removeAttribute("catch");
634
+ }
630
635
  }
631
636
  const newKids = children(newVode);
632
637
  const oldKids = children(oldVode);
package/dist/vode.min.js CHANGED
@@ -1 +1 @@
1
- "use strict";var V=(()=>{var R=Object.defineProperty;var j=Object.getOwnPropertyDescriptor;var H=Object.getOwnPropertyNames;var U=Object.prototype.hasOwnProperty;var G=(e,n)=>{for(var a in n)R(e,a,{get:n[a],enumerable:!0})},K=(e,n,a,s)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of H(n))!U.call(e,t)&&t!==a&&R(e,t,{get:()=>n[t],enumerable:!(s=j(n,t))||s.enumerable});return e};var B=e=>K(R({},"__esModule",{value:!0}),e);var Bn={};G(Bn,{A:()=>tt,ABBR:()=>et,ADDRESS:()=>ot,ANIMATE:()=>so,ANIMATEMOTION:()=>ao,ANIMATETRANSFORM:()=>ro,ANNOTATION:()=>Sn,ANNOTATION_XML:()=>fn,AREA:()=>nt,ARTICLE:()=>st,ASIDE:()=>at,AUDIO:()=>rt,B:()=>ct,BASE:()=>it,BDI:()=>pt,BDO:()=>lt,BLOCKQUOTE:()=>St,BODY:()=>ft,BR:()=>dt,BUTTON:()=>Tt,CANVAS:()=>ut,CAPTION:()=>yt,CIRCLE:()=>co,CITE:()=>gt,CLIPPATH:()=>io,CODE:()=>xt,COL:()=>ht,COLGROUP:()=>mt,DATA:()=>Et,DATALIST:()=>bt,DD:()=>Pt,DEFS:()=>po,DEL:()=>At,DESC:()=>lo,DETAILS:()=>Ct,DFN:()=>Mt,DIALOG:()=>Nt,DIV:()=>Rt,DL:()=>Ot,DT:()=>Dt,DelegateStateContext:()=>L,ELLIPSE:()=>So,EM:()=>vt,EMBED:()=>Lt,FEBLEND:()=>fo,FECOLORMATRIX:()=>To,FECOMPONENTTRANSFER:()=>uo,FECOMPOSITE:()=>yo,FECONVOLVEMATRIX:()=>go,FEDIFFUSELIGHTING:()=>xo,FEDISPLACEMENTMAP:()=>ho,FEDISTANTLIGHT:()=>mo,FEDROPSHADOW:()=>Eo,FEFLOOD:()=>bo,FEFUNCA:()=>Po,FEFUNCB:()=>Ao,FEFUNCG:()=>Co,FEFUNCR:()=>Mo,FEGAUSSIANBLUR:()=>No,FEIMAGE:()=>Ro,FEMERGE:()=>Oo,FEMERGENODE:()=>Do,FEMORPHOLOGY:()=>vo,FEOFFSET:()=>Lo,FEPOINTLIGHT:()=>Io,FESPECULARLIGHTING:()=>Vo,FESPOTLIGHT:()=>Fo,FETILE:()=>ko,FETURBULENCE:()=>jo,FIELDSET:()=>It,FIGCAPTION:()=>Vt,FIGURE:()=>Ft,FILTER:()=>Ho,FOOTER:()=>kt,FOREIGNOBJECT:()=>Uo,FORM:()=>jt,G:()=>Go,H1:()=>Ht,H2:()=>Ut,H3:()=>Gt,H4:()=>Kt,H5:()=>Bt,H6:()=>_t,HEAD:()=>qt,HEADER:()=>wt,HGROUP:()=>Xt,HR:()=>$t,HTML:()=>Yt,I:()=>Wt,IFRAME:()=>Jt,IMAGE:()=>Ko,IMG:()=>Qt,INPUT:()=>zt,INS:()=>Zt,KBD:()=>te,KeyStateContext:()=>v,LABEL:()=>ee,LEGEND:()=>oe,LI:()=>ne,LINE:()=>Bo,LINEARGRADIENT:()=>_o,LINK:()=>se,MACTION:()=>dn,MAIN:()=>ae,MAP:()=>re,MARK:()=>ce,MARKER:()=>qo,MASK:()=>wo,MATH:()=>Tn,MENU:()=>ie,MERROR:()=>un,META:()=>pe,METADATA:()=>Xo,METER:()=>le,MFRAC:()=>yn,MI:()=>gn,MMULTISCRIPTS:()=>xn,MN:()=>hn,MO:()=>mn,MOVER:()=>En,MPADDED:()=>bn,MPATH:()=>$o,MPHANTOM:()=>Pn,MPRESCRIPTS:()=>An,MROOT:()=>Cn,MROW:()=>Mn,MS:()=>Nn,MSPACE:()=>Rn,MSQRT:()=>On,MSTYLE:()=>Dn,MSUB:()=>vn,MSUBSUP:()=>Ln,MSUP:()=>In,MTABLE:()=>Vn,MTD:()=>Fn,MTEXT:()=>kn,MTR:()=>jn,MUNDER:()=>Hn,MUNDEROVER:()=>Un,NAV:()=>Se,NOSCRIPT:()=>fe,OBJECT:()=>de,OL:()=>Te,OPTGROUP:()=>ue,OPTION:()=>ye,OUTPUT:()=>ge,P:()=>xe,PATH:()=>Yo,PATTERN:()=>Wo,PICTURE:()=>he,POLYGON:()=>Jo,POLYLINE:()=>Qo,PRE:()=>me,PROGRESS:()=>Ee,Q:()=>be,RADIALGRADIENT:()=>zo,RECT:()=>Zo,RP:()=>Pe,RT:()=>Ae,RUBY:()=>Ce,S:()=>Me,SAMP:()=>Ne,SCRIPT:()=>Re,SEARCH:()=>Oe,SECTION:()=>De,SELECT:()=>ve,SEMANTICS:()=>Gn,SET:()=>tn,SLOT:()=>Le,SMALL:()=>Ie,SOURCE:()=>Ve,SPAN:()=>Fe,STOP:()=>en,STRONG:()=>ke,STYLE:()=>je,SUB:()=>He,SUMMARY:()=>Ue,SUP:()=>Ge,SVG:()=>on,SWITCH:()=>nn,SYMBOL:()=>sn,TABLE:()=>Ke,TBODY:()=>Be,TD:()=>_e,TEMPLATE:()=>qe,TEXT:()=>an,TEXTAREA:()=>we,TEXTPATH:()=>rn,TFOOT:()=>Xe,TH:()=>$e,THEAD:()=>Ye,TIME:()=>We,TITLE:()=>Je,TR:()=>Qe,TRACK:()=>ze,TSPAN:()=>cn,U:()=>Ze,UL:()=>to,USE:()=>pn,VAR:()=>eo,VIDEO:()=>oo,VIEW:()=>ln,WBR:()=>no,app:()=>q,child:()=>Q,childCount:()=>J,children:()=>A,childrenStart:()=>N,createPatch:()=>Y,createState:()=>$,defuse:()=>w,globals:()=>E,hydrate:()=>M,memo:()=>X,mergeClass:()=>Kn,props:()=>x,tag:()=>W,vode:()=>_});var E={currentViewTransition:void 0,requestAnimationFrame:window.requestAnimationFrame?window.requestAnimationFrame.bind(window):(e=>e()),startViewTransition:document.startViewTransition?document.startViewTransition.bind(document):null};function _(e,n,...a){if(!e)throw new Error("first argument to vode() must be a tag name or a vode");return Array.isArray(e)?e:n?[e,n,...a]:[e,...a]}function q(e,n,a,...s){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 a!="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.qSync=null,t.qAsync=null,t.stats={lastSyncRenderTime:0,lastAsyncRenderTime:0,syncRenderCount:0,asyncRenderCount:0,liveEffectCount:0,patchCount:0,syncRenderPatchCount:0,asyncRenderPatchCount:0},Object.defineProperty(n,"patch",{enumerable:!1,configurable:!0,writable:!1,value:async(c,T)=>{if(!(!c||typeof c!="function"&&typeof c!="object"))if(t.stats.patchCount++,c?.next){let S=c;t.stats.liveEffectCount++;try{let m=await S.next();for(;m.done===!1;){t.stats.liveEffectCount++;try{t.patch(m.value,T),m=await S.next()}finally{t.stats.liveEffectCount--}}t.patch(m.value,T)}finally{t.stats.liveEffectCount--}}else if(c.then){t.stats.liveEffectCount++;try{let S=await c;t.patch(S,T)}finally{t.stats.liveEffectCount--}}else if(Array.isArray(c))if(c.length>0)for(let S of c)t.patch(S,!document.hidden&&!!t.asyncRenderer);else{t.qSync=h(t.qSync||{},t.qAsync,!1),t.qAsync=null;try{E.currentViewTransition?.skipTransition()}catch{}t.stats.syncRenderPatchCount++,t.renderSync()}else typeof c=="function"?t.patch(c(t.state),T):T?(t.stats.asyncRenderPatchCount++,t.qAsync=h(t.qAsync||{},c,!1),await t.renderAsync()):(t.stats.syncRenderPatchCount++,t.qSync=h(t.qSync||{},c,!1),t.renderSync())}});function o(c){let T=Date.now(),S=a(t.state);t.vode=b(t.state,t.patch,e.parentElement,0,t.vode,S),e.tagName.toUpperCase()!==S[0].toUpperCase()&&(e=t.vode.node,e._vode=t),c||(t.stats.lastSyncRenderTime=Date.now()-T,t.stats.syncRenderCount++,t.isRendering=!1,t.qSync&&t.renderSync())}let r=o.bind(null,!1),i=o.bind(null,!0);Object.defineProperty(t,"renderSync",{enumerable:!1,configurable:!0,writable:!1,value:()=>{t.isRendering||!t.qSync||(t.isRendering=!0,t.state=h(t.state,t.qSync,!0),t.qSync=null,t.syncRenderer(r))}}),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=Date.now();try{t.state=h(t.state,t.qAsync,!0),t.qAsync=null,E.currentViewTransition=t.asyncRenderer(i),await E.currentViewTransition?.updateCallbackDone}finally{t.stats.lastAsyncRenderTime=Date.now()-c,t.stats.asyncRenderCount++,t.isAnimating=!1}t.qAsync&&t.renderAsync()}}),t.patch=n.patch,t.state=n;let p=e;p._vode=t,t.vode=b(n,t.patch,e.parentElement,Array.from(e.parentElement.children).indexOf(e),M(e,!0),a(n));for(let c of s)t.patch(c);return t.patch}function w(e){if(e?._vode){let a=function(t){if(!t?.node)return;let o=x(t);if(o)for(let i in o)i[0]==="o"&&i[1]==="n"&&(t.node[i]=null);let r=A(t);if(r)for(let i of r)a(i)};var n=a;let s=e._vode;delete e._vode,Object.defineProperty(s.state,"patch",{value:void 0}),Object.defineProperty(s,"renderSync",{value:()=>{}}),Object.defineProperty(s,"renderAsync",{value:()=>{}}),a(s.vode)}}function M(e,n){if(e?.nodeType===Node.TEXT_NODE)return e.nodeValue?.trim()!==""?n?e:e.nodeValue:void 0;if(e.nodeType===Node.COMMENT_NODE)return;if(e.nodeType===Node.ELEMENT_NODE){let s=[e.tagName.toLowerCase()];if(n&&(s.node=e),e?.hasAttributes()){let t={},o=e.attributes;for(let r of o)t[r.name]=r.value;s.push(t)}if(e.hasChildNodes()){let t=[];for(let o of e.childNodes){let r=o&&M(o,n);r?s.push(r):o&&n&&t.push(o)}for(let o of t)o.remove()}return s}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 $(e){if(!e||typeof e!="object")throw new Error("createState() must be called with a state object");return e}function Y(e){return e}function W(e){return e?Array.isArray(e)?e[0]:typeof e=="string"||e.nodeType===Node.TEXT_NODE?"#text":void 0:void 0}function x(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 A(e){let n=N(e);return n>0?e.slice(n):null}function J(e){let n=N(e);return n<0?0:e.length-n}function Q(e,n){let a=N(e);if(a>0)return e[n+a]}function N(e){return x(e)?e.length>2?2:-1:Array.isArray(e)&&e.length>1?1:-1}function h(e,n,a){if(!n)return e;for(let s in n){let t=n[s];if(t&&typeof t=="object"){let o=e[s];o?Array.isArray(t)?e[s]=[...t]:t instanceof Date&&o!==t?e[s]=new Date(t):Array.isArray(o)?e[s]=h({},t,a):typeof o=="object"?h(e[s],t,a):e[s]=h({},t,a):Array.isArray(t)?e[s]=[...t]:t instanceof Date?e[s]=new Date(t):e[s]=h({},t,a)}else t===void 0&&a?delete e[s]:e[s]=t}return e}function b(e,n,a,s,t,o,r){try{o=O(e,o,t);let i=!o||typeof o=="number"||typeof o=="boolean";if(o===t||!t&&i)return t;let p=t?.nodeType===Node.TEXT_NODE,c=p?t:t?.node;if(i){c?.onUnmount&&n(c.onUnmount(c)),c?.remove();return}let T=!i&&Z(o),S=!i&&z(o),m=!!o&&typeof o!="string"&&!!(o?.node||o?.nodeType===Node.TEXT_NODE);if(!T&&!S&&!m&&!t)throw new Error("Invalid vode: "+typeof o+" "+JSON.stringify(o));if(m&&T?o=o.wholeText:m&&S&&(o=[...o]),p&&T)return c.nodeValue!==o&&(c.nodeValue=o),t;if(T&&(!c||!p)){let f=document.createTextNode(o);return c?(c.onUnmount&&n(c.onUnmount(c)),c.replaceWith(f)):a.childNodes[s]?a.insertBefore(f,a.childNodes[s]):a.appendChild(f),f}if(S&&(!c||p||t[0]!==o[0])){let f=o;1 in f&&(f[1]=O(e,f[1],void 0));let P=x(o);r=P?.xmlns||r;let d=r?document.createElementNS(r,o[0]):document.createElement(o[0]);o.node=d,D(e,n,d,void 0,P),c?(c.onUnmount&&n(c.onUnmount(c)),c.replaceWith(d)):a.childNodes[s]?a.insertBefore(d,a.childNodes[s]):a.appendChild(d);let g=A(o);if(g)for(let u=0;u<g.length;u++){let l=g[u],y=b(e,n,d,u,void 0,l,r);o[P?u+2:u+1]=y}return d.onMount&&n(d.onMount(d)),o}if(!p&&S&&t[0]===o[0]){o.node=c;let f=o,P=t,d=!1;if(f[1]?.__memo){let l=f[1];if(f[1]=O(e,f[1],P[1]),l!==f[1]){let y=x(o);D(e,n,c,x(t),y),d=!!y}}else{let l=x(o);D(e,n,c,x(t),l),d=!!l}let g=A(o),u=A(t);if(g)for(let l=0;l<g.length;l++){let y=g[l],k=u&&u[l],I=b(e,n,c,l,k,y,r);I&&(o[d?l+2:l+1]=I)}if(u){let l=g?g.length:0;for(let y=u.length-1;y>=l;y--)b(e,n,c,y,u[y],void 0,r)}return o}}catch(i){let p=x(o)?.catch;if(p){let c=typeof p=="function"?p(e,i):p;return b(e,n,a,s,M(o?.node||t?.node,!0),c,r)}else throw i}}function z(e){return Array.isArray(e)&&e.length>0&&typeof e[0]=="string"}function Z(e){return typeof e=="string"||e?.nodeType===Node.TEXT_NODE}function O(e,n,a){if(typeof n!="function")return n;let s=n?.__memo,t=a?.__memo;if(Array.isArray(s)&&Array.isArray(t)&&s.length===t.length){let r=!0;for(let i=0;i<s.length;i++)if(s[i]!==t[i]){r=!1;break}if(r)return a}let o=V(n,e);return typeof o=="object"&&(o.__memo=n?.__memo),o}function V(e,n){return typeof e=="function"?V(e(n),n):e}function D(e,n,a,s,t){if(!(!t&&!s)){if(s)for(let o in s){let r=s[o],i=t?.[o];r!==i&&(t?t[o]=C(e,n,a,o,r,i):C(e,n,a,o,r,void 0))}if(t&&s){for(let o in t)if(!(o in s)){let r=t[o];t[o]=C(e,n,a,o,void 0,r)}}else if(t)for(let o in t){let r=t[o];t[o]=C(e,n,a,o,void 0,r)}}}function C(e,n,a,s,t,o){if(s==="style")if(!o)a.style.cssText="";else if(typeof o=="string")t!==o&&(a.style.cssText=o);else if(t&&typeof t=="object"){for(let r in t)o[r]||(a.style[r]=null);for(let r in o){let i=t[r],p=o[r];i!==p&&(a.style[r]=p)}}else for(let r in o)a.style[r]=o[r];else if(s==="class")o?a.setAttribute("class",F(o)):a.removeAttribute("class");else if(s[0]==="o"&&s[1]==="n")if(o){let r=null;if(typeof o=="function"){let i=o;r=p=>n(i(e,p))}else typeof o=="object"&&(r=()=>n(o));a[s]=r}else a[s]=null;else a[s]=o,o==null||o===!1?a.removeAttribute(s):a.setAttribute(s,o);return o}function F(e){return typeof e=="string"?e:Array.isArray(e)?e.map(F).join(" "):typeof e=="object"?Object.keys(e).filter(n=>e[n]).join(" "):""}var tt="a",et="abbr",ot="address",nt="area",st="article",at="aside",rt="audio",ct="b",it="base",pt="bdi",lt="bdo",St="blockquote",ft="body",dt="br",Tt="button",ut="canvas",yt="caption",gt="cite",xt="code",ht="col",mt="colgroup",Et="data",bt="datalist",Pt="dd",At="del",Ct="details",Mt="dfn",Nt="dialog",Rt="div",Ot="dl",Dt="dt",vt="em",Lt="embed",It="fieldset",Vt="figcaption",Ft="figure",kt="footer",jt="form",Ht="h1",Ut="h2",Gt="h3",Kt="h4",Bt="h5",_t="h6",qt="head",wt="header",Xt="hgroup",$t="hr",Yt="html",Wt="i",Jt="iframe",Qt="img",zt="input",Zt="ins",te="kbd",ee="label",oe="legend",ne="li",se="link",ae="main",re="map",ce="mark",ie="menu",pe="meta",le="meter",Se="nav",fe="noscript",de="object",Te="ol",ue="optgroup",ye="option",ge="output",xe="p",he="picture",me="pre",Ee="progress",be="q",Pe="rp",Ae="rt",Ce="ruby",Me="s",Ne="samp",Re="script",Oe="search",De="section",ve="select",Le="slot",Ie="small",Ve="source",Fe="span",ke="strong",je="style",He="sub",Ue="summary",Ge="sup",Ke="table",Be="tbody",_e="td",qe="template",we="textarea",Xe="tfoot",$e="th",Ye="thead",We="time",Je="title",Qe="tr",ze="track",Ze="u",to="ul",eo="var",oo="video",no="wbr",so="animate",ao="animateMotion",ro="animateTransform",co="circle",io="clipPath",po="defs",lo="desc",So="ellipse",fo="feBlend",To="feColorMatrix",uo="feComponentTransfer",yo="feComposite",go="feConvolveMatrix",xo="feDiffuseLighting",ho="feDisplacementMap",mo="feDistantLight",Eo="feDropShadow",bo="feFlood",Po="feFuncA",Ao="feFuncB",Co="feFuncG",Mo="feFuncR",No="feGaussianBlur",Ro="feImage",Oo="feMerge",Do="feMergeNode",vo="feMorphology",Lo="feOffset",Io="fePointLight",Vo="feSpecularLighting",Fo="feSpotLight",ko="feTile",jo="feTurbulence",Ho="filter",Uo="foreignObject",Go="g",Ko="image",Bo="line",_o="linearGradient",qo="marker",wo="mask",Xo="metadata",$o="mpath",Yo="path",Wo="pattern",Jo="polygon",Qo="polyline",zo="radialGradient",Zo="rect",tn="set",en="stop",on="svg",nn="switch",sn="symbol",an="text",rn="textPath",cn="tspan",pn="use",ln="view",Sn="annotation",fn="annotation-xml",dn="maction",Tn="math",un="merror",yn="mfrac",gn="mi",xn="mmultiscripts",hn="mn",mn="mo",En="mover",bn="mpadded",Pn="mphantom",An="mprescripts",Cn="mroot",Mn="mrow",Nn="ms",Rn="mspace",On="msqrt",Dn="mstyle",vn="msub",Ln="msubsup",In="msup",Vn="mtable",Fn="mtd",kn="mtext",jn="mtr",Hn="munder",Un="munderover",Gn="semantics";function Kn(...e){if(!e||e.length===0)return null;if(e.length===1)return e[0];let n=e[0];for(let a=1;a<e.length;a++){let s=n,t=e[a];if(!s)n=t;else if(t)if(typeof s=="string"&&typeof t=="string"){let o=s.split(" "),r=t.split(" "),i=new Set([...o,...r]);n=Array.from(i).join(" ").trim()}else if(typeof s=="string"&&Array.isArray(t)){let o=new Set([...t,...s.split(" ")]);n=Array.from(o).join(" ").trim()}else if(Array.isArray(s)&&typeof t=="string"){let o=new Set([...s,...t.split(" ")]);n=Array.from(o).join(" ").trim()}else if(Array.isArray(s)&&Array.isArray(t)){let o=new Set([...s,...t]);n=Array.from(o).join(" ").trim()}else if(typeof s=="string"&&typeof t=="object")n={[s]:!0,...t};else if(typeof s=="object"&&typeof t=="string")n={...s,[t]:!0};else if(typeof s=="object"&&typeof t=="object")n={...s,...t};else if(typeof s=="object"&&Array.isArray(t)){let o={...s};for(let r of t)o[r]=!0;n=o}else if(Array.isArray(s)&&typeof t=="object"){let o={};for(let r of s)o[r]=!0;for(let r of Object.keys(t))o[r]=t[r];n=o}else throw new Error(`cannot merge classes of ${s} (${typeof s}) and ${t} (${typeof t})`);else continue}return n}var v=class{constructor(n,a){this.state=n;this.path=a;this.keys=a.split(".")}keys;get(){let n=this.keys,a=this.state?this.state[n[0]]:void 0;for(let s=1;s<n.length&&a;s++)a=a[n[s]];return a}put(n){this.putDeep(n,this.state)}patch(n){if(Array.isArray(n)){let a=[];for(let s of n)a.push(this.createPatch(s));this.state.patch(a)}else this.state.patch(this.createPatch(n))}createPatch(n){let a={};return this.putDeep(n,a),a}putDeep(n,a){let s=this.keys;if(s.length>1){let t=0,o=a[s[t]];for((typeof o!="object"||o===null)&&(a[s[t]]=o={}),t=1;t<s.length-1;t++){let r=o;o=o[s[t]],(typeof o!="object"||o===null)&&(r[s[t]]=o={})}o[s[t]]=n}else typeof a[s[0]]=="object"&&typeof n=="object"?Object.assign(a[s[0]],n):a[s[0]]=n}},L=class{constructor(n,a,s,t){this.state=n;this.get=a;this.put=s;this.patch=t}};return B(Bn);})();
1
+ "use strict";var V=(()=>{var R=Object.defineProperty;var j=Object.getOwnPropertyDescriptor;var H=Object.getOwnPropertyNames;var U=Object.prototype.hasOwnProperty;var G=(e,n)=>{for(var a in n)R(e,a,{get:n[a],enumerable:!0})},K=(e,n,a,s)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of H(n))!U.call(e,t)&&t!==a&&R(e,t,{get:()=>n[t],enumerable:!(s=j(n,t))||s.enumerable});return e};var B=e=>K(R({},"__esModule",{value:!0}),e);var Bn={};G(Bn,{A:()=>tt,ABBR:()=>et,ADDRESS:()=>ot,ANIMATE:()=>so,ANIMATEMOTION:()=>ao,ANIMATETRANSFORM:()=>ro,ANNOTATION:()=>Sn,ANNOTATION_XML:()=>fn,AREA:()=>nt,ARTICLE:()=>st,ASIDE:()=>at,AUDIO:()=>rt,B:()=>ct,BASE:()=>it,BDI:()=>pt,BDO:()=>lt,BLOCKQUOTE:()=>St,BODY:()=>ft,BR:()=>dt,BUTTON:()=>ut,CANVAS:()=>Tt,CAPTION:()=>yt,CIRCLE:()=>co,CITE:()=>gt,CLIPPATH:()=>io,CODE:()=>xt,COL:()=>ht,COLGROUP:()=>mt,DATA:()=>Et,DATALIST:()=>bt,DD:()=>At,DEFS:()=>po,DEL:()=>Pt,DESC:()=>lo,DETAILS:()=>Ct,DFN:()=>Mt,DIALOG:()=>Nt,DIV:()=>Rt,DL:()=>Ot,DT:()=>Dt,DelegateStateContext:()=>L,ELLIPSE:()=>So,EM:()=>vt,EMBED:()=>Lt,FEBLEND:()=>fo,FECOLORMATRIX:()=>uo,FECOMPONENTTRANSFER:()=>To,FECOMPOSITE:()=>yo,FECONVOLVEMATRIX:()=>go,FEDIFFUSELIGHTING:()=>xo,FEDISPLACEMENTMAP:()=>ho,FEDISTANTLIGHT:()=>mo,FEDROPSHADOW:()=>Eo,FEFLOOD:()=>bo,FEFUNCA:()=>Ao,FEFUNCB:()=>Po,FEFUNCG:()=>Co,FEFUNCR:()=>Mo,FEGAUSSIANBLUR:()=>No,FEIMAGE:()=>Ro,FEMERGE:()=>Oo,FEMERGENODE:()=>Do,FEMORPHOLOGY:()=>vo,FEOFFSET:()=>Lo,FEPOINTLIGHT:()=>Io,FESPECULARLIGHTING:()=>Vo,FESPOTLIGHT:()=>Fo,FETILE:()=>ko,FETURBULENCE:()=>jo,FIELDSET:()=>It,FIGCAPTION:()=>Vt,FIGURE:()=>Ft,FILTER:()=>Ho,FOOTER:()=>kt,FOREIGNOBJECT:()=>Uo,FORM:()=>jt,G:()=>Go,H1:()=>Ht,H2:()=>Ut,H3:()=>Gt,H4:()=>Kt,H5:()=>Bt,H6:()=>_t,HEAD:()=>qt,HEADER:()=>Xt,HGROUP:()=>$t,HR:()=>wt,HTML:()=>Yt,I:()=>Wt,IFRAME:()=>Jt,IMAGE:()=>Ko,IMG:()=>Qt,INPUT:()=>zt,INS:()=>Zt,KBD:()=>te,KeyStateContext:()=>v,LABEL:()=>ee,LEGEND:()=>oe,LI:()=>ne,LINE:()=>Bo,LINEARGRADIENT:()=>_o,LINK:()=>se,MACTION:()=>dn,MAIN:()=>ae,MAP:()=>re,MARK:()=>ce,MARKER:()=>qo,MASK:()=>Xo,MATH:()=>un,MENU:()=>ie,MERROR:()=>Tn,META:()=>pe,METADATA:()=>$o,METER:()=>le,MFRAC:()=>yn,MI:()=>gn,MMULTISCRIPTS:()=>xn,MN:()=>hn,MO:()=>mn,MOVER:()=>En,MPADDED:()=>bn,MPATH:()=>wo,MPHANTOM:()=>An,MPRESCRIPTS:()=>Pn,MROOT:()=>Cn,MROW:()=>Mn,MS:()=>Nn,MSPACE:()=>Rn,MSQRT:()=>On,MSTYLE:()=>Dn,MSUB:()=>vn,MSUBSUP:()=>Ln,MSUP:()=>In,MTABLE:()=>Vn,MTD:()=>Fn,MTEXT:()=>kn,MTR:()=>jn,MUNDER:()=>Hn,MUNDEROVER:()=>Un,NAV:()=>Se,NOSCRIPT:()=>fe,OBJECT:()=>de,OL:()=>ue,OPTGROUP:()=>Te,OPTION:()=>ye,OUTPUT:()=>ge,P:()=>xe,PATH:()=>Yo,PATTERN:()=>Wo,PICTURE:()=>he,POLYGON:()=>Jo,POLYLINE:()=>Qo,PRE:()=>me,PROGRESS:()=>Ee,Q:()=>be,RADIALGRADIENT:()=>zo,RECT:()=>Zo,RP:()=>Ae,RT:()=>Pe,RUBY:()=>Ce,S:()=>Me,SAMP:()=>Ne,SCRIPT:()=>Re,SEARCH:()=>Oe,SECTION:()=>De,SELECT:()=>ve,SEMANTICS:()=>Gn,SET:()=>tn,SLOT:()=>Le,SMALL:()=>Ie,SOURCE:()=>Ve,SPAN:()=>Fe,STOP:()=>en,STRONG:()=>ke,STYLE:()=>je,SUB:()=>He,SUMMARY:()=>Ue,SUP:()=>Ge,SVG:()=>on,SWITCH:()=>nn,SYMBOL:()=>sn,TABLE:()=>Ke,TBODY:()=>Be,TD:()=>_e,TEMPLATE:()=>qe,TEXT:()=>an,TEXTAREA:()=>Xe,TEXTPATH:()=>rn,TFOOT:()=>$e,TH:()=>we,THEAD:()=>Ye,TIME:()=>We,TITLE:()=>Je,TR:()=>Qe,TRACK:()=>ze,TSPAN:()=>cn,U:()=>Ze,UL:()=>to,USE:()=>pn,VAR:()=>eo,VIDEO:()=>oo,VIEW:()=>ln,WBR:()=>no,app:()=>q,child:()=>Q,childCount:()=>J,children:()=>P,childrenStart:()=>N,createPatch:()=>Y,createState:()=>w,defuse:()=>X,globals:()=>E,hydrate:()=>M,memo:()=>$,mergeClass:()=>Kn,props:()=>x,tag:()=>W,vode:()=>_});var E={currentViewTransition:void 0,requestAnimationFrame:window.requestAnimationFrame?window.requestAnimationFrame.bind(window):(e=>e()),startViewTransition:document.startViewTransition?document.startViewTransition.bind(document):null};function _(e,n,...a){if(!e)throw new Error("first argument to vode() must be a tag name or a vode");return Array.isArray(e)?e:n?[e,n,...a]:[e,...a]}function q(e,n,a,...s){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 a!="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.qSync=null,t.qAsync=null,t.stats={lastSyncRenderTime:0,lastAsyncRenderTime:0,syncRenderCount:0,asyncRenderCount:0,liveEffectCount:0,patchCount:0,syncRenderPatchCount:0,asyncRenderPatchCount:0},Object.defineProperty(n,"patch",{enumerable:!1,configurable:!0,writable:!1,value:async(c,u)=>{if(!(!c||typeof c!="function"&&typeof c!="object"))if(t.stats.patchCount++,c?.next){let S=c;t.stats.liveEffectCount++;try{let m=await S.next();for(;m.done===!1;){t.stats.liveEffectCount++;try{t.patch(m.value,u),m=await S.next()}finally{t.stats.liveEffectCount--}}t.patch(m.value,u)}finally{t.stats.liveEffectCount--}}else if(c.then){t.stats.liveEffectCount++;try{let S=await c;t.patch(S,u)}finally{t.stats.liveEffectCount--}}else if(Array.isArray(c))if(c.length>0)for(let S of c)t.patch(S,!document.hidden&&!!t.asyncRenderer);else{t.qSync=h(t.qSync||{},t.qAsync,!1),t.qAsync=null;try{E.currentViewTransition?.skipTransition()}catch{}t.stats.syncRenderPatchCount++,t.renderSync()}else typeof c=="function"?t.patch(c(t.state),u):u?(t.stats.asyncRenderPatchCount++,t.qAsync=h(t.qAsync||{},c,!1),await t.renderAsync()):(t.stats.syncRenderPatchCount++,t.qSync=h(t.qSync||{},c,!1),t.renderSync())}});function o(c){let u=Date.now(),S=a(t.state);t.vode=b(t.state,t.patch,e.parentElement,0,t.vode,S),e.tagName.toUpperCase()!==S[0].toUpperCase()&&(e=t.vode.node,e._vode=t),c||(t.stats.lastSyncRenderTime=Date.now()-u,t.stats.syncRenderCount++,t.isRendering=!1,t.qSync&&t.renderSync())}let r=o.bind(null,!1),i=o.bind(null,!0);Object.defineProperty(t,"renderSync",{enumerable:!1,configurable:!0,writable:!1,value:()=>{t.isRendering||!t.qSync||(t.isRendering=!0,t.state=h(t.state,t.qSync,!0),t.qSync=null,t.syncRenderer(r))}}),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=Date.now();try{t.state=h(t.state,t.qAsync,!0),t.qAsync=null,E.currentViewTransition=t.asyncRenderer(i),await E.currentViewTransition?.updateCallbackDone}finally{t.stats.lastAsyncRenderTime=Date.now()-c,t.stats.asyncRenderCount++,t.isAnimating=!1}t.qAsync&&t.renderAsync()}}),t.patch=n.patch,t.state=n;let p=e;p._vode=t,t.vode=b(n,t.patch,e.parentElement,Array.from(e.parentElement.children).indexOf(e),M(e,!0),a(n));for(let c of s)t.patch(c);return t.patch}function X(e){if(e?._vode){let a=function(t){if(!t?.node)return;let o=x(t);if(o){for(let i in o)i[0]==="o"&&i[1]==="n"&&(t.node[i]=null);t.node.catch=null}let r=P(t);if(r)for(let i of r)a(i)};var n=a;let s=e._vode;delete e._vode,Object.defineProperty(s.state,"patch",{value:void 0}),Object.defineProperty(s,"renderSync",{value:()=>{}}),Object.defineProperty(s,"renderAsync",{value:()=>{}}),a(s.vode)}}function M(e,n){if(e?.nodeType===Node.TEXT_NODE)return e.nodeValue?.trim()!==""?n?e:e.nodeValue:void 0;if(e.nodeType===Node.COMMENT_NODE)return;if(e.nodeType===Node.ELEMENT_NODE){let s=[e.tagName.toLowerCase()];if(n&&(s.node=e),e?.hasAttributes()){let t={},o=e.attributes;for(let r of o)t[r.name]=r.value;s.push(t)}if(e.hasChildNodes()){let t=[];for(let o of e.childNodes){let r=o&&M(o,n);r?s.push(r):o&&n&&t.push(o)}for(let o of t)o.remove()}return s}else return}function $(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 w(e){if(!e||typeof e!="object")throw new Error("createState() must be called with a state object");return e}function Y(e){return e}function W(e){return e?Array.isArray(e)?e[0]:typeof e=="string"||e.nodeType===Node.TEXT_NODE?"#text":void 0:void 0}function x(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 P(e){let n=N(e);return n>0?e.slice(n):null}function J(e){let n=N(e);return n<0?0:e.length-n}function Q(e,n){let a=N(e);if(a>0)return e[n+a]}function N(e){return x(e)?e.length>2?2:-1:Array.isArray(e)&&e.length>1?1:-1}function h(e,n,a){if(!n)return e;for(let s in n){let t=n[s];if(t&&typeof t=="object"){let o=e[s];o?Array.isArray(t)?e[s]=[...t]:t instanceof Date&&o!==t?e[s]=new Date(t):Array.isArray(o)?e[s]=h({},t,a):typeof o=="object"?h(e[s],t,a):e[s]=h({},t,a):Array.isArray(t)?e[s]=[...t]:t instanceof Date?e[s]=new Date(t):e[s]=h({},t,a)}else t===void 0&&a?delete e[s]:e[s]=t}return e}function b(e,n,a,s,t,o,r){try{o=O(e,o,t);let i=!o||typeof o=="number"||typeof o=="boolean";if(o===t||!t&&i)return t;let p=t?.nodeType===Node.TEXT_NODE,c=p?t:t?.node;if(i){c?.onUnmount&&n(c.onUnmount(c)),c?.remove();return}let u=!i&&Z(o),S=!i&&z(o),m=!!o&&typeof o!="string"&&!!(o?.node||o?.nodeType===Node.TEXT_NODE);if(!u&&!S&&!m&&!t)throw new Error("Invalid vode: "+typeof o+" "+JSON.stringify(o));if(m&&u?o=o.wholeText:m&&S&&(o=[...o]),p&&u)return c.nodeValue!==o&&(c.nodeValue=o),t;if(u&&(!c||!p)){let f=document.createTextNode(o);return c?(c.onUnmount&&n(c.onUnmount(c)),c.replaceWith(f)):a.childNodes[s]?a.insertBefore(f,a.childNodes[s]):a.appendChild(f),f}if(S&&(!c||p||t[0]!==o[0])){let f=o;1 in f&&(f[1]=O(e,f[1],void 0));let A=x(o);r=A?.xmlns||r;let d=r?document.createElementNS(r,o[0]):document.createElement(o[0]);o.node=d,D(e,n,d,void 0,A),c?(c.onUnmount&&n(c.onUnmount(c)),c.replaceWith(d)):a.childNodes[s]?a.insertBefore(d,a.childNodes[s]):a.appendChild(d);let g=P(o);if(g)for(let T=0;T<g.length;T++){let l=g[T],y=b(e,n,d,T,void 0,l,r);o[A?T+2:T+1]=y}return d.onMount&&n(d.onMount(d)),o}if(!p&&S&&t[0]===o[0]){o.node=c;let f=o,A=t,d=!1;if(f[1]?.__memo){let l=f[1];if(f[1]=O(e,f[1],A[1]),l!==f[1]){let y=x(o);D(e,n,c,x(t),y),d=!!y}}else{let l=x(o);D(e,n,c,x(t),l),d=!!l,d&&"catch"in l&&(o.node.catch=null,o.node.removeAttribute("catch"))}let g=P(o),T=P(t);if(g)for(let l=0;l<g.length;l++){let y=g[l],k=T&&T[l],I=b(e,n,c,l,k,y,r);I&&(o[d?l+2:l+1]=I)}if(T){let l=g?g.length:0;for(let y=T.length-1;y>=l;y--)b(e,n,c,y,T[y],void 0,r)}return o}}catch(i){let p=x(o)?.catch;if(p){let c=typeof p=="function"?p(e,i):p;return b(e,n,a,s,M(o?.node||t?.node,!0),c,r)}else throw i}}function z(e){return Array.isArray(e)&&e.length>0&&typeof e[0]=="string"}function Z(e){return typeof e=="string"||e?.nodeType===Node.TEXT_NODE}function O(e,n,a){if(typeof n!="function")return n;let s=n?.__memo,t=a?.__memo;if(Array.isArray(s)&&Array.isArray(t)&&s.length===t.length){let r=!0;for(let i=0;i<s.length;i++)if(s[i]!==t[i]){r=!1;break}if(r)return a}let o=V(n,e);return typeof o=="object"&&(o.__memo=n?.__memo),o}function V(e,n){return typeof e=="function"?V(e(n),n):e}function D(e,n,a,s,t){if(!(!t&&!s)){if(s)for(let o in s){let r=s[o],i=t?.[o];r!==i&&(t?t[o]=C(e,n,a,o,r,i):C(e,n,a,o,r,void 0))}if(t&&s){for(let o in t)if(!(o in s)){let r=t[o];t[o]=C(e,n,a,o,void 0,r)}}else if(t)for(let o in t){let r=t[o];t[o]=C(e,n,a,o,void 0,r)}}}function C(e,n,a,s,t,o){if(s==="style")if(!o)a.style.cssText="";else if(typeof o=="string")t!==o&&(a.style.cssText=o);else if(t&&typeof t=="object"){for(let r in t)o[r]||(a.style[r]=null);for(let r in o){let i=t[r],p=o[r];i!==p&&(a.style[r]=p)}}else for(let r in o)a.style[r]=o[r];else if(s==="class")o?a.setAttribute("class",F(o)):a.removeAttribute("class");else if(s[0]==="o"&&s[1]==="n")if(o){let r=null;if(typeof o=="function"){let i=o;r=p=>n(i(e,p))}else typeof o=="object"&&(r=()=>n(o));a[s]=r}else a[s]=null;else a[s]=o,o==null||o===!1?a.removeAttribute(s):a.setAttribute(s,o);return o}function F(e){return typeof e=="string"?e:Array.isArray(e)?e.map(F).join(" "):typeof e=="object"?Object.keys(e).filter(n=>e[n]).join(" "):""}var tt="a",et="abbr",ot="address",nt="area",st="article",at="aside",rt="audio",ct="b",it="base",pt="bdi",lt="bdo",St="blockquote",ft="body",dt="br",ut="button",Tt="canvas",yt="caption",gt="cite",xt="code",ht="col",mt="colgroup",Et="data",bt="datalist",At="dd",Pt="del",Ct="details",Mt="dfn",Nt="dialog",Rt="div",Ot="dl",Dt="dt",vt="em",Lt="embed",It="fieldset",Vt="figcaption",Ft="figure",kt="footer",jt="form",Ht="h1",Ut="h2",Gt="h3",Kt="h4",Bt="h5",_t="h6",qt="head",Xt="header",$t="hgroup",wt="hr",Yt="html",Wt="i",Jt="iframe",Qt="img",zt="input",Zt="ins",te="kbd",ee="label",oe="legend",ne="li",se="link",ae="main",re="map",ce="mark",ie="menu",pe="meta",le="meter",Se="nav",fe="noscript",de="object",ue="ol",Te="optgroup",ye="option",ge="output",xe="p",he="picture",me="pre",Ee="progress",be="q",Ae="rp",Pe="rt",Ce="ruby",Me="s",Ne="samp",Re="script",Oe="search",De="section",ve="select",Le="slot",Ie="small",Ve="source",Fe="span",ke="strong",je="style",He="sub",Ue="summary",Ge="sup",Ke="table",Be="tbody",_e="td",qe="template",Xe="textarea",$e="tfoot",we="th",Ye="thead",We="time",Je="title",Qe="tr",ze="track",Ze="u",to="ul",eo="var",oo="video",no="wbr",so="animate",ao="animateMotion",ro="animateTransform",co="circle",io="clipPath",po="defs",lo="desc",So="ellipse",fo="feBlend",uo="feColorMatrix",To="feComponentTransfer",yo="feComposite",go="feConvolveMatrix",xo="feDiffuseLighting",ho="feDisplacementMap",mo="feDistantLight",Eo="feDropShadow",bo="feFlood",Ao="feFuncA",Po="feFuncB",Co="feFuncG",Mo="feFuncR",No="feGaussianBlur",Ro="feImage",Oo="feMerge",Do="feMergeNode",vo="feMorphology",Lo="feOffset",Io="fePointLight",Vo="feSpecularLighting",Fo="feSpotLight",ko="feTile",jo="feTurbulence",Ho="filter",Uo="foreignObject",Go="g",Ko="image",Bo="line",_o="linearGradient",qo="marker",Xo="mask",$o="metadata",wo="mpath",Yo="path",Wo="pattern",Jo="polygon",Qo="polyline",zo="radialGradient",Zo="rect",tn="set",en="stop",on="svg",nn="switch",sn="symbol",an="text",rn="textPath",cn="tspan",pn="use",ln="view",Sn="annotation",fn="annotation-xml",dn="maction",un="math",Tn="merror",yn="mfrac",gn="mi",xn="mmultiscripts",hn="mn",mn="mo",En="mover",bn="mpadded",An="mphantom",Pn="mprescripts",Cn="mroot",Mn="mrow",Nn="ms",Rn="mspace",On="msqrt",Dn="mstyle",vn="msub",Ln="msubsup",In="msup",Vn="mtable",Fn="mtd",kn="mtext",jn="mtr",Hn="munder",Un="munderover",Gn="semantics";function Kn(...e){if(!e||e.length===0)return null;if(e.length===1)return e[0];let n=e[0];for(let a=1;a<e.length;a++){let s=n,t=e[a];if(!s)n=t;else if(t)if(typeof s=="string"&&typeof t=="string"){let o=s.split(" "),r=t.split(" "),i=new Set([...o,...r]);n=Array.from(i).join(" ").trim()}else if(typeof s=="string"&&Array.isArray(t)){let o=new Set([...t,...s.split(" ")]);n=Array.from(o).join(" ").trim()}else if(Array.isArray(s)&&typeof t=="string"){let o=new Set([...s,...t.split(" ")]);n=Array.from(o).join(" ").trim()}else if(Array.isArray(s)&&Array.isArray(t)){let o=new Set([...s,...t]);n=Array.from(o).join(" ").trim()}else if(typeof s=="string"&&typeof t=="object")n={[s]:!0,...t};else if(typeof s=="object"&&typeof t=="string")n={...s,[t]:!0};else if(typeof s=="object"&&typeof t=="object")n={...s,...t};else if(typeof s=="object"&&Array.isArray(t)){let o={...s};for(let r of t)o[r]=!0;n=o}else if(Array.isArray(s)&&typeof t=="object"){let o={};for(let r of s)o[r]=!0;for(let r of Object.keys(t))o[r]=t[r];n=o}else throw new Error(`cannot merge classes of ${s} (${typeof s}) and ${t} (${typeof t})`);else continue}return n}var v=class{constructor(n,a){this.state=n;this.path=a;this.keys=a.split(".")}keys;get(){let n=this.keys,a=this.state?this.state[n[0]]:void 0;for(let s=1;s<n.length&&a;s++)a=a[n[s]];return a}put(n){this.putDeep(n,this.state)}patch(n){if(Array.isArray(n)){let a=[];for(let s of n)a.push(this.createPatch(s));this.state.patch(a)}else this.state.patch(this.createPatch(n))}createPatch(n){let a={};return this.putDeep(n,a),a}putDeep(n,a){let s=this.keys;if(s.length>1){let t=0,o=a[s[t]];for((typeof o!="object"||o===null)&&(a[s[t]]=o={}),t=1;t<s.length-1;t++){let r=o;o=o[s[t]],(typeof o!="object"||o===null)&&(r[s[t]]=o={})}o[s[t]]=n}else typeof a[s[0]]=="object"&&typeof n=="object"?Object.assign(a[s[0]],n):a[s[0]]=n}},L=class{constructor(n,a,s,t){this.state=n;this.get=a;this.put=s;this.patch=t}};return B(Bn);})();
package/dist/vode.min.mjs CHANGED
@@ -1 +1 @@
1
- var D={currentViewTransition:void 0,requestAnimationFrame:window.requestAnimationFrame?window.requestAnimationFrame.bind(window):(z)=>z(),startViewTransition:document.startViewTransition?document.startViewTransition.bind(document):null};function u(z,G,...Q){if(!z)throw Error("first argument to vode() must be a tag name or a vode");if(Array.isArray(z))return z;else if(G)return[z,G,...Q];else return[z,...Q]}function V(z,G,Q,...J){if(!z?.parentElement)throw Error("first argument to app() must be a valid HTMLElement inside the <html></html> document");if(!G||typeof G!=="object")throw Error("second argument to app() must be a state object");if(typeof Q!=="function")throw Error("third argument to app() must be a function that returns a vode");let q={};q.syncRenderer=D.requestAnimationFrame,q.asyncRenderer=D.startViewTransition,q.qSync=null,q.qAsync=null,q.stats={lastSyncRenderTime:0,lastAsyncRenderTime:0,syncRenderCount:0,asyncRenderCount:0,liveEffectCount:0,patchCount:0,syncRenderPatchCount:0,asyncRenderPatchCount:0},Object.defineProperty(G,"patch",{enumerable:!1,configurable:!0,writable:!1,value:async(X,H)=>{if(!X||typeof X!=="function"&&typeof X!=="object")return;if(q.stats.patchCount++,X?.next){let L=X;q.stats.liveEffectCount++;try{let T=await L.next();while(T.done===!1){q.stats.liveEffectCount++;try{q.patch(T.value,H),T=await L.next()}finally{q.stats.liveEffectCount--}}q.patch(T.value,H)}finally{q.stats.liveEffectCount--}}else if(X.then){q.stats.liveEffectCount++;try{let L=await X;q.patch(L,H)}finally{q.stats.liveEffectCount--}}else if(Array.isArray(X))if(X.length>0)for(let L of X)q.patch(L,!document.hidden&&!!q.asyncRenderer);else{q.qSync=M(q.qSync||{},q.qAsync,!1),q.qAsync=null;try{D.currentViewTransition?.skipTransition()}catch{}q.stats.syncRenderPatchCount++,q.renderSync()}else if(typeof X==="function")q.patch(X(q.state),H);else if(H)q.stats.asyncRenderPatchCount++,q.qAsync=M(q.qAsync||{},X,!1),await q.renderAsync();else q.stats.syncRenderPatchCount++,q.qSync=M(q.qSync||{},X,!1),q.renderSync()}});function B(X){let H=Date.now(),L=Q(q.state);if(q.vode=K(q.state,q.patch,z.parentElement,0,q.vode,L),z.tagName.toUpperCase()!==L[0].toUpperCase())z=q.vode.node,z._vode=q;if(!X){if(q.stats.lastSyncRenderTime=Date.now()-H,q.stats.syncRenderCount++,q.isRendering=!1,q.qSync)q.renderSync()}}let U=B.bind(null,!1),Z=B.bind(null,!0);Object.defineProperty(q,"renderSync",{enumerable:!1,configurable:!0,writable:!1,value:()=>{if(q.isRendering||!q.qSync)return;q.isRendering=!0,q.state=M(q.state,q.qSync,!0),q.qSync=null,q.syncRenderer(U)}}),Object.defineProperty(q,"renderAsync",{enumerable:!1,configurable:!0,writable:!1,value:async()=>{if(q.isAnimating||!q.qAsync)return;if(await D.currentViewTransition?.updateCallbackDone,q.isAnimating||!q.qAsync||document.hidden)return;q.isAnimating=!0;let X=Date.now();try{q.state=M(q.state,q.qAsync,!0),q.qAsync=null,D.currentViewTransition=q.asyncRenderer(Z),await D.currentViewTransition?.updateCallbackDone}finally{q.stats.lastAsyncRenderTime=Date.now()-X,q.stats.asyncRenderCount++,q.isAnimating=!1}if(q.qAsync)q.renderAsync()}}),q.patch=G.patch,q.state=G;let $=z;$._vode=q,q.vode=K(G,q.patch,z.parentElement,Array.from(z.parentElement.children).indexOf(z),b(z,!0),Q(G));for(let X of J)q.patch(X);return q.patch}function v(z){if(z?._vode){let G=function(J){if(!J?.node)return;let q=R(J);if(q){for(let U in q)if(U[0]==="o"&&U[1]==="n")J.node[U]=null}let B=f(J);if(B)for(let U of B)G(U)},Q=z._vode;delete z._vode,Object.defineProperty(Q.state,"patch",{value:void 0}),Object.defineProperty(Q,"renderSync",{value:()=>{}}),Object.defineProperty(Q,"renderAsync",{value:()=>{}}),G(Q.vode)}}function b(z,G){if(z?.nodeType===Node.TEXT_NODE){if(z.nodeValue?.trim()!=="")return G?z:z.nodeValue;return}else if(z.nodeType===Node.COMMENT_NODE)return;else if(z.nodeType===Node.ELEMENT_NODE){let J=[z.tagName.toLowerCase()];if(G)J.node=z;if(z?.hasAttributes()){let q={},B=z.attributes;for(let U of B)q[U.name]=U.value;J.push(q)}if(z.hasChildNodes()){let q=[];for(let B of z.childNodes){let U=B&&b(B,G);if(U)J.push(U);else if(B&&G)q.push(B)}for(let B of q)B.remove()}return J}else return}function w(z,G){if(!z||!Array.isArray(z))throw Error("first argument to memo() must be an array of values to compare");if(typeof G!=="function")throw Error("second argument to memo() must be a function that returns a vode or props object");return G.__memo=z,G}function i(z){if(!z||typeof z!=="object")throw Error("createState() must be called with a state object");return z}function p(z){return z}function c(z){return z?Array.isArray(z)?z[0]:typeof z==="string"||z.nodeType===Node.TEXT_NODE?"#text":void 0:void 0}function R(z){if(Array.isArray(z)&&z.length>1&&z[1]&&!Array.isArray(z[1])){if(typeof z[1]==="object"&&z[1].nodeType!==Node.TEXT_NODE)return z[1]}return}function f(z){let G=N(z);if(G>0)return z.slice(G);return null}function r(z){let G=N(z);if(G<0)return 0;return z.length-G}function l(z,G){let Q=N(z);if(Q>0)return z[G+Q];else return}function N(z){return R(z)?z.length>2?2:-1:Array.isArray(z)&&z.length>1?1:-1}function M(z,G,Q){if(!G)return z;for(let J in G){let q=G[J];if(q&&typeof q==="object"){let B=z[J];if(B)if(Array.isArray(q))z[J]=[...q];else if(q instanceof Date&&B!==q)z[J]=new Date(q);else if(Array.isArray(B))z[J]=M({},q,Q);else if(typeof B==="object")M(z[J],q,Q);else z[J]=M({},q,Q);else if(Array.isArray(q))z[J]=[...q];else if(q instanceof Date)z[J]=new Date(q);else z[J]=M({},q,Q)}else if(q===void 0&&Q)delete z[J];else z[J]=q}return z}function K(z,G,Q,J,q,B,U){try{B=C(z,B,q);let Z=!B||typeof B==="number"||typeof B==="boolean";if(B===q||!q&&Z)return q;let $=q?.nodeType===Node.TEXT_NODE,X=$?q:q?.node;if(Z){X?.onUnmount&&G(X.onUnmount(X)),X?.remove();return}let H=!Z&&y(B),L=!Z&&g(B),T=!!B&&typeof B!=="string"&&!!(B?.node||B?.nodeType===Node.TEXT_NODE);if(!H&&!L&&!T&&!q)throw Error("Invalid vode: "+typeof B+" "+JSON.stringify(B));else if(T&&H)B=B.wholeText;else if(T&&L)B=[...B];if($&&H){if(X.nodeValue!==B)X.nodeValue=B;return q}if(H&&(!X||!$)){let W=document.createTextNode(B);if(X)X.onUnmount&&G(X.onUnmount(X)),X.replaceWith(W);else if(Q.childNodes[J])Q.insertBefore(W,Q.childNodes[J]);else Q.appendChild(W);return W}if(L&&(!X||$||q[0]!==B[0])){let W=B;if(1 in W)W[1]=C(z,W[1],void 0);let A=R(B);U=A?.xmlns||U;let j=U?document.createElementNS(U,B[0]):document.createElement(B[0]);if(B.node=j,S(z,G,j,void 0,A),X)X.onUnmount&&G(X.onUnmount(X)),X.replaceWith(j);else if(Q.childNodes[J])Q.insertBefore(j,Q.childNodes[J]);else Q.appendChild(j);let F=f(B);if(F)for(let Y=0;Y<F.length;Y++){let E=F[Y],O=K(z,G,j,Y,void 0,E,U);B[A?Y+2:Y+1]=O}return j.onMount&&G(j.onMount(j)),B}if(!$&&L&&q[0]===B[0]){B.node=X;let W=B,A=q,j=!1;if(W[1]?.__memo){let E=W[1];if(W[1]=C(z,W[1],A[1]),E!==W[1]){let O=R(B);S(z,G,X,R(q),O),j=!!O}}else{let E=R(B);S(z,G,X,R(q),E),j=!!E}let F=f(B),Y=f(q);if(F)for(let E=0;E<F.length;E++){let O=F[E],_=Y&&Y[E],x=K(z,G,X,E,_,O,U);if(x)B[j?E+2:E+1]=x}if(Y){let E=F?F.length:0;for(let O=Y.length-1;O>=E;O--)K(z,G,X,O,Y[O],void 0,U)}return B}}catch(Z){let $=R(B)?.catch;if($){let X=typeof $==="function"?$(z,Z):$;return K(z,G,Q,J,b(B?.node||q?.node,!0),X,U)}else throw Z}return}function g(z){return Array.isArray(z)&&z.length>0&&typeof z[0]==="string"}function y(z){return typeof z==="string"||z?.nodeType===Node.TEXT_NODE}function C(z,G,Q){if(typeof G!=="function")return G;let J=G?.__memo,q=Q?.__memo;if(Array.isArray(J)&&Array.isArray(q)&&J.length===q.length){let U=!0;for(let Z=0;Z<J.length;Z++)if(J[Z]!==q[Z]){U=!1;break}if(U)return Q}let B=k(G,z);if(typeof B==="object")B.__memo=G?.__memo;return B}function k(z,G){if(typeof z==="function")return k(z(G),G);else return z}function S(z,G,Q,J,q){if(!q&&!J)return;if(J)for(let B in J){let U=J[B],Z=q?.[B];if(U!==Z)if(q)q[B]=I(z,G,Q,B,U,Z);else I(z,G,Q,B,U,void 0)}if(q&&J){for(let B in q)if(!(B in J)){let U=q[B];q[B]=I(z,G,Q,B,void 0,U)}}else if(q)for(let B in q){let U=q[B];q[B]=I(z,G,Q,B,void 0,U)}}function I(z,G,Q,J,q,B){if(J==="style")if(!B)Q.style.cssText="";else if(typeof B==="string"){if(q!==B)Q.style.cssText=B}else if(q&&typeof q==="object"){for(let U in q)if(!B[U])Q.style[U]=null;for(let U in B){let Z=q[U],$=B[U];if(Z!==$)Q.style[U]=$}}else for(let U in B)Q.style[U]=B[U];else if(J==="class")if(B)Q.setAttribute("class",P(B));else Q.removeAttribute("class");else if(J[0]==="o"&&J[1]==="n")if(B){let U=null;if(typeof B==="function"){let Z=B;U=($)=>G(Z(z,$))}else if(typeof B==="object")U=()=>G(B);Q[J]=U}else Q[J]=null;else if(Q[J]=B,B===void 0||B===null||B===!1)Q.removeAttribute(J);else Q.setAttribute(J,B);return B}function P(z){if(typeof z==="string")return z;else if(Array.isArray(z))return z.map(P).join(" ");else if(typeof z==="object")return Object.keys(z).filter((G)=>z[G]).join(" ");else return""}var n="a",d="abbr",t="address",a="area",o="article",e="aside",qq="audio",zq="b",Bq="base",Gq="bdi",Jq="bdo",Qq="blockquote",Uq="body",Xq="br",Zq="button",$q="canvas",Eq="caption",Lq="cite",Wq="code",jq="col",Hq="colgroup",Yq="data",Oq="datalist",Fq="dd",Mq="del",Tq="details",Rq="dfn",Dq="dialog",Kq="div",Aq="dl",Iq="dt",fq="em",Cq="embed",Sq="fieldset",bq="figcaption",Nq="figure",xq="footer",kq="form",Pq="h1",_q="h2",gq="h3",yq="h4",mq="h5",hq="h6",uq="head",Vq="header",vq="hgroup",wq="hr",iq="html",pq="i",cq="iframe",rq="img",lq="input",sq="ins",nq="kbd",dq="label",tq="legend",aq="li",oq="link",eq="main",qz="map",zz="mark",Bz="menu",Gz="meta",Jz="meter",Qz="nav",Uz="noscript",Xz="object",Zz="ol",$z="optgroup",Ez="option",Lz="output",Wz="p",jz="picture",Hz="pre",Yz="progress",Oz="q",Fz="rp",Mz="rt",Tz="ruby",Rz="s",Dz="samp",Kz="script",Az="search",Iz="section",fz="select",Cz="slot",Sz="small",bz="source",Nz="span",xz="strong",kz="style",Pz="sub",_z="summary",gz="sup",yz="table",mz="tbody",hz="td",uz="template",Vz="textarea",vz="tfoot",wz="th",iz="thead",pz="time",cz="title",rz="tr",lz="track",sz="u",nz="ul",dz="var",tz="video",az="wbr",oz="animate",ez="animateMotion",qB="animateTransform",zB="circle",BB="clipPath",GB="defs",JB="desc",QB="ellipse",UB="feBlend",XB="feColorMatrix",ZB="feComponentTransfer",$B="feComposite",EB="feConvolveMatrix",LB="feDiffuseLighting",WB="feDisplacementMap",jB="feDistantLight",HB="feDropShadow",YB="feFlood",OB="feFuncA",FB="feFuncB",MB="feFuncG",TB="feFuncR",RB="feGaussianBlur",DB="feImage",KB="feMerge",AB="feMergeNode",IB="feMorphology",fB="feOffset",CB="fePointLight",SB="feSpecularLighting",bB="feSpotLight",NB="feTile",xB="feTurbulence",kB="filter",PB="foreignObject",_B="g",gB="image",yB="line",mB="linearGradient",hB="marker",uB="mask",VB="metadata",vB="mpath",wB="path",iB="pattern",pB="polygon",cB="polyline",rB="radialGradient",lB="rect",sB="set",nB="stop",dB="svg",tB="switch",aB="symbol",oB="text",eB="textPath",qG="tspan",zG="use",BG="view",GG="annotation",JG="annotation-xml",QG="maction",UG="math",XG="merror",ZG="mfrac",$G="mi",EG="mmultiscripts",LG="mn",WG="mo",jG="mover",HG="mpadded",YG="mphantom",OG="mprescripts",FG="mroot",MG="mrow",TG="ms",RG="mspace",DG="msqrt",KG="mstyle",AG="msub",IG="msubsup",fG="msup",CG="mtable",SG="mtd",bG="mtext",NG="mtr",xG="munder",kG="munderover",PG="semantics";function gG(...z){if(!z||z.length===0)return null;if(z.length===1)return z[0];let G=z[0];for(let Q=1;Q<z.length;Q++){let J=G,q=z[Q];if(!J)G=q;else if(!q)continue;else if(typeof J==="string"&&typeof q==="string"){let B=J.split(" "),U=q.split(" "),Z=new Set([...B,...U]);G=Array.from(Z).join(" ").trim()}else if(typeof J==="string"&&Array.isArray(q)){let B=new Set([...q,...J.split(" ")]);G=Array.from(B).join(" ").trim()}else if(Array.isArray(J)&&typeof q==="string"){let B=new Set([...J,...q.split(" ")]);G=Array.from(B).join(" ").trim()}else if(Array.isArray(J)&&Array.isArray(q)){let B=new Set([...J,...q]);G=Array.from(B).join(" ").trim()}else if(typeof J==="string"&&typeof q==="object")G={[J]:!0,...q};else if(typeof J==="object"&&typeof q==="string")G={...J,[q]:!0};else if(typeof J==="object"&&typeof q==="object")G={...J,...q};else if(typeof J==="object"&&Array.isArray(q)){let B={...J};for(let U of q)B[U]=!0;G=B}else if(Array.isArray(J)&&typeof q==="object"){let B={};for(let U of J)B[U]=!0;for(let U of Object.keys(q))B[U]=q[U];G=B}else throw Error(`cannot merge classes of ${J} (${typeof J}) and ${q} (${typeof q})`)}return G}class m{state;path;keys;constructor(z,G){this.state=z;this.path=G;this.keys=G.split(".")}get(){let z=this.keys,G=this.state?this.state[z[0]]:void 0;for(let Q=1;Q<z.length&&!!G;Q++)G=G[z[Q]];return G}put(z){this.putDeep(z,this.state)}patch(z){if(Array.isArray(z)){let G=[];for(let Q of z)G.push(this.createPatch(Q));this.state.patch(G)}else this.state.patch(this.createPatch(z))}createPatch(z){let G={};return this.putDeep(z,G),G}putDeep(z,G){let Q=this.keys;if(Q.length>1){let J=0,q=G[Q[J]];if(typeof q!=="object"||q===null)G[Q[J]]=q={};for(J=1;J<Q.length-1;J++){let B=q;if(q=q[Q[J]],typeof q!=="object"||q===null)B[Q[J]]=q={}}q[Q[J]]=z}else if(typeof G[Q[0]]==="object"&&typeof z==="object")Object.assign(G[Q[0]],z);else G[Q[0]]=z}}class h{state;get;put;patch;constructor(z,G,Q,J){this.state=z;this.get=G;this.put=Q;this.patch=J}}export{u as vode,c as tag,R as props,gG as mergeClass,w as memo,b as hydrate,D as globals,v as defuse,i as createState,p as createPatch,N as childrenStart,f as children,r as childCount,l as child,V as app,az as WBR,BG as VIEW,tz as VIDEO,dz as VAR,zG as USE,nz as UL,sz as U,qG as TSPAN,lz as TRACK,rz as TR,cz as TITLE,pz as TIME,iz as THEAD,wz as TH,vz as TFOOT,eB as TEXTPATH,Vz as TEXTAREA,oB as TEXT,uz as TEMPLATE,hz as TD,mz as TBODY,yz as TABLE,aB as SYMBOL,tB as SWITCH,dB as SVG,gz as SUP,_z as SUMMARY,Pz as SUB,kz as STYLE,xz as STRONG,nB as STOP,Nz as SPAN,bz as SOURCE,Sz as SMALL,Cz as SLOT,sB as SET,PG as SEMANTICS,fz as SELECT,Iz as SECTION,Az as SEARCH,Kz as SCRIPT,Dz as SAMP,Rz as S,Tz as RUBY,Mz as RT,Fz as RP,lB as RECT,rB as RADIALGRADIENT,Oz as Q,Yz as PROGRESS,Hz as PRE,cB as POLYLINE,pB as POLYGON,jz as PICTURE,iB as PATTERN,wB as PATH,Wz as P,Lz as OUTPUT,Ez as OPTION,$z as OPTGROUP,Zz as OL,Xz as OBJECT,Uz as NOSCRIPT,Qz as NAV,kG as MUNDEROVER,xG as MUNDER,NG as MTR,bG as MTEXT,SG as MTD,CG as MTABLE,fG as MSUP,IG as MSUBSUP,AG as MSUB,KG as MSTYLE,DG as MSQRT,RG as MSPACE,TG as MS,MG as MROW,FG as MROOT,OG as MPRESCRIPTS,YG as MPHANTOM,vB as MPATH,HG as MPADDED,jG as MOVER,WG as MO,LG as MN,EG as MMULTISCRIPTS,$G as MI,ZG as MFRAC,Jz as METER,VB as METADATA,Gz as META,XG as MERROR,Bz as MENU,UG as MATH,uB as MASK,hB as MARKER,zz as MARK,qz as MAP,eq as MAIN,QG as MACTION,oq as LINK,mB as LINEARGRADIENT,yB as LINE,aq as LI,tq as LEGEND,dq as LABEL,m as KeyStateContext,nq as KBD,sq as INS,lq as INPUT,rq as IMG,gB as IMAGE,cq as IFRAME,pq as I,iq as HTML,wq as HR,vq as HGROUP,Vq as HEADER,uq as HEAD,hq as H6,mq as H5,yq as H4,gq as H3,_q as H2,Pq as H1,_B as G,kq as FORM,PB as FOREIGNOBJECT,xq as FOOTER,kB as FILTER,Nq as FIGURE,bq as FIGCAPTION,Sq as FIELDSET,xB as FETURBULENCE,NB as FETILE,bB as FESPOTLIGHT,SB as FESPECULARLIGHTING,CB as FEPOINTLIGHT,fB as FEOFFSET,IB as FEMORPHOLOGY,AB as FEMERGENODE,KB as FEMERGE,DB as FEIMAGE,RB as FEGAUSSIANBLUR,TB as FEFUNCR,MB as FEFUNCG,FB as FEFUNCB,OB as FEFUNCA,YB as FEFLOOD,HB as FEDROPSHADOW,jB as FEDISTANTLIGHT,WB as FEDISPLACEMENTMAP,LB as FEDIFFUSELIGHTING,EB as FECONVOLVEMATRIX,$B as FECOMPOSITE,ZB as FECOMPONENTTRANSFER,XB as FECOLORMATRIX,UB as FEBLEND,Cq as EMBED,fq as EM,QB as ELLIPSE,h as DelegateStateContext,Iq as DT,Aq as DL,Kq as DIV,Dq as DIALOG,Rq as DFN,Tq as DETAILS,JB as DESC,Mq as DEL,GB as DEFS,Fq as DD,Oq as DATALIST,Yq as DATA,Hq as COLGROUP,jq as COL,Wq as CODE,BB as CLIPPATH,Lq as CITE,zB as CIRCLE,Eq as CAPTION,$q as CANVAS,Zq as BUTTON,Xq as BR,Uq as BODY,Qq as BLOCKQUOTE,Jq as BDO,Gq as BDI,Bq as BASE,zq as B,qq as AUDIO,e as ASIDE,o as ARTICLE,a as AREA,JG as ANNOTATION_XML,GG as ANNOTATION,qB as ANIMATETRANSFORM,ez as ANIMATEMOTION,oz as ANIMATE,t as ADDRESS,d as ABBR,n as A};
1
+ var D={currentViewTransition:void 0,requestAnimationFrame:window.requestAnimationFrame?window.requestAnimationFrame.bind(window):(z)=>z(),startViewTransition:document.startViewTransition?document.startViewTransition.bind(document):null};function u(z,G,...Q){if(!z)throw Error("first argument to vode() must be a tag name or a vode");if(Array.isArray(z))return z;else if(G)return[z,G,...Q];else return[z,...Q]}function V(z,G,Q,...J){if(!z?.parentElement)throw Error("first argument to app() must be a valid HTMLElement inside the <html></html> document");if(!G||typeof G!=="object")throw Error("second argument to app() must be a state object");if(typeof Q!=="function")throw Error("third argument to app() must be a function that returns a vode");let q={};q.syncRenderer=D.requestAnimationFrame,q.asyncRenderer=D.startViewTransition,q.qSync=null,q.qAsync=null,q.stats={lastSyncRenderTime:0,lastAsyncRenderTime:0,syncRenderCount:0,asyncRenderCount:0,liveEffectCount:0,patchCount:0,syncRenderPatchCount:0,asyncRenderPatchCount:0},Object.defineProperty(G,"patch",{enumerable:!1,configurable:!0,writable:!1,value:async(X,H)=>{if(!X||typeof X!=="function"&&typeof X!=="object")return;if(q.stats.patchCount++,X?.next){let L=X;q.stats.liveEffectCount++;try{let T=await L.next();while(T.done===!1){q.stats.liveEffectCount++;try{q.patch(T.value,H),T=await L.next()}finally{q.stats.liveEffectCount--}}q.patch(T.value,H)}finally{q.stats.liveEffectCount--}}else if(X.then){q.stats.liveEffectCount++;try{let L=await X;q.patch(L,H)}finally{q.stats.liveEffectCount--}}else if(Array.isArray(X))if(X.length>0)for(let L of X)q.patch(L,!document.hidden&&!!q.asyncRenderer);else{q.qSync=M(q.qSync||{},q.qAsync,!1),q.qAsync=null;try{D.currentViewTransition?.skipTransition()}catch{}q.stats.syncRenderPatchCount++,q.renderSync()}else if(typeof X==="function")q.patch(X(q.state),H);else if(H)q.stats.asyncRenderPatchCount++,q.qAsync=M(q.qAsync||{},X,!1),await q.renderAsync();else q.stats.syncRenderPatchCount++,q.qSync=M(q.qSync||{},X,!1),q.renderSync()}});function B(X){let H=Date.now(),L=Q(q.state);if(q.vode=K(q.state,q.patch,z.parentElement,0,q.vode,L),z.tagName.toUpperCase()!==L[0].toUpperCase())z=q.vode.node,z._vode=q;if(!X){if(q.stats.lastSyncRenderTime=Date.now()-H,q.stats.syncRenderCount++,q.isRendering=!1,q.qSync)q.renderSync()}}let U=B.bind(null,!1),Z=B.bind(null,!0);Object.defineProperty(q,"renderSync",{enumerable:!1,configurable:!0,writable:!1,value:()=>{if(q.isRendering||!q.qSync)return;q.isRendering=!0,q.state=M(q.state,q.qSync,!0),q.qSync=null,q.syncRenderer(U)}}),Object.defineProperty(q,"renderAsync",{enumerable:!1,configurable:!0,writable:!1,value:async()=>{if(q.isAnimating||!q.qAsync)return;if(await D.currentViewTransition?.updateCallbackDone,q.isAnimating||!q.qAsync||document.hidden)return;q.isAnimating=!0;let X=Date.now();try{q.state=M(q.state,q.qAsync,!0),q.qAsync=null,D.currentViewTransition=q.asyncRenderer(Z),await D.currentViewTransition?.updateCallbackDone}finally{q.stats.lastAsyncRenderTime=Date.now()-X,q.stats.asyncRenderCount++,q.isAnimating=!1}if(q.qAsync)q.renderAsync()}}),q.patch=G.patch,q.state=G;let $=z;$._vode=q,q.vode=K(G,q.patch,z.parentElement,Array.from(z.parentElement.children).indexOf(z),b(z,!0),Q(G));for(let X of J)q.patch(X);return q.patch}function v(z){if(z?._vode){let G=function(J){if(!J?.node)return;let q=R(J);if(q){for(let U in q)if(U[0]==="o"&&U[1]==="n")J.node[U]=null;J.node.catch=null}let B=f(J);if(B)for(let U of B)G(U)},Q=z._vode;delete z._vode,Object.defineProperty(Q.state,"patch",{value:void 0}),Object.defineProperty(Q,"renderSync",{value:()=>{}}),Object.defineProperty(Q,"renderAsync",{value:()=>{}}),G(Q.vode)}}function b(z,G){if(z?.nodeType===Node.TEXT_NODE){if(z.nodeValue?.trim()!=="")return G?z:z.nodeValue;return}else if(z.nodeType===Node.COMMENT_NODE)return;else if(z.nodeType===Node.ELEMENT_NODE){let J=[z.tagName.toLowerCase()];if(G)J.node=z;if(z?.hasAttributes()){let q={},B=z.attributes;for(let U of B)q[U.name]=U.value;J.push(q)}if(z.hasChildNodes()){let q=[];for(let B of z.childNodes){let U=B&&b(B,G);if(U)J.push(U);else if(B&&G)q.push(B)}for(let B of q)B.remove()}return J}else return}function w(z,G){if(!z||!Array.isArray(z))throw Error("first argument to memo() must be an array of values to compare");if(typeof G!=="function")throw Error("second argument to memo() must be a function that returns a vode or props object");return G.__memo=z,G}function i(z){if(!z||typeof z!=="object")throw Error("createState() must be called with a state object");return z}function c(z){return z}function p(z){return z?Array.isArray(z)?z[0]:typeof z==="string"||z.nodeType===Node.TEXT_NODE?"#text":void 0:void 0}function R(z){if(Array.isArray(z)&&z.length>1&&z[1]&&!Array.isArray(z[1])){if(typeof z[1]==="object"&&z[1].nodeType!==Node.TEXT_NODE)return z[1]}return}function f(z){let G=N(z);if(G>0)return z.slice(G);return null}function r(z){let G=N(z);if(G<0)return 0;return z.length-G}function l(z,G){let Q=N(z);if(Q>0)return z[G+Q];else return}function N(z){return R(z)?z.length>2?2:-1:Array.isArray(z)&&z.length>1?1:-1}function M(z,G,Q){if(!G)return z;for(let J in G){let q=G[J];if(q&&typeof q==="object"){let B=z[J];if(B)if(Array.isArray(q))z[J]=[...q];else if(q instanceof Date&&B!==q)z[J]=new Date(q);else if(Array.isArray(B))z[J]=M({},q,Q);else if(typeof B==="object")M(z[J],q,Q);else z[J]=M({},q,Q);else if(Array.isArray(q))z[J]=[...q];else if(q instanceof Date)z[J]=new Date(q);else z[J]=M({},q,Q)}else if(q===void 0&&Q)delete z[J];else z[J]=q}return z}function K(z,G,Q,J,q,B,U){try{B=C(z,B,q);let Z=!B||typeof B==="number"||typeof B==="boolean";if(B===q||!q&&Z)return q;let $=q?.nodeType===Node.TEXT_NODE,X=$?q:q?.node;if(Z){X?.onUnmount&&G(X.onUnmount(X)),X?.remove();return}let H=!Z&&y(B),L=!Z&&g(B),T=!!B&&typeof B!=="string"&&!!(B?.node||B?.nodeType===Node.TEXT_NODE);if(!H&&!L&&!T&&!q)throw Error("Invalid vode: "+typeof B+" "+JSON.stringify(B));else if(T&&H)B=B.wholeText;else if(T&&L)B=[...B];if($&&H){if(X.nodeValue!==B)X.nodeValue=B;return q}if(H&&(!X||!$)){let W=document.createTextNode(B);if(X)X.onUnmount&&G(X.onUnmount(X)),X.replaceWith(W);else if(Q.childNodes[J])Q.insertBefore(W,Q.childNodes[J]);else Q.appendChild(W);return W}if(L&&(!X||$||q[0]!==B[0])){let W=B;if(1 in W)W[1]=C(z,W[1],void 0);let A=R(B);U=A?.xmlns||U;let j=U?document.createElementNS(U,B[0]):document.createElement(B[0]);if(B.node=j,S(z,G,j,void 0,A),X)X.onUnmount&&G(X.onUnmount(X)),X.replaceWith(j);else if(Q.childNodes[J])Q.insertBefore(j,Q.childNodes[J]);else Q.appendChild(j);let F=f(B);if(F)for(let Y=0;Y<F.length;Y++){let E=F[Y],O=K(z,G,j,Y,void 0,E,U);B[A?Y+2:Y+1]=O}return j.onMount&&G(j.onMount(j)),B}if(!$&&L&&q[0]===B[0]){B.node=X;let W=B,A=q,j=!1;if(W[1]?.__memo){let E=W[1];if(W[1]=C(z,W[1],A[1]),E!==W[1]){let O=R(B);S(z,G,X,R(q),O),j=!!O}}else{let E=R(B);if(S(z,G,X,R(q),E),j=!!E,j&&"catch"in E)B.node.catch=null,B.node.removeAttribute("catch")}let F=f(B),Y=f(q);if(F)for(let E=0;E<F.length;E++){let O=F[E],_=Y&&Y[E],x=K(z,G,X,E,_,O,U);if(x)B[j?E+2:E+1]=x}if(Y){let E=F?F.length:0;for(let O=Y.length-1;O>=E;O--)K(z,G,X,O,Y[O],void 0,U)}return B}}catch(Z){let $=R(B)?.catch;if($){let X=typeof $==="function"?$(z,Z):$;return K(z,G,Q,J,b(B?.node||q?.node,!0),X,U)}else throw Z}return}function g(z){return Array.isArray(z)&&z.length>0&&typeof z[0]==="string"}function y(z){return typeof z==="string"||z?.nodeType===Node.TEXT_NODE}function C(z,G,Q){if(typeof G!=="function")return G;let J=G?.__memo,q=Q?.__memo;if(Array.isArray(J)&&Array.isArray(q)&&J.length===q.length){let U=!0;for(let Z=0;Z<J.length;Z++)if(J[Z]!==q[Z]){U=!1;break}if(U)return Q}let B=k(G,z);if(typeof B==="object")B.__memo=G?.__memo;return B}function k(z,G){if(typeof z==="function")return k(z(G),G);else return z}function S(z,G,Q,J,q){if(!q&&!J)return;if(J)for(let B in J){let U=J[B],Z=q?.[B];if(U!==Z)if(q)q[B]=I(z,G,Q,B,U,Z);else I(z,G,Q,B,U,void 0)}if(q&&J){for(let B in q)if(!(B in J)){let U=q[B];q[B]=I(z,G,Q,B,void 0,U)}}else if(q)for(let B in q){let U=q[B];q[B]=I(z,G,Q,B,void 0,U)}}function I(z,G,Q,J,q,B){if(J==="style")if(!B)Q.style.cssText="";else if(typeof B==="string"){if(q!==B)Q.style.cssText=B}else if(q&&typeof q==="object"){for(let U in q)if(!B[U])Q.style[U]=null;for(let U in B){let Z=q[U],$=B[U];if(Z!==$)Q.style[U]=$}}else for(let U in B)Q.style[U]=B[U];else if(J==="class")if(B)Q.setAttribute("class",P(B));else Q.removeAttribute("class");else if(J[0]==="o"&&J[1]==="n")if(B){let U=null;if(typeof B==="function"){let Z=B;U=($)=>G(Z(z,$))}else if(typeof B==="object")U=()=>G(B);Q[J]=U}else Q[J]=null;else if(Q[J]=B,B===void 0||B===null||B===!1)Q.removeAttribute(J);else Q.setAttribute(J,B);return B}function P(z){if(typeof z==="string")return z;else if(Array.isArray(z))return z.map(P).join(" ");else if(typeof z==="object")return Object.keys(z).filter((G)=>z[G]).join(" ");else return""}var n="a",d="abbr",t="address",a="area",o="article",e="aside",qq="audio",zq="b",Bq="base",Gq="bdi",Jq="bdo",Qq="blockquote",Uq="body",Xq="br",Zq="button",$q="canvas",Eq="caption",Lq="cite",Wq="code",jq="col",Hq="colgroup",Yq="data",Oq="datalist",Fq="dd",Mq="del",Tq="details",Rq="dfn",Dq="dialog",Kq="div",Aq="dl",Iq="dt",fq="em",Cq="embed",Sq="fieldset",bq="figcaption",Nq="figure",xq="footer",kq="form",Pq="h1",_q="h2",gq="h3",yq="h4",mq="h5",hq="h6",uq="head",Vq="header",vq="hgroup",wq="hr",iq="html",cq="i",pq="iframe",rq="img",lq="input",sq="ins",nq="kbd",dq="label",tq="legend",aq="li",oq="link",eq="main",qz="map",zz="mark",Bz="menu",Gz="meta",Jz="meter",Qz="nav",Uz="noscript",Xz="object",Zz="ol",$z="optgroup",Ez="option",Lz="output",Wz="p",jz="picture",Hz="pre",Yz="progress",Oz="q",Fz="rp",Mz="rt",Tz="ruby",Rz="s",Dz="samp",Kz="script",Az="search",Iz="section",fz="select",Cz="slot",Sz="small",bz="source",Nz="span",xz="strong",kz="style",Pz="sub",_z="summary",gz="sup",yz="table",mz="tbody",hz="td",uz="template",Vz="textarea",vz="tfoot",wz="th",iz="thead",cz="time",pz="title",rz="tr",lz="track",sz="u",nz="ul",dz="var",tz="video",az="wbr",oz="animate",ez="animateMotion",qB="animateTransform",zB="circle",BB="clipPath",GB="defs",JB="desc",QB="ellipse",UB="feBlend",XB="feColorMatrix",ZB="feComponentTransfer",$B="feComposite",EB="feConvolveMatrix",LB="feDiffuseLighting",WB="feDisplacementMap",jB="feDistantLight",HB="feDropShadow",YB="feFlood",OB="feFuncA",FB="feFuncB",MB="feFuncG",TB="feFuncR",RB="feGaussianBlur",DB="feImage",KB="feMerge",AB="feMergeNode",IB="feMorphology",fB="feOffset",CB="fePointLight",SB="feSpecularLighting",bB="feSpotLight",NB="feTile",xB="feTurbulence",kB="filter",PB="foreignObject",_B="g",gB="image",yB="line",mB="linearGradient",hB="marker",uB="mask",VB="metadata",vB="mpath",wB="path",iB="pattern",cB="polygon",pB="polyline",rB="radialGradient",lB="rect",sB="set",nB="stop",dB="svg",tB="switch",aB="symbol",oB="text",eB="textPath",qG="tspan",zG="use",BG="view",GG="annotation",JG="annotation-xml",QG="maction",UG="math",XG="merror",ZG="mfrac",$G="mi",EG="mmultiscripts",LG="mn",WG="mo",jG="mover",HG="mpadded",YG="mphantom",OG="mprescripts",FG="mroot",MG="mrow",TG="ms",RG="mspace",DG="msqrt",KG="mstyle",AG="msub",IG="msubsup",fG="msup",CG="mtable",SG="mtd",bG="mtext",NG="mtr",xG="munder",kG="munderover",PG="semantics";function gG(...z){if(!z||z.length===0)return null;if(z.length===1)return z[0];let G=z[0];for(let Q=1;Q<z.length;Q++){let J=G,q=z[Q];if(!J)G=q;else if(!q)continue;else if(typeof J==="string"&&typeof q==="string"){let B=J.split(" "),U=q.split(" "),Z=new Set([...B,...U]);G=Array.from(Z).join(" ").trim()}else if(typeof J==="string"&&Array.isArray(q)){let B=new Set([...q,...J.split(" ")]);G=Array.from(B).join(" ").trim()}else if(Array.isArray(J)&&typeof q==="string"){let B=new Set([...J,...q.split(" ")]);G=Array.from(B).join(" ").trim()}else if(Array.isArray(J)&&Array.isArray(q)){let B=new Set([...J,...q]);G=Array.from(B).join(" ").trim()}else if(typeof J==="string"&&typeof q==="object")G={[J]:!0,...q};else if(typeof J==="object"&&typeof q==="string")G={...J,[q]:!0};else if(typeof J==="object"&&typeof q==="object")G={...J,...q};else if(typeof J==="object"&&Array.isArray(q)){let B={...J};for(let U of q)B[U]=!0;G=B}else if(Array.isArray(J)&&typeof q==="object"){let B={};for(let U of J)B[U]=!0;for(let U of Object.keys(q))B[U]=q[U];G=B}else throw Error(`cannot merge classes of ${J} (${typeof J}) and ${q} (${typeof q})`)}return G}class m{state;path;keys;constructor(z,G){this.state=z;this.path=G;this.keys=G.split(".")}get(){let z=this.keys,G=this.state?this.state[z[0]]:void 0;for(let Q=1;Q<z.length&&!!G;Q++)G=G[z[Q]];return G}put(z){this.putDeep(z,this.state)}patch(z){if(Array.isArray(z)){let G=[];for(let Q of z)G.push(this.createPatch(Q));this.state.patch(G)}else this.state.patch(this.createPatch(z))}createPatch(z){let G={};return this.putDeep(z,G),G}putDeep(z,G){let Q=this.keys;if(Q.length>1){let J=0,q=G[Q[J]];if(typeof q!=="object"||q===null)G[Q[J]]=q={};for(J=1;J<Q.length-1;J++){let B=q;if(q=q[Q[J]],typeof q!=="object"||q===null)B[Q[J]]=q={}}q[Q[J]]=z}else if(typeof G[Q[0]]==="object"&&typeof z==="object")Object.assign(G[Q[0]],z);else G[Q[0]]=z}}class h{state;get;put;patch;constructor(z,G,Q,J){this.state=z;this.get=G;this.put=Q;this.patch=J}}export{u as vode,p as tag,R as props,gG as mergeClass,w as memo,b as hydrate,D as globals,v as defuse,i as createState,c as createPatch,N as childrenStart,f as children,r as childCount,l as child,V as app,az as WBR,BG as VIEW,tz as VIDEO,dz as VAR,zG as USE,nz as UL,sz as U,qG as TSPAN,lz as TRACK,rz as TR,pz as TITLE,cz as TIME,iz as THEAD,wz as TH,vz as TFOOT,eB as TEXTPATH,Vz as TEXTAREA,oB as TEXT,uz as TEMPLATE,hz as TD,mz as TBODY,yz as TABLE,aB as SYMBOL,tB as SWITCH,dB as SVG,gz as SUP,_z as SUMMARY,Pz as SUB,kz as STYLE,xz as STRONG,nB as STOP,Nz as SPAN,bz as SOURCE,Sz as SMALL,Cz as SLOT,sB as SET,PG as SEMANTICS,fz as SELECT,Iz as SECTION,Az as SEARCH,Kz as SCRIPT,Dz as SAMP,Rz as S,Tz as RUBY,Mz as RT,Fz as RP,lB as RECT,rB as RADIALGRADIENT,Oz as Q,Yz as PROGRESS,Hz as PRE,pB as POLYLINE,cB as POLYGON,jz as PICTURE,iB as PATTERN,wB as PATH,Wz as P,Lz as OUTPUT,Ez as OPTION,$z as OPTGROUP,Zz as OL,Xz as OBJECT,Uz as NOSCRIPT,Qz as NAV,kG as MUNDEROVER,xG as MUNDER,NG as MTR,bG as MTEXT,SG as MTD,CG as MTABLE,fG as MSUP,IG as MSUBSUP,AG as MSUB,KG as MSTYLE,DG as MSQRT,RG as MSPACE,TG as MS,MG as MROW,FG as MROOT,OG as MPRESCRIPTS,YG as MPHANTOM,vB as MPATH,HG as MPADDED,jG as MOVER,WG as MO,LG as MN,EG as MMULTISCRIPTS,$G as MI,ZG as MFRAC,Jz as METER,VB as METADATA,Gz as META,XG as MERROR,Bz as MENU,UG as MATH,uB as MASK,hB as MARKER,zz as MARK,qz as MAP,eq as MAIN,QG as MACTION,oq as LINK,mB as LINEARGRADIENT,yB as LINE,aq as LI,tq as LEGEND,dq as LABEL,m as KeyStateContext,nq as KBD,sq as INS,lq as INPUT,rq as IMG,gB as IMAGE,pq as IFRAME,cq as I,iq as HTML,wq as HR,vq as HGROUP,Vq as HEADER,uq as HEAD,hq as H6,mq as H5,yq as H4,gq as H3,_q as H2,Pq as H1,_B as G,kq as FORM,PB as FOREIGNOBJECT,xq as FOOTER,kB as FILTER,Nq as FIGURE,bq as FIGCAPTION,Sq as FIELDSET,xB as FETURBULENCE,NB as FETILE,bB as FESPOTLIGHT,SB as FESPECULARLIGHTING,CB as FEPOINTLIGHT,fB as FEOFFSET,IB as FEMORPHOLOGY,AB as FEMERGENODE,KB as FEMERGE,DB as FEIMAGE,RB as FEGAUSSIANBLUR,TB as FEFUNCR,MB as FEFUNCG,FB as FEFUNCB,OB as FEFUNCA,YB as FEFLOOD,HB as FEDROPSHADOW,jB as FEDISTANTLIGHT,WB as FEDISPLACEMENTMAP,LB as FEDIFFUSELIGHTING,EB as FECONVOLVEMATRIX,$B as FECOMPOSITE,ZB as FECOMPONENTTRANSFER,XB as FECOLORMATRIX,UB as FEBLEND,Cq as EMBED,fq as EM,QB as ELLIPSE,h as DelegateStateContext,Iq as DT,Aq as DL,Kq as DIV,Dq as DIALOG,Rq as DFN,Tq as DETAILS,JB as DESC,Mq as DEL,GB as DEFS,Fq as DD,Oq as DATALIST,Yq as DATA,Hq as COLGROUP,jq as COL,Wq as CODE,BB as CLIPPATH,Lq as CITE,zB as CIRCLE,Eq as CAPTION,$q as CANVAS,Zq as BUTTON,Xq as BR,Uq as BODY,Qq as BLOCKQUOTE,Jq as BDO,Gq as BDI,Bq as BASE,zq as B,qq as AUDIO,e as ASIDE,o as ARTICLE,a as AREA,JG as ANNOTATION_XML,GG as ANNOTATION,qB as ANIMATETRANSFORM,ez as ANIMATEMOTION,oz as ANIMATE,t as ADDRESS,d as ABBR,n as A};
package/dist/vode.mjs CHANGED
@@ -169,6 +169,7 @@ function defuse(container) {
169
169
  av.node[key] = null;
170
170
  }
171
171
  }
172
+ av.node["catch"] = null;
172
173
  }
173
174
  const kids = children(av);
174
175
  if (kids) {
@@ -400,6 +401,10 @@ function render(state, patch, parent, childIndex, oldVode, newVode, xmlns) {
400
401
  const properties = props(newVode);
401
402
  patchProperties(state, patch, oldNode, props(oldVode), properties);
402
403
  hasProps = !!properties;
404
+ if (hasProps && "catch" in properties) {
405
+ newVode.node["catch"] = null;
406
+ newVode.node.removeAttribute("catch");
407
+ }
403
408
  }
404
409
  const newKids = children(newVode);
405
410
  const oldKids = children(oldVode);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ryupold/vode",
3
- "version": "1.5.0",
3
+ "version": "1.5.1",
4
4
  "description": "a minimalist web framework",
5
5
  "author": "Michael Scherbakow (ryupold)",
6
6
  "license": "MIT",
package/src/vode.ts CHANGED
@@ -301,6 +301,7 @@ export function defuse(container: ContainerNode<any>) {
301
301
  (<any>av.node)[key] = null;
302
302
  }
303
303
  }
304
+ (<any>av.node)['catch'] = null;
304
305
  }
305
306
  const kids = children(av);
306
307
  if (kids) {
@@ -587,6 +588,10 @@ function render<S>(state: S, patch: Dispatch<S>, parent: Element, childIndex: nu
587
588
  const properties = props(newVode);
588
589
  patchProperties(state, patch, oldNode!, props(oldVode), properties);
589
590
  hasProps = !!properties;
591
+ if (hasProps && 'catch' in (properties!)) { //hold catch information only in vdom
592
+ (<any>newVode).node['catch'] = null;
593
+ (<any>newVode).node.removeAttribute('catch');
594
+ }
590
595
  }
591
596
 
592
597
  const newKids = children(newVode);