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/web.js CHANGED
@@ -1,82 +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
- } from "solid-js";
15
- export {
16
- ErrorBoundary,
17
- For,
18
- Index,
19
- Match,
20
- Show,
21
- Suspense,
22
- SuspenseList,
23
- Switch,
24
- createComponent,
25
- createRenderEffect as effect,
26
- getOwner,
27
- createMemo as memo,
28
- mergeProps,
29
- untrack
30
- } from "solid-js";
1
+ import { createRoot, sharedConfig, createRenderEffect, untrack, enableHydration, getOwner, createEffect, runWithOwner, createMemo, createSignal, onCleanup, splitProps } 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';
31
3
 
32
- const booleans = [
33
- "allowfullscreen",
34
- "async",
35
- "autofocus",
36
- "autoplay",
37
- "checked",
38
- "controls",
39
- "default",
40
- "disabled",
41
- "formnovalidate",
42
- "hidden",
43
- "indeterminate",
44
- "inert",
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), {
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), {
76
8
  className: "class",
77
9
  htmlFor: "for"
78
10
  });
79
- const PropAliases = /*#__PURE__*/ Object.assign(Object.create(null), {
11
+ const PropAliases = /*#__PURE__*/Object.assign(Object.create(null), {
80
12
  class: "className",
81
13
  formnovalidate: {
82
14
  $: "formNoValidate",
@@ -103,396 +35,19 @@ const PropAliases = /*#__PURE__*/ Object.assign(Object.create(null), {
103
35
  });
104
36
  function getPropAlias(prop, tagName) {
105
37
  const a = PropAliases[prop];
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
- "feDropShadow",
156
- "feFlood",
157
- "feFuncA",
158
- "feFuncB",
159
- "feFuncG",
160
- "feFuncR",
161
- "feGaussianBlur",
162
- "feImage",
163
- "feMerge",
164
- "feMergeNode",
165
- "feMorphology",
166
- "feOffset",
167
- "fePointLight",
168
- "feSpecularLighting",
169
- "feSpotLight",
170
- "feTile",
171
- "feTurbulence",
172
- "filter",
173
- "font",
174
- "font-face",
175
- "font-face-format",
176
- "font-face-name",
177
- "font-face-src",
178
- "font-face-uri",
179
- "foreignObject",
180
- "g",
181
- "glyph",
182
- "glyphRef",
183
- "hkern",
184
- "image",
185
- "line",
186
- "linearGradient",
187
- "marker",
188
- "mask",
189
- "metadata",
190
- "missing-glyph",
191
- "mpath",
192
- "path",
193
- "pattern",
194
- "polygon",
195
- "polyline",
196
- "radialGradient",
197
- "rect",
198
- "set",
199
- "stop",
200
- "svg",
201
- "switch",
202
- "symbol",
203
- "text",
204
- "textPath",
205
- "tref",
206
- "tspan",
207
- "use",
208
- "view",
209
- "vkern"
210
- ]);
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"]);
211
46
  const SVGNamespace = {
212
47
  xlink: "http://www.w3.org/1999/xlink",
213
48
  xml: "http://www.w3.org/XML/1998/namespace"
214
49
  };
215
- const DOMElements = /*#__PURE__*/ new Set([
216
- "html",
217
- "base",
218
- "head",
219
- "link",
220
- "meta",
221
- "style",
222
- "title",
223
- "body",
224
- "address",
225
- "article",
226
- "aside",
227
- "footer",
228
- "header",
229
- "main",
230
- "nav",
231
- "section",
232
- "body",
233
- "blockquote",
234
- "dd",
235
- "div",
236
- "dl",
237
- "dt",
238
- "figcaption",
239
- "figure",
240
- "hr",
241
- "li",
242
- "ol",
243
- "p",
244
- "pre",
245
- "ul",
246
- "a",
247
- "abbr",
248
- "b",
249
- "bdi",
250
- "bdo",
251
- "br",
252
- "cite",
253
- "code",
254
- "data",
255
- "dfn",
256
- "em",
257
- "i",
258
- "kbd",
259
- "mark",
260
- "q",
261
- "rp",
262
- "rt",
263
- "ruby",
264
- "s",
265
- "samp",
266
- "small",
267
- "span",
268
- "strong",
269
- "sub",
270
- "sup",
271
- "time",
272
- "u",
273
- "var",
274
- "wbr",
275
- "area",
276
- "audio",
277
- "img",
278
- "map",
279
- "track",
280
- "video",
281
- "embed",
282
- "iframe",
283
- "object",
284
- "param",
285
- "picture",
286
- "portal",
287
- "source",
288
- "svg",
289
- "math",
290
- "canvas",
291
- "noscript",
292
- "script",
293
- "del",
294
- "ins",
295
- "caption",
296
- "col",
297
- "colgroup",
298
- "table",
299
- "tbody",
300
- "td",
301
- "tfoot",
302
- "th",
303
- "thead",
304
- "tr",
305
- "button",
306
- "datalist",
307
- "fieldset",
308
- "form",
309
- "input",
310
- "label",
311
- "legend",
312
- "meter",
313
- "optgroup",
314
- "option",
315
- "output",
316
- "progress",
317
- "select",
318
- "textarea",
319
- "details",
320
- "dialog",
321
- "menu",
322
- "summary",
323
- "details",
324
- "slot",
325
- "template",
326
- "acronym",
327
- "applet",
328
- "basefont",
329
- "bgsound",
330
- "big",
331
- "blink",
332
- "center",
333
- "content",
334
- "dir",
335
- "font",
336
- "frame",
337
- "frameset",
338
- "hgroup",
339
- "image",
340
- "keygen",
341
- "marquee",
342
- "menuitem",
343
- "nobr",
344
- "noembed",
345
- "noframes",
346
- "plaintext",
347
- "rb",
348
- "rtc",
349
- "shadow",
350
- "spacer",
351
- "strike",
352
- "tt",
353
- "xmp",
354
- "a",
355
- "abbr",
356
- "acronym",
357
- "address",
358
- "applet",
359
- "area",
360
- "article",
361
- "aside",
362
- "audio",
363
- "b",
364
- "base",
365
- "basefont",
366
- "bdi",
367
- "bdo",
368
- "bgsound",
369
- "big",
370
- "blink",
371
- "blockquote",
372
- "body",
373
- "br",
374
- "button",
375
- "canvas",
376
- "caption",
377
- "center",
378
- "cite",
379
- "code",
380
- "col",
381
- "colgroup",
382
- "content",
383
- "data",
384
- "datalist",
385
- "dd",
386
- "del",
387
- "details",
388
- "dfn",
389
- "dialog",
390
- "dir",
391
- "div",
392
- "dl",
393
- "dt",
394
- "em",
395
- "embed",
396
- "fieldset",
397
- "figcaption",
398
- "figure",
399
- "font",
400
- "footer",
401
- "form",
402
- "frame",
403
- "frameset",
404
- "head",
405
- "header",
406
- "hgroup",
407
- "hr",
408
- "html",
409
- "i",
410
- "iframe",
411
- "image",
412
- "img",
413
- "input",
414
- "ins",
415
- "kbd",
416
- "keygen",
417
- "label",
418
- "legend",
419
- "li",
420
- "link",
421
- "main",
422
- "map",
423
- "mark",
424
- "marquee",
425
- "menu",
426
- "menuitem",
427
- "meta",
428
- "meter",
429
- "nav",
430
- "nobr",
431
- "noembed",
432
- "noframes",
433
- "noscript",
434
- "object",
435
- "ol",
436
- "optgroup",
437
- "option",
438
- "output",
439
- "p",
440
- "param",
441
- "picture",
442
- "plaintext",
443
- "portal",
444
- "pre",
445
- "progress",
446
- "q",
447
- "rb",
448
- "rp",
449
- "rt",
450
- "rtc",
451
- "ruby",
452
- "s",
453
- "samp",
454
- "script",
455
- "section",
456
- "select",
457
- "shadow",
458
- "slot",
459
- "small",
460
- "source",
461
- "spacer",
462
- "span",
463
- "strike",
464
- "strong",
465
- "style",
466
- "sub",
467
- "summary",
468
- "sup",
469
- "table",
470
- "tbody",
471
- "td",
472
- "template",
473
- "textarea",
474
- "tfoot",
475
- "th",
476
- "thead",
477
- "time",
478
- "title",
479
- "tr",
480
- "track",
481
- "tt",
482
- "u",
483
- "ul",
484
- "var",
485
- "video",
486
- "wbr",
487
- "xmp",
488
- "input",
489
- "h1",
490
- "h2",
491
- "h3",
492
- "h4",
493
- "h5",
494
- "h6"
495
- ]);
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"]);
496
51
 
497
52
  function reconcileArrays(parentNode, a, b) {
498
53
  let bLength = b.length,
@@ -513,7 +68,7 @@ function reconcileArrays(parentNode, a, b) {
513
68
  bEnd--;
514
69
  }
515
70
  if (aEnd === aStart) {
516
- 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;
517
72
  while (bStart < bEnd) parentNode.insertBefore(b[bStart++], node);
518
73
  } else if (bEnd === bStart) {
519
74
  while (aStart < aEnd) {
@@ -556,9 +111,7 @@ function render(code, element, init, options = {}) {
556
111
  let disposer;
557
112
  createRoot(dispose => {
558
113
  disposer = dispose;
559
- element === document
560
- ? code()
561
- : insert(element, code(), element.firstChild ? null : undefined, init);
114
+ element === document ? code() : insert(element, code(), element.firstChild ? null : undefined, init);
562
115
  }, options.owner);
563
116
  return () => {
564
117
  disposer();
@@ -572,9 +125,7 @@ function template(html, isCE, isSVG) {
572
125
  t.innerHTML = html;
573
126
  return isSVG ? t.content.firstChild.firstChild : t.content.firstChild;
574
127
  };
575
- const fn = isCE
576
- ? () => untrack(() => document.importNode(node || (node = create()), true))
577
- : () => (node || (node = create())).cloneNode(true);
128
+ const fn = isCE ? () => untrack(() => document.importNode(node || (node = create()), true)) : () => (node || (node = create())).cloneNode(true);
578
129
  fn.cloneNode = fn;
579
130
  return fn;
580
131
  }
@@ -600,18 +151,15 @@ function setProperty(node, name, value) {
600
151
  }
601
152
  function setAttribute(node, name, value) {
602
153
  if (!!sharedConfig.context && node.isConnected) return;
603
- if (value == null) node.removeAttribute(name);
604
- else node.setAttribute(name, value);
154
+ if (value == null) node.removeAttribute(name);else node.setAttribute(name, value);
605
155
  }
606
156
  function setAttributeNS(node, namespace, name, value) {
607
157
  if (!!sharedConfig.context && node.isConnected) return;
608
- if (value == null) node.removeAttributeNS(namespace, name);
609
- else node.setAttributeNS(namespace, name, value);
158
+ if (value == null) node.removeAttributeNS(namespace, name);else node.setAttributeNS(namespace, name, value);
610
159
  }
611
160
  function className(node, value) {
612
161
  if (!!sharedConfig.context && node.isConnected) return;
613
- if (value == null) node.removeAttribute("class");
614
- else node.className = value;
162
+ if (value == null) node.removeAttribute("class");else node.className = value;
615
163
  }
616
164
  function addEventListener(node, name, handler, delegate) {
617
165
  if (delegate) {
@@ -621,7 +169,7 @@ function addEventListener(node, name, handler, delegate) {
621
169
  } else node[`$$${name}`] = handler;
622
170
  } else if (Array.isArray(handler)) {
623
171
  const handlerFn = handler[0];
624
- node.addEventListener(name, (handler[0] = e => handlerFn.call(node, handler[1], e)));
172
+ node.addEventListener(name, handler[0] = e => handlerFn.call(node, handler[1], e));
625
173
  } else node.addEventListener(name, handler);
626
174
  }
627
175
  function classList(node, value, prev = {}) {
@@ -646,7 +194,7 @@ function classList(node, value, prev = {}) {
646
194
  function style(node, value, prev) {
647
195
  if (!value) return prev ? setAttribute(node, "style") : value;
648
196
  const nodeStyle = node.style;
649
- if (typeof value === "string") return (nodeStyle.cssText = value);
197
+ if (typeof value === "string") return nodeStyle.cssText = value;
650
198
  typeof prev === "string" && (nodeStyle.cssText = prev = undefined);
651
199
  prev || (prev = {});
652
200
  value || (value = {});
@@ -667,13 +215,9 @@ function style(node, value, prev) {
667
215
  function spread(node, props = {}, isSVG, skipChildren) {
668
216
  const prevProps = {};
669
217
  if (!skipChildren) {
670
- createRenderEffect(
671
- () => (prevProps.children = insertExpression(node, props.children, prevProps.children))
672
- );
218
+ createRenderEffect(() => prevProps.children = insertExpression(node, props.children, prevProps.children));
673
219
  }
674
- createRenderEffect(() =>
675
- typeof props.ref === "function" ? use(props.ref, node) : (props.ref = node)
676
- );
220
+ createRenderEffect(() => typeof props.ref === "function" && use(props.ref, node));
677
221
  createRenderEffect(() => assign(node, props, isSVG, true, prevProps, true));
678
222
  return prevProps;
679
223
  }
@@ -730,7 +274,7 @@ function hydrate$1(code, element, options = {}) {
730
274
  }
731
275
  function getNextElement(template) {
732
276
  let node, key;
733
- if (!sharedConfig.context || !(node = sharedConfig.registry.get((key = getHydrationKey())))) {
277
+ if (!sharedConfig.context || !(node = sharedConfig.registry.get(key = getHydrationKey()))) {
734
278
  return template();
735
279
  }
736
280
  if (sharedConfig.completed) sharedConfig.completed.add(node);
@@ -749,8 +293,7 @@ function getNextMarker(start) {
749
293
  while (end) {
750
294
  if (end.nodeType === 8) {
751
295
  const v = end.nodeValue;
752
- if (v === "$") count++;
753
- else if (v === "/") {
296
+ if (v === "$") count++;else if (v === "/") {
754
297
  if (count === 0) return [end, current];
755
298
  count--;
756
299
  }
@@ -764,7 +307,10 @@ function getNextMarker(start) {
764
307
  function runHydrationEvents() {
765
308
  if (sharedConfig.events && !sharedConfig.events.queued) {
766
309
  queueMicrotask(() => {
767
- const { completed, events } = sharedConfig;
310
+ const {
311
+ completed,
312
+ events
313
+ } = sharedConfig;
768
314
  events.queued = false;
769
315
  while (events.length) {
770
316
  const [el, e] = events[0];
@@ -781,8 +327,7 @@ function toPropertyName(name) {
781
327
  }
782
328
  function toggleClassKey(node, key, value) {
783
329
  const classNames = key.trim().split(/\s+/);
784
- for (let i = 0, nameLen = classNames.length; i < nameLen; i++)
785
- node.classList.toggle(classNames[i], value);
330
+ for (let i = 0, nameLen = classNames.length; i < nameLen; i++) node.classList.toggle(classNames[i], value);
786
331
  }
787
332
  function assignProp(node, prop, value, prev, isSVG, skipRef) {
788
333
  let isCE, isProp, isChildProp, propAlias, forceProp;
@@ -812,30 +357,21 @@ function assignProp(node, prop, value, prev, isSVG, skipRef) {
812
357
  }
813
358
  } else if (prop.slice(0, 5) === "attr:") {
814
359
  setAttribute(node, prop.slice(5), value);
815
- } else if (
816
- (forceProp = prop.slice(0, 5) === "prop:") ||
817
- (isChildProp = ChildProperties.has(prop)) ||
818
- (!isSVG &&
819
- ((propAlias = getPropAlias(prop, node.tagName)) || (isProp = Properties.has(prop)))) ||
820
- (isCE = node.nodeName.includes("-"))
821
- ) {
360
+ } 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("-"))) {
822
361
  if (forceProp) {
823
362
  prop = prop.slice(5);
824
363
  isProp = true;
825
364
  } else if (!!sharedConfig.context && node.isConnected) return value;
826
- if (prop === "class" || prop === "className") className(node, value);
827
- else if (isCE && !isProp && !isChildProp) node[toPropertyName(prop)] = value;
828
- else node[propAlias || prop] = value;
365
+ if (prop === "class" || prop === "className") className(node, value);else if (isCE && !isProp && !isChildProp) node[toPropertyName(prop)] = value;else node[propAlias || prop] = value;
829
366
  } else {
830
367
  const ns = isSVG && prop.indexOf(":") > -1 && SVGNamespace[prop.split(":")[0]];
831
- if (ns) setAttributeNS(node, ns, prop, value);
832
- else setAttribute(node, Aliases[prop] || prop, value);
368
+ if (ns) setAttributeNS(node, ns, prop, value);else setAttribute(node, Aliases[prop] || prop, value);
833
369
  }
834
370
  return value;
835
371
  }
836
372
  function eventHandler(e) {
837
373
  const key = `$$${e.type}`;
838
- let node = (e.composedPath && e.composedPath()[0]) || e.target;
374
+ let node = e.composedPath && e.composedPath()[0] || e.target;
839
375
  if (e.target !== node) {
840
376
  Object.defineProperty(e, "target", {
841
377
  configurable: true,
@@ -866,8 +402,7 @@ function insertExpression(parent, value, current, marker, unwrapArray) {
866
402
  let cleaned = [];
867
403
  for (let i = 0; i < current.length; i++) {
868
404
  const node = current[i];
869
- if (node.nodeType === 8 && node.data.slice(0, 2) === "!$") node.remove();
870
- else cleaned.push(node);
405
+ if (node.nodeType === 8 && node.data.slice(0, 2) === "!$") node.remove();else cleaned.push(node);
871
406
  }
872
407
  current = cleaned;
873
408
  }
@@ -875,10 +410,13 @@ function insertExpression(parent, value, current, marker, unwrapArray) {
875
410
  if (value === current) return current;
876
411
  const t = typeof value,
877
412
  multi = marker !== undefined;
878
- parent = (multi && current[0] && current[0].parentNode) || parent;
413
+ parent = multi && current[0] && current[0].parentNode || parent;
879
414
  if (t === "string" || t === "number") {
880
415
  if (hydrating) return current;
881
- if (t === "number") value = value.toString();
416
+ if (t === "number") {
417
+ value = value.toString();
418
+ if (value === current) return current;
419
+ }
882
420
  if (multi) {
883
421
  let node = current[0];
884
422
  if (node && node.nodeType === 3) {
@@ -904,7 +442,7 @@ function insertExpression(parent, value, current, marker, unwrapArray) {
904
442
  const array = [];
905
443
  const currentArray = current && Array.isArray(current);
906
444
  if (normalizeIncomingArray(array, value, current, unwrapArray)) {
907
- createRenderEffect(() => (current = insertExpression(parent, array, current, marker, true)));
445
+ createRenderEffect(() => current = insertExpression(parent, array, current, marker, true));
908
446
  return () => current;
909
447
  }
910
448
  if (hydrating) {
@@ -913,7 +451,7 @@ function insertExpression(parent, value, current, marker, unwrapArray) {
913
451
  let node = array[0];
914
452
  let nodes = [node];
915
453
  while ((node = node.nextSibling) !== marker) nodes.push(node);
916
- return (current = nodes);
454
+ return current = nodes;
917
455
  }
918
456
  if (array.length === 0) {
919
457
  current = cleanChildren(parent, current, marker);
@@ -928,15 +466,15 @@ function insertExpression(parent, value, current, marker, unwrapArray) {
928
466
  }
929
467
  current = array;
930
468
  } else if (value.nodeType) {
931
- if (hydrating && value.parentNode) return (current = multi ? [value] : value);
469
+ if (hydrating && value.parentNode) return current = multi ? [value] : value;
932
470
  if (Array.isArray(current)) {
933
- if (multi) return (current = cleanChildren(parent, current, marker, value));
471
+ if (multi) return current = cleanChildren(parent, current, marker, value);
934
472
  cleanChildren(parent, current, null, value);
935
473
  } else if (current == null || current === "" || !parent.firstChild) {
936
474
  parent.appendChild(value);
937
475
  } else parent.replaceChild(value, parent.firstChild);
938
476
  current = value;
939
- } else;
477
+ } else ;
940
478
  return current;
941
479
  }
942
480
  function normalizeIncomingArray(normalized, array, current, unwrap) {
@@ -945,28 +483,21 @@ function normalizeIncomingArray(normalized, array, current, unwrap) {
945
483
  let item = array[i],
946
484
  prev = current && current[normalized.length],
947
485
  t;
948
- if (item == null || item === true || item === false);
949
- else if ((t = typeof item) === "object" && item.nodeType) {
486
+ if (item == null || item === true || item === false) ; else if ((t = typeof item) === "object" && item.nodeType) {
950
487
  normalized.push(item);
951
488
  } else if (Array.isArray(item)) {
952
489
  dynamic = normalizeIncomingArray(normalized, item, prev) || dynamic;
953
490
  } else if (t === "function") {
954
491
  if (unwrap) {
955
492
  while (typeof item === "function") item = item();
956
- dynamic =
957
- normalizeIncomingArray(
958
- normalized,
959
- Array.isArray(item) ? item : [item],
960
- Array.isArray(prev) ? prev : [prev]
961
- ) || dynamic;
493
+ dynamic = normalizeIncomingArray(normalized, Array.isArray(item) ? item : [item], Array.isArray(prev) ? prev : [prev]) || dynamic;
962
494
  } else {
963
495
  normalized.push(item);
964
496
  dynamic = true;
965
497
  }
966
498
  } else {
967
499
  const value = String(item);
968
- if (prev && prev.nodeType === 3 && prev.data === value) normalized.push(prev);
969
- else normalized.push(document.createTextNode(value));
500
+ if (prev && prev.nodeType === 3 && prev.data === value) normalized.push(prev);else normalized.push(document.createTextNode(value));
970
501
  }
971
502
  }
972
503
  return dynamic;
@@ -975,7 +506,7 @@ function appendNodes(parent, array, marker = null) {
975
506
  for (let i = 0, len = array.length; i < len; i++) parent.insertBefore(array[i], marker);
976
507
  }
977
508
  function cleanChildren(parent, current, marker, replacement) {
978
- if (marker === undefined) return (parent.textContent = "");
509
+ if (marker === undefined) return parent.textContent = "";
979
510
  const node = replacement || document.createTextNode("");
980
511
  if (current.length) {
981
512
  let inserted = false;
@@ -983,9 +514,7 @@ function cleanChildren(parent, current, marker, replacement) {
983
514
  const el = current[i];
984
515
  if (node !== el) {
985
516
  const isParent = el.parentNode === parent;
986
- if (!inserted && !i)
987
- isParent ? parent.replaceChild(node, el) : parent.insertBefore(node, marker);
988
- else isParent && el.remove();
517
+ if (!inserted && !i) isParent ? parent.replaceChild(node, el) : parent.insertBefore(node, marker);else isParent && el.remove();
989
518
  } else inserted = true;
990
519
  }
991
520
  } else parent.insertBefore(node, marker);
@@ -996,13 +525,11 @@ function gatherHydratable(element, root) {
996
525
  for (let i = 0; i < templates.length; i++) {
997
526
  const node = templates[i];
998
527
  const key = node.getAttribute("data-hk");
999
- if ((!root || key.startsWith(root)) && !sharedConfig.registry.has(key))
1000
- sharedConfig.registry.set(key, node);
528
+ if ((!root || key.startsWith(root)) && !sharedConfig.registry.has(key)) sharedConfig.registry.set(key, node);
1001
529
  }
1002
530
  }
1003
531
  function getHydrationKey() {
1004
- const hydrate = sharedConfig.context;
1005
- return `${hydrate.id}${hydrate.count++}`;
532
+ return sharedConfig.getNextContextId();
1006
533
  }
1007
534
  function NoHydration(props) {
1008
535
  return sharedConfig.context ? undefined : props.children;
@@ -1050,47 +577,42 @@ const hydrate = (...args) => {
1050
577
  return hydrate$1(...args);
1051
578
  };
1052
579
  function Portal(props) {
1053
- const { useShadow } = props,
580
+ const {
581
+ useShadow
582
+ } = props,
1054
583
  marker = document.createTextNode(""),
1055
584
  mount = () => props.mount || document.body,
1056
585
  owner = getOwner();
1057
586
  let content;
1058
587
  let hydrating = !!sharedConfig.context;
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
588
+ createEffect(() => {
589
+ if (hydrating) getOwner().user = hydrating = false;
590
+ content || (content = runWithOwner(owner, () => createMemo(() => props.children)));
591
+ const el = mount();
592
+ if (el instanceof HTMLHeadElement) {
593
+ const [clean, setClean] = createSignal(false);
594
+ const cleanup = () => setClean(true);
595
+ createRoot(dispose => insert(el, () => !clean() ? content() : dispose(), null));
596
+ onCleanup(cleanup);
597
+ } else {
598
+ const container = createElement(props.isSVG ? "g" : "div", props.isSVG),
599
+ renderRoot = useShadow && container.attachShadow ? container.attachShadow({
600
+ mode: "open"
601
+ }) : container;
602
+ Object.defineProperty(container, "_$host", {
603
+ get() {
604
+ return marker.parentNode;
605
+ },
606
+ configurable: true
607
+ });
608
+ insert(renderRoot, content);
609
+ el.appendChild(container);
610
+ props.ref && props.ref(container);
611
+ onCleanup(() => el.removeChild(container));
1092
612
  }
1093
- );
613
+ }, undefined, {
614
+ render: !hydrating
615
+ });
1094
616
  return marker;
1095
617
  }
1096
618
  function Dynamic(props) {
@@ -1110,61 +632,4 @@ function Dynamic(props) {
1110
632
  });
1111
633
  }
1112
634
 
1113
- export {
1114
- Aliases,
1115
- voidFn as Assets,
1116
- ChildProperties,
1117
- DOMElements,
1118
- DelegatedEvents,
1119
- Dynamic,
1120
- Hydration,
1121
- voidFn as HydrationScript,
1122
- NoHydration,
1123
- Portal,
1124
- Properties,
1125
- RequestContext,
1126
- SVGElements,
1127
- SVGNamespace,
1128
- addEventListener,
1129
- assign,
1130
- classList,
1131
- className,
1132
- clearDelegatedEvents,
1133
- delegateEvents,
1134
- dynamicProperty,
1135
- escape,
1136
- voidFn as generateHydrationScript,
1137
- voidFn as getAssets,
1138
- getHydrationKey,
1139
- getNextElement,
1140
- getNextMarker,
1141
- getNextMatch,
1142
- getPropAlias,
1143
- voidFn as getRequestEvent,
1144
- hydrate,
1145
- innerHTML,
1146
- insert,
1147
- isDev,
1148
- isServer,
1149
- render,
1150
- renderToStream,
1151
- renderToString,
1152
- renderToStringAsync,
1153
- resolveSSRNode,
1154
- runHydrationEvents,
1155
- setAttribute,
1156
- setAttributeNS,
1157
- setProperty,
1158
- spread,
1159
- ssr,
1160
- ssrAttribute,
1161
- ssrClassList,
1162
- ssrElement,
1163
- ssrHydrationKey,
1164
- ssrSpread,
1165
- ssrStyle,
1166
- style,
1167
- template,
1168
- use,
1169
- voidFn as useAssets
1170
- };
635
+ 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 };