@veil-runtime/ui 0.4.1 → 0.4.2
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/CHANGELOG.md +8 -0
- package/dist/build-manifest.json +3 -3
- package/dist/dom.js +11 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
# 0.4.2 — renderer stability patch candidate
|
|
2
|
+
|
|
3
|
+
- Preserve existing text nodes for Text, Heading, Status and Button updates; skip unchanged text and update changed text in place.
|
|
4
|
+
- Fix WebKit mouse activation lost when an input blur commits state during a button press.
|
|
5
|
+
- Keep public APIs, revision semantics, action handlers, keyed reconciliation and transaction boundaries unchanged.
|
|
6
|
+
- Add cross-browser regressions for repeated and changed text, HTML escaping, nested keyed identity, rejected updates and ordinary mouse activation after blur.
|
|
7
|
+
- Candidate only; publication requires maintainer approval of the exact qualified artifact.
|
|
8
|
+
|
|
1
9
|
# 0.3.0-rc.2 — review remediation candidate
|
|
2
10
|
|
|
3
11
|
- Reject inherited composition field names and stage bounded state changes before acceptance.
|
package/dist/build-manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"inputs": {
|
|
3
|
-
"package.json": "
|
|
3
|
+
"package.json": "2565895a0cb51b34fbdfd92695d4a2c1edf144f9e8574d1706b91d437633f858",
|
|
4
4
|
"scripts/artifact.mjs": "92d2ffd8836d0e14742528da9ddc96e0834ef873ffa81097a3ebae58d825aace",
|
|
5
5
|
"scripts/build.mjs": "54ca91e728925b1efefa61e5aeeb9e5bf549d25c2faa8ceb618009c214a7e03c",
|
|
6
6
|
"scripts/check-boundary.mjs": "5c09c118f7340f3a111e3947c2d98579f73903728ded9d604ac13b93077a5b29",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"src/composition.ts": "4d06b8fe4ed61b2e0a4daf07770be708b2f0167a35ae41140b4047b7cd8fbd78",
|
|
17
17
|
"src/derive-input-fields.ts": "cf8c7ee9f98ed0838dbf299fb4653814c3e70004fc121d8c99752aa137331efd",
|
|
18
18
|
"src/derive-output-view.ts": "81d622d5430f7b9333a41c33794d8d22e3e539e861e04830ce089d83a6790a8e",
|
|
19
|
-
"src/dom.ts": "
|
|
19
|
+
"src/dom.ts": "a89250bb7d00453f34de62812f34364c66f8173ccd51000d67dd3d40d474ee7e",
|
|
20
20
|
"src/execution-request.ts": "775c3beba47aae482acbc2a48461ab8f947ca7b773c71a69077af387557ae344",
|
|
21
21
|
"src/experience-orchestration.ts": "f156497d99828d15da2b42f3155e4ec0b77fc72ad6e6d846bb9bbea4d6791fa4",
|
|
22
22
|
"src/format-semantic-value.ts": "2192cd723c5a9d64164287ddae99c0aa105024e1d0778a597d0b71a2ea8ab9dd",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"derive-output-view.d.ts": "9ca3c32ac65215bb85ae74b75121c55c2ac82d04d7754d38ebc0de94d3fa898a",
|
|
56
56
|
"derive-output-view.js": "e54de4b2ece567a518d346cfd8d96fe2179f5a1fcf76cc6306c5222184e19b73",
|
|
57
57
|
"dom.d.ts": "ae12ba88b9bf43bdc99a9c2ca8923764cf28e77d55b132a05dc5965cba34a6a5",
|
|
58
|
-
"dom.js": "
|
|
58
|
+
"dom.js": "d878b9c62e1a52e3be73233b6c04721356b9a01746a4381de3e1a69511b3e194",
|
|
59
59
|
"execution-request.d.ts": "f8b68cf456bfbeb63a968378e5ccaef5f55a908022e323901668ca99ebe75a3a",
|
|
60
60
|
"execution-request.js": "f32bd2e9de70dd9f243d08d0fce4898e847fa3d34d77d3376a1b3c5839edb611",
|
|
61
61
|
"experience-orchestration.d.ts": "45fa9770a37acccaeb6e0f267e0a566c6d6cda6133d6e1077589859478effd77",
|
package/dist/dom.js
CHANGED
|
@@ -393,8 +393,17 @@ export function mountInterface(target, controller, components = {}, onError) {
|
|
|
393
393
|
element.setAttribute("aria-label", node.ariaLabel);
|
|
394
394
|
else
|
|
395
395
|
element.removeAttribute("aria-label");
|
|
396
|
-
if (["Text", "Heading", "Status", "Button"].includes(node.component))
|
|
397
|
-
|
|
396
|
+
if (["Text", "Heading", "Status", "Button"].includes(node.component)) {
|
|
397
|
+
const text = resolveText(node, snapshot);
|
|
398
|
+
// Retain the pressed button's text node across blur-driven state commits.
|
|
399
|
+
if (element.textContent !== text) {
|
|
400
|
+
const child = element.firstChild;
|
|
401
|
+
if (child?.nodeType === 3 && child === element.lastChild)
|
|
402
|
+
child.nodeValue = text;
|
|
403
|
+
else
|
|
404
|
+
element.textContent = text;
|
|
405
|
+
}
|
|
406
|
+
}
|
|
398
407
|
if (node.component === "List") {
|
|
399
408
|
const items = resolveInterfaceBinding(snapshot, node.binding);
|
|
400
409
|
if (items !== undefined && (!Array.isArray(items) || items.length > 100))
|