@ryupold/vode 1.7.4 → 1.8.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/dist/vode.js CHANGED
@@ -61,7 +61,6 @@ var V = (() => {
61
61
  DIV: () => DIV,
62
62
  DL: () => DL,
63
63
  DT: () => DT,
64
- DelegateStateContext: () => DelegateStateContext,
65
64
  ELLIPSE: () => ELLIPSE,
66
65
  EM: () => EM,
67
66
  EMBED: () => EMBED,
@@ -116,7 +115,6 @@ var V = (() => {
116
115
  INPUT: () => INPUT,
117
116
  INS: () => INS,
118
117
  KBD: () => KBD,
119
- KeyStateContext: () => KeyStateContext,
120
118
  LABEL: () => LABEL,
121
119
  LEGEND: () => LEGEND,
122
120
  LI: () => LI,
@@ -237,6 +235,7 @@ var V = (() => {
237
235
  hydrate: () => hydrate,
238
236
  memo: () => memo,
239
237
  mergeClass: () => mergeClass,
238
+ mergeProps: () => mergeProps,
240
239
  mergeStyle: () => mergeStyle,
241
240
  props: () => props,
242
241
  tag: () => tag,
@@ -1104,6 +1103,27 @@ var V = (() => {
1104
1103
  }
1105
1104
  }
1106
1105
 
1106
+ // src/merge-props.ts
1107
+ function mergeProps(...props2) {
1108
+ if (props2.length === 0) return void 0;
1109
+ if (props2.length === 1) return props2[0] || void 0;
1110
+ let combined;
1111
+ for (const p of props2) {
1112
+ if (typeof p !== "object" || p === null) continue;
1113
+ if (!combined) combined = {};
1114
+ for (const key in p) {
1115
+ if (key === "style") {
1116
+ combined.style = mergeStyle(combined.style, p.style);
1117
+ } else if (key === "class") {
1118
+ combined.class = mergeClass(combined.class, p.class);
1119
+ } else {
1120
+ combined[key] = p[key];
1121
+ }
1122
+ }
1123
+ }
1124
+ return combined;
1125
+ }
1126
+
1107
1127
  // src/state-context.ts
1108
1128
  function context(state) {
1109
1129
  return new ProxyStateContextImpl(state, []);
@@ -1179,6 +1199,8 @@ var V = (() => {
1179
1199
  }
1180
1200
  });
1181
1201
  }
1202
+ state;
1203
+ keys;
1182
1204
  get() {
1183
1205
  throw "implemented in ctor";
1184
1206
  }
@@ -1189,84 +1211,5 @@ var V = (() => {
1189
1211
  throw "implemented in ctor";
1190
1212
  }
1191
1213
  };
1192
- var DelegateStateContext = class {
1193
- constructor(state, get, put, patch) {
1194
- this.state = state;
1195
- this.get = get;
1196
- this.put = put;
1197
- this.patch = patch;
1198
- }
1199
- };
1200
- var KeyStateContext = class {
1201
- constructor(state, path) {
1202
- this.state = state;
1203
- this.path = path;
1204
- this.keys = path.split(".");
1205
- }
1206
- keys;
1207
- get() {
1208
- const keys = this.keys;
1209
- let raw = this.state ? this.state[keys[0]] : void 0;
1210
- for (let i = 1; i < keys.length && !!raw; i++) {
1211
- raw = raw[keys[i]];
1212
- }
1213
- return raw;
1214
- }
1215
- put(value) {
1216
- this.putDeep(value, this.state);
1217
- }
1218
- patch(value) {
1219
- if (Array.isArray(value)) {
1220
- const animation = [];
1221
- for (const v of value) {
1222
- animation.push(this.createPatch(v));
1223
- }
1224
- this.state.patch(animation);
1225
- } else {
1226
- this.state.patch(this.createPatch(value));
1227
- }
1228
- }
1229
- /**
1230
- * Creates a render-patch for the parent state by setting a nested sub-state value while creating necessary structure.
1231
- *
1232
- * @example
1233
- * ```typescript
1234
- * const ctx = new KeyStateContext(state, 'user.profile.settings');
1235
- * const patch = ctx.createPatch({ theme: 'light' });
1236
- * // patch is { user: { profile: { settings: { theme: 'light' } } } }
1237
- * ```
1238
- *
1239
- * @param value
1240
- * @returns {{key-path}:{...: value}} render-patch for the parent state
1241
- */
1242
- createPatch(value) {
1243
- const renderPatch = {};
1244
- this.putDeep(value, renderPatch);
1245
- return renderPatch;
1246
- }
1247
- putDeep(value, target) {
1248
- const keys = this.keys;
1249
- if (keys.length > 1) {
1250
- let i = 0;
1251
- let raw = target[keys[i]];
1252
- if (typeof raw !== "object" || raw === null) {
1253
- target[keys[i]] = raw = {};
1254
- }
1255
- for (i = 1; i < keys.length - 1; i++) {
1256
- const p = raw;
1257
- raw = raw[keys[i]];
1258
- if (typeof raw !== "object" || raw === null) {
1259
- p[keys[i]] = raw = {};
1260
- }
1261
- }
1262
- raw[keys[i]] = value;
1263
- } else {
1264
- if (typeof target[keys[0]] === "object" && typeof value === "object")
1265
- Object.assign(target[keys[0]], value);
1266
- else
1267
- target[keys[0]] = value;
1268
- }
1269
- }
1270
- };
1271
1214
  return __toCommonJS(index_exports);
1272
1215
  })();
package/dist/vode.min.js CHANGED
@@ -1 +1 @@
1
- "use strict";var V=(()=>{var O=Object.defineProperty;var _=Object.getOwnPropertyDescriptor;var q=Object.getOwnPropertyNames;var w=Object.prototype.hasOwnProperty;var X=(e,n)=>{for(var s in n)O(e,s,{get:n[s],enumerable:!0})},$=(e,n,s,a)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of q(n))!w.call(e,t)&&t!==s&&O(e,t,{get:()=>n[t],enumerable:!(a=_(n,t))||a.enumerable});return e};var Y=e=>$(O({},"__esModule",{value:!0}),e);var Wo={};X(Wo,{A:()=>st,ABBR:()=>rt,ADDRESS:()=>ct,ANIMATE:()=>pn,ANIMATEMOTION:()=>Sn,ANIMATETRANSFORM:()=>un,ANNOTATION:()=>yo,ANNOTATION_XML:()=>xo,AREA:()=>it,ARTICLE:()=>lt,ASIDE:()=>pt,AUDIO:()=>St,B:()=>ut,BASE:()=>dt,BDI:()=>ft,BDO:()=>Tt,BLOCKQUOTE:()=>yt,BODY:()=>xt,BR:()=>gt,BUTTON:()=>ht,CANVAS:()=>bt,CAPTION:()=>mt,CIRCLE:()=>dn,CITE:()=>Pt,CLIPPATH:()=>fn,CODE:()=>Et,COL:()=>At,COLGROUP:()=>Ct,DATA:()=>Nt,DATALIST:()=>Mt,DD:()=>Rt,DEFS:()=>Tn,DEL:()=>Dt,DESC:()=>yn,DETAILS:()=>Ot,DFN:()=>vt,DIALOG:()=>Lt,DIV:()=>It,DL:()=>Vt,DT:()=>Ft,DelegateStateContext:()=>F,ELLIPSE:()=>xn,EM:()=>jt,EMBED:()=>Kt,FEBLEND:()=>gn,FECOLORMATRIX:()=>hn,FECOMPONENTTRANSFER:()=>bn,FECOMPOSITE:()=>mn,FECONVOLVEMATRIX:()=>Pn,FEDIFFUSELIGHTING:()=>En,FEDISPLACEMENTMAP:()=>An,FEDISTANTLIGHT:()=>Cn,FEDROPSHADOW:()=>Nn,FEFLOOD:()=>Mn,FEFUNCA:()=>Rn,FEFUNCB:()=>Dn,FEFUNCG:()=>On,FEFUNCR:()=>vn,FEGAUSSIANBLUR:()=>Ln,FEIMAGE:()=>In,FEMERGE:()=>Vn,FEMERGENODE:()=>Fn,FEMORPHOLOGY:()=>jn,FEOFFSET:()=>Kn,FEPOINTLIGHT:()=>Hn,FESPECULARLIGHTING:()=>kn,FESPOTLIGHT:()=>Un,FETILE:()=>Gn,FETURBULENCE:()=>Bn,FIELDSET:()=>Ht,FIGCAPTION:()=>kt,FIGURE:()=>Ut,FILTER:()=>_n,FOOTER:()=>Gt,FOREIGNOBJECT:()=>qn,FORM:()=>Bt,G:()=>wn,H1:()=>_t,H2:()=>qt,H3:()=>wt,H4:()=>Xt,H5:()=>$t,H6:()=>Yt,HEAD:()=>Wt,HEADER:()=>Jt,HGROUP:()=>Qt,HR:()=>zt,HTML:()=>Zt,I:()=>te,IFRAME:()=>ee,IMAGE:()=>Xn,IMG:()=>ne,INPUT:()=>oe,INS:()=>ae,KBD:()=>se,KeyStateContext:()=>j,LABEL:()=>re,LEGEND:()=>ce,LI:()=>ie,LINE:()=>$n,LINEARGRADIENT:()=>Yn,LINK:()=>le,MACTION:()=>go,MAIN:()=>pe,MAP:()=>Se,MARK:()=>ue,MARKER:()=>Wn,MASK:()=>Jn,MATH:()=>ho,MENU:()=>de,MERROR:()=>bo,META:()=>fe,METADATA:()=>Qn,METER:()=>Te,MFRAC:()=>mo,MI:()=>Po,MMULTISCRIPTS:()=>Eo,MN:()=>Ao,MO:()=>Co,MOVER:()=>No,MPADDED:()=>Mo,MPATH:()=>zn,MPHANTOM:()=>Ro,MPRESCRIPTS:()=>Do,MROOT:()=>Oo,MROW:()=>vo,MS:()=>Lo,MSPACE:()=>Io,MSQRT:()=>Vo,MSTYLE:()=>Fo,MSUB:()=>jo,MSUBSUP:()=>Ko,MSUP:()=>Ho,MTABLE:()=>ko,MTD:()=>Uo,MTEXT:()=>Go,MTR:()=>Bo,MUNDER:()=>_o,MUNDEROVER:()=>qo,NAV:()=>ye,NOSCRIPT:()=>xe,OBJECT:()=>ge,OL:()=>he,OPTGROUP:()=>be,OPTION:()=>me,OUTPUT:()=>Pe,P:()=>Ee,PATH:()=>Zn,PATTERN:()=>to,PICTURE:()=>Ae,POLYGON:()=>eo,POLYLINE:()=>no,PRE:()=>Ce,PROGRESS:()=>Ne,Q:()=>Me,RADIALGRADIENT:()=>oo,RECT:()=>ao,RP:()=>Re,RT:()=>De,RUBY:()=>Oe,S:()=>ve,SAMP:()=>Le,SCRIPT:()=>Ie,SEARCH:()=>Ve,SECTION:()=>Fe,SELECT:()=>je,SEMANTICS:()=>wo,SET:()=>so,SLOT:()=>Ke,SMALL:()=>He,SOURCE:()=>ke,SPAN:()=>Ue,STOP:()=>ro,STRONG:()=>Ge,STYLE:()=>Be,SUB:()=>_e,SUMMARY:()=>qe,SUP:()=>we,SVG:()=>co,SWITCH:()=>io,SYMBOL:()=>lo,TABLE:()=>Xe,TBODY:()=>$e,TD:()=>Ye,TEMPLATE:()=>We,TEXT:()=>po,TEXTAREA:()=>Je,TEXTPATH:()=>So,TFOOT:()=>Qe,TH:()=>ze,THEAD:()=>Ze,TIME:()=>tn,TITLE:()=>en,TR:()=>nn,TRACK:()=>on,TSPAN:()=>uo,U:()=>an,UL:()=>sn,USE:()=>fo,VAR:()=>rn,VIDEO:()=>cn,VIEW:()=>To,WBR:()=>ln,app:()=>J,child:()=>nt,childCount:()=>et,children:()=>N,childrenStart:()=>D,context:()=>Yo,createPatch:()=>Z,createState:()=>z,defuse:()=>I,globals:()=>E,hydrate:()=>R,memo:()=>Q,mergeClass:()=>Xo,mergeStyle:()=>$o,props:()=>A,tag:()=>tt,vode:()=>W});var E={currentViewTransition:void 0,requestAnimationFrame:window.requestAnimationFrame?window.requestAnimationFrame.bind(window):(e=>e()),startViewTransition:document.startViewTransition?document.startViewTransition.bind(document):null};function W(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:n?[e,n,...s]:[e,...s]}function J(e,n,s,...a){if(!e?.parentElement)throw new Error("first argument to app() must be a valid HTMLElement inside the <html></html> document");if(!n||typeof n!="object")throw new Error("second argument to app() must be a state object");if(typeof s!="function")throw new Error("third argument to app() must be a function that returns a vode");let t={};t.syncRenderer=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};let o=n;Object.defineProperty(n,"patch",{enumerable:!1,configurable:!0,writable:!1,value:async(l,y)=>{if(!(!l||typeof l!="function"&&typeof l!="object"))if(t.stats.patchCount++,l?.next){let S=l;t.stats.liveEffectCount++;try{let f=await S.next();for(;f.done===!1;){t.stats.liveEffectCount++;try{o.patch(f.value,y),f=await S.next()}finally{t.stats.liveEffectCount--}}o.patch(f.value,y)}finally{t.stats.liveEffectCount--}}else if(l.then){t.stats.liveEffectCount++;try{let S=await l;o.patch(S,y)}finally{t.stats.liveEffectCount--}}else if(Array.isArray(l))if(l.length>0)for(let S of l)o.patch(S,!document.hidden&&!!t.asyncRenderer);else{t.qSync=P(t.qSync||{},t.qAsync,!1),t.qAsync=null;try{E.currentViewTransition?.skipTransition()}catch{}t.stats.syncRenderPatchCount++,t.renderSync()}else typeof l=="function"?o.patch(l(t.state),y):y?(t.stats.asyncRenderPatchCount++,t.qAsync=P(t.qAsync||{},l,!1),await t.renderAsync()):(t.stats.syncRenderPatchCount++,t.qSync=P(t.qSync||{},l,!1),t.renderSync())}});function r(l){let y=Date.now(),S=s(t.state);t.vode=C(t.state,e.parentElement,0,0,t.vode,S),e.tagName.toUpperCase()!==S[0].toUpperCase()&&(e=t.vode.node,e._vode=t),l||(t.stats.lastSyncRenderTime=Date.now()-y,t.stats.syncRenderCount++,t.isRendering=!1,t.qSync&&t.renderSync())}let p=r.bind(null,!1),i=r.bind(null,!0);Object.defineProperty(t,"renderSync",{enumerable:!1,configurable:!0,writable:!1,value:()=>{t.isRendering||!t.qSync||(t.isRendering=!0,t.state=P(t.state,t.qSync,!0),t.qSync=null,t.syncRenderer(p))}}),Object.defineProperty(t,"renderAsync",{enumerable:!1,configurable:!0,writable:!1,value:async()=>{if(t.isAnimating||!t.qAsync||(await E.currentViewTransition?.updateCallbackDone,t.isAnimating||!t.qAsync||document.hidden))return;t.isAnimating=!0;let l=Date.now();try{t.state=P(t.state,t.qAsync,!0),t.qAsync=null,E.currentViewTransition=t.asyncRenderer(i),await E.currentViewTransition?.updateCallbackDone}finally{t.stats.lastAsyncRenderTime=Date.now()-l,t.stats.asyncRenderCount++,t.isAnimating=!1}t.qAsync&&t.renderAsync()}}),t.state=o;let c=e;c._vode=t;let d=Array.from(e.parentElement.children).indexOf(e);t.vode=C(n,e.parentElement,d,d,R(e,!0),s(n));for(let l of a)o.patch(l);return l=>o.patch(l)}function I(e){if(e?._vode){let s=function(t){if(!t?.node)return;let o=A(t);if(o){for(let r in o)r[0]==="o"&&r[1]==="n"&&(t.node[r]=null);t.node.catch=null}if(t.node._vode)I(t.node);else{let r=N(t);if(r)for(let p of r)s(p)}};var n=s;let a=e._vode;delete e._vode,Object.defineProperty(a.state,"patch",{value:void 0}),Object.defineProperty(a,"renderSync",{value:()=>{}}),Object.defineProperty(a,"renderAsync",{value:()=>{}}),s(a.vode)}else for(let s of e.children)I(s)}function R(e,n){if(e?.nodeType===Node.TEXT_NODE)return e.nodeValue?.trim()!==""?n?e:e.nodeValue:void 0;if(e.nodeType===Node.COMMENT_NODE)return;if(e.nodeType===Node.ELEMENT_NODE){let a=[e.tagName.toLowerCase()];if(n&&(a.node=e),e?.hasAttributes()){let t={},o=e.attributes;for(let r of o)t[r.name]=r.value;a.push(t)}if(e.hasChildNodes()){let t=[];for(let o of e.childNodes){let r=o&&R(o,n);r?a.push(r):o&&n&&t.push(o)}for(let o of t)o.remove()}return a}else return}function Q(e,n){if(!e||!Array.isArray(e))throw new Error("first argument to memo() must be an array of values to compare");if(typeof n!="function")throw new Error("second argument to memo() must be a function that returns a vode or props object");return n.__memo=e,n}function z(e){if(!e||typeof e!="object")throw new Error("createState() must be called with a state object");return e}function Z(e){return e}function tt(e){return e?Array.isArray(e)?e[0]:typeof e=="string"||e.nodeType===Node.TEXT_NODE?"#text":void 0:void 0}function A(e){if(Array.isArray(e)&&e.length>1&&e[1]&&!Array.isArray(e[1])&&typeof e[1]=="object"&&e[1].nodeType!==Node.TEXT_NODE)return e[1]}function N(e){let n=D(e);return n>0?e.slice(n):null}function et(e){let n=D(e);return n<0?0:e.length-n}function nt(e,n){let s=D(e);if(s>0)return e[n+s]}function D(e){return A(e)?e.length>2?2:-1:Array.isArray(e)&&e.length>1?1:-1}function P(e,n,s){if(!n)return e;for(let a in n){let t=n[a];if(t&&typeof t=="object"){let o=e[a];o?Array.isArray(t)?e[a]=[...t]:t instanceof Date&&o!==t?e[a]=new Date(t):Array.isArray(o)?e[a]=P({},t,s):typeof o=="object"?P(e[a],t,s):e[a]=P({},t,s):Array.isArray(t)?e[a]=[...t]:t instanceof Date?e[a]=new Date(t):e[a]=P({},t,s)}else t===void 0&&s?delete e[a]:e[a]=t}return e}function C(e,n,s,a,t,o,r){try{o=v(e,o,t);let p=!o||typeof o=="number"||typeof o=="boolean";if(o===t||!t&&p)return t;let i=t?.nodeType===Node.TEXT_NODE,c=i?t:t?.node;if(p){c?.onUnmount&&e.patch(c.onUnmount(c)),c?.remove();return}let d=!p&&at(o),l=!p&&ot(o),y=!!o&&typeof o!="string"&&!!(o?.node||o?.nodeType===Node.TEXT_NODE);if(!d&&!l&&!y&&!t)throw new Error("Invalid vode: "+typeof o+" "+JSON.stringify(o));if(y&&d?o=o.wholeText:y&&l&&(o=[...o]),i&&d)return c.nodeValue!==o&&(c.nodeValue=o),t;if(d&&(!c||!i)){let S=document.createTextNode(o);if(c)c.onUnmount&&e.patch(c.onUnmount(c)),c.replaceWith(S);else{let f=!1;for(let u=a;u<n.childNodes.length;u++){let g=n.childNodes[u];if(g){g.before(S,g),f=!0;break}}f||n.appendChild(S)}return S}if(l&&(!c||i||t[0]!==o[0])){let S=o;1 in S&&(S[1]=v(e,S[1],void 0));let f=A(o);f?.xmlns!==void 0&&(r=f.xmlns);let u=r?document.createElementNS(r,o[0]):document.createElement(o[0]);if(o.node=u,L(e,u,void 0,f,r??null),f&&"catch"in f&&(o.node.catch=null,o.node.removeAttribute("catch")),c)c.onUnmount&&e.patch(c.onUnmount(c)),c.replaceWith(u);else{let h=!1;for(let x=a;x<n.childNodes.length;x++){let T=n.childNodes[x];if(T){T.before(u,T),h=!0;break}}h||n.appendChild(u)}let g=N(o);if(g){let h=f?2:1,x=0;for(let T=0;T<g.length;T++){let b=g[T],m=C(e,u,T,x,void 0,b,r??null);o[T+h]=m,m&&x++}}return u.onMount&&e.patch(u.onMount(u)),o}if(!i&&l&&t[0]===o[0]){o.node=c;let S=o,f=t,u=A(o),g=A(t);if(u?.xmlns!==void 0&&(r=u.xmlns),S[1]?.__memo){let T=S[1];S[1]=v(e,S[1],f[1]),T!==S[1]&&L(e,c,g,u,r)}else L(e,c,g,u,r);u?.catch&&g?.catch!==u.catch&&(o.node.catch=null,o.node.removeAttribute("catch"));let h=N(o),x=N(t);if(h){let T=u?2:1,b=0;for(let m=0;m<h.length;m++){let G=h[m],B=x&&x[m],K=C(e,c,m,b,B,G,r);o[m+T]=K,K&&b++}}if(x){let T=h?h.length:0;for(let b=x.length-1;b>=T;b--)C(e,c,b,b,x[b],void 0,r)}return o}}catch(p){let i=A(o)?.catch;if(i){let c=typeof i=="function"?i(e,p):i;return C(e,n,s,a,R(o?.node||t?.node,!0),c,r)}else throw p}}function ot(e){return Array.isArray(e)&&e.length>0&&typeof e[0]=="string"}function at(e){return typeof e=="string"||e?.nodeType===Node.TEXT_NODE}function v(e,n,s){if(typeof n!="function")return n;let a=n?.__memo,t=s?.__memo;if(Array.isArray(a)&&Array.isArray(t)&&a.length===t.length){let r=!0;for(let p=0;p<a.length;p++)if(a[p]!==t[p]){r=!1;break}if(r)return s}let o=H(n,e);return typeof o=="object"&&(o.__memo=n?.__memo),o}function H(e,n){return typeof e=="function"?H(e(n),n):e}function L(e,n,s,a,t){if(!a&&!s)return;let o=t!==void 0;if(s)for(let r in s){let p=s[r],i=a?.[r];p!==i&&(a?a[r]=M(e,n,r,p,i,o):M(e,n,r,p,void 0,o))}if(a&&s){for(let r in a)if(!(r in s)){let p=a[r];a[r]=M(e,n,r,void 0,p,o)}}else if(a)for(let r in a){let p=a[r];a[r]=M(e,n,r,void 0,p,o)}}function M(e,n,s,a,t,o){if(s==="style")if(!t)n.style.cssText="";else if(typeof t=="string")a!==t&&(n.style.cssText=t);else if(a&&typeof a=="object"){for(let r in a)t[r]||(n.style[r]=null);for(let r in t){let p=a[r],i=t[r];p!==i&&(n.style[r]=i)}}else for(let r in t)n.style[r]=t[r];else if(s==="class")t?n.setAttribute("class",k(t)):n.removeAttribute("class");else if(s[0]==="o"&&s[1]==="n")if(t){let r=null;if(typeof t=="function"){let p=t;r=i=>e.patch(p(e,i))}else typeof t=="object"&&(r=()=>e.patch(t));n[s]=r}else n[s]=null;else o||(n[s]=t),t==null||t===!1?n.removeAttribute(s):n.setAttribute(s,t);return t}function k(e){return typeof e=="string"?e:Array.isArray(e)?e.map(k).join(" "):typeof e=="object"?Object.keys(e).filter(n=>e[n]).join(" "):""}var st="a",rt="abbr",ct="address",it="area",lt="article",pt="aside",St="audio",ut="b",dt="base",ft="bdi",Tt="bdo",yt="blockquote",xt="body",gt="br",ht="button",bt="canvas",mt="caption",Pt="cite",Et="code",At="col",Ct="colgroup",Nt="data",Mt="datalist",Rt="dd",Dt="del",Ot="details",vt="dfn",Lt="dialog",It="div",Vt="dl",Ft="dt",jt="em",Kt="embed",Ht="fieldset",kt="figcaption",Ut="figure",Gt="footer",Bt="form",_t="h1",qt="h2",wt="h3",Xt="h4",$t="h5",Yt="h6",Wt="head",Jt="header",Qt="hgroup",zt="hr",Zt="html",te="i",ee="iframe",ne="img",oe="input",ae="ins",se="kbd",re="label",ce="legend",ie="li",le="link",pe="main",Se="map",ue="mark",de="menu",fe="meta",Te="meter",ye="nav",xe="noscript",ge="object",he="ol",be="optgroup",me="option",Pe="output",Ee="p",Ae="picture",Ce="pre",Ne="progress",Me="q",Re="rp",De="rt",Oe="ruby",ve="s",Le="samp",Ie="script",Ve="search",Fe="section",je="select",Ke="slot",He="small",ke="source",Ue="span",Ge="strong",Be="style",_e="sub",qe="summary",we="sup",Xe="table",$e="tbody",Ye="td",We="template",Je="textarea",Qe="tfoot",ze="th",Ze="thead",tn="time",en="title",nn="tr",on="track",an="u",sn="ul",rn="var",cn="video",ln="wbr",pn="animate",Sn="animateMotion",un="animateTransform",dn="circle",fn="clipPath",Tn="defs",yn="desc",xn="ellipse",gn="feBlend",hn="feColorMatrix",bn="feComponentTransfer",mn="feComposite",Pn="feConvolveMatrix",En="feDiffuseLighting",An="feDisplacementMap",Cn="feDistantLight",Nn="feDropShadow",Mn="feFlood",Rn="feFuncA",Dn="feFuncB",On="feFuncG",vn="feFuncR",Ln="feGaussianBlur",In="feImage",Vn="feMerge",Fn="feMergeNode",jn="feMorphology",Kn="feOffset",Hn="fePointLight",kn="feSpecularLighting",Un="feSpotLight",Gn="feTile",Bn="feTurbulence",_n="filter",qn="foreignObject",wn="g",Xn="image",$n="line",Yn="linearGradient",Wn="marker",Jn="mask",Qn="metadata",zn="mpath",Zn="path",to="pattern",eo="polygon",no="polyline",oo="radialGradient",ao="rect",so="set",ro="stop",co="svg",io="switch",lo="symbol",po="text",So="textPath",uo="tspan",fo="use",To="view",yo="annotation",xo="annotation-xml",go="maction",ho="math",bo="merror",mo="mfrac",Po="mi",Eo="mmultiscripts",Ao="mn",Co="mo",No="mover",Mo="mpadded",Ro="mphantom",Do="mprescripts",Oo="mroot",vo="mrow",Lo="ms",Io="mspace",Vo="msqrt",Fo="mstyle",jo="msub",Ko="msubsup",Ho="msup",ko="mtable",Uo="mtd",Go="mtext",Bo="mtr",_o="munder",qo="munderover",wo="semantics";function Xo(...e){if(!e||e.length===0)return null;if(e.length===1)return e[0];let n=e[0];for(let s=1;s<e.length;s++){let a=n,t=e[s];if(!a)n=t;else if(t)if(typeof a=="string"&&typeof t=="string"){let o=a.split(" "),r=t.split(" "),p=new Set([...o,...r]);n=Array.from(p).join(" ").trim()}else if(typeof a=="string"&&Array.isArray(t)){let o=new Set([...t,...a.split(" ")]);n=Array.from(o).join(" ").trim()}else if(Array.isArray(a)&&typeof t=="string"){let o=new Set([...a,...t.split(" ")]);n=Array.from(o).join(" ").trim()}else if(Array.isArray(a)&&Array.isArray(t)){let o=new Set([...a,...t]);n=Array.from(o).join(" ").trim()}else if(typeof a=="string"&&typeof t=="object")n={[a]:!0,...t};else if(typeof a=="object"&&typeof t=="string")n={...a,[t]:!0};else if(typeof a=="object"&&typeof t=="object")n={...a,...t};else if(typeof a=="object"&&Array.isArray(t)){let o={...a};for(let r of t)o[r]=!0;n=o}else if(Array.isArray(a)&&typeof t=="object"){let o={};for(let r of a)o[r]=!0;for(let r of Object.keys(t))o[r]=t[r];n=o}else throw new Error(`cannot merge classes of ${a} (${typeof a}) and ${t} (${typeof t})`);else continue}return n}var U=document.createElement("div");function $o(...e){try{let n=U.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{U.style.cssText=""}}function Yo(e){return new V(e,[])}var V=class e{constructor(n,s){this.state=n;this.keys=s;function a(i,c){if(s.length>1){let d=0,l=c[s[d]];for((typeof l!="object"||l===null)&&(c[s[d]]=l={}),d=1;d<s.length-1;d++){let y=l;l=l[s[d]],(typeof l!="object"||l===null)&&(y[s[d]]=l={})}l[s[d]]=i}else s.length===1?typeof c[s[0]]=="object"&&typeof i=="object"?Object.assign(c[s[0]],i):c[s[0]]=i:Object.assign(c,i)}function t(i){let c={};return a(i,c),c}function o(){if(s.length===0)return n;let i=n?n[s[0]]:void 0;for(let c=1;c<s.length&&i;c++)i=i[s[c]];return i}function r(i){a(i,n)}function p(i){if(Array.isArray(i)){let c=[];for(let d of i)c.push(t(d));n.patch(c)}else n.patch(t(i))}return new Proxy(this,{get:(i,c,d)=>{if(c==="state")return n;if(c==="get")return o;if(c==="put")return r;if(c==="patch")return p;let l=[...i.keys,String(c)];return new e(i.state,l)}})}get(){throw"implemented in ctor"}put(n){throw"implemented in ctor"}patch(n){throw"implemented in ctor"}},F=class{constructor(n,s,a,t){this.state=n;this.get=s;this.put=a;this.patch=t}},j=class{constructor(n,s){this.state=n;this.path=s;this.keys=s.split(".")}keys;get(){let n=this.keys,s=this.state?this.state[n[0]]:void 0;for(let a=1;a<n.length&&s;a++)s=s[n[a]];return s}put(n){this.putDeep(n,this.state)}patch(n){if(Array.isArray(n)){let s=[];for(let a of n)s.push(this.createPatch(a));this.state.patch(s)}else this.state.patch(this.createPatch(n))}createPatch(n){let s={};return this.putDeep(n,s),s}putDeep(n,s){let a=this.keys;if(a.length>1){let t=0,o=s[a[t]];for((typeof o!="object"||o===null)&&(s[a[t]]=o={}),t=1;t<a.length-1;t++){let r=o;o=o[a[t]],(typeof o!="object"||o===null)&&(r[a[t]]=o={})}o[a[t]]=n}else typeof s[a[0]]=="object"&&typeof n=="object"?Object.assign(s[a[0]],n):s[a[0]]=n}};return Y(Wo);})();
1
+ "use strict";var V=(()=>{var D=Object.defineProperty;var _=Object.getOwnPropertyDescriptor;var q=Object.getOwnPropertyNames;var w=Object.prototype.hasOwnProperty;var X=(e,n)=>{for(var s in n)D(e,s,{get:n[s],enumerable:!0})},Y=(e,n,s,a)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of q(n))!w.call(e,t)&&t!==s&&D(e,t,{get:()=>n[t],enumerable:!(a=_(n,t))||a.enumerable});return e};var W=e=>Y(D({},"__esModule",{value:!0}),e);var Wo={};X(Wo,{A:()=>st,ABBR:()=>rt,ADDRESS:()=>ct,ANIMATE:()=>pn,ANIMATEMOTION:()=>Sn,ANIMATETRANSFORM:()=>fn,ANNOTATION:()=>yo,ANNOTATION_XML:()=>go,AREA:()=>it,ARTICLE:()=>lt,ASIDE:()=>pt,AUDIO:()=>St,B:()=>ft,BASE:()=>dt,BDI:()=>ut,BDO:()=>Tt,BLOCKQUOTE:()=>yt,BODY:()=>gt,BR:()=>xt,BUTTON:()=>ht,CANVAS:()=>mt,CAPTION:()=>bt,CIRCLE:()=>dn,CITE:()=>Et,CLIPPATH:()=>un,CODE:()=>Pt,COL:()=>At,COLGROUP:()=>Ct,DATA:()=>Mt,DATALIST:()=>Nt,DD:()=>Rt,DEFS:()=>Tn,DEL:()=>Ot,DESC:()=>yn,DETAILS:()=>Dt,DFN:()=>vt,DIALOG:()=>Lt,DIV:()=>It,DL:()=>Ft,DT:()=>Vt,ELLIPSE:()=>gn,EM:()=>Ht,EMBED:()=>jt,FEBLEND:()=>xn,FECOLORMATRIX:()=>hn,FECOMPONENTTRANSFER:()=>mn,FECOMPOSITE:()=>bn,FECONVOLVEMATRIX:()=>En,FEDIFFUSELIGHTING:()=>Pn,FEDISPLACEMENTMAP:()=>An,FEDISTANTLIGHT:()=>Cn,FEDROPSHADOW:()=>Mn,FEFLOOD:()=>Nn,FEFUNCA:()=>Rn,FEFUNCB:()=>On,FEFUNCG:()=>Dn,FEFUNCR:()=>vn,FEGAUSSIANBLUR:()=>Ln,FEIMAGE:()=>In,FEMERGE:()=>Fn,FEMERGENODE:()=>Vn,FEMORPHOLOGY:()=>Hn,FEOFFSET:()=>jn,FEPOINTLIGHT:()=>Un,FESPECULARLIGHTING:()=>Gn,FESPOTLIGHT:()=>kn,FETILE:()=>Bn,FETURBULENCE:()=>Kn,FIELDSET:()=>Ut,FIGCAPTION:()=>Gt,FIGURE:()=>kt,FILTER:()=>_n,FOOTER:()=>Bt,FOREIGNOBJECT:()=>qn,FORM:()=>Kt,G:()=>wn,H1:()=>_t,H2:()=>qt,H3:()=>wt,H4:()=>Xt,H5:()=>Yt,H6:()=>Wt,HEAD:()=>$t,HEADER:()=>Jt,HGROUP:()=>Qt,HR:()=>zt,HTML:()=>Zt,I:()=>te,IFRAME:()=>ee,IMAGE:()=>Xn,IMG:()=>ne,INPUT:()=>oe,INS:()=>ae,KBD:()=>se,LABEL:()=>re,LEGEND:()=>ce,LI:()=>ie,LINE:()=>Yn,LINEARGRADIENT:()=>Wn,LINK:()=>le,MACTION:()=>xo,MAIN:()=>pe,MAP:()=>Se,MARK:()=>fe,MARKER:()=>$n,MASK:()=>Jn,MATH:()=>ho,MENU:()=>de,MERROR:()=>mo,META:()=>ue,METADATA:()=>Qn,METER:()=>Te,MFRAC:()=>bo,MI:()=>Eo,MMULTISCRIPTS:()=>Po,MN:()=>Ao,MO:()=>Co,MOVER:()=>Mo,MPADDED:()=>No,MPATH:()=>zn,MPHANTOM:()=>Ro,MPRESCRIPTS:()=>Oo,MROOT:()=>Do,MROW:()=>vo,MS:()=>Lo,MSPACE:()=>Io,MSQRT:()=>Fo,MSTYLE:()=>Vo,MSUB:()=>Ho,MSUBSUP:()=>jo,MSUP:()=>Uo,MTABLE:()=>Go,MTD:()=>ko,MTEXT:()=>Bo,MTR:()=>Ko,MUNDER:()=>_o,MUNDEROVER:()=>qo,NAV:()=>ye,NOSCRIPT:()=>ge,OBJECT:()=>xe,OL:()=>he,OPTGROUP:()=>me,OPTION:()=>be,OUTPUT:()=>Ee,P:()=>Pe,PATH:()=>Zn,PATTERN:()=>to,PICTURE:()=>Ae,POLYGON:()=>eo,POLYLINE:()=>no,PRE:()=>Ce,PROGRESS:()=>Me,Q:()=>Ne,RADIALGRADIENT:()=>oo,RECT:()=>ao,RP:()=>Re,RT:()=>Oe,RUBY:()=>De,S:()=>ve,SAMP:()=>Le,SCRIPT:()=>Ie,SEARCH:()=>Fe,SECTION:()=>Ve,SELECT:()=>He,SEMANTICS:()=>wo,SET:()=>so,SLOT:()=>je,SMALL:()=>Ue,SOURCE:()=>Ge,SPAN:()=>ke,STOP:()=>ro,STRONG:()=>Be,STYLE:()=>Ke,SUB:()=>_e,SUMMARY:()=>qe,SUP:()=>we,SVG:()=>co,SWITCH:()=>io,SYMBOL:()=>lo,TABLE:()=>Xe,TBODY:()=>Ye,TD:()=>We,TEMPLATE:()=>$e,TEXT:()=>po,TEXTAREA:()=>Je,TEXTPATH:()=>So,TFOOT:()=>Qe,TH:()=>ze,THEAD:()=>Ze,TIME:()=>tn,TITLE:()=>en,TR:()=>nn,TRACK:()=>on,TSPAN:()=>fo,U:()=>an,UL:()=>sn,USE:()=>uo,VAR:()=>rn,VIDEO:()=>cn,VIEW:()=>To,WBR:()=>ln,app:()=>J,child:()=>nt,childCount:()=>et,children:()=>M,childrenStart:()=>O,context:()=>Yo,createPatch:()=>Z,createState:()=>z,defuse:()=>I,globals:()=>P,hydrate:()=>R,memo:()=>Q,mergeClass:()=>F,mergeProps:()=>Xo,mergeStyle:()=>V,props:()=>A,tag:()=>tt,vode:()=>$});var P={currentViewTransition:void 0,requestAnimationFrame:window.requestAnimationFrame?window.requestAnimationFrame.bind(window):(e=>e()),startViewTransition:document.startViewTransition?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:n?[e,n,...s]:[e,...s]}function J(e,n,s,...a){if(!e?.parentElement)throw new Error("first argument to app() must be a valid HTMLElement inside the <html></html> document");if(!n||typeof n!="object")throw new Error("second argument to app() must be a state object");if(typeof s!="function")throw new Error("third argument to app() must be a function that returns a vode");let t={};t.syncRenderer=P.requestAnimationFrame,t.asyncRenderer=P.startViewTransition,t.qSync=null,t.qAsync=null,t.stats={lastSyncRenderTime:0,lastAsyncRenderTime:0,syncRenderCount:0,asyncRenderCount:0,liveEffectCount:0,patchCount:0,syncRenderPatchCount:0,asyncRenderPatchCount:0};let o=n;Object.defineProperty(n,"patch",{enumerable:!1,configurable:!0,writable:!1,value:async(l,y)=>{if(!(!l||typeof l!="function"&&typeof l!="object"))if(t.stats.patchCount++,l?.next){let S=l;t.stats.liveEffectCount++;try{let u=await S.next();for(;u.done===!1;){t.stats.liveEffectCount++;try{o.patch(u.value,y),u=await S.next()}finally{t.stats.liveEffectCount--}}o.patch(u.value,y)}finally{t.stats.liveEffectCount--}}else if(l.then){t.stats.liveEffectCount++;try{let S=await l;o.patch(S,y)}finally{t.stats.liveEffectCount--}}else if(Array.isArray(l))if(l.length>0)for(let S of l)o.patch(S,!document.hidden&&!!t.asyncRenderer);else{t.qSync=E(t.qSync||{},t.qAsync,!1),t.qAsync=null;try{P.currentViewTransition?.skipTransition()}catch{}t.stats.syncRenderPatchCount++,t.renderSync()}else typeof l=="function"?o.patch(l(t.state),y):y?(t.stats.asyncRenderPatchCount++,t.qAsync=E(t.qAsync||{},l,!1),await t.renderAsync()):(t.stats.syncRenderPatchCount++,t.qSync=E(t.qSync||{},l,!1),t.renderSync())}});function r(l){let y=Date.now(),S=s(t.state);t.vode=C(t.state,e.parentElement,0,0,t.vode,S),e.tagName.toUpperCase()!==S[0].toUpperCase()&&(e=t.vode.node,e._vode=t),l||(t.stats.lastSyncRenderTime=Date.now()-y,t.stats.syncRenderCount++,t.isRendering=!1,t.qSync&&t.renderSync())}let p=r.bind(null,!1),i=r.bind(null,!0);Object.defineProperty(t,"renderSync",{enumerable:!1,configurable:!0,writable:!1,value:()=>{t.isRendering||!t.qSync||(t.isRendering=!0,t.state=E(t.state,t.qSync,!0),t.qSync=null,t.syncRenderer(p))}}),Object.defineProperty(t,"renderAsync",{enumerable:!1,configurable:!0,writable:!1,value:async()=>{if(t.isAnimating||!t.qAsync||(await P.currentViewTransition?.updateCallbackDone,t.isAnimating||!t.qAsync||document.hidden))return;t.isAnimating=!0;let l=Date.now();try{t.state=E(t.state,t.qAsync,!0),t.qAsync=null,P.currentViewTransition=t.asyncRenderer(i),await P.currentViewTransition?.updateCallbackDone}finally{t.stats.lastAsyncRenderTime=Date.now()-l,t.stats.asyncRenderCount++,t.isAnimating=!1}t.qAsync&&t.renderAsync()}}),t.state=o;let c=e;c._vode=t;let d=Array.from(e.parentElement.children).indexOf(e);t.vode=C(n,e.parentElement,d,d,R(e,!0),s(n));for(let l of a)o.patch(l);return l=>o.patch(l)}function I(e){if(e?._vode){let s=function(t){if(!t?.node)return;let o=A(t);if(o){for(let r in o)r[0]==="o"&&r[1]==="n"&&(t.node[r]=null);t.node.catch=null}if(t.node._vode)I(t.node);else{let r=M(t);if(r)for(let p of r)s(p)}};var n=s;let a=e._vode;delete e._vode,Object.defineProperty(a.state,"patch",{value:void 0}),Object.defineProperty(a,"renderSync",{value:()=>{}}),Object.defineProperty(a,"renderAsync",{value:()=>{}}),s(a.vode)}else for(let s of e.children)I(s)}function R(e,n){if(e?.nodeType===Node.TEXT_NODE)return e.nodeValue?.trim()!==""?n?e:e.nodeValue:void 0;if(e.nodeType===Node.COMMENT_NODE)return;if(e.nodeType===Node.ELEMENT_NODE){let a=[e.tagName.toLowerCase()];if(n&&(a.node=e),e?.hasAttributes()){let t={},o=e.attributes;for(let r of o)t[r.name]=r.value;a.push(t)}if(e.hasChildNodes()){let t=[];for(let o of e.childNodes){let r=o&&R(o,n);r?a.push(r):o&&n&&t.push(o)}for(let o of t)o.remove()}return a}else return}function Q(e,n){if(!e||!Array.isArray(e))throw new Error("first argument to memo() must be an array of values to compare");if(typeof n!="function")throw new Error("second argument to memo() must be a function that returns a vode or props object");return n.__memo=e,n}function z(e){if(!e||typeof e!="object")throw new Error("createState() must be called with a state object");return e}function Z(e){return e}function tt(e){return e?Array.isArray(e)?e[0]:typeof e=="string"||e.nodeType===Node.TEXT_NODE?"#text":void 0:void 0}function A(e){if(Array.isArray(e)&&e.length>1&&e[1]&&!Array.isArray(e[1])&&typeof e[1]=="object"&&e[1].nodeType!==Node.TEXT_NODE)return e[1]}function M(e){let n=O(e);return n>0?e.slice(n):null}function et(e){let n=O(e);return n<0?0:e.length-n}function nt(e,n){let s=O(e);if(s>0)return e[n+s]}function O(e){return A(e)?e.length>2?2:-1:Array.isArray(e)&&e.length>1?1:-1}function E(e,n,s){if(!n)return e;for(let a in n){let t=n[a];if(t&&typeof t=="object"){let o=e[a];o?Array.isArray(t)?e[a]=[...t]:t instanceof Date&&o!==t?e[a]=new Date(t):Array.isArray(o)?e[a]=E({},t,s):typeof o=="object"?E(e[a],t,s):e[a]=E({},t,s):Array.isArray(t)?e[a]=[...t]:t instanceof Date?e[a]=new Date(t):e[a]=E({},t,s)}else t===void 0&&s?delete e[a]:e[a]=t}return e}function C(e,n,s,a,t,o,r){try{o=v(e,o,t);let p=!o||typeof o=="number"||typeof o=="boolean";if(o===t||!t&&p)return t;let i=t?.nodeType===Node.TEXT_NODE,c=i?t:t?.node;if(p){c?.onUnmount&&e.patch(c.onUnmount(c)),c?.remove();return}let d=!p&&at(o),l=!p&&ot(o),y=!!o&&typeof o!="string"&&!!(o?.node||o?.nodeType===Node.TEXT_NODE);if(!d&&!l&&!y&&!t)throw new Error("Invalid vode: "+typeof o+" "+JSON.stringify(o));if(y&&d?o=o.wholeText:y&&l&&(o=[...o]),i&&d)return c.nodeValue!==o&&(c.nodeValue=o),t;if(d&&(!c||!i)){let S=document.createTextNode(o);if(c)c.onUnmount&&e.patch(c.onUnmount(c)),c.replaceWith(S);else{let u=!1;for(let f=a;f<n.childNodes.length;f++){let x=n.childNodes[f];if(x){x.before(S,x),u=!0;break}}u||n.appendChild(S)}return S}if(l&&(!c||i||t[0]!==o[0])){let S=o;1 in S&&(S[1]=v(e,S[1],void 0));let u=A(o);u?.xmlns!==void 0&&(r=u.xmlns);let f=r?document.createElementNS(r,o[0]):document.createElement(o[0]);if(o.node=f,L(e,f,void 0,u,r??null),u&&"catch"in u&&(o.node.catch=null,o.node.removeAttribute("catch")),c)c.onUnmount&&e.patch(c.onUnmount(c)),c.replaceWith(f);else{let h=!1;for(let g=a;g<n.childNodes.length;g++){let T=n.childNodes[g];if(T){T.before(f,T),h=!0;break}}h||n.appendChild(f)}let x=M(o);if(x){let h=u?2:1,g=0;for(let T=0;T<x.length;T++){let m=x[T],b=C(e,f,T,g,void 0,m,r??null);o[T+h]=b,b&&g++}}return f.onMount&&e.patch(f.onMount(f)),o}if(!i&&l&&t[0]===o[0]){o.node=c;let S=o,u=t,f=A(o),x=A(t);if(f?.xmlns!==void 0&&(r=f.xmlns),S[1]?.__memo){let T=S[1];S[1]=v(e,S[1],u[1]),T!==S[1]&&L(e,c,x,f,r)}else L(e,c,x,f,r);f?.catch&&x?.catch!==f.catch&&(o.node.catch=null,o.node.removeAttribute("catch"));let h=M(o),g=M(t);if(h){let T=f?2:1,m=0;for(let b=0;b<h.length;b++){let B=h[b],K=g&&g[b],j=C(e,c,b,m,K,B,r);o[b+T]=j,j&&m++}}if(g){let T=h?h.length:0;for(let m=g.length-1;m>=T;m--)C(e,c,m,m,g[m],void 0,r)}return o}}catch(p){let i=A(o)?.catch;if(i){let c=typeof i=="function"?i(e,p):i;return C(e,n,s,a,R(o?.node||t?.node,!0),c,r)}else throw p}}function ot(e){return Array.isArray(e)&&e.length>0&&typeof e[0]=="string"}function at(e){return typeof e=="string"||e?.nodeType===Node.TEXT_NODE}function v(e,n,s){if(typeof n!="function")return n;let a=n?.__memo,t=s?.__memo;if(Array.isArray(a)&&Array.isArray(t)&&a.length===t.length){let r=!0;for(let p=0;p<a.length;p++)if(a[p]!==t[p]){r=!1;break}if(r)return s}let o=U(n,e);return typeof o=="object"&&(o.__memo=n?.__memo),o}function U(e,n){return typeof e=="function"?U(e(n),n):e}function L(e,n,s,a,t){if(!a&&!s)return;let o=t!==void 0;if(s)for(let r in s){let p=s[r],i=a?.[r];p!==i&&(a?a[r]=N(e,n,r,p,i,o):N(e,n,r,p,void 0,o))}if(a&&s){for(let r in a)if(!(r in s)){let p=a[r];a[r]=N(e,n,r,void 0,p,o)}}else if(a)for(let r in a){let p=a[r];a[r]=N(e,n,r,void 0,p,o)}}function N(e,n,s,a,t,o){if(s==="style")if(!t)n.style.cssText="";else if(typeof t=="string")a!==t&&(n.style.cssText=t);else if(a&&typeof a=="object"){for(let r in a)t[r]||(n.style[r]=null);for(let r in t){let p=a[r],i=t[r];p!==i&&(n.style[r]=i)}}else for(let r in t)n.style[r]=t[r];else if(s==="class")t?n.setAttribute("class",G(t)):n.removeAttribute("class");else if(s[0]==="o"&&s[1]==="n")if(t){let r=null;if(typeof t=="function"){let p=t;r=i=>e.patch(p(e,i))}else typeof t=="object"&&(r=()=>e.patch(t));n[s]=r}else n[s]=null;else o||(n[s]=t),t==null||t===!1?n.removeAttribute(s):n.setAttribute(s,t);return t}function 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 st="a",rt="abbr",ct="address",it="area",lt="article",pt="aside",St="audio",ft="b",dt="base",ut="bdi",Tt="bdo",yt="blockquote",gt="body",xt="br",ht="button",mt="canvas",bt="caption",Et="cite",Pt="code",At="col",Ct="colgroup",Mt="data",Nt="datalist",Rt="dd",Ot="del",Dt="details",vt="dfn",Lt="dialog",It="div",Ft="dl",Vt="dt",Ht="em",jt="embed",Ut="fieldset",Gt="figcaption",kt="figure",Bt="footer",Kt="form",_t="h1",qt="h2",wt="h3",Xt="h4",Yt="h5",Wt="h6",$t="head",Jt="header",Qt="hgroup",zt="hr",Zt="html",te="i",ee="iframe",ne="img",oe="input",ae="ins",se="kbd",re="label",ce="legend",ie="li",le="link",pe="main",Se="map",fe="mark",de="menu",ue="meta",Te="meter",ye="nav",ge="noscript",xe="object",he="ol",me="optgroup",be="option",Ee="output",Pe="p",Ae="picture",Ce="pre",Me="progress",Ne="q",Re="rp",Oe="rt",De="ruby",ve="s",Le="samp",Ie="script",Fe="search",Ve="section",He="select",je="slot",Ue="small",Ge="source",ke="span",Be="strong",Ke="style",_e="sub",qe="summary",we="sup",Xe="table",Ye="tbody",We="td",$e="template",Je="textarea",Qe="tfoot",ze="th",Ze="thead",tn="time",en="title",nn="tr",on="track",an="u",sn="ul",rn="var",cn="video",ln="wbr",pn="animate",Sn="animateMotion",fn="animateTransform",dn="circle",un="clipPath",Tn="defs",yn="desc",gn="ellipse",xn="feBlend",hn="feColorMatrix",mn="feComponentTransfer",bn="feComposite",En="feConvolveMatrix",Pn="feDiffuseLighting",An="feDisplacementMap",Cn="feDistantLight",Mn="feDropShadow",Nn="feFlood",Rn="feFuncA",On="feFuncB",Dn="feFuncG",vn="feFuncR",Ln="feGaussianBlur",In="feImage",Fn="feMerge",Vn="feMergeNode",Hn="feMorphology",jn="feOffset",Un="fePointLight",Gn="feSpecularLighting",kn="feSpotLight",Bn="feTile",Kn="feTurbulence",_n="filter",qn="foreignObject",wn="g",Xn="image",Yn="line",Wn="linearGradient",$n="marker",Jn="mask",Qn="metadata",zn="mpath",Zn="path",to="pattern",eo="polygon",no="polyline",oo="radialGradient",ao="rect",so="set",ro="stop",co="svg",io="switch",lo="symbol",po="text",So="textPath",fo="tspan",uo="use",To="view",yo="annotation",go="annotation-xml",xo="maction",ho="math",mo="merror",bo="mfrac",Eo="mi",Po="mmultiscripts",Ao="mn",Co="mo",Mo="mover",No="mpadded",Ro="mphantom",Oo="mprescripts",Do="mroot",vo="mrow",Lo="ms",Io="mspace",Fo="msqrt",Vo="mstyle",Ho="msub",jo="msubsup",Uo="msup",Go="mtable",ko="mtd",Bo="mtext",Ko="mtr",_o="munder",qo="munderover",wo="semantics";function F(...e){if(!e||e.length===0)return null;if(e.length===1)return e[0];let n=e[0];for(let s=1;s<e.length;s++){let a=n,t=e[s];if(!a)n=t;else if(t)if(typeof a=="string"&&typeof t=="string"){let o=a.split(" "),r=t.split(" "),p=new Set([...o,...r]);n=Array.from(p).join(" ").trim()}else if(typeof a=="string"&&Array.isArray(t)){let o=new Set([...t,...a.split(" ")]);n=Array.from(o).join(" ").trim()}else if(Array.isArray(a)&&typeof t=="string"){let o=new Set([...a,...t.split(" ")]);n=Array.from(o).join(" ").trim()}else if(Array.isArray(a)&&Array.isArray(t)){let o=new Set([...a,...t]);n=Array.from(o).join(" ").trim()}else if(typeof a=="string"&&typeof t=="object")n={[a]:!0,...t};else if(typeof a=="object"&&typeof t=="string")n={...a,[t]:!0};else if(typeof a=="object"&&typeof t=="object")n={...a,...t};else if(typeof a=="object"&&Array.isArray(t)){let o={...a};for(let r of t)o[r]=!0;n=o}else if(Array.isArray(a)&&typeof t=="object"){let o={};for(let r of a)o[r]=!0;for(let r of Object.keys(t))o[r]=t[r];n=o}else throw new Error(`cannot merge classes of ${a} (${typeof a}) and ${t} (${typeof t})`);else continue}return n}var k=document.createElement("div");function V(...e){try{let n=k.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{k.style.cssText=""}}function Xo(...e){if(e.length===0)return;if(e.length===1)return e[0]||void 0;let n;for(let s of e)if(!(typeof s!="object"||s===null)){n||(n={});for(let a in s)a==="style"?n.style=V(n.style,s.style):a==="class"?n.class=F(n.class,s.class):n[a]=s[a]}return n}function Yo(e){return new H(e,[])}var H=class e{constructor(n,s){this.state=n;this.keys=s;function a(i,c){if(s.length>1){let d=0,l=c[s[d]];for((typeof l!="object"||l===null)&&(c[s[d]]=l={}),d=1;d<s.length-1;d++){let y=l;l=l[s[d]],(typeof l!="object"||l===null)&&(y[s[d]]=l={})}l[s[d]]=i}else s.length===1?typeof c[s[0]]=="object"&&typeof i=="object"?Object.assign(c[s[0]],i):c[s[0]]=i:Object.assign(c,i)}function t(i){let c={};return a(i,c),c}function o(){if(s.length===0)return n;let i=n?n[s[0]]:void 0;for(let c=1;c<s.length&&i;c++)i=i[s[c]];return i}function r(i){a(i,n)}function p(i){if(Array.isArray(i)){let c=[];for(let d of i)c.push(t(d));n.patch(c)}else n.patch(t(i))}return new Proxy(this,{get:(i,c,d)=>{if(c==="state")return n;if(c==="get")return o;if(c==="put")return r;if(c==="patch")return p;let l=[...i.keys,String(c)];return new e(i.state,l)}})}state;keys;get(){throw"implemented in ctor"}put(n){throw"implemented in ctor"}patch(n){throw"implemented in ctor"}};return W(Wo);})();
package/dist/vode.min.mjs CHANGED
@@ -1 +1 @@
1
- var E={currentViewTransition:void 0,requestAnimationFrame:window.requestAnimationFrame?window.requestAnimationFrame.bind(window):(e=>e()),startViewTransition:document.startViewTransition?document.startViewTransition.bind(document):null};function q(e,n,...s){if(!e)throw new Error("first argument to vode() must be a tag name or a vode");return Array.isArray(e)?e:n?[e,n,...s]:[e,...s]}function w(e,n,s,...a){if(!e?.parentElement)throw new Error("first argument to app() must be a valid HTMLElement inside the <html></html> document");if(!n||typeof n!="object")throw new Error("second argument to app() must be a state object");if(typeof s!="function")throw new Error("third argument to app() must be a function that returns a vode");let t={};t.syncRenderer=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};let o=n;Object.defineProperty(n,"patch",{enumerable:!1,configurable:!0,writable:!1,value:async(l,y)=>{if(!(!l||typeof l!="function"&&typeof l!="object"))if(t.stats.patchCount++,l?.next){let S=l;t.stats.liveEffectCount++;try{let f=await S.next();for(;f.done===!1;){t.stats.liveEffectCount++;try{o.patch(f.value,y),f=await S.next()}finally{t.stats.liveEffectCount--}}o.patch(f.value,y)}finally{t.stats.liveEffectCount--}}else if(l.then){t.stats.liveEffectCount++;try{let S=await l;o.patch(S,y)}finally{t.stats.liveEffectCount--}}else if(Array.isArray(l))if(l.length>0)for(let S of l)o.patch(S,!document.hidden&&!!t.asyncRenderer);else{t.qSync=P(t.qSync||{},t.qAsync,!1),t.qAsync=null;try{E.currentViewTransition?.skipTransition()}catch{}t.stats.syncRenderPatchCount++,t.renderSync()}else typeof l=="function"?o.patch(l(t.state),y):y?(t.stats.asyncRenderPatchCount++,t.qAsync=P(t.qAsync||{},l,!1),await t.renderAsync()):(t.stats.syncRenderPatchCount++,t.qSync=P(t.qSync||{},l,!1),t.renderSync())}});function r(l){let y=Date.now(),S=s(t.state);t.vode=C(t.state,e.parentElement,0,0,t.vode,S),e.tagName.toUpperCase()!==S[0].toUpperCase()&&(e=t.vode.node,e._vode=t),l||(t.stats.lastSyncRenderTime=Date.now()-y,t.stats.syncRenderCount++,t.isRendering=!1,t.qSync&&t.renderSync())}let p=r.bind(null,!1),i=r.bind(null,!0);Object.defineProperty(t,"renderSync",{enumerable:!1,configurable:!0,writable:!1,value:()=>{t.isRendering||!t.qSync||(t.isRendering=!0,t.state=P(t.state,t.qSync,!0),t.qSync=null,t.syncRenderer(p))}}),Object.defineProperty(t,"renderAsync",{enumerable:!1,configurable:!0,writable:!1,value:async()=>{if(t.isAnimating||!t.qAsync||(await E.currentViewTransition?.updateCallbackDone,t.isAnimating||!t.qAsync||document.hidden))return;t.isAnimating=!0;let l=Date.now();try{t.state=P(t.state,t.qAsync,!0),t.qAsync=null,E.currentViewTransition=t.asyncRenderer(i),await E.currentViewTransition?.updateCallbackDone}finally{t.stats.lastAsyncRenderTime=Date.now()-l,t.stats.asyncRenderCount++,t.isAnimating=!1}t.qAsync&&t.renderAsync()}}),t.state=o;let c=e;c._vode=t;let d=Array.from(e.parentElement.children).indexOf(e);t.vode=C(n,e.parentElement,d,d,O(e,!0),s(n));for(let l of a)o.patch(l);return l=>o.patch(l)}function V(e){if(e?._vode){let s=function(t){if(!t?.node)return;let o=A(t);if(o){for(let r in o)r[0]==="o"&&r[1]==="n"&&(t.node[r]=null);t.node.catch=null}if(t.node._vode)V(t.node);else{let r=M(t);if(r)for(let p of r)s(p)}};var n=s;let a=e._vode;delete e._vode,Object.defineProperty(a.state,"patch",{value:void 0}),Object.defineProperty(a,"renderSync",{value:()=>{}}),Object.defineProperty(a,"renderAsync",{value:()=>{}}),s(a.vode)}else for(let s of e.children)V(s)}function O(e,n){if(e?.nodeType===Node.TEXT_NODE)return e.nodeValue?.trim()!==""?n?e:e.nodeValue:void 0;if(e.nodeType===Node.COMMENT_NODE)return;if(e.nodeType===Node.ELEMENT_NODE){let a=[e.tagName.toLowerCase()];if(n&&(a.node=e),e?.hasAttributes()){let t={},o=e.attributes;for(let r of o)t[r.name]=r.value;a.push(t)}if(e.hasChildNodes()){let t=[];for(let o of e.childNodes){let r=o&&O(o,n);r?a.push(r):o&&n&&t.push(o)}for(let o of t)o.remove()}return a}else return}function 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 A(e){if(Array.isArray(e)&&e.length>1&&e[1]&&!Array.isArray(e[1])&&typeof e[1]=="object"&&e[1].nodeType!==Node.TEXT_NODE)return e[1]}function M(e){let n=v(e);return n>0?e.slice(n):null}function J(e){let n=v(e);return n<0?0:e.length-n}function Q(e,n){let s=v(e);if(s>0)return e[n+s]}function v(e){return A(e)?e.length>2?2:-1:Array.isArray(e)&&e.length>1?1:-1}function P(e,n,s){if(!n)return e;for(let a in n){let t=n[a];if(t&&typeof t=="object"){let o=e[a];o?Array.isArray(t)?e[a]=[...t]:t instanceof Date&&o!==t?e[a]=new Date(t):Array.isArray(o)?e[a]=P({},t,s):typeof o=="object"?P(e[a],t,s):e[a]=P({},t,s):Array.isArray(t)?e[a]=[...t]:t instanceof Date?e[a]=new Date(t):e[a]=P({},t,s)}else t===void 0&&s?delete e[a]:e[a]=t}return e}function C(e,n,s,a,t,o,r){try{o=R(e,o,t);let p=!o||typeof o=="number"||typeof o=="boolean";if(o===t||!t&&p)return t;let i=t?.nodeType===Node.TEXT_NODE,c=i?t:t?.node;if(p){c?.onUnmount&&e.patch(c.onUnmount(c)),c?.remove();return}let d=!p&&_(o),l=!p&&B(o),y=!!o&&typeof o!="string"&&!!(o?.node||o?.nodeType===Node.TEXT_NODE);if(!d&&!l&&!y&&!t)throw new Error("Invalid vode: "+typeof o+" "+JSON.stringify(o));if(y&&d?o=o.wholeText:y&&l&&(o=[...o]),i&&d)return c.nodeValue!==o&&(c.nodeValue=o),t;if(d&&(!c||!i)){let S=document.createTextNode(o);if(c)c.onUnmount&&e.patch(c.onUnmount(c)),c.replaceWith(S);else{let f=!1;for(let u=a;u<n.childNodes.length;u++){let g=n.childNodes[u];if(g){g.before(S,g),f=!0;break}}f||n.appendChild(S)}return S}if(l&&(!c||i||t[0]!==o[0])){let S=o;1 in S&&(S[1]=R(e,S[1],void 0));let f=A(o);f?.xmlns!==void 0&&(r=f.xmlns);let u=r?document.createElementNS(r,o[0]):document.createElement(o[0]);if(o.node=u,D(e,u,void 0,f,r??null),f&&"catch"in f&&(o.node.catch=null,o.node.removeAttribute("catch")),c)c.onUnmount&&e.patch(c.onUnmount(c)),c.replaceWith(u);else{let h=!1;for(let x=a;x<n.childNodes.length;x++){let T=n.childNodes[x];if(T){T.before(u,T),h=!0;break}}h||n.appendChild(u)}let g=M(o);if(g){let h=f?2:1,x=0;for(let T=0;T<g.length;T++){let b=g[T],m=C(e,u,T,x,void 0,b,r??null);o[T+h]=m,m&&x++}}return u.onMount&&e.patch(u.onMount(u)),o}if(!i&&l&&t[0]===o[0]){o.node=c;let S=o,f=t,u=A(o),g=A(t);if(u?.xmlns!==void 0&&(r=u.xmlns),S[1]?.__memo){let T=S[1];S[1]=R(e,S[1],f[1]),T!==S[1]&&D(e,c,g,u,r)}else D(e,c,g,u,r);u?.catch&&g?.catch!==u.catch&&(o.node.catch=null,o.node.removeAttribute("catch"));let h=M(o),x=M(t);if(h){let T=u?2:1,b=0;for(let m=0;m<h.length;m++){let U=h[m],G=x&&x[m],I=C(e,c,m,b,G,U,r);o[m+T]=I,I&&b++}}if(x){let T=h?h.length:0;for(let b=x.length-1;b>=T;b--)C(e,c,b,b,x[b],void 0,r)}return o}}catch(p){let i=A(o)?.catch;if(i){let c=typeof i=="function"?i(e,p):i;return C(e,n,s,a,O(o?.node||t?.node,!0),c,r)}else throw p}}function B(e){return Array.isArray(e)&&e.length>0&&typeof e[0]=="string"}function _(e){return typeof e=="string"||e?.nodeType===Node.TEXT_NODE}function R(e,n,s){if(typeof n!="function")return n;let a=n?.__memo,t=s?.__memo;if(Array.isArray(a)&&Array.isArray(t)&&a.length===t.length){let r=!0;for(let p=0;p<a.length;p++)if(a[p]!==t[p]){r=!1;break}if(r)return s}let o=F(n,e);return typeof o=="object"&&(o.__memo=n?.__memo),o}function F(e,n){return typeof e=="function"?F(e(n),n):e}function D(e,n,s,a,t){if(!a&&!s)return;let o=t!==void 0;if(s)for(let r in s){let p=s[r],i=a?.[r];p!==i&&(a?a[r]=N(e,n,r,p,i,o):N(e,n,r,p,void 0,o))}if(a&&s){for(let r in a)if(!(r in s)){let p=a[r];a[r]=N(e,n,r,void 0,p,o)}}else if(a)for(let r in a){let p=a[r];a[r]=N(e,n,r,void 0,p,o)}}function N(e,n,s,a,t,o){if(s==="style")if(!t)n.style.cssText="";else if(typeof t=="string")a!==t&&(n.style.cssText=t);else if(a&&typeof a=="object"){for(let r in a)t[r]||(n.style[r]=null);for(let r in t){let p=a[r],i=t[r];p!==i&&(n.style[r]=i)}}else for(let r in t)n.style[r]=t[r];else if(s==="class")t?n.setAttribute("class",j(t)):n.removeAttribute("class");else if(s[0]==="o"&&s[1]==="n")if(t){let r=null;if(typeof t=="function"){let p=t;r=i=>e.patch(p(e,i))}else typeof t=="object"&&(r=()=>e.patch(t));n[s]=r}else n[s]=null;else o||(n[s]=t),t==null||t===!1?n.removeAttribute(s):n.setAttribute(s,t);return t}function j(e){return typeof e=="string"?e:Array.isArray(e)?e.map(j).join(" "):typeof e=="object"?Object.keys(e).filter(n=>e[n]).join(" "):""}var Z="a",tt="abbr",et="address",nt="area",ot="article",at="aside",st="audio",rt="b",ct="base",it="bdi",lt="bdo",pt="blockquote",St="body",ut="br",dt="button",ft="canvas",Tt="caption",yt="cite",xt="code",gt="col",ht="colgroup",bt="data",mt="datalist",Pt="dd",Et="del",At="details",Ct="dfn",Nt="dialog",Mt="div",Rt="dl",Dt="dt",Ot="em",vt="embed",Lt="fieldset",It="figcaption",Vt="figure",Ft="footer",jt="form",Kt="h1",Ht="h2",kt="h3",Ut="h4",Gt="h5",Bt="h6",_t="head",qt="header",wt="hgroup",Xt="hr",$t="html",Yt="i",Wt="iframe",Jt="img",Qt="input",zt="ins",Zt="kbd",te="label",ee="legend",ne="li",oe="link",ae="main",se="map",re="mark",ce="menu",ie="meta",le="meter",pe="nav",Se="noscript",ue="object",de="ol",fe="optgroup",Te="option",ye="output",xe="p",ge="picture",he="pre",be="progress",me="q",Pe="rp",Ee="rt",Ae="ruby",Ce="s",Ne="samp",Me="script",Re="search",De="section",Oe="select",ve="slot",Le="small",Ie="source",Ve="span",Fe="strong",je="style",Ke="sub",He="summary",ke="sup",Ue="table",Ge="tbody",Be="td",_e="template",qe="textarea",we="tfoot",Xe="th",$e="thead",Ye="time",We="title",Je="tr",Qe="track",ze="u",Ze="ul",tn="var",en="video",nn="wbr",on="animate",an="animateMotion",sn="animateTransform",rn="circle",cn="clipPath",ln="defs",pn="desc",Sn="ellipse",un="feBlend",dn="feColorMatrix",fn="feComponentTransfer",Tn="feComposite",yn="feConvolveMatrix",xn="feDiffuseLighting",gn="feDisplacementMap",hn="feDistantLight",bn="feDropShadow",mn="feFlood",Pn="feFuncA",En="feFuncB",An="feFuncG",Cn="feFuncR",Nn="feGaussianBlur",Mn="feImage",Rn="feMerge",Dn="feMergeNode",On="feMorphology",vn="feOffset",Ln="fePointLight",In="feSpecularLighting",Vn="feSpotLight",Fn="feTile",jn="feTurbulence",Kn="filter",Hn="foreignObject",kn="g",Un="image",Gn="line",Bn="linearGradient",_n="marker",qn="mask",wn="metadata",Xn="mpath",$n="path",Yn="pattern",Wn="polygon",Jn="polyline",Qn="radialGradient",zn="rect",Zn="set",to="stop",eo="svg",no="switch",oo="symbol",ao="text",so="textPath",ro="tspan",co="use",io="view",lo="annotation",po="annotation-xml",So="maction",uo="math",fo="merror",To="mfrac",yo="mi",xo="mmultiscripts",go="mn",ho="mo",bo="mover",mo="mpadded",Po="mphantom",Eo="mprescripts",Ao="mroot",Co="mrow",No="ms",Mo="mspace",Ro="msqrt",Do="mstyle",Oo="msub",vo="msubsup",Lo="msup",Io="mtable",Vo="mtd",Fo="mtext",jo="mtr",Ko="munder",Ho="munderover",ko="semantics";function Go(...e){if(!e||e.length===0)return null;if(e.length===1)return e[0];let n=e[0];for(let s=1;s<e.length;s++){let a=n,t=e[s];if(!a)n=t;else if(t)if(typeof a=="string"&&typeof t=="string"){let o=a.split(" "),r=t.split(" "),p=new Set([...o,...r]);n=Array.from(p).join(" ").trim()}else if(typeof a=="string"&&Array.isArray(t)){let o=new Set([...t,...a.split(" ")]);n=Array.from(o).join(" ").trim()}else if(Array.isArray(a)&&typeof t=="string"){let o=new Set([...a,...t.split(" ")]);n=Array.from(o).join(" ").trim()}else if(Array.isArray(a)&&Array.isArray(t)){let o=new Set([...a,...t]);n=Array.from(o).join(" ").trim()}else if(typeof a=="string"&&typeof t=="object")n={[a]:!0,...t};else if(typeof a=="object"&&typeof t=="string")n={...a,[t]:!0};else if(typeof a=="object"&&typeof t=="object")n={...a,...t};else if(typeof a=="object"&&Array.isArray(t)){let o={...a};for(let r of t)o[r]=!0;n=o}else if(Array.isArray(a)&&typeof t=="object"){let o={};for(let r of a)o[r]=!0;for(let r of Object.keys(t))o[r]=t[r];n=o}else throw new Error(`cannot merge classes of ${a} (${typeof a}) and ${t} (${typeof t})`);else continue}return n}var K=document.createElement("div");function _o(...e){try{let n=K.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{K.style.cssText=""}}function wo(e){return new L(e,[])}var L=class e{constructor(n,s){this.state=n;this.keys=s;function a(i,c){if(s.length>1){let d=0,l=c[s[d]];for((typeof l!="object"||l===null)&&(c[s[d]]=l={}),d=1;d<s.length-1;d++){let y=l;l=l[s[d]],(typeof l!="object"||l===null)&&(y[s[d]]=l={})}l[s[d]]=i}else s.length===1?typeof c[s[0]]=="object"&&typeof i=="object"?Object.assign(c[s[0]],i):c[s[0]]=i:Object.assign(c,i)}function t(i){let c={};return a(i,c),c}function o(){if(s.length===0)return n;let i=n?n[s[0]]:void 0;for(let c=1;c<s.length&&i;c++)i=i[s[c]];return i}function r(i){a(i,n)}function p(i){if(Array.isArray(i)){let c=[];for(let d of i)c.push(t(d));n.patch(c)}else n.patch(t(i))}return new Proxy(this,{get:(i,c,d)=>{if(c==="state")return n;if(c==="get")return o;if(c==="put")return r;if(c==="patch")return p;let l=[...i.keys,String(c)];return new e(i.state,l)}})}get(){throw"implemented in ctor"}put(n){throw"implemented in ctor"}patch(n){throw"implemented in ctor"}},H=class{constructor(n,s,a,t){this.state=n;this.get=s;this.put=a;this.patch=t}},k=class{constructor(n,s){this.state=n;this.path=s;this.keys=s.split(".")}keys;get(){let n=this.keys,s=this.state?this.state[n[0]]:void 0;for(let a=1;a<n.length&&s;a++)s=s[n[a]];return s}put(n){this.putDeep(n,this.state)}patch(n){if(Array.isArray(n)){let s=[];for(let a of n)s.push(this.createPatch(a));this.state.patch(s)}else this.state.patch(this.createPatch(n))}createPatch(n){let s={};return this.putDeep(n,s),s}putDeep(n,s){let a=this.keys;if(a.length>1){let t=0,o=s[a[t]];for((typeof o!="object"||o===null)&&(s[a[t]]=o={}),t=1;t<a.length-1;t++){let r=o;o=o[a[t]],(typeof o!="object"||o===null)&&(r[a[t]]=o={})}o[a[t]]=n}else typeof s[a[0]]=="object"&&typeof n=="object"?Object.assign(s[a[0]],n):s[a[0]]=n}};export{Z as A,tt as ABBR,et as ADDRESS,on as ANIMATE,an as ANIMATEMOTION,sn as ANIMATETRANSFORM,lo as ANNOTATION,po as ANNOTATION_XML,nt as AREA,ot as ARTICLE,at as ASIDE,st as AUDIO,rt as B,ct as BASE,it as BDI,lt as BDO,pt as BLOCKQUOTE,St as BODY,ut as BR,dt as BUTTON,ft as CANVAS,Tt as CAPTION,rn as CIRCLE,yt as CITE,cn as CLIPPATH,xt as CODE,gt as COL,ht as COLGROUP,bt as DATA,mt as DATALIST,Pt as DD,ln as DEFS,Et as DEL,pn as DESC,At as DETAILS,Ct as DFN,Nt as DIALOG,Mt as DIV,Rt as DL,Dt as DT,H as DelegateStateContext,Sn as ELLIPSE,Ot as EM,vt as EMBED,un as FEBLEND,dn as FECOLORMATRIX,fn as FECOMPONENTTRANSFER,Tn as FECOMPOSITE,yn as FECONVOLVEMATRIX,xn as FEDIFFUSELIGHTING,gn as FEDISPLACEMENTMAP,hn as FEDISTANTLIGHT,bn as FEDROPSHADOW,mn as FEFLOOD,Pn as FEFUNCA,En as FEFUNCB,An as FEFUNCG,Cn as FEFUNCR,Nn as FEGAUSSIANBLUR,Mn as FEIMAGE,Rn as FEMERGE,Dn as FEMERGENODE,On as FEMORPHOLOGY,vn as FEOFFSET,Ln as FEPOINTLIGHT,In as FESPECULARLIGHTING,Vn as FESPOTLIGHT,Fn as FETILE,jn as FETURBULENCE,Lt as FIELDSET,It as FIGCAPTION,Vt as FIGURE,Kn as FILTER,Ft as FOOTER,Hn as FOREIGNOBJECT,jt as FORM,kn as G,Kt as H1,Ht as H2,kt as H3,Ut as H4,Gt as H5,Bt as H6,_t as HEAD,qt as HEADER,wt as HGROUP,Xt as HR,$t as HTML,Yt as I,Wt as IFRAME,Un as IMAGE,Jt as IMG,Qt as INPUT,zt as INS,Zt as KBD,k as KeyStateContext,te as LABEL,ee as LEGEND,ne as LI,Gn as LINE,Bn as LINEARGRADIENT,oe as LINK,So as MACTION,ae as MAIN,se as MAP,re as MARK,_n as MARKER,qn as MASK,uo as MATH,ce as MENU,fo as MERROR,ie as META,wn as METADATA,le as METER,To as MFRAC,yo as MI,xo as MMULTISCRIPTS,go as MN,ho as MO,bo as MOVER,mo as MPADDED,Xn as MPATH,Po as MPHANTOM,Eo as MPRESCRIPTS,Ao as MROOT,Co as MROW,No as MS,Mo as MSPACE,Ro as MSQRT,Do as MSTYLE,Oo as MSUB,vo as MSUBSUP,Lo as MSUP,Io as MTABLE,Vo as MTD,Fo as MTEXT,jo as MTR,Ko as MUNDER,Ho as MUNDEROVER,pe as NAV,Se as NOSCRIPT,ue as OBJECT,de as OL,fe as OPTGROUP,Te as OPTION,ye as OUTPUT,xe as P,$n as PATH,Yn as PATTERN,ge as PICTURE,Wn as POLYGON,Jn as POLYLINE,he as PRE,be as PROGRESS,me as Q,Qn as RADIALGRADIENT,zn as RECT,Pe as RP,Ee as RT,Ae as RUBY,Ce as S,Ne as SAMP,Me as SCRIPT,Re as SEARCH,De as SECTION,Oe as SELECT,ko as SEMANTICS,Zn as SET,ve as SLOT,Le as SMALL,Ie as SOURCE,Ve as SPAN,to as STOP,Fe as STRONG,je as STYLE,Ke as SUB,He as SUMMARY,ke as SUP,eo as SVG,no as SWITCH,oo as SYMBOL,Ue as TABLE,Ge as TBODY,Be as TD,_e as TEMPLATE,ao as TEXT,qe as TEXTAREA,so as TEXTPATH,we as TFOOT,Xe as TH,$e as THEAD,Ye as TIME,We as TITLE,Je as TR,Qe as TRACK,ro as TSPAN,ze as U,Ze as UL,co as USE,tn as VAR,en as VIDEO,io as VIEW,nn as WBR,w as app,Q as child,J as childCount,M as children,v as childrenStart,wo as context,Y as createPatch,$ as createState,V as defuse,E as globals,O as hydrate,X as memo,Go as mergeClass,_o as mergeStyle,A as props,W as tag,q as vode};
1
+ var P={currentViewTransition:void 0,requestAnimationFrame:window.requestAnimationFrame?window.requestAnimationFrame.bind(window):(e=>e()),startViewTransition:document.startViewTransition?document.startViewTransition.bind(document):null};function q(e,n,...s){if(!e)throw new Error("first argument to vode() must be a tag name or a vode");return Array.isArray(e)?e:n?[e,n,...s]:[e,...s]}function w(e,n,s,...a){if(!e?.parentElement)throw new Error("first argument to app() must be a valid HTMLElement inside the <html></html> document");if(!n||typeof n!="object")throw new Error("second argument to app() must be a state object");if(typeof s!="function")throw new Error("third argument to app() must be a function that returns a vode");let t={};t.syncRenderer=P.requestAnimationFrame,t.asyncRenderer=P.startViewTransition,t.qSync=null,t.qAsync=null,t.stats={lastSyncRenderTime:0,lastAsyncRenderTime:0,syncRenderCount:0,asyncRenderCount:0,liveEffectCount:0,patchCount:0,syncRenderPatchCount:0,asyncRenderPatchCount:0};let o=n;Object.defineProperty(n,"patch",{enumerable:!1,configurable:!0,writable:!1,value:async(l,y)=>{if(!(!l||typeof l!="function"&&typeof l!="object"))if(t.stats.patchCount++,l?.next){let S=l;t.stats.liveEffectCount++;try{let u=await S.next();for(;u.done===!1;){t.stats.liveEffectCount++;try{o.patch(u.value,y),u=await S.next()}finally{t.stats.liveEffectCount--}}o.patch(u.value,y)}finally{t.stats.liveEffectCount--}}else if(l.then){t.stats.liveEffectCount++;try{let S=await l;o.patch(S,y)}finally{t.stats.liveEffectCount--}}else if(Array.isArray(l))if(l.length>0)for(let S of l)o.patch(S,!document.hidden&&!!t.asyncRenderer);else{t.qSync=E(t.qSync||{},t.qAsync,!1),t.qAsync=null;try{P.currentViewTransition?.skipTransition()}catch{}t.stats.syncRenderPatchCount++,t.renderSync()}else typeof l=="function"?o.patch(l(t.state),y):y?(t.stats.asyncRenderPatchCount++,t.qAsync=E(t.qAsync||{},l,!1),await t.renderAsync()):(t.stats.syncRenderPatchCount++,t.qSync=E(t.qSync||{},l,!1),t.renderSync())}});function r(l){let y=Date.now(),S=s(t.state);t.vode=C(t.state,e.parentElement,0,0,t.vode,S),e.tagName.toUpperCase()!==S[0].toUpperCase()&&(e=t.vode.node,e._vode=t),l||(t.stats.lastSyncRenderTime=Date.now()-y,t.stats.syncRenderCount++,t.isRendering=!1,t.qSync&&t.renderSync())}let p=r.bind(null,!1),i=r.bind(null,!0);Object.defineProperty(t,"renderSync",{enumerable:!1,configurable:!0,writable:!1,value:()=>{t.isRendering||!t.qSync||(t.isRendering=!0,t.state=E(t.state,t.qSync,!0),t.qSync=null,t.syncRenderer(p))}}),Object.defineProperty(t,"renderAsync",{enumerable:!1,configurable:!0,writable:!1,value:async()=>{if(t.isAnimating||!t.qAsync||(await P.currentViewTransition?.updateCallbackDone,t.isAnimating||!t.qAsync||document.hidden))return;t.isAnimating=!0;let l=Date.now();try{t.state=E(t.state,t.qAsync,!0),t.qAsync=null,P.currentViewTransition=t.asyncRenderer(i),await P.currentViewTransition?.updateCallbackDone}finally{t.stats.lastAsyncRenderTime=Date.now()-l,t.stats.asyncRenderCount++,t.isAnimating=!1}t.qAsync&&t.renderAsync()}}),t.state=o;let c=e;c._vode=t;let d=Array.from(e.parentElement.children).indexOf(e);t.vode=C(n,e.parentElement,d,d,D(e,!0),s(n));for(let l of a)o.patch(l);return l=>o.patch(l)}function F(e){if(e?._vode){let s=function(t){if(!t?.node)return;let o=A(t);if(o){for(let r in o)r[0]==="o"&&r[1]==="n"&&(t.node[r]=null);t.node.catch=null}if(t.node._vode)F(t.node);else{let r=N(t);if(r)for(let p of r)s(p)}};var n=s;let a=e._vode;delete e._vode,Object.defineProperty(a.state,"patch",{value:void 0}),Object.defineProperty(a,"renderSync",{value:()=>{}}),Object.defineProperty(a,"renderAsync",{value:()=>{}}),s(a.vode)}else for(let s of e.children)F(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.COMMENT_NODE)return;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 X(e,n){if(!e||!Array.isArray(e))throw new Error("first argument to memo() must be an array of values to compare");if(typeof n!="function")throw new Error("second argument to memo() must be a function that returns a vode or props object");return n.__memo=e,n}function Y(e){if(!e||typeof e!="object")throw new Error("createState() must be called with a state object");return e}function W(e){return e}function $(e){return e?Array.isArray(e)?e[0]:typeof e=="string"||e.nodeType===Node.TEXT_NODE?"#text":void 0:void 0}function A(e){if(Array.isArray(e)&&e.length>1&&e[1]&&!Array.isArray(e[1])&&typeof e[1]=="object"&&e[1].nodeType!==Node.TEXT_NODE)return e[1]}function N(e){let n=v(e);return n>0?e.slice(n):null}function J(e){let n=v(e);return n<0?0:e.length-n}function Q(e,n){let s=v(e);if(s>0)return e[n+s]}function v(e){return A(e)?e.length>2?2:-1:Array.isArray(e)&&e.length>1?1:-1}function E(e,n,s){if(!n)return e;for(let a in n){let t=n[a];if(t&&typeof t=="object"){let o=e[a];o?Array.isArray(t)?e[a]=[...t]:t instanceof Date&&o!==t?e[a]=new Date(t):Array.isArray(o)?e[a]=E({},t,s):typeof o=="object"?E(e[a],t,s):e[a]=E({},t,s):Array.isArray(t)?e[a]=[...t]:t instanceof Date?e[a]=new Date(t):e[a]=E({},t,s)}else t===void 0&&s?delete e[a]:e[a]=t}return e}function C(e,n,s,a,t,o,r){try{o=R(e,o,t);let p=!o||typeof o=="number"||typeof o=="boolean";if(o===t||!t&&p)return t;let i=t?.nodeType===Node.TEXT_NODE,c=i?t:t?.node;if(p){c?.onUnmount&&e.patch(c.onUnmount(c)),c?.remove();return}let d=!p&&_(o),l=!p&&K(o),y=!!o&&typeof o!="string"&&!!(o?.node||o?.nodeType===Node.TEXT_NODE);if(!d&&!l&&!y&&!t)throw new Error("Invalid vode: "+typeof o+" "+JSON.stringify(o));if(y&&d?o=o.wholeText:y&&l&&(o=[...o]),i&&d)return c.nodeValue!==o&&(c.nodeValue=o),t;if(d&&(!c||!i)){let S=document.createTextNode(o);if(c)c.onUnmount&&e.patch(c.onUnmount(c)),c.replaceWith(S);else{let u=!1;for(let f=a;f<n.childNodes.length;f++){let x=n.childNodes[f];if(x){x.before(S,x),u=!0;break}}u||n.appendChild(S)}return S}if(l&&(!c||i||t[0]!==o[0])){let S=o;1 in S&&(S[1]=R(e,S[1],void 0));let u=A(o);u?.xmlns!==void 0&&(r=u.xmlns);let f=r?document.createElementNS(r,o[0]):document.createElement(o[0]);if(o.node=f,O(e,f,void 0,u,r??null),u&&"catch"in u&&(o.node.catch=null,o.node.removeAttribute("catch")),c)c.onUnmount&&e.patch(c.onUnmount(c)),c.replaceWith(f);else{let h=!1;for(let g=a;g<n.childNodes.length;g++){let T=n.childNodes[g];if(T){T.before(f,T),h=!0;break}}h||n.appendChild(f)}let x=N(o);if(x){let h=u?2:1,g=0;for(let T=0;T<x.length;T++){let m=x[T],b=C(e,f,T,g,void 0,m,r??null);o[T+h]=b,b&&g++}}return f.onMount&&e.patch(f.onMount(f)),o}if(!i&&l&&t[0]===o[0]){o.node=c;let S=o,u=t,f=A(o),x=A(t);if(f?.xmlns!==void 0&&(r=f.xmlns),S[1]?.__memo){let T=S[1];S[1]=R(e,S[1],u[1]),T!==S[1]&&O(e,c,x,f,r)}else O(e,c,x,f,r);f?.catch&&x?.catch!==f.catch&&(o.node.catch=null,o.node.removeAttribute("catch"));let h=N(o),g=N(t);if(h){let T=f?2:1,m=0;for(let b=0;b<h.length;b++){let k=h[b],B=g&&g[b],I=C(e,c,b,m,B,k,r);o[b+T]=I,I&&m++}}if(g){let T=h?h.length:0;for(let m=g.length-1;m>=T;m--)C(e,c,m,m,g[m],void 0,r)}return o}}catch(p){let i=A(o)?.catch;if(i){let c=typeof i=="function"?i(e,p):i;return C(e,n,s,a,D(o?.node||t?.node,!0),c,r)}else throw p}}function K(e){return Array.isArray(e)&&e.length>0&&typeof e[0]=="string"}function _(e){return typeof e=="string"||e?.nodeType===Node.TEXT_NODE}function R(e,n,s){if(typeof n!="function")return n;let a=n?.__memo,t=s?.__memo;if(Array.isArray(a)&&Array.isArray(t)&&a.length===t.length){let r=!0;for(let p=0;p<a.length;p++)if(a[p]!==t[p]){r=!1;break}if(r)return s}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 O(e,n,s,a,t){if(!a&&!s)return;let o=t!==void 0;if(s)for(let r in s){let p=s[r],i=a?.[r];p!==i&&(a?a[r]=M(e,n,r,p,i,o):M(e,n,r,p,void 0,o))}if(a&&s){for(let r in a)if(!(r in s)){let p=a[r];a[r]=M(e,n,r,void 0,p,o)}}else if(a)for(let r in a){let p=a[r];a[r]=M(e,n,r,void 0,p,o)}}function M(e,n,s,a,t,o){if(s==="style")if(!t)n.style.cssText="";else if(typeof t=="string")a!==t&&(n.style.cssText=t);else if(a&&typeof a=="object"){for(let r in a)t[r]||(n.style[r]=null);for(let r in t){let p=a[r],i=t[r];p!==i&&(n.style[r]=i)}}else for(let r in t)n.style[r]=t[r];else if(s==="class")t?n.setAttribute("class",H(t)):n.removeAttribute("class");else if(s[0]==="o"&&s[1]==="n")if(t){let r=null;if(typeof t=="function"){let p=t;r=i=>e.patch(p(e,i))}else typeof t=="object"&&(r=()=>e.patch(t));n[s]=r}else n[s]=null;else o||(n[s]=t),t==null||t===!1?n.removeAttribute(s):n.setAttribute(s,t);return t}function H(e){return typeof e=="string"?e:Array.isArray(e)?e.map(H).join(" "):typeof e=="object"?Object.keys(e).filter(n=>e[n]).join(" "):""}var Z="a",tt="abbr",et="address",nt="area",ot="article",at="aside",st="audio",rt="b",ct="base",it="bdi",lt="bdo",pt="blockquote",St="body",ft="br",dt="button",ut="canvas",Tt="caption",yt="cite",gt="code",xt="col",ht="colgroup",mt="data",bt="datalist",Et="dd",Pt="del",At="details",Ct="dfn",Mt="dialog",Nt="div",Rt="dl",Ot="dt",Dt="em",vt="embed",Lt="fieldset",It="figcaption",Ft="figure",Vt="footer",Ht="form",jt="h1",Ut="h2",Gt="h3",kt="h4",Bt="h5",Kt="h6",_t="head",qt="header",wt="hgroup",Xt="hr",Yt="html",Wt="i",$t="iframe",Jt="img",Qt="input",zt="ins",Zt="kbd",te="label",ee="legend",ne="li",oe="link",ae="main",se="map",re="mark",ce="menu",ie="meta",le="meter",pe="nav",Se="noscript",fe="object",de="ol",ue="optgroup",Te="option",ye="output",ge="p",xe="picture",he="pre",me="progress",be="q",Ee="rp",Pe="rt",Ae="ruby",Ce="s",Me="samp",Ne="script",Re="search",Oe="section",De="select",ve="slot",Le="small",Ie="source",Fe="span",Ve="strong",He="style",je="sub",Ue="summary",Ge="sup",ke="table",Be="tbody",Ke="td",_e="template",qe="textarea",we="tfoot",Xe="th",Ye="thead",We="time",$e="title",Je="tr",Qe="track",ze="u",Ze="ul",tn="var",en="video",nn="wbr",on="animate",an="animateMotion",sn="animateTransform",rn="circle",cn="clipPath",ln="defs",pn="desc",Sn="ellipse",fn="feBlend",dn="feColorMatrix",un="feComponentTransfer",Tn="feComposite",yn="feConvolveMatrix",gn="feDiffuseLighting",xn="feDisplacementMap",hn="feDistantLight",mn="feDropShadow",bn="feFlood",En="feFuncA",Pn="feFuncB",An="feFuncG",Cn="feFuncR",Mn="feGaussianBlur",Nn="feImage",Rn="feMerge",On="feMergeNode",Dn="feMorphology",vn="feOffset",Ln="fePointLight",In="feSpecularLighting",Fn="feSpotLight",Vn="feTile",Hn="feTurbulence",jn="filter",Un="foreignObject",Gn="g",kn="image",Bn="line",Kn="linearGradient",_n="marker",qn="mask",wn="metadata",Xn="mpath",Yn="path",Wn="pattern",$n="polygon",Jn="polyline",Qn="radialGradient",zn="rect",Zn="set",to="stop",eo="svg",no="switch",oo="symbol",ao="text",so="textPath",ro="tspan",co="use",io="view",lo="annotation",po="annotation-xml",So="maction",fo="math",uo="merror",To="mfrac",yo="mi",go="mmultiscripts",xo="mn",ho="mo",mo="mover",bo="mpadded",Eo="mphantom",Po="mprescripts",Ao="mroot",Co="mrow",Mo="ms",No="mspace",Ro="msqrt",Oo="mstyle",Do="msub",vo="msubsup",Lo="msup",Io="mtable",Fo="mtd",Vo="mtext",Ho="mtr",jo="munder",Uo="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(" "),p=new Set([...o,...r]);n=Array.from(p).join(" ").trim()}else if(typeof a=="string"&&Array.isArray(t)){let o=new Set([...t,...a.split(" ")]);n=Array.from(o).join(" ").trim()}else if(Array.isArray(a)&&typeof t=="string"){let o=new Set([...a,...t.split(" ")]);n=Array.from(o).join(" ").trim()}else if(Array.isArray(a)&&Array.isArray(t)){let o=new Set([...a,...t]);n=Array.from(o).join(" ").trim()}else if(typeof a=="string"&&typeof t=="object")n={[a]:!0,...t};else if(typeof a=="object"&&typeof t=="string")n={...a,[t]:!0};else if(typeof a=="object"&&typeof t=="object")n={...a,...t};else if(typeof a=="object"&&Array.isArray(t)){let o={...a};for(let r of t)o[r]=!0;n=o}else if(Array.isArray(a)&&typeof t=="object"){let o={};for(let r of a)o[r]=!0;for(let r of Object.keys(t))o[r]=t[r];n=o}else throw new Error(`cannot merge classes of ${a} (${typeof a}) and ${t} (${typeof t})`);else continue}return n}var U=document.createElement("div");function G(...e){try{let n=U.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{U.style.cssText=""}}function wo(...e){if(e.length===0)return;if(e.length===1)return e[0]||void 0;let n;for(let s of e)if(!(typeof s!="object"||s===null)){n||(n={});for(let a in s)a==="style"?n.style=G(n.style,s.style):a==="class"?n.class=j(n.class,s.class):n[a]=s[a]}return n}function Yo(e){return new L(e,[])}var L=class e{constructor(n,s){this.state=n;this.keys=s;function a(i,c){if(s.length>1){let d=0,l=c[s[d]];for((typeof l!="object"||l===null)&&(c[s[d]]=l={}),d=1;d<s.length-1;d++){let y=l;l=l[s[d]],(typeof l!="object"||l===null)&&(y[s[d]]=l={})}l[s[d]]=i}else s.length===1?typeof c[s[0]]=="object"&&typeof i=="object"?Object.assign(c[s[0]],i):c[s[0]]=i:Object.assign(c,i)}function t(i){let c={};return a(i,c),c}function o(){if(s.length===0)return n;let i=n?n[s[0]]:void 0;for(let c=1;c<s.length&&i;c++)i=i[s[c]];return i}function r(i){a(i,n)}function p(i){if(Array.isArray(i)){let c=[];for(let d of i)c.push(t(d));n.patch(c)}else n.patch(t(i))}return new Proxy(this,{get:(i,c,d)=>{if(c==="state")return n;if(c==="get")return o;if(c==="put")return r;if(c==="patch")return p;let l=[...i.keys,String(c)];return new e(i.state,l)}})}state;keys;get(){throw"implemented in ctor"}put(n){throw"implemented in ctor"}patch(n){throw"implemented in ctor"}};export{Z as A,tt as ABBR,et as ADDRESS,on as ANIMATE,an as ANIMATEMOTION,sn as ANIMATETRANSFORM,lo as ANNOTATION,po as ANNOTATION_XML,nt as AREA,ot as ARTICLE,at as ASIDE,st as AUDIO,rt as B,ct as BASE,it as BDI,lt as BDO,pt as BLOCKQUOTE,St as BODY,ft as BR,dt as BUTTON,ut as CANVAS,Tt as CAPTION,rn as CIRCLE,yt as CITE,cn as CLIPPATH,gt as CODE,xt as COL,ht as COLGROUP,mt as DATA,bt as DATALIST,Et as DD,ln as DEFS,Pt as DEL,pn as DESC,At as DETAILS,Ct as DFN,Mt as DIALOG,Nt as DIV,Rt as DL,Ot as DT,Sn as ELLIPSE,Dt as EM,vt as EMBED,fn as FEBLEND,dn as FECOLORMATRIX,un as FECOMPONENTTRANSFER,Tn as FECOMPOSITE,yn as FECONVOLVEMATRIX,gn as FEDIFFUSELIGHTING,xn as FEDISPLACEMENTMAP,hn as FEDISTANTLIGHT,mn as FEDROPSHADOW,bn as FEFLOOD,En as FEFUNCA,Pn as FEFUNCB,An as FEFUNCG,Cn as FEFUNCR,Mn as FEGAUSSIANBLUR,Nn as FEIMAGE,Rn as FEMERGE,On as FEMERGENODE,Dn as FEMORPHOLOGY,vn as FEOFFSET,Ln as FEPOINTLIGHT,In as FESPECULARLIGHTING,Fn as FESPOTLIGHT,Vn as FETILE,Hn as FETURBULENCE,Lt as FIELDSET,It as FIGCAPTION,Ft as FIGURE,jn as FILTER,Vt as FOOTER,Un as FOREIGNOBJECT,Ht as FORM,Gn as G,jt as H1,Ut as H2,Gt as H3,kt as H4,Bt as H5,Kt as H6,_t as HEAD,qt as HEADER,wt as HGROUP,Xt as HR,Yt as HTML,Wt as I,$t as IFRAME,kn as IMAGE,Jt as IMG,Qt as INPUT,zt as INS,Zt as KBD,te as LABEL,ee as LEGEND,ne as LI,Bn as LINE,Kn as LINEARGRADIENT,oe as LINK,So as MACTION,ae as MAIN,se as MAP,re as MARK,_n as MARKER,qn as MASK,fo as MATH,ce as MENU,uo as MERROR,ie as META,wn as METADATA,le as METER,To as MFRAC,yo as MI,go as MMULTISCRIPTS,xo as MN,ho as MO,mo as MOVER,bo as MPADDED,Xn as MPATH,Eo as MPHANTOM,Po as MPRESCRIPTS,Ao as MROOT,Co as MROW,Mo as MS,No as MSPACE,Ro as MSQRT,Oo as MSTYLE,Do as MSUB,vo as MSUBSUP,Lo as MSUP,Io as MTABLE,Fo as MTD,Vo as MTEXT,Ho as MTR,jo as MUNDER,Uo as MUNDEROVER,pe as NAV,Se as NOSCRIPT,fe as OBJECT,de as OL,ue as OPTGROUP,Te as OPTION,ye as OUTPUT,ge as P,Yn as PATH,Wn as PATTERN,xe as PICTURE,$n as POLYGON,Jn as POLYLINE,he as PRE,me as PROGRESS,be as Q,Qn as RADIALGRADIENT,zn as RECT,Ee as RP,Pe as RT,Ae as RUBY,Ce as S,Me as SAMP,Ne as SCRIPT,Re as SEARCH,Oe as SECTION,De as SELECT,Go as SEMANTICS,Zn as SET,ve as SLOT,Le as SMALL,Ie as SOURCE,Fe as SPAN,to as STOP,Ve as STRONG,He as STYLE,je as SUB,Ue as SUMMARY,Ge as SUP,eo as SVG,no as SWITCH,oo as SYMBOL,ke as TABLE,Be as TBODY,Ke as TD,_e as TEMPLATE,ao as TEXT,qe as TEXTAREA,so as TEXTPATH,we as TFOOT,Xe as TH,Ye as THEAD,We as TIME,$e as TITLE,Je as TR,Qe as TRACK,ro as TSPAN,ze as U,Ze as UL,co as USE,tn as VAR,en as VIDEO,io as VIEW,nn as WBR,w as app,Q as child,J as childCount,N as children,v as childrenStart,Yo as context,W as createPatch,Y as createState,F as defuse,P as globals,D as hydrate,X as memo,j as mergeClass,wo as mergeProps,G as mergeStyle,A as props,$ as tag,q as vode};
package/dist/vode.mjs CHANGED
@@ -859,6 +859,27 @@ function mergeStyle(...props2) {
859
859
  }
860
860
  }
861
861
 
862
+ // src/merge-props.ts
863
+ function mergeProps(...props2) {
864
+ if (props2.length === 0) return void 0;
865
+ if (props2.length === 1) return props2[0] || void 0;
866
+ let combined;
867
+ for (const p of props2) {
868
+ if (typeof p !== "object" || p === null) continue;
869
+ if (!combined) combined = {};
870
+ for (const key in p) {
871
+ if (key === "style") {
872
+ combined.style = mergeStyle(combined.style, p.style);
873
+ } else if (key === "class") {
874
+ combined.class = mergeClass(combined.class, p.class);
875
+ } else {
876
+ combined[key] = p[key];
877
+ }
878
+ }
879
+ }
880
+ return combined;
881
+ }
882
+
862
883
  // src/state-context.ts
863
884
  function context(state) {
864
885
  return new ProxyStateContextImpl(state, []);
@@ -934,6 +955,8 @@ var ProxyStateContextImpl = class _ProxyStateContextImpl {
934
955
  }
935
956
  });
936
957
  }
