solid-js 1.8.22 → 1.9.0
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 +7 -6
- package/dist/dev.js +567 -325
- package/dist/server.cjs +1 -1
- package/dist/server.js +169 -75
- package/dist/solid.cjs +7 -6
- package/dist/solid.js +494 -283
- package/h/dist/h.js +40 -9
- package/h/jsx-runtime/dist/jsx.js +1 -1
- package/h/jsx-runtime/types/index.d.ts +13 -10
- package/h/jsx-runtime/types/jsx.d.ts +22 -1
- package/h/types/hyperscript.d.ts +11 -11
- package/h/types/index.d.ts +1 -1
- package/html/dist/html.cjs +4 -2
- package/html/dist/html.js +222 -95
- package/html/types/index.d.ts +1 -1
- package/html/types/lit.d.ts +52 -33
- package/package.json +1 -5
- package/store/dist/dev.cjs +1 -1
- package/store/dist/dev.js +123 -43
- package/store/dist/server.cjs +4 -0
- package/store/dist/server.js +23 -8
- package/store/dist/store.cjs +1 -1
- package/store/dist/store.js +114 -40
- package/store/package.json +0 -4
- package/store/types/index.d.ts +21 -7
- package/store/types/modifiers.d.ts +6 -3
- package/store/types/mutable.d.ts +5 -2
- package/store/types/server.d.ts +26 -5
- package/store/types/store.d.ts +219 -62
- package/types/index.d.ts +75 -10
- package/types/jsx.d.ts +35 -8
- package/types/reactive/array.d.ts +12 -4
- package/types/reactive/observable.d.ts +25 -17
- package/types/reactive/scheduler.d.ts +9 -6
- package/types/reactive/signal.d.ts +236 -143
- package/types/render/Suspense.d.ts +5 -5
- package/types/render/component.d.ts +64 -33
- package/types/render/flow.d.ts +43 -31
- package/types/render/hydration.d.ts +15 -15
- package/types/server/index.d.ts +57 -2
- package/types/server/reactive.d.ts +73 -42
- package/types/server/rendering.d.ts +169 -98
- package/universal/dist/dev.js +28 -12
- package/universal/dist/universal.js +28 -12
- package/universal/types/index.d.ts +3 -1
- package/universal/types/universal.d.ts +0 -1
- package/web/dist/dev.cjs +57 -24
- package/web/dist/dev.js +679 -101
- package/web/dist/server.cjs +96 -15
- package/web/dist/server.js +676 -105
- package/web/dist/web.cjs +53 -23
- package/web/dist/web.js +664 -99
- package/web/package.json +0 -4
- package/web/storage/dist/storage.js +3 -3
- package/web/types/client.d.ts +5 -3
- package/web/types/core.d.ts +10 -1
- package/web/types/index.d.ts +27 -10
- package/web/types/server-mock.d.ts +47 -32
- package/web/types/server.d.ts +88 -0
package/web/dist/web.cjs
CHANGED
|
@@ -119,14 +119,14 @@ function render(code, element, init, options = {}) {
|
|
|
119
119
|
element.textContent = "";
|
|
120
120
|
};
|
|
121
121
|
}
|
|
122
|
-
function template(html,
|
|
122
|
+
function template(html, isImportNode, isSVG) {
|
|
123
123
|
let node;
|
|
124
124
|
const create = () => {
|
|
125
125
|
const t = document.createElement("template");
|
|
126
126
|
t.innerHTML = html;
|
|
127
127
|
return isSVG ? t.content.firstChild.firstChild : t.content.firstChild;
|
|
128
128
|
};
|
|
129
|
-
const fn =
|
|
129
|
+
const fn = isImportNode ? () => solidJs.untrack(() => document.importNode(node || (node = create()), true)) : () => (node || (node = create())).cloneNode(true);
|
|
130
130
|
fn.cloneNode = fn;
|
|
131
131
|
return fn;
|
|
132
132
|
}
|
|
@@ -158,6 +158,10 @@ function setAttributeNS(node, namespace, name, value) {
|
|
|
158
158
|
if (isHydrating(node)) return;
|
|
159
159
|
if (value == null) node.removeAttributeNS(namespace, name);else node.setAttributeNS(namespace, name, value);
|
|
160
160
|
}
|
|
161
|
+
function setBoolAttribute(node, name, value) {
|
|
162
|
+
if (isHydrating(node)) return;
|
|
163
|
+
value ? node.setAttribute(name, "") : node.removeAttribute(name);
|
|
164
|
+
}
|
|
161
165
|
function className(node, value) {
|
|
162
166
|
if (isHydrating(node)) return;
|
|
163
167
|
if (value == null) node.removeAttribute("class");else node.className = value;
|
|
@@ -171,7 +175,7 @@ function addEventListener(node, name, handler, delegate) {
|
|
|
171
175
|
} else if (Array.isArray(handler)) {
|
|
172
176
|
const handlerFn = handler[0];
|
|
173
177
|
node.addEventListener(name, handler[0] = e => handlerFn.call(node, handler[1], e));
|
|
174
|
-
} else node.addEventListener(name, handler);
|
|
178
|
+
} else node.addEventListener(name, handler, typeof handler !== "function" && handler);
|
|
175
179
|
}
|
|
176
180
|
function classList(node, value, prev = {}) {
|
|
177
181
|
const classKeys = Object.keys(value || {}),
|
|
@@ -245,7 +249,7 @@ function assign(node, props, isSVG, skipChildren, prevProps = {}, skipRef = fals
|
|
|
245
249
|
for (const prop in prevProps) {
|
|
246
250
|
if (!(prop in props)) {
|
|
247
251
|
if (prop === "children") continue;
|
|
248
|
-
prevProps[prop] = assignProp(node, prop, null, prevProps[prop], isSVG, skipRef);
|
|
252
|
+
prevProps[prop] = assignProp(node, prop, null, prevProps[prop], isSVG, skipRef, props);
|
|
249
253
|
}
|
|
250
254
|
}
|
|
251
255
|
for (const prop in props) {
|
|
@@ -254,7 +258,7 @@ function assign(node, props, isSVG, skipChildren, prevProps = {}, skipRef = fals
|
|
|
254
258
|
continue;
|
|
255
259
|
}
|
|
256
260
|
const value = props[prop];
|
|
257
|
-
prevProps[prop] = assignProp(node, prop, value, prevProps[prop], isSVG, skipRef);
|
|
261
|
+
prevProps[prop] = assignProp(node, prop, value, prevProps[prop], isSVG, skipRef, props);
|
|
258
262
|
}
|
|
259
263
|
}
|
|
260
264
|
function hydrate$1(code, element, options = {}) {
|
|
@@ -317,6 +321,7 @@ function runHydrationEvents() {
|
|
|
317
321
|
completed,
|
|
318
322
|
events
|
|
319
323
|
} = solidJs.sharedConfig;
|
|
324
|
+
if (!events) return;
|
|
320
325
|
events.queued = false;
|
|
321
326
|
while (events.length) {
|
|
322
327
|
const [el, e] = events[0];
|
|
@@ -342,7 +347,7 @@ function toggleClassKey(node, key, value) {
|
|
|
342
347
|
const classNames = key.trim().split(/\s+/);
|
|
343
348
|
for (let i = 0, nameLen = classNames.length; i < nameLen; i++) node.classList.toggle(classNames[i], value);
|
|
344
349
|
}
|
|
345
|
-
function assignProp(node, prop, value, prev, isSVG, skipRef) {
|
|
350
|
+
function assignProp(node, prop, value, prev, isSVG, skipRef, props) {
|
|
346
351
|
let isCE, isProp, isChildProp, propAlias, forceProp;
|
|
347
352
|
if (prop === "style") return style(node, value, prev);
|
|
348
353
|
if (prop === "classList") return classList(node, value, prev);
|
|
@@ -351,8 +356,8 @@ function assignProp(node, prop, value, prev, isSVG, skipRef) {
|
|
|
351
356
|
if (!skipRef) value(node);
|
|
352
357
|
} else if (prop.slice(0, 3) === "on:") {
|
|
353
358
|
const e = prop.slice(3);
|
|
354
|
-
prev && node.removeEventListener(e, prev);
|
|
355
|
-
value && node.addEventListener(e, value);
|
|
359
|
+
prev && node.removeEventListener(e, prev, typeof prev !== "function" && prev);
|
|
360
|
+
value && node.addEventListener(e, value, typeof value !== "function" && value);
|
|
356
361
|
} else if (prop.slice(0, 10) === "oncapture:") {
|
|
357
362
|
const e = prop.slice(10);
|
|
358
363
|
prev && node.removeEventListener(e, prev, true);
|
|
@@ -370,7 +375,9 @@ function assignProp(node, prop, value, prev, isSVG, skipRef) {
|
|
|
370
375
|
}
|
|
371
376
|
} else if (prop.slice(0, 5) === "attr:") {
|
|
372
377
|
setAttribute(node, prop.slice(5), value);
|
|
373
|
-
} else if (
|
|
378
|
+
} else if (prop.slice(0, 5) === "bool:") {
|
|
379
|
+
setBoolAttribute(node, prop.slice(5), value);
|
|
380
|
+
} else if ((forceProp = prop.slice(0, 5) === "prop:") || (isChildProp = ChildProperties.has(prop)) || !isSVG && ((propAlias = getPropAlias(prop, node.tagName)) || (isProp = Properties.has(prop))) || (isCE = node.nodeName.includes("-") || 'is' in props)) {
|
|
374
381
|
if (forceProp) {
|
|
375
382
|
prop = prop.slice(5);
|
|
376
383
|
isProp = true;
|
|
@@ -386,30 +393,52 @@ function eventHandler(e) {
|
|
|
386
393
|
if (solidJs.sharedConfig.registry && solidJs.sharedConfig.events) {
|
|
387
394
|
if (solidJs.sharedConfig.events.find(([el, ev]) => ev === e)) return;
|
|
388
395
|
}
|
|
396
|
+
let node = e.target;
|
|
389
397
|
const key = `$$${e.type}`;
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
configurable: true,
|
|
394
|
-
value: node
|
|
395
|
-
});
|
|
396
|
-
}
|
|
397
|
-
Object.defineProperty(e, "currentTarget", {
|
|
398
|
+
const oriTarget = e.target;
|
|
399
|
+
const oriCurrentTarget = e.currentTarget;
|
|
400
|
+
const retarget = value => Object.defineProperty(e, "target", {
|
|
398
401
|
configurable: true,
|
|
399
|
-
|
|
400
|
-
return node || document;
|
|
401
|
-
}
|
|
402
|
+
value
|
|
402
403
|
});
|
|
403
|
-
|
|
404
|
-
while (node) {
|
|
404
|
+
const handleNode = () => {
|
|
405
405
|
const handler = node[key];
|
|
406
406
|
if (handler && !node.disabled) {
|
|
407
407
|
const data = node[`${key}Data`];
|
|
408
408
|
data !== undefined ? handler.call(node, data, e) : handler.call(node, e);
|
|
409
409
|
if (e.cancelBubble) return;
|
|
410
410
|
}
|
|
411
|
-
node
|
|
411
|
+
node.host && node.contains(e.target) && !node.host._$host && retarget(node.host);
|
|
412
|
+
return true;
|
|
413
|
+
};
|
|
414
|
+
const walkUpTree = () => {
|
|
415
|
+
while (handleNode() && (node = node._$host || node.parentNode || node.host));
|
|
416
|
+
};
|
|
417
|
+
Object.defineProperty(e, "currentTarget", {
|
|
418
|
+
configurable: true,
|
|
419
|
+
get() {
|
|
420
|
+
return node || document;
|
|
421
|
+
}
|
|
422
|
+
});
|
|
423
|
+
if (solidJs.sharedConfig.registry && !solidJs.sharedConfig.done) solidJs.sharedConfig.done = _$HY.done = true;
|
|
424
|
+
if (e.composedPath) {
|
|
425
|
+
const path = e.composedPath();
|
|
426
|
+
retarget(path[0]);
|
|
427
|
+
for (let i = 0; i < path.length - 2; i++) {
|
|
428
|
+
node = path[i];
|
|
429
|
+
if (!handleNode()) break;
|
|
430
|
+
if (node._$host) {
|
|
431
|
+
node = node._$host;
|
|
432
|
+
walkUpTree();
|
|
433
|
+
break;
|
|
434
|
+
}
|
|
435
|
+
if (node.parentNode === oriCurrentTarget) {
|
|
436
|
+
break;
|
|
437
|
+
}
|
|
438
|
+
}
|
|
412
439
|
}
|
|
440
|
+
else walkUpTree();
|
|
441
|
+
retarget(oriTarget);
|
|
413
442
|
}
|
|
414
443
|
function insertExpression(parent, value, current, marker, unwrapArray) {
|
|
415
444
|
const hydrating = isHydrating(parent);
|
|
@@ -748,6 +777,7 @@ exports.resolveSSRNode = resolveSSRNode;
|
|
|
748
777
|
exports.runHydrationEvents = runHydrationEvents;
|
|
749
778
|
exports.setAttribute = setAttribute;
|
|
750
779
|
exports.setAttributeNS = setAttributeNS;
|
|
780
|
+
exports.setBoolAttribute = setBoolAttribute;
|
|
751
781
|
exports.setProperty = setProperty;
|
|
752
782
|
exports.spread = spread;
|
|
753
783
|
exports.ssr = ssr;
|