kiru 0.54.4 → 1.1.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/{appContext.d.ts → appHandle.d.ts} +4 -4
- package/dist/appHandle.d.ts.map +1 -0
- package/dist/{appContext.js → appHandle.js} +13 -10
- package/dist/appHandle.js.map +1 -0
- package/dist/components/derive.d.ts +10 -8
- package/dist/components/derive.d.ts.map +1 -1
- package/dist/components/derive.js +50 -47
- package/dist/components/derive.js.map +1 -1
- package/dist/components/index.d.ts +0 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +0 -1
- package/dist/components/index.js.map +1 -1
- package/dist/components/lazy.d.ts.map +1 -1
- package/dist/components/lazy.js +7 -6
- package/dist/components/lazy.js.map +1 -1
- package/dist/components/portal.d.ts.map +1 -1
- package/dist/components/portal.js +2 -3
- package/dist/components/portal.js.map +1 -1
- package/dist/components/transition.d.ts +3 -2
- package/dist/components/transition.d.ts.map +1 -1
- package/dist/components/transition.js +29 -30
- package/dist/components/transition.js.map +1 -1
- package/dist/constants.d.ts +1 -5
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +1 -5
- package/dist/constants.js.map +1 -1
- package/dist/context.d.ts +1 -1
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +25 -19
- package/dist/context.js.map +1 -1
- package/dist/devtools.d.ts +7 -0
- package/dist/devtools.d.ts.map +1 -0
- package/dist/devtools.js +19 -0
- package/dist/devtools.js.map +1 -0
- package/dist/dom/commit.d.ts +5 -0
- package/dist/dom/commit.d.ts.map +1 -0
- package/dist/dom/commit.js +94 -0
- package/dist/dom/commit.js.map +1 -0
- package/dist/dom/focus.d.ts +4 -0
- package/dist/dom/focus.d.ts.map +1 -0
- package/dist/dom/focus.js +32 -0
- package/dist/dom/focus.js.map +1 -0
- package/dist/dom/index.d.ts +4 -0
- package/dist/dom/index.d.ts.map +1 -0
- package/dist/dom/index.js +4 -0
- package/dist/dom/index.js.map +1 -0
- package/dist/dom/nodes.d.ts +12 -0
- package/dist/dom/nodes.d.ts.map +1 -0
- package/dist/dom/nodes.js +165 -0
- package/dist/dom/nodes.js.map +1 -0
- package/dist/dom/props.d.ts +8 -0
- package/dist/dom/props.d.ts.map +1 -0
- package/dist/dom/props.js +675 -0
- package/dist/dom/props.js.map +1 -0
- package/dist/env.d.ts +2 -0
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +2 -0
- package/dist/env.js.map +1 -1
- package/dist/globalContext.d.ts +17 -23
- package/dist/globalContext.d.ts.map +1 -1
- package/dist/globalContext.js +31 -53
- package/dist/globalContext.js.map +1 -1
- package/dist/globals.d.ts +21 -4
- package/dist/globals.d.ts.map +1 -1
- package/dist/globals.js +22 -5
- package/dist/globals.js.map +1 -1
- package/dist/headlessRender.d.ts +6 -0
- package/dist/headlessRender.d.ts.map +1 -0
- package/dist/{recursiveRender.js → headlessRender.js} +17 -16
- package/dist/headlessRender.js.map +1 -0
- package/dist/hmr.d.ts +21 -8
- package/dist/hmr.d.ts.map +1 -1
- package/dist/hmr.js +58 -37
- package/dist/hmr.js.map +1 -1
- package/dist/hooks/index.d.ts +4 -14
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +4 -14
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/onBeforeMount.d.ts +9 -0
- package/dist/hooks/onBeforeMount.d.ts.map +1 -0
- package/dist/hooks/onBeforeMount.js +19 -0
- package/dist/hooks/onBeforeMount.js.map +1 -0
- package/dist/hooks/onCleanup.d.ts +8 -0
- package/dist/hooks/onCleanup.d.ts.map +1 -0
- package/dist/hooks/onCleanup.js +18 -0
- package/dist/hooks/onCleanup.js.map +1 -0
- package/dist/hooks/onMount.d.ts +9 -0
- package/dist/hooks/onMount.d.ts.map +1 -0
- package/dist/hooks/onMount.js +19 -0
- package/dist/hooks/onMount.js.map +1 -0
- package/dist/hooks/setup.d.ts +13 -0
- package/dist/hooks/setup.d.ts.map +1 -0
- package/dist/hooks/setup.js +54 -0
- package/dist/hooks/setup.js.map +1 -0
- package/dist/hooks/utils.d.ts +2 -63
- package/dist/hooks/utils.d.ts.map +1 -1
- package/dist/hooks/utils.js +17 -144
- package/dist/hooks/utils.js.map +1 -1
- package/dist/index.d.ts +9 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -8
- package/dist/index.js.map +1 -1
- package/dist/profiling.d.ts +15 -14
- package/dist/profiling.d.ts.map +1 -1
- package/dist/profiling.js +9 -4
- package/dist/profiling.js.map +1 -1
- package/dist/reconciler.d.ts.map +1 -1
- package/dist/reconciler.js +15 -28
- package/dist/reconciler.js.map +1 -1
- package/dist/ref.d.ts +4 -0
- package/dist/ref.d.ts.map +1 -0
- package/dist/ref.js +4 -0
- package/dist/ref.js.map +1 -0
- package/dist/renderToString.js +1 -1
- package/dist/renderToString.js.map +1 -1
- package/dist/router/context.d.ts.map +1 -1
- package/dist/router/context.js +1 -2
- package/dist/router/context.js.map +1 -1
- package/dist/router/fileRouter.d.ts +1 -1
- package/dist/router/fileRouter.d.ts.map +1 -1
- package/dist/router/fileRouter.js +17 -11
- package/dist/router/fileRouter.js.map +1 -1
- package/dist/router/fileRouterController.d.ts.map +1 -1
- package/dist/router/fileRouterController.js +68 -55
- package/dist/router/fileRouterController.js.map +1 -1
- package/dist/router/head.js +2 -2
- package/dist/router/head.js.map +1 -1
- package/dist/router/link.d.ts.map +1 -1
- package/dist/router/link.js +19 -23
- package/dist/router/link.js.map +1 -1
- package/dist/router/pageConfig.js +2 -2
- package/dist/router/pageConfig.js.map +1 -1
- package/dist/router/server/index.d.ts.map +1 -1
- package/dist/router/server/index.js +14 -11
- package/dist/router/server/index.js.map +1 -1
- package/dist/router/types.d.ts +11 -6
- package/dist/router/types.d.ts.map +1 -1
- package/dist/scheduler.d.ts +1 -0
- package/dist/scheduler.d.ts.map +1 -1
- package/dist/scheduler.js +91 -73
- package/dist/scheduler.js.map +1 -1
- package/dist/signals/base.d.ts +0 -1
- package/dist/signals/base.d.ts.map +1 -1
- package/dist/signals/base.js +14 -37
- package/dist/signals/base.js.map +1 -1
- package/dist/signals/computed.d.ts +0 -2
- package/dist/signals/computed.d.ts.map +1 -1
- package/dist/signals/computed.js +1 -40
- package/dist/signals/computed.js.map +1 -1
- package/dist/signals/effect.d.ts +15 -14
- package/dist/signals/effect.d.ts.map +1 -1
- package/dist/signals/effect.js +65 -37
- package/dist/signals/effect.js.map +1 -1
- package/dist/signals/globals.d.ts +0 -5
- package/dist/signals/globals.d.ts.map +1 -1
- package/dist/signals/globals.js +0 -6
- package/dist/signals/globals.js.map +1 -1
- package/dist/signals/index.d.ts +4 -4
- package/dist/signals/index.d.ts.map +1 -1
- package/dist/signals/index.js +4 -4
- package/dist/signals/index.js.map +1 -1
- package/dist/signals/{for.d.ts → jsx.d.ts} +8 -1
- package/dist/signals/jsx.d.ts.map +1 -0
- package/dist/signals/{for.js → jsx.js} +4 -1
- package/dist/signals/jsx.js.map +1 -0
- package/dist/signals/tracking.d.ts +24 -0
- package/dist/signals/tracking.d.ts.map +1 -0
- package/dist/signals/tracking.js +51 -0
- package/dist/signals/tracking.js.map +1 -0
- package/dist/signals/types.d.ts +1 -1
- package/dist/signals/types.d.ts.map +1 -1
- package/dist/signals/utils.d.ts +2 -1
- package/dist/signals/utils.d.ts.map +1 -1
- package/dist/signals/utils.js +9 -2
- package/dist/signals/utils.js.map +1 -1
- package/dist/ssr/client.d.ts +3 -3
- package/dist/ssr/client.d.ts.map +1 -1
- package/dist/ssr/client.js.map +1 -1
- package/dist/ssr/server.js +1 -1
- package/dist/ssr/server.js.map +1 -1
- package/dist/statefulPromise.d.ts +22 -0
- package/dist/statefulPromise.d.ts.map +1 -0
- package/dist/statefulPromise.js +94 -0
- package/dist/statefulPromise.js.map +1 -0
- package/dist/types.d.ts +40 -50
- package/dist/types.d.ts.map +1 -1
- package/dist/types.dom.d.ts +5 -8
- package/dist/types.dom.d.ts.map +1 -1
- package/dist/types.utils.d.ts +3 -4
- package/dist/types.utils.d.ts.map +1 -1
- package/dist/utils/format.d.ts.map +1 -1
- package/dist/utils/format.js +4 -1
- package/dist/utils/format.js.map +1 -1
- package/dist/utils/vdom.d.ts +8 -6
- package/dist/utils/vdom.d.ts.map +1 -1
- package/dist/utils/vdom.js +32 -9
- package/dist/utils/vdom.js.map +1 -1
- package/dist/viewTransitions.d.ts +7 -0
- package/dist/viewTransitions.d.ts.map +1 -0
- package/dist/viewTransitions.js +72 -0
- package/dist/viewTransitions.js.map +1 -0
- package/package.json +1 -1
- package/src/{appContext.ts → appHandle.ts} +22 -17
- package/src/components/derive.ts +74 -69
- package/src/components/index.ts +0 -1
- package/src/components/lazy.ts +10 -10
- package/src/components/portal.ts +2 -3
- package/src/components/transition.ts +33 -39
- package/src/constants.ts +0 -8
- package/src/context.ts +30 -23
- package/src/devtools.ts +18 -0
- package/src/dom/commit.ts +133 -0
- package/src/dom/focus.ts +34 -0
- package/src/dom/index.ts +3 -0
- package/src/dom/nodes.ts +204 -0
- package/src/dom/props.ts +818 -0
- package/src/env.ts +3 -0
- package/src/globalContext.ts +51 -85
- package/src/globals.ts +25 -6
- package/src/{recursiveRender.ts → headlessRender.ts} +18 -18
- package/src/hmr.ts +60 -42
- package/src/hooks/index.ts +4 -14
- package/src/hooks/onBeforeMount.ts +18 -0
- package/src/hooks/onCleanup.ts +21 -0
- package/src/hooks/onMount.ts +18 -0
- package/src/hooks/setup.ts +70 -0
- package/src/hooks/utils.ts +24 -239
- package/src/index.ts +17 -7
- package/src/profiling.ts +22 -20
- package/src/reconciler.ts +21 -33
- package/src/ref.ts +6 -0
- package/src/renderToString.ts +1 -1
- package/src/router/context.ts +1 -2
- package/src/router/fileRouter.ts +23 -13
- package/src/router/fileRouterController.ts +72 -64
- package/src/router/head.ts +2 -2
- package/src/router/link.ts +11 -25
- package/src/router/pageConfig.ts +2 -2
- package/src/router/server/index.ts +24 -13
- package/src/router/types.ts +15 -8
- package/src/scheduler.ts +116 -98
- package/src/signals/base.ts +13 -42
- package/src/signals/computed.ts +1 -62
- package/src/signals/effect.ts +93 -48
- package/src/signals/globals.ts +0 -7
- package/src/signals/index.ts +4 -4
- package/src/signals/{for.ts → jsx.ts} +10 -0
- package/src/signals/tracking.ts +70 -0
- package/src/signals/types.ts +1 -1
- package/src/signals/utils.ts +9 -1
- package/src/ssr/client.ts +4 -4
- package/src/ssr/server.ts +2 -2
- package/src/statefulPromise.ts +136 -0
- package/src/types.dom.ts +6 -10
- package/src/types.ts +51 -60
- package/src/types.utils.ts +3 -4
- package/src/utils/format.ts +3 -1
- package/src/utils/vdom.ts +44 -15
- package/src/viewTransitions.ts +89 -0
- package/dist/appContext.d.ts.map +0 -1
- package/dist/appContext.js.map +0 -1
- package/dist/components/memo.d.ts +0 -10
- package/dist/components/memo.d.ts.map +0 -1
- package/dist/components/memo.js +0 -23
- package/dist/components/memo.js.map +0 -1
- package/dist/dom.d.ts +0 -10
- package/dist/dom.d.ts.map +0 -1
- package/dist/dom.js +0 -634
- package/dist/dom.js.map +0 -1
- package/dist/form/index.d.ts +0 -4
- package/dist/form/index.d.ts.map +0 -1
- package/dist/form/index.js +0 -518
- package/dist/form/index.js.map +0 -1
- package/dist/form/types.d.ts +0 -122
- package/dist/form/types.d.ts.map +0 -1
- package/dist/form/types.js +0 -2
- package/dist/form/types.js.map +0 -1
- package/dist/form/utils.d.ts +0 -3
- package/dist/form/utils.d.ts.map +0 -1
- package/dist/form/utils.js +0 -16
- package/dist/form/utils.js.map +0 -1
- package/dist/hooks/useAsync.d.ts +0 -18
- package/dist/hooks/useAsync.d.ts.map +0 -1
- package/dist/hooks/useAsync.js +0 -96
- package/dist/hooks/useAsync.js.map +0 -1
- package/dist/hooks/useCallback.d.ts +0 -7
- package/dist/hooks/useCallback.d.ts.map +0 -1
- package/dist/hooks/useCallback.js +0 -30
- package/dist/hooks/useCallback.js.map +0 -1
- package/dist/hooks/useContext.d.ts +0 -7
- package/dist/hooks/useContext.d.ts.map +0 -1
- package/dist/hooks/useContext.js +0 -59
- package/dist/hooks/useContext.js.map +0 -1
- package/dist/hooks/useEffect.d.ts +0 -8
- package/dist/hooks/useEffect.d.ts.map +0 -1
- package/dist/hooks/useEffect.js +0 -34
- package/dist/hooks/useEffect.js.map +0 -1
- package/dist/hooks/useEffectEvent.d.ts +0 -8
- package/dist/hooks/useEffectEvent.d.ts.map +0 -1
- package/dist/hooks/useEffectEvent.js +0 -23
- package/dist/hooks/useEffectEvent.js.map +0 -1
- package/dist/hooks/useId.d.ts +0 -8
- package/dist/hooks/useId.d.ts.map +0 -1
- package/dist/hooks/useId.js +0 -35
- package/dist/hooks/useId.js.map +0 -1
- package/dist/hooks/useLayoutEffect.d.ts +0 -8
- package/dist/hooks/useLayoutEffect.d.ts.map +0 -1
- package/dist/hooks/useLayoutEffect.js +0 -34
- package/dist/hooks/useLayoutEffect.js.map +0 -1
- package/dist/hooks/useMemo.d.ts +0 -8
- package/dist/hooks/useMemo.d.ts.map +0 -1
- package/dist/hooks/useMemo.js +0 -31
- package/dist/hooks/useMemo.js.map +0 -1
- package/dist/hooks/usePromise.d.ts +0 -8
- package/dist/hooks/usePromise.d.ts.map +0 -1
- package/dist/hooks/usePromise.js +0 -90
- package/dist/hooks/usePromise.js.map +0 -1
- package/dist/hooks/useReducer.d.ts +0 -7
- package/dist/hooks/useReducer.d.ts.map +0 -1
- package/dist/hooks/useReducer.js +0 -44
- package/dist/hooks/useReducer.js.map +0 -1
- package/dist/hooks/useRef.d.ts +0 -10
- package/dist/hooks/useRef.d.ts.map +0 -1
- package/dist/hooks/useRef.js +0 -29
- package/dist/hooks/useRef.js.map +0 -1
- package/dist/hooks/useState.d.ts +0 -7
- package/dist/hooks/useState.d.ts.map +0 -1
- package/dist/hooks/useState.js +0 -54
- package/dist/hooks/useState.js.map +0 -1
- package/dist/hooks/useSyncExternalStore.d.ts +0 -8
- package/dist/hooks/useSyncExternalStore.d.ts.map +0 -1
- package/dist/hooks/useSyncExternalStore.js +0 -50
- package/dist/hooks/useSyncExternalStore.js.map +0 -1
- package/dist/hooks/useViewTransition.d.ts +0 -10
- package/dist/hooks/useViewTransition.d.ts.map +0 -1
- package/dist/hooks/useViewTransition.js +0 -27
- package/dist/hooks/useViewTransition.js.map +0 -1
- package/dist/recursiveRender.d.ts +0 -7
- package/dist/recursiveRender.d.ts.map +0 -1
- package/dist/recursiveRender.js.map +0 -1
- package/dist/signals/for.d.ts.map +0 -1
- package/dist/signals/for.js.map +0 -1
- package/dist/signals/watch.d.ts +0 -21
- package/dist/signals/watch.d.ts.map +0 -1
- package/dist/signals/watch.js +0 -86
- package/dist/signals/watch.js.map +0 -1
- package/dist/store.d.ts +0 -28
- package/dist/store.d.ts.map +0 -1
- package/dist/store.js +0 -166
- package/dist/store.js.map +0 -1
- package/dist/swr.d.ts +0 -63
- package/dist/swr.d.ts.map +0 -1
- package/dist/swr.js +0 -236
- package/dist/swr.js.map +0 -1
- package/dist/utils/promise.d.ts +0 -16
- package/dist/utils/promise.d.ts.map +0 -1
- package/dist/utils/promise.js +0 -14
- package/dist/utils/promise.js.map +0 -1
- package/src/components/memo.ts +0 -39
- package/src/dom.ts +0 -809
- package/src/form/index.ts +0 -676
- package/src/form/types.ts +0 -262
- package/src/form/utils.ts +0 -19
- package/src/hooks/useAsync.ts +0 -121
- package/src/hooks/useCallback.ts +0 -32
- package/src/hooks/useContext.ts +0 -79
- package/src/hooks/useEffect.ts +0 -40
- package/src/hooks/useEffectEvent.ts +0 -24
- package/src/hooks/useId.ts +0 -42
- package/src/hooks/useLayoutEffect.ts +0 -43
- package/src/hooks/useMemo.ts +0 -34
- package/src/hooks/usePromise.ts +0 -126
- package/src/hooks/useReducer.ts +0 -50
- package/src/hooks/useRef.ts +0 -40
- package/src/hooks/useState.ts +0 -62
- package/src/hooks/useSyncExternalStore.ts +0 -59
- package/src/hooks/useViewTransition.ts +0 -25
- package/src/signals/watch.ts +0 -139
- package/src/store.ts +0 -245
- package/src/swr.ts +0 -351
- package/src/utils/promise.ts +0 -26
package/dist/utils/vdom.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vdom.d.ts","sourceRoot":"","sources":["../../src/utils/vdom.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,
|
|
1
|
+
{"version":3,"file":"vdom.d.ts","sourceRoot":"","sources":["../../src/utils/vdom.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/vdom.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { FLAG_DELETION, $FRAGMENT,
|
|
1
|
+
import { FLAG_DELETION, $FRAGMENT, FLAG_PLACEMENT, FLAG_UPDATE, $ERROR_BOUNDARY, $CONTEXT, } from "../constants.js";
|
|
2
2
|
import { createElement } from "../index.js";
|
|
3
3
|
import { KiruError } from "../error.js";
|
|
4
4
|
import { node } from "../globals.js";
|
|
5
|
-
|
|
6
|
-
export { cloneElement, isVNodeDeleted, isElement, isVNode, isValidTextChild, isExoticType, isFragment, isLazy, isMemo, isContextProvider, vNodeContains, getCurrentVNode, getVNodeAppContext, commitSnapshot, traverseApply, findParent, findParentErrorBoundary, assertValidElementProps, normalizeElementKey, };
|
|
5
|
+
export { cloneElement, isVNodeDeleted, isElement, isVNode, isValidTextChild, isExoticType, isFragment, isLazy, isContextProvider, vNodeContains, getCurrentVNode, getVNodeApp, commitSnapshot, traverseApply, findParent, findParentErrorBoundary, assertValidElementProps, normalizeElementKey, createVNodeId, registerVNodeCleanup, propsChanged, };
|
|
7
6
|
function cloneElement(vNode) {
|
|
8
7
|
const children = vNode.props.children;
|
|
9
8
|
let clonedChildren;
|
|
@@ -30,7 +29,7 @@ function isValidTextChild(thing) {
|
|
|
30
29
|
typeof thing === "bigint");
|
|
31
30
|
}
|
|
32
31
|
function isExoticType(type) {
|
|
33
|
-
return
|
|
32
|
+
return type === $FRAGMENT || type === $CONTEXT || type === $ERROR_BOUNDARY;
|
|
34
33
|
}
|
|
35
34
|
function isFragment(vNode) {
|
|
36
35
|
return vNode.type === $FRAGMENT;
|
|
@@ -40,16 +39,13 @@ function isLazy(vNode) {
|
|
|
40
39
|
"displayName" in vNode.type &&
|
|
41
40
|
vNode.type.displayName === "Kiru.lazy");
|
|
42
41
|
}
|
|
43
|
-
function isMemo(vNode) {
|
|
44
|
-
return typeof vNode.type === "function" && isMemoFn(vNode.type);
|
|
45
|
-
}
|
|
46
42
|
function isContextProvider(thing) {
|
|
47
|
-
return isVNode(thing) && thing.type === $
|
|
43
|
+
return isVNode(thing) && thing.type === $CONTEXT;
|
|
48
44
|
}
|
|
49
45
|
function getCurrentVNode() {
|
|
50
46
|
return node.current;
|
|
51
47
|
}
|
|
52
|
-
function
|
|
48
|
+
function getVNodeApp(vNode) {
|
|
53
49
|
let n = vNode;
|
|
54
50
|
while (n) {
|
|
55
51
|
if (n.app) {
|
|
@@ -128,4 +124,31 @@ function normalizeElementKey(thing) {
|
|
|
128
124
|
}
|
|
129
125
|
return null;
|
|
130
126
|
}
|
|
127
|
+
function createVNodeId(vNode) {
|
|
128
|
+
const accumulator = [];
|
|
129
|
+
let n = vNode;
|
|
130
|
+
while (n) {
|
|
131
|
+
accumulator.push(n.index);
|
|
132
|
+
accumulator.push(n.depth);
|
|
133
|
+
n = n.parent;
|
|
134
|
+
}
|
|
135
|
+
return `k:${BigInt(accumulator.join("")).toString(36)}`;
|
|
136
|
+
}
|
|
137
|
+
function registerVNodeCleanup(vNode, id, callback) {
|
|
138
|
+
;
|
|
139
|
+
(vNode.cleanups ?? (vNode.cleanups = {}))[id] = callback;
|
|
140
|
+
}
|
|
141
|
+
function propsChanged(oldProps, newProps, keysToSkip) {
|
|
142
|
+
const aKeys = Object.keys(oldProps);
|
|
143
|
+
const bKeys = Object.keys(newProps);
|
|
144
|
+
if (aKeys.length !== bKeys.length)
|
|
145
|
+
return true;
|
|
146
|
+
for (let key of aKeys) {
|
|
147
|
+
if (keysToSkip?.includes(key))
|
|
148
|
+
continue;
|
|
149
|
+
if (oldProps[key] !== newProps[key])
|
|
150
|
+
return true;
|
|
151
|
+
}
|
|
152
|
+
return false;
|
|
153
|
+
}
|
|
131
154
|
//# sourceMappingURL=vdom.js.map
|
package/dist/utils/vdom.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vdom.js","sourceRoot":"","sources":["../../src/utils/vdom.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,SAAS,EACT,
|
|
1
|
+
{"version":3,"file":"vdom.js","sourceRoot":"","sources":["../../src/utils/vdom.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewTransitions.d.ts","sourceRoot":"","sources":["../src/viewTransitions.ts"],"names":[],"mappings":"AAGA,yBAAiB,eAAe,CAAC;IAU/B,SAAgB,GAAG,CAAC,CAAC,EACnB,QAAQ,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAC9B,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACjC,OAAO,CAAC,CAAC,CAAC,CA0BZ;IAED,SAAgB,IAAI,SAMnB;CAsCF"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { flushSync } from "./scheduler.js";
|
|
2
|
+
import { isBrowser } from "./env.js";
|
|
3
|
+
export var ViewTransitions;
|
|
4
|
+
(function (ViewTransitions) {
|
|
5
|
+
const jobs = [];
|
|
6
|
+
let running = false;
|
|
7
|
+
let scheduled = false;
|
|
8
|
+
let transition = null;
|
|
9
|
+
const supported = isBrowser && typeof document.startViewTransition === "function";
|
|
10
|
+
function run(callback, options) {
|
|
11
|
+
const signal = options?.signal;
|
|
12
|
+
return new Promise((resolve) => {
|
|
13
|
+
const job = async () => {
|
|
14
|
+
const result = await callback();
|
|
15
|
+
resolve(result);
|
|
16
|
+
};
|
|
17
|
+
jobs.push(job);
|
|
18
|
+
signal?.addEventListener("abort", () => {
|
|
19
|
+
const i = jobs.indexOf(job);
|
|
20
|
+
if (i !== -1) {
|
|
21
|
+
jobs.splice(i, 1);
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
transition?.skipTransition();
|
|
25
|
+
}
|
|
26
|
+
}, { once: true });
|
|
27
|
+
schedule();
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
ViewTransitions.run = run;
|
|
31
|
+
function stop() {
|
|
32
|
+
transition?.skipTransition();
|
|
33
|
+
transition = null;
|
|
34
|
+
jobs.length = 0;
|
|
35
|
+
running = false;
|
|
36
|
+
scheduled = false;
|
|
37
|
+
}
|
|
38
|
+
ViewTransitions.stop = stop;
|
|
39
|
+
function schedule() {
|
|
40
|
+
if (scheduled)
|
|
41
|
+
return;
|
|
42
|
+
scheduled = true;
|
|
43
|
+
queueMicrotask(() => {
|
|
44
|
+
scheduled = false;
|
|
45
|
+
runJobs();
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
async function runJobs() {
|
|
49
|
+
if (running || jobs.length === 0)
|
|
50
|
+
return;
|
|
51
|
+
running = true;
|
|
52
|
+
const __jobs = [...jobs];
|
|
53
|
+
jobs.length = 0;
|
|
54
|
+
const runJobs = async () => {
|
|
55
|
+
await Promise.all(__jobs.map((j) => j()));
|
|
56
|
+
flushSync();
|
|
57
|
+
};
|
|
58
|
+
if (!supported) {
|
|
59
|
+
await runJobs();
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
transition = document.startViewTransition(runJobs);
|
|
63
|
+
await transition.finished;
|
|
64
|
+
}
|
|
65
|
+
transition = null;
|
|
66
|
+
running = false;
|
|
67
|
+
if (jobs.length > 0) {
|
|
68
|
+
schedule();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
})(ViewTransitions || (ViewTransitions = {}));
|
|
72
|
+
//# sourceMappingURL=viewTransitions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewTransitions.js","sourceRoot":"","sources":["../src/viewTransitions.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import { FLAG_STATIC_DOM } from "./constants.js"
|
|
2
2
|
import { __DEV__ } from "./env.js"
|
|
3
|
-
import { renderRootSync
|
|
3
|
+
import { renderRootSync } from "./scheduler.js"
|
|
4
4
|
import { createVNode } from "./vNode.js"
|
|
5
|
+
import type { SomeDom } from "./types.utils.js"
|
|
5
6
|
|
|
6
7
|
type VNode = Kiru.VNode
|
|
7
8
|
|
|
8
|
-
export interface
|
|
9
|
+
export interface AppHandleOptions {
|
|
9
10
|
/**
|
|
10
11
|
* App name - shown in devtools
|
|
11
12
|
*/
|
|
12
13
|
name?: string
|
|
13
14
|
}
|
|
14
15
|
|
|
15
|
-
export interface
|
|
16
|
+
export interface AppHandle {
|
|
16
17
|
id: number
|
|
17
18
|
name: string
|
|
18
19
|
rootNode: VNode
|
|
@@ -24,9 +25,9 @@ let appId = 0
|
|
|
24
25
|
|
|
25
26
|
export function mount(
|
|
26
27
|
children: JSX.Element,
|
|
27
|
-
container:
|
|
28
|
-
options?:
|
|
29
|
-
):
|
|
28
|
+
container: Kiru.ContainerElement,
|
|
29
|
+
options?: AppHandleOptions
|
|
30
|
+
): AppHandle {
|
|
30
31
|
if (__DEV__) {
|
|
31
32
|
if (container.__kiruNode) {
|
|
32
33
|
throw new Error(
|
|
@@ -36,7 +37,7 @@ export function mount(
|
|
|
36
37
|
}
|
|
37
38
|
const rootNode = createRootNode(container)
|
|
38
39
|
const id = appId++
|
|
39
|
-
const
|
|
40
|
+
const app: AppHandle = {
|
|
40
41
|
id,
|
|
41
42
|
name: options?.name ?? `App-${id}`,
|
|
42
43
|
rootNode,
|
|
@@ -45,39 +46,43 @@ export function mount(
|
|
|
45
46
|
}
|
|
46
47
|
|
|
47
48
|
function render(children: JSX.Element) {
|
|
48
|
-
rootNode.props
|
|
49
|
+
rootNode.props = { children }
|
|
49
50
|
renderRootSync(rootNode)
|
|
50
51
|
}
|
|
51
52
|
|
|
52
53
|
function unmount() {
|
|
53
|
-
rootNode.props
|
|
54
|
+
rootNode.props = { children: null }
|
|
54
55
|
renderRootSync(rootNode)
|
|
55
56
|
if (__DEV__) {
|
|
56
|
-
delete container.__kiruNode
|
|
57
|
+
delete (container as HTMLElement).__kiruNode
|
|
57
58
|
delete rootNode.app
|
|
58
59
|
}
|
|
59
|
-
window.__kiru.emit("unmount",
|
|
60
|
+
window.__kiru.emit("unmount", app)
|
|
60
61
|
}
|
|
61
62
|
|
|
62
63
|
if (__DEV__) {
|
|
63
|
-
rootNode.app =
|
|
64
|
+
rootNode.app = app
|
|
64
65
|
}
|
|
65
66
|
|
|
66
67
|
render(children)
|
|
67
|
-
window.__kiru.emit("mount",
|
|
68
|
-
|
|
68
|
+
window.__kiru.emit("mount", app)
|
|
69
|
+
// @ts-expect-error
|
|
70
|
+
if (__DEV__ && !globalThis.__KIRU_READY__) {
|
|
71
|
+
// @ts-expect-error
|
|
72
|
+
globalThis.__KIRU_READY__ = true
|
|
73
|
+
|
|
69
74
|
queueMicrotask(() => {
|
|
70
75
|
window.dispatchEvent(new Event("kiru:ready"))
|
|
71
76
|
})
|
|
72
77
|
}
|
|
73
78
|
|
|
74
|
-
return
|
|
79
|
+
return app
|
|
75
80
|
}
|
|
76
81
|
|
|
77
|
-
function createRootNode(container:
|
|
82
|
+
function createRootNode(container: Kiru.ContainerElement): Kiru.VNode {
|
|
78
83
|
const node = createVNode(container.nodeName.toLowerCase())
|
|
79
84
|
node.flags |= FLAG_STATIC_DOM
|
|
80
|
-
node.dom = container
|
|
85
|
+
node.dom = container as SomeDom
|
|
81
86
|
if (__DEV__) {
|
|
82
87
|
container.__kiruNode = node
|
|
83
88
|
}
|
package/src/components/derive.ts
CHANGED
|
@@ -1,32 +1,33 @@
|
|
|
1
1
|
import { node } from "../globals.js"
|
|
2
2
|
import { $STREAM_DATA } from "../constants.js"
|
|
3
3
|
import { requestUpdate } from "../scheduler.js"
|
|
4
|
-
import { useRef } from "../hooks/index.js"
|
|
5
4
|
import { Signal } from "../signals/index.js"
|
|
6
5
|
import { sideEffectsEnabled } from "../utils/index.js"
|
|
7
6
|
import type { RecordHas } from "../types.utils"
|
|
8
|
-
import { isStatefulPromise, StreamDataThrowValue } from "../
|
|
7
|
+
import { isStatefulPromise, StreamDataThrowValue } from "../statefulPromise.js"
|
|
8
|
+
import { ref } from "../ref.js"
|
|
9
9
|
|
|
10
10
|
export type Derivable =
|
|
11
11
|
| Kiru.Signal<unknown>
|
|
12
|
-
| Kiru.
|
|
13
|
-
| Record<string, Kiru.Signal<unknown> | Kiru.
|
|
12
|
+
| Kiru.StatefulPromiseBase<unknown>
|
|
13
|
+
| Record<string, Kiru.Signal<unknown> | Kiru.StatefulPromiseBase<unknown>>
|
|
14
14
|
|
|
15
|
-
type InnerOf<T> =
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
type InnerOf<T> =
|
|
16
|
+
T extends Kiru.Signal<infer V>
|
|
17
|
+
? V
|
|
18
|
+
: T extends Kiru.StatefulPromiseBase<infer P>
|
|
19
|
+
? P
|
|
20
|
+
: never
|
|
20
21
|
|
|
21
22
|
type UnwrapDerive<T extends Derivable> = T extends
|
|
22
23
|
| Kiru.Signal<unknown>
|
|
23
|
-
| Kiru.
|
|
24
|
+
| Kiru.StatefulPromiseBase<any>
|
|
24
25
|
? InnerOf<T>
|
|
25
26
|
: { [K in keyof T]: InnerOf<T[K]> }
|
|
26
27
|
|
|
27
28
|
type RecordHasPromise<T extends Record<string, any>> = RecordHas<
|
|
28
29
|
T,
|
|
29
|
-
Kiru.
|
|
30
|
+
Kiru.StatefulPromiseBase<any>
|
|
30
31
|
>
|
|
31
32
|
|
|
32
33
|
type ChildFn<T> = (value: T) => JSX.Children
|
|
@@ -36,86 +37,90 @@ export type DeriveFallbackMode = "swr" | "fallback"
|
|
|
36
37
|
|
|
37
38
|
export interface DeriveProps<
|
|
38
39
|
T extends Derivable,
|
|
39
|
-
Mode extends DeriveFallbackMode = "fallback"
|
|
40
|
+
Mode extends DeriveFallbackMode = "fallback",
|
|
40
41
|
> {
|
|
41
42
|
from: T
|
|
42
43
|
mode?: Mode
|
|
43
|
-
children: T extends Kiru.
|
|
44
|
+
children: T extends Kiru.StatefulPromiseBase<infer U>
|
|
44
45
|
? Mode extends "swr"
|
|
45
46
|
? ChildFnWithStale<U>
|
|
46
47
|
: ChildFn<U>
|
|
47
48
|
: T extends Record<string, any>
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
? RecordHasPromise<T> extends true
|
|
50
|
+
? Mode extends "swr"
|
|
51
|
+
? ChildFnWithStale<UnwrapDerive<T>>
|
|
52
|
+
: ChildFn<UnwrapDerive<T>>
|
|
51
53
|
: ChildFn<UnwrapDerive<T>>
|
|
52
54
|
: ChildFn<UnwrapDerive<T>>
|
|
53
|
-
|
|
54
|
-
fallback?: T extends Kiru.StatefulPromise<any>
|
|
55
|
+
fallback?: T extends Kiru.StatefulPromiseBase<any>
|
|
55
56
|
? JSX.Element
|
|
56
57
|
: T extends Record<string, any>
|
|
57
|
-
|
|
58
|
-
|
|
58
|
+
? RecordHasPromise<T> extends true
|
|
59
|
+
? JSX.Element
|
|
60
|
+
: never
|
|
59
61
|
: never
|
|
60
|
-
: never
|
|
61
62
|
}
|
|
62
63
|
|
|
63
|
-
|
|
64
|
-
T extends Derivable,
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
const prevSuccess = useRef<UnwrapDerive<T> | null>(null)
|
|
64
|
+
type Derive = {
|
|
65
|
+
<T extends Derivable, U extends DeriveFallbackMode = "swr">(
|
|
66
|
+
props: DeriveProps<T, U>
|
|
67
|
+
): (props: DeriveProps<T, U>) => JSX.Element
|
|
68
|
+
}
|
|
69
69
|
|
|
70
|
-
|
|
71
|
-
|
|
70
|
+
export const Derive: Derive = () => {
|
|
71
|
+
return (props) => {
|
|
72
|
+
const { from, children, fallback, mode } = props
|
|
73
|
+
const prevSuccess = ref<unknown>(null)
|
|
72
74
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
value = from.value as UnwrapDerive<T>
|
|
76
|
-
} else if (Signal.isSignal(from)) {
|
|
77
|
-
value = from.value as UnwrapDerive<T>
|
|
78
|
-
} else {
|
|
79
|
-
const out: Record<string, any> = {}
|
|
80
|
-
for (const key in from) {
|
|
81
|
-
const v = from[key]
|
|
82
|
-
if (isStatefulPromise(v)) promises.add(v)
|
|
83
|
-
out[key] = (v as Signal<unknown> | Kiru.StatefulPromise<unknown>).value
|
|
84
|
-
}
|
|
85
|
-
value = out as UnwrapDerive<T>
|
|
86
|
-
}
|
|
75
|
+
const promises = new Set<Kiru.StatefulPromiseBase<any>>()
|
|
76
|
+
let value: unknown
|
|
87
77
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
78
|
+
if (isStatefulPromise(from)) {
|
|
79
|
+
promises.add(from)
|
|
80
|
+
value = from.value as unknown
|
|
81
|
+
} else if (Signal.isSignal(from)) {
|
|
82
|
+
value = from.value as unknown
|
|
83
|
+
} else {
|
|
84
|
+
const out: Record<string, any> = {}
|
|
85
|
+
for (const key in from) {
|
|
86
|
+
const v = from[key]
|
|
87
|
+
if (isStatefulPromise(v)) promises.add(v)
|
|
88
|
+
out[key] = (
|
|
89
|
+
v as Signal<unknown> | Kiru.StatefulPromiseBase<unknown>
|
|
90
|
+
).value
|
|
91
|
+
}
|
|
92
|
+
value = out as unknown
|
|
93
|
+
}
|
|
91
94
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
fallback,
|
|
96
|
-
data: Array.from(promises),
|
|
97
|
-
},
|
|
98
|
-
} satisfies StreamDataThrowValue
|
|
99
|
-
}
|
|
95
|
+
if (promises.size === 0) {
|
|
96
|
+
return (children as ChildFn<unknown>)(value)
|
|
97
|
+
}
|
|
100
98
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
99
|
+
if (!sideEffectsEnabled()) {
|
|
100
|
+
throw {
|
|
101
|
+
[$STREAM_DATA]: {
|
|
102
|
+
fallback,
|
|
103
|
+
data: Array.from(promises),
|
|
104
|
+
},
|
|
105
|
+
} satisfies StreamDataThrowValue
|
|
104
106
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
107
|
+
for (const p of promises) {
|
|
108
|
+
if (p.state === "rejected") {
|
|
109
|
+
throw p.error
|
|
110
|
+
}
|
|
111
|
+
if (p.state === "pending") {
|
|
112
|
+
const nodeRef = node.current!
|
|
113
|
+
Promise.allSettled(promises).then(() => requestUpdate(nodeRef))
|
|
108
114
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
115
|
+
const prev = prevSuccess.current!
|
|
116
|
+
if (mode !== "fallback" && prev) {
|
|
117
|
+
return (children as ChildFnWithStale<unknown>)(prev, true)
|
|
118
|
+
}
|
|
119
|
+
return fallback
|
|
114
120
|
}
|
|
115
|
-
return fallback
|
|
116
121
|
}
|
|
117
|
-
}
|
|
118
122
|
|
|
119
|
-
|
|
120
|
-
|
|
123
|
+
prevSuccess.current = value
|
|
124
|
+
return (children as ChildFnWithStale<unknown>)(value, false)
|
|
125
|
+
}
|
|
121
126
|
}
|
package/src/components/index.ts
CHANGED
package/src/components/lazy.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { createElement } from "../element.js"
|
|
2
|
-
import { __DEV__ } from "../env.js"
|
|
3
|
-
import { useRequestUpdate } from "../hooks/utils.js"
|
|
2
|
+
import { __DEV__, isBrowser } from "../env.js"
|
|
4
3
|
import { sideEffectsEnabled } from "../utils/runtime.js"
|
|
4
|
+
import { node } from "../globals.js"
|
|
5
|
+
import { requestUpdate } from "../scheduler.js"
|
|
5
6
|
|
|
6
7
|
interface FCModule {
|
|
7
8
|
default: Kiru.FC<any>
|
|
@@ -22,18 +23,17 @@ type LazyComponentProps<T extends LazyImportValue> = InferLazyImportProps<T> & {
|
|
|
22
23
|
fallback?: JSX.Element
|
|
23
24
|
}
|
|
24
25
|
|
|
25
|
-
const lazyCache: Map<string, LazyState> =
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
: new Map<string, LazyState>()
|
|
26
|
+
const lazyCache: Map<string, LazyState> = isBrowser
|
|
27
|
+
? // @ts-ignore - we're shamefully polluting the global scope here and hiding it 🥲
|
|
28
|
+
(window.__KIRU_LAZY_CACHE ??= new Map<string, LazyState>())
|
|
29
|
+
: new Map<string, LazyState>()
|
|
30
30
|
|
|
31
31
|
export function lazy<T extends LazyImportValue>(
|
|
32
32
|
componentPromiseFn: () => Promise<T>
|
|
33
33
|
): Kiru.FC<LazyComponentProps<T>> {
|
|
34
34
|
function LazyWrapper(props: LazyComponentProps<T>) {
|
|
35
35
|
const { fallback = null, ...rest } = props
|
|
36
|
-
const
|
|
36
|
+
const nodeRef = node.current!
|
|
37
37
|
if (!sideEffectsEnabled()) {
|
|
38
38
|
return fallback
|
|
39
39
|
}
|
|
@@ -53,13 +53,13 @@ export function lazy<T extends LazyImportValue>(
|
|
|
53
53
|
typeof componentOrModule === "function"
|
|
54
54
|
? componentOrModule
|
|
55
55
|
: componentOrModule.default
|
|
56
|
-
requestUpdate()
|
|
56
|
+
requestUpdate(nodeRef)
|
|
57
57
|
})
|
|
58
58
|
return fallback
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
if (cachedState.result === null) {
|
|
62
|
-
cachedState.promise.then(requestUpdate)
|
|
62
|
+
cachedState.promise.then(() => requestUpdate(nodeRef))
|
|
63
63
|
return fallback
|
|
64
64
|
}
|
|
65
65
|
|
package/src/components/portal.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { FLAG_STATIC_DOM } from "../constants.js"
|
|
2
2
|
import { __DEV__ } from "../env.js"
|
|
3
3
|
import { KiruError } from "../error.js"
|
|
4
|
-
import { renderMode } from "../globals.js"
|
|
5
|
-
import { useVNode } from "../hooks/utils.js"
|
|
4
|
+
import { node, renderMode } from "../globals.js"
|
|
6
5
|
import { nextIdle, requestUpdate } from "../scheduler.js"
|
|
7
6
|
|
|
8
7
|
interface PortalProps {
|
|
@@ -11,7 +10,7 @@ interface PortalProps {
|
|
|
11
10
|
}
|
|
12
11
|
|
|
13
12
|
export function Portal({ children, container }: PortalProps) {
|
|
14
|
-
const vNode =
|
|
13
|
+
const vNode = node.current!
|
|
15
14
|
if (!vNode.dom) {
|
|
16
15
|
vNode.flags |= FLAG_STATIC_DOM
|
|
17
16
|
switch (renderMode.current) {
|