kiru 1.2.0 → 1.3.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.
Files changed (123) 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 +8 -7
  5. package/dist/components/derive.d.ts.map +1 -1
  6. package/dist/components/derive.js +10 -11
  7. package/dist/components/derive.js.map +1 -1
  8. package/dist/components/errorBoundary.d.ts +2 -2
  9. package/dist/components/errorBoundary.d.ts.map +1 -1
  10. package/dist/components/errorBoundary.js +1 -1
  11. package/dist/components/errorBoundary.js.map +1 -1
  12. package/dist/components/for.d.ts +1 -1
  13. package/dist/components/for.d.ts.map +1 -1
  14. package/dist/components/for.js +1 -1
  15. package/dist/components/lazy.d.ts +1 -1
  16. package/dist/components/lazy.js +1 -1
  17. package/dist/components/portal.d.ts +1 -1
  18. package/dist/components/portal.js +1 -1
  19. package/dist/components/show.d.ts +1 -1
  20. package/dist/components/show.js +1 -1
  21. package/dist/components/transition.d.ts +1 -1
  22. package/dist/components/transition.d.ts.map +1 -1
  23. package/dist/components/transition.js +15 -12
  24. package/dist/components/transition.js.map +1 -1
  25. package/dist/dom/nodes.d.ts.map +1 -1
  26. package/dist/dom/nodes.js +5 -1
  27. package/dist/dom/nodes.js.map +1 -1
  28. package/dist/dom/props.d.ts.map +1 -1
  29. package/dist/dom/props.js +23 -4
  30. package/dist/dom/props.js.map +1 -1
  31. package/dist/error.d.ts +0 -2
  32. package/dist/error.d.ts.map +1 -1
  33. package/dist/error.js +11 -14
  34. package/dist/error.js.map +1 -1
  35. package/dist/headlessRender.d.ts +2 -2
  36. package/dist/headlessRender.d.ts.map +1 -1
  37. package/dist/headlessRender.js +2 -3
  38. package/dist/headlessRender.js.map +1 -1
  39. package/dist/hmr.d.ts +1 -0
  40. package/dist/hmr.d.ts.map +1 -1
  41. package/dist/hmr.js +6 -2
  42. package/dist/hmr.js.map +1 -1
  43. package/dist/hooks/setup.d.ts +1 -1
  44. package/dist/hooks/setup.d.ts.map +1 -1
  45. package/dist/hooks/setup.js +110 -6
  46. package/dist/hooks/setup.js.map +1 -1
  47. package/dist/index.d.ts +1 -1
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +1 -1
  50. package/dist/index.js.map +1 -1
  51. package/dist/renderToString.js +1 -1
  52. package/dist/renderToString.js.map +1 -1
  53. package/dist/resource.d.ts +19 -0
  54. package/dist/resource.d.ts.map +1 -0
  55. package/dist/resource.js +167 -0
  56. package/dist/resource.js.map +1 -0
  57. package/dist/scheduler.d.ts.map +1 -1
  58. package/dist/scheduler.js +15 -11
  59. package/dist/scheduler.js.map +1 -1
  60. package/dist/signals/base.d.ts +3 -5
  61. package/dist/signals/base.d.ts.map +1 -1
  62. package/dist/signals/base.js +24 -47
  63. package/dist/signals/base.js.map +1 -1
  64. package/dist/signals/computed.d.ts.map +1 -1
  65. package/dist/signals/computed.js +14 -12
  66. package/dist/signals/computed.js.map +1 -1
  67. package/dist/signals/globals.d.ts +0 -2
  68. package/dist/signals/globals.d.ts.map +1 -1
  69. package/dist/signals/globals.js +0 -1
  70. package/dist/signals/globals.js.map +1 -1
  71. package/dist/signals/types.d.ts +1 -1
  72. package/dist/signals/types.d.ts.map +1 -1
  73. package/dist/ssr/server.d.ts +4 -4
  74. package/dist/ssr/server.d.ts.map +1 -1
  75. package/dist/ssr/server.js +11 -7
  76. package/dist/ssr/server.js.map +1 -1
  77. package/dist/types.d.ts +1 -1
  78. package/dist/types.d.ts.map +1 -1
  79. package/dist/utils/index.d.ts +2 -1
  80. package/dist/utils/index.d.ts.map +1 -1
  81. package/dist/utils/index.js +2 -1
  82. package/dist/utils/index.js.map +1 -1
  83. package/dist/utils/stream.d.ts +12 -0
  84. package/dist/utils/stream.d.ts.map +1 -0
  85. package/dist/utils/stream.js +8 -0
  86. package/dist/utils/stream.js.map +1 -0
  87. package/dist/utils/vdom.d.ts +2 -1
  88. package/dist/utils/vdom.d.ts.map +1 -1
  89. package/dist/utils/vdom.js +4 -1
  90. package/dist/utils/vdom.js.map +1 -1
  91. package/package.json +1 -13
  92. package/src/appHandle.ts +6 -7
  93. package/src/components/derive.ts +34 -40
  94. package/src/components/errorBoundary.ts +4 -2
  95. package/src/components/for.ts +34 -34
  96. package/src/components/lazy.ts +1 -1
  97. package/src/components/portal.ts +1 -1
  98. package/src/components/show.ts +32 -32
  99. package/src/components/transition.ts +16 -11
  100. package/src/dom/nodes.ts +5 -2
  101. package/src/dom/props.ts +28 -3
  102. package/src/error.ts +11 -19
  103. package/src/headlessRender.ts +5 -5
  104. package/src/hmr.ts +13 -3
  105. package/src/hooks/setup.ts +143 -9
  106. package/src/index.ts +1 -1
  107. package/src/renderToString.ts +1 -1
  108. package/src/resource.ts +207 -0
  109. package/src/scheduler.ts +16 -11
  110. package/src/signals/base.ts +29 -52
  111. package/src/signals/computed.ts +13 -9
  112. package/src/signals/globals.ts +0 -3
  113. package/src/signals/types.ts +1 -1
  114. package/src/ssr/server.ts +18 -11
  115. package/src/types.ts +4 -4
  116. package/src/utils/index.ts +2 -1
  117. package/src/utils/stream.ts +17 -0
  118. package/src/utils/vdom.ts +5 -0
  119. package/dist/statefulPromise.d.ts +0 -22
  120. package/dist/statefulPromise.d.ts.map +0 -1
  121. package/dist/statefulPromise.js +0 -94
  122. package/dist/statefulPromise.js.map +0 -1
  123. package/src/statefulPromise.ts +0 -136
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/utils/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,MAAM,WAAW,oBAAoB;IACnC,CAAC,YAAY,CAAC,EAAE;QACd,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;QACtB,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAA;KACtC,CAAA;CACF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,oBAAoB,CAE/B"}
@@ -0,0 +1,8 @@
1
+ import { $STREAM_DATA } from "../constants.js";
2
+ /**
3
+ * Returns true if the value is a {@link StreamDataThrowValue}
4
+ */
5
+ export function isStreamDataThrowValue(value) {
6
+ return typeof value === "object" && !!value && $STREAM_DATA in value;
7
+ }
8
+ //# sourceMappingURL=stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/utils/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAS9C;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAc;IAEd,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,IAAI,YAAY,IAAI,KAAK,CAAA;AACtE,CAAC"}
@@ -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":"AAAA,OAAO,EAEL,SAAS,EAIT,QAAQ,EACT,MAAM,iBAAiB,CAAA;AAIxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,EACL,YAAY,EACZ,cAAc,EACd,SAAS,EACT,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,MAAM,EACN,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,WAAW,EACX,cAAc,EACd,aAAa,EACb,UAAU,EACV,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,YAAY,GACb,CAAA;AAED,iBAAS,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAUrD;AAED,iBAAS,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAElD;AAED,iBAAS,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,IAAI,CAAC,KAAK,CAEpD;AAED,iBAAS,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,IAAI,CAAC,OAAO,CAExD;AAED,iBAAS,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,GAAG,MAAM,CAM3E;AAED,iBAAS,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,YAAY,CAEzE;AAED,iBAAS,UAAU,CACjB,KAAK,EAAE,IAAI,CAAC,KAAK,GAChB,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG;IAAE,IAAI,EAAE,OAAO,SAAS,CAAA;CAAE,CAElD;AAED,iBAAS,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAM1C;AAED,iBAAS,iBAAiB,CACxB,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG;IAAE,IAAI,EAAE,OAAO,QAAQ,CAAA;CAAE,CAEjD;AAED,iBAAS,eAAe,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAE5C;AAED,iBAAS,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,SAAS,GAAG,IAAI,CAUxD;AAED,iBAAS,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAI/C;AAED,iBAAS,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAaxE;AAED,iBAAS,aAAa,CACpB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,KAAK,IAAI,GAC/B,IAAI,CAUN;AAED,iBAAS,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,KAAK,OAAO,qBAO3E;AAED,iBAAS,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,iBAAiB,GAAG,IAAI,CAK5E;AAED,iBAAS,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,QAgBjD;AAED,iBAAS,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,GAAG,CAAC,UAAU,GAAG,IAAI,CAMlE;AAED,iBAAS,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAShD;AAED,iBAAS,oBAAoB,CAC3B,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,IAAI,QAGrB;AAED,iBAAS,YAAY,CACnB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAC7B,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAC7B,UAAU,CAAC,EAAE,MAAM,EAAE,WAUtB"}
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.2.0",
3
+ "version": "1.3.0",
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",
@@ -10,14 +10,6 @@
10
10
  "types": "./dist/index.d.ts",
