@solidjs/web 2.0.0-beta.13 → 2.0.0-beta.15

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.cjs CHANGED
@@ -31,6 +31,8 @@ const DOMWithState = {
31
31
  }
32
32
  };
33
33
  const ChildProperties = /*#__PURE__*/new Set(["innerHTML", "textContent", "innerText", "children"]);
34
+ const $$SLOT = /*#__PURE__*/Symbol("slot");
35
+ const $$HOST = /*#__PURE__*/Symbol("host");
34
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"]);
35
37
  const SVGElements = /*#__PURE__*/new Set([
36
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",
@@ -64,14 +66,18 @@ const effect = (fn, effectFn, options) => solidJs.createRenderEffect(fn, effectF
64
66
  } : transparentOptions);
65
67
  const memo = fn => solidJs.createMemo(() => fn(), syncOptions);
66
68
 
67
- function reconcileArrays(parentNode, a, b) {
69
+ function reconcileArrays(parentNode, a, b, marker) {
68
70
  let bLength = b.length,
69
71
  aEnd = a.length,
70
72
  bEnd = bLength,
71
73
  aStart = 0,
72
74
  bStart = 0,
73
- after = a[aEnd - 1].nextSibling,
74
- map = null;
75
+ tail = a[aEnd - 1],
76
+ tailTag = tail[$$SLOT],
77
+ after = tail.parentNode === parentNode && (!tailTag || tailTag === marker) ? tail.nextSibling : marker || null,
78
+ map = null,
79
+ anchor,
80
+ anchorTag;
75
81
  while (aStart < aEnd || bStart < bEnd) {
76
82
  if (a[aStart] === b[bStart]) {
77
83
  aStart++;
@@ -83,20 +89,43 @@ function reconcileArrays(parentNode, a, b) {
83
89
  bEnd--;
84
90
  }
85
91
  if (aEnd === aStart) {
86
- const node = bEnd < bLength ? bStart ? b[bStart - 1].nextSibling : b[bEnd - bStart] : after;
87
- while (bStart < bEnd) parentNode.insertBefore(b[bStart++], node);
92
+ let node;
93
+ if (bEnd < bLength) {
94
+ if (bStart) {
95
+ const prev = b[bStart - 1];
96
+ const prevTag = prev[$$SLOT];
97
+ node = prev.parentNode === parentNode && (!prevTag || prevTag === marker) ? prev.nextSibling : after;
98
+ } else node = b[bEnd - bStart];
99
+ } else node = after;
100
+ while (bStart < bEnd) {
101
+ const n = b[bStart++];
102
+ parentNode.insertBefore(n, node);
103
+ if (marker) n[$$SLOT] = marker;
104
+ }
88
105
  } else if (bEnd === bStart) {
89
106
  while (aStart < aEnd) {
90
- if (!map || !map.has(a[aStart])) a[aStart].remove();
91
- aStart++;
107
+ const n = a[aStart++];
108
+ if (!map || !map.has(n)) {
109
+ const tag = n[$$SLOT];
110
+ if (n.parentNode === parentNode && (!tag || tag === marker)) n.remove();
111
+ }
112
+ }
113
+ } else if ((anchor = a[aStart]) === b[bEnd - 1] && b[bStart] === a[aEnd - 1] && anchor.parentNode === parentNode && (!(anchorTag = anchor[$$SLOT]) || anchorTag === marker)) {
114
+ if (marker) {
115
+ do {
116
+ const n = a[--aEnd];
117
+ parentNode.insertBefore(n, anchor);
118
+ n[$$SLOT] = marker;
119
+ bStart++;
120
+ if (aStart >= aEnd - 1 || bStart >= bEnd) break;
121
+ } while (a[aStart] === b[bEnd - 1] && b[bStart] === a[aEnd - 1]);
122
+ } else {
123
+ do {
124
+ parentNode.insertBefore(a[--aEnd], anchor);
125
+ bStart++;
126
+ if (aStart >= aEnd - 1 || bStart >= bEnd) break;
127
+ } while (a[aStart] === b[bEnd - 1] && b[bStart] === a[aEnd - 1]);
92
128
  }
93
- } else if (a[aStart] === b[bEnd - 1] && b[bStart] === a[aEnd - 1]) {
94
- const anchor = a[aStart];
95
- do {
96
- parentNode.insertBefore(a[--aEnd], anchor);
97
- bStart++;
98
- if (aStart >= aEnd - 1 || bStart >= bEnd) break;
99
- } while (a[aStart] === b[bEnd - 1] && b[bStart] === a[aEnd - 1]);
100
129
  } else {
101
130
  if (!map) {
102
131
  map = new Map();
@@ -114,33 +143,63 @@ function reconcileArrays(parentNode, a, b) {
114
143
  sequence++;
115
144
  }
116
145
  if (sequence > index - bStart) {
117
- const node = a[aStart];
118
- while (bStart < index) parentNode.insertBefore(b[bStart++], node);
119
- } else parentNode.replaceChild(b[bStart++], a[aStart++]);
146
+ const head = a[aStart];
147
+ const headTag = head[$$SLOT];
148
+ const node = head.parentNode === parentNode && (!headTag || headTag === marker) ? head : after;
149
+ while (bStart < index) {
150
+ const n = b[bStart++];
151
+ parentNode.insertBefore(n, node);
152
+ if (marker) n[$$SLOT] = marker;
153
+ }
154
+ } else {
155
+ const oldNode = a[aStart++];
156
+ const newNode = b[bStart++];
157
+ const oldTag = oldNode[$$SLOT];
158
+ if (oldNode.parentNode === parentNode && (!oldTag || oldTag === marker)) {
159
+ parentNode.replaceChild(newNode, oldNode);
160
+ } else {
161
+ parentNode.insertBefore(newNode, after);
162
+ }
163
+ if (marker) newNode[$$SLOT] = marker;
164
+ }
120
165
  } else aStart++;
121
- } else a[aStart++].remove();
166
+ } else {
167
+ const n = a[aStart++];
168
+ const nTag = n[$$SLOT];
169
+ if (n.parentNode === parentNode && (!nTag || nTag === marker)) n.remove();
170
+ }
122
171
  }
123
172
  }
124
173
  }
