elit 3.3.0 → 3.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/build.d.mts +1 -1
- package/dist/cli.js +20 -1
- package/dist/config.d.mts +1 -1
- package/dist/dom.d.ts.map +1 -1
- package/dist/dom.js +19 -0
- package/dist/dom.mjs +19 -0
- package/dist/el.d.mts +2 -1
- package/dist/el.d.ts +1 -0
- package/dist/el.d.ts.map +1 -1
- package/dist/el.js +18 -0
- package/dist/el.mjs +17 -0
- package/dist/index.d.mts +1 -1
- package/dist/index.js +64 -5
- package/dist/index.mjs +63 -5
- package/dist/router.d.mts +1 -0
- package/dist/router.d.ts +1 -0
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +36 -2
- package/dist/router.mjs +36 -2
- package/dist/{server-Dyam9FBy.d.ts → server-BG2CaVMh.d.ts} +1 -1
- package/dist/{server-U0JYnJFs.d.mts → server-Cz3z-5ls.d.mts} +1 -1
- package/dist/server.d.mts +1 -1
- package/dist/server.js +19 -0
- package/dist/server.mjs +19 -0
- package/dist/state.d.mts +2 -2
- package/dist/state.d.ts +2 -2
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +29 -3
- package/dist/state.mjs +29 -3
- package/dist/types.d.mts +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/dom.ts +30 -0
- package/src/el.ts +19 -0
- package/src/router.ts +23 -2
- package/src/state.ts +20 -8
- package/src/types.ts +1 -1
package/dist/build.d.mts
CHANGED
package/dist/cli.js
CHANGED
|
@@ -1435,7 +1435,7 @@ var require_package = __commonJS({
|
|
|
1435
1435
|
"package.json"(exports2, module2) {
|
|
1436
1436
|
module2.exports = {
|
|
1437
1437
|
name: "elit",
|
|
1438
|
-
version: "3.3.
|
|
1438
|
+
version: "3.3.2",
|
|
1439
1439
|
description: "Optimized lightweight library for creating DOM elements with reactive state",
|
|
1440
1440
|
main: "dist/index.js",
|
|
1441
1441
|
module: "dist/index.mjs",
|
|
@@ -2473,7 +2473,26 @@ var DomNode = class {
|
|
|
2473
2473
|
parent.appendChild(document.createTextNode(String(vNode)));
|
|
2474
2474
|
return;
|
|
2475
2475
|
}
|
|
2476
|
+
if (Array.isArray(vNode)) {
|
|
2477
|
+
for (const child of vNode) {
|
|
2478
|
+
this.renderToDOM(child, parent);
|
|
2479
|
+
}
|
|
2480
|
+
return;
|
|
2481
|
+
}
|
|
2476
2482
|
const { tagName, props, children } = vNode;
|
|
2483
|
+
if (!tagName) {
|
|
2484
|
+
for (const child of children) {
|
|
2485
|
+
if (shouldSkipChild(child)) continue;
|
|
2486
|
+
if (Array.isArray(child)) {
|
|
2487
|
+
for (const c of child) {
|
|
2488
|
+
!shouldSkipChild(c) && this.renderToDOM(c, parent);
|
|
2489
|
+
}
|
|
2490
|
+
} else {
|
|
2491
|
+
this.renderToDOM(child, parent);
|
|
2492
|
+
}
|
|
2493
|
+
}
|
|
2494
|
+
return;
|
|
2495
|
+
}
|
|
2477
2496
|
const isSVG = tagName === "svg" || tagName[0] === "s" && tagName[1] === "v" && tagName[2] === "g" || parent.namespaceURI === "http://www.w3.org/2000/svg";
|
|
2478
2497
|
const el = isSVG ? document.createElementNS("http://www.w3.org/2000/svg", tagName.replace("svg", "").toLowerCase() || tagName) : document.createElement(tagName);
|
|
2479
2498
|
for (const key in props) {
|
package/dist/config.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { D as DevServerOptions, B as BuildOptions, P as PreviewOptions } from './server-
|
|
1
|
+
import { D as DevServerOptions, B as BuildOptions, P as PreviewOptions } from './server-Cz3z-5ls.mjs';
|
|
2
2
|
import './http.mjs';
|
|
3
3
|
import 'node:events';
|
|
4
4
|
import './ws.mjs';
|
package/dist/dom.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../src/dom.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,qBAAqB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAmC9H,qBAAa,OAAO;IAChB,OAAO,CAAC,YAAY,CAAmC;IAEvD,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,KAAU,EAAE,QAAQ,GAAE,QAAa,GAAG,KAAK;IAIjF,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,GAAG,UAAU,GAAG,gBAAgB,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../src/dom.ts"],"names":[],"mappings":"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"}
|
package/dist/dom.js
CHANGED
|
@@ -56,7 +56,26 @@ var DomNode = class {
|
|
|
56
56
|
parent.appendChild(document.createTextNode(String(vNode)));
|
|
57
57
|
return;
|
|
58
58
|
}
|
|
59
|
+
if (Array.isArray(vNode)) {
|
|
60
|
+
for (const child of vNode) {
|
|
61
|
+
this.renderToDOM(child, parent);
|
|
62
|
+
}
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
59
65
|
const { tagName, props, children } = vNode;
|
|
66
|
+
if (!tagName) {
|
|
67
|
+
for (const child of children) {
|
|
68
|
+
if (shouldSkipChild(child)) continue;
|
|
69
|
+
if (Array.isArray(child)) {
|
|
70
|
+
for (const c of child) {
|
|
71
|
+
!shouldSkipChild(c) && this.renderToDOM(c, parent);
|
|
72
|
+
}
|
|
73
|
+
} else {
|
|
74
|
+
this.renderToDOM(child, parent);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
60
79
|
const isSVG = tagName === "svg" || tagName[0] === "s" && tagName[1] === "v" && tagName[2] === "g" || parent.namespaceURI === "http://www.w3.org/2000/svg";
|
|
61
80
|
const el = isSVG ? document.createElementNS("http://www.w3.org/2000/svg", tagName.replace("svg", "").toLowerCase() || tagName) : document.createElement(tagName);
|
|
62
81
|
for (const key in props) {
|
package/dist/dom.mjs
CHANGED
|
@@ -28,7 +28,26 @@ var DomNode = class {
|
|
|
28
28
|
parent.appendChild(document.createTextNode(String(vNode)));
|
|
29
29
|
return;
|
|
30
30
|
}
|
|
31
|
+
if (Array.isArray(vNode)) {
|
|
32
|
+
for (const child of vNode) {
|
|
33
|
+
this.renderToDOM(child, parent);
|
|
34
|
+
}
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
31
37
|
const { tagName, props, children } = vNode;
|
|
38
|
+
if (!tagName) {
|
|
39
|
+
for (const child of children) {
|
|
40
|
+
if (shouldSkipChild(child)) continue;
|
|
41
|
+
if (Array.isArray(child)) {
|
|
42
|
+
for (const c of child) {
|
|
43
|
+
!shouldSkipChild(c) && this.renderToDOM(c, parent);
|
|
44
|
+
}
|
|
45
|
+
} else {
|
|
46
|
+
this.renderToDOM(child, parent);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
32
51
|
const isSVG = tagName === "svg" || tagName[0] === "s" && tagName[1] === "v" && tagName[2] === "g" || parent.namespaceURI === "http://www.w3.org/2000/svg";
|
|
33
52
|
const el = isSVG ? document.createElementNS("http://www.w3.org/2000/svg", tagName.replace("svg", "").toLowerCase() || tagName) : document.createElement(tagName);
|
|
34
53
|
for (const key in props) {
|
package/dist/el.d.mts
CHANGED
|
@@ -190,6 +190,7 @@ declare const mathMsup: ElementFactory;
|
|
|
190
190
|
declare const varElement: ElementFactory;
|
|
191
191
|
declare const el: Partial<Elements>;
|
|
192
192
|
|
|
193
|
+
declare const frag: ElementFactory;
|
|
193
194
|
declare const doc: any;
|
|
194
195
|
declare const getEl: any;
|
|
195
196
|
declare const getEls: any;
|
|
@@ -204,4 +205,4 @@ declare const getElClass: any;
|
|
|
204
205
|
declare const getElTag: any;
|
|
205
206
|
declare const getElName: any;
|
|
206
207
|
|
|
207
|
-
export { a, abbr, address, area, article, aside, audio, b, base, bdi, bdo, blockquote, body, br, button, canvas, caption, cite, code, col, colgroup, commentNode, createEl, createElementFactory, createMathEl, createSvgEl, data, datalist, dd, del, details, dfn, dialog, div, dl, doc, dt, el, elements, em, embed, fieldset, figcaption, figure, footer, form, fragment, getEl, getElClass, getElId, getElName, getElTag, getEls, h1, h2, h3, h4, h5, h6, head, header, hr, html, i, iframe, img, input, ins, kbd, label, legend, li, link, main, map, mark, mathMath, mathMfrac, mathMi, mathMn, mathMo, mathMroot, mathMrow, mathMs, mathMsqrt, mathMsub, mathMsup, mathMtext, menu, meta, meter, nav, noscript, object, ol, optgroup, option, output, p, param, picture, portal, pre, progress, q, rp, rt, ruby, s, samp, script, section, select, slot, small, source, span, strong, style, sub, summary, sup, svgAnimate, svgAnimateMotion, svgAnimateTransform, svgCircle, svgClipPath, svgDefs, svgEllipse, svgFeBlend, svgFeColorMatrix, svgFeComponentTransfer, svgFeComposite, svgFeConvolveMatrix, svgFeDiffuseLighting, svgFeDisplacementMap, svgFeFlood, svgFeGaussianBlur, svgFeMorphology, svgFeOffset, svgFeSpecularLighting, svgFeTile, svgFeTurbulence, svgFilter, svgForeignObject, svgG, svgImage, svgLine, svgLinearGradient, svgMarker, svgMask, svgPath, svgPattern, svgPolygon, svgPolyline, svgRadialGradient, svgRect, svgSet, svgStop, svgSvg, svgSymbol, svgText, svgTspan, svgUse, table, tbody, td, template, textNode, textarea, tfoot, th, thead, time, title, tr, track, u, ul, varElement, video, wbr };
|
|
208
|
+
export { a, abbr, address, area, article, aside, audio, b, base, bdi, bdo, blockquote, body, br, button, canvas, caption, cite, code, col, colgroup, commentNode, createEl, createElementFactory, createMathEl, createSvgEl, data, datalist, dd, del, details, dfn, dialog, div, dl, doc, dt, el, elements, em, embed, fieldset, figcaption, figure, footer, form, frag, fragment, getEl, getElClass, getElId, getElName, getElTag, getEls, h1, h2, h3, h4, h5, h6, head, header, hr, html, i, iframe, img, input, ins, kbd, label, legend, li, link, main, map, mark, mathMath, mathMfrac, mathMi, mathMn, mathMo, mathMroot, mathMrow, mathMs, mathMsqrt, mathMsub, mathMsup, mathMtext, menu, meta, meter, nav, noscript, object, ol, optgroup, option, output, p, param, picture, portal, pre, progress, q, rp, rt, ruby, s, samp, script, section, select, slot, small, source, span, strong, style, sub, summary, sup, svgAnimate, svgAnimateMotion, svgAnimateTransform, svgCircle, svgClipPath, svgDefs, svgEllipse, svgFeBlend, svgFeColorMatrix, svgFeComponentTransfer, svgFeComposite, svgFeConvolveMatrix, svgFeDiffuseLighting, svgFeDisplacementMap, svgFeFlood, svgFeGaussianBlur, svgFeMorphology, svgFeOffset, svgFeSpecularLighting, svgFeTile, svgFeTurbulence, svgFilter, svgForeignObject, svgG, svgImage, svgLine, svgLinearGradient, svgMarker, svgMask, svgPath, svgPattern, svgPolygon, svgPolyline, svgRadialGradient, svgRect, svgSet, svgStop, svgSvg, svgSymbol, svgText, svgTspan, svgUse, table, tbody, td, template, textNode, textarea, tfoot, th, thead, time, title, tr, track, u, ul, varElement, video, wbr };
|
package/dist/el.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ declare const elements: Partial<Elements>;
|
|
|
19
19
|
export declare const html: ElementFactory, head: ElementFactory, body: ElementFactory, title: ElementFactory, base: ElementFactory, link: ElementFactory, meta: ElementFactory, style: ElementFactory, address: ElementFactory, article: ElementFactory, aside: ElementFactory, footer: ElementFactory, header: ElementFactory, h1: ElementFactory, h2: ElementFactory, h3: ElementFactory, h4: ElementFactory, h5: ElementFactory, h6: ElementFactory, main: ElementFactory, nav: ElementFactory, section: ElementFactory, blockquote: ElementFactory, dd: ElementFactory, div: ElementFactory, dl: ElementFactory, dt: ElementFactory, figcaption: ElementFactory, figure: ElementFactory, hr: ElementFactory, li: ElementFactory, ol: ElementFactory, p: ElementFactory, pre: ElementFactory, ul: ElementFactory, a: ElementFactory, abbr: ElementFactory, b: ElementFactory, bdi: ElementFactory, bdo: ElementFactory, br: ElementFactory, cite: ElementFactory, code: ElementFactory, data: ElementFactory, dfn: ElementFactory, em: ElementFactory, i: ElementFactory, kbd: ElementFactory, mark: ElementFactory, q: ElementFactory, rp: ElementFactory, rt: ElementFactory, ruby: ElementFactory, s: ElementFactory, samp: ElementFactory, small: ElementFactory, span: ElementFactory, strong: ElementFactory, sub: ElementFactory, sup: ElementFactory, time: ElementFactory, u: ElementFactory, wbr: ElementFactory, area: ElementFactory, audio: ElementFactory, img: ElementFactory, map: ElementFactory, track: ElementFactory, video: ElementFactory, embed: ElementFactory, iframe: ElementFactory, object: ElementFactory, param: ElementFactory, picture: ElementFactory, portal: ElementFactory, source: ElementFactory, canvas: ElementFactory, noscript: ElementFactory, script: ElementFactory, del: ElementFactory, ins: ElementFactory, caption: ElementFactory, col: ElementFactory, colgroup: ElementFactory, table: ElementFactory, tbody: ElementFactory, td: ElementFactory, tfoot: ElementFactory, th: ElementFactory, thead: ElementFactory, tr: ElementFactory, button: ElementFactory, datalist: ElementFactory, fieldset: ElementFactory, form: ElementFactory, input: ElementFactory, label: ElementFactory, legend: ElementFactory, meter: ElementFactory, optgroup: ElementFactory, option: ElementFactory, output: ElementFactory, progress: ElementFactory, select: ElementFactory, textarea: ElementFactory, details: ElementFactory, dialog: ElementFactory, menu: ElementFactory, summary: ElementFactory, slot: ElementFactory, template: ElementFactory, svgSvg: ElementFactory, svgCircle: ElementFactory, svgRect: ElementFactory, svgPath: ElementFactory, svgLine: ElementFactory, svgPolyline: ElementFactory, svgPolygon: ElementFactory, svgEllipse: ElementFactory, svgG: ElementFactory, svgText: ElementFactory, svgTspan: ElementFactory, svgDefs: ElementFactory, svgLinearGradient: ElementFactory, svgRadialGradient: ElementFactory, svgStop: ElementFactory, svgPattern: ElementFactory, svgMask: ElementFactory, svgClipPath: ElementFactory, svgUse: ElementFactory, svgSymbol: ElementFactory, svgMarker: ElementFactory, svgImage: ElementFactory, svgForeignObject: ElementFactory, svgAnimate: ElementFactory, svgAnimateTransform: ElementFactory, svgAnimateMotion: ElementFactory, svgSet: ElementFactory, svgFilter: ElementFactory, svgFeBlend: ElementFactory, svgFeColorMatrix: ElementFactory, svgFeComponentTransfer: ElementFactory, svgFeComposite: ElementFactory, svgFeConvolveMatrix: ElementFactory, svgFeDiffuseLighting: ElementFactory, svgFeDisplacementMap: ElementFactory, svgFeFlood: ElementFactory, svgFeGaussianBlur: ElementFactory, svgFeMorphology: ElementFactory, svgFeOffset: ElementFactory, svgFeSpecularLighting: ElementFactory, svgFeTile: ElementFactory, svgFeTurbulence: ElementFactory, mathMath: ElementFactory, mathMi: ElementFactory, mathMn: ElementFactory, mathMo: ElementFactory, mathMs: ElementFactory, mathMtext: ElementFactory, mathMrow: ElementFactory, mathMfrac: ElementFactory, mathMsqrt: ElementFactory, mathMroot: ElementFactory, mathMsub: ElementFactory, mathMsup: ElementFactory, varElement: ElementFactory;
|
|
20
20
|
export declare const el: Partial<Elements>;
|
|
21
21
|
export { elements };
|
|
22
|
+
export declare const frag: ElementFactory;
|
|
22
23
|
export declare const doc: any;
|
|
23
24
|
export declare const getEl: any;
|
|
24
25
|
export declare const getEls: any;
|
package/dist/el.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"el.d.ts","sourceRoot":"","sources":["../src/el.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"el.d.ts","sourceRoot":"","sources":["../src/el.ts"],"names":[],"mappings":"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"}
|
package/dist/el.js
CHANGED
|
@@ -66,6 +66,7 @@ __export(el_exports, {
|
|
|
66
66
|
figure: () => figure,
|
|
67
67
|
footer: () => footer,
|
|
68
68
|
form: () => form,
|
|
69
|
+
frag: () => frag,
|
|
69
70
|
fragment: () => fragment,
|
|
70
71
|
getEl: () => getEl,
|
|
71
72
|
getElClass: () => getElClass,
|
|
@@ -589,6 +590,22 @@ var {
|
|
|
589
590
|
varElement
|
|
590
591
|
} = elements;
|
|
591
592
|
var el = elements;
|
|
593
|
+
var frag = function(...children) {
|
|
594
|
+
const flatChildren = [];
|
|
595
|
+
for (let i2 = 0, len = children.length; i2 < len; i2++) {
|
|
596
|
+
const child = children[i2];
|
|
597
|
+
if (child == null || child === false) continue;
|
|
598
|
+
if (Array.isArray(child)) {
|
|
599
|
+
for (let j = 0, cLen = child.length; j < cLen; j++) {
|
|
600
|
+
const c = child[j];
|
|
601
|
+
c != null && c !== false && flatChildren.push(c);
|
|
602
|
+
}
|
|
603
|
+
} else {
|
|
604
|
+
flatChildren.push(child);
|
|
605
|
+
}
|
|
606
|
+
}
|
|
607
|
+
return { tagName: "", props: {}, children: flatChildren };
|
|
608
|
+
};
|
|
592
609
|
var doc = hasDocument ? document : void 0;
|
|
593
610
|
var getEl = bindDocMethod(doc?.querySelector);
|
|
594
611
|
var getEls = bindDocMethod(doc?.querySelectorAll);
|
|
@@ -650,6 +667,7 @@ var getElName = bindDocMethod(doc?.getElementsByName);
|
|
|
650
667
|
figure,
|
|
651
668
|
footer,
|
|
652
669
|
form,
|
|
670
|
+
frag,
|
|
653
671
|
fragment,
|
|
654
672
|
getEl,
|
|
655
673
|
getElClass,
|
package/dist/el.mjs
CHANGED
|
@@ -384,6 +384,22 @@ var {
|
|
|
384
384
|
varElement
|
|
385
385
|
} = elements;
|
|
386
386
|
var el = elements;
|
|
387
|
+
var frag = function(...children) {
|
|
388
|
+
const flatChildren = [];
|
|
389
|
+
for (let i2 = 0, len = children.length; i2 < len; i2++) {
|
|
390
|
+
const child = children[i2];
|
|
391
|
+
if (child == null || child === false) continue;
|
|
392
|
+
if (Array.isArray(child)) {
|
|
393
|
+
for (let j = 0, cLen = child.length; j < cLen; j++) {
|
|
394
|
+
const c = child[j];
|
|
395
|
+
c != null && c !== false && flatChildren.push(c);
|
|
396
|
+
}
|
|
397
|
+
} else {
|
|
398
|
+
flatChildren.push(child);
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
return { tagName: "", props: {}, children: flatChildren };
|
|
402
|
+
};
|
|
387
403
|
var doc = hasDocument ? document : void 0;
|
|
388
404
|
var getEl = bindDocMethod(doc?.querySelector);
|
|
389
405
|
var getEls = bindDocMethod(doc?.querySelectorAll);
|
|
@@ -444,6 +460,7 @@ export {
|
|
|
444
460
|
figure,
|
|
445
461
|
footer,
|
|
446
462
|
form,
|
|
463
|
+
frag,
|
|
447
464
|
fragment,
|
|
448
465
|
getEl,
|
|
449
466
|
getElClass,
|
package/dist/index.d.mts
CHANGED
|
@@ -2,7 +2,7 @@ export { BuildOptions, BuildResult, Child, Children, ClientConfig, DevServer, De
|
|
|
2
2
|
export { DomNode, dom, mount, render, renderToString } from './dom.mjs';
|
|
3
3
|
export { SharedState, batchRender, bindChecked, bindValue, cleanupUnused, computed, createSharedState, createState, createVirtualList, debounce, effect, lazy, reactive, reactiveAs, renderChunked, sharedStateManager, text, throttle } from './state.mjs';
|
|
4
4
|
export { CSSRule, CSSVariable, ContainerRule, CreateStyle, FontFace, KeyframeStep, Keyframes, LayerRule, MediaRule, SupportsRule, addAttribute, addClass, addContainer, addId, addName, addPseudoClass, addPseudoElement, addStyle, addTag, addVar, adjacentSibling, attrContains, attrContainsWord, attrEndsWith, attrEquals, attrStartsWith, childStyle, clearStyle, container, descendant, fontFace, generalSibling, getVar, importStyle, important, injectStyle, keyframe, keyframeFromTo, layer, layerOrder, mediaDark, mediaLight, mediaMaxWidth, mediaMinWidth, mediaPrint, mediaReducedMotion, mediaScreen, mediaStyle, multipleStyle, nesting, renderStyle, default as styles, supportsStyle } from './style.mjs';
|
|
5
|
-
export { a, abbr, address, area, article, aside, audio, b, base, bdi, bdo, blockquote, body, br, button, canvas, caption, cite, code, col, colgroup, commentNode, createEl, createElementFactory, createMathEl, createSvgEl, data, datalist, dd, del, details, dfn, dialog, div, dl, doc, dt, el, elements, em, embed, fieldset, figcaption, figure, footer, form, fragment, getEl, getElClass, getElId, getElName, getElTag, getEls, h1, h2, h3, h4, h5, h6, head, header, hr, html, i, iframe, img, input, ins, kbd, label, legend, li, link, main, map, mark, mathMath, mathMfrac, mathMi, mathMn, mathMo, mathMroot, mathMrow, mathMs, mathMsqrt, mathMsub, mathMsup, mathMtext, menu, meta, meter, nav, noscript, object, ol, optgroup, option, output, p, param, picture, portal, pre, progress, q, rp, rt, ruby, s, samp, script, section, select, slot, small, source, span, strong, style, sub, summary, sup, svgAnimate, svgAnimateMotion, svgAnimateTransform, svgCircle, svgClipPath, svgDefs, svgEllipse, svgFeBlend, svgFeColorMatrix, svgFeComponentTransfer, svgFeComposite, svgFeConvolveMatrix, svgFeDiffuseLighting, svgFeDisplacementMap, svgFeFlood, svgFeGaussianBlur, svgFeMorphology, svgFeOffset, svgFeSpecularLighting, svgFeTile, svgFeTurbulence, svgFilter, svgForeignObject, svgG, svgImage, svgLine, svgLinearGradient, svgMarker, svgMask, svgPath, svgPattern, svgPolygon, svgPolyline, svgRadialGradient, svgRect, svgSet, svgStop, svgSvg, svgSymbol, svgText, svgTspan, svgUse, table, tbody, td, template, textNode, textarea, tfoot, th, thead, time, title, tr, track, u, ul, varElement, video, wbr } from './el.mjs';
|
|
5
|
+
export { a, abbr, address, area, article, aside, audio, b, base, bdi, bdo, blockquote, body, br, button, canvas, caption, cite, code, col, colgroup, commentNode, createEl, createElementFactory, createMathEl, createSvgEl, data, datalist, dd, del, details, dfn, dialog, div, dl, doc, dt, el, elements, em, embed, fieldset, figcaption, figure, footer, form, frag, fragment, getEl, getElClass, getElId, getElName, getElTag, getEls, h1, h2, h3, h4, h5, h6, head, header, hr, html, i, iframe, img, input, ins, kbd, label, legend, li, link, main, map, mark, mathMath, mathMfrac, mathMi, mathMn, mathMo, mathMroot, mathMrow, mathMs, mathMsqrt, mathMsub, mathMsup, mathMtext, menu, meta, meter, nav, noscript, object, ol, optgroup, option, output, p, param, picture, portal, pre, progress, q, rp, rt, ruby, s, samp, script, section, select, slot, small, source, span, strong, style, sub, summary, sup, svgAnimate, svgAnimateMotion, svgAnimateTransform, svgCircle, svgClipPath, svgDefs, svgEllipse, svgFeBlend, svgFeColorMatrix, svgFeComponentTransfer, svgFeComposite, svgFeConvolveMatrix, svgFeDiffuseLighting, svgFeDisplacementMap, svgFeFlood, svgFeGaussianBlur, svgFeMorphology, svgFeOffset, svgFeSpecularLighting, svgFeTile, svgFeTurbulence, svgFilter, svgForeignObject, svgG, svgImage, svgLine, svgLinearGradient, svgMarker, svgMask, svgPath, svgPattern, svgPolygon, svgPolyline, svgRadialGradient, svgRect, svgSet, svgStop, svgSvg, svgSymbol, svgText, svgTspan, svgUse, table, tbody, td, template, textNode, textarea, tfoot, th, thead, time, title, tr, track, u, ul, varElement, video, wbr } from './el.mjs';
|
|
6
6
|
export { Route, RouteLocation, RouteParams, Router, RouterOptions, createRouter, createRouterView, routerLink } from './router.mjs';
|
|
7
7
|
export { HMRClient, default as hmr } from './hmr.mjs';
|
|
8
8
|
import 'node:events';
|
package/dist/index.js
CHANGED
|
@@ -103,6 +103,7 @@ __export(src_exports, {
|
|
|
103
103
|
fontFace: () => fontFace,
|
|
104
104
|
footer: () => footer,
|
|
105
105
|
form: () => form,
|
|
106
|
+
frag: () => frag,
|
|
106
107
|
fragment: () => fragment,
|
|
107
108
|
generalSibling: () => generalSibling,
|
|
108
109
|
getEl: () => getEl,
|
|
@@ -306,7 +307,26 @@ var DomNode = class {
|
|
|
306
307
|
parent.appendChild(document.createTextNode(String(vNode)));
|
|
307
308
|
return;
|
|
308
309
|
}
|
|
310
|
+
if (Array.isArray(vNode)) {
|
|
311
|
+
for (const child of vNode) {
|
|
312
|
+
this.renderToDOM(child, parent);
|
|
313
|
+
}
|
|
314
|
+
return;
|
|
315
|
+
}
|
|
309
316
|
const { tagName, props, children } = vNode;
|
|
317
|
+
if (!tagName) {
|
|
318
|
+
for (const child of children) {
|
|
319
|
+
if (shouldSkipChild(child)) continue;
|
|
320
|
+
if (Array.isArray(child)) {
|
|
321
|
+
for (const c of child) {
|
|
322
|
+
!shouldSkipChild(c) && this.renderToDOM(c, parent);
|
|
323
|
+
}
|
|
324
|
+
} else {
|
|
325
|
+
this.renderToDOM(child, parent);
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
return;
|
|
329
|
+
}
|
|
310
330
|
const isSVG = tagName === "svg" || tagName[0] === "s" && tagName[1] === "v" && tagName[2] === "g" || parent.namespaceURI === "http://www.w3.org/2000/svg";
|
|
311
331
|
const el2 = isSVG ? document.createElementNS("http://www.w3.org/2000/svg", tagName.replace("svg", "").toLowerCase() || tagName) : document.createElement(tagName);
|
|
312
332
|
for (const key in props) {
|
|
@@ -1121,7 +1141,11 @@ var scheduleRAFUpdate = (rafId, updateFn) => {
|
|
|
1121
1141
|
};
|
|
1122
1142
|
var renderToFragment = (content, isVNode) => {
|
|
1123
1143
|
const fragment2 = document.createDocumentFragment();
|
|
1124
|
-
if (
|
|
1144
|
+
if (Array.isArray(content)) {
|
|
1145
|
+
for (const child of content) {
|
|
1146
|
+
dom.renderToDOM(child, fragment2);
|
|
1147
|
+
}
|
|
1148
|
+
} else if (isVNode && content && typeof content === "object" && "tagName" in content) {
|
|
1125
1149
|
const { children } = content;
|
|
1126
1150
|
for (const child of children) {
|
|
1127
1151
|
dom.renderToDOM(child, fragment2);
|
|
@@ -1208,7 +1232,8 @@ var reactive = (state, renderFn) => {
|
|
|
1208
1232
|
children: vnode.children
|
|
1209
1233
|
};
|
|
1210
1234
|
}
|
|
1211
|
-
|
|
1235
|
+
const initialChildren = Array.isArray(initialResult) ? initialResult : [initialResult];
|
|
1236
|
+
return { tagName: "span", props: { ref: refCallback, style: { display: "contents" } }, children: initialChildren };
|
|
1212
1237
|
};
|
|
1213
1238
|
var reactiveAs = (tagName, state, renderFn, props = {}) => {
|
|
1214
1239
|
let rafId = null;
|
|
@@ -1234,7 +1259,9 @@ var reactiveAs = (tagName, state, renderFn, props = {}) => {
|
|
|
1234
1259
|
const refCallback = (el2) => {
|
|
1235
1260
|
elementRef = el2;
|
|
1236
1261
|
};
|
|
1237
|
-
|
|
1262
|
+
const initialResult = renderFn(state.value);
|
|
1263
|
+
const initialChildren = Array.isArray(initialResult) ? initialResult : [initialResult];
|
|
1264
|
+
return { tagName, props: { ...props, ref: refCallback }, children: initialChildren };
|
|
1238
1265
|
};
|
|
1239
1266
|
var text = (state) => state && state.value !== void 0 ? reactive(state, (v) => ({ tagName: "span", props: {}, children: [String(v)] })) : String(state);
|
|
1240
1267
|
var bindValue = (state) => ({
|
|
@@ -2072,6 +2099,22 @@ var {
|
|
|
2072
2099
|
varElement
|
|
2073
2100
|
} = elements;
|
|
2074
2101
|
var el = elements;
|
|
2102
|
+
var frag = function(...children) {
|
|
2103
|
+
const flatChildren = [];
|
|
2104
|
+
for (let i2 = 0, len = children.length; i2 < len; i2++) {
|
|
2105
|
+
const child = children[i2];
|
|
2106
|
+
if (child == null || child === false) continue;
|
|
2107
|
+
if (Array.isArray(child)) {
|
|
2108
|
+
for (let j = 0, cLen = child.length; j < cLen; j++) {
|
|
2109
|
+
const c = child[j];
|
|
2110
|
+
c != null && c !== false && flatChildren.push(c);
|
|
2111
|
+
}
|
|
2112
|
+
} else {
|
|
2113
|
+
flatChildren.push(child);
|
|
2114
|
+
}
|
|
2115
|
+
}
|
|
2116
|
+
return { tagName: "", props: {}, children: flatChildren };
|
|
2117
|
+
};
|
|
2075
2118
|
var doc = hasDocument ? document : void 0;
|
|
2076
2119
|
var getEl = bindDocMethod(doc?.querySelector);
|
|
2077
2120
|
var getEls = bindDocMethod(doc?.querySelectorAll);
|
|
@@ -2173,7 +2216,20 @@ function createRouter(options) {
|
|
|
2173
2216
|
if (match?.route.beforeEnter) {
|
|
2174
2217
|
if (!executeGuard(match.route.beforeEnter, location2, currentRoute.value, navigate, replace)) return;
|
|
2175
2218
|
}
|
|
2176
|
-
|
|
2219
|
+
let urlPath = path;
|
|
2220
|
+
let url;
|
|
2221
|
+
if (mode === "hash") {
|
|
2222
|
+
url = "#" + path;
|
|
2223
|
+
} else {
|
|
2224
|
+
const hasBaseSlash = base2.endsWith("/");
|
|
2225
|
+
const hasPathSlash = path.startsWith("/");
|
|
2226
|
+
if (hasBaseSlash && hasPathSlash) {
|
|
2227
|
+
urlPath = path.slice(1);
|
|
2228
|
+
} else if (!hasBaseSlash && !hasPathSlash && path !== "/") {
|
|
2229
|
+
urlPath = "/" + path;
|
|
2230
|
+
}
|
|
2231
|
+
url = base2 + urlPath;
|
|
2232
|
+
}
|
|
2177
2233
|
if (replace) {
|
|
2178
2234
|
window.history.replaceState({ path }, "", url);
|
|
2179
2235
|
} else {
|
|
@@ -2195,6 +2251,7 @@ function createRouter(options) {
|
|
|
2195
2251
|
}
|
|
2196
2252
|
return {
|
|
2197
2253
|
currentRoute,
|
|
2254
|
+
mode,
|
|
2198
2255
|
navigate,
|
|
2199
2256
|
push: (path) => navigate(path, false),
|
|
2200
2257
|
replace: (path) => navigate(path, true),
|
|
@@ -2230,11 +2287,12 @@ function createRouterView(router, options) {
|
|
|
2230
2287
|
};
|
|
2231
2288
|
}
|
|
2232
2289
|
var routerLink = (router, props, ...children) => {
|
|
2290
|
+
const href = router.mode === "hash" ? `#${props.to}` : props.to;
|
|
2233
2291
|
return {
|
|
2234
2292
|
tagName: "a",
|
|
2235
2293
|
props: {
|
|
2236
2294
|
...props,
|
|
2237
|
-
href
|
|
2295
|
+
href,
|
|
2238
2296
|
onclick: (e) => {
|
|
2239
2297
|
e.preventDefault();
|
|
2240
2298
|
router.push(props.to);
|
|
@@ -2420,6 +2478,7 @@ var hmr_default = hmr;
|
|
|
2420
2478
|
fontFace,
|
|
2421
2479
|
footer,
|
|
2422
2480
|
form,
|
|
2481
|
+
frag,
|
|
2423
2482
|
fragment,
|
|
2424
2483
|
generalSibling,
|
|
2425
2484
|
getEl,
|
package/dist/index.mjs
CHANGED
|
@@ -28,7 +28,26 @@ var DomNode = class {
|
|
|
28
28
|
parent.appendChild(document.createTextNode(String(vNode)));
|
|
29
29
|
return;
|
|
30
30
|
}
|
|
31
|
+
if (Array.isArray(vNode)) {
|
|
32
|
+
for (const child of vNode) {
|
|
33
|
+
this.renderToDOM(child, parent);
|
|
34
|
+
}
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
31
37
|
const { tagName, props, children } = vNode;
|
|
38
|
+
if (!tagName) {
|
|
39
|
+
for (const child of children) {
|
|
40
|
+
if (shouldSkipChild(child)) continue;
|
|
41
|
+
if (Array.isArray(child)) {
|
|
42
|
+
for (const c of child) {
|
|
43
|
+
!shouldSkipChild(c) && this.renderToDOM(c, parent);
|
|
44
|
+
}
|
|
45
|
+
} else {
|
|
46
|
+
this.renderToDOM(child, parent);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
32
51
|
const isSVG = tagName === "svg" || tagName[0] === "s" && tagName[1] === "v" && tagName[2] === "g" || parent.namespaceURI === "http://www.w3.org/2000/svg";
|
|
33
52
|
const el2 = isSVG ? document.createElementNS("http://www.w3.org/2000/svg", tagName.replace("svg", "").toLowerCase() || tagName) : document.createElement(tagName);
|
|
34
53
|
for (const key in props) {
|
|
@@ -843,7 +862,11 @@ var scheduleRAFUpdate = (rafId, updateFn) => {
|
|
|
843
862
|
};
|
|
844
863
|
var renderToFragment = (content, isVNode) => {
|
|
845
864
|
const fragment2 = document.createDocumentFragment();
|
|
846
|
-
if (
|
|
865
|
+
if (Array.isArray(content)) {
|
|
866
|
+
for (const child of content) {
|
|
867
|
+
dom.renderToDOM(child, fragment2);
|
|
868
|
+
}
|
|
869
|
+
} else if (isVNode && content && typeof content === "object" && "tagName" in content) {
|
|
847
870
|
const { children } = content;
|
|
848
871
|
for (const child of children) {
|
|
849
872
|
dom.renderToDOM(child, fragment2);
|
|
@@ -930,7 +953,8 @@ var reactive = (state, renderFn) => {
|
|
|
930
953
|
children: vnode.children
|
|
931
954
|
};
|
|
932
955
|
}
|
|
933
|
-
|
|
956
|
+
const initialChildren = Array.isArray(initialResult) ? initialResult : [initialResult];
|
|
957
|
+
return { tagName: "span", props: { ref: refCallback, style: { display: "contents" } }, children: initialChildren };
|
|
934
958
|
};
|
|
935
959
|
var reactiveAs = (tagName, state, renderFn, props = {}) => {
|
|
936
960
|
let rafId = null;
|
|
@@ -956,7 +980,9 @@ var reactiveAs = (tagName, state, renderFn, props = {}) => {
|
|
|
956
980
|
const refCallback = (el2) => {
|
|
957
981
|
elementRef = el2;
|
|
958
982
|
};
|
|
959
|
-
|
|
983
|
+
const initialResult = renderFn(state.value);
|
|
984
|
+
const initialChildren = Array.isArray(initialResult) ? initialResult : [initialResult];
|
|
985
|
+
return { tagName, props: { ...props, ref: refCallback }, children: initialChildren };
|
|
960
986
|
};
|
|
961
987
|
var text = (state) => state && state.value !== void 0 ? reactive(state, (v) => ({ tagName: "span", props: {}, children: [String(v)] })) : String(state);
|
|
962
988
|
var bindValue = (state) => ({
|
|
@@ -1794,6 +1820,22 @@ var {
|
|
|
1794
1820
|
varElement
|
|
1795
1821
|
} = elements;
|
|
1796
1822
|
var el = elements;
|
|
1823
|
+
var frag = function(...children) {
|
|
1824
|
+
const flatChildren = [];
|
|
1825
|
+
for (let i2 = 0, len = children.length; i2 < len; i2++) {
|
|
1826
|
+
const child = children[i2];
|
|
1827
|
+
if (child == null || child === false) continue;
|
|
1828
|
+
if (Array.isArray(child)) {
|
|
1829
|
+
for (let j = 0, cLen = child.length; j < cLen; j++) {
|
|
1830
|
+
const c = child[j];
|
|
1831
|
+
c != null && c !== false && flatChildren.push(c);
|
|
1832
|
+
}
|
|
1833
|
+
} else {
|
|
1834
|
+
flatChildren.push(child);
|
|
1835
|
+
}
|
|
1836
|
+
}
|
|
1837
|
+
return { tagName: "", props: {}, children: flatChildren };
|
|
1838
|
+
};
|
|
1797
1839
|
var doc = hasDocument ? document : void 0;
|
|
1798
1840
|
var getEl = bindDocMethod(doc?.querySelector);
|
|
1799
1841
|
var getEls = bindDocMethod(doc?.querySelectorAll);
|
|
@@ -1895,7 +1937,20 @@ function createRouter(options) {
|
|
|
1895
1937
|
if (match?.route.beforeEnter) {
|
|
1896
1938
|
if (!executeGuard(match.route.beforeEnter, location2, currentRoute.value, navigate, replace)) return;
|
|
1897
1939
|
}
|
|
1898
|
-
|
|
1940
|
+
let urlPath = path;
|
|
1941
|
+
let url;
|
|
1942
|
+
if (mode === "hash") {
|
|
1943
|
+
url = "#" + path;
|
|
1944
|
+
} else {
|
|
1945
|
+
const hasBaseSlash = base2.endsWith("/");
|
|
1946
|
+
const hasPathSlash = path.startsWith("/");
|
|
1947
|
+
if (hasBaseSlash && hasPathSlash) {
|
|
1948
|
+
urlPath = path.slice(1);
|
|
1949
|
+
} else if (!hasBaseSlash && !hasPathSlash && path !== "/") {
|
|
1950
|
+
urlPath = "/" + path;
|
|
1951
|
+
}
|
|
1952
|
+
url = base2 + urlPath;
|
|
1953
|
+
}
|
|
1899
1954
|
if (replace) {
|
|
1900
1955
|
window.history.replaceState({ path }, "", url);
|
|
1901
1956
|
} else {
|
|
@@ -1917,6 +1972,7 @@ function createRouter(options) {
|
|
|
1917
1972
|
}
|
|
1918
1973
|
return {
|
|
1919
1974
|
currentRoute,
|
|
1975
|
+
mode,
|
|
1920
1976
|
navigate,
|
|
1921
1977
|
push: (path) => navigate(path, false),
|
|
1922
1978
|
replace: (path) => navigate(path, true),
|
|
@@ -1952,11 +2008,12 @@ function createRouterView(router, options) {
|
|
|
1952
2008
|
};
|
|
1953
2009
|
}
|
|
1954
2010
|
var routerLink = (router, props, ...children) => {
|
|
2011
|
+
const href = router.mode === "hash" ? `#${props.to}` : props.to;
|
|
1955
2012
|
return {
|
|
1956
2013
|
tagName: "a",
|
|
1957
2014
|
props: {
|
|
1958
2015
|
...props,
|
|
1959
|
-
href
|
|
2016
|
+
href,
|
|
1960
2017
|
onclick: (e) => {
|
|
1961
2018
|
e.preventDefault();
|
|
1962
2019
|
router.push(props.to);
|
|
@@ -2141,6 +2198,7 @@ export {
|
|
|
2141
2198
|
fontFace,
|
|
2142
2199
|
footer,
|
|
2143
2200
|
form,
|
|
2201
|
+
frag,
|
|
2144
2202
|
fragment,
|
|
2145
2203
|
generalSibling,
|
|
2146
2204
|
getEl,
|
package/dist/router.d.mts
CHANGED
package/dist/router.d.ts
CHANGED
package/dist/router.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAG1D,MAAM,WAAW,KAAK;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,KAAK,GAAG,KAAK,CAAC;IAClD,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,KAAK,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;CAC5F;AAED,MAAM,WAAW,WAAW;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC1B,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,KAAK,GAAG,KAAK,CAAC;CACrD;AAED,MAAM,WAAW,MAAM;IACnB,YAAY,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IACnC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACpD,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,KAAK,OAAO,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACxG,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AA6DD,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAG1D,MAAM,WAAW,KAAK;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,KAAK,GAAG,KAAK,CAAC;IAClD,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,KAAK,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;CAC5F;AAED,MAAM,WAAW,WAAW;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC1B,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,KAAK,GAAG,KAAK,CAAC;CACrD;AAED,MAAM,WAAW,MAAM;IACnB,YAAY,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IACnC,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC;IACzB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACpD,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,KAAK,OAAO,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACxG,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AA6DD,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAkH3D;AAGD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,KAAK,CAoBpF;AAGD,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,EAAE,OAAO,KAAK,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,UAAU,KAAK,EAAE,KAAG,KAgBhG,CAAC"}
|
package/dist/router.js
CHANGED
|
@@ -56,7 +56,26 @@ var DomNode = class {
|
|
|
56
56
|
parent.appendChild(document.createTextNode(String(vNode)));
|
|
57
57
|
return;
|
|
58
58
|
}
|
|
59
|
+
if (Array.isArray(vNode)) {
|
|
60
|
+
for (const child of vNode) {
|
|
61
|
+
this.renderToDOM(child, parent);
|
|
62
|
+
}
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
59
65
|
const { tagName, props, children } = vNode;
|
|
66
|
+
if (!tagName) {
|
|
67
|
+
for (const child of children) {
|
|
68
|
+
if (shouldSkipChild(child)) continue;
|
|
69
|
+
if (Array.isArray(child)) {
|
|
70
|
+
for (const c of child) {
|
|
71
|
+
!shouldSkipChild(c) && this.renderToDOM(c, parent);
|
|
72
|
+
}
|
|
73
|
+
} else {
|
|
74
|
+
this.renderToDOM(child, parent);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
60
79
|
const isSVG = tagName === "svg" || tagName[0] === "s" && tagName[1] === "v" && tagName[2] === "g" || parent.namespaceURI === "http://www.w3.org/2000/svg";
|
|
61
80
|
const el = isSVG ? document.createElementNS("http://www.w3.org/2000/svg", tagName.replace("svg", "").toLowerCase() || tagName) : document.createElement(tagName);
|
|
62
81
|
for (const key in props) {
|
|
@@ -753,7 +772,20 @@ function createRouter(options) {
|
|
|
753
772
|
if (match?.route.beforeEnter) {
|
|
754
773
|
if (!executeGuard(match.route.beforeEnter, location, currentRoute.value, navigate, replace)) return;
|
|
755
774
|
}
|
|
756
|
-
|
|
775
|
+
let urlPath = path;
|
|
776
|
+
let url;
|
|
777
|
+
if (mode === "hash") {
|
|
778
|
+
url = "#" + path;
|
|
779
|
+
} else {
|
|
780
|
+
const hasBaseSlash = base.endsWith("/");
|
|
781
|
+
const hasPathSlash = path.startsWith("/");
|
|
782
|
+
if (hasBaseSlash && hasPathSlash) {
|
|
783
|
+
urlPath = path.slice(1);
|
|
784
|
+
} else if (!hasBaseSlash && !hasPathSlash && path !== "/") {
|
|
785
|
+
urlPath = "/" + path;
|
|
786
|
+
}
|
|
787
|
+
url = base + urlPath;
|
|
788
|
+
}
|
|
757
789
|
if (replace) {
|
|
758
790
|
window.history.replaceState({ path }, "", url);
|
|
759
791
|
} else {
|
|
@@ -775,6 +807,7 @@ function createRouter(options) {
|
|
|
775
807
|
}
|
|
776
808
|
return {
|
|
777
809
|
currentRoute,
|
|
810
|
+
mode,
|
|
778
811
|
navigate,
|
|
779
812
|
push: (path) => navigate(path, false),
|
|
780
813
|
replace: (path) => navigate(path, true),
|
|
@@ -810,11 +843,12 @@ function createRouterView(router, options) {
|
|
|
810
843
|
};
|
|
811
844
|
}
|
|
812
845
|
var routerLink = (router, props, ...children) => {
|
|
846
|
+
const href = router.mode === "hash" ? `#${props.to}` : props.to;
|
|
813
847
|
return {
|
|
814
848
|
tagName: "a",
|
|
815
849
|
props: {
|
|
816
850
|
...props,
|
|
817
|
-
href
|
|
851
|
+
href,
|
|
818
852
|
onclick: (e) => {
|
|
819
853
|
e.preventDefault();
|
|
820
854
|
router.push(props.to);
|
package/dist/router.mjs
CHANGED
|
@@ -28,7 +28,26 @@ var DomNode = class {
|
|
|
28
28
|
parent.appendChild(document.createTextNode(String(vNode)));
|
|
29
29
|
return;
|
|
30
30
|
}
|
|
31
|
+
if (Array.isArray(vNode)) {
|
|
32
|
+
for (const child of vNode) {
|
|
33
|
+
this.renderToDOM(child, parent);
|
|
34
|
+
}
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
31
37
|
const { tagName, props, children } = vNode;
|
|
38
|
+
if (!tagName) {
|
|
39
|
+
for (const child of children) {
|
|
40
|
+
if (shouldSkipChild(child)) continue;
|
|
41
|
+
if (Array.isArray(child)) {
|
|
42
|
+
for (const c of child) {
|
|
43
|
+
!shouldSkipChild(c) && this.renderToDOM(c, parent);
|
|
44
|
+
}
|
|
45
|
+
} else {
|
|
46
|
+
this.renderToDOM(child, parent);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
32
51
|
const isSVG = tagName === "svg" || tagName[0] === "s" && tagName[1] === "v" && tagName[2] === "g" || parent.namespaceURI === "http://www.w3.org/2000/svg";
|
|
33
52
|
const el = isSVG ? document.createElementNS("http://www.w3.org/2000/svg", tagName.replace("svg", "").toLowerCase() || tagName) : document.createElement(tagName);
|
|
34
53
|
for (const key in props) {
|
|
@@ -725,7 +744,20 @@ function createRouter(options) {
|
|
|
725
744
|
if (match?.route.beforeEnter) {
|
|
726
745
|
if (!executeGuard(match.route.beforeEnter, location, currentRoute.value, navigate, replace)) return;
|
|
727
746
|
}
|
|
728
|
-
|
|
747
|
+
let urlPath = path;
|
|
748
|
+
let url;
|
|
749
|
+
if (mode === "hash") {
|
|
750
|
+
url = "#" + path;
|
|
751
|
+
} else {
|
|
752
|
+
const hasBaseSlash = base.endsWith("/");
|
|
753
|
+
const hasPathSlash = path.startsWith("/");
|
|
754
|
+
if (hasBaseSlash && hasPathSlash) {
|
|
755
|
+
urlPath = path.slice(1);
|
|
756
|
+
} else if (!hasBaseSlash && !hasPathSlash && path !== "/") {
|
|
757
|
+
urlPath = "/" + path;
|
|
758
|
+
}
|
|
759
|
+
url = base + urlPath;
|
|
760
|
+
}
|
|
729
761
|
if (replace) {
|
|
730
762
|
window.history.replaceState({ path }, "", url);
|
|
731
763
|
} else {
|
|
@@ -747,6 +779,7 @@ function createRouter(options) {
|
|
|
747
779
|
}
|
|
748
780
|
return {
|
|
749
781
|
currentRoute,
|
|
782
|
+
mode,
|
|
750
783
|
navigate,
|
|
751
784
|
push: (path) => navigate(path, false),
|
|
752
785
|
replace: (path) => navigate(path, true),
|
|
@@ -782,11 +815,12 @@ function createRouterView(router, options) {
|
|
|
782
815
|
};
|
|
783
816
|
}
|
|
784
817
|
var routerLink = (router, props, ...children) => {
|
|
818
|
+
const href = router.mode === "hash" ? `#${props.to}` : props.to;
|
|
785
819
|
return {
|
|
786
820
|
tagName: "a",
|
|
787
821
|
props: {
|
|
788
822
|
...props,
|
|
789
|
-
href
|
|
823
|
+
href,
|
|
790
824
|
onclick: (e) => {
|
|
791
825
|
e.preventDefault();
|
|
792
826
|
router.push(props.to);
|
|
@@ -11,7 +11,7 @@ interface VNode {
|
|
|
11
11
|
props: Props;
|
|
12
12
|
children: Children;
|
|
13
13
|
}
|
|
14
|
-
type Child = VNode | string | number | boolean | null | undefined;
|
|
14
|
+
type Child = VNode | string | number | boolean | null | undefined | Child[];
|
|
15
15
|
type Children = Child[];
|
|
16
16
|
interface Props {
|
|
17
17
|
[key: string]: any;
|
|
@@ -11,7 +11,7 @@ interface VNode {
|
|
|
11
11
|
props: Props;
|
|
12
12
|
children: Children;
|
|
13
13
|
}
|
|
14
|
-
type Child = VNode | string | number | boolean | null | undefined;
|
|
14
|
+
type Child = VNode | string | number | boolean | null | undefined | Child[];
|
|
15
15
|
type Children = Child[];
|
|
16
16
|
interface Props {
|
|
17
17
|
[key: string]: any;
|
package/dist/server.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import './http.mjs';
|
|
2
2
|
import './ws.mjs';
|
|
3
|
-
export { E as ElitRequest, b as ElitResponse, H as HttpMethod, M as Middleware, S as ServerRouteContext, c as ServerRouteHandler, d as ServerRouter, u as SharedState, q as SharedStateOptions, p as StateChangeHandler, v as StateManager, i as bodyLimit, k as cacheControl, e as clearImportMapCache, m as compress, f as cors, w as createDevServer, o as createProxyHandler, g as errorHandler, h as html, j as json, l as logger, r as rateLimit, n as security, s as status, t as text } from './server-
|
|
3
|
+
export { E as ElitRequest, b as ElitResponse, H as HttpMethod, M as Middleware, S as ServerRouteContext, c as ServerRouteHandler, d as ServerRouter, u as SharedState, q as SharedStateOptions, p as StateChangeHandler, v as StateManager, i as bodyLimit, k as cacheControl, e as clearImportMapCache, m as compress, f as cors, w as createDevServer, o as createProxyHandler, g as errorHandler, h as html, j as json, l as logger, r as rateLimit, n as security, s as status, t as text } from './server-Cz3z-5ls.mjs';
|
|
4
4
|
import 'node:events';
|
|
5
5
|
import 'events';
|
|
6
6
|
import 'http';
|
package/dist/server.js
CHANGED
|
@@ -2070,7 +2070,26 @@ var DomNode = class {
|
|
|
2070
2070
|
parent.appendChild(document.createTextNode(String(vNode)));
|
|
2071
2071
|
return;
|
|
2072
2072
|
}
|
|
2073
|
+
if (Array.isArray(vNode)) {
|
|
2074
|
+
for (const child of vNode) {
|
|
2075
|
+
this.renderToDOM(child, parent);
|
|
2076
|
+
}
|
|
2077
|
+
return;
|
|
2078
|
+
}
|
|
2073
2079
|
const { tagName, props, children } = vNode;
|
|
2080
|
+
if (!tagName) {
|
|
2081
|
+
for (const child of children) {
|
|
2082
|
+
if (shouldSkipChild(child)) continue;
|
|
2083
|
+
if (Array.isArray(child)) {
|
|
2084
|
+
for (const c of child) {
|
|
2085
|
+
!shouldSkipChild(c) && this.renderToDOM(c, parent);
|
|
2086
|
+
}
|
|
2087
|
+
} else {
|
|
2088
|
+
this.renderToDOM(child, parent);
|
|
2089
|
+
}
|
|
2090
|
+
}
|
|
2091
|
+
return;
|
|
2092
|
+
}
|
|
2074
2093
|
const isSVG = tagName === "svg" || tagName[0] === "s" && tagName[1] === "v" && tagName[2] === "g" || parent.namespaceURI === "http://www.w3.org/2000/svg";
|
|
2075
2094
|
const el = isSVG ? document.createElementNS("http://www.w3.org/2000/svg", tagName.replace("svg", "").toLowerCase() || tagName) : document.createElement(tagName);
|
|
2076
2095
|
for (const key in props) {
|
package/dist/server.mjs
CHANGED
|
@@ -2044,7 +2044,26 @@ var DomNode = class {
|
|
|
2044
2044
|
parent.appendChild(document.createTextNode(String(vNode)));
|
|
2045
2045
|
return;
|
|
2046
2046
|
}
|
|
2047
|
+
if (Array.isArray(vNode)) {
|
|
2048
|
+
for (const child of vNode) {
|
|
2049
|
+
this.renderToDOM(child, parent);
|
|
2050
|
+
}
|
|
2051
|
+
return;
|
|
2052
|
+
}
|
|
2047
2053
|
const { tagName, props, children } = vNode;
|
|
2054
|
+
if (!tagName) {
|
|
2055
|
+
for (const child of children) {
|
|
2056
|
+
if (shouldSkipChild(child)) continue;
|
|
2057
|
+
if (Array.isArray(child)) {
|
|
2058
|
+
for (const c of child) {
|
|
2059
|
+
!shouldSkipChild(c) && this.renderToDOM(c, parent);
|
|
2060
|
+
}
|
|
2061
|
+
} else {
|
|
2062
|
+
this.renderToDOM(child, parent);
|
|
2063
|
+
}
|
|
2064
|
+
}
|
|
2065
|
+
return;
|
|
2066
|
+
}
|
|
2048
2067
|
const isSVG = tagName === "svg" || tagName[0] === "s" && tagName[1] === "v" && tagName[2] === "g" || parent.namespaceURI === "http://www.w3.org/2000/svg";
|
|
2049
2068
|
const el = isSVG ? document.createElementNS("http://www.w3.org/2000/svg", tagName.replace("svg", "").toLowerCase() || tagName) : document.createElement(tagName);
|
|
2050
2069
|
for (const key in props) {
|
package/dist/state.d.mts
CHANGED
|
@@ -102,8 +102,8 @@ declare class SharedStateManager {
|
|
|
102
102
|
clear(): void;
|
|
103
103
|
}
|
|
104
104
|
declare const sharedStateManager: SharedStateManager;
|
|
105
|
-
declare const reactive: <T>(state: State<T>, renderFn: (value: T) => VNode | Child) => VNode;
|
|
106
|
-
declare const reactiveAs: <T>(tagName: string, state: State<T>, renderFn: (value: T) => VNode | Child, props?: Props) => VNode;
|
|
105
|
+
declare const reactive: <T>(state: State<T>, renderFn: (value: T) => VNode | Child | Child[]) => VNode;
|
|
106
|
+
declare const reactiveAs: <T>(tagName: string, state: State<T>, renderFn: (value: T) => VNode | Child | Child[], props?: Props) => VNode;
|
|
107
107
|
declare const text: (state: State<any> | any) => VNode | string;
|
|
108
108
|
declare const bindValue: <T extends string | number>(state: State<T>) => Props;
|
|
109
109
|
declare const bindChecked: (state: State<boolean>) => Props;
|
package/dist/state.d.ts
CHANGED
|
@@ -96,8 +96,8 @@ declare class SharedStateManager {
|
|
|
96
96
|
clear(): void;
|
|
97
97
|
}
|
|
98
98
|
export declare const sharedStateManager: SharedStateManager;
|
|
99
|
-
export declare const reactive: <T>(state: State<T>, renderFn: (value: T) => VNode | Child) => VNode;
|
|
100
|
-
export declare const reactiveAs: <T>(tagName: string, state: State<T>, renderFn: (value: T) => VNode | Child, props?: Props) => VNode;
|
|
99
|
+
export declare const reactive: <T>(state: State<T>, renderFn: (value: T) => VNode | Child | Child[]) => VNode;
|
|
100
|
+
export declare const reactiveAs: <T>(tagName: string, state: State<T>, renderFn: (value: T) => VNode | Child | Child[], props?: Props) => VNode;
|
|
101
101
|
export declare const text: (state: State<any> | any) => VNode | string;
|
|
102
102
|
export declare const bindValue: <T extends string | number>(state: State<T>) => Props;
|
|
103
103
|
export declare const bindChecked: (state: State<boolean>) => Props;
|
package/dist/state.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
|
package/dist/state.js
CHANGED
|
@@ -71,7 +71,26 @@ var DomNode = class {
|
|
|
71
71
|
parent.appendChild(document.createTextNode(String(vNode)));
|
|
72
72
|
return;
|
|
73
73
|
}
|
|
74
|
+
if (Array.isArray(vNode)) {
|
|
75
|
+
for (const child of vNode) {
|
|
76
|
+
this.renderToDOM(child, parent);
|
|
77
|
+
}
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
74
80
|
const { tagName, props, children } = vNode;
|
|
81
|
+
if (!tagName) {
|
|
82
|
+
for (const child of children) {
|
|
83
|
+
if (shouldSkipChild(child)) continue;
|
|
84
|
+
if (Array.isArray(child)) {
|
|
85
|
+
for (const c of child) {
|
|
86
|
+
!shouldSkipChild(c) && this.renderToDOM(c, parent);
|
|
87
|
+
}
|
|
88
|
+
} else {
|
|
89
|
+
this.renderToDOM(child, parent);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
75
94
|
const isSVG = tagName === "svg" || tagName[0] === "s" && tagName[1] === "v" && tagName[2] === "g" || parent.namespaceURI === "http://www.w3.org/2000/svg";
|
|
76
95
|
const el = isSVG ? document.createElementNS("http://www.w3.org/2000/svg", tagName.replace("svg", "").toLowerCase() || tagName) : document.createElement(tagName);
|
|
77
96
|
for (const key in props) {
|
|
@@ -885,7 +904,11 @@ var scheduleRAFUpdate = (rafId, updateFn) => {
|
|
|
885
904
|
};
|
|
886
905
|
var renderToFragment = (content, isVNode) => {
|
|
887
906
|
const fragment = document.createDocumentFragment();
|
|
888
|
-
if (
|
|
907
|
+
if (Array.isArray(content)) {
|
|
908
|
+
for (const child of content) {
|
|
909
|
+
dom.renderToDOM(child, fragment);
|
|
910
|
+
}
|
|
911
|
+
} else if (isVNode && content && typeof content === "object" && "tagName" in content) {
|
|
889
912
|
const { children } = content;
|
|
890
913
|
for (const child of children) {
|
|
891
914
|
dom.renderToDOM(child, fragment);
|
|
@@ -972,7 +995,8 @@ var reactive = (state, renderFn) => {
|
|
|
972
995
|
children: vnode.children
|
|
973
996
|
};
|
|
974
997
|
}
|
|
975
|
-
|
|
998
|
+
const initialChildren = Array.isArray(initialResult) ? initialResult : [initialResult];
|
|
999
|
+
return { tagName: "span", props: { ref: refCallback, style: { display: "contents" } }, children: initialChildren };
|
|
976
1000
|
};
|
|
977
1001
|
var reactiveAs = (tagName, state, renderFn, props = {}) => {
|
|
978
1002
|
let rafId = null;
|
|
@@ -998,7 +1022,9 @@ var reactiveAs = (tagName, state, renderFn, props = {}) => {
|
|
|
998
1022
|
const refCallback = (el) => {
|
|
999
1023
|
elementRef = el;
|
|
1000
1024
|
};
|
|
1001
|
-
|
|
1025
|
+
const initialResult = renderFn(state.value);
|
|
1026
|
+
const initialChildren = Array.isArray(initialResult) ? initialResult : [initialResult];
|
|
1027
|
+
return { tagName, props: { ...props, ref: refCallback }, children: initialChildren };
|
|
1002
1028
|
};
|
|
1003
1029
|
var text = (state) => state && state.value !== void 0 ? reactive(state, (v) => ({ tagName: "span", props: {}, children: [String(v)] })) : String(state);
|
|
1004
1030
|
var bindValue = (state) => ({
|
package/dist/state.mjs
CHANGED
|
@@ -28,7 +28,26 @@ var DomNode = class {
|
|
|
28
28
|
parent.appendChild(document.createTextNode(String(vNode)));
|
|
29
29
|
return;
|
|
30
30
|
}
|
|
31
|
+
if (Array.isArray(vNode)) {
|
|
32
|
+
for (const child of vNode) {
|
|
33
|
+
this.renderToDOM(child, parent);
|
|
34
|
+
}
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
31
37
|
const { tagName, props, children } = vNode;
|
|
38
|
+
if (!tagName) {
|
|
39
|
+
for (const child of children) {
|
|
40
|
+
if (shouldSkipChild(child)) continue;
|
|
41
|
+
if (Array.isArray(child)) {
|
|
42
|
+
for (const c of child) {
|
|
43
|
+
!shouldSkipChild(c) && this.renderToDOM(c, parent);
|
|
44
|
+
}
|
|
45
|
+
} else {
|
|
46
|
+
this.renderToDOM(child, parent);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
32
51
|
const isSVG = tagName === "svg" || tagName[0] === "s" && tagName[1] === "v" && tagName[2] === "g" || parent.namespaceURI === "http://www.w3.org/2000/svg";
|
|
33
52
|
const el = isSVG ? document.createElementNS("http://www.w3.org/2000/svg", tagName.replace("svg", "").toLowerCase() || tagName) : document.createElement(tagName);
|
|
34
53
|
for (const key in props) {
|
|
@@ -842,7 +861,11 @@ var scheduleRAFUpdate = (rafId, updateFn) => {
|
|
|
842
861
|
};
|
|
843
862
|
var renderToFragment = (content, isVNode) => {
|
|
844
863
|
const fragment = document.createDocumentFragment();
|
|
845
|
-
if (
|
|
864
|
+
if (Array.isArray(content)) {
|
|
865
|
+
for (const child of content) {
|
|
866
|
+
dom.renderToDOM(child, fragment);
|
|
867
|
+
}
|
|
868
|
+
} else if (isVNode && content && typeof content === "object" && "tagName" in content) {
|
|
846
869
|
const { children } = content;
|
|
847
870
|
for (const child of children) {
|
|
848
871
|
dom.renderToDOM(child, fragment);
|
|
@@ -929,7 +952,8 @@ var reactive = (state, renderFn) => {
|
|
|
929
952
|
children: vnode.children
|
|
930
953
|
};
|
|
931
954
|
}
|
|
932
|
-
|
|
955
|
+
const initialChildren = Array.isArray(initialResult) ? initialResult : [initialResult];
|
|
956
|
+
return { tagName: "span", props: { ref: refCallback, style: { display: "contents" } }, children: initialChildren };
|
|
933
957
|
};
|
|
934
958
|
var reactiveAs = (tagName, state, renderFn, props = {}) => {
|
|
935
959
|
let rafId = null;
|
|
@@ -955,7 +979,9 @@ var reactiveAs = (tagName, state, renderFn, props = {}) => {
|
|
|
955
979
|
const refCallback = (el) => {
|
|
956
980
|
elementRef = el;
|
|
957
981
|
};
|
|
958
|
-
|
|
982
|
+
const initialResult = renderFn(state.value);
|
|
983
|
+
const initialChildren = Array.isArray(initialResult) ? initialResult : [initialResult];
|
|
984
|
+
return { tagName, props: { ...props, ref: refCallback }, children: initialChildren };
|
|
959
985
|
};
|
|
960
986
|
var text = (state) => state && state.value !== void 0 ? reactive(state, (v) => ({ tagName: "span", props: {}, children: [String(v)] })) : String(state);
|
|
961
987
|
var bindValue = (state) => ({
|
package/dist/types.d.mts
CHANGED
|
@@ -235,7 +235,7 @@ interface VNode {
|
|
|
235
235
|
props: Props;
|
|
236
236
|
children: Children;
|
|
237
237
|
}
|
|
238
|
-
type Child = VNode | string | number | boolean | null | undefined;
|
|
238
|
+
type Child = VNode | string | number | boolean | null | undefined | Child[];
|
|
239
239
|
type Children = Child[];
|
|
240
240
|
interface Props {
|
|
241
241
|
[key: string]: any;
|
package/dist/types.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export interface VNode {
|
|
|
6
6
|
props: Props;
|
|
7
7
|
children: Children;
|
|
8
8
|
}
|
|
9
|
-
export type Child = VNode | string | number | boolean | null | undefined;
|
|
9
|
+
export type Child = VNode | string | number | boolean | null | undefined | Child[];
|
|
10
10
|
export type Children = Child[];
|
|
11
11
|
export interface Props {
|
|
12
12
|
[key: string]: any;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,KAAK;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;CACtB;AAED,MAAM,MAAM,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/dom.ts
CHANGED
|
@@ -47,12 +47,42 @@ export class DomNode {
|
|
|
47
47
|
renderToDOM(vNode: Child, parent: HTMLElement | SVGElement | DocumentFragment): void {
|
|
48
48
|
if (vNode == null || vNode === false) return;
|
|
49
49
|
|
|
50
|
+
// Handle primitive values (strings, numbers)
|
|
50
51
|
if (typeof vNode !== 'object') {
|
|
51
52
|
parent.appendChild(document.createTextNode(String(vNode)));
|
|
52
53
|
return;
|
|
53
54
|
}
|
|
54
55
|
|
|
56
|
+
// Handle arrays (Child[])
|
|
57
|
+
if (Array.isArray(vNode)) {
|
|
58
|
+
for (const child of vNode) {
|
|
59
|
+
this.renderToDOM(child, parent);
|
|
60
|
+
}
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// Handle VNode
|
|
55
65
|
const { tagName, props, children } = vNode;
|
|
66
|
+
|
|
67
|
+
// Handle fragment (empty tagName) - render children directly to parent
|
|
68
|
+
if (!tagName) {
|
|
69
|
+
// Fragments don't have their own element, so skip ref handling
|
|
70
|
+
// The ref will be handled by the wrapper element created by reactive()
|
|
71
|
+
// Render children directly to parent
|
|
72
|
+
for (const child of children) {
|
|
73
|
+
if (shouldSkipChild(child)) continue;
|
|
74
|
+
|
|
75
|
+
if (Array.isArray(child)) {
|
|
76
|
+
for (const c of child) {
|
|
77
|
+
!shouldSkipChild(c) && this.renderToDOM(c, parent);
|
|
78
|
+
}
|
|
79
|
+
} else {
|
|
80
|
+
this.renderToDOM(child, parent);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
|
|
56
86
|
const isSVG = tagName === 'svg' || (tagName[0] === 's' && tagName[1] === 'v' && tagName[2] === 'g') ||
|
|
57
87
|
(parent as any).namespaceURI === 'http://www.w3.org/2000/svg';
|
|
58
88
|
|
package/src/el.ts
CHANGED
|
@@ -147,6 +147,25 @@ export const {
|
|
|
147
147
|
export const el = elements;
|
|
148
148
|
// Export elements object for dynamic access
|
|
149
149
|
export { elements };
|
|
150
|
+
// Fragment element factory - groups children without a wrapper element
|
|
151
|
+
// Similar to React's Fragment: <><div>1</div><div>2</div></>
|
|
152
|
+
export const frag: ElementFactory = function(...children: Child[]): VNode {
|
|
153
|
+
const flatChildren: Child[] = [];
|
|
154
|
+
for (let i = 0, len = children.length; i < len; i++) {
|
|
155
|
+
const child = children[i];
|
|
156
|
+
if (child == null || child === false) continue;
|
|
157
|
+
|
|
158
|
+
if (Array.isArray(child)) {
|
|
159
|
+
for (let j = 0, cLen = child.length; j < cLen; j++) {
|
|
160
|
+
const c = child[j];
|
|
161
|
+
c != null && c !== false && flatChildren.push(c);
|
|
162
|
+
}
|
|
163
|
+
} else {
|
|
164
|
+
flatChildren.push(child);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
return { tagName: '', props: {}, children: flatChildren };
|
|
168
|
+
} as ElementFactory;
|
|
150
169
|
|
|
151
170
|
// DOM utility functions - Shorthand helpers for common document operations
|
|
152
171
|
export const doc = hasDocument ? document : undefined as any;
|
package/src/router.ts
CHANGED
|
@@ -31,6 +31,7 @@ export interface RouterOptions {
|
|
|
31
31
|
|
|
32
32
|
export interface Router {
|
|
33
33
|
currentRoute: State<RouteLocation>;
|
|
34
|
+
mode: 'history' | 'hash';
|
|
34
35
|
navigate: (path: string, replace?: boolean) => void;
|
|
35
36
|
push: (path: string) => void;
|
|
36
37
|
replace: (path: string) => void;
|
|
@@ -157,7 +158,23 @@ export function createRouter(options: RouterOptions): Router {
|
|
|
157
158
|
if (!executeGuard(match.route.beforeEnter, location, currentRoute.value, navigate, replace)) return;
|
|
158
159
|
}
|
|
159
160
|
|
|
160
|
-
|
|
161
|
+
// Remove leading slash from path if base has trailing slash, or add slash if needed
|
|
162
|
+
let urlPath = path;
|
|
163
|
+
let url: string;
|
|
164
|
+
if (mode === 'hash') {
|
|
165
|
+
url = '#' + path;
|
|
166
|
+
} else {
|
|
167
|
+
// Ensure proper path joining
|
|
168
|
+
const hasBaseSlash = base.endsWith('/');
|
|
169
|
+
const hasPathSlash = path.startsWith('/');
|
|
170
|
+
if (hasBaseSlash && hasPathSlash) {
|
|
171
|
+
urlPath = path.slice(1); // Remove duplicate slash
|
|
172
|
+
} else if (!hasBaseSlash && !hasPathSlash && path !== '/') {
|
|
173
|
+
urlPath = '/' + path; // Add slash between
|
|
174
|
+
}
|
|
175
|
+
url = base + urlPath;
|
|
176
|
+
}
|
|
177
|
+
|
|
161
178
|
if (replace) {
|
|
162
179
|
window.history.replaceState({ path }, '', url);
|
|
163
180
|
} else {
|
|
@@ -183,6 +200,7 @@ export function createRouter(options: RouterOptions): Router {
|
|
|
183
200
|
|
|
184
201
|
return {
|
|
185
202
|
currentRoute,
|
|
203
|
+
mode,
|
|
186
204
|
navigate,
|
|
187
205
|
push: (path: string) => navigate(path, false),
|
|
188
206
|
replace: (path: string) => navigate(path, true),
|
|
@@ -224,11 +242,14 @@ export function createRouterView(router: Router, options: RouterOptions): () =>
|
|
|
224
242
|
|
|
225
243
|
// Link component - prevents default and uses router
|
|
226
244
|
export const routerLink = (router: Router, props: Props & { to: string }, ...children: Child[]): VNode => {
|
|
245
|
+
// Use router.mode to determine href format
|
|
246
|
+
const href = router.mode === 'hash' ? `#${props.to}` : props.to;
|
|
247
|
+
|
|
227
248
|
return {
|
|
228
249
|
tagName: 'a',
|
|
229
250
|
props: {
|
|
230
251
|
...props,
|
|
231
|
-
href
|
|
252
|
+
href,
|
|
232
253
|
onclick: (e: MouseEvent) => {
|
|
233
254
|
e.preventDefault();
|
|
234
255
|
router.push(props.to);
|
package/src/state.ts
CHANGED
|
@@ -307,10 +307,15 @@ const scheduleRAFUpdate = (rafId: number | null, updateFn: () => void): number =
|
|
|
307
307
|
};
|
|
308
308
|
|
|
309
309
|
// Helper function to render content to fragment (reused in reactive and reactiveAs)
|
|
310
|
-
const renderToFragment = (content: VNode | Child, isVNode?: boolean): DocumentFragment => {
|
|
310
|
+
const renderToFragment = (content: VNode | Child | Child[], isVNode?: boolean): DocumentFragment => {
|
|
311
311
|
const fragment = document.createDocumentFragment();
|
|
312
312
|
|
|
313
|
-
if (
|
|
313
|
+
if (Array.isArray(content)) {
|
|
314
|
+
// Handle array of children
|
|
315
|
+
for (const child of content) {
|
|
316
|
+
dom.renderToDOM(child, fragment);
|
|
317
|
+
}
|
|
318
|
+
} else if (isVNode && content && typeof content === 'object' && 'tagName' in content) {
|
|
314
319
|
const { children } = content as VNode;
|
|
315
320
|
for (const child of children) {
|
|
316
321
|
dom.renderToDOM(child, fragment);
|
|
@@ -344,7 +349,7 @@ const updateElementProps = (element: HTMLElement | SVGElement, props: Props): vo
|
|
|
344
349
|
};
|
|
345
350
|
|
|
346
351
|
// Reactive element helpers
|
|
347
|
-
export const reactive = <T>(state: State<T>, renderFn: (value: T) => VNode | Child): VNode => {
|
|
352
|
+
export const reactive = <T>(state: State<T>, renderFn: (value: T) => VNode | Child | Child[]): VNode => {
|
|
348
353
|
let rafId: number | null = null;
|
|
349
354
|
let elementRef: HTMLElement | SVGElement | null = null;
|
|
350
355
|
let placeholder: Comment | null = null;
|
|
@@ -379,7 +384,7 @@ export const reactive = <T>(state: State<T>, renderFn: (value: T) => VNode | Chi
|
|
|
379
384
|
const { props } = newResult as VNode;
|
|
380
385
|
updateElementProps(elementRef, props);
|
|
381
386
|
}
|
|
382
|
-
const fragment = renderToFragment(newResult, isCurrentVNode);
|
|
387
|
+
const fragment = renderToFragment(newResult as any, isCurrentVNode);
|
|
383
388
|
elementRef.textContent = '';
|
|
384
389
|
elementRef.appendChild(fragment);
|
|
385
390
|
dom.getElementCache().set(elementRef, true);
|
|
@@ -412,14 +417,18 @@ export const reactive = <T>(state: State<T>, renderFn: (value: T) => VNode | Chi
|
|
|
412
417
|
};
|
|
413
418
|
}
|
|
414
419
|
|
|
415
|
-
|
|
420
|
+
// Handle array result - wrap in fragment-like VNode
|
|
421
|
+
const initialChildren = Array.isArray(initialResult) ? initialResult : [initialResult];
|
|
422
|
+
|
|
423
|
+
// Use span with display: contents as wrapper (doesn't affect layout)
|
|
424
|
+
return { tagName: 'span', props: { ref: refCallback, style: { display: 'contents' } }, children: initialChildren };
|
|
416
425
|
};
|
|
417
426
|
|
|
418
427
|
// Reactive element with custom wrapper tag
|
|
419
428
|
export const reactiveAs = <T>(
|
|
420
429
|
tagName: string,
|
|
421
430
|
state: State<T>,
|
|
422
|
-
renderFn: (value: T) => VNode | Child,
|
|
431
|
+
renderFn: (value: T) => VNode | Child | Child[],
|
|
423
432
|
props: Props = {}
|
|
424
433
|
): VNode => {
|
|
425
434
|
let rafId: number | null = null;
|
|
@@ -435,7 +444,7 @@ export const reactiveAs = <T>(
|
|
|
435
444
|
elementRef.textContent = '';
|
|
436
445
|
} else {
|
|
437
446
|
(elementRef as HTMLElement).style.display = '';
|
|
438
|
-
const fragment = renderToFragment(newResult, false);
|
|
447
|
+
const fragment = renderToFragment(newResult as any, false);
|
|
439
448
|
elementRef.textContent = '';
|
|
440
449
|
elementRef.appendChild(fragment);
|
|
441
450
|
}
|
|
@@ -449,7 +458,10 @@ export const reactiveAs = <T>(
|
|
|
449
458
|
elementRef = el;
|
|
450
459
|
};
|
|
451
460
|
|
|
452
|
-
|
|
461
|
+
const initialResult = renderFn(state.value);
|
|
462
|
+
const initialChildren = Array.isArray(initialResult) ? initialResult : [initialResult];
|
|
463
|
+
|
|
464
|
+
return { tagName, props: { ...props, ref: refCallback }, children: initialChildren };
|
|
453
465
|
};
|
|
454
466
|
|
|
455
467
|
export const text = (state: State<any> | any): VNode | string =>
|
package/src/types.ts
CHANGED
|
@@ -8,7 +8,7 @@ export interface VNode {
|
|
|
8
8
|
children: Children;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
export type Child = VNode | string | number | boolean | null | undefined;
|
|
11
|
+
export type Child = VNode | string | number | boolean | null | undefined | Child[];
|
|
12
12
|
export type Children = Child[];
|
|
13
13
|
|
|
14
14
|
export interface Props {
|