@ryupold/vode 1.8.1 → 1.8.3

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.
@@ -0,0 +1,95 @@
1
+ name: Publish release to NPM, GitHub & Chimps Packages
2
+
3
+ on:
4
+ release:
5
+ types: published
6
+ branches:
7
+ - "main"
8
+ workflow_dispatch:
9
+
10
+ permissions:
11
+ id-token: write # Required for OIDC
12
+ packages: write
13
+ attestations: write
14
+ contents: read
15
+
16
+ jobs:
17
+
18
+ build-and-publish-to-npm:
19
+ name: Build and Publish to NPM
20
+ runs-on: ubuntu-latest
21
+ steps:
22
+ - uses: actions/checkout@v4
23
+ - uses: actions/setup-node@v6
24
+ with:
25
+ registry-url: "https://registry.npmjs.org"
26
+ - run: npm ci
27
+ - run: npm run release
28
+ - run: |
29
+ set +e
30
+ (npm publish --provenance --access public) > log.txt 2>&1
31
+ NEWVERSION=$(grep "> @ryupold/vode@" log.txt)
32
+ if grep -q 'publish over the previously published' log.txt || grep -q '409 Conflict' log.txt || [[ -n "$NEWVERSION" ]]; then
33
+ echo "new version: $NEWVERSION"
34
+ echo "...successfully published to npmjs.org"
35
+ else
36
+ echo "...failed to publish to npmjs.org"
37
+ cat log.txt
38
+ exit 1
39
+ fi
40
+ env:
41
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
42
+
43
+
44
+ build-and-publish-to-github:
45
+ name: Build and Publish to Github
46
+ runs-on: ubuntu-latest
47
+ steps:
48
+ - uses: actions/checkout@v4
49
+ - uses: actions/setup-node@v6
50
+ with:
51
+ registry-url: "https://npm.pkg.github.com"
52
+ - run: npm ci
53
+ - run: npm run release
54
+ - run: |
55
+ set +e
56
+ (npm publish --access public) > log.txt 2>&1
57
+ NEWVERSION=$(grep "> @ryupold/vode@" log.txt)
58
+ if grep -q 'publish over the previously published' log.txt || grep -q '409 Conflict' log.txt || [[ -n "$NEWVERSION" ]]; then
59
+ echo "new version: $NEWVERSION"
60
+ echo "...successfully published to GitHub Packages"
61
+ else
62
+ echo "...failed to publish to GitHub Packages"
63
+ cat log.txt
64
+ exit 1
65
+ fi
66
+ env:
67
+ NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
68
+
69
+ build-and-publish-to-chimps:
70
+ name: Build and Publish to Chimps
71
+ runs-on: ubuntu-latest
72
+ steps:
73
+ - uses: actions/checkout@v4
74
+ - uses: actions/setup-node@v6
75
+ - run: |
76
+ echo "@ryupold:registry=https://git.chimps.quest/api/packages/ryupold/npm/" >> .npmrc
77
+ echo "//git.chimps.quest/api/packages/ryupold/npm/:_authToken=${CHIMPS_TOKEN}" >> .npmrc
78
+ env:
79
+ CHIMPS_TOKEN: ${{ secrets.CHIMPS_TOKEN }}
80
+ NODE_AUTH_TOKEN: ${{ secrets.CHIMPS_TOKEN }}
81
+ - run: npm ci
82
+ - run: npm run release
83
+ - run: |
84
+ set +e
85
+ (npm publish --access public) > log.txt 2>&1
86
+ rm -rf .npmrc
87
+ NEWVERSION=$(grep "> @ryupold/vode@" log.txt)
88
+ if grep -q 'publish over the previously published' log.txt || grep -q '409 Conflict' log.txt || [[ -n "$NEWVERSION" ]]; then
89
+ echo "new version: $NEWVERSION"
90
+ echo "...successfully published to chimps"
91
+ else
92
+ echo "...failed to publish to chimps"
93
+ cat log.txt
94
+ exit 1
95
+ fi
package/README.md CHANGED
@@ -169,7 +169,7 @@ Imagine this HTML:
169
169
  </div>
170
170
 
171
171
  <div class="content">
172
- Lorem ipsum dolor sit amet, consectetur adipiscing elit.
172
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit.
173
173
  <a href="?post=vode">vode</a>. <a href="#">#css</a>
174
174
  <a href="#">#responsive</a>
175
175
  <br />
@@ -179,7 +179,7 @@ Imagine this HTML:
179
179
  </div>
180
180
  ```
181
181
 
182
- expressed as *vode* it would look like this:
182
+ expressed as *vode* structure it would look like this:
183
183
 
184
184
  ```typescript
185
185
  [DIV, { class: 'card' },
@@ -207,8 +207,8 @@ expressed as *vode* it would look like this:
207
207
  ]
208
208
  ],
