@flemo/react 1.12.8 → 2.0.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.
package/dist/index.mjs CHANGED
@@ -1,25 +1,25 @@
1
- import e, { Activity as t, Children as n, createContext as r, isValidElement as i, useCallback as a, useContext as o, useEffect as s, useId as c, useImperativeHandle as l, useInsertionEffect as u, useLayoutEffect as d, useReducer as f, useRef as p, useState as m, useSyncExternalStore as ee } from "react";
2
- import { ANIM_HOLD as h, ANIM_HOLD_ATTR as te, animHoldKey as ne, appendParamsQuery as re, buildRoutePath as ie, computeBarRiding as ae, computeScreenFreeze as oe, computeScreenFreezeMode as g, consumeSelfInducedPop as _, createAnimHoldCoordinator as se, createBrowserHistoryDriver as v, createBrowserHistoryDriver as y, createDecorator as b, createHistoryStore as x, createNavigateStore as ce, createNavigationController as le, createPartTransition as S, createRawDecorator as ue, createRawPartTransition as C, createRawTransition as w, createRouterScope as T, createScreenSelector as E, createScreenStore as D, createStepController as O, createSwipeController as de, createTransition as k, createTransitionEngine as fe, createTransitionStore as A, decoratorMap as pe, eagerlyDecodeImages as j, ensureScopeHistorySync as M, enteringInitialStyle as me, getMatchedPathPattern as he, isDesktopBlink as ge, isOpaqueColor as _e, isServer as ve, markSelfInducedPop as N, matchesPathname as ye, observeBarHeight as be, observeViewportScrollHeight as xe, partTransitionMap as Se, readStepParams as Ce, registerTransitionDefinitions as we, releaseScopeHistorySync as Te, resolvePlatformProfile as Ee, resolveTransition as De, restLayerPromotionEnabled as Oe, seedRouterEntry as ke, sharedBarsMatch as Ae, startFlemoRuntime as je, subscribeStepParamsRestore as Me } from "@flemo/core";
3
- import { jsx as P, jsxs as Ne } from "react/jsx-runtime";
4
- import { flushSync as Pe } from "react-dom";
1
+ import e, { Activity as t, Children as n, createContext as r, createElement as i, isValidElement as a, useCallback as o, useContext as s, useEffect as c, useId as l, useImperativeHandle as u, useInsertionEffect as d, useLayoutEffect as f, useReducer as ee, useRef as p, useState as m, useSyncExternalStore as te } from "react";
2
+ import { ACTIVE_ATTR as ne, ANIM_HOLD as h, ANIM_HOLD_ATTR as g, LAYER_HOST_ATTR as re, LAYER_OWNER_ATTR as ie, LAYER_SLOT_ATTR as ae, OVERLAY_LEVEL as oe, STATUS_ATTR as _, TRANSITION_ATTR as v, animHoldKey as se, appendParamsQuery as y, attachMorph as ce, beginMorphSwipe as le, buildRoutePath as ue, computeBarRiding as de, computeScreenFreeze as fe, computeScreenFreezeMode as pe, consumeSelfInducedPop as b, createAnimHoldCoordinator as x, createBrowserHistoryDriver as S, createBrowserHistoryDriver as me, createDecorator as C, createHistoryStore as w, createMorphTransition as T, createNavigateStore as he, createNavigationController as E, createPartTransition as D, createRawDecorator as O, createRawMorphTransition as k, createRawPartTransition as ge, createRawTransition as _e, createRouterScope as A, createScreenSelector as ve, createScreenStore as ye, createStepController as be, createSwipeController as xe, createTransition as Se, createTransitionEngine as Ce, createTransitionStore as j, decoratorMap as we, eagerlyDecodeImages as Te, ensureScopeHistorySync as Ee, enteringInitialStyle as De, getMatchedPathPattern as M, isDesktopBlink as Oe, isOpaqueColor as ke, isServer as Ae, markSelfInducedPop as je, matchesPathname as Me, morphTransitionMap as Ne, observeBarHeight as Pe, observeViewportScrollHeight as Fe, partTransitionMap as Ie, readStepParams as Le, registerMorphLayer as Re, registerTransitionDefinitions as ze, releaseScopeHistorySync as Be, resolvePlatformProfile as Ve, resolveTransition as He, restLayerPromotionEnabled as Ue, seedRouterEntry as We, sharedBarsMatch as Ge, startFlemoRuntime as Ke, subscribeStepParamsRestore as qe } from "@flemo/core";
3
+ import { Fragment as Je, jsx as N, jsxs as Ye } from "react/jsx-runtime";
4
+ import { createPortal as Xe, flushSync as Ze } from "react-dom";
5
5
  //#region src/stores/StoreContext.ts
6
- var Fe = r(null);
6
+ var Qe = r(null);
7
7
  //#endregion
8
8
  //#region src/stores/useStores.ts
