@solidjs/web 2.0.0-experimental.3 → 2.0.0-experimental.5

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.
package/dist/web.js CHANGED
@@ -1,71 +1,10 @@
1
- import {
2
- createRoot,
3
- untrack,
4
- createRenderEffect,
5
- sharedConfig,
6
- flatten,
7
- enableHydration,
8
- createMemo,
9
- omit
10
- } from "solid-js";
11
- export {
12
- ErrorBoundary,
13
- For,
14
- Match,
15
- Show,
16
- Suspense,
17
- Switch,
18
- createComponent,
19
- createRenderEffect as effect,
20
- getOwner,
21
- createMemo as memo,
22
- merge as mergeProps,
23
- untrack
24
- } from "solid-js";
1
+ import { createMemo, createRoot, flatten, untrack, createRenderEffect, sharedConfig, enableHydration, omit } from 'solid-js';
2
+ export { ErrorBoundary, For, Match, Show, Suspense, Switch, createComponent, createRenderEffect as effect, getOwner, merge as mergeProps, untrack } from 'solid-js';
25
3
 
26
- const booleans = [
27
- "allowfullscreen",
28
- "async",
29
- "autofocus",
30
- "autoplay",
31
- "checked",
32
- "controls",
33
- "default",
34
- "disabled",
35
- "formnovalidate",
36
- "hidden",
37
- "indeterminate",
38
- "inert",
39
- "ismap",
40
- "loop",
41
- "multiple",
42
- "muted",
43
- "nomodule",
44
- "novalidate",
45
- "open",
46
- "playsinline",
47
- "readonly",
48
- "required",
49
- "reversed",
50
- "seamless",
51
- "selected"
52
- ];
53
- const Properties = /*#__PURE__*/ new Set([
54
- "value",
55
- "readOnly",
56
- "formNoValidate",
57
- "isMap",
58
- "noModule",
59
- "playsInline",
60
- ...booleans
61
- ]);
62
- const ChildProperties = /*#__PURE__*/ new Set([
63
- "innerHTML",
64
- "textContent",
65
- "innerText",
66
- "children"
67
- ]);
68
- const PropAliases = /*#__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(["value", "readOnly", "formNoValidate", "isMap", "noModule", "playsInline", ...booleans]);
6
+ const ChildProperties = /*#__PURE__*/new Set(["innerHTML", "textContent", "innerText", "children"]);
7
+ const PropAliases = /*#__PURE__*/Object.assign(Object.create(null), {
69
8
  class: "className",
70
9
  formnovalidate: {
71
10
  $: "formNoValidate",
@@ -92,396 +31,21 @@ const PropAliases = /*#__PURE__*/ Object.assign(Object.create(null), {
92
31
  });
93
32
  function getPropAlias(prop, tagName) {
94
33
  const a = PropAliases[prop];
95
- return typeof a === "object" ? (a[tagName] ? a["$"] : undefined) : a;
96
- }
97
- const DelegatedEvents = /*#__PURE__*/ new Set([
98
- "beforeinput",
99
- "click",
100
- "dblclick",
101
- "contextmenu",
102
- "focusin",
103
- "focusout",
104
- "input",
105
- "keydown",
106
- "keyup",
107
- "mousedown",
108
- "mousemove",
109
- "mouseout",
110
- "mouseover",
111
- "mouseup",
112
- "pointerdown",
113
- "pointermove",
114
- "pointerout",
115
- "pointerover",
116
- "pointerup",
117
- "touchend",
118
- "touchmove",
119
- "touchstart"
120
- ]);
121
- const SVGElements = /*#__PURE__*/ new Set([
122
- "altGlyph",
123
- "altGlyphDef",
124
- "altGlyphItem",
125
- "animate",
126
- "animateColor",
127
- "animateMotion",
128
- "animateTransform",
129
- "circle",
130
- "clipPath",
131
- "color-profile",
132
- "cursor",
133
- "defs",
134
- "desc",
135
- "ellipse",
136
- "feBlend",
137
- "feColorMatrix",
138
- "feComponentTransfer",
139
- "feComposite",
140
- "feConvolveMatrix",
141
- "feDiffuseLighting",
142
- "feDisplacementMap",
143
- "feDistantLight",
144
- "feDropShadow",
145
- "feFlood",
146
- "feFuncA",
147
- "feFuncB",
148
- "feFuncG",
149
- "feFuncR",
150
- "feGaussianBlur",
151
- "feImage",
152
- "feMerge",
153
- "feMergeNode",
154
- "feMorphology",
155
- "feOffset",
156
- "fePointLight",
157
- "feSpecularLighting",
158
- "feSpotLight",
159
- "feTile",
160
- "feTurbulence",
161
- "filter",
162
- "font",
163
- "font-face",
164
- "font-face-format",
165
- "font-face-name",
166
- "font-face-src",
167
- "font-face-uri",
168
- "foreignObject",
169
- "g",
170
- "glyph",
171
- "glyphRef",
172
- "hkern",
173
- "image",
174
- "line",
175
- "linearGradient",
176
- "marker",
177
- "mask",
178
- "metadata",
179
- "missing-glyph",
180
- "mpath",
181
- "path",
182
- "pattern",
183
- "polygon",
184
- "polyline",
185
- "radialGradient",
186
- "rect",
187
- "set",
188
- "stop",
189
- "svg",
190
- "switch",
191
- "symbol",
192
- "text",
193
- "textPath",
194
- "tref",
195
- "tspan",
196
- "use",
197
- "view",
198
- "vkern"
199
- ]);
34
+ return typeof a === "object" ? a[tagName] ? a["$"] : undefined : a;
35
+ }
36
+ 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"]);
37
+ const SVGElements = /*#__PURE__*/new Set([
38
+ "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",
39
+ "set", "stop",
40
+ "svg", "switch", "symbol", "text", "textPath",
41
+ "tref", "tspan", "use", "view", "vkern"]);
200
42
  const SVGNamespace = {
201
43
  xlink: "http://www.w3.org/1999/xlink",
202
44
  xml: "http://www.w3.org/XML/1998/namespace"
203
45
  };
204
- const DOMElements = /*#__PURE__*/ new Set([
205
- "html",
206
- "base",
207
- "head",
208
- "link",
209
- "meta",
210
- "style",
211
- "title",
212
- "body",
213
- "address",
214
- "article",
215
- "aside",
216
- "footer",
217
- "header",
218
- "main",
219
- "nav",
220
- "section",
221
- "body",
222
- "blockquote",
223
- "dd",
224
- "div",
225
- "dl",
226
- "dt",
227
- "figcaption",
228
- "figure",
229
- "hr",
230
- "li",
231
- "ol",
232
- "p",
233
- "pre",
234
- "ul",
235
- "a",
236
- "abbr",
237
- "b",
238
- "bdi",
239
- "bdo",
240
- "br",
241
- "cite",
242
- "code",
243
- "data",
244
- "dfn",
245
- "em",
246
- "i",
247
- "kbd",
248
- "mark",
249
- "q",
250
- "rp",
251
- "rt",
252
- "ruby",
253
- "s",
254
- "samp",
255
- "small",
256
- "span",
257
- "strong",
258
- "sub",
259
- "sup",
260
- "time",
261
- "u",
262
- "var",
263
- "wbr",
264
- "area",
265
- "audio",
266
- "img",
267
- "map",
268
- "track",
269
- "video",
270
- "embed",
271
- "iframe",
272
- "object",
273
- "param",
274
- "picture",
275
- "portal",
276
- "source",
277
- "svg",
278
- "math",
279
- "canvas",
280
- "noscript",
281
- "script",
282
- "del",
283
- "ins",
284
- "caption",
285
- "col",
286
- "colgroup",
287
- "table",
288
- "tbody",
289
- "td",
290
- "tfoot",
291
- "th",
292
- "thead",
293
- "tr",
294
- "button",
295
- "datalist",
296
- "fieldset",
297
- "form",
298
- "input",
299
- "label",
300
- "legend",
301
- "meter",
302
- "optgroup",
303
- "option",
304
- "output",
305
- "progress",
306
- "select",
307
- "textarea",
308
- "details",
309
- "dialog",
310
- "menu",
311
- "summary",
312
- "details",
313
- "slot",
314
- "template",
315
- "acronym",
316
- "applet",
317
- "basefont",
318
- "bgsound",
319
- "big",
320
- "blink",
321
- "center",
322
- "content",
323
- "dir",
324
- "font",
325
- "frame",
326
- "frameset",
327
- "hgroup",
328
- "image",
329
- "keygen",
330
- "marquee",
331
- "menuitem",
332
- "nobr",
333
- "noembed",
334
- "noframes",
335
- "plaintext",
336
- "rb",
337
- "rtc",
338
- "shadow",
339
- "spacer",
340
- "strike",
341
- "tt",
342
- "xmp",
343
- "a",
344
- "abbr",
345
- "acronym",
346
- "address",
347
- "applet",
348
- "area",
349
- "article",
350
- "aside",
351
- "audio",
352
- "b",
353
- "base",
354
- "basefont",
355
- "bdi",
356
- "bdo",
357
- "bgsound",
358
- "big",
359
- "blink",
360
- "blockquote",
361
- "body",
362
- "br",
363
- "button",
364
- "canvas",
365
- "caption",
366
- "center",
367
- "cite",
368
- "code",
369
- "col",
370
- "colgroup",
371
- "content",
372
- "data",
373
- "datalist",
374
- "dd",
375
- "del",
376
- "details",
377
- "dfn",
378
- "dialog",
379
- "dir",
380
- "div",
381
- "dl",
382
- "dt",
383
- "em",
384
- "embed",
385
- "fieldset",
386
- "figcaption",
387
- "figure",
388
- "font",
389
- "footer",
390
- "form",
391
- "frame",
392
- "frameset",
393
- "head",
394
- "header",
395
- "hgroup",
396
- "hr",
397
- "html",
398
- "i",
399
- "iframe",
400
- "image",
401
- "img",
402
- "input",
403
- "ins",
404
- "kbd",
405
- "keygen",
406
- "label",
407
- "legend",
408
- "li",
409
- "link",
410
- "main",
411
- "map",
412
- "mark",
413
- "marquee",
414
- "menu",
415
- "menuitem",
416
- "meta",
417
- "meter",
418
- "nav",
419
- "nobr",
420
- "noembed",
421
- "noframes",
422
- "noscript",
423
- "object",
424
- "ol",
425
- "optgroup",
426
- "option",
427
- "output",
428
- "p",
429
- "param",
430
- "picture",
431
- "plaintext",
432
- "portal",
433
- "pre",
434
- "progress",
435
- "q",
436
- "rb",
437
- "rp",
438
- "rt",
439
- "rtc",
440
- "ruby",
441
- "s",
442
- "samp",
443
- "script",
444
- "section",
445
- "select",
446
- "shadow",
447
- "slot",
448
- "small",
449
- "source",
450
- "spacer",
451
- "span",
452
- "strike",
453
- "strong",
454
- "style",
455
- "sub",
456
- "summary",
457
- "sup",
458
- "table",
459
- "tbody",
460
- "td",
461
- "template",
462
- "textarea",
463
- "tfoot",
464
- "th",
465
- "thead",
466
- "time",
467
- "title",
468
- "tr",
469
- "track",
470
- "tt",
471
- "u",
472
- "ul",
473
- "var",
474
- "video",
475
- "wbr",
476
- "xmp",
477
- "input",
478
- "h1",
479
- "h2",
480
- "h3",
481
- "h4",
482
- "h5",
483
- "h6"
484
- ]);
46
+ 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"]);
47
+
48
+ const memo = fn => createMemo(() => fn());
485
49
 
486
50
  function reconcileArrays(parentNode, a, b) {
487
51
  let bLength = b.length,
@@ -502,7 +66,7 @@ function reconcileArrays(parentNode, a, b) {
502
66
  bEnd--;
503
67
  }
504
68
  if (aEnd === aStart) {
505
- const node = bEnd < bLength ? (bStart ? b[bStart - 1].nextSibling : b[bEnd - bStart]) : after;
69
+ const node = bEnd < bLength ? bStart ? b[bStart - 1].nextSibling : b[bEnd - bStart] : after;
506
70
  while (bStart < bEnd) parentNode.insertBefore(b[bStart++], node);
507
71
  } else if (bEnd === bStart) {
508
72
  while (aStart < aEnd) {
@@ -545,10 +109,10 @@ function render(code, element, init, options = {}) {
545
109
  let disposer;
546
110
  createRoot(dispose => {
547
111
  disposer = dispose;
548
- element === document
549
- ? code()
550
- : insert(element, code(), element.firstChild ? null : undefined, init);
551
- }, options.owner);
112
+ element === document ? flatten(code) : insert(element, code(), element.firstChild ? null : undefined, init);
113
+ }, {
114
+ id: options.renderId
115
+ });
552
116
  return () => {
553
117
  disposer();
554
118
  element.textContent = "";
@@ -557,15 +121,11 @@ function render(code, element, init, options = {}) {
557
121
  function template(html, isImportNode, isSVG, isMathML) {
558
122
  let node;
559
123
  const create = () => {
560
- const t = isMathML
561
- ? document.createElementNS("http://www.w3.org/1998/Math/MathML", "template")
562
- : document.createElement("template");
124
+ const t = isMathML ? document.createElementNS("http://www.w3.org/1998/Math/MathML", "template") : document.createElement("template");
563
125
  t.innerHTML = html;
564
126
  return isSVG ? t.content.firstChild.firstChild : isMathML ? t.firstChild : t.content.firstChild;
565
127
  };
566
- return isImportNode
567
- ? () => untrack(() => document.importNode(node || (node = create()), true))
568
- : () => (node || (node = create())).cloneNode(true);
128
+ return isImportNode ? () => untrack(() => document.importNode(node || (node = create()), true)) : () => (node || (node = create())).cloneNode(true);
569
129
  }
570
130
  function delegateEvents(eventNames, document = window.document) {
571
131
  const e = document[$$EVENTS] || (document[$$EVENTS] = new Set());
@@ -584,27 +144,29 @@ function clearDelegatedEvents(document = window.document) {
584
144
  }
585
145
  }
586
146
  function setProperty(node, name, value) {
147
+ if (isHydrating(node)) return;
587
148
  node[name] = value;
588
149
  }
589
150
  function setAttribute(node, name, value) {
590
- if (value == null) node.removeAttribute(name);
591
- else node.setAttribute(name, value);
151
+ if (isHydrating(node)) return;
152
+ if (value == null) node.removeAttribute(name);else node.setAttribute(name, value);
592
153
  }
593
154
  function setAttributeNS(node, namespace, name, value) {
594
- if (value == null) node.removeAttributeNS(namespace, name);
595
- else node.setAttributeNS(namespace, name, value);
155
+ if (isHydrating(node)) return;
156
+ if (value == null) node.removeAttributeNS(namespace, name);else node.setAttributeNS(namespace, name, value);
596
157
  }
597
158
  function setBoolAttribute(node, name, value) {
598
159
  if (isHydrating(node)) return;
599
160
  value ? node.setAttribute(name, "") : node.removeAttribute(name);
600
161
  }
601
162
  function className(node, value, isSVG, prev) {
163
+ if (isHydrating(node)) return;
602
164
  if (value == null) {
603
165
  prev && node.removeAttribute("class");
604
166
  return;
605
167
  }
606
168
  if (typeof value === "string") {
607
- value !== prev && (isSVG ? node.setAttribute("class", value) : (node.className = value));
169
+ value !== prev && (isSVG ? node.setAttribute("class", value) : node.className = value);
608
170
  return;
609
171
  }
610
172
  if (typeof prev === "string") {
@@ -635,7 +197,7 @@ function addEventListener(node, name, handler, delegate) {
635
197
  } else node[`$$${name}`] = handler;
636
198
  } else if (Array.isArray(handler)) {
637
199
  const handlerFn = handler[0];
638
- node.addEventListener(name, (handler[0] = e => handlerFn.call(node, handler[1], e)));
200
+ node.addEventListener(name, handler[0] = e => handlerFn.call(node, handler[1], e));
639
201
  } else node.addEventListener(name, handler, typeof handler !== "function" && handler);
640
202
  }
641
203
  function style(node, value, prev) {
@@ -644,7 +206,7 @@ function style(node, value, prev) {
644
206
  return;
645
207
  }
646
208
  const nodeStyle = node.style;
647
- if (typeof value === "string") return (nodeStyle.cssText = value);
209
+ if (typeof value === "string") return nodeStyle.cssText = value;
648
210
  typeof prev === "string" && (nodeStyle.cssText = prev = undefined);
649
211
  prev || (prev = {});
650
212
  value || (value = {});
@@ -659,29 +221,20 @@ function style(node, value, prev) {
659
221
  function spread(node, props = {}, isSVG, skipChildren) {
660
222
  const prevProps = {};
661
223
  if (!skipChildren) {
662
- createRenderEffect(
663
- () => normalize(props.children, prevProps.children),
664
- value => {
665
- insertExpression(node, value, prevProps.children);
666
- prevProps.children = value;
667
- }
668
- );
224
+ createRenderEffect(() => normalize(props.children, prevProps.children), value => {
225
+ insertExpression(node, value, prevProps.children);
226
+ prevProps.children = value;
227
+ });
669
228
  }
670
- createRenderEffect(
671
- () => typeof props.ref === "function" && use(props.ref, node),
672
- () => {}
673
- );
674
- createRenderEffect(
675
- () => {
676
- const newProps = {};
677
- for (const prop in props) {
678
- if (prop === "children" || prop === "ref") continue;
679
- newProps[prop] = props[prop];
680
- }
681
- return newProps;
682
- },
683
- props => assign(node, props, isSVG, true, prevProps, true)
684
- );
229
+ createRenderEffect(() => typeof props.ref === "function" && use(props.ref, node), () => {});
230
+ createRenderEffect(() => {
231
+ const newProps = {};
232
+ for (const prop in props) {
233
+ if (prop === "children" || prop === "ref") continue;
234
+ newProps[prop] = props[prop];
235
+ }
236
+ return newProps;
237
+ }, props => assign(node, props, isSVG, true, prevProps, true));
685
238
  return prevProps;
686
239
  }
687
240
  function dynamicProperty(props, key) {
@@ -704,11 +257,7 @@ function insert(parent, accessor, marker, initial) {
704
257
  accessor = normalize(accessor, initial, multi, true);
705
258
  if (typeof accessor !== "function") return insertExpression(parent, accessor, initial, marker);
706
259
  }
707
- createRenderEffect(
708
- prev => normalize(accessor, prev, multi),
709
- (value, current) => insertExpression(parent, value, current, marker),
710
- initial
711
- );
260
+ createRenderEffect(prev => normalize(accessor, prev, multi), (value, current) => insertExpression(parent, value, current, marker), initial);
712
261
  }
713
262
  function assign(node, props, isSVG, skipChildren, prevProps = {}, skipRef = false) {
714
263
  props || (props = {});
@@ -729,28 +278,26 @@ function assign(node, props, isSVG, skipChildren, prevProps = {}, skipRef = fals
729
278
  }
730
279
  function hydrate$1(code, element, options = {}) {
731
280
  if (globalThis._$HY.done) return render(code, element, [...element.childNodes], options);
281
+ options.renderId ||= "";
732
282
  sharedConfig.completed = globalThis._$HY.completed;
733
283
  sharedConfig.events = globalThis._$HY.events;
734
284
  sharedConfig.load = id => globalThis._$HY.r[id];
735
285
  sharedConfig.has = id => id in globalThis._$HY.r;
736
286
  sharedConfig.gather = root => gatherHydratable(element, root);
737
287
  sharedConfig.registry = new Map();
738
- sharedConfig.context = {
739
- id: options.renderId || "",
740
- count: 0
741
- };
288
+ sharedConfig.hydrating = true;
742
289
  try {
743
290
  gatherHydratable(element, options.renderId);
744
291
  return render(code, element, [...element.childNodes], options);
745
292
  } finally {
746
- sharedConfig.context = null;
293
+ sharedConfig.hydrating = false;
747
294
  }
748
295
  }
749
296
  function getNextElement(template) {
750
297
  let node,
751
298
  key,
752
299
  hydrating = isHydrating();
753
- if (!hydrating || !(node = sharedConfig.registry.get((key = getHydrationKey())))) {
300
+ if (!hydrating || !(node = sharedConfig.registry.get(key = getHydrationKey()))) {
754
301
  return template();
755
302
  }
756
303
  if (sharedConfig.completed) sharedConfig.completed.add(node);
@@ -769,8 +316,7 @@ function getNextMarker(start) {
769
316
  while (end) {
770
317
  if (end.nodeType === 8) {
771
318
  const v = end.nodeValue;
772
- if (v === "$") count++;
773
- else if (v === "/") {
319
+ if (v === "$") count++;else if (v === "/") {
774
320
  if (count === 0) return [end, current];
775
321
  count--;
776
322
  }
@@ -784,7 +330,10 @@ function getNextMarker(start) {
784
330
  function runHydrationEvents() {
785
331
  if (sharedConfig.events && !sharedConfig.events.queued) {
786
332
  queueMicrotask(() => {
787
- const { completed, events } = sharedConfig;
333
+ const {
334
+ completed,
335
+ events
336
+ } = sharedConfig;
788
337
  if (!events) return;
789
338
  events.queued = false;
790
339
  while (events.length) {
@@ -802,12 +351,11 @@ function runHydrationEvents() {
802
351
  }
803
352
  }
804
353
  function isHydrating(node) {
805
- return !!sharedConfig.context && !sharedConfig.done && (!node || node.isConnected);
354
+ return sharedConfig.hydrating && !sharedConfig.done && (!node || node.isConnected);
806
355
  }
807
356
  function toggleClassKey(node, key, value) {
808
357
  const classNames = key.trim().split(/\s+/);
809
- for (let i = 0, nameLen = classNames.length; i < nameLen; i++)
810
- node.classList.toggle(classNames[i], value);
358
+ for (let i = 0, nameLen = classNames.length; i < nameLen; i++) node.classList.toggle(classNames[i], value);
811
359
  }
812
360
  function classListToObject(classList) {
813
361
  if (Array.isArray(classList)) {
@@ -820,9 +368,7 @@ function classListToObject(classList) {
820
368
  function flattenClassList(list, result) {
821
369
  for (let i = 0, len = list.length; i < len; i++) {
822
370
  const item = list[i];
823
- if (Array.isArray(item)) flattenClassList(item, result);
824
- else if (typeof item === "object" && item != null) Object.assign(result, item);
825
- else if (item || item === 0) result[item] = true;
371
+ if (Array.isArray(item)) flattenClassList(item, result);else if (typeof item === "object" && item != null) Object.assign(result, item);else if (item || item === 0) result[item] = true;
826
372
  }
827
373
  }
828
374
  function assignProp(node, prop, value, prev, isSVG, skipRef) {
@@ -851,20 +397,12 @@ function assignProp(node, prop, value, prev, isSVG, skipRef) {
851
397
  setAttribute(node, prop.slice(5), value);
852
398
  } else if (prop.slice(0, 5) === "bool:") {
853
399
  setBoolAttribute(node, prop.slice(5), value);
854
- } else if (
855
- (forceProp = prop.slice(0, 5) === "prop:") ||
856
- ChildProperties.has(prop) ||
857
- (!isSVG && (propAlias = getPropAlias(prop, node.tagName))) ||
858
- Properties.has(prop)
859
- ) {
860
- if (forceProp) prop = prop.slice(5);
861
- if (prop === "value" && node.nodeName === "SELECT")
862
- queueMicrotask(() => (node.value = value)) || (node.value = value);
863
- else node[propAlias || prop] = value;
400
+ } else if ((forceProp = prop.slice(0, 5) === "prop:") || ChildProperties.has(prop) || !isSVG && (propAlias = getPropAlias(prop, node.tagName)) || Properties.has(prop)) {
401
+ if (forceProp) prop = prop.slice(5);else if (isHydrating(node)) return value;
402
+ if (prop === "value" && node.nodeName === "SELECT") queueMicrotask(() => node.value = value) || (node.value = value);else node[propAlias || prop] = value;
864
403
  } else {
865
404
  const ns = isSVG && prop.indexOf(":") > -1 && SVGNamespace[prop.split(":")[0]];
866
- if (ns) setAttributeNS(node, ns, prop, value);
867
- else setAttribute(node, prop, value);
405
+ if (ns) setAttributeNS(node, ns, prop, value);else setAttribute(node, prop, value);
868
406
  }
869
407
  return value;
870
408
  }
@@ -876,11 +414,10 @@ function eventHandler(e) {
876
414
  const key = `$$${e.type}`;
877
415
  const oriTarget = e.target;
878
416
  const oriCurrentTarget = e.currentTarget;
879
- const retarget = value =>
880
- Object.defineProperty(e, "target", {
881
- configurable: true,
882
- value
883
- });
417
+ const retarget = value => Object.defineProperty(e, "target", {
418
+ configurable: true,
419
+ value
420
+ });
884
421
  const handleNode = () => {
885
422
  const handler = node[key];
886
423
  if (handler && !node.disabled) {
@@ -888,11 +425,7 @@ function eventHandler(e) {
888
425
  data !== undefined ? handler.call(node, data, e) : handler.call(node, e);
889
426
  if (e.cancelBubble) return;
890
427
  }
891
- node.host &&
892
- typeof node.host !== "string" &&
893
- !node.host._$host &&
894
- node.contains(e.target) &&
895
- retarget(node.host);
428
+ node.host && typeof node.host !== "string" && !node.host._$host && node.contains(e.target) && retarget(node.host);
896
429
  return true;
897
430
  };
898
431
  const walkUpTree = () => {
@@ -920,10 +453,12 @@ function eventHandler(e) {
920
453
  break;
921
454
  }
922
455
  }
923
- } else walkUpTree();
456
+ }
457
+ else walkUpTree();
924
458
  retarget(oriTarget);
925
459
  }
926
460
  function insertExpression(parent, value, current, marker) {
461
+ if (isHydrating(parent)) return;
927
462
  if (value === current) return;
928
463
  const t = typeof value,
929
464
  multi = marker !== undefined;
@@ -952,7 +487,7 @@ function insertExpression(parent, value, current, marker) {
952
487
  current && cleanChildren(parent);
953
488
  appendNodes(parent, value);
954
489
  }
955
- } else;
490
+ } else ;
956
491
  }
957
492
  function normalize(value, current, multi, doNotUnwrap) {
958
493
  value = flatten(value, {
@@ -966,9 +501,7 @@ function normalize(value, current, multi, doNotUnwrap) {
966
501
  const item = value[i],
967
502
  prev = current && current[i],
968
503
  t = typeof item;
969
- if (t === "string" || t === "number")
970
- value[i] =
971
- prev && prev.nodeType === 3 && prev.data === item ? prev : document.createTextNode(item);
504
+ if (t === "string" || t === "number") value[i] = prev && prev.nodeType === 3 && prev.data === item ? prev : document.createTextNode(item);
972
505
  }
973
506
  }
974
507
  return value;
@@ -977,36 +510,31 @@ function appendNodes(parent, array, marker = null) {
977
510
  for (let i = 0, len = array.length; i < len; i++) parent.insertBefore(array[i], marker);
978
511
  }
979
512
  function cleanChildren(parent, current, marker, replacement) {
980
- if (marker === undefined) return (parent.textContent = "");
513
+ if (marker === undefined) return parent.textContent = "";
981
514
  if (current.length) {
982
515
  let inserted = false;
983
516
  for (let i = current.length - 1; i >= 0; i--) {
984
517
  const el = current[i];
985
518
  if (replacement !== el) {
986
519
  const isParent = el.parentNode === parent;
987
- if (replacement && !inserted && !i)
988
- isParent
989
- ? parent.replaceChild(replacement, el)
990
- : parent.insertBefore(replacement, marker);
991
- else isParent && el.remove();
520
+ if (replacement && !inserted && !i) isParent ? parent.replaceChild(replacement, el) : parent.insertBefore(replacement, marker);else isParent && el.remove();
992
521
  } else inserted = true;
993
522
  }
994
523
  } else if (replacement) parent.insertBefore(replacement, marker);
995
524
  }
996
525
  function gatherHydratable(element, root) {
997
- const templates = element.querySelectorAll(`*[data-hk]`);
526
+ const templates = element.querySelectorAll(`*[_hk]`);
998
527
  for (let i = 0; i < templates.length; i++) {
999
528
  const node = templates[i];
1000
- const key = node.getAttribute("data-hk");
1001
- if ((!root || key.startsWith(root)) && !sharedConfig.registry.has(key))
1002
- sharedConfig.registry.set(key, node);
529
+ const key = node.getAttribute("_hk");
530
+ if ((!root || key.startsWith(root)) && !sharedConfig.registry.has(key)) sharedConfig.registry.set(key, node);
1003
531
  }
1004
532
  }
1005
533
  function getHydrationKey() {
1006
534
  return sharedConfig.getNextContextId();
1007
535
  }
1008
536
  function NoHydration(props) {
1009
- return sharedConfig.context ? undefined : props.children;
537
+ return sharedConfig.hydrating ? undefined : props.children;
1010
538
  }
1011
539
  function Hydration(props) {
1012
540
  return props.children;
@@ -1052,21 +580,18 @@ function Portal(props) {
1052
580
  endMarker = document.createTextNode(""),
1053
581
  mount = () => createElementProxy(props.mount || document.body, treeMarker);
1054
582
  let content = createMemo(() => [startMarker, props.children]);
1055
- createRenderEffect(
1056
- () => [mount(), content()],
1057
- ([m, c]) => {
1058
- m.appendChild(endMarker);
1059
- insert(m, c, endMarker);
1060
- return () => {
1061
- let c = startMarker;
1062
- while (c && c !== endMarker) {
1063
- const n = c.nextSibling;
1064
- m.removeChild(c);
1065
- c = n;
1066
- }
1067
- };
1068
- }
1069
- );
583
+ createRenderEffect(() => [mount(), content()], ([m, c]) => {
584
+ m.appendChild(endMarker);
585
+ insert(m, c, endMarker);
586
+ return () => {
587
+ let c = startMarker;
588
+ while (c && c !== endMarker) {
589
+ const n = c.nextSibling;
590
+ m.removeChild(c);
591
+ c = n;
592
+ }
593
+ };
594
+ });
1070
595
  return treeMarker;
1071
596
  }
1072
597
  function createElementProxy(el, marker) {
@@ -1106,59 +631,4 @@ function Dynamic(props) {
1106
631
  return createDynamic(() => props.component, others);
1107
632
  }
1108
633
 
1109
- export {
1110
- voidFn as Assets,
1111
- ChildProperties,
1112
- DOMElements,
1113
- DelegatedEvents,
1114
- Dynamic,
1115
- Hydration,
1116
- voidFn as HydrationScript,
1117
- NoHydration,
1118
- Portal,
1119
- Properties,
1120
- RequestContext,
1121
- SVGElements,
1122
- SVGNamespace,
1123
- addEventListener,
1124
- assign,
1125
- className,
1126
- clearDelegatedEvents,
1127
- createDynamic,
1128
- delegateEvents,
1129
- dynamicProperty,
1130
- escape,
1131
- voidFn as generateHydrationScript,
1132
- voidFn as getAssets,
1133
- getHydrationKey,
1134
- getNextElement,
1135
- getNextMarker,
1136
- getNextMatch,
1137
- getPropAlias,
1138
- voidFn as getRequestEvent,
1139
- hydrate,
1140
- insert,
1141
- isDev,
1142
- isServer,
1143
- render,
1144
- renderToStream,
1145
- renderToString,
1146
- renderToStringAsync,
1147
- resolveSSRNode,
1148
- runHydrationEvents,
1149
- setAttribute,
1150
- setAttributeNS,
1151
- setBoolAttribute,
1152
- setProperty,
1153
- spread,
1154
- ssr,
1155
- ssrAttribute,
1156
- ssrClassList,
1157
- ssrElement,
1158
- ssrHydrationKey,
1159
- ssrStyle,
1160
- style,
1161
- template,
1162
- use,
1163
- voidFn as useAssets
1164
- };
634
+ export { voidFn as Assets, ChildProperties, DOMElements, DelegatedEvents, Dynamic, Hydration, voidFn as HydrationScript, NoHydration, Portal, Properties, RequestContext, SVGElements, SVGNamespace, addEventListener, assign, className, clearDelegatedEvents, createDynamic, delegateEvents, dynamicProperty, escape, voidFn as generateHydrationScript, voidFn as getAssets, getHydrationKey, getNextElement, getNextMarker, getNextMatch, getPropAlias, voidFn as getRequestEvent, hydrate, insert, isDev, isServer, memo, render, renderToStream, renderToString, renderToStringAsync, resolveSSRNode, runHydrationEvents, setAttribute, setAttributeNS, setBoolAttribute, setProperty, spread, ssr, ssrAttribute, ssrClassList, ssrElement, ssrHydrationKey, ssrStyle, style, template, use, voidFn as useAssets };