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.
Files changed (381) hide show
  1. package/dist/{appContext.d.ts → appHandle.d.ts} +4 -4
  2. package/dist/appHandle.d.ts.map +1 -0
  3. package/dist/{appContext.js → appHandle.js} +13 -10
  4. package/dist/appHandle.js.map +1 -0
  5. package/dist/components/derive.d.ts +10 -8
  6. package/dist/components/derive.d.ts.map +1 -1
  7. package/dist/components/derive.js +50 -47
  8. package/dist/components/derive.js.map +1 -1
  9. package/dist/components/index.d.ts +0 -1
  10. package/dist/components/index.d.ts.map +1 -1
  11. package/dist/components/index.js +0 -1
  12. package/dist/components/index.js.map +1 -1
  13. package/dist/components/lazy.d.ts.map +1 -1
  14. package/dist/components/lazy.js +7 -6
  15. package/dist/components/lazy.js.map +1 -1
  16. package/dist/components/portal.d.ts.map +1 -1
  17. package/dist/components/portal.js +2 -3
  18. package/dist/components/portal.js.map +1 -1
  19. package/dist/components/transition.d.ts +3 -2
  20. package/dist/components/transition.d.ts.map +1 -1
  21. package/dist/components/transition.js +29 -30
  22. package/dist/components/transition.js.map +1 -1
  23. package/dist/constants.d.ts +1 -5
  24. package/dist/constants.d.ts.map +1 -1
  25. package/dist/constants.js +1 -5
  26. package/dist/constants.js.map +1 -1
  27. package/dist/context.d.ts +1 -1
  28. package/dist/context.d.ts.map +1 -1
  29. package/dist/context.js +25 -19
  30. package/dist/context.js.map +1 -1
  31. package/dist/devtools.d.ts +7 -0
  32. package/dist/devtools.d.ts.map +1 -0
  33. package/dist/devtools.js +19 -0
  34. package/dist/devtools.js.map +1 -0
  35. package/dist/dom/commit.d.ts +5 -0
  36. package/dist/dom/commit.d.ts.map +1 -0
  37. package/dist/dom/commit.js +94 -0
  38. package/dist/dom/commit.js.map +1 -0
  39. package/dist/dom/focus.d.ts +4 -0
  40. package/dist/dom/focus.d.ts.map +1 -0
  41. package/dist/dom/focus.js +32 -0
  42. package/dist/dom/focus.js.map +1 -0
  43. package/dist/dom/index.d.ts +4 -0
  44. package/dist/dom/index.d.ts.map +1 -0
  45. package/dist/dom/index.js +4 -0
  46. package/dist/dom/index.js.map +1 -0
  47. package/dist/dom/nodes.d.ts +12 -0
  48. package/dist/dom/nodes.d.ts.map +1 -0
  49. package/dist/dom/nodes.js +165 -0
  50. package/dist/dom/nodes.js.map +1 -0
  51. package/dist/dom/props.d.ts +8 -0
  52. package/dist/dom/props.d.ts.map +1 -0
  53. package/dist/dom/props.js +675 -0
  54. package/dist/dom/props.js.map +1 -0
  55. package/dist/env.d.ts +2 -0
  56. package/dist/env.d.ts.map +1 -1
  57. package/dist/env.js +2 -0
  58. package/dist/env.js.map +1 -1
  59. package/dist/globalContext.d.ts +17 -23
  60. package/dist/globalContext.d.ts.map +1 -1
  61. package/dist/globalContext.js +31 -53
  62. package/dist/globalContext.js.map +1 -1
  63. package/dist/globals.d.ts +21 -4
  64. package/dist/globals.d.ts.map +1 -1
  65. package/dist/globals.js +22 -5
  66. package/dist/globals.js.map +1 -1
  67. package/dist/headlessRender.d.ts +6 -0
  68. package/dist/headlessRender.d.ts.map +1 -0
  69. package/dist/{recursiveRender.js → headlessRender.js} +17 -16
  70. package/dist/headlessRender.js.map +1 -0
  71. package/dist/hmr.d.ts +21 -8
  72. package/dist/hmr.d.ts.map +1 -1
  73. package/dist/hmr.js +58 -37
  74. package/dist/hmr.js.map +1 -1
  75. package/dist/hooks/index.d.ts +4 -14
  76. package/dist/hooks/index.d.ts.map +1 -1
  77. package/dist/hooks/index.js +4 -14
  78. package/dist/hooks/index.js.map +1 -1
  79. package/dist/hooks/onBeforeMount.d.ts +9 -0
  80. package/dist/hooks/onBeforeMount.d.ts.map +1 -0
  81. package/dist/hooks/onBeforeMount.js +19 -0
  82. package/dist/hooks/onBeforeMount.js.map +1 -0
  83. package/dist/hooks/onCleanup.d.ts +8 -0
  84. package/dist/hooks/onCleanup.d.ts.map +1 -0
  85. package/dist/hooks/onCleanup.js +18 -0
  86. package/dist/hooks/onCleanup.js.map +1 -0
  87. package/dist/hooks/onMount.d.ts +9 -0
  88. package/dist/hooks/onMount.d.ts.map +1 -0
  89. package/dist/hooks/onMount.js +19 -0
  90. package/dist/hooks/onMount.js.map +1 -0
  91. package/dist/hooks/setup.d.ts +13 -0
  92. package/dist/hooks/setup.d.ts.map +1 -0
  93. package/dist/hooks/setup.js +54 -0
  94. package/dist/hooks/setup.js.map +1 -0
  95. package/dist/hooks/utils.d.ts +2 -63
  96. package/dist/hooks/utils.d.ts.map +1 -1
  97. package/dist/hooks/utils.js +17 -144
  98. package/dist/hooks/utils.js.map +1 -1
  99. package/dist/index.d.ts +9 -4
  100. package/dist/index.d.ts.map +1 -1
  101. package/dist/index.js +11 -8
  102. package/dist/index.js.map +1 -1
  103. package/dist/profiling.d.ts +15 -14
  104. package/dist/profiling.d.ts.map +1 -1
  105. package/dist/profiling.js +9 -4
  106. package/dist/profiling.js.map +1 -1
  107. package/dist/reconciler.d.ts.map +1 -1
  108. package/dist/reconciler.js +15 -28
  109. package/dist/reconciler.js.map +1 -1
  110. package/dist/ref.d.ts +4 -0
  111. package/dist/ref.d.ts.map +1 -0
  112. package/dist/ref.js +4 -0
  113. package/dist/ref.js.map +1 -0
  114. package/dist/renderToString.js +1 -1
  115. package/dist/renderToString.js.map +1 -1
  116. package/dist/router/context.d.ts.map +1 -1
  117. package/dist/router/context.js +1 -2
  118. package/dist/router/context.js.map +1 -1
  119. package/dist/router/fileRouter.d.ts +1 -1
  120. package/dist/router/fileRouter.d.ts.map +1 -1
  121. package/dist/router/fileRouter.js +17 -11
  122. package/dist/router/fileRouter.js.map +1 -1
  123. package/dist/router/fileRouterController.d.ts.map +1 -1
  124. package/dist/router/fileRouterController.js +68 -55
  125. package/dist/router/fileRouterController.js.map +1 -1
  126. package/dist/router/head.js +2 -2
  127. package/dist/router/head.js.map +1 -1
  128. package/dist/router/link.d.ts.map +1 -1
  129. package/dist/router/link.js +19 -23
  130. package/dist/router/link.js.map +1 -1
  131. package/dist/router/pageConfig.js +2 -2
  132. package/dist/router/pageConfig.js.map +1 -1
  133. package/dist/router/server/index.d.ts.map +1 -1
  134. package/dist/router/server/index.js +14 -11
  135. package/dist/router/server/index.js.map +1 -1
  136. package/dist/router/types.d.ts +11 -6
  137. package/dist/router/types.d.ts.map +1 -1
  138. package/dist/scheduler.d.ts +1 -0
  139. package/dist/scheduler.d.ts.map +1 -1
  140. package/dist/scheduler.js +91 -73
  141. package/dist/scheduler.js.map +1 -1
  142. package/dist/signals/base.d.ts +0 -1
  143. package/dist/signals/base.d.ts.map +1 -1
  144. package/dist/signals/base.js +14 -37
  145. package/dist/signals/base.js.map +1 -1
  146. package/dist/signals/computed.d.ts +0 -2
  147. package/dist/signals/computed.d.ts.map +1 -1
  148. package/dist/signals/computed.js +1 -40
  149. package/dist/signals/computed.js.map +1 -1
  150. package/dist/signals/effect.d.ts +15 -14
  151. package/dist/signals/effect.d.ts.map +1 -1
  152. package/dist/signals/effect.js +65 -37
  153. package/dist/signals/effect.js.map +1 -1
  154. package/dist/signals/globals.d.ts +0 -5
  155. package/dist/signals/globals.d.ts.map +1 -1
  156. package/dist/signals/globals.js +0 -6
  157. package/dist/signals/globals.js.map +1 -1
  158. package/dist/signals/index.d.ts +4 -4
  159. package/dist/signals/index.d.ts.map +1 -1
  160. package/dist/signals/index.js +4 -4
  161. package/dist/signals/index.js.map +1 -1
  162. package/dist/signals/{for.d.ts → jsx.d.ts} +8 -1
  163. package/dist/signals/jsx.d.ts.map +1 -0
  164. package/dist/signals/{for.js → jsx.js} +4 -1
  165. package/dist/signals/jsx.js.map +1 -0
  166. package/dist/signals/tracking.d.ts +24 -0
  167. package/dist/signals/tracking.d.ts.map +1 -0
  168. package/dist/signals/tracking.js +51 -0
  169. package/dist/signals/tracking.js.map +1 -0
  170. package/dist/signals/types.d.ts +1 -1
  171. package/dist/signals/types.d.ts.map +1 -1
  172. package/dist/signals/utils.d.ts +2 -1
  173. package/dist/signals/utils.d.ts.map +1 -1
  174. package/dist/signals/utils.js +9 -2
  175. package/dist/signals/utils.js.map +1 -1
  176. package/dist/ssr/client.d.ts +3 -3
  177. package/dist/ssr/client.d.ts.map +1 -1
  178. package/dist/ssr/client.js.map +1 -1
  179. package/dist/ssr/server.js +1 -1
  180. package/dist/ssr/server.js.map +1 -1
  181. package/dist/statefulPromise.d.ts +22 -0
  182. package/dist/statefulPromise.d.ts.map +1 -0
  183. package/dist/statefulPromise.js +94 -0
  184. package/dist/statefulPromise.js.map +1 -0
  185. package/dist/types.d.ts +40 -50
  186. package/dist/types.d.ts.map +1 -1
  187. package/dist/types.dom.d.ts +5 -8
  188. package/dist/types.dom.d.ts.map +1 -1
  189. package/dist/types.utils.d.ts +3 -4
  190. package/dist/types.utils.d.ts.map +1 -1
  191. package/dist/utils/format.d.ts.map +1 -1
  192. package/dist/utils/format.js +4 -1
  193. package/dist/utils/format.js.map +1 -1
  194. package/dist/utils/vdom.d.ts +8 -6
  195. package/dist/utils/vdom.d.ts.map +1 -1
  196. package/dist/utils/vdom.js +32 -9
  197. package/dist/utils/vdom.js.map +1 -1
  198. package/dist/viewTransitions.d.ts +7 -0
  199. package/dist/viewTransitions.d.ts.map +1 -0
  200. package/dist/viewTransitions.js +72 -0
  201. package/dist/viewTransitions.js.map +1 -0
  202. package/package.json +1 -1
  203. package/src/{appContext.ts → appHandle.ts} +22 -17
  204. package/src/components/derive.ts +74 -69
  205. package/src/components/index.ts +0 -1
  206. package/src/components/lazy.ts +10 -10
  207. package/src/components/portal.ts +2 -3
  208. package/src/components/transition.ts +33 -39
  209. package/src/constants.ts +0 -8
  210. package/src/context.ts +30 -23
  211. package/src/devtools.ts +18 -0
  212. package/src/dom/commit.ts +133 -0
  213. package/src/dom/focus.ts +34 -0
  214. package/src/dom/index.ts +3 -0
  215. package/src/dom/nodes.ts +204 -0
  216. package/src/dom/props.ts +818 -0
  217. package/src/env.ts +3 -0
  218. package/src/globalContext.ts +51 -85
  219. package/src/globals.ts +25 -6
  220. package/src/{recursiveRender.ts → headlessRender.ts} +18 -18
  221. package/src/hmr.ts +60 -42
  222. package/src/hooks/index.ts +4 -14
  223. package/src/hooks/onBeforeMount.ts +18 -0
  224. package/src/hooks/onCleanup.ts +21 -0
  225. package/src/hooks/onMount.ts +18 -0
  226. package/src/hooks/setup.ts +70 -0
  227. package/src/hooks/utils.ts +24 -239
  228. package/src/index.ts +17 -7
  229. package/src/profiling.ts +22 -20
  230. package/src/reconciler.ts +21 -33
  231. package/src/ref.ts +6 -0
  232. package/src/renderToString.ts +1 -1
  233. package/src/router/context.ts +1 -2
  234. package/src/router/fileRouter.ts +23 -13
  235. package/src/router/fileRouterController.ts +72 -64
  236. package/src/router/head.ts +2 -2
  237. package/src/router/link.ts +11 -25
  238. package/src/router/pageConfig.ts +2 -2
  239. package/src/router/server/index.ts +24 -13
  240. package/src/router/types.ts +15 -8
  241. package/src/scheduler.ts +116 -98
  242. package/src/signals/base.ts +13 -42
  243. package/src/signals/computed.ts +1 -62
  244. package/src/signals/effect.ts +93 -48
  245. package/src/signals/globals.ts +0 -7
  246. package/src/signals/index.ts +4 -4
  247. package/src/signals/{for.ts → jsx.ts} +10 -0
  248. package/src/signals/tracking.ts +70 -0
  249. package/src/signals/types.ts +1 -1
  250. package/src/signals/utils.ts +9 -1
  251. package/src/ssr/client.ts +4 -4
  252. package/src/ssr/server.ts +2 -2
  253. package/src/statefulPromise.ts +136 -0
  254. package/src/types.dom.ts +6 -10
  255. package/src/types.ts +51 -60
  256. package/src/types.utils.ts +3 -4
  257. package/src/utils/format.ts +3 -1
  258. package/src/utils/vdom.ts +44 -15
  259. package/src/viewTransitions.ts +89 -0
  260. package/dist/appContext.d.ts.map +0 -1
  261. package/dist/appContext.js.map +0 -1
  262. package/dist/components/memo.d.ts +0 -10
  263. package/dist/components/memo.d.ts.map +0 -1
  264. package/dist/components/memo.js +0 -23
  265. package/dist/components/memo.js.map +0 -1
  266. package/dist/dom.d.ts +0 -10
  267. package/dist/dom.d.ts.map +0 -1
  268. package/dist/dom.js +0 -634
  269. package/dist/dom.js.map +0 -1
  270. package/dist/form/index.d.ts +0 -4
  271. package/dist/form/index.d.ts.map +0 -1
  272. package/dist/form/index.js +0 -518
  273. package/dist/form/index.js.map +0 -1
  274. package/dist/form/types.d.ts +0 -122
  275. package/dist/form/types.d.ts.map +0 -1
  276. package/dist/form/types.js +0 -2
  277. package/dist/form/types.js.map +0 -1
  278. package/dist/form/utils.d.ts +0 -3
  279. package/dist/form/utils.d.ts.map +0 -1
  280. package/dist/form/utils.js +0 -16
  281. package/dist/form/utils.js.map +0 -1
  282. package/dist/hooks/useAsync.d.ts +0 -18
  283. package/dist/hooks/useAsync.d.ts.map +0 -1
  284. package/dist/hooks/useAsync.js +0 -96
  285. package/dist/hooks/useAsync.js.map +0 -1
  286. package/dist/hooks/useCallback.d.ts +0 -7
  287. package/dist/hooks/useCallback.d.ts.map +0 -1
  288. package/dist/hooks/useCallback.js +0 -30
  289. package/dist/hooks/useCallback.js.map +0 -1
  290. package/dist/hooks/useContext.d.ts +0 -7
  291. package/dist/hooks/useContext.d.ts.map +0 -1
  292. package/dist/hooks/useContext.js +0 -59
  293. package/dist/hooks/useContext.js.map +0 -1
  294. package/dist/hooks/useEffect.d.ts +0 -8
  295. package/dist/hooks/useEffect.d.ts.map +0 -1
  296. package/dist/hooks/useEffect.js +0 -34
  297. package/dist/hooks/useEffect.js.map +0 -1
  298. package/dist/hooks/useEffectEvent.d.ts +0 -8
  299. package/dist/hooks/useEffectEvent.d.ts.map +0 -1
  300. package/dist/hooks/useEffectEvent.js +0 -23
  301. package/dist/hooks/useEffectEvent.js.map +0 -1
  302. package/dist/hooks/useId.d.ts +0 -8
  303. package/dist/hooks/useId.d.ts.map +0 -1
  304. package/dist/hooks/useId.js +0 -35
  305. package/dist/hooks/useId.js.map +0 -1
  306. package/dist/hooks/useLayoutEffect.d.ts +0 -8
  307. package/dist/hooks/useLayoutEffect.d.ts.map +0 -1
  308. package/dist/hooks/useLayoutEffect.js +0 -34
  309. package/dist/hooks/useLayoutEffect.js.map +0 -1
  310. package/dist/hooks/useMemo.d.ts +0 -8
  311. package/dist/hooks/useMemo.d.ts.map +0 -1
  312. package/dist/hooks/useMemo.js +0 -31
  313. package/dist/hooks/useMemo.js.map +0 -1
  314. package/dist/hooks/usePromise.d.ts +0 -8
  315. package/dist/hooks/usePromise.d.ts.map +0 -1
  316. package/dist/hooks/usePromise.js +0 -90
  317. package/dist/hooks/usePromise.js.map +0 -1
  318. package/dist/hooks/useReducer.d.ts +0 -7
  319. package/dist/hooks/useReducer.d.ts.map +0 -1
  320. package/dist/hooks/useReducer.js +0 -44
  321. package/dist/hooks/useReducer.js.map +0 -1
  322. package/dist/hooks/useRef.d.ts +0 -10
  323. package/dist/hooks/useRef.d.ts.map +0 -1
  324. package/dist/hooks/useRef.js +0 -29
  325. package/dist/hooks/useRef.js.map +0 -1
  326. package/dist/hooks/useState.d.ts +0 -7
  327. package/dist/hooks/useState.d.ts.map +0 -1
  328. package/dist/hooks/useState.js +0 -54
  329. package/dist/hooks/useState.js.map +0 -1
  330. package/dist/hooks/useSyncExternalStore.d.ts +0 -8
  331. package/dist/hooks/useSyncExternalStore.d.ts.map +0 -1
  332. package/dist/hooks/useSyncExternalStore.js +0 -50
  333. package/dist/hooks/useSyncExternalStore.js.map +0 -1
  334. package/dist/hooks/useViewTransition.d.ts +0 -10
  335. package/dist/hooks/useViewTransition.d.ts.map +0 -1
  336. package/dist/hooks/useViewTransition.js +0 -27
  337. package/dist/hooks/useViewTransition.js.map +0 -1
  338. package/dist/recursiveRender.d.ts +0 -7
  339. package/dist/recursiveRender.d.ts.map +0 -1
  340. package/dist/recursiveRender.js.map +0 -1
  341. package/dist/signals/for.d.ts.map +0 -1
  342. package/dist/signals/for.js.map +0 -1
  343. package/dist/signals/watch.d.ts +0 -21
  344. package/dist/signals/watch.d.ts.map +0 -1
  345. package/dist/signals/watch.js +0 -86
  346. package/dist/signals/watch.js.map +0 -1
  347. package/dist/store.d.ts +0 -28
  348. package/dist/store.d.ts.map +0 -1
  349. package/dist/store.js +0 -166
  350. package/dist/store.js.map +0 -1
  351. package/dist/swr.d.ts +0 -63
  352. package/dist/swr.d.ts.map +0 -1
  353. package/dist/swr.js +0 -236
  354. package/dist/swr.js.map +0 -1
  355. package/dist/utils/promise.d.ts +0 -16
  356. package/dist/utils/promise.d.ts.map +0 -1
  357. package/dist/utils/promise.js +0 -14
  358. package/dist/utils/promise.js.map +0 -1
  359. package/src/components/memo.ts +0 -39
  360. package/src/dom.ts +0 -809
  361. package/src/form/index.ts +0 -676
  362. package/src/form/types.ts +0 -262
  363. package/src/form/utils.ts +0 -19
  364. package/src/hooks/useAsync.ts +0 -121
  365. package/src/hooks/useCallback.ts +0 -32
  366. package/src/hooks/useContext.ts +0 -79
  367. package/src/hooks/useEffect.ts +0 -40
  368. package/src/hooks/useEffectEvent.ts +0 -24
  369. package/src/hooks/useId.ts +0 -42
  370. package/src/hooks/useLayoutEffect.ts +0 -43
  371. package/src/hooks/useMemo.ts +0 -34
  372. package/src/hooks/usePromise.ts +0 -126
  373. package/src/hooks/useReducer.ts +0 -50
  374. package/src/hooks/useRef.ts +0 -40
  375. package/src/hooks/useState.ts +0 -62
  376. package/src/hooks/useSyncExternalStore.ts +0 -59
  377. package/src/hooks/useViewTransition.ts +0 -25
  378. package/src/signals/watch.ts +0 -139
  379. package/src/store.ts +0 -245
  380. package/src/swr.ts +0 -351
  381. package/src/utils/promise.ts +0 -26
