@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
@@ -1,18 +1,35 @@
1
- import { useCallback, useEffect, useMemo, useRef } from "react";
1
+ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
2
2
  import { isWeb } from "@multiplatform.one/platform";
3
3
  import { useParams, useRouter } from "../router/index.mjs";
4
+ const hasRouter = typeof useRouter === "function" && typeof useParams === "function";
5
+ const emptyParams = {};
6
+ function useOptionalRouter() {
7
+ if (!hasRouter) return {};
8
+ try {
9
+ return {
10
+ router: useRouter(),
11
+ params: useParams()
12
+ };
13
+ } catch {
14
+ return {};
15
+ }
16
+ }
4
17
  function useSearchParams() {
5
- const router = useRouter();
6
- const currentParams = useParams();
18
+ const [localParams, setLocalParams] = useState({});
19
+ const {
20
+ router,
21
+ params
22
+ } = useOptionalRouter();
23
+ const currentParams = params ?? localParams;
7
24
  const debounceTimerRef = useRef(void 0);
8
25
  const searchParams = useMemo(() => {
9
- const params = {};
26
+ const params2 = {};
10
27
  Object.entries(currentParams).forEach(([key, value]) => {
11
28
  if (value !== void 0 && value !== null) {
12
- params[key] = value;
29
+ params2[key] = value;
13
30
  }
14
31
  });
15
- return params;
32
+ return params2;
16
33
  }, [currentParams]);
17
34
  const setSearchParams = useCallback((newParams, options = {}) => {
18
35
  const {
@@ -27,7 +44,11 @@ function useSearchParams() {
27
44
  cleanParams[key] = value;
28
45
  }
29
46
  });
30
- router.setParams(cleanParams);
47
+ if (router && params) {
48
+ router.setParams(cleanParams);
49
+ } else {
50
+ setLocalParams(cleanParams);
51
+ }
31
52
  };
32
53
  if (debounceMs > 0) {
33
54
  if (debounceTimerRef.current) {
@@ -37,7 +58,7 @@ function useSearchParams() {
37
58
  } else {
38
59
  updateParams();
39
60
  }
40
- }, [router, searchParams]);
61
+ }, [router, params, searchParams]);
41
62
  useEffect(() => {
42
63
  return () => {
43
64
  if (debounceTimerRef.current) {
@@ -115,7 +136,7 @@ function useUrlState(defaultValues, options = {}) {
115
136
  return [currentState, setState];
116
137
  }
117
138
  function useShareableUrl() {
118
- const params = useParams();
139
+ const params = useOptionalRouter().params ?? emptyParams;
119
140
  const shareableUrl = useMemo(() => {
120
141
  if (!isWeb || typeof window === "undefined") {
121
142
  return "";
@@ -136,7 +157,7 @@ function useShareableUrl() {
136
157
  return shareableUrl;
137
158
  }
138
159
  function useTypedSearchParams(schema) {
139
- const params = useParams();
160
+ const params = useOptionalRouter().params ?? emptyParams;
140
161
  const typedParams = useMemo(() => {
141
162
  const result = {};
142
163
  Object.entries(schema).forEach(([key, config]) => {
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useMemo","useRef","isWeb","useParams","useRouter","useSearchParams","router","currentParams","debounceTimerRef","searchParams","params","Object","entries","forEach","key","value","setSearchParams","newParams","options","replace","_replace","debounceMs","updateParams","updatedParams","cleanParams","setParams","current","clearTimeout","setTimeout","useUrlState","defaultValues","serialize","val","Array","isArray","map","String","JSON","stringify","deserialize","result","defaultValue","Number","parse","keys","currentState","setState","newState","updatedState","mergedState","serialized","useShareableUrl","shareableUrl","window","url","URL","location","href","search","v","append","set","toString","useTypedSearchParams","schema","typedParams","config","rawValue","default"],"sources":["../../../src/hooks/useUrlState.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","isWeb","useParams","useRouter","hasRouter","emptyParams","useOptionalRouter","router","params","useSearchParams","localParams","setLocalParams","currentParams","debounceTimerRef","searchParams","params2","Object","entries","forEach","key","value","setSearchParams","newParams","options","replace","_replace","debounceMs","updateParams","updatedParams","cleanParams","setParams","current","clearTimeout","setTimeout","useUrlState","defaultValues","serialize","val","Array","isArray","map","String","JSON","stringify","deserialize","result","defaultValue","Number","parse","keys","currentState","setState","newState","updatedState","mergedState","serialized","useShareableUrl","shareableUrl","window","url","URL","location","href","search","v","append","set","toString","useTypedSearchParams","schema","typedParams","config","rawValue","default"],"sources":["../../../src/hooks/useUrlState.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -38,19 +38,36 @@ function _type_of(obj) {
38
38
 
39
39
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
40
40
  }
41
+ var hasRouter = typeof import_router.useRouter === "function" && typeof import_router.useParams === "function";
42
+ var emptyParams = {};
43
+ function useOptionalRouter() {
44
+ if (!hasRouter) return {};
45
+ try {
46
+ return {
47
+ router: (0, import_router.useRouter)(),
48
+ params: (0, import_router.useParams)()
49
+ };
50
+ } catch (unused) {
51
+ return {};
52
+ }
53
+ }
41
54
  function useSearchParams() {
42
- var router = (0, import_router.useRouter)();
43
- var currentParams = (0, import_router.useParams)();
55
+ var [localParams, setLocalParams] = (0, import_react.useState)({});
56
+ var {
57
+ router,
58
+ params
59
+ } = useOptionalRouter();
60
+ var currentParams = params !== null && params !== void 0 ? params : localParams;
44
61
  var debounceTimerRef = (0, import_react.useRef)(void 0);
45
62
  var searchParams = (0, import_react.useMemo)(function () {
46
- var params = {};
63
+ var params2 = {};
47
64
  Object.entries(currentParams).forEach(function (param) {
48
65
  var [key, value] = param;
49
66
  if (value !== void 0 && value !== null) {
50
- params[key] = value;
67
+ params2[key] = value;
51
68
  }
52
69
  });
53
- return params;
70
+ return params2;
54
71
  }, [currentParams]);
55
72
  var setSearchParams = (0, import_react.useCallback)(function (newParams) {
56
73
  var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
@@ -67,7 +84,11 @@ function useSearchParams() {
67
84
  cleanParams[key] = value;
68
85
  }
69
86
  });
70
- router.setParams(cleanParams);
87
+ if (router && params) {
88
+ router.setParams(cleanParams);
89
+ } else {
90
+ setLocalParams(cleanParams);
91
+ }
71
92
  };
72
93
  if (debounceMs > 0) {
73
94
  if (debounceTimerRef.current) {
@@ -77,7 +98,7 @@ function useSearchParams() {
77
98
  } else {
78
99
  updateParams();
79
100
  }
80
- }, [router, searchParams]);
101
+ }, [router, params, searchParams]);
81
102
  (0, import_react.useEffect)(function () {
82
103
  return function () {
83
104
  if (debounceTimerRef.current) {
@@ -158,7 +179,8 @@ function useUrlState(defaultValues) {
158
179
  return [currentState, setState];
159
180
  }
160
181
  function useShareableUrl() {
161
- var params = (0, import_router.useParams)();
182
+ var _useOptionalRouter_params;
183
+ var params = (_useOptionalRouter_params = useOptionalRouter().params) !== null && _useOptionalRouter_params !== void 0 ? _useOptionalRouter_params : emptyParams;
162
184
  var shareableUrl = (0, import_react.useMemo)(function () {
163
185
  if (!import_platform.isWeb || typeof window === "undefined") {
164
186
  return "";
@@ -182,7 +204,8 @@ function useShareableUrl() {
182
204
  return shareableUrl;
183
205
  }
184
206
  function useTypedSearchParams(schema) {
185
- var params = (0, import_router.useParams)();
207
+ var _useOptionalRouter_params;
208
+ var params = (_useOptionalRouter_params = useOptionalRouter().params) !== null && _useOptionalRouter_params !== void 0 ? _useOptionalRouter_params : emptyParams;
186
209
  var typedParams = (0, import_react.useMemo)(function () {
187
210
  var result = {};
188
211
  Object.entries(schema).forEach(function (param) {
@@ -1 +1 @@
1
- {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","useUrlState_exports","useSearchParams","useShareableUrl","useTypedSearchParams","useUrlState","module","exports","import_react","require","import_platform","import_router","_type_of","obj","Symbol","constructor","router","useRouter","currentParams","useParams","debounceTimerRef","useRef","searchParams","useMemo","params","entries","forEach","param","setSearchParams","useCallback","newParams","options","arguments","length","replace","_replace","debounceMs","updateParams","updateParams2","updatedParams","cleanParams","setParams","current","clearTimeout","setTimeout","useEffect","defaultValues","serialize","val","Array","isArray","map","String","JSON","stringify","deserialize","result","defaultValue","Number","parse","unused","keys","currentState","setState","newState","updatedState","mergedState","serialized"],"sources":["../../../src/hooks/useUrlState.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","useUrlState_exports","useSearchParams","useShareableUrl","useTypedSearchParams","useUrlState","module","exports","import_react","require","import_platform","import_router","_type_of","obj","Symbol","constructor","hasRouter","useRouter","useParams","emptyParams","useOptionalRouter","router","params","unused","localParams","setLocalParams","useState","currentParams","debounceTimerRef","useRef","searchParams","useMemo","params2","entries","forEach","param","setSearchParams","useCallback","newParams","options","arguments","length","replace","_replace","debounceMs","updateParams","updateParams2","updatedParams","cleanParams","setParams","current","clearTimeout","setTimeout","useEffect","defaultValues","serialize","val","Array","isArray","map","String","JSON","stringify","deserialize","result","defaultValue","Number","parse","keys","currentState","setState","newState","updatedState","mergedState"],"sources":["../../../src/hooks/useUrlState.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,96 @@
1
+ import { Suspense, useEffect, useRef } from "react";
2
+ import { RouteTagContext, stackNavigator, useNavState } from "./navigator.mjs";
3
+ import { jsx } from "react/jsx-runtime";
4
+ class DomStackAdapter {
5
+ stack;
6
+ onChanged;
7
+ constructor(rootTag, onChanged) {
8
+ this.stack = rootTag ? [rootTag] : [];
9
+ this.onChanged = onChanged;
10
+ }
11
+ push_by_tag(tag) {
12
+ this.stack.push(tag);
13
+ this.onChanged();
14
+ }
15
+ pop() {
16
+ if (this.stack.length <= 1) return false;
17
+ this.stack.pop();
18
+ this.onChanged();
19
+ return true;
20
+ }
21
+ pop_to_tag(tag) {
22
+ const idx = this.stack.lastIndexOf(tag);
23
+ if (idx === -1 || idx === this.stack.length - 1) return false;
24
+ this.stack = this.stack.slice(0, idx + 1);
25
+ this.onChanged();
26
+ return true;
27
+ }
28
+ replace_with_tags(tags) {
29
+ this.stack = [...tags];
30
+ this.onChanged();
31
+ }
32
+ get_navigation_stack() {
33
+ const snapshot = this.stack;
34
+ return {
35
+ get_n_items: () => snapshot.length,
36
+ get_item: index => index >= 0 && index < snapshot.length ? {
37
+ get_tag: () => snapshot[index] ?? null
38
+ } : null
39
+ };
40
+ }
41
+ }
42
+ const PAGE_STYLE = {
43
+ position: "absolute",
44
+ inset: 0,
45
+ display: "flex",
46
+ flexDirection: "column",
47
+ overflow: "auto"
48
+ };
49
+ function DomNavigationHost({
50
+ routes,
51
+ initialHref,
52
+ style
53
+ }) {
54
+ const adapterRef = useRef(null);
55
+ adapterRef.current ??= new DomStackAdapter(routes[0]?.tag ?? "", () => stackNavigator.syncFromHost());
56
+ const initialHrefRef = useRef(initialHref);
57
+ useEffect(() => {
58
+ const adapter = adapterRef.current;
59
+ if (!adapter) return;
60
+ stackNavigator.attach(adapter);
61
+ const restore = initialHrefRef.current;
62
+ if (restore) stackNavigator.replace(restore);
63
+ return () => stackNavigator.detach();
64
+ }, []);
65
+ const nav = useNavState();
66
+ return /* @__PURE__ */jsx("div", {
67
+ style: {
68
+ position: "relative",
69
+ flex: 1,
70
+ minHeight: 0,
71
+ height: "100%",
72
+ ...style
73
+ },
74
+ children: routes.map(route => {
75
+ const active = nav.tag === route.tag;
76
+ const mounted = stackNavigator.isVisited(route.tag);
77
+ return /* @__PURE__ */jsx("div", {
78
+ "data-seam-page": route.tag,
79
+ "data-seam-active": active ? "true" : "false",
80
+ style: {
81
+ ...PAGE_STYLE,
82
+ display: active ? "flex" : "none"
83
+ },
84
+ children: /* @__PURE__ */jsx(RouteTagContext.Provider, {
85
+ value: route.tag,
86
+ children: /* @__PURE__ */jsx(Suspense, {
87
+ fallback: null,
88
+ children: mounted ? route.element : null
89
+ })
90
+ })
91
+ }, route.tag);
92
+ })
93
+ });
94
+ }
95
+ export { DomNavigationHost, DomStackAdapter };
96
+ //# sourceMappingURL=DomNavigationHost.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Suspense","useEffect","useRef","RouteTagContext","stackNavigator","useNavState","jsx","DomStackAdapter","stack","onChanged","constructor","rootTag","push_by_tag","tag","push","pop","length","pop_to_tag","idx","lastIndexOf","slice","replace_with_tags","tags","get_navigation_stack","snapshot","get_n_items","get_item","index","get_tag","PAGE_STYLE","position","inset","display","flexDirection","overflow","DomNavigationHost","routes","initialHref","style","adapterRef","current","syncFromHost","initialHrefRef","adapter","attach","restore","replace","detach","nav","flex","minHeight","height","children","map","route","active","mounted","isVisited","Provider","value","fallback","element"],"sources":["../../../src/seam/DomNavigationHost.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
+ };
22
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
+ value: true
24
+ }), mod);
25
+ var DomNavigationHost_exports = {};
26
+ __export(DomNavigationHost_exports, {
27
+ DomNavigationHost: () => DomNavigationHost,
28
+ DomStackAdapter: () => DomStackAdapter
29
+ });
30
+ module.exports = __toCommonJS(DomNavigationHost_exports);
31
+ var import_jsx_runtime = require("react/jsx-runtime");
32
+ var import_react = require("react");
33
+ var import_navigator = require("./navigator.native.js");
34
+ function _class_call_check(instance, Constructor) {
35
+ if (!(instance instanceof Constructor)) {
36
+ throw new TypeError("Cannot call a class as a function");
37
+ }
38
+ }
39
+ function _defineProperties(target, props) {
40
+ for (var i = 0; i < props.length; i++) {
41
+ var descriptor = props[i];
42
+ descriptor.enumerable = descriptor.enumerable || false;
43
+ descriptor.configurable = true;
44
+ if ("value" in descriptor) descriptor.writable = true;
45
+ Object.defineProperty(target, descriptor.key, descriptor);
46
+ }
47
+ }
48
+ function _create_class(Constructor, protoProps, staticProps) {
49
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
50
+ if (staticProps) _defineProperties(Constructor, staticProps);
51
+ return Constructor;
52
+ }
53
+ function _define_property(obj, key, value) {
54
+ if (key in obj) {
55
+ Object.defineProperty(obj, key, {
56
+ value,
57
+ enumerable: true,
58
+ configurable: true,
59
+ writable: true
60
+ });
61
+ } else {
62
+ obj[key] = value;
63
+ }
64
+ return obj;
65
+ }
66
+ var DomStackAdapter = /* @__PURE__ */function () {
67
+ "use strict";
68
+
69
+ function DomStackAdapter2(rootTag, onChanged) {
70
+ _class_call_check(this, DomStackAdapter2);
71
+ _define_property(this, "stack", void 0);
72
+ _define_property(this, "onChanged", void 0);
73
+ this.stack = rootTag ? [rootTag] : [];
74
+ this.onChanged = onChanged;
75
+ }
76
+ _create_class(DomStackAdapter2, [{
77
+ key: "push_by_tag",
78
+ value: function push_by_tag(tag) {
79
+ this.stack.push(tag);
80
+ this.onChanged();
81
+ }
82
+ }, {
83
+ key: "pop",
84
+ value: function pop() {
85
+ if (this.stack.length <= 1) return false;
86
+ this.stack.pop();
87
+ this.onChanged();
88
+ return true;
89
+ }
90
+ }, {
91
+ key: "pop_to_tag",
92
+ value: function pop_to_tag(tag) {
93
+ var idx = this.stack.lastIndexOf(tag);
94
+ if (idx === -1 || idx === this.stack.length - 1) return false;
95
+ this.stack = this.stack.slice(0, idx + 1);
96
+ this.onChanged();
97
+ return true;
98
+ }
99
+ }, {
100
+ key: "replace_with_tags",
101
+ value: function replace_with_tags(tags) {
102
+ this.stack = [...tags];
103
+ this.onChanged();
104
+ }
105
+ }, {
106
+ key: "get_navigation_stack",
107
+ value: function get_navigation_stack() {
108
+ var snapshot = this.stack;
109
+ return {
110
+ get_n_items: function get_n_items() {
111
+ return snapshot.length;
112
+ },
113
+ get_item: function get_item(index) {
114
+ return index >= 0 && index < snapshot.length ? {
115
+ get_tag: function get_tag() {
116
+ var _snapshot_index;
117
+ return (_snapshot_index = snapshot[index]) !== null && _snapshot_index !== void 0 ? _snapshot_index : null;
118
+ }
119
+ } : null;
120
+ }
121
+ };
122
+ }
123
+ }]);
124
+ return DomStackAdapter2;
125
+ }();
126
+ var PAGE_STYLE = {
127
+ position: "absolute",
128
+ inset: 0,
129
+ display: "flex",
130
+ flexDirection: "column",
131
+ overflow: "auto"
132
+ };
133
+ function DomNavigationHost(param) {
134
+ var {
135
+ routes,
136
+ initialHref,
137
+ style
138
+ } = param;
139
+ var _adapterRef, _current, _ref;
140
+ var _routes_;
141
+ var adapterRef = (0, import_react.useRef)(null);
142
+ (_current = (_adapterRef = adapterRef).current) !== null && _current !== void 0 ? _current : _adapterRef.current = new DomStackAdapter((_ref = (_routes_ = routes[0]) === null || _routes_ === void 0 ? void 0 : _routes_.tag) !== null && _ref !== void 0 ? _ref : "", function () {
143
+ return import_navigator.stackNavigator.syncFromHost();
144
+ });
145
+ var initialHrefRef = (0, import_react.useRef)(initialHref);
146
+ (0, import_react.useEffect)(function () {
147
+ var adapter = adapterRef.current;
148
+ if (!adapter) return;
149
+ import_navigator.stackNavigator.attach(adapter);
150
+ var restore = initialHrefRef.current;
151
+ if (restore) import_navigator.stackNavigator.replace(restore);
152
+ return function () {
153
+ return import_navigator.stackNavigator.detach();
154
+ };
155
+ }, []);
156
+ var nav = (0, import_navigator.useNavState)();
157
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)("div", {
158
+ style: {
159
+ position: "relative",
160
+ flex: 1,
161
+ minHeight: 0,
162
+ height: "100%",
163
+ ...style
164
+ },
165
+ children: routes.map(function (route) {
166
+ var active = nav.tag === route.tag;
167
+ var mounted = import_navigator.stackNavigator.isVisited(route.tag);
168
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)("div", {
169
+ "data-seam-page": route.tag,
170
+ "data-seam-active": active ? "true" : "false",
171
+ style: {
172
+ ...PAGE_STYLE,
173
+ display: active ? "flex" : "none"
174
+ },
175
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_navigator.RouteTagContext.Provider, {
176
+ value: route.tag,
177
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.Suspense, {
178
+ fallback: null,
179
+ children: mounted ? route.element : null
180
+ })
181
+ })
182
+ }, route.tag);
183
+ })
184
+ });
185
+ }
186
+ //# sourceMappingURL=DomNavigationHost.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","DomNavigationHost_exports","DomNavigationHost","DomStackAdapter","module","exports","import_jsx_runtime","require","import_react","import_navigator","_class_call_check","instance","Constructor","TypeError","_defineProperties","props","i","length","descriptor","configurable","writable","_create_class","protoProps","staticProps","_define_property","obj","DomStackAdapter2","rootTag","onChanged","stack","push_by_tag","tag","push","pop"],"sources":["../../../src/seam/DomNavigationHost.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import { RouteTagContext, StackNavigator, hrefToString, stackNavigator, useNavState, useRouteParams } from "./navigator.mjs";
2
+ import { DomNavigationHost, DomStackAdapter } from "./DomNavigationHost.mjs";
3
+ import { Link, LoadProgressBar, Slot, useBlocker, useLoader, useLocalSearchParams, useMatches, useParams, usePathname, useRouter } from "./oneAdapter.mjs";
4
+ export { DomNavigationHost, DomStackAdapter, Link, LoadProgressBar, RouteTagContext, Slot, StackNavigator, hrefToString, stackNavigator, useBlocker, useLoader, useLocalSearchParams, useMatches, useNavState, useParams, usePathname, useRouteParams, useRouter };
5
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["RouteTagContext","StackNavigator","hrefToString","stackNavigator","useNavState","useRouteParams","DomNavigationHost","DomStackAdapter","Link","LoadProgressBar","Slot","useBlocker","useLoader","useLocalSearchParams","useMatches","useParams","usePathname","useRouter"],"sources":["../../../src/seam/index.ts"],"sourcesContent":[null],"mappings":"AASA,SACEA,eAAA,EACAC,cAAA,EACAC,YAAA,EACAC,cAAA,EACAC,WAAA,EACAC,cAAA,QACK;AAUP,SAASC,iBAAA,EAAmBC,eAAA,QAAuB;AAEnD,SACEC,IAAA,EACAC,eAAA,EACAC,IAAA,EACAC,UAAA,EACAC,SAAA,EACAC,oBAAA,EACAC,UAAA,EACAC,SAAA,EACAC,WAAA,EACAC,SAAA,QACK","ignoreList":[]}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
+ };
22
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
+ value: true
24
+ }), mod);
25
+ var seam_exports = {};
26
+ __export(seam_exports, {
27
+ DomNavigationHost: () => import_DomNavigationHost.DomNavigationHost,
28
+ DomStackAdapter: () => import_DomNavigationHost.DomStackAdapter,
29
+ Link: () => import_oneAdapter.Link,
30
+ LoadProgressBar: () => import_oneAdapter.LoadProgressBar,
31
+ RouteTagContext: () => import_navigator.RouteTagContext,
32
+ Slot: () => import_oneAdapter.Slot,
33
+ StackNavigator: () => import_navigator.StackNavigator,
34
+ hrefToString: () => import_navigator.hrefToString,
35
+ stackNavigator: () => import_navigator.stackNavigator,
36
+ useBlocker: () => import_oneAdapter.useBlocker,
37
+ useLoader: () => import_oneAdapter.useLoader,
38
+ useLocalSearchParams: () => import_oneAdapter.useLocalSearchParams,
39
+ useMatches: () => import_oneAdapter.useMatches,
40
+ useNavState: () => import_navigator.useNavState,
41
+ useParams: () => import_oneAdapter.useParams,
42
+ usePathname: () => import_oneAdapter.usePathname,
43
+ useRouteParams: () => import_navigator.useRouteParams,
44
+ useRouter: () => import_oneAdapter.useRouter
45
+ });
46
+ module.exports = __toCommonJS(seam_exports);
47
+ var import_navigator = require("./navigator.native.js");
48
+ var import_DomNavigationHost = require("./DomNavigationHost.native.js");
49
+ var import_oneAdapter = require("./oneAdapter.native.js");
50
+ //# sourceMappingURL=index.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","seam_exports","DomNavigationHost","import_DomNavigationHost"],"sources":["../../../src/seam/index.ts"],"sourcesContent":[null],"mappings":"AASA;;AAAA,IACEA,SAAA,GAAAC,MAAA,CAAAC,cAAA;AAAA,IACAC,gBAAA,GAAAF,MAAA,CAAAG,wBAAA;AAAA,IACAC,iBAAA,GAAAJ,MAAA,CAAAK,mBAAA;AAAA,IACAC,YAAA,GAAAN,MAAA,CAAAO,SAAA,CAAAC,cAAA;AAAA,IACAC,QAAA,GAAAA,CAAAC,MAAA,EAAAC,GAAA;EACA,SAAAC,IAAA,IAAAD,GAAA,EAAAZ,SACK,CAAAW,MAAA,EAAAE,IAAA;IAAAC,GAAA,EAAAF,GAAA,CAAAC,IAAA;IAAAE,UAAA;EAAA;AAUP;AAEA,IAAAC,WAAA,GAAAA,CAAAC,EAAA,EAAAC,IAAA,EAAAC,MAAA,EAAAC,IAAA;EACE,IAAAF,IAAA,WAAAA,IAAA,wBAAAA,IAAA;IACA,SAAAG,GAAA,IAAAhB,iBAAA,CAAAa,IAAA,GACA,KAAAX,YAAA,CAAAe,IAAA,CAAAL,EAAA,EAAAI,GAAA,KAAAA,GAAA,KAAAF,MAAA,EACAnB,SAAA,CAAAiB,EAAA,EAAAI,GAAA;MAAAP,GAAA,EAAAA,CAAA,KAAAI,IAAA,CAAAG,GAAA;MAAAN,UAAA,IAAAK,IAAA,GAAAjB,gBAAA,CAAAe,IAAA,EAAAG,GAAA,MAAAD,IAAA,CAAAL;IAAA;EACA;EACA,OAAAE,EAAA;AAAA;AACA,IACAM,YAAA,GAAAC,GAAA,IAAAR,WAAA,CAAAhB,SAAA;EAAAyB,KAAA;AAAA,IAAAD,GAAA;AAAA,IACAE,YAAA;AAAAhB,QACA,CAAAgB,YAAA;EAAAC,iBACK,EAAAA,CAAA,KAAAC,wBAAA,CAAAD,iBAAA","ignoreList":[]}