elit 3.6.5 → 3.6.7

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.
Files changed (154) hide show
  1. package/Cargo.lock +1 -1
  2. package/Cargo.toml +1 -1
  3. package/README.md +6 -0
  4. package/dist/build.cjs +421 -331
  5. package/dist/build.d.ts +1 -16
  6. package/dist/build.js +420 -330
  7. package/dist/build.mjs +420 -330
  8. package/dist/chokidar.cjs +219 -182
  9. package/dist/chokidar.d.ts +25 -10
  10. package/dist/chokidar.js +217 -182
  11. package/dist/chokidar.mjs +218 -183
  12. package/dist/cli.cjs +21608 -20241
  13. package/dist/cli.d.ts +19 -37
  14. package/dist/cli.mjs +21262 -19910
  15. package/dist/config.cjs +357 -350
  16. package/dist/config.d.ts +19 -240
  17. package/dist/config.js +520 -515
  18. package/dist/config.mjs +346 -341
  19. package/dist/contracts-BeW9k0yZ.d.ts +54 -0
  20. package/dist/contracts-D7KIS-TK.d.ts +36 -0
  21. package/dist/coverage.cjs +448 -485
  22. package/dist/coverage.d.ts +13 -59
  23. package/dist/coverage.js +447 -484
  24. package/dist/coverage.mjs +447 -484
  25. package/dist/database.cjs +819 -828
  26. package/dist/database.d.ts +8 -24
  27. package/dist/database.js +818 -829
  28. package/dist/database.mjs +818 -829
  29. package/dist/desktop-auto-render.cjs +1700 -1522
  30. package/dist/desktop-auto-render.d.ts +4 -9
  31. package/dist/desktop-auto-render.js +1695 -1517
  32. package/dist/desktop-auto-render.mjs +1696 -1518
  33. package/dist/desktop.cjs +3 -1
  34. package/dist/desktop.d.ts +4 -1
  35. package/dist/desktop.js +1 -1
  36. package/dist/desktop.mjs +1 -1
  37. package/dist/dev-build.cjs +830 -0
  38. package/dist/dev-build.d.ts +53 -0
  39. package/dist/dev-build.js +3318 -0
  40. package/dist/dev-build.mjs +797 -0
  41. package/dist/dom.cjs +717 -590
  42. package/dist/dom.d.ts +2 -15
  43. package/dist/dom.js +714 -587
  44. package/dist/dom.mjs +716 -589
  45. package/dist/el.cjs +62 -52
  46. package/dist/el.d.ts +5 -10
  47. package/dist/el.js +60 -52
  48. package/dist/el.mjs +60 -52
  49. package/dist/fs.cjs +72 -63
  50. package/dist/fs.d.ts +22 -19
  51. package/dist/fs.js +71 -62
  52. package/dist/fs.mjs +71 -62
  53. package/dist/hmr.cjs +40 -14
  54. package/dist/hmr.d.ts +11 -23
  55. package/dist/hmr.js +38 -14
  56. package/dist/hmr.mjs +38 -14
  57. package/dist/http.cjs +251 -99
  58. package/dist/http.d.ts +38 -104
  59. package/dist/http.js +249 -99
  60. package/dist/http.mjs +249 -99
  61. package/dist/https.cjs +524 -228
  62. package/dist/https.d.ts +44 -36
  63. package/dist/https.js +520 -226
  64. package/dist/https.mjs +522 -228
  65. package/dist/index.cjs +7502 -7690
  66. package/dist/index.d.ts +8 -3
  67. package/dist/index.js +7486 -7676
  68. package/dist/index.mjs +7497 -7686
  69. package/dist/mime-types.cjs +10 -4
  70. package/dist/mime-types.d.ts +8 -11
  71. package/dist/mime-types.js +9 -3
  72. package/dist/mime-types.mjs +9 -3
  73. package/dist/native.cjs +8616 -8869
  74. package/dist/native.d.ts +7 -8
  75. package/dist/native.js +8682 -8935
  76. package/dist/native.mjs +8615 -8868
  77. package/dist/path.cjs +83 -77
  78. package/dist/path.d.ts +29 -29
  79. package/dist/path.js +82 -76
  80. package/dist/path.mjs +82 -76
  81. package/dist/pm.cjs +3300 -0
  82. package/dist/pm.d.ts +256 -0
  83. package/dist/pm.js +5638 -0
  84. package/dist/pm.mjs +3196 -0
  85. package/dist/preview-build.cjs +712 -0
  86. package/dist/preview-build.d.ts +59 -0
  87. package/dist/preview-build.js +3194 -0
  88. package/dist/preview-build.mjs +676 -0
  89. package/dist/render-context.cjs +13 -2
  90. package/dist/render-context.d.ts +9 -31
  91. package/dist/render-context.js +11 -2
  92. package/dist/render-context.mjs +11 -2
  93. package/dist/router.cjs +787 -645
  94. package/dist/router.d.ts +8 -12
  95. package/dist/router.js +786 -644
  96. package/dist/router.mjs +786 -644
  97. package/dist/runtime.cjs +1 -1
  98. package/dist/runtime.js +1 -1
  99. package/dist/runtime.mjs +1 -1
  100. package/dist/server.cjs +3315 -2603
  101. package/dist/server.d.ts +49 -4
  102. package/dist/server.js +7611 -2834
  103. package/dist/server.mjs +3317 -2607
  104. package/dist/smtp-server.cjs +128 -0
  105. package/dist/smtp-server.d.ts +27 -0
  106. package/dist/smtp-server.js +4199 -0
  107. package/dist/smtp-server.mjs +100 -0
  108. package/dist/state-DvEkDehk.d.ts +195 -0
  109. package/dist/state.cjs +768 -658
  110. package/dist/state.d.ts +11 -69
  111. package/dist/state.js +760 -650
  112. package/dist/state.mjs +767 -657
  113. package/dist/style.cjs +1011 -968
  114. package/dist/style.d.ts +13 -127
  115. package/dist/style.js +1009 -970
  116. package/dist/style.mjs +1011 -971
  117. package/dist/test-reporter.cjs +332 -316
  118. package/dist/test-reporter.d.ts +28 -33
  119. package/dist/test-reporter.js +328 -312
  120. package/dist/test-reporter.mjs +328 -312
  121. package/dist/test-runtime.cjs +927 -968
  122. package/dist/test-runtime.d.ts +24 -99
  123. package/dist/test-runtime.js +922 -965
  124. package/dist/test-runtime.mjs +922 -965
  125. package/dist/test.cjs +4428 -4273
  126. package/dist/test.d.ts +2 -8
  127. package/dist/test.js +4307 -4154
  128. package/dist/test.mjs +4419 -4267
  129. package/dist/types-BONVzPtp.d.ts +59 -0
  130. package/dist/types-BR4wMiVx.d.ts +32 -0
  131. package/dist/types-C4gKykuG.d.ts +23 -0
  132. package/dist/types-CIhpN1-K.d.ts +64 -0
  133. package/dist/types-Ckj8md_j.d.ts +84 -0
  134. package/dist/types-CpjQTAkX.d.ts +24 -0
  135. package/dist/types-D0LjrYjS.d.ts +14 -0
  136. package/dist/types-DAisuVr5.d.ts +75 -0
  137. package/dist/types-tJn88E1N.d.ts +242 -0
  138. package/dist/types.d.ts +71 -226
  139. package/dist/universal.cjs +1 -1
  140. package/dist/universal.d.ts +1 -5
  141. package/dist/universal.js +1 -1
  142. package/dist/universal.mjs +1 -1
  143. package/dist/websocket-XfyK23zD.d.ts +119 -0
  144. package/dist/ws.cjs +129 -108
  145. package/dist/ws.d.ts +21 -131
  146. package/dist/ws.js +128 -109
  147. package/dist/ws.mjs +128 -109
  148. package/dist/wss.cjs +757 -479
  149. package/dist/wss.d.ts +31 -28
  150. package/dist/wss.js +755 -479
  151. package/dist/wss.mjs +758 -482
  152. package/package.json +16 -1
  153. package/vendor/epaint-0.31.1/src/image.rs +418 -0
  154. package/dist/server-CcBFc2F5.d.ts +0 -449
