@kudzujs/core 0.8.5 → 0.8.6
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/README.md +1 -1
- package/RELEASES.md +22 -0
- package/framework/list-runtime.js +2 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@ Kudzu compiles ordinary React-shaped TypeScript and TSX into complete static HTM
|
|
|
10
10
|
|
|
11
11
|
> Experimental `0.8.x`: the compiler API and supported TSX surface may change.
|
|
12
12
|
|
|
13
|
-
**Latest release: 0.8.
|
|
13
|
+
**Latest release: 0.8.6 - Responsive list reversals.** Keyed-list reverse and removal fast paths now retain current bookkeeping, so repeated actions update immediately while preserving DOM identity. Read the [release notes](./RELEASES.md#086---responsive-list-reversals) or open the [release page](https://kudzujs.cloud/releases/0.8.6).
|
|
14
14
|
|
|
15
15
|
- [Documentation](https://kudzujs.cloud/docs)
|
|
16
16
|
- [Installation guide](https://kudzujs.cloud/docs#install)
|
package/RELEASES.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# Kudzu Releases
|
|
2
2
|
|
|
3
|
+
## 0.8.6 - Responsive list reversals
|
|
4
|
+
|
|
5
|
+
Kudzu 0.8.6 fixes stale keyed-list bookkeeping after reverse and one-item removal fast paths.
|
|
6
|
+
|
|
7
|
+
### Fixed in 0.8.6
|
|
8
|
+
|
|
9
|
+
- Reverse fast paths now store the latest logical item order after moving existing keyed DOM nodes.
|
|
10
|
+
- One-item removal fast paths update the same baseline before subsequent list actions.
|
|
11
|
+
- Repeated reverse clicks apply on the next microtask instead of requiring another delayed interaction.
|
|
12
|
+
- Existing keyed rows retain DOM identity and uncontrolled input values through every reorder.
|
|
13
|
+
- Chrome coverage verifies `3,2,1 → 1,2,3 → 3,2,1` across rapid actions, and the complete suite passes 134/134 tests.
|
|
14
|
+
|
|
15
|
+
### Boundary
|
|
16
|
+
|
|
17
|
+
This is a bookkeeping correction in the existing keyed-list runtime. It adds no list capability, VDOM, hydration, or component runtime.
|
|
18
|
+
|
|
19
|
+
### Upgrade
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npm install @kudzujs/core@^0.8.6
|
|
23
|
+
```
|
|
24
|
+
|
|
3
25
|
## 0.8.5 - Owned timer actions
|
|
4
26
|
|
|
5
27
|
Kudzu 0.8.5 compiles one proven private timeout ref pattern from a returned relative custom-hook action into existing state and effect ownership.
|
|
@@ -198,6 +198,7 @@ function updateList(list) {
|
|
|
198
198
|
list.roots = new Map(nextTokens.map(token => [token, list.roots.get(token)]))
|
|
199
199
|
if (__KUDZU_LIST_STABLE_FAST_PATHS__) list.orderedRoots = nextTokens.map(token => list.roots.get(token))
|
|
200
200
|
list.container ??= parent
|
|
201
|
+
list.items = items
|
|
201
202
|
return
|
|
202
203
|
}
|
|
203
204
|
if (nextTokens.length === currentTokens.length - 1) {
|
|
@@ -207,6 +208,7 @@ function updateList(list) {
|
|
|
207
208
|
removeListRoot(list, removed)
|
|
208
209
|
list.roots = new Map(nextTokens.map(token => [token, list.roots.get(token)]))
|
|
209
210
|
if (__KUDZU_LIST_STABLE_FAST_PATHS__) list.orderedRoots = nextTokens.map(token => list.roots.get(token))
|
|
211
|
+
list.items = items
|
|
210
212
|
return
|
|
211
213
|
}
|
|
212
214
|
}
|