125
174
 
126
- const $$EVENTS = "_$DX_DELEGATE";
175
+ const $$EVENT_OWNER = "_$DX_EVENT_OWNER";
127
176
  const INNER_OWNED = {};
177
+ const delegatedEvents = new Set();
178
+ const delegatedContainers = new Map();
128
179
  function render$1(code, element, init, options = {}) {
129
180
  let disposer;
130
- solidJs.createRoot(dispose => {
131
- disposer = dispose;
132
- if (element === document) {
133
- const tree = code();
134
- effect(() => solidJs.flatten(tree), () => {});
135
- } else {
136
- const tree = code();
137
- insert(element, () => tree, element.firstChild ? null : undefined, init, options.insertOptions);
138
- }
139
- }, {
140
- id: options.renderId
141
- });
181
+ registerDelegatedRoot(element);
182
+ try {
183
+ solidJs.createRoot(dispose => {
184
+ disposer = dispose;
185
+ if (element === document) {
186
+ const tree = code();
187
+ effect(() => solidJs.flatten(tree), () => {});
188
+ } else {
189
+ const tree = code();
190
+ insert(element, () => tree, element.firstChild ? null : undefined, init, options.insertOptions);
191
+ }
192
+ }, {
193
+ id: options.renderId
194
+ });
195
+ } catch (err) {
196
+ if (disposer) disposer();
197
+ unregisterDelegatedRoot(element);
198
+ throw err;
199
+ }
142
200
  return () => {
143
201
  disposer();
202
+ unregisterDelegatedRoot(element);
144
203
  element.textContent = "";
145
204
  };
146
205
  }
@@ -154,20 +213,66 @@ function template(html, flag) {
154
213
  const fn = flag === 1 ? bypassGuard => document.importNode(node || (node = create(html, bypassGuard, flag)), true) : bypassGuard => (node || (node = create(html, bypassGuard, flag))).cloneNode(true);
155
214
  return fn;
156
215
  }
