@fluixi/core 1.0.0-alpha.94 → 1.0.0-alpha.96

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 (63) hide show
  1. package/LICENSE +1 -1
  2. package/dist/cdn/core.global.js +2 -2
  3. package/dist/src/cdn/{chunk-7XM7Q5VR.mjs → chunk-RKBFEFZP.mjs} +125 -10
  4. package/dist/src/cdn/core.cjs +132 -12
  5. package/dist/src/cdn/core.mjs +4 -4
  6. package/dist/src/cdn/{router-VOY43YNM.mjs → router-V2THK27H.mjs} +3 -3
  7. package/dist/src/index.cjs +122 -7
  8. package/dist/src/index.mjs +122 -7
  9. package/dist/src/lib/client/{chunk-TSXM2PNY.mjs → chunk-RNRJHQFG.mjs} +1 -1
  10. package/dist/src/lib/client/index.cjs +133 -13
  11. package/dist/src/lib/client/index.d.ts.map +1 -1
  12. package/dist/src/lib/client/index.js +4 -1
  13. package/dist/src/lib/client/index.mjs +5 -5
  14. package/dist/src/lib/client/{router-BDVPLLYX.mjs → router-F3Y4BIVJ.mjs} +127 -12
  15. package/dist/src/lib/core.cjs +121 -6
  16. package/dist/src/lib/core.mjs +121 -6
  17. package/dist/src/lib/i18n/index.cjs +1 -1
  18. package/dist/src/lib/i18n/index.mjs +1 -1
  19. package/dist/src/lib/index.cjs +1 -1
  20. package/dist/src/lib/index.mjs +1 -1
  21. package/dist/src/lib/isomorphic.cjs +1 -1
  22. package/dist/src/lib/isomorphic.d.ts +5 -0
  23. package/dist/src/lib/isomorphic.d.ts.map +1 -1
  24. package/dist/src/lib/isomorphic.js +1 -1
  25. package/dist/src/lib/isomorphic.mjs +1 -1
  26. package/dist/src/lib/jsx-runtime/index.cjs +1 -1
  27. package/dist/src/lib/jsx-runtime/index.mjs +1 -1
  28. package/dist/src/lib/jsx-runtime/jsx-dev-runtime.cjs +1 -1
  29. package/dist/src/lib/jsx-runtime/jsx-dev-runtime.mjs +1 -1
  30. package/dist/src/lib/plugins/index.cjs +1 -1
  31. package/dist/src/lib/plugins/index.mjs +1 -1
  32. package/dist/src/lib/render/index.cjs +1 -1
  33. package/dist/src/lib/render/index.mjs +1 -1
  34. package/dist/src/lib/render/versions.cjs +1 -1
  35. package/dist/src/lib/render/versions.mjs +1 -1
  36. package/dist/src/lib/router/data.cjs +4 -4
  37. package/dist/src/lib/router/data.d.ts.map +1 -1
  38. package/dist/src/lib/router/data.js +9 -8
  39. package/dist/src/lib/router/data.mjs +4 -4
  40. package/dist/src/lib/router/index.cjs +126 -11
  41. package/dist/src/lib/router/index.d.ts +8 -5
  42. package/dist/src/lib/router/index.d.ts.map +1 -1
  43. package/dist/src/lib/router/index.js +94 -7
  44. package/dist/src/lib/router/index.mjs +126 -11
  45. package/dist/src/lib/router/scroll.cjs +79 -0
  46. package/dist/src/lib/router/scroll.d.ts +19 -0
  47. package/dist/src/lib/router/scroll.d.ts.map +1 -0
  48. package/dist/src/lib/router/scroll.js +68 -0
  49. package/dist/src/lib/router/scroll.mjs +58 -0
  50. package/dist/src/lib/server/index.cjs +1 -1
  51. package/dist/src/lib/server/index.mjs +1 -1
  52. package/dist/src/lib/storage/index.cjs +1 -1
  53. package/dist/src/lib/storage/index.mjs +1 -1
  54. package/dist/src/routes.cjs +1 -1
  55. package/dist/src/routes.mjs +1 -1
  56. package/dist/src/utils.cjs +1 -1
  57. package/dist/src/utils.mjs +1 -1
  58. package/dist/src/version.generated.cjs +1 -1
  59. package/dist/src/version.generated.d.ts +1 -1
  60. package/dist/src/version.generated.js +1 -1
  61. package/dist/src/version.generated.mjs +1 -1
  62. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  63. package/package.json +16 -16