958
+ state;
959
+ keys;
937
960
  get() {
938
961
  throw "implemented in ctor";
939
962
  }
@@ -944,85 +967,6 @@ var ProxyStateContextImpl = class _ProxyStateContextImpl {
944
967
  throw "implemented in ctor";
945
968
  }
946
969
  };
947
- var DelegateStateContext = class {
948
- constructor(state, get, put, patch) {
949
- this.state = state;
950
- this.get = get;
951
- this.put = put;
952
- this.patch = patch;
953
- }
954
- };
955
- var KeyStateContext = class {
956
- constructor(state, path) {
957
- this.state = state;
958
- this.path = path;
959
- this.keys = path.split(".");
960
- }
961
- keys;
962
- get() {
963
- const keys = this.keys;
964
- let raw = this.state ? this.state[keys[0]] : void 0;
965
- for (let i = 1; i < keys.length && !!raw; i++) {
966
- raw = raw[keys[i]];
967
- }
968
- return raw;
969
- }
970
- put(value) {
971
- this.putDeep(value, this.state);
972
- }
973
- patch(value) {
974
- if (Array.isArray(value)) {
975
- const animation = [];
976
- for (const v of value) {
977
- animation.push(this.createPatch(v));
978
- }
979
- this.state.patch(animation);
980
- } else {
981
- this.state.patch(this.createPatch(value));
982
- }
983
- }
984
- /**
985
- * Creates a render-patch for the parent state by setting a nested sub-state value while creating necessary structure.
986
- *
987
- * @example
988
- * ```typescript
989
- * const ctx = new KeyStateContext(state, 'user.profile.settings');
990
- * const patch = ctx.createPatch({ theme: 'light' });
991
- * // patch is { user: { profile: { settings: { theme: 'light' } } } }
992
- * ```
993
- *
994
- * @param value
995
- * @returns {{key-path}:{...: value}} render-patch for the parent state
996
- */
997
- createPatch(value) {
998
- const renderPatch = {};
999
- this.putDeep(value, renderPatch);
1000
- return renderPatch;
1001
- }
1002
- putDeep(value, target) {
1003
- const keys = this.keys;
1004
- if (keys.length > 1) {
1005
- let i = 0;
1006
- let raw = target[keys[i]];
1007
- if (typeof raw !== "object" || raw === null) {
1008
- target[keys[i]] = raw = {};
1009
- }
1010
- for (i = 1; i < keys.length - 1; i++) {
1011
- const p = raw;
1012
- raw = raw[keys[i]];
1013
- if (typeof raw !== "object" || raw === null) {
1014
- p[keys[i]] = raw = {};
1015
- }
1016
- }
1017
- raw[keys[i]] = value;
1018
- } else {
1019
- if (typeof target[keys[0]] === "object" && typeof value === "object")
1020
- Object.assign(target[keys[0]], value);
1021
- else
1022
- target[keys[0]] = value;
1023
- }
1024
- }
1025
- };
1026
970
  export {
1027
971
  A,
1028
972
  ABBR,
@@ -1064,7 +1008,6 @@ export {
1064
1008
  DIV,
1065
1009
  DL,
1066
1010
  DT,
1067
- DelegateStateContext,
1068
1011
  ELLIPSE,
1069
1012
  EM,
1070
1013
  EMBED,
@@ -1119,7 +1062,6 @@ export {
1119
1062
  INPUT,
1120
1063
  INS,
1121
1064
  KBD,
1122
- KeyStateContext,
1123
1065
  LABEL,
1124
1066
  LEGEND,
1125
1067
  LI,
@@ -1240,6 +1182,7 @@ export {
1240
1182
  hydrate,
1241
1183
  memo,
1242
1184
  mergeClass,
1185
+ mergeProps,
1243
1186
  mergeStyle,
1244
1187
  props,
1245
1188
  tag,
package/index.ts CHANGED
@@ -4,4 +4,5 @@ export * from "./src/vode.js";
4
4
  export * from "./src/vode-tags.js";
5
5
  export * from "./src/merge-class.js";
6
6
  export * from "./src/merge-style.js";
7
+ export * from "./src/merge-props.js";
7
8
  export * from "./src/state-context.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ryupold/vode",
3
- "version": "1.7.4",
3
+ "version": "1.8.1",
4
4
  "description": "a minimalist web framework",
5
5
  "author": "Michael Scherbakow (ryupold)",
6
6
  "license": "MIT",
@@ -31,7 +31,7 @@
31
31
  ".": {
32
32
  "types": "./dist/vode.d.ts",
33
33
  "import": "./dist/vode.min.mjs",
34
- "require": "./dist/vode.amd.min.js",
34
+ "require": "./dist/vode.cjs.min.js",
35
35
  "default": "./dist/vode.min.js"
36
36
  }
37
37
  },
@@ -41,7 +41,7 @@
41
41
  "build-min": "esbuild index.ts --bundle --format=esm --minify --outfile=dist/vode.min.mjs",
42
42
  "build-classic": "esbuild index.ts --outfile=dist/vode.js --bundle --format=iife --global-name=V",
43
43
  "build-classic-min": "esbuild index.ts --outfile=dist/vode.min.js --bundle --format=iife --global-name=V --minify",
44
- "babel": "npx babel dist/vode.mjs --out-file dist/vode.amd.min.js",
44
+ "babel": "npx babel dist/vode.mjs --out-file dist/vode.cjs.min.js",
45
45
  "babel-classic": "npx babel dist/vode.js --out-file dist/vode.es5.min.js",
46
46
  "release": "npm run build && npm run build-min && npm run build-classic && npm run build-classic-min && npm run babel && npm run babel-classic && npm run types",
47
47
  "publish": "npm publish --access public",
@@ -51,10 +51,10 @@
51
51
  "devDependencies": {
52
52
  "@babel/cli": "7.28.6",
53
53
  "@babel/core": "7.29.0",
54
- "@babel/preset-env": "7.29.0",
54
+ "@babel/preset-env": "7.29.2",
55
55
  "babel-preset-minify": "0.5.2",
56
56
  "dts-bundle-generator": "9.5.1",
57
- "esbuild": "0.27.3",
58
- "typescript": "5.9.3"
57
+ "esbuild": "0.28.0",
58
+ "typescript": "6.0.2"
59
59
  }
60
- }
60
+ }
@@ -0,0 +1,32 @@
1
+ import { PatchableState, Props } from "./vode.js";
2
+ import { mergeStyle } from "./merge-style.js";
3
+ import { mergeClass } from "./merge-class.js";
4
+
5
+ /** merge `Props` from left to right
6
+ * utilizing `mergeStyle` for style properties and `mergeClass` for class properties.
7
+ * @returns {Props<S>} merged Prop object or undefined if no props were provided
8
+ */
9
+ export function mergeProps<S extends PatchableState = PatchableState>(...props: (Props<S> | undefined | null)[]): Props<S> | undefined {
10
+ if (props.length === 0) return undefined;
11
+ if (props.length === 1) return props[0] || undefined;
12
+
13
+ let combined: Props<S> | undefined;
14
+
15
+ for (const p of props) {
16
+ if (typeof p !== "object" || p === null) continue;
17
+ if (!combined) combined = {};
18
+
19
+ for (const key in p) {
20
+ if (key === 'style') {
21
+ combined.style = mergeStyle(combined.style, p.style);
22
+ } else if (key === 'class') {
23
+ combined.class = mergeClass(combined.class, p.class);
24
+ }
25
+ else {
26
+ combined[key] = p[key];
27
+ }
28
+ }
29
+ }
30
+
31
+ return combined;
32
+ }