157
- function delegateEvents(eventNames, document = window.document) {
158
- const e = document[$$EVENTS] || (document[$$EVENTS] = new Set());
216
+ function delegateEvents(eventNames) {
159
217
  for (let i = 0, l = eventNames.length; i < l; i++) {
160
218
  const name = eventNames[i];
161
- if (!e.has(name)) {
162
- e.add(name);
163
- document.addEventListener(name, eventHandler);
219
+ if (!delegatedEvents.has(name)) {
220
+ delegatedEvents.add(name);
221
+ delegatedContainers.forEach((state, container) => attachDelegatedEvent(name, container, state));
164
222
  }
165
223
  }
166
224
  }
167
- function clearDelegatedEvents(document = window.document) {
168
- if (document[$$EVENTS]) {
169
- for (let name of document[$$EVENTS].keys()) document.removeEventListener(name, eventHandler);
170
- delete document[$$EVENTS];
225
+ function registerDelegatedRoot(root) {
226
+ const state = registerDelegatedContainer(root, root);
227
+ if (state) state.roots = (state.roots || 0) + 1;
228
+ }
229
+ function unregisterDelegatedRoot(root) {
230
+ const state = delegatedContainers.get(root);
231
+ if (state) state.roots > 1 ? state.roots-- : delete state.roots;
232
+ unregisterDelegatedContainer(root, root);
233
+ }
234
+ function registerDelegatedContainer(container, owner = container) {
235
+ if (!container || !owner) return;
236
+ let state = delegatedContainers.get(container);
237
+ if (!state) delegatedContainers.set(container, state = {
238
+ owners: new Map(),
239
+ handlers: new Map()
240
+ });
241
+ state.owners.set(owner, (state.owners.get(owner) || 0) + 1);
242
+ delegatedEvents.forEach(name => attachDelegatedEvent(name, container, state));
243
+ return state;
244
+ }
245
+ function unregisterDelegatedContainer(container, owner = container) {
246
+ const state = delegatedContainers.get(container);
247
+ if (!state) return;
248
+ const count = state.owners.get(owner);
249
+ if (count > 1) state.owners.set(owner, count - 1);else state.owners.delete(owner);
250
+ if (state.owners.size) return;
251
+ state.handlers.forEach((handler, name) => container.removeEventListener(name, handler));
252
+ delegatedContainers.delete(container);
253
+ }
254
+ function attachDelegatedEvent(name, container, state) {
255
+ if (state.handlers.has(name)) return;
256
+ const handler = e => eventHandler(e, container, state);
257
+ state.handlers.set(name, handler);
258
+ container.addEventListener(name, handler);
259
+ }
260
+ function getDelegatedRoot(node) {
261
+ while (node) {
262
+ if (delegatedContainers.get(node)?.roots) return node;
263
+ node = node._$host || node.parentNode || node.host;
264
+ }
265
+ }
266
+ function findOwner(target, state) {
267
+ let node = target;
268
+ let distance = 0;
269
+ while (node) {
270
+ if (state.owners.has(node)) return {
271
+ owner: node,
272
+ distance
273
+ };
274
+ distance++;
275
+ node = node._$host || node.parentNode || node.host;
171
276
  }
172
277
  }
173
278
  function setProperty(node, name, value) {
@@ -212,7 +317,7 @@ function className(node, value, prev) {
212
317
  node.classList.add(key);
213
318
  }
214
319
  }
215
- function addEventListener(node, name, handler, delegate) {
320
+ function addEvent(node, name, handler, delegate) {
216
321
  if (delegate) {
217
322
  if (Array.isArray(handler)) {
218
323
  node[`$$${name}`] = handler[0];
@@ -279,6 +384,7 @@ function ref(fn, element) {
279
384
  }
280
385
  function insert(parent, accessor, marker, initial, options) {
281
386
  const multi = marker !== undefined;
387
+ const host = options && options.host;
282
388
  if (multi && !initial) initial = [];
283
389
  if (isHydrating(parent)) {
284
390
  if (!multi && initial === undefined && parent) initial = [...parent.childNodes];
@@ -292,7 +398,11 @@ function insert(parent, accessor, marker, initial, options) {
292
398
  }
293
399
  if (typeof accessor !== "function") {
294
400
  accessor = normalize(accessor, initial, multi, true);
295
- if (typeof accessor !== "function") return insertExpression(parent, accessor, initial, marker);
401
+ if (typeof accessor !== "function") {
402
+ insertExpression(parent, accessor, initial, marker);
403
+ host && tagHost(accessor, host);
404
+ return;
405
+ }
296
406
  }
297
407
  if (multi && initial.length === 0) {
298
408
  const placeholder = document.createTextNode("");
@@ -306,6 +416,7 @@ function insert(parent, accessor, marker, initial, options) {
306
416
  effect(() => normalize(value, current, multi), inner => {
307
417
  insertExpression(parent, inner, current, marker);
308
418
  current = inner;
419
+ host && tagHost(current, host);
309
420
  }, prev !== undefined && !(options && options.schedule) ? {
310
421
  ...options,
311
422
  schedule: true
@@ -315,6 +426,7 @@ function insert(parent, accessor, marker, initial, options) {
315
426
  if (value === INNER_OWNED) return;
316
427
  insertExpression(parent, value, current, marker);
317
428
  current = value;
429
+ host && tagHost(current, host);
318
430
  }, options);
319
431
  }
320
432
  function assign(node, props, skipChildren, prevProps = {}, skipRef = false) {
@@ -462,7 +574,17 @@ function runHydrationEvents() {
462
574
  const [el, e] = events[0];
463
575
  if (!completed.has(el)) return;
464
576
  events.shift();
465
- eventHandler(e);
577
+ let match;
578
+ for (const [container, state] of delegatedContainers) {
579
+ if (!state.handlers.has(e.type)) continue;
580
+ const entry = findOwner(e.target, state);
581
+ if (entry && (!match || entry.distance < match.distance)) match = {
582
+ container,
583
+ state,
584
+ distance: entry.distance
585
+ };
586
+ }
587
+ if (match) eventHandler(e, match.container, match.state);
466
588
  }
467
589
  if (solidJs.sharedConfig.done) {
468
590
  solidJs.sharedConfig.events = _$HY.events = null;
@@ -517,7 +639,7 @@ function assignProp(node, prop, value, prev, skipRef, nodeName) {
517
639
  node.removeEventListener(name, h);
518
640
  }
519
641
  if (delegate || value) {
520
- addEventListener(node, name, value, delegate);
642
+ addEvent(node, name, value, delegate);
521
643
  delegate && delegateEvents([name]);
522
644
  }
523
645
  } else if (hasNamespace && prop.slice(0, 5) === "prop:" || ChildProperties.has(prop) || DOMWithState[nodeName]?.[prop]) {
@@ -529,14 +651,18 @@ function assignProp(node, prop, value, prev, skipRef, nodeName) {
529
651
  }
530
652
  return value;
531
653
  }
532
- function eventHandler(e) {
654
+ function eventHandler(e, container, state) {
533
655
  if (solidJs.sharedConfig.registry && solidJs.sharedConfig.events) {
534
656
  if (solidJs.sharedConfig.events.find(([el, ev]) => ev === e)) return;
535
657
  }
658
+ if (e[$$EVENT_OWNER]) return;
659
+ const owner = state && (state.owners.size === 1 && state.owners.has(container) ? container : findOwner(e.target, state)?.owner);
660
+ if (state && !owner) return;
661
+ e[$$EVENT_OWNER] = owner || true;
536
662
  let node = e.target;
537
663
  const key = `$$${e.type}`;
538
664
  const oriTarget = e.target;
539
- const oriCurrentTarget = e.currentTarget;
665
+ const boundary = owner || container || e.currentTarget;
540
666
  const retarget = value => Object.defineProperty(e, "target", {
541
667
  configurable: true,
542
668
  value
@@ -552,29 +678,34 @@ function eventHandler(e) {
552
678
  return true;
553
679
  };
554
680
  const walkUpTree = () => {
555
- while (handleNode() && (node = node._$host || node.parentNode || node.host));
681
+ while (handleNode()) {
682
+ if (node === boundary || node.parentNode === boundary) break;
683
+ node = node._$host || node.parentNode || node.host;
684
+ }
556
685
  };
557
686
  Object.defineProperty(e, "currentTarget", {
558
687
  configurable: true,
559
688
  get() {
560
- return node || document;
689
+ return node || boundary || document;
561
690
  }
562
691
  });
563
692
  if (e.composedPath) {
564
693
  const path = e.composedPath();
565
- retarget(path[0]);
566
- for (let i = 0; i < path.length - 2; i++) {
567
- node = path[i];
568
- if (!handleNode()) break;
569
- if (node._$host) {
570
- node = node._$host;
571
- walkUpTree();
572
- break;
573
- }
574
- if (node.parentNode === oriCurrentTarget) {
575
- break;
694
+ if (path.length) {
695
+ retarget(path[0]);
696
+ for (let i = 0; i < path.length; i++) {
697
+ node = path[i];
698
+ if (!handleNode()) break;
699
+ if (node._$host) {
700
+ node = node._$host;
701
+ walkUpTree();
702
+ break;
703
+ }
704
+ if (node === boundary || node.parentNode === boundary) {
705
+ break;
706
+ }
576
707
  }
577
- }
708
+ } else walkUpTree();
578
709
  }
579
710
  else walkUpTree();
580
711
  retarget(oriTarget);
@@ -594,9 +725,14 @@ function insertExpression(parent, value, current, marker) {
594
725
  } else if (value.nodeType) {
595
726
  if (Array.isArray(current)) {
596
727
  cleanChildren(parent, current, multi ? marker : null, value);
597
- } else if (current === undefined || !parent.firstChild) {
728
+ } else if (current && current.nodeType) {
729
+ current.parentNode === parent ? parent.replaceChild(value, current) : parent.appendChild(value);
730
+ } else if (current && parent.firstChild) {
731
+ parent.replaceChild(value, parent.firstChild);
732
+ } else {
598
733
  parent.appendChild(value);
599
- } else parent.replaceChild(value, parent.firstChild);
734
+ }
735
+ if (marker) value[$$SLOT] = marker;
600
736
  } else if (Array.isArray(value)) {
601
737
  const currentArray = current && Array.isArray(current);
602
738
  if (value.length === 0) {
@@ -604,7 +740,7 @@ function insertExpression(parent, value, current, marker) {
604
740
  } else if (currentArray) {
605
741
  if (current.length === 0) {
606
742
  appendNodes(parent, value, marker);
607
- } else reconcileArrays(parent, current, value);
743
+ } else reconcileArrays(parent, current, value, marker);
608
744
  } else {
609
745
  current && cleanChildren(parent);
610
746
  appendNodes(parent, value);
@@ -628,8 +764,23 @@ function normalize(value, current, multi, doNotUnwrap) {
628
764
  }
629
765
  return value;
630
766
  }
767
+ function tagHost(value, host) {
768
+ if (Array.isArray(value)) {
769
+ for (let i = 0, len = value.length; i < len; i++) tagHost(value[i], host);
770
+ } else if (value && value.nodeType && value[$$HOST] !== host) {
771
+ value[$$HOST] = host;
772
+ Object.defineProperty(value, "_$host", {
773
+ get: host,
774
+ configurable: true
775
+ });
776
+ }
777
+ }
631
778
  function appendNodes(parent, array, marker = null) {
632
- for (let i = 0, len = array.length; i < len; i++) parent.insertBefore(array[i], marker);
779
+ for (let i = 0, len = array.length; i < len; i++) {
780
+ const n = array[i];
781
+ parent.insertBefore(n, marker);
782
+ if (marker) n[$$SLOT] = marker;
783
+ }
633
784
  }
634
785
  function cleanChildren(parent, current, marker, replacement) {
635
786
  if (marker === undefined) return parent.textContent = "";
@@ -638,11 +789,13 @@ function cleanChildren(parent, current, marker, replacement) {
638
789
  for (let i = current.length - 1; i >= 0; i--) {
639
790
  const el = current[i];
640
791
  if (replacement !== el) {
641
- const isParent = el.parentNode === parent;
642
- if (replacement && !inserted && !i) isParent ? parent.replaceChild(replacement, el) : parent.insertBefore(replacement, marker);else isParent && el.remove();
792
+ const tag = el[$$SLOT];
793
+ const owns = el.parentNode === parent && (!tag || tag === marker);
794
+ if (replacement && !inserted && !i) owns ? parent.replaceChild(replacement, el) : parent.insertBefore(replacement, marker);else if (owns) el.remove();
643
795
  } else inserted = true;
644
796
  }
645
797
  } else if (replacement) parent.insertBefore(replacement, marker);
798
+ if (replacement && marker) replacement[$$SLOT] = marker;
646
799
  }
647
800
  function gatherHydratable(element, root) {
648
801
  const templates = element.querySelectorAll(`*[_hk]`);
@@ -704,12 +857,20 @@ function Portal(props) {
704
857
  const treeMarker = document.createTextNode(""),
705
858
  startMarker = document.createTextNode(""),
706
859
  endMarker = document.createTextNode(""),
707
- mount = () => createElementProxy(props.mount || document.body, treeMarker);
708
- let content = solidJs.createMemo(() => [startMarker, props.children]);
709
- solidJs.createRenderEffect(() => [mount(), content()], ([m, c]) => {
860
+ mount = () => props.mount || document.body,
861
+ content = solidJs.createMemo(() => [startMarker, props.children]);
862
+ solidJs.createRenderEffect(
863
+ () => [mount(), content(), solidJs.getOwner()], ([, c, owner]) => {
864
+ const m = solidJs.untrack(mount);
710
865
  m.appendChild(endMarker);
711
- insert(m, c, endMarker);
866
+ const dispose = solidJs.runWithOwner(owner, () => solidJs.createRoot(d => {
867
+ insert(m, c, endMarker, undefined, {
868
+ host: () => treeMarker.parentNode
869
+ });
870
+ return d;
871
+ }));
712
872
  return () => {
873
+ dispose();
713
874
  let c = startMarker;
714
875
  while (c && c !== endMarker) {
715
876
  const n = c.nextSibling;
@@ -717,6 +878,15 @@ function Portal(props) {
717
878
  c = n;
718
879
  }
719
880
  };
881
+ }, {
882
+ schedule: true
883
+ });
884
+ solidJs.createEffect(mount, () => {
885
+ const m = solidJs.untrack(mount);
886
+ const ownerRoot = getDelegatedRoot(treeMarker);
887
+ if (!ownerRoot || ownerRoot.contains(m)) return;
888
+ registerDelegatedContainer(m, ownerRoot);
889
+ return () => unregisterDelegatedContainer(m, ownerRoot);
720
890
  });
721
891
  return treeMarker;
722
892
  }
@@ -747,23 +917,6 @@ function createElement(tagName, is = undefined) {
747
917
  is
748
918
  });
749
919
  }
750
- function createElementProxy(el, marker) {
751
- return new Proxy(el, {
752
- get(target, prop) {
753
- if (prop === "appendChild" || prop === "insertBefore") {
754
- return (...args) => {
755
- Object.defineProperty(args[0], "_$host", {
756
- get: () => marker.parentNode,
757
- configurable: true
758
- });
759
- target[prop](...args);
760
- };
761
- }
762
- const value = Reflect.get(target, prop);
763
- return typeof value === "function" ? value.bind(target) : value;
764
- }
765
- });
766
- }
767
920
 
768
921
  Object.defineProperty(exports, "Errored", {
769
922
  enumerable: true,
@@ -831,11 +984,10 @@ exports.RawTextElements = RawTextElements;
831
984
  exports.RequestContext = RequestContext;
832
985
  exports.SVGElements = SVGElements;
833
986
  exports.VoidElements = VoidElements;
834
- exports.addEventListener = addEventListener;
987
+ exports.addEvent = addEvent;
835
988
  exports.applyRef = applyRef;
836
989
  exports.assign = assign;
837
990
  exports.className = className;
838
- exports.clearDelegatedEvents = clearDelegatedEvents;
839
991
  exports.delegateEvents = delegateEvents;
840
992
  exports.dynamic = dynamic;
841
993
  exports.dynamicProperty = dynamicProperty;
@@ -843,6 +995,7 @@ exports.effect = effect;
843
995
  exports.escape = escape;
844
996
  exports.generateHydrationScript = voidFn;
845
997
  exports.getAssets = voidFn;
998
+ exports.getDelegatedRoot = getDelegatedRoot;
846
999
  exports.getFirstChild = getFirstChild;
847
1000
  exports.getHydrationKey = getHydrationKey;
848
1001
  exports.getNextElement = getNextElement;
@@ -857,6 +1010,8 @@ exports.isServer = isServer;
857
1010
  exports.memo = memo;
858
1011
  exports.mergeProps = mergeProps;
859
1012
  exports.ref = ref;
1013
+ exports.registerDelegatedContainer = registerDelegatedContainer;
1014
+ exports.registerDelegatedRoot = registerDelegatedRoot;
860
1015
  exports.render = render;
861
1016
  exports.renderToStream = renderToStream;
862
1017
  exports.renderToString = renderToString;
@@ -876,4 +1031,6 @@ exports.ssrHydrationKey = ssrHydrationKey;
876
1031
  exports.ssrStyle = ssrStyle;
877
1032
  exports.style = style;
878
1033
  exports.template = template;
1034
+ exports.unregisterDelegatedContainer = unregisterDelegatedContainer;
1035
+ exports.unregisterDelegatedRoot = unregisterDelegatedRoot;
879
1036
  exports.useAssets = voidFn;