@multiplatform.one/router 6.1.0 → 6.3.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 (106) hide show
  1. package/README.md +51 -0
  2. package/dist/cjs/hooks/useUrlState.cjs +30 -9
  3. package/dist/cjs/hooks/useUrlState.native.js +32 -9
  4. package/dist/cjs/hooks/useUrlState.native.js.map +1 -1
  5. package/dist/cjs/seam/DomNavigationHost.cjs +122 -0
  6. package/dist/cjs/seam/DomNavigationHost.native.js +186 -0
  7. package/dist/cjs/seam/DomNavigationHost.native.js.map +1 -0
  8. package/dist/cjs/seam/index.cjs +47 -0
  9. package/dist/cjs/seam/index.native.js +50 -0
  10. package/dist/cjs/seam/index.native.js.map +1 -0
  11. package/dist/cjs/seam/navigator.cjs +309 -0
  12. package/dist/cjs/seam/navigator.native.js +479 -0
  13. package/dist/cjs/seam/navigator.native.js.map +1 -0
  14. package/dist/cjs/seam/oneAdapter.cjs +128 -0
  15. package/dist/cjs/seam/oneAdapter.native.js +141 -0
  16. package/dist/cjs/seam/oneAdapter.native.js.map +1 -0
  17. package/dist/esm/hooks/useUrlState.mjs +31 -10
  18. package/dist/esm/hooks/useUrlState.mjs.map +1 -1
  19. package/dist/esm/hooks/useUrlState.native.js +33 -10
  20. package/dist/esm/hooks/useUrlState.native.js.map +1 -1
  21. package/dist/esm/seam/DomNavigationHost.mjs +96 -0
  22. package/dist/esm/seam/DomNavigationHost.mjs.map +1 -0
  23. package/dist/esm/seam/DomNavigationHost.native.js +157 -0
  24. package/dist/esm/seam/DomNavigationHost.native.js.map +1 -0
  25. package/dist/esm/seam/index.mjs +5 -0
  26. package/dist/esm/seam/index.mjs.map +1 -0
  27. package/dist/esm/seam/index.native.js +5 -0
  28. package/dist/esm/seam/index.native.js.map +1 -0
  29. package/dist/esm/seam/navigator.mjs +279 -0
  30. package/dist/esm/seam/navigator.mjs.map +1 -0
  31. package/dist/esm/seam/navigator.native.js +446 -0
  32. package/dist/esm/seam/navigator.native.js.map +1 -0
  33. package/dist/esm/seam/oneAdapter.mjs +90 -0
  34. package/dist/esm/seam/oneAdapter.mjs.map +1 -0
  35. package/dist/esm/seam/oneAdapter.native.js +100 -0
  36. package/dist/esm/seam/oneAdapter.native.js.map +1 -0
  37. package/dist/jsx/hooks/useUrlState.mjs +31 -10
  38. package/dist/jsx/hooks/useUrlState.mjs.map +1 -1
  39. package/dist/jsx/hooks/useUrlState.native.js +32 -9
  40. package/dist/jsx/hooks/useUrlState.native.js.map +1 -1
  41. package/dist/jsx/seam/DomNavigationHost.mjs +96 -0
  42. package/dist/jsx/seam/DomNavigationHost.mjs.map +1 -0
  43. package/dist/jsx/seam/DomNavigationHost.native.js +186 -0
  44. package/dist/jsx/seam/DomNavigationHost.native.js.map +1 -0
  45. package/dist/jsx/seam/index.mjs +5 -0
  46. package/dist/jsx/seam/index.mjs.map +1 -0
  47. package/dist/jsx/seam/index.native.js +50 -0
  48. package/dist/jsx/seam/index.native.js.map +1 -0
  49. package/dist/jsx/seam/navigator.mjs +279 -0
  50. package/dist/jsx/seam/navigator.mjs.map +1 -0
  51. package/dist/jsx/seam/navigator.native.js +479 -0
  52. package/dist/jsx/seam/navigator.native.js.map +1 -0
  53. package/dist/jsx/seam/oneAdapter.mjs +90 -0
  54. package/dist/jsx/seam/oneAdapter.mjs.map +1 -0
  55. package/dist/jsx/seam/oneAdapter.native.js +141 -0
  56. package/dist/jsx/seam/oneAdapter.native.js.map +1 -0
  57. package/package.json +26 -9
  58. package/src/hooks/urlStateEdges.spec.ts +98 -0
  59. package/src/hooks/useUrlState.ts +34 -8
  60. package/src/seam/DomNavigationHost.spec.tsx +78 -0
  61. package/src/seam/DomNavigationHost.tsx +150 -0
  62. package/src/seam/index.ts +41 -0
  63. package/src/seam/navigator.spec.ts +189 -0
  64. package/src/seam/navigator.ts +405 -0
  65. package/src/seam/oneAdapter.tsx +166 -0
  66. package/types/hooks/index.d.ts +2 -0
  67. package/types/hooks/index.d.ts.map +1 -0
  68. package/types/hooks/useUrlState.d.ts +36 -0
  69. package/types/hooks/useUrlState.d.ts.map +1 -0
  70. package/types/index.d.ts +4 -0
  71. package/types/index.d.ts.map +1 -0
  72. package/types/index.storybook.d.ts +4 -0
  73. package/types/index.storybook.d.ts.map +1 -0
  74. package/types/router/EmptyRouter.d.ts +7 -0
  75. package/types/router/EmptyRouter.d.ts.map +1 -0
  76. package/types/router/ReactRouter.d.ts +6 -0
  77. package/types/router/ReactRouter.d.ts.map +1 -0
  78. package/types/router/index.d.ts +2 -0
  79. package/types/router/index.d.ts.map +1 -0
  80. package/types/router/index.storybook-expo.d.ts +2 -0
  81. package/types/router/index.storybook-expo.d.ts.map +1 -0
  82. package/types/router/index.storybook.d.ts +2 -0
  83. package/types/router/index.storybook.d.ts.map +1 -0
  84. package/types/router/index.webext.d.ts +2 -0
  85. package/types/router/index.webext.d.ts.map +1 -0
  86. package/types/seam/DomNavigationHost.d.ts +33 -0
  87. package/types/seam/DomNavigationHost.d.ts.map +1 -0
  88. package/types/seam/index.d.ts +7 -0
  89. package/types/seam/index.d.ts.map +1 -0
  90. package/types/seam/navigator.d.ts +133 -0
  91. package/types/seam/navigator.d.ts.map +1 -0
  92. package/types/seam/oneAdapter.d.ts +57 -0
  93. package/types/seam/oneAdapter.d.ts.map +1 -0
  94. package/types/types.d.ts +40 -0
  95. package/types/types.d.ts.map +1 -0
  96. package/dist/cjs/hooks/useUrlState.spec.cjs +0 -280
  97. package/dist/cjs/hooks/useUrlState.spec.native.js +0 -315
  98. package/dist/cjs/hooks/useUrlState.spec.native.js.map +0 -1
  99. package/dist/esm/hooks/useUrlState.spec.mjs +0 -257
  100. package/dist/esm/hooks/useUrlState.spec.mjs.map +0 -1
  101. package/dist/esm/hooks/useUrlState.spec.native.js +0 -289
  102. package/dist/esm/hooks/useUrlState.spec.native.js.map +0 -1
  103. package/dist/jsx/hooks/useUrlState.spec.mjs +0 -257
  104. package/dist/jsx/hooks/useUrlState.spec.mjs.map +0 -1
  105. package/dist/jsx/hooks/useUrlState.spec.native.js +0 -315
  106. package/dist/jsx/hooks/useUrlState.spec.native.js.map +0 -1
