@demiurgejs/core 0.2.0-beta.3 → 0.2.0-beta.4

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 (191) hide show
  1. package/README.md +13 -11
  2. package/bin/demiurge.mjs +30 -12
  3. package/dist/browser/file-router.d.ts +388 -5
  4. package/dist/browser/file-router.d.ts.map +1 -1
  5. package/dist/browser/focus.d.ts +20 -0
  6. package/dist/browser/focus.d.ts.map +1 -0
  7. package/dist/browser/index.d.ts +7 -1
  8. package/dist/browser/index.d.ts.map +1 -1
  9. package/dist/browser/mutation-action.d.ts +81 -0
  10. package/dist/browser/mutation-action.d.ts.map +1 -0
  11. package/dist/chunks/document-shell-CpJnFtSC.js +36 -0
  12. package/dist/chunks/document-shell-CpJnFtSC.js.map +1 -0
  13. package/dist/chunks/env-startup-DOBYWlZD.js +257 -0
  14. package/dist/chunks/env-startup-DOBYWlZD.js.map +1 -0
  15. package/dist/chunks/{image-codec-Di53WpcH.js → image-codec-BmzWnH6W.js} +2 -2
  16. package/dist/chunks/{image-codec-Di53WpcH.js.map → image-codec-BmzWnH6W.js.map} +1 -1
  17. package/dist/chunks/{images-Edar3eU1.js → images-BQ80950B.js} +99 -91
  18. package/dist/chunks/images-BQ80950B.js.map +1 -0
  19. package/dist/chunks/index-BVk9zWbe.js +832 -0
  20. package/dist/chunks/index-BVk9zWbe.js.map +1 -0
  21. package/dist/chunks/manifest-vO6c0G0W.js +19 -0
  22. package/dist/chunks/manifest-vO6c0G0W.js.map +1 -0
  23. package/dist/chunks/plugin-BQgMiHxa.js +1827 -0
  24. package/dist/chunks/plugin-BQgMiHxa.js.map +1 -0
  25. package/dist/chunks/session-store-ChModVcq.js +92 -0
  26. package/dist/chunks/session-store-ChModVcq.js.map +1 -0
  27. package/dist/chunks/static-files-ehaD1kE7.js +51 -0
  28. package/dist/chunks/static-files-ehaD1kE7.js.map +1 -0
  29. package/dist/chunks/{streaming-D0fGAuiO.js → streaming-BEbPN7Uk.js} +163 -163
  30. package/dist/chunks/streaming-BEbPN7Uk.js.map +1 -0
  31. package/dist/chunks/testing-DueXbMo4.js +4167 -0
  32. package/dist/chunks/testing-DueXbMo4.js.map +1 -0
  33. package/dist/chunks/vite-DO70kZA6.js +259 -0
  34. package/dist/chunks/vite-DO70kZA6.js.map +1 -0
  35. package/dist/cli.d.ts +17 -25
  36. package/dist/cli.d.ts.map +1 -1
  37. package/dist/cli.js +159 -124
  38. package/dist/cli.js.map +1 -1
  39. package/dist/config/define.d.ts +3 -0
  40. package/dist/config/define.d.ts.map +1 -0
  41. package/dist/config/index.d.ts +7 -0
  42. package/dist/config/index.d.ts.map +1 -0
  43. package/dist/config/index.js +78 -0
  44. package/dist/config/index.js.map +1 -0
  45. package/dist/config/load.d.ts +12 -0
  46. package/dist/config/load.d.ts.map +1 -0
  47. package/dist/config/types.d.ts +64 -0
  48. package/dist/config/types.d.ts.map +1 -0
  49. package/dist/config/validate.d.ts +9 -0
  50. package/dist/config/validate.d.ts.map +1 -0
  51. package/dist/config/vite.d.ts +12 -0
  52. package/dist/config/vite.d.ts.map +1 -0
  53. package/dist/data/cache.d.ts +2 -0
  54. package/dist/data/cache.d.ts.map +1 -1
  55. package/dist/data/idempotency.d.ts.map +1 -1
  56. package/dist/deployment/testing.d.ts +25 -0
  57. package/dist/deployment/testing.d.ts.map +1 -0
  58. package/dist/deployment/testing.js +171 -0
  59. package/dist/deployment/testing.js.map +1 -0
  60. package/dist/document/hydration.d.ts +9 -0
  61. package/dist/document/hydration.d.ts.map +1 -1
  62. package/dist/document/index.d.ts +4 -2
  63. package/dist/document/index.d.ts.map +1 -1
  64. package/dist/document/metadata.d.ts +8 -0
  65. package/dist/document/metadata.d.ts.map +1 -1
  66. package/dist/document/navigation.d.ts +28 -0
  67. package/dist/document/navigation.d.ts.map +1 -0
  68. package/dist/document/render.d.ts +3 -1
  69. package/dist/document/render.d.ts.map +1 -1
  70. package/dist/document/seo.d.ts.map +1 -1
  71. package/dist/edge/assets.d.ts.map +1 -1
  72. package/dist/edge/index.js +55 -73
  73. package/dist/edge/index.js.map +1 -1
  74. package/dist/index.d.ts +12 -10
  75. package/dist/index.d.ts.map +1 -1
  76. package/dist/index.js +1860 -691
  77. package/dist/index.js.map +1 -1
  78. package/dist/internal/testing.js +12 -12
  79. package/dist/kv/index.d.ts +2 -0
  80. package/dist/kv/index.d.ts.map +1 -1
  81. package/dist/kv/index.js +170 -73
  82. package/dist/kv/index.js.map +1 -1
  83. package/dist/kv/session-store.d.ts +20 -0
  84. package/dist/kv/session-store.d.ts.map +1 -0
  85. package/dist/manifest.d.ts +10 -0
  86. package/dist/manifest.d.ts.map +1 -0
  87. package/dist/node/image.d.ts.map +1 -1
  88. package/dist/node/index.d.ts +3 -0
  89. package/dist/node/index.d.ts.map +1 -1
  90. package/dist/node/index.js +251 -178
  91. package/dist/node/index.js.map +1 -1
  92. package/dist/node/serve.d.ts +47 -0
  93. package/dist/node/serve.d.ts.map +1 -0
  94. package/dist/node/static.d.ts.map +1 -1
  95. package/dist/platform/fonts.d.ts.map +1 -1
  96. package/dist/platform/image-url.d.ts.map +1 -1
  97. package/dist/platform/url.d.ts +19 -0
  98. package/dist/platform/url.d.ts.map +1 -0
  99. package/dist/platform/web-vitals.d.ts.map +1 -1
  100. package/dist/redis/index.d.ts +2 -0
  101. package/dist/redis/index.d.ts.map +1 -1
  102. package/dist/redis/index.js +186 -69
  103. package/dist/redis/index.js.map +1 -1
  104. package/dist/redis/session-store.d.ts +9 -0
  105. package/dist/redis/session-store.d.ts.map +1 -0
  106. package/dist/route/index.d.ts +2 -2
  107. package/dist/route/index.d.ts.map +1 -1
  108. package/dist/route/mutation.d.ts +97 -0
  109. package/dist/route/mutation.d.ts.map +1 -0
  110. package/dist/route/types.d.ts +6 -1
  111. package/dist/route/types.d.ts.map +1 -1
  112. package/dist/router/manifest.d.ts +8 -0
  113. package/dist/router/manifest.d.ts.map +1 -1
  114. package/dist/router/navigation-data.d.ts +9 -1
  115. package/dist/router/navigation-data.d.ts.map +1 -1
  116. package/dist/routing/generate.d.ts +3 -0
  117. package/dist/routing/generate.d.ts.map +1 -1
  118. package/dist/routing/index.d.ts +3 -1
  119. package/dist/routing/index.d.ts.map +1 -1
  120. package/dist/routing/locale.d.ts +43 -0
  121. package/dist/routing/locale.d.ts.map +1 -0
  122. package/dist/routing/types.d.ts +12 -0
  123. package/dist/routing/types.d.ts.map +1 -1
  124. package/dist/security/cookie-session.d.ts +43 -0
  125. package/dist/security/cookie-session.d.ts.map +1 -0
  126. package/dist/security/csrf.d.ts +1 -1
  127. package/dist/security/csrf.d.ts.map +1 -1
  128. package/dist/security/env-startup.d.ts +15 -0
  129. package/dist/security/env-startup.d.ts.map +1 -0
  130. package/dist/security/env.d.ts +25 -6
  131. package/dist/security/env.d.ts.map +1 -1
  132. package/dist/security/index.d.ts +9 -1
  133. package/dist/security/index.d.ts.map +1 -1
  134. package/dist/security/report.d.ts.map +1 -1
  135. package/dist/security/session-manager.d.ts +32 -0
  136. package/dist/security/session-manager.d.ts.map +1 -0
  137. package/dist/security/session-store.d.ts +51 -0
  138. package/dist/security/session-store.d.ts.map +1 -0
  139. package/dist/security/testing.d.ts +10 -0
  140. package/dist/security/testing.d.ts.map +1 -0
  141. package/dist/security/testing.js +145 -0
  142. package/dist/security/testing.js.map +1 -0
  143. package/dist/security/types.d.ts +1 -0
  144. package/dist/security/types.d.ts.map +1 -1
  145. package/dist/server/document-shell.d.ts.map +1 -1
  146. package/dist/server/errors.d.ts +1 -0
  147. package/dist/server/errors.d.ts.map +1 -1
  148. package/dist/server/index.d.ts +1 -0
  149. package/dist/server/index.d.ts.map +1 -1
  150. package/dist/server/not-found.d.ts +1 -0
  151. package/dist/server/not-found.d.ts.map +1 -1
  152. package/dist/server/render-tree.d.ts.map +1 -1
  153. package/dist/server/request-handler.d.ts +4 -0
  154. package/dist/server/request-handler.d.ts.map +1 -1
  155. package/dist/server/request-metadata.d.ts +1 -0
  156. package/dist/server/request-metadata.d.ts.map +1 -1
  157. package/dist/server/ssr.d.ts +2 -0
  158. package/dist/server/ssr.d.ts.map +1 -1
  159. package/dist/static/index.d.ts +2 -0
  160. package/dist/static/index.d.ts.map +1 -1
  161. package/dist/static/index.js +380 -363
  162. package/dist/static/index.js.map +1 -1
  163. package/dist/static/preview.d.ts.map +1 -1
  164. package/dist/static/vercel.d.ts +11 -2
  165. package/dist/static/vercel.d.ts.map +1 -1
  166. package/dist/static-files.d.ts +12 -0
  167. package/dist/static-files.d.ts.map +1 -1
  168. package/dist/type-guards.d.ts +19 -0
  169. package/dist/type-guards.d.ts.map +1 -0
  170. package/dist/vite/env-boundary.d.ts +14 -0
  171. package/dist/vite/env-boundary.d.ts.map +1 -0
  172. package/dist/vite/index.d.ts +5 -3
  173. package/dist/vite/index.d.ts.map +1 -1
  174. package/dist/vite/index.js +22 -1560
  175. package/dist/vite/index.js.map +1 -1
  176. package/dist/vite/plugin.d.ts +6 -1
  177. package/dist/vite/plugin.d.ts.map +1 -1
  178. package/dist/vite/policy-verification.d.ts.map +1 -1
  179. package/package.json +19 -6
  180. package/dist/chunks/document-shell-WoM8yZlR.js +0 -35
  181. package/dist/chunks/document-shell-WoM8yZlR.js.map +0 -1
  182. package/dist/chunks/images-Edar3eU1.js.map +0 -1
  183. package/dist/chunks/request-metadata-DaIYq4Ea.js +0 -677
  184. package/dist/chunks/request-metadata-DaIYq4Ea.js.map +0 -1
  185. package/dist/chunks/static-files-DUjHw-4H.js +0 -11
  186. package/dist/chunks/static-files-DUjHw-4H.js.map +0 -1
  187. package/dist/chunks/streaming-D0fGAuiO.js.map +0 -1
  188. package/dist/chunks/testing-CRflAw4X.js +0 -3475
  189. package/dist/chunks/testing-CRflAw4X.js.map +0 -1
  190. package/dist/route/action.d.ts +0 -33
  191. package/dist/route/action.d.ts.map +0 -1
