frosty 0.0.41 → 0.0.43

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/_native.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { N as NativeElementType, c as PropsType, b as ComponentNode } from './internals/common-CUIKizze.js';
2
- export { V as VNode, _ as _Renderer } from './internals/renderer-DPoACdip.js';
2
+ export { V as VNode, _ as _Renderer } from './internals/renderer-DDRMah6t.js';
3
3
  export { u as uniqueId } from './internals/utils-DWp2-G3N.js';
4
4
  import '@o2ter/utils-js';
5
5
  import 'lodash';
package/dist/_native.js CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var runtime = require('./internals/runtime-DCKT7fd6.js');
4
- var renderer = require('./internals/renderer-a9zN1_RB.js');
4
+ var renderer = require('./internals/renderer-CD_mSOiL.js');
5
5
  var state = require('./internals/state-Lf_tbWNd.js');
6
6
  var component = require('./internals/component-BiP3XIPe.js');
7
7
  require('lodash');
package/dist/_native.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { _ as _createElement } from './internals/runtime-DK28Kyy2.mjs';
2
- export { _ as _Renderer } from './internals/renderer-ClDlweEF.mjs';
2
+ export { _ as _Renderer } from './internals/renderer-DMJ6PnD6.mjs';
3
3
  export { b as EventEmitter, V as VNode, a as uniqueId } from './internals/state-5PNx91ec.mjs';
4
4
  export { N as NativeElementType } from './internals/component-BzurKp_J.mjs';
5
5
  import 'lodash';
package/dist/dom.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import { _ as _DOMRenderer } from './internals/common-BG8cT1kV.js';
1
+ import { _ as _DOMRenderer } from './internals/common-CDZcUGUM.js';
2
2
  import './internals/common-CUIKizze.js';
3
3
  import '@o2ter/utils-js';
4
4
  import 'lodash';
5
5
  import 'csstype';
6
- import './internals/renderer-DPoACdip.js';
6
+ import './internals/renderer-DDRMah6t.js';
7
7
  import 'jsdom';
8
8
 
