@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,141 @@
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 oneAdapter_exports = {};
26
+ __export(oneAdapter_exports, {
27
+ Link: () => Link,
28
+ LoadProgressBar: () => LoadProgressBar,
29
+ Slot: () => Slot,
30
+ getUserScheme: () => import_color_scheme.getUserScheme,
31
+ onUserSchemeChange: () => import_color_scheme.onUserSchemeChange,
32
+ setUserScheme: () => import_color_scheme.setUserScheme,
33
+ useBlocker: () => useBlocker,
34
+ useLoader: () => useLoader,
35
+ useLocalSearchParams: () => useLocalSearchParams,
36
+ useMatches: () => useMatches,
37
+ useParams: () => useParams,
38
+ usePathname: () => usePathname,
39
+ useRouter: () => useRouter,
40
+ useUserScheme: () => import_color_scheme.useUserScheme
41
+ });
42
+ module.exports = __toCommonJS(oneAdapter_exports);
43
+ var import_jsx_runtime = require("react/jsx-runtime");
44
+ var import_react = require("react");
45
+ var import_navigator = require("./navigator.native.js");
46
+ var import_color_scheme = require("@vxrn/color-scheme");
47
+ function useLoader(_loader) {
48
+ var tag = (0, import_react.useContext)(import_navigator.RouteTagContext);
49
+ var fromRoute = (0, import_react.useSyncExternalStore)(import_navigator.stackNavigator.subscribe, function () {
50
+ return import_navigator.stackNavigator.loaderSnapshot(tag);
51
+ });
52
+ return fromRoute;
53
+ }
54
+ var ROUTER = {
55
+ push: import_navigator.stackNavigator.push,
56
+ navigate: import_navigator.stackNavigator.push,
57
+ replace: import_navigator.stackNavigator.replace,
58
+ back: import_navigator.stackNavigator.back,
59
+ canGoBack: function canGoBack() {
60
+ return import_navigator.stackNavigator.getSnapshot().canGoBack;
61
+ },
62
+ dismiss: function dismiss(count) {
63
+ for (var i = 0; i < (count !== null && count !== void 0 ? count : 1); i++) import_navigator.stackNavigator.back();
64
+ },
65
+ dismissAll: function dismissAll() {
66
+ var depth = import_navigator.stackNavigator.getSnapshot().depth;
67
+ for (var i = 1; i < depth; i++) import_navigator.stackNavigator.back();
68
+ },
69
+ canDismiss: function canDismiss() {
70
+ return import_navigator.stackNavigator.getSnapshot().canGoBack;
71
+ },
72
+ setParams: import_navigator.stackNavigator.setParams,
73
+ subscribe: function subscribe(listener) {
74
+ listener("success");
75
+ return function () {};
76
+ },
77
+ onLoadState: function onLoadState(listener) {
78
+ listener("loaded");
79
+ return function () {};
80
+ }
81
+ };
82
+ function useRouter() {
83
+ return ROUTER;
84
+ }
85
+ function Link(param) {
86
+ var {
87
+ href,
88
+ replace,
89
+ children,
90
+ style,
91
+ ...rest
92
+ } = param;
93
+ if (!href || !import_navigator.stackNavigator.isConfigured) return children !== null && children !== void 0 ? children : null;
94
+ var hrefString = (0, import_navigator.hrefToString)(href);
95
+ var onClick = function onClick2(event) {
96
+ event.preventDefault();
97
+ if (replace) import_navigator.stackNavigator.replace(href);else import_navigator.stackNavigator.push(href);
98
+ };
99
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)("a", {
100
+ href: hrefString,
101
+ onClick,
102
+ // display:contents — the anchor contributes no box, so wrapping
103
+ // arbitrary flex/grid children never disturbs layout (clicks still
104
+ // bubble through it).
105
+ style: {
106
+ display: "contents",
107
+ color: "inherit",
108
+ textDecoration: "none",
109
+ ...style
110
+ },
111
+ "data-seam-link": hrefString,
112
+ ...rest,
113
+ children
114
+ });
115
+ }
116
+ function Slot(_props) {
117
+ return null;
118
+ }
119
+ function useParams() {
120
+ return (0, import_navigator.useRouteParams)();
121
+ }
122
+ function useLocalSearchParams() {
123
+ return (0, import_navigator.useRouteParams)();
124
+ }
125
+ function usePathname() {
126
+ return (0, import_navigator.useNavState)().pathname;
127
+ }
128
+ function useBlocker(_shouldBlock) {
129
+ return {
130
+ state: "unblocked",
131
+ proceed: function proceed() {},
132
+ reset: function reset() {}
133
+ };
134
+ }
135
+ function LoadProgressBar(_props) {
136
+ return null;
137
+ }
138
+ function useMatches() {
139
+ return [];
140
+ }
141
+ //# sourceMappingURL=oneAdapter.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","oneAdapter_exports","__export","Link","LoadProgressBar","Slot","getUserScheme","import_color_scheme","onUserSchemeChange","setUserScheme","useBlocker","useLoader","useLocalSearchParams","useMatches","useParams","usePathname","useRouter","useUserScheme","module","exports","import_jsx_runtime","require","import_react","import_navigator","_loader","tag","useContext","RouteTagContext","fromRoute","useSyncExternalStore","stackNavigator","subscribe","loaderSnapshot","ROUTER","push","navigate","replace","back","canGoBack","getSnapshot","dismiss","count","i","dismissAll","depth","canDismiss","setParams","listener","onLoadState","param","href","children","style","rest","isConfigured","hrefString","hrefToString","onClick","onClick2","event","preventDefault","jsx","display","color","textDecoration","_props","useRouteParams","useNavState","pathname","_shouldBlock"],"sources":["../../../src/seam/oneAdapter.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -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":"AAAA,SAASA,WAAA,EAAaC,SAAA,EAAWC,OAAA,EAASC,MAAA,QAAc;AACxD,SAASC,KAAA,QAAa;AACtB,SAASC,SAAA,EAAWC,SAAA,QAAiB;AAa9B,SAASC,gBAAA,EAMd;EACA,MAAMC,MAAA,GAASF,SAAA,CAAU;EACzB,MAAMG,aAAA,GAAgBJ,SAAA,CAAU;EAChC,MAAMK,gBAAA,GAAmBP,MAAA,CAAkD,MAAS;EAGpF,MAAMQ,YAAA,GAAeT,OAAA,CAAsB,MAAM;IAC/C,MAAMU,MAAA,GAAuB,CAAC;IAC9BC,MAAA,CAAOC,OAAA,CAAQL,aAAa,EAAEM,OAAA,CAAQ,CAAC,CAACC,GAAA,EAAKC,KAAK,MAAM;MACtD,IAAIA,KAAA,KAAU,UAAaA,KAAA,KAAU,MAAM;QACzCL,MAAA,CAAOI,GAAG,IAAIC,KAAA;MAChB;IACF,CAAC;IACD,OAAOL,MAAA;EACT,GAAG,CAACH,aAAa,CAAC;EAElB,MAAMS,eAAA,GAAkBlB,WAAA,CACtB,CACEmB,SAAA,EACAC,OAAA,GAAkC,CAAC,MAChC;IACH,MAAM;MAAEC,OAAA,EAASC,QAAA,GAAW;MAAMC,UAAA,GAAa;IAAE,IAAIH,OAAA;IAErD,MAAMI,YAAA,GAAeA,CAAA,KAAM;MACzB,MAAMC,aAAA,GAAgB,OAAON,SAAA,KAAc,aAAaA,SAAA,CAAUR,YAAY,IAAIQ,SAAA;MAGlF,MAAMO,WAAA,GAAiD,CAAC;MACxDb,MAAA,CAAOC,OAAA,CAAQW,aAAa,EAAEV,OAAA,CAAQ,CAAC,CAACC,GAAA,EAAKC,KAAK,MAAM;QACtD,IAAIA,KAAA,KAAU,UAAaA,KAAA,KAAU,QAAQA,KAAA,KAAU,IAAI;UACzDS,WAAA,CAAYV,GAAG,IAAIC,KAAA;QACrB;MACF,CAAC;MAGDT,MAAA,CAAOmB,SAAA,CAAUD,WAAkB;IACrC;IAEA,IAAIH,UAAA,GAAa,GAAG;MAClB,IAAIb,gBAAA,CAAiBkB,OAAA,EAAS;QAC5BC,YAAA,CAAanB,gBAAA,CAAiBkB,OAAO;MACvC;MACAlB,gBAAA,CAAiBkB,OAAA,GAAUE,UAAA,CAAWN,YAAA,EAAcD,UAAU;IAChE,OAAO;MACLC,YAAA,CAAa;IACf;EACF,GACA,CAAChB,MAAA,EAAQG,YAAY,CACvB;EAGAV,SAAA,CAAU,MAAM;IACd,OAAO,MAAM;MACX,IAAIS,gBAAA,CAAiBkB,OAAA,EAAS;QAC5BC,YAAA,CAAanB,gBAAA,CAAiBkB,OAAO;MACvC;IACF;EACF,GAAG,EAAE;EAEL,OAAO,CAACjB,YAAA,EAAcO,eAAe;AACvC;AAMO,SAASa,YACdC,aAAA,EACAZ,OAAA,GAII,CAAC,GAC4D;EACjE,MAAM;IACJG,UAAA,GAAa;IACbU,SAAA,GAAahB,KAAA,IAAU;MAErB,MAAML,MAAA,GAAuB,CAAC;MAC9BC,MAAA,CAAOC,OAAA,CAAQG,KAAK,EAAEF,OAAA,CAAQ,CAAC,CAACC,GAAA,EAAKkB,GAAG,MAAM;QAC5C,IAAIA,GAAA,KAAQ,UAAaA,GAAA,KAAQ,QAAQA,GAAA,KAAQ,IAAI;UACnD,IAAIC,KAAA,CAAMC,OAAA,CAAQF,GAAG,GAAG;YACtBtB,MAAA,CAAOI,GAAG,IAAIkB,GAAA,CAAIG,GAAA,CAAIC,MAAM;UAC9B,WAAW,OAAOJ,GAAA,KAAQ,UAAU;YAClCtB,MAAA,CAAOI,GAAG,IAAIuB,IAAA,CAAKC,SAAA,CAAUN,GAAG;UAClC,OAAO;YACLtB,MAAA,CAAOI,GAAG,IAAIsB,MAAA,CAAOJ,GAAG;UAC1B;QACF;MACF,CAAC;MACD,OAAOtB,MAAA;IACT;IACA6B,WAAA,GAAe7B,MAAA,IAAW;MAExB,MAAM8B,MAAA,GAAc,CAAC;MACrB7B,MAAA,CAAOC,OAAA,CAAQF,MAAM,EAAEG,OAAA,CAAQ,CAAC,CAACC,GAAA,EAAKC,KAAK,MAAM;QAC/C,IAAID,GAAA,IAAOgB,aAAA,EAAe;UACxB,MAAMW,YAAA,GAAeX,aAAA,CAAchB,GAAG;UACtC,IAAIC,KAAA,KAAU,QAAW;YACvByB,MAAA,CAAO1B,GAAG,IAAI2B,YAAA;UAChB,WAAWR,KAAA,CAAMC,OAAA,CAAQO,YAAY,GAAG;YACtCD,MAAA,CAAO1B,GAAG,IAAImB,KAAA,CAAMC,OAAA,CAAQnB,KAAK,IAAIA,KAAA,GAAQ,CAACA,KAAK;UACrD,WAAW,OAAO0B,YAAA,KAAiB,WAAW;YAC5CD,MAAA,CAAO1B,GAAG,IAAIC,KAAA,KAAU;UAC1B,WAAW,OAAO0B,YAAA,KAAiB,UAAU;YAC3CD,MAAA,CAAO1B,GAAG,IAAI4B,MAAA,CAAO3B,KAAK;UAC5B,WAAW,OAAO0B,YAAA,KAAiB,YAAYA,YAAA,KAAiB,MAAM;YACpE,IAAI;cACFD,MAAA,CAAO1B,GAAG,IAAIuB,IAAA,CAAKM,KAAA,CAAMP,MAAA,CAAOrB,KAAK,CAAC;YACxC,QAAQ;cACNyB,MAAA,CAAO1B,GAAG,IAAI2B,YAAA;YAChB;UACF,OAAO;YACLD,MAAA,CAAO1B,GAAG,IAAIC,KAAA;UAChB;QACF;MACF,CAAC;MAEDJ,MAAA,CAAOiC,IAAA,CAAKd,aAAa,EAAEjB,OAAA,CAASC,GAAA,IAAQ;QAC1C,IAAI,EAAEA,GAAA,IAAO0B,MAAA,GAAS;UACpBA,MAAA,CAAO1B,GAAG,IAAIgB,aAAA,CAAchB,GAAG;QACjC;MACF,CAAC;MACD,OAAO0B,MAAA;IACT;EACF,IAAItB,OAAA;EAEJ,MAAM,CAACT,YAAA,EAAcO,eAAe,IAAIX,eAAA,CAAgB;EAGxD,MAAMwC,YAAA,GAAe7C,OAAA,CAAQ,MAAM;IACjC,OAAOuC,WAAA,CAAY9B,YAAY;EACjC,GAAG,CAACA,YAAA,EAAc8B,WAAW,CAAC;EAE9B,MAAMO,QAAA,GAAWhD,WAAA,CACdiD,QAAA,IAAqD;IACpD,MAAMC,YAAA,GAAe,OAAOD,QAAA,KAAa,aAAaA,QAAA,CAASF,YAAY,IAAIE,QAAA;IAE/E,MAAME,WAAA,GAAc;MAAE,GAAGJ,YAAA;MAAc,GAAGG;IAAa;IACvD,MAAME,UAAA,GAAanB,SAAA,CAAUkB,WAAW;IAExCjC,eAAA,CAAgBkC,UAAA,EAAY;MAAE7B;IAAW,CAAC;EAC5C,GACA,CAACwB,YAAA,EAAcd,SAAA,EAAWf,eAAA,EAAiBK,UAAU,CACvD;EAEA,OAAO,CAACwB,YAAA,EAAcC,QAAQ;AAChC;AAKO,SAASK,gBAAA,EAA0B;EACxC,MAAMzC,MAAA,GAASP,SAAA,CAAU;EAEzB,MAAMiD,YAAA,GAAepD,OAAA,CAAQ,MAAM;IACjC,IAAI,CAACE,KAAA,IAAS,OAAOmD,MAAA,KAAW,aAAa;MAC3C,OAAO;IACT;IAEA,MAAMC,GAAA,GAAM,IAAIC,GAAA,CAAIF,MAAA,CAAOG,QAAA,CAASC,IAAI;IACxCH,GAAA,CAAII,MAAA,GAAS;IAEb/C,MAAA,CAAOC,OAAA,CAAQF,MAAM,EAAEG,OAAA,CAAQ,CAAC,CAACC,GAAA,EAAKC,KAAK,MAAM;MAC/C,IAAIA,KAAA,KAAU,UAAaA,KAAA,KAAU,QAAQA,KAAA,KAAU,IAAI;QACzD,IAAIkB,KAAA,CAAMC,OAAA,CAAQnB,KAAK,GAAG;UACxBA,KAAA,CAAMF,OAAA,CAAS8C,CAAA,IAAML,GAAA,CAAI7C,YAAA,CAAamD,MAAA,CAAO9C,GAAA,EAAKsB,MAAA,CAAOuB,CAAC,CAAC,CAAC;QAC9D,OAAO;UACLL,GAAA,CAAI7C,YAAA,CAAaoD,GAAA,CAAI/C,GAAA,EAAKsB,MAAA,CAAOrB,KAAK,CAAC;QACzC;MACF;IACF,CAAC;IAED,OAAOuC,GAAA,CAAIQ,QAAA,CAAS;EACtB,GAAG,CAACpD,MAAM,CAAC;EAEX,OAAO0C,YAAA;AACT;AAKO,SAASW,qBAAoDC,MAAA,EAK9D;EACJ,MAAMtD,MAAA,GAASP,SAAA,CAAU;EAEzB,MAAM8D,WAAA,GAAcjE,OAAA,CAAQ,MAAM;IAChC,MAAMwC,MAAA,GAAc,CAAC;IAErB7B,MAAA,CAAOC,OAAA,CAAQoD,MAAM,EAAEnD,OAAA,CAAQ,CAAC,CAACC,GAAA,EAAKoD,MAAM,MAAM;MAChD,MAAMC,QAAA,GAAWzD,MAAA,CAAOI,GAAG;MAE3B,IAAIoD,MAAA,CAAOvB,KAAA,EAAO;QAChBH,MAAA,CAAO1B,GAAG,IAAIoD,MAAA,CAAOvB,KAAA,CAAMwB,QAAQ;MACrC,WAAWA,QAAA,KAAa,QAAW;QACjC3B,MAAA,CAAO1B,GAAG,IAAIoD,MAAA,CAAOE,OAAA;MACvB,OAAO;QACL5B,MAAA,CAAO1B,GAAG,IAAIqD,QAAA;MAChB;IACF,CAAC;IAED,OAAO3B,MAAA;EACT,GAAG,CAAC9B,MAAA,EAAQsD,MAAM,CAAC;EAEnB,OAAOC,WAAA;AACT","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":[]}
@@ -1,4 +1,4 @@
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.native.js";
4
4
  function _type_of(obj) {
@@ -6,19 +6,36 @@ function _type_of(obj) {
6
6
 
7
7
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
8
8
  }
9
+ var hasRouter = typeof useRouter === "function" && typeof useParams === "function";
10
+ var emptyParams = {};
11
+ function useOptionalRouter() {
12
+ if (!hasRouter) return {};
13
+ try {
14
+ return {
15
+ router: useRouter(),
16
+ params: useParams()
17
+ };
18
+ } catch (unused) {
19
+ return {};
20
+ }
21
+ }
9
22
  function useSearchParams() {
10
- var router = useRouter();
11
- var currentParams = useParams();
23
+ var [localParams, setLocalParams] = useState({});
24
+ var {
25
+ router,
26
+ params
27
+ } = useOptionalRouter();
28
+ var currentParams = params !== null && params !== void 0 ? params : localParams;
12
29
  var debounceTimerRef = useRef(void 0);
13
30
  var searchParams = useMemo(function () {
14
- var params = {};
31
+ var params2 = {};
15
32
  Object.entries(currentParams).forEach(function (param) {
16
33
  var [key, value] = param;
17
34
  if (value !== void 0 && value !== null) {
18
- params[key] = value;
35
+ params2[key] = value;
19
36
  }
20
37
  });
21
- return params;
38
+ return params2;
22
39
  }, [currentParams]);
23
40
  var setSearchParams = useCallback(function (newParams) {
24
41
  var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
@@ -35,7 +52,11 @@ function useSearchParams() {
35
52
  cleanParams[key] = value;
36
53
  }
37
54
  });
38
- router.setParams(cleanParams);
55
+ if (router && params) {
56
+ router.setParams(cleanParams);
57
+ } else {
58
+ setLocalParams(cleanParams);
59
+ }
39
60
  };
40
61
  if (debounceMs > 0) {
41
62
  if (debounceTimerRef.current) {
@@ -45,7 +66,7 @@ function useSearchParams() {
45
66
  } else {
46
67
  updateParams();
47
68
  }
48
- }, [router, searchParams]);
69
+ }, [router, params, searchParams]);
49
70
  useEffect(function () {
50
71
  return function () {
51
72
  if (debounceTimerRef.current) {
@@ -126,7 +147,8 @@ function useUrlState(defaultValues) {
126
147
  return [currentState, setState];
127
148
  }
128
149
  function useShareableUrl() {
129
- var params = useParams();
150
+ var _useOptionalRouter_params;
151
+ var params = (_useOptionalRouter_params = useOptionalRouter().params) !== null && _useOptionalRouter_params !== void 0 ? _useOptionalRouter_params : emptyParams;
130
152
  var shareableUrl = useMemo(function () {
131
153
  if (!isWeb || typeof window === "undefined") {
132
154
  return "";
@@ -150,7 +172,8 @@ function useShareableUrl() {
150
172
  return shareableUrl;
151
173
  }
152
174
  function useTypedSearchParams(schema) {
153
- var params = useParams();
175
+ var _useOptionalRouter_params;
176
+ var params = (_useOptionalRouter_params = useOptionalRouter().params) !== null && _useOptionalRouter_params !== void 0 ? _useOptionalRouter_params : emptyParams;
154
177
  var typedParams = useMemo(function () {
155
178
  var result = {};
156
179
  Object.entries(schema).forEach(function (param) {
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useMemo","useRef","isWeb","useParams","useRouter","_type_of","obj","Symbol","constructor","useSearchParams","router","currentParams","debounceTimerRef","searchParams","params","Object","entries","forEach","param","key","value","setSearchParams","newParams","options","arguments","length","replace","_replace","debounceMs","updateParams","updateParams2","updatedParams","cleanParams","setParams","current","clearTimeout","setTimeout","useUrlState","defaultValues","serialize","val","Array","isArray","map","String","JSON","stringify","deserialize","result","defaultValue","Number","parse","unused","keys","currentState","setState","newState","updatedState","mergedState","serialized","useShareableUrl","shareableUrl","window","url","URL","location","href","search","v"],"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","_type_of","obj","Symbol","constructor","hasRouter","emptyParams","useOptionalRouter","router","params","unused","useSearchParams","localParams","setLocalParams","currentParams","debounceTimerRef","searchParams","params2","Object","entries","forEach","param","key","value","setSearchParams","newParams","options","arguments","length","replace","_replace","debounceMs","updateParams","updateParams2","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","_useOptionalRouter_params","shareableUrl","window","url","URL","location","href","search"],"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,157 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Suspense, useEffect, useRef } from "react";
3
+ import { RouteTagContext, stackNavigator, useNavState } from "./navigator.native.js";
4
+ function _class_call_check(instance, Constructor) {
5
+ if (!(instance instanceof Constructor)) {
6
+ throw new TypeError("Cannot call a class as a function");
7
+ }
8
+ }
9
+ function _defineProperties(target, props) {
10
+ for (var i = 0; i < props.length; i++) {
11
+ var descriptor = props[i];
12
+ descriptor.enumerable = descriptor.enumerable || false;
13
+ descriptor.configurable = true;
14
+ if ("value" in descriptor) descriptor.writable = true;
15
+ Object.defineProperty(target, descriptor.key, descriptor);
16
+ }
17
+ }
18
+ function _create_class(Constructor, protoProps, staticProps) {
19
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
20
+ if (staticProps) _defineProperties(Constructor, staticProps);
21
+ return Constructor;
22
+ }
23
+ function _define_property(obj, key, value) {
24
+ if (key in obj) {
25
+ Object.defineProperty(obj, key, {
26
+ value,
27
+ enumerable: true,
28
+ configurable: true,
29
+ writable: true
30
+ });
31
+ } else {
32
+ obj[key] = value;
33
+ }
34
+ return obj;
35
+ }
36
+ var DomStackAdapter = /* @__PURE__ */function () {
37
+ "use strict";
38
+
39
+ function DomStackAdapter2(rootTag, onChanged) {
40
+ _class_call_check(this, DomStackAdapter2);
41
+ _define_property(this, "stack", void 0);
42
+ _define_property(this, "onChanged", void 0);
43
+ this.stack = rootTag ? [rootTag] : [];
44
+ this.onChanged = onChanged;
45
+ }
46
+ _create_class(DomStackAdapter2, [{
47
+ key: "push_by_tag",
48
+ value: function push_by_tag(tag) {
49
+ this.stack.push(tag);
50
+ this.onChanged();
51
+ }
52
+ }, {
53
+ key: "pop",
54
+ value: function pop() {
55
+ if (this.stack.length <= 1) return false;
56
+ this.stack.pop();
57
+ this.onChanged();
58
+ return true;
59
+ }
60
+ }, {
61
+ key: "pop_to_tag",
62
+ value: function pop_to_tag(tag) {
63
+ var idx = this.stack.lastIndexOf(tag);
64
+ if (idx === -1 || idx === this.stack.length - 1) return false;
65
+ this.stack = this.stack.slice(0, idx + 1);
66
+ this.onChanged();
67
+ return true;
68
+ }
69
+ }, {
70
+ key: "replace_with_tags",
71
+ value: function replace_with_tags(tags) {
72
+ this.stack = [...tags];
73
+ this.onChanged();
74
+ }
75
+ }, {
76
+ key: "get_navigation_stack",
77
+ value: function get_navigation_stack() {
78
+ var snapshot = this.stack;
79
+ return {
80
+ get_n_items: function get_n_items() {
81
+ return snapshot.length;
82
+ },
83
+ get_item: function get_item(index) {
84
+ return index >= 0 && index < snapshot.length ? {
85
+ get_tag: function get_tag() {
86
+ var _snapshot_index;
87
+ return (_snapshot_index = snapshot[index]) !== null && _snapshot_index !== void 0 ? _snapshot_index : null;
88
+ }
89
+ } : null;
90
+ }
91
+ };
92
+ }
93
+ }]);
94
+ return DomStackAdapter2;
95
+ }();
96
+ var PAGE_STYLE = {
97
+ position: "absolute",
98
+ inset: 0,
99
+ display: "flex",
100
+ flexDirection: "column",
101
+ overflow: "auto"
102
+ };
103
+ function DomNavigationHost(param) {
104
+ var {
105
+ routes,
106
+ initialHref,
107
+ style
108
+ } = param;
109
+ var _adapterRef, _current, _ref;
110
+ var _routes_;
111
+ var adapterRef = useRef(null);
112
+ (_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 () {
113
+ return stackNavigator.syncFromHost();
114
+ });
115
+ var initialHrefRef = useRef(initialHref);
116
+ useEffect(function () {
117
+ var adapter = adapterRef.current;
118
+ if (!adapter) return;
119
+ stackNavigator.attach(adapter);
120
+ var restore = initialHrefRef.current;
121
+ if (restore) stackNavigator.replace(restore);
122
+ return function () {
123
+ return stackNavigator.detach();
124
+ };
125
+ }, []);
126
+ var nav = useNavState();
127
+ return /* @__PURE__ */_jsx("div", {
128
+ style: {
129
+ position: "relative",
130
+ flex: 1,
131
+ minHeight: 0,
132
+ height: "100%",
133
+ ...style
134
+ },
135
+ children: routes.map(function (route) {
136
+ var active = nav.tag === route.tag;
137
+ var mounted = stackNavigator.isVisited(route.tag);
138
+ return /* @__PURE__ */_jsx("div", {
139
+ "data-seam-page": route.tag,
140
+ "data-seam-active": active ? "true" : "false",
141
+ style: {
142
+ ...PAGE_STYLE,
143
+ display: active ? "flex" : "none"
144
+ },
145
+ children: /* @__PURE__ */_jsx(RouteTagContext.Provider, {
146
+ value: route.tag,
147
+ children: /* @__PURE__ */_jsx(Suspense, {
148
+ fallback: null,
149
+ children: mounted ? route.element : null
150
+ })
151
+ })
152
+ }, route.tag);
153
+ })
154
+ });
155
+ }
156
+ export { DomNavigationHost, DomStackAdapter };
157
+ //# sourceMappingURL=DomNavigationHost.native.js.map