package/README.md CHANGED
@@ -8,7 +8,7 @@ Node process. Adapter boundaries support other deployment configurations.
8
8
 
9
9
  - Node.js 22.13 or newer
10
10
  - React and React DOM 19
11
- - Vite 6 when using the `@demiurgejs/core/vite` build integration
11
+ - Vite 6 and `@vitejs/plugin-react` when the application uses the framework build
12
12
 
13
13
  ## Install
14
14
 
@@ -36,20 +36,20 @@ export default function NotFound({ pathname }: { pathname: string }) {
36
36
  }
37
37
  ```
38
38
 
39
- Add the framework to Vite:
39
+ Configure the application:
40
40
 
41
41
  ```ts
42
- import react from "@vitejs/plugin-react";
43
- import { defineConfig } from "vite";
44
- import { demiurge } from "@demiurgejs/core/vite";
42
+ // demiurge.config.ts
43
+ import { defineConfig } from "@demiurgejs/core/config";
45
44
 
46
45
  export default defineConfig({
47
- plugins: [demiurge({ typedRoutes: true }), react()],
46
+ routing: { typedRoutes: true },
48
47
  });
49
48
  ```
50
49
 
51
- Run `vite` for development or `vite build` for a browser build. There is no
52
- `index.html` to write: the framework renders the document and attaches CSP
50
+ Run `demiurge dev` for development or `demiurge build` for production output.
51
+ Demiurge generates the Vite configuration from `demiurge.config.ts`. There is
52
+ no `index.html` to write: the framework renders the document and attaches CSP
53
53
  nonces to what it emits.
54
54
 
55
55
  Run `demiurge build` for static production output. Run `demiurge preview` to
@@ -67,13 +67,15 @@ covers host allowlists, proxy trust, timeouts, and graceful shutdown.
67
67
  - `@demiurgejs/core/node` — production Node HTTP, SSR, and static-file adapter
68
68
  - `@demiurgejs/core/static` — static-output adapter
69
69
  - `@demiurgejs/core/redis` — Redis-backed cache store with cross-instance tag invalidation
70
- - `@demiurgejs/core/vite` — Vite framework plugin
70
+ - `@demiurgejs/core/config` — the application configuration contract
71
+ - `@demiurgejs/core/vite` — framework build internals
71
72
  - `@demiurgejs/core/adapter/testing` — adapter capability conformance contract
73
+ - `@demiurgejs/core/deployment/testing` — deployment conformance kit for provider translation and production artifacts
72
74
  - `@demiurgejs/core/data/testing` — cache-store conformance contract
73
75
  - `@demiurgejs/core/internal/testing` — explicitly unstable test helpers
74
76
 
75
- The Vite entry point is optional. Core, Node, and static consumers do not need
76
- to install Vite unless their own build imports `@demiurgejs/core/vite`.
77
+ Vite is an optional peer dependency with `@vitejs/plugin-react`. A consumer
78
+ that only runs the built output does not install them.
77
79
 
78
80
  ## Support and license
79
81
 
package/bin/demiurge.mjs CHANGED
@@ -4,11 +4,13 @@
4
4
 
5
5
  import { resolve } from "node:path";
6
6
  import {
7
- buildStaticSite,
8
7
  helpText,
9
8
  parseCliArguments,
10
9
  resolvePreviewOutputDirectory,
10
+ runBuild,
11
+ runDev,
11
12
  } from "../dist/cli.js";
13
+ import { loadDemiurgeConfig } from "../dist/config/index.js";
12
14
  import {
13
15
  createStaticPreviewServer,
14
16
  } from "../dist/static/index.js";
@@ -21,24 +23,40 @@ async function main() {
21
23
  return;
22
24
  }
23
25
 
26
+ const config = await loadDemiurgeConfig();
27
+
28
+ if (options.command === "dev") {
29
+ const server = await runDev(options, config);
30
+ server.printUrls();
31
+ return;
32
+ }
33
+
24
34
  if (options.command === "build") {
25
- const { deploymentOutDir, manifest, outDir } = await buildStaticSite(options);
26
- console.log(
27
- `Demiurge generated ${manifest.entries.length} static artifacts in ${outDir}.`,
28
- );
29
- if (deploymentOutDir) {
30
- console.log(`Demiurge generated provider output in ${deploymentOutDir}.`);
35
+ const result = await runBuild(options, config);
36
+ console.log(`Demiurge generated client output in ${result.outDir}.`);
37
+ if (result.serverOutDir) {
38
+ console.log(`Demiurge generated server output in ${result.serverOutDir}.`);
39
+ }
40
+ if (result.manifest) {
41
+ console.log(
42
+ `Demiurge generated ${result.manifest.entries.length} static artifacts in ${result.outDir}.`,
43
+ );
44
+ }
45
+ if (result.deploymentOutDir) {
46
+ console.log(`Demiurge generated provider output in ${result.deploymentOutDir}.`);
31
47
  }
32
48
  return;
33
49
  }
34
50
 
35
- const server = await createStaticPreviewServer({
36
- ...options,
37
- outDir: await resolvePreviewOutputDirectory(options.outDir),
38
- });
51
+ const outDir = resolvePreviewOutputDirectory(
52
+ config.root,
53
+ options.outDir,
54
+ config.deployment?.outDir,
55
+ );
56
+ const server = await createStaticPreviewServer({ ...options, outDir });
39
57
  const address = server.address();
40
58
  const port = typeof address === "object" && address ? address.port : options.port;
41
- console.log(`Demiurge serves ${resolve(options.outDir)} at http://${options.host}:${port}.`);
59
+ console.log(`Demiurge serves ${resolve(outDir)} at http://${options.host}:${port}.`);
42
60
 
