vorma 0.0.0-pre.0 → 0.82.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 (225) hide show
  1. package/LICENSE +28 -0
  2. package/README.md +48 -0
  3. package/internal/framework/_typescript/client/index.ts +64 -0
  4. package/internal/framework/_typescript/client/src/asset_manager.ts +67 -0
  5. package/internal/framework/_typescript/client/src/client.ts +1201 -0
  6. package/internal/framework/_typescript/client/src/client_loaders.ts +249 -0
  7. package/internal/framework/_typescript/client/src/component_loader.ts +105 -0
  8. package/internal/framework/_typescript/client/src/error_boundary.ts +7 -0
  9. package/internal/framework/_typescript/client/src/events.ts +54 -0
  10. package/internal/framework/_typescript/client/src/global_loading_indicator/global_loading_indicator.ts +125 -0
  11. package/internal/framework/_typescript/client/src/hard_reload.ts +1 -0
  12. package/internal/framework/_typescript/client/src/head_elements/head_elements.ts +193 -0
  13. package/internal/framework/_typescript/client/src/history/history.ts +118 -0
  14. package/internal/framework/_typescript/client/src/history/npm_history_types.ts +83 -0
  15. package/internal/framework/_typescript/client/src/hmr/hmr.ts +71 -0
  16. package/internal/framework/_typescript/client/src/init_client.ts +134 -0
  17. package/internal/framework/_typescript/client/src/links.ts +218 -0
  18. package/internal/framework/_typescript/client/src/redirects/redirects.ts +203 -0
  19. package/internal/framework/_typescript/client/src/rendering.ts +135 -0
  20. package/internal/framework/_typescript/client/src/resolve_public_href.ts +15 -0
  21. package/internal/framework/_typescript/client/src/scroll_state_manager.ts +100 -0
  22. package/internal/framework/_typescript/client/src/static_route_defs/route_def_helpers.ts +22 -0
  23. package/internal/framework/_typescript/client/src/ui_lib_impl_helpers/link_components.ts +131 -0
  24. package/internal/framework/_typescript/client/src/ui_lib_impl_helpers/route_components.ts +56 -0
  25. package/internal/framework/_typescript/client/src/ui_lib_impl_helpers/typed_navigate.ts +58 -0
  26. package/internal/framework/_typescript/client/src/utils/errors.ts +10 -0
  27. package/internal/framework/_typescript/client/src/utils/logging.ts +7 -0
  28. package/internal/framework/_typescript/client/src/vorma_app_helpers/vorma_app_helpers.ts +290 -0
  29. package/internal/framework/_typescript/client/src/vorma_ctx/vorma_ctx.ts +128 -0
  30. package/internal/framework/_typescript/client/src/window_focus_revalidation/window_focus_revalidation.ts +32 -0
  31. package/internal/framework/_typescript/client/tsconfig.json +3 -0
  32. package/internal/framework/_typescript/create/main.ts +378 -0
  33. package/internal/framework/_typescript/create/package.json +33 -0
  34. package/internal/framework/_typescript/create/pnpm-lock.yaml +70 -0
  35. package/internal/framework/_typescript/create/tsconfig.json +3 -0
  36. package/internal/framework/_typescript/preact/index.tsx +10 -0
  37. package/internal/framework/_typescript/preact/src/helpers.ts +113 -0
  38. package/internal/framework/_typescript/preact/src/link.tsx +107 -0
  39. package/internal/framework/_typescript/preact/src/preact.tsx +191 -0
  40. package/internal/framework/_typescript/preact/tsconfig.json +7 -0
  41. package/internal/framework/_typescript/react/index.tsx +10 -0
  42. package/internal/framework/_typescript/react/src/helpers.ts +118 -0
  43. package/internal/framework/_typescript/react/src/link.tsx +115 -0
  44. package/internal/framework/_typescript/react/src/react.tsx +299 -0
  45. package/internal/framework/_typescript/react/tsconfig.json +6 -0
  46. package/internal/framework/_typescript/solid/index.tsx +10 -0
  47. package/internal/framework/_typescript/solid/src/helpers.ts +114 -0
  48. package/internal/framework/_typescript/solid/src/link.tsx +104 -0
  49. package/internal/framework/_typescript/solid/src/solid.tsx +204 -0
  50. package/internal/framework/_typescript/solid/tsconfig.json +7 -0
  51. package/internal/framework/_typescript/vite/tsconfig.json +3 -0
  52. package/internal/framework/_typescript/vite/vite.ts +93 -0
  53. package/internal/site/frontend/assets/vorma-banner.webp +0 -0
  54. package/kit/_typescript/converters/converters.ts +152 -0
  55. package/kit/_typescript/cookies/cookies.ts +18 -0
  56. package/kit/_typescript/csrf/csrf.ts +10 -0
  57. package/kit/_typescript/debounce/debounce.ts +17 -0
  58. package/kit/_typescript/fmt/fmt.ts +3 -0
  59. package/kit/_typescript/json/deep_equals.ts +54 -0
  60. package/kit/_typescript/json/json.ts +3 -0
  61. package/kit/_typescript/json/search_param_serializer.ts +49 -0
  62. package/kit/_typescript/json/stringify_stable.ts +43 -0
  63. package/kit/_typescript/listeners/listeners.ts +16 -0
  64. package/kit/_typescript/matcher/find_best_match.ts +205 -0
  65. package/kit/_typescript/matcher/find_nested_matches.ts +357 -0
  66. package/kit/_typescript/matcher/parse_segments.ts +30 -0
  67. package/kit/_typescript/matcher/register.ts +271 -0
  68. package/kit/_typescript/theme/theme.ts +166 -0
  69. package/kit/_typescript/tsconfig.json +3 -0
  70. package/kit/_typescript/url/url.ts +132 -0
  71. package/npm_dist/internal/framework/_typescript/client/index.d.ts +17 -0
  72. package/npm_dist/internal/framework/_typescript/client/index.d.ts.map +1 -0
  73. package/npm_dist/internal/framework/_typescript/client/index.js +2489 -0
  74. package/npm_dist/internal/framework/_typescript/client/index.js.map +7 -0
  75. package/npm_dist/internal/framework/_typescript/client/src/asset_manager.d.ts +6 -0
  76. package/npm_dist/internal/framework/_typescript/client/src/asset_manager.d.ts.map +1 -0
  77. package/npm_dist/internal/framework/_typescript/client/src/client.d.ts +119 -0
  78. package/npm_dist/internal/framework/_typescript/client/src/client.d.ts.map +1 -0
  79. package/npm_dist/internal/framework/_typescript/client/src/client_loaders.d.ts +18 -0
  80. package/npm_dist/internal/framework/_typescript/client/src/client_loaders.d.ts.map +1 -0
  81. package/npm_dist/internal/framework/_typescript/client/src/component_loader.d.ts +10 -0
  82. package/npm_dist/internal/framework/_typescript/client/src/component_loader.d.ts.map +1 -0
  83. package/npm_dist/internal/framework/_typescript/client/src/error_boundary.d.ts +3 -0
  84. package/npm_dist/internal/framework/_typescript/client/src/error_boundary.d.ts.map +1 -0
  85. package/npm_dist/internal/framework/_typescript/client/src/events.d.ts +26 -0
  86. package/npm_dist/internal/framework/_typescript/client/src/events.d.ts.map +1 -0
  87. package/npm_dist/internal/framework/_typescript/client/src/global_loading_indicator/global_loading_indicator.d.ts +12 -0
  88. package/npm_dist/internal/framework/_typescript/client/src/global_loading_indicator/global_loading_indicator.d.ts.map +1 -0
  89. package/npm_dist/internal/framework/_typescript/client/src/hard_reload.d.ts +2 -0
  90. package/npm_dist/internal/framework/_typescript/client/src/hard_reload.d.ts.map +1 -0
  91. package/npm_dist/internal/framework/_typescript/client/src/head_elements/head_elements.d.ts +7 -0
  92. package/npm_dist/internal/framework/_typescript/client/src/head_elements/head_elements.d.ts.map +1 -0
  93. package/npm_dist/internal/framework/_typescript/client/src/history/history.d.ts +14 -0
  94. package/npm_dist/internal/framework/_typescript/client/src/history/history.d.ts.map +1 -0
  95. package/npm_dist/internal/framework/_typescript/client/src/history/npm_history_types.d.ts +84 -0
  96. package/npm_dist/internal/framework/_typescript/client/src/history/npm_history_types.d.ts.map +1 -0
  97. package/npm_dist/internal/framework/_typescript/client/src/hmr/hmr.d.ts +3 -0
  98. package/npm_dist/internal/framework/_typescript/client/src/hmr/hmr.d.ts.map +1 -0
  99. package/npm_dist/internal/framework/_typescript/client/src/init_client.d.ts +9 -0
  100. package/npm_dist/internal/framework/_typescript/client/src/init_client.d.ts.map +1 -0
  101. package/npm_dist/internal/framework/_typescript/client/src/links.d.ts +33 -0
  102. package/npm_dist/internal/framework/_typescript/client/src/links.d.ts.map +1 -0
  103. package/npm_dist/internal/framework/_typescript/client/src/redirects/redirects.d.ts +26 -0
  104. package/npm_dist/internal/framework/_typescript/client/src/redirects/redirects.d.ts.map +1 -0
  105. package/npm_dist/internal/framework/_typescript/client/src/rendering.d.ts +18 -0
  106. package/npm_dist/internal/framework/_typescript/client/src/rendering.d.ts.map +1 -0
  107. package/npm_dist/internal/framework/_typescript/client/src/resolve_public_href.d.ts +2 -0
  108. package/npm_dist/internal/framework/_typescript/client/src/resolve_public_href.d.ts.map +1 -0
  109. package/npm_dist/internal/framework/_typescript/client/src/scroll_state_manager.d.ts +22 -0
  110. package/npm_dist/internal/framework/_typescript/client/src/scroll_state_manager.d.ts.map +1 -0
  111. package/npm_dist/internal/framework/_typescript/client/src/static_route_defs/route_def_helpers.d.ts +12 -0
  112. package/npm_dist/internal/framework/_typescript/client/src/static_route_defs/route_def_helpers.d.ts.map +1 -0
  113. package/npm_dist/internal/framework/_typescript/client/src/ui_lib_impl_helpers/link_components.d.ts +28 -0
  114. package/npm_dist/internal/framework/_typescript/client/src/ui_lib_impl_helpers/link_components.d.ts.map +1 -0
  115. package/npm_dist/internal/framework/_typescript/client/src/ui_lib_impl_helpers/route_components.d.ts +18 -0
  116. package/npm_dist/internal/framework/_typescript/client/src/ui_lib_impl_helpers/route_components.d.ts.map +1 -0
  117. package/npm_dist/internal/framework/_typescript/client/src/ui_lib_impl_helpers/typed_navigate.d.ts +11 -0
  118. package/npm_dist/internal/framework/_typescript/client/src/ui_lib_impl_helpers/typed_navigate.d.ts.map +1 -0
  119. package/npm_dist/internal/framework/_typescript/client/src/utils/errors.d.ts +3 -0
  120. package/npm_dist/internal/framework/_typescript/client/src/utils/errors.d.ts.map +1 -0
  121. package/npm_dist/internal/framework/_typescript/client/src/utils/logging.d.ts +3 -0
  122. package/npm_dist/internal/framework/_typescript/client/src/utils/logging.d.ts.map +1 -0
  123. package/npm_dist/internal/framework/_typescript/client/src/vorma_app_helpers/vorma_app_helpers.d.ts +119 -0
  124. package/npm_dist/internal/framework/_typescript/client/src/vorma_app_helpers/vorma_app_helpers.d.ts.map +1 -0
  125. package/npm_dist/internal/framework/_typescript/client/src/vorma_ctx/vorma_ctx.d.ts +88 -0
  126. package/npm_dist/internal/framework/_typescript/client/src/vorma_ctx/vorma_ctx.d.ts.map +1 -0
  127. package/npm_dist/internal/framework/_typescript/client/src/window_focus_revalidation/window_focus_revalidation.d.ts +10 -0
  128. package/npm_dist/internal/framework/_typescript/client/src/window_focus_revalidation/window_focus_revalidation.d.ts.map +1 -0
  129. package/npm_dist/internal/framework/_typescript/create/main.d.ts +3 -0
  130. package/npm_dist/internal/framework/_typescript/create/main.d.ts.map +1 -0
  131. package/npm_dist/internal/framework/_typescript/preact/index.d.ts +4 -0
  132. package/npm_dist/internal/framework/_typescript/preact/index.d.ts.map +1 -0
  133. package/npm_dist/internal/framework/_typescript/preact/index.js +283 -0
  134. package/npm_dist/internal/framework/_typescript/preact/index.js.map +7 -0
  135. package/npm_dist/internal/framework/_typescript/preact/src/helpers.d.ts +21 -0
  136. package/npm_dist/internal/framework/_typescript/preact/src/helpers.d.ts.map +1 -0
  137. package/npm_dist/internal/framework/_typescript/preact/src/link.d.ts +11 -0
  138. package/npm_dist/internal/framework/_typescript/preact/src/link.d.ts.map +1 -0
  139. package/npm_dist/internal/framework/_typescript/preact/src/preact.d.ts +21 -0
  140. package/npm_dist/internal/framework/_typescript/preact/src/preact.d.ts.map +1 -0
  141. package/npm_dist/internal/framework/_typescript/react/index.d.ts +4 -0
  142. package/npm_dist/internal/framework/_typescript/react/index.d.ts.map +1 -0
  143. package/npm_dist/internal/framework/_typescript/react/index.js +370 -0
  144. package/npm_dist/internal/framework/_typescript/react/index.js.map +7 -0
  145. package/npm_dist/internal/framework/_typescript/react/src/helpers.d.ts +21 -0
  146. package/npm_dist/internal/framework/_typescript/react/src/helpers.d.ts.map +1 -0
  147. package/npm_dist/internal/framework/_typescript/react/src/link.d.ts +11 -0
  148. package/npm_dist/internal/framework/_typescript/react/src/link.d.ts.map +1 -0
  149. package/npm_dist/internal/framework/_typescript/react/src/react.d.ts +20 -0
  150. package/npm_dist/internal/framework/_typescript/react/src/react.d.ts.map +1 -0
  151. package/npm_dist/internal/framework/_typescript/solid/index.d.ts +4 -0
  152. package/npm_dist/internal/framework/_typescript/solid/index.d.ts.map +1 -0
  153. package/npm_dist/internal/framework/_typescript/solid/index.js +314 -0
  154. package/npm_dist/internal/framework/_typescript/solid/index.js.map +7 -0
  155. package/npm_dist/internal/framework/_typescript/solid/src/helpers.d.ts +22 -0
  156. package/npm_dist/internal/framework/_typescript/solid/src/helpers.d.ts.map +1 -0
  157. package/npm_dist/internal/framework/_typescript/solid/src/link.d.ts +11 -0
  158. package/npm_dist/internal/framework/_typescript/solid/src/link.d.ts.map +1 -0
  159. package/npm_dist/internal/framework/_typescript/solid/src/solid.d.ts +22 -0
  160. package/npm_dist/internal/framework/_typescript/solid/src/solid.d.ts.map +1 -0
  161. package/npm_dist/internal/framework/_typescript/vite/vite.d.ts +11 -0
  162. package/npm_dist/internal/framework/_typescript/vite/vite.d.ts.map +1 -0
  163. package/npm_dist/internal/framework/_typescript/vite/vite.js +82 -0
  164. package/npm_dist/internal/framework/_typescript/vite/vite.js.map +7 -0
  165. package/npm_dist/kit/_typescript/chunk-YBAPNBS2.js +202 -0
  166. package/npm_dist/kit/_typescript/chunk-YBAPNBS2.js.map +7 -0
  167. package/npm_dist/kit/_typescript/converters/converters.d.ts +26 -0
  168. package/npm_dist/kit/_typescript/converters/converters.d.ts.map +1 -0
  169. package/npm_dist/kit/_typescript/converters/converters.js +99 -0
  170. package/npm_dist/kit/_typescript/converters/converters.js.map +7 -0
  171. package/npm_dist/kit/_typescript/cookies/cookies.d.ts +13 -0
  172. package/npm_dist/kit/_typescript/cookies/cookies.d.ts.map +1 -0
  173. package/npm_dist/kit/_typescript/cookies/cookies.js +13 -0
  174. package/npm_dist/kit/_typescript/cookies/cookies.js.map +7 -0
  175. package/npm_dist/kit/_typescript/csrf/csrf.d.ts +5 -0
  176. package/npm_dist/kit/_typescript/csrf/csrf.d.ts.map +1 -0
  177. package/npm_dist/kit/_typescript/csrf/csrf.js +11 -0
  178. package/npm_dist/kit/_typescript/csrf/csrf.js.map +7 -0
  179. package/npm_dist/kit/_typescript/debounce/debounce.d.ts +4 -0
  180. package/npm_dist/kit/_typescript/debounce/debounce.d.ts.map +1 -0
  181. package/npm_dist/kit/_typescript/debounce/debounce.js +16 -0
  182. package/npm_dist/kit/_typescript/debounce/debounce.js.map +7 -0
  183. package/npm_dist/kit/_typescript/fmt/fmt.d.ts +2 -0
  184. package/npm_dist/kit/_typescript/fmt/fmt.d.ts.map +1 -0
  185. package/npm_dist/kit/_typescript/fmt/fmt.js +8 -0
  186. package/npm_dist/kit/_typescript/fmt/fmt.js.map +7 -0
  187. package/npm_dist/kit/_typescript/json/deep_equals.d.ts +7 -0
  188. package/npm_dist/kit/_typescript/json/deep_equals.d.ts.map +1 -0
  189. package/npm_dist/kit/_typescript/json/json.d.ts +4 -0
  190. package/npm_dist/kit/_typescript/json/json.d.ts.map +1 -0
  191. package/npm_dist/kit/_typescript/json/json.js +110 -0
  192. package/npm_dist/kit/_typescript/json/json.js.map +7 -0
  193. package/npm_dist/kit/_typescript/json/search_param_serializer.d.ts +2 -0
  194. package/npm_dist/kit/_typescript/json/search_param_serializer.d.ts.map +1 -0
  195. package/npm_dist/kit/_typescript/json/stringify_stable.d.ts +7 -0
  196. package/npm_dist/kit/_typescript/json/stringify_stable.d.ts.map +1 -0
  197. package/npm_dist/kit/_typescript/listeners/listeners.d.ts +2 -0
  198. package/npm_dist/kit/_typescript/listeners/listeners.d.ts.map +1 -0
  199. package/npm_dist/kit/_typescript/listeners/listeners.js +20 -0
  200. package/npm_dist/kit/_typescript/listeners/listeners.js.map +7 -0
  201. package/npm_dist/kit/_typescript/matcher/find_best_match.d.ts +10 -0
  202. package/npm_dist/kit/_typescript/matcher/find_best_match.d.ts.map +1 -0
  203. package/npm_dist/kit/_typescript/matcher/find_best_match.js +146 -0
  204. package/npm_dist/kit/_typescript/matcher/find_best_match.js.map +7 -0
  205. package/npm_dist/kit/_typescript/matcher/find_nested_matches.d.ts +14 -0
  206. package/npm_dist/kit/_typescript/matcher/find_nested_matches.d.ts.map +1 -0
  207. package/npm_dist/kit/_typescript/matcher/find_nested_matches.js +248 -0
  208. package/npm_dist/kit/_typescript/matcher/find_nested_matches.js.map +7 -0
  209. package/npm_dist/kit/_typescript/matcher/parse_segments.d.ts +2 -0
  210. package/npm_dist/kit/_typescript/matcher/parse_segments.d.ts.map +1 -0
  211. package/npm_dist/kit/_typescript/matcher/register.d.ts +54 -0
  212. package/npm_dist/kit/_typescript/matcher/register.d.ts.map +1 -0
  213. package/npm_dist/kit/_typescript/matcher/register.js +21 -0
  214. package/npm_dist/kit/_typescript/matcher/register.js.map +7 -0
  215. package/npm_dist/kit/_typescript/theme/theme.d.ts +23 -0
  216. package/npm_dist/kit/_typescript/theme/theme.d.ts.map +1 -0
  217. package/npm_dist/kit/_typescript/theme/theme.js +122 -0
  218. package/npm_dist/kit/_typescript/theme/theme.js.map +7 -0
  219. package/npm_dist/kit/_typescript/url/url.d.ts +30 -0
  220. package/npm_dist/kit/_typescript/url/url.d.ts.map +1 -0
  221. package/npm_dist/kit/_typescript/url/url.js +100 -0
  222. package/npm_dist/kit/_typescript/url/url.js.map +7 -0
  223. package/package.json +135 -3
  224. package/tsconfig.base.json +17 -0
  225. package/index.js +0 -1