@@ -0,0 +1,446 @@
1
+ import { createContext, useContext, useSyncExternalStore } from "react";
2
+ function _class_call_check(instance, Constructor) {
3
+ if (!(instance instanceof Constructor)) {
4
+ throw new TypeError("Cannot call a class as a function");
5
+ }
6
+ }
7
+ function _defineProperties(target, props) {
8
+ for (var i = 0; i < props.length; i++) {
9
+ var descriptor = props[i];
10
+ descriptor.enumerable = descriptor.enumerable || false;
11
+ descriptor.configurable = true;
12
+ if ("value" in descriptor) descriptor.writable = true;
13
+ Object.defineProperty(target, descriptor.key, descriptor);
14
+ }
15
+ }
16
+ function _create_class(Constructor, protoProps, staticProps) {
17
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
18
+ if (staticProps) _defineProperties(Constructor, staticProps);
19
+ return Constructor;
20
+ }
21
+ function _define_property(obj, key, value) {
22
+ if (key in obj) {
23
+ Object.defineProperty(obj, key, {
24
+ value,
25
+ enumerable: true,
26
+ configurable: true,
27
+ writable: true
28
+ });
29
+ } else {
30
+ obj[key] = value;
31
+ }
32
+ return obj;
33
+ }
34
+ function compileRoute(def) {
35
+ var segments = def.pattern.split("/").filter(Boolean).map(function (seg) {
36
+ var m = seg.match(/^\[(\.{3})?(.+)\]$/);
37
+ return m ? {
38
+ param: m[2]
39
+ } : {
40
+ literal: seg
41
+ };
42
+ });
43
+ return {
44
+ ...def,
45
+ segments
46
+ };
47
+ }
48
+ function parseQuery(query) {
49
+ var params = {};
50
+ if (!query) return params;
51
+ var _iteratorNormalCompletion = true,
52
+ _didIteratorError = false,
53
+ _iteratorError = void 0;
54
+ try {
55
+ for (var _iterator = query.split("&")[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
56
+ var pair = _step.value;
57
+ if (!pair) continue;
58
+ var eq = pair.indexOf("=");
59
+ var key = decodeURIComponent(eq === -1 ? pair : pair.slice(0, eq));
60
+ var value = eq === -1 ? "" : decodeURIComponent(pair.slice(eq + 1));
61
+ var prev = params[key];
62
+ if (prev === void 0) params[key] = value;else if (Array.isArray(prev)) prev.push(value);else params[key] = [prev, value];
63
+ }
64
+ } catch (err) {
65
+ _didIteratorError = true;
66
+ _iteratorError = err;
67
+ } finally {
68
+ try {
69
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
70
+ _iterator.return();
71
+ }
72
+ } finally {
73
+ if (_didIteratorError) {
74
+ throw _iteratorError;
75
+ }
76
+ }
77
+ }
78
+ return params;
79
+ }
80
+ function hrefToString(href) {
81
+ var _href_params;
82
+ if (typeof href === "string") return href;
83
+ var path = href.pathname;
84
+ var leftover = [];
85
+ var _iteratorNormalCompletion = true,
86
+ _didIteratorError = false,
87
+ _iteratorError = void 0;
88
+ try {
89
+ for (var _iterator = Object.entries((_href_params = href.params) !== null && _href_params !== void 0 ? _href_params : {})[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
90
+ var [key, raw] = _step.value;
91
+ var value = String(raw);
92
+ var token = `[${key}]`;
93
+ if (path.includes(token)) path = path.replace(token, encodeURIComponent(value));else leftover.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`);
94
+ }
95
+ } catch (err) {
96
+ _didIteratorError = true;
97
+ _iteratorError = err;
98
+ } finally {
99
+ try {
100
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
101
+ _iterator.return();
102
+ }
103
+ } finally {
104
+ if (_didIteratorError) {
105
+ throw _iteratorError;
106
+ }
107
+ }
108
+ }
109
+ return leftover.length ? `${path}?${leftover.join("&")}` : path;
110
+ }
111
+ var EMPTY_PARAMS = Object.freeze({});
112
+ var StackNavigator = /* @__PURE__ */function () {
113
+ "use strict";
114
+
115
+ function StackNavigator2() {
116
+ var _this = this;
117
+ _class_call_check(this, StackNavigator2);
118
+ _define_property(this, "routes", []);
119
+ _define_property(this, "host", null);
120
+ _define_property(this, "listeners", /* @__PURE__ */new Set());
121
+ _define_property(this, "stackTags", []);
122
+ _define_property(this, "paramsByTag", /* @__PURE__ */new Map());
123
+ _define_property(this, "pathnameByTag", /* @__PURE__ */new Map());
124
+ _define_property(this, "visitedTags", /* @__PURE__ */new Set());
125
+ _define_property(this, "loaderDataByTag", /* @__PURE__ */new Map());
126
+ _define_property(this, "navSeq", 0);
127
+ _define_property(this, "generation", 0);
128
+ _define_property(this, "snapshot", {
129
+ pathname: "/",
130
+ tag: "",
131
+ depth: 0,
132
+ canGoBack: false,
133
+ generation: 0
134
+ });
135
+ _define_property(this, "subscribe", function (fn) {
136
+ _this.listeners.add(fn);
137
+ return function () {
138
+ return _this.listeners.delete(fn);
139
+ };
140
+ });
141
+ _define_property(this, "getSnapshot", function () {
142
+ return _this.snapshot;
143
+ });
144
+ _define_property(this, "push", function (href) {
145
+ void _this.navigate(href, "push");
146
+ });
147
+ _define_property(this, "replace", function (href) {
148
+ void _this.navigate(href, "replace");
149
+ });
150
+ _define_property(this, "back", function () {
151
+ if (!_this.host) {
152
+ console.log("[stack nav] back \u2014 no stack host attached, ignored");
153
+ return;
154
+ }
155
+ _this.navSeq++;
156
+ _this.host.pop();
157
+ });
158
+ _define_property(this, "setParams", function (params) {
159
+ var _this_paramsByTag_get;
160
+ var top = _this.stackTags[_this.stackTags.length - 1];
161
+ if (!top) return;
162
+ var prev = (_this_paramsByTag_get = _this.paramsByTag.get(top)) !== null && _this_paramsByTag_get !== void 0 ? _this_paramsByTag_get : {};
163
+ _this.paramsByTag.set(top, {
164
+ ...prev,
165
+ ...params
166
+ });
167
+ _this.rebuildSnapshot();
168
+ });
169
+ _define_property(this, "syncFromHost", function () {
170
+ if (!_this.host) return;
171
+ _this.navSeq++;
172
+ var model = _this.host.get_navigation_stack();
173
+ var tags = [];
174
+ var count = model.get_n_items();
175
+ for (var i = 0; i < count; i++) {
176
+ var _model_get_item;
177
+ var tag = (_model_get_item = model.get_item(i)) === null || _model_get_item === void 0 ? void 0 : _model_get_item.get_tag();
178
+ if (tag) tags.push(tag);
179
+ }
180
+ if (tags.length > 0) _this.stackTags = tags;
181
+ var _iteratorNormalCompletion = true,
182
+ _didIteratorError = false,
183
+ _iteratorError = void 0;
184
+ try {
185
+ for (var _iterator = _this.stackTags[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
186
+ var tag1 = _step.value;
187
+ _this.visitedTags.add(tag1);
188
+ }
189
+ } catch (err) {
190
+ _didIteratorError = true;
191
+ _iteratorError = err;
192
+ } finally {
193
+ try {
194
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
195
+ _iterator.return();
196
+ }
197
+ } finally {
198
+ if (_didIteratorError) {
199
+ throw _iteratorError;
200
+ }
201
+ }
202
+ }
203
+ _this.rebuildSnapshot();
204
+ });
205
+ }
206
+ _create_class(StackNavigator2, [{
207
+ key: "isConfigured",
208
+ get: function get() {
209
+ return this.routes.length > 0;
210
+ }
211
+ }, {
212
+ /** Register the route manifest. The FIRST route is the root page. */
213
+ key: "configure",
214
+ value: function configure(defs) {
215
+ this.routes = defs.map(compileRoute);
216
+ this.visitedTags = /* @__PURE__ */new Set();
217
+ this.loaderDataByTag = /* @__PURE__ */new Map();
218
+ var root = defs[0];
219
+ if (root) {
220
+ this.stackTags = [root.tag];
221
+ this.visitedTags.add(root.tag);
222
+ this.pathnameByTag.set(root.tag, root.pattern);
223
+ this.rebuildSnapshot();
224
+ }
225
+ }
226
+ }, {
227
+ /** Has this route's page been navigated to (⇒ its content may mount)? */
228
+ key: "isVisited",
229
+ value: function isVisited(tag) {
230
+ return tag !== null && this.visitedTags.has(tag);
231
+ }
232
+ }, {
233
+ /** The route's last loader result (stable identity until the loader runs
234
+ * again). undefined when the route has no loader / hasn't resolved. */
235
+ key: "loaderSnapshot",
236
+ value: function loaderSnapshot(tag) {
237
+ if (!tag) return void 0;
238
+ return this.loaderDataByTag.get(tag);
239
+ }
240
+ }, {
241
+ key: "preload",
242
+ value: (
243
+ /** Resolve a route's loader WITHOUT navigating. For the initial page:
244
+ * entries can `await stackNavigator.preload("/")` during top-level await
245
+ * (where GJS reliably drains promise jobs) so even the root page's first
246
+ * paint has loader data. */
247
+ async function preload(href) {
248
+ var hit = this.match(href);
249
+ if (!(hit === null || hit === void 0 ? void 0 : hit.route.loader)) return;
250
+ try {
251
+ var data = await hit.route.loader({
252
+ path: hit.pathname,
253
+ params: hit.params
254
+ });
255
+ this.loaderDataByTag.set(hit.route.tag, data);
256
+ this.rebuildSnapshot();
257
+ } catch (err) {
258
+ console.error(`[stack nav] preload loader for ${hit.route.tag} failed: ${String(err)}`);
259
+ }
260
+ })
261
+ }, {
262
+ /** Bind the live host stack (an Adw.NavigationView widget on GTK, a
263
+ * DomStackAdapter on DOM targets). */
264
+ key: "attach",
265
+ value: function attach(host) {
266
+ this.host = host;
267
+ this.syncFromHost();
268
+ }
269
+ }, {
270
+ key: "detach",
271
+ value: function detach() {
272
+ this.host = null;
273
+ }
274
+ }, {
275
+ key: "paramsSnapshot",
276
+ value: function paramsSnapshot(tag) {
277
+ var _this_paramsByTag_get;
278
+ if (!tag) return EMPTY_PARAMS;
279
+ return (_this_paramsByTag_get = this.paramsByTag.get(tag)) !== null && _this_paramsByTag_get !== void 0 ? _this_paramsByTag_get : EMPTY_PARAMS;
280
+ }
281
+ }, {
282
+ key: "match",
283
+ value: function match(href) {
284
+ var str = hrefToString(href);
285
+ var [path = "", query] = str.split("?");
286
+ var parts = path.split("/").filter(Boolean);
287
+ var _iteratorNormalCompletion = true,
288
+ _didIteratorError = false,
289
+ _iteratorError = void 0;
290
+ try {
291
+ for (var _iterator = this.routes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
292
+ var route = _step.value;
293
+ if (route.segments.length !== parts.length) continue;
294
+ var params = parseQuery(query);
295
+ var ok = true;
296
+ for (var i = 0; i < parts.length; i++) {
297
+ var seg = route.segments[i];
298
+ var part = decodeURIComponent(parts[i]);
299
+ if (seg.literal !== void 0) {
300
+ if (seg.literal !== part) {
301
+ ok = false;
302
+ break;
303
+ }
304
+ } else if (seg.param !== void 0) {
305
+ params[seg.param] = part;
306
+ }
307
+ }
308
+ if (ok) return {
309
+ route,
310
+ pathname: path === "" ? "/" : `/${parts.join("/")}`,
311
+ params
312
+ };
313
+ }
314
+ } catch (err) {
315
+ _didIteratorError = true;
316
+ _iteratorError = err;
317
+ } finally {
318
+ try {
319
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
320
+ _iterator.return();
321
+ }
322
+ } finally {
323
+ if (_didIteratorError) {
324
+ throw _iteratorError;
325
+ }
326
+ }
327
+ }
328
+ return null;
329
+ }
330
+ }, {
331
+ key: "navigate",
332
+ value: (
333
+ /** Shared push/replace flow, incl. the loader bridge. When the target
334
+ * route has no loader the whole body runs SYNCHRONOUSLY (an async
335
+ * function only yields at its first await), preserving the original
336
+ * timing. With a loader, the host action waits for the loader to resolve
337
+ * — same contract as One on web, where client navigation completes only
338
+ * after the route's loader data arrived — so the page's first paint has
339
+ * its data (and the lazily-mounted content mounts with it). */
340
+ async function navigate(href, mode) {
341
+ var hit = this.match(href);
342
+ if (!hit) {
343
+ console.log(`[stack nav] ${mode} ${hrefToString(href)} \u2014 no page in the route manifest, ignored`);
344
+ return;
345
+ }
346
+ if (!this.host) {
347
+ console.log(`[stack nav] ${mode} ${hrefToString(href)} \u2014 no stack host attached, ignored`);
348
+ return;
349
+ }
350
+ var {
351
+ route,
352
+ pathname,
353
+ params
354
+ } = hit;
355
+ var seq = ++this.navSeq;
356
+ if (route.loader) {
357
+ try {
358
+ var data = await route.loader({
359
+ path: pathname,
360
+ params
361
+ });
362
+ if (seq !== this.navSeq) return;
363
+ this.loaderDataByTag.set(route.tag, data);
364
+ } catch (err) {
365
+ if (seq !== this.navSeq) return;
366
+ console.error(`[stack nav] loader for ${route.tag} failed: ${String(err)}`);
367
+ }
368
+ }
369
+ this.visitedTags.add(route.tag);
370
+ this.setRouteState(route.tag, pathname, params);
371
+ if (mode === "replace") {
372
+ var top = this.stackTags[this.stackTags.length - 1];
373
+ if (top === route.tag) return;
374
+ var tags = [...this.stackTags.slice(0, -1), route.tag];
375
+ this.host.replace_with_tags(tags);
376
+ return;
377
+ }
378
+ var idx = this.stackTags.indexOf(route.tag);
379
+ if (idx === -1) {
380
+ this.host.push_by_tag(route.tag);
381
+ } else if (idx < this.stackTags.length - 1) {
382
+ this.host.pop_to_tag(route.tag);
383
+ }
384
+ })
385
+ }, {
386
+ key: "setRouteState",
387
+ value: function setRouteState(tag, pathname, params) {
388
+ this.paramsByTag.set(tag, params);
389
+ this.pathnameByTag.set(tag, pathname);
390
+ this.rebuildSnapshot();
391
+ }
392
+ }, {
393
+ key: "rebuildSnapshot",
394
+ value: function rebuildSnapshot() {
395
+ var _this_stackTags_, _ref, _this_pathnameByTag_get;
396
+ var tag = (_this_stackTags_ = this.stackTags[this.stackTags.length - 1]) !== null && _this_stackTags_ !== void 0 ? _this_stackTags_ : "";
397
+ var route = this.routes.find(function (r) {
398
+ return r.tag === tag;
399
+ });
400
+ this.generation++;
401
+ this.snapshot = {
402
+ pathname: (_ref = (_this_pathnameByTag_get = this.pathnameByTag.get(tag)) !== null && _this_pathnameByTag_get !== void 0 ? _this_pathnameByTag_get : route === null || route === void 0 ? void 0 : route.pattern) !== null && _ref !== void 0 ? _ref : "/",
403
+ tag,
404
+ depth: this.stackTags.length,
405
+ canGoBack: this.stackTags.length > 1,
406
+ generation: this.generation
407
+ };
408
+ var _iteratorNormalCompletion = true,
409
+ _didIteratorError = false,
410
+ _iteratorError = void 0;
411
+ try {
412
+ for (var _iterator = this.listeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
413
+ var fn = _step.value;
414
+ fn();
415
+ }
416
+ } catch (err) {
417
+ _didIteratorError = true;
418
+ _iteratorError = err;
419
+ } finally {
420
+ try {
421
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
422
+ _iterator.return();
423
+ }
424
+ } finally {
425
+ if (_didIteratorError) {
426
+ throw _iteratorError;
427
+ }
428
+ }
429
+ }
430
+ }
431
+ }]);
432
+ return StackNavigator2;
433
+ }();
434
+ var stackNavigator = new StackNavigator();
435
+ var RouteTagContext = createContext(null);
436
+ function useNavState() {
437
+ return useSyncExternalStore(stackNavigator.subscribe, stackNavigator.getSnapshot);
438
+ }
439
+ function useRouteParams() {
440
+ var tag = useContext(RouteTagContext);
441
+ return useSyncExternalStore(stackNavigator.subscribe, function () {
442
+ return stackNavigator.paramsSnapshot(tag);
443
+ });
444
+ }
445
+ export { RouteTagContext, StackNavigator, hrefToString, stackNavigator, useNavState, useRouteParams };
446
+ //# sourceMappingURL=navigator.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createContext","useContext","useSyncExternalStore","_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","value","compileRoute","def","segments","pattern","split","filter","Boolean","map","seg","m","match","param","literal","parseQuery","query","params","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","pair","eq","indexOf","decodeURIComponent","slice","prev","Array","isArray","push","err","return","hrefToString","href","_href_params","path","pathname","leftover","entries","raw","String","token","includes","replace","encodeURIComponent","join","EMPTY_PARAMS","freeze","StackNavigator","StackNavigator2","_this","Set","Map","tag","depth","canGoBack","generation","fn","listeners","add","delete","snapshot","navigate","host","console","log","navSeq","pop","_this_paramsByTag_get","top","stackTags","paramsByTag","get","set","rebuildSnapshot","model","get_navigation_stack","tags","count","get_n_items","_model_get_item","get_item","get_tag","tag1","visitedTags","routes","configure","defs","loaderDataByTag","root","pathnameByTag","isVisited","has","loaderSnapshot","preload","hit","route","loader","data"],"sources":["../../../src/seam/navigator.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,90 @@
1
+ import { useContext, useSyncExternalStore } from "react";
2
+ import { RouteTagContext, hrefToString, stackNavigator, useNavState, useRouteParams } from "./navigator.mjs";
3
+ import { getUserScheme, onUserSchemeChange, setUserScheme, useUserScheme } from "@vxrn/color-scheme";
4
+ import { jsx } from "react/jsx-runtime";
5
+ function useLoader(_loader) {
6
+ const tag = useContext(RouteTagContext);
7
+ const fromRoute = useSyncExternalStore(stackNavigator.subscribe, () => stackNavigator.loaderSnapshot(tag));
8
+ return fromRoute;
9
+ }
10
+ const ROUTER = {
11
+ push: stackNavigator.push,
12
+ navigate: stackNavigator.push,
13
+ replace: stackNavigator.replace,
14
+ back: stackNavigator.back,
15
+ canGoBack: () => stackNavigator.getSnapshot().canGoBack,
16
+ dismiss: count => {
17
+ for (let i = 0; i < (count ?? 1); i++) stackNavigator.back();
18
+ },
19
+ dismissAll: () => {
20
+ const depth = stackNavigator.getSnapshot().depth;
21
+ for (let i = 1; i < depth; i++) stackNavigator.back();
22
+ },
23
+ canDismiss: () => stackNavigator.getSnapshot().canGoBack,
24
+ setParams: stackNavigator.setParams,
25
+ subscribe: listener => {
26
+ listener("success");
27
+ return () => {};
28
+ },
29
+ onLoadState: listener => {
30
+ listener("loaded");
31
+ return () => {};
32
+ }
33
+ };
34
+ function useRouter() {
35
+ return ROUTER;
36
+ }
37
+ function Link({
38
+ href,
39
+ replace,
40
+ children,
41
+ style,
42
+ ...rest
43
+ }) {
44
+ if (!href || !stackNavigator.isConfigured) return children ?? null;
45
+ const hrefString = hrefToString(href);
46
+ const onClick = event => {
47
+ event.preventDefault();
48
+ if (replace) stackNavigator.replace(href);else stackNavigator.push(href);
49
+ };
50
+ return /* @__PURE__ */jsx("a", {
51
+ href: hrefString,
52
+ onClick,
53
+ style: {
54
+ display: "contents",
55
+ color: "inherit",
56
+ textDecoration: "none",
57
+ ...style
58
+ },
59
+ "data-seam-link": hrefString,
60
+ ...rest,
61
+ children
62
+ });
63
+ }
64
+ function Slot(_props) {
65
+ return null;
66
+ }
67
+ function useParams() {
68
+ return useRouteParams();
69
+ }
70
+ function useLocalSearchParams() {
71
+ return useRouteParams();
72
+ }
73
+ function usePathname() {
74
+ return useNavState().pathname;
75
+ }
76
+ function useBlocker(_shouldBlock) {
77
+ return {
78
+ state: "unblocked",
79
+ proceed: () => {},
80
+ reset: () => {}
81
+ };
82
+ }
83
+ function LoadProgressBar(_props) {
84
+ return null;
85
+ }
86
+ function useMatches() {
87
+ return [];
88
+ }
89
+ export { Link, LoadProgressBar, Slot, getUserScheme, onUserSchemeChange, setUserScheme, useBlocker, useLoader, useLocalSearchParams, useMatches, useParams, usePathname, useRouter, useUserScheme };
90
+ //# sourceMappingURL=oneAdapter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useContext","useSyncExternalStore","RouteTagContext","hrefToString","stackNavigator","useNavState","useRouteParams","getUserScheme","onUserSchemeChange","setUserScheme","useUserScheme","jsx","useLoader","_loader","tag","fromRoute","subscribe","loaderSnapshot","ROUTER","push","navigate","replace","back","canGoBack","getSnapshot","dismiss","count","i","dismissAll","depth","canDismiss","setParams","listener","onLoadState","useRouter","Link","href","children","style","rest","isConfigured","hrefString","onClick","event","preventDefault","display","color","textDecoration","Slot","_props","useParams","useLocalSearchParams","usePathname","pathname","useBlocker","_shouldBlock","state","proceed","reset","LoadProgressBar","useMatches"],"sources":["../../../src/seam/oneAdapter.tsx"],"sourcesContent":[null],"mappings":"AAqBA,SAASA,UAAA,EAAYC,oBAAA,QAA4B;AACjD,SACEC,eAAA,EACAC,YAAA,EACAC,cAAA,EACAC,WAAA,EACAC,cAAA,QAGK;AAEP,SACEC,aAAA,EACAC,kBAAA,EACAC,aAAA,EACAC,aAAA,QACK;AAuEH,SAAAC,GAAA;AA9DG,SAASC,UAAaC,OAAA,EAAuD;EAClF,MAAMC,GAAA,GAAMd,UAAA,CAAWE,eAAe;EACtC,MAAMa,SAAA,GAAYd,oBAAA,CAAqBG,cAAA,CAAeY,SAAA,EAAW,MAC/DZ,cAAA,CAAea,cAAA,CAAeH,GAAG,CACnC;EACA,OAAOC,SAAA;AACT;AAMA,MAAMG,MAAA,GAAS;EACbC,IAAA,EAAMf,cAAA,CAAee,IAAA;EACrBC,QAAA,EAAUhB,cAAA,CAAee,IAAA;EACzBE,OAAA,EAASjB,cAAA,CAAeiB,OAAA;EACxBC,IAAA,EAAMlB,cAAA,CAAekB,IAAA;EACrBC,SAAA,EAAWA,CAAA,KAAMnB,cAAA,CAAeoB,WAAA,CAAY,EAAED,SAAA;EAC9CE,OAAA,EAAUC,KAAA,IAAmB;IAC3B,SAASC,CAAA,GAAI,GAAGA,CAAA,IAAKD,KAAA,IAAS,IAAIC,CAAA,IAAKvB,cAAA,CAAekB,IAAA,CAAK;EAC7D;EACAM,UAAA,EAAYA,CAAA,KAAM;IAChB,MAAMC,KAAA,GAAQzB,cAAA,CAAeoB,WAAA,CAAY,EAAEK,KAAA;IAC3C,SAASF,CAAA,GAAI,GAAGA,CAAA,GAAIE,KAAA,EAAOF,CAAA,IAAKvB,cAAA,CAAekB,IAAA,CAAK;EACtD;EACAQ,UAAA,EAAYA,CAAA,KAAM1B,cAAA,CAAeoB,WAAA,CAAY,EAAED,SAAA;EAC/CQ,SAAA,EAAW3B,cAAA,CAAe2B,SAAA;EAC1Bf,SAAA,EAAYgB,QAAA,IAAmD;IAC7DA,QAAA,CAAS,SAAS;IAClB,OAAO,MAAM,CAAC;EAChB;EACAC,WAAA,EAAcD,QAAA,IAAoD;IAChEA,QAAA,CAAS,QAAQ;IACjB,OAAO,MAAM,CAAC;EAChB;AACF;AAEO,SAASE,UAAA,EAA2B;EACzC,OAAOhB,MAAA;AACT;AAcO,SAASiB,KAAK;EAAEC,IAAA;EAAMf,OAAA;EAASgB,QAAA;EAAUC,KAAA;EAAO,GAAGC;AAAK,GAAyB;EACtF,IAAI,CAACH,IAAA,IAAQ,CAAChC,cAAA,CAAeoC,YAAA,EAAc,OAAOH,QAAA,IAAY;EAC9D,MAAMI,UAAA,GAAatC,YAAA,CAAaiC,IAAI;EACpC,MAAMM,OAAA,GAAWC,KAAA,IAAyC;IACxDA,KAAA,CAAMC,cAAA,CAAe;IACrB,IAAIvB,OAAA,EAASjB,cAAA,CAAeiB,OAAA,CAAQe,IAAI,OACnChC,cAAA,CAAee,IAAA,CAAKiB,IAAI;EAC/B;EACA,OACE,eAAAzB,GAAA,CAAC;IACCyB,IAAA,EAAMK,UAAA;IACNC,OAAA;IAIAJ,KAAA,EAAO;MAAEO,OAAA,EAAS;MAAYC,KAAA,EAAO;MAAWC,cAAA,EAAgB;MAAQ,GAAGT;IAAM;IACjF,kBAAgBG,UAAA;IACf,GAAGF,IAAA;IAEHF;EAAA,CACH;AAEJ;AAMO,SAASW,KAAKC,MAAA,EAAuC;EAC1D,OAAO;AACT;AAEO,SAASC,UAAA,EAAuB;EACrC,OAAO5C,cAAA,CAAe;AACxB;AAEO,SAAS6C,qBAAA,EAAkC;EAChD,OAAO7C,cAAA,CAAe;AACxB;AAEO,SAAS8C,YAAA,EAAsB;EACpC,OAAO/C,WAAA,CAAY,EAAEgD,QAAA;AACvB;AAMO,SAASC,WAAWC,YAAA,EAIzB;EACA,OAAO;IAAEC,KAAA,EAAO;IAAaC,OAAA,EAASA,CAAA,KAAM,CAAC;IAAGC,KAAA,EAAOA,CAAA,KAAM,CAAC;EAAE;AAClE;AAIO,SAASC,gBAAgBV,MAAA,EAAuC;EACrE,OAAO;AACT;AAIO,SAASW,WAAA,EAAwB;EACtC,OAAO,EAAC;AACV","ignoreList":[]}
@@ -0,0 +1,100 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useContext, useSyncExternalStore } from "react";
3
+ import { RouteTagContext, hrefToString, stackNavigator, useNavState, useRouteParams } from "./navigator.native.js";
4
+ import { getUserScheme, onUserSchemeChange, setUserScheme, useUserScheme } from "@vxrn/color-scheme";
5
+ function useLoader(_loader) {
6
+ var tag = useContext(RouteTagContext);
7
+ var fromRoute = useSyncExternalStore(stackNavigator.subscribe, function () {
8
+ return stackNavigator.loaderSnapshot(tag);
9
+ });
10
+ return fromRoute;
11
+ }
12
+ var ROUTER = {
13
+ push: stackNavigator.push,
14
+ navigate: stackNavigator.push,
15
+ replace: stackNavigator.replace,
16
+ back: stackNavigator.back,
17
+ canGoBack: function canGoBack() {
18
+ return stackNavigator.getSnapshot().canGoBack;
19
+ },
20
+ dismiss: function dismiss(count) {
21
+ for (var i = 0; i < (count !== null && count !== void 0 ? count : 1); i++) stackNavigator.back();
22
+ },
23
+ dismissAll: function dismissAll() {
24
+ var depth = stackNavigator.getSnapshot().depth;
25
+ for (var i = 1; i < depth; i++) stackNavigator.back();
26
+ },
27
+ canDismiss: function canDismiss() {
28
+ return stackNavigator.getSnapshot().canGoBack;
29
+ },
30
+ setParams: stackNavigator.setParams,
31
+ subscribe: function subscribe(listener) {
32
+ listener("success");
33
+ return function () {};
34
+ },
35
+ onLoadState: function onLoadState(listener) {
36
+ listener("loaded");
37
+ return function () {};
38
+ }
39
+ };
40
+ function useRouter() {
41
+ return ROUTER;
42
+ }
43
+ function Link(param) {
44
+ var {
45
+ href,
46
+ replace,
47
+ children,
48
+ style,
49
+ ...rest
50
+ } = param;
51
+ if (!href || !stackNavigator.isConfigured) return children !== null && children !== void 0 ? children : null;
52
+ var hrefString = hrefToString(href);
53
+ var onClick = function onClick2(event) {
54
+ event.preventDefault();
55
+ if (replace) stackNavigator.replace(href);else stackNavigator.push(href);
56
+ };
57
+ return /* @__PURE__ */_jsx("a", {
58
+ href: hrefString,
59
+ onClick,
60
+ // display:contents — the anchor contributes no box, so wrapping
61
+ // arbitrary flex/grid children never disturbs layout (clicks still
62
+ // bubble through it).
63
+ style: {
64
+ display: "contents",
65
+ color: "inherit",
66
+ textDecoration: "none",
67
+ ...style
68
+ },
69
+ "data-seam-link": hrefString,
70
+ ...rest,
71
+ children
72
+ });
73
+ }
74
+ function Slot(_props) {
75
+ return null;
76
+ }
77
+ function useParams() {
78
+ return useRouteParams();
79
+ }
80
+ function useLocalSearchParams() {
81
+ return useRouteParams();
82
+ }
83
+ function usePathname() {
84
+ return useNavState().pathname;
85
+ }
86
+ function useBlocker(_shouldBlock) {
87
+ return {
88
+ state: "unblocked",
89
+ proceed: function proceed() {},
90
+ reset: function reset() {}
91
+ };
92
+ }
93
+ function LoadProgressBar(_props) {
94
+ return null;
95
+ }
96
+ function useMatches() {
97
+ return [];
98
+ }
99
+ export { Link, LoadProgressBar, Slot, getUserScheme, onUserSchemeChange, setUserScheme, useBlocker, useLoader, useLocalSearchParams, useMatches, useParams, usePathname, useRouter, useUserScheme };
100
+ //# sourceMappingURL=oneAdapter.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["jsx","_jsx","useContext","useSyncExternalStore","RouteTagContext","hrefToString","stackNavigator","useNavState","useRouteParams","getUserScheme","onUserSchemeChange","setUserScheme","useUserScheme","useLoader","_loader","tag","fromRoute","subscribe","loaderSnapshot","ROUTER","push","navigate","replace","back","canGoBack","getSnapshot","dismiss","count","i","dismissAll","depth","canDismiss","setParams","listener","onLoadState","useRouter","Link","param","href","children","style","rest","isConfigured","hrefString","onClick","onClick2","event","preventDefault","display","color","textDecoration","Slot","_props","useParams","useLocalSearchParams","usePathname","pathname","useBlocker","_shouldBlock","state","proceed","reset","LoadProgressBar","useMatches"],"sources":["../../../src/seam/oneAdapter.tsx"],"sourcesContent":[null],"mappings":"AAqBA,SAASA,GAAA,IAAAC,IAAA,QAAY;AACrB,SAAAC,UAAA,EAAAC,oBAAA;AAAA,SACEC,eAAA,EAAAC,YAAA,EAAAC,cAAA,EAAAC,WAAA,EAAAC,cAAA;AAAA,SACAC,aAAA,EAAAC,kBAAA,EAAAC,aAAA,EAAAC,aAAA;AAAA,SACAC,UAAAC,OAAA;EACA,IAAAC,GAAA,GAAAb,UAAA,CAAAE,eAAA;EACA,IAAAY,SAAA,GAAAb,oBAAA,CAAAG,cAAA,CAAAW,SAAA;IAAA,OAGKX,cAAA,CAAAY,cAAA,CAAAH,GAAA;EAEP;EACE,OAAAC,SAAA;AAAA;AACA,IACAG,MAAA;EACAC,IAAA,EAAAd,cAAA,CAAAc,IAAA;EAAAC,QACK,EAAAf,cAAA,CAAAc,IAAA;EAuEHE,OAAA,EAAAhB,cAAA,CAAAgB,OAAA;EA9DGC,IAAA,EAAAjB,cAAsB,CAAAiB,IAAA;EAC3BC,SAAM,WAAMA,SAAWA,CAAA;IACvB,OAAMlB,cAAY,CAAAmB,WAAA,GAAAD,SAAA;EAAA;EAAoCE,OAAW,EAC/D,SAAAA,OAAeA,CAAAC,KAAA;IACjB,SAAAC,CAAA,MAAAA,CAAA,IAAAD,KAAA,aAAAA,KAAA,cAAAA,KAAA,OAAAC,CAAA,IAAAtB,cAAA,CAAAiB,IAAA;EACA;EACFM,UAAA,WAAAA,WAAA;IAMA,IAAMC,KAAA,GAASxB,cAAA,CAAAmB,WAAA,GAAAK,KAAA;IACb,KAAM,IAAAF,CAAA,MAAAA,CAAA,GAAeE,KAAA,EAAAF,CAAA,IAAAtB,cAAA,CAAAiB,IAAA;EACrB;EACAQ,UAAS,WAAAA,UAAeA,CAAA;IACxB,OAAMzB,cAAe,CAAAmB,WAAA,GAAAD,SAAA;EACrB;EACAQ,SAAS,EAAC1B,cAAmB,CAAA0B,SAAA;EAC3Bf,SAAA,EAAS,SAAOA,SAAKA,CAAAgB,QAAa,EAAK;IACzCA,QAAA;IACA,mBAAkB,CAChB;EACA;EACFC,WAAA,WAAAA,YAAAD,QAAA;IACAA,QAAA,SAAkB;IAClB,mBAAW,CACX;EACE;AACA;AAAa,SAACE,UAAA;EAChB,OAAAhB,MAAA;AAAA;AAEE,SAAAiB,IAASA,CAAAC,KAAA,EAAQ;EACjB;IAAAC,IAAO;IAAAhB,OAAM;IAAAiB,QAAA;IAAAC,KAAA;IAAA,GAAAC;EAAA,IAAAJ,KAAA;EAAA,IAAC,CAAAC,IAAA,KAAAhC,cAAA,CAAAoC,YAAA,SAAAH,QAAA,aAAAA,QAAA,cAAAA,QAAA;EAChB,IAAAI,UAAA,GAAAtC,YAAA,CAAAiC,IAAA;EACF,IAAAM,OAAA,YAAAC,SAAAC,KAAA;IAEOA,KAAS,CAAAC,cAA2B;IACzC,IAAAzB,OAAO,EAAAhB,cAAA,CAAAgB,OAAA,CAAAgB,IAAA,OACThC,cAAA,CAAAc,IAAA,CAAAkB,IAAA;EAcO;EACL,OAAK,eAASrC,IAAA,IAAe;IAC7BqC,IAAM,EAAAK,UAAA;IACNC,OAAM;IACJ;IACA;IAAwC;IAE1CJ,KAAA;MACAQ,OACE;MAACC,KAAA;MAAAC,cAAA;MACC,GAAAV;IAAM;IACN,gBAIS,EAAAG,UAAS;IAA+D,GACjFF,IAAA;IAAgBF;EACZ;AAEH;AAAA,SACHY,KAAAC,MAAA;EAEJ;AAMO;AACL,SAAOC,UAAA;EACT,OAAA7C,cAAA;AAEO;AACL,SAAO8C,oBAAeA,CAAA;EACxB,OAAA9C,cAAA;AAEO;AACL,SAAO+C,YAAA;EACT,OAAAhD,WAAA,GAAAiD,QAAA;AAEO;AACL,SAAOC,WAAAC,YAAc;EACvB;IAMOC,KAAS,aAAW;IAKzBC,OAAS,WAAOA,QAAA,EAAa,CAAgB,CAAG;IAAgBC,KAAA,WAAAA,MAAA,GAClE;EAIO;AACL;AACF,SAAAC,gBAAAV,MAAA;EAIO,OAAS;AACd;AACF,SAAAW,WAAA","ignoreList":[]}