209
209
  [DIV, { class: 'content' },
210
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. ',
211
- [A, {href: '?post=vode'}, 'vode'], '. ', [A, { href: '#' }, '#css'],
210
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
211
+ [A, { href: '?post=vode' }, 'vode'], '. ', [A, { href: '#' }, '#css'],
212
212
  [A, { href: '#' }, '#responsive'],
213
213
  [BR],
214
214
  [TIME, { datetime: '2025-09-24' }, '10:09 PM - 24 Sep 2025']
@@ -220,15 +220,60 @@ expressed as *vode* it would look like this:
220
220
  Viewed in isolation, it does not provide an obvious benefit (apart from looking better imho),
221
221
  but as the result of a function of state, it can become very useful to express conditional UI this way.
222
222
 
223
+ ### app
224
+
225
+ `app` is a function that takes a HTML node, a state object, and a render function (`Component<State>`).
226
+
227
+ ```typescript
228
+ const containerNode = document.getElementById('ANY-ELEMENT');
229
+ const state = {
230
+ counter: 0,
231
+ pointing: false,
232
+ loading: false,
233
+ title: '',
234
+ body: '',
235
+ };
236
+
237
+ const patch = app(
238
+ containerNode,
239
+ state,
240
+ (s) =>
241
+ [DIV,
242
+ [P, { style: { color: 'red' } }, `${s.counter}`],
243
+ [BUTTON, { onclick: () => ({ counter: s.counter + 1 }) }, 'Click me'],
244
+ ]
245
+ );
246
+ ```
247
+
248
+ It will analyze the current structure of the given `ContainerNode` and adjust its structure in the first render.
249
+ When render-patches are applied to the `patch` function or via yield/return of events,
250
+ the `ContainerNode` is updated to match the vode structure 1:1.
251
+
252
+ #### defuse
253
+
254
+ To release resources associated with the vode app instance, you can call the `defuse` function on the `ContainerNode` that was passed to `app`.
255
+
256
+ ```typescript
257
+ import { app, defuse } from '@ryupold/vode';
258
+ const containerNode = document.getElementById('ANY-ELEMENT');
259
+ const state = { /* ... */ };
260
+ app(containerNode, state, s => /* ... */ );
261
+ //... later ...
262
+ // when you want to clean up the vode app instance
263
+ defuse(containerNode);
264
+ ```
265
+
266
+ The DOM elements created by the vode app will remain in the `ContainerNode`, but all event listeners and references to the state object will be removed, allowing for proper garbage collection.
267
+
223
268
  ### component
224
269
 
225
270
  ```typescript
226
271
  type Component<S> = (s: S) => ChildVode<S>;
227
272
  ```
228
273
 
229
- A `Component<State>` is a function that takes a state object and returns a `Vode<State>` or `string`.
274
+ A `Component<State>` is a function that takes a state object and returns a ChildVode (`Vode<State>` or `string` or `null`).
230
275
  It is used to render the UI based on the current state.
231
- A new *vode* must be created on each render, otherwise it would be skipped which could lead to unexpected results. If you seek to improve render performance, have a look at the [`memo`](#memoization) function.
276
+ A new *vode* structure must be created on each render, otherwise it would be skipped which could lead to unexpected results. If you seek to improve render performance, have a look at the [`memo`](#memoization) function.
232
277
 
233
278
  ```typescript
234
279
  // A full vode has a tag, properties, and children. props and children are optional.
@@ -309,51 +354,6 @@ const CompBar = (s) => [DIV, { class: "container" },
309
354
  ];
310
355
  ```
311
356
 
312
- ### app
313
-
314
- `app` is a function that takes a HTML node, a state object, and a render function (`Component<State>`).
315
-
316
- ```typescript
317
- const containerNode = document.getElementById('ANY-ELEMENT');
318
- const state = {
319
- counter: 0,
320
- pointing: false,
321
- loading: false,
322
- title: '',
323
- body: '',
324
- };
325
-
326
- const patch = app(
327
- containerNode,
328
- state,
329
- (s) =>
330
- [DIV,
331
- [P, { style: { color: 'red' } }, `${s.counter}`],
332
- [BUTTON, { onclick: () => ({ counter: s.counter + 1 }) }, 'Click me'],
333
- ]
334
- );
335
- ```
336
-
337
- It will analyze the current structure of the given `ContainerNode` and adjust its structure in the first render.
338
- When render-patches are applied to the `patch` function or via yield/return of events,
339
- the `ContainerNode` is updated to match the vode structure 1:1.
340
-
341
- #### defuse
342
-
343
- To release resources associated with the vode app instance, you can call the `defuse` function on the `ContainerNode` that was passed to `app`.
344
-
345
- ```typescript
346
- import { app, defuse } from '@ryupold/vode';
347
- const containerNode = document.getElementById('ANY-ELEMENT');
348
- const state = { /* ... */ };
349
- app(containerNode, state, s => /* ... */ );
350
- //... later ...
351
- // when you want to clean up the vode app instance
352
- defuse(containerNode);
353
- ```
354
-
355
- The DOM elements created by the vode app will remain in the `ContainerNode`, but all event listeners and references to the state object will be removed, allowing for proper garbage collection.
356
-
357
357
  ### state & patch
358
358
  The state object you pass to [`app`](#app) can be updated directly or via `patch`.
359
359
  During the call to `app`, the state object is bound to the vode app instance and becomes a singleton from its perspective.
@@ -476,14 +476,14 @@ You can catch errors during rendering by providing a `catch` property in the vod
476
476
  const CompWithError: ChildVode = () =>
477
477
  [DIV,
478
478
  {
479
- catch: (s: unknown, err: any) => [SPAN, { style: { color: 'red' } }, `An error occurred: ${err?.message}`],
479
+ catch: (s: Patchable, err: Error) => [SPAN, { style: { color: 'red' } }, `An error occurred: ${err.message}`],
480
480
  },
481
481
 
482
482
  [P, "Below error is intentional for testing error boundaries:"],
483
483
 
484
484
  [DIV, {
485
485
  // catch: [SPAN, { style: { color: 'red' } }, `An error occurred!`], // uncomment to catch child error directly here
486
- onMount: () => {
486
+ onMount: (s: Patchable, ele: HTMLElement) => {
487
487
  throw new Error("Test error boundary in post view....");
488
488
  }
489
489
  }],
@@ -608,14 +608,14 @@ app(element, state,
608
608
  );
609
609
 
610
610
  function SettingsForm(ctx: SubContext<Settings>) {
611
- const settings = ctx.get()!; // { theme: 'dark', lang: 'es' }
611
+ const settings = ctx.get(); // { theme: 'dark', lang: 'es' }
612
612
 
613
613
  return <Vode>[FORM,
614
614
  [P, "current theme:", settings.theme],
615
615
  [SELECT,
616
616
  {
617
617
  class: 'theme-select',
618
- onchange: (s: unknown, e: Event) => ctx.patch({ theme: (<HTMLSelectElement>e.target).value }),
618
+ onchange: (_: unknown, e: Event) => ctx.patch({ theme: (<HTMLSelectElement>e.target).value }),
619
619
  value: settings.theme,
620
620
  },
621
621
  [OPTION, { value: 'light', selected: settings.theme === 'light' }, 'light'],
@@ -624,7 +624,7 @@ function SettingsForm(ctx: SubContext<Settings>) {
624
624
  [P, "current lang:", settings.lang],
625
625
  [SELECT, {
626
626
  class: 'lang-select',
627
- onchange: (s: unknown, e: Event) => ctx.patch({ lang: (<HTMLSelectElement>e.target).value }),
627
+ onchange: (_: unknown, e: Event) => ctx.patch({ lang: (<HTMLSelectElement>e.target).value }),
628
628
  value: settings.lang,
629
629
  },
630
630
  [OPTION, { value: 'en', selected: settings.lang === 'en' }, 'en'],
@@ -1,7 +1,7 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.LINK=exports.LINEARGRADIENT=exports.LINE=exports.LI=exports.LEGEND=exports.LABEL=exports.KBD=exports.INS=exports.INPUT=exports.IMG=exports.IMAGE=exports.IFRAME=exports.I=exports.HTML=exports.HR=exports.HGROUP=exports.HEADER=exports.HEAD=exports.H6=exports.H5=exports.H4=exports.H3=exports.H2=exports.H1=exports.G=exports.FORM=exports.FOREIGNOBJECT=exports.FOOTER=exports.FILTER=exports.FIGURE=exports.FIGCAPTION=exports.FIELDSET=exports.FETURBULENCE=exports.FETILE=exports.FESPOTLIGHT=exports.FESPECULARLIGHTING=exports.FEPOINTLIGHT=exports.FEOFFSET=exports.FEMORPHOLOGY=exports.FEMERGENODE=exports.FEMERGE=exports.FEIMAGE=exports.FEGAUSSIANBLUR=exports.FEFUNCR=exports.FEFUNCG=exports.FEFUNCB=exports.FEFUNCA=exports.FEFLOOD=exports.FEDROPSHADOW=exports.FEDISTANTLIGHT=exports.FEDISPLACEMENTMAP=exports.FEDIFFUSELIGHTING=exports.FECONVOLVEMATRIX=exports.FECOMPOSITE=exports.FECOMPONENTTRANSFER=exports.FECOLORMATRIX=exports.FEBLEND=exports.EMBED=exports.EM=exports.ELLIPSE=exports.DT=exports.DL=exports.DIV=exports.DIALOG=exports.DFN=exports.DETAILS=exports.DESC=exports.DEL=exports.DEFS=exports.DD=exports.DATALIST=exports.DATA=exports.COLGROUP=exports.COL=exports.CODE=exports.CLIPPATH=exports.CITE=exports.CIRCLE=exports.CAPTION=exports.CANVAS=exports.BUTTON=exports.BR=exports.BODY=exports.BLOCKQUOTE=exports.BDO=exports.BDI=exports.BASE=exports.B=exports.AUDIO=exports.ASIDE=exports.ARTICLE=exports.AREA=exports.ANNOTATION_XML=exports.ANNOTATION=exports.ANIMATETRANSFORM=exports.ANIMATEMOTION=exports.ANIMATE=exports.ADDRESS=exports.ABBR=exports.A=void 0,exports.VIEW=exports.VIDEO=exports.VAR=exports.USE=exports.UL=exports.U=exports.TSPAN=exports.TRACK=exports.TR=exports.TITLE=exports.TIME=exports.THEAD=exports.TH=exports.TFOOT=exports.TEXTPATH=exports.TEXTAREA=exports.TEXT=exports.TEMPLATE=exports.TD=exports.TBODY=exports.TABLE=exports.SYMBOL=exports.SWITCH=exports.SVG=exports.SUP=exports.SUMMARY=exports.SUB=exports.STYLE=exports.STRONG=exports.STOP=exports.SPAN=exports.SOURCE=exports.SMALL=exports.SLOT=exports.SET=exports.SEMANTICS=exports.SELECT=exports.SECTION=exports.SEARCH=exports.SCRIPT=exports.SAMP=exports.S=exports.RUBY=exports.RT=exports.RP=exports.RECT=exports.RADIALGRADIENT=exports.Q=exports.PROGRESS=exports.PRE=exports.POLYLINE=exports.POLYGON=exports.PICTURE=exports.PATTERN=exports.PATH=exports.P=exports.OUTPUT=exports.OPTION=exports.OPTGROUP=exports.OL=exports.OBJECT=exports.NOSCRIPT=exports.NAV=exports.MUNDEROVER=exports.MUNDER=exports.MTR=exports.MTEXT=exports.MTD=exports.MTABLE=exports.MSUP=exports.MSUBSUP=exports.MSUB=exports.MSTYLE=exports.MSQRT=exports.MSPACE=exports.MS=exports.MROW=exports.MROOT=exports.MPRESCRIPTS=exports.MPHANTOM=exports.MPATH=exports.MPADDED=exports.MOVER=exports.MO=exports.MN=exports.MMULTISCRIPTS=exports.MI=exports.MFRAC=exports.METER=exports.METADATA=exports.META=exports.MERROR=exports.MENU=exports.MATH=exports.MASK=exports.MARKER=exports.MARK=exports.MAP=exports.MAIN=exports.MACTION=void 0,exports.WBR=void 0,exports.app=app,exports.child=child,exports.childCount=childCount,exports.children=children,exports.childrenStart=childrenStart,exports.context=context,exports.createPatch=createPatch,exports.createState=createState,exports.defuse=defuse,exports.globals=void 0,exports.hydrate=hydrate,exports.memo=memo,exports.mergeClass=mergeClass,exports.mergeProps=mergeProps,exports.mergeStyle=mergeStyle,exports.props=props,exports.tag=tag,exports.vode=vode;function _classCallCheck(b,a){if(!(b instanceof a))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(a,_toPropertyKey(c.key),c)}function _createClass(a,b,c){return b&&_defineProperties(a.prototype,b),c&&_defineProperties(a,c),Object.defineProperty(a,"prototype",{writable:!1}),a}function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==_typeof(b)?b:b+""}function _toPrimitive(a,b){if("object"!=_typeof(a)||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=_typeof(d))return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}function _toConsumableArray(a){return _arrayWithoutHoles(a)||_iterableToArray(a)||_unsupportedIterableToArray(a)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _iterableToArray(a){if("undefined"!=typeof Symbol&&null!=a[Symbol.iterator]||null!=a["@@iterator"])return Array.from(a)}function _arrayWithoutHoles(a){if(Array.isArray(a))return _arrayLikeToArray(a)}function _regenerator(){function b(a,b,f,g){var h=b&&b.prototype instanceof d?b:d,c=Object.create(h.prototype);return _regeneratorDefine2(c,"_invoke",function(a,b,g){function h(a,b){for(q=a,s=b,e=0;!w&&t&&!c&&e<v.length;e++){var c,f=v[e],g=p.p,h=f[2];3<a?(c=h===b)&&(s=f[(q=f[4])?5:(q=3,3)],f[4]=f[5]=j):f[0]<=g&&((c=2>a&&g<f[1])?(q=0,p.v=b,p.n=f[1]):g<h&&(c=3>a||f[0]>b||b>h)&&(f[4]=a,f[5]=b,p.n=h,q=0))}if(c||1<a)return m;throw w=!0,b}var k,q,s,t=0,v=g||[],w=!1,p={p:0,n:0,v:j,a:h,f:h.bind(j,4),d:function c(a,b){return k=a,q=0,s=j,p.n=b,m}};return function(c,d,f){if(1<t)throw TypeError("Generator is already running");for(w&&1===d&&h(d,f),q=d,s=f;(e=2>q?j:s)||!w;){k||(q?3>q?(1<q&&(p.n=-1),h(q,s)):p.n=s:p.v=s);try{if(t=2,k){if(q||(c="next"),e=k[c]){if(!(e=e.call(k,s)))throw TypeError("iterator result is not an object");if(!e.done)return e;s=e.value,2>q&&(q=0)}else 1===q&&(e=k["return"])&&e.call(k),2>q&&(s=TypeError("The iterator does not provide a '"+c+"' method"),q=1);k=j}else if((e=(w=0>p.n)?s:a.call(b,p))!==m)break}catch(a){k=j,q=1,s=a}finally{t=1}}return{value:e,done:w}}}(a,f,g),!0),c}function d(){}function g(){}function h(){}function i(a){return Object.setPrototypeOf?Object.setPrototypeOf(a,h):(a.__proto__=h,_regeneratorDefine2(a,l,"GeneratorFunction")),a.prototype=Object.create(c),a}/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var j,e,f="function"==typeof Symbol?Symbol:{},k=f.iterator||"@@iterator",l=f.toStringTag||"@@toStringTag",m={};e=Object.getPrototypeOf;var a=[][k]?e(e([][k]())):(_regeneratorDefine2(e={},k,function(){return this}),e),c=h.prototype=d.prototype=Object.create(a);return g.prototype=h,_regeneratorDefine2(c,"constructor",h),_regeneratorDefine2(h,"constructor",g),g.displayName="GeneratorFunction",_regeneratorDefine2(h,l,"GeneratorFunction"),_regeneratorDefine2(c),_regeneratorDefine2(c,l,"Generator"),_regeneratorDefine2(c,k,function(){return this}),_regeneratorDefine2(c,"toString",function(){return"[object Generator]"}),(_regenerator=function a(){return{w:b,m:i}})()}function _regeneratorDefine2(a,b,c,d){var f=Object.defineProperty;try{f({},"",{})}catch(a){f=0}_regeneratorDefine2=function e(a,b,c,d){function g(b,c){_regeneratorDefine2(a,b,function(a){return this._invoke(b,c,a)})}b?f?f(a,b,{value:c,enumerable:!d,configurable:!d,writable:!d}):a[b]=c:(g("next",0),g("throw",1),g("return",2))},_regeneratorDefine2(a,b,c,d)}function _createForOfIteratorHelper(b,c){var d="undefined"!=typeof Symbol&&b[Symbol.iterator]||b["@@iterator"];if(!d){if(Array.isArray(b)||(d=_unsupportedIterableToArray(b))||c&&b&&"number"==typeof b.length){d&&(b=d);var e=0,f=function a(){};return{s:f,n:function a(){return e>=b.length?{done:!0}:{done:!1,value:b[e++]}},e:function b(a){throw a},f:f}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var g,h=!0,i=!1;return{s:function a(){d=d.call(b)},n:function a(){var b=d.next();return h=b.done,b},e:function b(a){i=!0,g=a},f:function a(){try{h||null==d["return"]||d["return"]()}finally{if(i)throw g}}}}function _unsupportedIterableToArray(b,c){if(b){if("string"==typeof b)return _arrayLikeToArray(b,c);var a={}.toString.call(b).slice(8,-1);return"Object"===a&&b.constructor&&(a=b.constructor.name),"Map"===a||"Set"===a?Array.from(b):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?_arrayLikeToArray(b,c):void 0}}function _arrayLikeToArray(b,c){(null==c||c>b.length)&&(c=b.length);for(var d=0,f=Array(c);d<c;d++)f[d]=b[d];return f}function asyncGeneratorStep(b,d,f,e,g,h,a){try{var c=b[h](a),i=c.value}catch(a){return void f(a)}c.done?d(i):Promise.resolve(i).then(e,g)}function _asyncToGenerator(b){return function(){var c=this,d=arguments;return new Promise(function(e,f){function g(a){asyncGeneratorStep(i,e,f,g,h,"next",a)}function h(a){asyncGeneratorStep(i,e,f,g,h,"throw",a)}var i=b.apply(c,d);g(void 0)})}}function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}// src/vode.ts
2
- var globals=exports.globals={currentViewTransition:void 0,requestAnimationFrame:!window.requestAnimationFrame?function(a){return a()}:window.requestAnimationFrame.bind(window),startViewTransition:!document.startViewTransition?null:document.startViewTransition.bind(document)};function vode(a,b){if(!a)throw new Error("first argument to vode() must be a tag name or a vode");for(var c=arguments.length,d=Array(2<c?c-2:0),e=2;e<c;e++)d[e-2]=arguments[e];return Array.isArray(a)?a:b?[a,b].concat(d):[a].concat(d)}function app(a,b,c){var d;function e(b){var d=Date.now(),e=c(f.state);f.vode=render(f.state,a.parentElement,0,0,f.vode,e),a.tagName.toUpperCase()!==e[0].toUpperCase()&&(a=f.vode.node,a._vode=f),b||(f.stats.lastSyncRenderTime=Date.now()-d,f.stats.syncRenderCount++,f.isRendering=!1,f.qSync&&f.renderSync())}if(!(null!==(d=a)&&void 0!==d&&d.parentElement))throw new Error("first argument to app() must be a valid HTMLElement inside the <html></html> document");if(!b||"object"!==_typeof(b))throw new Error("second argument to app() must be a state object");if("function"!=typeof c)throw new Error("third argument to app() must be a function that returns a vode");var f={syncRenderer:globals.requestAnimationFrame,asyncRenderer:globals.startViewTransition,qSync:null,qAsync:null,stats:{lastSyncRenderTime:0,lastAsyncRenderTime:0,syncRenderCount:0,asyncRenderCount:0,liveEffectCount:0,patchCount:0,syncRenderPatchCount:0,asyncRenderPatchCount:0}},g=b;Object.defineProperty(b,"patch",{enumerable:!1,configurable:!0,writable:!1,value:function(){function a(a,c){return b.apply(this,arguments)}var b=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function c(a,b){var d,e,h,i,j,k,l;return _regenerator().w(function(c){for(;1;)switch(c.p=c.n){case 0:if(a&&("function"==typeof a||"object"===_typeof(a))){c.n=1;break}return c.a(2);case 1:if(f.stats.patchCount++,!(null!==a&&void 0!==a&&a.next)){c.n=12;break}return d=a,f.stats.liveEffectCount++,c.p=2,c.n=3,d.next();case 3:e=c.v;case 4:if(!1!==e.done){c.n=9;break}return f.stats.liveEffectCount++,c.p=5,g.patch(e.value,b),c.n=6,d.next();case 6:e=c.v;case 7:return c.p=7,f.stats.liveEffectCount--,c.f(7);case 8:c.n=4;break;case 9:g.patch(e.value,b);case 10:return c.p=10,f.stats.liveEffectCount--,c.f(10);case 11:c.n=22;break;case 12:if(!a.then){c.n=17;break}return f.stats.liveEffectCount++,c.p=13,c.n=14,a;case 14:h=c.v,g.patch(h,b);case 15:return c.p=15,f.stats.liveEffectCount--,c.f(15);case 16:c.n=22;break;case 17:if(!Array.isArray(a)){c.n=18;break}if(0<a.length){i=_createForOfIteratorHelper(a);try{for(i.s();!(j=i.n()).done;)k=j.value,g.patch(k,!document.hidden&&!!f.asyncRenderer)}catch(a){i.e(a)}finally{i.f()}}else{f.qSync=mergeState(f.qSync||{},f.qAsync,!1),f.qAsync=null;try{null===(l=globals.currentViewTransition)||void 0===l||l.skipTransition()}catch(a){}f.stats.syncRenderPatchCount++,f.renderSync()}c.n=22;break;case 18:if("function"!=typeof a){c.n=19;break}g.patch(a(f.state),b),c.n=22;break;case 19:if(!b){c.n=21;break}return f.stats.asyncRenderPatchCount++,f.qAsync=mergeState(f.qAsync||{},a,!1),c.n=20,f.renderAsync();case 20:c.n=22;break;case 21:f.stats.syncRenderPatchCount++,f.qSync=mergeState(f.qSync||{},a,!1),f.renderSync();case 22:return c.a(2)}},c,null,[[13,,15,16],[5,,7,8],[2,,10,11]])}));return a}()});var h=e.bind(null,!1),i=e.bind(null,!0);Object.defineProperty(f,"renderSync",{enumerable:!1,configurable:!0,writable:!1,value:function a(){f.isRendering||!f.qSync||(f.isRendering=!0,f.state=mergeState(f.state,f.qSync,!0),f.qSync=null,f.syncRenderer(h))}}),Object.defineProperty(f,"renderAsync",{enumerable:!1,configurable:!0,writable:!1,value:function(){function a(){return b.apply(this,arguments)}var b=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function a(){var b,c,d;return _regenerator().w(function(a){for(;1;)switch(a.p=a.n){case 0:if(!f.isAnimating&&f.qAsync){a.n=1;break}return a.a(2);case 1:return a.n=2,null===(b=globals.currentViewTransition)||void 0===b?void 0:b.updateCallbackDone;case 2:if(!(f.isAnimating||!f.qAsync||document.hidden)){a.n=3;break}return a.a(2);case 3:return f.isAnimating=!0,c=Date.now(),a.p=4,f.state=mergeState(f.state,f.qAsync,!0),f.qAsync=null,globals.currentViewTransition=f.asyncRenderer(i),a.n=5,null===(d=globals.currentViewTransition)||void 0===d?void 0:d.updateCallbackDone;case 5:return a.p=5,f.stats.lastAsyncRenderTime=Date.now()-c,f.stats.asyncRenderCount++,f.isAnimating=!1,a.f(5);case 6:f.qAsync&&f.renderAsync();case 7:return a.a(2)}},a,null,[[4,,5,6]])}));return a}()}),f.state=g;var j=a;j._vode=f;var k=Array.from(a.parentElement.children).indexOf(a);f.vode=render(b,a.parentElement,k,k,hydrate(a,!0),c(b));for(var l=arguments.length,m=Array(3<l?l-3:0),n=3;n<l;n++)m[n-3]=arguments[n];for(var o,p=0,q=m;p<q.length;p++)o=q[p],g.patch(o);return function(a){return g.patch(a)}}function defuse(a){if(null!==a&&void 0!==a&&a._vode){var b=function c(a){if(null!==a&&void 0!==a&&a.node){var d=props(a);if(d){for(var e in d)"o"===e[0]&&"n"===e[1]&&(a.node[e]=null);a.node["catch"]=null}if(a.node._vode)defuse(a.node);else{var f=children(a);if(f){var g,h=_createForOfIteratorHelper(f);try{for(h.s();!(g=h.n()).done;){var i=g.value;b(i)}}catch(a){h.e(a)}finally{h.f()}}}}},c=b,d=a._vode;delete a._vode,Object.defineProperty(d.state,"patch",{value:void 0}),Object.defineProperty(d,"renderSync",{value:function a(){}}),Object.defineProperty(d,"renderAsync",{value:function a(){}}),b(d.vode)}else{var e,f=_createForOfIteratorHelper(a.children);try{for(f.s();!(e=f.n()).done;){var g=e.value;defuse(g)}}catch(a){f.e(a)}finally{f.f()}}}function hydrate(b,c){if((null===b||void 0===b?void 0:b.nodeType)===Node.TEXT_NODE){var d;return""===(null===(d=b.nodeValue)||void 0===d?void 0:d.trim())?void 0:c?b:b.nodeValue}if(b.nodeType!==Node.COMMENT_NODE&&b.nodeType===Node.ELEMENT_NODE){var e=b.tagName.toLowerCase(),f=[e];if(c&&(f.node=b),null!==b&&void 0!==b&&b.hasAttributes()){var g,h={},i=b.attributes,j=_createForOfIteratorHelper(i);try{for(j.s();!(g=j.n()).done;){var k=g.value;h[k.name]=k.value}}catch(a){j.e(a)}finally{j.f()}f.push(h)}if(b.hasChildNodes()){var l,m=[],n=_createForOfIteratorHelper(b.childNodes);try{for(n.s();!(l=n.n()).done;){var o=l.value,p=o&&hydrate(o,c);p?f.push(p):o&&c&&m.push(o)}}catch(a){n.e(a)}finally{n.f()}for(var q,r=0,s=m;r<s.length;r++)q=s[r],q.remove()}return f}}function memo(a,b){if(!a||!Array.isArray(a))throw new Error("first argument to memo() must be an array of values to compare");if("function"!=typeof b)throw new Error("second argument to memo() must be a function that returns a vode or props object");return b.__memo=a,b}function createState(a){if(!a||"object"!==_typeof(a))throw new Error("createState() must be called with a state object");return a}function createPatch(a){return a}function tag(a){return!a?void 0:Array.isArray(a)?a[0]:"string"==typeof a||a.nodeType===Node.TEXT_NODE?"#text":void 0}function props(a){return Array.isArray(a)&&1<a.length&&a[1]&&!Array.isArray(a[1])&&"object"===_typeof(a[1])&&a[1].nodeType!==Node.TEXT_NODE?a[1]:void 0}function children(a){var b=childrenStart(a);return 0<b?a.slice(b):null}function childCount(a){var b=childrenStart(a);return 0>b?0:a.length-b}function child(a,b){var c=childrenStart(a);return 0<c?a[b+c]:void 0}function childrenStart(a){return props(a)?2<a.length?2:-1:Array.isArray(a)&&1<a.length?1:-1}function mergeState(a,b,c){if(!b)return a;for(var d in b){var e=b[d];if(e&&"object"===_typeof(e)){var f=a[d];f?Array.isArray(e)?a[d]=_toConsumableArray(e):e instanceof Date&&f!==e?a[d]=new Date(e):Array.isArray(f)?a[d]=mergeState({},e,c):"object"===_typeof(f)?mergeState(a[d],e,c):a[d]=mergeState({},e,c):Array.isArray(e)?a[d]=_toConsumableArray(e):e instanceof Date?a[d]=new Date(e):a[d]=mergeState({},e,c)}else void 0===e&&c?delete a[d]:a[d]=e}return a}function render(a,b,c,d,e,f,g){try{var h,j;f=remember(a,f,e);var k=!f||"number"==typeof f||"boolean"==typeof f;if(f===e||!e&&k)return e;var l=(null===e||void 0===e?void 0:e.nodeType)===Node.TEXT_NODE,m=l?e:null===e||void 0===e?void 0:e.node;if(k)return(null===m||void 0===m?void 0:m.onUnmount)&&a.patch(m.onUnmount(m)),void(null===m||void 0===m||m.remove());var n=!k&&isTextVode(f),o=!k&&isNaturalVode(f),p=!!f&&"string"!=typeof f&&!!(null!==(h=f)&&void 0!==h&&h.node||(null===(j=f)||void 0===j?void 0:j.nodeType)===Node.TEXT_NODE);if(!n&&!o&&!p&&!e)throw new Error("Invalid vode: "+_typeof(f)+" "+JSON.stringify(f));else p&&n?f=f.wholeText:p&&o&&(f=_toConsumableArray(f));if(l&&n)return m.nodeValue!==f&&(m.nodeValue=f),e;if(n&&(!m||!l)){var q=document.createTextNode(f);if(m)m.onUnmount&&a.patch(m.onUnmount(m)),m.replaceWith(q);else{for(var r,s=!1,t=d;t<b.childNodes.length;t++)if(r=b.childNodes[t],r){r.before(q,r),s=!0;break}s||b.appendChild(q)}return q}if(o&&(!m||l||e[0]!==f[0])){var u=f;1 in u&&(u[1]=remember(a,u[1],void 0));var v=props(f);void 0!==(null===v||void 0===v?void 0:v.xmlns)&&(g=v.xmlns);var w=g?document.createElementNS(g,f[0]):document.createElement(f[0]);if(f.node=w,patchProperties(a,w,void 0,v,null!==g&&void 0!==g?g:null),!!v&&"catch"in v&&(f.node["catch"]=null,f.node.removeAttribute("catch")),m)m.onUnmount&&a.patch(m.onUnmount(m)),m.replaceWith(w);else{for(var x,y=!1,z=d;z<b.childNodes.length;z++)if(x=b.childNodes[z],x){x.before(w,x),y=!0;break}y||b.appendChild(w)}var A=children(f);if(A)for(var B=v?2:1,C=0,D=0;D<A.length;D++){var E=A[D],F=render(a,w,D,C,void 0,E,null!==g&&void 0!==g?g:null);f[D+B]=F,F&&C++}return w.onMount&&a.patch(w.onMount(w)),f}if(!l&&o&&e[0]===f[0]){var G;f.node=m;var H=f,I=e,J=props(f),K=props(e);if(void 0!==(null===J||void 0===J?void 0:J.xmlns)&&(g=J.xmlns),null!==(G=H[1])&&void 0!==G&&G.__memo){var L=H[1];H[1]=remember(a,H[1],I[1]),L!==H[1]&&patchProperties(a,m,K,J,g)}else patchProperties(a,m,K,J,g);!(null!==J&&void 0!==J&&J["catch"])||(null===K||void 0===K?void 0:K["catch"])===J["catch"]||(f.node["catch"]=null,f.node.removeAttribute("catch"));var M=children(f),N=children(e);if(M)for(var O=J?2:1,P=0,Q=0;Q<M.length;Q++){var R=M[Q],S=N&&N[Q],T=render(a,m,Q,P,S,R,g);f[Q+O]=T,T&&P++}if(N)for(var U=M?M.length:0,V=N.length-1;V>=U;V--)render(a,m,V,V,N[V],void 0,g);return f}}catch(h){var W,X=null===(W=props(f))||void 0===W?void 0:W["catch"];if(X){var Y,Z="function"==typeof X?X(a,h):X;return render(a,b,c,d,hydrate((null===(Y=f)||void 0===Y?void 0:Y.node)||(null===e||void 0===e?void 0:e.node),!0),Z,g)}throw h}}function isNaturalVode(a){return Array.isArray(a)&&0<a.length&&"string"==typeof a[0]}function isTextVode(a){return"string"==typeof a||(null===a||void 0===a?void 0:a.nodeType)===Node.TEXT_NODE}function remember(a,b,c){if("function"!=typeof b)return b;var d=null===b||void 0===b?void 0:b.__memo,e=null===c||void 0===c?void 0:c.__memo;if(Array.isArray(d)&&Array.isArray(e)&&d.length===e.length){for(var f=!0,g=0;g<d.length;g++)if(d[g]!==e[g]){f=!1;break}if(f)return c}var h=unwrap(b,a);return"object"===_typeof(h)&&(h.__memo=null===b||void 0===b?void 0:b.__memo),h}function unwrap(a,b){return"function"==typeof a?unwrap(a(b),b):a}function patchProperties(a,b,c,d,e){if(d||c){var f=void 0!==e;if(c)for(var g in c){var h=c[g],i=null===d||void 0===d?void 0:d[g];h!==i&&(d?d[g]=patchProperty(a,b,g,h,i,f):patchProperty(a,b,g,h,void 0,f))}if(d&&c){for(var j in d)if(!(j in c)){var k=d[j];d[j]=patchProperty(a,b,j,void 0,k,f)}}else if(d)for(var l in d){var m=d[l];d[l]=patchProperty(a,b,l,void 0,m,f)}}}function patchProperty(a,b,c,d,e,f){if("style"===c){if(!e)b.style.cssText="";else if("string"==typeof e)d!==e&&(b.style.cssText=e);else if(d&&"object"===_typeof(d)){for(var g in d){var h=e[g];h||(b.style[g]=null)}for(var i in e){var j=d[i],l=e[i];j!==l&&(b.style[i]=l)}}else for(var m in e)b.style[m]=e[m];}else if("class"===c)e?b.setAttribute("class",classString(e)):b.removeAttribute("class");else if(!("o"===c[0]&&"n"===c[1]))f||(b[c]=e),void 0===e||null===e||!1===e?b.removeAttribute(c):b.setAttribute(c,e);else if(e){var n=null;if("function"==typeof e){var o=e;n=function c(b){return a.patch(o(a,b))}}else"object"===_typeof(e)&&(n=function b(){return a.patch(e)});b[c]=n}else b[c]=null;return e}function classString(a){return"string"==typeof a?a:Array.isArray(a)?a.map(classString).join(" "):"object"===_typeof(a)?Object.keys(a).filter(function(b){return a[b]}).join(" "):""}// src/vode-tags.ts
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.LINK=exports.LINEARGRADIENT=exports.LINE=exports.LI=exports.LEGEND=exports.LABEL=exports.KBD=exports.INS=exports.INPUT=exports.IMG=exports.IMAGE=exports.IFRAME=exports.I=exports.HTML=exports.HR=exports.HGROUP=exports.HEADER=exports.HEAD=exports.H6=exports.H5=exports.H4=exports.H3=exports.H2=exports.H1=exports.G=exports.FORM=exports.FOREIGNOBJECT=exports.FOOTER=exports.FILTER=exports.FIGURE=exports.FIGCAPTION=exports.FIELDSET=exports.FETURBULENCE=exports.FETILE=exports.FESPOTLIGHT=exports.FESPECULARLIGHTING=exports.FEPOINTLIGHT=exports.FEOFFSET=exports.FEMORPHOLOGY=exports.FEMERGENODE=exports.FEMERGE=exports.FEIMAGE=exports.FEGAUSSIANBLUR=exports.FEFUNCR=exports.FEFUNCG=exports.FEFUNCB=exports.FEFUNCA=exports.FEFLOOD=exports.FEDROPSHADOW=exports.FEDISTANTLIGHT=exports.FEDISPLACEMENTMAP=exports.FEDIFFUSELIGHTING=exports.FECONVOLVEMATRIX=exports.FECOMPOSITE=exports.FECOMPONENTTRANSFER=exports.FECOLORMATRIX=exports.FEBLEND=exports.EMBED=exports.EM=exports.ELLIPSE=exports.DT=exports.DL=exports.DIV=exports.DIALOG=exports.DFN=exports.DETAILS=exports.DESC=exports.DEL=exports.DEFS=exports.DD=exports.DATALIST=exports.DATA=exports.COLGROUP=exports.COL=exports.CODE=exports.CLIPPATH=exports.CITE=exports.CIRCLE=exports.CAPTION=exports.CANVAS=exports.BUTTON=exports.BR=exports.BODY=exports.BLOCKQUOTE=exports.BDO=exports.BDI=exports.BASE=exports.B=exports.AUDIO=exports.ASIDE=exports.ARTICLE=exports.AREA=exports.ANNOTATION_XML=exports.ANNOTATION=exports.ANIMATETRANSFORM=exports.ANIMATEMOTION=exports.ANIMATE=exports.ADDRESS=exports.ABBR=exports.A=void 0,exports.VIEW=exports.VIDEO=exports.VAR=exports.USE=exports.UL=exports.U=exports.TSPAN=exports.TRACK=exports.TR=exports.TITLE=exports.TIME=exports.THEAD=exports.TH=exports.TFOOT=exports.TEXTPATH=exports.TEXTAREA=exports.TEXT=exports.TEMPLATE=exports.TD=exports.TBODY=exports.TABLE=exports.SYMBOL=exports.SWITCH=exports.SVG=exports.SUP=exports.SUMMARY=exports.SUB=exports.STYLE=exports.STRONG=exports.STOP=exports.SPAN=exports.SOURCE=exports.SMALL=exports.SLOT=exports.SET=exports.SEMANTICS=exports.SELECT=exports.SECTION=exports.SEARCH=exports.SCRIPT=exports.SAMP=exports.S=exports.RUBY=exports.RT=exports.RP=exports.RECT=exports.RADIALGRADIENT=exports.Q=exports.PROGRESS=exports.PRE=exports.POLYLINE=exports.POLYGON=exports.PICTURE=exports.PATTERN=exports.PATH=exports.P=exports.OUTPUT=exports.OPTION=exports.OPTGROUP=exports.OL=exports.OBJECT=exports.NOSCRIPT=exports.NAV=exports.MUNDEROVER=exports.MUNDER=exports.MTR=exports.MTEXT=exports.MTD=exports.MTABLE=exports.MSUP=exports.MSUBSUP=exports.MSUB=exports.MSTYLE=exports.MSQRT=exports.MSPACE=exports.MS=exports.MROW=exports.MROOT=exports.MPRESCRIPTS=exports.MPHANTOM=exports.MPATH=exports.MPADDED=exports.MOVER=exports.MO=exports.MN=exports.MMULTISCRIPTS=exports.MI=exports.MFRAC=exports.METER=exports.METADATA=exports.META=exports.MERROR=exports.MENU=exports.MATH=exports.MASK=exports.MARKER=exports.MARK=exports.MAP=exports.MAIN=exports.MACTION=void 0,exports.WBR=void 0,exports.app=app,exports.child=child,exports.childCount=childCount,exports.children=children,exports.childrenStart=childrenStart,exports.context=context,exports.createPatch=createPatch,exports.createState=createState,exports.defuse=defuse,exports.globals=void 0,exports.hydrate=hydrate,exports.memo=memo,exports.mergeClass=mergeClass,exports.mergeProps=mergeProps,exports.mergeStyle=mergeStyle,exports.props=props,exports.tag=tag,exports.vode=vode;function _classCallCheck(b,a){if(!(b instanceof a))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(a,_toPropertyKey(c.key),c)}function _createClass(a,b,c){return b&&_defineProperties(a.prototype,b),c&&_defineProperties(a,c),Object.defineProperty(a,"prototype",{writable:!1}),a}function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==_typeof(b)?b:b+""}function _toPrimitive(a,b){if("object"!=_typeof(a)||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=_typeof(d))return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}function _regenerator(){function b(a,b,f,g){var h=b&&b.prototype instanceof d?b:d,c=Object.create(h.prototype);return _regeneratorDefine2(c,"_invoke",function(a,b,g){function h(a,b){for(q=a,s=b,e=0;!w&&t&&!c&&e<v.length;e++){var c,f=v[e],g=p.p,h=f[2];3<a?(c=h===b)&&(s=f[(q=f[4])?5:(q=3,3)],f[4]=f[5]=j):f[0]<=g&&((c=2>a&&g<f[1])?(q=0,p.v=b,p.n=f[1]):g<h&&(c=3>a||f[0]>b||b>h)&&(f[4]=a,f[5]=b,p.n=h,q=0))}if(c||1<a)return m;throw w=!0,b}var k,q,s,t=0,v=g||[],w=!1,p={p:0,n:0,v:j,a:h,f:h.bind(j,4),d:function c(a,b){return k=a,q=0,s=j,p.n=b,m}};return function(c,d,f){if(1<t)throw TypeError("Generator is already running");for(w&&1===d&&h(d,f),q=d,s=f;(e=2>q?j:s)||!w;){k||(q?3>q?(1<q&&(p.n=-1),h(q,s)):p.n=s:p.v=s);try{if(t=2,k){if(q||(c="next"),e=k[c]){if(!(e=e.call(k,s)))throw TypeError("iterator result is not an object");if(!e.done)return e;s=e.value,2>q&&(q=0)}else 1===q&&(e=k["return"])&&e.call(k),2>q&&(s=TypeError("The iterator does not provide a '"+c+"' method"),q=1);k=j}else if((e=(w=0>p.n)?s:a.call(b,p))!==m)break}catch(a){k=j,q=1,s=a}finally{t=1}}return{value:e,done:w}}}(a,f,g),!0),c}function d(){}function g(){}function h(){}function i(a){return Object.setPrototypeOf?Object.setPrototypeOf(a,h):(a.__proto__=h,_regeneratorDefine2(a,l,"GeneratorFunction")),a.prototype=Object.create(c),a}/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var j,e,f="function"==typeof Symbol?Symbol:{},k=f.iterator||"@@iterator",l=f.toStringTag||"@@toStringTag",m={};e=Object.getPrototypeOf;var a=[][k]?e(e([][k]())):(_regeneratorDefine2(e={},k,function(){return this}),e),c=h.prototype=d.prototype=Object.create(a);return g.prototype=h,_regeneratorDefine2(c,"constructor",h),_regeneratorDefine2(h,"constructor",g),g.displayName="GeneratorFunction",_regeneratorDefine2(h,l,"GeneratorFunction"),_regeneratorDefine2(c),_regeneratorDefine2(c,l,"Generator"),_regeneratorDefine2(c,k,function(){return this}),_regeneratorDefine2(c,"toString",function(){return"[object Generator]"}),(_regenerator=function a(){return{w:b,m:i}})()}function _regeneratorDefine2(a,b,c,d){var f=Object.defineProperty;try{f({},"",{})}catch(a){f=0}_regeneratorDefine2=function e(a,b,c,d){function g(b,c){_regeneratorDefine2(a,b,function(a){return this._invoke(b,c,a)})}b?f?f(a,b,{value:c,enumerable:!d,configurable:!d,writable:!d}):a[b]=c:(g("next",0),g("throw",1),g("return",2))},_regeneratorDefine2(a,b,c,d)}function _createForOfIteratorHelper(b,c){var d="undefined"!=typeof Symbol&&b[Symbol.iterator]||b["@@iterator"];if(!d){if(Array.isArray(b)||(d=_unsupportedIterableToArray(b))||c&&b&&"number"==typeof b.length){d&&(b=d);var e=0,f=function a(){};return{s:f,n:function a(){return e>=b.length?{done:!0}:{done:!1,value:b[e++]}},e:function b(a){throw a},f:f}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var g,h=!0,i=!1;return{s:function a(){d=d.call(b)},n:function a(){var b=d.next();return h=b.done,b},e:function b(a){i=!0,g=a},f:function a(){try{h||null==d["return"]||d["return"]()}finally{if(i)throw g}}}}function asyncGeneratorStep(b,d,f,e,g,h,a){try{var c=b[h](a),i=c.value}catch(a){return void f(a)}c.done?d(i):Promise.resolve(i).then(e,g)}function _asyncToGenerator(b){return function(){var c=this,d=arguments;return new Promise(function(e,f){function g(a){asyncGeneratorStep(i,e,f,g,h,"next",a)}function h(a){asyncGeneratorStep(i,e,f,g,h,"throw",a)}var i=b.apply(c,d);g(void 0)})}}function _toConsumableArray(a){return _arrayWithoutHoles(a)||_iterableToArray(a)||_unsupportedIterableToArray(a)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(b,c){if(b){if("string"==typeof b)return _arrayLikeToArray(b,c);var a={}.toString.call(b).slice(8,-1);return"Object"===a&&b.constructor&&(a=b.constructor.name),"Map"===a||"Set"===a?Array.from(b):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?_arrayLikeToArray(b,c):void 0}}function _iterableToArray(a){if("undefined"!=typeof Symbol&&null!=a[Symbol.iterator]||null!=a["@@iterator"])return Array.from(a)}function _arrayWithoutHoles(a){if(Array.isArray(a))return _arrayLikeToArray(a)}function _arrayLikeToArray(b,c){(null==c||c>b.length)&&(c=b.length);for(var d=0,f=Array(c);d<c;d++)f[d]=b[d];return f}function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}// src/vode.ts
2
+ var globals=exports.globals={currentViewTransition:void 0,requestAnimationFrame:!window.requestAnimationFrame?function(a){return a()}:window.requestAnimationFrame.bind(window),startViewTransition:!document.startViewTransition?null:document.startViewTransition.bind(document)};function vode(a,b){if(!a)throw new Error("first argument to vode() must be a tag name or a vode");for(var c=arguments.length,d=Array(2<c?c-2:0),e=2;e<c;e++)d[e-2]=arguments[e];return Array.isArray(a)?a:b?[a,b].concat(d):[a].concat(d)}function app(a,b,c){function d(b){var d=Date.now(),e=c(i.state);i.vode=render(i.state,a.parentElement,0,0,i.vode,e),a.tagName.toUpperCase()!==e[0].toUpperCase()&&(a=i.vode.node,a._vode=i),b||(i.stats.lastSyncRenderTime=Date.now()-d,i.stats.syncRenderCount++,i.isRendering=!1,i.qSync&&i.renderSync())}for(var e,f=arguments.length,g=Array(3<f?f-3:0),h=3;h<f;h++)g[h-3]=arguments[h];if(!(null!==(e=a)&&void 0!==e&&e.parentElement))throw new Error("first argument to app() must be a valid HTMLElement inside the <html></html> document");if(!b||"object"!==_typeof(b))throw new Error("second argument to app() must be a state object");if("function"!=typeof c)throw new Error("third argument to app() must be a function that returns a vode");var i={syncRenderer:globals.requestAnimationFrame,asyncRenderer:globals.startViewTransition,qSync:null,qAsync:null,stats:{lastSyncRenderTime:0,lastAsyncRenderTime:0,syncRenderCount:0,asyncRenderCount:0,liveEffectCount:0,patchCount:0,syncRenderPatchCount:0,asyncRenderPatchCount:0}},j=b;"patch"in b&&"function"==typeof b.patch&&Array.isArray(b.patch.initialPatches)&&(g=[].concat(_toConsumableArray(b.patch.initialPatches),_toConsumableArray(g))),Object.defineProperty(b,"patch",{enumerable:!1,configurable:!0,writable:!1,value:function(){function a(a,c){return b.apply(this,arguments)}var b=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function c(a,b){var d,e,f,g,h,k,l;return _regenerator().w(function(c){for(;1;)switch(c.p=c.n){case 0:if(a&&("function"==typeof a||"object"===_typeof(a))){c.n=1;break}return c.a(2);case 1:if(i.stats.patchCount++,!(null!==a&&void 0!==a&&a.next)){c.n=12;break}return d=a,i.stats.liveEffectCount++,c.p=2,c.n=3,d.next();case 3:e=c.v;case 4:if(!1!==e.done){c.n=9;break}return i.stats.liveEffectCount++,c.p=5,j.patch(e.value,b),c.n=6,d.next();case 6:e=c.v;case 7:return c.p=7,i.stats.liveEffectCount--,c.f(7);case 8:c.n=4;break;case 9:j.patch(e.value,b);case 10:return c.p=10,i.stats.liveEffectCount--,c.f(10);case 11:c.n=22;break;case 12:if(!a.then){c.n=17;break}return i.stats.liveEffectCount++,c.p=13,c.n=14,a;case 14:f=c.v,j.patch(f,b);case 15:return c.p=15,i.stats.liveEffectCount--,c.f(15);case 16:c.n=22;break;case 17:if(!Array.isArray(a)){c.n=18;break}if(0<a.length){g=_createForOfIteratorHelper(a);try{for(g.s();!(h=g.n()).done;)k=h.value,j.patch(k,!document.hidden&&!!i.asyncRenderer)}catch(a){g.e(a)}finally{g.f()}}else{i.qSync=mergeState(i.qSync||{},i.qAsync,!1),i.qAsync=null;try{null===(l=globals.currentViewTransition)||void 0===l||l.skipTransition()}catch(a){}i.stats.syncRenderPatchCount++,i.renderSync()}c.n=22;break;case 18:if("function"!=typeof a){c.n=19;break}j.patch(a(i.state),b),c.n=22;break;case 19:if(!b){c.n=21;break}return i.stats.asyncRenderPatchCount++,i.qAsync=mergeState(i.qAsync||{},a,!1),c.n=20,i.renderAsync();case 20:c.n=22;break;case 21:i.stats.syncRenderPatchCount++,i.qSync=mergeState(i.qSync||{},a,!1),i.renderSync();case 22:return c.a(2)}},c,null,[[13,,15,16],[5,,7,8],[2,,10,11]])}));return a}()});var k=d.bind(null,!1),l=d.bind(null,!0);Object.defineProperty(i,"renderSync",{enumerable:!1,configurable:!0,writable:!1,value:function a(){i.isRendering||!i.qSync||(i.isRendering=!0,i.state=mergeState(i.state,i.qSync,!0),i.qSync=null,i.syncRenderer(k))}}),Object.defineProperty(i,"renderAsync",{enumerable:!1,configurable:!0,writable:!1,value:function(){function a(){return b.apply(this,arguments)}var b=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function a(){var b,c,d;return _regenerator().w(function(a){for(;1;)switch(a.p=a.n){case 0:if(!i.isAnimating&&i.qAsync){a.n=1;break}return a.a(2);case 1:return a.n=2,null===(b=globals.currentViewTransition)||void 0===b?void 0:b.updateCallbackDone;case 2:if(!(i.isAnimating||!i.qAsync||document.hidden)){a.n=3;break}return a.a(2);case 3:return i.isAnimating=!0,c=Date.now(),a.p=4,i.state=mergeState(i.state,i.qAsync,!0),i.qAsync=null,globals.currentViewTransition=i.asyncRenderer(l),a.n=5,null===(d=globals.currentViewTransition)||void 0===d?void 0:d.updateCallbackDone;case 5:return a.p=5,i.stats.lastAsyncRenderTime=Date.now()-c,i.stats.asyncRenderCount++,i.isAnimating=!1,a.f(5);case 6:i.qAsync&&i.renderAsync();case 7:return a.a(2)}},a,null,[[4,,5,6]])}));return a}()}),i.state=j;var m=a;m._vode=i;var n=Array.from(a.parentElement.children).indexOf(a);i.vode=render(b,a.parentElement,n,n,hydrate(a,!0),c(b));var o,p=_createForOfIteratorHelper(g);try{for(p.s();!(o=p.n()).done;){var q=o.value;j.patch(q)}}catch(a){p.e(a)}finally{p.f()}return function(a){return j.patch(a)}}function defuse(a){if(null!==a&&void 0!==a&&a._vode){var b=function c(a){if(null!==a&&void 0!==a&&a.node){var d=props(a);if(d){for(var e in d)"o"===e[0]&&"n"===e[1]&&(a.node[e]=null);a.node["catch"]=null}if(a.node._vode)defuse(a.node);else{var f=children(a);if(f){var g,h=_createForOfIteratorHelper(f);try{for(h.s();!(g=h.n()).done;){var i=g.value;b(i)}}catch(a){h.e(a)}finally{h.f()}}}}},c=b,d=a._vode;delete a._vode,Object.defineProperty(d.state,"patch",{value:void 0}),Object.defineProperty(d,"renderSync",{value:function a(){}}),Object.defineProperty(d,"renderAsync",{value:function a(){}}),b(d.vode)}else{var e,f=_createForOfIteratorHelper(a.children);try{for(f.s();!(e=f.n()).done;){var g=e.value;defuse(g)}}catch(a){f.e(a)}finally{f.f()}}}function hydrate(b,c){if((null===b||void 0===b?void 0:b.nodeType)===Node.TEXT_NODE){var d;return""===(null===(d=b.nodeValue)||void 0===d?void 0:d.trim())?void 0:c?b:b.nodeValue}if(b.nodeType!==Node.COMMENT_NODE&&b.nodeType===Node.ELEMENT_NODE){var e=b.tagName.toLowerCase(),f=[e];if(c&&(f.node=b),null!==b&&void 0!==b&&b.hasAttributes()){var g,h={},i=b.attributes,j=_createForOfIteratorHelper(i);try{for(j.s();!(g=j.n()).done;){var k=g.value;h[k.name]=k.value}}catch(a){j.e(a)}finally{j.f()}f.push(h)}if(b.hasChildNodes()){var l,m=[],n=_createForOfIteratorHelper(b.childNodes);try{for(n.s();!(l=n.n()).done;){var o=l.value,p=o&&hydrate(o,c);p?f.push(p):o&&c&&m.push(o)}}catch(a){n.e(a)}finally{n.f()}for(var q,r=0,s=m;r<s.length;r++)q=s[r],q.remove()}return f}}function memo(a,b){if(!a||!Array.isArray(a))throw new Error("first argument to memo() must be an array of values to compare");if("function"!=typeof b)throw new Error("second argument to memo() must be a function that returns a vode or props object");return b.__memo=a,b}function createState(a){if(!a||"object"!==_typeof(a))throw new Error("createState() must be called with a state object");return"patch"in a||Object.defineProperty(a,"patch",{enumerable:!1,configurable:!0,writable:!1,value:function c(b){var d=a;Array.isArray(d.patch.initialPatches)||(d.patch.initialPatches=[]),d.patch.initialPatches.push(b)}}),a}function createPatch(a){return a}function tag(a){return!a?void 0:Array.isArray(a)?a[0]:"string"==typeof a||a.nodeType===Node.TEXT_NODE?"#text":void 0}function props(a){return Array.isArray(a)&&1<a.length&&a[1]&&!Array.isArray(a[1])&&"object"===_typeof(a[1])&&a[1].nodeType!==Node.TEXT_NODE?a[1]:void 0}function children(a){var b=childrenStart(a);return 0<b?a.slice(b):null}function childCount(a){var b=childrenStart(a);return 0>b?0:a.length-b}function child(a,b){var c=childrenStart(a);return 0<c?a[b+c]:void 0}function childrenStart(a){return props(a)?2<a.length?2:-1:Array.isArray(a)&&1<a.length?1:-1}function mergeState(a,b,c){if(!b)return a;for(var d in b){var e=b[d];if(e&&"object"===_typeof(e)){var f=a[d];f?Array.isArray(e)?a[d]=_toConsumableArray(e):e instanceof Date&&f!==e?a[d]=new Date(e):Array.isArray(f)?a[d]=mergeState({},e,c):"object"===_typeof(f)?mergeState(a[d],e,c):a[d]=mergeState({},e,c):Array.isArray(e)?a[d]=_toConsumableArray(e):e instanceof Date?a[d]=new Date(e):a[d]=mergeState({},e,c)}else void 0===e&&c?delete a[d]:a[d]=e}return a}function render(a,b,c,d,e,f,g){try{var h,j;f=remember(a,f,e);var k=!f||"number"==typeof f||"boolean"==typeof f;if(f===e||!e&&k)return e;var l=(null===e||void 0===e?void 0:e.nodeType)===Node.TEXT_NODE,m=l?e:null===e||void 0===e?void 0:e.node;if(k)return(null===m||void 0===m?void 0:m.onUnmount)&&a.patch(m.onUnmount(m)),void(null===m||void 0===m||m.remove());var n=!k&&isTextVode(f),o=!k&&isNaturalVode(f),p=!!f&&"string"!=typeof f&&!!(null!==(h=f)&&void 0!==h&&h.node||(null===(j=f)||void 0===j?void 0:j.nodeType)===Node.TEXT_NODE);if(!n&&!o&&!p&&!e)throw new Error("Invalid vode: "+_typeof(f)+" "+JSON.stringify(f));else p&&n?f=f.wholeText:p&&o&&(f=_toConsumableArray(f));if(l&&n)return m.nodeValue!==f&&(m.nodeValue=f),e;if(n&&(!m||!l)){var q=document.createTextNode(f);if(m)m.onUnmount&&a.patch(m.onUnmount(m)),m.replaceWith(q);else{for(var r,s=!1,t=d;t<b.childNodes.length;t++)if(r=b.childNodes[t],r){r.before(q,r),s=!0;break}s||b.appendChild(q)}return q}if(o&&(!m||l||e[0]!==f[0])){var u=f;1 in u&&(u[1]=remember(a,u[1],void 0));var v=props(f);void 0!==(null===v||void 0===v?void 0:v.xmlns)&&(g=v.xmlns);var w=g?document.createElementNS(g,f[0]):document.createElement(f[0]);if(f.node=w,patchProperties(a,w,void 0,v,null!==g&&void 0!==g?g:null),!!v&&"catch"in v&&(f.node["catch"]=null,f.node.removeAttribute("catch")),m)m.onUnmount&&a.patch(m.onUnmount(m)),m.replaceWith(w);else{for(var x,y=!1,z=d;z<b.childNodes.length;z++)if(x=b.childNodes[z],x){x.before(w,x),y=!0;break}y||b.appendChild(w)}var A=children(f);if(A)for(var B=v?2:1,C=0,D=0;D<A.length;D++){var E=A[D],F=render(a,w,D,C,void 0,E,null!==g&&void 0!==g?g:null);f[D+B]=F,F&&C++}return w.onMount&&a.patch(w.onMount(w)),f}if(!l&&o&&e[0]===f[0]){var G;f.node=m;var H=f,I=e,J=props(f),K=props(e);if(void 0!==(null===J||void 0===J?void 0:J.xmlns)&&(g=J.xmlns),null!==(G=H[1])&&void 0!==G&&G.__memo){var L=H[1];H[1]=remember(a,H[1],I[1]),L!==H[1]&&patchProperties(a,m,K,J,g)}else patchProperties(a,m,K,J,g);!(null!==J&&void 0!==J&&J["catch"])||(null===K||void 0===K?void 0:K["catch"])===J["catch"]||(f.node["catch"]=null,f.node.removeAttribute("catch"));var M=children(f),N=children(e);if(M)for(var O=J?2:1,P=0,Q=0;Q<M.length;Q++){var R=M[Q],S=N&&N[Q],T=render(a,m,Q,P,S,R,g);f[Q+O]=T,T&&P++}if(N)for(var U=M?M.length:0,V=N.length-1;V>=U;V--)render(a,m,V,V,N[V],void 0,g);return f}}catch(h){var W,X=null===(W=props(f))||void 0===W?void 0:W["catch"];if(X){var Y,Z="function"==typeof X?X(a,h):X;return render(a,b,c,d,hydrate((null===(Y=f)||void 0===Y?void 0:Y.node)||(null===e||void 0===e?void 0:e.node),!0),Z,g)}throw h}}function isNaturalVode(a){return Array.isArray(a)&&0<a.length&&"string"==typeof a[0]}function isTextVode(a){return"string"==typeof a||(null===a||void 0===a?void 0:a.nodeType)===Node.TEXT_NODE}function remember(a,b,c){if("function"!=typeof b)return b;var d=null===b||void 0===b?void 0:b.__memo,e=null===c||void 0===c?void 0:c.__memo;if(Array.isArray(d)&&Array.isArray(e)&&d.length===e.length){for(var f=!0,g=0;g<d.length;g++)if(d[g]!==e[g]){f=!1;break}if(f)return c}var h=unwrap(b,a);return"object"===_typeof(h)&&(h.__memo=null===b||void 0===b?void 0:b.__memo),h}function unwrap(a,b){return"function"==typeof a?unwrap(a(b),b):a}function patchProperties(a,b,c,d,e){if(d||c){var f=void 0!==e;if(c)for(var g in c){var h=c[g],i=null===d||void 0===d?void 0:d[g];h!==i&&(d?d[g]=patchProperty(a,b,g,h,i,f):patchProperty(a,b,g,h,void 0,f))}if(d&&c){for(var j in d)if(!(j in c)){var k=d[j];d[j]=patchProperty(a,b,j,void 0,k,f)}}else if(d)for(var l in d){var m=d[l];d[l]=patchProperty(a,b,l,void 0,m,f)}}}function patchProperty(a,b,c,d,e,f){if("style"===c){if(!e)b.style.cssText="";else if("string"==typeof e)d!==e&&(b.style.cssText=e);else if(d&&"object"===_typeof(d)){for(var g in d){var h=e[g];h||(b.style[g]=null)}for(var i in e){var j=d[i],l=e[i];j!==l&&(b.style[i]=l)}}else for(var m in e)b.style[m]=e[m];}else if("class"===c)e?b.setAttribute("class",classString(e)):b.removeAttribute("class");else if(!("o"===c[0]&&"n"===c[1]))f||(b[c]=e),void 0===e||null===e||!1===e?b.removeAttribute(c):b.setAttribute(c,e);else if(e){var n=null;if("function"==typeof e){var o=e;n=function c(b){return a.patch(o(a,b))}}else"object"===_typeof(e)&&(n=function b(){return a.patch(e)});b[c]=n}else b[c]=null;return e}function classString(a){return"string"==typeof a?a:Array.isArray(a)?a.map(classString).join(" "):"object"===_typeof(a)?Object.keys(a).filter(function(b){return a[b]}).join(" "):""}// src/vode-tags.ts
3
3
  var A=exports.A="a",ABBR=exports.ABBR="abbr",ADDRESS=exports.ADDRESS="address",AREA=exports.AREA="area",ARTICLE=exports.ARTICLE="article",ASIDE=exports.ASIDE="aside",AUDIO=exports.AUDIO="audio",B=exports.B="b",BASE=exports.BASE="base",BDI=exports.BDI="bdi",BDO=exports.BDO="bdo",BLOCKQUOTE=exports.BLOCKQUOTE="blockquote",BODY=exports.BODY="body",BR=exports.BR="br",BUTTON=exports.BUTTON="button",CANVAS=exports.CANVAS="canvas",CAPTION=exports.CAPTION="caption",CITE=exports.CITE="cite",CODE=exports.CODE="code",COL=exports.COL="col",COLGROUP=exports.COLGROUP="colgroup",DATA=exports.DATA="data",DATALIST=exports.DATALIST="datalist",DD=exports.DD="dd",DEL=exports.DEL="del",DETAILS=exports.DETAILS="details",DFN=exports.DFN="dfn",DIALOG=exports.DIALOG="dialog",DIV=exports.DIV="div",DL=exports.DL="dl",DT=exports.DT="dt",EM=exports.EM="em",EMBED=exports.EMBED="embed",FIELDSET=exports.FIELDSET="fieldset",FIGCAPTION=exports.FIGCAPTION="figcaption",FIGURE=exports.FIGURE="figure",FOOTER=exports.FOOTER="footer",FORM=exports.FORM="form",H1=exports.H1="h1",H2=exports.H2="h2",H3=exports.H3="h3",H4=exports.H4="h4",H5=exports.H5="h5",H6=exports.H6="h6",HEAD=exports.HEAD="head",HEADER=exports.HEADER="header",HGROUP=exports.HGROUP="hgroup",HR=exports.HR="hr",HTML=exports.HTML="html",I=exports.I="i",IFRAME=exports.IFRAME="iframe",IMG=exports.IMG="img",INPUT=exports.INPUT="input",INS=exports.INS="ins",KBD=exports.KBD="kbd",LABEL=exports.LABEL="label",LEGEND=exports.LEGEND="legend",LI=exports.LI="li",LINK=exports.LINK="link",MAIN=exports.MAIN="main",MAP=exports.MAP="map",MARK=exports.MARK="mark",MENU=exports.MENU="menu",META=exports.META="meta",METER=exports.METER="meter",NAV=exports.NAV="nav",NOSCRIPT=exports.NOSCRIPT="noscript",OBJECT=exports.OBJECT="object",OL=exports.OL="ol",OPTGROUP=exports.OPTGROUP="optgroup",OPTION=exports.OPTION="option",OUTPUT=exports.OUTPUT="output",P=exports.P="p",PICTURE=exports.PICTURE="picture",PRE=exports.PRE="pre",PROGRESS=exports.PROGRESS="progress",Q=exports.Q="q",RP=exports.RP="rp",RT=exports.RT="rt",RUBY=exports.RUBY="ruby",S=exports.S="s",SAMP=exports.SAMP="samp",SCRIPT=exports.SCRIPT="script",SEARCH=exports.SEARCH="search",SECTION=exports.SECTION="section",SELECT=exports.SELECT="select",SLOT=exports.SLOT="slot",SMALL=exports.SMALL="small",SOURCE=exports.SOURCE="source",SPAN=exports.SPAN="span",STRONG=exports.STRONG="strong",STYLE=exports.STYLE="style",SUB=exports.SUB="sub",SUMMARY=exports.SUMMARY="summary",SUP=exports.SUP="sup",TABLE=exports.TABLE="table",TBODY=exports.TBODY="tbody",TD=exports.TD="td",TEMPLATE=exports.TEMPLATE="template",TEXTAREA=exports.TEXTAREA="textarea",TFOOT=exports.TFOOT="tfoot",TH=exports.TH="th",THEAD=exports.THEAD="thead",TIME=exports.TIME="time",TITLE=exports.TITLE="title",TR=exports.TR="tr",TRACK=exports.TRACK="track",U=exports.U="u",UL=exports.UL="ul",VAR=exports.VAR="var",VIDEO=exports.VIDEO="video",WBR=exports.WBR="wbr",ANIMATE=exports.ANIMATE="animate",ANIMATEMOTION=exports.ANIMATEMOTION="animateMotion",ANIMATETRANSFORM=exports.ANIMATETRANSFORM="animateTransform",CIRCLE=exports.CIRCLE="circle",CLIPPATH=exports.CLIPPATH="clipPath",DEFS=exports.DEFS="defs",DESC=exports.DESC="desc",ELLIPSE=exports.ELLIPSE="ellipse",FEBLEND=exports.FEBLEND="feBlend",FECOLORMATRIX=exports.FECOLORMATRIX="feColorMatrix",FECOMPONENTTRANSFER=exports.FECOMPONENTTRANSFER="feComponentTransfer",FECOMPOSITE=exports.FECOMPOSITE="feComposite",FECONVOLVEMATRIX=exports.FECONVOLVEMATRIX="feConvolveMatrix",FEDIFFUSELIGHTING=exports.FEDIFFUSELIGHTING="feDiffuseLighting",FEDISPLACEMENTMAP=exports.FEDISPLACEMENTMAP="feDisplacementMap",FEDISTANTLIGHT=exports.FEDISTANTLIGHT="feDistantLight",FEDROPSHADOW=exports.FEDROPSHADOW="feDropShadow",FEFLOOD=exports.FEFLOOD="feFlood",FEFUNCA=exports.FEFUNCA="feFuncA",FEFUNCB=exports.FEFUNCB="feFuncB",FEFUNCG=exports.FEFUNCG="feFuncG",FEFUNCR=exports.FEFUNCR="feFuncR",FEGAUSSIANBLUR=exports.FEGAUSSIANBLUR="feGaussianBlur",FEIMAGE=exports.FEIMAGE="feImage",FEMERGE=exports.FEMERGE="feMerge",FEMERGENODE=exports.FEMERGENODE="feMergeNode",FEMORPHOLOGY=exports.FEMORPHOLOGY="feMorphology",FEOFFSET=exports.FEOFFSET="feOffset",FEPOINTLIGHT=exports.FEPOINTLIGHT="fePointLight",FESPECULARLIGHTING=exports.FESPECULARLIGHTING="feSpecularLighting",FESPOTLIGHT=exports.FESPOTLIGHT="feSpotLight",FETILE=exports.FETILE="feTile",FETURBULENCE=exports.FETURBULENCE="feTurbulence",FILTER=exports.FILTER="filter",FOREIGNOBJECT=exports.FOREIGNOBJECT="foreignObject",G=exports.G="g",IMAGE=exports.IMAGE="image",LINE=exports.LINE="line",LINEARGRADIENT=exports.LINEARGRADIENT="linearGradient",MARKER=exports.MARKER="marker",MASK=exports.MASK="mask",METADATA=exports.METADATA="metadata",MPATH=exports.MPATH="mpath",PATH=exports.PATH="path",PATTERN=exports.PATTERN="pattern",POLYGON=exports.POLYGON="polygon",POLYLINE=exports.POLYLINE="polyline",RADIALGRADIENT=exports.RADIALGRADIENT="radialGradient",RECT=exports.RECT="rect",SET=exports.SET="set",STOP=exports.STOP="stop",SVG=exports.SVG="svg",SWITCH=exports.SWITCH="switch",SYMBOL=exports.SYMBOL="symbol",TEXT=exports.TEXT="text",TEXTPATH=exports.TEXTPATH="textPath",TSPAN=exports.TSPAN="tspan",USE=exports.USE="use",VIEW=exports.VIEW="view",ANNOTATION=exports.ANNOTATION="annotation",ANNOTATION_XML=exports.ANNOTATION_XML="annotation-xml",MACTION=exports.MACTION="maction",MATH=exports.MATH="math",MERROR=exports.MERROR="merror",MFRAC=exports.MFRAC="mfrac",MI=exports.MI="mi",MMULTISCRIPTS=exports.MMULTISCRIPTS="mmultiscripts",MN=exports.MN="mn",MO=exports.MO="mo",MOVER=exports.MOVER="mover",MPADDED=exports.MPADDED="mpadded",MPHANTOM=exports.MPHANTOM="mphantom",MPRESCRIPTS=exports.MPRESCRIPTS="mprescripts",MROOT=exports.MROOT="mroot",MROW=exports.MROW="mrow",MS=exports.MS="ms",MSPACE=exports.MSPACE="mspace",MSQRT=exports.MSQRT="msqrt",MSTYLE=exports.MSTYLE="mstyle",MSUB=exports.MSUB="msub",MSUBSUP=exports.MSUBSUP="msubsup",MSUP=exports.MSUP="msup",MTABLE=exports.MTABLE="mtable",MTD=exports.MTD="mtd",MTEXT=exports.MTEXT="mtext",MTR=exports.MTR="mtr",MUNDER=exports.MUNDER="munder",MUNDEROVER=exports.MUNDEROVER="munderover",SEMANTICS=exports.SEMANTICS="semantics";// src/merge-class.ts
4
4
  function mergeClass(){for(var c=arguments.length,d=Array(c),e=0;e<c;e++)d[e]=arguments[e];if(!d||0===d.length)return null;if(1===d.length)return d[0];for(var f=d[0],g=1;g<d.length;g++){var h=f,i=d[g];if(!h)f=i;else if(!i)continue;else if("string"==typeof h&&"string"==typeof i){var j=h.split(" "),k=i.split(" "),l=/* @__PURE__ */new Set([].concat(_toConsumableArray(j),_toConsumableArray(k)));f=Array.from(l).join(" ").trim()}else if("string"==typeof h&&Array.isArray(i)){var m=/* @__PURE__ */new Set([].concat(_toConsumableArray(i),_toConsumableArray(h.split(" "))));f=Array.from(m).join(" ").trim()}else if(Array.isArray(h)&&"string"==typeof i){var n=/* @__PURE__ */new Set([].concat(_toConsumableArray(h),_toConsumableArray(i.split(" "))));f=Array.from(n).join(" ").trim()}else if(Array.isArray(h)&&Array.isArray(i)){var o=/* @__PURE__ */new Set([].concat(_toConsumableArray(h),_toConsumableArray(i)));f=Array.from(o).join(" ").trim()}else if("string"==typeof h&&"object"===_typeof(i))f=_objectSpread(_defineProperty({},h,!0),i);else if("object"===_typeof(h)&&"string"==typeof i)f=_objectSpread(_objectSpread({},h),{},_defineProperty({},i,!0));else if("object"===_typeof(h)&&"object"===_typeof(i))f=_objectSpread(_objectSpread({},h),i);else if("object"===_typeof(h)&&Array.isArray(i)){var p,q=_objectSpread({},h),r=_createForOfIteratorHelper(i);try{for(r.s();!(p=r.n()).done;){var s=p.value;q[s]=!0}}catch(a){r.e(a)}finally{r.f()}f=q}else if(Array.isArray(h)&&"object"===_typeof(i)){var t,u={},v=_createForOfIteratorHelper(h);try{for(v.s();!(t=v.n()).done;){var w=t.value;u[w]=!0}}catch(a){v.e(a)}finally{v.f()}for(var x,y=0,z=Object.keys(i);y<z.length;y++)x=z[y],u[x]=i[x];f=u}else throw new Error("cannot merge classes of ".concat(h," (").concat(_typeof(h),") and ").concat(i," (").concat(_typeof(i),")"))}return f}// src/merge-style.ts
5
5
  var tempDivForStyling=document.createElement("div");function mergeStyle(){try{for(var a=tempDivForStyling.style,b=arguments.length,c=Array(b),d=0;d<b;d++)c[d]=arguments[d];for(var e,f=0,g=c;f<g.length;f++)if(e=g[f],"object"===_typeof(e)&&null!==e)for(var h in e)a[h]=e[h];else"string"==typeof e&&(a.cssText+=";"+e);return a.cssText}finally{tempDivForStyling.style.cssText=""}}// src/merge-props.ts
6
6
  function mergeProps(){for(var a=arguments.length,b=Array(a),c=0;c<a;c++)b[c]=arguments[c];if(0!==b.length){if(1===b.length)return b[0]||void 0;for(var d,e,f=0,g=b;f<(void 0).length;f++)if(e=(void 0)[f],"object"===_typeof(e)&&null!==e)for(var h in d||(d={}),e)"style"===h?d.style=mergeStyle(d.style,e.style):"class"===h?d["class"]=mergeClass(d["class"],e["class"]):d[h]=e[h];return d}}// src/state-context.ts
7
- function context(a){return new ProxyStateContextImpl(a,[])}var ProxyStateContextImpl=/*#__PURE__*/function(){function a(b,c){function d(a,b){if(1<c.length){var d=0,e=b[c[d]];for(("object"!==_typeof(e)||null===e)&&(b[c[d]]=e={}),d=1;d<c.length-1;d++){var f=e;e=e[c[d]],("object"!==_typeof(e)||null===e)&&(f[c[d]]=e={})}e[c[d]]=a}else 1===c.length?"object"===_typeof(b[c[0]])&&"object"===_typeof(a)?Object.assign(b[c[0]],a):b[c[0]]=a:Object.assign(b,a)}function e(a){var b={};return d(a,b),b}function f(){if(0===c.length)return b;for(var a=b?b[c[0]]:void 0,d=1;d<c.length&&!!a;d++)a=a[c[d]];return a}function g(a){d(a,b)}function h(a){if(Array.isArray(a)){var c,d=[],f=_createForOfIteratorHelper(a);try{for(f.s();!(c=f.n()).done;){var g=c.value;d.push(e(g))}}catch(a){f.e(a)}finally{f.f()}b.patch(d)}else b.patch(e(a))}return _classCallCheck(this,a),_defineProperty(this,"state",void 0),_defineProperty(this,"keys",void 0),this.state=b,this.keys=c,new Proxy(this,{get:function i(c,d,e){if("state"===d)return b;if("get"===d)return f;if("put"===d)return g;if("patch"===d)return h;var j=[].concat(_toConsumableArray(c.keys),[d+""]);return new a(c.state,j)}})}return _createClass(a,[{key:"get",value:function a(){throw"implemented in ctor"}},{key:"put",value:function b(a){throw"implemented in ctor"}},{key:"patch",value:function b(a){throw"implemented in ctor"}}])}();
7
+ function context(a){return new ProxyStateContextImpl(a,[])}var ProxyStateContextImpl=/*#__PURE__*/function(){function a(b,c){function d(a,b){if(1<c.length){var d=0,e=b[c[d]];for(("object"!==_typeof(e)||null===e)&&(b[c[d]]=e={}),d=1;d<c.length-1;d++){var f=e;e=e[c[d]],("object"!==_typeof(e)||null===e)&&(f[c[d]]=e={})}e[c[d]]=a}else 1===c.length?"object"===_typeof(b[c[0]])&&"object"===_typeof(a)?Object.assign(b[c[0]],a):b[c[0]]=a:Object.assign(b,a)}function e(a){var b={};return d(a,b),b}function f(){if(0===c.length)return b;for(var a=b?b[c[0]]:void 0,d=1;d<c.length&&!!a;d++)a=a[c[d]];return a}function g(a){d(a,b)}function h(a){if(Array.isArray(a)){var c,d=[],f=_createForOfIteratorHelper(a);try{for(f.s();!(c=f.n()).done;){var g=c.value;d.push(e(g))}}catch(a){f.e(a)}finally{f.f()}b.patch(d)}else b.patch(e(a))}return _classCallCheck(this,a),_defineProperty(this,"state",void 0),_defineProperty(this,"keys",void 0),this.state=b,this.keys=c,new Proxy(this,{get:function i(c,d,e){if("state"===d)return b;if("get"===d)return f;if("put"===d)return g;if("patch"===d)return h;var j=[].concat(_toConsumableArray(c.keys),[d+""]);return new a(c.state,j)}})}return _createClass(a,[{key:"get",value:function a(){}},{key:"put",value:function b(a){}},{key:"patch",value:function b(a){}}])}();
package/dist/vode.d.ts CHANGED
@@ -32,7 +32,7 @@ export type DeepPartial<S> = {
32
32
  };
33
33
  export type Effect<S> = (() => Patch<S>) | EventFunction<S> | Generator<Patch<S>> | AsyncGenerator<Patch<S>>;
34
34
  export type EventFunction<S> = (state: S, evt: Event) => Patch<S>;
35
- export interface Props<S> extends Partial<Omit<HTMLElement, keyof (DocumentFragment & ElementCSSInlineStyle & GlobalEventHandlers)> & {
35
+ export interface Props<S = PatchableState> extends Partial<Omit<HTMLElement, keyof (DocumentFragment & ElementCSSInlineStyle & GlobalEventHandlers)> & {
36
36
  [K in keyof EventsMap]: EventFunction<S> | Patch<S>;
37
37
  }> {
38
38
  [_: string]: unknown;
@@ -44,7 +44,7 @@ export interface Props<S> extends Partial<Omit<HTMLElement, keyof (DocumentFragm
44
44
  /** called before the element is detached */
45
45
  onUnmount?: MountFunction<S>;
46
46
  /** used instead of original vode when an error occurs during rendering */
47
- catch?: ((s: S, error: any) => ChildVode<S>) | ChildVode<S>;
47
+ catch?: ((s: S, error: Error) => ChildVode<S>) | ChildVode<S>;
48
48
  }
49
49
  export type MountFunction<S> = ((s: S, node: HTMLElement) => Patch<S>) | ((s: S, node: SVGSVGElement) => Patch<S>) | ((s: S, node: MathMLElement) => Patch<S>);
50
50
  export type ClassProp = "" | false | null | undefined | string | string[] | Record<string, boolean | undefined | null>;
@@ -127,7 +127,11 @@ export declare function hydrate<S = PatchableState>(element: Element | Text, pre
127
127
  /** memoizes the resulting component or props by comparing element by element (===) with the
128
128
  * `compare` of the previous render. otherwise skips the render step (not calling `componentOrProps`)*/
129
129
  export declare function memo<S = PatchableState>(compare: any[], componentOrProps: Component<S> | ((s: S) => Props<S>)): typeof componentOrProps extends ((s: S) => Props<S>) ? ((s: S) => Props<S>) : Component<S>;
130
- /** create a state object used as state for `app()`. it is updated with `PatchableState.patch()` using `merge()` */
130
+ /**
131
+ * create a patchable state object for a vode-app.
132
+ * calls to `patch()` prior to `app()` initialization will queue the patches and apply them before the initial patches.
133
+ * calls to `patch()` after `app()` initialization will apply the patch immediately and trigger a render as usual.
134
+ */
131
135
  export declare function createState<S = PatchableState>(state: S): PatchableState<S>;
132
136
  /** type safe way to create a patch. useful for type inference and autocompletion. */
133
137
  export declare function createPatch<S = PatchableState>(p: DeepPartial<S> | Effect<S> | IgnoredPatch): typeof p;
@@ -356,7 +360,7 @@ export declare function mergeProps<S extends PatchableState = PatchableState>(..
356
360
  * State context for type-safe access and manipulation of nested state paths
357
361
  * while still be able to access the parent state.
358
362
  */
359
- export interface StateContext<S extends PatchableState, SubState> extends SubContext<SubState> {
363
+ export interface StateContext<S extends Patchable<S>, SubState> extends SubContext<SubState> {
360
364
  /**
361
365
  * parent state
362
366
  * @see PatchableState<S>
@@ -372,21 +376,21 @@ export interface SubContext<SubState> {
372
376
  *
373
377
  * @returns The current value, or undefined if the path doesn't exist
374
378
  */
375
- get(): SubState | undefined;
379
+ get(): SubState;
376
380
  /**
377
381
  * Updates the nested sub-state value WITHOUT triggering a render.
378
382
  * This performs a silent mutation of the parent state object.
379
383
  *
380
384
  * @param {DeepPartial<SubState>} value - The new value or partial update to apply
381
385
  */
382
- put(value: SubState | Partial<SubState> | DeepPartial<SubState> | undefined | null): void;
386
+ put(value: SubState | Partial<SubState> | DeepPartial<SubState>): void;
383
387
  /**
384
388
  * Updates the nested sub-state value AND triggers a render.
385
389
  * This is the recommended way to update nested state in most cases.
386
390
  *
387
391
  * @param value - The new value or partial update to apply
388
392
  */
389
- patch(value: SubState | Partial<SubState> | DeepPartial<SubState> | Array<DeepPartial<SubState>> | undefined | null): void;
393
+ patch(value: SubState | Partial<SubState> | DeepPartial<SubState> | Array<DeepPartial<SubState>>): void;
390
394
  }
391
395
  export type ProxyStateContext<S extends PatchableState, SubState> = StateContext<S, SubState> & {
392
396
  [K in keyof SubState]-?: SubState[K] extends object ? ProxyStateContext<S, SubState[K]> : StateContext<S, SubState[K]>;
@@ -405,7 +409,6 @@ export type ProxySubContext<SubState> = SubContext<SubState> & {
405
409
  * settings: { theme: 'dark', lang: 'en' }
406
410
  * }
407
411
  * });
408
- * app(element, state, (s) => [DIV]);
409
412
  *
410
413
  * // Create a proxy context for the state
411
414
  * const ctx = context(state).user.profile.settings;
@@ -418,7 +421,6 @@ export type ProxySubContext<SubState> = SubContext<SubState> & {
418
421
  *
419
422
  * // Update without render (silent mutation)
420
423
  * ctx.put({ lang: 'de' });
421
- * state.patch({}); // trigger render manually later
422
424
  * ```
423
425
  *
424
426
  * @param state
@@ -1,8 +1,8 @@
1
- "use strict";function _classCallCheck(b,a){if(!(b instanceof a))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(a,_toPropertyKey(c.key),c)}function _createClass(a,b,c){return b&&_defineProperties(a.prototype,b),c&&_defineProperties(a,c),Object.defineProperty(a,"prototype",{writable:!1}),a}function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==_typeof(b)?b:b+""}function _toPrimitive(a,b){if("object"!=_typeof(a)||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=_typeof(d))return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}function _toConsumableArray(a){return _arrayWithoutHoles(a)||_iterableToArray(a)||_unsupportedIterableToArray(a)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _iterableToArray(a){if("undefined"!=typeof Symbol&&null!=a[Symbol.iterator]||null!=a["@@iterator"])return Array.from(a)}function _arrayWithoutHoles(a){if(Array.isArray(a))return _arrayLikeToArray(a)}function _regenerator(){function b(a,b,f,g){var h=b&&b.prototype instanceof d?b:d,c=Object.create(h.prototype);return _regeneratorDefine2(c,"_invoke",function(a,b,g){function h(a,b){for(q=a,s=b,e=0;!w&&t&&!c&&e<v.length;e++){var c,f=v[e],g=p.p,h=f[2];3<a?(c=h===b)&&(s=f[(q=f[4])?5:(q=3,3)],f[4]=f[5]=j):f[0]<=g&&((c=2>a&&g<f[1])?(q=0,p.v=b,p.n=f[1]):g<h&&(c=3>a||f[0]>b||b>h)&&(f[4]=a,f[5]=b,p.n=h,q=0))}if(c||1<a)return m;throw w=!0,b}var k,q,s,t=0,v=g||[],w=!1,p={p:0,n:0,v:j,a:h,f:h.bind(j,4),d:function c(a,b){return k=a,q=0,s=j,p.n=b,m}};return function(c,d,f){if(1<t)throw TypeError("Generator is already running");for(w&&1===d&&h(d,f),q=d,s=f;(e=2>q?j:s)||!w;){k||(q?3>q?(1<q&&(p.n=-1),h(q,s)):p.n=s:p.v=s);try{if(t=2,k){if(q||(c="next"),e=k[c]){if(!(e=e.call(k,s)))throw TypeError("iterator result is not an object");if(!e.done)return e;s=e.value,2>q&&(q=0)}else 1===q&&(e=k["return"])&&e.call(k),2>q&&(s=TypeError("The iterator does not provide a '"+c+"' method"),q=1);k=j}else if((e=(w=0>p.n)?s:a.call(b,p))!==m)break}catch(a){k=j,q=1,s=a}finally{t=1}}return{value:e,done:w}}}(a,f,g),!0),c}function d(){}function g(){}function h(){}function i(a){return Object.setPrototypeOf?Object.setPrototypeOf(a,h):(a.__proto__=h,_regeneratorDefine2(a,l,"GeneratorFunction")),a.prototype=Object.create(c),a}/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var j,e,f="function"==typeof Symbol?Symbol:{},k=f.iterator||"@@iterator",l=f.toStringTag||"@@toStringTag",m={};e=Object.getPrototypeOf;var a=[][k]?e(e([][k]())):(_regeneratorDefine2(e={},k,function(){return this}),e),c=h.prototype=d.prototype=Object.create(a);return g.prototype=h,_regeneratorDefine2(c,"constructor",h),_regeneratorDefine2(h,"constructor",g),g.displayName="GeneratorFunction",_regeneratorDefine2(h,l,"GeneratorFunction"),_regeneratorDefine2(c),_regeneratorDefine2(c,l,"Generator"),_regeneratorDefine2(c,k,function(){return this}),_regeneratorDefine2(c,"toString",function(){return"[object Generator]"}),(_regenerator=function a(){return{w:b,m:i}})()}function _regeneratorDefine2(a,b,c,d){var f=Object.defineProperty;try{f({},"",{})}catch(a){f=0}_regeneratorDefine2=function e(a,b,c,d){function g(b,c){_regeneratorDefine2(a,b,function(a){return this._invoke(b,c,a)})}b?f?f(a,b,{value:c,enumerable:!d,configurable:!d,writable:!d}):a[b]=c:(g("next",0),g("throw",1),g("return",2))},_regeneratorDefine2(a,b,c,d)}function asyncGeneratorStep(b,d,f,e,g,h,a){try{var c=b[h](a),i=c.value}catch(a){return void f(a)}c.done?d(i):Promise.resolve(i).then(e,g)}function _asyncToGenerator(b){return function(){var c=this,d=arguments;return new Promise(function(e,f){function g(a){asyncGeneratorStep(i,e,f,g,h,"next",a)}function h(a){asyncGeneratorStep(i,e,f,g,h,"throw",a)}var i=b.apply(c,d);g(void 0)})}}function _createForOfIteratorHelper(b,c){var d="undefined"!=typeof Symbol&&b[Symbol.iterator]||b["@@iterator"];if(!d){if(Array.isArray(b)||(d=_unsupportedIterableToArray(b))||c&&b&&"number"==typeof b.length){d&&(b=d);var e=0,f=function a(){};return{s:f,n:function a(){return e>=b.length?{done:!0}:{done:!1,value:b[e++]}},e:function b(a){throw a},f:f}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var g,h=!0,i=!1;return{s:function a(){d=d.call(b)},n:function a(){var b=d.next();return h=b.done,b},e:function b(a){i=!0,g=a},f:function a(){try{h||null==d["return"]||d["return"]()}finally{if(i)throw g}}}}function _unsupportedIterableToArray(b,c){if(b){if("string"==typeof b)return _arrayLikeToArray(b,c);var a={}.toString.call(b).slice(8,-1);return"Object"===a&&b.constructor&&(a=b.constructor.name),"Map"===a||"Set"===a?Array.from(b):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?_arrayLikeToArray(b,c):void 0}}function _arrayLikeToArray(b,c){(null==c||c>b.length)&&(c=b.length);for(var d=0,f=Array(c);d<c;d++)f[d]=b[d];return f}function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}var V=function(){function a(a,b){if(!a)throw new Error("first argument to vode() must be a tag name or a vode");for(var c=arguments.length,d=Array(2<c?c-2:0),e=2;e<c;e++)d[e-2]=arguments[e];return Array.isArray(a)?a:b?[a,b].concat(d):[a].concat(d)}function b(a,b,c){var e;function f(b){var d=Date.now(),e=c(g.state);g.vode=o(g.state,a.parentElement,0,0,g.vode,e),a.tagName.toUpperCase()!==e[0].toUpperCase()&&(a=g.vode.node,a._vode=g),b||(g.stats.lastSyncRenderTime=Date.now()-d,g.stats.syncRenderCount++,g.isRendering=!1,g.qSync&&g.renderSync())}if(!(null!==(e=a)&&void 0!==e&&e.parentElement))throw new Error("first argument to app() must be a valid HTMLElement inside the <html></html> document");if(!b||"object"!==_typeof(b))throw new Error("second argument to app() must be a state object");if("function"!=typeof c)throw new Error("third argument to app() must be a function that returns a vode");var g={syncRenderer:J.requestAnimationFrame,asyncRenderer:J.startViewTransition,qSync:null,qAsync:null,stats:{lastSyncRenderTime:0,lastAsyncRenderTime:0,syncRenderCount:0,asyncRenderCount:0,liveEffectCount:0,patchCount:0,syncRenderPatchCount:0,asyncRenderPatchCount:0}},h=b;Object.defineProperty(b,"patch",{enumerable:!1,configurable:!0,writable:!1,value:function(){function a(a,c){return b.apply(this,arguments)}var b=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function c(a,b){var d,e,f,i,j,k,l;return _regenerator().w(function(c){for(;1;)switch(c.p=c.n){case 0:if(a&&("function"==typeof a||"object"===_typeof(a))){c.n=1;break}return c.a(2);case 1:if(g.stats.patchCount++,!(null!==a&&void 0!==a&&a.next)){c.n=12;break}return d=a,g.stats.liveEffectCount++,c.p=2,c.n=3,d.next();case 3:e=c.v;case 4:if(!1!==e.done){c.n=9;break}return g.stats.liveEffectCount++,c.p=5,h.patch(e.value,b),c.n=6,d.next();case 6:e=c.v;case 7:return c.p=7,g.stats.liveEffectCount--,c.f(7);case 8:c.n=4;break;case 9:h.patch(e.value,b);case 10:return c.p=10,g.stats.liveEffectCount--,c.f(10);case 11:c.n=22;break;case 12:if(!a.then){c.n=17;break}return g.stats.liveEffectCount++,c.p=13,c.n=14,a;case 14:f=c.v,h.patch(f,b);case 15:return c.p=15,g.stats.liveEffectCount--,c.f(15);case 16:c.n=22;break;case 17:if(!Array.isArray(a)){c.n=18;break}if(0<a.length){i=_createForOfIteratorHelper(a);try{for(i.s();!(j=i.n()).done;)k=j.value,h.patch(k,!document.hidden&&!!g.asyncRenderer)}catch(a){i.e(a)}finally{i.f()}}else{g.qSync=n(g.qSync||{},g.qAsync,!1),g.qAsync=null;try{null===(l=J.currentViewTransition)||void 0===l||l.skipTransition()}catch(a){}g.stats.syncRenderPatchCount++,g.renderSync()}c.n=22;break;case 18:if("function"!=typeof a){c.n=19;break}h.patch(a(g.state),b),c.n=22;break;case 19:if(!b){c.n=21;break}return g.stats.asyncRenderPatchCount++,g.qAsync=n(g.qAsync||{},a,!1),c.n=20,g.renderAsync();case 20:c.n=22;break;case 21:g.stats.syncRenderPatchCount++,g.qSync=n(g.qSync||{},a,!1),g.renderSync();case 22:return c.a(2)}},c,null,[[13,,15,16],[5,,7,8],[2,,10,11]])}));return a}()});var i=f.bind(null,!1),j=f.bind(null,!0);Object.defineProperty(g,"renderSync",{enumerable:!1,configurable:!0,writable:!1,value:function a(){g.isRendering||!g.qSync||(g.isRendering=!0,g.state=n(g.state,g.qSync,!0),g.qSync=null,g.syncRenderer(i))}}),Object.defineProperty(g,"renderAsync",{enumerable:!1,configurable:!0,writable:!1,value:function(){function a(){return b.apply(this,arguments)}var b=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function a(){var b,c,d;return _regenerator().w(function(a){for(;1;)switch(a.p=a.n){case 0:if(!g.isAnimating&&g.qAsync){a.n=1;break}return a.a(2);case 1:return a.n=2,null===(b=J.currentViewTransition)||void 0===b?void 0:b.updateCallbackDone;case 2:if(!(g.isAnimating||!g.qAsync||document.hidden)){a.n=3;break}return a.a(2);case 3:return g.isAnimating=!0,c=Date.now(),a.p=4,g.state=n(g.state,g.qAsync,!0),g.qAsync=null,J.currentViewTransition=g.asyncRenderer(j),a.n=5,null===(d=J.currentViewTransition)||void 0===d?void 0:d.updateCallbackDone;case 5:return a.p=5,g.stats.lastAsyncRenderTime=Date.now()-c,g.stats.asyncRenderCount++,g.isAnimating=!1,a.f(5);case 6:g.qAsync&&g.renderAsync();case 7:return a.a(2)}},a,null,[[4,,5,6]])}));return a}()}),g.state=h;var k=a;k._vode=g;var l=Array.from(a.parentElement.children).indexOf(a);g.vode=o(b,a.parentElement,l,l,d(a,!0),c(b));for(var m=arguments.length,p=Array(3<m?m-3:0),q=3;q<m;q++)p[q-3]=arguments[q];for(var r,s=0,t=p;s<t.length;s++)r=t[s],h.patch(r);return function(a){return h.patch(a)}}function c(a){if(null!==a&&void 0!==a&&a._vode){var b=function d(a){if(null!==a&&void 0!==a&&a.node){var e=i(a);if(e){for(var f in e)"o"===f[0]&&"n"===f[1]&&(a.node[f]=null);a.node["catch"]=null}if(a.node._vode)c(a.node);else{var g=j(a);if(g){var h,k=_createForOfIteratorHelper(g);try{for(k.s();!(h=k.n()).done;){var l=h.value;b(l)}}catch(a){k.e(a)}finally{k.f()}}}}},d=b,e=a._vode;delete a._vode,Object.defineProperty(e.state,"patch",{value:void 0}),Object.defineProperty(e,"renderSync",{value:function a(){}}),Object.defineProperty(e,"renderAsync",{value:function a(){}}),b(e.vode)}else{var f,g=_createForOfIteratorHelper(a.children);try{for(g.s();!(f=g.n()).done;){var h=f.value;c(h)}}catch(a){g.e(a)}finally{g.f()}}}function d(b,c){if((null===b||void 0===b?void 0:b.nodeType)===Node.TEXT_NODE){var e;return""===(null===(e=b.nodeValue)||void 0===e?void 0:e.trim())?void 0:c?b:b.nodeValue}if(b.nodeType!==Node.COMMENT_NODE&&b.nodeType===Node.ELEMENT_NODE){var f=b.tagName.toLowerCase(),g=[f];if(c&&(g.node=b),null!==b&&void 0!==b&&b.hasAttributes()){var h,i={},j=b.attributes,k=_createForOfIteratorHelper(j);try{for(k.s();!(h=k.n()).done;){var l=h.value;i[l.name]=l.value}}catch(a){k.e(a)}finally{k.f()}g.push(i)}if(b.hasChildNodes()){var m,n=[],o=_createForOfIteratorHelper(b.childNodes);try{for(o.s();!(m=o.n()).done;){var p=m.value,q=p&&d(p,c);q?g.push(q):p&&c&&n.push(p)}}catch(a){o.e(a)}finally{o.f()}for(var r,s=0,t=n;s<t.length;s++)r=t[s],r.remove()}return g}}function e(a,b){if(!a||!Array.isArray(a))throw new Error("first argument to memo() must be an array of values to compare");if("function"!=typeof b)throw new Error("second argument to memo() must be a function that returns a vode or props object");return b.__memo=a,b}function f(a){if(!a||"object"!==_typeof(a))throw new Error("createState() must be called with a state object");return a}function g(a){return a}function h(a){return!a?void 0:Array.isArray(a)?a[0]:"string"==typeof a||a.nodeType===Node.TEXT_NODE?"#text":void 0}function i(a){return Array.isArray(a)&&1<a.length&&a[1]&&!Array.isArray(a[1])&&"object"===_typeof(a[1])&&a[1].nodeType!==Node.TEXT_NODE?a[1]:void 0}function j(a){var b=m(a);return 0<b?a.slice(b):null}function k(a){var b=m(a);return 0>b?0:a.length-b}function l(a,b){var c=m(a);return 0<c?a[b+c]:void 0}function m(a){return i(a)?2<a.length?2:-1:Array.isArray(a)&&1<a.length?1:-1}function n(a,b,c){if(!b)return a;for(var d in b){var e=b[d];if(e&&"object"===_typeof(e)){var f=a[d];f?Array.isArray(e)?a[d]=_toConsumableArray(e):e instanceof Date&&f!==e?a[d]=new Date(e):Array.isArray(f)?a[d]=n({},e,c):"object"===_typeof(f)?n(a[d],e,c):a[d]=n({},e,c):Array.isArray(e)?a[d]=_toConsumableArray(e):e instanceof Date?a[d]=new Date(e):a[d]=n({},e,c)}else void 0===e&&c?delete a[d]:a[d]=e}return a}function o(a,b,c,e,f,g,h){try{var k,l;g=r(a,g,f);var m=!g||"number"==typeof g||"boolean"==typeof g;if(g===f||!f&&m)return f;var n=(null===f||void 0===f?void 0:f.nodeType)===Node.TEXT_NODE,s=n?f:null===f||void 0===f?void 0:f.node;if(m)return(null===s||void 0===s?void 0:s.onUnmount)&&a.patch(s.onUnmount(s)),void(null===s||void 0===s||s.remove());var t=!m&&q(g),v=!m&&p(g),w=!!g&&"string"!=typeof g&&!!(null!==(k=g)&&void 0!==k&&k.node||(null===(l=g)||void 0===l?void 0:l.nodeType)===Node.TEXT_NODE);if(!t&&!v&&!w&&!f)throw new Error("Invalid vode: "+_typeof(g)+" "+JSON.stringify(g));else w&&t?g=g.wholeText:w&&v&&(g=_toConsumableArray(g));if(n&&t)return s.nodeValue!==g&&(s.nodeValue=g),f;if(t&&(!s||!n)){var x=document.createTextNode(g);if(s)s.onUnmount&&a.patch(s.onUnmount(s)),s.replaceWith(x);else{for(var y,z=!1,A=e;A<b.childNodes.length;A++)if(y=b.childNodes[A],y){y.before(x,y),z=!0;break}z||b.appendChild(x)}return x}if(v&&(!s||n||f[0]!==g[0])){var B=g;1 in B&&(B[1]=r(a,B[1],void 0));var C=i(g);void 0!==(null===C||void 0===C?void 0:C.xmlns)&&(h=C.xmlns);var D=h?document.createElementNS(h,g[0]):document.createElement(g[0]);if(g.node=D,u(a,D,void 0,C,null!==h&&void 0!==h?h:null),!!C&&"catch"in C&&(g.node["catch"]=null,g.node.removeAttribute("catch")),s)s.onUnmount&&a.patch(s.onUnmount(s)),s.replaceWith(D);else{for(var E,F=!1,G=e;G<b.childNodes.length;G++)if(E=b.childNodes[G],E){E.before(D,E),F=!0;break}F||b.appendChild(D)}var H=j(g);if(H)for(var I=C?2:1,J=0,K=0;K<H.length;K++){var L=H[K],M=o(a,D,K,J,void 0,L,null!==h&&void 0!==h?h:null);g[K+I]=M,M&&J++}return D.onMount&&a.patch(D.onMount(D)),g}if(!n&&v&&f[0]===g[0]){var N;g.node=s;var O=g,P=f,Q=i(g),R=i(f);if(void 0!==(null===Q||void 0===Q?void 0:Q.xmlns)&&(h=Q.xmlns),null!==(N=O[1])&&void 0!==N&&N.__memo){var S=O[1];O[1]=r(a,O[1],P[1]),S!==O[1]&&u(a,s,R,Q,h)}else u(a,s,R,Q,h);!(null!==Q&&void 0!==Q&&Q["catch"])||(null===R||void 0===R?void 0:R["catch"])===Q["catch"]||(g.node["catch"]=null,g.node.removeAttribute("catch"));var T=j(g),U=j(f);if(T)for(var V=Q?2:1,W=0,X=0;X<T.length;X++){var Y=T[X],Z=U&&U[X],$=o(a,s,X,W,Z,Y,h);g[X+V]=$,$&&W++}if(U)for(var _=T?T.length:0,aa=U.length-1;aa>=_;aa--)o(a,s,aa,aa,U[aa],void 0,h);return g}}catch(j){var ba,ca=null===(ba=i(g))||void 0===ba?void 0:ba["catch"];if(ca){var da,ea="function"==typeof ca?ca(a,j):ca;return o(a,b,c,e,d((null===(da=g)||void 0===da?void 0:da.node)||(null===f||void 0===f?void 0:f.node),!0),ea,h)}throw j}}function p(a){return Array.isArray(a)&&0<a.length&&"string"==typeof a[0]}function q(a){return"string"==typeof a||(null===a||void 0===a?void 0:a.nodeType)===Node.TEXT_NODE}function r(a,b,c){if("function"!=typeof b)return b;var d=null===b||void 0===b?void 0:b.__memo,e=null===c||void 0===c?void 0:c.__memo;if(Array.isArray(d)&&Array.isArray(e)&&d.length===e.length){for(var f=!0,g=0;g<d.length;g++)if(d[g]!==e[g]){f=!1;break}if(f)return c}var h=t(b,a);return"object"===_typeof(h)&&(h.__memo=null===b||void 0===b?void 0:b.__memo),h}function t(a,b){return"function"==typeof a?t(a(b),b):a}function u(a,b,c,d,e){if(d||c){var f=void 0!==e;if(c)for(var g in c){var h=c[g],i=null===d||void 0===d?void 0:d[g];h!==i&&(d?d[g]=v(a,b,g,h,i,f):v(a,b,g,h,void 0,f))}if(d&&c){for(var j in d)if(!(j in c)){var k=d[j];d[j]=v(a,b,j,void 0,k,f)}}else if(d)for(var l in d){var m=d[l];d[l]=v(a,b,l,void 0,m,f)}}}function v(a,b,c,d,e,f){if("style"===c){if(!e)b.style.cssText="";else if("string"==typeof e)d!==e&&(b.style.cssText=e);else if(d&&"object"===_typeof(d)){for(var g in d){var h=e[g];h||(b.style[g]=null)}for(var i in e){var j=d[i],l=e[i];j!==l&&(b.style[i]=l)}}else for(var m in e)b.style[m]=e[m];}else if("class"===c)e?b.setAttribute("class",w(e)):b.removeAttribute("class");else if(!("o"===c[0]&&"n"===c[1]))f||(b[c]=e),void 0===e||null===e||!1===e?b.removeAttribute(c):b.setAttribute(c,e);else if(e){var n=null;if("function"==typeof e){var o=e;n=function c(b){return a.patch(o(a,b))}}else"object"===_typeof(e)&&(n=function b(){return a.patch(e)});b[c]=n}else b[c]=null;return e}function w(a){return"string"==typeof a?a:Array.isArray(a)?a.map(w).join(" "):"object"===_typeof(a)?Object.keys(a).filter(function(b){return a[b]}).join(" "):""}// src/vode-tags.ts
1
+ "use strict";function _classCallCheck(b,a){if(!(b instanceof a))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(a,_toPropertyKey(c.key),c)}function _createClass(a,b,c){return b&&_defineProperties(a.prototype,b),c&&_defineProperties(a,c),Object.defineProperty(a,"prototype",{writable:!1}),a}function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==_typeof(b)?b:b+""}function _toPrimitive(a,b){if("object"!=_typeof(a)||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=_typeof(d))return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}function _regenerator(){function b(a,b,f,g){var h=b&&b.prototype instanceof d?b:d,c=Object.create(h.prototype);return _regeneratorDefine2(c,"_invoke",function(a,b,g){function h(a,b){for(q=a,s=b,e=0;!w&&t&&!c&&e<v.length;e++){var c,f=v[e],g=p.p,h=f[2];3<a?(c=h===b)&&(s=f[(q=f[4])?5:(q=3,3)],f[4]=f[5]=j):f[0]<=g&&((c=2>a&&g<f[1])?(q=0,p.v=b,p.n=f[1]):g<h&&(c=3>a||f[0]>b||b>h)&&(f[4]=a,f[5]=b,p.n=h,q=0))}if(c||1<a)return m;throw w=!0,b}var k,q,s,t=0,v=g||[],w=!1,p={p:0,n:0,v:j,a:h,f:h.bind(j,4),d:function c(a,b){return k=a,q=0,s=j,p.n=b,m}};return function(c,d,f){if(1<t)throw TypeError("Generator is already running");for(w&&1===d&&h(d,f),q=d,s=f;(e=2>q?j:s)||!w;){k||(q?3>q?(1<q&&(p.n=-1),h(q,s)):p.n=s:p.v=s);try{if(t=2,k){if(q||(c="next"),e=k[c]){if(!(e=e.call(k,s)))throw TypeError("iterator result is not an object");if(!e.done)return e;s=e.value,2>q&&(q=0)}else 1===q&&(e=k["return"])&&e.call(k),2>q&&(s=TypeError("The iterator does not provide a '"+c+"' method"),q=1);k=j}else if((e=(w=0>p.n)?s:a.call(b,p))!==m)break}catch(a){k=j,q=1,s=a}finally{t=1}}return{value:e,done:w}}}(a,f,g),!0),c}function d(){}function g(){}function h(){}function i(a){return Object.setPrototypeOf?Object.setPrototypeOf(a,h):(a.__proto__=h,_regeneratorDefine2(a,l,"GeneratorFunction")),a.prototype=Object.create(c),a}/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var j,e,f="function"==typeof Symbol?Symbol:{},k=f.iterator||"@@iterator",l=f.toStringTag||"@@toStringTag",m={};e=Object.getPrototypeOf;var a=[][k]?e(e([][k]())):(_regeneratorDefine2(e={},k,function(){return this}),e),c=h.prototype=d.prototype=Object.create(a);return g.prototype=h,_regeneratorDefine2(c,"constructor",h),_regeneratorDefine2(h,"constructor",g),g.displayName="GeneratorFunction",_regeneratorDefine2(h,l,"GeneratorFunction"),_regeneratorDefine2(c),_regeneratorDefine2(c,l,"Generator"),_regeneratorDefine2(c,k,function(){return this}),_regeneratorDefine2(c,"toString",function(){return"[object Generator]"}),(_regenerator=function a(){return{w:b,m:i}})()}function _regeneratorDefine2(a,b,c,d){var f=Object.defineProperty;try{f({},"",{})}catch(a){f=0}_regeneratorDefine2=function e(a,b,c,d){function g(b,c){_regeneratorDefine2(a,b,function(a){return this._invoke(b,c,a)})}b?f?f(a,b,{value:c,enumerable:!d,configurable:!d,writable:!d}):a[b]=c:(g("next",0),g("throw",1),g("return",2))},_regeneratorDefine2(a,b,c,d)}function asyncGeneratorStep(b,d,f,e,g,h,a){try{var c=b[h](a),i=c.value}catch(a){return void f(a)}c.done?d(i):Promise.resolve(i).then(e,g)}function _asyncToGenerator(b){return function(){var c=this,d=arguments;return new Promise(function(e,f){function g(a){asyncGeneratorStep(i,e,f,g,h,"next",a)}function h(a){asyncGeneratorStep(i,e,f,g,h,"throw",a)}var i=b.apply(c,d);g(void 0)})}}function _toConsumableArray(a){return _arrayWithoutHoles(a)||_iterableToArray(a)||_unsupportedIterableToArray(a)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _iterableToArray(a){if("undefined"!=typeof Symbol&&null!=a[Symbol.iterator]||null!=a["@@iterator"])return Array.from(a)}function _arrayWithoutHoles(a){if(Array.isArray(a))return _arrayLikeToArray(a)}function _createForOfIteratorHelper(b,c){var d="undefined"!=typeof Symbol&&b[Symbol.iterator]||b["@@iterator"];if(!d){if(Array.isArray(b)||(d=_unsupportedIterableToArray(b))||c&&b&&"number"==typeof b.length){d&&(b=d);var e=0,f=function a(){};return{s:f,n:function a(){return e>=b.length?{done:!0}:{done:!1,value:b[e++]}},e:function b(a){throw a},f:f}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var g,h=!0,i=!1;return{s:function a(){d=d.call(b)},n:function a(){var b=d.next();return h=b.done,b},e:function b(a){i=!0,g=a},f:function a(){try{h||null==d["return"]||d["return"]()}finally{if(i)throw g}}}}function _unsupportedIterableToArray(b,c){if(b){if("string"==typeof b)return _arrayLikeToArray(b,c);var a={}.toString.call(b).slice(8,-1);return"Object"===a&&b.constructor&&(a=b.constructor.name),"Map"===a||"Set"===a?Array.from(b):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?_arrayLikeToArray(b,c):void 0}}function _arrayLikeToArray(b,c){(null==c||c>b.length)&&(c=b.length);for(var d=0,f=Array(c);d<c;d++)f[d]=b[d];return f}function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}var V=function(){function a(a,b){if(!a)throw new Error("first argument to vode() must be a tag name or a vode");for(var c=arguments.length,d=Array(2<c?c-2:0),e=2;e<c;e++)d[e-2]=arguments[e];return Array.isArray(a)?a:b?[a,b].concat(d):[a].concat(d)}function b(a,b,c){function e(b){var d=Date.now(),e=c(j.state);j.vode=o(j.state,a.parentElement,0,0,j.vode,e),a.tagName.toUpperCase()!==e[0].toUpperCase()&&(a=j.vode.node,a._vode=j),b||(j.stats.lastSyncRenderTime=Date.now()-d,j.stats.syncRenderCount++,j.isRendering=!1,j.qSync&&j.renderSync())}for(var f,g=arguments.length,h=Array(3<g?g-3:0),i=3;i<g;i++)h[i-3]=arguments[i];if(!(null!==(f=a)&&void 0!==f&&f.parentElement))throw new Error("first argument to app() must be a valid HTMLElement inside the <html></html> document");if(!b||"object"!==_typeof(b))throw new Error("second argument to app() must be a state object");if("function"!=typeof c)throw new Error("third argument to app() must be a function that returns a vode");var j={syncRenderer:J.requestAnimationFrame,asyncRenderer:J.startViewTransition,qSync:null,qAsync:null,stats:{lastSyncRenderTime:0,lastAsyncRenderTime:0,syncRenderCount:0,asyncRenderCount:0,liveEffectCount:0,patchCount:0,syncRenderPatchCount:0,asyncRenderPatchCount:0}},k=b;"patch"in b&&"function"==typeof b.patch&&Array.isArray(b.patch.initialPatches)&&(h=[].concat(_toConsumableArray(b.patch.initialPatches),_toConsumableArray(h))),Object.defineProperty(b,"patch",{enumerable:!1,configurable:!0,writable:!1,value:function(){function a(a,c){return b.apply(this,arguments)}var b=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function c(a,b){var d,e,f,g,h,i,l;return _regenerator().w(function(c){for(;1;)switch(c.p=c.n){case 0:if(a&&("function"==typeof a||"object"===_typeof(a))){c.n=1;break}return c.a(2);case 1:if(j.stats.patchCount++,!(null!==a&&void 0!==a&&a.next)){c.n=12;break}return d=a,j.stats.liveEffectCount++,c.p=2,c.n=3,d.next();case 3:e=c.v;case 4:if(!1!==e.done){c.n=9;break}return j.stats.liveEffectCount++,c.p=5,k.patch(e.value,b),c.n=6,d.next();case 6:e=c.v;case 7:return c.p=7,j.stats.liveEffectCount--,c.f(7);case 8:c.n=4;break;case 9:k.patch(e.value,b);case 10:return c.p=10,j.stats.liveEffectCount--,c.f(10);case 11:c.n=22;break;case 12:if(!a.then){c.n=17;break}return j.stats.liveEffectCount++,c.p=13,c.n=14,a;case 14:f=c.v,k.patch(f,b);case 15:return c.p=15,j.stats.liveEffectCount--,c.f(15);case 16:c.n=22;break;case 17:if(!Array.isArray(a)){c.n=18;break}if(0<a.length){g=_createForOfIteratorHelper(a);try{for(g.s();!(h=g.n()).done;)i=h.value,k.patch(i,!document.hidden&&!!j.asyncRenderer)}catch(a){g.e(a)}finally{g.f()}}else{j.qSync=n(j.qSync||{},j.qAsync,!1),j.qAsync=null;try{null===(l=J.currentViewTransition)||void 0===l||l.skipTransition()}catch(a){}j.stats.syncRenderPatchCount++,j.renderSync()}c.n=22;break;case 18:if("function"!=typeof a){c.n=19;break}k.patch(a(j.state),b),c.n=22;break;case 19:if(!b){c.n=21;break}return j.stats.asyncRenderPatchCount++,j.qAsync=n(j.qAsync||{},a,!1),c.n=20,j.renderAsync();case 20:c.n=22;break;case 21:j.stats.syncRenderPatchCount++,j.qSync=n(j.qSync||{},a,!1),j.renderSync();case 22:return c.a(2)}},c,null,[[13,,15,16],[5,,7,8],[2,,10,11]])}));return a}()});var l=e.bind(null,!1),m=e.bind(null,!0);Object.defineProperty(j,"renderSync",{enumerable:!1,configurable:!0,writable:!1,value:function a(){j.isRendering||!j.qSync||(j.isRendering=!0,j.state=n(j.state,j.qSync,!0),j.qSync=null,j.syncRenderer(l))}}),Object.defineProperty(j,"renderAsync",{enumerable:!1,configurable:!0,writable:!1,value:function(){function a(){return b.apply(this,arguments)}var b=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function a(){var b,c,d;return _regenerator().w(function(a){for(;1;)switch(a.p=a.n){case 0:if(!j.isAnimating&&j.qAsync){a.n=1;break}return a.a(2);case 1:return a.n=2,null===(b=J.currentViewTransition)||void 0===b?void 0:b.updateCallbackDone;case 2:if(!(j.isAnimating||!j.qAsync||document.hidden)){a.n=3;break}return a.a(2);case 3:return j.isAnimating=!0,c=Date.now(),a.p=4,j.state=n(j.state,j.qAsync,!0),j.qAsync=null,J.currentViewTransition=j.asyncRenderer(m),a.n=5,null===(d=J.currentViewTransition)||void 0===d?void 0:d.updateCallbackDone;case 5:return a.p=5,j.stats.lastAsyncRenderTime=Date.now()-c,j.stats.asyncRenderCount++,j.isAnimating=!1,a.f(5);case 6:j.qAsync&&j.renderAsync();case 7:return a.a(2)}},a,null,[[4,,5,6]])}));return a}()}),j.state=k;var p=a;p._vode=j;var q=Array.from(a.parentElement.children).indexOf(a);j.vode=o(b,a.parentElement,q,q,d(a,!0),c(b));var r,s=_createForOfIteratorHelper(h);try{for(s.s();!(r=s.n()).done;){var t=r.value;k.patch(t)}}catch(a){s.e(a)}finally{s.f()}return function(a){return k.patch(a)}}function c(a){if(null!==a&&void 0!==a&&a._vode){var b=function d(a){if(null!==a&&void 0!==a&&a.node){var e=i(a);if(e){for(var f in e)"o"===f[0]&&"n"===f[1]&&(a.node[f]=null);a.node["catch"]=null}if(a.node._vode)c(a.node);else{var g=j(a);if(g){var h,k=_createForOfIteratorHelper(g);try{for(k.s();!(h=k.n()).done;){var l=h.value;b(l)}}catch(a){k.e(a)}finally{k.f()}}}}},d=b,e=a._vode;delete a._vode,Object.defineProperty(e.state,"patch",{value:void 0}),Object.defineProperty(e,"renderSync",{value:function a(){}}),Object.defineProperty(e,"renderAsync",{value:function a(){}}),b(e.vode)}else{var f,g=_createForOfIteratorHelper(a.children);try{for(g.s();!(f=g.n()).done;){var h=f.value;c(h)}}catch(a){g.e(a)}finally{g.f()}}}function d(b,c){if((null===b||void 0===b?void 0:b.nodeType)===Node.TEXT_NODE){var e;return""===(null===(e=b.nodeValue)||void 0===e?void 0:e.trim())?void 0:c?b:b.nodeValue}if(b.nodeType!==Node.COMMENT_NODE&&b.nodeType===Node.ELEMENT_NODE){var f=b.tagName.toLowerCase(),g=[f];if(c&&(g.node=b),null!==b&&void 0!==b&&b.hasAttributes()){var h,i={},j=b.attributes,k=_createForOfIteratorHelper(j);try{for(k.s();!(h=k.n()).done;){var l=h.value;i[l.name]=l.value}}catch(a){k.e(a)}finally{k.f()}g.push(i)}if(b.hasChildNodes()){var m,n=[],o=_createForOfIteratorHelper(b.childNodes);try{for(o.s();!(m=o.n()).done;){var p=m.value,q=p&&d(p,c);q?g.push(q):p&&c&&n.push(p)}}catch(a){o.e(a)}finally{o.f()}for(var r,s=0,t=n;s<t.length;s++)r=t[s],r.remove()}return g}}function e(a,b){if(!a||!Array.isArray(a))throw new Error("first argument to memo() must be an array of values to compare");if("function"!=typeof b)throw new Error("second argument to memo() must be a function that returns a vode or props object");return b.__memo=a,b}function f(a){if(!a||"object"!==_typeof(a))throw new Error("createState() must be called with a state object");return"patch"in a||Object.defineProperty(a,"patch",{enumerable:!1,configurable:!0,writable:!1,value:function c(b){var d=a;Array.isArray(d.patch.initialPatches)||(d.patch.initialPatches=[]),d.patch.initialPatches.push(b)}}),a}function g(a){return a}function h(a){return!a?void 0:Array.isArray(a)?a[0]:"string"==typeof a||a.nodeType===Node.TEXT_NODE?"#text":void 0}function i(a){return Array.isArray(a)&&1<a.length&&a[1]&&!Array.isArray(a[1])&&"object"===_typeof(a[1])&&a[1].nodeType!==Node.TEXT_NODE?a[1]:void 0}function j(a){var b=m(a);return 0<b?a.slice(b):null}function k(a){var b=m(a);return 0>b?0:a.length-b}function l(a,b){var c=m(a);return 0<c?a[b+c]:void 0}function m(a){return i(a)?2<a.length?2:-1:Array.isArray(a)&&1<a.length?1:-1}function n(a,b,c){if(!b)return a;for(var d in b){var e=b[d];if(e&&"object"===_typeof(e)){var f=a[d];f?Array.isArray(e)?a[d]=_toConsumableArray(e):e instanceof Date&&f!==e?a[d]=new Date(e):Array.isArray(f)?a[d]=n({},e,c):"object"===_typeof(f)?n(a[d],e,c):a[d]=n({},e,c):Array.isArray(e)?a[d]=_toConsumableArray(e):e instanceof Date?a[d]=new Date(e):a[d]=n({},e,c)}else void 0===e&&c?delete a[d]:a[d]=e}return a}function o(a,b,c,e,f,g,h){try{var k,l;g=r(a,g,f);var m=!g||"number"==typeof g||"boolean"==typeof g;if(g===f||!f&&m)return f;var n=(null===f||void 0===f?void 0:f.nodeType)===Node.TEXT_NODE,s=n?f:null===f||void 0===f?void 0:f.node;if(m)return(null===s||void 0===s?void 0:s.onUnmount)&&a.patch(s.onUnmount(s)),void(null===s||void 0===s||s.remove());var t=!m&&q(g),v=!m&&p(g),w=!!g&&"string"!=typeof g&&!!(null!==(k=g)&&void 0!==k&&k.node||(null===(l=g)||void 0===l?void 0:l.nodeType)===Node.TEXT_NODE);if(!t&&!v&&!w&&!f)throw new Error("Invalid vode: "+_typeof(g)+" "+JSON.stringify(g));else w&&t?g=g.wholeText:w&&v&&(g=_toConsumableArray(g));if(n&&t)return s.nodeValue!==g&&(s.nodeValue=g),f;if(t&&(!s||!n)){var x=document.createTextNode(g);if(s)s.onUnmount&&a.patch(s.onUnmount(s)),s.replaceWith(x);else{for(var y,z=!1,A=e;A<b.childNodes.length;A++)if(y=b.childNodes[A],y){y.before(x,y),z=!0;break}z||b.appendChild(x)}return x}if(v&&(!s||n||f[0]!==g[0])){var B=g;1 in B&&(B[1]=r(a,B[1],void 0));var C=i(g);void 0!==(null===C||void 0===C?void 0:C.xmlns)&&(h=C.xmlns);var D=h?document.createElementNS(h,g[0]):document.createElement(g[0]);if(g.node=D,u(a,D,void 0,C,null!==h&&void 0!==h?h:null),!!C&&"catch"in C&&(g.node["catch"]=null,g.node.removeAttribute("catch")),s)s.onUnmount&&a.patch(s.onUnmount(s)),s.replaceWith(D);else{for(var E,F=!1,G=e;G<b.childNodes.length;G++)if(E=b.childNodes[G],E){E.before(D,E),F=!0;break}F||b.appendChild(D)}var H=j(g);if(H)for(var I=C?2:1,J=0,K=0;K<H.length;K++){var L=H[K],M=o(a,D,K,J,void 0,L,null!==h&&void 0!==h?h:null);g[K+I]=M,M&&J++}return D.onMount&&a.patch(D.onMount(D)),g}if(!n&&v&&f[0]===g[0]){var N;g.node=s;var O=g,P=f,Q=i(g),R=i(f);if(void 0!==(null===Q||void 0===Q?void 0:Q.xmlns)&&(h=Q.xmlns),null!==(N=O[1])&&void 0!==N&&N.__memo){var S=O[1];O[1]=r(a,O[1],P[1]),S!==O[1]&&u(a,s,R,Q,h)}else u(a,s,R,Q,h);!(null!==Q&&void 0!==Q&&Q["catch"])||(null===R||void 0===R?void 0:R["catch"])===Q["catch"]||(g.node["catch"]=null,g.node.removeAttribute("catch"));var T=j(g),U=j(f);if(T)for(var V=Q?2:1,W=0,X=0;X<T.length;X++){var Y=T[X],Z=U&&U[X],$=o(a,s,X,W,Z,Y,h);g[X+V]=$,$&&W++}if(U)for(var _=T?T.length:0,aa=U.length-1;aa>=_;aa--)o(a,s,aa,aa,U[aa],void 0,h);return g}}catch(j){var ba,ca=null===(ba=i(g))||void 0===ba?void 0:ba["catch"];if(ca){var da,ea="function"==typeof ca?ca(a,j):ca;return o(a,b,c,e,d((null===(da=g)||void 0===da?void 0:da.node)||(null===f||void 0===f?void 0:f.node),!0),ea,h)}throw j}}function p(a){return Array.isArray(a)&&0<a.length&&"string"==typeof a[0]}function q(a){return"string"==typeof a||(null===a||void 0===a?void 0:a.nodeType)===Node.TEXT_NODE}function r(a,b,c){if("function"!=typeof b)return b;var d=null===b||void 0===b?void 0:b.__memo,e=null===c||void 0===c?void 0:c.__memo;if(Array.isArray(d)&&Array.isArray(e)&&d.length===e.length){for(var f=!0,g=0;g<d.length;g++)if(d[g]!==e[g]){f=!1;break}if(f)return c}var h=t(b,a);return"object"===_typeof(h)&&(h.__memo=null===b||void 0===b?void 0:b.__memo),h}function t(a,b){return"function"==typeof a?t(a(b),b):a}function u(a,b,c,d,e){if(d||c){var f=void 0!==e;if(c)for(var g in c){var h=c[g],i=null===d||void 0===d?void 0:d[g];h!==i&&(d?d[g]=v(a,b,g,h,i,f):v(a,b,g,h,void 0,f))}if(d&&c){for(var j in d)if(!(j in c)){var k=d[j];d[j]=v(a,b,j,void 0,k,f)}}else if(d)for(var l in d){var m=d[l];d[l]=v(a,b,l,void 0,m,f)}}}function v(a,b,c,d,e,f){if("style"===c){if(!e)b.style.cssText="";else if("string"==typeof e)d!==e&&(b.style.cssText=e);else if(d&&"object"===_typeof(d)){for(var g in d){var h=e[g];h||(b.style[g]=null)}for(var i in e){var j=d[i],l=e[i];j!==l&&(b.style[i]=l)}}else for(var m in e)b.style[m]=e[m];}else if("class"===c)e?b.setAttribute("class",w(e)):b.removeAttribute("class");else if(!("o"===c[0]&&"n"===c[1]))f||(b[c]=e),void 0===e||null===e||!1===e?b.removeAttribute(c):b.setAttribute(c,e);else if(e){var n=null;if("function"==typeof e){var o=e;n=function c(b){return a.patch(o(a,b))}}else"object"===_typeof(e)&&(n=function b(){return a.patch(e)});b[c]=n}else b[c]=null;return e}function w(a){return"string"==typeof a?a:Array.isArray(a)?a.map(w).join(" "):"object"===_typeof(a)?Object.keys(a).filter(function(b){return a[b]}).join(" "):""}// src/vode-tags.ts
2
2
  // src/merge-class.ts
3
3
  function x(){for(var c=arguments.length,d=Array(c),e=0;e<c;e++)d[e]=arguments[e];if(!d||0===d.length)return null;if(1===d.length)return d[0];for(var f=d[0],g=1;g<d.length;g++){var h=f,i=d[g];if(!h)f=i;else if(!i)continue;else if("string"==typeof h&&"string"==typeof i){var j=h.split(" "),k=i.split(" "),l=/* @__PURE__ */new Set([].concat(_toConsumableArray(j),_toConsumableArray(k)));f=Array.from(l).join(" ").trim()}else if("string"==typeof h&&Array.isArray(i)){var m=/* @__PURE__ */new Set([].concat(_toConsumableArray(i),_toConsumableArray(h.split(" "))));f=Array.from(m).join(" ").trim()}else if(Array.isArray(h)&&"string"==typeof i){var n=/* @__PURE__ */new Set([].concat(_toConsumableArray(h),_toConsumableArray(i.split(" "))));f=Array.from(n).join(" ").trim()}else if(Array.isArray(h)&&Array.isArray(i)){var o=/* @__PURE__ */new Set([].concat(_toConsumableArray(h),_toConsumableArray(i)));f=Array.from(o).join(" ").trim()}else if("string"==typeof h&&"object"===_typeof(i))f=_objectSpread(_defineProperty({},h,!0),i);else if("object"===_typeof(h)&&"string"==typeof i)f=_objectSpread(_objectSpread({},h),{},_defineProperty({},i,!0));else if("object"===_typeof(h)&&"object"===_typeof(i))f=_objectSpread(_objectSpread({},h),i);else if("object"===_typeof(h)&&Array.isArray(i)){var p,q=_objectSpread({},h),r=_createForOfIteratorHelper(i);try{for(r.s();!(p=r.n()).done;){var s=p.value;q[s]=!0}}catch(a){r.e(a)}finally{r.f()}f=q}else if(Array.isArray(h)&&"object"===_typeof(i)){var t,u={},v=_createForOfIteratorHelper(h);try{for(v.s();!(t=v.n()).done;){var w=t.value;u[w]=!0}}catch(a){v.e(a)}finally{v.f()}for(var x,y=0,z=Object.keys(i);y<z.length;y++)x=z[y],u[x]=i[x];f=u}else throw new Error("cannot merge classes of ".concat(h," (").concat(_typeof(h),") and ").concat(i," (").concat(_typeof(i),")"))}return f}// src/merge-style.ts
4
4
  function y(){try{for(var a=ud.style,b=arguments.length,c=Array(b),d=0;d<b;d++)c[d]=arguments[d];for(var e,f=0,g=c;f<g.length;f++)if(e=g[f],"object"===_typeof(e)&&null!==e)for(var h in e)a[h]=e[h];else"string"==typeof e&&(a.cssText+=";"+e);return a.cssText}finally{ud.style.cssText=""}}// src/merge-props.ts
5
5
  function z(){for(var a=arguments.length,b=Array(a),c=0;c<a;c++)b[c]=arguments[c];if(0!==b.length){if(1===b.length)return b[0]||void 0;for(var d,e,f=0,g=b;f<(void 0).length;f++)if(e=(void 0)[f],"object"===_typeof(e)&&null!==e)for(var h in d||(d={}),e)"style"===h?d.style=y(d.style,e.style):"class"===h?d["class"]=x(d["class"],e["class"]):d[h]=e[h];return d}}// src/state-context.ts
6
6
  function A(a){return new vd(a,[])}var B=Object.defineProperty,C=Object.getOwnPropertyDescriptor,D=Object.getOwnPropertyNames,E=Object.prototype.hasOwnProperty,F=function c(a,b){for(var d in b)B(a,d,{get:b[d],enumerable:!0})},G=function e(a,b,c,d){if(b&&"object"===_typeof(b)||"function"==typeof b){var f,g=_createForOfIteratorHelper(D(b));try{var h=function e(){var g=f.value;E.call(a,g)||g===c||B(a,g,{get:function a(){return b[g]},enumerable:!(d=C(b,g))||d.enumerable})};for(g.s();!(f=g.n()).done;)h()}catch(a){g.e(a)}finally{g.f()}}return a},H=function b(a){return G(B({},"__esModule",{value:!0}),a)},I={};// index.ts
7
7
  F(I,{A:function a(){return K},ABBR:function a(){return s},ADDRESS:function a(){return L},ANIMATE:function a(){return Nb},ANIMATEMOTION:function a(){return Ob},ANIMATETRANSFORM:function a(){return Pb},ANNOTATION:function a(){return Sc},ANNOTATION_XML:function a(){return Tc},AREA:function a(){return M},ARTICLE:function a(){return N},ASIDE:function a(){return O},AUDIO:function a(){return P},B:function a(){return Q},BASE:function a(){return R},BDI:function a(){return S},BDO:function a(){return T},BLOCKQUOTE:function a(){return U},BODY:function a(){return V},BR:function a(){return W},BUTTON:function a(){return X},CANVAS:function a(){return Y},CAPTION:function a(){return Z},CIRCLE:function a(){return Qb},CITE:function a(){return $},CLIPPATH:function a(){return Rb},CODE:function a(){return _},COL:function a(){return aa},COLGROUP:function a(){return ba},DATA:function a(){return ca},DATALIST:function a(){return da},DD:function a(){return ea},DEFS:function a(){return Sb},DEL:function a(){return fa},DESC:function a(){return Tb},DETAILS:function a(){return ga},DFN:function a(){return ha},DIALOG:function a(){return ia},DIV:function a(){return ja},DL:function a(){return ka},DT:function a(){return la},ELLIPSE:function a(){return Ub},EM:function a(){return ma},EMBED:function a(){return na},FEBLEND:function a(){return Vb},FECOLORMATRIX:function a(){return Wb},FECOMPONENTTRANSFER:function a(){return Xb},FECOMPOSITE:function a(){return Yb},FECONVOLVEMATRIX:function a(){return Zb},FEDIFFUSELIGHTING:function a(){return $b},FEDISPLACEMENTMAP:function a(){return _b},FEDISTANTLIGHT:function a(){return ac},FEDROPSHADOW:function a(){return bc},FEFLOOD:function a(){return cc},FEFUNCA:function a(){return dc},FEFUNCB:function a(){return ec},FEFUNCG:function a(){return fc},FEFUNCR:function a(){return gc},FEGAUSSIANBLUR:function a(){return hc},FEIMAGE:function a(){return ic},FEMERGE:function a(){return jc},FEMERGENODE:function a(){return kc},FEMORPHOLOGY:function a(){return lc},FEOFFSET:function a(){return mc},FEPOINTLIGHT:function a(){return nc},FESPECULARLIGHTING:function a(){return oc},FESPOTLIGHT:function a(){return pc},FETILE:function a(){return qc},FETURBULENCE:function a(){return rc},FIELDSET:function a(){return oa},FIGCAPTION:function a(){return pa},FIGURE:function a(){return qa},FILTER:function a(){return sc},FOOTER:function a(){return ra},FOREIGNOBJECT:function a(){return tc},FORM:function a(){return sa},G:function a(){return uc},H1:function a(){return ta},H2:function a(){return ua},H3:function a(){return va},H4:function a(){return wa},H5:function a(){return xa},H6:function a(){return ya},HEAD:function a(){return za},HEADER:function a(){return Aa},HGROUP:function a(){return Ba},HR:function a(){return Ca},HTML:function a(){return Da},I:function a(){return Ea},IFRAME:function a(){return Fa},IMAGE:function a(){return vc},IMG:function a(){return Ga},INPUT:function a(){return Ha},INS:function a(){return Ia},KBD:function a(){return Ja},LABEL:function a(){return Ka},LEGEND:function a(){return La},LI:function a(){return Ma},LINE:function a(){return wc},LINEARGRADIENT:function a(){return xc},LINK:function a(){return Na},MACTION:function a(){return Uc},MAIN:function a(){return Oa},MAP:function a(){return Pa},MARK:function a(){return Qa},MARKER:function a(){return yc},MASK:function a(){return zc},MATH:function a(){return Vc},MENU:function a(){return Ra},MERROR:function a(){return Wc},META:function a(){return Sa},METADATA:function a(){return Ac},METER:function a(){return Ta},MFRAC:function a(){return Xc},MI:function a(){return Yc},MMULTISCRIPTS:function a(){return Zc},MN:function a(){return $c},MO:function a(){return _c},MOVER:function a(){return ad},MPADDED:function a(){return bd},MPATH:function a(){return Bc},MPHANTOM:function a(){return cd},MPRESCRIPTS:function a(){return dd},MROOT:function a(){return ed},MROW:function a(){return fd},MS:function a(){return gd},MSPACE:function a(){return hd},MSQRT:function a(){return id},MSTYLE:function a(){return jd},MSUB:function a(){return kd},MSUBSUP:function a(){return ld},MSUP:function a(){return md},MTABLE:function a(){return nd},MTD:function a(){return od},MTEXT:function a(){return pd},MTR:function a(){return qd},MUNDER:function a(){return rd},MUNDEROVER:function a(){return sd},NAV:function a(){return Ua},NOSCRIPT:function a(){return Va},OBJECT:function a(){return Wa},OL:function a(){return Xa},OPTGROUP:function a(){return Ya},OPTION:function a(){return Za},OUTPUT:function a(){return $a},P:function a(){return _a},PATH:function a(){return Cc},PATTERN:function a(){return Dc},PICTURE:function a(){return ab},POLYGON:function a(){return Ec},POLYLINE:function a(){return Fc},PRE:function a(){return bb},PROGRESS:function a(){return cb},Q:function a(){return db},RADIALGRADIENT:function a(){return Gc},RECT:function a(){return Hc},RP:function a(){return eb},RT:function a(){return fb},RUBY:function a(){return gb},S:function a(){return hb},SAMP:function a(){return ib},SCRIPT:function a(){return jb},SEARCH:function a(){return kb},SECTION:function a(){return lb},SELECT:function a(){return mb},SEMANTICS:function a(){return td},SET:function a(){return Ic},SLOT:function a(){return nb},SMALL:function a(){return ob},SOURCE:function a(){return pb},SPAN:function a(){return qb},STOP:function a(){return Jc},STRONG:function a(){return rb},STYLE:function a(){return sb},SUB:function a(){return tb},SUMMARY:function a(){return ub},SUP:function a(){return vb},SVG:function a(){return Kc},SWITCH:function a(){return Lc},SYMBOL:function a(){return Mc},TABLE:function a(){return wb},TBODY:function a(){return xb},TD:function a(){return yb},TEMPLATE:function a(){return zb},TEXT:function a(){return Nc},TEXTAREA:function a(){return Ab},TEXTPATH:function a(){return Oc},TFOOT:function a(){return Bb},TH:function a(){return Cb},THEAD:function a(){return Db},TIME:function a(){return Eb},TITLE:function a(){return Fb},TR:function a(){return Gb},TRACK:function a(){return Hb},TSPAN:function a(){return Pc},U:function a(){return Ib},UL:function a(){return Jb},USE:function a(){return Qc},VAR:function a(){return Kb},VIDEO:function a(){return Lb},VIEW:function a(){return Rc},WBR:function a(){return Mb},app:function a(){return b},child:function a(){return l},childCount:function a(){return k},children:function a(){return j},childrenStart:function a(){return m},context:function a(){return A},createPatch:function a(){return g},createState:function a(){return f},defuse:function a(){return c},globals:function a(){return J},hydrate:function a(){return d},memo:function a(){return e},mergeClass:function a(){return x},mergeProps:function a(){return z},mergeStyle:function a(){return y},props:function a(){return i},tag:function a(){return h},vode:function b(){return a}});// src/vode.ts
8
- var J={currentViewTransition:void 0,requestAnimationFrame:!window.requestAnimationFrame?function(a){return a()}:window.requestAnimationFrame.bind(window),startViewTransition:!document.startViewTransition?null:document.startViewTransition.bind(document)},K="a",s="abbr",L="address",M="area",N="article",O="aside",P="audio",Q="b",R="base",S="bdi",T="bdo",U="blockquote",V="body",W="br",X="button",Y="canvas",Z="caption",$="cite",_="code",aa="col",ba="colgroup",ca="data",da="datalist",ea="dd",fa="del",ga="details",ha="dfn",ia="dialog",ja="div",ka="dl",la="dt",ma="em",na="embed",oa="fieldset",pa="figcaption",qa="figure",ra="footer",sa="form",ta="h1",ua="h2",va="h3",wa="h4",xa="h5",ya="h6",za="head",Aa="header",Ba="hgroup",Ca="hr",Da="html",Ea="i",Fa="iframe",Ga="img",Ha="input",Ia="ins",Ja="kbd",Ka="label",La="legend",Ma="li",Na="link",Oa="main",Pa="map",Qa="mark",Ra="menu",Sa="meta",Ta="meter",Ua="nav",Va="noscript",Wa="object",Xa="ol",Ya="optgroup",Za="option",$a="output",_a="p",ab="picture",bb="pre",cb="progress",db="q",eb="rp",fb="rt",gb="ruby",hb="s",ib="samp",jb="script",kb="search",lb="section",mb="select",nb="slot",ob="small",pb="source",qb="span",rb="strong",sb="style",tb="sub",ub="summary",vb="sup",wb="table",xb="tbody",yb="td",zb="template",Ab="textarea",Bb="tfoot",Cb="th",Db="thead",Eb="time",Fb="title",Gb="tr",Hb="track",Ib="u",Jb="ul",Kb="var",Lb="video",Mb="wbr",Nb="animate",Ob="animateMotion",Pb="animateTransform",Qb="circle",Rb="clipPath",Sb="defs",Tb="desc",Ub="ellipse",Vb="feBlend",Wb="feColorMatrix",Xb="feComponentTransfer",Yb="feComposite",Zb="feConvolveMatrix",$b="feDiffuseLighting",_b="feDisplacementMap",ac="feDistantLight",bc="feDropShadow",cc="feFlood",dc="feFuncA",ec="feFuncB",fc="feFuncG",gc="feFuncR",hc="feGaussianBlur",ic="feImage",jc="feMerge",kc="feMergeNode",lc="feMorphology",mc="feOffset",nc="fePointLight",oc="feSpecularLighting",pc="feSpotLight",qc="feTile",rc="feTurbulence",sc="filter",tc="foreignObject",uc="g",vc="image",wc="line",xc="linearGradient",yc="marker",zc="mask",Ac="metadata",Bc="mpath",Cc="path",Dc="pattern",Ec="polygon",Fc="polyline",Gc="radialGradient",Hc="rect",Ic="set",Jc="stop",Kc="svg",Lc="switch",Mc="symbol",Nc="text",Oc="textPath",Pc="tspan",Qc="use",Rc="view",Sc="annotation",Tc="annotation-xml",Uc="maction",Vc="math",Wc="merror",Xc="mfrac",Yc="mi",Zc="mmultiscripts",$c="mn",_c="mo",ad="mover",bd="mpadded",cd="mphantom",dd="mprescripts",ed="mroot",fd="mrow",gd="ms",hd="mspace",id="msqrt",jd="mstyle",kd="msub",ld="msubsup",md="msup",nd="mtable",od="mtd",pd="mtext",qd="mtr",rd="munder",sd="munderover",td="semantics",ud=document.createElement("div"),vd=/*#__PURE__*/function(){function a(b,c){function d(a,b){if(1<c.length){var d=0,e=b[c[d]];for(("object"!==_typeof(e)||null===e)&&(b[c[d]]=e={}),d=1;d<c.length-1;d++){var f=e;e=e[c[d]],("object"!==_typeof(e)||null===e)&&(f[c[d]]=e={})}e[c[d]]=a}else 1===c.length?"object"===_typeof(b[c[0]])&&"object"===_typeof(a)?Object.assign(b[c[0]],a):b[c[0]]=a:Object.assign(b,a)}function e(a){var b={};return d(a,b),b}function f(){if(0===c.length)return b;for(var a=b?b[c[0]]:void 0,d=1;d<c.length&&!!a;d++)a=a[c[d]];return a}function g(a){d(a,b)}function h(a){if(Array.isArray(a)){var c,d=[],f=_createForOfIteratorHelper(a);try{for(f.s();!(c=f.n()).done;){var g=c.value;d.push(e(g))}}catch(a){f.e(a)}finally{f.f()}b.patch(d)}else b.patch(e(a))}return _classCallCheck(this,a),_defineProperty(this,"state",void 0),_defineProperty(this,"keys",void 0),this.state=b,this.keys=c,new Proxy(this,{get:function i(c,d,e){if("state"===d)return b;if("get"===d)return f;if("put"===d)return g;if("patch"===d)return h;var j=[].concat(_toConsumableArray(c.keys),[d+""]);return new a(c.state,j)}})}return _createClass(a,[{key:"get",value:function a(){throw"implemented in ctor"}},{key:"put",value:function b(a){throw"implemented in ctor"}},{key:"patch",value:function b(a){throw"implemented in ctor"}}])}();return H(I)}();
8
+ var J={currentViewTransition:void 0,requestAnimationFrame:!window.requestAnimationFrame?function(a){return a()}:window.requestAnimationFrame.bind(window),startViewTransition:!document.startViewTransition?null:document.startViewTransition.bind(document)},K="a",s="abbr",L="address",M="area",N="article",O="aside",P="audio",Q="b",R="base",S="bdi",T="bdo",U="blockquote",V="body",W="br",X="button",Y="canvas",Z="caption",$="cite",_="code",aa="col",ba="colgroup",ca="data",da="datalist",ea="dd",fa="del",ga="details",ha="dfn",ia="dialog",ja="div",ka="dl",la="dt",ma="em",na="embed",oa="fieldset",pa="figcaption",qa="figure",ra="footer",sa="form",ta="h1",ua="h2",va="h3",wa="h4",xa="h5",ya="h6",za="head",Aa="header",Ba="hgroup",Ca="hr",Da="html",Ea="i",Fa="iframe",Ga="img",Ha="input",Ia="ins",Ja="kbd",Ka="label",La="legend",Ma="li",Na="link",Oa="main",Pa="map",Qa="mark",Ra="menu",Sa="meta",Ta="meter",Ua="nav",Va="noscript",Wa="object",Xa="ol",Ya="optgroup",Za="option",$a="output",_a="p",ab="picture",bb="pre",cb="progress",db="q",eb="rp",fb="rt",gb="ruby",hb="s",ib="samp",jb="script",kb="search",lb="section",mb="select",nb="slot",ob="small",pb="source",qb="span",rb="strong",sb="style",tb="sub",ub="summary",vb="sup",wb="table",xb="tbody",yb="td",zb="template",Ab="textarea",Bb="tfoot",Cb="th",Db="thead",Eb="time",Fb="title",Gb="tr",Hb="track",Ib="u",Jb="ul",Kb="var",Lb="video",Mb="wbr",Nb="animate",Ob="animateMotion",Pb="animateTransform",Qb="circle",Rb="clipPath",Sb="defs",Tb="desc",Ub="ellipse",Vb="feBlend",Wb="feColorMatrix",Xb="feComponentTransfer",Yb="feComposite",Zb="feConvolveMatrix",$b="feDiffuseLighting",_b="feDisplacementMap",ac="feDistantLight",bc="feDropShadow",cc="feFlood",dc="feFuncA",ec="feFuncB",fc="feFuncG",gc="feFuncR",hc="feGaussianBlur",ic="feImage",jc="feMerge",kc="feMergeNode",lc="feMorphology",mc="feOffset",nc="fePointLight",oc="feSpecularLighting",pc="feSpotLight",qc="feTile",rc="feTurbulence",sc="filter",tc="foreignObject",uc="g",vc="image",wc="line",xc="linearGradient",yc="marker",zc="mask",Ac="metadata",Bc="mpath",Cc="path",Dc="pattern",Ec="polygon",Fc="polyline",Gc="radialGradient",Hc="rect",Ic="set",Jc="stop",Kc="svg",Lc="switch",Mc="symbol",Nc="text",Oc="textPath",Pc="tspan",Qc="use",Rc="view",Sc="annotation",Tc="annotation-xml",Uc="maction",Vc="math",Wc="merror",Xc="mfrac",Yc="mi",Zc="mmultiscripts",$c="mn",_c="mo",ad="mover",bd="mpadded",cd="mphantom",dd="mprescripts",ed="mroot",fd="mrow",gd="ms",hd="mspace",id="msqrt",jd="mstyle",kd="msub",ld="msubsup",md="msup",nd="mtable",od="mtd",pd="mtext",qd="mtr",rd="munder",sd="munderover",td="semantics",ud=document.createElement("div"),vd=/*#__PURE__*/function(){function a(b,c){function d(a,b){if(1<c.length){var d=0,e=b[c[d]];for(("object"!==_typeof(e)||null===e)&&(b[c[d]]=e={}),d=1;d<c.length-1;d++){var f=e;e=e[c[d]],("object"!==_typeof(e)||null===e)&&(f[c[d]]=e={})}e[c[d]]=a}else 1===c.length?"object"===_typeof(b[c[0]])&&"object"===_typeof(a)?Object.assign(b[c[0]],a):b[c[0]]=a:Object.assign(b,a)}function e(a){var b={};return d(a,b),b}function f(){if(0===c.length)return b;for(var a=b?b[c[0]]:void 0,d=1;d<c.length&&!!a;d++)a=a[c[d]];return a}function g(a){d(a,b)}function h(a){if(Array.isArray(a)){var c,d=[],f=_createForOfIteratorHelper(a);try{for(f.s();!(c=f.n()).done;){var g=c.value;d.push(e(g))}}catch(a){f.e(a)}finally{f.f()}b.patch(d)}else b.patch(e(a))}return _classCallCheck(this,a),_defineProperty(this,"state",void 0),_defineProperty(this,"keys",void 0),this.state=b,this.keys=c,new Proxy(this,{get:function i(c,d,e){if("state"===d)return b;if("get"===d)return f;if("put"===d)return g;if("patch"===d)return h;var j=[].concat(_toConsumableArray(c.keys),[d+""]);return new a(c.state,j)}})}return _createClass(a,[{key:"get",value:function a(){}},{key:"put",value:function b(a){}},{key:"patch",value:function b(a){}}])}();return H(I)}();
package/dist/vode.js CHANGED
@@ -265,6 +265,9 @@ var V = (() => {
265
265
  _vode.qAsync = null;
266
266
  _vode.stats = { lastSyncRenderTime: 0, lastAsyncRenderTime: 0, syncRenderCount: 0, asyncRenderCount: 0, liveEffectCount: 0, patchCount: 0, syncRenderPatchCount: 0, asyncRenderPatchCount: 0 };
267
267
  const patchableState = state;
268
+ if ("patch" in state && typeof state.patch === "function" && Array.isArray(state.patch.initialPatches)) {
269
+ initialPatches = [...state.patch.initialPatches, ...initialPatches];
270
+ }
268
271
  Object.defineProperty(state, "patch", {
269
272
  enumerable: false,
270
273
  configurable: true,
@@ -479,6 +482,20 @@ var V = (() => {
479
482
  }
480
483
  function createState(state) {
481
484
  if (!state || typeof state !== "object") throw new Error("createState() must be called with a state object");
485
+ if (!("patch" in state)) {
486
+ Object.defineProperty(state, "patch", {
487
+ enumerable: false,
488
+ configurable: true,
489
+ writable: false,
490
+ value: (action) => {
491
+ const futureState = state;
492
+ if (!Array.isArray(futureState.patch.initialPatches)) {
493
+ futureState.patch.initialPatches = [];
494
+ }
495
+ futureState.patch.initialPatches.push(action);
496
+ }
497
+ });
498
+ }
482
499
  return state;
483
500
  }
484
501
  function createPatch(p) {
@@ -1202,13 +1219,11 @@ var V = (() => {
1202
1219
  state;
1203
1220
  keys;
1204
1221
  get() {
1205
- throw "implemented in ctor";
1222
+ return void 0;
1206
1223
  }
1207
1224
  put(value) {
1208
- throw "implemented in ctor";
1209
1225
  }
1210
1226
  patch(value) {
1211
- throw "implemented in ctor";
1212
1227
  }
1213
1228
  };
1214
1229
  return __toCommonJS(index_exports);
package/dist/vode.min.js CHANGED
@@ -1 +1 @@
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);})();
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:()=>jt,EMBED:()=>Ht,FEBLEND:()=>xn,FECOLORMATRIX:()=>hn,FECOMPONENTTRANSFER:()=>mn,FECOMPOSITE:()=>bn,FECONVOLVEMATRIX:()=>En,FEDIFFUSELIGHTING:()=>Pn,FEDISPLACEMENTMAP:()=>An,FEDISTANTLIGHT:()=>Cn,FEDROPSHADOW:()=>Mn,FEFLOOD:()=>Nn,FEFUNCA:()=>Rn,FEFUNCB:()=>On,FEFUNCG:()=>Dn,FEFUNCR:()=>vn,FEGAUSSIANBLUR:()=>Ln,FEIMAGE:()=>In,FEMERGE:()=>Fn,FEMERGENODE:()=>Vn,FEMORPHOLOGY:()=>jn,FEOFFSET:()=>Hn,FEPOINTLIGHT:()=>Un,FESPECULARLIGHTING:()=>Gn,FESPOTLIGHT:()=>kn,FETILE:()=>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:()=>jo,MSUBSUP:()=>Ho,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:()=>je,SEMANTICS:()=>wo,SET:()=>so,SLOT:()=>He,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;"patch"in n&&typeof n.patch=="function"&&Array.isArray(n.patch.initialPatches)&&(a=[...n.patch.initialPatches,...a]),Object.defineProperty(n,"patch",{enumerable:!1,configurable:!0,writable:!1,value:async(l,y)=>{if(!(!l||typeof l!="function"&&typeof l!="object"))if(t.stats.patchCount++,l?.next){let 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"patch"in e||Object.defineProperty(e,"patch",{enumerable:!1,configurable:!0,writable:!1,value:n=>{let s=e;Array.isArray(s.patch.initialPatches)||(s.patch.initialPatches=[]),s.patch.initialPatches.push(n)}}),e}function Z(e){return e}function tt(e){return e?Array.isArray(e)?e[0]:typeof e=="string"||e.nodeType===Node.TEXT_NODE?"#text":void 0:void 0}function A(e){if(Array.isArray(e)&&e.length>1&&e[1]&&!Array.isArray(e[1])&&typeof e[1]=="object"&&e[1].nodeType!==Node.TEXT_NODE)return e[1]}function M(e){let n=O(e);return n>0?e.slice(n):null}function et(e){let n=O(e);return n<0?0:e.length-n}function nt(e,n){let s=O(e);if(s>0)return e[n+s]}function O(e){return A(e)?e.length>2?2:-1:Array.isArray(e)&&e.length>1?1:-1}function E(e,n,s){if(!n)return e;for(let a in n){let t=n[a];if(t&&typeof t=="object"){let o=e[a];o?Array.isArray(t)?e[a]=[...t]:t instanceof Date&&o!==t?e[a]=new Date(t):Array.isArray(o)?e[a]=E({},t,s):typeof o=="object"?E(e[a],t,s):e[a]=E({},t,s):Array.isArray(t)?e[a]=[...t]:t instanceof Date?e[a]=new Date(t):e[a]=E({},t,s)}else t===void 0&&s?delete e[a]:e[a]=t}return e}function C(e,n,s,a,t,o,r){try{o=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],H=C(e,c,b,m,K,B,r);o[b+T]=H,H&&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",jt="em",Ht="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",je="select",He="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",jn="feMorphology",Hn="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",jo="msub",Ho="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 j(e,[])}var j=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(){}put(n){}patch(n){}};return W(Wo);})();
package/dist/vode.min.mjs CHANGED
@@ -1 +1 @@
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};
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;"patch"in n&&typeof n.patch=="function"&&Array.isArray(n.patch.initialPatches)&&(a=[...n.patch.initialPatches,...a]),Object.defineProperty(n,"patch",{enumerable:!1,configurable:!0,writable:!1,value:async(l,y)=>{if(!(!l||typeof l!="function"&&typeof l!="object"))if(t.stats.patchCount++,l?.next){let 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"patch"in e||Object.defineProperty(e,"patch",{enumerable:!1,configurable:!0,writable:!1,value:n=>{let s=e;Array.isArray(s.patch.initialPatches)||(s.patch.initialPatches=[]),s.patch.initialPatches.push(n)}}),e}function W(e){return e}function $(e){return e?Array.isArray(e)?e[0]:typeof e=="string"||e.nodeType===Node.TEXT_NODE?"#text":void 0:void 0}function A(e){if(Array.isArray(e)&&e.length>1&&e[1]&&!Array.isArray(e[1])&&typeof e[1]=="object"&&e[1].nodeType!==Node.TEXT_NODE)return e[1]}function N(e){let n=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",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",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",jt="form",Ht="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",je="style",He="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",jn="feTurbulence",Hn="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",jo="mtr",Ho="munder",Uo="munderover",Go="semantics";function H(...e){if(!e||e.length===0)return null;if(e.length===1)return e[0];let n=e[0];for(let s=1;s<e.length;s++){let a=n,t=e[s];if(!a)n=t;else if(t)if(typeof a=="string"&&typeof t=="string"){let o=a.split(" "),r=t.split(" "),p=new Set([...o,...r]);n=Array.from(p).join(" ").trim()}else if(typeof a=="string"&&Array.isArray(t)){let o=new Set([...t,...a.split(" ")]);n=Array.from(o).join(" ").trim()}else if(Array.isArray(a)&&typeof t=="string"){let o=new Set([...a,...t.split(" ")]);n=Array.from(o).join(" ").trim()}else if(Array.isArray(a)&&Array.isArray(t)){let o=new Set([...a,...t]);n=Array.from(o).join(" ").trim()}else if(typeof a=="string"&&typeof t=="object")n={[a]:!0,...t};else if(typeof a=="object"&&typeof t=="string")n={...a,[t]:!0};else if(typeof a=="object"&&typeof t=="object")n={...a,...t};else if(typeof a=="object"&&Array.isArray(t)){let o={...a};for(let r of t)o[r]=!0;n=o}else if(Array.isArray(a)&&typeof t=="object"){let o={};for(let r of a)o[r]=!0;for(let r of Object.keys(t))o[r]=t[r];n=o}else throw new Error(`cannot merge classes of ${a} (${typeof a}) and ${t} (${typeof t})`);else continue}return n}var 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=H(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(){}put(n){}patch(n){}};export{Z as A,tt as ABBR,et as ADDRESS,on as ANIMATE,an as ANIMATEMOTION,sn as ANIMATETRANSFORM,lo as ANNOTATION,po as ANNOTATION_XML,nt as AREA,ot as ARTICLE,at as ASIDE,st as AUDIO,rt as B,ct as BASE,it as BDI,lt as BDO,pt as BLOCKQUOTE,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,jn as FETURBULENCE,Lt as FIELDSET,It as FIGCAPTION,Ft as FIGURE,Hn as FILTER,Vt as FOOTER,Un as FOREIGNOBJECT,jt as FORM,Gn as G,Ht as H1,Ut as H2,Gt as H3,kt as H4,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,jo as MTR,Ho 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,je as STYLE,He 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,H as mergeClass,wo as mergeProps,G as mergeStyle,A as props,$ as tag,q as vode};
package/dist/vode.mjs CHANGED
@@ -21,6 +21,9 @@ function app(container, state, dom, ...initialPatches) {
21
21
  _vode.qAsync = null;
22
22
  _vode.stats = { lastSyncRenderTime: 0, lastAsyncRenderTime: 0, syncRenderCount: 0, asyncRenderCount: 0, liveEffectCount: 0, patchCount: 0, syncRenderPatchCount: 0, asyncRenderPatchCount: 0 };
23
23
  const patchableState = state;
24
+ if ("patch" in state && typeof state.patch === "function" && Array.isArray(state.patch.initialPatches)) {
25
+ initialPatches = [...state.patch.initialPatches, ...initialPatches];
26
+ }
24
27
  Object.defineProperty(state, "patch", {
25
28
  enumerable: false,
26
29
  configurable: true,
@@ -235,6 +238,20 @@ function memo(compare, componentOrProps) {
235
238
  }
236
239
  function createState(state) {
237
240
  if (!state || typeof state !== "object") throw new Error("createState() must be called with a state object");
241
+ if (!("patch" in state)) {
242
+ Object.defineProperty(state, "patch", {
243
+ enumerable: false,
244
+ configurable: true,
245
+ writable: false,
246
+ value: (action) => {
247
+ const futureState = state;
248
+ if (!Array.isArray(futureState.patch.initialPatches)) {
249
+ futureState.patch.initialPatches = [];
250
+ }
251
+ futureState.patch.initialPatches.push(action);
252
+ }
253
+ });
254
+ }
238
255
  return state;
239
256
  }
240
257
  function createPatch(p) {
@@ -958,13 +975,11 @@ var ProxyStateContextImpl = class _ProxyStateContextImpl {
958
975
  state;
959
976
  keys;
960
977
  get() {
961
- throw "implemented in ctor";
978
+ return void 0;
962
979
  }
963
980
  put(value) {
964
- throw "implemented in ctor";
965
981
  }
966
982
  patch(value) {
967
- throw "implemented in ctor";
968
983
  }
969
984
  };
970
985
  export {
package/index.ts CHANGED
@@ -1,8 +1,8 @@
1
- export * from "./src/vode.js";
1
+ export * from "./src/vode";
2
2
 
3
3
  // utilities
4
- export * from "./src/vode-tags.js";
5
- export * from "./src/merge-class.js";
6
- export * from "./src/merge-style.js";
7
- export * from "./src/merge-props.js";
8
- export * from "./src/state-context.js";
4
+ export * from "./src/vode-tags";
5
+ export * from "./src/merge-class";
6
+ export * from "./src/merge-style";
7
+ export * from "./src/merge-props";
8
+ export * from "./src/state-context";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ryupold/vode",
3
- "version": "1.8.1",
3
+ "version": "1.8.3",
4
4
  "description": "a minimalist web framework",
5
5
  "author": "Michael Scherbakow (ryupold)",
6
6
  "license": "MIT",
@@ -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.2",
54
+ "@babel/preset-env": "7.29.3",
55
55
  "babel-preset-minify": "0.5.2",
56
56
  "dts-bundle-generator": "9.5.1",
57
57
  "esbuild": "0.28.0",
58
- "typescript": "6.0.2"
58
+ "typescript": "6.0.3"
59
59
  }
60
60
  }
@@ -1,4 +1,4 @@
1
- import { ClassProp } from "./vode.js";
1
+ import { ClassProp } from "./vode";
2
2
 
3
3
  /** merge `ClassProp`s regardless of structure */
4
4
  export function mergeClass(...classes: ClassProp[]): ClassProp {
@@ -1,6 +1,6 @@
1
- import { PatchableState, Props } from "./vode.js";
2
- import { mergeStyle } from "./merge-style.js";
3
- import { mergeClass } from "./merge-class.js";
1
+ import { PatchableState, Props } from "./vode";
2
+ import { mergeStyle } from "./merge-style";
3
+ import { mergeClass } from "./merge-class";
4
4
 
5
5
  /** merge `Props` from left to right
6
6
  * utilizing `mergeStyle` for style properties and `mergeClass` for class properties.
@@ -1,4 +1,4 @@
1
- import { StyleProp } from "./vode.js";
1
+ import { StyleProp } from "./vode";
2
2
 
3
3
  const tempDivForStyling = document.createElement('div');
4
4
 
@@ -1,10 +1,10 @@
1
- import { AnimatedPatch, DeepPartial, PatchableState, RenderPatch } from "./vode.js";
1
+ import { AnimatedPatch, DeepPartial, Patchable, PatchableState, RenderPatch } from "./vode";
2
2
 
3
3
  /**
4
4
  * State context for type-safe access and manipulation of nested state paths
5
5
  * while still be able to access the parent state.
6
6
  */
7
- export interface StateContext<S extends PatchableState, SubState> extends SubContext<SubState> {
7
+ export interface StateContext<S extends Patchable<S>, SubState> extends SubContext<SubState> {
8
8
  /**
9
9
  * parent state
10
10
  * @see PatchableState<S>
@@ -21,7 +21,7 @@ export interface SubContext<SubState> {
21
21
  *
22
22
  * @returns The current value, or undefined if the path doesn't exist
23
23
  */
24
- get(): SubState | undefined;
24
+ get(): SubState;
25
25
 
26
26
  /**
27
27
  * Updates the nested sub-state value WITHOUT triggering a render.
@@ -29,7 +29,7 @@ export interface SubContext<SubState> {
29
29
  *
30
30
  * @param {DeepPartial<SubState>} value - The new value or partial update to apply
31
31
  */
32
- put(value: SubState | Partial<SubState> | DeepPartial<SubState> | undefined | null): void;
32
+ put(value: SubState | Partial<SubState> | DeepPartial<SubState>): void;
33
33
 
34
34
  /**
35
35
  * Updates the nested sub-state value AND triggers a render.
@@ -37,7 +37,7 @@ export interface SubContext<SubState> {
37
37
  *
38
38
  * @param value - The new value or partial update to apply
39
39
  */
40
- patch(value: SubState | Partial<SubState> | DeepPartial<SubState> | Array<DeepPartial<SubState>> | undefined | null): void;
40
+ patch(value: SubState | Partial<SubState> | DeepPartial<SubState> | Array<DeepPartial<SubState>>): void;
41
41
  }
42
42
 
43
43
  export type ProxyStateContext<S extends PatchableState, SubState> = StateContext<S, SubState> & {
@@ -63,7 +63,6 @@ export type ProxySubContext<SubState> = SubContext<SubState> & {
63
63
  * settings: { theme: 'dark', lang: 'en' }
64
64
  * }
65
65
  * });
66
- * app(element, state, (s) => [DIV]);
67
66
  *
68
67
  * // Create a proxy context for the state
69
68
  * const ctx = context(state).user.profile.settings;
@@ -76,7 +75,6 @@ export type ProxySubContext<SubState> = SubContext<SubState> & {
76
75
  *
77
76
  * // Update without render (silent mutation)
78
77
  * ctx.put({ lang: 'de' });
79
- * state.patch({}); // trigger render manually later
80
78
  * ```
81
79
  *
82
80
  * @param state
@@ -174,7 +172,7 @@ class ProxyStateContextImpl<S extends PatchableState, SubState>
174
172
  });
175
173
  }
176
174
 
177
- get(): SubState | undefined { throw 'implemented in ctor' }
178
- put(value: SubState | DeepPartial<SubState> | null | undefined): void { throw 'implemented in ctor' }
179
- patch(value: SubState | DeepPartial<SubState> | DeepPartial<SubState>[] | null | undefined): void { throw 'implemented in ctor' }
175
+ get(): SubState { return undefined as unknown as SubState; }
176
+ put(value: SubState | DeepPartial<SubState>): void { }
177
+ patch(value: SubState | DeepPartial<SubState> | DeepPartial<SubState>[]): void { }
180
178
  }
package/src/vode-tags.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Tag } from "./vode.js";
1
+ import { Tag } from "./vode";
2
2
 
3
3
  //=== HTML ====================================================
4
4
  export const A: Tag = "a" as const;
package/src/vode.ts CHANGED
@@ -27,7 +27,7 @@ export type Effect<S> =
27
27
 
28
28
  export type EventFunction<S> = (state: S, evt: Event) => Patch<S>;
29
29
 
30
- export interface Props<S> extends Partial<
30
+ export interface Props<S = PatchableState> extends Partial<
31
31
  Omit<HTMLElement,
32
32
  keyof (DocumentFragment & ElementCSSInlineStyle & GlobalEventHandlers)> &
33
33
  { [K in keyof EventsMap]: EventFunction<S> | Patch<S> } // all on* events
@@ -41,7 +41,7 @@ export interface Props<S> extends Partial<
41
41
  /** called before the element is detached */
42
42
  onUnmount?: MountFunction<S>,
43
43
  /** used instead of original vode when an error occurs during rendering */
44
- catch?: ((s: S, error: any) => ChildVode<S>) | ChildVode<S>;
44
+ catch?: ((s: S, error: Error) => ChildVode<S>) | ChildVode<S>;
45
45
  };
46
46
 
47
47
  export type MountFunction<S> =
@@ -61,11 +61,11 @@ export type StyleProp =
61
61
  | "" | null | undefined; // no style
62
62
 
63
63
  type EventsMapBase =
64
- & { [K in keyof HTMLElementEventMap as `on${K}`]: HTMLElementEventMap[K] }
65
- & { [K in keyof WindowEventMap as `on${K}`]: WindowEventMap[K] }
66
- & { [K in keyof SVGElementEventMap as `on${K}`]: SVGElementEventMap[K] };
64
+ & { [K in keyof HTMLElementEventMap as `on${K}`]: HTMLElementEventMap[K] }
65
+ & { [K in keyof WindowEventMap as `on${K}`]: WindowEventMap[K] }
66
+ & { [K in keyof SVGElementEventMap as `on${K}`]: SVGElementEventMap[K] };
67
67
 
68
- export interface EventsMap extends EventsMapBase {}
68
+ export interface EventsMap extends EventsMapBase { }
69
69
 
70
70
  export type PropertyValue<S> =
71
71
  | string | boolean | null | undefined | void
@@ -152,6 +152,10 @@ export function app<S extends PatchableState = PatchableState>(
152
152
 
153
153
  const patchableState = state as PatchableState<S> & { patch: (action: Patch<S>, animate?: boolean) => void };
154
154
 
155
+ if ("patch" in state && typeof state.patch === "function" && Array.isArray((state as any).patch.initialPatches)) {
156
+ initialPatches = [...(state as any).patch.initialPatches, ...initialPatches];
157
+ }
158
+
155
159
  Object.defineProperty(state, "patch", {
156
160
  enumerable: false, configurable: true,
157
161
  writable: false, value: async (action: Patch<S>, isAsync?: boolean) => {
@@ -388,10 +392,27 @@ export function memo<S = PatchableState>(compare: any[], componentOrProps: Compo
388
392
  return componentOrProps as typeof componentOrProps extends ((s: S) => Props<S>) ? ((s: S) => Props<S>) : Component<S>;
389
393
  }
390
394
 
391
- /** create a state object used as state for `app()`. it is updated with `PatchableState.patch()` using `merge()` */
395
+ /**
396
+ * create a patchable state object for a vode-app.
397
+ * calls to `patch()` prior to `app()` initialization will queue the patches and apply them before the initial patches.
398
+ * calls to `patch()` after `app()` initialization will apply the patch immediately and trigger a render as usual.
399
+ */
392
400
  export function createState<S = PatchableState>(state: S): PatchableState<S> {
393
401
  if (!state || typeof state !== "object") throw new Error("createState() must be called with a state object");
394
402
 
403
+ if (!("patch" in state)) {
404
+ Object.defineProperty(state, "patch", {
405
+ enumerable: false, configurable: true,
406
+ writable: false, value: (action: Patch<S>) => {
407
+ const futureState = (state as any);
408
+ if (!Array.isArray(futureState.patch.initialPatches)) {
409
+ futureState.patch.initialPatches = [];
410
+ }
411
+ futureState.patch.initialPatches.push(action);
412
+ }
413
+ });
414
+ }
415
+
395
416
  return state as PatchableState<S>;
396
417
  }
397
418
 
@@ -681,11 +702,11 @@ function render<S extends PatchableState>(state: S, parent: Element, childIndex:
681
702
  return undefined;
682
703
  }
683
704
 
684
- function isNaturalVode(x: ChildVode<any>) {
705
+ function isNaturalVode<S>(x: ChildVode<S>): x is Vode<S> {
685
706
  return Array.isArray(x) && x.length > 0 && typeof x[0] === "string";
686
707
  }
687
708
 
688
- function isTextVode(x: ChildVode<any>) {
709
+ function isTextVode<S>(x: ChildVode<S>): x is TextVode {
689
710
  return typeof x === "string" || (<Text><unknown>x)?.nodeType === Node.TEXT_NODE;
690
711
  }
691
712
 
@@ -1,49 +0,0 @@
1
- name: Publish release to NPM and GitHub Packages
2
-
3
- on:
4
- release:
5
- types: published
6
- branches:
7
- - "main"
8
-
9
- permissions:
10
- id-token: write # Required for OIDC
11
- packages: write
12
- attestations: write
13
- contents: read
14
-
15
- jobs:
16
- build-and-publish-to-npm:
17
- runs-on: ubuntu-latest
18
- steps:
19
- - uses: actions/checkout@v4
20
- - uses: actions/setup-node@v6
21
- with:
22
- registry-url: "https://registry.npmjs.org"
23
- - run: npm ci
24
- - run: npm run release
25
- - run: |
26
- ((npm publish --provenance --access public 2> /dev/null) | grep "@ryupold/vode@" > version.txt) || echo "...done"
27
- NEWVERSION=$(cat version.txt)
28
- if [[ $NEWVERSION == *"npm error 409 Conflict"* || $NEWVERSION == *"@ryupold/vode@"* ]]; then
29
- echo "...success: $NEWVERSION"
30
- else
31
- echo "...failed to publish"
32
- exit 1
33
- fi
34
- env:
35
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
36
- - uses: actions/setup-node@v6
37
- with:
38
- registry-url: "https://npm.pkg.github.com"
39
- - run: |
40
- ((npm publish --access public 2> /dev/null) | grep "@ryupold/vode@" > version.txt) || echo "...done"
41
- NEWVERSION=$(cat version.txt)
42
- if [[ $NEWVERSION == *"npm error 409 Conflict"* || $NEWVERSION == *"@ryupold/vode@"* ]]; then
43
- echo "...success: $NEWVERSION"
44
- else
45
- echo "...failed to publish"
46
- exit 1
47
- fi
48
- env:
49
- NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
File without changes