@@ -1,4 +1,4 @@
1
- /*! @fluixi/core v1.0.0-alpha.94 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
1
+ /*! @fluixi/core v1.0.0-alpha.96 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
2
2
 
3
3
  // src/lib/i18n/index.ts
4
4
  import { createSignal } from "@fluixi/reactive/signal";
@@ -114,7 +114,7 @@ var import_signal6 = require("@fluixi/reactive/signal");
114
114
  var import_dom = require("@fluixi/dom");
115
115
 
116
116
  // src/version.generated.ts
117
- var VERSION = "1.0.0-alpha.94";
117
+ var VERSION = "1.0.0-alpha.96";
118
118
 
119
119
  // src/lib/render/versions.ts
120
120
  var import_dom2 = require("@fluixi/dom");
@@ -44,7 +44,7 @@ import { createRoot as createRoot2 } from "@fluixi/reactive/signal";
44
44
  import { registerCoreVersion } from "@fluixi/dom";
45
45
 
46
46
  // src/version.generated.ts
47
- var VERSION = "1.0.0-alpha.94";
47
+ var VERSION = "1.0.0-alpha.96";
48
48
 
49
49
  // src/lib/render/versions.ts
50
50
  import { stampVersions, warnOnVersionSkew, versions } from "@fluixi/dom";
@@ -86,5 +86,5 @@ function createIsomorphicStore(key, options) {
86
86
  }
87
87
  return initPromise;
88
88
  };
89
- return { value, fields, set, setField, ensureInit, key };
89
+ return { value, fields, set, setField, ensureInit, key, seeded };
90
90
  }
@@ -72,6 +72,11 @@ export interface IsomorphicStore<T extends Record<string, any>> {
72
72
  ensureInit: () => Promise<void>;
73
73
  /** Stable serialization key. */
74
74
  key: string;
75
+ /**
76
+ * Whether the server rendered this value and sent it with the page. Tells "the server
77
+ * said nobody" apart from "no server said anything" (a client-only load).
78
+ */
79
+ readonly seeded: boolean;
75
80
  }
76
81
  export interface IsomorphicStoreOptions<T> {
77
82
  /** Resolve the record on the server for this request (receives the RequestEvent). */
@@ -1 +1 @@
1
- {"version":3,"file":"isomorphic.d.ts","sourceRoot":"","sources":["../../../src/lib/isomorphic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAA4B,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAElF,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAevE,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,yFAAyF;IACzF,KAAK,EAAE,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAC/B,6EAA6E;IAC7E,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,KAAK,IAAI,CAAC;IAChC,gCAAgC;IAChC,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,oFAAoF;IACpF,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACvC,uFAAuF;IACvF,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAC7B,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,CAAC,CAAC;CACd;AASD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAC5B,eAAe,CAAC,CAAC,CAAC,CAapB;AAkBD,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC5D,yFAAyF;IACzF,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACnB,qEAAqE;IACrE,MAAM,EAAE;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE,CAAC;IAC3C,gCAAgC;IAChC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;IACpB,6CAA6C;IAC7C,QAAQ,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACzD;;;;OAIG;IACH,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,gCAAgC;IAChC,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACvC,qFAAqF;IACrF,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACvC,6FAA6F;IAC7F,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9B,sFAAsF;IACtF,QAAQ,EAAE,CAAC,CAAC;IACZ;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CAChE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjE,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,GACjC,eAAe,CAAC,CAAC,CAAC,CAuDpB"}
1
+ {"version":3,"file":"isomorphic.d.ts","sourceRoot":"","sources":["../../../src/lib/isomorphic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAA4B,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAElF,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAevE,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,yFAAyF;IACzF,KAAK,EAAE,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAC/B,6EAA6E;IAC7E,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,KAAK,IAAI,CAAC;IAChC,gCAAgC;IAChC,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,oFAAoF;IACpF,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACvC,uFAAuF;IACvF,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAC7B,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,CAAC,CAAC;CACd;AASD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAC5B,eAAe,CAAC,CAAC,CAAC,CAapB;AAkBD,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC5D,yFAAyF;IACzF,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACnB,qEAAqE;IACrE,MAAM,EAAE;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE,CAAC;IAC3C,gCAAgC;IAChC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;IACpB,6CAA6C;IAC7C,QAAQ,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACzD;;;;OAIG;IACH,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,gCAAgC;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACvC,qFAAqF;IACrF,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACvC,6FAA6F;IAC7F,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9B,sFAAsF;IACtF,QAAQ,EAAE,CAAC,CAAC;IACZ;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CAChE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjE,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,GACjC,eAAe,CAAC,CAAC,CAAC,CAuDpB"}
@@ -128,5 +128,5 @@ export function createIsomorphicStore(key, options) {
128
128
  }
129
129
  return initPromise;
130
130
  };
131
- return { value, fields, set, setField, ensureInit, key };
131
+ return { value, fields, set, setField, ensureInit, key, seeded };
132
132
  }
@@ -61,7 +61,7 @@ function createIsomorphicStore(key, options) {
61
61
  }
62
62
  return initPromise;
63
63
  };
