kiru 1.1.2 → 1.2.1

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.
Files changed (87) hide show
  1. package/dist/appHandle.d.ts.map +1 -1
  2. package/dist/appHandle.js +4 -5
  3. package/dist/appHandle.js.map +1 -1
  4. package/dist/components/derive.d.ts +4 -0
  5. package/dist/components/derive.d.ts.map +1 -1
  6. package/dist/components/derive.js +8 -4
  7. package/dist/components/derive.js.map +1 -1
  8. package/dist/components/errorBoundary.d.ts +4 -0
  9. package/dist/components/errorBoundary.d.ts.map +1 -1
  10. package/dist/components/errorBoundary.js +4 -0
  11. package/dist/components/errorBoundary.js.map +1 -1
  12. package/dist/{signals/jsx.d.ts → components/for.d.ts} +7 -9
  13. package/dist/components/for.d.ts.map +1 -0
  14. package/dist/components/for.js +13 -0
  15. package/dist/components/for.js.map +1 -0
  16. package/dist/components/index.d.ts +2 -0
  17. package/dist/components/index.d.ts.map +1 -1
  18. package/dist/components/index.js +2 -0
  19. package/dist/components/index.js.map +1 -1
  20. package/dist/components/lazy.d.ts +4 -0
  21. package/dist/components/lazy.d.ts.map +1 -1
  22. package/dist/components/lazy.js +4 -0
  23. package/dist/components/lazy.js.map +1 -1
  24. package/dist/components/portal.d.ts +4 -0
  25. package/dist/components/portal.d.ts.map +1 -1
  26. package/dist/components/portal.js +4 -0
  27. package/dist/components/portal.js.map +1 -1
  28. package/dist/components/show.d.ts +18 -0
  29. package/dist/components/show.d.ts.map +1 -0
  30. package/dist/components/show.js +18 -0
  31. package/dist/components/show.js.map +1 -0
  32. package/dist/components/transition.d.ts +4 -0
  33. package/dist/components/transition.d.ts.map +1 -1
  34. package/dist/components/transition.js +4 -0
  35. package/dist/components/transition.js.map +1 -1
  36. package/dist/dom/nodes.d.ts.map +1 -1
  37. package/dist/dom/nodes.js +5 -1
  38. package/dist/dom/nodes.js.map +1 -1
  39. package/dist/dom/props.d.ts.map +1 -1
  40. package/dist/dom/props.js +23 -4
  41. package/dist/dom/props.js.map +1 -1
  42. package/dist/hooks/setup.d.ts +1 -1
  43. package/dist/hooks/setup.d.ts.map +1 -1
  44. package/dist/hooks/setup.js +111 -7
  45. package/dist/hooks/setup.js.map +1 -1
  46. package/dist/scheduler.d.ts.map +1 -1
  47. package/dist/scheduler.js +2 -3
  48. package/dist/scheduler.js.map +1 -1
  49. package/dist/signals/base.d.ts.map +1 -1
  50. package/dist/signals/base.js +23 -4
  51. package/dist/signals/base.js.map +1 -1
  52. package/dist/signals/computed.d.ts +1 -1
  53. package/dist/signals/computed.d.ts.map +1 -1
  54. package/dist/signals/computed.js +29 -21
  55. package/dist/signals/computed.js.map +1 -1
  56. package/dist/signals/index.d.ts +0 -6
  57. package/dist/signals/index.d.ts.map +1 -1
  58. package/dist/signals/index.js +0 -6
  59. package/dist/signals/index.js.map +1 -1
  60. package/dist/types.utils.d.ts +2 -0
  61. package/dist/types.utils.d.ts.map +1 -1
  62. package/dist/utils/vdom.d.ts +2 -1
  63. package/dist/utils/vdom.d.ts.map +1 -1
  64. package/dist/utils/vdom.js +4 -1
  65. package/dist/utils/vdom.js.map +1 -1
  66. package/package.json +1 -1
  67. package/src/appHandle.ts +6 -7
  68. package/src/components/derive.ts +9 -5
  69. package/src/components/errorBoundary.ts +4 -0
  70. package/src/{signals/jsx.ts → components/for.ts} +6 -12
  71. package/src/components/index.ts +2 -0
  72. package/src/components/lazy.ts +4 -0
  73. package/src/components/portal.ts +4 -0
  74. package/src/components/show.ts +32 -0
  75. package/src/components/transition.ts +4 -0
  76. package/src/dom/nodes.ts +5 -2
  77. package/src/dom/props.ts +28 -3
  78. package/src/hooks/setup.ts +144 -10
  79. package/src/scheduler.ts +2 -3
  80. package/src/signals/base.ts +21 -5
  81. package/src/signals/computed.ts +13 -4
  82. package/src/signals/index.ts +0 -7
  83. package/src/types.utils.ts +3 -0
  84. package/src/utils/vdom.ts +5 -0
  85. package/dist/signals/jsx.d.ts.map +0 -1
  86. package/dist/signals/jsx.js +0 -11
  87. package/dist/signals/jsx.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"computed.js","sourceRoot":"","sources":["../../src/signals/computed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"computed.js","sourceRoot":"","sources":["../../src/signals/computed.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,6 @@
1
- /**
2
- * ISSUES:
3
- * 1. signal subscription when mixing local and global signals get reversed in hmr for ONLY the first update after HMR is dom
4
- * 2. global computed will lose its vNode subscription on HMR
5
- * */
6
1
  export { Signal, signal } from "./base.js";
7
2
  export { ComputedSignal, computed } from "./computed.js";
8
3
  export { Effect, effect } from "./effect.js";
9
4
  export { unwrap, tick } from "./utils.js";
10
- export * from "./jsx.js";
11
5
  export * from "./types.js";
12
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/signals/index.ts"],"names":[],"mappings":"AAAA;;;;KAIK;AAEL,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACzC,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/signals/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACzC,cAAc,YAAY,CAAA"}
@@ -1,12 +1,6 @@
1
- /**
2
- * ISSUES:
3
- * 1. signal subscription when mixing local and global signals get reversed in hmr for ONLY the first update after HMR is dom
4
- * 2. global computed will lose its vNode subscription on HMR
5
- * */
6
1
  export { Signal, signal } from "./base.js";
7
2
  export { ComputedSignal, computed } from "./computed.js";
8
3
  export { Effect, effect } from "./effect.js";
9
4
  export { unwrap, tick } from "./utils.js";
10
- export * from "./jsx.js";
11
5
  export * from "./types.js";
12
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/signals/index.ts"],"names":[],"mappings":"AAAA;;;;KAIK;AAEL,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACzC,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/signals/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACzC,cAAc,YAAY,CAAA"}
@@ -55,4 +55,6 @@ export type ArrayHas<T extends any[], U> = Extract<T[number], U> extends never ?
55
55
  export type RecordHas<T extends Record<string, any>, U> = [
56
56
  Extract<T[keyof T], U>
57
57
  ] extends [never] ? false : true;
58
+ export type Falsy = false | 0 | 0n | "" | null | undefined;
59
+ export type Truthy<T> = Exclude<T, Falsy>;
58
60
  //# sourceMappingURL=types.utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.utils.d.ts","sourceRoot":"","sources":["../src/types.utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.utils.d.ts","sourceRoot":"","sources":["../src/types.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAEpE,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,UAAU,CAAA;AAClD,MAAM,MAAM,OAAO,GAAG,WAAW,GAAG,UAAU,GAAG,IAAI,CAAA;AACrD,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,SAAS,CAAA;AAClD,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAA;AAE1C,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,KAAK;IAC/C,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,GAAG,CAAC,OAAO,CAAA;CACtD;AAED,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,KAAK;IAC9C,GAAG,EAAE,WAAW,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb;AACD,MAAM,WAAW,QAAS,SAAQ,IAAI,CAAC,KAAK;IAC1C,GAAG,EAAE,OAAO,CAAA;IACZ,IAAI,EAAE,OAAO,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;CAC9B;AAED,MAAM,WAAW,WAAW,CAAC,CAAC,CAAE,SAAQ,IAAI,CAAC,KAAK;IAChD,IAAI,EAAE,OAAO,QAAQ,CAAA;IACrB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG;QAC3B,KAAK,EAAE,CAAC,CAAA;QACR,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;KACrB,CAAA;CACF;AAED,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,KAAK;IACnD,IAAI,EAAE,OAAO,eAAe,CAAA;IAC5B,KAAK,EAAE,kBAAkB,CAAA;IACzB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,KAAK;IAC9C,IAAI,EAAE,OAAO,SAAS,CAAA;CACvB;AAED,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KACvB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACrB,GAAG,EAAE,CAAA;AAEN,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AAEzC,MAAM,MAAM,cAAc,CAAC,CAAC,EAAE,CAAC,SAAS,KAAK,GAAG,KAAK,IACjD;IACE,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,IAAI,CAAA;IACX,OAAO,EAAE,IAAI,CAAA;CACd,GACD;IACE,IAAI,EAAE,CAAC,CAAA;IACP,KAAK,EAAE,IAAI,CAAA;IACX,OAAO,EAAE,KAAK,CAAA;CACf,GACD;IACE,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,CAAC,CAAA;IACR,OAAO,EAAE,KAAK,CAAA;CACf,CAAA;AAEL,MAAM,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI;KACvC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACf,CAAA;AAED,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC,IAErC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,GAAG,IAAI,CAAA;AAEpD,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI;IACxD,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;CACvB,SAAS,CAAC,KAAK,CAAC,GACb,KAAK,GACL,IAAI,CAAA;AAER,MAAM,MAAM,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,SAAS,CAAA;AAC1D,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { $FRAGMENT, $CONTEXT } from "../constants.js";
2
2
  import type { AppHandle } from "../appHandle.js";
3
3
  import type { ErrorBoundaryNode } from "../types.utils.js";
4
- export { cloneElement, isVNodeDeleted, isElement, isVNode, isValidTextChild, isExoticType, isFragment, isLazy, isContextProvider, vNodeContains, getCurrentVNode, getVNodeApp, commitSnapshot, traverseApply, findParent, findParentErrorBoundary, assertValidElementProps, normalizeElementKey, createVNodeId, registerVNodeCleanup, propsChanged, };
4
+ export { cloneElement, isVNodeDeleted, isElement, isVNode, isValidTextChild, isExoticType, isFragment, isLazy, isContextProvider, vNodeContains, getCurrentVNode, getVNodeApp, commitSnapshot, traverseApply, findParent, findParentErrorBoundary, assertValidElementProps, normalizeElementKey, createVNodeId, registerVNodeCleanup, propsChanged, depthSort, };
5
5
  declare function cloneElement(vNode: Kiru.VNode): Kiru.Element;
6
6
  declare function isVNodeDeleted(vNode: Kiru.VNode): boolean;
7
7
  declare function isVNode(thing: unknown): thing is Kiru.VNode;
@@ -27,4 +27,5 @@ declare function normalizeElementKey(thing: unknown): JSX.ElementKey | null;
27
27
  declare function createVNodeId(vNode: Kiru.VNode): string;
28
28
  declare function registerVNodeCleanup(vNode: Kiru.VNode, id: string, callback: () => void): void;
29
29
  declare function propsChanged(oldProps: Kiru.VNode["props"], newProps: Kiru.VNode["props"], keysToSkip?: string[]): boolean;
30
+ declare function depthSort(a: Kiru.VNode, b: Kiru.VNode): number;
30
31
  //# sourceMappingURL=vdom.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vdom.d.ts","sourceRoot":"","sources":["../../src/utils/vdom.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vdom.d.ts","sourceRoot":"","sources":["../../src/utils/vdom.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { FLAG_DELETION, $FRAGMENT, FLAG_PLACEMENT, FLAG_UPDATE, $ERROR_BOUNDARY,
2
2
  import { createElement } from "../index.js";
3
3
  import { KiruError } from "../error.js";
4
4
  import { node } from "../globals.js";
5
- export { cloneElement, isVNodeDeleted, isElement, isVNode, isValidTextChild, isExoticType, isFragment, isLazy, isContextProvider, vNodeContains, getCurrentVNode, getVNodeApp, commitSnapshot, traverseApply, findParent, findParentErrorBoundary, assertValidElementProps, normalizeElementKey, createVNodeId, registerVNodeCleanup, propsChanged, };
5
+ export { cloneElement, isVNodeDeleted, isElement, isVNode, isValidTextChild, isExoticType, isFragment, isLazy, isContextProvider, vNodeContains, getCurrentVNode, getVNodeApp, commitSnapshot, traverseApply, findParent, findParentErrorBoundary, assertValidElementProps, normalizeElementKey, createVNodeId, registerVNodeCleanup, propsChanged, depthSort, };
6
6
  function cloneElement(vNode) {
7
7
  const children = vNode.props.children;
8
8
  let clonedChildren;
@@ -151,4 +151,7 @@ function propsChanged(oldProps, newProps, keysToSkip) {
151
151
  }
152
152
  return false;
153
153
  }
154
+ function depthSort(a, b) {
155
+ return a.depth - b.depth;
156
+ }
154
157
  //# sourceMappingURL=vdom.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vdom.js","sourceRoot":"","sources":["../../src/utils/vdom.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vdom.js","sourceRoot":"","sources":["../../src/utils/vdom.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kiru",
3
- "version": "1.1.2",
3
+ "version": "1.2.1",
4
4
  "description": "A batteries-included, easy-to-use rendering library with a tiny footprint",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
package/src/appHandle.ts CHANGED
@@ -28,18 +28,17 @@ export function mount(
28
28
  container: Kiru.ContainerElement,
29
29
  options?: AppHandleOptions
30
30
  ): AppHandle {
31
- if (__DEV__) {
32
- if (container.__kiruNode) {
33
- throw new Error(
34
- "[kiru]: container in use - call unmount on the previous app first."
35
- )
36
- }
31
+ if (__DEV__ && container.__kiruNode) {
32
+ return container.__kiruNode.app!
37
33
  }
34
+
38
35
  const rootNode = createRootNode(container)
39
36
  const id = appId++
37
+ const name = options?.name ?? `App-${id}`
38
+
40
39
  const app: AppHandle = {
41
40
  id,
42
- name: options?.name ?? `App-${id}`,
41
+ name,
43
42
  rootNode,
44
43
  render,
45
44
  unmount,
@@ -1,11 +1,11 @@
1
- import { node } from "../globals.js"
1
+ import { sideEffectsEnabled } from "../utils/index.js"
2
+ import { Signal } from "../signals/index.js"
2
3
  import { $STREAM_DATA } from "../constants.js"
4
+ import { node } from "../globals.js"
5
+ import { ref } from "../ref.js"
3
6
  import { requestUpdate } from "../scheduler.js"
4
- import { Signal } from "../signals/index.js"
5
- import { sideEffectsEnabled } from "../utils/index.js"
6
- import type { RecordHas } from "../types.utils"
7
7
  import { isStatefulPromise, StreamDataThrowValue } from "../statefulPromise.js"
8
- import { ref } from "../ref.js"
8
+ import type { RecordHas } from "../types.utils"
9
9
 
10
10
  export type Derivable =
11
11
  | Kiru.Signal<unknown>
@@ -67,6 +67,10 @@ type Derive = {
67
67
  ): (props: DeriveProps<T, U>) => JSX.Element
68
68
  }
69
69
 
70
+ /**
71
+ * Derives a value from a signal or stateful promise and renders a child component.
72
+ * @see https://kirujs.dev/docs/components/derive
73
+ */
70
74
  export const Derive: Derive = () => {
71
75
  return (props) => {
72
76
  const { from, children, fallback, mode } = props
@@ -7,6 +7,10 @@ export interface ErrorBoundaryProps {
7
7
  onError?: (error: Error) => void
8
8
  }
9
9
 
10
+ /**
11
+ * Catches errors in the children and renders a fallback component.
12
+ * @see https://kirujs.dev/docs/components/error-boundary
13
+ */
10
14
  export function ErrorBoundary({
11
15
  children,
12
16
  fallback,
@@ -1,6 +1,4 @@
1
- import { Signalable } from "../types.js"
2
- import type { Signal } from "./base.js"
3
- import { unwrap } from "./utils.js"
1
+ import { unwrap, type Signal } from "../signals/index.js"
4
2
 
5
3
  type InferArraySignalItemType<T extends Signal<any[]> | readonly unknown[]> =
6
4
  T extends Signal<infer V>
@@ -20,6 +18,11 @@ type ForProps<
20
18
  children: (value: U, index: number, array: U[]) => JSX.Element
21
19
  }
22
20
 
21
+ /**
22
+ * Renders a list of items. If the list a Signal, it creates an automatically-updating list with fine-grained reactivity.
23
+ * If the list is empty, the fallback is rendered.
24
+ * @see https://kirujs.dev/docs/components/for
25
+ */
23
26
  export function For<T extends Signal<any[]> | unknown[]>({
24
27
  each,
25
28
  fallback,
@@ -29,12 +32,3 @@ export function For<T extends Signal<any[]> | unknown[]>({
29
32
  if (items.length === 0) return fallback
30
33
  return items.map(children)
31
34
  }
32
-
33
- export interface ShowProps {
34
- children: JSX.Element
35
- when: Signalable<unknown>
36
- fallback?: JSX.Element
37
- }
38
- export function Show({ children, when, fallback }: ShowProps): JSX.Element {
39
- return !!unwrap(when, true) ? children : fallback
40
- }
@@ -1,5 +1,7 @@
1
1
  export { ErrorBoundary, type ErrorBoundaryProps } from "./errorBoundary.js"
2
2
  export * from "./derive.js"
3
+ export * from "./for.js"
3
4
  export * from "./lazy.js"
4
5
  export * from "./portal.js"
6
+ export * from "./show.js"
5
7
  export * from "./transition.js"
@@ -28,6 +28,10 @@ const lazyCache: Map<string, LazyState> = isBrowser
28
28
  (window.__KIRU_LAZY_CACHE ??= new Map<string, LazyState>())
29
29
  : new Map<string, LazyState>()
30
30
 
31
+ /**
32
+ * Lazy loads a component and renders it when it is ready.
33
+ * @see https://kirujs.dev/docs/components/lazy
34
+ */
31
35
  export function lazy<T extends LazyImportValue>(
32
36
  componentPromiseFn: () => Promise<T>
33
37
  ): Kiru.FC<LazyComponentProps<T>> {
@@ -9,6 +9,10 @@ interface PortalProps {
9
9
  container: HTMLElement | (() => HTMLElement)
10
10
  }
11
11
 
12
+ /**
13
+ * Escapes the application DOM tree and renders a child component in the given container.
14
+ * @see https://kirujs.dev/docs/components/portal
15
+ */
12
16
  export function Portal({ children, container }: PortalProps) {
13
17
  const vNode = node.current!
14
18
  if (!vNode.dom) {
@@ -0,0 +1,32 @@
1
+ import { unwrap } from "../signals/index.js"
2
+ import type { Truthy } from "../types.utils.js"
3
+ import type { Signalable } from "../types.js"
4
+
5
+ type ShowChildren<T> = (value: Truthy<T>) => JSX.Element
6
+
7
+ export interface ShowProps<T> {
8
+ children: ShowChildren<T> | Exclude<JSX.Element, ShowChildren<T>>
9
+ when: Signalable<T>
10
+ fallback?: JSX.Element
11
+ }
12
+
13
+ /**
14
+ * Conditionally renders a child component based on the 'when' prop.
15
+ * If the 'when' prop is truthy, the child component is rendered.
16
+ * If the 'when' prop is falsy, the fallback component is rendered.
17
+ * If the 'when' prop is a Signal, it creates an automatically-updating component with fine-grained reactivity.
18
+ * @see https://kirujs.dev/docs/components/show
19
+ */
20
+ export function Show<T>({
21
+ children,
22
+ when,
23
+ fallback,
24
+ }: ShowProps<T>): JSX.Element {
25
+ const value = unwrap(when, true)
26
+ if (!!value) {
27
+ return typeof children === "function"
28
+ ? children(value as Truthy<T>)
29
+ : children
30
+ }
31
+ return fallback
32
+ }
@@ -21,6 +21,10 @@ interface TransitionProps {
21
21
  onTransitionEnd?: (state: "entered" | "exited") => void
22
22
  }
23
23
 
24
+ /**
25
+ * Animates the DOM in a procedural/coroutine-like fashion. Useful for modals, drawers, dialogs and more.
26
+ * @see https://kirujs.dev/docs/components/transition
27
+ */
24
28
  export const Transition: Kiru.FC<TransitionProps> = (props) => {
25
29
  const tState = signal<TransitionState>(props.initialState || "exited")
26
30
  let timeoutRef: number | undefined
package/src/dom/nodes.ts CHANGED
@@ -5,6 +5,7 @@ import { hydrationStack } from "../hydration.js"
5
5
  import {
6
6
  getVNodeApp,
7
7
  isValidTextChild,
8
+ latest,
8
9
  registerVNodeCleanup,
9
10
  } from "../utils/index.js"
10
11
  import { KiruError } from "../error.js"
@@ -27,8 +28,8 @@ function createDom(vNode: DomVNode): SomeDom {
27
28
  t == "#text"
28
29
  ? createTextNode(vNode)
29
30
  : svgTags.has(t)
30
- ? document.createElementNS("http://www.w3.org/2000/svg", t)
31
- : document.createElement(t)
31
+ ? document.createElementNS("http://www.w3.org/2000/svg", t)
32
+ : document.createElement(t)
32
33
 
33
34
  return dom
34
35
  }
@@ -175,6 +176,7 @@ function getOrCreateTextNode(vNode: VNode): MaybeDom {
175
176
  }
176
177
 
177
178
  function subTextNode(vNode: VNode, textNode: Text, signal: Signal<string>) {
179
+ if (__DEV__) signal = latest(signal)
178
180
  const cleanup = signal.subscribe((value, prev) => {
179
181
  if (value === prev) return
180
182
  textNode.nodeValue = value
@@ -198,6 +200,7 @@ function createTextNode(vNode: VNode): Text {
198
200
  }
199
201
 
200
202
  function createSignalTextNode(vNode: VNode, nodeValue: Signal<string>): Text {
203
+ if (__DEV__) nodeValue = latest(nodeValue) as Signal<string>
201
204
  const value = nodeValue.peek() ?? ""
202
205
  const textNode = document.createTextNode(value)
203
206
  subTextNode(vNode, textNode, nodeValue)
package/src/dom/props.ts CHANGED
@@ -3,6 +3,7 @@ import {
3
3
  getVNodeApp,
4
4
  setRef,
5
5
  registerVNodeCleanup,
6
+ latest,
6
7
  } from "../utils/index.js"
7
8
  import { Signal } from "../signals/base.js"
8
9
  import { unwrap } from "../signals/utils.js"
@@ -47,9 +48,33 @@ function updateDomProps(vNode: DomVNode) {
47
48
  const nextProps = props ?? {}
48
49
 
49
50
  if (isTextNode(dom)) {
50
- const nextVal = nextProps.nodeValue
51
- if (!Signal.isSignal(nextVal) && dom.nodeValue !== nextVal) {
52
- dom.nodeValue = nextVal
51
+ let nextVal = nextProps.nodeValue
52
+ if (__DEV__ && Signal.isSignal(nextVal)) nextVal = latest(nextVal)
53
+
54
+ if (!Signal.isSignal(nextVal)) {
55
+ if (dom.nodeValue !== nextVal) {
56
+ dom.nodeValue = nextVal
57
+ }
58
+ return
59
+ }
60
+ if (prevProps.nodeValue === nextVal) return
61
+ dom.nodeValue = String(nextVal.peek() ?? "")
62
+ if (__DEV__) {
63
+ cleanups?.nodeValue?.()
64
+ registerVNodeCleanup(
65
+ vNode,
66
+ "nodeValue",
67
+ nextVal.subscribe((value, prev) => {
68
+ if (value === prev) return
69
+ dom.nodeValue = String(value ?? "")
70
+ if (isBrowser) {
71
+ window.__kiru?.profilingContext?.emit(
72
+ "signalTextUpdate",
73
+ getVNodeApp(vNode)!
74
+ )
75
+ }
76
+ })
77
+ )
53
78
  }
54
79
  return
55
80
  }
@@ -1,8 +1,12 @@
1
- import { node, setups } from "../globals.js"
2
- import { signal } from "../signals/index.js"
3
- import type { Signal } from "../signals/base.js"
1
+ import { signal, Signal } from "../signals/base.js"
4
2
  import { createVNodeId } from "../utils/vdom.js"
5
3
  import { __DEV__ } from "../env.js"
4
+ import { node, setups } from "../globals.js"
5
+ import {
6
+ tracking,
7
+ type TrackingStackObservations,
8
+ } from "../signals/tracking.js"
9
+ import { registerVNodeCleanup } from "../utils/index.js"
6
10
 
7
11
  export interface Setup<Props extends {}> {
8
12
  readonly derive: <T>(
@@ -36,7 +40,6 @@ export function setup<Props extends {}>(): Setup<Props> {
36
40
  setups.set(vNode, setup)
37
41
  return setup
38
42
  }
39
-
40
43
  function createSetup<Props extends {}>(vNode: Kiru.VNode): Setup<Props> {
41
44
  let id: Signal<string>
42
45
 
@@ -45,12 +48,89 @@ function createSetup<Props extends {}>(vNode: Kiru.VNode): Setup<Props> {
45
48
 
46
49
  let prevIndex = -1
47
50
 
48
- return {
49
- derive(selector) {
50
- const props = { ...vNode.props } as InferredProps
51
- const sig = signal(selector(props))
52
- propSyncs.push((p) => (sig.value = selector(p)))
53
- return sig
51
+ // Always points at latest props (updated in propSync) so selector and subs see current props
52
+ const currentProps = { current: { ...vNode.props } as InferredProps }
53
+ const deriveCleanups: Array<() => void> = []
54
+
55
+ type DeriveEntry = { run: () => void; accessedPaths: Set<string> }
56
+ const deriveEntries: DeriveEntry[] = []
57
+
58
+ propSyncs.push((p) => {
59
+ const old = currentProps.current as Record<string, unknown>
60
+ const skip = new Set<DeriveEntry>()
61
+ for (const entry of deriveEntries) {
62
+ if (
63
+ entry.accessedPaths.size > 0 &&
64
+ propsUnchangedAtPaths(
65
+ old,
66
+ p as Record<string, unknown>,
67
+ entry.accessedPaths
68
+ )
69
+ ) {
70
+ skip.add(entry)
71
+ }
72
+ }
73
+ currentProps.current = p
74
+ for (const entry of deriveEntries) {
75
+ if (!skip.has(entry)) entry.run()
76
+ }
77
+ })
78
+
79
+ registerVNodeCleanup(vNode, "vnode:setup", () => {
80
+ for (const cleanup of deriveCleanups) cleanup()
81
+ setups.delete(vNode)
82
+ })
83
+
84
+ const setupResult: Setup<Props> = {
85
+ derive<T>(
86
+ selector: (props: Props extends Kiru.FC<infer P> ? P : Props) => T
87
+ ) {
88
+ const resultSig = signal(undefined!) as Signal<T>
89
+ const unsubs = new Map<string, () => void>()
90
+ const accessedPaths = new Set<string>()
91
+
92
+ function sync() {
93
+ accessedPaths.clear()
94
+ const propsProxy = createPropsProxy(
95
+ currentProps.current as Record<string, unknown>,
96
+ accessedPaths
97
+ ) as InferredProps
98
+ const observations: TrackingStackObservations = new Map()
99
+ tracking.stack.push(observations)
100
+ const value = selector(propsProxy)
101
+ tracking.stack.pop()
102
+ // Always assign and notify so the component re-renders when the derived value changes
103
+ // (e.g. when parent passes a different signal ref like toggle switching count/double).
104
+ resultSig.value = value
105
+
106
+ for (const [sid, unsub] of unsubs) {
107
+ if (!observations.has(sid)) {
108
+ unsub()
109
+ unsubs.delete(sid)
110
+ }
111
+ }
112
+ for (const [sid, observedSig] of observations) {
113
+ if (!unsubs.has(sid)) {
114
+ try {
115
+ unsubs.set(sid, observedSig.subscribe(sync))
116
+ } catch {
117
+ // Signal may be disposed after HMR; skip subscribing
118
+ }
119
+ }
120
+ }
121
+ }
122
+
123
+ sync()
124
+ const entry: DeriveEntry = { run: sync, accessedPaths }
125
+ deriveEntries.push(entry)
126
+ deriveCleanups.push(() => {
127
+ unsubs.forEach((u) => u())
128
+ unsubs.clear()
129
+ const i = deriveEntries.indexOf(entry)
130
+ if (i !== -1) deriveEntries.splice(i, 1)
131
+ })
132
+
133
+ return resultSig
54
134
  },
55
135
  get id() {
56
136
  if (!id) {
@@ -67,4 +147,58 @@ function createSetup<Props extends {}>(vNode: Kiru.VNode): Setup<Props> {
67
147
  return id
68
148
  },
69
149
  }
150
+ return setupResult
151
+ }
152
+ function propsUnchangedAtPaths(
153
+ oldProps: Record<string, unknown>,
154
+ newProps: Record<string, unknown>,
155
+ paths: Set<string>
156
+ ): boolean {
157
+ for (const path of paths) {
158
+ if (!Object.is(getAtPath(oldProps, path), getAtPath(newProps, path))) {
159
+ return false
160
+ }
161
+ }
162
+ return true
163
+ }
164
+
165
+ function getAtPath(obj: Record<string, unknown>, path: string): unknown {
166
+ let cur: unknown = obj
167
+ for (const key of path.split(".")) {
168
+ if (cur == null || typeof cur !== "object") return undefined
169
+ cur = (cur as Record<string, unknown>)[key]
170
+ }
171
+ return cur
172
+ }
173
+
174
+ /**
175
+ * Proxy that records paths and wraps signals. We only add to accessedPaths when
176
+ * we hit a signal (the leaf we subscribe to), so propSync skip only compares
177
+ * signal refs. Container objects (e.g. "data") are new every render and would
178
+ * always fail the skip.
179
+ */
180
+ function createPropsProxy<P extends Record<string, unknown>>(
181
+ props: P,
182
+ accessedPaths: Set<string>,
183
+ pathPrefix?: string
184
+ ): P {
185
+ return new Proxy(props, {
186
+ get(holder, key: string) {
187
+ const path = pathPrefix ? `${pathPrefix}.${key}` : key
188
+ const v = holder[key]
189
+ if (Signal.isSignal(v)) {
190
+ accessedPaths.add(path) // only record path for signal leaves
191
+ return v
192
+ }
193
+ if (v !== null && typeof v === "object" && !Array.isArray(v)) {
194
+ return createPropsProxy(
195
+ v as Record<string, unknown>,
196
+ accessedPaths,
197
+ path
198
+ ) as P[keyof P]
199
+ }
200
+ accessedPaths.add(path) // primitive leaf
201
+ return v
202
+ },
203
+ }) as P
70
204
  }
package/src/scheduler.ts CHANGED
@@ -22,6 +22,7 @@ import {
22
22
  findParentErrorBoundary,
23
23
  call,
24
24
  propsChanged,
25
+ depthSort,
25
26
  } from "./utils/index.js"
26
27
  import { __DEV__ } from "./env.js"
27
28
  import { KiruError } from "./error.js"
@@ -129,8 +130,6 @@ function queueDelete(vNode: VNode): void {
129
130
  deletions.push(vNode)
130
131
  }
131
132
 
132
- const depthSort = (a: VNode, b: VNode): number => b.depth - a.depth
133
-
134
133
  let currentWorkRoot: VNode | null = null
135
134
 
136
135
  function doWork(): void {
@@ -402,7 +401,7 @@ function renderFunctionComponent(
402
401
 
403
402
  let newChild = latest(type)(props)
404
403
  if (typeof newChild === "function") {
405
- vNode.subs?.forEach(call) // unsub from signals observered during setup
404
+ vNode.subs?.forEach(call) // unsub from signals observed during setup
406
405
  vNode.render = newChild
407
406
  if (shouldSyncProps) {
408
407
  const p = { ...props }