@flemo/react 1.8.2 → 1.10.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.
@@ -0,0 +1,2 @@
1
+ declare const RouterIdContext: import('react').Context<string | null>;
2
+ export default RouterIdContext;
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import e, { Activity as t, Children as n, createContext as r, isValidElement as i, useContext as a, useEffect as o, useId as s, useImperativeHandle as c, useInsertionEffect as l, useLayoutEffect as u, useReducer as d, useRef as f, useState as p } from "react";
2
- import { animHoldKey as ee, appendParamsQuery as m, buildRoutePath as h, computeBarRiding as g, computeScreenFreeze as te, computeScreenFreezeMode as _, consumeSelfInducedPop as v, createAnimHoldCoordinator as y, createBrowserHistoryDriver as b, createBrowserHistoryDriver as ne, createDecorator as re, createHistoryStore as x, createNavigateStore as S, createNavigationController as C, createPartTransition as w, createRawDecorator as T, createRawPartTransition as E, createRawTransition as D, createRouterScope as ie, createScreenSelector as O, createScreenStore as k, createStepController as A, createSwipeController as ae, createTransition as oe, createTransitionEngine as se, createTransitionStore as ce, decoratorMap as le, eagerlyDecodeImages as ue, ensureImageDecodeOffloader as de, ensureScopeHistorySync as j, enteringInitialStyle as fe, getMatchedPathPattern as pe, holdCompositorWarm as me, isOpaqueColor as he, isServer as ge, markSelfInducedPop as _e, matchesPathname as ve, observeBarHeight as ye, observeViewportScrollHeight as M, partTransitionMap as be, readStepParams as N, registerTransitionDefinitions as xe, releaseScopeHistorySync as P, resolveTransition as Se, seedRouterEntry as F, subscribeStepParamsRestore as I } from "@flemo/core";
3
- import { jsx as L, jsxs as Ce } from "react/jsx-runtime";
2
+ import { animHoldKey as ee, appendParamsQuery as m, buildRoutePath as te, computeBarRiding as h, computeScreenFreeze as g, computeScreenFreezeMode as _, consumeSelfInducedPop as v, createAnimHoldCoordinator as y, createBrowserHistoryDriver as b, createBrowserHistoryDriver as x, createDecorator as S, createHistoryStore as ne, createNavigateStore as C, createNavigationController as w, createPartTransition as re, createRawDecorator as T, createRawPartTransition as E, createRawTransition as D, createRouterScope as ie, createScreenSelector as O, createScreenStore as k, createStepController as ae, createSwipeController as A, createTransition as j, createTransitionEngine as oe, createTransitionStore as M, decoratorMap as se, detectBlinkEngine as ce, eagerlyDecodeImages as le, ensureGpuPipelinePrewarm as ue, ensureImageDecodeOffloader as de, ensureScopeHistorySync as fe, enteringInitialStyle as pe, getMatchedPathPattern as N, holdCompositorWarm as me, isOpaqueColor as he, isServer as ge, markSelfInducedPop as _e, matchesPathname as ve, observeBarHeight as ye, observeViewportScrollHeight as be, partTransitionMap as P, readStepParams as xe, registerTransitionDefinitions as Se, releaseScopeHistorySync as Ce, resolveTransition as we, seedRouterEntry as F, subscribeStepParamsRestore as I } from "@flemo/core";
3
+ import { jsx as L, jsxs as Te } from "react/jsx-runtime";
4
4
  //#region src/stores/StoreContext.ts
5
5
  var R = r(null);
6
6
  //#endregion
@@ -12,9 +12,9 @@ function z() {
12
12
  }
13
13
  //#endregion
14
14
  //#region src/history/HistoryListener.tsx
