solid-js 1.8.17 → 1.8.19

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 (52) hide show
  1. package/README.md +223 -223
  2. package/dist/dev.cjs +29 -24
  3. package/dist/dev.js +344 -580
  4. package/dist/server.cjs +31 -18
  5. package/dist/server.js +103 -185
  6. package/dist/solid.cjs +29 -24
  7. package/dist/solid.js +302 -507
  8. package/h/dist/h.cjs +12 -1
  9. package/h/dist/h.js +19 -34
  10. package/h/jsx-runtime/dist/jsx.js +1 -1
  11. package/h/jsx-runtime/types/index.d.ts +8 -11
  12. package/h/jsx-runtime/types/jsx.d.ts +5 -0
  13. package/h/types/hyperscript.d.ts +11 -11
  14. package/html/dist/html.js +94 -216
  15. package/html/types/lit.d.ts +33 -47
  16. package/package.json +3 -3
  17. package/store/dist/dev.js +43 -122
  18. package/store/dist/server.js +8 -19
  19. package/store/dist/store.js +40 -113
  20. package/store/types/index.d.ts +7 -21
  21. package/store/types/modifiers.d.ts +3 -6
  22. package/store/types/mutable.d.ts +2 -5
  23. package/store/types/server.d.ts +4 -12
  24. package/store/types/store.d.ts +62 -219
  25. package/types/index.d.ts +10 -75
  26. package/types/jsx.d.ts +5 -0
  27. package/types/reactive/array.d.ts +6 -14
  28. package/types/reactive/observable.d.ts +18 -26
  29. package/types/reactive/scheduler.d.ts +6 -9
  30. package/types/reactive/signal.d.ts +164 -255
  31. package/types/render/Suspense.d.ts +7 -7
  32. package/types/render/component.d.ts +33 -64
  33. package/types/render/flow.d.ts +37 -49
  34. package/types/render/hydration.d.ts +15 -13
  35. package/types/server/index.d.ts +2 -57
  36. package/types/server/reactive.d.ts +42 -73
  37. package/types/server/rendering.d.ts +99 -168
  38. package/universal/dist/dev.js +12 -28
  39. package/universal/dist/universal.js +12 -28
  40. package/universal/types/index.d.ts +1 -3
  41. package/universal/types/universal.d.ts +1 -0
  42. package/web/dist/dev.cjs +6 -4
  43. package/web/dist/dev.js +88 -630
  44. package/web/dist/server.cjs +6 -6
  45. package/web/dist/server.js +102 -216
  46. package/web/dist/web.cjs +6 -4
  47. package/web/dist/web.js +86 -621
  48. package/web/storage/dist/storage.js +3 -3
  49. package/web/types/client.d.ts +2 -2
  50. package/web/types/core.d.ts +1 -10
  51. package/web/types/index.d.ts +12 -29
  52. package/web/types/server-mock.d.ts +32 -47