@@ -0,0 +1,21 @@
1
+ import { h } from "preact";
2
+ declare const loadersData: import("@preact/signals-core").Signal<any[]>;
3
+ declare const clientLoadersData: import("@preact/signals-core").Signal<any[]>;
4
+ declare const routerData: import("@preact/signals-core").Signal<{
5
+ buildID: string;
6
+ matchedPatterns: string[];
7
+ splatValues: string[];
8
+ params: Record<string, string>;
9
+ rootData: any;
10
+ }>;
11
+ export { clientLoadersData, loadersData, routerData };
12
+ export declare const location: import("@preact/signals-core").Signal<{
13
+ pathname: string;
14
+ search: string;
15
+ hash: string;
16
+ state: unknown;
17
+ }>;
18
+ export declare function VormaRootOutlet(props: {
19
+ idx?: number;
20
+ }): h.JSX.Element;
21
+ //# sourceMappingURL=preact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preact.d.ts","sourceRoot":"","sources":["../../../../../../internal/framework/_typescript/preact/src/preact.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAiB3B,QAAA,MAAM,WAAW,8CAAiC,CAAC;AACnD,QAAA,MAAM,iBAAiB,8CAAuC,CAAC;AAC/D,QAAA,MAAM,UAAU;;;;;;EAA0B,CAAC;AAQ3C,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AA4BtD,eAAO,MAAM,QAAQ;;;;;EAAwB,CAAC;AAM9C,wBAAgB,eAAe,CAAC,KAAK,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAgItE"}
@@ -0,0 +1,4 @@
1
+ export { makeTypedAddClientLoader, makeTypedUseLoaderData, makeTypedUsePatternLoaderData, makeTypedUseRouterData, type VormaRoute, type VormaRouteProps, } from "./src/helpers.ts";
2
+ export { VormaLink, makeTypedLink } from "./src/link.tsx";
3
+ export { VormaRootOutlet, useLocation } from "./src/react.tsx";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../internal/framework/_typescript/react/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EACN,wBAAwB,EACxB,sBAAsB,EACtB,6BAA6B,EAC7B,sBAAsB,EACtB,KAAK,UAAU,EACf,KAAK,eAAe,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,370 @@
1
+ // internal/framework/_typescript/react/src/helpers.ts
2
+ import { useMemo as useMemo2 } from "react";
3
+ import {
4
+ __registerClientLoaderPattern,
5
+ __runClientLoadersAfterHMRUpdate,
6
+ __vormaClientGlobal
7
+ } from "vorma/client";
8
+
9
+ // internal/framework/_typescript/react/src/react.tsx
10
+ import {
11
+ useEffect,
12
+ useLayoutEffect,
13
+ useMemo,
14
+ useRef,
15
+ useState,
16
+ useSyncExternalStore
17
+ } from "react";
18
+ import {
19
+ __applyScrollState,
20
+ addLocationListener,
21
+ addRouteChangeListener,
22
+ __vormaClientGlobal as ctx,
23
+ getLocation,
24
+ getRouterData
25
+ } from "vorma/client";
26
+ import { Fragment, jsx } from "react/jsx-runtime";
27
+ function getInitialState() {
28
+ return {
29
+ navigation: {
30
+ latestEvent: null,
31
+ loadersData: ctx.get("loadersData"),
32
+ clientLoadersData: ctx.get("clientLoadersData"),
33
+ routerData: getRouterData(),
34
+ outermostError: ctx.get("outermostError"),
35
+ outermostErrorIdx: ctx.get("outermostErrorIdx"),
36
+ activeComponents: ctx.get("activeComponents"),
37
+ activeErrorBoundary: ctx.get("activeErrorBoundary"),
38
+ importURLs: ctx.get("importURLs"),
39
+ exportKeys: ctx.get("exportKeys")
40
+ },
41
+ location: getLocation()
42
+ };
43
+ }
44
+ var state = getInitialState();
45
+ var listeners = /* @__PURE__ */ new Set();
46
+ var store = {
47
+ getSnapshot: () => state,
48
+ subscribe: (listener) => {
49
+ listeners.add(listener);
50
+ return () => listeners.delete(listener);
51
+ },
52
+ setState: (updater) => {
53
+ const nextState = updater(state);
54
+ if (nextState !== state) {
55
+ state = nextState;
56
+ listeners.forEach((listener) => listener());
57
+ }
58
+ }
59
+ };
60
+ function useStoreSelector(selector) {
61
+ const getSelectedSnapshot = useMemo(() => {
62
+ let selectedSnapshot;
63
+ return () => {
64
+ const nextSnapshot = selector(store.getSnapshot());
65
+ if (selectedSnapshot === void 0 || !Object.is(selectedSnapshot, nextSnapshot)) {
66
+ selectedSnapshot = nextSnapshot;
67
+ }
68
+ return selectedSnapshot;
69
+ };
70
+ }, [selector]);
71
+ return useSyncExternalStore(store.subscribe, getSelectedSnapshot);
72
+ }
73
+ function useLoadersData() {
74
+ return useStoreSelector((s) => s.navigation.loadersData);
75
+ }
76
+ function useClientLoadersData() {
77
+ return useStoreSelector((s) => s.navigation.clientLoadersData);
78
+ }
79
+ function useRouterData() {
80
+ return useStoreSelector((s) => s.navigation.routerData);
81
+ }
82
+ function useLatestEvent() {
83
+ return useStoreSelector((s) => s.navigation.latestEvent);
84
+ }
85
+ function useOutermostError() {
86
+ return useStoreSelector((s) => s.navigation.outermostError);
87
+ }
88
+ function useOutermostErrorIdx() {
89
+ return useStoreSelector((s) => s.navigation.outermostErrorIdx);
90
+ }
91
+ function useActiveComponents() {
92
+ return useStoreSelector((s) => s.navigation.activeComponents);
93
+ }
94
+ function useActiveErrorBoundary() {
95
+ return useStoreSelector((s) => s.navigation.activeErrorBoundary);
96
+ }
97
+ function useImportURLs() {
98
+ return useStoreSelector((s) => s.navigation.importURLs);
99
+ }
100
+ function useExportKeys() {
101
+ return useStoreSelector((s) => s.navigation.exportKeys);
102
+ }
103
+ var isInited = false;
104
+ function initUIListeners() {
105
+ if (isInited) return;
106
+ isInited = true;
107
+ addRouteChangeListener((e) => {
108
+ store.setState((prev) => {
109
+ return {
110
+ ...prev,
111
+ navigation: {
112
+ latestEvent: e,
113
+ loadersData: ctx.get("loadersData"),
114
+ clientLoadersData: ctx.get("clientLoadersData"),
115
+ routerData: getRouterData(),
116
+ outermostError: ctx.get("outermostError"),
117
+ outermostErrorIdx: ctx.get("outermostErrorIdx"),
118
+ activeComponents: ctx.get("activeComponents"),
119
+ activeErrorBoundary: ctx.get("activeErrorBoundary"),
120
+ importURLs: ctx.get("importURLs"),
121
+ exportKeys: ctx.get("exportKeys")
122
+ }
123
+ };
124
+ });
125
+ });
126
+ addLocationListener(() => {
127
+ store.setState((prev) => {
128
+ return {
129
+ ...prev,
130
+ location: getLocation()
131
+ };
132
+ });
133
+ });
134
+ }
135
+ function useLocation() {
136
+ return useStoreSelector((s) => s.location);
137
+ }
138
+ function VormaRootOutlet(props) {
139
+ const idx = props.idx ?? 0;
140
+ const initialRenderRef = useRef(true);
141
+ if (idx === 0 && initialRenderRef.current) {
142
+ initUIListeners();
143
+ initialRenderRef.current = false;
144
+ store.setState((prev) => {
145
+ return {
146
+ ...prev,
147
+ navigation: {
148
+ latestEvent: null,
149
+ loadersData: ctx.get("loadersData"),
150
+ clientLoadersData: ctx.get("clientLoadersData"),
151
+ routerData: getRouterData(),
152
+ outermostError: ctx.get("outermostError"),
153
+ outermostErrorIdx: ctx.get("outermostErrorIdx"),
154
+ activeComponents: ctx.get("activeComponents"),
155
+ activeErrorBoundary: ctx.get("activeErrorBoundary"),
156
+ importURLs: ctx.get("importURLs"),
157
+ exportKeys: ctx.get("exportKeys")
158
+ }
159
+ };
160
+ });
161
+ }
162
+ const latestEvent = useLatestEvent();
163
+ const loadersData = useLoadersData();
164
+ const outermostError = useOutermostError();
165
+ const outermostErrorIdx = useOutermostErrorIdx();
166
+ const activeComponents = useActiveComponents();
167
+ const activeErrorBoundary = useActiveErrorBoundary();
168
+ const importURLs = useImportURLs();
169
+ const exportKeys = useExportKeys();
170
+ const [currentImportURL, setCurrentImportURL] = useState(importURLs[idx]);
171
+ const [currentExportKey, setCurrentExportKey] = useState(exportKeys[idx]);
172
+ const [nextImportURL, setNextImportURL] = useState(importURLs[idx + 1]);
173
+ const [nextExportKey, setNextExportKey] = useState(exportKeys[idx + 1]);
174
+ useEffect(() => {
175
+ if (!currentImportURL || !latestEvent) {
176
+ return;
177
+ }
178
+ const newCurrentImportURL = importURLs[idx];
179
+ const newCurrentExportKey = exportKeys[idx];
180
+ if (currentImportURL !== newCurrentImportURL) {
181
+ setCurrentImportURL(newCurrentImportURL);
182
+ }
183
+ if (currentExportKey !== newCurrentExportKey) {
184
+ setCurrentExportKey(newCurrentExportKey);
185
+ }
186
+ const newNextImportURL = importURLs[idx + 1];
187
+ const newNextExportKey = exportKeys[idx + 1];
188
+ if (nextImportURL !== newNextImportURL) {
189
+ setNextImportURL(newNextImportURL);
190
+ }
191
+ if (nextExportKey !== newNextExportKey) {
192
+ setNextExportKey(newNextExportKey);
193
+ }
194
+ }, [latestEvent, importURLs, exportKeys]);
195
+ useLayoutEffect(() => {
196
+ if (!latestEvent || idx !== 0) {
197
+ return;
198
+ }
199
+ window.requestAnimationFrame(() => {
200
+ __applyScrollState(latestEvent.detail.__scrollState);
201
+ });
202
+ }, [latestEvent, idx]);
203
+ const isErrorIdxMemo = useMemo(() => {
204
+ return idx === outermostErrorIdx;
205
+ }, [idx, outermostErrorIdx]);
206
+ const CurrentCompMemo = useMemo(() => {
207
+ if (isErrorIdxMemo) {
208
+ return null;
209
+ }
210
+ return activeComponents?.[idx];
211
+ }, [isErrorIdxMemo, currentImportURL, currentExportKey, activeComponents]);
212
+ const Outlet = useMemo(
213
+ () => (localProps) => {
214
+ return /* @__PURE__ */ jsx(VormaRootOutlet, { ...localProps, ...props, idx: idx + 1 });
215
+ },
216
+ [nextImportURL, nextExportKey]
217
+ );
218
+ const shouldFallbackOutletMemo = useMemo(() => {
219
+ if (isErrorIdxMemo) {
220
+ return false;
221
+ }
222
+ if (CurrentCompMemo) {
223
+ return false;
224
+ }
225
+ return idx + 1 < loadersData.length;
226
+ }, [isErrorIdxMemo, CurrentCompMemo, idx, loadersData]);
227
+ const ErrorCompMemo = useMemo(() => {
228
+ if (!isErrorIdxMemo) {
229
+ return null;
230
+ }
231
+ return activeErrorBoundary;
232
+ }, [isErrorIdxMemo, activeErrorBoundary]);
233
+ if (isErrorIdxMemo) {
234
+ if (ErrorCompMemo) {
235
+ return /* @__PURE__ */ jsx(ErrorCompMemo, { error: outermostError });
236
+ }
237
+ return /* @__PURE__ */ jsx(Fragment, { children: `Error: ${outermostError || "unknown"}` });
238
+ }
239
+ if (!CurrentCompMemo) {
240
+ if (shouldFallbackOutletMemo) {
241
+ return /* @__PURE__ */ jsx(Outlet, {});
242
+ }
243
+ return /* @__PURE__ */ jsx(Fragment, {});
244
+ }
245
+ return /* @__PURE__ */ jsx(CurrentCompMemo, { idx, Outlet });
246
+ }
247
+
248
+ // internal/framework/_typescript/react/src/helpers.ts
249
+ function makeTypedUseRouterData() {
250
+ return useRouterData;
251
+ }
252
+ function makeTypedUseLoaderData() {
253
+ return function useLoaderData(props) {
254
+ const loadersData = useLoadersData();
255
+ return loadersData[props.idx];
256
+ };
257
+ }
258
+ function makeTypedUsePatternLoaderData() {
259
+ return function usePatternLoaderData(pattern) {
260
+ const routerData = useRouterData();
261
+ const loadersData = useLoadersData();
262
+ const idx = useMemo2(() => {
263
+ return routerData.matchedPatterns.findIndex((p) => p === pattern);
264
+ }, [routerData.matchedPatterns, pattern]);
265
+ if (idx === -1) {
266
+ return void 0;
267
+ }
268
+ return loadersData[idx];
269
+ };
270
+ }
271
+ function makeTypedAddClientLoader() {
272
+ const m = __vormaClientGlobal.get("patternToWaitFnMap");
273
+ return function addClientLoader(props) {
274
+ const p = props.pattern;
275
+ const fn = props.clientLoader;
276
+ __registerClientLoaderPattern(p).catch((error) => {
277
+ console.error("Failed to register client loader pattern:", error);
278
+ });
279
+ m[p] = fn;
280
+ if (import.meta.env.DEV && props.reRunOnModuleChange) {
281
+ __runClientLoadersAfterHMRUpdate(props.reRunOnModuleChange, p);
282
+ }
283
+ const useClientLoaderData = (props2) => {
284
+ const clientLoadersData = useClientLoadersData();
285
+ const routerData = useRouterData();
286
+ const idx = useMemo2(() => {
287
+ if (props2) {
288
+ return props2.idx;
289
+ }
290
+ const matched = routerData.matchedPatterns;
291
+ return matched.findIndex((pattern) => pattern === p);
292
+ }, [props2, routerData.matchedPatterns]);
293
+ if (idx === -1) return void 0;
294
+ return clientLoadersData[idx];
295
+ };
296
+ return useClientLoaderData;
297
+ };
298
+ }
299
+
300
+ // internal/framework/_typescript/react/src/link.tsx
301
+ import { memo } from "react";
302
+ import {
303
+ __makeFinalLinkProps,
304
+ __resolvePath
305
+ } from "vorma/client";
306
+ import { jsx as jsx2 } from "react/jsx-runtime";
307
+ var VormaLink = memo(function VormaLink2(props) {
308
+ const finalLinkProps = __makeFinalLinkProps(props);
309
+ const { prefetch, scrollToTop, replace, state: state2, ...rest } = props;
310
+ return /* @__PURE__ */ jsx2(
311
+ "a",
312
+ {
313
+ "data-external": finalLinkProps.dataExternal,
314
+ ...rest,
315
+ onPointerEnter: finalLinkProps.onPointerEnter,
316
+ onFocus: finalLinkProps.onFocus,
317
+ onPointerLeave: finalLinkProps.onPointerLeave,
318
+ onBlur: finalLinkProps.onBlur,
319
+ onTouchCancel: finalLinkProps.onTouchCancel,
320
+ onClick: finalLinkProps.onClick,
321
+ children: props.children
322
+ }
323
+ );
324
+ });
325
+ function makeTypedLink(vormaAppConfig, defaultProps) {
326
+ const TypedLink = (props) => {
327
+ const {
328
+ pattern,
329
+ params,
330
+ splatValues,
331
+ search,
332
+ hash,
333
+ state: state2,
334
+ ...linkProps
335
+ } = props;
336
+ const href = __resolvePath({
337
+ vormaAppConfig,
338
+ type: "loader",
339
+ props: {
340
+ pattern,
341
+ ...params && { params },
342
+ ...splatValues && { splatValues }
343
+ }
344
+ });
345
+ const url = new URL(href, window.location.origin);
346
+ if (search !== void 0) url.search = search;
347
+ if (hash !== void 0) url.hash = hash;
348
+ const finalProps = {
349
+ ...defaultProps,
350
+ ...linkProps,
351
+ href: url.href,
352
+ state: state2
353
+ };
354
+ return /* @__PURE__ */ jsx2(VormaLink, { ...finalProps });
355
+ };
356
+ const MemoizedTypedLink = memo(TypedLink);
357
+ MemoizedTypedLink.displayName = `TypedLink(${Object.keys(defaultProps || {}).join(", ")})`;
358
+ return MemoizedTypedLink;
359
+ }
360
+ export {
361
+ VormaLink,
362
+ VormaRootOutlet,
363
+ makeTypedAddClientLoader,
364
+ makeTypedLink,
365
+ makeTypedUseLoaderData,
366
+ makeTypedUsePatternLoaderData,
367
+ makeTypedUseRouterData,
368
+ useLocation
369
+ };
370
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../internal/framework/_typescript/react/src/helpers.ts", "../../../../../internal/framework/_typescript/react/src/react.tsx", "../../../../../internal/framework/_typescript/react/src/link.tsx"],
4
+ "sourcesContent": ["/// <reference types=\"vite/client\" />\n\nimport { useMemo, type JSX } from \"react\";\nimport {\n\t__registerClientLoaderPattern,\n\t__runClientLoadersAfterHMRUpdate,\n\t__vormaClientGlobal,\n\ttype ClientLoaderAwaitedServerData,\n\ttype ParamsForPattern,\n\ttype UseRouterDataFunction,\n\ttype VormaAppBase,\n\ttype VormaLoaderOutput,\n\ttype VormaLoaderPattern,\n\ttype VormaRouteGeneric,\n\ttype VormaRoutePropsGeneric,\n} from \"vorma/client\";\nimport {\n\tuseClientLoadersData,\n\tuseLoadersData,\n\tuseRouterData,\n} from \"./react.tsx\";\n\nexport type VormaRouteProps<\n\tApp extends VormaAppBase = any,\n\tPattern extends VormaLoaderPattern<App> = string,\n> = VormaRoutePropsGeneric<JSX.Element, App, Pattern>;\n\nexport type VormaRoute<\n\tApp extends VormaAppBase = any,\n\tPattern extends VormaLoaderPattern<App> = string,\n> = VormaRouteGeneric<JSX.Element, App, Pattern>;\n\nexport function makeTypedUseRouterData<App extends VormaAppBase>() {\n\treturn useRouterData as UseRouterDataFunction<App, false>;\n}\n\nexport function makeTypedUseLoaderData<App extends VormaAppBase>() {\n\treturn function useLoaderData<Pattern extends VormaLoaderPattern<App>>(\n\t\tprops: VormaRouteProps<App, Pattern>,\n\t): VormaLoaderOutput<App, Pattern> {\n\t\tconst loadersData = useLoadersData();\n\t\treturn loadersData[props.idx];\n\t};\n}\n\nexport function makeTypedUsePatternLoaderData<App extends VormaAppBase>() {\n\treturn function usePatternLoaderData<\n\t\tPattern extends VormaLoaderPattern<App>,\n\t>(pattern: Pattern): VormaLoaderOutput<App, Pattern> | undefined {\n\t\tconst routerData = useRouterData();\n\t\tconst loadersData = useLoadersData();\n\t\tconst idx = useMemo(() => {\n\t\t\treturn routerData.matchedPatterns.findIndex((p) => p === pattern);\n\t\t}, [routerData.matchedPatterns, pattern]);\n\n\t\tif (idx === -1) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn loadersData[idx];\n\t};\n}\n\nexport function makeTypedAddClientLoader<App extends VormaAppBase>() {\n\tconst m = __vormaClientGlobal.get(\"patternToWaitFnMap\");\n\treturn function addClientLoader<\n\t\tPattern extends VormaLoaderPattern<App>,\n\t\tLoaderData extends VormaLoaderOutput<App, Pattern>,\n\t\tT = any,\n\t>(props: {\n\t\tpattern: Pattern;\n\t\tclientLoader: (props: {\n\t\t\tparams: Record<ParamsForPattern<App, Pattern>, string>;\n\t\t\tsplatValues: string[];\n\t\t\tserverDataPromise: Promise<\n\t\t\t\tClientLoaderAwaitedServerData<App[\"rootData\"], LoaderData>\n\t\t\t>;\n\t\t\tsignal: AbortSignal;\n\t\t}) => Promise<T>;\n\t\treRunOnModuleChange?: ImportMeta;\n\t}) {\n\t\tconst p = props.pattern;\n\t\tconst fn = props.clientLoader;\n\n\t\t__registerClientLoaderPattern(p as string).catch((error) => {\n\t\t\tconsole.error(\"Failed to register client loader pattern:\", error);\n\t\t});\n\t\t(m as any)[p] = fn;\n\n\t\tif (import.meta.env.DEV && props.reRunOnModuleChange) {\n\t\t\t__runClientLoadersAfterHMRUpdate(props.reRunOnModuleChange, p);\n\t\t}\n\n\t\ttype Res = Awaited<ReturnType<typeof fn>>;\n\n\t\tconst useClientLoaderData = (\n\t\t\tprops?: VormaRouteProps<App, Pattern>,\n\t\t): Res | undefined => {\n\t\t\tconst clientLoadersData = useClientLoadersData();\n\t\t\tconst routerData = useRouterData();\n\n\t\t\tconst idx = useMemo(() => {\n\t\t\t\tif (props) {\n\t\t\t\t\treturn props.idx;\n\t\t\t\t}\n\t\t\t\tconst matched = routerData.matchedPatterns;\n\t\t\t\treturn matched.findIndex((pattern) => pattern === p);\n\t\t\t}, [props, routerData.matchedPatterns]);\n\n\t\t\tif (idx === -1) return undefined;\n\t\t\treturn clientLoadersData[idx];\n\t\t};\n\n\t\treturn useClientLoaderData as {\n\t\t\t(props: VormaRouteProps<App, Pattern>): Res;\n\t\t\t(): Res | undefined;\n\t\t};\n\t};\n}\n", "import {\n\ttype JSX,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n\tuseSyncExternalStore,\n} from \"react\";\nimport {\n\t__applyScrollState,\n\taddLocationListener,\n\taddRouteChangeListener,\n\t__vormaClientGlobal as ctx,\n\tgetLocation,\n\tgetRouterData,\n\ttype RouteChangeEvent,\n} from \"vorma/client\";\n\n/////////////////////////////////////////////////////////////////////\n/////// STORE\n/////////////////////////////////////////////////////////////////////\n\ntype NavigationState = {\n\tlatestEvent: RouteChangeEvent | null;\n\tloadersData: any;\n\tclientLoadersData: any;\n\trouterData: ReturnType<typeof getRouterData>;\n\toutermostError: any;\n\toutermostErrorIdx: number | undefined;\n\tactiveComponents: any[] | null;\n\tactiveErrorBoundary: any;\n\timportURLs: string[];\n\texportKeys: string[];\n};\n\ntype StoreState = {\n\tnavigation: NavigationState;\n\tlocation: ReturnType<typeof getLocation>;\n};\n\nfunction getInitialState(): StoreState {\n\treturn {\n\t\tnavigation: {\n\t\t\tlatestEvent: null,\n\t\t\tloadersData: ctx.get(\"loadersData\"),\n\t\t\tclientLoadersData: ctx.get(\"clientLoadersData\"),\n\t\t\trouterData: getRouterData(),\n\t\t\toutermostError: ctx.get(\"outermostError\"),\n\t\t\toutermostErrorIdx: ctx.get(\"outermostErrorIdx\"),\n\t\t\tactiveComponents: ctx.get(\"activeComponents\"),\n\t\t\tactiveErrorBoundary: ctx.get(\"activeErrorBoundary\"),\n\t\t\timportURLs: ctx.get(\"importURLs\"),\n\t\t\texportKeys: ctx.get(\"exportKeys\"),\n\t\t},\n\t\tlocation: getLocation(),\n\t};\n}\n\nlet state = getInitialState();\nconst listeners = new Set<() => void>();\n\nconst store = {\n\tgetSnapshot: () => state,\n\tsubscribe: (listener: () => void) => {\n\t\tlisteners.add(listener);\n\t\treturn () => listeners.delete(listener);\n\t},\n\tsetState: (updater: (prevState: StoreState) => StoreState) => {\n\t\tconst nextState = updater(state);\n\t\tif (nextState !== state) {\n\t\t\tstate = nextState;\n\t\t\tlisteners.forEach((listener) => listener());\n\t\t}\n\t},\n};\n\nfunction useStoreSelector<T>(selector: (state: StoreState) => T): T {\n\tconst getSelectedSnapshot = useMemo(() => {\n\t\tlet selectedSnapshot: T;\n\t\treturn () => {\n\t\t\tconst nextSnapshot = selector(store.getSnapshot());\n\t\t\tif (\n\t\t\t\tselectedSnapshot === undefined ||\n\t\t\t\t!Object.is(selectedSnapshot, nextSnapshot)\n\t\t\t) {\n\t\t\t\tselectedSnapshot = nextSnapshot;\n\t\t\t}\n\t\t\treturn selectedSnapshot;\n\t\t};\n\t}, [selector]);\n\n\treturn useSyncExternalStore(store.subscribe, getSelectedSnapshot);\n}\n\nexport function useLoadersData() {\n\treturn useStoreSelector((s) => s.navigation.loadersData);\n}\nexport function useClientLoadersData() {\n\treturn useStoreSelector((s) => s.navigation.clientLoadersData);\n}\nexport function useRouterData() {\n\treturn useStoreSelector((s) => s.navigation.routerData);\n}\nfunction useLatestEvent() {\n\treturn useStoreSelector((s) => s.navigation.latestEvent);\n}\nfunction useOutermostError() {\n\treturn useStoreSelector((s) => s.navigation.outermostError);\n}\nfunction useOutermostErrorIdx() {\n\treturn useStoreSelector((s) => s.navigation.outermostErrorIdx);\n}\nfunction useActiveComponents() {\n\treturn useStoreSelector((s) => s.navigation.activeComponents);\n}\nfunction useActiveErrorBoundary() {\n\treturn useStoreSelector((s) => s.navigation.activeErrorBoundary);\n}\nfunction useImportURLs() {\n\treturn useStoreSelector((s) => s.navigation.importURLs);\n}\nfunction useExportKeys() {\n\treturn useStoreSelector((s) => s.navigation.exportKeys);\n}\n\nlet isInited = false;\n\nfunction initUIListeners() {\n\tif (isInited) return;\n\tisInited = true;\n\n\taddRouteChangeListener((e) => {\n\t\tstore.setState((prev) => {\n\t\t\treturn {\n\t\t\t\t...prev,\n\t\t\t\tnavigation: {\n\t\t\t\t\tlatestEvent: e,\n\t\t\t\t\tloadersData: ctx.get(\"loadersData\"),\n\t\t\t\t\tclientLoadersData: ctx.get(\"clientLoadersData\"),\n\t\t\t\t\trouterData: getRouterData(),\n\t\t\t\t\toutermostError: ctx.get(\"outermostError\"),\n\t\t\t\t\toutermostErrorIdx: ctx.get(\"outermostErrorIdx\"),\n\t\t\t\t\tactiveComponents: ctx.get(\"activeComponents\"),\n\t\t\t\t\tactiveErrorBoundary: ctx.get(\"activeErrorBoundary\"),\n\t\t\t\t\timportURLs: ctx.get(\"importURLs\"),\n\t\t\t\t\texportKeys: ctx.get(\"exportKeys\"),\n\t\t\t\t},\n\t\t\t};\n\t\t});\n\t});\n\n\taddLocationListener(() => {\n\t\tstore.setState((prev) => {\n\t\t\treturn {\n\t\t\t\t...prev,\n\t\t\t\tlocation: getLocation(),\n\t\t\t};\n\t\t});\n\t});\n}\n\nexport function useLocation() {\n\treturn useStoreSelector((s) => s.location);\n}\n\n/////////////////////////////////////////////////////////////////////\n/////// COMPONENT\n/////////////////////////////////////////////////////////////////////\n\nexport function VormaRootOutlet(props: { idx?: number }): JSX.Element {\n\tconst idx = props.idx ?? 0;\n\n\tconst initialRenderRef = useRef(true);\n\n\tif (idx === 0 && initialRenderRef.current) {\n\t\tinitUIListeners();\n\n\t\tinitialRenderRef.current = false;\n\t\tstore.setState((prev) => {\n\t\t\treturn {\n\t\t\t\t...prev,\n\t\t\t\tnavigation: {\n\t\t\t\t\tlatestEvent: null,\n\t\t\t\t\tloadersData: ctx.get(\"loadersData\"),\n\t\t\t\t\tclientLoadersData: ctx.get(\"clientLoadersData\"),\n\t\t\t\t\trouterData: getRouterData(),\n\t\t\t\t\toutermostError: ctx.get(\"outermostError\"),\n\t\t\t\t\toutermostErrorIdx: ctx.get(\"outermostErrorIdx\"),\n\t\t\t\t\tactiveComponents: ctx.get(\"activeComponents\"),\n\t\t\t\t\tactiveErrorBoundary: ctx.get(\"activeErrorBoundary\"),\n\t\t\t\t\timportURLs: ctx.get(\"importURLs\"),\n\t\t\t\t\texportKeys: ctx.get(\"exportKeys\"),\n\t\t\t\t},\n\t\t\t};\n\t\t});\n\t}\n\n\tconst latestEvent = useLatestEvent();\n\tconst loadersData = useLoadersData();\n\tconst outermostError = useOutermostError();\n\tconst outermostErrorIdx = useOutermostErrorIdx();\n\tconst activeComponents = useActiveComponents();\n\tconst activeErrorBoundary = useActiveErrorBoundary();\n\tconst importURLs = useImportURLs();\n\tconst exportKeys = useExportKeys();\n\n\tconst [currentImportURL, setCurrentImportURL] = useState(importURLs[idx]);\n\tconst [currentExportKey, setCurrentExportKey] = useState(exportKeys[idx]);\n\tconst [nextImportURL, setNextImportURL] = useState(importURLs[idx + 1]);\n\tconst [nextExportKey, setNextExportKey] = useState(exportKeys[idx + 1]);\n\n\tuseEffect(() => {\n\t\tif (!currentImportURL || !latestEvent) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst newCurrentImportURL = importURLs[idx];\n\t\tconst newCurrentExportKey = exportKeys[idx];\n\n\t\tif (currentImportURL !== newCurrentImportURL) {\n\t\t\tsetCurrentImportURL(newCurrentImportURL);\n\t\t}\n\t\tif (currentExportKey !== newCurrentExportKey) {\n\t\t\tsetCurrentExportKey(newCurrentExportKey);\n\t\t}\n\n\t\t// these are also needed for Outlets to render correctly\n\t\tconst newNextImportURL = importURLs[idx + 1];\n\t\tconst newNextExportKey = exportKeys[idx + 1];\n\n\t\tif (nextImportURL !== newNextImportURL) {\n\t\t\tsetNextImportURL(newNextImportURL);\n\t\t}\n\t\tif (nextExportKey !== newNextExportKey) {\n\t\t\tsetNextExportKey(newNextExportKey);\n\t\t}\n\t}, [latestEvent, importURLs, exportKeys]);\n\n\tuseLayoutEffect(() => {\n\t\tif (!latestEvent || idx !== 0) {\n\t\t\treturn;\n\t\t}\n\t\twindow.requestAnimationFrame(() => {\n\t\t\t__applyScrollState(latestEvent.detail.__scrollState);\n\t\t});\n\t}, [latestEvent, idx]);\n\n\tconst isErrorIdxMemo = useMemo(() => {\n\t\treturn idx === outermostErrorIdx;\n\t}, [idx, outermostErrorIdx]);\n\n\tconst CurrentCompMemo = useMemo(() => {\n\t\tif (isErrorIdxMemo) {\n\t\t\treturn null;\n\t\t}\n\t\treturn activeComponents?.[idx];\n\t}, [isErrorIdxMemo, currentImportURL, currentExportKey, activeComponents]);\n\n\tconst Outlet = useMemo(\n\t\t() => (localProps: Record<string, any> | undefined) => {\n\t\t\treturn <VormaRootOutlet {...localProps} {...props} idx={idx + 1} />;\n\t\t},\n\t\t[nextImportURL, nextExportKey],\n\t);\n\n\tconst shouldFallbackOutletMemo = useMemo(() => {\n\t\tif (isErrorIdxMemo) {\n\t\t\treturn false;\n\t\t}\n\t\tif (CurrentCompMemo) {\n\t\t\treturn false;\n\t\t}\n\t\treturn idx + 1 < loadersData.length;\n\t}, [isErrorIdxMemo, CurrentCompMemo, idx, loadersData]);\n\n\tconst ErrorCompMemo = useMemo(() => {\n\t\tif (!isErrorIdxMemo) {\n\t\t\treturn null;\n\t\t}\n\t\treturn activeErrorBoundary;\n\t}, [isErrorIdxMemo, activeErrorBoundary]);\n\n\tif (isErrorIdxMemo) {\n\t\tif (ErrorCompMemo) {\n\t\t\treturn <ErrorCompMemo error={outermostError} />;\n\t\t}\n\t\treturn <>{`Error: ${outermostError || \"unknown\"}`}</>;\n\t}\n\n\tif (!CurrentCompMemo) {\n\t\tif (shouldFallbackOutletMemo) {\n\t\t\treturn <Outlet />;\n\t\t}\n\t\treturn <></>;\n\t}\n\n\treturn <CurrentCompMemo idx={idx} Outlet={Outlet} />;\n}\n", "import { memo, type ComponentProps, type JSX } from \"react\";\nimport type {\n\tExtractApp,\n\tPermissivePatternBasedProps,\n\tVormaAppBase,\n\tVormaLoaderPattern,\n} from \"vorma/client\";\nimport {\n\t__makeFinalLinkProps,\n\t__resolvePath,\n\ttype VormaAppConfig,\n\ttype VormaLinkPropsBase,\n} from \"vorma/client\";\n\nexport const VormaLink = memo(function VormaLink(\n\tprops: ComponentProps<\"a\"> &\n\t\tVormaLinkPropsBase<\n\t\t\t(\n\t\t\t\te: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n\t\t\t) => void | Promise<void>\n\t\t>,\n) {\n\tconst finalLinkProps = __makeFinalLinkProps(props);\n\t// oxlint-disable-next-line no-unused-vars\n\tconst { prefetch, scrollToTop, replace, state, ...rest } = props;\n\n\treturn (\n\t\t<a\n\t\t\tdata-external={finalLinkProps.dataExternal}\n\t\t\t{...(rest as any)}\n\t\t\tonPointerEnter={finalLinkProps.onPointerEnter}\n\t\t\tonFocus={finalLinkProps.onFocus}\n\t\t\tonPointerLeave={finalLinkProps.onPointerLeave}\n\t\t\tonBlur={finalLinkProps.onBlur}\n\t\t\tonTouchCancel={finalLinkProps.onTouchCancel}\n\t\t\tonClick={finalLinkProps.onClick}\n\t\t>\n\t\t\t{props.children}\n\t\t</a>\n\t);\n});\n\ntype TypedVormaLinkProps<\n\tApp extends VormaAppBase,\n\tPattern extends VormaLoaderPattern<App> = VormaLoaderPattern<App>,\n> = Omit<ComponentProps<\"a\">, \"href\" | \"pattern\"> &\n\tVormaLinkPropsBase<\n\t\t(\n\t\t\te: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n\t\t) => void | Promise<void>\n\t> &\n\tPermissivePatternBasedProps<App, Pattern> & {\n\t\tsearch?: string;\n\t\thash?: string;\n\t};\n\nexport function makeTypedLink<C extends VormaAppConfig>(\n\tvormaAppConfig: C,\n\tdefaultProps?: Partial<\n\t\tOmit<\n\t\t\tTypedVormaLinkProps<ExtractApp<C>>,\n\t\t\t\"pattern\" | \"params\" | \"splatValues\"\n\t\t>\n\t>,\n) {\n\ttype App = ExtractApp<C>;\n\n\tconst TypedLink = <Pattern extends VormaLoaderPattern<App>>(\n\t\tprops: TypedVormaLinkProps<App, Pattern>,\n\t) => {\n\t\tconst {\n\t\t\tpattern,\n\t\t\tparams,\n\t\t\tsplatValues,\n\t\t\tsearch,\n\t\t\thash,\n\t\t\tstate,\n\t\t\t...linkProps\n\t\t} = props as any;\n\n\t\tconst href = __resolvePath({\n\t\t\tvormaAppConfig,\n\t\t\ttype: \"loader\",\n\t\t\tprops: {\n\t\t\t\tpattern,\n\t\t\t\t...(params && { params }),\n\t\t\t\t...(splatValues && { splatValues }),\n\t\t\t},\n\t\t});\n\n\t\tconst url = new URL(href, window.location.origin);\n\t\tif (search !== undefined) url.search = search;\n\t\tif (hash !== undefined) url.hash = hash;\n\n\t\tconst finalProps = {\n\t\t\t...defaultProps,\n\t\t\t...linkProps,\n\t\t\thref: url.href,\n\t\t\tstate,\n\t\t};\n\n\t\treturn <VormaLink {...finalProps} />;\n\t};\n\n\tconst MemoizedTypedLink = memo(TypedLink) as <\n\t\tPattern extends VormaLoaderPattern<App>,\n\t>(\n\t\tprops: TypedVormaLinkProps<App, Pattern>,\n\t) => JSX.Element;\n\n\t(MemoizedTypedLink as any).displayName =\n\t\t`TypedLink(${Object.keys(defaultProps || {}).join(\", \")})`;\n\n\treturn MemoizedTypedLink;\n}\n"],
5
+ "mappings": ";AAEA,SAAS,WAAAA,gBAAyB;AAClC;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,OASM;;;ACfP;AAAA,EAEC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA,uBAAuB;AAAA,EACvB;AAAA,EACA;AAAA,OAEM;AAoPG,SA0BD,UA1BC;AA5NV,SAAS,kBAA8B;AACtC,SAAO;AAAA,IACN,YAAY;AAAA,MACX,aAAa;AAAA,MACb,aAAa,IAAI,IAAI,aAAa;AAAA,MAClC,mBAAmB,IAAI,IAAI,mBAAmB;AAAA,MAC9C,YAAY,cAAc;AAAA,MAC1B,gBAAgB,IAAI,IAAI,gBAAgB;AAAA,MACxC,mBAAmB,IAAI,IAAI,mBAAmB;AAAA,MAC9C,kBAAkB,IAAI,IAAI,kBAAkB;AAAA,MAC5C,qBAAqB,IAAI,IAAI,qBAAqB;AAAA,MAClD,YAAY,IAAI,IAAI,YAAY;AAAA,MAChC,YAAY,IAAI,IAAI,YAAY;AAAA,IACjC;AAAA,IACA,UAAU,YAAY;AAAA,EACvB;AACD;AAEA,IAAI,QAAQ,gBAAgB;AAC5B,IAAM,YAAY,oBAAI,IAAgB;AAEtC,IAAM,QAAQ;AAAA,EACb,aAAa,MAAM;AAAA,EACnB,WAAW,CAAC,aAAyB;AACpC,cAAU,IAAI,QAAQ;AACtB,WAAO,MAAM,UAAU,OAAO,QAAQ;AAAA,EACvC;AAAA,EACA,UAAU,CAAC,YAAmD;AAC7D,UAAM,YAAY,QAAQ,KAAK;AAC/B,QAAI,cAAc,OAAO;AACxB,cAAQ;AACR,gBAAU,QAAQ,CAAC,aAAa,SAAS,CAAC;AAAA,IAC3C;AAAA,EACD;AACD;AAEA,SAAS,iBAAoB,UAAuC;AACnE,QAAM,sBAAsB,QAAQ,MAAM;AACzC,QAAI;AACJ,WAAO,MAAM;AACZ,YAAM,eAAe,SAAS,MAAM,YAAY,CAAC;AACjD,UACC,qBAAqB,UACrB,CAAC,OAAO,GAAG,kBAAkB,YAAY,GACxC;AACD,2BAAmB;AAAA,MACpB;AACA,aAAO;AAAA,IACR;AAAA,EACD,GAAG,CAAC,QAAQ,CAAC;AAEb,SAAO,qBAAqB,MAAM,WAAW,mBAAmB;AACjE;AAEO,SAAS,iBAAiB;AAChC,SAAO,iBAAiB,CAAC,MAAM,EAAE,WAAW,WAAW;AACxD;AACO,SAAS,uBAAuB;AACtC,SAAO,iBAAiB,CAAC,MAAM,EAAE,WAAW,iBAAiB;AAC9D;AACO,SAAS,gBAAgB;AAC/B,SAAO,iBAAiB,CAAC,MAAM,EAAE,WAAW,UAAU;AACvD;AACA,SAAS,iBAAiB;AACzB,SAAO,iBAAiB,CAAC,MAAM,EAAE,WAAW,WAAW;AACxD;AACA,SAAS,oBAAoB;AAC5B,SAAO,iBAAiB,CAAC,MAAM,EAAE,WAAW,cAAc;AAC3D;AACA,SAAS,uBAAuB;AAC/B,SAAO,iBAAiB,CAAC,MAAM,EAAE,WAAW,iBAAiB;AAC9D;AACA,SAAS,sBAAsB;AAC9B,SAAO,iBAAiB,CAAC,MAAM,EAAE,WAAW,gBAAgB;AAC7D;AACA,SAAS,yBAAyB;AACjC,SAAO,iBAAiB,CAAC,MAAM,EAAE,WAAW,mBAAmB;AAChE;AACA,SAAS,gBAAgB;AACxB,SAAO,iBAAiB,CAAC,MAAM,EAAE,WAAW,UAAU;AACvD;AACA,SAAS,gBAAgB;AACxB,SAAO,iBAAiB,CAAC,MAAM,EAAE,WAAW,UAAU;AACvD;AAEA,IAAI,WAAW;AAEf,SAAS,kBAAkB;AAC1B,MAAI,SAAU;AACd,aAAW;AAEX,yBAAuB,CAAC,MAAM;AAC7B,UAAM,SAAS,CAAC,SAAS;AACxB,aAAO;AAAA,QACN,GAAG;AAAA,QACH,YAAY;AAAA,UACX,aAAa;AAAA,UACb,aAAa,IAAI,IAAI,aAAa;AAAA,UAClC,mBAAmB,IAAI,IAAI,mBAAmB;AAAA,UAC9C,YAAY,cAAc;AAAA,UAC1B,gBAAgB,IAAI,IAAI,gBAAgB;AAAA,UACxC,mBAAmB,IAAI,IAAI,mBAAmB;AAAA,UAC9C,kBAAkB,IAAI,IAAI,kBAAkB;AAAA,UAC5C,qBAAqB,IAAI,IAAI,qBAAqB;AAAA,UAClD,YAAY,IAAI,IAAI,YAAY;AAAA,UAChC,YAAY,IAAI,IAAI,YAAY;AAAA,QACjC;AAAA,MACD;AAAA,IACD,CAAC;AAAA,EACF,CAAC;AAED,sBAAoB,MAAM;AACzB,UAAM,SAAS,CAAC,SAAS;AACxB,aAAO;AAAA,QACN,GAAG;AAAA,QACH,UAAU,YAAY;AAAA,MACvB;AAAA,IACD,CAAC;AAAA,EACF,CAAC;AACF;AAEO,SAAS,cAAc;AAC7B,SAAO,iBAAiB,CAAC,MAAM,EAAE,QAAQ;AAC1C;AAMO,SAAS,gBAAgB,OAAsC;AACrE,QAAM,MAAM,MAAM,OAAO;AAEzB,QAAM,mBAAmB,OAAO,IAAI;AAEpC,MAAI,QAAQ,KAAK,iBAAiB,SAAS;AAC1C,oBAAgB;AAEhB,qBAAiB,UAAU;AAC3B,UAAM,SAAS,CAAC,SAAS;AACxB,aAAO;AAAA,QACN,GAAG;AAAA,QACH,YAAY;AAAA,UACX,aAAa;AAAA,UACb,aAAa,IAAI,IAAI,aAAa;AAAA,UAClC,mBAAmB,IAAI,IAAI,mBAAmB;AAAA,UAC9C,YAAY,cAAc;AAAA,UAC1B,gBAAgB,IAAI,IAAI,gBAAgB;AAAA,UACxC,mBAAmB,IAAI,IAAI,mBAAmB;AAAA,UAC9C,kBAAkB,IAAI,IAAI,kBAAkB;AAAA,UAC5C,qBAAqB,IAAI,IAAI,qBAAqB;AAAA,UAClD,YAAY,IAAI,IAAI,YAAY;AAAA,UAChC,YAAY,IAAI,IAAI,YAAY;AAAA,QACjC;AAAA,MACD;AAAA,IACD,CAAC;AAAA,EACF;AAEA,QAAM,cAAc,eAAe;AACnC,QAAM,cAAc,eAAe;AACnC,QAAM,iBAAiB,kBAAkB;AACzC,QAAM,oBAAoB,qBAAqB;AAC/C,QAAM,mBAAmB,oBAAoB;AAC7C,QAAM,sBAAsB,uBAAuB;AACnD,QAAM,aAAa,cAAc;AACjC,QAAM,aAAa,cAAc;AAEjC,QAAM,CAAC,kBAAkB,mBAAmB,IAAI,SAAS,WAAW,GAAG,CAAC;AACxE,QAAM,CAAC,kBAAkB,mBAAmB,IAAI,SAAS,WAAW,GAAG,CAAC;AACxE,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAS,WAAW,MAAM,CAAC,CAAC;AACtE,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAS,WAAW,MAAM,CAAC,CAAC;AAEtE,YAAU,MAAM;AACf,QAAI,CAAC,oBAAoB,CAAC,aAAa;AACtC;AAAA,IACD;AAEA,UAAM,sBAAsB,WAAW,GAAG;AAC1C,UAAM,sBAAsB,WAAW,GAAG;AAE1C,QAAI,qBAAqB,qBAAqB;AAC7C,0BAAoB,mBAAmB;AAAA,IACxC;AACA,QAAI,qBAAqB,qBAAqB;AAC7C,0BAAoB,mBAAmB;AAAA,IACxC;AAGA,UAAM,mBAAmB,WAAW,MAAM,CAAC;AAC3C,UAAM,mBAAmB,WAAW,MAAM,CAAC;AAE3C,QAAI,kBAAkB,kBAAkB;AACvC,uBAAiB,gBAAgB;AAAA,IAClC;AACA,QAAI,kBAAkB,kBAAkB;AACvC,uBAAiB,gBAAgB;AAAA,IAClC;AAAA,EACD,GAAG,CAAC,aAAa,YAAY,UAAU,CAAC;AAExC,kBAAgB,MAAM;AACrB,QAAI,CAAC,eAAe,QAAQ,GAAG;AAC9B;AAAA,IACD;AACA,WAAO,sBAAsB,MAAM;AAClC,yBAAmB,YAAY,OAAO,aAAa;AAAA,IACpD,CAAC;AAAA,EACF,GAAG,CAAC,aAAa,GAAG,CAAC;AAErB,QAAM,iBAAiB,QAAQ,MAAM;AACpC,WAAO,QAAQ;AAAA,EAChB,GAAG,CAAC,KAAK,iBAAiB,CAAC;AAE3B,QAAM,kBAAkB,QAAQ,MAAM;AACrC,QAAI,gBAAgB;AACnB,aAAO;AAAA,IACR;AACA,WAAO,mBAAmB,GAAG;AAAA,EAC9B,GAAG,CAAC,gBAAgB,kBAAkB,kBAAkB,gBAAgB,CAAC;AAEzE,QAAM,SAAS;AAAA,IACd,MAAM,CAAC,eAAgD;AACtD,aAAO,oBAAC,mBAAiB,GAAG,YAAa,GAAG,OAAO,KAAK,MAAM,GAAG;AAAA,IAClE;AAAA,IACA,CAAC,eAAe,aAAa;AAAA,EAC9B;AAEA,QAAM,2BAA2B,QAAQ,MAAM;AAC9C,QAAI,gBAAgB;AACnB,aAAO;AAAA,IACR;AACA,QAAI,iBAAiB;AACpB,aAAO;AAAA,IACR;AACA,WAAO,MAAM,IAAI,YAAY;AAAA,EAC9B,GAAG,CAAC,gBAAgB,iBAAiB,KAAK,WAAW,CAAC;AAEtD,QAAM,gBAAgB,QAAQ,MAAM;AACnC,QAAI,CAAC,gBAAgB;AACpB,aAAO;AAAA,IACR;AACA,WAAO;AAAA,EACR,GAAG,CAAC,gBAAgB,mBAAmB,CAAC;AAExC,MAAI,gBAAgB;AACnB,QAAI,eAAe;AAClB,aAAO,oBAAC,iBAAc,OAAO,gBAAgB;AAAA,IAC9C;AACA,WAAO,gCAAG,oBAAU,kBAAkB,SAAS,IAAG;AAAA,EACnD;AAEA,MAAI,CAAC,iBAAiB;AACrB,QAAI,0BAA0B;AAC7B,aAAO,oBAAC,UAAO;AAAA,IAChB;AACA,WAAO,gCAAE;AAAA,EACV;AAEA,SAAO,oBAAC,mBAAgB,KAAU,QAAgB;AACnD;;;AD1QO,SAAS,yBAAmD;AAClE,SAAO;AACR;AAEO,SAAS,yBAAmD;AAClE,SAAO,SAAS,cACf,OACkC;AAClC,UAAM,cAAc,eAAe;AACnC,WAAO,YAAY,MAAM,GAAG;AAAA,EAC7B;AACD;AAEO,SAAS,gCAA0D;AACzE,SAAO,SAAS,qBAEd,SAA+D;AAChE,UAAM,aAAa,cAAc;AACjC,UAAM,cAAc,eAAe;AACnC,UAAM,MAAMC,SAAQ,MAAM;AACzB,aAAO,WAAW,gBAAgB,UAAU,CAAC,MAAM,MAAM,OAAO;AAAA,IACjE,GAAG,CAAC,WAAW,iBAAiB,OAAO,CAAC;AAExC,QAAI,QAAQ,IAAI;AACf,aAAO;AAAA,IACR;AACA,WAAO,YAAY,GAAG;AAAA,EACvB;AACD;AAEO,SAAS,2BAAqD;AACpE,QAAM,IAAI,oBAAoB,IAAI,oBAAoB;AACtD,SAAO,SAAS,gBAId,OAWC;AACF,UAAM,IAAI,MAAM;AAChB,UAAM,KAAK,MAAM;AAEjB,kCAA8B,CAAW,EAAE,MAAM,CAAC,UAAU;AAC3D,cAAQ,MAAM,6CAA6C,KAAK;AAAA,IACjE,CAAC;AACD,IAAC,EAAU,CAAC,IAAI;AAEhB,QAAI,YAAY,IAAI,OAAO,MAAM,qBAAqB;AACrD,uCAAiC,MAAM,qBAAqB,CAAC;AAAA,IAC9D;AAIA,UAAM,sBAAsB,CAC3BC,WACqB;AACrB,YAAM,oBAAoB,qBAAqB;AAC/C,YAAM,aAAa,cAAc;AAEjC,YAAM,MAAMD,SAAQ,MAAM;AACzB,YAAIC,QAAO;AACV,iBAAOA,OAAM;AAAA,QACd;AACA,cAAM,UAAU,WAAW;AAC3B,eAAO,QAAQ,UAAU,CAAC,YAAY,YAAY,CAAC;AAAA,MACpD,GAAG,CAACA,QAAO,WAAW,eAAe,CAAC;AAEtC,UAAI,QAAQ,GAAI,QAAO;AACvB,aAAO,kBAAkB,GAAG;AAAA,IAC7B;AAEA,WAAO;AAAA,EAIR;AACD;;;AErHA,SAAS,YAA2C;AAOpD;AAAA,EACC;AAAA,EACA;AAAA,OAGM;AAeL,gBAAAC,YAAA;AAbK,IAAM,YAAY,KAAK,SAASC,WACtC,OAMC;AACD,QAAM,iBAAiB,qBAAqB,KAAK;AAEjD,QAAM,EAAE,UAAU,aAAa,SAAS,OAAAC,QAAO,GAAG,KAAK,IAAI;AAE3D,SACC,gBAAAF;AAAA,IAAC;AAAA;AAAA,MACA,iBAAe,eAAe;AAAA,MAC7B,GAAI;AAAA,MACL,gBAAgB,eAAe;AAAA,MAC/B,SAAS,eAAe;AAAA,MACxB,gBAAgB,eAAe;AAAA,MAC/B,QAAQ,eAAe;AAAA,MACvB,eAAe,eAAe;AAAA,MAC9B,SAAS,eAAe;AAAA,MAEvB,gBAAM;AAAA;AAAA,EACR;AAEF,CAAC;AAgBM,SAAS,cACf,gBACA,cAMC;AAGD,QAAM,YAAY,CACjB,UACI;AACJ,UAAM;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAAE;AAAA,MACA,GAAG;AAAA,IACJ,IAAI;AAEJ,UAAM,OAAO,cAAc;AAAA,MAC1B;AAAA,MACA,MAAM;AAAA,MACN,OAAO;AAAA,QACN;AAAA,QACA,GAAI,UAAU,EAAE,OAAO;AAAA,QACvB,GAAI,eAAe,EAAE,YAAY;AAAA,MAClC;AAAA,IACD,CAAC;AAED,UAAM,MAAM,IAAI,IAAI,MAAM,OAAO,SAAS,MAAM;AAChD,QAAI,WAAW,OAAW,KAAI,SAAS;AACvC,QAAI,SAAS,OAAW,KAAI,OAAO;AAEnC,UAAM,aAAa;AAAA,MAClB,GAAG;AAAA,MACH,GAAG;AAAA,MACH,MAAM,IAAI;AAAA,MACV,OAAAA;AAAA,IACD;AAEA,WAAO,gBAAAF,KAAC,aAAW,GAAG,YAAY;AAAA,EACnC;AAEA,QAAM,oBAAoB,KAAK,SAAS;AAMxC,EAAC,kBAA0B,cAC1B,aAAa,OAAO,KAAK,gBAAgB,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC;AAExD,SAAO;AACR;",
6
+ "names": ["useMemo", "useMemo", "props", "jsx", "VormaLink", "state"]
7
+ }
@@ -0,0 +1,21 @@
1
+ import { type JSX } from "react";
2
+ import { type ClientLoaderAwaitedServerData, type ParamsForPattern, type UseRouterDataFunction, type VormaAppBase, type VormaLoaderOutput, type VormaLoaderPattern, type VormaRouteGeneric, type VormaRoutePropsGeneric } from "vorma/client";
3
+ export type VormaRouteProps<App extends VormaAppBase = any, Pattern extends VormaLoaderPattern<App> = string> = VormaRoutePropsGeneric<JSX.Element, App, Pattern>;
4
+ export type VormaRoute<App extends VormaAppBase = any, Pattern extends VormaLoaderPattern<App> = string> = VormaRouteGeneric<JSX.Element, App, Pattern>;
5
+ export declare function makeTypedUseRouterData<App extends VormaAppBase>(): UseRouterDataFunction<App, false>;
6
+ export declare function makeTypedUseLoaderData<App extends VormaAppBase>(): <Pattern extends VormaLoaderPattern<App>>(props: VormaRouteProps<App, Pattern>) => VormaLoaderOutput<App, Pattern>;
7
+ export declare function makeTypedUsePatternLoaderData<App extends VormaAppBase>(): <Pattern extends VormaLoaderPattern<App>>(pattern: Pattern) => VormaLoaderOutput<App, Pattern> | undefined;
8
+ export declare function makeTypedAddClientLoader<App extends VormaAppBase>(): <Pattern extends VormaLoaderPattern<App>, LoaderData extends VormaLoaderOutput<App, Pattern>, T = any>(props: {
9
+ pattern: Pattern;
10
+ clientLoader: (props: {
11
+ params: Record<ParamsForPattern<App, Pattern>, string>;
12
+ splatValues: string[];
13
+ serverDataPromise: Promise<ClientLoaderAwaitedServerData<App["rootData"], LoaderData>>;
14
+ signal: AbortSignal;
15
+ }) => Promise<T>;
16
+ reRunOnModuleChange?: ImportMeta;
17
+ }) => {
18
+ (props: VormaRouteProps<App, Pattern>): Awaited<T>;
19
+ (): Awaited<T> | undefined;
20
+ };
21
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../../internal/framework/_typescript/react/src/helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAW,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAIN,KAAK,6BAA6B,EAClC,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,MAAM,cAAc,CAAC;AAOtB,MAAM,MAAM,eAAe,CAC1B,GAAG,SAAS,YAAY,GAAG,GAAG,EAC9B,OAAO,SAAS,kBAAkB,CAAC,GAAG,CAAC,GAAG,MAAM,IAC7C,sBAAsB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AAEtD,MAAM,MAAM,UAAU,CACrB,GAAG,SAAS,YAAY,GAAG,GAAG,EAC9B,OAAO,SAAS,kBAAkB,CAAC,GAAG,CAAC,GAAG,MAAM,IAC7C,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AAEjD,wBAAgB,sBAAsB,CAAC,GAAG,SAAS,YAAY,KACtC,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,CACzD;AAED,wBAAgB,sBAAsB,CAAC,GAAG,SAAS,YAAY,MAChC,OAAO,SAAS,kBAAkB,CAAC,GAAG,CAAC,EACpE,OAAO,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,KAClC,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAIlC;AAED,wBAAgB,6BAA6B,CAAC,GAAG,SAAS,YAAY,MAEpE,OAAO,SAAS,kBAAkB,CAAC,GAAG,CAAC,EACtC,SAAS,OAAO,KAAG,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,SAAS,CAYhE;AAED,wBAAgB,wBAAwB,CAAC,GAAG,SAAS,YAAY,MAG/D,OAAO,SAAS,kBAAkB,CAAC,GAAG,CAAC,EACvC,UAAU,SAAS,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,EAClD,CAAC,GAAG,GAAG,EACN,OAAO;IACR,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,CAAC,KAAK,EAAE;QACrB,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;QACvD,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,iBAAiB,EAAE,OAAO,CACzB,6BAA6B,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,CAC1D,CAAC;QACF,MAAM,EAAE,WAAW,CAAC;KACpB,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACjB,mBAAmB,CAAC,EAAE,UAAU,CAAC;CACjC,KAiC8B;IAC7B,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,cAAO;IAC5C,IAAI,aAAM,SAAS,CAAC;CACpB,CAEF"}
@@ -0,0 +1,11 @@
1
+ import { type ComponentProps, type JSX } from "react";
2
+ import type { ExtractApp, PermissivePatternBasedProps, VormaAppBase, VormaLoaderPattern } from "vorma/client";
3
+ import { type VormaAppConfig, type VormaLinkPropsBase } from "vorma/client";
4
+ export declare const VormaLink: import("react").NamedExoticComponent<import("react").ClassAttributes<HTMLAnchorElement> & import("react").AnchorHTMLAttributes<HTMLAnchorElement> & VormaLinkPropsBase<(e: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void | Promise<void>>>;
5
+ type TypedVormaLinkProps<App extends VormaAppBase, Pattern extends VormaLoaderPattern<App> = VormaLoaderPattern<App>> = Omit<ComponentProps<"a">, "href" | "pattern"> & VormaLinkPropsBase<(e: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void | Promise<void>> & PermissivePatternBasedProps<App, Pattern> & {
6
+ search?: string;
7
+ hash?: string;
8
+ };
9
+ export declare function makeTypedLink<C extends VormaAppConfig>(vormaAppConfig: C, defaultProps?: Partial<Omit<TypedVormaLinkProps<ExtractApp<C>>, "pattern" | "params" | "splatValues">>): <Pattern extends VormaLoaderPattern<ExtractApp<C>>>(props: TypedVormaLinkProps<ExtractApp<C>, Pattern>) => JSX.Element;
10
+ export {};
11
+ //# sourceMappingURL=link.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../../../../../internal/framework/_typescript/react/src/link.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5D,OAAO,KAAK,EACX,UAAU,EACV,2BAA2B,EAC3B,YAAY,EACZ,kBAAkB,EAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAGN,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,MAAM,cAAc,CAAC;AAEtB,eAAO,MAAM,SAAS,6KAIf,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,UAAU,CAAC,KAC9C,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAqB1B,CAAC;AAEH,KAAK,mBAAmB,CACvB,GAAG,SAAS,YAAY,EACxB,OAAO,SAAS,kBAAkB,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAC9D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,GAChD,kBAAkB,CACjB,CACC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,UAAU,CAAC,KAC9C,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CACzB,GACD,2BAA2B,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEH,wBAAgB,aAAa,CAAC,CAAC,SAAS,cAAc,EACrD,cAAc,EAAE,CAAC,EACjB,YAAY,CAAC,EAAE,OAAO,CACrB,IAAI,CACH,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAClC,SAAS,GAAG,QAAQ,GAAG,aAAa,CACpC,CACD,IA0CA,OAAO,SAAS,kBAAkB,eAAK,SAEhC,mBAAmB,gBAAM,OAAO,CAAC,KACpC,GAAG,CAAC,OAAO,CAMhB"}
@@ -0,0 +1,20 @@
1
+ import { type JSX } from "react";
2
+ export declare function useLoadersData(): any;
3
+ export declare function useClientLoadersData(): any;
4
+ export declare function useRouterData(): {
5
+ buildID: string;
6
+ matchedPatterns: string[];
7
+ splatValues: string[];
8
+ params: Record<string, string>;
9
+ rootData: unknown;
10
+ };
11
+ export declare function useLocation(): {
12
+ pathname: string;
13
+ search: string;
14
+ hash: string;
15
+ state: unknown;
16
+ };
17
+ export declare function VormaRootOutlet(props: {
18
+ idx?: number;
19
+ }): JSX.Element;
20
+ //# sourceMappingURL=react.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../../../../../internal/framework/_typescript/react/src/react.tsx"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,GAAG,EAOR,MAAM,OAAO,CAAC;AAuFf,wBAAgB,cAAc,QAE7B;AACD,wBAAgB,oBAAoB,QAEnC;AACD,wBAAgB,aAAa;;;;;;EAE5B;AA2DD,wBAAgB,WAAW;;;;;EAE1B;AAMD,wBAAgB,eAAe,CAAC,KAAK,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CAgIpE"}
@@ -0,0 +1,4 @@
1
+ export { makeTypedAddClientLoader, makeTypedUseLoaderData, makeTypedUsePatternLoaderData, makeTypedUseRouterData, type VormaRoute, type VormaRouteProps, } from "./src/helpers.ts";
2
+ export { VormaLink, makeTypedLink } from "./src/link.tsx";
3
+ export { VormaRootOutlet, location } from "./src/solid.tsx";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../internal/framework/_typescript/solid/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EACN,wBAAwB,EACxB,sBAAsB,EACtB,6BAA6B,EAC7B,sBAAsB,EACtB,KAAK,UAAU,EACf,KAAK,eAAe,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC"}