solid-js 1.7.3 → 1.7.4

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
@@ -1314,7 +1314,7 @@ function mergeProps(...sources) {
1314
1314
  return target;
1315
1315
  }
1316
1316
  function splitProps(props, ...keys) {
1317
- const blocked = new Set(keys.flat());
1317
+ const blocked = new Set(keys.length > 1 ? keys.flat() : keys[0]);
1318
1318
  if ($PROXY in props) {
1319
1319
  const res = keys.map(k => {
1320
1320
  return new Proxy({
package/dist/dev.js CHANGED
@@ -1312,7 +1312,7 @@ function mergeProps(...sources) {
1312
1312
  return target;
1313
1313
  }
1314
1314
  function splitProps(props, ...keys) {
1315
- const blocked = new Set(keys.flat());
1315
+ const blocked = new Set(keys.length > 1 ? keys.flat() : keys[0]);
1316
1316
  if ($PROXY in props) {
1317
1317
  const res = keys.map(k => {
1318
1318
  return new Proxy({
package/dist/solid.cjs CHANGED
@@ -1269,7 +1269,7 @@ function mergeProps(...sources) {
1269
1269
  return target;
1270
1270
  }
1271
1271
  function splitProps(props, ...keys) {
1272
- const blocked = new Set(keys.flat());
1272
+ const blocked = new Set(keys.length > 1 ? keys.flat() : keys[0]);
1273
1273
  if ($PROXY in props) {
1274
1274
  const res = keys.map(k => {
1275
1275
  return new Proxy({
package/dist/solid.js CHANGED
@@ -1267,7 +1267,7 @@ function mergeProps(...sources) {
1267
1267
  return target;
1268
1268
  }
1269
1269
  function splitProps(props, ...keys) {
1270
- const blocked = new Set(keys.flat());
1270
+ const blocked = new Set(keys.length > 1 ? keys.flat() : keys[0]);
1271
1271
  if ($PROXY in props) {
1272
1272
  const res = keys.map(k => {
1273
1273
  return new Proxy({
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.7.3",
4
+ "version": "1.7.4",
5
5
  "author": "Ryan Carniato",
6
6
  "license": "MIT",
7
7
  "homepage": "https://solidjs.com",
@@ -135,7 +135,10 @@ function setProperty(state, property, value, deleting = false) {
135
135
  let nodes = getDataNodes(state),
136
136
  node;
137
137
  if (node = getDataNode(nodes, property, prev)) node.$(() => value);
138
- if (Array.isArray(state) && state.length !== len) (node = getDataNode(nodes, "length", len)) && node.$(state.length);
138
+ if (Array.isArray(state) && state.length !== len) {
139
+ for (let i = state.length; i < len; i++) (node = nodes[i]) && node.$();
140
+ (node = getDataNode(nodes, "length", len)) && node.$(state.length);
141
+ }
139
142
  (node = nodes._) && node.$();
140
143
  }
141
144
  function mergeStoreNode(state, value) {
package/store/dist/dev.js CHANGED
@@ -133,7 +133,10 @@ function setProperty(state, property, value, deleting = false) {
133
133
  let nodes = getDataNodes(state),
134
134
  node;
135
135
  if (node = getDataNode(nodes, property, prev)) node.$(() => value);
136
- if (Array.isArray(state) && state.length !== len) (node = getDataNode(nodes, "length", len)) && node.$(state.length);
136
+ if (Array.isArray(state) && state.length !== len) {
137
+ for (let i = state.length; i < len; i++) (node = nodes[i]) && node.$();
138
+ (node = getDataNode(nodes, "length", len)) && node.$(state.length);
139
+ }
137
140
  (node = nodes._) && node.$();
138
141
  }
139
142
  function mergeStoreNode(state, value) {
@@ -129,7 +129,10 @@ function setProperty(state, property, value, deleting = false) {
129
129
  let nodes = getDataNodes(state),
130
130
  node;
131
131
  if (node = getDataNode(nodes, property, prev)) node.$(() => value);
132
- if (Array.isArray(state) && state.length !== len) (node = getDataNode(nodes, "length", len)) && node.$(state.length);
132
+ if (Array.isArray(state) && state.length !== len) {
133
+ for (let i = state.length; i < len; i++) (node = nodes[i]) && node.$();
134
+ (node = getDataNode(nodes, "length", len)) && node.$(state.length);
135
+ }
133
136
  (node = nodes._) && node.$();
134
137
  }
135
138
  function mergeStoreNode(state, value) {
@@ -127,7 +127,10 @@ function setProperty(state, property, value, deleting = false) {
127
127
  let nodes = getDataNodes(state),
128
128
  node;
129
129
  if (node = getDataNode(nodes, property, prev)) node.$(() => value);
130
- if (Array.isArray(state) && state.length !== len) (node = getDataNode(nodes, "length", len)) && node.$(state.length);
130
+ if (Array.isArray(state) && state.length !== len) {
131
+ for (let i = state.length; i < len; i++) (node = nodes[i]) && node.$();
132
+ (node = getDataNode(nodes, "length", len)) && node.$(state.length);
133
+ }
131
134
  (node = nodes._) && node.$();
132
135
  }
133
136
  function mergeStoreNode(state, value) {
package/types/jsx.d.ts CHANGED
@@ -405,7 +405,8 @@ export namespace JSX {
405
405
  | "allow-scripts"
406
406
  | "allow-storage-access-by-user-activation"
407
407
  | "allow-top-navigation"
408
- | "allow-top-navigation-by-user-activation";
408
+ | "allow-top-navigation-by-user-activation"
409
+ | "allow-top-navigation-to-custom-protocols";
409
410
  type HTMLLinkAs =
410
411
  | "audio"
411
412
  | "document"
@@ -705,8 +706,9 @@ export namespace JSX {
705
706
  contextmenu?: string;
706
707
  dir?: HTMLDir;
707
708
  draggable?: boolean;
708
- hidden?: boolean;
709
+ hidden?: boolean | "hidden" | "until-found";
709
710
  id?: string;
711
+ inert?: boolean;
710
712
  lang?: string;
711
713
  spellcheck?: boolean;
712
714
  style?: CSSProperties | string;
@@ -874,6 +876,8 @@ export namespace JSX {
874
876
  useMap?: string;
875
877
  width?: number | string;
876
878
  crossOrigin?: HTMLCrossorigin;
879
+ elementtiming: string;
880
+ fetchpriority: "high" | "low" | "auto";
877
881
  }
878
882
  interface InputHTMLAttributes<T> extends HTMLAttributes<T> {
879
883
  accept?: string;
package/web/dist/dev.cjs CHANGED
@@ -457,7 +457,7 @@ function insertExpression(parent, value, current, marker, unwrapArray) {
457
457
  appendNodes(parent, array);
458
458
  }
459
459
  current = array;
460
- } else if (value instanceof Node) {
460
+ } else if (value.nodeType) {
461
461
  if (solidJs.sharedConfig.context && value.parentNode) return current = multi ? [value] : value;
462
462
  if (Array.isArray(current)) {
463
463
  if (multi) return current = cleanChildren(parent, current, marker, value);
@@ -473,12 +473,13 @@ function normalizeIncomingArray(normalized, array, current, unwrap) {
473
473
  let dynamic = false;
474
474
  for (let i = 0, len = array.length; i < len; i++) {
475
475
  let item = array[i],
476
- prev = current && current[i];
477
- if (item instanceof Node) {
476
+ prev = current && current[i],
477
+ t;
478
+ if (item == null || item === true || item === false) ; else if ((t = typeof item) === "object" && item.nodeType) {
478
479
  normalized.push(item);
479
- } else if (item == null || item === true || item === false) ; else if (Array.isArray(item)) {
480
+ } else if (Array.isArray(item)) {
480
481
  dynamic = normalizeIncomingArray(normalized, item, prev) || dynamic;
481
- } else if ((typeof item) === "function") {
482
+ } else if (t === "function") {
482
483
  if (unwrap) {
483
484
  while (typeof item === "function") item = item();
484
485
  dynamic = normalizeIncomingArray(normalized, Array.isArray(item) ? item : [item], Array.isArray(prev) ? prev : [prev]) || dynamic;
@@ -488,10 +489,7 @@ function normalizeIncomingArray(normalized, array, current, unwrap) {
488
489
  }
489
490
  } else {
490
491
  const value = String(item);
491
- if (prev && prev.nodeType === 3) {
492
- prev.data = value;
493
- normalized.push(prev);
494
- } else normalized.push(document.createTextNode(value));
492
+ if (prev && prev.nodeType === 3 && prev.data === value) normalized.push(prev);else normalized.push(document.createTextNode(value));
495
493
  }
496
494
  }
497
495
  return dynamic;
package/web/dist/dev.js CHANGED
@@ -456,7 +456,7 @@ function insertExpression(parent, value, current, marker, unwrapArray) {
456
456
  appendNodes(parent, array);
457
457
  }
458
458
  current = array;
459
- } else if (value instanceof Node) {
459
+ } else if (value.nodeType) {
460
460
  if (sharedConfig.context && value.parentNode) return current = multi ? [value] : value;
461
461
  if (Array.isArray(current)) {
462
462
  if (multi) return current = cleanChildren(parent, current, marker, value);
@@ -472,12 +472,13 @@ function normalizeIncomingArray(normalized, array, current, unwrap) {
472
472
  let dynamic = false;
473
473
  for (let i = 0, len = array.length; i < len; i++) {
474
474
  let item = array[i],
475
- prev = current && current[i];
476
- if (item instanceof Node) {
475
+ prev = current && current[i],
476
+ t;
477
+ if (item == null || item === true || item === false) ; else if ((t = typeof item) === "object" && item.nodeType) {
477
478
  normalized.push(item);
478
- } else if (item == null || item === true || item === false) ; else if (Array.isArray(item)) {
479
+ } else if (Array.isArray(item)) {
479
480
  dynamic = normalizeIncomingArray(normalized, item, prev) || dynamic;
480
- } else if ((typeof item) === "function") {
481
+ } else if (t === "function") {
481
482
  if (unwrap) {
482
483
  while (typeof item === "function") item = item();
483
484
  dynamic = normalizeIncomingArray(normalized, Array.isArray(item) ? item : [item], Array.isArray(prev) ? prev : [prev]) || dynamic;
@@ -487,10 +488,7 @@ function normalizeIncomingArray(normalized, array, current, unwrap) {
487
488
  }
488
489
  } else {
489
490
  const value = String(item);
490
- if (prev && prev.nodeType === 3) {
491
- prev.data = value;
492
- normalized.push(prev);
493
- } else normalized.push(document.createTextNode(value));
491
+ if (prev && prev.nodeType === 3 && prev.data === value) normalized.push(prev);else normalized.push(document.createTextNode(value));
494
492
  }
495
493
  }
496
494
  return dynamic;
@@ -290,10 +290,10 @@ function ssrStyle(value) {
290
290
  return result;
291
291
  }
292
292
  function ssrElement(tag, props, children, needsId) {
293
- let result = `<${tag}${needsId ? ssrHydrationKey() : ""} `;
294
- const skipChildren = VOID_ELEMENTS.test(tag);
295
293
  if (props == null) props = {};else if (typeof props === "function") props = props();
294
+ const skipChildren = VOID_ELEMENTS.test(tag);
296
295
  const keys = Object.keys(props);
296
+ let result = `<${tag}${needsId ? ssrHydrationKey() : ""} `;
297
297
  let classResolved;
298
298
  for (let i = 0; i < keys.length; i++) {
299
299
  const prop = keys[i];
@@ -318,13 +318,12 @@ function ssrElement(tag, props, children, needsId) {
318
318
  }
319
319
  if (i !== keys.length - 1) result += " ";
320
320
  }
321
- if (skipChildren) {
322
- return {
323
- t: result + "/>"
324
- };
325
- }
321
+ if (skipChildren) return {
322
+ t: result + "/>"
323
+ };
324
+ if (typeof children === "function") children = children();
326
325
  return {
327
- t: result + `>${resolveSSRNode(children)}</${tag}>`
326
+ t: result + `>${resolveSSRNode(children, true)}</${tag}>`
328
327
  };
329
328
  }
330
329
  function ssrAttribute(key, value, isBoolean) {
@@ -380,7 +379,7 @@ function escape(s, attr) {
380
379
  }
381
380
  return left < s.length ? out + s.substring(left) : out;
382
381
  }
383
- function resolveSSRNode(node) {
382
+ function resolveSSRNode(node, top) {
384
383
  const t = typeof node;
385
384
  if (t === "string") return node;
386
385
  if (node == null || t === "boolean") return "";
@@ -388,7 +387,7 @@ function resolveSSRNode(node) {
388
387
  let prev = {};
389
388
  let mapped = "";
390
389
  for (let i = 0, len = node.length; i < len; i++) {
391
- if (typeof prev !== "object" && typeof node[i] !== "object") mapped += `<!--!$-->`;
390
+ if (!top && typeof prev !== "object" && typeof node[i] !== "object") mapped += `<!--!$-->`;
392
391
  mapped += resolveSSRNode(prev = node[i]);
393
392
  }
394
393
  return mapped;
@@ -414,7 +413,7 @@ function generateHydrationScript({
414
413
  eventNames = ["click", "input"],
415
414
  nonce
416
415
  } = {}) {
417
- return `<script${nonce ? ` nonce="${nonce}"` : ""}>(e=>{let t=e=>e&&e.hasAttribute&&(e.hasAttribute("data-hk")?e:t(e.host&&e.host instanceof Node?e.host:e.parentNode));["${eventNames.join('", "')}"].forEach((o=>document.addEventListener(o,(o=>{let s=o.composedPath&&o.composedPath()[0]||o.target,a=t(s);a&&!e.completed.has(a)&&e.events.push([a,o])}))))})(window._$HY||(_$HY={events:[],completed:new WeakSet,r:{},fe(){},init(e,t){_$HY.r[e]=[new Promise((e=>t=e)),t]},set(e,t,o){(o=_$HY.r[e])&&o[1](t),_$HY.r[e]=[t]},unset(e){delete _$HY.r[e]},load:e=>_$HY.r[e]}));</script><!--xs-->`;
416
+ return `<script${nonce ? ` nonce="${nonce}"` : ""}>(e=>{let t=e=>e&&e.hasAttribute&&(e.hasAttribute("data-hk")?e:t(e.host&&e.host.nodeType?e.host:e.parentNode));["${eventNames.join('", "')}"].forEach((o=>document.addEventListener(o,(o=>{let s=o.composedPath&&o.composedPath()[0]||o.target,a=t(s);a&&!e.completed.has(a)&&e.events.push([a,o])}))))})(window._$HY||(_$HY={events:[],completed:new WeakSet,r:{},fe(){},init(e,t){_$HY.r[e]=[new Promise((e=>t=e)),t]},set(e,t,o){(o=_$HY.r[e])&&o[1](t),_$HY.r[e]=[t]},unset(e){delete _$HY.r[e]},load:e=>_$HY.r[e]}));</script><!--xs-->`;
418
417
  }
419
418
  function Hydration(props) {
420
419
  if (!solidJs.sharedConfig.context.noHydrate) return props.children;
@@ -289,10 +289,10 @@ function ssrStyle(value) {
289
289
  return result;
290
290
  }
291
291
  function ssrElement(tag, props, children, needsId) {
292
- let result = `<${tag}${needsId ? ssrHydrationKey() : ""} `;
293
- const skipChildren = VOID_ELEMENTS.test(tag);
294
292
  if (props == null) props = {};else if (typeof props === "function") props = props();
293
+ const skipChildren = VOID_ELEMENTS.test(tag);
295
294
  const keys = Object.keys(props);
295
+ let result = `<${tag}${needsId ? ssrHydrationKey() : ""} `;
296
296
  let classResolved;
297
297
  for (let i = 0; i < keys.length; i++) {
298
298
  const prop = keys[i];
@@ -317,13 +317,12 @@ function ssrElement(tag, props, children, needsId) {
317
317
  }
318
318
  if (i !== keys.length - 1) result += " ";
319
319
  }
320
- if (skipChildren) {
321
- return {
322
- t: result + "/>"
323
- };
324
- }
320
+ if (skipChildren) return {
321
+ t: result + "/>"
322
+ };
323
+ if (typeof children === "function") children = children();
325
324
  return {
326
- t: result + `>${resolveSSRNode(children)}</${tag}>`
325
+ t: result + `>${resolveSSRNode(children, true)}</${tag}>`
327
326
  };
328
327
  }
329
328
  function ssrAttribute(key, value, isBoolean) {
@@ -379,7 +378,7 @@ function escape(s, attr) {
379
378
  }
380
379
  return left < s.length ? out + s.substring(left) : out;
381
380
  }
382
- function resolveSSRNode(node) {
381
+ function resolveSSRNode(node, top) {
383
382
  const t = typeof node;
384
383
  if (t === "string") return node;
385
384
  if (node == null || t === "boolean") return "";
@@ -387,7 +386,7 @@ function resolveSSRNode(node) {
387
386
  let prev = {};
388
387
  let mapped = "";
389
388
  for (let i = 0, len = node.length; i < len; i++) {
390
- if (typeof prev !== "object" && typeof node[i] !== "object") mapped += `<!--!$-->`;
389
+ if (!top && typeof prev !== "object" && typeof node[i] !== "object") mapped += `<!--!$-->`;
391
390
  mapped += resolveSSRNode(prev = node[i]);
392
391
  }
393
392
  return mapped;
@@ -413,7 +412,7 @@ function generateHydrationScript({
413
412
  eventNames = ["click", "input"],
414
413
  nonce
415
414
  } = {}) {
416
- return `<script${nonce ? ` nonce="${nonce}"` : ""}>(e=>{let t=e=>e&&e.hasAttribute&&(e.hasAttribute("data-hk")?e:t(e.host&&e.host instanceof Node?e.host:e.parentNode));["${eventNames.join('", "')}"].forEach((o=>document.addEventListener(o,(o=>{let s=o.composedPath&&o.composedPath()[0]||o.target,a=t(s);a&&!e.completed.has(a)&&e.events.push([a,o])}))))})(window._$HY||(_$HY={events:[],completed:new WeakSet,r:{},fe(){},init(e,t){_$HY.r[e]=[new Promise((e=>t=e)),t]},set(e,t,o){(o=_$HY.r[e])&&o[1](t),_$HY.r[e]=[t]},unset(e){delete _$HY.r[e]},load:e=>_$HY.r[e]}));</script><!--xs-->`;
415
+ return `<script${nonce ? ` nonce="${nonce}"` : ""}>(e=>{let t=e=>e&&e.hasAttribute&&(e.hasAttribute("data-hk")?e:t(e.host&&e.host.nodeType?e.host:e.parentNode));["${eventNames.join('", "')}"].forEach((o=>document.addEventListener(o,(o=>{let s=o.composedPath&&o.composedPath()[0]||o.target,a=t(s);a&&!e.completed.has(a)&&e.events.push([a,o])}))))})(window._$HY||(_$HY={events:[],completed:new WeakSet,r:{},fe(){},init(e,t){_$HY.r[e]=[new Promise((e=>t=e)),t]},set(e,t,o){(o=_$HY.r[e])&&o[1](t),_$HY.r[e]=[t]},unset(e){delete _$HY.r[e]},load:e=>_$HY.r[e]}));</script><!--xs-->`;
417
416
  }
418
417
  function Hydration(props) {
419
418
  if (!sharedConfig.context.noHydrate) return props.children;
package/web/dist/web.cjs CHANGED
@@ -457,7 +457,7 @@ function insertExpression(parent, value, current, marker, unwrapArray) {
457
457
  appendNodes(parent, array);
458
458
  }
459
459
  current = array;
460
- } else if (value instanceof Node) {
460
+ } else if (value.nodeType) {
461
461
  if (solidJs.sharedConfig.context && value.parentNode) return current = multi ? [value] : value;
462
462
  if (Array.isArray(current)) {
463
463
  if (multi) return current = cleanChildren(parent, current, marker, value);
@@ -473,12 +473,13 @@ function normalizeIncomingArray(normalized, array, current, unwrap) {
473
473
  let dynamic = false;
474
474
  for (let i = 0, len = array.length; i < len; i++) {
475
475
  let item = array[i],
476
- prev = current && current[i];
477
- if (item instanceof Node) {
476
+ prev = current && current[i],
477
+ t;
478
+ if (item == null || item === true || item === false) ; else if ((t = typeof item) === "object" && item.nodeType) {
478
479
  normalized.push(item);
479
- } else if (item == null || item === true || item === false) ; else if (Array.isArray(item)) {
480
+ } else if (Array.isArray(item)) {
480
481
  dynamic = normalizeIncomingArray(normalized, item, prev) || dynamic;
481
- } else if ((typeof item) === "function") {
482
+ } else if (t === "function") {
482
483
  if (unwrap) {
483
484
  while (typeof item === "function") item = item();
484
485
  dynamic = normalizeIncomingArray(normalized, Array.isArray(item) ? item : [item], Array.isArray(prev) ? prev : [prev]) || dynamic;
@@ -488,10 +489,7 @@ function normalizeIncomingArray(normalized, array, current, unwrap) {
488
489
  }
489
490
  } else {
490
491
  const value = String(item);
491
- if (prev && prev.nodeType === 3) {
492
- prev.data = value;
493
- normalized.push(prev);
494
- } else normalized.push(document.createTextNode(value));
492
+ if (prev && prev.nodeType === 3 && prev.data === value) normalized.push(prev);else normalized.push(document.createTextNode(value));
495
493
  }
496
494
  }
497
495
  return dynamic;
package/web/dist/web.js CHANGED
@@ -456,7 +456,7 @@ function insertExpression(parent, value, current, marker, unwrapArray) {
456
456
  appendNodes(parent, array);
457
457
  }
458
458
  current = array;
459
- } else if (value instanceof Node) {
459
+ } else if (value.nodeType) {
460
460
  if (sharedConfig.context && value.parentNode) return current = multi ? [value] : value;
461
461
  if (Array.isArray(current)) {
462
462
  if (multi) return current = cleanChildren(parent, current, marker, value);
@@ -472,12 +472,13 @@ function normalizeIncomingArray(normalized, array, current, unwrap) {
472
472
  let dynamic = false;
473
473
  for (let i = 0, len = array.length; i < len; i++) {
474
474
  let item = array[i],
475
- prev = current && current[i];
476
- if (item instanceof Node) {
475
+ prev = current && current[i],
476
+ t;
477
+ if (item == null || item === true || item === false) ; else if ((t = typeof item) === "object" && item.nodeType) {
477
478
  normalized.push(item);
478
- } else if (item == null || item === true || item === false) ; else if (Array.isArray(item)) {
479
+ } else if (Array.isArray(item)) {
479
480
  dynamic = normalizeIncomingArray(normalized, item, prev) || dynamic;
480
- } else if ((typeof item) === "function") {
481
+ } else if (t === "function") {
481
482
  if (unwrap) {
482
483
  while (typeof item === "function") item = item();
483
484
  dynamic = normalizeIncomingArray(normalized, Array.isArray(item) ? item : [item], Array.isArray(prev) ? prev : [prev]) || dynamic;
@@ -487,10 +488,7 @@ function normalizeIncomingArray(normalized, array, current, unwrap) {
487
488
  }
488
489
  } else {
489
490
  const value = String(item);
490
- if (prev && prev.nodeType === 3) {
491
- prev.data = value;
492
- normalized.push(prev);
493
- } else normalized.push(document.createTextNode(value));
491
+ if (prev && prev.nodeType === 3 && prev.data === value) normalized.push(prev);else normalized.push(document.createTextNode(value));
494
492
  }
495
493
  }
496
494
  return dynamic;