@@ -0,0 +1 @@
1
+ {"version":3,"file":"props.js","sourceRoot":"","sources":["../../src/dom/props.ts"],"names":[],"mappings":"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"}
package/dist/env.d.ts CHANGED
@@ -1,2 +1,4 @@
1
1
  export declare const __DEV__: boolean;
2
+ export declare const isBrowser: boolean;
3
+ export declare const isServer: boolean;
2
4
  //# sourceMappingURL=env.d.ts.map
package/dist/env.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,OAAO,SAA6B,CAAA"}
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,OAAO,SAA6B,CAAA;AAEjD,eAAO,MAAM,SAAS,SAA0D,CAAA;AAChF,eAAO,MAAM,QAAQ,SAAa,CAAA"}
package/dist/env.js CHANGED
@@ -3,4 +3,6 @@ if (NODE_ENV !== "development" && NODE_ENV !== "production") {
3
3
  throw new Error("NODE_ENV must either be set to development or production.");
4
4
  }
5
5
  export const __DEV__ = NODE_ENV === "development";
6
+ export const isBrowser = "window" in globalThis && typeof window !== "undefined";
7
+ export const isServer = !isBrowser;
6
8
  //# sourceMappingURL=env.js.map
package/dist/env.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAA;AACrC,IAAI,QAAQ,KAAK,aAAa,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;IAC5D,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;AAC9E,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,KAAK,aAAa,CAAA"}
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAA;AACrC,IAAI,QAAQ,KAAK,aAAa,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;IAC5D,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;AAC9E,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,KAAK,aAAa,CAAA;AAEjD,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,IAAI,UAAU,IAAI,OAAO,MAAM,KAAK,WAAW,CAAA;AAChF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,SAAS,CAAA"}
@@ -1,20 +1,11 @@
1
- import { createHMRContext } from "./hmr.js";
1
+ import { createHmrContext } from "./hmr.js";
2
2
  import { createProfilingContext } from "./profiling.js";
