solid-js 1.8.2 → 1.8.4

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 (50) hide show
  1. package/dist/dev.cjs +1 -1
  2. package/dist/dev.js +534 -299
  3. package/dist/server.js +170 -75
  4. package/dist/solid.cjs +1 -1
  5. package/dist/solid.js +461 -257
  6. package/h/dist/h.js +34 -8
  7. package/h/jsx-runtime/dist/jsx.js +1 -1
  8. package/h/jsx-runtime/types/index.d.ts +11 -8
  9. package/h/types/hyperscript.d.ts +11 -11
  10. package/html/dist/html.js +216 -94
  11. package/html/types/lit.d.ts +47 -31
  12. package/package.json +7 -3
  13. package/store/dist/dev.js +114 -42
  14. package/store/dist/server.js +19 -8
  15. package/store/dist/store.js +105 -39
  16. package/store/types/index.d.ts +21 -7
  17. package/store/types/modifiers.d.ts +6 -3
  18. package/store/types/mutable.d.ts +5 -2
  19. package/store/types/server.d.ts +12 -4
  20. package/store/types/store.d.ts +218 -61
  21. package/types/index.d.ts +72 -9
  22. package/types/reactive/array.d.ts +12 -4
  23. package/types/reactive/observable.d.ts +25 -17
  24. package/types/reactive/scheduler.d.ts +9 -6
  25. package/types/reactive/signal.d.ts +228 -140
  26. package/types/render/Suspense.d.ts +5 -5
  27. package/types/render/component.d.ts +62 -31
  28. package/types/render/flow.d.ts +43 -31
  29. package/types/render/hydration.d.ts +13 -13
  30. package/types/server/index.d.ts +57 -2
  31. package/types/server/reactive.d.ts +73 -42
  32. package/types/server/rendering.d.ts +166 -95
  33. package/universal/dist/dev.js +28 -12
  34. package/universal/dist/universal.js +28 -12
  35. package/universal/types/index.d.ts +3 -1
  36. package/universal/types/universal.d.ts +0 -1
  37. package/web/dist/dev.cjs +3 -0
  38. package/web/dist/dev.js +620 -81
  39. package/web/dist/server.cjs +17 -5
  40. package/web/dist/server.js +188 -95
  41. package/web/dist/storage.cjs +12 -0
  42. package/web/dist/storage.js +10 -0
  43. package/web/dist/web.cjs +3 -0
  44. package/web/dist/web.js +614 -80
  45. package/web/types/client.d.ts +8 -3
  46. package/web/types/core.d.ts +10 -1
  47. package/web/types/index.d.ts +27 -10
  48. package/web/types/server-mock.d.ts +47 -32
  49. package/web/types/server.d.ts +10 -1
  50. package/web/types/storage.d.ts +2 -0
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,12 +567,17 @@ function render(code, element, init, options = {}) {
121
567
  function template(html, isCE, isSVG) {
122
568
  let node;
123
569
  const create = () => {
124
- if (sharedConfig.context) throw new Error("Failed attempt to create new DOM elements during hydration. Check that the libraries you are using support hydration.");
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
+ );
125
574
  const t = document.createElement("template");
126
575
  t.innerHTML = html;
127
576
  return isSVG ? t.content.firstChild.firstChild : t.content.firstChild;
128
577
  };
129
- 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);
130
581
  fn.cloneNode = fn;
131
582
  return fn;
132
583
  }
@@ -151,15 +602,18 @@ function setProperty(node, name, value) {
151
602
  }
152
603
  function setAttribute(node, name, value) {
153
604
  if (sharedConfig.context) return;
154
- if (value == null) node.removeAttribute(name);else node.setAttribute(name, value);
605
+ if (value == null) node.removeAttribute(name);
606
+ else node.setAttribute(name, value);
155
607
  }
156
608
  function setAttributeNS(node, namespace, name, value) {
157
609
  if (sharedConfig.context) return;
158
- 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);
159
612
  }
160
613
  function className(node, value) {
161
614
  if (sharedConfig.context) return;
162
- if (value == null) node.removeAttribute("class");else node.className = value;
615
+ if (value == null) node.removeAttribute("class");
616
+ else node.className = value;
163
617
  }
164
618
  function addEventListener(node, name, handler, delegate) {
165
619
  if (delegate) {
@@ -169,7 +623,7 @@ function addEventListener(node, name, handler, delegate) {
169
623
  } else node[`$$${name}`] = handler;
170
624
  } else if (Array.isArray(handler)) {
171
625
  const handlerFn = handler[0];
172
- 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)));
173
627
  } else node.addEventListener(name, handler);
174
628
  }
