@ryupold/vode 1.7.4 → 1.8.0
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 +17 -4
- package/dist/{vode.amd.min.js → vode.cjs.min.js} +4 -15
- package/dist/vode.d.ts +106 -36
- package/dist/vode.es5.min.js +6 -17
- package/dist/vode.js +22 -81
- package/dist/vode.min.js +1 -1
- package/dist/vode.min.mjs +1 -1
- package/dist/vode.mjs +22 -81
- package/index.ts +1 -0
- package/package.json +4 -4
- package/src/merge-props.ts +32 -0
- package/src/state-context.ts +7 -214
- package/tsconfig.json +17 -13
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, []);
|
|
@@ -1189,84 +1209,5 @@ var V = (() => {
|
|
|
1189
1209
|
throw "implemented in ctor";
|
|
1190
1210
|
}
|
|
1191
1211
|
};
|
|
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
1212
|
return __toCommonJS(index_exports);
|
|
1272
1213
|
})();
|
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:()=>fn,ANIMATETRANSFORM:()=>Sn,ANNOTATION:()=>yo,ANNOTATION_XML:()=>go,AREA:()=>it,ARTICLE:()=>lt,ASIDE:()=>pt,AUDIO:()=>ft,B:()=>St,BASE:()=>dt,BDI:()=>ut,BDO:()=>Tt,BLOCKQUOTE:()=>yt,BODY:()=>gt,BR:()=>xt,BUTTON:()=>ht,CANVAS:()=>mt,CAPTION:()=>bt,CIRCLE:()=>dn,CITE:()=>Et,CLIPPATH:()=>un,CODE:()=>Pt,COL:()=>At,COLGROUP:()=>Ct,DATA:()=>Mt,DATALIST:()=>Nt,DD:()=>Rt,DEFS:()=>Tn,DEL:()=>Ot,DESC:()=>yn,DETAILS:()=>Dt,DFN:()=>vt,DIALOG:()=>Lt,DIV:()=>It,DL:()=>Ft,DT:()=>Vt,ELLIPSE:()=>gn,EM:()=>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:()=>fe,MARK:()=>Se,MARKER:()=>$n,MASK:()=>Jn,MATH:()=>ho,MENU:()=>de,MERROR:()=>mo,META:()=>ue,METADATA:()=>Qn,METER:()=>Te,MFRAC:()=>bo,MI:()=>Eo,MMULTISCRIPTS:()=>Po,MN:()=>Ao,MO:()=>Co,MOVER:()=>Mo,MPADDED:()=>No,MPATH:()=>zn,MPHANTOM:()=>Ro,MPRESCRIPTS:()=>Oo,MROOT:()=>Do,MROW:()=>vo,MS:()=>Lo,MSPACE:()=>Io,MSQRT:()=>Fo,MSTYLE:()=>Vo,MSUB:()=>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:()=>fo,TFOOT:()=>Qe,TH:()=>ze,THEAD:()=>Ze,TIME:()=>tn,TITLE:()=>en,TR:()=>nn,TRACK:()=>on,TSPAN:()=>So,U:()=>an,UL:()=>sn,USE:()=>uo,VAR:()=>rn,VIDEO:()=>cn,VIEW:()=>To,WBR:()=>ln,app:()=>J,child:()=>nt,childCount:()=>et,children:()=>M,childrenStart:()=>O,context:()=>Yo,createPatch:()=>Z,createState:()=>z,defuse:()=>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 f=l;t.stats.liveEffectCount++;try{let u=await f.next();for(;u.done===!1;){t.stats.liveEffectCount++;try{o.patch(u.value,y),u=await f.next()}finally{t.stats.liveEffectCount--}}o.patch(u.value,y)}finally{t.stats.liveEffectCount--}}else if(l.then){t.stats.liveEffectCount++;try{let f=await l;o.patch(f,y)}finally{t.stats.liveEffectCount--}}else if(Array.isArray(l))if(l.length>0)for(let f of l)o.patch(f,!document.hidden&&!!t.asyncRenderer);else{t.qSync=E(t.qSync||{},t.qAsync,!1),t.qAsync=null;try{P.currentViewTransition?.skipTransition()}catch{}t.stats.syncRenderPatchCount++,t.renderSync()}else typeof l=="function"?o.patch(l(t.state),y):y?(t.stats.asyncRenderPatchCount++,t.qAsync=E(t.qAsync||{},l,!1),await t.renderAsync()):(t.stats.syncRenderPatchCount++,t.qSync=E(t.qSync||{},l,!1),t.renderSync())}});function r(l){let y=Date.now(),f=s(t.state);t.vode=C(t.state,e.parentElement,0,0,t.vode,f),e.tagName.toUpperCase()!==f[0].toUpperCase()&&(e=t.vode.node,e._vode=t),l||(t.stats.lastSyncRenderTime=Date.now()-y,t.stats.syncRenderCount++,t.isRendering=!1,t.qSync&&t.renderSync())}let p=r.bind(null,!1),i=r.bind(null,!0);Object.defineProperty(t,"renderSync",{enumerable:!1,configurable:!0,writable:!1,value:()=>{t.isRendering||!t.qSync||(t.isRendering=!0,t.state=E(t.state,t.qSync,!0),t.qSync=null,t.syncRenderer(p))}}),Object.defineProperty(t,"renderAsync",{enumerable:!1,configurable:!0,writable:!1,value:async()=>{if(t.isAnimating||!t.qAsync||(await P.currentViewTransition?.updateCallbackDone,t.isAnimating||!t.qAsync||document.hidden))return;t.isAnimating=!0;let l=Date.now();try{t.state=E(t.state,t.qAsync,!0),t.qAsync=null,P.currentViewTransition=t.asyncRenderer(i),await P.currentViewTransition?.updateCallbackDone}finally{t.stats.lastAsyncRenderTime=Date.now()-l,t.stats.asyncRenderCount++,t.isAnimating=!1}t.qAsync&&t.renderAsync()}}),t.state=o;let c=e;c._vode=t;let 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 f=document.createTextNode(o);if(c)c.onUnmount&&e.patch(c.onUnmount(c)),c.replaceWith(f);else{let u=!1;for(let S=a;S<n.childNodes.length;S++){let x=n.childNodes[S];if(x){x.before(f,x),u=!0;break}}u||n.appendChild(f)}return f}if(l&&(!c||i||t[0]!==o[0])){let f=o;1 in f&&(f[1]=v(e,f[1],void 0));let u=A(o);u?.xmlns!==void 0&&(r=u.xmlns);let S=r?document.createElementNS(r,o[0]):document.createElement(o[0]);if(o.node=S,L(e,S,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(S);else{let h=!1;for(let g=a;g<n.childNodes.length;g++){let T=n.childNodes[g];if(T){T.before(S,T),h=!0;break}}h||n.appendChild(S)}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,S,T,g,void 0,m,r??null);o[T+h]=b,b&&g++}}return S.onMount&&e.patch(S.onMount(S)),o}if(!i&&l&&t[0]===o[0]){o.node=c;let f=o,u=t,S=A(o),x=A(t);if(S?.xmlns!==void 0&&(r=S.xmlns),f[1]?.__memo){let T=f[1];f[1]=v(e,f[1],u[1]),T!==f[1]&&L(e,c,x,S,r)}else L(e,c,x,S,r);S?.catch&&x?.catch!==S.catch&&(o.node.catch=null,o.node.removeAttribute("catch"));let h=M(o),g=M(t);if(h){let T=S?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",ft="audio",St="b",dt="base",ut="bdi",Tt="bdo",yt="blockquote",gt="body",xt="br",ht="button",mt="canvas",bt="caption",Et="cite",Pt="code",At="col",Ct="colgroup",Mt="data",Nt="datalist",Rt="dd",Ot="del",Dt="details",vt="dfn",Lt="dialog",It="div",Ft="dl",Vt="dt",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",fe="map",Se="mark",de="menu",ue="meta",Te="meter",ye="nav",ge="noscript",xe="object",he="ol",me="optgroup",be="option",Ee="output",Pe="p",Ae="picture",Ce="pre",Me="progress",Ne="q",Re="rp",Oe="rt",De="ruby",ve="s",Le="samp",Ie="script",Fe="search",Ve="section",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",fn="animateMotion",Sn="animateTransform",dn="circle",un="clipPath",Tn="defs",yn="desc",gn="ellipse",xn="feBlend",hn="feColorMatrix",mn="feComponentTransfer",bn="feComposite",En="feConvolveMatrix",Pn="feDiffuseLighting",An="feDisplacementMap",Cn="feDistantLight",Mn="feDropShadow",Nn="feFlood",Rn="feFuncA",On="feFuncB",Dn="feFuncG",vn="feFuncR",Ln="feGaussianBlur",In="feImage",Fn="feMerge",Vn="feMergeNode",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",fo="textPath",So="tspan",uo="use",To="view",yo="annotation",go="annotation-xml",xo="maction",ho="math",mo="merror",bo="mfrac",Eo="mi",Po="mmultiscripts",Ao="mn",Co="mo",Mo="mover",No="mpadded",Ro="mphantom",Oo="mprescripts",Do="mroot",vo="mrow",Lo="ms",Io="mspace",Fo="msqrt",Vo="mstyle",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)}})}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 f=l;t.stats.liveEffectCount++;try{let u=await f.next();for(;u.done===!1;){t.stats.liveEffectCount++;try{o.patch(u.value,y),u=await f.next()}finally{t.stats.liveEffectCount--}}o.patch(u.value,y)}finally{t.stats.liveEffectCount--}}else if(l.then){t.stats.liveEffectCount++;try{let f=await l;o.patch(f,y)}finally{t.stats.liveEffectCount--}}else if(Array.isArray(l))if(l.length>0)for(let f of l)o.patch(f,!document.hidden&&!!t.asyncRenderer);else{t.qSync=E(t.qSync||{},t.qAsync,!1),t.qAsync=null;try{P.currentViewTransition?.skipTransition()}catch{}t.stats.syncRenderPatchCount++,t.renderSync()}else typeof l=="function"?o.patch(l(t.state),y):y?(t.stats.asyncRenderPatchCount++,t.qAsync=E(t.qAsync||{},l,!1),await t.renderAsync()):(t.stats.syncRenderPatchCount++,t.qSync=E(t.qSync||{},l,!1),t.renderSync())}});function r(l){let y=Date.now(),f=s(t.state);t.vode=C(t.state,e.parentElement,0,0,t.vode,f),e.tagName.toUpperCase()!==f[0].toUpperCase()&&(e=t.vode.node,e._vode=t),l||(t.stats.lastSyncRenderTime=Date.now()-y,t.stats.syncRenderCount++,t.isRendering=!1,t.qSync&&t.renderSync())}let p=r.bind(null,!1),i=r.bind(null,!0);Object.defineProperty(t,"renderSync",{enumerable:!1,configurable:!0,writable:!1,value:()=>{t.isRendering||!t.qSync||(t.isRendering=!0,t.state=E(t.state,t.qSync,!0),t.qSync=null,t.syncRenderer(p))}}),Object.defineProperty(t,"renderAsync",{enumerable:!1,configurable:!0,writable:!1,value:async()=>{if(t.isAnimating||!t.qAsync||(await P.currentViewTransition?.updateCallbackDone,t.isAnimating||!t.qAsync||document.hidden))return;t.isAnimating=!0;let l=Date.now();try{t.state=E(t.state,t.qAsync,!0),t.qAsync=null,P.currentViewTransition=t.asyncRenderer(i),await P.currentViewTransition?.updateCallbackDone}finally{t.stats.lastAsyncRenderTime=Date.now()-l,t.stats.asyncRenderCount++,t.isAnimating=!1}t.qAsync&&t.renderAsync()}}),t.state=o;let c=e;c._vode=t;let 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 f=document.createTextNode(o);if(c)c.onUnmount&&e.patch(c.onUnmount(c)),c.replaceWith(f);else{let u=!1;for(let S=a;S<n.childNodes.length;S++){let x=n.childNodes[S];if(x){x.before(f,x),u=!0;break}}u||n.appendChild(f)}return f}if(l&&(!c||i||t[0]!==o[0])){let f=o;1 in f&&(f[1]=R(e,f[1],void 0));let u=A(o);u?.xmlns!==void 0&&(r=u.xmlns);let S=r?document.createElementNS(r,o[0]):document.createElement(o[0]);if(o.node=S,O(e,S,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(S);else{let h=!1;for(let g=a;g<n.childNodes.length;g++){let T=n.childNodes[g];if(T){T.before(S,T),h=!0;break}}h||n.appendChild(S)}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,S,T,g,void 0,m,r??null);o[T+h]=b,b&&g++}}return S.onMount&&e.patch(S.onMount(S)),o}if(!i&&l&&t[0]===o[0]){o.node=c;let f=o,u=t,S=A(o),x=A(t);if(S?.xmlns!==void 0&&(r=S.xmlns),f[1]?.__memo){let T=f[1];f[1]=R(e,f[1],u[1]),T!==f[1]&&O(e,c,x,S,r)}else O(e,c,x,S,r);S?.catch&&x?.catch!==S.catch&&(o.node.catch=null,o.node.removeAttribute("catch"));let h=N(o),g=N(t);if(h){let T=S?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",ft="body",St="br",dt="button",ut="canvas",Tt="caption",yt="cite",gt="code",xt="col",ht="colgroup",mt="data",bt="datalist",Et="dd",Pt="del",At="details",Ct="dfn",Mt="dialog",Nt="div",Rt="dl",Ot="dt",Dt="em",vt="embed",Lt="fieldset",It="figcaption",Ft="figure",Vt="footer",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",fe="noscript",Se="object",de="ol",ue="optgroup",Te="option",ye="output",ge="p",xe="picture",he="pre",me="progress",be="q",Ee="rp",Pe="rt",Ae="ruby",Ce="s",Me="samp",Ne="script",Re="search",Oe="section",De="select",ve="slot",Le="small",Ie="source",Fe="span",Ve="strong",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",fn="ellipse",Sn="feBlend",dn="feColorMatrix",un="feComponentTransfer",Tn="feComposite",yn="feConvolveMatrix",gn="feDiffuseLighting",xn="feDisplacementMap",hn="feDistantLight",mn="feDropShadow",bn="feFlood",En="feFuncA",Pn="feFuncB",An="feFuncG",Cn="feFuncR",Mn="feGaussianBlur",Nn="feImage",Rn="feMerge",On="feMergeNode",Dn="feMorphology",vn="feOffset",Ln="fePointLight",In="feSpecularLighting",Fn="feSpotLight",Vn="feTile",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",fo="maction",So="math",uo="merror",To="mfrac",yo="mi",go="mmultiscripts",xo="mn",ho="mo",mo="mover",bo="mpadded",Eo="mphantom",Po="mprescripts",Ao="mroot",Co="mrow",Mo="ms",No="mspace",Ro="msqrt",Oo="mstyle",Do="msub",vo="msubsup",Lo="msup",Io="mtable",Fo="mtd",Vo="mtext",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)}})}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,ft as BODY,St as BR,dt as BUTTON,ut as CANVAS,Tt as CAPTION,rn as CIRCLE,yt as CITE,cn as CLIPPATH,gt as CODE,xt as COL,ht as COLGROUP,mt as DATA,bt as DATALIST,Et as DD,ln as DEFS,Pt as DEL,pn as DESC,At as DETAILS,Ct as DFN,Mt as DIALOG,Nt as DIV,Rt as DL,Ot as DT,fn as ELLIPSE,Dt as EM,vt as EMBED,Sn as FEBLEND,dn as FECOLORMATRIX,un as FECOMPONENTTRANSFER,Tn as FECOMPOSITE,yn as FECONVOLVEMATRIX,gn as FEDIFFUSELIGHTING,xn as FEDISPLACEMENTMAP,hn as FEDISTANTLIGHT,mn as FEDROPSHADOW,bn as FEFLOOD,En as FEFUNCA,Pn as FEFUNCB,An as FEFUNCG,Cn as FEFUNCR,Mn as FEGAUSSIANBLUR,Nn as FEIMAGE,Rn as FEMERGE,On as FEMERGENODE,Dn as FEMORPHOLOGY,vn as FEOFFSET,Ln as FEPOINTLIGHT,In as FESPECULARLIGHTING,Fn as FESPOTLIGHT,Vn as FETILE,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,fo as MACTION,ae as MAIN,se as MAP,re as MARK,_n as MARKER,qn as MASK,So as MATH,ce as MENU,uo as MERROR,ie as META,wn as METADATA,le as METER,To as MFRAC,yo as MI,go as MMULTISCRIPTS,xo as MN,ho as MO,mo as MOVER,bo as MPADDED,Xn as MPATH,Eo as MPHANTOM,Po as MPRESCRIPTS,Ao as MROOT,Co as MROW,Mo as MS,No as MSPACE,Ro as MSQRT,Oo as MSTYLE,Do as MSUB,vo as MSUBSUP,Lo as MSUP,Io as MTABLE,Fo as MTD,Vo as MTEXT,Ho as MTR,jo as MUNDER,Uo as MUNDEROVER,pe as NAV,fe as NOSCRIPT,Se as OBJECT,de as OL,ue as OPTGROUP,Te as OPTION,ye as OUTPUT,ge as P,Yn as PATH,Wn as PATTERN,xe as PICTURE,$n as POLYGON,Jn as POLYLINE,he as PRE,me as PROGRESS,be as Q,Qn as RADIALGRADIENT,zn as RECT,Ee as RP,Pe as RT,Ae as RUBY,Ce as S,Me as SAMP,Ne as SCRIPT,Re as SEARCH,Oe as SECTION,De as SELECT,Go as SEMANTICS,Zn as SET,ve as SLOT,Le as SMALL,Ie as SOURCE,Fe as SPAN,to as STOP,Ve as STRONG,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, []);
|
|
@@ -944,85 +965,6 @@ var ProxyStateContextImpl = class _ProxyStateContextImpl {
|
|
|
944
965
|
throw "implemented in ctor";
|
|
945
966
|
}
|
|
946
967
|
};
|
|
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
968
|
export {
|
|
1027
969
|
A,
|
|
1028
970
|
ABBR,
|
|
@@ -1064,7 +1006,6 @@ export {
|
|
|
1064
1006
|
DIV,
|
|
1065
1007
|
DL,
|
|
1066
1008
|
DT,
|
|
1067
|
-
DelegateStateContext,
|
|
1068
1009
|
ELLIPSE,
|
|
1069
1010
|
EM,
|
|
1070
1011
|
EMBED,
|
|
@@ -1119,7 +1060,6 @@ export {
|
|
|
1119
1060
|
INPUT,
|
|
1120
1061
|
INS,
|
|
1121
1062
|
KBD,
|
|
1122
|
-
KeyStateContext,
|
|
1123
1063
|
LABEL,
|
|
1124
1064
|
LEGEND,
|
|
1125
1065
|
LI,
|
|
@@ -1240,6 +1180,7 @@ export {
|
|
|
1240
1180
|
hydrate,
|
|
1241
1181
|
memo,
|
|
1242
1182
|
mergeClass,
|
|
1183
|
+
mergeProps,
|
|
1243
1184
|
mergeStyle,
|
|
1244
1185
|
props,
|
|
1245
1186
|
tag,
|
package/index.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ryupold/vode",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.8.0",
|
|
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.
|
|
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.
|
|
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",
|
|
@@ -57,4 +57,4 @@
|
|
|
57
57
|
"esbuild": "0.27.3",
|
|
58
58
|
"typescript": "5.9.3"
|
|
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
|
+
}
|