3
3
  import type { FileRouterController } from "./router/fileRouterController";
4
- import type { AppContext } from "./appContext";
5
- import type { Store } from "./store";
6
- import type { SWRCache } from "./swr";
7
- import type { requestUpdate } from "./index.js";
4
+ import type { AppHandle } from "./appHandle";
8
5
  export { createKiruGlobalContext, type GlobalKiruEvent, type KiruGlobalContext };
9
- interface ReactiveMap<V> {
10
- add(key: string, value: V): void;
11
- delete(key: string): void;
12
- subscribe(cb: (value: Record<string, V>) => void): () => void;
13
- readonly size: number;
14
- }
15
6
  type Evt = {
16
7
  name: "mount";
17
- data?: typeof requestUpdate;
8
+ data?: undefined;
18
9
  } | {
19
10
  name: "unmount";
20
11
  data?: undefined;
@@ -26,22 +17,25 @@ type Evt = {
26
17
  data: Error;
27
18
  };
28
19
  type GlobalKiruEvent = Evt["name"];
29
- interface SchedulerInterface {
30
- requestUpdate: (vNode: Kiru.VNode) => void;
31
- }
20
+ export type DebuggerEntry = {
21
+ label: string;
22
+ signal: Kiru.Signal<unknown>;
23
+ };
32
24
  interface KiruGlobalContext {
33
- readonly apps: AppContext[];
34
- emit<T extends Evt>(event: T["name"], ctx: AppContext, data?: T["data"]): void;
35
- on<T extends Evt>(event: T["name"], callback: (ctx: AppContext, data: T["data"]) => void): void;
36
- off<T extends Evt>(event: T["name"], callback: (ctx: AppContext, data?: T["data"]) => void): void;
37
- stores?: ReactiveMap<Store<any, any>>;
38
- HMRContext?: ReturnType<typeof createHMRContext>;
25
+ readonly apps: AppHandle[];
26
+ emit<T extends Evt>(event: T["name"], app: AppHandle, data?: T["data"]): void;
27
+ on<T extends Evt>(event: T["name"], callback: (app: AppHandle, data: T["data"]) => void): void;
28
+ off<T extends Evt>(event: T["name"], callback: (app: AppHandle, data?: T["data"]) => void): void;
29
+ devtools?: {
30
+ track: (signal: Kiru.Signal<unknown>, label?: string) => void;
31
+ untrack: (signal: Kiru.Signal<unknown>) => void;
32
+ subscribe: (callback: (entries: Set<DebuggerEntry>) => void) => () => void;
33
+ };
34
+ HMRContext?: ReturnType<typeof createHmrContext>;
39
35
  profilingContext?: ReturnType<typeof createProfilingContext>;
40
- SWRGlobalCache?: SWRCache;
41
36
  fileRouterInstance?: {
42
37
  current: FileRouterController | null;
43
38
  };
44
- getSchedulerInterface?: (app: AppContext) => SchedulerInterface | null;
45
39
  }
46
40
  declare function createKiruGlobalContext(): KiruGlobalContext;
47
41
  //# sourceMappingURL=globalContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"globalContext.d.ts","sourceRoot":"","sources":["../src/globalContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"globalContext.d.ts","sourceRoot":"","sources":["../src/globalContext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAEvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,OAAO,EAAE,uBAAuB,EAAE,KAAK,eAAe,EAAE,KAAK,iBAAiB,EAAE,CAAA;AAEhF,KAAK,GAAG,GACJ;IACE,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB,GACD;IACE,IAAI,EAAE,SAAS,CAAA;IACf,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB,GACD;IACE,IAAI,EAAE,QAAQ,CAAA;IACd,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB,GACD;IACE,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,EAAE,KAAK,CAAA;CACZ,CAAA;AAEL,KAAK,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;AAElC,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;CAC7B,CAAA;AAED,UAAU,iBAAiB;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,CAAA;IAC1B,IAAI,CAAC,CAAC,SAAS,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;IAC7E,EAAE,CAAC,CAAC,SAAS,GAAG,EACd,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAChB,QAAQ,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,GAClD,IAAI,CAAA;IACP,GAAG,CAAC,CAAC,SAAS,GAAG,EACf,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAChB,QAAQ,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,GACnD,IAAI,CAAA;IACP,QAAQ,CAAC,EAAE;QACT,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;QAC7D,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,CAAA;QAC/C,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,aAAa,CAAC,KAAK,IAAI,KAAK,MAAM,IAAI,CAAA;KAC3E,CAAA;IACD,UAAU,CAAC,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAA;IAChD,gBAAgB,CAAC,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAA;IAC5D,kBAAkB,CAAC,EAAE;QACnB,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAA;KACrC,CAAA;CACF;AAED,iBAAS,uBAAuB,IAAI,iBAAiB,CA6EpD"}
@@ -1,47 +1,13 @@
1
1
  import { __DEV__ } from "./env.js";
2
- import { createHMRContext } from "./hmr.js";
2
+ import { createHmrContext } from "./hmr.js";
3
3
  import { createProfilingContext } from "./profiling.js";
4
4
  import { fileRouterInstance } from "./router/globals.js";
5
5
  export { createKiruGlobalContext };
6
- function createReactiveMap() {
7
- const map = new Map();
8
- const listeners = new Set();
9
- function add(key, value) {
10
- if (map.has(key))
11
- return;
12
- map.set(key, value);
13
- notify();
14
- }
15
- function deleteKey(key) {
16
- if (!map.has(key))
17
- return;
18
- map.delete(key);
19
- notify();
20
- }
21
- function notify() {
22
- const val = Object.fromEntries(map);
23
- listeners.forEach((cb) => cb(val));
24
- }
25
- function subscribe(cb) {
26
- listeners.add(cb);
27
- cb(Object.fromEntries(map));
28
- return () => listeners.delete(cb);
29
- }
30
- return {
31
- add,
32
- delete: deleteKey,
33
- subscribe,
34
- get size() {
35
- return map.size;
36
- },
37
- };
38
- }
39
6
  function createKiruGlobalContext() {
40
- const contexts = new Set();
41
- const contextToSchedulerInterface = new WeakMap();
7
+ const apps = new Set();
42
8
  const listeners = new Map();
43
- function emit(event, ctx, data) {
44
- listeners.get(event)?.forEach((cb) => cb(ctx, data));
9
+ function emit(event, app, data) {
10
+ listeners.get(event)?.forEach((cb) => cb(app, data));
45
11
  }
46
12
  function on(event, callback) {
47
13
  if (!listeners.has(event)) {
@@ -54,30 +20,42 @@ function createKiruGlobalContext() {
54
20
  }
55
21
  const globalContext = {
56
22
  get apps() {
57
- return Array.from(contexts);
23
+ return Array.from(apps);
58
24
  },
59
25
  emit,
60
26
  on,
61
27
  off,
62
28
  };
63
29
  // Initialize event listeners
64
- on("mount", (ctx, requestUpdate) => {
65
- contexts.add(ctx);
66
- if (requestUpdate && typeof requestUpdate === "function") {
67
- contextToSchedulerInterface.set(ctx, { requestUpdate });
68
- }
69
- });
70
- on("unmount", (ctx) => {
71
- contexts.delete(ctx);
72
- contextToSchedulerInterface.delete(ctx);
73
- });
30
+ on("mount", (app) => apps.add(app));
31
+ on("unmount", (app) => apps.delete(app));
74
32
  if (__DEV__) {
75
- globalContext.HMRContext = createHMRContext();
33
+ globalContext.HMRContext = createHmrContext();
76
34
  globalContext.profilingContext = createProfilingContext();
77
- globalContext.stores = createReactiveMap();
78
35
  globalContext.fileRouterInstance = fileRouterInstance;
79
- globalContext.getSchedulerInterface = (app) => {
80
- return contextToSchedulerInterface.get(app) ?? null;
36
+ const debuggerEntries = new Set();
37
+ const subscribers = new Set();
38
+ globalContext.devtools = {
39
+ track: (signal, label) => {
40
+ debuggerEntries.add({
41
+ label: label ?? signal.displayName ?? "Unnamed Signal",
42
+ signal,
43
+ });
44
+ subscribers.forEach((cb) => cb(debuggerEntries));
45
+ },
46
+ untrack: (signal) => {
47
+ debuggerEntries.forEach((entry) => {
48
+ if (entry.signal === signal) {
49
+ debuggerEntries.delete(entry);
50
+ }
51
+ });
52
+ subscribers.forEach((cb) => cb(debuggerEntries));
53
+ },
54
+ subscribe: (cb) => {
55
+ subscribers.add(cb);
56
+ cb(debuggerEntries);
57
+ return () => subscribers.delete(cb);
58
+ },
81
59
  };
82
60
  }
83
61
  return globalContext;
@@ -1 +1 @@
1
- {"version":3,"file":"globalContext.js","sourceRoot":"","sources":["../src/globalContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAOxD,OAAO,EAAE,uBAAuB,EAAgD,CAAA;AAShF,SAAS,iBAAiB;IACxB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAa,CAAA;IAChC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAsC,CAAA;IAE/D,SAAS,GAAG,CAAC,GAAW,EAAE,KAAQ;QAChC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAM;QACxB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACnB,MAAM,EAAE,CAAA;IACV,CAAC;IAED,SAAS,SAAS,CAAC,GAAW;QAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAM;QACzB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACf,MAAM,EAAE,CAAA;IACV,CAAC;IAED,SAAS,MAAM;QACb,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QACnC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;IACpC,CAAC;IAED,SAAS,SAAS,CAAC,EAAsC;QACvD,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACjB,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;QAC3B,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACnC,CAAC;IAED,OAAO;QACL,GAAG;QACH,MAAM,EAAE,SAAS;QACjB,SAAS;QACT,IAAI,IAAI;YACN,OAAO,GAAG,CAAC,IAAI,CAAA;QACjB,CAAC;KACF,CAAA;AACH,CAAC;AA+CD,SAAS,uBAAuB;IAC9B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAc,CAAA;IACtC,MAAM,2BAA2B,GAAG,IAAI,OAAO,EAG5C,CAAA;IACH,MAAM,SAAS,GAAG,IAAI,GAAG,EAGtB,CAAA;IACH,SAAS,IAAI,CACX,KAAgB,EAChB,GAAe,EACf,IAAgB;QAEhB,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;IACtD,CAAC;IAED,SAAS,EAAE,CACT,KAAgB,EAChB,QAAoD;QAEpD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;QACjC,CAAC;QACD,SAAS,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACrC,CAAC;IAED,SAAS,GAAG,CACV,KAAgB,EAChB,QAAqD;QAErD,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;IACxC,CAAC;IAED,MAAM,aAAa,GAAsB;QACvC,IAAI,IAAI;YACN,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC7B,CAAC;QACD,IAAI;QACJ,EAAE;QACF,GAAG;KACJ,CAAA;IAED,6BAA6B;IAC7B,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE;QACjC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACjB,IAAI,aAAa,IAAI,OAAO,aAAa,KAAK,UAAU,EAAE,CAAC;YACzD,2BAA2B,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,CAAC,CAAA;QACzD,CAAC;IACH,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;QACpB,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACpB,2BAA2B,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACzC,CAAC,CAAC,CAAA;IAEF,IAAI,OAAO,EAAE,CAAC;QACZ,aAAa,CAAC,UAAU,GAAG,gBAAgB,EAAE,CAAA;QAC7C,aAAa,CAAC,gBAAgB,GAAG,sBAAsB,EAAE,CAAA;QACzD,aAAa,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAA;QAC1C,aAAa,CAAC,kBAAkB,GAAG,kBAAkB,CAAA;QACrD,aAAa,CAAC,qBAAqB,GAAG,CAAC,GAAG,EAAE,EAAE;YAC5C,OAAO,2BAA2B,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAA;QACrD,CAAC,CAAA;IACH,CAAC;IAED,OAAO,aAAa,CAAA;AACtB,CAAC"}
1
+ {"version":3,"file":"globalContext.js","sourceRoot":"","sources":["../src/globalContext.ts"],"names":[],"mappings":"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"}
package/dist/globals.d.ts CHANGED
@@ -1,14 +1,31 @@
1
- export { node, hookIndex, renderMode, hydrationMode };
1
+ import { Setup } from "./hooks/index.js";
2
+ export { node, renderMode, hydrationMode, setups, postEffectCleanups };
3
+ /**
4
+ * A reference to the current VNode (always a component) being rendered.
5
+ */
2
6
  declare const node: {
3
7
  current: Kiru.VNode | null;
4
8
  };
5
- declare const hookIndex: {
6
- current: number;
7
- };
9
+ /**
10
+ * The current render mode. Can be "dom" "string", "stream", or "hydrate".
11
+ */
8
12
  declare const renderMode: {
9
13
  current: Kiru.RenderMode;
10
14
  };
15
+ /**
16
+ * The current hydration mode. Can be "static" or "dynamic".
17
+ * Used to indicate whether the page being hydrated will contain streamed content.
18
+ */
11
19
  declare const hydrationMode: {
12
20
  current: "static" | "dynamic";
13
21
  };
22
+ /**
23
+ * A map of VNodes (components) to their setup functions.
24
+ */
25
+ declare const setups: WeakMap<Kiru.VNode, Setup<any>>;
26
+ /**
27
+ * Cleanup functions from onMount() that run after components
28
+ * have been unmounted and the browser has painted.
29
+ */
30
+ declare const postEffectCleanups: (() => void)[];
14
31
  //# sourceMappingURL=globals.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"globals.d.ts","sourceRoot":"","sources":["../src/globals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,CAAA;AAErD,QAAA,MAAM,IAAI;aACS,IAAI,CAAC,KAAK,GAAG,IAAI;CACnC,CAAA;AAED,QAAA,MAAM,SAAS;;CAEd,CAAA;AAED,QAAA,MAAM,UAAU;aAC0C,IAAI,CAAC,UAAU;CACxE,CAAA;AAED,QAAA,MAAM,aAAa;aACK,QAAQ,GAAG,SAAS;CAC3C,CAAA"}
1
+ {"version":3,"file":"globals.d.ts","sourceRoot":"","sources":["../src/globals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAExC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAA;AAEtE;;GAEG;AACH,QAAA,MAAM,IAAI;aACS,IAAI,CAAC,KAAK,GAAG,IAAI;CACnC,CAAA;AAED;;GAEG;AACH,QAAA,MAAM,UAAU;aAC6B,IAAI,CAAC,UAAU;CAC3D,CAAA;AAED;;;GAGG;AACH,QAAA,MAAM,aAAa;aACK,QAAQ,GAAG,SAAS;CAC3C,CAAA;AAED;;GAEG;AACH,QAAA,MAAM,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAiB,CAAA;AAE7D;;;GAGG;AACH,QAAA,MAAM,kBAAkB,EAAE,CAAC,MAAM,IAAI,CAAC,EAAO,CAAA"}
package/dist/globals.js CHANGED
@@ -1,14 +1,31 @@
1
- export { node, hookIndex, renderMode, hydrationMode };
1
+ import { isBrowser } from "./env.js";
2
+ export { node, renderMode, hydrationMode, setups, postEffectCleanups };
3
+ /**
4
+ * A reference to the current VNode (always a component) being rendered.
5
+ */
2
6
  const node = {
3
7
  current: null,
4
8
  };
5
- const hookIndex = {
6
- current: 0,
7
- };
9
+ /**
10
+ * The current render mode. Can be "dom" "string", "stream", or "hydrate".
11
+ */
8
12
  const renderMode = {
9
- current: ("window" in globalThis ? "dom" : "string"),
13
+ current: (isBrowser ? "dom" : "string"),
10
14
  };
15
+ /**
16
+ * The current hydration mode. Can be "static" or "dynamic".
17
+ * Used to indicate whether the page being hydrated will contain streamed content.
18
+ */
11
19
  const hydrationMode = {
12
20
  current: "dynamic",
13
21
  };
22
+ /**
23
+ * A map of VNodes (components) to their setup functions.
24
+ */
25
+ const setups = new WeakMap();
26
+ /**
27
+ * Cleanup functions from onMount() that run after components
28
+ * have been unmounted and the browser has painted.
29
+ */
30
+ const postEffectCleanups = [];
14
31
  //# sourceMappingURL=globals.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"globals.js","sourceRoot":"","sources":["../src/globals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,CAAA;AAErD,MAAM,IAAI,GAAG;IACX,OAAO,EAAE,IAAyB;CACnC,CAAA;AAED,MAAM,SAAS,GAAG;IAChB,OAAO,EAAE,CAAC;CACX,CAAA;AAED,MAAM,UAAU,GAAG;IACjB,OAAO,EAAE,CAAC,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAoB;CACxE,CAAA;AAED,MAAM,aAAa,GAAG;IACpB,OAAO,EAAE,SAAiC;CAC3C,CAAA"}
1
+ {"version":3,"file":"globals.js","sourceRoot":"","sources":["../src/globals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACpC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAA;AAEtE;;GAEG;AACH,MAAM,IAAI,GAAG;IACX,OAAO,EAAE,IAAyB;CACnC,CAAA;AAED;;GAEG;AACH,MAAM,UAAU,GAAG;IACjB,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAoB;CAC3D,CAAA;AAED;;;GAGG;AACH,MAAM,aAAa,GAAG;IACpB,OAAO,EAAE,SAAiC;CAC3C,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,GAAoC,IAAI,OAAO,EAAE,CAAA;AAE7D;;;GAGG;AACH,MAAM,kBAAkB,GAAmB,EAAE,CAAA"}
@@ -0,0 +1,6 @@
1
+ export interface HeadlessRenderContext {
2
+ write(chunk: string): void;
3
+ onStreamData?: (data: Kiru.StatefulPromiseBase<unknown>[]) => void;
4
+ }
5
+ export declare function headlessRender(ctx: HeadlessRenderContext, el: unknown, parent: Kiru.VNode | null, idx: number): void;
6
+ //# sourceMappingURL=headlessRender.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headlessRender.d.ts","sourceRoot":"","sources":["../src/headlessRender.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,KAAK,IAAI,CAAA;CACnE;AAED,wBAAgB,cAAc,CAC5B,GAAG,EAAE,qBAAqB,EAC1B,EAAE,EAAE,OAAO,EACX,MAAM,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,EACzB,GAAG,EAAE,MAAM,GACV,IAAI,CAmHN"}
@@ -1,11 +1,10 @@
1
- import { node, hookIndex } from "./globals.js";
1
+ import { node } from "./globals.js";
2
2
  import { isVNode, encodeHtmlEntities, propsToElementAttributes, isExoticType, assertValidElementProps, isPrimitiveChild, isValidTextChild, } from "./utils/index.js";
3
- import { isStreamDataThrowValue } from "./utils/promise.js";
3
+ import { isStreamDataThrowValue } from "./statefulPromise.js";
4
4
  import { Signal } from "./signals/base.js";
5
5
  import { $ERROR_BOUNDARY, voidElements, $STREAM_DATA } from "./constants.js";
6
6
  import { __DEV__ } from "./env.js";
7
- export { render as headlessRender };
8
- function render(ctx, el, parent, idx) {
7
+ export function headlessRender(ctx, el, parent, idx) {
9
8
  if (el === null)
10
9
  return;
11
10
  if (el === undefined)
@@ -19,7 +18,7 @@ function render(ctx, el, parent, idx) {
19
18
  return ctx.write(el.toString());
20
19
  }
21
20
  if (el instanceof Array) {
22
- return el.forEach((c, i) => render(ctx, c, parent, i));
21
+ return el.forEach((c, i) => headlessRender(ctx, c, parent, i));
23
22
  }
24
23
  if (Signal.isSignal(el)) {
25
24
  const value = el.peek();
@@ -58,7 +57,7 @@ function render(ctx, el, parent, idx) {
58
57
  },
59
58
  };
60
59
  try {
61
- render(boundaryCtx, children, el, idx);
60
+ headlessRender(boundaryCtx, children, el, idx);
62
61
  // flush successful render
63
62
  ctx.write(boundaryBuffer);
64
63
  ctx.onStreamData?.([...streamPromises]);
@@ -71,26 +70,28 @@ function render(ctx, el, parent, idx) {
71
70
  const { fallback, onError } = props;
72
71
  onError?.(e);
73
72
  const fallbackContent = typeof fallback === "function" ? fallback(e) : fallback;
74
- render(ctx, fallbackContent, el, 0);
73
+ headlessRender(ctx, fallbackContent, el, 0);
75
74
  }
76
75
  return;
77
76
  }
78
- render(ctx, children, el, idx);
77
+ headlessRender(ctx, children, el, idx);
79
78
  return;
80
79
  }
81
- if (typeof type !== "string") {
80
+ if (typeof type === "function") {
82
81
  try {
83
- hookIndex.current = 0;
84
82
  node.current = el;
85
- const res = type(props);
86
- render(ctx, res, el, idx);
83
+ let children = type(props);
84
+ if (typeof children === "function") {
85
+ children = children(props);
86
+ }
87
+ headlessRender(ctx, children, el, idx);
87
88
  return;
88
89
  }
89
90
  catch (error) {
90
91
  if (isStreamDataThrowValue(error)) {
91
92
  const { fallback, data } = error[$STREAM_DATA];
92
93
  ctx.onStreamData?.(data);
93
- return render(ctx, fallback, el, 0);
94
+ return headlessRender(ctx, fallback, el, 0);
94
95
  }
95
96
  throw error;
96
97
  }
@@ -110,11 +111,11 @@ function render(ctx, el, parent, idx) {
110
111
  : props.innerHTML));
111
112
  }
112
113
  else if (Array.isArray(children)) {
113
- children.forEach((c, i) => render(ctx, c, el, i));
114
+ children.forEach((c, i) => headlessRender(ctx, c, el, i));
114
115
  }
115
116
  else {
116
- render(ctx, children, el, 0);
117
+ headlessRender(ctx, children, el, 0);
117
118
  }
118
119
  ctx.write(`</${type}>`);
119
120
  }
120
- //# sourceMappingURL=recursiveRender.js.map
121
+ //# sourceMappingURL=headlessRender.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headlessRender.js","sourceRoot":"","sources":["../src/headlessRender.ts"],"names":[],"mappings":"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"}
package/dist/hmr.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import { $HMR_ACCEPT } from "./constants.js";
2
2
  import { Signal } from "./signals/base.js";
3
- import type { WatchEffect } from "./signals/watch.js";
4
- import type { Store } from "./store.js";
3
+ import type { Effect } from "./signals/effect.js";
5
4
  export type HMRAccept<T = {}> = {
6
5
  provide: () => T;
7
6
  inject: (prev: T) => void;
@@ -10,7 +9,7 @@ export type HMRAccept<T = {}> = {
10
9
  export type GenericHMRAcceptor<T = {}> = {
11
10
  [$HMR_ACCEPT]: HMRAccept<T>;
12
11
  };
13
- type HotVar = Kiru.FC | Store<any, any> | Signal<any> | Kiru.Context<any>;
12
+ type HotVar = Kiru.FC | Signal<any> | Kiru.Context<any>;
14
13
  export declare function isHmrUpdate(): boolean;
15
14
  export declare function isGenericHmrAcceptor(thing: unknown): thing is GenericHMRAcceptor<any>;
16
15
  type HotVarRegistrationEntry = {
@@ -18,17 +17,31 @@ type HotVarRegistrationEntry = {
18
17
  value: HotVar;
19
18
  link: string;
20
19
  };
21
- export declare function createHMRContext(): {
20
+ export declare function createHmrContext(): {
22
21
  register: (hotVarRegistrationEntries: Record<string, HotVarRegistrationEntry>) => void;
23
22
  prepare: (filePath: string) => void;
24
23
  isReplacement: () => boolean;
25
- signals: {
26
- registerNextWatch(): void;
27
- isWaitingForNextWatchCall(): boolean;
28
- pushWatch(watch: WatchEffect): void;
24
+ moduleEffects: {
25
+ registerNext(): void;
26
+ push(effect: Effect<any>): void;
29
27
  };
30
28
  onHmr: (callback: () => void) => void;
31
29
  getCurrentFilePath(): string | null;
32
30
  };
31
+ /**
32
+ * Queues a callback to be fired when HMR is triggered. This is a no-op in non-browser environments or in production.
33
+ * - If called during current module evaluation, the callback will be fired the next time the current module is evaluated.
34
+ * - If called at any other time, the callback will be fired the next time HMR is triggered.
35
+ * @see https://kirujs.dev/docs/api/lifecycles#onHmr
36
+ *
37
+ * ```ts
38
+ * import { onHmr } from "kiru"
39
+ * // start an interval in the module scope
40
+ * const interval = setInterval(() => {...}, 1000)
41
+ * // stop the interval when this file is reloaded
42
+ * onHmr(() => clearInterval(interval))
43
+ ```
44
+ */
45
+ export declare function onHmr(callback: () => void): void;
33
46
  export {};
34
47
  //# sourceMappingURL=hmr.d.ts.map
package/dist/hmr.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hmr.d.ts","sourceRoot":"","sources":["../src/hmr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkB,MAAM,gBAAgB,CAAA;AAG5D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAGvC,MAAM,MAAM,SAAS,CAAC,CAAC,GAAG,EAAE,IAAI;IAC9B,OAAO,EAAE,MAAM,CAAC,CAAA;IAChB,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAA;IACzB,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,kBAAkB,CAAC,CAAC,GAAG,EAAE,IAAI;IACvC,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;CAC5B,CAAA;AACD,KAAK,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;AAUzE,wBAAgB,WAAW,YAE1B;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,kBAAkB,CAAC,GAAG,CAAC,CAQlC;AAOD,KAAK,uBAAuB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,wBAAgB,gBAAgB;0CAmCD,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC;wBArBzC,MAAM;;;;;yBA2Fd,WAAW;;sBA/FL,MAAM,IAAI;;EA+GpC"}
1
+ {"version":3,"file":"hmr.d.ts","sourceRoot":"","sources":["../src/hmr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkB,MAAM,gBAAgB,CAAA;AAG5D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAEjD,MAAM,MAAM,SAAS,CAAC,CAAC,GAAG,EAAE,IAAI;IAC9B,OAAO,EAAE,MAAM,CAAC,CAAA;IAChB,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAA;IACzB,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,kBAAkB,CAAC,CAAC,GAAG,EAAE,IAAI;IACvC,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;CAC5B,CAAA;AACD,KAAK,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;AAUvD,wBAAgB,WAAW,YAE1B;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,kBAAkB,CAAC,GAAG,CAAC,CAQlC;AAQD,KAAK,uBAAuB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,wBAAgB,gBAAgB;0CA0CD,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC;wBAxBzC,MAAM;;;;qBAqFlB,MAAM,CAAC,GAAG,CAAC;;sBA7FD,MAAM,IAAI;;EA8GpC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,KAAK,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAIhD"}