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/context.js
CHANGED
|
@@ -1,24 +1,30 @@
|
|
|
1
|
-
import { $CONTEXT
|
|
1
|
+
import { $CONTEXT } from "./constants.js";
|
|
2
2
|
import { createElement } from "./element.js";
|
|
3
|
-
import {
|
|
3
|
+
import { node } from "./globals.js";
|
|
4
4
|
export function createContext(defaultValue) {
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const [dependents] = useState(() => new Set());
|
|
9
|
-
return createElement($CONTEXT_PROVIDER, { value, ctx, dependents }, typeof children === "function" ? children(value) : children);
|
|
10
|
-
},
|
|
11
|
-
default: () => defaultValue,
|
|
12
|
-
set displayName(name) {
|
|
13
|
-
this.Provider.displayName = name;
|
|
14
|
-
},
|
|
15
|
-
get displayName() {
|
|
16
|
-
return this.Provider.displayName || "Anonymous Context";
|
|
17
|
-
},
|
|
18
|
-
};
|
|
19
|
-
return ctx;
|
|
5
|
+
const Context = Object.assign(({ value, children }) => createElement($CONTEXT, { value, ctx: Context }, children), { [$CONTEXT]: () => defaultValue });
|
|
6
|
+
Context.displayName = "Anonymous Context";
|
|
7
|
+
return Context;
|
|
20
8
|
}
|
|
21
|
-
|
|
22
|
-
|
|
9
|
+
function getContextValue(vNode, context) {
|
|
10
|
+
let n = vNode.parent;
|
|
11
|
+
while (n) {
|
|
12
|
+
if (n.type === $CONTEXT) {
|
|
13
|
+
const provider = n;
|
|
14
|
+
const { ctx, value } = provider.props;
|
|
15
|
+
if (ctx === context) {
|
|
16
|
+
return value;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
n = n.parent;
|
|
20
|
+
}
|
|
21
|
+
return context[$CONTEXT]();
|
|
22
|
+
}
|
|
23
|
+
export function useContext(context) {
|
|
24
|
+
const n = node.current;
|
|
25
|
+
if (!n) {
|
|
26
|
+
throw new Error("useContext must be called inside a Kiru component");
|
|
27
|
+
}
|
|
28
|
+
return getContextValue(n, context);
|
|
23
29
|
}
|
|
24
30
|
//# sourceMappingURL=context.js.map
|
package/dist/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAEnC,MAAM,UAAU,aAAa,CAAI,YAAe;IAC9C,MAAM,OAAO,GAAoB,MAAM,CAAC,MAAM,CAC5C,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAwB,EAAE,EAAE,CAC5C,aAAa,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC,EAC5D,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE,CACnC,CAAA;IACD,OAAO,CAAC,WAAW,GAAG,mBAAmB,CAAA;IACzC,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAS,eAAe,CAAI,KAAiB,EAAE,OAAwB;IACrE,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,CAAC;QACT,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,CAAyB,CAAA;YAC1C,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAA;YACrC,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;gBACpB,OAAO,KAAU,CAAA;YACnB,CAAC;QACH,CAAC;QACD,CAAC,GAAG,CAAC,CAAC,MAAM,CAAA;IACd,CAAC;IACD,OAAO,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,UAAU,CAAI,OAAwB;IACpD,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAA;IACtB,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;IACtE,CAAC;IACD,OAAO,eAAe,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;AACpC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { DebuggerEntry } from "./globalContext";
|
|
2
|
+
export declare namespace DevTools {
|
|
3
|
+
const track: (signal: Kiru.Signal<unknown>, label?: string) => void;
|
|
4
|
+
const untrack: (signal: Kiru.Signal<unknown>) => void;
|
|
5
|
+
const subscribe: (callback: (entries: Set<DebuggerEntry>) => void) => () => void;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=devtools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devtools.d.ts","sourceRoot":"","sources":["../src/devtools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEpD,yBAAiB,QAAQ,CAAC;IACjB,MAAM,KAAK,GAAI,QAAQ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,MAAM,SAGjE,CAAA;IACM,MAAM,OAAO,GAAI,QAAQ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAGnD,CAAA;IACM,MAAM,SAAS,GACpB,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,aAAa,CAAC,KAAK,IAAI,eAIhD,CAAA;CACF"}
|
package/dist/devtools.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export var DevTools;
|
|
2
|
+
(function (DevTools) {
|
|
3
|
+
DevTools.track = (signal, label) => {
|
|
4
|
+
if (!("window" in globalThis))
|
|
5
|
+
return;
|
|
6
|
+
window.__kiru.devtools?.track(signal, label);
|
|
7
|
+
};
|
|
8
|
+
DevTools.untrack = (signal) => {
|
|
9
|
+
if (!("window" in globalThis))
|
|
10
|
+
return;
|
|
11
|
+
window.__kiru.devtools?.untrack(signal);
|
|
12
|
+
};
|
|
13
|
+
DevTools.subscribe = (callback) => {
|
|
14
|
+
if (!("window" in globalThis) || !window.__kiru.devtools)
|
|
15
|
+
return () => { };
|
|
16
|
+
return window.__kiru.devtools.subscribe(callback);
|
|
17
|
+
};
|
|
18
|
+
})(DevTools || (DevTools = {}));
|
|
19
|
+
//# sourceMappingURL=devtools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devtools.js","sourceRoot":"","sources":["../src/devtools.ts"],"names":[],"mappings":"AAEA,MAAM,KAAW,QAAQ,CAexB;AAfD,WAAiB,QAAQ;IACV,cAAK,GAAG,CAAC,MAA4B,EAAE,KAAc,EAAE,EAAE;QACpE,IAAI,CAAC,CAAC,QAAQ,IAAI,UAAU,CAAC;YAAE,OAAM;QACrC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC9C,CAAC,CAAA;IACY,gBAAO,GAAG,CAAC,MAA4B,EAAE,EAAE;QACtD,IAAI,CAAC,CAAC,QAAQ,IAAI,UAAU,CAAC;YAAE,OAAM;QACrC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;IACzC,CAAC,CAAA;IACY,kBAAS,GAAG,CACvB,QAA+C,EAC/C,EAAE;QACF,IAAI,CAAC,CAAC,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ;YAAE,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;QACzE,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;IACnD,CAAC,CAAA;AACH,CAAC,EAfgB,QAAQ,KAAR,QAAQ,QAexB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commit.d.ts","sourceRoot":"","sources":["../../src/dom/commit.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,CAAA;AAErC,KAAK,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AAEvB,iBAAS,UAAU,CAAC,KAAK,EAAE,KAAK,QAa/B;AAqDD,iBAAS,cAAc,CAAC,KAAK,EAAE,KAAK,QA8CnC"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { traverseApply, commitSnapshot, getVNodeApp, setRef, call, } from "../utils/index.js";
|
|
2
|
+
import { FLAG_PLACEMENT, FLAG_STATIC_DOM, FLAG_UPDATE } from "../constants.js";
|
|
3
|
+
import { __DEV__ } from "../env.js";
|
|
4
|
+
import { postEffectCleanups, renderMode } from "../globals.js";
|
|
5
|
+
import { isHmrUpdate } from "../hmr.js";
|
|
6
|
+
import { unmountDomProps, updateDomProps } from "./props.js";
|
|
7
|
+
import { getDomParent, placeDom } from "./nodes.js";
|
|
8
|
+
export { commitWork, commitDeletion };
|
|
9
|
+
function commitWork(vNode) {
|
|
10
|
+
if (renderMode.current === "hydrate") {
|
|
11
|
+
return traverseApply(vNode, commitSnapshot);
|
|
12
|
+
}
|
|
13
|
+
const host = {
|
|
14
|
+
node: vNode.dom ? vNode : getDomParent(vNode),
|
|
15
|
+
};
|
|
16
|
+
commitWork_impl(vNode, host, (vNode.flags & FLAG_PLACEMENT) > 0);
|
|
17
|
+
if (vNode.dom && !(vNode.flags & FLAG_STATIC_DOM)) {
|
|
18
|
+
commitDom(vNode, host, false);
|
|
19
|
+
}
|
|
20
|
+
commitSnapshot(vNode);
|
|
21
|
+
}
|
|
22
|
+
function commitWork_impl(vNode, currentHostNode, inheritsPlacement) {
|
|
23
|
+
let child = vNode.child;
|
|
24
|
+
while (child) {
|
|
25
|
+
if (child.dom) {
|
|
26
|
+
commitWork_impl(child, { node: child }, false);
|
|
27
|
+
if (!(child.flags & FLAG_STATIC_DOM)) {
|
|
28
|
+
commitDom(child, currentHostNode, inheritsPlacement);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
commitWork_impl(child, currentHostNode, (child.flags & FLAG_PLACEMENT) > 0 || inheritsPlacement);
|
|
33
|
+
}
|
|
34
|
+
commitSnapshot(child);
|
|
35
|
+
child = child.sibling;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function commitDom(vNode, hostNode, inheritsPlacement) {
|
|
39
|
+
if (inheritsPlacement ||
|
|
40
|
+
!vNode.dom.isConnected ||
|
|
41
|
+
vNode.flags & FLAG_PLACEMENT) {
|
|
42
|
+
placeDom(vNode, hostNode);
|
|
43
|
+
}
|
|
44
|
+
// During HMR we want to fully unmount previous props (events, signal
|
|
45
|
+
// subscriptions, style listeners, refs, etc.) before applying the new ones,
|
|
46
|
+
// so that we don't merge stale props with the new shape.
|
|
47
|
+
if (__DEV__ && vNode.prev && isHmrUpdate()) {
|
|
48
|
+
const { dom, prev, cleanups } = vNode;
|
|
49
|
+
unmountDomProps(vNode, dom, prev.props, cleanups);
|
|
50
|
+
vNode.prev = null;
|
|
51
|
+
}
|
|
52
|
+
if (!vNode.prev || vNode.flags & FLAG_UPDATE) {
|
|
53
|
+
updateDomProps(vNode);
|
|
54
|
+
}
|
|
55
|
+
hostNode.lastChild = vNode.dom;
|
|
56
|
+
}
|
|
57
|
+
function commitDeletion(vNode) {
|
|
58
|
+
if (vNode === vNode.parent?.child) {
|
|
59
|
+
vNode.parent.child = vNode.sibling;
|
|
60
|
+
}
|
|
61
|
+
let app;
|
|
62
|
+
if (__DEV__) {
|
|
63
|
+
app = getVNodeApp(vNode);
|
|
64
|
+
}
|
|
65
|
+
traverseApply(vNode, (node) => {
|
|
66
|
+
const { subs, cleanups, dom, props: { ref }, hooks, } = node;
|
|
67
|
+
subs?.forEach((unsub) => unsub());
|
|
68
|
+
if (cleanups)
|
|
69
|
+
Object.values(cleanups).forEach((c) => c());
|
|
70
|
+
if (hooks) {
|
|
71
|
+
const { preCleanups, postCleanups } = hooks;
|
|
72
|
+
postEffectCleanups.push(...postCleanups);
|
|
73
|
+
preCleanups.forEach(call);
|
|
74
|
+
preCleanups.length = postCleanups.length = 0;
|
|
75
|
+
}
|
|
76
|
+
if (__DEV__) {
|
|
77
|
+
window.__kiru.profilingContext?.emit("removeNode", app);
|
|
78
|
+
if (dom instanceof Element) {
|
|
79
|
+
delete dom.__kiruNode;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
if (dom) {
|
|
83
|
+
if (dom.isConnected && !(node.flags & FLAG_STATIC_DOM)) {
|
|
84
|
+
dom.remove();
|
|
85
|
+
}
|
|
86
|
+
if (ref) {
|
|
87
|
+
setRef(ref, null);
|
|
88
|
+
}
|
|
89
|
+
delete node.dom;
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
vNode.parent = null;
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=commit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commit.js","sourceRoot":"","sources":["../../src/dom/commit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"focus.d.ts","sourceRoot":"","sources":["../../src/dom/focus.ts"],"names":[],"mappings":"AAEA,wBAAgB,YAAY,SAO3B;AAED,wBAAgB,cAAc,SAM7B;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,IACjE,OAAO,UAAU,UAQ1B"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
let focussedElement = null;
|
|
2
|
+
export function captureFocus() {
|
|
3
|
+
const el = document.activeElement;
|
|
4
|
+
if (el === document.body || !(el instanceof HTMLElement)) {
|
|
5
|
+
return;
|
|
6
|
+
}
|
|
7
|
+
el.addEventListener("blur", placementBlurHandler);
|
|
8
|
+
focussedElement = el;
|
|
9
|
+
}
|
|
10
|
+
export function reinstateFocus() {
|
|
11
|
+
if (focussedElement) {
|
|
12
|
+
focussedElement.removeEventListener("blur", placementBlurHandler);
|
|
13
|
+
if (focussedElement.isConnected)
|
|
14
|
+
focussedElement.focus();
|
|
15
|
+
focussedElement = null;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export function wrapFocusEventHandler(callback) {
|
|
19
|
+
return (event) => {
|
|
20
|
+
if (focussedElement) {
|
|
21
|
+
event.preventDefault();
|
|
22
|
+
event.stopPropagation();
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
callback(event);
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
function placementBlurHandler(event) {
|
|
29
|
+
event.preventDefault();
|
|
30
|
+
event.stopPropagation();
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=focus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"focus.js","sourceRoot":"","sources":["../../src/dom/focus.ts"],"names":[],"mappings":"AAAA,IAAI,eAAe,GAAuB,IAAI,CAAA;AAE9C,MAAM,UAAU,YAAY;IAC1B,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAA;IACjC,IAAI,EAAE,KAAK,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,YAAY,WAAW,CAAC,EAAE,CAAC;QACzD,OAAM;IACR,CAAC;IACD,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;IACjD,eAAe,GAAG,EAAE,CAAA;AACtB,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,IAAI,eAAe,EAAE,CAAC;QACpB,eAAe,CAAC,mBAAmB,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;QACjE,IAAI,eAAe,CAAC,WAAW;YAAE,eAAe,CAAC,KAAK,EAAE,CAAA;QACxD,eAAe,GAAG,IAAI,CAAA;IACxB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,QAAqC;IACzE,OAAO,CAAC,KAAiB,EAAE,EAAE;QAC3B,IAAI,eAAe,EAAE,CAAC;YACpB,KAAK,CAAC,cAAc,EAAE,CAAA;YACtB,KAAK,CAAC,eAAe,EAAE,CAAA;YACvB,OAAM;QACR,CAAC;QACD,QAAQ,CAAC,KAAK,CAAC,CAAA;IACjB,CAAC,CAAA;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAiB;IAC7C,KAAK,CAAC,cAAc,EAAE,CAAA;IACtB,KAAK,CAAC,eAAe,EAAE,CAAA;AACzB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dom/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dom/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { DomVNode, ElementVNode, SomeDom } from "../types.utils";
|
|
2
|
+
export { createDom, hydrateDom, getDomParent, placeDom };
|
|
3
|
+
type VNode = Kiru.VNode;
|
|
4
|
+
export type HostNode = {
|
|
5
|
+
node: ElementVNode;
|
|
6
|
+
lastChild?: SomeDom;
|
|
7
|
+
};
|
|
8
|
+
declare function createDom(vNode: DomVNode): SomeDom;
|
|
9
|
+
declare function hydrateDom(vNode: VNode): void;
|
|
10
|
+
declare function getDomParent(vNode: VNode): ElementVNode;
|
|
11
|
+
declare function placeDom(vNode: DomVNode, hostNode: HostNode): void;
|
|
12
|
+
//# sourceMappingURL=nodes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../src/dom/nodes.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAY,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAE/E,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAA;AAExD,KAAK,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AAEvB,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,YAAY,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,iBAAS,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAU3C;AAED,iBAAS,UAAU,CAAC,KAAK,EAAE,KAAK,QA+C/B;AAED,iBAAS,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,CAmBhD;AAED,iBAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,QAcpD"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { svgTags, FLAG_PLACEMENT, FLAG_STATIC_DOM } from "../constants.js";
|
|
2
|
+
import { Signal } from "../signals/base.js";
|
|
3
|
+
import { unwrap } from "../signals/utils.js";
|
|
4
|
+
import { hydrationStack } from "../hydration.js";
|
|
5
|
+
import { getVNodeApp, isValidTextChild, registerVNodeCleanup, } from "../utils/index.js";
|
|
6
|
+
import { KiruError } from "../error.js";
|
|
7
|
+
import { __DEV__, isBrowser } from "../env.js";
|
|
8
|
+
export { createDom, hydrateDom, getDomParent, placeDom };
|
|
9
|
+
function createDom(vNode) {
|
|
10
|
+
const t = vNode.type;
|
|
11
|
+
const dom = t == "#text"
|
|
12
|
+
? createTextNode(vNode)
|
|
13
|
+
: svgTags.has(t)
|
|
14
|
+
? document.createElementNS("http://www.w3.org/2000/svg", t)
|
|
15
|
+
: document.createElement(t);
|
|
16
|
+
return dom;
|
|
17
|
+
}
|
|
18
|
+
function hydrateDom(vNode) {
|
|
19
|
+
const dom = vNode.type === "#text"
|
|
20
|
+
? getOrCreateTextNode(vNode)
|
|
21
|
+
: hydrationStack.getCurrentChild();
|
|
22
|
+
hydrationStack.bumpChildIndex();
|
|
23
|
+
if (!dom) {
|
|
24
|
+
throw new KiruError({
|
|
25
|
+
message: `Hydration mismatch - no node found`,
|
|
26
|
+
vNode,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
let nodeName = dom.nodeName;
|
|
30
|
+
if (!svgTags.has(nodeName)) {
|
|
31
|
+
nodeName = nodeName.toLowerCase();
|
|
32
|
+
}
|
|
33
|
+
if (vNode.type !== nodeName) {
|
|
34
|
+
throw new KiruError({
|
|
35
|
+
message: `Hydration mismatch - expected node of type ${vNode.type.toString()} but received ${nodeName}`,
|
|
36
|
+
vNode,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
vNode.dom = dom;
|
|
40
|
+
if (vNode.type !== "#text" && !(vNode.flags & FLAG_STATIC_DOM)) {
|
|
41
|
+
// updateDom is called later during commit phase
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (Signal.isSignal(vNode.props.nodeValue)) {
|
|
45
|
+
subTextNode(vNode, dom, vNode.props.nodeValue);
|
|
46
|
+
}
|
|
47
|
+
let prev = vNode;
|
|
48
|
+
let sibling = vNode.sibling;
|
|
49
|
+
while (sibling && sibling.type === "#text") {
|
|
50
|
+
const sib = sibling;
|
|
51
|
+
hydrationStack.bumpChildIndex();
|
|
52
|
+
const prevText = String(unwrap(prev.props.nodeValue) ?? "");
|
|
53
|
+
const dom = prev.dom.splitText(prevText.length);
|
|
54
|
+
sib.dom = dom;
|
|
55
|
+
if (Signal.isSignal(sib.props.nodeValue)) {
|
|
56
|
+
subTextNode(sib, dom, sib.props.nodeValue);
|
|
57
|
+
}
|
|
58
|
+
prev = sibling;
|
|
59
|
+
sibling = sibling.sibling;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function getDomParent(vNode) {
|
|
63
|
+
let parentNode = vNode.parent;
|
|
64
|
+
let parentNodeElement = parentNode?.dom;
|
|
65
|
+
while (parentNode && !parentNodeElement) {
|
|
66
|
+
parentNode = parentNode.parent;
|
|
67
|
+
parentNodeElement = parentNode?.dom;
|
|
68
|
+
}
|
|
69
|
+
if (!parentNodeElement || !parentNode) {
|
|
70
|
+
if (!vNode.parent && vNode.dom) {
|
|
71
|
+
return vNode;
|
|
72
|
+
}
|
|
73
|
+
throw new KiruError({
|
|
74
|
+
message: "No DOM parent found while attempting to place node.",
|
|
75
|
+
vNode: vNode,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
return parentNode;
|
|
79
|
+
}
|
|
80
|
+
function placeDom(vNode, hostNode) {
|
|
81
|
+
const { node: parentVNodeWithDom, lastChild } = hostNode;
|
|
82
|
+
const dom = vNode.dom;
|
|
83
|
+
if (lastChild) {
|
|
84
|
+
lastChild.after(dom);
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
const nextSiblingDom = getNextSiblingDom(vNode, parentVNodeWithDom);
|
|
88
|
+
if (nextSiblingDom) {
|
|
89
|
+
parentVNodeWithDom.dom.insertBefore(dom, nextSiblingDom);
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
parentVNodeWithDom.dom.appendChild(dom);
|
|
93
|
+
}
|
|
94
|
+
function getNextSiblingDom(vNode, parent) {
|
|
95
|
+
let node = vNode;
|
|
96
|
+
while (node) {
|
|
97
|
+
let sibling = node.sibling;
|
|
98
|
+
while (sibling) {
|
|
99
|
+
if (!(sibling.flags & (FLAG_PLACEMENT | FLAG_STATIC_DOM))) {
|
|
100
|
+
const dom = findFirstHostDom(sibling);
|
|
101
|
+
if (dom?.isConnected)
|
|
102
|
+
return dom;
|
|
103
|
+
}
|
|
104
|
+
sibling = sibling.sibling;
|
|
105
|
+
}
|
|
106
|
+
node = node.parent;
|
|
107
|
+
if (!node || node.flags & FLAG_STATIC_DOM || node === parent) {
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
function findFirstHostDom(vNode) {
|
|
114
|
+
let node = vNode;
|
|
115
|
+
while (node) {
|
|
116
|
+
if (node.dom)
|
|
117
|
+
return node.dom;
|
|
118
|
+
if (node.flags & FLAG_STATIC_DOM)
|
|
119
|
+
return;
|
|
120
|
+
node = node.child;
|
|
121
|
+
}
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
function getOrCreateTextNode(vNode) {
|
|
125
|
+
const sig = vNode.props.nodeValue;
|
|
126
|
+
if (!Signal.isSignal(sig)) {
|
|
127
|
+
return hydrationStack.getCurrentChild();
|
|
128
|
+
}
|
|
129
|
+
const value = sig.peek();
|
|
130
|
+
if (isValidTextChild(value)) {
|
|
131
|
+
return hydrationStack.getCurrentChild();
|
|
132
|
+
}
|
|
133
|
+
const dom = createSignalTextNode(vNode, sig);
|
|
134
|
+
const currentChild = hydrationStack.getCurrentChild();
|
|
135
|
+
if (!currentChild) {
|
|
136
|
+
return hydrationStack.getCurrentParent().appendChild(dom);
|
|
137
|
+
}
|
|
138
|
+
currentChild.before(dom);
|
|
139
|
+
return dom;
|
|
140
|
+
}
|
|
141
|
+
function subTextNode(vNode, textNode, signal) {
|
|
142
|
+
const cleanup = signal.subscribe((value, prev) => {
|
|
143
|
+
if (value === prev)
|
|
144
|
+
return;
|
|
145
|
+
textNode.nodeValue = value;
|
|
146
|
+
if (__DEV__ && isBrowser) {
|
|
147
|
+
window.__kiru?.profilingContext?.emit("signalTextUpdate", getVNodeApp(vNode));
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
registerVNodeCleanup(vNode, "nodeValue", cleanup);
|
|
151
|
+
}
|
|
152
|
+
function createTextNode(vNode) {
|
|
153
|
+
const { nodeValue } = vNode.props;
|
|
154
|
+
if (Signal.isSignal(nodeValue)) {
|
|
155
|
+
return createSignalTextNode(vNode, nodeValue);
|
|
156
|
+
}
|
|
157
|
+
return document.createTextNode(nodeValue);
|
|
158
|
+
}
|
|
159
|
+
function createSignalTextNode(vNode, nodeValue) {
|
|
160
|
+
const value = nodeValue.peek() ?? "";
|
|
161
|
+
const textNode = document.createTextNode(value);
|
|
162
|
+
subTextNode(vNode, textNode, nodeValue);
|
|
163
|
+
return textNode;
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=nodes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../src/dom/nodes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Signal } from "../signals/base.js";
|
|
2
|
+
import type { DomVNode, SomeDom } from "../types.utils.js";
|
|
3
|
+
export { updateDomProps, unmountDomProps, setSignalProp };
|
|
4
|
+
type VNode = Kiru.VNode;
|
|
5
|
+
declare function updateDomProps(vNode: DomVNode): void;
|
|
6
|
+
declare function unmountDomProps(vNode: DomVNode, dom: SomeDom, prevProps: Record<string, any>, cleanups?: DomVNode["cleanups"]): void;
|
|
7
|
+
declare function setSignalProp(vNode: VNode, dom: Exclude<SomeDom, Text>, key: string, signal: Signal<any>, prevValue: unknown): void;
|
|
8
|
+
//# sourceMappingURL=props.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../../src/dom/props.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAM3C,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAe,MAAM,mBAAmB,CAAA;AAEvE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,CAAA;AAEzD,KAAK,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AA2BvB,iBAAS,cAAc,CAAC,KAAK,EAAE,QAAQ,QAyMtC;AAED,iBAAS,eAAe,CACtB,KAAK,EAAE,QAAQ,EACf,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9B,QAAQ,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,QAyDhC;AA2KD,iBAAS,aAAa,CACpB,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,EAC3B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EACnB,SAAS,EAAE,OAAO,QAmCnB"}
|