43
61
  const close = () => server.close();
44
62
  process.once("SIGINT", close);
@@ -1,15 +1,85 @@
1
- import { ComponentType, ReactNode } from "react";
1
+ import { AnchorHTMLAttributes, ButtonHTMLAttributes, ComponentType, ForwardedRef, FormHTMLAttributes, ReactNode } from "react";
2
2
  import { type InitialRouteData } from "../document";
3
3
  import { type NotFoundProps, type RouteImporter } from "../route";
4
4
  import { type PendingRouteMatch } from "../router";
5
- import { type AppHref, type LinkTo } from "../routing";
5
+ import { type AppHref, type AppLocale, type LinkTo, type LocaleConfiguration } from "../routing";
6
+ import { type MutationFormAction, type MutationResult } from "./mutation-action";
6
7
  export type NavigationDataLoader = (request: Request) => Promise<InitialRouteData>;
8
+ export type NavigationCommit = {
9
+ url: URL;
10
+ kind: "push" | "replace" | "pop";
11
+ outcome: "ready" | "not-found" | "error";
12
+ title: string;
13
+ };
14
+ export type NavigationScrollContext = NavigationCommit & {
15
+ navigation: NavigationCommit["kind"];
16
+ position?: {
17
+ x: number;
18
+ y: number;
19
+ };
20
+ };
21
+ export type NavigationScrollOption = false | "top" | ((context: NavigationScrollContext) => void);
22
+ export type NavigationAccessibility = {
23
+ announce?: "title" | false | ((context: NavigationCommit) => string | null);
24
+ };
25
+ export type MutationNavigationState<TData = unknown, TField extends string = string> = {
26
+ state: "idle";
27
+ form?: HTMLFormElement;
28
+ submissionKey?: string;
29
+ result?: MutationResult<TData, TField>;
30
+ } | {
31
+ state: "submitting";
32
+ form: HTMLFormElement;
33
+ submissionKey?: string;
34
+ formData: FormData;
35
+ } | {
36
+ state: "loading";
37
+ form: HTMLFormElement;
38
+ submissionKey?: string;
39
+ formData: FormData;
40
+ result?: Extract<MutationResult<TData, TField>, {
41
+ status: "success";
42
+ }>;
43
+ } | {
44
+ state: "invalid";
45
+ form: HTMLFormElement;
46
+ submissionKey?: string;
47
+ formData: FormData;
48
+ result: Extract<MutationResult<TData, TField>, {
49
+ status: "invalid";
50
+ }>;
51
+ } | {
52
+ state: "error";
53
+ form: HTMLFormElement;
54
+ submissionKey?: string;
55
+ formData: FormData;
56
+ response?: Response;
57
+ };
58
+ export type FormProps = (Omit<FormHTMLAttributes<HTMLFormElement>, "action"> & {
59
+ action?: string;
60
+ locale?: AppLocale;
61
+ submissionKey?: string;
62
+ }) | (Omit<FormHTMLAttributes<HTMLFormElement>, "action" | "method"> & {
63
+ action: MutationFormAction;
64
+ locale?: AppLocale;
65
+ method?: never;
66
+ submissionKey?: never;
67
+ });
68
+ export type MutationSubmitProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, "formAction" | "formMethod"> & {
69
+ formAction: MutationFormAction;
70
+ formMethod?: never;
71
+ locale?: AppLocale;
72
+ };
7
73
  export type FileRouterOptions = {
8
74
  initialMatch?: PendingRouteMatch;
9
75
  loadNavigationData?: NavigationDataLoader;
10
76
  navigation?: "document" | "server";
11
77
  routes: Record<string, RouteImporter>;
78
+ locales?: LocaleConfiguration;
79
+ locale?: string;
12
80
  loading?: ComponentType;
81
+ navigationAccessibility?: NavigationAccessibility;
82
+ navigationScroll?: NavigationScrollOption;
13
83
  notFound?: ComponentType<NotFoundProps>;
14
84
  };