package/web/dist/dev.js CHANGED
@@ -1,83 +1,14 @@
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";
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';
32
3
 
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
- "inert",
46
- "ismap",
47
- "loop",
48
- "multiple",
49
- "muted",
50
- "nomodule",
51
- "novalidate",
52
- "open",
53
- "playsinline",
54
- "readonly",
55
- "required",
56
- "reversed",
57
- "seamless",
58
- "selected"
59
- ];
60
- const Properties = /*#__PURE__*/ new Set([
61
- "className",
62
- "value",
63
- "readOnly",
64
- "formNoValidate",
65
- "isMap",
66
- "noModule",
67
- "playsInline",
68
- ...booleans
69
- ]);
70
- const ChildProperties = /*#__PURE__*/ new Set([
71
- "innerHTML",
72
- "textContent",
73
- "innerText",
74
- "children"
75
- ]);
76
- const Aliases = /*#__PURE__*/ Object.assign(Object.create(null), {
4
+ const booleans = ["allowfullscreen", "async", "autofocus", "autoplay", "checked", "controls", "default", "disabled", "formnovalidate", "hidden", "indeterminate", "inert", "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), {
77
8
  className: "class",
78
9
  htmlFor: "for"
79
10
  });
80
- const PropAliases = /*#__PURE__*/ Object.assign(Object.create(null), {
11
+ const PropAliases = /*#__PURE__*/Object.assign(Object.create(null), {
81
12
  class: "className",
82
13
  formnovalidate: {
83
14
  $: "formNoValidate",
@@ -104,396 +35,19 @@ const PropAliases = /*#__PURE__*/ Object.assign(Object.create(null), {
104
35
  });
105
36
  function getPropAlias(prop, tagName) {
106
37
  const a = PropAliases[prop];
107
- return typeof a === "object" ? (a[tagName] ? a["$"] : undefined) : a;
108
- }
109
- const DelegatedEvents = /*#__PURE__*/ new Set([
110
- "beforeinput",
111
- "click",
112
- "dblclick",
113
- "contextmenu",
114
- "focusin",
115
- "focusout",
116
- "input",
117
- "keydown",
118
- "keyup",
119
- "mousedown",
120
- "mousemove",
121
- "mouseout",
122
- "mouseover",
123
- "mouseup",
124
- "pointerdown",
125
- "pointermove",
126
- "pointerout",
127
- "pointerover",
128
- "pointerup",
129
- "touchend",
130
- "touchmove",
131
- "touchstart"
132
- ]);
133
- const SVGElements = /*#__PURE__*/ new Set([
134
- "altGlyph",
135
- "altGlyphDef",
136
- "altGlyphItem",
137
- "animate",
138
- "animateColor",
139
- "animateMotion",
140
- "animateTransform",
141
- "circle",
142
- "clipPath",
143
- "color-profile",
144
- "cursor",
145
- "defs",
146
- "desc",
147
- "ellipse",
148
- "feBlend",
149
- "feColorMatrix",
150
- "feComponentTransfer",
151
- "feComposite",
152
- "feConvolveMatrix",
153
- "feDiffuseLighting",
154
- "feDisplacementMap",
155
- "feDistantLight",
156
- "feDropShadow",
157
- "feFlood",
158
- "feFuncA",
159
- "feFuncB",
160
- "feFuncG",
161
- "feFuncR",
162
- "feGaussianBlur",
163
- "feImage",
164
- "feMerge",
165
- "feMergeNode",
166
- "feMorphology",
167
- "feOffset",
168
- "fePointLight",
169
- "feSpecularLighting",
170
- "feSpotLight",
171
- "feTile",
172
- "feTurbulence",
173
- "filter",
174
- "font",
175
- "font-face",
176
- "font-face-format",
177
- "font-face-name",
178
- "font-face-src",
179
- "font-face-uri",
180
- "foreignObject",
181
- "g",
182
- "glyph",
183
- "glyphRef",
184
- "hkern",
185
- "image",
186
- "line",
187
- "linearGradient",
188
- "marker",
189
- "mask",
190
- "metadata",
191
- "missing-glyph",
192
- "mpath",
193
- "path",
194
- "pattern",
195
- "polygon",
196
- "polyline",
197
- "radialGradient",
198
- "rect",
199
- "set",
200
- "stop",
201
- "svg",
202
- "switch",
203
- "symbol",
204
- "text",
205
- "textPath",
206
- "tref",
207
- "tspan",
208
- "use",
209
- "view",
210
- "vkern"
211
- ]);
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", "feDropShadow", "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"]);
212
46
  const SVGNamespace = {
213
47
  xlink: "http://www.w3.org/1999/xlink",
214
48
  xml: "http://www.w3.org/XML/1998/namespace"
215
49
  };
216
- const DOMElements = /*#__PURE__*/ new Set([
217
- "html",
218
- "base",
219
- "head",
220
- "link",
221
- "meta",
222
- "style",
223
- "title",
224
- "body",
225
- "address",
226
- "article",
227
- "aside",
228
- "footer",
229
- "header",
230
- "main",
231
- "nav",
232
- "section",
233
- "body",
234
- "blockquote",
235
- "dd",
236
- "div",
237
- "dl",
238
- "dt",
239
- "figcaption",
240
- "figure",
241
- "hr",
242
- "li",
243
- "ol",
244
- "p",
245
- "pre",
246
- "ul",
247
- "a",
248
- "abbr",
249
- "b",
250
- "bdi",
251
- "bdo",
252
- "br",
253
- "cite",
254
- "code",
255
- "data",
256
- "dfn",
257
- "em",
258
- "i",
259
- "kbd",
260
- "mark",
261
- "q",
262
- "rp",
263
- "rt",
264
- "ruby",
265
- "s",
266
- "samp",
267
- "small",
268
- "span",
269
- "strong",
270
- "sub",
271
- "sup",
272
- "time",
273
- "u",
274
- "var",
275
- "wbr",
276
- "area",
277
- "audio",
278
- "img",
279
- "map",
280
- "track",
281
- "video",
282
- "embed",
283
- "iframe",
284
- "object",
285
- "param",
286
- "picture",
287
- "portal",
288
- "source",
289
- "svg",
290
- "math",
291
- "canvas",
292
- "noscript",
293
- "script",
294
- "del",
295
- "ins",
296
- "caption",
297
- "col",
298
- "colgroup",
299
- "table",
300
- "tbody",
301
- "td",
302
- "tfoot",
303
- "th",
304
- "thead",
305
- "tr",
306
- "button",
307
- "datalist",
308
- "fieldset",
309
- "form",
310
- "input",
311
- "label",
312
- "legend",
313
- "meter",
314
- "optgroup",
315
- "option",
316
- "output",
317
- "progress",
318
- "select",
319
- "textarea",
320
- "details",
321
- "dialog",
322
- "menu",
323
- "summary",
324
- "details",
325
- "slot",
326
- "template",
327
- "acronym",
328
- "applet",
329
- "basefont",
330
- "bgsound",
331
- "big",
332
- "blink",
333
- "center",
334
- "content",
335
- "dir",
336
- "font",
337
- "frame",
338
- "frameset",
339
- "hgroup",
340
- "image",
341
- "keygen",
342
- "marquee",
343
- "menuitem",
344
- "nobr",
345
- "noembed",
346
- "noframes",
347
- "plaintext",
348
- "rb",
349
- "rtc",
350
- "shadow",
351
- "spacer",
352
- "strike",
353
- "tt",
354
- "xmp",
355
- "a",
356
- "abbr",
357
- "acronym",
358
- "address",
359
- "applet",
360
- "area",
361
- "article",
362
- "aside",
363
- "audio",
364
- "b",
365
- "base",
366
- "basefont",
367
- "bdi",
368
- "bdo",
369
- "bgsound",
370
- "big",
371
- "blink",
372
- "blockquote",
373
- "body",
374
- "br",
375
- "button",
376
- "canvas",
377
- "caption",
378
- "center",
379
- "cite",
380
- "code",
381
- "col",
382
- "colgroup",
383
- "content",
384
- "data",
385
- "datalist",
386
- "dd",
387
- "del",
388
- "details",
389
- "dfn",
390
- "dialog",
391
- "dir",
392
- "div",
393
- "dl",
394
- "dt",
395
- "em",
396
- "embed",
397
- "fieldset",
398
- "figcaption",
399
- "figure",
400
- "font",
401
- "footer",
402
- "form",
403
- "frame",
404
- "frameset",
405
- "head",
406
- "header",
407
- "hgroup",
408
- "hr",
409
- "html",
410
- "i",
411
- "iframe",
412
- "image",
413
- "img",
414
- "input",
415
- "ins",
416
- "kbd",
417
- "keygen",
418
- "label",
419
- "legend",
420
- "li",
421
- "link",
422
- "main",
423
- "map",
424
- "mark",
425
- "marquee",
426
- "menu",
427
- "menuitem",
428
- "meta",
429
- "meter",
430
- "nav",
431
- "nobr",
432
- "noembed",
433
- "noframes",
434
- "noscript",
435
- "object",
436
- "ol",
437
- "optgroup",
438
- "option",
439
- "output",
440
- "p",
441
- "param",
442
- "picture",
443
- "plaintext",
444
- "portal",
445
- "pre",
446
- "progress",
447
- "q",
448
- "rb",
449
- "rp",
450
- "rt",
451
- "rtc",
452
- "ruby",
453
- "s",
454
- "samp",
455
- "script",
456
- "section",
457
- "select",
458
- "shadow",
459
- "slot",
460
- "small",
461
- "source",
462
- "spacer",
463
- "span",
464
- "strike",
465
- "strong",
466
- "style",
467
- "sub",
468
- "summary",
469
- "sup",
470
- "table",
471
- "tbody",
472
- "td",
473
- "template",
474
- "textarea",
475
- "tfoot",
476
- "th",
477
- "thead",
478
- "time",
479
- "title",
480
- "tr",
481
- "track",
482
- "tt",
483
- "u",
484
- "ul",
485
- "var",
486
- "video",
487
- "wbr",
488
- "xmp",
489
- "input",
490
- "h1",
491
- "h2",
492
- "h3",
493
- "h4",
494
- "h5",
495
- "h6"
496
- ]);
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"]);
497
51
 
498
52
  function reconcileArrays(parentNode, a, b) {
499
53
  let bLength = b.length,
@@ -514,7 +68,7 @@ function reconcileArrays(parentNode, a, b) {
514
68
  bEnd--;
515
69
  }
516
70
  if (aEnd === aStart) {
517
- const node = bEnd < bLength ? (bStart ? b[bStart - 1].nextSibling : b[bEnd - bStart]) : after;
71
+ const node = bEnd < bLength ? bStart ? b[bStart - 1].nextSibling : b[bEnd - bStart] : after;
518
72
  while (bStart < bEnd) parentNode.insertBefore(b[bStart++], node);
519
73
  } else if (bEnd === bStart) {
520
74
  while (aStart < aEnd) {
@@ -555,16 +109,12 @@ function reconcileArrays(parentNode, a, b) {
555
109
  const $$EVENTS = "_$DX_DELEGATE";
556
110
  function render(code, element, init, options = {}) {
557
111
  if (!element) {
558
- throw new Error(
559
- "The `element` passed to `render(..., element)` doesn't exist. Make sure `element` exists in the document."
560
- );
112
+ throw new Error("The `element` passed to `render(..., element)` doesn't exist. Make sure `element` exists in the document.");
561
113
  }
562
114
  let disposer;
563
115
  createRoot(dispose => {
564
116
  disposer = dispose;
565
- element === document
566
- ? code()
567
- : insert(element, code(), element.firstChild ? null : undefined, init);
117
+ element === document ? code() : insert(element, code(), element.firstChild ? null : undefined, init);
568
118
  }, options.owner);
569
119
  return () => {
570
120
  disposer();
@@ -574,17 +124,12 @@ function render(code, element, init, options = {}) {
574
124
  function template(html, isCE, isSVG) {
575
125
  let node;
576
126
  const create = () => {
577
- if (sharedConfig.context)
578
- throw new Error(
579
- "Failed attempt to create new DOM elements during hydration. Check that the libraries you are using support hydration."
580
- );
127
+ if (sharedConfig.context) throw new Error("Failed attempt to create new DOM elements during hydration. Check that the libraries you are using support hydration.");
581
128
  const t = document.createElement("template");
582
129
  t.innerHTML = html;
583
130
  return isSVG ? t.content.firstChild.firstChild : t.content.firstChild;
584
131
  };
585
- const fn = isCE
586
- ? () => untrack(() => document.importNode(node || (node = create()), true))
587
- : () => (node || (node = create())).cloneNode(true);
132
+ const fn = isCE ? () => untrack(() => document.importNode(node || (node = create()), true)) : () => (node || (node = create())).cloneNode(true);
588
133
  fn.cloneNode = fn;
589
134
  return fn;
590
135
  }
@@ -610,18 +155,15 @@ function setProperty(node, name, value) {
610
155
  }
611
156
  function setAttribute(node, name, value) {
612
157
  if (!!sharedConfig.context && node.isConnected) return;
613
- if (value == null) node.removeAttribute(name);
614
- else node.setAttribute(name, value);
158
+ if (value == null) node.removeAttribute(name);else node.setAttribute(name, value);
615
159
  }
616
160
  function setAttributeNS(node, namespace, name, value) {
617
161
  if (!!sharedConfig.context && node.isConnected) return;
618
- if (value == null) node.removeAttributeNS(namespace, name);
619
- else node.setAttributeNS(namespace, name, value);
162
+ if (value == null) node.removeAttributeNS(namespace, name);else node.setAttributeNS(namespace, name, value);
620
163
  }
621
164
  function className(node, value) {
622
165
  if (!!sharedConfig.context && node.isConnected) return;
623
- if (value == null) node.removeAttribute("class");
624
- else node.className = value;
166
+ if (value == null) node.removeAttribute("class");else node.className = value;
625
167
  }
626
168
  function addEventListener(node, name, handler, delegate) {
627
169
  if (delegate) {
@@ -631,7 +173,7 @@ function addEventListener(node, name, handler, delegate) {
631
173
  } else node[`$$${name}`] = handler;
632
174
  } else if (Array.isArray(handler)) {
633
175
  const handlerFn = handler[0];
634
- node.addEventListener(name, (handler[0] = e => handlerFn.call(node, handler[1], e)));
176
+ node.addEventListener(name, handler[0] = e => handlerFn.call(node, handler[1], e));
635
177
  } else node.addEventListener(name, handler);
636
178
  }
637
179
  function classList(node, value, prev = {}) {
@@ -656,7 +198,7 @@ function classList(node, value, prev = {}) {
656
198
  function style(node, value, prev) {
657
199
  if (!value) return prev ? setAttribute(node, "style") : value;
658
200
  const nodeStyle = node.style;
659
- if (typeof value === "string") return (nodeStyle.cssText = value);
201
+ if (typeof value === "string") return nodeStyle.cssText = value;
660
202
  typeof prev === "string" && (nodeStyle.cssText = prev = undefined);
661
203
  prev || (prev = {});
662
204
  value || (value = {});
@@ -677,13 +219,9 @@ function style(node, value, prev) {
677
219
  function spread(node, props = {}, isSVG, skipChildren) {
678
220
  const prevProps = {};
679
221
  if (!skipChildren) {
680
- createRenderEffect(
681
- () => (prevProps.children = insertExpression(node, props.children, prevProps.children))
682
- );
222
+ createRenderEffect(() => prevProps.children = insertExpression(node, props.children, prevProps.children));
683
223
  }
684
- createRenderEffect(() =>
685
- typeof props.ref === "function" ? use(props.ref, node) : (props.ref = node)
686
- );
224
+ createRenderEffect(() => typeof props.ref === "function" && use(props.ref, node));
687
225
  createRenderEffect(() => assign(node, props, isSVG, true, prevProps, true));
688
226
  return prevProps;
689
227
  }
@@ -740,9 +278,8 @@ function hydrate$1(code, element, options = {}) {
740
278
  }
741
279
  function getNextElement(template) {
742
280
  let node, key;
743
- if (!sharedConfig.context || !(node = sharedConfig.registry.get((key = getHydrationKey())))) {
744
- if (sharedConfig.context)
745
- throw new Error(`Hydration Mismatch. Unable to find DOM nodes for hydration key: ${key}`);
281
+ if (!sharedConfig.context || !(node = sharedConfig.registry.get(key = getHydrationKey()))) {
282
+ if (sharedConfig.context) throw new Error(`Hydration Mismatch. Unable to find DOM nodes for hydration key: ${key}`);
746
283
  return template();
747
284
  }
748
285
  if (sharedConfig.completed) sharedConfig.completed.add(node);
@@ -761,8 +298,7 @@ function getNextMarker(start) {
761
298
  while (end) {
762
299
  if (end.nodeType === 8) {
763
300
  const v = end.nodeValue;
764
- if (v === "$") count++;
765
- else if (v === "/") {
301
+ if (v === "$") count++;else if (v === "/") {
766
302
  if (count === 0) return [end, current];
767
303
  count--;
768
304
  }
@@ -776,7 +312,10 @@ function getNextMarker(start) {
776
312
  function runHydrationEvents() {
777
313
  if (sharedConfig.events && !sharedConfig.events.queued) {
778
314
  queueMicrotask(() => {
779
- const { completed, events } = sharedConfig;
315
+ const {
316
+ completed,
317
+ events
318
+ } = sharedConfig;
780
319
  events.queued = false;
781
320
  while (events.length) {
782
321
  const [el, e] = events[0];
@@ -793,8 +332,7 @@ function toPropertyName(name) {
793
332
  }
794
333
  function toggleClassKey(node, key, value) {
795
334
  const classNames = key.trim().split(/\s+/);
796
- for (let i = 0, nameLen = classNames.length; i < nameLen; i++)
797
- node.classList.toggle(classNames[i], value);
335
+ for (let i = 0, nameLen = classNames.length; i < nameLen; i++) node.classList.toggle(classNames[i], value);
798
336
  }
799
337
  function assignProp(node, prop, value, prev, isSVG, skipRef) {
800
338
  let isCE, isProp, isChildProp, propAlias, forceProp;
@@ -824,30 +362,21 @@ function assignProp(node, prop, value, prev, isSVG, skipRef) {
824
362
  }
825
363
  } else if (prop.slice(0, 5) === "attr:") {
826
364
  setAttribute(node, prop.slice(5), value);
827
- } else if (
828
- (forceProp = prop.slice(0, 5) === "prop:") ||
829
- (isChildProp = ChildProperties.has(prop)) ||
830
- (!isSVG &&
831
- ((propAlias = getPropAlias(prop, node.tagName)) || (isProp = Properties.has(prop)))) ||
832
- (isCE = node.nodeName.includes("-"))
833
- ) {
365
+ } 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("-"))) {
834
366
  if (forceProp) {
835
367
  prop = prop.slice(5);
836
368
  isProp = true;
837
369
  } else if (!!sharedConfig.context && node.isConnected) return value;
838
- if (prop === "class" || prop === "className") className(node, value);
839
- else if (isCE && !isProp && !isChildProp) node[toPropertyName(prop)] = value;
840
- else node[propAlias || prop] = value;
370
+ if (prop === "class" || prop === "className") className(node, value);else if (isCE && !isProp && !isChildProp) node[toPropertyName(prop)] = value;else node[propAlias || prop] = value;
841
371
  } else {
842
372
  const ns = isSVG && prop.indexOf(":") > -1 && SVGNamespace[prop.split(":")[0]];
843
- if (ns) setAttributeNS(node, ns, prop, value);
844
- else setAttribute(node, Aliases[prop] || prop, value);
373
+ if (ns) setAttributeNS(node, ns, prop, value);else setAttribute(node, Aliases[prop] || prop, value);
845
374
  }
846
375
  return value;
847
376
  }
848
377
  function eventHandler(e) {
849
378
  const key = `$$${e.type}`;
850
- let node = (e.composedPath && e.composedPath()[0]) || e.target;
379
+ let node = e.composedPath && e.composedPath()[0] || e.target;
851
380
  if (e.target !== node) {
852
381
  Object.defineProperty(e, "target", {
853
382
  configurable: true,
@@ -878,8 +407,7 @@ function insertExpression(parent, value, current, marker, unwrapArray) {
878
407
  let cleaned = [];
879
408
  for (let i = 0; i < current.length; i++) {
880
409
  const node = current[i];
881
- if (node.nodeType === 8 && node.data.slice(0, 2) === "!$") node.remove();
882
- else cleaned.push(node);
410
+ if (node.nodeType === 8 && node.data.slice(0, 2) === "!$") node.remove();else cleaned.push(node);
883
411
  }
884
412
  current = cleaned;
885
413
  }
@@ -887,10 +415,13 @@ function insertExpression(parent, value, current, marker, unwrapArray) {
887
415
  if (value === current) return current;
888
416
  const t = typeof value,
889
417
  multi = marker !== undefined;
890
- parent = (multi && current[0] && current[0].parentNode) || parent;
418
+ parent = multi && current[0] && current[0].parentNode || parent;
891
419
  if (t === "string" || t === "number") {
892
420
  if (hydrating) return current;
893
- if (t === "number") value = value.toString();
421
+ if (t === "number") {
422
+ value = value.toString();
423
+ if (value === current) return current;
424
+ }
894
425
  if (multi) {
895
426
  let node = current[0];
896
427
  if (node && node.nodeType === 3) {
@@ -916,7 +447,7 @@ function insertExpression(parent, value, current, marker, unwrapArray) {
916
447
  const array = [];
917
448
  const currentArray = current && Array.isArray(current);
918
449
  if (normalizeIncomingArray(array, value, current, unwrapArray)) {
919
- createRenderEffect(() => (current = insertExpression(parent, array, current, marker, true)));
450
+ createRenderEffect(() => current = insertExpression(parent, array, current, marker, true));
920
451
  return () => current;
921
452
  }
922
453
  if (hydrating) {
@@ -925,7 +456,7 @@ function insertExpression(parent, value, current, marker, unwrapArray) {
925
456
  let node = array[0];
926
457
  let nodes = [node];
927
458
  while ((node = node.nextSibling) !== marker) nodes.push(node);
928
- return (current = nodes);
459
+ return current = nodes;
929
460
  }
930
461
  if (array.length === 0) {
931
462
  current = cleanChildren(parent, current, marker);
@@ -940,9 +471,9 @@ function insertExpression(parent, value, current, marker, unwrapArray) {
940
471
  }
941
472
  current = array;
942
473
  } else if (value.nodeType) {
943
- if (hydrating && value.parentNode) return (current = multi ? [value] : value);
474
+ if (hydrating && value.parentNode) return current = multi ? [value] : value;
944
475
  if (Array.isArray(current)) {
945
- if (multi) return (current = cleanChildren(parent, current, marker, value));
476
+ if (multi) return current = cleanChildren(parent, current, marker, value);
946
477
  cleanChildren(parent, current, null, value);
947
478
  } else if (current == null || current === "" || !parent.firstChild) {
948
479
  parent.appendChild(value);
@@ -957,28 +488,21 @@ function normalizeIncomingArray(normalized, array, current, unwrap) {
957
488
  let item = array[i],
958
489
  prev = current && current[normalized.length],
959
490
  t;
960
- if (item == null || item === true || item === false);
961
- else if ((t = typeof item) === "object" && item.nodeType) {
491
+ if (item == null || item === true || item === false) ; else if ((t = typeof item) === "object" && item.nodeType) {
962
492
  normalized.push(item);
963
493
  } else if (Array.isArray(item)) {
964
494
  dynamic = normalizeIncomingArray(normalized, item, prev) || dynamic;
965
495
  } else if (t === "function") {
966
496
  if (unwrap) {
967
497
  while (typeof item === "function") item = item();
968
- dynamic =
969
- normalizeIncomingArray(
970
- normalized,
971
- Array.isArray(item) ? item : [item],
972
- Array.isArray(prev) ? prev : [prev]
973
- ) || dynamic;
498
+ dynamic = normalizeIncomingArray(normalized, Array.isArray(item) ? item : [item], Array.isArray(prev) ? prev : [prev]) || dynamic;
974
499
  } else {
975
500
  normalized.push(item);
976
501
  dynamic = true;
977
502
  }
978
503
  } else {
979
504
  const value = String(item);
980
- if (prev && prev.nodeType === 3 && prev.data === value) normalized.push(prev);
981
- else normalized.push(document.createTextNode(value));
505
+ if (prev && prev.nodeType === 3 && prev.data === value) normalized.push(prev);else normalized.push(document.createTextNode(value));
982
506
  }
983
507
  }
984
508
  return dynamic;
@@ -987,7 +511,7 @@ function appendNodes(parent, array, marker = null) {
987
511
  for (let i = 0, len = array.length; i < len; i++) parent.insertBefore(array[i], marker);
988
512
  }
989
513
  function cleanChildren(parent, current, marker, replacement) {
990
- if (marker === undefined) return (parent.textContent = "");
514
+ if (marker === undefined) return parent.textContent = "";
991
515
  const node = replacement || document.createTextNode("");
992
516
  if (current.length) {
993
517
  let inserted = false;
@@ -995,9 +519,7 @@ function cleanChildren(parent, current, marker, replacement) {
995
519
  const el = current[i];
996
520
  if (node !== el) {
997
521
  const isParent = el.parentNode === parent;
998
- if (!inserted && !i)
999
- isParent ? parent.replaceChild(node, el) : parent.insertBefore(node, marker);
1000
- else isParent && el.remove();
522
+ if (!inserted && !i) isParent ? parent.replaceChild(node, el) : parent.insertBefore(node, marker);else isParent && el.remove();
1001
523
  } else inserted = true;
1002
524
  }
1003
525
  } else parent.insertBefore(node, marker);
@@ -1008,13 +530,11 @@ function gatherHydratable(element, root) {
1008
530
  for (let i = 0; i < templates.length; i++) {
1009
531
  const node = templates[i];
1010
532
  const key = node.getAttribute("data-hk");
1011
- if ((!root || key.startsWith(root)) && !sharedConfig.registry.has(key))
1012
- sharedConfig.registry.set(key, node);
533
+ if ((!root || key.startsWith(root)) && !sharedConfig.registry.has(key)) sharedConfig.registry.set(key, node);
1013
534
  }
1014
535
  }
1015
536
  function getHydrationKey() {
1016
- const hydrate = sharedConfig.context;
1017
- return `${hydrate.id}${hydrate.count++}`;
537
+ return sharedConfig.getNextContextId();
1018
538
  }
1019
539
  function NoHydration(props) {
1020
540
  return sharedConfig.context ? undefined : props.children;
@@ -1062,47 +582,42 @@ const hydrate = (...args) => {
1062
582
  return hydrate$1(...args);
1063
583
  };
1064
584
  function Portal(props) {
1065
- const { useShadow } = props,
585
+ const {
586
+ useShadow
587
+ } = props,
1066
588
  marker = document.createTextNode(""),
1067
589
  mount = () => props.mount || document.body,
1068
590
  owner = getOwner();
1069
591
  let content;
1070
592
  let hydrating = !!sharedConfig.context;
1071
- createEffect(
1072
- () => {
1073
- if (hydrating) getOwner().user = hydrating = false;
1074
- content || (content = runWithOwner(owner, () => createMemo(() => props.children)));
1075
- const el = mount();
1076
- if (el instanceof HTMLHeadElement) {
1077
- const [clean, setClean] = createSignal(false);
1078
- const cleanup = () => setClean(true);
1079
- createRoot(dispose => insert(el, () => (!clean() ? content() : dispose()), null));
1080
- onCleanup(cleanup);
1081
- } else {
1082
- const container = createElement(props.isSVG ? "g" : "div", props.isSVG),
1083
- renderRoot =
1084
- useShadow && container.attachShadow
1085
- ? container.attachShadow({
1086
- mode: "open"
1087
- })
1088
- : container;
1089
- Object.defineProperty(container, "_$host", {
1090
- get() {
1091
- return marker.parentNode;
1092
- },
1093
- configurable: true
1094
- });
1095
- insert(renderRoot, content);
1096
- el.appendChild(container);
1097
- props.ref && props.ref(container);
1098
- onCleanup(() => el.removeChild(container));
1099
- }
1100
- },
1101
- undefined,
1102
- {
1103
- render: !hydrating
593
+ createEffect(() => {
594
+ if (hydrating) getOwner().user = hydrating = false;
595
+ content || (content = runWithOwner(owner, () => createMemo(() => props.children)));
596
+ const el = mount();
597
+ if (el instanceof HTMLHeadElement) {
598
+ const [clean, setClean] = createSignal(false);
599
+ const cleanup = () => setClean(true);
600
+ createRoot(dispose => insert(el, () => !clean() ? content() : dispose(), null));
601
+ onCleanup(cleanup);
602
+ } else {
603
+ const container = createElement(props.isSVG ? "g" : "div", props.isSVG),
604
+ renderRoot = useShadow && container.attachShadow ? container.attachShadow({
605
+ mode: "open"
606
+ }) : container;
607
+ Object.defineProperty(container, "_$host", {
608
+ get() {
609
+ return marker.parentNode;
610
+ },
611
+ configurable: true
612
+ });
613
+ insert(renderRoot, content);
614
+ el.appendChild(container);
615
+ props.ref && props.ref(container);
616
+ onCleanup(() => el.removeChild(container));
1104
617
  }
1105
- );
618
+ }, undefined, {
619
+ render: !hydrating
620
+ });
1106
621
  return marker;
1107
622
  }
1108
623
  function Dynamic(props) {
@@ -1125,61 +640,4 @@ function Dynamic(props) {
1125
640
  });
1126
641
  }
1127
642
 
1128
- export {
1129
- Aliases,
1130
- voidFn as Assets,
1131
- ChildProperties,
1132
- DOMElements,
1133
- DelegatedEvents,
1134
- Dynamic,
1135
- Hydration,
1136
- voidFn as HydrationScript,
1137
- NoHydration,
1138
- Portal,
1139
- Properties,
1140
- RequestContext,
1141
- SVGElements,
1142
- SVGNamespace,
1143
- addEventListener,
1144
- assign,
1145
- classList,
1146
- className,
1147
- clearDelegatedEvents,
1148
- delegateEvents,
1149
- dynamicProperty,
1150
- escape,
1151
- voidFn as generateHydrationScript,
1152
- voidFn as getAssets,
1153
- getHydrationKey,
1154
- getNextElement,
1155
- getNextMarker,
1156
- getNextMatch,
1157
- getPropAlias,
1158
- voidFn as getRequestEvent,
1159
- hydrate,
1160
- innerHTML,
1161
- insert,
1162
- isDev,
1163
- isServer,
1164
- render,
1165
- renderToStream,
1166
- renderToString,
1167
- renderToStringAsync,
1168
- resolveSSRNode,
1169
- runHydrationEvents,
1170
- setAttribute,
1171
- setAttributeNS,
1172
- setProperty,
1173
- spread,
1174
- ssr,
1175
- ssrAttribute,
1176
- ssrClassList,
1177
- ssrElement,
1178
- ssrHydrationKey,
1179
- ssrSpread,
1180
- ssrStyle,
1181
- style,
1182
- template,
1183
- use,
1184
- voidFn as useAssets
1185
- };
643
+ export { Aliases, voidFn as Assets, ChildProperties, DOMElements, DelegatedEvents, Dynamic, Hydration, voidFn as HydrationScript, NoHydration, Portal, Properties, RequestContext, SVGElements, SVGNamespace, addEventListener, assign, classList, className, clearDelegatedEvents, delegateEvents, dynamicProperty, escape, voidFn as generateHydrationScript, voidFn as getAssets, getHydrationKey, getNextElement, getNextMarker, getNextMatch, getPropAlias, voidFn as getRequestEvent, 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 };