kiru 0.54.3 → 1.0.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 (335) 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} +12 -9
  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 +5 -4
  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 -26
  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 +15 -0
  34. package/dist/devtools.js.map +1 -0
  35. package/dist/dom.d.ts.map +1 -1
  36. package/dist/dom.js +25 -58
  37. package/dist/dom.js.map +1 -1
  38. package/dist/globalContext.d.ts +15 -16
  39. package/dist/globalContext.d.ts.map +1 -1
  40. package/dist/globalContext.js +36 -46
  41. package/dist/globalContext.js.map +1 -1
  42. package/dist/globals.d.ts +1 -4
  43. package/dist/globals.d.ts.map +1 -1
  44. package/dist/globals.js +1 -4
  45. package/dist/globals.js.map +1 -1
  46. package/dist/headlessRender.d.ts +6 -0
  47. package/dist/headlessRender.d.ts.map +1 -0
  48. package/dist/{recursiveRender.js → headlessRender.js} +17 -16
  49. package/dist/headlessRender.js.map +1 -0
  50. package/dist/hmr.d.ts +5 -7
  51. package/dist/hmr.d.ts.map +1 -1
  52. package/dist/hmr.js +27 -32
  53. package/dist/hmr.js.map +1 -1
  54. package/dist/hooks/index.d.ts +3 -14
  55. package/dist/hooks/index.d.ts.map +1 -1
  56. package/dist/hooks/index.js +3 -14
  57. package/dist/hooks/index.js.map +1 -1
  58. package/dist/hooks/onBeforeMount.d.ts +9 -0
  59. package/dist/hooks/onBeforeMount.d.ts.map +1 -0
  60. package/dist/hooks/onBeforeMount.js +12 -0
  61. package/dist/hooks/onBeforeMount.js.map +1 -0
  62. package/dist/hooks/onCleanup.d.ts +8 -0
  63. package/dist/hooks/onCleanup.d.ts.map +1 -0
  64. package/dist/hooks/onCleanup.js +15 -0
  65. package/dist/hooks/onCleanup.js.map +1 -0
  66. package/dist/hooks/onMount.d.ts +9 -0
  67. package/dist/hooks/onMount.d.ts.map +1 -0
  68. package/dist/hooks/onMount.js +12 -0
  69. package/dist/hooks/onMount.js.map +1 -0
  70. package/dist/hooks/utils.d.ts +2 -62
  71. package/dist/hooks/utils.d.ts.map +1 -1
  72. package/dist/hooks/utils.js +22 -144
  73. package/dist/hooks/utils.js.map +1 -1
  74. package/dist/index.d.ts +8 -4
  75. package/dist/index.d.ts.map +1 -1
  76. package/dist/index.js +8 -6
  77. package/dist/index.js.map +1 -1
  78. package/dist/profiling.d.ts +15 -14
  79. package/dist/profiling.d.ts.map +1 -1
  80. package/dist/profiling.js +9 -4
  81. package/dist/profiling.js.map +1 -1
  82. package/dist/reconciler.d.ts.map +1 -1
  83. package/dist/reconciler.js +12 -25
  84. package/dist/reconciler.js.map +1 -1
  85. package/dist/ref.d.ts +4 -0
  86. package/dist/ref.d.ts.map +1 -0
  87. package/dist/ref.js +4 -0
  88. package/dist/ref.js.map +1 -0
  89. package/dist/renderToString.js +1 -1
  90. package/dist/renderToString.js.map +1 -1
  91. package/dist/router/context.d.ts.map +1 -1
  92. package/dist/router/context.js +1 -2
  93. package/dist/router/context.js.map +1 -1
  94. package/dist/router/fileRouter.d.ts +1 -1
  95. package/dist/router/fileRouter.d.ts.map +1 -1
  96. package/dist/router/fileRouter.js +17 -11
  97. package/dist/router/fileRouter.js.map +1 -1
  98. package/dist/router/fileRouterController.d.ts.map +1 -1
  99. package/dist/router/fileRouterController.js +68 -55
  100. package/dist/router/fileRouterController.js.map +1 -1
  101. package/dist/router/link.d.ts.map +1 -1
  102. package/dist/router/link.js +19 -23
  103. package/dist/router/link.js.map +1 -1
  104. package/dist/router/server/index.d.ts.map +1 -1
  105. package/dist/router/server/index.js +14 -11
  106. package/dist/router/server/index.js.map +1 -1
  107. package/dist/router/types.d.ts +11 -6
  108. package/dist/router/types.d.ts.map +1 -1
  109. package/dist/scheduler.d.ts +1 -0
  110. package/dist/scheduler.d.ts.map +1 -1
  111. package/dist/scheduler.js +65 -52
  112. package/dist/scheduler.js.map +1 -1
  113. package/dist/signals/base.d.ts +0 -1
  114. package/dist/signals/base.d.ts.map +1 -1
  115. package/dist/signals/base.js +13 -36
  116. package/dist/signals/base.js.map +1 -1
  117. package/dist/signals/computed.d.ts +0 -2
  118. package/dist/signals/computed.d.ts.map +1 -1
  119. package/dist/signals/computed.js +1 -40
  120. package/dist/signals/computed.js.map +1 -1
  121. package/dist/signals/effect.d.ts +15 -14
  122. package/dist/signals/effect.d.ts.map +1 -1
  123. package/dist/signals/effect.js +65 -37
  124. package/dist/signals/effect.js.map +1 -1
  125. package/dist/signals/globals.d.ts +0 -5
  126. package/dist/signals/globals.d.ts.map +1 -1
  127. package/dist/signals/globals.js +0 -6
  128. package/dist/signals/globals.js.map +1 -1
  129. package/dist/signals/index.d.ts +4 -4
  130. package/dist/signals/index.d.ts.map +1 -1
  131. package/dist/signals/index.js +4 -4
  132. package/dist/signals/index.js.map +1 -1
  133. package/dist/signals/{for.d.ts → jsx.d.ts} +8 -1
  134. package/dist/signals/jsx.d.ts.map +1 -0
  135. package/dist/signals/{for.js → jsx.js} +4 -1
  136. package/dist/signals/jsx.js.map +1 -0
  137. package/dist/signals/tracking.d.ts +23 -0
  138. package/dist/signals/tracking.d.ts.map +1 -0
  139. package/dist/signals/tracking.js +51 -0
  140. package/dist/signals/tracking.js.map +1 -0
  141. package/dist/signals/types.d.ts +1 -1
  142. package/dist/signals/types.d.ts.map +1 -1
  143. package/dist/signals/utils.d.ts +2 -1
  144. package/dist/signals/utils.d.ts.map +1 -1
  145. package/dist/signals/utils.js +9 -2
  146. package/dist/signals/utils.js.map +1 -1
  147. package/dist/ssr/client.d.ts +3 -3
  148. package/dist/ssr/client.d.ts.map +1 -1
  149. package/dist/ssr/client.js.map +1 -1
  150. package/dist/ssr/server.js +1 -1
  151. package/dist/ssr/server.js.map +1 -1
  152. package/dist/statefulPromise.d.ts +22 -0
  153. package/dist/statefulPromise.d.ts.map +1 -0
  154. package/dist/statefulPromise.js +94 -0
  155. package/dist/statefulPromise.js.map +1 -0
  156. package/dist/types.d.ts +36 -50
  157. package/dist/types.d.ts.map +1 -1
  158. package/dist/types.dom.d.ts +4 -7
  159. package/dist/types.dom.d.ts.map +1 -1
  160. package/dist/types.utils.d.ts +3 -4
  161. package/dist/types.utils.d.ts.map +1 -1
  162. package/dist/utils/vdom.d.ts +8 -6
  163. package/dist/utils/vdom.d.ts.map +1 -1
  164. package/dist/utils/vdom.js +32 -9
  165. package/dist/utils/vdom.js.map +1 -1
  166. package/dist/viewTransitions.d.ts +7 -0
  167. package/dist/viewTransitions.d.ts.map +1 -0
  168. package/dist/viewTransitions.js +71 -0
  169. package/dist/viewTransitions.js.map +1 -0
  170. package/package.json +1 -1
  171. package/src/{appContext.ts → appHandle.ts} +21 -16
  172. package/src/components/derive.ts +74 -69
  173. package/src/components/index.ts +0 -1
  174. package/src/components/lazy.ts +5 -4
  175. package/src/components/portal.ts +2 -3
  176. package/src/components/transition.ts +33 -35
  177. package/src/constants.ts +0 -8
  178. package/src/context.ts +30 -23
  179. package/src/devtools.ts +16 -0
  180. package/src/dom.ts +29 -63
  181. package/src/globalContext.ts +57 -74
  182. package/src/globals.ts +1 -5
  183. package/src/{recursiveRender.ts → headlessRender.ts} +18 -18
  184. package/src/hmr.ts +29 -38
  185. package/src/hooks/index.ts +3 -14
  186. package/src/hooks/onBeforeMount.ts +12 -0
  187. package/src/hooks/onCleanup.ts +15 -0
  188. package/src/hooks/onMount.ts +12 -0
  189. package/src/hooks/utils.ts +28 -238
  190. package/src/index.ts +14 -6
  191. package/src/profiling.ts +22 -20
  192. package/src/reconciler.ts +18 -30
  193. package/src/ref.ts +6 -0
  194. package/src/renderToString.ts +1 -1
  195. package/src/router/context.ts +1 -2
  196. package/src/router/fileRouter.ts +23 -13
  197. package/src/router/fileRouterController.ts +72 -64
  198. package/src/router/link.ts +11 -25
  199. package/src/router/server/index.ts +24 -13
  200. package/src/router/types.ts +15 -8
  201. package/src/scheduler.ts +74 -71
  202. package/src/signals/base.ts +12 -41
  203. package/src/signals/computed.ts +1 -62
  204. package/src/signals/effect.ts +95 -48
  205. package/src/signals/globals.ts +0 -7
  206. package/src/signals/index.ts +4 -4
  207. package/src/signals/{for.ts → jsx.ts} +10 -0
  208. package/src/signals/tracking.ts +69 -0
  209. package/src/signals/types.ts +1 -1
  210. package/src/signals/utils.ts +9 -1
  211. package/src/ssr/client.ts +4 -4
  212. package/src/ssr/server.ts +2 -2
  213. package/src/statefulPromise.ts +136 -0
  214. package/src/types.dom.ts +4 -8
  215. package/src/types.ts +45 -58
  216. package/src/types.utils.ts +3 -4
  217. package/src/utils/vdom.ts +44 -15
  218. package/src/viewTransitions.ts +88 -0
  219. package/dist/appContext.d.ts.map +0 -1
  220. package/dist/appContext.js.map +0 -1
  221. package/dist/components/memo.d.ts +0 -10
  222. package/dist/components/memo.d.ts.map +0 -1
  223. package/dist/components/memo.js +0 -23
  224. package/dist/components/memo.js.map +0 -1
  225. package/dist/form/index.d.ts +0 -4
  226. package/dist/form/index.d.ts.map +0 -1
  227. package/dist/form/index.js +0 -518
  228. package/dist/form/index.js.map +0 -1
  229. package/dist/form/types.d.ts +0 -122
  230. package/dist/form/types.d.ts.map +0 -1
  231. package/dist/form/types.js +0 -2
  232. package/dist/form/types.js.map +0 -1
  233. package/dist/form/utils.d.ts +0 -3
  234. package/dist/form/utils.d.ts.map +0 -1
  235. package/dist/form/utils.js +0 -16
  236. package/dist/form/utils.js.map +0 -1
  237. package/dist/hooks/useAsync.d.ts +0 -18
  238. package/dist/hooks/useAsync.d.ts.map +0 -1
  239. package/dist/hooks/useAsync.js +0 -96
  240. package/dist/hooks/useAsync.js.map +0 -1
  241. package/dist/hooks/useCallback.d.ts +0 -7
  242. package/dist/hooks/useCallback.d.ts.map +0 -1
  243. package/dist/hooks/useCallback.js +0 -30
  244. package/dist/hooks/useCallback.js.map +0 -1
  245. package/dist/hooks/useContext.d.ts +0 -7
  246. package/dist/hooks/useContext.d.ts.map +0 -1
  247. package/dist/hooks/useContext.js +0 -59
  248. package/dist/hooks/useContext.js.map +0 -1
  249. package/dist/hooks/useEffect.d.ts +0 -8
  250. package/dist/hooks/useEffect.d.ts.map +0 -1
  251. package/dist/hooks/useEffect.js +0 -34
  252. package/dist/hooks/useEffect.js.map +0 -1
  253. package/dist/hooks/useEffectEvent.d.ts +0 -8
  254. package/dist/hooks/useEffectEvent.d.ts.map +0 -1
  255. package/dist/hooks/useEffectEvent.js +0 -23
  256. package/dist/hooks/useEffectEvent.js.map +0 -1
  257. package/dist/hooks/useId.d.ts +0 -8
  258. package/dist/hooks/useId.d.ts.map +0 -1
  259. package/dist/hooks/useId.js +0 -35
  260. package/dist/hooks/useId.js.map +0 -1
  261. package/dist/hooks/useLayoutEffect.d.ts +0 -8
  262. package/dist/hooks/useLayoutEffect.d.ts.map +0 -1
  263. package/dist/hooks/useLayoutEffect.js +0 -34
  264. package/dist/hooks/useLayoutEffect.js.map +0 -1
  265. package/dist/hooks/useMemo.d.ts +0 -8
  266. package/dist/hooks/useMemo.d.ts.map +0 -1
  267. package/dist/hooks/useMemo.js +0 -31
  268. package/dist/hooks/useMemo.js.map +0 -1
  269. package/dist/hooks/usePromise.d.ts +0 -8
  270. package/dist/hooks/usePromise.d.ts.map +0 -1
  271. package/dist/hooks/usePromise.js +0 -90
  272. package/dist/hooks/usePromise.js.map +0 -1
  273. package/dist/hooks/useReducer.d.ts +0 -7
  274. package/dist/hooks/useReducer.d.ts.map +0 -1
  275. package/dist/hooks/useReducer.js +0 -44
  276. package/dist/hooks/useReducer.js.map +0 -1
  277. package/dist/hooks/useRef.d.ts +0 -10
  278. package/dist/hooks/useRef.d.ts.map +0 -1
  279. package/dist/hooks/useRef.js +0 -29
  280. package/dist/hooks/useRef.js.map +0 -1
  281. package/dist/hooks/useState.d.ts +0 -7
  282. package/dist/hooks/useState.d.ts.map +0 -1
  283. package/dist/hooks/useState.js +0 -54
  284. package/dist/hooks/useState.js.map +0 -1
  285. package/dist/hooks/useSyncExternalStore.d.ts +0 -8
  286. package/dist/hooks/useSyncExternalStore.d.ts.map +0 -1
  287. package/dist/hooks/useSyncExternalStore.js +0 -50
  288. package/dist/hooks/useSyncExternalStore.js.map +0 -1
  289. package/dist/hooks/useViewTransition.d.ts +0 -10
  290. package/dist/hooks/useViewTransition.d.ts.map +0 -1
  291. package/dist/hooks/useViewTransition.js +0 -27
  292. package/dist/hooks/useViewTransition.js.map +0 -1
  293. package/dist/recursiveRender.d.ts +0 -7
  294. package/dist/recursiveRender.d.ts.map +0 -1
  295. package/dist/recursiveRender.js.map +0 -1
  296. package/dist/signals/for.d.ts.map +0 -1
  297. package/dist/signals/for.js.map +0 -1
  298. package/dist/signals/watch.d.ts +0 -21
  299. package/dist/signals/watch.d.ts.map +0 -1
  300. package/dist/signals/watch.js +0 -86
  301. package/dist/signals/watch.js.map +0 -1
  302. package/dist/store.d.ts +0 -28
  303. package/dist/store.d.ts.map +0 -1
  304. package/dist/store.js +0 -166
  305. package/dist/store.js.map +0 -1
  306. package/dist/swr.d.ts +0 -63
  307. package/dist/swr.d.ts.map +0 -1
  308. package/dist/swr.js +0 -236
  309. package/dist/swr.js.map +0 -1
  310. package/dist/utils/promise.d.ts +0 -16
  311. package/dist/utils/promise.d.ts.map +0 -1
  312. package/dist/utils/promise.js +0 -14
  313. package/dist/utils/promise.js.map +0 -1
  314. package/src/components/memo.ts +0 -39
  315. package/src/form/index.ts +0 -676
  316. package/src/form/types.ts +0 -262
  317. package/src/form/utils.ts +0 -19
  318. package/src/hooks/useAsync.ts +0 -121
  319. package/src/hooks/useCallback.ts +0 -32
  320. package/src/hooks/useContext.ts +0 -79
  321. package/src/hooks/useEffect.ts +0 -40
  322. package/src/hooks/useEffectEvent.ts +0 -24
  323. package/src/hooks/useId.ts +0 -42
  324. package/src/hooks/useLayoutEffect.ts +0 -43
  325. package/src/hooks/useMemo.ts +0 -34
  326. package/src/hooks/usePromise.ts +0 -126
  327. package/src/hooks/useReducer.ts +0 -50
  328. package/src/hooks/useRef.ts +0 -41
  329. package/src/hooks/useState.ts +0 -62
  330. package/src/hooks/useSyncExternalStore.ts +0 -59
  331. package/src/hooks/useViewTransition.ts +0 -25
  332. package/src/signals/watch.ts +0 -139
  333. package/src/store.ts +0 -245
  334. package/src/swr.ts +0 -351
  335. package/src/utils/promise.ts +0 -26
