solid-js 1.5.6 → 1.5.8

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/dev.cjs CHANGED
@@ -287,10 +287,6 @@ function createResource(pSource, pFetcher, pOptions) {
287
287
  loadedUnderTransition = false;
288
288
  runUpdates(() => {
289
289
  Transition.running = true;
290
- if (!Transition.promises.size) {
291
- Effects.push.apply(Effects, Transition.effects);
292
- Transition.effects = [];
293
- }
294
290
  completeLoad(v, error);
295
291
  }, false);
296
292
  } else completeLoad(v, error);
@@ -315,7 +311,7 @@ function createResource(pSource, pFetcher, pOptions) {
315
311
  createComputed(() => {
316
312
  track();
317
313
  if (pr) {
318
- if (c.resolved && Transition) Transition.promises.add(pr);else if (!contexts.has(c)) {
314
+ if (c.resolved && Transition && loadedUnderTransition) Transition.promises.add(pr);else if (!contexts.has(c)) {
319
315
  c.increment();
320
316
  contexts.add(c);
321
317
  }
@@ -686,7 +682,9 @@ function updateComputation(node) {
686
682
  queueMicrotask(() => {
687
683
  runUpdates(() => {
688
684
  Transition && (Transition.running = true);
685
+ Listener = Owner = node;
689
686
  runComputation(node, node.tValue, time);
687
+ Listener = Owner = null;
690
688
  }, false);
691
689
  });
692
690
  }
@@ -803,36 +801,38 @@ function completeUpdates(wait) {
803
801
  }
804
802
  if (wait) return;
805
803
  let res;
806
- if (Transition && Transition.running) {
807
- if (Transition.promises.size || Transition.queue.size) {
804
+ if (Transition) {
805
+ if (!Transition.promises.size && !Transition.queue.size) {
806
+ const sources = Transition.sources;
807
+ const disposed = Transition.disposed;
808
+ Effects.push.apply(Effects, Transition.effects);
809
+ res = Transition.resolve;
810
+ for (const e of Effects) {
811
+ "tState" in e && (e.state = e.tState);
812
+ delete e.tState;
813
+ }
814
+ Transition = null;
815
+ runUpdates(() => {
816
+ for (const d of disposed) cleanNode(d);
817
+ for (const v of sources) {
818
+ v.value = v.tValue;
819
+ if (v.owned) {
820
+ for (let i = 0, len = v.owned.length; i < len; i++) cleanNode(v.owned[i]);
821
+ }
822
+ if (v.tOwned) v.owned = v.tOwned;
823
+ delete v.tValue;
824
+ delete v.tOwned;
825
+ v.tState = 0;
826
+ }
827
+ setTransPending(false);
828
+ }, false);
829
+ } else if (Transition.running) {
808
830
  Transition.running = false;
809
831
  Transition.effects.push.apply(Transition.effects, Effects);
810
832
  Effects = null;
811
833
  setTransPending(true);
812
834
  return;
813
835
  }
814
- const sources = Transition.sources;
815
- const disposed = Transition.disposed;
816
- res = Transition.resolve;
817
- for (const e of Effects) {
818
- "tState" in e && (e.state = e.tState);
819
- delete e.tState;
820
- }
821
- Transition = null;
822
- runUpdates(() => {
823
- for (const d of disposed) cleanNode(d);
824
- for (const v of sources) {
825
- v.value = v.tValue;
826
- if (v.owned) {
827
- for (let i = 0, len = v.owned.length; i < len; i++) cleanNode(v.owned[i]);
828
- }
829
- if (v.tOwned) v.owned = v.tOwned;
830
- delete v.tValue;
831
- delete v.tOwned;
832
- v.tState = 0;
833
- }
834
- setTransPending(false);
835
- }, false);
836
836
  }
837
837
  const e = Effects;
838
838
  Effects = null;
@@ -853,10 +853,6 @@ function scheduleQueue(queue) {
853
853
  runUpdates(() => {
854
854
  Transition.running = true;
855
855
  runTop(item);
856
- if (!tasks.size) {
857
- Effects.push.apply(Effects, Transition.effects);
858
- Transition.effects = [];
859
- }
860
856
  }, false);
861
857
  Transition && (Transition.running = false);
862
858
  });
package/dist/dev.js CHANGED
@@ -283,10 +283,6 @@ function createResource(pSource, pFetcher, pOptions) {
283
283
  loadedUnderTransition = false;
284
284
  runUpdates(() => {
285
285
  Transition.running = true;
286
- if (!Transition.promises.size) {
287
- Effects.push.apply(Effects, Transition.effects);
288
- Transition.effects = [];
289
- }
290
286
  completeLoad(v, error);
291
287
  }, false);
292
288
  } else completeLoad(v, error);
@@ -311,7 +307,7 @@ function createResource(pSource, pFetcher, pOptions) {
311
307
  createComputed(() => {
312
308
  track();
313
309
  if (pr) {
314
- if (c.resolved && Transition) Transition.promises.add(pr);else if (!contexts.has(c)) {
310
+ if (c.resolved && Transition && loadedUnderTransition) Transition.promises.add(pr);else if (!contexts.has(c)) {
315
311
  c.increment();
316
312
  contexts.add(c);
317
313
  }
@@ -682,7 +678,9 @@ function updateComputation(node) {
682
678
  queueMicrotask(() => {
683
679
  runUpdates(() => {
684
680
  Transition && (Transition.running = true);
681
+ Listener = Owner = node;
685
682
  runComputation(node, node.tValue, time);
683
+ Listener = Owner = null;
686
684
  }, false);
687
685
  });
688
686
  }
@@ -799,36 +797,38 @@ function completeUpdates(wait) {
799
797
  }
800
798
  if (wait) return;
801
799
  let res;
802
- if (Transition && Transition.running) {
803
- if (Transition.promises.size || Transition.queue.size) {
800
+ if (Transition) {
801
+ if (!Transition.promises.size && !Transition.queue.size) {
802
+ const sources = Transition.sources;
803
+ const disposed = Transition.disposed;
804
+ Effects.push.apply(Effects, Transition.effects);
805
+ res = Transition.resolve;
806
+ for (const e of Effects) {
807
+ "tState" in e && (e.state = e.tState);
808
+ delete e.tState;
809
+ }
810
+ Transition = null;
811
+ runUpdates(() => {
812
+ for (const d of disposed) cleanNode(d);
813
+ for (const v of sources) {
814
+ v.value = v.tValue;
815
+ if (v.owned) {
816
+ for (let i = 0, len = v.owned.length; i < len; i++) cleanNode(v.owned[i]);
817
+ }
818
+ if (v.tOwned) v.owned = v.tOwned;
819
+ delete v.tValue;
820
+ delete v.tOwned;
821
+ v.tState = 0;
822
+ }
823
+ setTransPending(false);
824
+ }, false);
825
+ } else if (Transition.running) {
804
826
  Transition.running = false;
805
827
  Transition.effects.push.apply(Transition.effects, Effects);
806
828
  Effects = null;
807
829
  setTransPending(true);
808
830
  return;
809
831
  }
810
- const sources = Transition.sources;
811
- const disposed = Transition.disposed;
812
- res = Transition.resolve;
813
- for (const e of Effects) {
814
- "tState" in e && (e.state = e.tState);
815
- delete e.tState;
816
- }
817
- Transition = null;
818
- runUpdates(() => {
819
- for (const d of disposed) cleanNode(d);
820
- for (const v of sources) {
821
- v.value = v.tValue;
822
- if (v.owned) {
823
- for (let i = 0, len = v.owned.length; i < len; i++) cleanNode(v.owned[i]);
824
- }
825
- if (v.tOwned) v.owned = v.tOwned;
826
- delete v.tValue;
827
- delete v.tOwned;
828
- v.tState = 0;
829
- }
830
- setTransPending(false);
831
- }, false);
832
832
  }
833
833
  const e = Effects;
834
834
  Effects = null;
@@ -849,10 +849,6 @@ function scheduleQueue(queue) {
849
849
  runUpdates(() => {
850
850
  Transition.running = true;
851
851
  runTop(item);
852
- if (!tasks.size) {
853
- Effects.push.apply(Effects, Transition.effects);
854
- Transition.effects = [];
855
- }
856
852
  }, false);
857
853
  Transition && (Transition.running = false);
858
854
  });
package/dist/solid.cjs CHANGED
@@ -279,10 +279,6 @@ function createResource(pSource, pFetcher, pOptions) {
279
279
  loadedUnderTransition = false;
280
280
  runUpdates(() => {
281
281
  Transition.running = true;
282
- if (!Transition.promises.size) {
283
- Effects.push.apply(Effects, Transition.effects);
284
- Transition.effects = [];
285
- }
286
282
  completeLoad(v, error);
287
283
  }, false);
288
284
  } else completeLoad(v, error);
@@ -307,7 +303,7 @@ function createResource(pSource, pFetcher, pOptions) {
307
303
  createComputed(() => {
308
304
  track();
309
305
  if (pr) {
310
- if (c.resolved && Transition) Transition.promises.add(pr);else if (!contexts.has(c)) {
306
+ if (c.resolved && Transition && loadedUnderTransition) Transition.promises.add(pr);else if (!contexts.has(c)) {
311
307
  c.increment();
312
308
  contexts.add(c);
313
309
  }
@@ -625,7 +621,9 @@ function updateComputation(node) {
625
621
  queueMicrotask(() => {
626
622
  runUpdates(() => {
627
623
  Transition && (Transition.running = true);
624
+ Listener = Owner = node;
628
625
  runComputation(node, node.tValue, time);
626
+ Listener = Owner = null;
629
627
  }, false);
630
628
  });
631
629
  }
@@ -741,36 +739,38 @@ function completeUpdates(wait) {
741
739
  }
742
740
  if (wait) return;
743
741
  let res;
744
- if (Transition && Transition.running) {
745
- if (Transition.promises.size || Transition.queue.size) {
742
+ if (Transition) {
743
+ if (!Transition.promises.size && !Transition.queue.size) {
744
+ const sources = Transition.sources;
745
+ const disposed = Transition.disposed;
746
+ Effects.push.apply(Effects, Transition.effects);
747
+ res = Transition.resolve;
748
+ for (const e of Effects) {
749
+ "tState" in e && (e.state = e.tState);
750
+ delete e.tState;
751
+ }
752
+ Transition = null;
753
+ runUpdates(() => {
754
+ for (const d of disposed) cleanNode(d);
755
+ for (const v of sources) {
756
+ v.value = v.tValue;
757
+ if (v.owned) {
758
+ for (let i = 0, len = v.owned.length; i < len; i++) cleanNode(v.owned[i]);
759
+ }
760
+ if (v.tOwned) v.owned = v.tOwned;
761
+ delete v.tValue;
762
+ delete v.tOwned;
763
+ v.tState = 0;
764
+ }
765
+ setTransPending(false);
766
+ }, false);
767
+ } else if (Transition.running) {
746
768
  Transition.running = false;
747
769
  Transition.effects.push.apply(Transition.effects, Effects);
748
770
  Effects = null;
749
771
  setTransPending(true);
750
772
  return;
751
773
  }
752
- const sources = Transition.sources;
753
- const disposed = Transition.disposed;
754
- res = Transition.resolve;
755
- for (const e of Effects) {
756
- "tState" in e && (e.state = e.tState);
757
- delete e.tState;
758
- }
759
- Transition = null;
760
- runUpdates(() => {
761
- for (const d of disposed) cleanNode(d);
762
- for (const v of sources) {
763
- v.value = v.tValue;
764
- if (v.owned) {
765
- for (let i = 0, len = v.owned.length; i < len; i++) cleanNode(v.owned[i]);
766
- }
767
- if (v.tOwned) v.owned = v.tOwned;
768
- delete v.tValue;
769
- delete v.tOwned;
770
- v.tState = 0;
771
- }
772
- setTransPending(false);
773
- }, false);
774
774
  }
775
775
  const e = Effects;
776
776
  Effects = null;
@@ -791,10 +791,6 @@ function scheduleQueue(queue) {
791
791
  runUpdates(() => {
792
792
  Transition.running = true;
793
793
  runTop(item);
794
- if (!tasks.size) {
795
- Effects.push.apply(Effects, Transition.effects);
796
- Transition.effects = [];
797
- }
798
794
  }, false);
799
795
  Transition && (Transition.running = false);
800
796
  });
package/dist/solid.js CHANGED
@@ -275,10 +275,6 @@ function createResource(pSource, pFetcher, pOptions) {
275
275
  loadedUnderTransition = false;
276
276
  runUpdates(() => {
277
277
  Transition.running = true;
278
- if (!Transition.promises.size) {
279
- Effects.push.apply(Effects, Transition.effects);
280
- Transition.effects = [];
281
- }
282
278
  completeLoad(v, error);
283
279
  }, false);
284
280
  } else completeLoad(v, error);
@@ -303,7 +299,7 @@ function createResource(pSource, pFetcher, pOptions) {
303
299
  createComputed(() => {
304
300
  track();
305
301
  if (pr) {
306
- if (c.resolved && Transition) Transition.promises.add(pr);else if (!contexts.has(c)) {
302
+ if (c.resolved && Transition && loadedUnderTransition) Transition.promises.add(pr);else if (!contexts.has(c)) {
307
303
  c.increment();
308
304
  contexts.add(c);
309
305
  }
@@ -621,7 +617,9 @@ function updateComputation(node) {
621
617
  queueMicrotask(() => {
622
618
  runUpdates(() => {
623
619
  Transition && (Transition.running = true);
620
+ Listener = Owner = node;
624
621
  runComputation(node, node.tValue, time);
622
+ Listener = Owner = null;
625
623
  }, false);
626
624
  });
627
625
  }
@@ -737,36 +735,38 @@ function completeUpdates(wait) {
737
735
  }
738
736
  if (wait) return;
739
737
  let res;
740
- if (Transition && Transition.running) {
741
- if (Transition.promises.size || Transition.queue.size) {
738
+ if (Transition) {
739
+ if (!Transition.promises.size && !Transition.queue.size) {
740
+ const sources = Transition.sources;
741
+ const disposed = Transition.disposed;
742
+ Effects.push.apply(Effects, Transition.effects);
743
+ res = Transition.resolve;
744
+ for (const e of Effects) {
745
+ "tState" in e && (e.state = e.tState);
746
+ delete e.tState;
747
+ }
748
+ Transition = null;
749
+ runUpdates(() => {
750
+ for (const d of disposed) cleanNode(d);
751
+ for (const v of sources) {
752
+ v.value = v.tValue;
753
+ if (v.owned) {
754
+ for (let i = 0, len = v.owned.length; i < len; i++) cleanNode(v.owned[i]);
755
+ }
756
+ if (v.tOwned) v.owned = v.tOwned;
757
+ delete v.tValue;
758
+ delete v.tOwned;
759
+ v.tState = 0;
760
+ }
761
+ setTransPending(false);
762
+ }, false);
763
+ } else if (Transition.running) {
742
764
  Transition.running = false;
743
765
  Transition.effects.push.apply(Transition.effects, Effects);
744
766
  Effects = null;
745
767
  setTransPending(true);
746
768
  return;
747
769
  }
748
- const sources = Transition.sources;
749
- const disposed = Transition.disposed;
750
- res = Transition.resolve;
751
- for (const e of Effects) {
752
- "tState" in e && (e.state = e.tState);
753
- delete e.tState;
754
- }
755
- Transition = null;
756
- runUpdates(() => {
757
- for (const d of disposed) cleanNode(d);
758
- for (const v of sources) {
759
- v.value = v.tValue;
760
- if (v.owned) {
761
- for (let i = 0, len = v.owned.length; i < len; i++) cleanNode(v.owned[i]);
762
- }
763
- if (v.tOwned) v.owned = v.tOwned;
764
- delete v.tValue;
765
- delete v.tOwned;
766
- v.tState = 0;
767
- }
768
- setTransPending(false);
769
- }, false);
770
770
  }
771
771
  const e = Effects;
772
772
  Effects = null;
@@ -787,10 +787,6 @@ function scheduleQueue(queue) {
787
787
  runUpdates(() => {
788
788
  Transition.running = true;
789
789
  runTop(item);
790
- if (!tasks.size) {
791
- Effects.push.apply(Effects, Transition.effects);
792
- Transition.effects = [];
793
- }
794
790
  }, false);
795
791
  Transition && (Transition.running = false);
796
792
  });
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "solid-js",
3
3
  "description": "A declarative JavaScript library for building user interfaces.",
4
- "version": "1.5.6",
4
+ "version": "1.5.8",
5
5
  "author": "Ryan Carniato",
6
6
  "license": "MIT",
7
7
  "homepage": "https://solidjs.com",
@@ -44,6 +44,13 @@
44
44
  ],
45
45
  "exports": {
46
46
  ".": {
47
+ "worker": {
48
+ "import": {
49
+ "types": "./types/index.d.ts",
50
+ "default": "./dist/server.js"
51
+ },
52
+ "require": "./dist/server.cjs"
53
+ },
47
54
  "browser": {
48
55
  "development": {
49
56
  "import": {
@@ -65,13 +72,6 @@
65
72
  },
66
73
  "require": "./dist/server.cjs"
67
74
  },
68
- "worker": {
69
- "import": {
70
- "types": "./types/index.d.ts",
71
- "default": "./dist/server.js"
72
- },
73
- "require": "./dist/server.cjs"
74
- },
75
75
  "node": {
76
76
  "import": {
77
77
  "types": "./types/index.d.ts",
@@ -98,6 +98,13 @@
98
98
  "default": "./dist/solid.js"
99
99
  },
100
100
  "./store": {
101
+ "worker": {
102
+ "import": {
103
+ "types": "./store/types/index.d.ts",
104
+ "default": "./store/dist/server.js"
105
+ },
106
+ "require": "./store/dist/server.cjs"
107
+ },
101
108
  "browser": {
102
109
  "development": {
103
110
  "import": {
@@ -119,13 +126,6 @@
119
126
  },
120
127
  "require": "./store/dist/server.cjs"
121
128
  },
122
- "worker": {
123
- "import": {
124
- "types": "./store/types/index.d.ts",
125
- "default": "./store/dist/server.js"
126
- },
127
- "require": "./store/dist/server.cjs"
128
- },
129
129
  "node": {
130
130
  "import": {
131
131
  "types": "./store/types/index.d.ts",
@@ -148,6 +148,13 @@
148
148
  },
149
149
  "./store/dist/*": "./store/dist/*",
150
150
  "./web": {
151
+ "worker": {
152
+ "import": {
153
+ "types": "./web/types/index.d.ts",
154
+ "default": "./web/dist/server.js"
155
+ },
156
+ "require": "./web/dist/server.cjs"
157
+ },
151
158
  "browser": {
152
159
  "development": {
153
160
  "import": {
@@ -169,13 +176,6 @@
169
176
  },
170
177
  "require": "./web/dist/server.cjs"
171
178
  },
172
- "worker": {
173
- "import": {
174
- "types": "./web/types/index.d.ts",
175
- "default": "./web/dist/server.js"
176
- },
177
- "require": "./web/dist/server.cjs"
178
- },
179
179
  "node": {
180
180
  "import": {
181
181
  "types": "./web/types/index.d.ts",
@@ -12,6 +12,13 @@
12
12
  "sideEffects": false,
13
13
  "exports": {
14
14
  ".": {
15
+ "worker": {
16
+ "import": {
17
+ "types": "./types/index.d.ts",
18
+ "default": "./dist/server.js"
19
+ },
20
+ "require": "./dist/server.cjs"
21
+ },
15
22
  "browser": {
16
23
  "development": {
17
24
  "import": {
@@ -33,13 +40,6 @@
33
40
  },
34
41
  "require": "./dist/server.cjs"
35
42
  },
36
- "worker": {
37
- "import": {
38
- "types": "./types/index.d.ts",
39
- "default": "./dist/server.js"
40
- },
41
- "require": "./dist/server.cjs"
42
- },
43
43
  "node": {
44
44
  "import": {
45
45
  "types": "./types/index.d.ts",
@@ -173,7 +173,7 @@ export declare function createEffect<Next, Init = Next>(fn: EffectFunction<Init
173
173
  * @description https://www.solidjs.com/docs/latest/api#createreaction
174
174
  */
175
175
  export declare function createReaction(onInvalidate: () => void, options?: EffectOptions): (tracking: () => void) => void;
176
- interface Memo<Prev, Next = Prev> extends SignalState<Next>, Computation<Next> {
176
+ export interface Memo<Prev, Next = Prev> extends SignalState<Next>, Computation<Next> {
177
177
  tOwned?: Computation<Prev | Next, Next>[];
178
178
  }
179
179
  export interface MemoOptions<T> extends EffectOptions {
@@ -195,10 +195,10 @@ function createRenderer$1({
195
195
  }
196
196
  function spreadExpression(node, props, prevProps = {}, skipChildren) {
197
197
  props || (props = {});
198
- if (!skipChildren && "children" in props) {
198
+ if (!skipChildren) {
199
199
  solidJs.createRenderEffect(() => prevProps.children = insertExpression(node, props.children, prevProps.children));
200
200
  }
201
- props.ref && props.ref(node);
201
+ solidJs.createRenderEffect(() => props.ref && props.ref(node));
202
202
  solidJs.createRenderEffect(() => {
203
203
  for (const prop in props) {
204
204
  if (prop === "children" || prop === "ref") continue;
@@ -191,10 +191,10 @@ function createRenderer$1({
191
191
  }
192
192
  function spreadExpression(node, props, prevProps = {}, skipChildren) {
193
193
  props || (props = {});
194
- if (!skipChildren && "children" in props) {
194
+ if (!skipChildren) {
195
195
  createRenderEffect(() => prevProps.children = insertExpression(node, props.children, prevProps.children));
196
196
  }
197
- props.ref && props.ref(node);
197
+ createRenderEffect(() => props.ref && props.ref(node));
198
198
  createRenderEffect(() => {
199
199
  for (const prop in props) {
200
200
  if (prop === "children" || prop === "ref") continue;
@@ -195,10 +195,10 @@ function createRenderer$1({
195
195
  }
196
196
  function spreadExpression(node, props, prevProps = {}, skipChildren) {
197
197
  props || (props = {});
198
- if (!skipChildren && "children" in props) {
198
+ if (!skipChildren) {
199
199
  solidJs.createRenderEffect(() => prevProps.children = insertExpression(node, props.children, prevProps.children));
200
200
  }
201
- props.ref && props.ref(node);
201
+ solidJs.createRenderEffect(() => props.ref && props.ref(node));
202
202
  solidJs.createRenderEffect(() => {
203
203
  for (const prop in props) {
204
204
  if (prop === "children" || prop === "ref") continue;
@@ -191,10 +191,10 @@ function createRenderer$1({
191
191
  }
192
192
  function spreadExpression(node, props, prevProps = {}, skipChildren) {
193
193
  props || (props = {});
194
- if (!skipChildren && "children" in props) {
194
+ if (!skipChildren) {
195
195
  createRenderEffect(() => prevProps.children = insertExpression(node, props.children, prevProps.children));
196
196
  }
197
- props.ref && props.ref(node);
197
+ createRenderEffect(() => props.ref && props.ref(node));
198
198
  createRenderEffect(() => {
199
199
  for (const prop in props) {
200
200
  if (prop === "children" || prop === "ref") continue;
package/web/dist/dev.cjs CHANGED
@@ -169,11 +169,12 @@ function classList(node, value, prev = {}) {
169
169
  }
170
170
  return prev;
171
171
  }
172
- function style(node, value, prev = {}) {
172
+ function style(node, value, prev) {
173
+ if (!value) return prev ? setAttribute(node, "style") : value;
173
174
  const nodeStyle = node.style;
174
- const prevString = typeof prev === "string";
175
- if (value == null && prevString || typeof value === "string") return nodeStyle.cssText = value;
176
- prevString && (nodeStyle.cssText = undefined, prev = {});
175
+ if (typeof value === "string") return nodeStyle.cssText = value;
176
+ typeof prev === "string" && (nodeStyle.cssText = prev = undefined);
177
+ prev || (prev = {});
177
178
  value || (value = {});
178
179
  let v, s;
179
180
  for (s in prev) {
@@ -220,7 +221,7 @@ function assign(node, props, isSVG, skipChildren, prevProps = {}, skipRef = fals
220
221
  for (const prop in prevProps) {
221
222
  if (!(prop in props)) {
222
223
  if (prop === "children") continue;
223
- assignProp(node, prop, null, prevProps[prop], isSVG, skipRef);
224
+ prevProps[prop] = assignProp(node, prop, null, prevProps[prop], isSVG, skipRef);
224
225
  }
225
226
  }
226
227
  for (const prop in props) {
package/web/dist/dev.js CHANGED
@@ -166,11 +166,12 @@ function classList(node, value, prev = {}) {
166
166
  }
167
167
  return prev;
168
168
  }
169
- function style(node, value, prev = {}) {
169
+ function style(node, value, prev) {
170
+ if (!value) return prev ? setAttribute(node, "style") : value;
170
171
  const nodeStyle = node.style;
171
- const prevString = typeof prev === "string";
172
- if (value == null && prevString || typeof value === "string") return nodeStyle.cssText = value;
173
- prevString && (nodeStyle.cssText = undefined, prev = {});
172
+ if (typeof value === "string") return nodeStyle.cssText = value;
173
+ typeof prev === "string" && (nodeStyle.cssText = prev = undefined);
174
+ prev || (prev = {});
174
175
  value || (value = {});
175
176
  let v, s;
176
177
  for (s in prev) {
@@ -217,7 +218,7 @@ function assign(node, props, isSVG, skipChildren, prevProps = {}, skipRef = fals
217
218
  for (const prop in prevProps) {
218
219
  if (!(prop in props)) {
219
220
  if (prop === "children") continue;
220
- assignProp(node, prop, null, prevProps[prop], isSVG, skipRef);
221
+ prevProps[prop] = assignProp(node, prop, null, prevProps[prop], isSVG, skipRef);
221
222
  }
222
223
  }
223
224
  for (const prop in props) {
package/web/dist/web.cjs CHANGED
@@ -168,11 +168,12 @@ function classList(node, value, prev = {}) {
168
168
  }
169
169
  return prev;
170
170
  }
171
- function style(node, value, prev = {}) {
171
+ function style(node, value, prev) {
172
+ if (!value) return prev ? setAttribute(node, "style") : value;
172
173
  const nodeStyle = node.style;
173
- const prevString = typeof prev === "string";
174
- if (value == null && prevString || typeof value === "string") return nodeStyle.cssText = value;
175
- prevString && (nodeStyle.cssText = undefined, prev = {});
174
+ if (typeof value === "string") return nodeStyle.cssText = value;
175
+ typeof prev === "string" && (nodeStyle.cssText = prev = undefined);
176
+ prev || (prev = {});
176
177
  value || (value = {});
177
178
  let v, s;
178
179
  for (s in prev) {
@@ -219,7 +220,7 @@ function assign(node, props, isSVG, skipChildren, prevProps = {}, skipRef = fals
219
220
  for (const prop in prevProps) {
220
221
  if (!(prop in props)) {
221
222
  if (prop === "children") continue;
222
- assignProp(node, prop, null, prevProps[prop], isSVG, skipRef);
223
+ prevProps[prop] = assignProp(node, prop, null, prevProps[prop], isSVG, skipRef);
223
224
  }
224
225
  }
225
226
  for (const prop in props) {
package/web/dist/web.js CHANGED
@@ -165,11 +165,12 @@ function classList(node, value, prev = {}) {
165
165
  }
166
166
  return prev;
167
167
  }
168
- function style(node, value, prev = {}) {
168
+ function style(node, value, prev) {
169
+ if (!value) return prev ? setAttribute(node, "style") : value;
169
170
  const nodeStyle = node.style;
170
- const prevString = typeof prev === "string";
171
- if (value == null && prevString || typeof value === "string") return nodeStyle.cssText = value;
172
- prevString && (nodeStyle.cssText = undefined, prev = {});
171
+ if (typeof value === "string") return nodeStyle.cssText = value;
172
+ typeof prev === "string" && (nodeStyle.cssText = prev = undefined);
173
+ prev || (prev = {});
173
174
  value || (value = {});
174
175
  let v, s;
175
176
  for (s in prev) {
@@ -216,7 +217,7 @@ function assign(node, props, isSVG, skipChildren, prevProps = {}, skipRef = fals
216
217
  for (const prop in prevProps) {
217
218
  if (!(prop in props)) {
218
219
  if (prop === "children") continue;
219
- assignProp(node, prop, null, prevProps[prop], isSVG, skipRef);
220
+ prevProps[prop] = assignProp(node, prop, null, prevProps[prop], isSVG, skipRef);
220
221
  }
221
222
  }
222
223
  for (const prop in props) {
package/web/package.json CHANGED
@@ -12,6 +12,13 @@
12
12
  "sideEffects": false,
13
13
  "exports": {
14
14
  ".": {
15
+ "worker": {
16
+ "import": {
17
+ "types": "./types/index.d.ts",
18
+ "default": "./dist/server.js"
19
+ },
20
+ "require": "./dist/server.cjs"
21
+ },
15
22
  "browser": {
16
23
  "development": {
17
24
  "import": {
@@ -33,13 +40,6 @@
33
40
  },
34
41
  "require": "./dist/server.cjs"
35
42
  },
36
- "worker": {
37
- "import": {
38
- "types": "./types/index.d.ts",
39
- "default": "./dist/server.js"
40
- },
41
- "require": "./dist/server.cjs"
42
- },
43
43
  "node": {
44
44
  "import": {
45
45
  "types": "./types/index.d.ts",
@@ -21,7 +21,9 @@ export declare function Portal<T extends boolean = false, S extends boolean = fa
21
21
  } : {}) & (S extends true ? SVGGElement : HTMLDivElement)) => void);
22
22
  children: JSX.Element;
23
23
  }): Text;
24
- declare type DynamicProps<T extends ValidComponent> = ComponentProps<T> & {
24
+ declare type DynamicProps<T extends ValidComponent, P = ComponentProps<T>> = {
25
+ [K in keyof P]: P[K];
26
+ } & {
25
27
  component: T | undefined;
26
28
  };
27
29
  /**