175
629
  function classList(node, value, prev = {}) {
@@ -194,7 +648,7 @@ function classList(node, value, prev = {}) {
194
648
  function style(node, value, prev) {
195
649
  if (!value) return prev ? setAttribute(node, "style") : value;
196
650
  const nodeStyle = node.style;
197
- if (typeof value === "string") return nodeStyle.cssText = value;
651
+ if (typeof value === "string") return (nodeStyle.cssText = value);
198
652
  typeof prev === "string" && (nodeStyle.cssText = prev = undefined);
199
653
  prev || (prev = {});
200
654
  value || (value = {});
@@ -215,7 +669,9 @@ function style(node, value, prev) {
215
669
  function spread(node, props = {}, isSVG, skipChildren) {
216
670
  const prevProps = {};
217
671
  if (!skipChildren) {
218
- createRenderEffect(() => prevProps.children = insertExpression(node, props.children, prevProps.children));
672
+ createRenderEffect(
673
+ () => (prevProps.children = insertExpression(node, props.children, prevProps.children))
674
+ );
219
675
  }
220
676
  createRenderEffect(() => props.ref && props.ref(node));
221
677
  createRenderEffect(() => assign(node, props, isSVG, true, prevProps, true));
@@ -274,8 +730,9 @@ function hydrate$1(code, element, options = {}) {
274
730
  }
275
731
  function getNextElement(template) {
276
732
  let node, key;
277
- if (!sharedConfig.context || !(node = sharedConfig.registry.get(key = getHydrationKey()))) {
278
- if (sharedConfig.context) throw new Error(`Hydration Mismatch. Unable to find DOM nodes for hydration 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() {
@@ -536,6 +1012,7 @@ function Hydration(props) {
536
1012
  return props.children;
537
1013
  }
538
1014
  function voidFn() {}
1015
+ const RequestContext = Symbol();
539
1016
  function innerHTML(parent, content) {
540
1017
  !sharedConfig.context && (parent.innerHTML = content);
541
1018
  }
@@ -574,42 +1051,47 @@ const hydrate = (...args) => {
574
1051
  return hydrate$1(...args);
575
1052
  };
576
1053
  function Portal(props) {
577
- const {
578
- useShadow
579
- } = props,
1054
+ const { useShadow } = props,
580
1055
  marker = document.createTextNode(""),
581
1056
  mount = () => props.mount || document.body,
582
1057
  owner = getOwner();
583
1058
  let content;
584
1059
  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));
1060
+ createEffect(
1061
+ () => {
1062
+ if (hydrating) getOwner().user = hydrating = false;
1063
+ content || (content = runWithOwner(owner, () => createMemo(() => props.children)));
1064
+ const el = mount();
1065
+ if (el instanceof HTMLHeadElement) {
1066
+ const [clean, setClean] = createSignal(false);
1067
+ const cleanup = () => setClean(true);
1068
+ createRoot(dispose => insert(el, () => (!clean() ? content() : dispose()), null));
1069
+ onCleanup(cleanup);
1070
+ } else {
1071
+ const container = createElement(props.isSVG ? "g" : "div", props.isSVG),
1072
+ renderRoot =
1073
+ useShadow && container.attachShadow
1074
+ ? container.attachShadow({
1075
+ mode: "open"
1076
+ })
1077
+ : container;
1078
+ Object.defineProperty(container, "_$host", {
1079
+ get() {
1080
+ return marker.parentNode;
1081
+ },
1082
+ configurable: true
1083
+ });
1084
+ insert(renderRoot, content);
1085
+ el.appendChild(container);
1086
+ props.ref && props.ref(container);
1087
+ onCleanup(() => el.removeChild(container));
1088
+ }
1089
+ },
1090
+ undefined,
1091
+ {
1092
+ render: !hydrating
609
1093
  }
610
- }, undefined, {
611
- render: !hydrating
612
- });
1094
+ );
613
1095
  return marker;
614
1096
  }
615
1097
  function Dynamic(props) {
@@ -632,4 +1114,61 @@ function Dynamic(props) {
632
1114
  });
633
1115
  }
634
1116
 
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 };
1117
+ export {
1118
+ Aliases,
1119
+ voidFn as Assets,
1120
+ ChildProperties,
1121
+ DOMElements,
1122
+ DelegatedEvents,
1123
+ Dynamic,
1124
+ Hydration,
1125
+ voidFn as HydrationScript,
1126
+ NoHydration,
1127
+ Portal,
1128
+ Properties,
1129
+ RequestContext,
1130
+ SVGElements,
1131
+ SVGNamespace,
1132
+ addEventListener,
1133
+ assign,
1134
+ classList,
1135
+ className,
1136
+ clearDelegatedEvents,
1137
+ delegateEvents,
1138
+ dynamicProperty,
1139
+ escape,
1140
+ voidFn as generateHydrationScript,
1141
+ voidFn as getAssets,
1142
+ getHydrationKey,
1143
+ getNextElement,
1144
+ getNextMarker,
1145
+ getNextMatch,
1146
+ getPropAlias,
1147
+ voidFn as getRequestEvent,
1148
+ hydrate,
1149
+ innerHTML,
1150
+ insert,
1151
+ isDev,
1152
+ isServer,
1153
+ render,
1154
+ renderToStream,
1155
+ renderToString,
1156
+ renderToStringAsync,
1157
+ resolveSSRNode,
1158
+ runHydrationEvents,
1159
+ setAttribute,
1160
+ setAttributeNS,
1161
+ setProperty,
1162
+ spread,
1163
+ ssr,
1164
+ ssrAttribute,
1165
+ ssrClassList,
1166
+ ssrElement,
1167
+ ssrHydrationKey,
1168
+ ssrSpread,
1169
+ ssrStyle,
1170
+ style,
1171
+ template,
1172
+ use,
1173
+ voidFn as useAssets
1174
+ };