9
9
  declare class DOMRenderer extends _DOMRenderer {
package/dist/dom.js CHANGED
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var common = require('./internals/common-DB-05wD7.js');
3
+ var common = require('./internals/common-P5AZ4-Yt.js');
4
4
  require('lodash');
5
5
  require('myers.js');
6
6
  require('./internals/component-BiP3XIPe.js');
7
- require('./internals/renderer-a9zN1_RB.js');
7
+ require('./internals/renderer-CD_mSOiL.js');
8
8
  require('./internals/state-Lf_tbWNd.js');
9
9
  require('nextick');
10
10
  require('postcss');
package/dist/dom.mjs CHANGED
@@ -1,8 +1,8 @@
1
- import { _ as _DOMRenderer } from './internals/common-iw--21Y0.mjs';
1
+ import { _ as _DOMRenderer } from './internals/common-Cmc9qJmA.mjs';
2
2
  import 'lodash';
3
3
  import 'myers.js';
4
4
  import './internals/component-BzurKp_J.mjs';
5
- import './internals/renderer-ClDlweEF.mjs';
5
+ import './internals/renderer-DMJ6PnD6.mjs';
6
6
  import './internals/state-5PNx91ec.mjs';
7
7
  import 'nextick';
8
8
  import 'postcss';
@@ -1,5 +1,5 @@
1
1
  import { N as NativeElementType, b as ComponentNode } from './common-CUIKizze.js';
2
- import { _ as _Renderer } from './renderer-DPoACdip.js';
2
+ import { _ as _Renderer } from './renderer-DDRMah6t.js';
3
3
  import { DOMWindow } from 'jsdom';
4
4
 
5
5
  declare abstract class DOMNativeNode extends NativeElementType {
@@ -15,6 +15,7 @@ declare abstract class DOMNativeNode extends NativeElementType {
15
15
  declare abstract class _DOMRenderer extends _Renderer<Element | DOMNativeNode> {
16
16
  private _window;
17
17
  private _namespace_map;
18
+ private _tracked_elements;
18
19
  private _tracked_props;
19
20
  private _tracked_listener;
20
21
  private _tracked_head_children;
@@ -25,9 +26,9 @@ declare abstract class _DOMRenderer extends _Renderer<Element | DOMNativeNode> {
25
26
  get window(): Window | DOMWindow;
26
27
  private __createBuiltClassName;
27
28
  private __updateEventListener;
28
- __replaceChildren(element: Element, children: (string | Element | DOMNativeNode)[]): void;
29
+ __replaceChildren(element: Element, children: (string | Element | DOMNativeNode)[], force?: boolean): void;
29
30
  renderToString(component: ComponentNode): string;
30
31
  }
31
32
 
32
33
  export { DOMNativeNode as D, _DOMRenderer as _ };
33
- //# sourceMappingURL=common-BG8cT1kV.d.ts.map
34
+ //# sourceMappingURL=common-CDZcUGUM.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common-CDZcUGUM.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,7 +1,7 @@
1
1
  import _ from 'lodash';
2
2
  import { myersSync } from 'myers.js';
3
3
  import { N as NativeElementType } from './component-BzurKp_J.mjs';
4
- import { _ as _Renderer } from './renderer-ClDlweEF.mjs';
4
+ import { _ as _Renderer } from './renderer-DMJ6PnD6.mjs';
5
5
  import postcss from 'postcss';
6
6
  import { parse } from 'postcss-js';
7
7
  import nested from 'postcss-nested';
@@ -3894,6 +3894,7 @@ class DOMNativeNode extends NativeElementType {
3894
3894
  class _DOMRenderer extends _Renderer {
3895
3895
  _window;
3896
3896
  _namespace_map = new WeakMap();
3897
+ _tracked_elements = new WeakSet();
3897
3898
  _tracked_props = new WeakMap();
3898
3899
  _tracked_listener = new WeakMap();
3899
3900
  _tracked_head_children = [];
@@ -3919,9 +3920,10 @@ class _DOMRenderer extends _Renderer {
3919
3920
  /** @internal */
3920
3921
  _afterUpdate() {
3921
3922
  this._tracked_style.select(this._tracked_style_names);
3923
+ const head = this.document.head ?? this.document.createElementNS(HTML_NS, 'head');
3922
3924
  if (this._tracked_style.isEmpty) {
3923
3925
  if (this._server) {
3924
- this.__replaceChildren(this.document.head, this._tracked_head_children);
3926
+ this.__replaceChildren(head, this._tracked_head_children);
3925
3927
  }
3926
3928
  }
3927
3929
  else {
@@ -3929,12 +3931,15 @@ class _DOMRenderer extends _Renderer {
3929
3931
  styleElem.setAttribute('data-frosty-style', '');
3930
3932
  styleElem.textContent = this._tracked_style.css;
3931
3933
  if (this._server) {
3932
- this.__replaceChildren(this.document.head, [...this._tracked_head_children, styleElem]);
3934
+ this.__replaceChildren(head, [...this._tracked_head_children, styleElem]);
3933
3935
  }
3934
- else if (styleElem.parentNode !== this.document.head) {
3935
- this.document.head.appendChild(styleElem);
3936
+ else if (styleElem.parentNode !== head) {
3937
+ head.appendChild(styleElem);
3936
3938
  }
3937
3939
  }
3940
+ if (!this.document.head) {
3941
+ this.document.documentElement.insertBefore(head, this.document.body);
3942
+ }
3938
3943
  }
3939
3944
  /** @internal */
3940
3945
  _createElement(node, stack) {
@@ -3962,6 +3967,7 @@ class _DOMRenderer extends _Renderer {
3962
3967
  const elem = ns ? this.document.createElementNS(ns, type) : this.document.createElement(type);
3963
3968
  this._namespace_map.set(node, ns);
3964
3969
  this._updateElement(node, elem, stack);
3970
+ this._tracked_elements.add(elem);
3965
3971
  return elem;
3966
3972
  }
3967
3973
  __createBuiltClassName(className, style) {
@@ -4069,7 +4075,7 @@ class _DOMRenderer extends _Renderer {
4069
4075
  }
4070
4076
  }
4071
4077
  /** @internal */
4072
- _replaceChildren(node, element, children) {
4078
+ _replaceChildren(node, element, children, force) {
4073
4079
  if (element instanceof DOMNativeNode) {
4074
4080
  element.replaceChildren(children);
4075
4081
  }
@@ -4079,7 +4085,7 @@ class _DOMRenderer extends _Renderer {
4079
4085
  this._tracked_head_children.push(...children);
4080
4086
  }
4081
4087
  else if (_.isEmpty(innerHTML)) {
4082
- this.__replaceChildren(element, children);
4088
+ this.__replaceChildren(element, children, force);
4083
4089
  }
4084
4090
  }
4085
4091
  }
@@ -4098,7 +4104,7 @@ class _DOMRenderer extends _Renderer {
4098
4104
  }
4099
4105
  }
4100
4106
  }
4101
- __replaceChildren(element, children) {
4107
+ __replaceChildren(element, children, force) {
4102
4108
  const diff = myersSync(_.map(element.childNodes, x => x.nodeType === this.document.TEXT_NODE ? x.textContent ?? '' : x), _.map(children, x => x instanceof DOMNativeNode ? x.target : x), { compare: (a, b) => a === b });
4103
4109
  let i = 0;
4104
4110
  for (const { remove, insert, equivalent } of diff) {
@@ -4107,7 +4113,12 @@ class _DOMRenderer extends _Renderer {
4107
4113
  }
4108
4114
  else if (remove) {
4109
4115
  for (const child of remove) {
4110
- element.removeChild(element.childNodes[i]);
4116
+ if (force || _.isString(child) || this._tracked_elements.has(child)) {
4117
+ element.removeChild(element.childNodes[i]);
4118
+ }
4119
+ else {
4120
+ i++;
4121
+ }
4111
4122
  }
4112
4123
  }
4113
4124
  if (insert) {
@@ -4132,4 +4143,4 @@ class _DOMRenderer extends _Renderer {
4132
4143
  }
4133
4144
 
4134
4145
  export { DOMNativeNode as D, _DOMRenderer as _ };
4135
- //# sourceMappingURL=common-iw--21Y0.mjs.map
4146
+ //# sourceMappingURL=common-Cmc9qJmA.mjs.map