solid-js 1.7.11 → 1.8.0-beta.0

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 (49) hide show
  1. package/dist/dev.cjs +16 -13
  2. package/dist/dev.js +544 -306
  3. package/dist/server.cjs +7 -6
  4. package/dist/server.js +175 -80
  5. package/dist/solid.cjs +16 -13
  6. package/dist/solid.js +471 -264
  7. package/h/dist/h.js +34 -8
  8. package/h/jsx-runtime/dist/jsx.js +1 -1
  9. package/h/jsx-runtime/types/index.d.ts +11 -8
  10. package/h/jsx-runtime/types/jsx.d.ts +1 -0
  11. package/h/types/hyperscript.d.ts +11 -11
  12. package/html/dist/html.js +216 -94
  13. package/html/types/lit.d.ts +45 -31
  14. package/package.json +2 -2
  15. package/store/dist/dev.js +114 -42
  16. package/store/dist/server.js +19 -8
  17. package/store/dist/store.js +105 -39
  18. package/store/types/index.d.ts +21 -7
  19. package/store/types/modifiers.d.ts +6 -3
  20. package/store/types/mutable.d.ts +5 -2
  21. package/store/types/server.d.ts +12 -4
  22. package/store/types/store.d.ts +218 -61
  23. package/types/index.d.ts +72 -9
  24. package/types/jsx.d.ts +2 -1
  25. package/types/reactive/array.d.ts +12 -4
  26. package/types/reactive/observable.d.ts +25 -17
  27. package/types/reactive/scheduler.d.ts +9 -6
  28. package/types/reactive/signal.d.ts +228 -140
  29. package/types/render/Suspense.d.ts +5 -5
  30. package/types/render/component.d.ts +62 -31
  31. package/types/render/flow.d.ts +43 -31
  32. package/types/render/hydration.d.ts +12 -12
  33. package/types/server/index.d.ts +56 -2
  34. package/types/server/reactive.d.ts +67 -40
  35. package/types/server/rendering.d.ts +166 -95
  36. package/universal/dist/dev.js +28 -12
  37. package/universal/dist/universal.js +28 -12
  38. package/universal/types/index.d.ts +3 -1
  39. package/universal/types/universal.d.ts +0 -1
  40. package/web/dist/dev.cjs +8 -5
  41. package/web/dist/dev.js +616 -82
  42. package/web/dist/server.cjs +91 -56
  43. package/web/dist/server.js +244 -125
  44. package/web/dist/web.cjs +8 -5
  45. package/web/dist/web.js +616 -82
  46. package/web/types/client.d.ts +2 -2
  47. package/web/types/core.d.ts +10 -1
  48. package/web/types/index.d.ts +27 -10
  49. package/web/types/server-mock.d.ts +47 -32
package/web/dist/dev.js CHANGED
@@ -1,14 +1,82 @@
1
- import { createRoot, createRenderEffect, sharedConfig, 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
+ createRenderEffect,
4
+ sharedConfig,
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();
@@ -125,7 +571,9 @@ function template(html, isCE, isSVG) {
125
571
  t.innerHTML = html;
126
572
  return isSVG ? t.content.firstChild.firstChild : t.content.firstChild;
127
573
  };
128
- const fn = isCE ? () => untrack(() => document.importNode(node || (node = create()), true)) : () => (node || (node = create())).cloneNode(true);
574
+ const fn = isCE
575
+ ? () => untrack(() => document.importNode(node || (node = create()), true))
576
+ : () => (node || (node = create())).cloneNode(true);
129
577
  fn.cloneNode = fn;
130
578
  return fn;
131
579
  }
@@ -146,13 +594,16 @@ function clearDelegatedEvents(document = window.document) {
146
594
  }
147
595
  }
148
596
  function setAttribute(node, name, value) {
149
- if (value == null) node.removeAttribute(name);else node.setAttribute(name, value);
597
+ if (value == null) node.removeAttribute(name);
598
+ else node.setAttribute(name, value);
150
599
  }
151
600
  function setAttributeNS(node, namespace, name, value) {
152
- if (value == null) node.removeAttributeNS(namespace, name);else node.setAttributeNS(namespace, name, value);
601
+ if (value == null) node.removeAttributeNS(namespace, name);
602
+ else node.setAttributeNS(namespace, name, value);
153
603
  }
154
604
  function className(node, value) {
155
- if (value == null) node.removeAttribute("class");else node.className = value;
605
+ if (value == null) node.removeAttribute("class");
606
+ else node.className = value;
156
607
  }