11
11
  "default": "./dist/index.js"
12
12
  },
13
- "./form": {
14
- "types": "./dist/form/index.d.ts",
15
- "default": "./dist/form/index.js"
16
- },
17
- "./swr": {
18
- "types": "./dist/swr.d.ts",
19
- "default": "./dist/swr.js"
20
- },
21
13
  "./utils": {
22
14
  "types": "./dist/utils/index.d.ts",
23
15
  "default": "./dist/utils/index.js"
@@ -26,10 +18,6 @@
26
18
  "types": "./dist/router/index.d.ts",
27
19
  "default": "./dist/router/index.js"
28
20
  },
29
- "./router/dev": {
30
- "types": "./dist/router/dev/index.d.ts",
31
- "default": "./dist/router/dev/index.js"
32
- },
33
21
  "./router/client": {
34
22
  "types": "./dist/router/client/index.d.ts",
35
23
  "default": "./dist/router/client/index.js"
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,32 +1,28 @@
1
- import { sideEffectsEnabled } from "../utils/index.js"
1
+ import {
2
+ sideEffectsEnabled,
3
+ type StreamDataThrowValue,
4
+ } from "../utils/index.js"
2
5
  import { Signal } from "../signals/index.js"
3
6
  import { $STREAM_DATA } from "../constants.js"
4
7
  import { node } from "../globals.js"
5
- import { ref } from "../ref.js"
6
8
  import { requestUpdate } from "../scheduler.js"
7
- import { isStatefulPromise, StreamDataThrowValue } from "../statefulPromise.js"
9
+ import { isResource, Resource } from "../resource.js"
8
10
  import type { RecordHas } from "../types.utils"
9
11
 
10
12
  export type Derivable =
11
13
  | Kiru.Signal<unknown>
12
- | Kiru.StatefulPromiseBase<unknown>
13
- | Record<string, Kiru.Signal<unknown> | Kiru.StatefulPromiseBase<unknown>>
14
+ | Record<string, Kiru.Signal<unknown>>
14
15
 
15
- type InnerOf<T> = T extends Kiru.Signal<infer V>
16
- ? V
17
- : T extends Kiru.StatefulPromiseBase<infer P>
18
- ? P
19
- : never
16
+ type InnerOf<T> = T extends Kiru.Signal<infer V> ? V : never
20
17
 
21
- type UnwrapDerive<T extends Derivable> = T extends
22
- | Kiru.Signal<unknown>
23
- | Kiru.StatefulPromiseBase<any>
24
- ? InnerOf<T>
25
- : { [K in keyof T]: InnerOf<T[K]> }
18
+ type UnwrapDerivable<T extends Derivable> =
19
+ T extends Kiru.Signal<unknown>
20
+ ? InnerOf<T>
21
+ : { [K in keyof T]: InnerOf<T[K]> }
26
22
 
27
- type RecordHasPromise<T extends Record<string, any>> = RecordHas<
23
+ type RecordHasResource<T extends Record<string, any>> = RecordHas<
28
24
  T,
29
- Kiru.StatefulPromiseBase<any>
25
+ Resource<any>
30
26
  >
31
27
 
32
28
  type ChildFn<T> = (value: T) => JSX.Children
@@ -36,28 +32,28 @@ export type DeriveFallbackMode = "swr" | "fallback"
36
32
 
37
33
  export interface DeriveProps<
38
34
  T extends Derivable,
39
- Mode extends DeriveFallbackMode = "fallback"
35
+ Mode extends DeriveFallbackMode = "fallback",
40
36
  > {
41
37
  from: T
42
38
  mode?: Mode
43
- children: T extends Kiru.StatefulPromiseBase<infer U>
39
+ children: T extends Resource<infer U>
44
40
  ? Mode extends "swr"
45
41
  ? ChildFnWithStale<U>
46
42
  : ChildFn<U>
47
43
  : T extends Record<string, any>
48
- ? RecordHasPromise<T> extends true
49
- ? Mode extends "swr"
50
- ? ChildFnWithStale<UnwrapDerive<T>>
51
- : ChildFn<UnwrapDerive<T>>
52
- : ChildFn<UnwrapDerive<T>>
53
- : ChildFn<UnwrapDerive<T>>
54
- fallback?: T extends Kiru.StatefulPromiseBase<any>
44
+ ? RecordHasResource<T> extends true
45
+ ? Mode extends "swr"
46
+ ? ChildFnWithStale<UnwrapDerivable<T>>
47
+ : ChildFn<UnwrapDerivable<T>>
48
+ : ChildFn<UnwrapDerivable<T>>
49
+ : ChildFn<UnwrapDerivable<T>>
50
+ fallback?: T extends Resource<any>
55
51
  ? JSX.Element
56
52
  : T extends Record<string, any>
57
- ? RecordHasPromise<T> extends true
58
- ? JSX.Element
53
+ ? RecordHasResource<T> extends true
54
+ ? JSX.Element
55
+ : never
59
56
  : never
60
- : never
61
57
  }
62
58
 
63
59
  type Derive = {
@@ -68,18 +64,18 @@ type Derive = {
68
64
 
69
65
  /**
70
66
  * Derives a value from a signal or stateful promise and renders a child component.
71
- * @see https://kirujs.dev/docs/api/components/derive
67
+ * @see https://kirujs.dev/docs/components/derive
72
68
  */
73
69
  export const Derive: Derive = () => {
70
+ let prevSuccess: unknown
74
71
  return (props) => {
75
72
  const { from, children, fallback, mode } = props
76
- const prevSuccess = ref<unknown>(null)
77
73
 
78
- const promises = new Set<Kiru.StatefulPromiseBase<any>>()
74
+ const promises = new Set<Kiru.StatefulPromise<any>>()
79
75
  let value: unknown
80
76
 
81
- if (isStatefulPromise(from)) {
82
- promises.add(from)
77
+ if (isResource(from)) {
78
+ promises.add(from.promise)
83
79
  value = from.value as unknown
84
80
  } else if (Signal.isSignal(from)) {
85
81
  value = from.value as unknown
@@ -87,10 +83,8 @@ export const Derive: Derive = () => {
87
83
  const out: Record<string, any> = {}
88
84
  for (const key in from) {
89
85
  const v = from[key]
90
- if (isStatefulPromise(v)) promises.add(v)
91
- out[key] = (
92
- v as Signal<unknown> | Kiru.StatefulPromiseBase<unknown>
93
- ).value
86
+ if (isResource(v)) promises.add(v.promise)
87
+ out[key] = (v as Signal<unknown> | Kiru.StatefulPromise<unknown>).value
94
88
  }
95
89
  value = out as unknown
96
90
  }
@@ -115,7 +109,7 @@ export const Derive: Derive = () => {
115
109
  const nodeRef = node.current!
116
110
  Promise.allSettled(promises).then(() => requestUpdate(nodeRef))
117
111
 
118
- const prev = prevSuccess.current!
112
+ const prev = prevSuccess
119
113
  if (mode !== "fallback" && prev) {
120
114
  return (children as ChildFnWithStale<unknown>)(prev, true)
121
115
  }
@@ -123,7 +117,7 @@ export const Derive: Derive = () => {
123
117
  }
124
118
  }
125
119
 
126
- prevSuccess.current = value
120
+ prevSuccess = value
127
121
  return (children as ChildFnWithStale<unknown>)(value, false)
128
122
  }
129
123
  }
@@ -3,13 +3,15 @@ import { createElement } from "../index.js"
3
3
 
4
4
  export interface ErrorBoundaryProps {
5
5
  children?: JSX.Children
6
- fallback?: JSX.Element | ((error: Error) => JSX.Element)
6
+ fallback?:
7
+ | Exclude<JSX.Element, (props: any) => JSX.Element>
8
+ | ((error: Error) => JSX.Element)
7
9
  onError?: (error: Error) => void
8
10
  }
9
11
 
10
12
  /**
11
13
  * Catches errors in the children and renders a fallback component.
12
- * @see https://kirujs.dev/docs/api/components/error-boundary
14
+ * @see https://kirujs.dev/docs/components/error-boundary
13
15
  */
14
16
  export function ErrorBoundary({
15
17
  children,
@@ -1,34 +1,34 @@
1
- import { unwrap, type Signal } from "../signals/index.js"
2
-
3
- type InferArraySignalItemType<T extends Signal<any[]> | readonly unknown[]> =
4
- T extends Signal<infer V>
5
- ? V extends Array<infer W>
6
- ? W
7
- : never
8
- : T extends unknown[]
9
- ? T[number]
10
- : never
11
-
12
- type ForProps<
13
- T extends Signal<any[]> | readonly unknown[],
14
- U = InferArraySignalItemType<T>
15
- > = {
16
- each: T
17
- fallback?: JSX.Element
18
- children: (value: U, index: number, array: U[]) => JSX.Element
19
- }
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/api/components/for
25
- */
26
- export function For<T extends Signal<any[]> | unknown[]>({
27
- each,
28
- fallback,
29
- children,
30
- }: ForProps<T>) {
31
- const items = unwrap(each, true)
32
- if (items.length === 0) return fallback
33
- return items.map(children)
34
- }
1
+ import { unwrap, type Signal } from "../signals/index.js"
2
+
3
+ type InferArraySignalItemType<T extends Signal<any[]> | readonly unknown[]> =
4
+ T extends Signal<infer V>
5
+ ? V extends Array<infer W>
6
+ ? W
7
+ : never
8
+ : T extends unknown[]
9
+ ? T[number]
10
+ : never
11
+
12
+ type ForProps<
13
+ T extends Signal<any[]> | readonly unknown[],
14
+ U = InferArraySignalItemType<T>,
15
+ > = {
16
+ each: T
17
+ fallback?: JSX.Element
18
+ children: (value: U, index: number, array: U[]) => JSX.Element
19
+ }
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
+ */
26
+ export function For<T extends Signal<any[]> | unknown[]>({
27
+ each,
28
+ fallback,
29
+ children,
30
+ }: ForProps<T>) {
31
+ const items = unwrap(each, true)
32
+ if (items.length === 0) return fallback
33
+ return items.map(children)
34
+ }
@@ -30,7 +30,7 @@ const lazyCache: Map<string, LazyState> = isBrowser
30
30
 
31
31
  /**
32
32
  * Lazy loads a component and renders it when it is ready.
33
- * @see https://kirujs.dev/docs/api/components/lazy
33
+ * @see https://kirujs.dev/docs/components/lazy
34
34
  */
35
35
  export function lazy<T extends LazyImportValue>(
36
36
  componentPromiseFn: () => Promise<T>
@@ -11,7 +11,7 @@ interface PortalProps {
11
11
 
12
12
  /**
13
13
  * Escapes the application DOM tree and renders a child component in the given container.
14
- * @see https://kirujs.dev/docs/api/components/portal
14
+ * @see https://kirujs.dev/docs/components/portal
15
15
  */
16
16
  export function Portal({ children, container }: PortalProps) {
17
17
  const vNode = node.current!
@@ -1,32 +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/api/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
- }
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
+ }
@@ -1,7 +1,7 @@
1
1
  import { onCleanup } from "../hooks/onCleanup.js"
2
- import { signal, Signal } from "../signals/base.js"
3
- import { effect } from "../signals/effect.js"
2
+ import { Signal } from "../signals/base.js"
4
3
  import { unwrap } from "../signals/utils.js"
4
+ import { setup } from "../hooks/setup.js"
5
5
 
6
6
  export type TransitionState = "entering" | "entered" | "exiting" | "exited"
7
7
  interface TransitionProps {
@@ -23,29 +23,32 @@ interface TransitionProps {
23
23
 
24
24
  /**
25
25
  * Animates the DOM in a procedural/coroutine-like fashion. Useful for modals, drawers, dialogs and more.
26
- * @see https://kirujs.dev/docs/api/components/transition
26
+ * @see https://kirujs.dev/docs/components/transition
27
27
  */
28
28
  export const Transition: Kiru.FC<TransitionProps> = (props) => {
29
- const tState = signal<TransitionState>(props.initialState || "exited")
29
+ const $ = setup<typeof Transition>()
30
+ const tState = $.derive<TransitionState>((p) => p.initialState || "exited")
31
+ const inState = $.derive((p) => unwrap(p.in, true))
30
32
  let timeoutRef: number | undefined
33
+ let onTransitionEnd = props.onTransitionEnd
34
+ let duration = props.duration
31
35
 
32
36
  const setTransitionState = (transitionState: TransitionState) => {
33
37
  clearTimeout(timeoutRef)
34
38
  tState.value = transitionState
35
39
  if (transitionState === "entered" || transitionState === "exited") {
36
- if (props.onTransitionEnd) props.onTransitionEnd(transitionState)
40
+ onTransitionEnd?.(transitionState)
37
41
  }
38
42
  }
39
43
 
40
44
  const queueStateChange = (transitionState: "entered" | "exited") => {
41
45
  timeoutRef = window.setTimeout(
42
46
  () => setTransitionState(transitionState),
43
- getTiming(transitionState, props.duration)
47
+ getTiming(transitionState, duration)
44
48
  )
45
49
  }
46
50
 
47
- effect(() => {
48
- const newIn = unwrap(props.in, true)
51
+ const unsub = inState.subscribe((newIn) => {
49
52
  const current = tState.peek()
50
53
  if (newIn && current !== "entered" && current !== "entering") {
51
54
  setTransitionState("entering")
@@ -56,10 +59,12 @@ export const Transition: Kiru.FC<TransitionProps> = (props) => {
56
59
  }
57
60
  })
58
61
 
59
- onCleanup(() => clearTimeout(timeoutRef))
62
+ onCleanup(() => (unsub(), clearTimeout(timeoutRef)))
60
63
 
61
- return (newProps) => {
62
- return newProps.element(tState.value)
64
+ return (props) => {
65
+ duration = props.duration
66
+ onTransitionEnd = props.onTransitionEnd
67
+ return props.element(tState.value)
63
68
  }
64
69
  }
65
70
 
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
  }