15
- function we() {
15
+ function Ee() {
16
16
  let e = z();
17
- return o(() => (j(e), () => P(e)), [e]), null;
17
+ return o(() => (fe(e), () => Ce(e)), [e]), null;
18
18
  }
19
19
  //#endregion
20
20
  //#region src/screen/ScreenContext.ts
@@ -38,7 +38,7 @@ function V() {
38
38
  }
39
39
  //#endregion
40
40
  //#region src/screen/ParamsProvider/ParamsContext.ts
41
- var Te = r({}), Ee = r(() => {});
41
+ var De = r({}), Oe = r(() => {});
42
42
  //#endregion
43
43
  //#region src/screen/ParamsProvider/ParamsReducer.ts
44
44
  function H(e, t) {
@@ -49,7 +49,7 @@ function H(e, t) {
49
49
  }
50
50
  //#endregion
51
51
  //#region src/screen/ParamsProvider/ParamsProvider.tsx
52
- function De({ children: e }) {
52
+ function U({ children: e }) {
53
53
  let { isActive: t, params: n } = V(), { driver: r } = z(), [i, a] = d(H, n);
54
54
  return o(() => {
55
55
  if (t) return I(r, (e) => a({
@@ -60,30 +60,33 @@ function De({ children: e }) {
60
60
  t,
61
61
  a,
62
62
  r
63
- ]), /* @__PURE__ */ L(Ee.Provider, {
63
+ ]), /* @__PURE__ */ L(Oe.Provider, {
64
64
  value: a,
65
- children: /* @__PURE__ */ L(Te.Provider, {
65
+ children: /* @__PURE__ */ L(De.Provider, {
66
66
  value: i,
67
67
  children: e
68
68
  })
69
69
  });
70
70
  }
71
71
  //#endregion
72
- //#region ../../node_modules/.pnpm/zustand@5.0.14_@types+react@19.2.17_react@19.2.7/node_modules/zustand/esm/react.mjs
73
- var U = (e) => e;
74
- function W(t, n = U) {
72
+ //#region ../../node_modules/.pnpm/zustand@5.0.14_@types+react@19.2.18_react@19.2.8/node_modules/zustand/esm/react.mjs
73
+ var W = (e) => e;
74
+ function G(t, n = W) {
75
75
  let r = e.useSyncExternalStore(t.subscribe, e.useCallback(() => n(t.getState()), [t, n]), e.useCallback(() => n(t.getInitialState()), [t, n]));
76
76
  return e.useDebugValue(r), r;
77
77
  }
78
78
  //#endregion
79
79
  //#region src/stores/useHistoryStore.ts
80
- function G(e) {
81
- return W(z().history, e);
80
+ function K(e) {
81
+ return G(z().history, e);
82
82
  }
83
83
  //#endregion
84
+ //#region src/RouterIdContext.ts
85
+ var ke = r(null);
86
+ //#endregion
84
87
  //#region src/renderer/Renderer.tsx
85
- function K({ children: e }) {
86
- let t = G((e) => e.index), r = G((e) => e.histories), i = z(), o = a(B);
88
+ function q({ children: e }) {
89
+ let t = K((e) => e.index), r = K((e) => e.histories), i = z(), o = a(B), s = a(ke);
87
90
  return O(r, t).map((t) => {
88
91
  let [r] = n.toArray(e).filter((e) => ve(e.props.path, t.pathname));
89
92
  return r ? /* @__PURE__ */ L(B.Provider, {
@@ -91,22 +94,23 @@ function K({ children: e }) {
91
94
  ...t,
92
95
  isPrev: t.isPrev || o.isPrev,
93
96
  navigateStore: i.navigate,
94
- routePath: pe(r.props.path, t.pathname)
97
+ routerId: s ?? void 0,
98
+ routePath: N(r.props.path, t.pathname)
95
99
  },
96
- children: /* @__PURE__ */ L(De, { children: r })
100
+ children: /* @__PURE__ */ L(U, { children: r })
97
101
  }, t.id) : null;
98
102
  });
99
103
  }
100
104
  //#endregion
101
105
  //#region src/screen/ScreenViewportContext.ts
102
- var q = r({ contained: !1 });
103
- function Oe() {
104
- return a(q);
106
+ var J = r({ contained: !1 });
107
+ function Ae() {
108
+ return a(J);
105
109
  }
106
110
  //#endregion
107
111
  //#region src/transition/styles.ts
108
- function J(e, t, n = []) {
109
- l(() => xe(e, t, n), [
112
+ function je(e, t, n = []) {
113
+ l(() => Se(e, t, n), [
110
114
  e,
111
115
  t,
112
116
  n
@@ -114,8 +118,8 @@ function J(e, t, n = []) {
114
118
  }
115
119
  //#endregion
116
120
  //#region src/RouterDepthContext.ts
117
- var ke = r(0), Ae = { contained: !0 };
118
- function je({ children: e, className: t, style: n }) {
121
+ var Y = r(0), Me = { contained: !0 };
122
+ function Ne({ children: e, className: t, style: n }) {
119
123
  return /* @__PURE__ */ L("div", {
120
124
  className: t,
121
125
  style: {
@@ -123,55 +127,58 @@ function je({ children: e, className: t, style: n }) {
123
127
  overflow: "hidden",
124
128
  ...n
125
129
  },
126
- children: /* @__PURE__ */ L(q.Provider, {
127
- value: Ae,
128
- children: /* @__PURE__ */ L(K, { children: e })
130
+ children: /* @__PURE__ */ L(J.Provider, {
131
+ value: Me,
132
+ children: /* @__PURE__ */ L(q, { children: e })
129
133
  })
130
134
  });
131
135
  }
132
136
  //#endregion
133
137
  //#region src/Router.tsx
134
- function Me(e) {
138
+ function Pe(e) {
135
139
  let t = null;
136
140
  return n.forEach(e, (e) => {
137
141
  if (t || !i(e)) return;
138
- if (e.type === je) {
142
+ if (e.type === Ne) {
139
143
  t = n.toArray(e.props.children).filter(i);
140
144
  return;
141
145
  }
142
146
  let r = e.props.children;
143
147
  if (r) {
144
- let e = Me(r);
148
+ let e = Pe(r);
145
149
  e && (t = e);
146
150
  }
147
151
  }), t;
148
152
  }
149
- var Ne = typeof window > "u" ? o : u, Pe = [], Y = [], Fe = [], Ie = { contained: !0 }, Le = 500, Re = 3e3;
150
- function ze({ children: e, initPath: t = "/", defaultTransitionName: r = "cupertino", transitions: i = Pe, decorators: c = Y, partTransitions: l = Fe, history: u = "browser", createDriver: d, className: f, style: ee }) {
151
- let m = a(ke), h = m > 0, g = u === "memory", te = s(), _ = a(B), v = a(R), y = h && _.id ? `_F_${v?.routerKey ?? ""}${_.id}_` : te, b = Me(e), re = b !== null, x = h ? null : v, S = x !== null, C = d ?? ne, [w] = p(() => g ? null : C(S ? void 0 : y)), T = !h && !g && !ge(), E = T && w ? w.readPathname() : t || "/", D = E.indexOf("?"), O = (D >= 0 ? E.slice(0, D) : E) || "/", k = T ? window.location.search : D >= 0 ? E.slice(D) : "", [A] = p(() => ie({
152
- routePaths: (b ?? n.toArray(e)).map((e) => e.props.path).flat(),
153
- pathname: O,
154
- search: k,
155
- defaultTransitionName: r,
156
- memory: g,
157
- browserDriver: w,
158
- hostedScope: x,
159
- routerKey: S ? void 0 : y,
160
- zoneEntryId: h && !S && _.id || void 0,
161
- persistKey: h && !g && !S ? y : void 0
162
- }));
163
- A.transition.setState({ defaultTransitionName: r }), Ne(() => (A.life.alive = !0, () => {
153
+ var Fe = typeof window > "u" ? o : u, Ie = [], Le = [], X = [], Re = { contained: !0 }, ze = 500, Be = 3e3;
154
+ function Ve({ children: e, initPath: t = "/", defaultTransitionName: r = "cupertino", transitions: i = Ie, decorators: c = Le, partTransitions: l = X, history: u = "browser", createDriver: d, className: f, style: ee }) {
155
+ let m = a(Y), te = s(), h = m > 0, g = u === "memory", _ = s(), v = a(B), y = a(R), b = h && v.id ? `_F_${y?.routerKey ?? ""}${v.id}_` : _, S = Pe(e), ne = S !== null, C = h ? null : y, w = C !== null, re = d ?? x, [T] = p(() => g ? null : re(w ? void 0 : b)), E = !h && !g && !ge(), D = E && T ? T.readPathname() : t || "/", O = D.indexOf("?"), k = (O >= 0 ? D.slice(0, O) : D) || "/", ae = E ? window.location.search : O >= 0 ? D.slice(O) : "", [A] = p(() => {
156
+ let t = (S ?? n.toArray(e)).map((e) => e.props.path).flat();
157
+ return ie({
158
+ routePaths: t,
159
+ pathname: k,
160
+ search: ae,
161
+ defaultTransitionName: r,
162
+ memory: g,
163
+ browserDriver: T,
164
+ hostedScope: C,
165
+ routerKey: w ? void 0 : b,
166
+ zoneEntryId: h && !w && v.id || void 0,
167
+ persistKey: h && !g && !w ? b : void 0
168
+ });
169
+ });
170
+ A.transition.setState({ defaultTransitionName: r }), Fe(() => (A.life.alive = !0, () => {
164
171
  A.life.alive = !1;
165
- }), [A]), J(i, c, l), o(() => de(), []), o(() => {
172
+ }), [A]), je(i, c, l), o(() => de(), []), o(() => ue(), []), o(() => {
166
173
  if (typeof document > "u") return;
167
174
  let e = null, t = null, n = 0, r = () => {
168
175
  let r = Date.now();
169
- if (r - n < Le) return;
176
+ if (r - n < ze) return;
170
177
  n = r, t && clearTimeout(t);
171
178
  let i = e;
172
179
  e = me(), i?.(), t = setTimeout(() => {
173
180
  t = null, e?.(), e = null;
174
- }, Re);
181
+ }, Be);
175
182
  }, i = [
176
183
  "pointerdown",
177
184
  "pointermove",
@@ -185,32 +192,35 @@ function ze({ children: e, initPath: t = "/", defaultTransitionName: r = "cupert
185
192
  t && clearTimeout(t), e?.();
186
193
  };
187
194
  }, []), o(() => {
188
- g || !w || F({
189
- driver: w,
190
- routerKey: S ? null : y,
191
- nested: h && !S,
192
- seedPathname: O,
195
+ g || !T || F({
196
+ driver: T,
197
+ routerKey: w ? null : b,
198
+ nested: h && !w,
199
+ seedPathname: k,
193
200
  defaultTransitionName: r,
194
201
  rootParams: A.history.getState().histories[0]?.params ?? {}
195
202
  });
196
203
  }, [
197
204
  g,
198
- S,
205
+ w,
199
206
  h,
200
- y,
201
- O,
207
+ b,
208
+ k,
202
209
  r,
203
210
  A.history,
204
- w
211
+ T
205
212
  ]);
206
- let ae = re ? e : /* @__PURE__ */ L(K, { children: e }), oe = /* @__PURE__ */ L(ke.Provider, {
207
- value: m + 1,
208
- children: /* @__PURE__ */ Ce(R.Provider, {
209
- value: A,
210
- children: [!g && /* @__PURE__ */ L(we, {}), h ? /* @__PURE__ */ L(q.Provider, {
211
- value: Ie,
212
- children: ae
213
- }) : ae]
213
+ let j = ne ? e : /* @__PURE__ */ L(q, { children: e }), oe = /* @__PURE__ */ L(ke.Provider, {
214
+ value: te,
215
+ children: /* @__PURE__ */ L(Y.Provider, {
216
+ value: m + 1,
217
+ children: /* @__PURE__ */ Te(R.Provider, {
218
+ value: A,
219
+ children: [!g && /* @__PURE__ */ L(Ee, {}), h ? /* @__PURE__ */ L(J.Provider, {
220
+ value: Re,
221
+ children: j
222
+ }) : j]
223
+ })
214
224
  })
215
225
  });
216
226
  return h ? /* @__PURE__ */ L("div", {
@@ -225,18 +235,18 @@ function ze({ children: e, initPath: t = "/", defaultTransitionName: r = "cupert
225
235
  }
226
236
  //#endregion
227
237
  //#region src/Route.tsx
228
- function X({ element: e }) {
238
+ function He({ element: e }) {
229
239
  return e;
230
240
  }
231
241
  //#endregion
232
242
  //#region src/utils/buildRoutePath.ts
233
243
  function Z(e, t) {
234
- return h(e, t);
244
+ return te(e, t);
235
245
  }
236
246
  //#endregion
237
247
  //#region src/navigate/useNavigate.ts
238
- function Be() {
239
- let e = z(), t = C({
248
+ function Q() {
249
+ let e = z(), t = w({
240
250
  stores: e,
241
251
  buildPathname: (e, t) => Z(e, t),
242
252
  driver: e.driver,
@@ -250,17 +260,17 @@ function Be() {
250
260
  }
251
261
  //#endregion
252
262
  //#region src/navigate/usePathname.ts
253
- function Ve() {
254
- return G((e) => e.histories[e.pendingIndex]?.pathname ?? "/");
263
+ function Ue() {
264
+ return K((e) => e.histories[e.pendingIndex]?.pathname ?? "/");
255
265
  }
256
266
  //#endregion
257
267
  //#region src/navigate/useStep.ts
258
- function He() {
259
- let { routePath: e } = V(), t = z(), n = a(Ee), { driver: r, markSelfInduced: i } = t, [s, c] = p(null);
268
+ function We() {
269
+ let { routePath: e } = V(), t = z(), n = a(Oe), { driver: r, markSelfInduced: i } = t, [s, c] = p(null);
260
270
  o(() => {
261
- if (!e) return c(N(r.readState())), r.subscribe((e) => c(N(e.state)));
271
+ if (!e) return c(xe(r.readState())), r.subscribe((e) => c(xe(e.state)));
262
272
  }, [e, r]);
263
- let l = A({
273
+ let l = ae({
264
274
  stores: t,
265
275
  driver: r,
266
276
  markSelfInduced: i,
@@ -281,12 +291,12 @@ function He() {
281
291
  }
282
292
  //#endregion
283
293
  //#region src/screen/ParamsProvider/useParams.ts
284
- function Ue() {
285
- return a(Te);
294
+ function Ge() {
295
+ return a(De);
286
296
  }
287
297
  //#endregion
288
298
  //#region src/screen/ScreenFreeze.tsx
289
- function We({ freeze: e, children: n }) {
299
+ function Ke({ freeze: e, children: n }) {
290
300
  return /* @__PURE__ */ L(t, {
291
301
  mode: e ? "hidden" : "visible",
292
302
  children: n
@@ -294,22 +304,22 @@ function We({ freeze: e, children: n }) {
294
304
  }
295
305
  //#endregion
296
306
  //#region src/screen/scopeAnimHoldCoordinator.ts
297
- var Ge = /* @__PURE__ */ new WeakMap();
298
- function Ke(e) {
299
- let t = Ge.get(e);
300
- return t || (t = y(), Ge.set(e, t)), t;
307
+ var qe = /* @__PURE__ */ new WeakMap();
308
+ function Je(e) {
309
+ let t = qe.get(e);
310
+ return t || (t = y(), qe.set(e, t)), t;
301
311
  }
302
312
  //#endregion
303
313
  //#region src/stores/useNavigateStore.ts
304
- function Q(e) {
305
- return W(z().navigate, e);
314
+ function Ye(e) {
315
+ return G(z().navigate, e);
306
316
  }
307
317
  //#endregion
308
318
  //#region src/screen/ScreenDecorator.tsx
309
- function qe({ ref: e, style: t, ...n }) {
319
+ function Xe({ ref: e, style: t, ...n }) {
310
320
  let { isActive: r, isPrev: i, transitionName: a } = V(), o = f(null);
311
321
  c(e, () => o.current);
312
- let s = Q((e) => i ? "COMPLETED" : e.status), { decoratorName: l } = Se(a), u = le.get(l);
322
+ let s = Ye((e) => i ? "COMPLETED" : e.status), { decoratorName: l } = we(a), u = se.get(l);
313
323
  return u ? /* @__PURE__ */ L("div", {
314
324
  ref: o,
315
325
  "data-flemo-decorator": !0,
@@ -331,9 +341,9 @@ function qe({ ref: e, style: t, ...n }) {
331
341
  }
332
342
  //#endregion
333
343
  //#region src/screen/useViewportScrollHeight.ts
334
- function Je() {
344
+ function Ze() {
335
345
  let [e, t] = p(0), [n, r] = p(0);
336
- return o(() => M((e, n) => {
346
+ return o(() => be((e, n) => {
337
347
  r(n), t(e);
338
348
  }), []), {
339
349
  viewportScrollHeight: e,
@@ -343,200 +353,205 @@ function Je() {
343
353
  //#endregion
344
354
  //#region src/stores/useScreenStore.ts
345
355
  function $(e) {
346
- return W(z().screen, e);
356
+ return G(z().screen, e);
347
357
  }
348
358
  //#endregion
349
359
  //#region src/screen/ScreenMotion.tsx
350
- function Ye({ children: e, statusBarHeight: t, statusBarColor: n, systemNavigationBarHeight: r, systemNavigationBarColor: i, sharedTopBar: a, sharedBottomBar: s, topBar: c, bottomBar: l, hideStatusBar: d, hideSystemNavigationBar: m, backgroundColor: h = "white", contentScrollable: _ = !0, ...v }) {
351
- let { id: y, isActive: b, isRoot: ne, isPrev: re, zIndex: x, transitionName: S, prevTransitionName: C } = V(), { contained: w } = Oe(), T = w ? "absolute" : "fixed", E = z(), D = G((e) => e.index), ie = G((e) => e.histories), O = b || x === D - 1, k = Q((e) => O ? e.status : "COMPLETED"), A = $((e) => e.dragStatus), oe = $((e) => e.replaceTransitionStatus), ce = E.screen.getState().setDragStatus, de = E.screen.getState().setReplaceTransitionStatus, j = b ? ie[D - 1]?.id : ie[D]?.id, pe = $((e) => j ? e.sharedBars[j] : void 0), me = $((e) => j ? e.screenSurfaces[j] : void 0), ge = f(null);
352
- ge.current ||= se({
353
- getTransitionTaskId: () => E.navigate.getState().transitionTaskId,
354
- setDragStatus: ce,
355
- setReplaceTransitionStatus: de
360
+ function Qe({ children: e, statusBarHeight: t, statusBarColor: n, systemNavigationBarHeight: r, systemNavigationBarColor: i, sharedTopBar: s, sharedBottomBar: c, topBar: l, bottomBar: d, hideStatusBar: m, hideSystemNavigationBar: te, backgroundColor: _ = "white", contentScrollable: v = !0, ...y }) {
361
+ let { id: b, isActive: x, isRoot: S, isPrev: ne, zIndex: C, transitionName: w, prevTransitionName: re } = V(), { contained: T } = Ae(), E = T ? "absolute" : "fixed", D = z(), ie = a(ke), O = K((e) => e.index), k = K((e) => e.histories), ae = x || C === O - 1, j = Ye((e) => ae ? e.status : "COMPLETED"), M = $((e) => e.dragStatus), ue = $((e) => e.replaceTransitionStatus), de = D.screen.getState().setDragStatus, fe = D.screen.getState().setReplaceTransitionStatus, N = x ? k[O - 1]?.id : k[O]?.id, me = $((e) => N ? e.sharedBars[N] : void 0), ge = $((e) => N ? e.screenSurfaces[N] : void 0), _e = f(null);
362
+ _e.current ||= oe({
363
+ getTransitionTaskId: () => D.navigate.getState().transitionTaskId,
364
+ setDragStatus: de,
365
+ setReplaceTransitionStatus: fe
356
366
  });
357
- let _e = ge.current, ve = f(null);
358
- ve.current ||= Ke(E.navigate);
359
- let M = Se(S), { initial: be, swipeDirection: N, decoratorName: xe } = M, P = le.get(xe), { viewportScrollHeight: F } = Je(), I = F > 0, [R, we] = p(0), [B, Te] = p(0), Ee = f(null), H = f(null), De = f(null), U = f(null), W = f(null), K = f({
360
- transition: M,
361
- decorator: P,
362
- hasSharedTopBar: !!a,
363
- hasSharedBottomBar: !!s,
364
- viewportScrollHeight: F,
365
- isRoot: ne,
366
- isActive: b,
367
- status: k,
368
- dragStatus: A,
369
- index: D
367
+ let ve = _e.current, be = f(null);
368
+ be.current ||= Je(D.navigate);
369
+ let P = we(w), { initial: xe, swipeDirection: Se, decoratorName: Ce } = P, F = se.get(Ce), { viewportScrollHeight: I } = Ze(), R = I > 0, [Ee, B] = p(0), [De, Oe] = p(0), H = f(null), U = f(null), W = f(null), G = f(null), q = f(null), J = f({
370
+ transition: P,
371
+ decorator: F,
372
+ hasSharedTopBar: !!s,
373
+ hasSharedBottomBar: !!c,
374
+ viewportScrollHeight: I,
375
+ isRoot: S,
376
+ isActive: x,
377
+ status: j,
378
+ dragStatus: M,
379
+ index: O
370
380
  });
371
- K.current = {
372
- transition: M,
373
- decorator: P,
374
- hasSharedTopBar: !!a,
375
- hasSharedBottomBar: !!s,
376
- viewportScrollHeight: F,
377
- isRoot: ne,
378
- isActive: b,
379
- status: k,
380
- dragStatus: A,
381
- index: D
381
+ J.current = {
382
+ transition: P,
383
+ decorator: F,
384
+ hasSharedTopBar: !!s,
385
+ hasSharedBottomBar: !!c,
386
+ viewportScrollHeight: I,
387
+ isRoot: S,
388
+ isActive: x,
389
+ status: j,
390
+ dragStatus: M,
391
+ index: O
382
392
  };
383
- let q = f(null);
384
- q.current ||= ae({
385
- getTransition: () => K.current.transition,
386
- getDecorator: () => K.current.decorator,
393
+ let je = f(null);
394
+ je.current ||= A({
395
+ getTransition: () => J.current.transition,
396
+ getDecorator: () => J.current.decorator,
387
397
  getElements: () => ({
388
- scope: H.current,
389
- screenContainer: Ee.current,
390
- decorator: De.current,
391
- sharedTopBar: U.current,
392
- sharedBottomBar: W.current
398
+ scope: U.current,
399
+ screenContainer: H.current,
400
+ decorator: W.current,
401
+ sharedTopBar: G.current,
402
+ sharedBottomBar: q.current
393
403
  }),
394
- hasSharedTopBar: () => K.current.hasSharedTopBar,
395
- hasSharedBottomBar: () => K.current.hasSharedBottomBar,
396
- getViewportScrollHeight: () => K.current.viewportScrollHeight,
404
+ hasSharedTopBar: () => J.current.hasSharedTopBar,
405
+ hasSharedBottomBar: () => J.current.hasSharedBottomBar,
406
+ getViewportScrollHeight: () => J.current.viewportScrollHeight,
397
407
  isReadyForDrag: () => {
398
- let e = K.current;
408
+ let e = J.current;
399
409
  return !e.isRoot && e.isActive && e.status === "COMPLETED" && e.dragStatus === "IDLE" && !!e.transition.swipeDirection && e.viewportScrollHeight < 10;
400
410
  },
401
411
  getPartnerBars: () => {
402
- let e = K.current, t = E.history.getState().histories, n = e.isActive ? t[e.index - 1]?.id : t[e.index]?.id;
403
- return n ? E.screen.getState().sharedBars[n] : void 0;
412
+ let e = J.current, t = D.history.getState().histories, n = e.isActive ? t[e.index - 1]?.id : t[e.index]?.id;
413
+ return n ? D.screen.getState().sharedBars[n] : void 0;
404
414
  },
405
- setDragStatus: ce,
415
+ setDragStatus: de,
406
416
  back: () => window.history.back()
407
417
  });
408
- let J = q.current, ke = (e) => J.pointerDown(e.nativeEvent), Ae = (e) => J.pointerMove(e.nativeEvent), je = (e) => J.pointerUp(e.nativeEvent);
418
+ let Y = je.current, Me = (e) => Y.pointerDown(e.nativeEvent), Ne = (e) => Y.pointerMove(e.nativeEvent), Pe = (e) => Y.pointerUp(e.nativeEvent);
409
419
  o(() => {
410
- ue(H.current);
420
+ le(U.current);
411
421
  }, []), o(() => {
412
- let e = H.current;
422
+ let e = U.current;
413
423
  if (!e) return;
414
424
  let t = (e) => {
415
- J.shouldPreventTouch() && e.preventDefault(), e.target?.dataset.swipeAtEdgeBar === "true" && e.preventDefault();
425
+ Y.shouldPreventTouch() && e.preventDefault(), e.target?.dataset.swipeAtEdgeBar === "true" && e.preventDefault();
416
426
  };
417
427
  return e.addEventListener("touchmove", t, { passive: !1 }), () => {
418
428
  e.removeEventListener("touchmove", t);
419
429
  };
420
- }, [J]), u(() => {
421
- let e = U.current;
430
+ }, [Y]), u(() => {
431
+ let e = G.current;
422
432
  if (!e) {
423
- we(0);
433
+ B(0);
424
434
  return;
425
435
  }
426
- return ye(e, we);
427
- }, [a]), u(() => {
428
- let e = W.current;
436
+ return ye(e, B);
437
+ }, [s]), u(() => {
438
+ let e = q.current;
429
439
  if (!e) {
430
- Te(0);
440
+ Oe(0);
431
441
  return;
432
442
  }
433
- return ye(e, Te);
434
- }, [s]), u(() => {
435
- let { registerSharedBars: e, unregisterSharedBars: t } = E.screen.getState();
436
- return e(y, {
437
- topBar: !!a,
438
- bottomBar: !!s
439
- }), () => t(y);
443
+ return ye(e, Oe);
444
+ }, [c]), u(() => {
445
+ let { registerSharedBars: e, unregisterSharedBars: t } = D.screen.getState();
446
+ return e(b, {
447
+ topBar: !!s,
448
+ bottomBar: !!c
449
+ }), () => t(b);
440
450
  }, [
441
- y,
442
- a,
451
+ b,
443
452
  s,
444
- E.screen
453
+ c,
454
+ D.screen
445
455
  ]), u(() => {
446
- let e = H.current;
456
+ let e = U.current;
447
457
  if (!e) return;
448
- let { registerScreenSurface: t, unregisterScreenSurface: n } = E.screen.getState();
449
- return t(y, { opaqueBackground: he(getComputedStyle(e).backgroundColor) }), () => n(y);
458
+ let { registerScreenSurface: t, unregisterScreenSurface: n } = D.screen.getState();
459
+ return t(b, { opaqueBackground: he(getComputedStyle(e).backgroundColor) }), () => n(b);
450
460
  }, [
451
- y,
452
- h,
453
- k,
454
- E.screen
461
+ b,
462
+ _,
463
+ j,
464
+ D.screen
455
465
  ]);
456
- let Me = O, { app: Ne, nav: Pe } = g({
457
- status: k,
458
- isTopOrTopPrev: Me,
459
- hasTopBar: !!a,
460
- hasNavBar: !!s,
461
- partnerBars: pe
462
- }), Y = ee({
463
- status: k,
464
- isTopOrTopPrev: Me,
465
- transitionName: S
466
- }), Fe = te({
467
- isActive: b,
468
- isPrev: re,
469
- zIndex: x,
470
- index: D,
471
- status: k,
472
- dragStatus: A,
473
- replaceTransitionStatus: oe
474
- }), Ie = f(Fe), Le = f(Y !== null && Fe), [Re, ze] = p({
475
- key: Y,
476
- released: Y === null
466
+ let Fe = ae, { app: Ie, nav: Le } = h({
467
+ status: j,
468
+ isTopOrTopPrev: Fe,
469
+ hasTopBar: !!s,
470
+ hasNavBar: !!c,
471
+ partnerBars: me
472
+ }), X = ee({
473
+ status: j,
474
+ isTopOrTopPrev: Fe,
475
+ transitionName: w
476
+ }), Re = g({
477
+ isActive: x,
478
+ isPrev: ne,
479
+ zIndex: C,
480
+ index: O,
481
+ status: j,
482
+ dragStatus: M,
483
+ replaceTransitionStatus: ue
484
+ }), ze = f(Re), Be = f(X !== null && Re), [Ve, He] = p({
485
+ key: X,
486
+ released: X === null
477
487
  });
478
- Re.key !== Y && (ze({
479
- key: Y,
480
- released: Y === null
481
- }), Le.current = Y !== null && Ie.current), Ie.current = Fe;
482
- let X = Y !== null && Re.key === Y && !Re.released, Z = X ? !b && me?.opaqueBackground ? "park" : b && (k === "PUSHING" || k === "REPLACING") && me?.opaqueBackground ? "park-under" : "true" : "false";
483
- u(() => _e.driveScreenLifecycle({
488
+ Ve.key !== X && (He({
489
+ key: X,
490
+ released: X === null
491
+ }), Be.current = X !== null && ze.current), ze.current = Re;
492
+ let Z = X !== null && Ve.key === X && !Ve.released, Q = Z ? !x && ge?.opaqueBackground ? "park" : x && (j === "PUSHING" || j === "REPLACING") && ge?.opaqueBackground ? "park-under" : "true" : "false";
493
+ u(() => ve.driveScreenLifecycle({
484
494
  getElements: () => ({
485
- scope: H.current,
486
- decorator: De.current,
487
- bars: [U.current, W.current]
495
+ scope: U.current,
496
+ decorator: W.current,
497
+ bars: [G.current, q.current]
488
498
  }),
489
- transitionName: S,
490
- prevTransitionName: C,
491
- status: k,
492
- isActive: b,
493
- animHoldReleased: !X
499
+ transitionName: w,
500
+ prevTransitionName: re,
501
+ status: j,
502
+ isActive: x,
503
+ animHoldReleased: !Z
494
504
  }), [
495
- _e,
496
- k,
497
- b,
498
- C,
499
- S,
500
- X
505
+ ve,
506
+ j,
507
+ x,
508
+ re,
509
+ w,
510
+ Z
501
511
  ]), o(() => {
502
- if (!X || Y === null) return;
503
- let e = Y, t = E.navigate.getState().transitionTaskId, n = t === null ? e : `${e}#${t}`;
504
- return ve.current.join(n, () => ze((t) => t.key === e && !t.released ? {
505
- key: e,
506
- released: !0
507
- } : t), {
508
- scope: H.current,
509
- decodeWait: Le.current,
510
- contentSettle: b && k === "PUSHING" ? {
511
- graceMs: 150,
512
- firstWaitMs: 400,
513
- capMs: 900,
514
- minNodes: 30
515
- } : void 0
512
+ if (!Z || X === null) return;
513
+ let e = X, t = D.navigate.getState().transitionTaskId, n = t === null ? e : `${e}#${t}`;
514
+ return be.current.join(n, () => {
515
+ if (J.current.transition.driver === "native" && !ce()) {
516
+ for (let e of [
517
+ U.current,
518
+ G.current,
519
+ q.current,
520
+ W.current
521
+ ]) e?.isConnected && e.getAttribute("data-flemo-anim-hold") !== null && e.setAttribute("data-flemo-anim-hold", "false");
522
+ H.current && (H.current.style.zIndex = "");
523
+ }
524
+ He((t) => t.key === e && !t.released ? {
525
+ key: e,
526
+ released: !0
527
+ } : t);
528
+ }, {
529
+ scope: U.current,
530
+ decodeWait: Be.current
516
531
  });
517
532
  }, [
518
- X,
519
- Y,
520
533
  Z,
521
- b,
522
- k,
523
- E.navigate
534
+ X,
535
+ Q,
536
+ x,
537
+ j,
538
+ D.navigate
524
539
  ]);
525
- let Be = Z === "park-under" ? {} : fe({
526
- initial: be,
527
- isActive: b,
528
- status: k
540
+ let Ue = Q === "park-under" ? {} : pe({
541
+ initial: xe,
542
+ isActive: x,
543
+ status: j
529
544
  });
530
- return /* @__PURE__ */ Ce("div", {
531
- ref: Ee,
545
+ return /* @__PURE__ */ Te("div", {
546
+ ref: H,
532
547
  style: {
533
- position: T,
548
+ position: E,
534
549
  top: 0,
535
550
  left: 0,
536
551
  width: "100%",
537
552
  height: "100%",
538
553
  display: "flex",
539
- zIndex: Z === "park-under" ? -1 : void 0,
554
+ zIndex: Q === "park-under" ? -1 : void 0,
540
555
  contain: "layout style",
541
556
  flexDirection: "column",
542
557
  boxSizing: "border-box",
@@ -546,7 +561,7 @@ function Ye({ children: e, statusBarHeight: t, statusBarColor: n, systemNavigati
546
561
  /* @__PURE__ */ L("div", {
547
562
  "data-swipe-at-edge-bar": !0,
548
563
  style: {
549
- position: T,
564
+ position: E,
550
565
  top: 0,
551
566
  left: 0,
552
567
  width: 8,
@@ -554,66 +569,67 @@ function Ye({ children: e, statusBarHeight: t, statusBarColor: n, systemNavigati
554
569
  zIndex: 1
555
570
  }
556
571
  }),
557
- /* @__PURE__ */ Ce("div", {
558
- ref: H,
559
- ...v,
560
- onPointerDown: ke,
561
- onPointerMove: Ae,
562
- onPointerUp: je,
563
- onPointerCancel: je,
572
+ /* @__PURE__ */ Te("div", {
573
+ ref: U,
574
+ ...y,
575
+ onPointerDown: Me,
576
+ onPointerMove: Ne,
577
+ onPointerUp: Pe,
578
+ onPointerCancel: Pe,
564
579
  "data-flemo-screen": !0,
565
- "data-flemo-transition": S,
566
- "data-flemo-status": k,
567
- "data-flemo-active": b ? "true" : "false",
568
- "data-flemo-anim-hold": Z,
580
+ "data-flemo-router": ie ?? void 0,
581
+ "data-flemo-transition": w,
582
+ "data-flemo-status": j,
583
+ "data-flemo-active": x ? "true" : "false",
584
+ "data-flemo-anim-hold": Q,
569
585
  style: {
570
586
  display: "flex",
571
587
  flexDirection: "column",
572
588
  height: "100%",
573
- backgroundColor: h,
574
- overflowY: _ ? void 0 : "auto",
575
- touchAction: N === "x" ? "pan-y" : N === "y" ? "pan-x" : "auto",
576
- ...Be,
577
- ...v.style
589
+ backgroundColor: _,
590
+ overflowY: v ? void 0 : "auto",
591
+ touchAction: Se === "x" ? "pan-y" : Se === "y" ? "pan-x" : "auto",
592
+ ...Ue,
593
+ ...y.style
578
594
  },
579
595
  children: [
580
- !d && t && /* @__PURE__ */ L("div", {
596
+ !m && t && /* @__PURE__ */ L("div", {
581
597
  style: { minHeight: t },
582
598
  children: /* @__PURE__ */ L("div", { style: {
583
- position: T,
599
+ position: E,
584
600
  top: 0,
585
601
  width: "100%",
586
602
  minHeight: t,
587
603
  backgroundColor: n
588
604
  } })
589
605
  }),
590
- a && /* @__PURE__ */ L("div", { style: {
606
+ s && /* @__PURE__ */ L("div", { style: {
591
607
  width: "100%",
592
- minHeight: R
608
+ minHeight: Ee
593
609
  } }),
594
- c,
610
+ l,
595
611
  /* @__PURE__ */ L("div", {
596
612
  style: {
597
613
  display: "flex",
598
614
  flexDirection: "column",
599
615
  flexGrow: 1,
600
- overflowY: _ ? "auto" : void 0
616
+ overflowY: v ? "auto" : void 0
601
617
  },
602
618
  children: e
603
619
  }),
604
- l,
605
- s && /* @__PURE__ */ L("div", { style: {
606
- display: I ? "none" : void 0,
620
+ d,
621
+ c && /* @__PURE__ */ L("div", { style: {
622
+ display: R ? "none" : void 0,
607
623
  width: "100%",
608
- minHeight: B
624
+ minHeight: De
609
625
  } }),
610
- !m && r && /* @__PURE__ */ L("div", {
626
+ !te && r && /* @__PURE__ */ L("div", {
611
627
  style: {
612
- display: I ? "none" : void 0,
628
+ display: R ? "none" : void 0,
613
629
  minHeight: r
614
630
  },
615
631
  children: /* @__PURE__ */ L("div", { style: {
616
- position: T,
632
+ position: E,
617
633
  bottom: 0,
618
634
  width: "100%",
619
635
  minHeight: r,
@@ -622,49 +638,51 @@ function Ye({ children: e, statusBarHeight: t, statusBarColor: n, systemNavigati
622
638
  })
623
639
  ]
624
640
  }),
625
- a && /* @__PURE__ */ L("div", {
626
- ref: U,
641
+ s && /* @__PURE__ */ L("div", {
642
+ ref: G,
627
643
  "data-flemo-bar": "app",
628
- "data-flemo-bar-transition": S,
629
- "data-flemo-bar-status": k,
630
- "data-flemo-bar-active": b ? "true" : "false",
631
- "data-flemo-bar-riding": Ne ? "true" : "false",
632
- "data-flemo-anim-hold": Z,
644
+ "data-flemo-router": ie ?? void 0,
645
+ "data-flemo-bar-transition": w,
646
+ "data-flemo-bar-status": j,
647
+ "data-flemo-bar-active": x ? "true" : "false",
648
+ "data-flemo-bar-riding": Ie ? "true" : "false",
649
+ "data-flemo-anim-hold": Q,
633
650
  style: {
634
- position: T,
635
- top: d ? 0 : t,
651
+ position: E,
652
+ top: m ? 0 : t,
636
653
  left: 0,
637
654
  width: "100%",
638
655
  zIndex: 1
639
656
  },
640
- children: a
657
+ children: s
641
658
  }),
642
- s && /* @__PURE__ */ L("div", {
643
- ref: W,
659
+ c && /* @__PURE__ */ L("div", {
660
+ ref: q,
644
661
  "data-flemo-bar": "nav",
645
- "data-flemo-bar-transition": S,
646
- "data-flemo-bar-status": k,
647
- "data-flemo-bar-active": b ? "true" : "false",
648
- "data-flemo-bar-riding": Pe ? "true" : "false",
649
- "data-flemo-anim-hold": Z,
662
+ "data-flemo-router": ie ?? void 0,
663
+ "data-flemo-bar-transition": w,
664
+ "data-flemo-bar-status": j,
665
+ "data-flemo-bar-active": x ? "true" : "false",
666
+ "data-flemo-bar-riding": Le ? "true" : "false",
667
+ "data-flemo-anim-hold": Q,
650
668
  style: {
651
- display: I ? "none" : void 0,
652
- position: T,
653
- bottom: m ? 0 : r,
669
+ display: R ? "none" : void 0,
670
+ position: E,
671
+ bottom: te ? 0 : r,
654
672
  left: 0,
655
673
  width: "100%",
656
674
  zIndex: 1
657
675
  },
658
- children: s
676
+ children: c
659
677
  }),
660
- P && /* @__PURE__ */ L(qe, {
661
- ref: De,
662
- "data-flemo-anim-hold": Z
678
+ F && /* @__PURE__ */ L(Xe, {
679
+ ref: W,
680
+ "data-flemo-anim-hold": Q
663
681
  }),
664
682
  /* @__PURE__ */ L("div", {
665
683
  "data-swipe-at-edge-bar": !0,
666
684
  style: {
667
- position: T,
685
+ position: E,
668
686
  top: 0,
669
687
  right: 0,
670
688
  width: 8,
@@ -677,38 +695,39 @@ function Ye({ children: e, statusBarHeight: t, statusBarColor: n, systemNavigati
677
695
  }
678
696
  //#endregion
679
697
  //#region src/screen/Screen.tsx
680
- function Xe({ children: e, ...t }) {
681
- let { isActive: n, isPrev: r, zIndex: i } = V(), a = _({
698
+ function $e({ children: e, ...t }) {
699
+ let { isActive: n, isPrev: r, zIndex: i } = V(), a = K((e) => e.index), s = Ye((e) => e.status), c = $((e) => e.dragStatus), l = $((e) => e.replaceTransitionStatus), u = _({
682
700
  isActive: n,
683
701
  isPrev: r,
684
702
  zIndex: i,
685
- index: G((e) => e.index),
686
- status: Q((e) => e.status),
687
- dragStatus: $((e) => e.dragStatus),
688
- replaceTransitionStatus: $((e) => e.replaceTransitionStatus)
689
- }), [s, c] = p(a !== "live");
690
- return a === "live" && s && c(!1), a === "immediate" && !s && c(!0), o(() => {
691
- if (a !== "deferred" || s) return;
692
- let e = setTimeout(() => c(!0), Ze);
703
+ index: a,
704
+ status: s,
705
+ dragStatus: c,
706
+ replaceTransitionStatus: l
707
+ }), [d, f] = p(u !== "live");
708
+ return u === "live" && d && f(!1), u === "immediate" && !d && f(!0), o(() => {
709
+ if (u !== "deferred" || d) return;
710
+ let e = setTimeout(() => f(!0), et);
693
711
  return () => clearTimeout(e);
694
- }, [a, s]), /* @__PURE__ */ L(We, {
695
- freeze: s,
696
- children: /* @__PURE__ */ L(Ye, {
712
+ }, [u, d]), /* @__PURE__ */ L(Ke, {
713
+ freeze: d,
714
+ children: /* @__PURE__ */ L(Qe, {
697
715
  ...t,
698
716
  children: e
699
717
  })
700
718
  });
701
719
  }
702
- var Ze = 600;
720
+ var et = 600;
703
721
  //#endregion
704
722
  //#region src/screen/Part.tsx
705
- function Qe({ ref: e, name: t, style: n, children: r, ...i }) {
706
- let { isActive: a, isPrev: o, navigateStore: s } = V(), c = z();
723
+ function tt({ ref: e, name: t, style: n, children: r, ...i }) {
724
+ let { isActive: o, isPrev: s, navigateStore: c, routerId: l } = V(), u = a(ke), d = l ?? u ?? void 0, f = z(), p = G(c ?? f.navigate, (e) => s ? "COMPLETED" : e.status);
707
725
  return /* @__PURE__ */ L("div", {
708
726
  ref: e,
709
727
  "data-flemo-part-name": t,
710
- "data-flemo-status": W(s ?? c.navigate, (e) => o ? "COMPLETED" : e.status),
711
- "data-flemo-active": a ? "true" : "false",
728
+ "data-flemo-router": d,
729
+ "data-flemo-status": p,
730
+ "data-flemo-active": o ? "true" : "false",
712
731
  style: n,
713
732
  ...i,
714
733
  children: r
@@ -716,13 +735,13 @@ function Qe({ ref: e, name: t, style: n, children: r, ...i }) {
716
735
  }
717
736
  //#endregion
718
737
  //#region src/stores/RouterScopeProvider.tsx
719
- function $e({ children: e }) {
738
+ function nt({ children: e }) {
720
739
  let [t] = p(() => ({
721
- history: x(),
722
- navigate: S(),
723
- transition: ce(),
740
+ history: ne(),
741
+ navigate: C(),
742
+ transition: M(),
724
743
  screen: k(),
725
- driver: ne(),
744
+ driver: x(),
726
745
  markSelfInduced: _e,
727
746
  consume: v,
728
747
  life: { alive: !0 }
@@ -733,4 +752,4 @@ function $e({ children: e }) {
733
752
  });
734
753
  }
735
754
  //#endregion
736
- export { Qe as Part, X as Route, ze as Router, $e as RouterScopeProvider, Xe as Screen, B as ScreenContext, qe as ScreenDecorator, We as ScreenFreeze, Ye as ScreenMotion, je as Slot, b as createBrowserHistoryDriver, re as createDecorator, w as createPartTransition, T as createRawDecorator, E as createRawPartTransition, D as createRawTransition, oe as createTransition, be as partTransitionMap, G as useHistoryStore, Be as useNavigate, Q as useNavigateStore, Ue as useParams, Ve as usePathname, V as useScreen, $ as useScreenStore, He as useStep, z as useStores, Je as useViewportScrollHeight };
755
+ export { tt as Part, He as Route, Ve as Router, nt as RouterScopeProvider, $e as Screen, B as ScreenContext, Xe as ScreenDecorator, Ke as ScreenFreeze, Qe as ScreenMotion, Ne as Slot, b as createBrowserHistoryDriver, S as createDecorator, re as createPartTransition, T as createRawDecorator, E as createRawPartTransition, D as createRawTransition, j as createTransition, P as partTransitionMap, K as useHistoryStore, Q as useNavigate, Ye as useNavigateStore, Ge as useParams, Ue as usePathname, V as useScreen, $ as useScreenStore, We as useStep, z as useStores, Ze as useViewportScrollHeight };
@@ -9,6 +9,7 @@ export interface ScreenContextProps extends History {
9
9
  prevTransitionName: TransitionName;
10
10
  routePath: Path;
11
11
  navigateStore?: FlemoStores["navigate"];
12
+ routerId?: string;
12
13
  }
13
14
  declare const ScreenContext: import('react').Context<ScreenContextProps>;
14
15
  export default ScreenContext;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flemo/react",
3
- "version": "1.8.2",
3
+ "version": "1.10.0",
4
4
  "description": "React bindings for flemo: Router, Route, Screen, and the screen-transition runtime.",
5
5
  "main": "./dist/index.mjs",
6
6
  "module": "./dist/index.mjs",
@@ -36,30 +36,30 @@
36
36
  "dependencies": {
37
37
  "path-to-regexp": "^8.4.2",
38
38
  "zustand": "^5.0.14",
39
- "@flemo/core": "1.22.0"
39
+ "@flemo/core": "1.23.0"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@testing-library/jest-dom": "^6.9.1",
43
43
  "@testing-library/react": "^16.3.2",
44
44
  "@types/node": "^24.13.1",
45
- "@types/react": "^19.2.17",
46
- "@types/react-dom": "^19.2.3",
47
- "@vitejs/plugin-react-swc": "^4.3.2",
45
+ "@types/react": "^19.2.18",
46
+ "@types/react-dom": "^19.2.4",
47
+ "@vitejs/plugin-react-swc": "^4.3.3",
48
48
  "@vitest/coverage-v8": "^4.1.10",
49
49
  "eslint": "^9.39.4",
50
50
  "jsdom": "^29.1.1",
51
- "react": "^19.2.7",
52
- "react-dom": "^19.2.7",
51
+ "react": "^19.2.8",
52
+ "react-dom": "^19.2.8",
53
53
  "typescript": "^6.0.3",
54
- "vite": "^8.1.5",
54
+ "vite": "^8.2.0",
55
55
  "vite-plugin-dts": "^5.0.3",
56
56
  "vitest": "^4.1.10",
57
57
  "@flemo/eslint-config": "0.0.0",
58
58
  "@flemo/tsconfig": "0.0.0"
59
59
  },
60
60
  "peerDependencies": {
61
- "react": "^19.2.7",
62
- "react-dom": "^19.2.7"
61
+ "react": "^19.2.8",
62
+ "react-dom": "^19.2.8"
63
63
  },
64
64
  "publishConfig": {
65
65
  "access": "public"