157
608
  function addEventListener(node, name, handler, delegate) {
158
609
  if (delegate) {
@@ -162,7 +613,7 @@ function addEventListener(node, name, handler, delegate) {
162
613
  } else node[`$$${name}`] = handler;
163
614
  } else if (Array.isArray(handler)) {
164
615
  const handlerFn = handler[0];
165
- node.addEventListener(name, handler[0] = e => handlerFn.call(node, handler[1], e));
616
+ node.addEventListener(name, (handler[0] = e => handlerFn.call(node, handler[1], e)));
166
617
  } else node.addEventListener(name, handler);
167
618
  }
168
619
  function classList(node, value, prev = {}) {
@@ -187,7 +638,7 @@ function classList(node, value, prev = {}) {
187
638
  function style(node, value, prev) {
188
639
  if (!value) return prev ? setAttribute(node, "style") : value;
189
640
  const nodeStyle = node.style;
190
- if (typeof value === "string") return nodeStyle.cssText = value;
641
+ if (typeof value === "string") return (nodeStyle.cssText = value);
191
642
  typeof prev === "string" && (nodeStyle.cssText = prev = undefined);
192
643
  prev || (prev = {});
193
644
  value || (value = {});
@@ -208,7 +659,9 @@ function style(node, value, prev) {
208
659
  function spread(node, props = {}, isSVG, skipChildren) {
209
660
  const prevProps = {};
210
661
  if (!skipChildren) {
211
- createRenderEffect(() => prevProps.children = insertExpression(node, props.children, prevProps.children));
662
+ createRenderEffect(
663
+ () => (prevProps.children = insertExpression(node, props.children, prevProps.children))
664
+ );
212
665
  }
213
666
  createRenderEffect(() => props.ref && props.ref(node));
214
667
  createRenderEffect(() => assign(node, props, isSVG, true, prevProps, true));
@@ -255,7 +708,8 @@ function assign(node, props, isSVG, skipChildren, prevProps = {}, skipRef = fals
255
708
  function hydrate$1(code, element, options = {}) {
256
709
  sharedConfig.completed = globalThis._$HY.completed;
257
710
  sharedConfig.events = globalThis._$HY.events;
258
- sharedConfig.load = globalThis._$HY.load;
711
+ sharedConfig.load = id => globalThis._$HY.r[id];
712
+ sharedConfig.has = id => id in globalThis._$HY.r;
259
713
  sharedConfig.gather = root => gatherHydratable(element, root);
260
714
  sharedConfig.registry = new Map();
261
715
  sharedConfig.context = {
@@ -269,7 +723,7 @@ function hydrate$1(code, element, options = {}) {
269
723
  }
270
724
  function getNextElement(template) {
271
725
  let node, key;
272
- if (!sharedConfig.context || !(node = sharedConfig.registry.get(key = getHydrationKey()))) {
726
+ if (!sharedConfig.context || !(node = sharedConfig.registry.get((key = getHydrationKey())))) {
273
727
  if (sharedConfig.context) console.warn("Unable to find DOM nodes for hydration key:", key);
274
728
  if (!template) throw new Error("Unrecoverable Hydration Mismatch. No template for key: " + key);
275
729
  return template();
@@ -290,7 +744,8 @@ function getNextMarker(start) {
290
744
  while (end) {
291
745
  if (end.nodeType === 8) {
292
746
  const v = end.nodeValue;
293
- if (v === "#") count++;else if (v === "/") {
747
+ if (v === "$") count++;
748
+ else if (v === "/") {
294
749
  if (count === 0) return [end, current];
295
750
  count--;
296
751
  }
@@ -304,10 +759,7 @@ function getNextMarker(start) {
304
759
  function runHydrationEvents() {
305
760
  if (sharedConfig.events && !sharedConfig.events.queued) {
306
761
  queueMicrotask(() => {
307
- const {
308
- completed,
309
- events
310
- } = sharedConfig;
762
+ const { completed, events } = sharedConfig;
311
763
  events.queued = false;
312
764
  while (events.length) {
313
765
  const [el, e] = events[0];
@@ -324,7 +776,8 @@ function toPropertyName(name) {
324
776
  }
325
777
  function toggleClassKey(node, key, value) {
326
778
  const classNames = key.trim().split(/\s+/);
327
- for (let i = 0, nameLen = classNames.length; i < nameLen; i++) node.classList.toggle(classNames[i], value);
779
+ for (let i = 0, nameLen = classNames.length; i < nameLen; i++)
780
+ node.classList.toggle(classNames[i], value);
328
781
  }
329
782
  function assignProp(node, prop, value, prev, isSVG, skipRef) {
330
783
  let isCE, isProp, isChildProp, propAlias, forceProp;
@@ -354,21 +807,30 @@ function assignProp(node, prop, value, prev, isSVG, skipRef) {
354
807
  }
355
808
  } else if (prop.slice(0, 5) === "attr:") {
356
809
  setAttribute(node, prop.slice(5), value);
357
- } 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("-"))) {
810
+ } else if (
811
+ (forceProp = prop.slice(0, 5) === "prop:") ||
812
+ (isChildProp = ChildProperties.has(prop)) ||
813
+ (!isSVG &&
814
+ ((propAlias = getPropAlias(prop, node.tagName)) || (isProp = Properties.has(prop)))) ||
815
+ (isCE = node.nodeName.includes("-"))
816
+ ) {
358
817
  if (forceProp) {
359
818
  prop = prop.slice(5);
360
819
  isProp = true;
361
820
  }
362
- if (prop === "class" || prop === "className") className(node, value);else if (isCE && !isProp && !isChildProp) node[toPropertyName(prop)] = value;else node[propAlias || prop] = value;
821
+ if (prop === "class" || prop === "className") className(node, value);
822
+ else if (isCE && !isProp && !isChildProp) node[toPropertyName(prop)] = value;
823
+ else node[propAlias || prop] = value;
363
824
  } else {
364
825
  const ns = isSVG && prop.indexOf(":") > -1 && SVGNamespace[prop.split(":")[0]];
365
- if (ns) setAttributeNS(node, ns, prop, value);else setAttribute(node, Aliases[prop] || prop, value);
826
+ if (ns) setAttributeNS(node, ns, prop, value);
827
+ else setAttribute(node, Aliases[prop] || prop, value);
366
828
  }
367
829
  return value;
368
830
  }
369
831
  function eventHandler(e) {
370
832
  const key = `$$${e.type}`;
371
- let node = e.composedPath && e.composedPath()[0] || e.target;
833
+ let node = (e.composedPath && e.composedPath()[0]) || e.target;
372
834
  if (e.target !== node) {
373
835
  Object.defineProperty(e, "target", {
374
836
  configurable: true,
@@ -398,7 +860,8 @@ function insertExpression(parent, value, current, marker, unwrapArray) {
398
860
  let cleaned = [];
399
861
  for (let i = 0; i < current.length; i++) {
400
862
  const node = current[i];
401
- if (node.nodeType === 8 && node.data.slice(0, 2) === "!$") node.remove();else cleaned.push(node);
863
+ if (node.nodeType === 8 && node.data.slice(0, 2) === "!$") node.remove();
864
+ else cleaned.push(node);
402
865
  }
403
866
  current = cleaned;
404
867
  }
@@ -406,7 +869,7 @@ function insertExpression(parent, value, current, marker, unwrapArray) {
406
869
  if (value === current) return current;
407
870
  const t = typeof value,
408
871
  multi = marker !== undefined;
409
- parent = multi && current[0] && current[0].parentNode || parent;
872
+ parent = (multi && current[0] && current[0].parentNode) || parent;
410
873
  if (t === "string" || t === "number") {
411
874
  if (sharedConfig.context) return current;
412
875
  if (t === "number") value = value.toString();
@@ -435,14 +898,16 @@ function insertExpression(parent, value, current, marker, unwrapArray) {
435
898
  const array = [];
436
899
  const currentArray = current && Array.isArray(current);
437
900
  if (normalizeIncomingArray(array, value, current, unwrapArray)) {
438
- createRenderEffect(() => current = insertExpression(parent, array, current, marker, true));
901
+ createRenderEffect(() => (current = insertExpression(parent, array, current, marker, true)));
439
902
  return () => current;
440
903
  }
441
904
  if (sharedConfig.context) {
442
905
  if (!array.length) return current;
443
- for (let i = 0; i < array.length; i++) {
444
- if (array[i].parentNode) return current = array;
445
- }
906
+ if (marker === undefined) return [...parent.childNodes];
907
+ let node = array[0];
908
+ let nodes = [node];
909
+ while ((node = node.nextSibling) !== marker) nodes.push(node);
910
+ return (current = nodes);
446
911
  }
447
912
  if (array.length === 0) {
448
913
  current = cleanChildren(parent, current, marker);
@@ -457,9 +922,9 @@ function insertExpression(parent, value, current, marker, unwrapArray) {
457
922
  }
458
923
  current = array;
459
924
  } else if (value.nodeType) {
460
- if (sharedConfig.context && value.parentNode) return current = multi ? [value] : value;
925
+ if (sharedConfig.context && value.parentNode) return (current = multi ? [value] : value);
461
926
  if (Array.isArray(current)) {
462
- if (multi) return current = cleanChildren(parent, current, marker, value);
927
+ if (multi) return (current = cleanChildren(parent, current, marker, value));
463
928
  cleanChildren(parent, current, null, value);
464
929
  } else if (current == null || current === "" || !parent.firstChild) {
465
930
  parent.appendChild(value);
@@ -474,21 +939,28 @@ function normalizeIncomingArray(normalized, array, current, unwrap) {
474
939
  let item = array[i],
475
940
  prev = current && current[i],
476
941
  t;
477
- if (item == null || item === true || item === false) ; else if ((t = typeof item) === "object" && item.nodeType) {
942
+ if (item == null || item === true || item === false);
943
+ else if ((t = typeof item) === "object" && item.nodeType) {
478
944
  normalized.push(item);
479
945
  } else if (Array.isArray(item)) {
480
946
  dynamic = normalizeIncomingArray(normalized, item, prev) || dynamic;
481
947
  } else if (t === "function") {
482
948
  if (unwrap) {
483
949
  while (typeof item === "function") item = item();
484
- dynamic = normalizeIncomingArray(normalized, Array.isArray(item) ? item : [item], Array.isArray(prev) ? prev : [prev]) || dynamic;
950
+ dynamic =
951
+ normalizeIncomingArray(
952
+ normalized,
953
+ Array.isArray(item) ? item : [item],
954
+ Array.isArray(prev) ? prev : [prev]
955
+ ) || dynamic;
485
956
  } else {
486
957
  normalized.push(item);
487
958
  dynamic = true;
488
959
  }
489
960
  } else {
490
961
  const value = String(item);
491
- if (prev && prev.nodeType === 3 && prev.data === value) normalized.push(prev);else normalized.push(document.createTextNode(value));
962
+ if (prev && prev.nodeType === 3 && prev.data === value) normalized.push(prev);
963
+ else normalized.push(document.createTextNode(value));
492
964
  }
493
965
  }
494
966
  return dynamic;
@@ -497,7 +969,7 @@ function appendNodes(parent, array, marker = null) {
497
969
  for (let i = 0, len = array.length; i < len; i++) parent.insertBefore(array[i], marker);
498
970
  }
499
971
  function cleanChildren(parent, current, marker, replacement) {
500
- if (marker === undefined) return parent.textContent = "";
972
+ if (marker === undefined) return (parent.textContent = "");
501
973
  const node = replacement || document.createTextNode("");
502
974
  if (current.length) {
503
975
  let inserted = false;
@@ -505,7 +977,9 @@ function cleanChildren(parent, current, marker, replacement) {
505
977
  const el = current[i];
506
978
  if (node !== el) {
507
979
  const isParent = el.parentNode === parent;
508
- if (!inserted && !i) isParent ? parent.replaceChild(node, el) : parent.insertBefore(node, marker);else isParent && el.remove();
980
+ if (!inserted && !i)
981
+ isParent ? parent.replaceChild(node, el) : parent.insertBefore(node, marker);
982
+ else isParent && el.remove();
509
983
  } else inserted = true;
510
984
  }
511
985
  } else parent.insertBefore(node, marker);
@@ -516,7 +990,8 @@ function gatherHydratable(element, root) {
516
990
  for (let i = 0; i < templates.length; i++) {
517
991
  const node = templates[i];
518
992
  const key = node.getAttribute("data-hk");
519
- if ((!root || key.startsWith(root)) && !sharedConfig.registry.has(key)) sharedConfig.registry.set(key, node);
993
+ if ((!root || key.startsWith(root)) && !sharedConfig.registry.has(key))
994
+ sharedConfig.registry.set(key, node);
520
995
  }
521
996
  }
522
997
  function getHydrationKey() {
@@ -565,42 +1040,47 @@ const hydrate = (...args) => {
565
1040
  return hydrate$1(...args);
566
1041
  };
567
1042
  function Portal(props) {
568
- const {
569
- useShadow
570
- } = props,
1043
+ const { useShadow } = props,
571
1044
  marker = document.createTextNode(""),
572
1045
  mount = () => props.mount || document.body,
573
1046
  owner = getOwner();
574
1047
  let content;
575
1048
  let hydrating = !!sharedConfig.context;
576
- createEffect(() => {
577
- if (hydrating) getOwner().user = hydrating = false;
578
- content || (content = runWithOwner(owner, () => createMemo(() => props.children)));
579
- const el = mount();
580
- if (el instanceof HTMLHeadElement) {
581
- const [clean, setClean] = createSignal(false);
582
- const cleanup = () => setClean(true);
583
- createRoot(dispose => insert(el, () => !clean() ? content() : dispose(), null));
584
- onCleanup(cleanup);
585
- } else {
586
- const container = createElement(props.isSVG ? "g" : "div", props.isSVG),
587
- renderRoot = useShadow && container.attachShadow ? container.attachShadow({
588
- mode: "open"
589
- }) : container;
590
- Object.defineProperty(container, "_$host", {
591
- get() {
592
- return marker.parentNode;
593
- },
594
- configurable: true
595
- });
596
- insert(renderRoot, content);
597
- el.appendChild(container);
598
- props.ref && props.ref(container);
599
- onCleanup(() => el.removeChild(container));
1049
+ createEffect(
1050
+ () => {
1051
+ if (hydrating) getOwner().user = hydrating = false;
1052
+ content || (content = runWithOwner(owner, () => createMemo(() => props.children)));
1053
+ const el = mount();
1054
+ if (el instanceof HTMLHeadElement) {
1055
+ const [clean, setClean] = createSignal(false);
1056
+ const cleanup = () => setClean(true);
1057
+ createRoot(dispose => insert(el, () => (!clean() ? content() : dispose()), null));
1058
+ onCleanup(cleanup);
1059
+ } else {
1060
+ const container = createElement(props.isSVG ? "g" : "div", props.isSVG),
1061
+ renderRoot =
1062
+ useShadow && container.attachShadow
1063
+ ? container.attachShadow({
1064
+ mode: "open"
1065
+ })
1066
+ : container;
1067
+ Object.defineProperty(container, "_$host", {
1068
+ get() {
1069
+ return marker.parentNode;
1070
+ },
1071
+ configurable: true
1072
+ });
1073
+ insert(renderRoot, content);
1074
+ el.appendChild(container);
1075
+ props.ref && props.ref(container);
1076
+ onCleanup(() => el.removeChild(container));
1077
+ }
1078
+ },
1079
+ undefined,
1080
+ {
1081
+ render: !hydrating
600
1082
  }
601
- }, undefined, {
602
- render: !hydrating
603
- });
1083
+ );
604
1084
  return marker;
605
1085
  }
606
1086
  function Dynamic(props) {
@@ -623,4 +1103,58 @@ function Dynamic(props) {
623
1103
  });
624
1104
  }
625
1105
 
626
- 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, spread, ssr, ssrAttribute, ssrClassList, ssrElement, ssrHydrationKey, ssrSpread, ssrStyle, style, template, use, voidFn as useAssets };
1106
+ export {
1107
+ Aliases,
1108
+ voidFn as Assets,
1109
+ ChildProperties,
1110
+ DOMElements,
1111
+ DelegatedEvents,
1112
+ Dynamic,
1113
+ Hydration,
1114
+ voidFn as HydrationScript,
1115
+ NoHydration,
1116
+ Portal,
1117
+ Properties,
1118
+ SVGElements,
1119
+ SVGNamespace,
1120
+ addEventListener,
1121
+ assign,
1122
+ classList,
1123
+ className,
1124
+ clearDelegatedEvents,
1125
+ delegateEvents,
1126
+ dynamicProperty,
1127
+ escape,
1128
+ voidFn as generateHydrationScript,
1129
+ voidFn as getAssets,
1130
+ getHydrationKey,
1131
+ getNextElement,
1132
+ getNextMarker,
1133
+ getNextMatch,
1134
+ getPropAlias,
1135
+ hydrate,
1136
+ innerHTML,
1137
+ insert,
1138
+ isDev,
1139
+ isServer,
1140
+ render,
1141
+ renderToStream,
1142
+ renderToString,
1143
+ renderToStringAsync,
1144
+ resolveSSRNode,
1145
+ runHydrationEvents,
1146
+ setAttribute,
1147
+ setAttributeNS,
1148
+ spread,
1149
+ ssr,
1150
+ ssrAttribute,
1151
+ ssrClassList,
1152
+ ssrElement,
1153
+ ssrHydrationKey,
1154
+ ssrSpread,
1155
+ ssrStyle,
1156
+ style,
1157
+ template,
1158
+ use,
1159
+ voidFn as useAssets
1160
+ };