foldkit 0.146.0 → 0.148.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/README.md +5 -2
- package/dist/buildToken.d.ts +3 -0
- package/dist/buildToken.d.ts.map +1 -0
- package/dist/buildToken.js +21 -0
- package/dist/controlledDomState.d.ts +25 -0
- package/dist/controlledDomState.d.ts.map +1 -0
- package/dist/controlledDomState.js +240 -0
- package/dist/cssStyleProperties.d.ts +6 -0
- package/dist/cssStyleProperties.d.ts.map +1 -0
- package/dist/cssStyleProperties.js +91 -0
- package/dist/customElement/index.d.ts.map +1 -1
- package/dist/customElement/index.js +23 -0
- package/dist/domReflection.d.ts +73 -0
- package/dist/domReflection.d.ts.map +1 -0
- package/dist/domReflection.js +557 -0
- package/dist/experimental/index.d.ts +1 -0
- package/dist/experimental/index.d.ts.map +1 -1
- package/dist/experimental/index.js +1 -0
- package/dist/experimental/machine/machine.d.ts +22 -3
- package/dist/experimental/machine/machine.d.ts.map +1 -1
- package/dist/experimental/machine/machine.js +8 -0
- package/dist/experimental/server/entry.d.ts +73 -0
- package/dist/experimental/server/entry.d.ts.map +1 -0
- package/dist/experimental/server/entry.js +41 -0
- package/dist/experimental/server/host.d.ts +136 -0
- package/dist/experimental/server/host.d.ts.map +1 -0
- package/dist/experimental/server/host.js +359 -0
- package/dist/experimental/server/index.d.ts +5 -0
- package/dist/experimental/server/index.d.ts.map +1 -0
- package/dist/experimental/server/index.js +4 -0
- package/dist/experimental/server/public.d.ts +3 -0
- package/dist/experimental/server/public.d.ts.map +1 -0
- package/dist/experimental/server/public.js +1 -0
- package/dist/experimental/server/serialize.d.ts +43 -0
- package/dist/experimental/server/serialize.d.ts.map +1 -0
- package/dist/experimental/server/serialize.js +786 -0
- package/dist/experimental/server/server.d.ts +242 -0
- package/dist/experimental/server/server.d.ts.map +1 -0
- package/dist/experimental/server/server.js +946 -0
- package/dist/experimental/server/template.d.ts +53 -0
- package/dist/experimental/server/template.d.ts.map +1 -0
- package/dist/experimental/server/template.js +617 -0
- package/dist/html/index.d.ts +5 -0
- package/dist/html/index.d.ts.map +1 -1
- package/dist/html/index.js +474 -33
- package/dist/hydrate.d.ts +4 -0
- package/dist/hydrate.d.ts.map +1 -0
- package/dist/hydrate.js +850 -0
- package/dist/hydrationMarker.d.ts +10 -0
- package/dist/hydrationMarker.d.ts.map +1 -0
- package/dist/hydrationMarker.js +9 -0
- package/dist/hydrationMarkers.d.ts +15 -0
- package/dist/hydrationMarkers.d.ts.map +1 -0
- package/dist/hydrationMarkers.js +70 -0
- package/dist/nativeInnerHtml.d.ts +13 -0
- package/dist/nativeInnerHtml.d.ts.map +1 -0
- package/dist/nativeInnerHtml.js +30 -0
- package/dist/propertyProvenance.d.ts +33 -0
- package/dist/propertyProvenance.d.ts.map +1 -0
- package/dist/propertyProvenance.js +78 -0
- package/dist/propsModule.d.ts.map +1 -1
- package/dist/propsModule.js +149 -15
- package/dist/runtime/public.d.ts +2 -2
- package/dist/runtime/public.d.ts.map +1 -1
- package/dist/runtime/public.js +1 -1
- package/dist/runtime/runtime.d.ts +99 -36
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +412 -71
- package/dist/snabbdom/attributes.d.ts.map +1 -1
- package/dist/snabbdom/attributes.js +65 -37
- package/dist/snabbdom/h.d.ts +1 -0
- package/dist/snabbdom/h.d.ts.map +1 -1
- package/dist/snabbdom/h.js +85 -4
- package/dist/snabbdom/style.d.ts.map +1 -1
- package/dist/snabbdom/style.js +53 -34
- package/dist/snabbdom/tovnode.d.ts.map +1 -1
- package/dist/snabbdom/tovnode.js +5 -1
- package/dist/tagName.d.ts +6 -0
- package/dist/tagName.d.ts.map +1 -0
- package/dist/tagName.js +11 -0
- package/dist/test/apps/attributes.d.ts +1 -0
- package/dist/test/apps/attributes.d.ts.map +1 -1
- package/dist/test/apps/attributes.js +8 -1
- package/dist/test/apps/login.js +1 -1
- package/dist/test/matchers.d.ts.map +1 -1
- package/dist/test/matchers.js +2 -1
- package/dist/test/scene.d.ts.map +1 -1
- package/dist/test/scene.js +2 -1
- package/dist/vdom.d.ts.map +1 -1
- package/dist/vdom.js +25 -1
- package/package.json +9 -2
package/dist/vdom.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vdom.d.ts","sourceRoot":"","sources":["../src/vdom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAa,MAAM,QAAQ,CAAA;AAG1C,OAAO,EACL,KAAK,KAAK,EAQV,OAAO,EACR,MAAM,qBAAqB,CAAA;AAE5B,YAAY,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"vdom.d.ts","sourceRoot":"","sources":["../src/vdom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAa,MAAM,QAAQ,CAAA;AAG1C,OAAO,EACL,KAAK,KAAK,EAQV,OAAO,EACR,MAAM,qBAAqB,CAAA;AAE5B,YAAY,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,CAAA;AASlB,eAAO,MAAM,KAAK,uEAOhB,CAAA;AAsBF,eAAO,MAAM,cAAc,gBAAuB,CAAA;AA2ClD;;;;mBAImB;AACnB,eAAO,MAAM,kBAAkB,GAC7B,MAAM,KAAK,EACX,OAAM,GAAG,CAAC,MAAM,CAAa,KAC5B,KAA0B,CAAA;AAE7B;;;;;mBAKmB;AACnB,eAAO,MAAM,oBAAoB,GAC/B,MAAM,KAAK,EACX,OAAM,GAAG,CAAC,MAAM,CAAa,KAC5B,KAMF,CAAA;AAoBD,eAAO,MAAM,YAAY,GACvB,mBAAmB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EACvC,WAAW,KAAK,GAAG,IAAI,EACvB,WAAW,WAAW,EACtB,OAAO,GAAG,CAAC,MAAM,CAAC,KACjB,KASF,CAAA"}
|
package/dist/vdom.js
CHANGED
|
@@ -2,6 +2,13 @@ import { Option, Predicate } from 'effect';
|
|
|
2
2
|
import { propsModule } from './propsModule.js';
|
|
3
3
|
import { attributesModule, classModule, datasetModule, eventListenersModule, h, init, styleModule, toVNode, } from './snabbdom/index.js';
|
|
4
4
|
export { toVNode };
|
|
5
|
+
// NOTE: module order is load-bearing for hydration. `attributesModule` must run
|
|
6
|
+
// before `propsModule`. When a controlled input is adopted, the seeded server
|
|
7
|
+
// `value` attribute is removed by the attrs module first, which resets
|
|
8
|
+
// `elm.value`; only then does the props module reassert the model value, its
|
|
9
|
+
// `elm[key] !== cur` guard now seeing a cleared value. In the reverse order the
|
|
10
|
+
// props write is skipped as a no-op and the later attribute removal blanks the
|
|
11
|
+
// input. The controlled-input hydration tests fail if this order is changed.
|
|
5
12
|
export const patch = init([
|
|
6
13
|
attributesModule,
|
|
7
14
|
classModule,
|
|
@@ -85,12 +92,29 @@ export const dedupeMemoizedResult = (root, seen = new Set()) => {
|
|
|
85
92
|
const nextChildren = dedupeChildList(root.children, seen);
|
|
86
93
|
return nextChildren === undefined ? root : { ...root, children: nextChildren };
|
|
87
94
|
};
|
|
95
|
+
// NOTE: a fresh boot builds the whole tree so snabbdom fires every insert hook,
|
|
96
|
+
// which is what runs Mounts. Patching `toVNode(container)` directly would let
|
|
97
|
+
// snabbdom reuse a container whose existing DOM happens to match the new tree (a
|
|
98
|
+
// fresh `run` over server-rendered DOM, or an HMR restore), leaving those hooks
|
|
99
|
+
// unfired and Mounts unattached. Patching against a comment placed where the
|
|
100
|
+
// container was is never `sameVnode` with an element, so `createElm` builds the
|
|
101
|
+
// tree fresh and replaces the container, exactly as a boot into an empty
|
|
102
|
+
// container does.
|
|
103
|
+
const patchFreshInto = (container, nextVNode) => {
|
|
104
|
+
const parent = container.parentNode;
|
|
105
|
+
if (parent === null) {
|
|
106
|
+
return patch(toVNode(container), nextVNode);
|
|
107
|
+
}
|
|
108
|
+
const placeholder = container.ownerDocument.createComment('');
|
|
109
|
+
parent.replaceChild(placeholder, container);
|
|
110
|
+
return patch(toVNode(placeholder), nextVNode);
|
|
111
|
+
};
|
|
88
112
|
export const __patchVNode = (maybeCurrentVNode, nextVNode, container, seen) => {
|
|
89
113
|
const dedupedVNode = Predicate.isNotNull(nextVNode)
|
|
90
114
|
? dedupeSharedVNodes(nextVNode, seen)
|
|
91
115
|
: h('!');
|
|
92
116
|
return Option.match(maybeCurrentVNode, {
|
|
93
|
-
onNone: () =>
|
|
117
|
+
onNone: () => patchFreshInto(container, dedupedVNode),
|
|
94
118
|
onSome: currentVNode => patch(currentVNode, dedupedVNode),
|
|
95
119
|
});
|
|
96
120
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "foldkit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.148.0",
|
|
4
4
|
"description": "A TypeScript frontend framework, built on Effect and architected like Elm",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -47,6 +47,10 @@
|
|
|
47
47
|
"types": "./dist/experimental/machine/public.d.ts",
|
|
48
48
|
"import": "./dist/experimental/machine/public.js"
|
|
49
49
|
},
|
|
50
|
+
"./experimental/server": {
|
|
51
|
+
"types": "./dist/experimental/server/public.d.ts",
|
|
52
|
+
"import": "./dist/experimental/server/public.js"
|
|
53
|
+
},
|
|
50
54
|
"./html": {
|
|
51
55
|
"types": "./dist/html/public.d.ts",
|
|
52
56
|
"import": "./dist/html/public.js"
|
|
@@ -153,6 +157,9 @@
|
|
|
153
157
|
"dist",
|
|
154
158
|
"THIRD-PARTY-NOTICES.md"
|
|
155
159
|
],
|
|
160
|
+
"dependencies": {
|
|
161
|
+
"parse5": "^8.0.1"
|
|
162
|
+
},
|
|
156
163
|
"peerDependencies": {
|
|
157
164
|
"effect": "4.0.0-rc.109"
|
|
158
165
|
},
|
|
@@ -184,7 +191,7 @@
|
|
|
184
191
|
"access": "public"
|
|
185
192
|
},
|
|
186
193
|
"engines": {
|
|
187
|
-
"node": ">=
|
|
194
|
+
"node": ">=20.19.0"
|
|
188
195
|
},
|
|
189
196
|
"scripts": {
|
|
190
197
|
"clean": "rimraf dist *.tsbuildinfo",
|