@@ -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.ContextBase<any>;
14
13
  export declare function isHmrUpdate(): boolean;
15
14
  export declare function isGenericHmrAcceptor(thing: unknown): thing is GenericHMRAcceptor<any>;
16
15
  type HotVarRegistrationEntry = {
@@ -22,10 +21,9 @@ 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;
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,WAAW,CAAC,GAAG,CAAC,CAAA;AAU3D,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;0CAoCD,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC;wBAtBzC,MAAM;;;;qBAmFlB,MAAM,CAAC,GAAG,CAAC;;sBAvFD,MAAM,IAAI;;EAwGpC"}
package/dist/hmr.js CHANGED
@@ -18,7 +18,7 @@ export function createHMRContext() {
18
18
  let currentModuleMemory = null;
19
19
  let isModuleReplacementExecution = false;
20
20
  const isReplacement = () => isModuleReplacementExecution;
21
- let isWaitingForNextWatchCall = false;
21
+ let isWaitingForNextEffect = false;
22
22
  const onHmrCallbacks = [];
23
23
  const onHmr = (callback) => {
24
24
  onHmrCallbacks.push(callback);
@@ -29,16 +29,17 @@ export function createHMRContext() {
29
29
  if (!mod) {
30
30
  mod = {
31
31
  hotVars: new Map(),
32
- unnamedWatchers: [],
32
+ unnamedEffects: [],
33
33
  };
34
34
  moduleMap.set(filePath, mod);
35
35
  }
36
36
  else {
37
37
  while (onHmrCallbacks.length)
38
38
  onHmrCallbacks.shift()();
39
- for (const prevWatcher of mod.unnamedWatchers.splice(0)) {
40
- prevWatcher.stop();
39
+ for (const effect of mod.unnamedEffects) {
40
+ effect.stop();
41
41
  }
42
+ mod.unnamedEffects.length = 0;
42
43
  }
43
44
  currentModuleMemory = mod;
44
45
  currentModuleFilePath = filePath;
@@ -46,23 +47,18 @@ export function createHMRContext() {
46
47
  const register = (hotVarRegistrationEntries) => {
47
48
  if (currentModuleMemory === null)
48
49
  throw new Error("[kiru]: HMR could not register: No active module");
49
- let dirtiedApps = new Set();
50
+ let dirtyNodes = new Set();
50
51
  for (const [name, newEntry] of Object.entries(hotVarRegistrationEntries)) {
51
52
  const oldEntry = currentModuleMemory.hotVars.get(name);
52
53
  // @ts-ignore - this is how we tell devtools what file the hotvar is from
53
54
  newEntry.value[$DEV_FILE_LINK] = newEntry.link;
54
- if (typeof newEntry.value === "function") {
55
- if (oldEntry?.value) {
56
- /**
57
- * this is how, when the previous function has been stored somewhere else (eg. in a Map, or by Vike),
58
- * we can trace it to its latest version
59
- */
60
- // @ts-ignore
61
- oldEntry.value.__next = newEntry.value;
62
- }
63
- }
64
- if (newEntry.type === "createStore") {
65
- window.__kiru.stores.add(name, newEntry.value);
55
+ if (oldEntry?.value) {
56
+ /**
57
+ * this is how, when the previous value has been stored somewhere else (eg. in a Map, or by Vike),
58
+ * we can trace it to its current version by using latest(value)
59
+ */
60
+ // @ts-ignore
61
+ oldEntry.value.__next = newEntry.value;
66
62
  }
67
63
  currentModuleMemory.hotVars.set(name, newEntry);
68
64
  if (!oldEntry)
@@ -74,19 +70,19 @@ export function createHMRContext() {
74
70
  continue;
75
71
  }
76
72
  if (oldEntry.type === "component" && newEntry.type === "component") {
77
- window.__kiru.apps.forEach((ctx) => {
78
- traverseApply(ctx.rootNode, (vNode) => {
73
+ window.__kiru.apps.forEach((app) => {
74
+ traverseApply(app.rootNode, (vNode) => {
79
75
  if (vNode.type === oldEntry.value) {
80
76
  vNode.type = newEntry.value;
81
- dirtiedApps.add(ctx);
77
+ dirtyNodes.add(vNode);
82
78
  }
83
79
  });
84
80
  });
85
81
  }
86
82
  }
87
- if (dirtiedApps.size) {
83
+ if (dirtyNodes.size) {
88
84
  _isHmrUpdate = true;
89
- dirtiedApps.forEach((ctx) => requestUpdate(ctx.rootNode));
85
+ dirtyNodes.forEach((n) => requestUpdate(n));
90
86
  flushSync();
91
87
  _isHmrUpdate = false;
92
88
  }
@@ -94,23 +90,22 @@ export function createHMRContext() {
94
90
  currentModuleMemory = null;
95
91
  currentModuleFilePath = null;
96
92
  };
97
- const signals = {
98
- registerNextWatch() {
99
- isWaitingForNextWatchCall = true;
100
- },
101
- isWaitingForNextWatchCall() {
102
- return isWaitingForNextWatchCall;
93
+ const moduleEffects = {
94
+ registerNext() {
95
+ isWaitingForNextEffect = true;
103
96
  },
104
- pushWatch(watch) {
105
- currentModuleMemory.unnamedWatchers.push(watch);
106
- isWaitingForNextWatchCall = false;
97
+ push(effect) {
98
+ if (!isWaitingForNextEffect)
99
+ return;
100
+ currentModuleMemory.unnamedEffects.push(effect);
101
+ isWaitingForNextEffect = false;
107
102
  },
108
103
  };
109
104
  return {
110
105
  register,
111
106
  prepare,
112
107
  isReplacement,
113
- signals,
108
+ moduleEffects,
114
109
  onHmr,
115
110
  getCurrentFilePath() {
116
111
  return currentModuleFilePath;
package/dist/hmr.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hmr.js","sourceRoot":"","sources":["../src/hmr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hmr.js","sourceRoot":"","sources":["../src/hmr.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,5 @@
1
- export * from "./useAsync.js";
2
- export * from "./useCallback.js";
3
- export * from "./useContext.js";
4
- export * from "./useEffect.js";
5
- export * from "./useEffectEvent.js";
6
- export * from "./useId.js";
7
- export * from "./useLayoutEffect.js";
8
- export * from "./useMemo.js";
9
- export * from "./usePromise.js";
10
- export * from "./useReducer.js";
11
- export * from "./useRef.js";
12
- export * from "./useState.js";
13
- export * from "./useSyncExternalStore.js";
14
- export * from "./useViewTransition.js";
1
+ export * from "./onCleanup.js";
2
+ export * from "./onMount.js";
3
+ export * from "./onBeforeMount.js";
15
4
  export * from "./utils.js";
16
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,YAAY,CAAA;AAC1B,cAAc,sBAAsB,CAAA;AACpC,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA"}
@@ -1,16 +1,5 @@
1
- export * from "./useAsync.js";
2
- export * from "./useCallback.js";
3
- export * from "./useContext.js";
4
- export * from "./useEffect.js";
5
- export * from "./useEffectEvent.js";
6
- export * from "./useId.js";
7
- export * from "./useLayoutEffect.js";
8
- export * from "./useMemo.js";
9
- export * from "./usePromise.js";
10
- export * from "./useReducer.js";
11
- export * from "./useRef.js";
12
- export * from "./useState.js";
13
- export * from "./useSyncExternalStore.js";
14
- export * from "./useViewTransition.js";
1
+ export * from "./onCleanup.js";
2
+ export * from "./onMount.js";
3
+ export * from "./onBeforeMount.js";
15
4
  export * from "./utils.js";
16
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,YAAY,CAAA;AAC1B,cAAc,sBAAsB,CAAA;AACpC,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Registers a callback that runs after the component is first mounted to the DOM, but before the DOM is painted.
3
+ * Optionally returns a cleanup function that will run when the component unmounts.
4
+ * Intended for use during component setup when the component returns a render function.
5
+ *
6
+ * @see https://kirujs.dev/docs/hooks/onBeforeMount
7
+ */
8
+ export declare function onBeforeMount(fn: () => (() => void) | void): void;
9
+ //# sourceMappingURL=onBeforeMount.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onBeforeMount.d.ts","sourceRoot":"","sources":["../../src/hooks/onBeforeMount.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAEjE"}
@@ -0,0 +1,12 @@
1
+ import { queueSetupEffect } from "./utils.js";
2
+ /**
3
+ * Registers a callback that runs after the component is first mounted to the DOM, but before the DOM is painted.
4
+ * Optionally returns a cleanup function that will run when the component unmounts.
5
+ * Intended for use during component setup when the component returns a render function.
6
+ *
7
+ * @see https://kirujs.dev/docs/hooks/onBeforeMount
8
+ */
9
+ export function onBeforeMount(fn) {
10
+ queueSetupEffect(fn, { immediate: true });
11
+ }
12
+ //# sourceMappingURL=onBeforeMount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onBeforeMount.js","sourceRoot":"","sources":["../../src/hooks/onBeforeMount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAE7C;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,EAA6B;IACzD,gBAAgB,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;AAC3C,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Registers a cleanup function that runs when the component unmounts.
3
+ * Intended for use during component setup when the component returns a render function.
4
+ *
5
+ * @see https://kirujs.dev/docs/hooks/onCleanup
6
+ */
7
+ export declare function onCleanup(fn: () => void): void;
8
+ //# sourceMappingURL=onCleanup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onCleanup.d.ts","sourceRoot":"","sources":["../../src/hooks/onCleanup.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAK9C"}
@@ -0,0 +1,15 @@
1
+ import { node } from "../globals.js";
2
+ import { generateRandomID, registerVNodeCleanup } from "../utils/index.js";
3
+ /**
4
+ * Registers a cleanup function that runs when the component unmounts.
5
+ * Intended for use during component setup when the component returns a render function.
6
+ *
7
+ * @see https://kirujs.dev/docs/hooks/onCleanup
8
+ */
9
+ export function onCleanup(fn) {
10
+ const vNode = node.current;
11
+ if (!vNode)
12
+ throw new Error("Cannot queue cleanup effect outside of a component");
13
+ registerVNodeCleanup(vNode, generateRandomID(10), fn);
14
+ }
15
+ //# sourceMappingURL=onCleanup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onCleanup.js","sourceRoot":"","sources":["../../src/hooks/onCleanup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACpC,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAE1E;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,EAAc;IACtC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAQ,CAAA;IAC3B,IAAI,CAAC,KAAK;QACR,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;IACvE,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;AACvD,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Registers a callback that runs after the component is first mounted to the DOM.
3
+ * Optionally returns a cleanup function that will run when the component unmounts.
4
+ * Intended for use during component setup when the component returns a render function.
5
+ *
6
+ * @see https://kirujs.dev/docs/hooks/onMount
7
+ */
8
+ export declare function onMount(fn: () => (() => void) | void): void;
9
+ //# sourceMappingURL=onMount.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onMount.d.ts","sourceRoot":"","sources":["../../src/hooks/onMount.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAE3D"}
@@ -0,0 +1,12 @@
1
+ import { queueSetupEffect } from "./utils.js";
2
+ /**
3
+ * Registers a callback that runs after the component is first mounted to the DOM.
4
+ * Optionally returns a cleanup function that will run when the component unmounts.
5
+ * Intended for use during component setup when the component returns a render function.
6
+ *
7
+ * @see https://kirujs.dev/docs/hooks/onMount
8
+ */
9
+ export function onMount(fn) {
10
+ queueSetupEffect(fn);
11
+ }
12
+ //# sourceMappingURL=onMount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onMount.js","sourceRoot":"","sources":["../../src/hooks/onMount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAE7C;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAC,EAA6B;IACnD,gBAAgB,CAAC,EAAE,CAAC,CAAA;AACtB,CAAC"}
@@ -1,64 +1,4 @@
1
- export { cleanupHook, depsRequireChange, useHook, useVNode, useHookDebugGroup, useRequestUpdate, HookDebugGroupAction, type HookState, type HookCallback, type HookCallbackContext as HookCallbackState, };
2
- type HookState<T> = Kiru.Hook<T>;
3
- declare enum HookDebugGroupAction {
4
- Start = "start",
5
- End = "end"
6
- }
7
- /**
8
- * **dev only - this is a no-op in production.**
9
- *
10
- * Used to create 'groups' of hooks in the devtools.
11
- * Useful for debugging and profiling.
12
- */
13
- declare const useHookDebugGroup: (name: string, action: HookDebugGroupAction) => void;
14
- /**
15
- * Used obtain an 'requestUpdate' function for the current component.
16
- */
17
- declare const useRequestUpdate: () => () => void;
18
- /**
19
- * Used to obtain the 'VNode' for the current component.
20
- */
21
- declare const useVNode: () => Kiru.VNode;
22
- type HookCallbackContext<T> = {
23
- /**
24
- * The current state of the hook
25
- */
26
- hook: HookState<T>;
27
- /**
28
- * Indicates if this is the first time the hook has been initialized
29
- */
30
- isInit: boolean;
31
- /**
32
- * Dev mode only - indicates if the hook is being run as a result of a HMR update.
33
- * This is the time to clean up the previous version of the hook if necessary, ie. initial arguments changed.
34
- */
35
- isHMR?: boolean;
36
- /**
37
- * Queues the current component to be re-rendered
38
- */
39
- update: () => void;
40
- /**
41
- * Queues an effect to be run, either immediately or on the next render
42
- */
43
- queueEffect: (callback: Function, opts?: {
44
- immediate?: boolean;
45
- }) => void;
46
- /**
47
- * The VNode associated with the current component
48
- */
49
- vNode: Kiru.VNode;
50
- /**
51
- * The index of the current hook.
52
- * You can count on this being stable across renders,
53
- * and unique across separate hooks in the same component.
54
- */
55
- index: number;
56
- };
57
- type HookCallback<T> = (state: HookCallbackContext<T>) => any;
58
- declare function useHook<T extends () => Record<string, unknown>, U extends HookCallback<ReturnType<T>>>(hookName: string, hookInitializer: T, callback: U): ReturnType<U>;
59
- declare function useHook<T extends Record<string, unknown>, U extends HookCallback<T>>(hookName: string, hookData: T, callback: U): ReturnType<U>;
60
- declare function cleanupHook(hook: {
61
- cleanup?: () => void;
1
+ export declare function queueSetupEffect(effect: Kiru.LifecycleHookCallback, opts?: {
2
+ immediate?: boolean;
62
3
  }): void;
63
- declare function depsRequireChange(a?: unknown[], b?: unknown[]): boolean;
64
4
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/hooks/utils.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,OAAO,EACP,QAAQ,EACR,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,mBAAmB,IAAI,iBAAiB,GAC9C,CAAA;AAED,KAAK,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAEhC,aAAK,oBAAoB;IACvB,KAAK,UAAU;IACf,GAAG,QAAQ;CACZ;AAED;;;;;GAKG;AACH,QAAA,MAAM,iBAAiB,GAAI,MAAM,MAAM,EAAE,QAAQ,oBAAoB,SAQpE,CAAA;AAED;;GAEG;AACH,QAAA,MAAM,gBAAgB,kBAGrB,CAAA;AAED;;GAEG;AACH,QAAA,MAAM,QAAQ,kBAEb,CAAA;AAED,KAAK,mBAAmB,CAAC,CAAC,IAAI;IAC5B;;OAEG;IACH,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IAClB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAA;IACf;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;OAEG;IACH,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB;;OAEG;IACH,WAAW,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAA;IACzE;;OAEG;IACH,KAAK,EAAE,IAAI,CAAC,KAAK,CAAA;IACjB;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AACD,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAAK,GAAG,CAAA;AAK7D,iBAAS,OAAO,CACd,CAAC,SAAS,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,CAAC,SAAS,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EACrC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;AAEnE,iBAAS,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EAC3E,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,CAAC,GACV,UAAU,CAAC,CAAC,CAAC,CAAA;AA2HhB,iBAAS,WAAW,CAAC,IAAI,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CAAE,QAKlD;AAED,iBAAS,iBAAiB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,WAOtD"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/hooks/utils.ts"],"names":[],"mappings":"AAGA,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,IAAI,CAAC,qBAAqB,EAClC,IAAI,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7B,IAAI,CAyBN"}