15
85
  export declare function createFileRouter(options: FileRouterOptions): () => import("react").FunctionComponentElement<import("react").ProviderProps<RouterApi>>;
@@ -23,13 +93,326 @@ type ReactDomClientModule = Partial<ReactDomClientApi> & {
23
93
  default?: ReactDomClientApi;
24
94
  };
25
95
  export declare function resolveReactDomClient(module: ReactDomClientModule): ReactDomClientApi;
26
- export declare function Link<const TTo extends AppHref>(props: LinkTo<TTo> & {
27
- children: ReactNode;
28
- className?: string;
96
+ type DataAttributes = {
97
+ [TName in `data-${string}`]?: string | number | undefined;
98
+ };
99
+ export type LinkProps<TTo extends AppHref = AppHref> = LinkTo<TTo> & Omit<AnchorHTMLAttributes<HTMLAnchorElement>, "href"> & {
100
+ reloadDocument?: boolean;
101
+ replace?: boolean;
102
+ locale?: AppLocale;
103
+ } & DataAttributes;
104
+ export declare function Link<const TTo extends AppHref>(props: LinkProps<TTo> & {
105
+ ref?: ForwardedRef<HTMLAnchorElement>;
29
106
  }): import("react").JSX.Element;
107
+ export declare function Form(props: FormProps): import("react").FunctionComponentElement<import("react").ProviderProps<string | undefined>>;
108
+ export declare function MutationSubmit(props: MutationSubmitProps): import("react").DetailedReactHTMLElement<{
109
+ locale: undefined;
110
+ formAction: string | MutationFormAction;
111
+ formMethod: string | undefined;
112
+ value?: string | number | readonly string[] | undefined;
113
+ name?: string | undefined | undefined;
114
+ style?: import("react").CSSProperties | undefined;
115
+ title?: string | undefined | undefined;
116
+ type?: "submit" | "reset" | "button" | undefined | undefined;
117
+ nonce?: string | undefined | undefined;
118
+ id?: string | undefined | undefined;
119
+ security?: string | undefined | undefined;
120
+ form?: string | undefined | undefined;
121
+ slot?: string | undefined | undefined;
122
+ children?: ReactNode;
123
+ dir?: string | undefined | undefined;
124
+ rel?: string | undefined | undefined;
125
+ content?: string | undefined | undefined;
126
+ property?: string | undefined | undefined;
127
+ role?: import("react").AriaRole | undefined;
128
+ "aria-live"?: "off" | "assertive" | "polite" | undefined | undefined;
129
+ "aria-atomic"?: (boolean | "true" | "false") | undefined;
130
+ lang?: string | undefined | undefined;
131
+ prefix?: string | undefined | undefined;
132
+ onError?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
133
+ resource?: string | undefined | undefined;
134
+ tabIndex?: number | undefined | undefined;
135
+ className?: string | undefined | undefined;
136
+ part?: string | undefined | undefined;
137
+ defaultChecked?: boolean | undefined | undefined;
138
+ defaultValue?: string | number | readonly string[] | undefined;
139
+ suppressContentEditableWarning?: boolean | undefined | undefined;
140
+ suppressHydrationWarning?: boolean | undefined | undefined;
141
+ accessKey?: string | undefined | undefined;
142
+ autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {}) | undefined;
143
+ autoFocus?: boolean | undefined | undefined;
144
+ contentEditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
145
+ contextMenu?: string | undefined | undefined;
146
+ draggable?: (boolean | "true" | "false") | undefined;
147
+ enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
148
+ hidden?: boolean | undefined | undefined;
149
+ spellCheck?: (boolean | "true" | "false") | undefined;
150
+ translate?: "yes" | "no" | undefined | undefined;
151
+ radioGroup?: string | undefined | undefined;
152
+ about?: string | undefined | undefined;
153
+ datatype?: string | undefined | undefined;
154
+ inlist?: any;
155
+ rev?: string | undefined | undefined;
156
+ typeof?: string | undefined | undefined;
157
+ vocab?: string | undefined | undefined;
158
+ autoCorrect?: string | undefined | undefined;
159
+ autoSave?: string | undefined | undefined;
160
+ color?: string | undefined | undefined;
161
+ itemProp?: string | undefined | undefined;
162
+ itemScope?: boolean | undefined | undefined;
163
+ itemType?: string | undefined | undefined;
164
+ itemID?: string | undefined | undefined;
165
+ itemRef?: string | undefined | undefined;
166
+ results?: number | undefined | undefined;
167
+ unselectable?: "on" | "off" | undefined | undefined;
168
+ popover?: "" | "auto" | "manual" | "hint" | undefined | undefined;
169
+ popoverTargetAction?: "toggle" | "show" | "hide" | undefined | undefined;
170
+ popoverTarget?: string | undefined | undefined;
171
+ inert?: boolean | undefined | undefined;
172
+ inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined | undefined;
173
+ is?: string | undefined | undefined;
174
+ exportparts?: string | undefined | undefined;
175
+ "aria-activedescendant"?: string | undefined | undefined;
176
+ "aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined | undefined;
177
+ "aria-braillelabel"?: string | undefined | undefined;
178
+ "aria-brailleroledescription"?: string | undefined | undefined;
179
+ "aria-busy"?: (boolean | "true" | "false") | undefined;
180
+ "aria-checked"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
181
+ "aria-colcount"?: number | undefined | undefined;
182
+ "aria-colindex"?: number | undefined | undefined;
183
+ "aria-colindextext"?: string | undefined | undefined;
184
+ "aria-colspan"?: number | undefined | undefined;
185
+ "aria-controls"?: string | undefined | undefined;
186
+ "aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined | undefined;
187
+ "aria-describedby"?: string | undefined | undefined;
188
+ "aria-description"?: string | undefined | undefined;
189
+ "aria-details"?: string | undefined | undefined;
190
+ "aria-disabled"?: (boolean | "true" | "false") | undefined;
191
+ "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined | undefined;
192
+ "aria-errormessage"?: string | undefined | undefined;
193
+ "aria-expanded"?: (boolean | "true" | "false") | undefined;
194
+ "aria-flowto"?: string | undefined | undefined;
195
+ "aria-grabbed"?: (boolean | "true" | "false") | undefined;
196
+ "aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined | undefined;
197
+ "aria-hidden"?: (boolean | "true" | "false") | undefined;
198
+ "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined | undefined;
199
+ "aria-keyshortcuts"?: string | undefined | undefined;
200
+ "aria-label"?: string | undefined | undefined;
201
+ "aria-labelledby"?: string | undefined | undefined;
202
+ "aria-level"?: number | undefined | undefined;
203
+ "aria-modal"?: (boolean | "true" | "false") | undefined;
204
+ "aria-multiline"?: (boolean | "true" | "false") | undefined;
205
+ "aria-multiselectable"?: (boolean | "true" | "false") | undefined;
206
+ "aria-orientation"?: "horizontal" | "vertical" | undefined | undefined;
207
+ "aria-owns"?: string | undefined | undefined;
208
+ "aria-placeholder"?: string | undefined | undefined;
209
+ "aria-posinset"?: number | undefined | undefined;
210
+ "aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
211
+ "aria-readonly"?: (boolean | "true" | "false") | undefined;
212
+ "aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined | undefined;
213
+ "aria-required"?: (boolean | "true" | "false") | undefined;
214
+ "aria-roledescription"?: string | undefined | undefined;
215
+ "aria-rowcount"?: number | undefined | undefined;
216
+ "aria-rowindex"?: number | undefined | undefined;
217
+ "aria-rowindextext"?: string | undefined | undefined;
218
+ "aria-rowspan"?: number | undefined | undefined;
219
+ "aria-selected"?: (boolean | "true" | "false") | undefined;
220
+ "aria-setsize"?: number | undefined | undefined;
221
+ "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined | undefined;
222
+ "aria-valuemax"?: number | undefined | undefined;
223
+ "aria-valuemin"?: number | undefined | undefined;
224
+ "aria-valuenow"?: number | undefined | undefined;
225
+ "aria-valuetext"?: string | undefined | undefined;
226
+ dangerouslySetInnerHTML?: {
227
+ __html: string | TrustedHTML;
228
+ } | undefined | undefined;
229
+ onCopy?: import("react").ClipboardEventHandler<HTMLButtonElement> | undefined;
230
+ onCopyCapture?: import("react").ClipboardEventHandler<HTMLButtonElement> | undefined;
231
+ onCut?: import("react").ClipboardEventHandler<HTMLButtonElement> | undefined;
232
+ onCutCapture?: import("react").ClipboardEventHandler<HTMLButtonElement> | undefined;
233
+ onPaste?: import("react").ClipboardEventHandler<HTMLButtonElement> | undefined;
234
+ onPasteCapture?: import("react").ClipboardEventHandler<HTMLButtonElement> | undefined;
235
+ onCompositionEnd?: import("react").CompositionEventHandler<HTMLButtonElement> | undefined;
236
+ onCompositionEndCapture?: import("react").CompositionEventHandler<HTMLButtonElement> | undefined;
237
+ onCompositionStart?: import("react").CompositionEventHandler<HTMLButtonElement> | undefined;
238
+ onCompositionStartCapture?: import("react").CompositionEventHandler<HTMLButtonElement> | undefined;
239
+ onCompositionUpdate?: import("react").CompositionEventHandler<HTMLButtonElement> | undefined;
240
+ onCompositionUpdateCapture?: import("react").CompositionEventHandler<HTMLButtonElement> | undefined;
241
+ onFocus?: import("react").FocusEventHandler<HTMLButtonElement> | undefined;
242
+ onFocusCapture?: import("react").FocusEventHandler<HTMLButtonElement> | undefined;
243
+ onBlur?: import("react").FocusEventHandler<HTMLButtonElement> | undefined;
244
+ onBlurCapture?: import("react").FocusEventHandler<HTMLButtonElement> | undefined;
245
+ onChange?: import("react").ChangeEventHandler<HTMLButtonElement, Element> | undefined;
246
+ onChangeCapture?: import("react").ChangeEventHandler<HTMLButtonElement, Element> | undefined;
247
+ onBeforeInput?: import("react").InputEventHandler<HTMLButtonElement> | undefined;
248
+ onBeforeInputCapture?: import("react").InputEventHandler<HTMLButtonElement> | undefined;
249
+ onInput?: import("react").InputEventHandler<HTMLButtonElement> | undefined;
250
+ onInputCapture?: import("react").InputEventHandler<HTMLButtonElement> | undefined;
251
+ onReset?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
252
+ onResetCapture?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
253
+ onSubmit?: import("react").SubmitEventHandler<HTMLButtonElement> | undefined;
254
+ onSubmitCapture?: import("react").SubmitEventHandler<HTMLButtonElement> | undefined;
255
+ onInvalid?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
256
+ onInvalidCapture?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
257
+ onLoad?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
258
+ onLoadCapture?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
259
+ onErrorCapture?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
260
+ onKeyDown?: import("react").KeyboardEventHandler<HTMLButtonElement> | undefined;
261
+ onKeyDownCapture?: import("react").KeyboardEventHandler<HTMLButtonElement> | undefined;
262
+ onKeyPress?: import("react").KeyboardEventHandler<HTMLButtonElement> | undefined;
263
+ onKeyPressCapture?: import("react").KeyboardEventHandler<HTMLButtonElement> | undefined;
264
+ onKeyUp?: import("react").KeyboardEventHandler<HTMLButtonElement> | undefined;
265
+ onKeyUpCapture?: import("react").KeyboardEventHandler<HTMLButtonElement> | undefined;
266
+ onAbort?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
267
+ onAbortCapture?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
268
+ onCanPlay?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
269
+ onCanPlayCapture?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
270
+ onCanPlayThrough?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
271
+ onCanPlayThroughCapture?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
272
+ onDurationChange?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
273
+ onDurationChangeCapture?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
274
+ onEmptied?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
275
+ onEmptiedCapture?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
276
+ onEncrypted?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
277
+ onEncryptedCapture?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
278
+ onEnded?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
279
+ onEndedCapture?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
280
+ onLoadedData?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
281
+ onLoadedDataCapture?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
282
+ onLoadedMetadata?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
283
+ onLoadedMetadataCapture?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
284
+ onLoadStart?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
285
+ onLoadStartCapture?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
286
+ onPause?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
287
+ onPauseCapture?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
288
+ onPlay?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
289
+ onPlayCapture?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
290
+ onPlaying?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
291
+ onPlayingCapture?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
292
+ onProgress?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
293
+ onProgressCapture?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
294
+ onRateChange?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
295
+ onRateChangeCapture?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
296
+ onSeeked?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
297
+ onSeekedCapture?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
298
+ onSeeking?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
299
+ onSeekingCapture?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
300
+ onStalled?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
301
+ onStalledCapture?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
302
+ onSuspend?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
303
+ onSuspendCapture?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
304
+ onTimeUpdate?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
305
+ onTimeUpdateCapture?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
306
+ onVolumeChange?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
307
+ onVolumeChangeCapture?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
308
+ onWaiting?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
309
+ onWaitingCapture?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
310
+ onAuxClick?: import("react").MouseEventHandler<HTMLButtonElement> | undefined;
311
+ onAuxClickCapture?: import("react").MouseEventHandler<HTMLButtonElement> | undefined;
312
+ onClick?: import("react").MouseEventHandler<HTMLButtonElement> | undefined;
313
+ onClickCapture?: import("react").MouseEventHandler<HTMLButtonElement> | undefined;
314
+ onContextMenu?: import("react").MouseEventHandler<HTMLButtonElement> | undefined;
315
+ onContextMenuCapture?: import("react").MouseEventHandler<HTMLButtonElement> | undefined;
316
+ onDoubleClick?: import("react").MouseEventHandler<HTMLButtonElement> | undefined;
317
+ onDoubleClickCapture?: import("react").MouseEventHandler<HTMLButtonElement> | undefined;
318
+ onDrag?: import("react").DragEventHandler<HTMLButtonElement> | undefined;
319
+ onDragCapture?: import("react").DragEventHandler<HTMLButtonElement> | undefined;
320
+ onDragEnd?: import("react").DragEventHandler<HTMLButtonElement> | undefined;
321
+ onDragEndCapture?: import("react").DragEventHandler<HTMLButtonElement> | undefined;
322
+ onDragEnter?: import("react").DragEventHandler<HTMLButtonElement> | undefined;
323
+ onDragEnterCapture?: import("react").DragEventHandler<HTMLButtonElement> | undefined;
324
+ onDragExit?: import("react").DragEventHandler<HTMLButtonElement> | undefined;
325
+ onDragExitCapture?: import("react").DragEventHandler<HTMLButtonElement> | undefined;
326
+ onDragLeave?: import("react").DragEventHandler<HTMLButtonElement> | undefined;
327
+ onDragLeaveCapture?: import("react").DragEventHandler<HTMLButtonElement> | undefined;
328
+ onDragOver?: import("react").DragEventHandler<HTMLButtonElement> | undefined;
329
+ onDragOverCapture?: import("react").DragEventHandler<HTMLButtonElement> | undefined;
330
+ onDragStart?: import("react").DragEventHandler<HTMLButtonElement> | undefined;
331
+ onDragStartCapture?: import("react").DragEventHandler<HTMLButtonElement> | undefined;
332
+ onDrop?: import("react").DragEventHandler<HTMLButtonElement> | undefined;
333
+ onDropCapture?: import("react").DragEventHandler<HTMLButtonElement> | undefined;
334
+ onMouseDown?: import("react").MouseEventHandler<HTMLButtonElement> | undefined;
335
+ onMouseDownCapture?: import("react").MouseEventHandler<HTMLButtonElement> | undefined;
336
+ onMouseEnter?: import("react").MouseEventHandler<HTMLButtonElement> | undefined;
337
+ onMouseLeave?: import("react").MouseEventHandler<HTMLButtonElement> | undefined;
338
+ onMouseMove?: import("react").MouseEventHandler<HTMLButtonElement> | undefined;
339
+ onMouseMoveCapture?: import("react").MouseEventHandler<HTMLButtonElement> | undefined;
340
+ onMouseOut?: import("react").MouseEventHandler<HTMLButtonElement> | undefined;
341
+ onMouseOutCapture?: import("react").MouseEventHandler<HTMLButtonElement> | undefined;
342
+ onMouseOver?: import("react").MouseEventHandler<HTMLButtonElement> | undefined;
343
+ onMouseOverCapture?: import("react").MouseEventHandler<HTMLButtonElement> | undefined;
344
+ onMouseUp?: import("react").MouseEventHandler<HTMLButtonElement> | undefined;
345
+ onMouseUpCapture?: import("react").MouseEventHandler<HTMLButtonElement> | undefined;
346
+ onSelect?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
347
+ onSelectCapture?: import("react").ReactEventHandler<HTMLButtonElement> | undefined;
348
+ onTouchCancel?: import("react").TouchEventHandler<HTMLButtonElement> | undefined;
349
+ onTouchCancelCapture?: import("react").TouchEventHandler<HTMLButtonElement> | undefined;
350
+ onTouchEnd?: import("react").TouchEventHandler<HTMLButtonElement> | undefined;
351
+ onTouchEndCapture?: import("react").TouchEventHandler<HTMLButtonElement> | undefined;
352
+ onTouchMove?: import("react").TouchEventHandler<HTMLButtonElement> | undefined;
353
+ onTouchMoveCapture?: import("react").TouchEventHandler<HTMLButtonElement> | undefined;
354
+ onTouchStart?: import("react").TouchEventHandler<HTMLButtonElement> | undefined;
355
+ onTouchStartCapture?: import("react").TouchEventHandler<HTMLButtonElement> | undefined;
356
+ onPointerDown?: import("react").PointerEventHandler<HTMLButtonElement> | undefined;
357
+ onPointerDownCapture?: import("react").PointerEventHandler<HTMLButtonElement> | undefined;
358
+ onPointerMove?: import("react").PointerEventHandler<HTMLButtonElement> | undefined;
359
+ onPointerMoveCapture?: import("react").PointerEventHandler<HTMLButtonElement> | undefined;
360
+ onPointerUp?: import("react").PointerEventHandler<HTMLButtonElement> | undefined;
361
+ onPointerUpCapture?: import("react").PointerEventHandler<HTMLButtonElement> | undefined;
362
+ onPointerCancel?: import("react").PointerEventHandler<HTMLButtonElement> | undefined;
363
+ onPointerCancelCapture?: import("react").PointerEventHandler<HTMLButtonElement> | undefined;
364
+ onPointerEnter?: import("react").PointerEventHandler<HTMLButtonElement> | undefined;
365
+ onPointerLeave?: import("react").PointerEventHandler<HTMLButtonElement> | undefined;
366
+ onPointerOver?: import("react").PointerEventHandler<HTMLButtonElement> | undefined;
367
+ onPointerOverCapture?: import("react").PointerEventHandler<HTMLButtonElement> | undefined;
368
+ onPointerOut?: import("react").PointerEventHandler<HTMLButtonElement> | undefined;
369
+ onPointerOutCapture?: import("react").PointerEventHandler<HTMLButtonElement> | undefined;
370
+ onGotPointerCapture?: import("react").PointerEventHandler<HTMLButtonElement> | undefined;
371
+ onGotPointerCaptureCapture?: import("react").PointerEventHandler<HTMLButtonElement> | undefined;
372
+ onLostPointerCapture?: import("react").PointerEventHandler<HTMLButtonElement> | undefined;
373
+ onLostPointerCaptureCapture?: import("react").PointerEventHandler<HTMLButtonElement> | undefined;
374
+ onScroll?: import("react").UIEventHandler<HTMLButtonElement> | undefined;
375
+ onScrollCapture?: import("react").UIEventHandler<HTMLButtonElement> | undefined;
376
+ onScrollEnd?: import("react").UIEventHandler<HTMLButtonElement> | undefined;
377
+ onScrollEndCapture?: import("react").UIEventHandler<HTMLButtonElement> | undefined;
378
+ onWheel?: import("react").WheelEventHandler<HTMLButtonElement> | undefined;
379
+ onWheelCapture?: import("react").WheelEventHandler<HTMLButtonElement> | undefined;
380
+ onAnimationStart?: import("react").AnimationEventHandler<HTMLButtonElement> | undefined;
381
+ onAnimationStartCapture?: import("react").AnimationEventHandler<HTMLButtonElement> | undefined;
382
+ onAnimationEnd?: import("react").AnimationEventHandler<HTMLButtonElement> | undefined;
383
+ onAnimationEndCapture?: import("react").AnimationEventHandler<HTMLButtonElement> | undefined;
384
+ onAnimationIteration?: import("react").AnimationEventHandler<HTMLButtonElement> | undefined;
385
+ onAnimationIterationCapture?: import("react").AnimationEventHandler<HTMLButtonElement> | undefined;
386
+ onToggle?: import("react").ToggleEventHandler<HTMLButtonElement> | undefined;
387
+ onBeforeToggle?: import("react").ToggleEventHandler<HTMLButtonElement> | undefined;
388
+ onTransitionCancel?: import("react").TransitionEventHandler<HTMLButtonElement> | undefined;
389
+ onTransitionCancelCapture?: import("react").TransitionEventHandler<HTMLButtonElement> | undefined;
390
+ onTransitionEnd?: import("react").TransitionEventHandler<HTMLButtonElement> | undefined;
391
+ onTransitionEndCapture?: import("react").TransitionEventHandler<HTMLButtonElement> | undefined;
392
+ onTransitionRun?: import("react").TransitionEventHandler<HTMLButtonElement> | undefined;
393
+ onTransitionRunCapture?: import("react").TransitionEventHandler<HTMLButtonElement> | undefined;
394
+ onTransitionStart?: import("react").TransitionEventHandler<HTMLButtonElement> | undefined;
395
+ onTransitionStartCapture?: import("react").TransitionEventHandler<HTMLButtonElement> | undefined;
396
+ disabled?: boolean | undefined | undefined;
397
+ formEncType?: string | undefined | undefined;
398
+ formNoValidate?: boolean | undefined | undefined;
399
+ formTarget?: string | undefined | undefined;
400
+ }, HTMLElement>;
401
+ export declare function useNavigation<TData = unknown, TField extends string = string>(options?: {
402
+ form?: HTMLFormElement;
403
+ submissionKey?: string;
404
+ }): MutationNavigationState<TData, TField>;
405
+ export declare function useFormNavigation<TData = unknown, TField extends string = string>(submissionKey?: string): MutationNavigationState<TData, TField>;
30
406
  type RouterApi = {
407
+ locale?: string;
408
+ locales?: LocaleConfiguration;
31
409
  navigation: "document" | "server";
410
+ submissionVersion: number;
32
411
  push(to: string): void;
412
+ getMutationNavigation(form?: HTMLFormElement, submissionKey?: string): MutationNavigationState;
413
+ releaseMutationNavigation(form: HTMLFormElement, submissionKey?: string): void;
414
+ submitMutation(form: HTMLFormElement, submitter: HTMLElement | null, submissionKey?: string): Promise<void>;
415
+ replace(to: string): void;
33
416
  };
34
417
  export {};
35
418
  //# sourceMappingURL=file-router.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-router.d.ts","sourceRoot":"","sources":["../../src/browser/file-router.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EAEb,SAAS,EAQV,MAAM,OAAO,CAAC;AACf,OAAO,EAKL,KAAK,gBAAgB,EACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAIL,KAAK,aAAa,EAElB,KAAK,aAAa,EACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAUL,KAAK,iBAAiB,EACvB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAQ,KAAK,OAAO,EAAmB,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAE9E,MAAM,MAAM,oBAAoB,GAAG,CACjC,OAAO,EAAE,OAAO,KACb,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAE/B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,kBAAkB,CAAC,EAAE,oBAAoB,CAAC;IAC1C,UAAU,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,QAAQ,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;CACzC,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,4FA8H1D;AA0BD,MAAM,MAAM,wBAAwB,GAAG,IAAI,CACzC,iBAAiB,EACjB,cAAc,CACf,GAAG;IACF,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,iBAoDxE;AAED,KAAK,iBAAiB,GAAG,IAAI,CAC3B,cAAc,kBAAkB,CAAC,EACjC,YAAY,GAAG,aAAa,CAC7B,CAAC;AAEF,KAAK,oBAAoB,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAAG;IACvD,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,oBAAoB,qBAkBjE;AAED,wBAAgB,IAAI,CAAC,KAAK,CAAC,GAAG,SAAS,OAAO,EAC5C,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG;IACnB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BAuBF;AA+LD,KAAK,SAAS,GAAG;IACf,UAAU,EAAE,UAAU,GAAG,QAAQ,CAAC;IAClC,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC"}
1
+ {"version":3,"file":"file-router.d.ts","sourceRoot":"","sources":["../../src/browser/file-router.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { type ComponentPropsWithRef, type ElementType, type RefCallback, type ReactNode } from "react";
2
+ export type RouteFocusBoundaryElement = Element & {
3
+ focus?: (options?: FocusOptions) => void;
4
+ };
5
+ export type RouteFocusRegistration = {
6
+ register(element: RouteFocusBoundaryElement): () => void;
7
+ focus(): boolean;
8
+ };
9
+ export declare const RouteFocusContext: import("react").Context<RouteFocusRegistration>;
10
+ export type RouteFocusBoundaryProps<TAs extends ElementType = "div"> = {
11
+ as?: TAs;
12
+ } & Omit<ComponentPropsWithRef<TAs>, "as" | "tabIndex">;
13
+ export declare function useRouteFocusBoundary<TElement extends RouteFocusBoundaryElement = RouteFocusBoundaryElement>(): {
14
+ ref: RefCallback<TElement>;
15
+ tabIndex: -1;
16
+ };
17
+ export declare function RouteFocusBoundary<TAs extends ElementType = "div">(props: RouteFocusBoundaryProps<TAs> & {
18
+ children?: ReactNode;
19
+ }): import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
20
+ //# sourceMappingURL=focus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focus.d.ts","sourceRoot":"","sources":["../../src/browser/focus.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EAEhB,KAAK,WAAW,EAChB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,MAAM,MAAM,yBAAyB,GAAG,OAAO,GAAG;IAChD,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,OAAO,EAAE,yBAAyB,GAAG,MAAM,IAAI,CAAC;IACzD,KAAK,IAAI,OAAO,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,iBAAiB,iDAG5B,CAAC;AAEH,MAAM,MAAM,uBAAuB,CACjC,GAAG,SAAS,WAAW,GAAG,KAAK,IAC7B;IACF,EAAE,CAAC,EAAE,GAAG,CAAC;CACV,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,UAAU,CAAC,CAAC;AAExD,wBAAgB,qBAAqB,CACnC,QAAQ,SAAS,yBAAyB,GAAG,yBAAyB;;;EAiBvE;AAED,wBAAgB,kBAAkB,CAChC,GAAG,SAAS,WAAW,GAAG,KAAK,EAC/B,KAAK,EAAE,uBAAuB,CAAC,GAAG,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,0FAqB/D"}
@@ -1,3 +1,9 @@
1
- export { createFileRouter, hydrateFileRouter, Link } from "./file-router";
1
+ export { createFileRouter, Form, hydrateFileRouter, Link, MutationSubmit, useNavigation, useFormNavigation, } from "./file-router";
2
+ export { createMutationAction, useMutationAction } from "./mutation-action";
3
+ export { RouteFocusBoundary, useRouteFocusBoundary, } from "./focus";
4
+ export type { FileRouterOptions, MutationNavigationState, FormProps, LinkProps, MutationSubmitProps, NavigationAccessibility, NavigationCommit, NavigationScrollContext, NavigationScrollOption, } from "./file-router";
5
+ export type { MutationAction, MutationActionOptions, MutationFormAction, MutationResult, } from "./mutation-action";
6
+ export type { MutationValidation } from "../route";
7
+ export type { RouteFocusBoundaryElement, RouteFocusBoundaryProps, } from "./focus";
2
8
  export type { HydrateFileRouterOptions } from "./file-router";
3
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1E,YAAY,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,IAAI,EACJ,iBAAiB,EACjB,IAAI,EACJ,cAAc,EACd,aAAa,EACb,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EACL,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,iBAAiB,EACjB,uBAAuB,EACvB,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,uBAAuB,EACvB,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,YAAY,EACV,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC"}