solid-js 1.8.0-beta.2 → 1.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/dev.js +532 -297
  2. package/dist/server.js +168 -74
  3. package/dist/solid.js +459 -255
  4. package/h/dist/h.js +34 -8
  5. package/h/jsx-runtime/dist/jsx.js +1 -1
  6. package/h/jsx-runtime/types/index.d.ts +11 -8
  7. package/h/types/hyperscript.d.ts +11 -11
  8. package/html/dist/html.js +216 -94
  9. package/html/types/lit.d.ts +45 -31
  10. package/package.json +1 -1
  11. package/store/dist/dev.js +114 -42
  12. package/store/dist/server.js +19 -8
  13. package/store/dist/store.js +105 -39
  14. package/store/types/index.d.ts +21 -7
  15. package/store/types/modifiers.d.ts +6 -3
  16. package/store/types/mutable.d.ts +5 -2
  17. package/store/types/server.d.ts +12 -4
  18. package/store/types/store.d.ts +218 -61
  19. package/types/index.d.ts +72 -9
  20. package/types/reactive/array.d.ts +12 -4
  21. package/types/reactive/observable.d.ts +25 -17
  22. package/types/reactive/scheduler.d.ts +9 -6
  23. package/types/reactive/signal.d.ts +228 -140
  24. package/types/render/Suspense.d.ts +5 -5
  25. package/types/render/component.d.ts +62 -31
  26. package/types/render/flow.d.ts +43 -31
  27. package/types/render/hydration.d.ts +13 -13
  28. package/types/server/index.d.ts +56 -2
  29. package/types/server/reactive.d.ts +67 -40
  30. package/types/server/rendering.d.ts +166 -95
  31. package/universal/dist/dev.js +28 -12
  32. package/universal/dist/universal.js +28 -12
  33. package/universal/types/index.d.ts +3 -1
  34. package/universal/types/universal.d.ts +0 -1
  35. package/web/dist/dev.cjs +2 -2
  36. package/web/dist/dev.js +617 -81
  37. package/web/dist/server.js +175 -92
  38. package/web/dist/web.cjs +1 -6
  39. package/web/dist/web.js +611 -85
  40. package/web/types/client.d.ts +2 -2
  41. package/web/types/core.d.ts +10 -1
  42. package/web/types/index.d.ts +27 -10
  43. package/web/types/server-mock.d.ts +47 -32
package/web/dist/dev.js CHANGED
@@ -1,14 +1,82 @@
1
- import { createRoot, sharedConfig, createRenderEffect, untrack, enableHydration, getOwner, createEffect, runWithOwner, createMemo, createSignal, onCleanup, splitProps, $DEVCOMP } from 'solid-js';
2
- export { ErrorBoundary, For, Index, Match, Show, Suspense, SuspenseList, Switch, createComponent, createRenderEffect as effect, getOwner, createMemo as memo, mergeProps, untrack } from 'solid-js';
1
+ import {
2
+ createRoot,
3
+ sharedConfig,
4
+ createRenderEffect,
5
+ untrack,
6
+ enableHydration,
7
+ getOwner,
8
+ createEffect,
9
+ runWithOwner,
10
+ createMemo,
11
+ createSignal,
12
+ onCleanup,
13
+ splitProps,
14
+ $DEVCOMP
15
+ } from "solid-js";
16
+ export {
17
+ ErrorBoundary,
18
+ For,
19
+ Index,
20
+ Match,
21
+ Show,
22
+ Suspense,
23
+ SuspenseList,
24
+ Switch,
25
+ createComponent,
26
+ createRenderEffect as effect,
27
+ getOwner,
28
+ createMemo as memo,
29
+ mergeProps,
30
+ untrack
31
+ } from "solid-js";
3
32
 