package/dist/el.cjs CHANGED
@@ -17,7 +17,7 @@ var __copyProps = (to, from, except, desc) => {
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
 
20
- // src/el.ts
20
+ // src/client/el/index.ts
21
21
  var el_exports = {};
22
22
  __export(el_exports, {
23
23
  a: () => a,
@@ -205,44 +205,60 @@ __export(el_exports, {
205
205
  wbr: () => wbr
206
206
  });
207
207
  module.exports = __toCommonJS(el_exports);
208
+
209
+ // src/client/el/helpers.ts
208
210
  var hasDocument = typeof document !== "undefined";
209
211
  function capitalize(str) {
210
212
  return str.charAt(0).toUpperCase() + str.slice(1);
211
213
  }
212
- function bindDocMethod(method) {
213
- return hasDocument && method ? method.bind(doc) : void 0;
214
+ function bindDocMethod(target, method) {
215
+ return target && method ? method.bind(target) : void 0;
214
216
  }
215
- function createPrefixedFactories(tags2, prefix, elements2) {
216
- tags2.forEach((tag) => {
217
- const name = prefix + capitalize(tag);
218
- elements2[name] = createElementFactory(tag);
219
- });
217
+ function isStateLike(value) {
218
+ return !!value && typeof value === "object" && "value" in value && "subscribe" in value;
219
+ }
220
+ function isVNodeLike(value) {
221
+ return !!value && typeof value === "object" && "tagName" in value;
220
222
  }
223
+ function flattenChildren(children) {
224
+ const flatChildren = [];
225
+ for (let i2 = 0, len = children.length; i2 < len; i2++) {
226
+ const child = children[i2];
227
+ if (child == null || child === false) continue;
228
+ if (Array.isArray(child)) {
229
+ for (let j = 0, childLen = child.length; j < childLen; j++) {
230
+ const nestedChild = child[j];
231
+ if (nestedChild != null && nestedChild !== false) {
232
+ flatChildren.push(nestedChild);
233
+ }
234
+ }
235
+ } else {
236
+ flatChildren.push(child);
237
+ }
238
+ }
239
+ return flatChildren;
240
+ }
241
+
242
+ // src/client/el/factory.ts
221
243
  var createElementFactory = (tag) => {
222
244
  return function(props, ...rest) {
223
- if (!arguments.length) return { tagName: tag, props: {}, children: [] };
224
- const isState = props && typeof props === "object" && "value" in props && "subscribe" in props;
225
- const isVNode = props && typeof props === "object" && "tagName" in props;
226
- const isChild = typeof props !== "object" || Array.isArray(props) || props === null || isState || isVNode;
245
+ if (!arguments.length) {
246
+ return { tagName: tag, props: {}, children: [] };
247
+ }
248
+ const isChild = typeof props !== "object" || Array.isArray(props) || props === null || isStateLike(props) || isVNodeLike(props);
227
249
  const actualProps = isChild ? {} : props;
228
250
  const args = isChild ? [props, ...rest] : rest;
229
- if (!args.length) return { tagName: tag, props: actualProps, children: [] };
230
- const flatChildren = [];
231
- for (let i2 = 0, len = args.length; i2 < len; i2++) {
232
- const child = args[i2];
233
- if (child == null || child === false) continue;
234
- if (Array.isArray(child)) {
235
- for (let j = 0, cLen = child.length; j < cLen; j++) {
236
- const c = child[j];
237
- c != null && c !== false && flatChildren.push(c);
238
- }
239
- } else {
240
- flatChildren.push(child);
241
- }
251
+ if (!args.length) {
252
+ return { tagName: tag, props: actualProps, children: [] };
242
253
  }
243
- return { tagName: tag, props: actualProps, children: flatChildren };
254
+ return { tagName: tag, props: actualProps, children: flattenChildren(args) };
244
255
  };
245
256
  };
257
+ var frag = function(...children) {
258
+ return { tagName: "", props: {}, children: flattenChildren(children) };
259
+ };
260
+
261
+ // src/client/el/tags.ts
246
262
  var tags = [
247
263
  "html",
248
264
  "head",
@@ -414,6 +430,14 @@ var mathTags = [
414
430
  "msub",
415
431
  "msup"
416
432
  ];
433
+
434
+ // src/client/el/registry.ts
435
+ function createPrefixedFactories(tagsToCreate, prefix, elements2) {
436
+ tagsToCreate.forEach((tag) => {
437
+ const name = prefix + capitalize(tag);
438
+ elements2[name] = createElementFactory(tag);
439
+ });
440
+ }
417
441
  var elements = {};
418
442
  tags.forEach((tag) => {
419
443
  elements[tag] = createElementFactory(tag);
@@ -590,35 +614,21 @@ var {
590
614
  varElement
591
615
  } = elements;
592
616
  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
- };
617
+
618
+ // src/client/el/dom-utils.ts
609
619
  var doc = hasDocument ? document : void 0;
610
- var getEl = bindDocMethod(doc?.querySelector);
611
- var getEls = bindDocMethod(doc?.querySelectorAll);
612
- var createEl = bindDocMethod(doc?.createElement);
620
+ var getEl = bindDocMethod(doc, doc?.querySelector);
621
+ var getEls = bindDocMethod(doc, doc?.querySelectorAll);
622
+ var createEl = bindDocMethod(doc, doc?.createElement);
613
623
  var createSvgEl = hasDocument ? doc.createElementNS.bind(doc, "http://www.w3.org/2000/svg") : void 0;
614
624
  var createMathEl = hasDocument ? doc.createElementNS.bind(doc, "http://www.w3.org/1998/Math/MathML") : void 0;
615
- var fragment = bindDocMethod(doc?.createDocumentFragment);
616
- var textNode = bindDocMethod(doc?.createTextNode);
617
- var commentNode = bindDocMethod(doc?.createComment);
618
- var getElId = bindDocMethod(doc?.getElementById);
619
- var getElClass = bindDocMethod(doc?.getElementsByClassName);
620
- var getElTag = bindDocMethod(doc?.getElementsByTagName);
621
- var getElName = bindDocMethod(doc?.getElementsByName);
625
+ var fragment = bindDocMethod(doc, doc?.createDocumentFragment);
626
+ var textNode = bindDocMethod(doc, doc?.createTextNode);
627
+ var commentNode = bindDocMethod(doc, doc?.createComment);
628
+ var getElId = bindDocMethod(doc, doc?.getElementById);
629
+ var getElClass = bindDocMethod(doc, doc?.getElementsByClassName);
630
+ var getElTag = bindDocMethod(doc, doc?.getElementsByTagName);
631
+ var getElName = bindDocMethod(doc, doc?.getElementsByName);
622
632
  // Annotate the CommonJS export names for ESM import in node:
623
633
  0 && (module.exports = {
624
634
  a,
package/dist/el.d.ts CHANGED
@@ -1,14 +1,9 @@
1
- import { ElementFactory } from './types.js';
2
- import 'node:events';
3
- import 'events';
4
- import 'http';
5
- import 'ws';
6
-
7
- /**
8
- * Elit - Element Factories
9
- */
1
+ import { E as ElementFactory } from './types-BONVzPtp.js';
2
+ import './types-D0LjrYjS.js';
10
3
 
11
4
  declare const createElementFactory: (tag: string) => ElementFactory;
5
+ declare const frag: ElementFactory;
6
+
12
7
  declare const tags: readonly ["html", "head", "body", "title", "base", "link", "meta", "style", "address", "article", "aside", "footer", "header", "h1", "h2", "h3", "h4", "h5", "h6", "main", "nav", "section", "blockquote", "dd", "div", "dl", "dt", "figcaption", "figure", "hr", "li", "ol", "p", "pre", "ul", "a", "abbr", "b", "bdi", "bdo", "br", "cite", "code", "data", "dfn", "em", "i", "kbd", "mark", "q", "rp", "rt", "ruby", "s", "samp", "small", "span", "strong", "sub", "sup", "time", "u", "wbr", "area", "audio", "img", "map", "track", "video", "embed", "iframe", "object", "param", "picture", "portal", "source", "canvas", "noscript", "script", "del", "ins", "caption", "col", "colgroup", "table", "tbody", "td", "tfoot", "th", "thead", "tr", "button", "datalist", "fieldset", "form", "input", "label", "legend", "meter", "optgroup", "option", "output", "progress", "select", "textarea", "details", "dialog", "menu", "summary", "slot", "template"];
13
8
  declare const svgTags: readonly ["svg", "circle", "rect", "path", "line", "polyline", "polygon", "ellipse", "g", "text", "tspan", "defs", "linearGradient", "radialGradient", "stop", "pattern", "mask", "clipPath", "use", "symbol", "marker", "image", "foreignObject", "animate", "animateTransform", "animateMotion", "set", "filter", "feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feFlood", "feGaussianBlur", "feMorphology", "feOffset", "feSpecularLighting", "feTile", "feTurbulence"];
14
9
  declare const mathTags: readonly ["math", "mi", "mn", "mo", "ms", "mtext", "mrow", "mfrac", "msqrt", "mroot", "msub", "msup"];
@@ -21,6 +16,7 @@ type Elements = {
21
16
  } & {
22
17
  varElement: ElementFactory;
23
18
  };
19
+
24
20
  declare const elements: Partial<Elements>;
25
21
  declare const html: ElementFactory;
26
22
  declare const head: ElementFactory;
@@ -190,7 +186,6 @@ declare const mathMsup: ElementFactory;
190
186
  declare const varElement: ElementFactory;
191
187
  declare const el: Partial<Elements>;
192
188
 
193
- declare const frag: ElementFactory;
194
189
  declare const doc: any;
195
190
  declare const getEl: any;
196
191
  declare const getEls: any;
package/dist/el.js CHANGED
@@ -1,44 +1,58 @@
1
1
  "use strict";
2
2
  (() => {
3
- // src/el.ts
3
+ // src/client/el/helpers.ts
4
4
  var hasDocument = typeof document !== "undefined";
5
5
  function capitalize(str) {
6
6
  return str.charAt(0).toUpperCase() + str.slice(1);
7
7
  }
8
- function bindDocMethod(method) {
9
- return hasDocument && method ? method.bind(doc) : void 0;
8
+ function bindDocMethod(target, method) {
9
+ return target && method ? method.bind(target) : void 0;
10
10
  }
11
- function createPrefixedFactories(tags2, prefix, elements2) {
12
- tags2.forEach((tag) => {
13
- const name = prefix + capitalize(tag);
14
- elements2[name] = createElementFactory(tag);
15
- });
11
+ function isStateLike(value) {
12
+ return !!value && typeof value === "object" && "value" in value && "subscribe" in value;
16
13
  }
14
+ function isVNodeLike(value) {
15
+ return !!value && typeof value === "object" && "tagName" in value;
16
+ }
17
+ function flattenChildren(children) {
18
+ const flatChildren = [];
19
+ for (let i2 = 0, len = children.length; i2 < len; i2++) {
20
+ const child = children[i2];
21
+ if (child == null || child === false) continue;
22
+ if (Array.isArray(child)) {
23
+ for (let j = 0, childLen = child.length; j < childLen; j++) {
24
+ const nestedChild = child[j];
25
+ if (nestedChild != null && nestedChild !== false) {
26
+ flatChildren.push(nestedChild);
27
+ }
28
+ }
29
+ } else {
30
+ flatChildren.push(child);
31
+ }
32
+ }
33
+ return flatChildren;
34
+ }
35
+
36
+ // src/client/el/factory.ts
17
37
  var createElementFactory = (tag) => {
18
38
  return function(props, ...rest) {
19
- if (!arguments.length) return { tagName: tag, props: {}, children: [] };
20
- const isState = props && typeof props === "object" && "value" in props && "subscribe" in props;
21
- const isVNode = props && typeof props === "object" && "tagName" in props;
22
- const isChild = typeof props !== "object" || Array.isArray(props) || props === null || isState || isVNode;
39
+ if (!arguments.length) {
40
+ return { tagName: tag, props: {}, children: [] };
41
+ }
42
+ const isChild = typeof props !== "object" || Array.isArray(props) || props === null || isStateLike(props) || isVNodeLike(props);
23
43
  const actualProps = isChild ? {} : props;
24
44
  const args = isChild ? [props, ...rest] : rest;
25
- if (!args.length) return { tagName: tag, props: actualProps, children: [] };
26
- const flatChildren = [];
27
- for (let i2 = 0, len = args.length; i2 < len; i2++) {
28
- const child = args[i2];
29
- if (child == null || child === false) continue;
30
- if (Array.isArray(child)) {
31
- for (let j = 0, cLen = child.length; j < cLen; j++) {
32
- const c = child[j];
33
- c != null && c !== false && flatChildren.push(c);
34
- }
35
- } else {
36
- flatChildren.push(child);
37
- }
45
+ if (!args.length) {
46
+ return { tagName: tag, props: actualProps, children: [] };
38
47
  }
39
- return { tagName: tag, props: actualProps, children: flatChildren };
48
+ return { tagName: tag, props: actualProps, children: flattenChildren(args) };
40
49
  };
41
50
  };
51
+ var frag = function(...children) {
52
+ return { tagName: "", props: {}, children: flattenChildren(children) };
53
+ };
54
+
55
+ // src/client/el/tags.ts
42
56
  var tags = [
43
57
  "html",
44
58
  "head",
@@ -210,6 +224,14 @@
210
224
  "msub",
211
225
  "msup"
212
226
  ];
227
+
228
+ // src/client/el/registry.ts
229
+ function createPrefixedFactories(tagsToCreate, prefix, elements2) {
230
+ tagsToCreate.forEach((tag) => {
231
+ const name = prefix + capitalize(tag);
232
+ elements2[name] = createElementFactory(tag);
233
+ });
234
+ }
213
235
  var elements = {};
214
236
  tags.forEach((tag) => {
215
237
  elements[tag] = createElementFactory(tag);
@@ -386,33 +408,19 @@
386
408
  varElement
387
409
  } = elements;
388
410
  var el = elements;
389
- var frag = function(...children) {
390
- const flatChildren = [];
391
- for (let i2 = 0, len = children.length; i2 < len; i2++) {
392
- const child = children[i2];
393
- if (child == null || child === false) continue;
394
- if (Array.isArray(child)) {
395
- for (let j = 0, cLen = child.length; j < cLen; j++) {
396
- const c = child[j];
397
- c != null && c !== false && flatChildren.push(c);
398
- }
399
- } else {
400
- flatChildren.push(child);
401
- }
402
- }
403
- return { tagName: "", props: {}, children: flatChildren };
404
- };
411
+
412
+ // src/client/el/dom-utils.ts
405
413
  var doc = hasDocument ? document : void 0;
406
- var getEl = bindDocMethod(doc?.querySelector);
407
- var getEls = bindDocMethod(doc?.querySelectorAll);
408
- var createEl = bindDocMethod(doc?.createElement);
414
+ var getEl = bindDocMethod(doc, doc?.querySelector);
415
+ var getEls = bindDocMethod(doc, doc?.querySelectorAll);
416
+ var createEl = bindDocMethod(doc, doc?.createElement);
409
417
  var createSvgEl = hasDocument ? doc.createElementNS.bind(doc, "http://www.w3.org/2000/svg") : void 0;
410
418
  var createMathEl = hasDocument ? doc.createElementNS.bind(doc, "http://www.w3.org/1998/Math/MathML") : void 0;
411
- var fragment = bindDocMethod(doc?.createDocumentFragment);
412
- var textNode = bindDocMethod(doc?.createTextNode);
413
- var commentNode = bindDocMethod(doc?.createComment);
414
- var getElId = bindDocMethod(doc?.getElementById);
415
- var getElClass = bindDocMethod(doc?.getElementsByClassName);
416
- var getElTag = bindDocMethod(doc?.getElementsByTagName);
417
- var getElName = bindDocMethod(doc?.getElementsByName);
419
+ var fragment = bindDocMethod(doc, doc?.createDocumentFragment);
420
+ var textNode = bindDocMethod(doc, doc?.createTextNode);
421
+ var commentNode = bindDocMethod(doc, doc?.createComment);
422
+ var getElId = bindDocMethod(doc, doc?.getElementById);
423
+ var getElClass = bindDocMethod(doc, doc?.getElementsByClassName);
424
+ var getElTag = bindDocMethod(doc, doc?.getElementsByTagName);
425
+ var getElName = bindDocMethod(doc, doc?.getElementsByName);
418
426
  })();
package/dist/el.mjs CHANGED
@@ -1,42 +1,56 @@
1
- // src/el.ts
1
+ // src/client/el/helpers.ts
2
2
  var hasDocument = typeof document !== "undefined";
3
3
  function capitalize(str) {
4
4
  return str.charAt(0).toUpperCase() + str.slice(1);
5
5
  }
6
- function bindDocMethod(method) {
7
- return hasDocument && method ? method.bind(doc) : void 0;
6
+ function bindDocMethod(target, method) {
7
+ return target && method ? method.bind(target) : void 0;
8
8
  }
9
- function createPrefixedFactories(tags2, prefix, elements2) {
10
- tags2.forEach((tag) => {
11
- const name = prefix + capitalize(tag);
12
- elements2[name] = createElementFactory(tag);
13
- });
9
+ function isStateLike(value) {
10
+ return !!value && typeof value === "object" && "value" in value && "subscribe" in value;
14
11
  }
12
+ function isVNodeLike(value) {
13
+ return !!value && typeof value === "object" && "tagName" in value;
14
+ }
15
+ function flattenChildren(children) {
16
+ const flatChildren = [];
17
+ for (let i2 = 0, len = children.length; i2 < len; i2++) {
18
+ const child = children[i2];
19
+ if (child == null || child === false) continue;
20
+ if (Array.isArray(child)) {
21
+ for (let j = 0, childLen = child.length; j < childLen; j++) {
22
+ const nestedChild = child[j];
23
+ if (nestedChild != null && nestedChild !== false) {
24
+ flatChildren.push(nestedChild);
25
+ }
26
+ }
27
+ } else {
28
+ flatChildren.push(child);
29
+ }
30
+ }
31
+ return flatChildren;
32
+ }
33
+
34
+ // src/client/el/factory.ts
15
35
  var createElementFactory = (tag) => {
16
36
  return function(props, ...rest) {
17
- if (!arguments.length) return { tagName: tag, props: {}, children: [] };
18
- const isState = props && typeof props === "object" && "value" in props && "subscribe" in props;
19
- const isVNode = props && typeof props === "object" && "tagName" in props;
20
- const isChild = typeof props !== "object" || Array.isArray(props) || props === null || isState || isVNode;
37
+ if (!arguments.length) {
38
+ return { tagName: tag, props: {}, children: [] };
39
+ }
40
+ const isChild = typeof props !== "object" || Array.isArray(props) || props === null || isStateLike(props) || isVNodeLike(props);
21
41
  const actualProps = isChild ? {} : props;
22
42
  const args = isChild ? [props, ...rest] : rest;
23
- if (!args.length) return { tagName: tag, props: actualProps, children: [] };
24
- const flatChildren = [];
25
- for (let i2 = 0, len = args.length; i2 < len; i2++) {
26
- const child = args[i2];
27
- if (child == null || child === false) continue;
28
- if (Array.isArray(child)) {
29
- for (let j = 0, cLen = child.length; j < cLen; j++) {
30
- const c = child[j];
31
- c != null && c !== false && flatChildren.push(c);
32
- }
33
- } else {
34
- flatChildren.push(child);
35
- }
43
+ if (!args.length) {
44
+ return { tagName: tag, props: actualProps, children: [] };
36
45
  }
37
- return { tagName: tag, props: actualProps, children: flatChildren };
46
+ return { tagName: tag, props: actualProps, children: flattenChildren(args) };
38
47
  };
39
48
  };
49
+ var frag = function(...children) {
50
+ return { tagName: "", props: {}, children: flattenChildren(children) };
51
+ };
52
+
53
+ // src/client/el/tags.ts
40
54
  var tags = [
41
55
  "html",
42
56
  "head",
@@ -208,6 +222,14 @@ var mathTags = [
208
222
  "msub",
209
223
  "msup"
210
224
  ];
225
+
226
+ // src/client/el/registry.ts
227
+ function createPrefixedFactories(tagsToCreate, prefix, elements2) {
228
+ tagsToCreate.forEach((tag) => {
229
+ const name = prefix + capitalize(tag);
230
+ elements2[name] = createElementFactory(tag);
231
+ });
232
+ }
211
233
  var elements = {};
212
234
  tags.forEach((tag) => {
213
235
  elements[tag] = createElementFactory(tag);
@@ -384,35 +406,21 @@ var {
384
406
  varElement
385
407
  } = elements;
386
408
  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
- };
409
+
410
+ // src/client/el/dom-utils.ts
403
411
  var doc = hasDocument ? document : void 0;
404
- var getEl = bindDocMethod(doc?.querySelector);
405
- var getEls = bindDocMethod(doc?.querySelectorAll);
406
- var createEl = bindDocMethod(doc?.createElement);
412
+ var getEl = bindDocMethod(doc, doc?.querySelector);
413
+ var getEls = bindDocMethod(doc, doc?.querySelectorAll);
414
+ var createEl = bindDocMethod(doc, doc?.createElement);
407
415
  var createSvgEl = hasDocument ? doc.createElementNS.bind(doc, "http://www.w3.org/2000/svg") : void 0;
408
416
  var createMathEl = hasDocument ? doc.createElementNS.bind(doc, "http://www.w3.org/1998/Math/MathML") : void 0;
409
- var fragment = bindDocMethod(doc?.createDocumentFragment);
410
- var textNode = bindDocMethod(doc?.createTextNode);
411
- var commentNode = bindDocMethod(doc?.createComment);
412
- var getElId = bindDocMethod(doc?.getElementById);
413
- var getElClass = bindDocMethod(doc?.getElementsByClassName);
414
- var getElTag = bindDocMethod(doc?.getElementsByTagName);
415
- var getElName = bindDocMethod(doc?.getElementsByName);
417
+ var fragment = bindDocMethod(doc, doc?.createDocumentFragment);
418
+ var textNode = bindDocMethod(doc, doc?.createTextNode);
419
+ var commentNode = bindDocMethod(doc, doc?.createComment);
420
+ var getElId = bindDocMethod(doc, doc?.getElementById);
421
+ var getElClass = bindDocMethod(doc, doc?.getElementsByClassName);
422
+ var getElTag = bindDocMethod(doc, doc?.getElementsByTagName);
423
+ var getElName = bindDocMethod(doc, doc?.getElementsByName);
416
424
  export {
417
425
  a,
418
426
  abbr,