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,119 @@
1
+ import type { SubmitOptions } from "../client.ts";
2
+ export type VormaAppConfig = {
3
+ actionsRouterMountRoot: string;
4
+ actionsDynamicRune: string;
5
+ actionsSplatRune: string;
6
+ loadersDynamicRune: string;
7
+ loadersSplatRune: string;
8
+ loadersExplicitIndexSegment: string;
9
+ __phantom?: any;
10
+ };
11
+ export type VormaAppBase = {
12
+ routes: readonly any[];
13
+ appConfig: VormaAppConfig;
14
+ rootData: any;
15
+ };
16
+ export type ExtractApp<C extends VormaAppConfig> = C["__phantom"];
17
+ type RouteByType<App extends VormaAppBase, T extends string> = Extract<App["routes"][number], {
18
+ _type: T;
19
+ }>;
20
+ type RouteByPattern<Routes, P> = Extract<Routes, {
21
+ pattern: P;
22
+ }>;
23
+ type VormaLoader<App extends VormaAppBase> = RouteByType<App, "loader">;
24
+ type VormaQuery<App extends VormaAppBase> = RouteByType<App, "query">;
25
+ type VormaMutation<App extends VormaAppBase> = RouteByType<App, "mutation">;
26
+ export type VormaLoaderPattern<App extends VormaAppBase> = VormaLoader<App>["pattern"];
27
+ export type VormaQueryPattern<App extends VormaAppBase> = VormaQuery<App>["pattern"];
28
+ export type VormaMutationPattern<App extends VormaAppBase> = VormaMutation<App>["pattern"];
29
+ export type VormaLoaderOutput<App extends VormaAppBase, P extends VormaLoaderPattern<App>> = RouteByPattern<VormaLoader<App>, P> extends {
30
+ phantomOutputType: infer T;
31
+ } ? T : null | undefined;
32
+ export type VormaQueryInput<App extends VormaAppBase, P extends VormaQueryPattern<App>> = RouteByPattern<VormaQuery<App>, P> extends {
33
+ phantomInputType: infer T;
34
+ } ? T : null | undefined;
35
+ export type VormaQueryOutput<App extends VormaAppBase, P extends VormaQueryPattern<App>> = RouteByPattern<VormaQuery<App>, P> extends {
36
+ phantomOutputType: infer T;
37
+ } ? T : null | undefined;
38
+ export type VormaMutationInput<App extends VormaAppBase, P extends VormaMutationPattern<App>> = RouteByPattern<VormaMutation<App>, P> extends {
39
+ phantomInputType: infer T;
40
+ } ? T : null | undefined;
41
+ export type VormaMutationOutput<App extends VormaAppBase, P extends VormaMutationPattern<App>> = RouteByPattern<VormaMutation<App>, P> extends {
42
+ phantomOutputType: infer T;
43
+ } ? T : null | undefined;
44
+ export type VormaMutationMethod<App extends VormaAppBase, P extends VormaMutationPattern<App>> = RouteByPattern<VormaMutation<App>, P> extends {
45
+ method: infer M;
46
+ } ? M extends string ? M : "POST" : "POST";
47
+ type RouteMetadata<App extends VormaAppBase, P extends string> = Extract<App["routes"][number], {
48
+ pattern: P;
49
+ }>;
50
+ export type GetParams<App extends VormaAppBase, P extends string> = RouteMetadata<App, P> extends {
51
+ params: ReadonlyArray<infer Params>;
52
+ } ? Params extends string ? Params : never : never;
53
+ export type VormaRouteParams<App extends VormaAppBase, P extends VormaLoaderPattern<App>> = GetParams<App, P>;
54
+ export type HasParams<App extends VormaAppBase, P extends string> = GetParams<App, P> extends never ? false : true;
55
+ export type IsSplat<App extends VormaAppBase, P extends string> = RouteMetadata<App, P> extends {
56
+ isSplat: true;
57
+ } ? true : false;
58
+ export type IsEmptyInput<T> = [T] extends [null | undefined | never] ? true : false;
59
+ type ConditionalParams<App extends VormaAppBase, P extends string> = HasParams<App, P> extends true ? {
60
+ params: {
61
+ [K in GetParams<App, P>]: string;
62
+ };
63
+ } : {};
64
+ type ConditionalSplat<App extends VormaAppBase, P extends string> = IsSplat<App, P> extends true ? {
65
+ splatValues: Array<string>;
66
+ } : {};
67
+ export type PatternBasedProps<App extends VormaAppBase, P extends string> = {
68
+ pattern: P;
69
+ } & ConditionalParams<App, P> & ConditionalSplat<App, P>;
70
+ export type PermissivePatternBasedProps<App extends VormaAppBase, P extends VormaLoaderPattern<App>> = {
71
+ pattern: PermissiveLoaderPattern<App, P>;
72
+ } & ConditionalParams<App, P> & ConditionalSplat<App, P>;
73
+ type PermissiveLoaderPattern<App extends VormaAppBase, P extends VormaLoaderPattern<App>> = P extends `${infer Prefix}/${App["appConfig"]["loadersExplicitIndexSegment"]}` ? P | (Prefix extends "" ? "/" : Prefix) : P;
74
+ export type VormaRoutePropsGeneric<JSXElement, App extends VormaAppBase, P extends VormaLoaderPattern<App>> = {
75
+ idx: number;
76
+ Outlet: (props: Record<string, any>) => JSXElement;
77
+ __phantom_pattern: P;
78
+ } & Record<string, any>;
79
+ type Props = PatternBasedProps<any, string> & {
80
+ options?: SubmitOptions;
81
+ requestInit?: RequestInit;
82
+ input?: any;
83
+ };
84
+ type APIClientHelperOpts = {
85
+ vormaAppConfig: VormaAppConfig;
86
+ type: "loader" | "query" | "mutation";
87
+ props: Props;
88
+ };
89
+ export type VormaQueryProps<App extends VormaAppBase, P extends VormaQueryPattern<App>> = (PatternBasedProps<App, P> & {
90
+ options?: SubmitOptions;
91
+ requestInit?: Omit<RequestInit, "method"> & {
92
+ method?: "GET";
93
+ };
94
+ }) & (IsEmptyInput<VormaQueryInput<App, P>> extends true ? {
95
+ input?: VormaQueryInput<App, P>;
96
+ } : {
97
+ input: VormaQueryInput<App, P>;
98
+ });
99
+ export type VormaMutationProps<App extends VormaAppBase, P extends VormaMutationPattern<App>> = PatternBasedProps<App, P> & {
100
+ options?: SubmitOptions;
101
+ } & (VormaMutationMethod<App, P> extends "POST" ? {
102
+ requestInit?: Omit<RequestInit, "method"> & {
103
+ method?: "POST";
104
+ };
105
+ } : {
106
+ requestInit: RequestInit & {
107
+ method: VormaMutationMethod<App, P>;
108
+ };
109
+ }) & (IsEmptyInput<VormaMutationInput<App, P>> extends true ? {
110
+ input?: VormaMutationInput<App, P>;
111
+ } : {
112
+ input: VormaMutationInput<App, P>;
113
+ });
114
+ export declare function buildQueryURL(vormaAppConfig: VormaAppConfig, props: Props): URL;
115
+ export declare function buildMutationURL(vormaAppConfig: VormaAppConfig, props: Props): URL;
116
+ export declare function resolveBody(props: Props): BodyInit | null | undefined;
117
+ export declare function __resolvePath(opts: APIClientHelperOpts): string;
118
+ export {};
119
+ //# sourceMappingURL=vorma_app_helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vorma_app_helpers.d.ts","sourceRoot":"","sources":["../../../../../../../internal/framework/_typescript/client/src/vorma_app_helpers/vorma_app_helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ import type { PatternRegistry } from "vorma/kit/matcher/register";
2
+ import type { VormaAppConfig } from "../vorma_app_helpers/vorma_app_helpers.ts";
3
+ export type HeadEl = {
4
+ tag?: string;
5
+ attributesKnownSafe?: Record<string, string>;
6
+ booleanAttributes?: Array<string>;
7
+ dangerousInnerHTML?: string;
8
+ };
9
+ type Meta = {
10
+ title: HeadEl | null | undefined;
11
+ metaHeadEls: Array<HeadEl> | null | undefined;
12
+ restHeadEls: Array<HeadEl> | null | undefined;
13
+ };
14
+ type shared = {
15
+ outermostServerError?: string;
16
+ outermostClientError?: string;
17
+ outermostServerErrorIdx?: number;
18
+ outermostClientErrorIdx?: number;
19
+ outermostError?: string;
20
+ outermostErrorIdx?: number;
21
+ matchedPatterns: Array<string>;
22
+ loadersData: Array<any>;
23
+ importURLs: Array<string>;
24
+ exportKeys: Array<string>;
25
+ errorExportKeys: string[];
26
+ hasRootData: boolean;
27
+ params: Record<string, string>;
28
+ splatValues: Array<string>;
29
+ buildID: string;
30
+ activeComponents: Array<any> | null;
31
+ activeErrorBoundary?: any;
32
+ };
33
+ export type GetRouteDataOutput = Omit<shared, "buildID"> & Meta & {
34
+ deps: Array<string>;
35
+ cssBundles: Array<string>;
36
+ };
37
+ export declare const VORMA_SYMBOL: unique symbol;
38
+ export type RouteErrorComponent = (props: {
39
+ error: string;
40
+ }) => any;
41
+ export type ClientLoaderAwaitedServerData<RD, LD> = {
42
+ matchedPatterns: string[];
43
+ loaderData: LD;
44
+ rootData: RD;
45
+ buildID: string;
46
+ };
47
+ export type VormaClientGlobal = shared & {
48
+ isDev: boolean;
49
+ viteDevURL: string;
50
+ publicPathPrefix: string;
51
+ isTouchDevice: boolean;
52
+ patternToWaitFnMap: Record<string, (props: {
53
+ params: Record<string, string>;
54
+ splatValues: string[];
55
+ serverDataPromise: Promise<ClientLoaderAwaitedServerData<any, any>>;
56
+ signal: AbortSignal;
57
+ }) => Promise<any>>;
58
+ clientLoadersData: Array<any>;
59
+ defaultErrorBoundary: RouteErrorComponent;
60
+ useViewTransitions: boolean;
61
+ deploymentID: string;
62
+ vormaAppConfig: VormaAppConfig;
63
+ routeManifestURL: string;
64
+ routeManifest: Record<string, number> | undefined;
65
+ clientModuleMap: Record<string, {
66
+ importURL: string;
67
+ exportKey: string;
68
+ errorExportKey: string;
69
+ }>;
70
+ patternRegistry: PatternRegistry;
71
+ };
72
+ export declare function __getVormaClientGlobal(): {
73
+ get: <K extends keyof VormaClientGlobal>(key: K) => VormaClientGlobal[K];
74
+ set: <K extends keyof VormaClientGlobal, V extends VormaClientGlobal[K]>(key: K, value: V) => void;
75
+ };
76
+ export declare const __vormaClientGlobal: {
77
+ get: <K extends keyof VormaClientGlobal>(key: K) => VormaClientGlobal[K];
78
+ set: <K extends keyof VormaClientGlobal, V extends VormaClientGlobal[K]>(key: K, value: V) => void;
79
+ };
80
+ export declare function getRouterData<T = any, P extends Record<string, string> = Record<string, string>>(): {
81
+ buildID: string;
82
+ matchedPatterns: string[];
83
+ splatValues: string[];
84
+ params: P;
85
+ rootData: T;
86
+ };
87
+ export {};
88
+ //# sourceMappingURL=vorma_ctx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vorma_ctx.d.ts","sourceRoot":"","sources":["../../../../../../../internal/framework/_typescript/client/src/vorma_ctx/vorma_ctx.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAEhF,MAAM,MAAM,MAAM,GAAG;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,iBAAiB,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,KAAK,IAAI,GAAG;IACX,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACjC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAC9C,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;CAC9C,CAAC;AAEF,KAAK,MAAM,GAAG;IACb,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/B,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACxB,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IAErB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAE3B,OAAO,EAAE,MAAM,CAAC;IAEhB,gBAAgB,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACpC,mBAAmB,CAAC,EAAE,GAAG,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,GACvD,IAAI,GAAG;IACN,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACpB,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CAC1B,CAAC;AAEH,eAAO,MAAM,YAAY,eAAmC,CAAC;AAE7D,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,KAAK,GAAG,CAAC;AAEpE,MAAM,MAAM,6BAA6B,CAAC,EAAE,EAAE,EAAE,IAAI;IACnD,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,EAAE,EAAE,CAAC;IACf,QAAQ,EAAE,EAAE,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG;IACxC,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,kBAAkB,EAAE,MAAM,CACzB,MAAM,EACN,CAAC,KAAK,EAAE;QACP,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,iBAAiB,EAAE,OAAO,CAAC,6BAA6B,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACpE,MAAM,EAAE,WAAW,CAAC;KACpB,KAAK,OAAO,CAAC,GAAG,CAAC,CAClB,CAAC;IACF,iBAAiB,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,oBAAoB,EAAE,mBAAmB,CAAC;IAC1C,kBAAkB,EAAE,OAAO,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,cAAc,CAAC;IAE/B,gBAAgB,EAAE,MAAM,CAAC;IAIzB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAElD,eAAe,EAAE,MAAM,CACtB,MAAM,EACN;QACC,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;KACvB,CACD,CAAC;IACF,eAAe,EAAE,eAAe,CAAC;CACjC,CAAC;AAEF,wBAAgB,sBAAsB;UAExB,CAAC,SAAS,MAAM,iBAAiB,OAAO,CAAC,KACJ,iBAAiB,CAAC,CAAC,CAAC;UAGrE,CAAC,SAAS,MAAM,iBAAiB,EACjC,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,OACxB,CAAC,SAAS,CAAC;EAIlB;AAED,eAAO,MAAM,mBAAmB;UAZlB,CAAC,SAAS,MAAM,iBAAiB,OAAO,CAAC,KACJ,iBAAiB,CAAC,CAAC,CAAC;UAGrE,CAAC,SAAS,MAAM,iBAAiB,EACjC,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,OACxB,CAAC,SAAS,CAAC;CAMwC,CAAC;AAK5D,wBAAgB,aAAa,CAC5B,CAAC,GAAG,GAAG,EACP,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;;;YASH,CAAC;;EAGvD"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * If called, will setup listeners to revalidate the current route when
3
+ * the window regains focus and at least `staleTimeMS` has passed since
4
+ * the last revalidation. The `staleTimeMS` option defaults to 5,000
5
+ * (5 seconds). Returns a cleanup function.
6
+ */
7
+ export declare function revalidateOnWindowFocus(options?: {
8
+ staleTimeMS?: number;
9
+ }): () => void;
10
+ //# sourceMappingURL=window_focus_revalidation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"window_focus_revalidation.d.ts","sourceRoot":"","sources":["../../../../../../../internal/framework/_typescript/client/src/window_focus_revalidation/window_focus_revalidation.ts"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,cAkBzE"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../../../internal/framework/_typescript/create/main.ts"],"names":[],"mappings":""}
@@ -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/preact.tsx";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../internal/framework/_typescript/preact/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,kBAAkB,CAAC"}
@@ -0,0 +1,283 @@
1
+ // internal/framework/_typescript/preact/src/helpers.ts
2
+ import { useMemo as useMemo2 } from "preact/hooks";
3
+ import {
4
+ __registerClientLoaderPattern,
5
+ __runClientLoadersAfterHMRUpdate,
6
+ __vormaClientGlobal
7
+ } from "vorma/client";
8
+
9
+ // internal/framework/_typescript/preact/src/preact.tsx
10
+ import { batch, computed, effect, signal } from "@preact/signals";
11
+ import { h } from "preact";
12
+ import { useEffect, useLayoutEffect, useMemo, useRef } from "preact/hooks";
13
+ import {
14
+ __applyScrollState,
15
+ addLocationListener,
16
+ addRouteChangeListener,
17
+ __vormaClientGlobal as ctx,
18
+ getLocation,
19
+ getRouterData
20
+ } from "vorma/client";
21
+ var latestEvent = signal(null);
22
+ var loadersData = signal(ctx.get("loadersData"));
23
+ var clientLoadersData = signal(ctx.get("clientLoadersData"));
24
+ var routerData = signal(getRouterData());
25
+ var outermostErrorIdx = signal(ctx.get("outermostErrorIdx"));
26
+ var outermostError = signal(ctx.get("outermostError"));
27
+ var activeComponents = signal(ctx.get("activeComponents"));
28
+ var activeErrorBoundary = signal(ctx.get("activeErrorBoundary"));
29
+ var importURLs = signal(ctx.get("importURLs"));
30
+ var exportKeys = signal(ctx.get("exportKeys"));
31
+ var isInited = false;
32
+ function initUIListeners() {
33
+ if (isInited) return;
34
+ isInited = true;
35
+ addRouteChangeListener((e) => {
36
+ batch(() => {
37
+ latestEvent.value = e;
38
+ loadersData.value = ctx.get("loadersData");
39
+ clientLoadersData.value = ctx.get("clientLoadersData");
40
+ routerData.value = getRouterData();
41
+ outermostErrorIdx.value = ctx.get("outermostErrorIdx");
42
+ outermostError.value = ctx.get("outermostError");
43
+ activeComponents.value = ctx.get("activeComponents");
44
+ activeErrorBoundary.value = ctx.get("activeErrorBoundary");
45
+ importURLs.value = ctx.get("importURLs");
46
+ exportKeys.value = ctx.get("exportKeys");
47
+ });
48
+ });
49
+ addLocationListener(() => {
50
+ location.value = getLocation();
51
+ });
52
+ }
53
+ var location = signal(getLocation());
54
+ function VormaRootOutlet(props) {
55
+ const idx = props.idx ?? 0;
56
+ const initialRenderRef = useRef(true);
57
+ if (idx === 0 && initialRenderRef.current) {
58
+ initUIListeners();
59
+ initialRenderRef.current = false;
60
+ batch(() => {
61
+ loadersData.value = ctx.get("loadersData");
62
+ clientLoadersData.value = ctx.get("clientLoadersData");
63
+ routerData.value = getRouterData();
64
+ outermostError.value = ctx.get("outermostError");
65
+ outermostErrorIdx.value = ctx.get("outermostErrorIdx");
66
+ activeComponents.value = ctx.get("activeComponents");
67
+ activeErrorBoundary.value = ctx.get("activeErrorBoundary");
68
+ importURLs.value = ctx.get("importURLs");
69
+ exportKeys.value = ctx.get("exportKeys");
70
+ });
71
+ }
72
+ const currentImportURL = signal(importURLs.value[idx]);
73
+ const currentExportKey = signal(exportKeys.value[idx]);
74
+ const nextImportURL = signal(importURLs.value[idx + 1]);
75
+ const nextExportKey = signal(exportKeys.value[idx + 1]);
76
+ useEffect(() => {
77
+ const dispose = effect(() => {
78
+ if (!currentImportURL.value || !latestEvent.value) {
79
+ return;
80
+ }
81
+ batch(() => {
82
+ const newCurrentImportURL = importURLs.value[idx];
83
+ const newCurrentExportKey = exportKeys.value[idx];
84
+ if (currentImportURL.value !== newCurrentImportURL) {
85
+ currentImportURL.value = newCurrentImportURL;
86
+ }
87
+ if (currentExportKey.value !== newCurrentExportKey) {
88
+ currentExportKey.value = newCurrentExportKey;
89
+ }
90
+ const newNextImportURL = importURLs.value[idx + 1];
91
+ const newNextExportKey = exportKeys.value[idx + 1];
92
+ if (nextImportURL.value !== newNextImportURL) {
93
+ nextImportURL.value = newNextImportURL;
94
+ }
95
+ if (nextExportKey.value !== newNextExportKey) {
96
+ nextExportKey.value = newNextExportKey;
97
+ }
98
+ });
99
+ });
100
+ return dispose;
101
+ }, [idx]);
102
+ useLayoutEffect(() => {
103
+ const dispose = effect(() => {
104
+ const event = latestEvent.value;
105
+ if (!event || idx !== 0) {
106
+ return;
107
+ }
108
+ window.requestAnimationFrame(() => {
109
+ __applyScrollState(event.detail.__scrollState);
110
+ });
111
+ });
112
+ return dispose;
113
+ }, [idx]);
114
+ const isErrorIdx = computed(() => idx === outermostErrorIdx.value);
115
+ const CurrentComp = computed(() => {
116
+ if (isErrorIdx.value) {
117
+ return null;
118
+ }
119
+ currentImportURL.value;
120
+ currentExportKey.value;
121
+ return activeComponents.value?.[idx];
122
+ });
123
+ const Outlet = useMemo(
124
+ () => (localProps) => {
125
+ return h(VormaRootOutlet, {
126
+ ...localProps,
127
+ ...props,
128
+ idx: idx + 1
129
+ });
130
+ },
131
+ [nextImportURL.value, nextExportKey.value]
132
+ );
133
+ const shouldFallbackOutlet = computed(() => {
134
+ if (isErrorIdx.value) {
135
+ return false;
136
+ }
137
+ if (CurrentComp.value) {
138
+ return false;
139
+ }
140
+ return idx + 1 < loadersData.value.length;
141
+ });
142
+ const ErrorComp = computed(() => {
143
+ if (!isErrorIdx.value) {
144
+ return null;
145
+ }
146
+ return activeErrorBoundary.value;
147
+ });
148
+ if (isErrorIdx.value) {
149
+ if (ErrorComp.value) {
150
+ return h(ErrorComp.value, { error: outermostError.value });
151
+ }
152
+ return h("div", {}, `Error: ${outermostError.value || "unknown"}`);
153
+ }
154
+ if (!CurrentComp.value) {
155
+ if (shouldFallbackOutlet.value) {
156
+ return h(Outlet, {});
157
+ }
158
+ return h("div", {});
159
+ }
160
+ return h(CurrentComp.value, { idx, Outlet });
161
+ }
162
+
163
+ // internal/framework/_typescript/preact/src/helpers.ts
164
+ function makeTypedUseRouterData() {
165
+ return (() => {
166
+ return routerData.value;
167
+ });
168
+ }
169
+ function makeTypedUseLoaderData() {
170
+ return function useLoaderData(props) {
171
+ return loadersData.value[props.idx];
172
+ };
173
+ }
174
+ function makeTypedUsePatternLoaderData() {
175
+ return function usePatternLoaderData(pattern) {
176
+ const idx = useMemo2(() => {
177
+ return routerData.value.matchedPatterns.findIndex(
178
+ (p) => p === pattern
179
+ );
180
+ }, [pattern]);
181
+ if (idx === -1) {
182
+ return void 0;
183
+ }
184
+ return loadersData.value[idx];
185
+ };
186
+ }
187
+ function makeTypedAddClientLoader() {
188
+ const m = __vormaClientGlobal.get("patternToWaitFnMap");
189
+ return function addClientLoader(props) {
190
+ const p = props.pattern;
191
+ const fn = props.clientLoader;
192
+ __registerClientLoaderPattern(p).catch((error) => {
193
+ console.error("Failed to register client loader pattern:", error);
194
+ });
195
+ m[p] = fn;
196
+ if (import.meta.env.DEV && props.reRunOnModuleChange) {
197
+ __runClientLoadersAfterHMRUpdate(props.reRunOnModuleChange, p);
198
+ }
199
+ const useClientLoaderData = (props2) => {
200
+ const idx = useMemo2(() => {
201
+ if (props2) {
202
+ return props2.idx;
203
+ }
204
+ const matched = routerData.value.matchedPatterns;
205
+ return matched.findIndex((pattern) => pattern === p);
206
+ }, [props2]);
207
+ if (idx === -1) return void 0;
208
+ return clientLoadersData.value[idx];
209
+ };
210
+ return useClientLoaderData;
211
+ };
212
+ }
213
+
214
+ // internal/framework/_typescript/preact/src/link.tsx
215
+ import { h as h2 } from "preact";
216
+ import { memo } from "preact/compat";
217
+ import {
218
+ __makeFinalLinkProps,
219
+ __resolvePath
220
+ } from "vorma/client";
221
+ var VormaLink = memo(function VormaLink2(props) {
222
+ const finalLinkProps = __makeFinalLinkProps(props);
223
+ const { prefetch, scrollToTop, replace, state, ...rest } = props;
224
+ return h2(
225
+ "a",
226
+ {
227
+ "data-external": finalLinkProps.dataExternal,
228
+ ...rest,
229
+ onPointerEnter: finalLinkProps.onPointerEnter,
230
+ onFocus: finalLinkProps.onFocus,
231
+ onPointerLeave: finalLinkProps.onPointerLeave,
232
+ onBlur: finalLinkProps.onBlur,
233
+ onTouchCancel: finalLinkProps.onTouchCancel,
234
+ onClick: finalLinkProps.onClick
235
+ },
236
+ props.children
237
+ );
238
+ });
239
+ function makeTypedLink(vormaAppConfig, defaultProps) {
240
+ const TypedLink = memo(function TypedLink2(props) {
241
+ const {
242
+ pattern,
243
+ params,
244
+ splatValues,
245
+ search,
246
+ hash,
247
+ state,
248
+ ...linkProps
249
+ } = props;
250
+ const href = __resolvePath({
251
+ vormaAppConfig,
252
+ type: "loader",
253
+ props: {
254
+ pattern,
255
+ ...params && { params },
256
+ ...splatValues && { splatValues }
257
+ }
258
+ });
259
+ const url = new URL(href, window.location.origin);
260
+ if (search !== void 0) url.search = search;
261
+ if (hash !== void 0) url.hash = hash;
262
+ const finalProps = {
263
+ ...defaultProps,
264
+ ...linkProps,
265
+ href: url.href,
266
+ state
267
+ };
268
+ return h2(VormaLink, finalProps);
269
+ });
270
+ TypedLink.displayName = `TypedLink(${Object.keys(defaultProps || {}).join(", ")})`;
271
+ return TypedLink;
272
+ }
273
+ export {
274
+ VormaLink,
275
+ VormaRootOutlet,
276
+ location,
277
+ makeTypedAddClientLoader,
278
+ makeTypedLink,
279
+ makeTypedUseLoaderData,
280
+ makeTypedUsePatternLoaderData,
281
+ makeTypedUseRouterData
282
+ };
283
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../internal/framework/_typescript/preact/src/helpers.ts", "../../../../../internal/framework/_typescript/preact/src/preact.tsx", "../../../../../internal/framework/_typescript/preact/src/link.tsx"],
4
+ "sourcesContent": ["/// <reference types=\"vite/client\" />\n\nimport { useMemo } from \"preact/hooks\";\nimport type { JSX } from \"preact/jsx-runtime\";\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 { clientLoadersData, loadersData, routerData } from \"./preact.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 (() => {\n\t\treturn routerData.value;\n\t}) 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\treturn loadersData.value[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 idx = useMemo(() => {\n\t\t\treturn routerData.value.matchedPatterns.findIndex(\n\t\t\t\t(p) => p === pattern,\n\t\t\t);\n\t\t}, [pattern]);\n\n\t\tif (idx === -1) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn loadersData.value[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 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.value.matchedPatterns;\n\t\t\t\treturn matched.findIndex((pattern) => pattern === p);\n\t\t\t}, [props]);\n\n\t\t\tif (idx === -1) return undefined;\n\t\t\treturn clientLoadersData.value[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 { batch, computed, effect, signal } from \"@preact/signals\";\nimport { h } from \"preact\";\nimport { useEffect, useLayoutEffect, useMemo, useRef } from \"preact/hooks\";\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/////// CORE SETUP\n/////////////////////////////////////////////////////////////////////\n\nconst latestEvent = signal<RouteChangeEvent | null>(null);\nconst loadersData = signal(ctx.get(\"loadersData\"));\nconst clientLoadersData = signal(ctx.get(\"clientLoadersData\"));\nconst routerData = signal(getRouterData());\nconst outermostErrorIdx = signal(ctx.get(\"outermostErrorIdx\"));\nconst outermostError = signal(ctx.get(\"outermostError\"));\nconst activeComponents = signal(ctx.get(\"activeComponents\"));\nconst activeErrorBoundary = signal(ctx.get(\"activeErrorBoundary\"));\nconst importURLs = signal(ctx.get(\"importURLs\"));\nconst exportKeys = signal(ctx.get(\"exportKeys\"));\n\nexport { clientLoadersData, loadersData, routerData };\n\nlet isInited = false;\n\nfunction initUIListeners() {\n\tif (isInited) return;\n\tisInited = true;\n\n\taddRouteChangeListener((e) => {\n\t\tbatch(() => {\n\t\t\tlatestEvent.value = e;\n\t\t\tloadersData.value = ctx.get(\"loadersData\");\n\t\t\tclientLoadersData.value = ctx.get(\"clientLoadersData\");\n\t\t\trouterData.value = getRouterData();\n\t\t\toutermostErrorIdx.value = ctx.get(\"outermostErrorIdx\");\n\t\t\toutermostError.value = ctx.get(\"outermostError\");\n\t\t\tactiveComponents.value = ctx.get(\"activeComponents\");\n\t\t\tactiveErrorBoundary.value = ctx.get(\"activeErrorBoundary\");\n\t\t\timportURLs.value = ctx.get(\"importURLs\");\n\t\t\texportKeys.value = ctx.get(\"exportKeys\");\n\t\t});\n\t});\n\n\taddLocationListener(() => {\n\t\tlocation.value = getLocation();\n\t});\n}\n\nexport const location = signal(getLocation());\n\n/////////////////////////////////////////////////////////////////////\n/////// COMPONENT\n/////////////////////////////////////////////////////////////////////\n\nexport function VormaRootOutlet(props: { idx?: number }): h.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\tbatch(() => {\n\t\t\tloadersData.value = ctx.get(\"loadersData\");\n\t\t\tclientLoadersData.value = ctx.get(\"clientLoadersData\");\n\t\t\trouterData.value = getRouterData();\n\t\t\toutermostError.value = ctx.get(\"outermostError\");\n\t\t\toutermostErrorIdx.value = ctx.get(\"outermostErrorIdx\");\n\t\t\tactiveComponents.value = ctx.get(\"activeComponents\");\n\t\t\tactiveErrorBoundary.value = ctx.get(\"activeErrorBoundary\");\n\t\t\timportURLs.value = ctx.get(\"importURLs\");\n\t\t\texportKeys.value = ctx.get(\"exportKeys\");\n\t\t});\n\t}\n\n\tconst currentImportURL = signal(importURLs.value[idx]);\n\tconst currentExportKey = signal(exportKeys.value[idx]);\n\tconst nextImportURL = signal(importURLs.value[idx + 1]);\n\tconst nextExportKey = signal(exportKeys.value[idx + 1]);\n\n\tuseEffect(() => {\n\t\tconst dispose = effect(() => {\n\t\t\tif (!currentImportURL.value || !latestEvent.value) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tbatch(() => {\n\t\t\t\tconst newCurrentImportURL = importURLs.value[idx];\n\t\t\t\tconst newCurrentExportKey = exportKeys.value[idx];\n\n\t\t\t\tif (currentImportURL.value !== newCurrentImportURL) {\n\t\t\t\t\tcurrentImportURL.value = newCurrentImportURL;\n\t\t\t\t}\n\t\t\t\tif (currentExportKey.value !== newCurrentExportKey) {\n\t\t\t\t\tcurrentExportKey.value = newCurrentExportKey;\n\t\t\t\t}\n\n\t\t\t\t// these are also needed for Outlets to render correctly\n\t\t\t\tconst newNextImportURL = importURLs.value[idx + 1];\n\t\t\t\tconst newNextExportKey = exportKeys.value[idx + 1];\n\n\t\t\t\tif (nextImportURL.value !== newNextImportURL) {\n\t\t\t\t\tnextImportURL.value = newNextImportURL;\n\t\t\t\t}\n\t\t\t\tif (nextExportKey.value !== newNextExportKey) {\n\t\t\t\t\tnextExportKey.value = newNextExportKey;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\treturn dispose;\n\t}, [idx]);\n\n\tuseLayoutEffect(() => {\n\t\tconst dispose = effect(() => {\n\t\t\tconst event = latestEvent.value;\n\t\t\tif (!event || idx !== 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\twindow.requestAnimationFrame(() => {\n\t\t\t\t__applyScrollState(event.detail.__scrollState);\n\t\t\t});\n\t\t});\n\n\t\treturn dispose;\n\t}, [idx]);\n\n\tconst isErrorIdx = computed(() => idx === outermostErrorIdx.value);\n\n\tconst CurrentComp = computed(() => {\n\t\tif (isErrorIdx.value) {\n\t\t\treturn null;\n\t\t}\n\t\tcurrentImportURL.value;\n\t\tcurrentExportKey.value;\n\t\treturn activeComponents.value?.[idx];\n\t});\n\n\tconst Outlet = useMemo(\n\t\t() => (localProps: Record<string, any> | undefined) => {\n\t\t\treturn h(VormaRootOutlet, {\n\t\t\t\t...localProps,\n\t\t\t\t...props,\n\t\t\t\tidx: idx + 1,\n\t\t\t});\n\t\t},\n\t\t[nextImportURL.value, nextExportKey.value],\n\t);\n\n\tconst shouldFallbackOutlet = computed(() => {\n\t\tif (isErrorIdx.value) {\n\t\t\treturn false;\n\t\t}\n\t\tif (CurrentComp.value) {\n\t\t\treturn false;\n\t\t}\n\t\treturn idx + 1 < loadersData.value.length;\n\t});\n\n\tconst ErrorComp = computed(() => {\n\t\tif (!isErrorIdx.value) {\n\t\t\treturn null;\n\t\t}\n\t\treturn activeErrorBoundary.value;\n\t});\n\n\tif (isErrorIdx.value) {\n\t\tif (ErrorComp.value) {\n\t\t\treturn h(ErrorComp.value, { error: outermostError.value });\n\t\t}\n\t\treturn h(\"div\", {}, `Error: ${outermostError.value || \"unknown\"}`);\n\t}\n\n\tif (!CurrentComp.value) {\n\t\tif (shouldFallbackOutlet.value) {\n\t\t\treturn h(Outlet, {});\n\t\t}\n\t\treturn h(\"div\", {});\n\t}\n\n\treturn h(CurrentComp.value, { idx, Outlet });\n}\n", "import { h, type JSX } from \"preact\";\nimport { memo } from \"preact/compat\";\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: JSX.HTMLAttributes<HTMLAnchorElement> &\n\t\tVormaLinkPropsBase<\n\t\t\t(\n\t\t\t\te: JSX.TargetedMouseEvent<HTMLAnchorElement>,\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 h(\n\t\t\"a\",\n\t\t{\n\t\t\t\"data-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\tprops.children,\n\t);\n});\n\ntype TypedVormaLinkProps<\n\tApp extends VormaAppBase,\n\tPattern extends VormaLoaderPattern<App> = VormaLoaderPattern<App>,\n> = Omit<JSX.HTMLAttributes<HTMLAnchorElement>, \"href\" | \"pattern\"> &\n\tVormaLinkPropsBase<\n\t\t(e: JSX.TargetedMouseEvent<HTMLAnchorElement>) => 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 = memo(function TypedLink<\n\t\tPattern extends VormaLoaderPattern<App>,\n\t>(props: TypedVormaLinkProps<App, Pattern>) {\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 h(VormaLink, finalProps);\n\t});\n\n\t(TypedLink as any).displayName =\n\t\t`TypedLink(${Object.keys(defaultProps || {}).join(\", \")})`;\n\treturn TypedLink;\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["useMemo", "useMemo", "props", "h", "VormaLink", "TypedLink"]
7
+ }
@@ -0,0 +1,21 @@
1
+ import type { JSX } from "preact/jsx-runtime";
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/preact/src/helpers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAC9C,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;AAGtB,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,KAGxD,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,CACvC;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,CAGlC;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,KA8B8B;IAC7B,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,cAAO;IAC5C,IAAI,aAAM,SAAS,CAAC;CACpB,CAEF"}
@@ -0,0 +1,11 @@
1
+ import { h, type JSX } from "preact";
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("preact").FunctionComponent<h.JSX.HTMLAttributes<HTMLAnchorElement> & VormaLinkPropsBase<(e: JSX.TargetedMouseEvent<HTMLAnchorElement>) => void | Promise<void>>>;
5
+ type TypedVormaLinkProps<App extends VormaAppBase, Pattern extends VormaLoaderPattern<App> = VormaLoaderPattern<App>> = Omit<JSX.HTMLAttributes<HTMLAnchorElement>, "href" | "pattern"> & VormaLinkPropsBase<(e: JSX.TargetedMouseEvent<HTMLAnchorElement>) => 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>) => import("preact").VNode<import("preact").Attributes & h.JSX.HTMLAttributes<HTMLAnchorElement> & VormaLinkPropsBase<(e: JSX.TargetedMouseEvent<HTMLAnchorElement>) => void | Promise<void>>>;
10
+ export {};
11
+ //# sourceMappingURL=link.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../../../../../internal/framework/_typescript/preact/src/link.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,KAAK,GAAG,EAAE,MAAM,QAAQ,CAAC;AAErC,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,sGAIf,GAAG,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,KACxC,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,GAAG,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,GAClE,kBAAkB,CACjB,CAAC,CAAC,EAAE,GAAG,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CACtE,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,IAKA,OAAO,SAAS,kBAAkB,eAAK,SAC/B,mBAAmB,gBAAM,OAAO,CAAC,2HAjDpC,GAAG,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,KACxC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAsF3B"}