4
- const booleans = ["allowfullscreen", "async", "autofocus", "autoplay", "checked", "controls", "default", "disabled", "formnovalidate", "hidden", "indeterminate", "ismap", "loop", "multiple", "muted", "nomodule", "novalidate", "open", "playsinline", "readonly", "required", "reversed", "seamless", "selected"];
5
- const Properties = /*#__PURE__*/new Set(["className", "value", "readOnly", "formNoValidate", "isMap", "noModule", "playsInline", ...booleans]);
6
- const ChildProperties = /*#__PURE__*/new Set(["innerHTML", "textContent", "innerText", "children"]);
7
- const Aliases = /*#__PURE__*/Object.assign(Object.create(null), {
33
+ const booleans = [
34
+ "allowfullscreen",
35
+ "async",
36
+ "autofocus",
37
+ "autoplay",
38
+ "checked",
39
+ "controls",
40
+ "default",
41
+ "disabled",
42
+ "formnovalidate",
43
+ "hidden",
44
+ "indeterminate",
45
+ "ismap",
46
+ "loop",
47
+ "multiple",
48
+ "muted",
49
+ "nomodule",
50
+ "novalidate",
51
+ "open",
52
+ "playsinline",
53
+ "readonly",
54
+ "required",
55
+ "reversed",
56
+ "seamless",
57
+ "selected"
58
+ ];
59
+ const Properties = /*#__PURE__*/ new Set([
60
+ "className",
61
+ "value",
62
+ "readOnly",
63
+ "formNoValidate",
64
+ "isMap",
65
+ "noModule",
66
+ "playsInline",
67
+ ...booleans
68
+ ]);
69
+ const ChildProperties = /*#__PURE__*/ new Set([
70
+ "innerHTML",
71
+ "textContent",
72
+ "innerText",
73
+ "children"
74
+ ]);
75
+ const Aliases = /*#__PURE__*/ Object.assign(Object.create(null), {
8
76
  className: "class",
9
77
  htmlFor: "for"
10
78
  });
11
- const PropAliases = /*#__PURE__*/Object.assign(Object.create(null), {
79
+ const PropAliases = /*#__PURE__*/ Object.assign(Object.create(null), {
12
80
  class: "className",
13
81
  formnovalidate: {
14
82
  $: "formNoValidate",
@@ -35,19 +103,395 @@ const PropAliases = /*#__PURE__*/Object.assign(Object.create(null), {
35
103
  });
36
104
  function getPropAlias(prop, tagName) {
37
105
  const a = PropAliases[prop];
38
- return typeof a === "object" ? a[tagName] ? a["$"] : undefined : a;
39
- }
40
- const DelegatedEvents = /*#__PURE__*/new Set(["beforeinput", "click", "dblclick", "contextmenu", "focusin", "focusout", "input", "keydown", "keyup", "mousedown", "mousemove", "mouseout", "mouseover", "mouseup", "pointerdown", "pointermove", "pointerout", "pointerover", "pointerup", "touchend", "touchmove", "touchstart"]);
41
- const SVGElements = /*#__PURE__*/new Set([
42
- "altGlyph", "altGlyphDef", "altGlyphItem", "animate", "animateColor", "animateMotion", "animateTransform", "circle", "clipPath", "color-profile", "cursor", "defs", "desc", "ellipse", "feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence", "filter", "font", "font-face", "font-face-format", "font-face-name", "font-face-src", "font-face-uri", "foreignObject", "g", "glyph", "glyphRef", "hkern", "image", "line", "linearGradient", "marker", "mask", "metadata", "missing-glyph", "mpath", "path", "pattern", "polygon", "polyline", "radialGradient", "rect",
43
- "set", "stop",
44
- "svg", "switch", "symbol", "text", "textPath",
45
- "tref", "tspan", "use", "view", "vkern"]);
106
+ return typeof a === "object" ? (a[tagName] ? a["$"] : undefined) : a;
107
+ }
108
+ const DelegatedEvents = /*#__PURE__*/ new Set([
109
+ "beforeinput",
110
+ "click",
111
+ "dblclick",
112
+ "contextmenu",
113
+ "focusin",
114
+ "focusout",
115
+ "input",
116
+ "keydown",
117
+ "keyup",
118
+ "mousedown",
119
+ "mousemove",
120
+ "mouseout",
121
+ "mouseover",
122
+ "mouseup",
123
+ "pointerdown",
124
+ "pointermove",
125
+ "pointerout",
126
+ "pointerover",
127
+ "pointerup",
128
+ "touchend",
129
+ "touchmove",
130
+ "touchstart"
131
+ ]);
132
+ const SVGElements = /*#__PURE__*/ new Set([
133
+ "altGlyph",
134
+ "altGlyphDef",
135
+ "altGlyphItem",
136
+ "animate",
137
+ "animateColor",
138
+ "animateMotion",
139
+ "animateTransform",
140
+ "circle",
141
+ "clipPath",
142
+ "color-profile",
143
+ "cursor",
144
+ "defs",
145
+ "desc",
146
+ "ellipse",
147
+ "feBlend",
148
+ "feColorMatrix",
149
+ "feComponentTransfer",
150
+ "feComposite",
151
+ "feConvolveMatrix",
152
+ "feDiffuseLighting",
153
+ "feDisplacementMap",
154
+ "feDistantLight",
155
+ "feFlood",
156
+ "feFuncA",
157
+ "feFuncB",
158
+ "feFuncG",
159
+ "feFuncR",
160
+ "feGaussianBlur",
161
+ "feImage",
162
+ "feMerge",
163
+ "feMergeNode",
164
+ "feMorphology",
165
+ "feOffset",
166
+ "fePointLight",
167
+ "feSpecularLighting",
168
+ "feSpotLight",
169
+ "feTile",
170
+ "feTurbulence",
171
+ "filter",
172
+ "font",
173
+ "font-face",
174
+ "font-face-format",
175
+ "font-face-name",
176
+ "font-face-src",
177
+ "font-face-uri",
178
+ "foreignObject",
179
+ "g",
180
+ "glyph",
181
+ "glyphRef",
182
+ "hkern",
183
+ "image",
184
+ "line",
185
+ "linearGradient",
186
+ "marker",
187
+ "mask",
188
+ "metadata",
189
+ "missing-glyph",
190
+ "mpath",
191
+ "path",
192
+ "pattern",
193
+ "polygon",
194
+ "polyline",
195
+ "radialGradient",
196
+ "rect",
197
+ "set",
198
+ "stop",
199
+ "svg",
200
+ "switch",
201
+ "symbol",
202
+ "text",
203
+ "textPath",
204
+ "tref",
205
+ "tspan",
206
+ "use",
207
+ "view",
208
+ "vkern"
209
+ ]);
46
210
  const SVGNamespace = {
47
211
  xlink: "http://www.w3.org/1999/xlink",
48
212
  xml: "http://www.w3.org/XML/1998/namespace"
49
213
  };
50
- const DOMElements = /*#__PURE__*/new Set(["html", "base", "head", "link", "meta", "style", "title", "body", "address", "article", "aside", "footer", "header", "main", "nav", "section", "body", "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", "var", "wbr", "area", "audio", "img", "map", "track", "video", "embed", "iframe", "object", "param", "picture", "portal", "source", "svg", "math", "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", "details", "slot", "template", "acronym", "applet", "basefont", "bgsound", "big", "blink", "center", "content", "dir", "font", "frame", "frameset", "hgroup", "image", "keygen", "marquee", "menuitem", "nobr", "noembed", "noframes", "plaintext", "rb", "rtc", "shadow", "spacer", "strike", "tt", "xmp", "a", "abbr", "acronym", "address", "applet", "area", "article", "aside", "audio", "b", "base", "basefont", "bdi", "bdo", "bgsound", "big", "blink", "blockquote", "body", "br", "button", "canvas", "caption", "center", "cite", "code", "col", "colgroup", "content", "data", "datalist", "dd", "del", "details", "dfn", "dialog", "dir", "div", "dl", "dt", "em", "embed", "fieldset", "figcaption", "figure", "font", "footer", "form", "frame", "frameset", "head", "header", "hgroup", "hr", "html", "i", "iframe", "image", "img", "input", "ins", "kbd", "keygen", "label", "legend", "li", "link", "main", "map", "mark", "marquee", "menu", "menuitem", "meta", "meter", "nav", "nobr", "noembed", "noframes", "noscript", "object", "ol", "optgroup", "option", "output", "p", "param", "picture", "plaintext", "portal", "pre", "progress", "q", "rb", "rp", "rt", "rtc", "ruby", "s", "samp", "script", "section", "select", "shadow", "slot", "small", "source", "spacer", "span", "strike", "strong", "style", "sub", "summary", "sup", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "title", "tr", "track", "tt", "u", "ul", "var", "video", "wbr", "xmp", "input", "h1", "h2", "h3", "h4", "h5", "h6"]);
214
+ const DOMElements = /*#__PURE__*/ new Set([
215
+ "html",
216
+ "base",
217
+ "head",
218
+ "link",
219
+ "meta",
220
+ "style",
221
+ "title",
222
+ "body",
223
+ "address",
224
+ "article",
225
+ "aside",
226
+ "footer",
227
+ "header",
228
+ "main",
229
+ "nav",
230
+ "section",
231
+ "body",
232
+ "blockquote",
233
+ "dd",
234
+ "div",
235
+ "dl",
236
+ "dt",
237
+ "figcaption",
238
+ "figure",
239
+ "hr",
240
+ "li",
241
+ "ol",
242
+ "p",
243
+ "pre",
244
+ "ul",
245
+ "a",
246
+ "abbr",
247
+ "b",
248
+ "bdi",
249
+ "bdo",
250
+ "br",
251
+ "cite",
252
+ "code",
253
+ "data",
254
+ "dfn",
255
+ "em",
256
+ "i",
257
+ "kbd",
258
+ "mark",
259
+ "q",
260
+ "rp",
261
+ "rt",
262
+ "ruby",
263
+ "s",
264
+ "samp",
265
+ "small",
266
+ "span",
267
+ "strong",
268
+ "sub",
269
+ "sup",
270
+ "time",
271
+ "u",
272
+ "var",
273
+ "wbr",
274
+ "area",
275
+ "audio",
276
+ "img",
277
+ "map",
278
+ "track",
279
+ "video",
280
+ "embed",
281
+ "iframe",
282
+ "object",
283
+ "param",
284
+ "picture",
285
+ "portal",
286
+ "source",
287
+ "svg",
288
+ "math",
289
+ "canvas",
290
+ "noscript",
291
+ "script",
292
+ "del",
293
+ "ins",
294
+ "caption",
295
+ "col",
296
+ "colgroup",
297
+ "table",
298
+ "tbody",
299
+ "td",
300
+ "tfoot",
301
+ "th",
302
+ "thead",
303
+ "tr",
304
+ "button",
305
+ "datalist",
306
+ "fieldset",
307
+ "form",
308
+ "input",
309
+ "label",
310
+ "legend",
311
+ "meter",
312
+ "optgroup",
313
+ "option",
314
+ "output",
315
+ "progress",
316
+ "select",
317
+ "textarea",
318
+ "details",
319
+ "dialog",
320
+ "menu",
321
+ "summary",
322
+ "details",
323
+ "slot",
324
+ "template",
325
+ "acronym",
326
+ "applet",
327
+ "basefont",
328
+ "bgsound",
329
+ "big",
330
+ "blink",
331
+ "center",
332
+ "content",
333
+ "dir",
334
+ "font",
335
+ "frame",
336
+ "frameset",
337
+ "hgroup",
338
+ "image",
339
+ "keygen",
340
+ "marquee",
341
+ "menuitem",
342
+ "nobr",
343
+ "noembed",
344
+ "noframes",
345
+ "plaintext",
346
+ "rb",
347
+ "rtc",
348
+ "shadow",
349
+ "spacer",
350
+ "strike",
351
+ "tt",
352
+ "xmp",
353
+ "a",
354
+ "abbr",
355
+ "acronym",
356
+ "address",
357
+ "applet",
358
+ "area",
359
+ "article",
360
+ "aside",
361
+ "audio",
362
+ "b",
363
+ "base",
364
+ "basefont",
365
+ "bdi",
366
+ "bdo",
367
+ "bgsound",
368
+ "big",
369
+ "blink",
370
+ "blockquote",
371
+ "body",
372
+ "br",
373
+ "button",
374
+ "canvas",
375
+ "caption",
376
+ "center",
377
+ "cite",
378
+ "code",
379
+ "col",
380
+ "colgroup",
381
+ "content",
382
+ "data",
383
+ "datalist",
384
+ "dd",
385
+ "del",
386
+ "details",
387
+ "dfn",
388
+ "dialog",
389
+ "dir",
390
+ "div",
391
+ "dl",
392
+ "dt",
393
+ "em",
394
+ "embed",
395
+ "fieldset",
396
+ "figcaption",
397
+ "figure",
398
+ "font",
399
+ "footer",
400
+ "form",
401
+ "frame",
402
+ "frameset",
403
+ "head",
404
+ "header",
405
+ "hgroup",
406
+ "hr",
407
+ "html",
408
+ "i",
409
+ "iframe",
410
+ "image",
411
+ "img",
412
+ "input",
413
+ "ins",
414
+ "kbd",
415
+ "keygen",
416
+ "label",
417
+ "legend",
418
+ "li",
419
+ "link",
420
+ "main",
421
+ "map",
422
+ "mark",
423
+ "marquee",
424
+ "menu",
425
+ "menuitem",
426
+ "meta",
427
+ "meter",
428
+ "nav",
429
+ "nobr",
430
+ "noembed",
431
+ "noframes",
432
+ "noscript",
433
+ "object",
434
+ "ol",
435
+ "optgroup",
436
+ "option",
437
+ "output",
438
+ "p",
439
+ "param",
440
+ "picture",
441
+ "plaintext",
442
+ "portal",
443
+ "pre",
444
+ "progress",
445
+ "q",
446
+ "rb",
447
+ "rp",
448
+ "rt",
449
+ "rtc",
450
+ "ruby",
451
+ "s",
452
+ "samp",
453
+ "script",
454
+ "section",
455
+ "select",
456
+ "shadow",
457
+ "slot",
458
+ "small",
459
+ "source",
460
+ "spacer",
461
+ "span",
462
+ "strike",
463
+ "strong",
464
+ "style",
465
+ "sub",
466
+ "summary",
467
+ "sup",
468
+ "table",
469
+ "tbody",
470
+ "td",
471
+ "template",
472
+ "textarea",
473
+ "tfoot",
474
+ "th",
475
+ "thead",
476
+ "time",
477
+ "title",
478
+ "tr",
479
+ "track",
480
+ "tt",
481
+ "u",
482
+ "ul",
483
+ "var",
484
+ "video",
485
+ "wbr",
486
+ "xmp",
487
+ "input",
488
+ "h1",
489
+ "h2",
490
+ "h3",
491
+ "h4",
492
+ "h5",
493
+ "h6"
494
+ ]);
51
495
 
52
496
  function reconcileArrays(parentNode, a, b) {
53
497
  let bLength = b.length,
@@ -68,7 +512,7 @@ function reconcileArrays(parentNode, a, b) {
68
512
  bEnd--;
69
513
  }
70
514
  if (aEnd === aStart) {
71
- const node = bEnd < bLength ? bStart ? b[bStart - 1].nextSibling : b[bEnd - bStart] : after;
515
+ const node = bEnd < bLength ? (bStart ? b[bStart - 1].nextSibling : b[bEnd - bStart]) : after;
72
516
  while (bStart < bEnd) parentNode.insertBefore(b[bStart++], node);
73
517
  } else if (bEnd === bStart) {
74
518
  while (aStart < aEnd) {
@@ -111,7 +555,9 @@ function render(code, element, init, options = {}) {
111
555
  let disposer;
112
556
  createRoot(dispose => {
113
557
  disposer = dispose;
114
- element === document ? code() : insert(element, code(), element.firstChild ? null : undefined, init);
558
+ element === document
559
+ ? code()
560
+ : insert(element, code(), element.firstChild ? null : undefined, init);
115
561
  }, options.owner);
116
562
  return () => {
117
563
  disposer();
@@ -121,11 +567,17 @@ function render(code, element, init, options = {}) {
121
567
  function template(html, isCE, isSVG) {
122
568
  let node;
123
569
  const create = () => {
570
+ if (sharedConfig.context)
571
+ throw new Error(
572
+ "Failed attempt to create new DOM elements during hydration. Check that the libraries you are using support hydration."
573
+ );
124
574
  const t = document.createElement("template");
125
575
  t.innerHTML = html;
126
576
  return isSVG ? t.content.firstChild.firstChild : t.content.firstChild;
127
577
  };
128
- const fn = isCE ? () => untrack(() => document.importNode(node || (node = create()), true)) : () => (node || (node = create())).cloneNode(true);
578
+ const fn = isCE
579
+ ? () => untrack(() => document.importNode(node || (node = create()), true))
580
+ : () => (node || (node = create())).cloneNode(true);
129
581
  fn.cloneNode = fn;
130
582
  return fn;
131
583
  }
@@ -150,15 +602,18 @@ function setProperty(node, name, value) {
150
602
  }
151
603
  function setAttribute(node, name, value) {
152
604
  if (sharedConfig.context) return;
153
- if (value == null) node.removeAttribute(name);else node.setAttribute(name, value);
605
+ if (value == null) node.removeAttribute(name);
606
+ else node.setAttribute(name, value);
154
607
  }
155
608
  function setAttributeNS(node, namespace, name, value) {
156
609
  if (sharedConfig.context) return;
157
- if (value == null) node.removeAttributeNS(namespace, name);else node.setAttributeNS(namespace, name, value);
610
+ if (value == null) node.removeAttributeNS(namespace, name);
611
+ else node.setAttributeNS(namespace, name, value);
158
612
  }
159
613
  function className(node, value) {
160
614
  if (sharedConfig.context) return;
161
- if (value == null) node.removeAttribute("class");else node.className = value;
615
+ if (value == null) node.removeAttribute("class");
616
+ else node.className = value;
162
617
  }
163
618
  function addEventListener(node, name, handler, delegate) {
164
619
  if (delegate) {
@@ -168,7 +623,7 @@ function addEventListener(node, name, handler, delegate) {
168
623
  } else node[`$$${name}`] = handler;
169
624
  } else if (Array.isArray(handler)) {
170
625
  const handlerFn = handler[0];
171
- node.addEventListener(name, handler[0] = e => handlerFn.call(node, handler[1], e));
626
+ node.addEventListener(name, (handler[0] = e => handlerFn.call(node, handler[1], e)));
172
627
  } else node.addEventListener(name, handler);
173
628
  }
174
629
  function classList(node, value, prev = {}) {
@@ -193,7 +648,7 @@ function classList(node, value, prev = {}) {
193
648
  function style(node, value, prev) {
194
649
  if (!value) return prev ? setAttribute(node, "style") : value;
195
650
  const nodeStyle = node.style;
196
- if (typeof value === "string") return nodeStyle.cssText = value;
651
+ if (typeof value === "string") return (nodeStyle.cssText = value);
197
652
  typeof prev === "string" && (nodeStyle.cssText = prev = undefined);
198
653
  prev || (prev = {});
199
654
  value || (value = {});
@@ -214,7 +669,9 @@ function style(node, value, prev) {
214
669
  function spread(node, props = {}, isSVG, skipChildren) {
215
670
  const prevProps = {};
216
671
  if (!skipChildren) {
217
- createRenderEffect(() => prevProps.children = insertExpression(node, props.children, prevProps.children));
672
+ createRenderEffect(
673
+ () => (prevProps.children = insertExpression(node, props.children, prevProps.children))
674
+ );
218
675
  }
219
676
  createRenderEffect(() => props.ref && props.ref(node));
220
677
  createRenderEffect(() => assign(node, props, isSVG, true, prevProps, true));
@@ -273,9 +730,9 @@ function hydrate$1(code, element, options = {}) {
273
730
  }
274
731
  function getNextElement(template) {
275
732
  let node, key;
276
- if (!sharedConfig.context || !(node = sharedConfig.registry.get(key = getHydrationKey()))) {
277
- if (sharedConfig.context) console.warn("Unable to find DOM nodes for hydration key:", key);
278
- if (!template) throw new Error("Unrecoverable Hydration Mismatch. No template for key: " + key);
733
+ if (!sharedConfig.context || !(node = sharedConfig.registry.get((key = getHydrationKey())))) {
734
+ if (sharedConfig.context)
735
+ throw new Error(`Hydration Mismatch. Unable to find DOM nodes for hydration key: ${key}`);
279
736
  return template();
280
737
  }
281
738
  if (sharedConfig.completed) sharedConfig.completed.add(node);
@@ -294,7 +751,8 @@ function getNextMarker(start) {
294
751
  while (end) {
295
752
  if (end.nodeType === 8) {
296
753
  const v = end.nodeValue;
297
- if (v === "$") count++;else if (v === "/") {
754
+ if (v === "$") count++;
755
+ else if (v === "/") {
298
756
  if (count === 0) return [end, current];
299
757
  count--;
300
758
  }
@@ -308,10 +766,7 @@ function getNextMarker(start) {
308
766
  function runHydrationEvents() {
309
767
  if (sharedConfig.events && !sharedConfig.events.queued) {
310
768
  queueMicrotask(() => {
311
- const {
312
- completed,
313
- events
314
- } = sharedConfig;
769
+ const { completed, events } = sharedConfig;
315
770
  events.queued = false;
316
771
  while (events.length) {
317
772
  const [el, e] = events[0];
@@ -328,7 +783,8 @@ function toPropertyName(name) {
328
783
  }
329
784
  function toggleClassKey(node, key, value) {
330
785
  const classNames = key.trim().split(/\s+/);
331
- for (let i = 0, nameLen = classNames.length; i < nameLen; i++) node.classList.toggle(classNames[i], value);
786
+ for (let i = 0, nameLen = classNames.length; i < nameLen; i++)
787
+ node.classList.toggle(classNames[i], value);
332
788
  }
333
789
  function assignProp(node, prop, value, prev, isSVG, skipRef) {
334
790
  let isCE, isProp, isChildProp, propAlias, forceProp;
@@ -358,21 +814,30 @@ function assignProp(node, prop, value, prev, isSVG, skipRef) {
358
814
  }
359
815
  } else if (prop.slice(0, 5) === "attr:") {
360
816
  setAttribute(node, prop.slice(5), value);
361
- } else if ((forceProp = prop.slice(0, 5) === "prop:") || (isChildProp = ChildProperties.has(prop)) || !isSVG && ((propAlias = getPropAlias(prop, node.tagName)) || (isProp = Properties.has(prop))) || (isCE = node.nodeName.includes("-"))) {
817
+ } else if (
818
+ (forceProp = prop.slice(0, 5) === "prop:") ||
819
+ (isChildProp = ChildProperties.has(prop)) ||
820
+ (!isSVG &&
821
+ ((propAlias = getPropAlias(prop, node.tagName)) || (isProp = Properties.has(prop)))) ||
822
+ (isCE = node.nodeName.includes("-"))
823
+ ) {
362
824
  if (forceProp) {
363
825
  prop = prop.slice(5);
364
826
  isProp = true;
365
827
  } else if (sharedConfig.context) return value;
366
- if (prop === "class" || prop === "className") className(node, value);else if (isCE && !isProp && !isChildProp) node[toPropertyName(prop)] = value;else node[propAlias || prop] = value;
828
+ if (prop === "class" || prop === "className") className(node, value);
829
+ else if (isCE && !isProp && !isChildProp) node[toPropertyName(prop)] = value;
830
+ else node[propAlias || prop] = value;
367
831
  } else {
368
832
  const ns = isSVG && prop.indexOf(":") > -1 && SVGNamespace[prop.split(":")[0]];
369
- if (ns) setAttributeNS(node, ns, prop, value);else setAttribute(node, Aliases[prop] || prop, value);
833
+ if (ns) setAttributeNS(node, ns, prop, value);
834
+ else setAttribute(node, Aliases[prop] || prop, value);
370
835
  }
371
836
  return value;
372
837
  }
373
838
  function eventHandler(e) {
374
839
  const key = `$$${e.type}`;
375
- let node = e.composedPath && e.composedPath()[0] || e.target;
840
+ let node = (e.composedPath && e.composedPath()[0]) || e.target;
376
841
  if (e.target !== node) {
377
842
  Object.defineProperty(e, "target", {
378
843
  configurable: true,
@@ -402,7 +867,8 @@ function insertExpression(parent, value, current, marker, unwrapArray) {
402
867
  let cleaned = [];
403
868
  for (let i = 0; i < current.length; i++) {
404
869
  const node = current[i];
405
- if (node.nodeType === 8 && node.data.slice(0, 2) === "!$") node.remove();else cleaned.push(node);
870
+ if (node.nodeType === 8 && node.data.slice(0, 2) === "!$") node.remove();
871
+ else cleaned.push(node);
406
872
  }
407
873
  current = cleaned;
408
874
  }
@@ -410,7 +876,7 @@ function insertExpression(parent, value, current, marker, unwrapArray) {
410
876
  if (value === current) return current;
411
877
  const t = typeof value,
412
878
  multi = marker !== undefined;
413
- parent = multi && current[0] && current[0].parentNode || parent;
879
+ parent = (multi && current[0] && current[0].parentNode) || parent;
414
880
  if (t === "string" || t === "number") {
415
881
  if (sharedConfig.context) return current;
416
882
  if (t === "number") value = value.toString();
@@ -439,7 +905,7 @@ function insertExpression(parent, value, current, marker, unwrapArray) {
439
905
  const array = [];
440
906
  const currentArray = current && Array.isArray(current);
441
907
  if (normalizeIncomingArray(array, value, current, unwrapArray)) {
442
- createRenderEffect(() => current = insertExpression(parent, array, current, marker, true));
908
+ createRenderEffect(() => (current = insertExpression(parent, array, current, marker, true)));
443
909
  return () => current;
444
910
  }
445
911
  if (sharedConfig.context) {
@@ -448,7 +914,7 @@ function insertExpression(parent, value, current, marker, unwrapArray) {
448
914
  let node = array[0];
449
915
  let nodes = [node];
450
916
  while ((node = node.nextSibling) !== marker) nodes.push(node);
451
- return current = nodes;
917
+ return (current = nodes);
452
918
  }
453
919
  if (array.length === 0) {
454
920
  current = cleanChildren(parent, current, marker);
@@ -463,9 +929,9 @@ function insertExpression(parent, value, current, marker, unwrapArray) {
463
929
  }
464
930
  current = array;
465
931
  } else if (value.nodeType) {
466
- if (sharedConfig.context && value.parentNode) return current = multi ? [value] : value;
932
+ if (sharedConfig.context && value.parentNode) return (current = multi ? [value] : value);
467
933
  if (Array.isArray(current)) {
468
- if (multi) return current = cleanChildren(parent, current, marker, value);
934
+ if (multi) return (current = cleanChildren(parent, current, marker, value));
469
935
  cleanChildren(parent, current, null, value);
470
936
  } else if (current == null || current === "" || !parent.firstChild) {
471
937
  parent.appendChild(value);
@@ -480,21 +946,28 @@ function normalizeIncomingArray(normalized, array, current, unwrap) {
480
946
  let item = array[i],
481
947
  prev = current && current[i],
482
948
  t;
483
- if (item == null || item === true || item === false) ; else if ((t = typeof item) === "object" && item.nodeType) {
949
+ if (item == null || item === true || item === false);
950
+ else if ((t = typeof item) === "object" && item.nodeType) {
484
951
  normalized.push(item);
485
952
  } else if (Array.isArray(item)) {
486
953
  dynamic = normalizeIncomingArray(normalized, item, prev) || dynamic;
487
954
  } else if (t === "function") {
488
955
  if (unwrap) {
489
956
  while (typeof item === "function") item = item();
490
- dynamic = normalizeIncomingArray(normalized, Array.isArray(item) ? item : [item], Array.isArray(prev) ? prev : [prev]) || dynamic;
957
+ dynamic =
958
+ normalizeIncomingArray(
959
+ normalized,
960
+ Array.isArray(item) ? item : [item],
961
+ Array.isArray(prev) ? prev : [prev]
962
+ ) || dynamic;
491
963
  } else {
492
964
  normalized.push(item);
493
965
  dynamic = true;
494
966
  }
495
967
  } else {
496
968
  const value = String(item);
497
- if (prev && prev.nodeType === 3 && prev.data === value) normalized.push(prev);else normalized.push(document.createTextNode(value));
969
+ if (prev && prev.nodeType === 3 && prev.data === value) normalized.push(prev);
970
+ else normalized.push(document.createTextNode(value));
498
971
  }
499
972
  }
500
973
  return dynamic;
@@ -503,7 +976,7 @@ function appendNodes(parent, array, marker = null) {
503
976
  for (let i = 0, len = array.length; i < len; i++) parent.insertBefore(array[i], marker);
504
977
  }
505
978
  function cleanChildren(parent, current, marker, replacement) {
506
- if (marker === undefined) return parent.textContent = "";
979
+ if (marker === undefined) return (parent.textContent = "");
507
980
  const node = replacement || document.createTextNode("");
508
981
  if (current.length) {
509
982
  let inserted = false;
@@ -511,7 +984,9 @@ function cleanChildren(parent, current, marker, replacement) {
511
984
  const el = current[i];
512
985
  if (node !== el) {
513
986
  const isParent = el.parentNode === parent;
514
- if (!inserted && !i) isParent ? parent.replaceChild(node, el) : parent.insertBefore(node, marker);else isParent && el.remove();
987
+ if (!inserted && !i)
988
+ isParent ? parent.replaceChild(node, el) : parent.insertBefore(node, marker);
989
+ else isParent && el.remove();
515
990
  } else inserted = true;
516
991
  }
517
992
  } else parent.insertBefore(node, marker);
@@ -522,7 +997,8 @@ function gatherHydratable(element, root) {
522
997
  for (let i = 0; i < templates.length; i++) {
523
998
  const node = templates[i];
524
999
  const key = node.getAttribute("data-hk");
525
- if ((!root || key.startsWith(root)) && !sharedConfig.registry.has(key)) sharedConfig.registry.set(key, node);
1000
+ if ((!root || key.startsWith(root)) && !sharedConfig.registry.has(key))
1001
+ sharedConfig.registry.set(key, node);
526
1002
  }
527
1003
  }
528
1004
  function getHydrationKey() {
@@ -574,42 +1050,47 @@ const hydrate = (...args) => {
574
1050
  return hydrate$1(...args);
575
1051
  };
576
1052
  function Portal(props) {
577
- const {
578
- useShadow
579
- } = props,
1053
+ const { useShadow } = props,
580
1054
  marker = document.createTextNode(""),
581
1055
  mount = () => props.mount || document.body,
582
1056
  owner = getOwner();
583
1057
  let content;
584
1058
  let hydrating = !!sharedConfig.context;
585
- createEffect(() => {
586
- if (hydrating) getOwner().user = hydrating = false;
587
- content || (content = runWithOwner(owner, () => createMemo(() => props.children)));
588
- const el = mount();
589
- if (el instanceof HTMLHeadElement) {
590
- const [clean, setClean] = createSignal(false);
591
- const cleanup = () => setClean(true);
592
- createRoot(dispose => insert(el, () => !clean() ? content() : dispose(), null));
593
- onCleanup(cleanup);
594
- } else {
595
- const container = createElement(props.isSVG ? "g" : "div", props.isSVG),
596
- renderRoot = useShadow && container.attachShadow ? container.attachShadow({
597
- mode: "open"
598
- }) : container;
599
- Object.defineProperty(container, "_$host", {
600
- get() {
601
- return marker.parentNode;
602
- },
603
- configurable: true
604
- });
605
- insert(renderRoot, content);
606
- el.appendChild(container);
607
- props.ref && props.ref(container);
608
- onCleanup(() => el.removeChild(container));
1059
+ createEffect(
1060
+ () => {
1061
+ if (hydrating) getOwner().user = hydrating = false;
1062
+ content || (content = runWithOwner(owner, () => createMemo(() => props.children)));
1063
+ const el = mount();
1064
+ if (el instanceof HTMLHeadElement) {
1065
+ const [clean, setClean] = createSignal(false);
1066
+ const cleanup = () => setClean(true);
1067
+ createRoot(dispose => insert(el, () => (!clean() ? content() : dispose()), null));
1068
+ onCleanup(cleanup);
1069
+ } else {
1070
+ const container = createElement(props.isSVG ? "g" : "div", props.isSVG),
1071
+ renderRoot =
1072
+ useShadow && container.attachShadow
1073
+ ? container.attachShadow({
1074
+ mode: "open"
1075
+ })
1076
+ : container;
1077
+ Object.defineProperty(container, "_$host", {
1078
+ get() {
1079
+ return marker.parentNode;
1080
+ },
1081
+ configurable: true
1082
+ });
1083
+ insert(renderRoot, content);
1084
+ el.appendChild(container);
1085
+ props.ref && props.ref(container);
1086
+ onCleanup(() => el.removeChild(container));
1087
+ }
1088
+ },
1089
+ undefined,
1090
+ {
1091
+ render: !hydrating
609
1092
  }
610
- }, undefined, {
611
- render: !hydrating
612
- });
1093
+ );
613
1094
  return marker;
614
1095
  }
615
1096
  function Dynamic(props) {
@@ -632,4 +1113,59 @@ function Dynamic(props) {
632
1113
  });
633
1114
  }
634
1115
 
635
- export { Aliases, voidFn as Assets, ChildProperties, DOMElements, DelegatedEvents, Dynamic, Hydration, voidFn as HydrationScript, NoHydration, Portal, Properties, SVGElements, SVGNamespace, addEventListener, assign, classList, className, clearDelegatedEvents, delegateEvents, dynamicProperty, escape, voidFn as generateHydrationScript, voidFn as getAssets, getHydrationKey, getNextElement, getNextMarker, getNextMatch, getPropAlias, hydrate, innerHTML, insert, isDev, isServer, render, renderToStream, renderToString, renderToStringAsync, resolveSSRNode, runHydrationEvents, setAttribute, setAttributeNS, setProperty, spread, ssr, ssrAttribute, ssrClassList, ssrElement, ssrHydrationKey, ssrSpread, ssrStyle, style, template, use, voidFn as useAssets };
1116
+ export {
1117
+ Aliases,
1118
+ voidFn as Assets,
1119
+ ChildProperties,
1120
+ DOMElements,
1121
+ DelegatedEvents,
1122
+ Dynamic,
1123
+ Hydration,
1124
+ voidFn as HydrationScript,
1125
+ NoHydration,
1126
+ Portal,
1127
+ Properties,
1128
+ SVGElements,
1129
+ SVGNamespace,
1130
+ addEventListener,
1131
+ assign,
1132
+ classList,
1133
+ className,
1134
+ clearDelegatedEvents,
1135
+ delegateEvents,
1136
+ dynamicProperty,
1137
+ escape,
1138
+ voidFn as generateHydrationScript,
1139
+ voidFn as getAssets,
1140
+ getHydrationKey,
1141
+ getNextElement,
1142
+ getNextMarker,
1143
+ getNextMatch,
1144
+ getPropAlias,
1145
+ hydrate,
1146
+ innerHTML,
1147
+ insert,
1148
+ isDev,
1149
+ isServer,
1150
+ render,
1151
+ renderToStream,
1152
+ renderToString,
1153
+ renderToStringAsync,
1154
+ resolveSSRNode,
1155
+ runHydrationEvents,
1156
+ setAttribute,
1157
+ setAttributeNS,
1158
+ setProperty,
1159
+ spread,
1160
+ ssr,
1161
+ ssrAttribute,
1162
+ ssrClassList,
1163
+ ssrElement,
1164
+ ssrHydrationKey,
1165
+ ssrSpread,
1166
+ ssrStyle,
1167
+ style,
1168
+ template,
1169
+ use,
1170
+ voidFn as useAssets
1171
+ };