64
- return { value, fields, set, setField, ensureInit, key };
64
+ return { value, fields, set, setField, ensureInit, key, seeded };
65
65
  }
66
66
  export {
67
67
  createIsomorphicState,
@@ -1,4 +1,4 @@
1
- /*! @fluixi/core v1.0.0-alpha.94 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
1
+ /*! @fluixi/core v1.0.0-alpha.96 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
2
2
  "use strict";
3
3
  var __defProp = Object.defineProperty;
4
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -1,4 +1,4 @@
1
- /*! @fluixi/core v1.0.0-alpha.94 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
1
+ /*! @fluixi/core v1.0.0-alpha.96 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
2
2
 
3
3
  // src/lib/jsx-runtime/index.ts
4
4
  export * from "@fluixi/jsx/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /*! @fluixi/core v1.0.0-alpha.94 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
1
+ /*! @fluixi/core v1.0.0-alpha.96 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
2
2
  "use strict";
3
3
  var __defProp = Object.defineProperty;
4
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -1,4 +1,4 @@
1
- /*! @fluixi/core v1.0.0-alpha.94 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
1
+ /*! @fluixi/core v1.0.0-alpha.96 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
2
2
 
3
3
  // src/lib/jsx-runtime/jsx-dev-runtime.ts
4
4
  export * from "@fluixi/jsx/jsx-dev-runtime";
@@ -1,4 +1,4 @@
1
- /*! @fluixi/core v1.0.0-alpha.94 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
1
+ /*! @fluixi/core v1.0.0-alpha.96 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
2
2
  "use strict";
3
3
  var __create = Object.create;
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! @fluixi/core v1.0.0-alpha.94 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
1
+ /*! @fluixi/core v1.0.0-alpha.96 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
2
2
 
3
3
  // src/lib/plugins/vite.ts
4
4
  import { fluixi, createVitePlugin } from "@fluixi/vite-plugin";
@@ -63,7 +63,7 @@ var import_signal6 = require("@fluixi/reactive/signal");
63
63
  var import_dom = require("@fluixi/dom");
64
64
 
65
65
  // src/version.generated.ts
66
- var VERSION = "1.0.0-alpha.94";
66
+ var VERSION = "1.0.0-alpha.96";
67
67
 
68
68
  // src/lib/render/versions.ts
69
69
  var import_dom2 = require("@fluixi/dom");
@@ -6,7 +6,7 @@ import { createRoot as createRoot2 } from "@fluixi/reactive/signal";
6
6
  import { registerCoreVersion } from "@fluixi/dom";
7
7
 
8
8
  // src/version.generated.ts
9
- var VERSION = "1.0.0-alpha.94";
9
+ var VERSION = "1.0.0-alpha.96";
10
10
 
11
11
  // src/lib/render/versions.ts
12
12
  import { stampVersions, warnOnVersionSkew, versions } from "@fluixi/dom";
@@ -28,7 +28,7 @@ module.exports = __toCommonJS(versions_exports);
28
28
  var import_dom = require("@fluixi/dom");
29
29
 
30
30
  // src/version.generated.ts
31
- var VERSION = "1.0.0-alpha.94";
31
+ var VERSION = "1.0.0-alpha.96";
32
32
 
33
33
  // src/lib/render/versions.ts
34
34
  var import_dom2 = require("@fluixi/dom");
@@ -2,7 +2,7 @@
2
2
  import { registerCoreVersion } from "@fluixi/dom";
3
3
 
4
4
  // src/version.generated.ts
5
- var VERSION = "1.0.0-alpha.94";
5
+ var VERSION = "1.0.0-alpha.96";
6
6
 
7
7
  // src/lib/render/versions.ts
8
8
  import { stampVersions, warnOnVersionSkew, versions } from "@fluixi/dom";
@@ -153,7 +153,8 @@ function getSubmissionsSignal(url) {
153
153
  }
154
154
  function action(fn, name, options = {}) {
155
155
  const actionUrl = name || fn.name || "action";
156
- const submit = async (input) => {
156
+ const submit = async (...args) => {
157
+ const input = args.length > 1 ? args : args[0];
157
158
  const [, setSubmission] = getSubmissionSignal(actionUrl);
158
159
  const [, setSubmissions] = getSubmissionsSignal(actionUrl);
159
160
  let entry;
@@ -168,11 +169,10 @@ function action(fn, name, options = {}) {
168
169
  };
169
170
  const retry = () => {
170
171
  drop2();
171
- return submit(input);
172
+ return submit(...args);
172
173
  };
173
174
  entry = {
174
175
  input,
175
- // Approximate type for tracking
176
176
  pending: true,
177
177
  clear,
178
178
  retry
@@ -180,7 +180,7 @@ function action(fn, name, options = {}) {
180
180
  setSubmission(entry);
181
181
  setSubmissions((list) => [...list, entry]);
182
182
  try {
183
- const result = await fn(input);
183
+ const result = await fn(...args);
184
184
  setSubmission({
185
185
  input,
186
186
  result,
@@ -1 +1 @@
1
- {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../../src/lib/router/data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../../src/lib/router/data.ts"],"names":[],"mappings":"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"}
@@ -143,7 +143,10 @@ function getSubmissionsSignal(url) {
143
143
  }
144
144
  export function action(fn, name, options = {}) {
145
145
  const actionUrl = name || fn.name || 'action';
146
- const submit = async (input) => {
146
+ const submit = async (...args) => {
147
+ // What the submission shows as its input: the argument, or all of them when there are
148
+ // several. Every argument reaches `fn` either way.
149
+ const input = (args.length > 1 ? args : args[0]);
147
150
  const [, setSubmission] = getSubmissionSignal(actionUrl);
148
151
  const [, setSubmissions] = getSubmissionsSignal(actionUrl);
149
152
  // This call's entry in the list: replaced, never mutated, so readers see each change.
@@ -160,10 +163,10 @@ export function action(fn, name, options = {}) {
160
163
  };
161
164
  const retry = () => {
162
165
  drop();
163
- return submit(input);
166
+ return submit(...args);
164
167
  };
165
168
  entry = {
166
- input: input, // Approximate type for tracking
169
+ input,
167
170
  pending: true,
168
171
  clear,
169
172
  retry,
@@ -171,11 +174,9 @@ export function action(fn, name, options = {}) {
171
174
  setSubmission(entry);
172
175
  setSubmissions((list) => [...list, entry]);
173
176
  try {
174
- // Cast to any to handle potential argument mismatch in generic types
175
- // fn expects tuple Args, input is single value or FormData
176
- const result = await fn(input);
177
+ const result = await fn(...args);
177
178
  setSubmission({
178
- input: input,
179
+ input,
179
180
  result,
180
181
  pending: false,
181
182
  clear,
@@ -190,7 +191,7 @@ export function action(fn, name, options = {}) {
190
191
  }
191
192
  catch (error) {
192
193
  const failed = {
193
- input: input,
194
+ input,
194
195
  error,
195
196
  pending: false,
196
197
  clear,
@@ -126,7 +126,8 @@ function getSubmissionsSignal(url) {
126
126
  }
127
127
  function action(fn, name, options = {}) {
128
128
  const actionUrl = name || fn.name || "action";
129
- const submit = async (input) => {
129
+ const submit = async (...args) => {
130
+ const input = args.length > 1 ? args : args[0];
130
131
  const [, setSubmission] = getSubmissionSignal(actionUrl);
131
132
  const [, setSubmissions] = getSubmissionsSignal(actionUrl);
132
133
  let entry;
@@ -141,11 +142,10 @@ function action(fn, name, options = {}) {
141
142
  };
142
143
  const retry = () => {
143
144
  drop2();
144
- return submit(input);
145
+ return submit(...args);
145
146
  };
146
147
  entry = {
147
148
  input,
148
- // Approximate type for tracking
149
149
  pending: true,
150
150
  clear,
151
151
  retry
@@ -153,7 +153,7 @@ function action(fn, name, options = {}) {
153
153
  setSubmission(entry);
154
154
  setSubmissions((list) => [...list, entry]);
155
155
  try {
156
- const result = await fn(input);
156
+ const result = await fn(...args);
157
157
  setSubmission({
158
158
  input,
159
159
  result,
@@ -1,4 +1,4 @@
1
- /*! @fluixi/core v1.0.0-alpha.94 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
1
+ /*! @fluixi/core v1.0.0-alpha.96 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
2
2
  "use strict";
3
3
  var __defProp = Object.defineProperty;
4
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -22,7 +22,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
22
22
  var index_exports = {};
23
23
  __export(index_exports, {
24
24
  A: () => A,
25
- Form: () => Form,
25
+ ActionForm: () => ActionForm,
26
26
  Link: () => Link,
27
27
  Outlet: () => Outlet,
28
28
  Redirect: () => Redirect,
@@ -113,6 +113,64 @@ var import_dom3 = require("@fluixi/dom");
113
113
  var import_signal6 = require("@fluixi/reactive/signal");
114
114
  var import_object = require("@fluixi/utils/object");
115
115
  var import_compare = require("@fluixi/utils/compare");
116
+
117
+ // src/lib/router/scroll.ts
118
+ var STORE = "fx:scroll";
119
+ var KEEP = 100;
120
+ function keepScroll(initial) {
121
+ const read2 = () => {
122
+ try {
123
+ return JSON.parse(sessionStorage.getItem(STORE) ?? "{}");
124
+ } catch {
125
+ return {};
126
+ }
127
+ };
128
+ const positions = read2();
129
+ const write = () => {
130
+ const keys = Object.keys(positions);
131
+ for (const key of keys.slice(0, Math.max(0, keys.length - KEEP))) delete positions[key];
132
+ try {
133
+ sessionStorage.setItem(STORE, JSON.stringify(positions));
134
+ } catch {
135
+ }
136
+ };
137
+ let current = initial.key;
138
+ const save = () => {
139
+ if (current === void 0) return;
140
+ delete positions[current];
141
+ positions[current] = window.scrollY;
142
+ write();
143
+ };
144
+ const restoration = history.scrollRestoration;
145
+ history.scrollRestoration = "manual";
146
+ window.addEventListener("pagehide", save);
147
+ const to = (top) => window.scrollTo({ top, left: 0, behavior: "instant" });
148
+ const toHash = (hash) => {
149
+ if (!hash || hash === "#") return false;
150
+ const target = document.getElementById(decodeURIComponent(hash.slice(1)));
151
+ target?.scrollIntoView({ behavior: "instant" });
152
+ return target !== null;
153
+ };
154
+ return {
155
+ leave: save,
156
+ arrive(location, from) {
157
+ current = location.key;
158
+ if (location.action === "pop" || from === void 0) {
159
+ const y = location.key === void 0 ? void 0 : positions[location.key];
160
+ if (y !== void 0) to(y);
161
+ return;
162
+ }
163
+ if (location.action === "replace" && location.pathname === from.pathname) return;
164
+ if (!toHash(location.hash)) to(0);
165
+ },
166
+ dispose() {
167
+ window.removeEventListener("pagehide", save);
168
+ history.scrollRestoration = restoration;
169
+ }
170
+ };
171
+ }
172
+
173
+ // src/lib/router/index.ts
116
174
  var import_router = require("@fluixi/router");
117
175
 
118
176
  // src/lib/router/data.ts
@@ -232,7 +290,8 @@ function getSubmissionsSignal(url) {
232
290
  }
233
291
  function action(fn, name, options = {}) {
234
292
  const actionUrl = name || fn.name || "action";
235
- const submit = async (input) => {
293
+ const submit = async (...args) => {
294
+ const input = args.length > 1 ? args : args[0];
236
295
  const [, setSubmission] = getSubmissionSignal(actionUrl);
237
296
  const [, setSubmissions] = getSubmissionsSignal(actionUrl);
238
297
  let entry;
@@ -247,11 +306,10 @@ function action(fn, name, options = {}) {
247
306
  };
248
307
  const retry = () => {
249
308
  drop2();
250
- return submit(input);
309
+ return submit(...args);
251
310
  };
252
311
  entry = {
253
312
  input,
254
- // Approximate type for tracking
255
313
  pending: true,
256
314
  clear,
257
315
  retry
@@ -259,7 +317,7 @@ function action(fn, name, options = {}) {
259
317
  setSubmission(entry);
260
318
  setSubmissions((list) => [...list, entry]);
261
319
  try {
262
- const result = await fn(input);
320
+ const result = await fn(...args);
263
321
  setSubmission({
264
322
  input,
265
323
  result,
@@ -378,14 +436,49 @@ function renderLayer(m, depth, base) {
378
436
  });
379
437
  });
380
438
  };
439
+ let readsLocation;
381
440
  const [resource, { refetch }] = (0, import_signal5.createResource)(() => {
382
- const result = loader({ params: base.params, location: base.location }, owner, () => cancelled, trackDeps);
441
+ const params = (0, import_signal5.untrack)(base.params);
442
+ const location = (0, import_signal5.untrack)(base.location);
443
+ readsLocation = false;
444
+ const result = loader(
445
+ {
446
+ params: () => params,
447
+ location: () => {
448
+ readsLocation = true;
449
+ return location;
450
+ }
451
+ },
452
+ owner,
453
+ () => cancelled,
454
+ trackDeps
455
+ );
383
456
  return router ? router.trackLoad(result) : result;
384
457
  });
385
- (0, import_signal5.onCleanup)(onRevalidate(() => void refetch()));
458
+ (0, import_signal5.onCleanup)(
459
+ onRevalidate(() => {
460
+ if ((0, import_signal5.untrack)(() => base.matched()[depth]?.route) !== m.route) return;
461
+ void refetch();
462
+ })
463
+ );
464
+ let loadedFor = (0, import_signal5.untrack)(() => JSON.stringify(base.matched()[depth]?.params ?? {}));
465
+ let searchedFor = (0, import_signal5.untrack)(() => base.location().search);
466
+ (0, import_signal5.createEffect)(() => {
467
+ const now = base.matched()[depth];
468
+ const search = base.location().search;
469
+ if (now?.route !== m.route) return;
470
+ const params = JSON.stringify(now.params ?? {});
471
+ const paramsMoved = params !== loadedFor;
472
+ const searchMoved = readsLocation !== false && search !== searchedFor;
473
+ loadedFor = params;
474
+ searchedFor = search;
475
+ if (paramsMoved || searchMoved) (0, import_signal5.untrack)(() => void refetch());
476
+ });
386
477
  data = () => {
387
478
  const error = resource.error;
388
479
  if (error !== void 0 && error !== null) throw error;
480
+ const r = resource;
481
+ if (r.state === "refreshing") return r.latest;
389
482
  return resource();
390
483
  };
391
484
  Object.defineProperty(data, "loading", { get: () => resource.loading });
@@ -490,16 +583,19 @@ function buildDefaultNotFound() {
490
583
  }
491
584
  var pendingTransitionMode;
492
585
  function Router(props) {
493
- const history = props.history ?? (0, import_router.createBrowserHistory)();
586
+ const history2 = props.history ?? (0, import_router.createBrowserHistory)();
494
587
  const router = (0, import_router.createRouter)({
495
588
  routes: props.routes,
496
589
  base: props.base,
497
- history
590
+ history: history2
498
591
  });
499
592
  const [state, setState] = (0, import_signal5.createSignal)(router.state());
500
593
  const [navigating, setNavigating] = (0, import_signal5.createSignal)(false);
501
594
  const [loads, setLoads] = (0, import_signal5.createSignal)(0);
502
595
  let navigationId = 0;
596
+ const scroll = history2.window ? keepScroll(router.state().location) : void 0;
597
+ let arriving = scroll ? { id: 0, location: router.state().location, from: void 0 } : null;
598
+ const [arrived, setArrived] = (0, import_signal5.createSignal)(0);
503
599
  const takeMode = () => {
504
600
  const mode = pendingTransitionMode ?? (props.transition ?? "auto");
505
601
  pendingTransitionMode = void 0;
@@ -509,6 +605,10 @@ function Router(props) {
509
605
  const id = ++navigationId;
510
606
  const mode = takeMode();
511
607
  setNavigating(true);
608
+ if (scroll) {
609
+ scroll.leave();
610
+ arriving = { id, location: next.location, from: (0, import_signal5.untrack)(state).location };
611
+ }
512
612
  const prepared = prepareComponents(
513
613
  (next.match?.matched ?? []).map((m) => m.component).filter(Boolean)
514
614
  );
@@ -516,6 +616,7 @@ function Router(props) {
516
616
  setState(next);
517
617
  const flushed = (0, import_signal5.flush)();
518
618
  if (id === navigationId) setNavigating(false);
619
+ if (scroll) setArrived(id);
519
620
  return flushed;
520
621
  };
521
622
  if (!prepared) {
@@ -529,6 +630,7 @@ function Router(props) {
529
630
  });
530
631
  (0, import_signal5.onCleanup)(() => {
531
632
  unsub();
633
+ scroll?.dispose();
532
634
  router.destroy();
533
635
  navigationId++;
534
636
  });
@@ -551,6 +653,19 @@ function Router(props) {
551
653
  return result;
552
654
  }
553
655
  };
656
+ if (scroll) {
657
+ const nextFrame = typeof requestAnimationFrame === "function" ? requestAnimationFrame : (fn) => setTimeout(fn, 0);
658
+ (0, import_signal5.createEffect)(() => {
659
+ const id = arrived();
660
+ if (ctx.isRouting()) return;
661
+ const next = arriving;
662
+ if (!next || next.id !== id || id !== navigationId) return;
663
+ arriving = null;
664
+ nextFrame(() => {
665
+ if (id === navigationId) scroll.arrive(next.location, next.from);
666
+ });
667
+ });
668
+ }
554
669
  const root = {
555
670
  depth: -1,
556
671
  matched,
@@ -766,7 +881,7 @@ function Link(props) {
766
881
  return a;
767
882
  }
768
883
  var A = Link;
769
- function Form(props) {
884
+ function ActionForm(props) {
770
885
  const action2 = props.action;
771
886
  const cls = props.className ?? props.class;
772
887
  const url = action2.url ?? "";
@@ -232,7 +232,7 @@ export declare function Link(props: LinkProps): any;
232
232
  /** Alias for {@link Link}. */
233
233
  export declare const A: typeof Link;
234
234
  import type { Action } from './data.js';
235
- export interface FormProps {
235
+ export interface ActionFormProps {
236
236
  /** The action to run on submit (typically wrapping a `"use server"` function). */
237
237
  action: Action<any, any>;
238
238
  /** Extra class on the <form>. */
@@ -241,17 +241,20 @@ export interface FormProps {
241
241
  [key: string]: any;
242
242
  }
243
243
  /**
244
- * A `<form>` wired to an action: on submit it builds `FormData` from the form and calls
244
+ * A `<form>` wired to a router action: on submit it builds `FormData` from the form and calls
245
245
  * `action(formData)` (which tracks submission state via `useSubmission`), without a full
246
246
  * page navigation. The markup carries `method="post"` + `action={action.url}` so it's
247
247
  * progressive-enhancement-ready.
248
248
  *
249
- * <Form action={save}>
249
+ * <ActionForm action={save}>
250
250
  * <input name="title" />
251
251
  * <button>Save</button>
252
- * </Form>
252
+ * </ActionForm>
253
+ *
254
+ * It sends what the fields hold and checks nothing. For a form whose fields are validated
255
+ * first, use `@fluixi-ui/form`'s `Form` with an `action`.
253
256
  */
254
- export declare function Form(props: FormProps): any;
257
+ export declare function ActionForm(props: ActionFormProps): any;
255
258
  /**
256
259
  * Download the lazy component chunks for the route(s) matching `pathname` and resolve when
257
260
  * they're all loaded. Await this before hydrating: once each matched lazy file-route is
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/router/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/router/index.ts"],"names":[],"mappings":"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"}