9
- function F() {
10
- let e = o(Fe);
9
+ function P() {
10
+ let e = s(Qe);
11
11
  if (!e) throw Error("flemo stores are missing. Render inside a <Router>.");
12
12
  return e;
13
13
  }
14
14
  //#endregion
15
15
  //#region src/history/HistoryListener.tsx
16
- function Ie() {
17
- let e = F();
18
- return s(() => (M(e), () => Te(e)), [e]), null;
16
+ function $e() {
17
+ let e = P();
18
+ return c(() => (Ee(e), () => Be(e)), [e]), null;
19
19
  }
20
20
  //#endregion
21
21
  //#region src/screen/ScreenContext.ts
22
- var I = r({
22
+ var et = r({
23
23
  id: "",
24
24
  isActive: !1,
25
25
  isRoot: !0,
@@ -29,20 +29,19 @@ var I = r({
29
29
  params: {},
30
30
  transitionName: "none",
31
31
  prevTransitionName: "none",
32
- layoutId: null,
33
32
  routePath: ""
34
33
  });
35
34
  //#endregion
36
35
  //#region src/screen/useScreen.ts
37
- function L() {
38
- return o(I);
36
+ function F() {
37
+ return s(et);
39
38
  }
40
39
  //#endregion
41
40
  //#region src/screen/ParamsProvider/ParamsContext.ts
42
- var Le = r({}), R = r(() => {});
41
+ var tt = r({}), I = r(() => {});
43
42
  //#endregion
44
43
  //#region src/screen/ParamsProvider/ParamsReducer.ts
45
- function z(e, t) {
44
+ function L(e, t) {
46
45
  switch (t.type) {
47
46
  case "SET": return t.params;
48
47
  default: return e;
@@ -50,10 +49,10 @@ function z(e, t) {
50
49
  }
51
50
  //#endregion
52
51
  //#region src/screen/ParamsProvider/ParamsProvider.tsx
53
- function B({ children: e }) {
54
- let { isActive: t, params: n } = L(), { driver: r } = F(), [i, a] = f(z, n);
55
- return s(() => {
56
- if (t) return Me(r, (e) => a({
52
+ function R({ children: e }) {
53
+ let { isActive: t, params: n } = F(), { driver: r } = P(), [i, a] = ee(L, n);
54
+ return c(() => {
55
+ if (t) return qe(r, (e) => a({
57
56
  type: "SET",
58
57
  params: e
59
58
  }));
@@ -61,108 +60,124 @@ function B({ children: e }) {
61
60
  t,
62
61
  a,
63
62
  r
64
- ]), /* @__PURE__ */ P(R.Provider, {
63
+ ]), /* @__PURE__ */ N(I.Provider, {
65
64
  value: a,
66
- children: /* @__PURE__ */ P(Le.Provider, {
65
+ children: /* @__PURE__ */ N(tt.Provider, {
67
66
  value: i,
68
67
  children: e
69
68
  })
70
69
  });
71
70
  }
72
71
  //#endregion
73
- //#region ../../node_modules/.pnpm/zustand@5.0.14_@types+react@19.2.18_react@19.2.8/node_modules/zustand/esm/react.mjs
74
- var V = (e) => e;
75
- function H(t, n = V) {
72
+ //#region ../../node_modules/.pnpm/zustand@5.0.15_@types+react@19.2.18_react@19.2.8/node_modules/zustand/esm/react.mjs
73
+ var z = (e) => e;
74
+ function B(t, n = z) {
76
75
  let r = e.useSyncExternalStore(t.subscribe, e.useCallback(() => n(t.getState()), [t, n]), e.useCallback(() => n(t.getInitialState()), [t, n]));
77
76
  return e.useDebugValue(r), r;
78
77
  }
79
78
  //#endregion
80
79
  //#region src/stores/useHistoryStore.ts
81
- function U(e) {
82
- return H(F().history, e);
80
+ function V(e) {
81
+ return B(P().history, e);
83
82
  }
84
83
  //#endregion
85
84
  //#region src/RouterIdContext.ts
86
- var Re = r(null);
85
+ var nt = r(null);
87
86
  //#endregion
88
87
  //#region src/renderer/Renderer.tsx
89
- function ze({ children: e }) {
90
- let t = U((e) => e.index), r = U((e) => e.histories), i = F(), a = o(I), s = o(Re);
91
- return E(r, t).map((t) => {
92
- let [r] = n.toArray(e).filter((e) => ye(e.props.path, t.pathname));
93
- return r ? /* @__PURE__ */ P(I.Provider, {
88
+ function rt({ children: e }) {
89
+ let t = V((e) => e.index), r = V((e) => e.histories), i = P(), a = s(et), o = s(nt);
90
+ return ve(r, t).map((t) => {
91
+ let [r] = n.toArray(e).filter((e) => Me(e.props.path, t.pathname));
92
+ return r ? /* @__PURE__ */ N(et.Provider, {
94
93
  value: {
95
94
  ...t,
96
95
  isPrev: t.isPrev || a.isPrev,
97
96
  navigateStore: i.navigate,
98
- routerId: s ?? void 0,
99
- routePath: he(r.props.path, t.pathname)
97
+ routerId: o ?? void 0,
98
+ routePath: M(r.props.path, t.pathname)
100
99
  },
101
- children: /* @__PURE__ */ P(B, { children: r })
100
+ children: /* @__PURE__ */ N(R, { children: r })
102
101
  }, t.id) : null;
103
102
  });
104
103
  }
105
104
  //#endregion
105
+ //#region src/screen/MorphLayer/MorphLayer.tsx
106
+ function it({ stores: e }) {
107
+ let t = p(null);
108
+ return f(() => (Re(e.navigate, t.current), () => Re(e.navigate, null)), [e.navigate]), /* @__PURE__ */ N("div", {
109
+ ref: t,
110
+ "data-flemo-morph-layer": "",
111
+ "aria-hidden": "true",
112
+ style: {
113
+ position: "absolute",
114
+ inset: 0,
115
+ pointerEvents: "none"
116
+ }
117
+ });
118
+ }
119
+ //#endregion
106
120
  //#region src/screen/ScreenViewportContext.ts
107
- var W = r({ contained: !1 });
108
- function Be() {
109
- return o(W);
121
+ var at = r({ contained: !1 });
122
+ function ot() {
123
+ return s(at);
110
124
  }
111
125
  //#endregion
112
126
  //#region src/transition/styles.ts
113
- function Ve(e, t, n = []) {
114
- u(() => we(e, t, n), [
127
+ function st(e, t, n = [], r = []) {
128
+ d(() => ze(e, t, n, r), [
115
129
  e,
116
130
  t,
117
- n
131
+ n,
132
+ r
118
133
  ]);
119
134
  }
120
135
  //#endregion
121
136
  //#region src/utils/devDiagnostics.ts
122
- function He() {
137
+ function ct() {
123
138
  return typeof process < "u" && process.env.NODE_ENV !== "production";
124
139
  }
125
- function Ue(e) {
126
- !He() || typeof console > "u" || console.error(`[flemo] ${e}`);
140
+ function lt(e) {
141
+ !ct() || typeof console > "u" || console.error(`[flemo] ${e}`);
127
142
  }
128
- function We(e) {
129
- if (He()) throw Error(`[flemo] ${e}`);
143
+ function ut(e) {
144
+ if (ct()) throw Error(`[flemo] ${e}`);
130
145
  }
131
146
  //#endregion
132
147
  //#region src/RouterDepthContext.ts
133
- var Ge = r(0), Ke = r(null), qe = [
148
+ var dt = r(0), ft = r(null), pt = [
134
149
  "current",
135
150
  "parent",
136
151
  "root",
137
152
  "nearest-owner"
138
- ], Je = (e) => qe.includes(e), Ye = (e) => {
153
+ ], mt = (e) => pt.includes(e), H = (e) => {
139
154
  let t = [];
140
155
  for (let n = e; n; n = n.parent) t.push(n);
141
156
  return t;
142
157
  };
143
- function G(e, t, n) {
144
- return e.routePaths.length === 0 || e.routePaths.some((e) => e === t) ? !0 : n ? ye(e.routePaths, n) : !1;
158
+ function U(e, t, n) {
159
+ return e.routePaths.length === 0 || e.routePaths.some((e) => e === t) ? !0 : n ? Me(e.routePaths, n) : !1;
145
160
  }
146
- function K(e) {
147
- return Ye(e).map((e, t) => {
161
+ function W(e) {
162
+ return H(e).map((e, t) => {
148
163
  let n = t === 0 ? "current" : `${t} level(s) up`;
149
164
  return e.name ? `"${e.name}" (${n})` : `<unnamed> (${n})`;
150
165
  }).join(", ");
151
166
  }
152
- function Xe({ from: e, target: t, path: n, pathname: r }) {
167
+ function ht({ from: e, target: t, path: n, pathname: r }) {
153
168
  if (t === void 0) return {
154
169
  node: e,
155
170
  message: null
156
171
  };
157
172
  let i = null, a = null;
158
- if (typeof t == "string" ? Je(t) ? i = t : a = t : "scope" in t ? i = t.scope : a = t.name, a !== null) {
159
- let t = Ye(e).find((e) => e.name === a);
173
+ if (typeof t == "string" ? mt(t) ? i = t : a = t : "scope" in t ? i = t.scope : a = t.name, a !== null) {
174
+ let t = H(e).find((e) => e.name === a);
160
175
  return t ? {
161
176
  node: t,
162
177
  message: null
163
178
  } : {
164
179
  node: null,
165
- message: `no <Router name="${a}"> encloses this call. Routers in scope: ${K(e)}.`
180
+ message: `no <Router name="${a}"> encloses this call. Routers in scope: ${W(e)}.`
166
181
  };
167
182
  }
168
183
  switch (i) {
@@ -174,7 +189,7 @@ function Xe({ from: e, target: t, path: n, pathname: r }) {
174
189
  message: "router: \"parent\" was requested, but the enclosing <Router> is the outermost one (it has no parent Router)."
175
190
  };
176
191
  case "root": {
177
- let t = Ye(e);
192
+ let t = H(e);
178
193
  return {
179
194
  node: t[t.length - 1],
180
195
  message: null
@@ -185,13 +200,13 @@ function Xe({ from: e, target: t, path: n, pathname: r }) {
185
200
  node: e,
186
201
  message: "router: \"nearest-owner\" needs a route to search for, and pop() carries none. Falling back to \"current\" — name the Router explicitly for a cross-Router pop."
187
202
  };
188
- let t = Ye(e).find((e) => G(e, n, r));
203
+ let t = H(e).find((e) => U(e, n, r));
189
204
  return t ? {
190
205
  node: t,
191
206
  message: null
192
207
  } : {
193
208
  node: null,
194
- message: `no <Router> in scope declares a <Route path="${n}">. Routers in scope: ${K(e)}.`
209
+ message: `no <Router> in scope declares a <Route path="${n}">. Routers in scope: ${W(e)}.`
195
210
  };
196
211
  }
197
212
  default: return {
@@ -200,137 +215,137 @@ function Xe({ from: e, target: t, path: n, pathname: r }) {
200
215
  };
201
216
  }
202
217
  }
203
- function Ze(e) {
218
+ function gt(e) {
204
219
  if (!e.name) return null;
205
220
  for (let t = e.parent; t; t = t.parent) if (t.name === e.name) return t;
206
221
  return null;
207
222
  }
208
223
  //#endregion
209
224
  //#region src/Slot.tsx
210
- var Qe = { contained: !0 };
211
- function q({ children: e, className: t, style: n }) {
212
- return /* @__PURE__ */ P("div", {
225
+ var G = { contained: !0 };
226
+ function K({ children: e, className: t, style: n }) {
227
+ return /* @__PURE__ */ N("div", {
213
228
  className: t,
214
229
  style: {
215
230
  position: "relative",
216
231
  overflow: "hidden",
217
232
  ...n
218
233
  },
219
- children: /* @__PURE__ */ P(W.Provider, {
220
- value: Qe,
221
- children: /* @__PURE__ */ P(ze, { children: e })
234
+ children: /* @__PURE__ */ N(at.Provider, {
235
+ value: G,
236
+ children: /* @__PURE__ */ N(rt, { children: e })
222
237
  })
223
238
  });
224
239
  }
225
240
  //#endregion
226
241
  //#region src/Router.tsx
227
- function J(e) {
242
+ function q(e) {
228
243
  let t = null;
229
244
  return n.forEach(e, (e) => {
230
- if (t || !i(e)) return;
231
- if (e.type === q) {
232
- t = n.toArray(e.props.children).filter(i);
245
+ if (t || !a(e)) return;
246
+ if (e.type === K) {
247
+ t = n.toArray(e.props.children).filter(a);
233
248
  return;
234
249
  }
235
250
  let r = e.props.children;
236
251
  if (r) {
237
- let e = J(r);
252
+ let e = q(r);
238
253
  e && (t = e);
239
254
  }
240
255
  }), t;
241
256
  }
242
- var $e = typeof window > "u" ? s : d, et = typeof window > "u" ? s : u, tt = [], nt = [], Y = [], rt = { contained: !0 };
243
- function X({ children: e, name: t, strictRoutes: r = !1, initPath: a = "/", defaultTransitionName: l = "cupertino", transitions: u = tt, decorators: d = nt, partTransitions: f = Y, history: p = "browser", createDriver: ee, className: h, style: te }) {
244
- let ne = o(Ge), re = c(), [ie, ae] = m(!1);
245
- s(() => ae(!0), []);
246
- let oe = ie ? re : null, g = ne > 0, _ = p === "memory", se = c(), v = o(I), b = o(Fe), x = g && v.id ? `_F_${b?.routerKey ?? ""}${v.id}_` : se, ce = J(e), le = ce !== null, S = (ce ?? n.toArray(e).filter(i)).flatMap((e) => e.props?.path ? [e.props.path].flat() : []), ue = g ? null : b, C = ue !== null, w = ee ?? y, [E] = m(() => _ ? null : w(C ? void 0 : x)), D = !g && !_ && !ve(), O = D && E ? E.readPathname() : a || "/", de = O.indexOf("?"), k = (de >= 0 ? O.slice(0, de) : O) || "/", fe = D ? window.location.search : de >= 0 ? O.slice(de) : "", [A] = m(() => T({
247
- routePaths: S,
248
- pathname: k,
249
- search: fe,
250
- defaultTransitionName: l,
251
- memory: _,
252
- browserDriver: E,
253
- hostedScope: ue,
254
- routerKey: C ? void 0 : x,
255
- zoneEntryId: g && !C && v.id || void 0,
256
- persistKey: g && !_ && !C ? x : void 0
257
+ var _t = typeof window > "u" ? c : f, vt = typeof window > "u" ? c : d, yt = [], J = [], bt = [], xt = [], Y = { contained: !0 };
258
+ function St({ children: e, name: t, strictRoutes: r = !1, initPath: i = "/", defaultTransitionName: o = "cupertino", transitions: u = yt, decorators: d = J, partTransitions: f = bt, morphTransitions: ee = xt, history: p = "browser", createDriver: te, className: ne, style: h }) {
259
+ let g = s(dt), re = l(), [ie, ae] = m(!1);
260
+ c(() => ae(!0), []);
261
+ let oe = ie ? re : null, _ = g > 0, v = p === "memory", se = l(), y = s(et), ce = s(Qe), le = _ && y.id ? `_F_${ce?.routerKey ?? ""}${y.id}_` : se, ue = q(e), de = ue !== null, fe = (ue ?? n.toArray(e).filter(a)).flatMap((e) => e.props?.path ? [e.props.path].flat() : []), pe = _ ? null : ce, b = pe !== null, x = te ?? me, [S] = m(() => v ? null : x(b ? void 0 : le)), C = !_ && !v && !Ae(), w = C && S ? S.readPathname() : i || "/", T = w.indexOf("?"), he = (T >= 0 ? w.slice(0, T) : w) || "/", E = C ? window.location.search : T >= 0 ? w.slice(T) : "", [D] = m(() => A({
262
+ routePaths: fe,
263
+ pathname: he,
264
+ search: E,
265
+ defaultTransitionName: o,
266
+ memory: v,
267
+ browserDriver: S,
268
+ hostedScope: pe,
269
+ routerKey: b ? void 0 : le,
270
+ zoneEntryId: _ && !b && y.id || void 0,
271
+ persistKey: _ && !v && !b ? le : void 0
257
272
  }));
258
- $e(() => {
259
- A.transition.getState().defaultTransitionName !== l && A.transition.setState({ defaultTransitionName: l });
273
+ _t(() => {
274
+ D.transition.getState().defaultTransitionName !== o && D.transition.setState({ defaultTransitionName: o });
260
275
  });
261
- let pe = o(Ke), [j] = m(() => ({
276
+ let O = s(ft), [k] = m(() => ({
262
277
  name: t,
263
- stores: A,
264
- routePaths: S,
278
+ stores: D,
279
+ routePaths: fe,
265
280
  strictRoutes: r,
266
- parent: pe,
267
- depth: ne
281
+ parent: O,
282
+ depth: g
268
283
  }));
269
- et(() => {
270
- j.name = t, j.stores = A, j.routePaths = S, j.strictRoutes = r, j.parent = pe;
271
- }), s(() => {
272
- Ze(j) && Ue(`duplicate <Router name="${j.name}">: an enclosing <Router> already uses that name, so \`router\` targets resolve to the nearer one. Give each nested Router a unique name.`);
273
- }, [j, t]), $e(() => (A.life.alive = !0, () => {
274
- A.life.alive = !1;
275
- }), [A]), Ve(u, d, f), s(() => je(), []), s(() => {
276
- _ || !E || ke({
277
- driver: E,
278
- routerKey: C ? null : x,
279
- nested: g && !C,
280
- seedPathname: k,
281
- defaultTransitionName: l,
282
- rootParams: A.history.getState().histories[0]?.params ?? {}
284
+ vt(() => {
285
+ k.name = t, k.stores = D, k.routePaths = fe, k.strictRoutes = r, k.parent = O;
286
+ }), c(() => {
287
+ gt(k) && lt(`duplicate <Router name="${k.name}">: an enclosing <Router> already uses that name, so \`router\` targets resolve to the nearer one. Give each nested Router a unique name.`);
288
+ }, [k, t]), _t(() => (D.life.alive = !0, () => {
289
+ D.life.alive = !1;
290
+ }), [D]), st(u, d, f, ee), c(() => Ke(), []), c(() => {
291
+ v || !S || We({
292
+ driver: S,
293
+ routerKey: b ? null : le,
294
+ nested: _ && !b,
295
+ seedPathname: he,
296
+ defaultTransitionName: o,
297
+ rootParams: D.history.getState().histories[0]?.params ?? {}
283
298
  });
284
299
  }, [
300
+ v,
301
+ b,
285
302
  _,
286
- C,
287
- g,
288
- x,
289
- k,
290
- l,
291
- A.history,
292
- E
303
+ le,
304
+ he,
305
+ o,
306
+ D.history,
307
+ S
293
308
  ]);
294
- let M = le ? e : /* @__PURE__ */ P(ze, { children: e }), me = /* @__PURE__ */ P(Re.Provider, {
309
+ let ge = de ? e : /* @__PURE__ */ N(rt, { children: e }), _e = /* @__PURE__ */ N(nt.Provider, {
295
310
  value: oe,
296
- children: /* @__PURE__ */ P(Ge.Provider, {
297
- value: ne + 1,
298
- children: /* @__PURE__ */ P(Ke.Provider, {
299
- value: j,
300
- children: /* @__PURE__ */ Ne(Fe.Provider, {
301
- value: A,
302
- children: [!_ && /* @__PURE__ */ P(Ie, {}), g ? /* @__PURE__ */ P(W.Provider, {
303
- value: rt,
304
- children: M
305
- }) : M]
311
+ children: /* @__PURE__ */ N(dt.Provider, {
312
+ value: g + 1,
313
+ children: /* @__PURE__ */ N(ft.Provider, {
314
+ value: k,
315
+ children: /* @__PURE__ */ Ye(Qe.Provider, {
316
+ value: D,
317
+ children: [!v && /* @__PURE__ */ N($e, {}), _ ? /* @__PURE__ */ N(at.Provider, {
318
+ value: Y,
319
+ children: ge
320
+ }) : ge]
306
321
  })
307
322
  })
308
323
  })
309
324
  });
310
- return g ? /* @__PURE__ */ P("div", {
311
- className: h,
325
+ return _ ? /* @__PURE__ */ Ye("div", {
326
+ className: ne,
312
327
  style: {
313
328
  position: "relative",
314
329
  overflow: "hidden",
315
- ...te
330
+ ...h
316
331
  },
317
- children: me
318
- }) : me;
332
+ children: [_e, /* @__PURE__ */ N(it, { stores: D })]
333
+ }) : /* @__PURE__ */ Ye(Je, { children: [_e, /* @__PURE__ */ N(it, { stores: D })] });
319
334
  }
320
335
  //#endregion
321
336
  //#region src/Route.tsx
322
- function it({ element: e }) {
337
+ function Ct({ element: e }) {
323
338
  return e;
324
339
  }
325
340
  //#endregion
326
341
  //#region src/utils/buildRoutePath.ts
327
- function at(e, t) {
328
- return ie(e, t);
342
+ function wt(e, t) {
343
+ return ue(e, t);
329
344
  }
330
345
  //#endregion
331
346
  //#region src/navigate/useNavigate.ts
332
- function ot(e) {
333
- let t = F(), n = o(Ke) ?? {
347
+ function Tt(e) {
348
+ let t = P(), n = s(ft) ?? {
334
349
  stores: t,
335
350
  routePaths: [],
336
351
  strictRoutes: !1,
@@ -339,24 +354,24 @@ function ot(e) {
339
354
  }, r = (t, r, i) => {
340
355
  let a = t ?? e?.router, o;
341
356
  if (r) try {
342
- o = at(r, i).toPathname;
357
+ o = wt(r, i).toPathname;
343
358
  } catch {
344
359
  o = void 0;
345
360
  }
346
- let { node: s, message: c } = Xe({
361
+ let { node: s, message: c } = ht({
347
362
  from: n,
348
363
  target: a,
349
364
  path: r,
350
365
  pathname: o
351
366
  });
352
- if (!s) return We(c ?? "the requested Router could not be resolved."), null;
353
- if (c && Ue(c), r && !G(s, r, o)) {
367
+ if (!s) return ut(c ?? "the requested Router could not be resolved."), null;
368
+ if (c && lt(c), r && !U(s, r, o)) {
354
369
  let e = `"${r}" is not declared by ${s.name ? `<Router name="${s.name}">` : "the target <Router>"}, so the navigation cannot mount a screen there. Declare a matching <Route>, target the Router that owns it, or use \`router: "nearest-owner"\`.`;
355
- a !== void 0 || s.strictRoutes ? We(e) : Ue(e);
370
+ a !== void 0 || s.strictRoutes ? ut(e) : lt(e);
356
371
  }
357
- return le({
372
+ return E({
358
373
  stores: s.stores,
359
- buildPathname: (e, t) => at(e, t),
374
+ buildPathname: (e, t) => wt(e, t),
360
375
  driver: s.stores.driver,
361
376
  markSelfInduced: s.stores.markSelfInduced
362
377
  });
@@ -378,26 +393,26 @@ function ot(e) {
378
393
  }
379
394
  //#endregion
380
395
  //#region src/navigate/usePathname.ts
381
- function st() {
382
- return U((e) => e.histories[e.pendingIndex]?.pathname ?? "/");
396
+ function Et() {
397
+ return V((e) => e.histories[e.pendingIndex]?.pathname ?? "/");
383
398
  }
384
399
  //#endregion
385
400
  //#region src/navigate/useStep.ts
386
- function ct() {
387
- let { routePath: e } = L(), t = F(), n = o(R), { driver: r, markSelfInduced: i } = t, [a, c] = m(null);
388
- s(() => {
389
- if (!e) return c(Ce(r.readState())), r.subscribe((e) => c(Ce(e.state)));
401
+ function Dt() {
402
+ let { routePath: e } = F(), t = P(), n = s(I), { driver: r, markSelfInduced: i } = t, [a, o] = m(null);
403
+ c(() => {
404
+ if (!e) return o(Le(r.readState())), r.subscribe((e) => o(Le(e.state)));
390
405
  }, [e, r]);
391
- let l = O({
406
+ let l = be({
392
407
  stores: t,
393
408
  driver: r,
394
409
  markSelfInduced: i,
395
- buildStepPathname: (t) => e ? at(e, t).pathname : re(r.readPathname(), t),
410
+ buildStepPathname: (t) => e ? wt(e, t).pathname : y(r.readPathname(), t),
396
411
  applyParams: (t) => {
397
412
  n({
398
413
  type: "SET",
399
414
  params: t
400
- }), e || c(t);
415
+ }), e || o(t);
401
416
  }
402
417
  });
403
418
  return {
@@ -409,53 +424,67 @@ function ct() {
409
424
  }
410
425
  //#endregion
411
426
  //#region src/screen/ParamsProvider/useParams.ts
412
- function lt() {
413
- return o(Le);
427
+ function Ot() {
428
+ return s(tt);
414
429
  }
415
430
  //#endregion
416
431
  //#region src/screen/ScreenFreeze.tsx
417
- var ut = 3e3;
418
- function dt({ freeze: e, children: n }) {
419
- let [r, i] = m(e), a = p(null);
420
- return !e && r && i(!1), s(() => {
421
- if (!(!e || r)) {
422
- if (!ge()) {
423
- i(!0);
432
+ var kt = 3e3;
433
+ function At({ freeze: e, mode: n = "deferred", children: r }) {
434
+ let [i, a] = m(e), o = p(null);
435
+ return !e && i && a(!1), c(() => {
436
+ if (!(!e || i)) {
437
+ if (n === "immediate" || !Oe()) {
438
+ a(!0);
424
439
  return;
425
440
  }
426
- return a.current = setTimeout(() => {
427
- a.current = null, i(!0);
428
- }, ut), () => {
429
- a.current !== null && (clearTimeout(a.current), a.current = null);
441
+ return o.current = setTimeout(() => {
442
+ o.current = null, a(!0);
443
+ }, kt), () => {
444
+ o.current !== null && (clearTimeout(o.current), o.current = null);
430
445
  };
431
446
  }
432
- }, [e, r]), /* @__PURE__ */ P(t, {
433
- mode: e && r ? "hidden" : "visible",
434
- children: n
447
+ }, [
448
+ e,
449
+ i,
450
+ n
451
+ ]), /* @__PURE__ */ N(t, {
452
+ mode: e && i ? "hidden" : "visible",
453
+ children: r
435
454
  });
436
455
  }
437
456
  //#endregion
457
+ //#region src/screen/LayerContext.ts
458
+ var jt = r(null);
459
+ function Mt() {
460
+ return s(jt);
461
+ }
462
+ var Nt = r(null);
463
+ function X() {
464
+ return s(Nt);
465
+ }
466
+ //#endregion
438
467
  //#region src/screen/scopeAnimHoldCoordinator.ts
439
- var ft = /* @__PURE__ */ new WeakMap();
440
- function pt(e) {
441
- let t = ft.get(e);
442
- return t || (t = se(), ft.set(e, t)), t;
468
+ var Pt = /* @__PURE__ */ new WeakMap();
469
+ function Ft(e) {
470
+ let t = Pt.get(e);
471
+ return t || (t = x(), Pt.set(e, t)), t;
443
472
  }
444
473
  //#endregion
445
474
  //#region src/stores/useNavigateStore.ts
446
- function mt(e) {
447
- return H(F().navigate, e);
475
+ function It(e) {
476
+ return B(P().navigate, e);
448
477
  }
449
478
  //#endregion
450
479
  //#region src/screen/ScreenDecorator.tsx
451
- function ht({ ref: e, style: t, ...n }) {
452
- let { isActive: r, isPrev: i, transitionName: a } = L(), o = p(null);
453
- l(e, () => o.current);
454
- let s = mt((e) => i ? "COMPLETED" : e.status), { decoratorName: c } = De(a), u = pe.get(c);
455
- return u ? /* @__PURE__ */ P("div", {
480
+ function Lt({ ref: e, style: t, ...n }) {
481
+ let { isActive: r, isPrev: i, transitionName: a } = F(), o = p(null);
482
+ u(e, () => o.current);
483
+ let s = It((e) => i ? "COMPLETED" : e.status), { decoratorName: c } = He(a), l = we.get(c);
484
+ return l ? /* @__PURE__ */ N("div", {
456
485
  ref: o,
457
486
  "data-flemo-decorator": !0,
458
- "data-flemo-decorator-name": u.name,
487
+ "data-flemo-decorator-name": l.name,
459
488
  "data-flemo-status": s,
460
489
  "data-flemo-active": r ? "true" : "false",
461
490
  style: {
@@ -465,7 +494,6 @@ function ht({ ref: e, style: t, ...n }) {
465
494
  width: "100%",
466
495
  height: "100%",
467
496
  pointerEvents: "none",
468
- zIndex: 1,
469
497
  ...t
470
498
  },
471
499
  ...n
@@ -473,9 +501,9 @@ function ht({ ref: e, style: t, ...n }) {
473
501
  }
474
502
  //#endregion
475
503
  //#region src/screen/useViewportScrollHeight.ts
476
- function gt() {
504
+ function Rt() {
477
505
  let [e, t] = m(0), [n, r] = m(0);
478
- return s(() => xe((e, n) => {
506
+ return c(() => Fe((e, n) => {
479
507
  r(n), t(e);
480
508
  }), []), {
481
509
  viewportScrollHeight: e,
@@ -484,355 +512,387 @@ function gt() {
484
512
  }
485
513
  //#endregion
486
514
  //#region src/utils/useHydrationSafeFlag.ts
487
- var Z = () => () => {}, _t = () => !1;
488
- function vt(e) {
489
- return ee(Z, e, _t);
515
+ var zt = () => () => {}, Bt = () => !1;
516
+ function Vt(e) {
517
+ return te(zt, e, Bt);
490
518
  }
491
519
  //#endregion
492
520
  //#region src/stores/useScreenStore.ts
493
- function Q(e) {
494
- return H(F().screen, e);
521
+ function Z(e) {
522
+ return B(P().screen, e);
495
523
  }
496
524
  //#endregion
497
525
  //#region src/screen/ScreenMotion.tsx
498
- function yt({ children: e, statusBarHeight: t, statusBarColor: n, systemNavigationBarHeight: r, systemNavigationBarColor: i, sharedTopBar: c, sharedTopBarId: l, sharedBottomBar: u, sharedBottomBarId: f, topBar: ee, bottomBar: re, hideStatusBar: ie, hideSystemNavigationBar: g, backgroundColor: _ = "white", contentScrollable: se = !0, ...v }) {
499
- let { id: y, isActive: b, isRoot: x, isPrev: ce, zIndex: le, transitionName: S, prevTransitionName: ue } = L(), { contained: C } = Be(), w = C ? "absolute" : "fixed", T = F(), E = o(Re), D = U((e) => e.index), O = U((e) => e.histories), k = b || le === D - 1, A = mt((e) => k ? e.status : "COMPLETED"), M = Q((e) => e.dragStatus), he = Q((e) => e.replaceTransitionStatus), ge = T.screen.getState().setDragStatus, ve = T.screen.getState().setReplaceTransitionStatus, N = b ? O[D - 1]?.id : O[D]?.id, ye = Q((e) => N ? e.sharedBars[N] : void 0), xe = Q((e) => N ? e.sharedBarMetadata[N] : void 0), Se = Q((e) => N ? e.screenSurfaces[N] : void 0), Ce = p(null);
500
- Ce.current ||= fe({
501
- getTransitionTaskId: () => T.navigate.getState().transitionTaskId,
502
- setDragStatus: ge,
503
- setReplaceTransitionStatus: ve
526
+ function Ht({ children: e, statusBarHeight: t, statusBarColor: n, systemNavigationBarHeight: r, systemNavigationBarColor: i, sharedTopBar: a, sharedTopBarId: l, sharedBottomBar: u, sharedBottomBarId: d, topBar: ee, bottomBar: te, hideStatusBar: ie, hideSystemNavigationBar: ae, backgroundColor: y = "white", contentScrollable: ce = !0, paintHidden: ue = !1, ...pe }) {
527
+ let { id: b, isActive: x, isRoot: S, isPrev: me, zIndex: C, transitionName: w, prevTransitionName: T } = F(), { contained: he } = ot(), E = he ? "absolute" : "fixed", D = P(), O = s(nt), k = V((e) => e.index), ge = V((e) => e.histories), _e = x || C === k - 1, A = It((e) => _e ? e.status : "COMPLETED"), ve = Z((e) => e.dragStatus), ye = Z((e) => e.replaceTransitionStatus), be = D.screen.getState().setDragStatus, Se = D.screen.getState().setReplaceTransitionStatus, j = x ? ge[k - 1]?.id : ge[k]?.id, Ee = Z((e) => j ? e.sharedBars[j] : void 0), M = Z((e) => j ? e.sharedBarMetadata[j] : void 0), Oe = Z((e) => j ? e.screenSurfaces[j] : void 0), Ae = p(null);
528
+ Ae.current ||= Ce({
529
+ getTransitionTaskId: () => D.navigate.getState().transitionTaskId,
530
+ setDragStatus: be,
531
+ setReplaceTransitionStatus: Se
504
532
  });
505
- let we = Ce.current, Te = p(null);
506
- Te.current ||= pt(T.navigate);
507
- let ke = De(S), { initial: je, swipeDirection: Me, decoratorName: Fe } = ke, Ie = pe.get(Fe), { viewportScrollHeight: I } = gt(), Le = I > 0, R = !!c, z = !!u, B = R ? `${typeof l}:${String(l)}` : null, V = z ? `${typeof f}:${String(f)}` : null, [H, ze] = m({
508
- key: B,
533
+ let je = Ae.current, Me = p(null);
534
+ Me.current ||= Ft(D.navigate);
535
+ let Ne = He(w), { initial: Fe, swipeDirection: Ie, decoratorName: Le } = Ne, Re = we.get(Le), { viewportScrollHeight: ze } = Rt(), Be = ze > 0, [We, Ke] = m(null), qe = Mt(), Je = qe ?? We, Qe = p(/* @__PURE__ */ new Set()), [$e, et] = m(!1), tt = o((e) => {
536
+ let t = Qe.current;
537
+ e ? t.add(e) : t.clear(), et(t.size > 0);
538
+ }, []), I = !!a, L = !!u, R = I ? `${typeof l}:${String(l)}` : null, z = L ? `${typeof d}:${String(d)}` : null, [B, rt] = m({
539
+ key: R,
509
540
  height: 0
510
- }), [W, Ve] = m({
511
- key: V,
541
+ }), [it, at] = m({
542
+ key: z,
512
543
  height: 0
513
- }), He = p(H), Ue = p(W), We = H.key === B ? H.height : 0, Ge = W.key === V ? W.height : 0, Ke = Ae(R ? { id: l } : void 0, xe?.topBar) ? xe?.topBar?.height ?? 0 : 0, qe = Ae(z ? { id: f } : void 0, xe?.bottomBar) ? xe?.bottomBar?.height ?? 0 : 0, Je = We || Ke, Ye = Ge || qe, G = p(null), K = p(null), Xe = p(null), Ze = p(null), Qe = p(null), q = p(null), J = p(null), $e = a((e) => {
514
- e <= 0 || B === null || (Ze.current && (Ze.current.style.minHeight = `${e}px`), He.current = {
515
- key: B,
544
+ }), st = p(B), ct = p(it), lt = B.key === R ? B.height : 0, ut = it.key === z ? it.height : 0, dt = Ge(I ? { id: l } : void 0, M?.topBar) ? M?.topBar?.height ?? 0 : 0, ft = Ge(L ? { id: d } : void 0, M?.bottomBar) ? M?.bottomBar?.height ?? 0 : 0, pt = lt || dt, mt = ut || ft, H = p(null), U = p(null), W = p(null), ht = p(null), gt = p(null), G = p(null), K = p(null), q = o((e) => {
545
+ e <= 0 || R === null || (ht.current && (ht.current.style.minHeight = `${e}px`), st.current = {
546
+ key: R,
516
547
  height: e
517
- }, ze((t) => t.key === B && t.height === e ? t : {
518
- key: B,
548
+ }, rt((t) => t.key === R && t.height === e ? t : {
549
+ key: R,
519
550
  height: e
520
- }), T.screen.getState().updateSharedBarHeight(y, "topBar", e));
551
+ }), D.screen.getState().updateSharedBarHeight(b, "topBar", e));
521
552
  }, [
522
- y,
523
- T.screen,
524
- B
525
- ]), et = a((e) => {
526
- e <= 0 || V === null || (Qe.current && (Qe.current.style.minHeight = `${e}px`), Ue.current = {
527
- key: V,
553
+ b,
554
+ D.screen,
555
+ R
556
+ ]), _t = o((e) => {
557
+ e <= 0 || z === null || (gt.current && (gt.current.style.minHeight = `${e}px`), ct.current = {
558
+ key: z,
528
559
  height: e
529
- }, Ve((t) => t.key === V && t.height === e ? t : {
530
- key: V,
560
+ }, at((t) => t.key === z && t.height === e ? t : {
561
+ key: z,
531
562
  height: e
532
- }), T.screen.getState().updateSharedBarHeight(y, "bottomBar", e));
563
+ }), D.screen.getState().updateSharedBarHeight(b, "bottomBar", e));
533
564
  }, [
534
- V,
535
- y,
536
- T.screen
537
- ]), tt = a((e) => {
538
- q.current = e, e?.offsetHeight && $e(e.offsetHeight);
539
- }, [$e]), nt = a((e) => {
540
- J.current = e, e?.offsetHeight && et(e.offsetHeight);
541
- }, [et]), Y = p({
542
- transition: ke,
543
- decorator: Ie,
544
- hasSharedTopBar: !!c,
565
+ z,
566
+ b,
567
+ D.screen
568
+ ]), vt = o((e) => {
569
+ G.current = e, e?.offsetHeight && q(e.offsetHeight);
570
+ }, [q]), yt = o((e) => {
571
+ K.current = e, e?.offsetHeight && _t(e.offsetHeight);
572
+ }, [_t]), J = p({
573
+ transition: Ne,
574
+ decorator: Re,
575
+ hasSharedTopBar: !!a,
545
576
  hasSharedBottomBar: !!u,
546
577
  sharedTopBarId: l,
547
- sharedBottomBarId: f,
548
- viewportScrollHeight: I,
549
- isRoot: x,
550
- isActive: b,
578
+ sharedBottomBarId: d,
579
+ viewportScrollHeight: ze,
580
+ isRoot: S,
581
+ isActive: x,
551
582
  status: A,
552
- dragStatus: M,
553
- index: D
583
+ dragStatus: ve,
584
+ index: k
554
585
  });
555
- Y.current = {
556
- transition: ke,
557
- decorator: Ie,
558
- hasSharedTopBar: !!c,
586
+ J.current = {
587
+ transition: Ne,
588
+ decorator: Re,
589
+ hasSharedTopBar: !!a,
559
590
  hasSharedBottomBar: !!u,
560
591
  sharedTopBarId: l,
561
- sharedBottomBarId: f,
562
- viewportScrollHeight: I,
563
- isRoot: x,
564
- isActive: b,
592
+ sharedBottomBarId: d,
593
+ viewportScrollHeight: ze,
594
+ isRoot: S,
595
+ isActive: x,
565
596
  status: A,
566
- dragStatus: M,
567
- index: D
597
+ dragStatus: ve,
598
+ index: k
568
599
  };
569
- let rt = p(null);
570
- rt.current ||= de({
571
- getTransition: () => Y.current.transition,
572
- getDecorator: () => Y.current.decorator,
600
+ let bt = p(null), xt = p(null);
601
+ bt.current ||= xe({
602
+ getTransition: () => J.current.transition,
603
+ getDecorator: () => J.current.decorator,
573
604
  getElements: () => ({
574
- scope: K.current,
575
- screenContainer: G.current,
576
- decorator: Xe.current,
577
- sharedTopBar: q.current,
578
- sharedBottomBar: J.current
605
+ scope: U.current,
606
+ screenContainer: H.current,
607
+ decorator: W.current,
608
+ sharedTopBar: G.current,
609
+ sharedBottomBar: K.current
579
610
  }),
580
- hasSharedTopBar: () => Y.current.hasSharedTopBar,
581
- hasSharedBottomBar: () => Y.current.hasSharedBottomBar,
582
- getSharedTopBarId: () => Y.current.sharedTopBarId,
583
- getSharedBottomBarId: () => Y.current.sharedBottomBarId,
584
- getViewportScrollHeight: () => Y.current.viewportScrollHeight,
611
+ hasSharedTopBar: () => J.current.hasSharedTopBar,
612
+ hasSharedBottomBar: () => J.current.hasSharedBottomBar,
613
+ getSharedTopBarId: () => J.current.sharedTopBarId,
614
+ getSharedBottomBarId: () => J.current.sharedBottomBarId,
615
+ getViewportScrollHeight: () => J.current.viewportScrollHeight,
585
616
  isReadyForDrag: () => {
586
- let e = Y.current;
617
+ let e = J.current;
587
618
  return !e.isRoot && e.isActive && e.status === "COMPLETED" && e.dragStatus === "IDLE" && !!e.transition.swipeDirection && e.viewportScrollHeight < 10;
588
619
  },
589
620
  getPartnerBars: () => {
590
- let e = Y.current, t = T.history.getState().histories, n = e.isActive ? t[e.index - 1]?.id : t[e.index]?.id;
591
- return n ? T.screen.getState().sharedBars[n] : void 0;
621
+ let e = J.current, t = D.history.getState().histories, n = e.isActive ? t[e.index - 1]?.id : t[e.index]?.id;
622
+ return n ? D.screen.getState().sharedBars[n] : void 0;
592
623
  },
593
624
  getPartnerBarMetadata: () => {
594
- let e = Y.current, t = T.history.getState().histories, n = e.isActive ? t[e.index - 1]?.id : t[e.index]?.id;
595
- return n ? T.screen.getState().sharedBarMetadata[n] : void 0;
625
+ let e = J.current, t = D.history.getState().histories, n = e.isActive ? t[e.index - 1]?.id : t[e.index]?.id;
626
+ return n ? D.screen.getState().sharedBarMetadata[n] : void 0;
627
+ },
628
+ setDragStatus: be,
629
+ back: () => D.driver.back(),
630
+ onDragStart: () => {
631
+ xt.current = le(D.navigate, "POPPING");
632
+ },
633
+ onDragProgress: (e) => {
634
+ xt.current?.scrub(e);
596
635
  },
597
- setDragStatus: ge,
598
- back: () => window.history.back()
636
+ onDragSettle: (e, t) => {
637
+ xt.current?.settle(e, t), xt.current = null;
638
+ }
599
639
  });
600
- let X = rt.current, it = (e) => X.pointerDown(e.nativeEvent), at = (e) => X.pointerMove(e.nativeEvent), ot = (e) => X.pointerUp(e.nativeEvent), st = (e) => X.pointerCancel(e.nativeEvent), ct = (e) => X.lostPointerCapture(e.nativeEvent), lt = (e) => {
640
+ let Y = bt.current, St = (e) => Y.pointerDown(e.nativeEvent), Ct = (e) => Y.pointerMove(e.nativeEvent), wt = (e) => Y.pointerUp(e.nativeEvent), Tt = (e) => Y.pointerCancel(e.nativeEvent), Et = (e) => Y.lostPointerCapture(e.nativeEvent), Dt = (e) => {
601
641
  (A === "PUSHING" || A === "REPLACING") && (e.preventDefault(), e.stopPropagation());
602
642
  };
603
- s(() => {
604
- j(K.current);
605
- }, []), s(() => {
606
- let e = K.current;
643
+ c(() => {
644
+ Te(U.current);
645
+ }, []), c(() => {
646
+ let e = U.current;
607
647
  if (!e) return;
608
648
  let t = (e) => {
609
- X.shouldPreventTouch() && e.preventDefault();
649
+ Y.shouldPreventTouch() && e.preventDefault();
610
650
  };
611
651
  return e.addEventListener("touchmove", t, { passive: !1 }), () => {
612
- e.removeEventListener("touchmove", t), X.abandon();
652
+ e.removeEventListener("touchmove", t), Y.abandon();
613
653
  };
614
- }, [X]), d(() => {
615
- let { registerSharedBars: e, unregisterSharedBars: t } = T.screen.getState(), n = He.current, r = Ue.current;
616
- return e(y, {
617
- topBar: R,
618
- bottomBar: z
654
+ }, [Y]), f(() => {
655
+ let { registerSharedBars: e, unregisterSharedBars: t } = D.screen.getState(), n = st.current, r = ct.current;
656
+ return e(b, {
657
+ topBar: I,
658
+ bottomBar: L
619
659
  }, {
620
- topBar: R ? {
660
+ topBar: I ? {
621
661
  id: l,
622
- height: n.key === B ? n.height : void 0
662
+ height: n.key === R ? n.height : void 0
623
663
  } : void 0,
624
- bottomBar: z ? {
625
- id: f,
626
- height: r.key === V ? r.height : void 0
664
+ bottomBar: L ? {
665
+ id: d,
666
+ height: r.key === z ? r.height : void 0
627
667
  } : void 0
628
- }), () => t(y);
668
+ }), () => t(b);
629
669
  }, [
630
- V,
631
670
  z,
632
- R,
633
- y,
634
- f,
671
+ L,
672
+ I,
673
+ b,
674
+ d,
635
675
  l,
636
- T.screen,
637
- B
638
- ]), d(() => {
639
- let e = q.current;
640
- if (e) return be(e, $e);
641
- }, [$e, c]), d(() => {
642
- let e = J.current;
643
- if (e) return be(e, et);
644
- }, [et, u]), d(() => {
676
+ D.screen,
677
+ R
678
+ ]), f(() => {
679
+ let e = G.current;
680
+ if (e) return Pe(e, q);
681
+ }, [q, I]), f(() => {
645
682
  let e = K.current;
683
+ if (e) return Pe(e, _t);
684
+ }, [_t, L]), f(() => {
685
+ let e = U.current;
646
686
  if (!e) return;
647
- let { registerScreenSurface: t, unregisterScreenSurface: n } = T.screen.getState();
648
- return t(y, { opaqueBackground: _e(getComputedStyle(e).backgroundColor) }), () => n(y);
687
+ let { registerScreenSurface: t, unregisterScreenSurface: n } = D.screen.getState();
688
+ return t(b, { opaqueBackground: ke(getComputedStyle(e).backgroundColor) }), () => n(b);
649
689
  }, [
690
+ b,
650
691
  y,
651
- _,
652
692
  A,
653
- T.screen
693
+ D.screen
654
694
  ]);
655
- let ut = k, { app: dt, nav: ft } = ae({
695
+ let Ot = _e, { app: kt, nav: At } = de({
656
696
  status: A,
657
- isTopOrTopPrev: ut,
658
- hasTopBar: R,
659
- hasNavBar: z,
697
+ isTopOrTopPrev: Ot,
698
+ hasTopBar: I,
699
+ hasNavBar: L,
660
700
  topBarId: l,
661
- bottomBarId: f,
662
- partnerBars: ye,
663
- partnerMetadata: xe
664
- }), Z = ne({
701
+ bottomBarId: d,
702
+ partnerBars: Ee,
703
+ partnerMetadata: M
704
+ }), X = se({
665
705
  status: A,
666
- isTopOrTopPrev: ut,
667
- transitionName: S
668
- }), _t = oe({
669
- isActive: b,
670
- isPrev: ce,
671
- zIndex: le,
672
- index: D,
706
+ isTopOrTopPrev: Ot,
707
+ transitionName: w
708
+ }), Pt = fe({
709
+ isActive: x,
710
+ isPrev: me,
711
+ zIndex: C,
712
+ index: k,
673
713
  status: A,
674
- dragStatus: M,
675
- replaceTransitionStatus: he
676
- }), yt = p(_t), bt = p(Z !== null && _t), xt = p(null), [St, Ct] = m({
677
- key: Z,
678
- released: Z === null
714
+ dragStatus: ve,
715
+ replaceTransitionStatus: ye
716
+ }), zt = p(Pt), Bt = p(X !== null && Pt), Ht = p(null), [Ut, Wt] = m({
717
+ key: X,
718
+ released: X === null
679
719
  });
680
- St.key !== Z && (Ct({
681
- key: Z,
682
- released: Z === null
683
- }), xt.current = null, bt.current = Z !== null && yt.current), yt.current = _t;
684
- let wt = Z !== null && St.key === Z && !St.released && xt.current !== Z, $ = wt ? !b && Se?.opaqueBackground ? h.PARK : b && (A === "PUSHING" || A === "REPLACING") && Se?.opaqueBackground ? Ee().parkOver ? h.PARK_OVER : h.PARK_UNDER : h.HELD : h.RELEASED, Tt = vt(Oe);
685
- d(() => we.driveScreenLifecycle({
720
+ Ut.key !== X && (Wt({
721
+ key: X,
722
+ released: X === null
723
+ }), Ht.current = null, Bt.current = X !== null && zt.current), zt.current = Pt;
724
+ let Q = X !== null && Ut.key === X && !Ut.released && Ht.current !== X, $ = Q ? !x && Oe?.opaqueBackground ? h.PARK : x && (A === "PUSHING" || A === "REPLACING") && Oe?.opaqueBackground ? Ve().parkOver ? h.PARK_OVER : h.PARK_UNDER : h.HELD : h.RELEASED, Gt = {
725
+ zIndex: C,
726
+ paintHidden: ue,
727
+ transitionName: w,
728
+ status: A,
729
+ isActive: x,
730
+ animHold: $,
731
+ rendersHost: !qe,
732
+ screenId: b,
733
+ registerSlot: tt
734
+ }, Kt = Vt(Ue);
735
+ f(() => je.driveScreenLifecycle({
686
736
  getElements: () => ({
687
- scope: K.current,
688
- decorator: Xe.current,
689
- bars: [q.current, J.current]
737
+ scope: U.current,
738
+ decorator: W.current,
739
+ bars: [G.current, K.current],
740
+ screenContainer: H.current
690
741
  }),
691
- transitionName: S,
692
- prevTransitionName: ue,
742
+ transitionName: w,
743
+ prevTransitionName: T,
693
744
  status: A,
694
- isActive: b,
695
- animHoldReleased: !wt
745
+ isActive: x,
746
+ animHoldReleased: !Q
696
747
  }), [
697
- we,
748
+ je,
698
749
  A,
699
- b,
700
- ue,
701
- S,
702
- wt
703
- ]), s(() => {
704
- if (!wt || Z === null) return;
705
- let e = Z, t = T.navigate.getState().transitionTaskId, n = t === null ? e : `${e}#${t}`;
706
- return Te.current.join(n, () => {
707
- let t = Y.current.transition.driver === "native", n = Ee({ authoredNativeDriver: t }).atomicReleaseFlip;
750
+ x,
751
+ T,
752
+ w,
753
+ Q
754
+ ]), c(() => {
755
+ if (!Q || X === null) return;
756
+ let e = X, t = D.navigate.getState().transitionTaskId, n = t === null ? e : `${e}#${t}`;
757
+ return Me.current.join(n, () => {
758
+ let t = J.current.transition.driver === "native", n = Ve({ authoredNativeDriver: t }).atomicReleaseFlip;
708
759
  if (n) {
709
760
  for (let e of [
761
+ U.current,
762
+ G.current,
710
763
  K.current,
711
- q.current,
712
- J.current,
713
- Xe.current
714
- ]) e?.isConnected && e.getAttribute(te) !== null && e.setAttribute(te, h.RELEASED);
715
- G.current && (G.current.style.zIndex = ""), xt.current = e;
764
+ W.current
765
+ ]) e?.isConnected && e.getAttribute(g) !== null && e.setAttribute(g, h.RELEASED);
766
+ H.current && (H.current.style.zIndex = String(C + 1)), Ht.current = e;
716
767
  }
717
768
  {
718
- let t = () => Ct((t) => t.key === e && !t.released ? {
769
+ let t = () => Wt((t) => t.key === e && !t.released ? {
719
770
  key: e,
720
771
  released: !0
721
772
  } : t);
722
- n && Ee().deferReleaseCommit && typeof requestAnimationFrame == "function" ? requestAnimationFrame(() => t()) : Pe(t);
773
+ n && Ve().deferReleaseCommit && typeof requestAnimationFrame == "function" ? requestAnimationFrame(() => t()) : Ze(t);
723
774
  }
724
775
  }, {
725
- scope: K.current,
726
- decodeWait: bt.current,
727
- contentSettle: Ee().renderSettleGate && (b && A === "PUSHING" || A === "POPPING") ? {
776
+ scope: U.current,
777
+ decodeWait: Bt.current,
778
+ contentSettle: Ve().renderSettleGate && (x && A === "PUSHING" || A === "POPPING") ? {
728
779
  firstWaitMs: 120,
729
780
  capMs: 700,
730
781
  graceMs: 60,
731
- minNodes: b ? 30 : 1,
782
+ minNodes: x ? 30 : 1,
732
783
  renderSettleOnly: !0
733
784
  } : void 0
734
785
  });
735
786
  }, [
736
- wt,
737
- Z,
787
+ Q,
788
+ X,
738
789
  $,
739
- b,
790
+ x,
740
791
  A,
741
- T.navigate
792
+ D.navigate,
793
+ C
742
794
  ]);
743
- let Et = $ === h.PARK_UNDER || $ === h.PARK_OVER ? {} : me({
744
- initial: je,
745
- isActive: b,
795
+ let qt = $ === h.PARK_UNDER || $ === h.PARK_OVER ? {} : De({
796
+ initial: Fe,
797
+ isActive: x,
746
798
  status: A
747
799
  });
748
- return /* @__PURE__ */ Ne("div", {
749
- ref: G,
750
- onClickCapture: lt,
800
+ return /* @__PURE__ */ Ye("div", {
801
+ ref: H,
802
+ onClickCapture: Dt,
751
803
  style: {
752
- position: w,
804
+ position: E,
753
805
  top: 0,
754
806
  left: 0,
755
807
  width: "100%",
756
808
  height: "100%",
757
809
  display: "flex",
758
- zIndex: $ === h.PARK_UNDER ? -1 : void 0,
759
- contain: "layout style",
810
+ visibility: ue ? "hidden" : void 0,
811
+ zIndex: $ === h.PARK_UNDER ? C - 1 : C + 1,
812
+ isolation: "isolate",
813
+ contain: "style",
760
814
  flexDirection: "column",
761
815
  boxSizing: "border-box",
762
816
  overscrollBehavior: "contain"
763
817
  },
764
818
  children: [
765
- /* @__PURE__ */ Ne("div", {
766
- ref: K,
767
- ...v,
768
- onPointerDown: it,
769
- onPointerMove: at,
770
- onPointerUp: ot,
771
- onPointerCancel: st,
772
- onLostPointerCapture: ct,
773
- "data-flemo-screen": !0,
774
- "data-flemo-router": E ?? void 0,
775
- "data-flemo-transition": S,
819
+ /* @__PURE__ */ Ye("div", {
820
+ ref: U,
821
+ ...pe,
822
+ onPointerDown: St,
823
+ onPointerMove: Ct,
824
+ onPointerUp: wt,
825
+ onPointerCancel: Tt,
826
+ onLostPointerCapture: Et,
827
+ "data-flemo-screen": b,
828
+ "data-flemo-router": O ?? void 0,
829
+ "data-flemo-transition": w,
776
830
  "data-flemo-status": A,
777
- "data-flemo-active": b ? "true" : "false",
831
+ "data-flemo-active": x ? "true" : "false",
778
832
  "data-flemo-anim-hold": $,
779
833
  style: {
780
834
  display: "flex",
781
835
  flexDirection: "column",
782
836
  height: "100%",
783
- backgroundColor: _,
784
- overflowY: se ? void 0 : "auto",
785
- touchAction: Me === "x" ? "pan-y" : Me === "y" ? "pan-x" : "auto",
786
- ...Tt && le === D && !C ? { willChange: "transform" } : {},
787
- ...Et,
788
- ...v.style
837
+ backgroundColor: y,
838
+ overflowY: ce ? void 0 : "auto",
839
+ touchAction: Ie === "x" ? "pan-y" : Ie === "y" ? "pan-x" : "auto",
840
+ ...Kt && C === k && !he ? { willChange: "transform" } : {},
841
+ ...qt,
842
+ ...pe.style
789
843
  },
790
844
  children: [
791
- !ie && t && /* @__PURE__ */ P("div", {
845
+ !ie && t && /* @__PURE__ */ N("div", {
792
846
  style: { minHeight: t },
793
- children: /* @__PURE__ */ P("div", { style: {
794
- position: w,
847
+ children: /* @__PURE__ */ N("div", { style: {
848
+ position: E,
795
849
  top: 0,
796
850
  width: "100%",
797
851
  minHeight: t,
798
852
  backgroundColor: n
799
853
  } })
800
854
  }),
801
- c && /* @__PURE__ */ P("div", {
802
- ref: Ze,
855
+ a && /* @__PURE__ */ N("div", {
856
+ ref: ht,
803
857
  "data-flemo-bar-spacer": "app",
804
858
  style: {
805
859
  width: "100%",
806
- minHeight: Je
860
+ minHeight: pt
807
861
  }
808
862
  }),
809
863
  ee,
810
- /* @__PURE__ */ P("div", {
864
+ /* @__PURE__ */ N("div", {
811
865
  style: {
812
866
  display: "flex",
813
867
  flexDirection: "column",
814
868
  flexGrow: 1,
815
- overflowY: se ? "auto" : void 0
869
+ overflowY: ce ? "auto" : void 0
816
870
  },
817
- children: e
871
+ children: /* @__PURE__ */ N(jt.Provider, {
872
+ value: Je,
873
+ children: /* @__PURE__ */ N(Nt.Provider, {
874
+ value: Gt,
875
+ children: e
876
+ })
877
+ })
818
878
  }),
819
- re,
820
- u && /* @__PURE__ */ P("div", {
821
- ref: Qe,
879
+ te,
880
+ u && /* @__PURE__ */ N("div", {
881
+ ref: gt,
822
882
  "data-flemo-bar-spacer": "nav",
823
883
  style: {
824
- display: Le ? "none" : void 0,
884
+ display: Be ? "none" : void 0,
825
885
  width: "100%",
826
- minHeight: Ye
886
+ minHeight: mt
827
887
  }
828
888
  }),
829
- !g && r && /* @__PURE__ */ P("div", {
889
+ !ae && r && /* @__PURE__ */ N("div", {
830
890
  style: {
831
- display: Le ? "none" : void 0,
891
+ display: Be ? "none" : void 0,
832
892
  minHeight: r
833
893
  },
834
- children: /* @__PURE__ */ P("div", { style: {
835
- position: w,
894
+ children: /* @__PURE__ */ N("div", { style: {
895
+ position: E,
836
896
  bottom: 0,
837
897
  width: "100%",
838
898
  minHeight: r,
@@ -841,88 +901,106 @@ function yt({ children: e, statusBarHeight: t, statusBarColor: n, systemNavigati
841
901
  })
842
902
  ]
843
903
  }),
844
- c && /* @__PURE__ */ P("div", {
845
- ref: tt,
904
+ a && /* @__PURE__ */ N("div", {
905
+ ref: vt,
846
906
  "data-flemo-bar": "app",
847
907
  "data-flemo-bar-id": l,
848
908
  "data-flemo-bar-id-type": l === void 0 ? void 0 : typeof l,
849
- "data-flemo-router": E ?? void 0,
850
- "data-flemo-bar-transition": S,
909
+ "data-flemo-router": O ?? void 0,
910
+ "data-flemo-bar-transition": w,
851
911
  "data-flemo-bar-status": A,
852
- "data-flemo-bar-active": b ? "true" : "false",
853
- "data-flemo-bar-riding": dt ? "true" : "false",
912
+ "data-flemo-bar-active": x ? "true" : "false",
913
+ "data-flemo-bar-riding": kt ? "true" : "false",
854
914
  "data-flemo-anim-hold": $,
855
915
  style: {
856
- position: w,
916
+ position: E,
857
917
  top: ie ? 0 : t,
858
918
  left: 0,
859
- width: "100%",
860
- zIndex: 1
919
+ width: "100%"
861
920
  },
862
- children: c
921
+ children: a
863
922
  }),
864
- u && /* @__PURE__ */ P("div", {
865
- ref: nt,
923
+ u && /* @__PURE__ */ N("div", {
924
+ ref: yt,
866
925
  "data-flemo-bar": "nav",
867
- "data-flemo-bar-id": f,
868
- "data-flemo-bar-id-type": f === void 0 ? void 0 : typeof f,
869
- "data-flemo-router": E ?? void 0,
870
- "data-flemo-bar-transition": S,
926
+ "data-flemo-bar-id": d,
927
+ "data-flemo-bar-id-type": d === void 0 ? void 0 : typeof d,
928
+ "data-flemo-router": O ?? void 0,
929
+ "data-flemo-bar-transition": w,
871
930
  "data-flemo-bar-status": A,
872
- "data-flemo-bar-active": b ? "true" : "false",
873
- "data-flemo-bar-riding": ft ? "true" : "false",
931
+ "data-flemo-bar-active": x ? "true" : "false",
932
+ "data-flemo-bar-riding": At ? "true" : "false",
874
933
  "data-flemo-anim-hold": $,
875
934
  style: {
876
- display: Le ? "none" : void 0,
877
- position: w,
878
- bottom: g ? 0 : r,
935
+ display: Be ? "none" : void 0,
936
+ position: E,
937
+ bottom: ae ? 0 : r,
879
938
  left: 0,
880
- width: "100%",
881
- zIndex: 1
939
+ width: "100%"
882
940
  },
883
941
  children: u
884
942
  }),
885
- Ie && /* @__PURE__ */ P(ht, {
886
- ref: Xe,
943
+ Re && /* @__PURE__ */ N(Lt, {
944
+ ref: W,
887
945
  "data-flemo-anim-hold": $
946
+ }),
947
+ Re && $e && Je ? Xe(/* @__PURE__ */ N(Lt, {
948
+ "data-flemo-anim-hold": $,
949
+ style: { zIndex: C * 2 + 1 }
950
+ }), Je) : null,
951
+ !qe && /* @__PURE__ */ N("div", {
952
+ ref: Ke,
953
+ [re]: "",
954
+ [v]: w,
955
+ [_]: A,
956
+ [ne]: x ? "true" : "false",
957
+ [g]: $,
958
+ style: {
959
+ position: "absolute",
960
+ inset: 0,
961
+ pointerEvents: "none",
962
+ zIndex: oe
963
+ }
888
964
  })
889
965
  ]
890
966
  });
891
967
  }
892
968
  //#endregion
893
969
  //#region src/screen/Screen.tsx
894
- function bt({ children: e, ...t }) {
895
- let { isActive: n, isPrev: r, zIndex: i } = L(), a = U((e) => e.index), o = mt((e) => e.status), c = Q((e) => e.dragStatus), l = Q((e) => e.replaceTransitionStatus), u = g({
970
+ function Ut({ children: e, ...t }) {
971
+ let { isActive: n, isPrev: r, zIndex: i } = F(), a = V((e) => e.index), o = It((e) => e.status), s = Z((e) => e.dragStatus), l = Z((e) => e.replaceTransitionStatus), u = pe({
896
972
  isActive: n,
897
973
  isPrev: r,
898
974
  zIndex: i,
899
975
  index: a,
900
976
  status: o,
901
- dragStatus: c,
977
+ dragStatus: s,
902
978
  replaceTransitionStatus: l
903
979
  }), [d, f] = m(u !== "live");
904
- return u === "live" && d && f(!1), u === "immediate" && !d && f(!0), s(() => {
980
+ return u === "live" && d && f(!1), u === "immediate" && !d && f(!0), c(() => {
905
981
  if (u !== "deferred" || d) return;
906
- let e = setTimeout(() => f(!0), xt);
982
+ let e = setTimeout(() => f(!0), Wt);
907
983
  return () => clearTimeout(e);
908
- }, [u, d]), /* @__PURE__ */ P(dt, {
984
+ }, [u, d]), /* @__PURE__ */ N(At, {
909
985
  freeze: d,
910
- children: /* @__PURE__ */ P(yt, {
986
+ mode: u,
987
+ children: /* @__PURE__ */ N(Ht, {
988
+ paintHidden: d,
911
989
  ...t,
912
990
  children: e
913
991
  })
914
992
  });
915
993
  }
916
- var xt = 600;
994
+ var Wt = 600;
917
995
  //#endregion
918
996
  //#region src/screen/Part.tsx
919
- function St({ ref: e, name: t, style: n, children: r, ...i }) {
920
- let { isActive: a, isPrev: s, navigateStore: c, routerId: l } = L(), u = o(Re), d = l ?? u ?? void 0, f = F(), p = H(c ?? f.navigate, (e) => s ? "COMPLETED" : e.status);
921
- return /* @__PURE__ */ P("div", {
997
+ function Q({ ref: e, name: t, style: n, children: r, ...i }) {
998
+ let { isActive: a, isPrev: o, navigateStore: c, routerId: l } = F(), u = s(nt), d = l ?? u ?? void 0, f = P(), ee = B(c ?? f.navigate, (e) => o ? "COMPLETED" : e.status);
999
+ return /* @__PURE__ */ N("div", {
922
1000
  ref: e,
923
1001
  "data-flemo-part-name": t,
924
1002
  "data-flemo-router": d,
925
- "data-flemo-status": p,
1003
+ "data-flemo-status": ee,
926
1004
  "data-flemo-active": a ? "true" : "false",
927
1005
  style: n,
928
1006
  ...i,
@@ -930,22 +1008,82 @@ function St({ ref: e, name: t, style: n, children: r, ...i }) {
930
1008
  });
931
1009
  }
932
1010
  //#endregion
1011
+ //#region src/screen/Layer.tsx
1012
+ function $({ children: e }) {
1013
+ let t = Mt(), n = X();
1014
+ return !t || !n ? null : Xe(/* @__PURE__ */ N("div", {
1015
+ ref: n.registerSlot,
1016
+ [ae]: "",
1017
+ [ie]: n.screenId,
1018
+ ...n.rendersHost ? {} : {
1019
+ [v]: n.transitionName,
1020
+ [_]: n.status,
1021
+ [ne]: n.isActive ? "true" : "false",
1022
+ [g]: n.animHold
1023
+ },
1024
+ style: {
1025
+ position: "absolute",
1026
+ inset: 0,
1027
+ pointerEvents: "none",
1028
+ zIndex: n.zIndex * 2,
1029
+ visibility: n.paintHidden ? "hidden" : void 0
1030
+ },
1031
+ children: /* @__PURE__ */ N("div", {
1032
+ style: {
1033
+ display: "contents",
1034
+ pointerEvents: "auto"
1035
+ },
1036
+ children: e
1037
+ })
1038
+ }), t);
1039
+ }
1040
+ //#endregion
1041
+ //#region src/screen/Morph.tsx
1042
+ function Gt({ ref: e, layoutId: t, name: n, as: r = "div", style: a, children: s, ...c }) {
1043
+ let { isActive: l, isPrev: u, navigateStore: d } = F(), ee = P(), m = d ?? ee.navigate, te = B(m, (e) => u ? "COMPLETED" : e.status), ne = p(null), h = o((t) => {
1044
+ ne.current = t, typeof e == "function" ? e(t) : e && (e.current = t);
1045
+ }, [e]);
1046
+ return f(() => {
1047
+ let e = ne.current;
1048
+ if (e) return ce(e, {
1049
+ layoutId: t,
1050
+ name: n,
1051
+ navigateStore: m
1052
+ });
1053
+ }, [
1054
+ t,
1055
+ n,
1056
+ m,
1057
+ te,
1058
+ l
1059
+ ]), i(r, {
1060
+ "data-flemo-morph-slot": "",
1061
+ style: { display: "contents" }
1062
+ }, i(r, {
1063
+ ref: h,
1064
+ "data-flemo-morph": "",
1065
+ "data-flemo-morph-name": n,
1066
+ style: a,
1067
+ ...c
1068
+ }, s));
1069
+ }
1070
+ //#endregion
933
1071
  //#region src/stores/RouterScopeProvider.tsx
934
- function Ct({ children: e }) {
1072
+ function Kt({ children: e }) {
935
1073
  let [t] = m(() => ({
936
- history: x(),
937
- navigate: ce(),
938
- transition: A(),
939
- screen: D(),
940
- driver: y(),
941
- markSelfInduced: N,
942
- consume: _,
1074
+ history: w(),
1075
+ navigate: he(),
1076
+ transition: j(),
1077
+ screen: ye(),
1078
+ driver: me(),
1079
+ markSelfInduced: je,
1080
+ consume: b,
943
1081
  life: { alive: !0 }
944
1082
  }));
945
- return /* @__PURE__ */ P(Fe.Provider, {
1083
+ return /* @__PURE__ */ N(Qe.Provider, {
946
1084
  value: t,
947
1085
  children: e
948
1086
  });
949
1087
  }
950
1088
  //#endregion
951
- export { St as Part, it as Route, X as Router, Ct as RouterScopeProvider, bt as Screen, I as ScreenContext, ht as ScreenDecorator, dt as ScreenFreeze, yt as ScreenMotion, q as Slot, v as createBrowserHistoryDriver, b as createDecorator, S as createPartTransition, ue as createRawDecorator, C as createRawPartTransition, w as createRawTransition, k as createTransition, Se as partTransitionMap, U as useHistoryStore, ot as useNavigate, mt as useNavigateStore, lt as useParams, st as usePathname, L as useScreen, Q as useScreenStore, ct as useStep, F as useStores, gt as useViewportScrollHeight };
1089
+ export { $ as Layer, Gt as Morph, Q as Part, Ct as Route, St as Router, Kt as RouterScopeProvider, Ut as Screen, et as ScreenContext, Lt as ScreenDecorator, At as ScreenFreeze, Ht as ScreenMotion, K as Slot, S as createBrowserHistoryDriver, C as createDecorator, T as createMorphTransition, D as createPartTransition, O as createRawDecorator, k as createRawMorphTransition, ge as createRawPartTransition, _e as createRawTransition, Se as createTransition, Ne as morphTransitionMap, Ie as partTransitionMap, V as useHistoryStore, Tt as useNavigate, It as useNavigateStore, Ot as useParams, Et as usePathname, F as useScreen, Z as useScreenStore, Dt as useStep, P as useStores, Rt as useViewportScrollHeight };