@kudzujs/core 0.17.3 → 0.17.5

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 CHANGED
@@ -14,7 +14,7 @@ Kudzu compiles ordinary React-shaped TypeScript and TSX into complete static HTM
14
14
 
15
15
  > Experimental `0.17.x`: the compiler API and supported TSX surface may change.
16
16
 
17
- **Current release: [0.17.3](https://github.com/kudzujs/kudzu/releases/tag/v0.17.3).** Calculated lists release row state even while their evaluator module is loading, so explicit remount starts fresh. Initial evaluation also updates visible row text from the latest source data. Native Chrome regressions cover both fixes; static siblings remain JavaScript-free. Generator `create-kudzu@0.1.164` targets core `^0.17.3`. The fixes add a small measured byte cost; no speed improvement is claimed. Restoration latency and AI-cost/1.0 gates remain unresolved.
17
+ **Current release: [0.17.5](https://github.com/kudzujs/kudzu/releases/tag/v0.17.5).** List-owned effects now wait for row ownership initialization through an explicit ESM dependency. Delayed list loading no longer makes effects miss existing DOM refs. Chrome verifies current row values, stable IDs, uncontrolled inputs, state, cleanup and fresh clones. C2 adds 50 raw / 7 level-9 gzip bytes; project-app output is unchanged. Generator `create-kudzu@0.1.166` targets core `^0.17.5`. No speed improvement is claimed; startup, restoration and AI-cost/1.0 gates remain unresolved.
18
18
 
19
19
  - [Documentation](https://kudzujs.cloud/docs)
20
20
  - [Installation guide](https://kudzujs.cloud/docs#install)
@@ -18,6 +18,7 @@ function printEffectEntry(effects, output, handlerModules, assetsDirectory, runt
18
18
  ? `import * as __kRuntime from ${JSON.stringify(relativeModulePath(output, join(runtimeDirectory, runtimeName)))}\nconst { browserState, commitDom } = __kRuntime`
19
19
  : `import { browserState, commitDom } from ${JSON.stringify(relativeModulePath(output, join(runtimeDirectory, runtimeName)))}`,
20
20
  `import { createEffectContext } from ${JSON.stringify(relativeModulePath(output, join(runtimeDirectory, "kudzu-effect.js")))}`,
21
+ ...(effects.some(effect => effect.list) ? [`import ${JSON.stringify(relativeModulePath(output, join(runtimeDirectory, "kudzu-list.js")))}`] : []),
21
22
  ...(hasDependencyExpressions ? [`import { evaluateCollectionExpression as __kEvaluateDependency } from ${JSON.stringify(relativeModulePath(output, join(runtimeDirectory, "kudzu-collection-selector.js")))}`] : []),
22
23
  ...(paramPath ? [`import ${JSON.stringify(relativeModulePath(output, join(assetsDirectory, paramPath)))}`] : []),
23
24
  ...modules.map((module, index) => `import * as __kEffectModule${index} from ${JSON.stringify(relativeModulePath(output, join(assetsDirectory, module.path)))}`)
@@ -181,19 +181,6 @@ function updateList(list) {
181
181
  keys.add(token)
182
182
  entries.push({ item, index, key, token, value: referenceOnly ? item : seededValue === undefined ? JSON.stringify(item) : seededValue })
183
183
  }
184
- if (list.items === undefined && !list.sourceEvaluator && list.parts.directFill && entries.length === list.roots.size) {
185
- const roots = __KUDZU_LIST_STABLE_FAST_PATHS__ ? list.orderedRoots : [...list.roots.values()]
186
- if (entries.every((entry, index) => list.roots.get(entry.token) === roots[index])) {
187
- for (let index = 0; index < entries.length; index++) {
188
- const entry = entries[index]
189
- listItems.set(roots[index], entry.item)
190
- if (__KUDZU_LIST_INDEXES__) listIndexes.set(roots[index], index)
191
- if (!referenceOnly) list.values.set(entry.token, entry.value)
192
- }
193
- list.items = items
194
- return
195
- }
196
- }
197
184
  if (list.descriptor.key !== null && !list.descriptor.indexed && !list.descriptor.selector && (referenceOnly || list.values.size) && entries.every(entry => {
198
185
  const root = list.roots.get(entry.token)
199
186
  return !root || (referenceOnly ? listItems.get(root) === entry.item : list.values.get(entry.token) === entry.value)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kudzujs/core",
3
- "version": "0.17.3",
3
+ "version": "0.17.5",
4
4
  "description": "HTML-first TSX framework with synchronous state semantics and no virtual DOM",
5
5
  "type": "module",
6
6
  "license": "MIT",