@real-router/react 0.27.0 → 0.27.1
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/cjs/{Await-whr-pcvo.d.ts → Await-D2oCO8nH.d.ts} +1 -1
- package/dist/cjs/{Await-whr-pcvo.d.ts.map → Await-D2oCO8nH.d.ts.map} +1 -1
- package/dist/cjs/{HttpStatusProvider-Dh6cMr95.d.ts → HttpStatusProvider-DfsVxZba.d.ts} +1 -1
- package/dist/cjs/{HttpStatusProvider-Dh6cMr95.d.ts.map → HttpStatusProvider-DfsVxZba.d.ts.map} +1 -1
- package/dist/cjs/{Link-BbOfYYdl.js → Link-CyDwbrFA.js} +2 -2
- package/dist/cjs/{Link-BbOfYYdl.js.map → Link-CyDwbrFA.js.map} +1 -1
- package/dist/cjs/{RouterErrorBoundary-BlJmaoyr.d.ts → RouterErrorBoundary-3UhUelqY.d.ts} +1 -1
- package/dist/cjs/{RouterErrorBoundary-BlJmaoyr.d.ts.map → RouterErrorBoundary-3UhUelqY.d.ts.map} +1 -1
- package/dist/cjs/{RouterProvider-mVFghB3a.js → RouterProvider-CPsCmrRw.js} +2 -2
- package/dist/cjs/{RouterProvider-mVFghB3a.js.map → RouterProvider-CPsCmrRw.js.map} +1 -1
- package/dist/cjs/{RouterProvider-cLYBGwc5.d.ts → RouterProvider-lgNarto1.d.ts} +2 -2
- package/dist/cjs/{RouterProvider-cLYBGwc5.d.ts.map → RouterProvider-lgNarto1.d.ts.map} +1 -1
- package/dist/cjs/{createHttpStatusSink-D_6IiR5E.js → createHttpStatusSink-ChfBL87y.js} +2 -2
- package/dist/cjs/{createHttpStatusSink-D_6IiR5E.js.map → createHttpStatusSink-ChfBL87y.js.map} +1 -1
- package/dist/cjs/index.d.ts +4 -4
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.react-server.d.ts +2 -2
- package/dist/cjs/ink.d.ts +2 -2
- package/dist/cjs/ink.js +1 -1
- package/dist/cjs/legacy.d.ts +3 -3
- package/dist/cjs/legacy.js +1 -1
- package/dist/cjs/legacy.ssr.d.ts +2 -2
- package/dist/cjs/legacy.ssr.js +1 -1
- package/dist/cjs/ssr.d.ts +3 -3
- package/dist/cjs/ssr.js +1 -1
- package/dist/cjs/ssr.react-server.d.ts +2 -2
- package/dist/cjs/{useDeferred-DE5YUsfa.d.ts → useDeferred-2fAqMTwr.d.ts} +1 -1
- package/dist/cjs/{useDeferred-DE5YUsfa.d.ts.map → useDeferred-2fAqMTwr.d.ts.map} +1 -1
- package/dist/cjs/useRoute-D2vAzKWM.js +2 -0
- package/dist/cjs/{useRoute-Dudo2K_0.js.map → useRoute-D2vAzKWM.js.map} +1 -1
- package/dist/cjs/{useRouteEnter-gfy65W0D.d.ts → useRouteEnter-CqO9sPPD.d.ts} +1 -1
- package/dist/cjs/{useRouteEnter-gfy65W0D.d.ts.map → useRouteEnter-CqO9sPPD.d.ts.map} +1 -1
- package/dist/cjs/{useRouterTransition-BfayPs0h.d.ts → useRouterTransition-D5nwRENd.d.ts} +2 -2
- package/dist/cjs/{useRouterTransition-BfayPs0h.d.ts.map → useRouterTransition-D5nwRENd.d.ts.map} +1 -1
- package/dist/esm/{Await-qSmJ-ZuN.d.mts → Await-D2oCO8nH.d.mts} +1 -1
- package/dist/esm/{Await-qSmJ-ZuN.d.mts.map → Await-D2oCO8nH.d.mts.map} +1 -1
- package/dist/esm/{HttpStatusProvider-Cy9GSANm.d.mts → HttpStatusProvider-DfsVxZba.d.mts} +1 -1
- package/dist/esm/{HttpStatusProvider-Cy9GSANm.d.mts.map → HttpStatusProvider-DfsVxZba.d.mts.map} +1 -1
- package/dist/esm/{Link-CQr9OFJ7.mjs → Link-uERoM4yk.mjs} +2 -2
- package/dist/esm/{Link-CQr9OFJ7.mjs.map → Link-uERoM4yk.mjs.map} +1 -1
- package/dist/esm/{RouterErrorBoundary-C-MH_yrP.d.mts → RouterErrorBoundary-3UhUelqY.d.mts} +1 -1
- package/dist/esm/{RouterErrorBoundary-C-MH_yrP.d.mts.map → RouterErrorBoundary-3UhUelqY.d.mts.map} +1 -1
- package/dist/esm/{RouterProvider-Dm7104-y.d.mts → RouterProvider-DCchvq4n.d.mts} +2 -2
- package/dist/esm/{RouterProvider-Dm7104-y.d.mts.map → RouterProvider-DCchvq4n.d.mts.map} +1 -1
- package/dist/esm/{RouterProvider-DTZrTBp6.mjs → RouterProvider-DgHypQTJ.mjs} +2 -2
- package/dist/esm/{RouterProvider-DTZrTBp6.mjs.map → RouterProvider-DgHypQTJ.mjs.map} +1 -1
- package/dist/esm/{createHttpStatusSink-BXWVamHE.mjs → createHttpStatusSink-CCocjF4h.mjs} +2 -2
- package/dist/esm/{createHttpStatusSink-BXWVamHE.mjs.map → createHttpStatusSink-CCocjF4h.mjs.map} +1 -1
- package/dist/esm/index.d.mts +4 -4
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/index.react-server.d.mts +2 -2
- package/dist/esm/ink.d.mts +2 -2
- package/dist/esm/ink.mjs +1 -1
- package/dist/esm/legacy.d.mts +3 -3
- package/dist/esm/legacy.mjs +1 -1
- package/dist/esm/legacy.ssr.d.mts +2 -2
- package/dist/esm/legacy.ssr.mjs +1 -1
- package/dist/esm/ssr.d.mts +3 -3
- package/dist/esm/ssr.mjs +1 -1
- package/dist/esm/ssr.react-server.d.mts +2 -2
- package/dist/esm/{useDeferred-B5Qy7ttQ.d.mts → useDeferred-2fAqMTwr.d.mts} +1 -1
- package/dist/esm/{useDeferred-B5Qy7ttQ.d.mts.map → useDeferred-2fAqMTwr.d.mts.map} +1 -1
- package/dist/esm/{useRoute-Bta1jyl2.mjs → useRoute-5MF3j-9P.mjs} +1 -1
- package/dist/esm/{useRoute-Bta1jyl2.mjs.map → useRoute-5MF3j-9P.mjs.map} +1 -1
- package/dist/esm/{useRouteEnter-CxjYofFa.d.mts → useRouteEnter-CqO9sPPD.d.mts} +1 -1
- package/dist/esm/{useRouteEnter-CxjYofFa.d.mts.map → useRouteEnter-CqO9sPPD.d.mts.map} +1 -1
- package/dist/esm/{useRouterTransition-CI1P95ZQ.d.mts → useRouterTransition-PCwA_qj1.d.mts} +2 -2
- package/dist/esm/{useRouterTransition-CI1P95ZQ.d.mts.map → useRouterTransition-PCwA_qj1.d.mts.map} +1 -1
- package/package.json +5 -5
- package/dist/cjs/useRoute-Dudo2K_0.js +0 -2
package/dist/cjs/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./useRoute-D2vAzKWM.js"),t=require("./RouterProvider-CPsCmrRw.js"),n=require("./Link-CyDwbrFA.js");let r=require("react"),i=require("@real-router/core"),a=require("@real-router/route-utils"),o=require("react/jsx-runtime");function s(e){return null}s.displayName=`RouteView.Match`;function c(e){return null}c.displayName=`RouteView.Self`;function l(e){return null}l.displayName=`RouteView.NotFound`;function u(e,t,n){return t===``?!1:n?e===t:(0,a.startsWithSegment)(e,t)}function d(e,t){r.Children.forEach(e,e=>{(0,r.isValidElement)(e)&&(e.type===s||e.type===c||e.type===l?t.push(e):d(e.props.children,t))})}function f(e,t,n,i,a){let s=a===void 0?e:(0,o.jsx)(r.Suspense,{fallback:a,children:e});return n?(0,o.jsx)(r.Activity,{mode:i,children:s},t):(0,o.jsx)(r.Fragment,{children:s},t)}function p(e,t){return e.type===l?(t.notFoundChildren=e.props.children,!0):e.type===c?(t.selfFound||=(t.selfChildren=e.props.children,t.selfFallback=e.props.fallback,!0),!0):!1}function m(e,t,n,r,i){let a=e.props,{segment:o,exact:s=!1,keepAlive:c=!1,fallback:l}=a,d=n?`${n}.${o}`:o;return!i&&u(t,d,s)?(r.add(d),{rendered:f(a.children,d,c,`visible`,l),matched:!0}):c&&r.has(d)?{rendered:f(a.children,d,c,`hidden`,l),matched:!1}:{rendered:null,matched:!1}}function h(e,t,n,a){if(a.selfFound&&t===n){e.push(f(a.selfChildren,`__route-view-self__`,!1,`visible`,a.selfFallback));return}t===i.UNKNOWN_ROUTE&&a.notFoundChildren!==null&&e.push((0,o.jsx)(r.Fragment,{children:a.notFoundChildren},`__route-view-not-found__`))}function g(e,t,n,r){let i={selfChildren:null,selfFallback:void 0,selfFound:!1,notFoundChildren:null},a=!1,o=[];for(let s of e){if(p(s,i))continue;let e=m(s,t,n,r,a);e.matched&&(a=!0),e.rendered!==null&&o.push(e.rendered)}return a||h(o,t,n,i),{rendered:o,activeMatchFound:a}}function _({nodeName:e,children:n}){let{route:i}=t.f(e),a=(0,r.useRef)(null);a.current??=new Set;let s=(0,r.useMemo)(()=>{let e=[];return d(n,e),e},[n]);if(!i)return null;let{rendered:c}=g(s,i.name,e,a.current);return c.length>0?(0,o.jsx)(o.Fragment,{children:c}):null}_.displayName=`RouteView`;const v=Object.assign(_,{Match:s,Self:c,NotFound:l});function y(e,n){let i=t.p(),a=(0,r.useRef)(e),o=n?.skipSameRoute??!0;(0,r.useLayoutEffect)(()=>{a.current=e}),(0,r.useEffect)(()=>i.subscribeLeave(({route:e,nextRoute:t,signal:n})=>{if(!(o&&e.name===t.name)&&!n.aborted)return a.current({route:e,nextRoute:t,signal:n})}),[i,o])}function b(t,n){let{route:i,previousRoute:a}=e.t(),o=(0,r.useRef)(t),s=(0,r.useRef)(null),c=n?.skipSameRoute??!0;(0,r.useLayoutEffect)(()=>{o.current=t}),(0,r.useEffect)(()=>{i.transition.from&&(c&&i.transition.from===i.name||s.current===i||!a||(s.current=i,o.current({route:i,previousRoute:a})))},[i,a,c])}exports.Link=n.t,exports.RouteView=v,exports.RouterErrorBoundary=t.a,exports.RouterProvider=t.t,exports.useNavigator=t.i,exports.useRoute=e.t,exports.useRouteEnter=b,exports.useRouteExit=y,exports.useRouteNode=t.f,exports.useRouteUtils=t.r,exports.useRouter=t.p,exports.useRouterTransition=t.n;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as RouteExitContext, d as NotFoundProps, f as RouteViewProps, n as RouteEnterHandler, o as RouteExitHandler, p as SelfProps, r as UseRouteEnterOptions, s as UseRouteExitOptions, t as RouteEnterContext, u as MatchProps } from "./useRouteEnter-
|
|
2
|
-
import { n as RouterErrorBoundaryProps, r as LinkProps } from "./RouterErrorBoundary-
|
|
1
|
+
import { a as RouteExitContext, d as NotFoundProps, f as RouteViewProps, n as RouteEnterHandler, o as RouteExitHandler, p as SelfProps, r as UseRouteEnterOptions, s as UseRouteExitOptions, t as RouteEnterContext, u as MatchProps } from "./useRouteEnter-CqO9sPPD.js";
|
|
2
|
+
import { n as RouterErrorBoundaryProps, r as LinkProps } from "./RouterErrorBoundary-3UhUelqY.js";
|
|
3
3
|
import { Navigator } from "@real-router/core";
|
|
4
4
|
import { RouterTransitionSnapshot } from "@real-router/sources";
|
|
5
5
|
export type { LinkProps, Navigator, RouteEnterContext, RouteEnterHandler, RouteExitContext, RouteExitHandler, MatchProps as RouteViewMatchProps, NotFoundProps as RouteViewNotFoundProps, RouteViewProps, SelfProps as RouteViewSelfProps, RouterErrorBoundaryProps, RouterTransitionSnapshot, UseRouteEnterOptions, UseRouteExitOptions };
|
package/dist/cjs/ink.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { n as RouterErrorBoundaryProps, t as RouterErrorBoundary } from "./RouterErrorBoundary-
|
|
2
|
-
import { a as useNavigator, i as useRouteUtils, n as useRouteNode, o as useRouter, r as useRoute, t as useRouterTransition } from "./useRouterTransition-
|
|
1
|
+
import { n as RouterErrorBoundaryProps, t as RouterErrorBoundary } from "./RouterErrorBoundary-3UhUelqY.js";
|
|
2
|
+
import { a as useNavigator, i as useRouteUtils, n as useRouteNode, o as useRouter, r as useRoute, t as useRouterTransition } from "./useRouterTransition-D5nwRENd.js";
|
|
3
3
|
import { FC, ReactNode } from "react";
|
|
4
4
|
import { NavigationOptions, Navigator, Params, Router } from "@real-router/core";
|
|
5
5
|
import { RouterTransitionSnapshot } from "@real-router/sources";
|
package/dist/cjs/ink.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./useRoute-D2vAzKWM.js"),t=require("./RouterProvider-CPsCmrRw.js");let n=require("react"),r=require("react/jsx-runtime"),i=require("ink");function a(e,t,n,r,i){return e?n??r??i:t?r??i:i}function o(e,n){return e.routeName===n.routeName&&e.activeStrict===n.activeStrict&&e.ignoreQueryParams===n.ignoreQueryParams&&e.color===n.color&&e.activeColor===n.activeColor&&e.focusColor===n.focusColor&&e.inverse===n.inverse&&e.activeInverse===n.activeInverse&&e.focusInverse===n.focusInverse&&e.id===n.id&&e.autoFocus===n.autoFocus&&e.onSelect===n.onSelect&&e.children===n.children&&t.u(e.routeParams,n.routeParams)&&t.u(e.routeOptions,n.routeOptions)}const s=(0,n.memo)(({routeName:n,routeParams:o=e.r,routeOptions:s=e.n,activeStrict:c=!1,ignoreQueryParams:l=!0,color:u,activeColor:d,focusColor:f,inverse:p,activeInverse:m,focusInverse:h,id:g,autoFocus:_,onSelect:v,children:y})=>{let b=t.p(),{isFocused:x}=(0,i.useFocus)({...g!==void 0&&{id:g},..._!==void 0&&{autoFocus:_}}),S=t.o(n,o,c,l);(0,i.useInput)((e,t)=>{t.return&&(v?.(),b.navigate(n,o,s).catch(()=>{}))},{isActive:x});let C=a(x,S,f,d,u),w=a(x,S,h,m,p),T={};return C!==void 0&&(T.color=C),w!==void 0&&(T.inverse=w),(0,r.jsx)(i.Text,{...T,children:y})},o);s.displayName=`InkLink`;const c=({router:e,children:n})=>(0,r.jsx)(t.t,{router:e,children:n});exports.InkLink=s,exports.InkRouterProvider=c,exports.RouterErrorBoundary=t.a,exports.useNavigator=t.i,exports.useRoute=e.t,exports.useRouteNode=t.f,exports.useRouteUtils=t.r,exports.useRouter=t.p,exports.useRouterTransition=t.n;
|
|
2
2
|
//# sourceMappingURL=ink.js.map
|
package/dist/cjs/legacy.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { n as RouterErrorBoundaryProps, r as LinkProps, t as RouterErrorBoundary } from "./RouterErrorBoundary-
|
|
2
|
-
import { n as Link, t as RouterProvider } from "./RouterProvider-
|
|
3
|
-
import { a as useNavigator, i as useRouteUtils, n as useRouteNode, o as useRouter, r as useRoute, t as useRouterTransition } from "./useRouterTransition-
|
|
1
|
+
import { n as RouterErrorBoundaryProps, r as LinkProps, t as RouterErrorBoundary } from "./RouterErrorBoundary-3UhUelqY.js";
|
|
2
|
+
import { n as Link, t as RouterProvider } from "./RouterProvider-lgNarto1.js";
|
|
3
|
+
import { a as useNavigator, i as useRouteUtils, n as useRouteNode, o as useRouter, r as useRoute, t as useRouterTransition } from "./useRouterTransition-D5nwRENd.js";
|
|
4
4
|
import { Navigator } from "@real-router/core";
|
|
5
5
|
import { RouterTransitionSnapshot } from "@real-router/sources";
|
|
6
6
|
export { Link, type LinkProps, type Navigator, RouterErrorBoundary, type RouterErrorBoundaryProps, RouterProvider, type RouterTransitionSnapshot, useNavigator, useRoute, useRouteNode, useRouteUtils, useRouter, useRouterTransition };
|
package/dist/cjs/legacy.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./useRoute-D2vAzKWM.js"),t=require("./RouterProvider-CPsCmrRw.js"),n=require("./Link-CyDwbrFA.js");exports.Link=n.t,exports.RouterErrorBoundary=t.a,exports.RouterProvider=t.t,exports.useNavigator=t.i,exports.useRoute=e.t,exports.useRouteNode=t.f,exports.useRouteUtils=t.r,exports.useRouter=t.p,exports.useRouterTransition=t.n;
|
package/dist/cjs/legacy.ssr.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as HttpStatusCode, c as StreamedProps, d as ClientOnly, f as ClientOnlyProps, i as createHttpStatusSink, l as ServerOnly, n as HttpStatusProviderProps, o as HttpStatusCodeProps, r as HttpStatusSink, s as Streamed, t as HttpStatusProvider, u as ServerOnlyProps } from "./HttpStatusProvider-
|
|
2
|
-
import { t as useDeferred } from "./useDeferred-
|
|
1
|
+
import { a as HttpStatusCode, c as StreamedProps, d as ClientOnly, f as ClientOnlyProps, i as createHttpStatusSink, l as ServerOnly, n as HttpStatusProviderProps, o as HttpStatusCodeProps, r as HttpStatusSink, s as Streamed, t as HttpStatusProvider, u as ServerOnlyProps } from "./HttpStatusProvider-DfsVxZba.js";
|
|
2
|
+
import { t as useDeferred } from "./useDeferred-2fAqMTwr.js";
|
|
3
3
|
export { ClientOnly, type ClientOnlyProps, HttpStatusCode, type HttpStatusCodeProps, HttpStatusProvider, type HttpStatusProviderProps, type HttpStatusSink, ServerOnly, type ServerOnlyProps, Streamed, type StreamedProps, createHttpStatusSink, useDeferred };
|
package/dist/cjs/legacy.ssr.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./createHttpStatusSink-ChfBL87y.js");exports.ClientOnly=e.s,exports.HttpStatusCode=e.n,exports.HttpStatusProvider=e.r,exports.ServerOnly=e.o,exports.Streamed=e.i,exports.createHttpStatusSink=e.t,exports.useDeferred=e.a;
|
package/dist/cjs/ssr.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as HttpStatusCode, c as StreamedProps, d as ClientOnly, f as ClientOnlyProps, i as createHttpStatusSink, l as ServerOnly, n as HttpStatusProviderProps, o as HttpStatusCodeProps, r as HttpStatusSink, s as Streamed, t as HttpStatusProvider, u as ServerOnlyProps } from "./HttpStatusProvider-
|
|
2
|
-
import { t as useDeferred } from "./useDeferred-
|
|
3
|
-
import { n as AwaitProps, t as Await } from "./Await-
|
|
1
|
+
import { a as HttpStatusCode, c as StreamedProps, d as ClientOnly, f as ClientOnlyProps, i as createHttpStatusSink, l as ServerOnly, n as HttpStatusProviderProps, o as HttpStatusCodeProps, r as HttpStatusSink, s as Streamed, t as HttpStatusProvider, u as ServerOnlyProps } from "./HttpStatusProvider-DfsVxZba.js";
|
|
2
|
+
import { t as useDeferred } from "./useDeferred-2fAqMTwr.js";
|
|
3
|
+
import { n as AwaitProps, t as Await } from "./Await-D2oCO8nH.js";
|
|
4
4
|
export { Await, type AwaitProps, ClientOnly, type ClientOnlyProps, HttpStatusCode, type HttpStatusCodeProps, HttpStatusProvider, type HttpStatusProviderProps, type HttpStatusSink, ServerOnly, type ServerOnlyProps, Streamed, type StreamedProps, createHttpStatusSink, useDeferred };
|
package/dist/cjs/ssr.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./createHttpStatusSink-ChfBL87y.js");let t=require("react");function n({name:n,children:r}){return r((0,t.use)(e.a(n)))}exports.Await=n,exports.ClientOnly=e.s,exports.HttpStatusCode=e.n,exports.HttpStatusProvider=e.r,exports.ServerOnly=e.o,exports.Streamed=e.i,exports.createHttpStatusSink=e.t,exports.useDeferred=e.a;
|
|
2
2
|
//# sourceMappingURL=ssr.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { c as StreamedProps, f as ClientOnlyProps, n as HttpStatusProviderProps, o as HttpStatusCodeProps, r as HttpStatusSink, u as ServerOnlyProps } from "./HttpStatusProvider-
|
|
2
|
-
import { n as AwaitProps } from "./Await-
|
|
1
|
+
import { c as StreamedProps, f as ClientOnlyProps, n as HttpStatusProviderProps, o as HttpStatusCodeProps, r as HttpStatusSink, u as ServerOnlyProps } from "./HttpStatusProvider-DfsVxZba.js";
|
|
2
|
+
import { n as AwaitProps } from "./Await-D2oCO8nH.js";
|
|
3
3
|
export type { AwaitProps, ClientOnlyProps, HttpStatusCodeProps, HttpStatusProviderProps, HttpStatusSink, ServerOnlyProps, StreamedProps };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDeferred-
|
|
1
|
+
{"version":3,"file":"useDeferred-2fAqMTwr.d.ts","names":[],"sources":["../../src/hooks/useDeferred.tsx"],"mappings":";;AA0BA;;;;;;;;;AAAgE;;;;;;;;;iBAAhD,WAAA,aAAA,CAAyB,GAAA,WAAc,OAAO,CAAC,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
let e=require("react");const t=(0,e.createContext)(null),n=(0,e.createContext)(null),r=(0,e.createContext)(null),i=Object.freeze({}),a=Object.freeze({}),o=new Promise(()=>{}),s=()=>{let n=(0,e.useContext)(t);if(!n)throw Error(`useRoute must be used within a RouterProvider`);if(!n.route)throw Error(`useRoute called with no active route. Did you forget to await router.start() before rendering, or is the router stopped/disposed?`);return n};Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return s}});
|
|
2
|
+
//# sourceMappingURL=useRoute-D2vAzKWM.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRoute-
|
|
1
|
+
{"version":3,"file":"useRoute-D2vAzKWM.js","names":[],"sources":["../../src/context.ts","../../src/constants.ts","../../src/hooks/useRoute.tsx"],"sourcesContent":["import { createContext } from \"react\";\n\nimport type { RouteContext as RouteContextType } from \"./types\";\nimport type { Router, Navigator } from \"@real-router/core\";\n\n// All three contexts use the `<T | null>` shape with a `null` default. Hooks\n// (useRouter / useRoute / useNavigator) treat a `null` read as\n// \"RouterProvider missing\" and throw — this surfaces wiring mistakes loudly\n// instead of letting consumers chase an undefined router instance.\nexport const RouteContext = createContext<RouteContextType | null>(null);\n\nexport const RouterContext = createContext<Router | null>(null);\n\nexport const NavigatorContext = createContext<Navigator | null>(null);\n","export const EMPTY_PARAMS = Object.freeze({});\n\nexport const EMPTY_OPTIONS = Object.freeze({});\n\n// Singleton forever-pending promise — module-scope so `useDeferred(unknownKey)`\n// returns a stable reference across calls (Suspense boundary doesn't retry).\nexport const NEVER_PROMISE = new Promise<never>(() => {\n // Intentionally never resolves — surfaces a forever-pending Suspense boundary\n // when a key is requested that the loader never declared.\n});\n","import { useContext } from \"react\";\n\nimport { RouteContext } from \"../context\";\n\nimport type { RouteContext as RouteContextType } from \"../types\";\nimport type { Params, State } from \"@real-router/core\";\n\n/**\n * Return shape of `useRoute<P>()` — the context with `route` narrowed to\n * `State<P>` (non-nullable). Promoting the intersection to a named alias\n * keeps the function signature and the cast site in sync.\n */\ntype RouteHookResult<P extends Params = Params> = Omit<\n RouteContextType<P>,\n \"route\"\n> & { route: State<P> };\n\nexport const useRoute = <P extends Params = Params>(): RouteHookResult<P> => {\n const routeContext = useContext(RouteContext);\n\n if (!routeContext) {\n throw new Error(\"useRoute must be used within a RouterProvider\");\n }\n\n if (!routeContext.route) {\n throw new Error(\n \"useRoute called with no active route. Did you forget to await router.start() before rendering, or is the router stopped/disposed?\",\n );\n }\n\n return routeContext as RouteHookResult<P>;\n};\n"],"mappings":"uBASA,MAAa,GAAA,EAAA,EAAA,eAAsD,IAAI,EAE1D,GAAA,EAAA,EAAA,eAA6C,IAAI,EAEjD,GAAA,EAAA,EAAA,eAAmD,IAAI,ECbvD,EAAe,OAAO,OAAO,CAAC,CAAC,EAE/B,EAAgB,OAAO,OAAO,CAAC,CAAC,EAIhC,EAAgB,IAAI,YAAqB,CAGtD,CAAC,ECQY,MAAgE,CAC3E,IAAM,GAAA,EAAA,EAAA,YAA0B,CAAY,EAE5C,GAAI,CAAC,EACH,MAAU,MAAM,+CAA+C,EAGjE,GAAI,CAAC,EAAa,MAChB,MAAU,MACR,mIACF,EAGF,OAAO,CACT"}
|
|
@@ -276,4 +276,4 @@ interface UseRouteEnterOptions {
|
|
|
276
276
|
declare function useRouteEnter(handler: RouteEnterHandler, options?: UseRouteEnterOptions): void;
|
|
277
277
|
//#endregion
|
|
278
278
|
export { RouteExitContext as a, useRouteExit as c, NotFoundProps as d, RouteViewProps as f, useRouteEnter as i, RouteView as l, RouteEnterHandler as n, RouteExitHandler as o, SelfProps as p, UseRouteEnterOptions as r, UseRouteExitOptions as s, RouteEnterContext as t, MatchProps as u };
|
|
279
|
-
//# sourceMappingURL=useRouteEnter-
|
|
279
|
+
//# sourceMappingURL=useRouteEnter-CqO9sPPD.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRouteEnter-
|
|
1
|
+
{"version":3,"file":"useRouteEnter-CqO9sPPD.d.ts","names":[],"sources":["../../src/components/modern/RouteView/types.ts","../../src/components/modern/RouteView/components.tsx","../../src/components/modern/RouteView/RouteView.tsx","../../src/hooks/useRouteExit.tsx","../../src/hooks/useRouteEnter.tsx"],"mappings":";;;;UAEiB,cAAA;;WAEN,QAAA;EAFM;EAAA,SAIN,QAAA,EAAU,SAAS;AAAA;AAAA,UAGb,UAAA;EALN;EAAA,SAOA,OAAA;EALU;EAAA,SAOV,KAAA;EAPmB;EAAA,SASnB,SAAA;EANgB;EAAA,SAQhB,QAAA,GAAW,SAAA;EAEQ;EAAA,SAAnB,QAAA,EAAU,SAAS;AAAA;AAAA,UAGb,SAAA;EALN;;;;;AAEmB;EAFnB,SAYA,QAAA,GAAW,SAAA;EAPI;EAAA,SASf,QAAA,EAAU,SAAS;AAAA;AAAA,UAGb,aAAA;EALK;EAAA,SAOX,QAAA,EAAU,SAAS;AAAA;;;iBClCd,KAAA,CAAM,MAAkB,EAAV,UAAU;AAAA,kBAAxB,KAAA;EAAA,IAAK,WAAA;AAAA;AAAA,iBAML,IAAA,CAAK,MAAiB,EAAT,SAAS;AAAA,kBAAtB,IAAA;EAAA,IAAI,WAAA;AAAA;AAAA,iBAMJ,QAAA,CAAS,MAAqB,EAAb,aAAa;AAAA,kBAA9B,QAAA;EAAA,IAAQ,WAAA;AAAA;;;iBCLf,aAAA,CAAA;EACP,QAAA;EACA;AAAA,GACC,QAAA,CAAS,cAAA,IAAkB,YAAA;AAAA,kBAHrB,aAAA;EAAA,IAAa,WAAA;AAAA;AAAA,cAgDT,SAAA,SAAS,aAAA;;;;;;;UCnDL,gBAAA;;EAEf,KAAA,EAAO,KAAA;EHNQ;EGQf,SAAA,EAAW,KAAA;;;;;;;AHJiB;EGY5B,MAAA,EAAQ,WAAA;AAAA;AAAA,UAGO,mBAAA;EHFa;;;;;EGQ5B,aAAa;AAAA;AAAA,KAGH,gBAAA,IACV,OAAA,EAAS,gBAAA,YACC,OAAO;;AHbW;AAG9B;;;;;;;;;AAS8B;AAG9B;;;;AAE8B;;;;AClC9B;;;;AAAwC;;;;;;AAMxC;;;;AAAsC;;;;;;AAMtC;;;;AAA8C;;;;;;;;;ACPJ;;;;;;;;;;;;;;;;;;AAKA;AAAA;;;;;AA6C1C;;;;;;;;;;iBCgEgB,YAAA,CACd,OAAA,EAAS,gBAAA,EACT,OAAA,GAAU,mBAAmB;;;UCrHd,iBAAA;;EAEf,KAAA,EAAO,KAAA;EJNQ;EIQf,aAAA,EAAe,KAAK;AAAA;AAAA,KAGV,iBAAA,IAAqB,OAA0B,EAAjB,iBAAiB;AAAA,UAE1C,oBAAA;EJTN;;;AAAmB;AAG9B;EIYE,aAAa;AAAA;;;;;;;;;;AJFe;AAG9B;;;;;;;;;AAS8B;AAG9B;;;;AAE8B;;;;AClC9B;;;;AAAwC;;;;;;AAMxC;;;;AAAsC;;;;;;AAMtC;;;;AAA8C;;;;;;;;;ACPJ;;;;;;;;;;;;;;;;;;AAKA;iBE4F1B,aAAA,CACd,OAAA,EAAS,iBAAA,EACT,OAAA,GAAU,oBAAoB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as RouteContext } from "./RouterErrorBoundary-
|
|
1
|
+
import { i as RouteContext } from "./RouterErrorBoundary-3UhUelqY.js";
|
|
2
2
|
import { Navigator, Params, Router, State } from "@real-router/core";
|
|
3
3
|
import { RouteUtils } from "@real-router/route-utils";
|
|
4
4
|
import { RouterTransitionSnapshot } from "@real-router/sources";
|
|
@@ -53,4 +53,4 @@ declare function useRouteNode(nodeName: string): RouteContext;
|
|
|
53
53
|
declare function useRouterTransition(): RouterTransitionSnapshot;
|
|
54
54
|
//#endregion
|
|
55
55
|
export { useNavigator as a, useRouteUtils as i, useRouteNode as n, useRouter as o, useRoute as r, useRouterTransition as t };
|
|
56
|
-
//# sourceMappingURL=useRouterTransition-
|
|
56
|
+
//# sourceMappingURL=useRouterTransition-D5nwRENd.d.ts.map
|
package/dist/cjs/{useRouterTransition-BfayPs0h.d.ts.map → useRouterTransition-D5nwRENd.d.ts.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRouterTransition-
|
|
1
|
+
{"version":3,"file":"useRouterTransition-D5nwRENd.d.ts","names":[],"sources":["../../src/hooks/useRouter.tsx","../../src/hooks/useNavigator.tsx","../../src/hooks/useRouteUtils.tsx","../../src/hooks/useRoute.tsx","../../src/hooks/useRouteNode.tsx","../../src/hooks/useRouterTransition.tsx"],"mappings":";;;;;;cAMa,SAAA,QAAgB,MAQ5B;;;cCRY,YAAA,QAAmB,SAQ/B;;;;;;;;ADRD;;;;AAQC;;;;ACRD;;;;AAQC;;;;ACgBD;;cAAa,aAAA,QAAoB,UAIhC;;;;;;;AF5BD;KGMK,eAAA,WAA0B,MAAA,GAAS,MAAA,IAAU,IAAA,CAChD,YAAA,CAAiB,CAAA;EAEb,KAAA,EAAO,KAAA,CAAM,CAAA;AAAA;AAAA,cAEN,QAAA,aAAsB,MAAA,GAAS,MAAA,OAAW,eAAA,CAAgB,CAAA;;;iBCTvD,YAAA,CAAa,QAAA,WAAmB,YAAY;;;iBCD5C,mBAAA,CAAA,GAAuB,wBAAwB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Await-
|
|
1
|
+
{"version":3,"file":"Await-D2oCO8nH.d.mts","names":[],"sources":["../../src/components/Await.tsx"],"mappings":";;;UAMiB,UAAA;;WAEN,IAAA;EAFgB;;EAAA,SAKhB,QAAA,GAAW,KAAA,EAAO,CAAA,KAAM,SAAS;AAAA;;;;;;;AAAA;AA2B5C;;;;;;;;;;;;;;;;;iBAAgB,KAAA,aAAA,CAAA;EACd,IAAA;EACA;AAAA,GACC,UAAA,CAAW,CAAA,IAAK,SAAA"}
|
|
@@ -140,4 +140,4 @@ declare function HttpStatusProvider({
|
|
|
140
140
|
}: HttpStatusProviderProps): ReactNode;
|
|
141
141
|
//#endregion
|
|
142
142
|
export { HttpStatusCode as a, StreamedProps as c, ClientOnly as d, ClientOnlyProps as f, createHttpStatusSink as i, ServerOnly as l, HttpStatusProviderProps as n, HttpStatusCodeProps as o, HttpStatusSink as r, Streamed as s, HttpStatusProvider as t, ServerOnlyProps as u };
|
|
143
|
-
//# sourceMappingURL=HttpStatusProvider-
|
|
143
|
+
//# sourceMappingURL=HttpStatusProvider-DfsVxZba.d.mts.map
|
package/dist/esm/{HttpStatusProvider-Cy9GSANm.d.mts.map → HttpStatusProvider-DfsVxZba.d.mts.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpStatusProvider-
|
|
1
|
+
{"version":3,"file":"HttpStatusProvider-DfsVxZba.d.mts","names":[],"sources":["../../src/components/ClientOnly.tsx","../../src/components/ServerOnly.tsx","../../src/components/Streamed.tsx","../../src/components/HttpStatusCode.tsx","../../src/utils/createHttpStatusSink.ts","../../src/components/HttpStatusProvider.tsx"],"mappings":";;;UAIiB,eAAA;EAAA,SACN,QAAA,EAAU,SAAA;EAAA,SACV,QAAA,GAAW,SAAS;AAAA;AAAA,iBAGf,UAAA,CAAA;EACd,QAAA;EACA;AAAA,GACC,eAAA,GAAkB,SAAA;;;UCRJ,eAAA;EAAA,SACN,QAAA,EAAU,SAAA;EAAA,SACV,QAAA,GAAW,SAAS;AAAA;AAAA,iBAGf,UAAA,CAAA;EACd,QAAA;EACA;AAAA,GACC,eAAA,GAAkB,SAAA;;;UCRJ,aAAA;;WAEN,QAAA,EAAU,SAAA;EAAA,SACV,QAAA,EAAU,SAAS;AAAA;;;;;;;AFDC;AAG/B;;;;;;;;;;iBEkBgB,QAAA,CAAA;EAAW,QAAA;EAAU;AAAA,GAAY,aAAA,GAAgB,SAAA;;;UCrBhD,mBAAA;;WAEN,IAAI;AAAA;;;;;;;;AHFgB;AAG/B;;;;;;;;;;;;;;;;AAG8B;;;;ACR9B;;;;;;;;;AAE+B;AAG/B;;;;;;;;iBEgDgB,cAAA,CAAA;EAAiB;AAAA,GAAQ,mBAAA,GAAsB,SAAA;;;;;;AHrD/D;;;;;;;;;AAE+B;AAG/B;;;;;;;UIWiB,cAAA;EACf,IAAI;AAAA;AAAA,iBAGU,oBAAA,CAAA,GAAwB,cAAc;;;UCjBrC,uBAAA;EAAA,SACN,IAAA,EAAM,cAAA;EAAA,SACN,QAAA,EAAU,SAAS;AAAA;AAAA,iBAGd,kBAAA,CAAA;EACd,IAAA;EACA;AAAA,GACC,uBAAA,GAA0B,SAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{n as e,r as t}from"./useRoute-
|
|
2
|
-
//# sourceMappingURL=Link-
|
|
1
|
+
import{n as e,r as t}from"./useRoute-5MF3j-9P.mjs";import{c as n,d as r,l as i,o as a,p as o,s,u as c}from"./RouterProvider-DgHypQTJ.mjs";import{memo as l,useMemo as u}from"react";import{jsx as d}from"react/jsx-runtime";function f(e,t){return e.routeName===t.routeName&&e.className===t.className&&e.activeClassName===t.activeClassName&&e.activeStrict===t.activeStrict&&e.ignoreQueryParams===t.ignoreQueryParams&&e.onClick===t.onClick&&e.target===t.target&&e.style===t.style&&e.children===t.children&&e.hash===t.hash&&c(e.routeParams,t.routeParams)&&c(e.routeOptions,t.routeOptions)}const p=l(({routeName:c,routeParams:l=t,routeOptions:f=e,className:p,activeClassName:m=`active`,activeStrict:h=!1,ignoreQueryParams:g=!0,hash:_,onClick:v,target:y,children:b,...x})=>{let S=o(),C=a(c,l,h,g,_),w=n(S,c,l,_===void 0?void 0:{hash:_}),T=e=>{v&&(v(e),e.defaultPrevented)||!r(e.nativeEvent)||y===`_blank`||(e.preventDefault(),i(S,c,l,_,f).catch(()=>{}))},E=u(()=>s(C,m,p),[C,m,p]);return d(`a`,{...x,href:w,className:E,onClick:T,children:b})},f);p.displayName=`Link`;export{p as t};
|
|
2
|
+
//# sourceMappingURL=Link-uERoM4yk.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link-
|
|
1
|
+
{"version":3,"file":"Link-uERoM4yk.mjs","names":[],"sources":["../../src/components/Link.tsx"],"sourcesContent":["import { memo, useMemo } from \"react\";\n\nimport { EMPTY_PARAMS, EMPTY_OPTIONS } from \"../constants\";\nimport {\n shouldNavigate,\n buildHref,\n buildActiveClassName,\n navigateWithHash,\n shallowEqual,\n} from \"../dom-utils\";\nimport { useIsActiveRoute } from \"../hooks/useIsActiveRoute\";\nimport { useRouter } from \"../hooks/useRouter\";\n\nimport type { LinkProps } from \"../types\";\nimport type { FC, MouseEvent } from \"react\";\n\nfunction areLinkPropsEqual(\n prev: Readonly<LinkProps>,\n next: Readonly<LinkProps>,\n): boolean {\n return (\n prev.routeName === next.routeName &&\n prev.className === next.className &&\n prev.activeClassName === next.activeClassName &&\n prev.activeStrict === next.activeStrict &&\n prev.ignoreQueryParams === next.ignoreQueryParams &&\n prev.onClick === next.onClick &&\n prev.target === next.target &&\n prev.style === next.style &&\n prev.children === next.children &&\n prev.hash === next.hash &&\n shallowEqual(prev.routeParams, next.routeParams) &&\n shallowEqual(prev.routeOptions, next.routeOptions)\n );\n}\n\nconst LinkImpl: FC<LinkProps> = ({\n routeName,\n routeParams = EMPTY_PARAMS,\n routeOptions = EMPTY_OPTIONS,\n className,\n activeClassName = \"active\",\n activeStrict = false,\n ignoreQueryParams = true,\n hash,\n onClick,\n target,\n children,\n ...props\n}) => {\n // memo + areLinkPropsEqual guarantees that on bail-out the component does\n // not render; on render, routeParams/routeOptions either changed reference\n // (true change) or comparator failed (e.g., BigInt fallback to identity),\n // so they're safe to use directly in hook deps.\n\n const router = useRouter();\n\n // When `hash` prop is set, active state requires both route AND hash to\n // match (#532). Without this, three tab links sharing routeName=\"settings\"\n // would all be marked active by route-name alone, defeating tab semantics.\n const isActive = useIsActiveRoute(\n routeName,\n routeParams,\n activeStrict,\n ignoreQueryParams,\n hash,\n );\n\n // No useMemo: outer memo()+shallowEqual prevents Link re-render unless a\n // prop actually changed. When this body runs, either `hash` differs from\n // last render or another prop changed — in both cases the `{ hash }` alloc\n // is unavoidable. The useMemo wrapper added one closure + deps slot per\n // render without saving an allocation.\n const hashOption = hash === undefined ? undefined : { hash };\n const href = buildHref(router, routeName, routeParams, hashOption);\n\n // useCallback was wasteful: 7 deps recreated the closure on every meaningful\n // render anyway, and `<a onClick>` does not benefit from a stable function\n // identity (no child-memo-bail-out chain past it). Inline arrow function is\n // what React Compiler emits automatically for this shape.\n const handleClick = (evt: MouseEvent<HTMLAnchorElement>) => {\n if (onClick) {\n onClick(evt);\n\n if (evt.defaultPrevented) {\n return;\n }\n }\n\n if (!shouldNavigate(evt.nativeEvent) || target === \"_blank\") {\n return;\n }\n\n evt.preventDefault();\n navigateWithHash(router, routeName, routeParams, hash, routeOptions).catch(\n () => {},\n );\n };\n\n // Memoize the joined class string. parseTokens + Set + join on every render\n // adds up on pages with N Links navigating frequently; deps cover every\n // input the function reads so cache invalidation is exact.\n const finalClassName = useMemo(\n () => buildActiveClassName(isActive, activeClassName, className),\n [isActive, activeClassName, className],\n );\n\n return (\n <a {...props} href={href} className={finalClassName} onClick={handleClick}>\n {children}\n </a>\n );\n};\n\nexport const Link: FC<LinkProps> = memo(LinkImpl, areLinkPropsEqual);\n\nLink.displayName = \"Link\";\n"],"mappings":"4NAgBA,SAAS,EACP,EACA,EACS,CACT,OACE,EAAK,YAAc,EAAK,WACxB,EAAK,YAAc,EAAK,WACxB,EAAK,kBAAoB,EAAK,iBAC9B,EAAK,eAAiB,EAAK,cAC3B,EAAK,oBAAsB,EAAK,mBAChC,EAAK,UAAY,EAAK,SACtB,EAAK,SAAW,EAAK,QACrB,EAAK,QAAU,EAAK,OACpB,EAAK,WAAa,EAAK,UACvB,EAAK,OAAS,EAAK,MACnB,EAAa,EAAK,YAAa,EAAK,WAAW,GAC/C,EAAa,EAAK,aAAc,EAAK,YAAY,CAErD,CAgFA,MAAa,EAAsB,GA9EF,CAC/B,YACA,cAAc,EACd,eAAe,EACf,YACA,kBAAkB,SAClB,eAAe,GACf,oBAAoB,GACpB,OACA,UACA,SACA,WACA,GAAG,KACC,CAMJ,IAAM,EAAS,EAAU,EAKnB,EAAW,EACf,EACA,EACA,EACA,EACA,CACF,EAQM,EAAO,EAAU,EAAQ,EAAW,EADvB,IAAS,IAAA,GAAY,IAAA,GAAY,CAAE,MAAK,CACM,EAM3D,EAAe,GAAuC,CACtD,IACF,EAAQ,CAAG,EAEP,EAAI,mBAKN,CAAC,EAAe,EAAI,WAAW,GAAK,IAAW,WAInD,EAAI,eAAe,EACnB,EAAiB,EAAQ,EAAW,EAAa,EAAM,CAAY,EAAE,UAC7D,CAAC,CACT,EACF,EAKM,EAAiB,MACf,EAAqB,EAAU,EAAiB,CAAS,EAC/D,CAAC,EAAU,EAAiB,CAAS,CACvC,EAEA,OACE,EAAC,IAAD,CAAG,GAAI,EAAa,OAAM,UAAW,EAAgB,QAAS,EAC3D,UACA,CAAA,CAEP,EAEkD,CAAiB,EAEnE,EAAK,YAAc"}
|
|
@@ -44,4 +44,4 @@ declare function RouterErrorBoundary({
|
|
|
44
44
|
}: RouterErrorBoundaryProps): ReactElement;
|
|
45
45
|
//#endregion
|
|
46
46
|
export { RouteContext as i, RouterErrorBoundaryProps as n, LinkProps as r, RouterErrorBoundary as t };
|
|
47
|
-
//# sourceMappingURL=RouterErrorBoundary-
|
|
47
|
+
//# sourceMappingURL=RouterErrorBoundary-3UhUelqY.d.mts.map
|
package/dist/esm/{RouterErrorBoundary-C-MH_yrP.d.mts.map → RouterErrorBoundary-3UhUelqY.d.mts.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RouterErrorBoundary-
|
|
1
|
+
{"version":3,"file":"RouterErrorBoundary-3UhUelqY.d.mts","names":[],"sources":["../../src/types.ts","../../src/components/RouterErrorBoundary.tsx"],"mappings":";;;;UAQiB,UAAA,WAAqB,MAAA,GAAS,MAAA;EAC7C,KAAA,EAAO,KAAA,CAAM,CAAA;EACb,aAAA,GAAgB,KAAA;AAAA;AAAA,KAGN,YAAA,WAAuB,MAAA,GAAS,MAAA;EAC1C,SAAA,EAAW,SAAA;AAAA,IACT,UAAA,CAAW,CAAA;AAAA,UAEE,SAAA,WACL,MAAA,GAAS,MAAA,UACX,cAAA,CAAe,iBAAA;EACvB,SAAA;EACA,WAAA,GAAc,CAAA;EACd,YAAA,GAAe,iBAAA;EACf,eAAA;EACA,YAAA;EACA,iBAAA;EAjB6C;;;;;;;AAExB;AAGvB;EAsBE,IAAA;EACA,MAAA;EACA,OAAA,GAAU,iBAAA,CAAkB,iBAAA;EAC5B,WAAA,GAAc,iBAAA,CAAkB,iBAAA;AAAA;;;UCxBjB,wBAAA;EAAA,SACN,QAAA,EAAU,SAAA;EAAA,SACV,QAAA,GAAW,KAAA,EAAO,WAAA,EAAa,UAAA,iBAA2B,SAAA;EAAA,SAC1D,OAAA,IACP,KAAA,EAAO,WAAA,EACP,OAAA,EAAS,KAAA,SACT,SAAA,EAAW,KAAA;AAAA;AAAA,iBAIC,mBAAA,CAAA;EACd,QAAA;EACA,QAAA;EACA;AAAA,GACC,wBAAA,GAA2B,YAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as LinkProps } from "./RouterErrorBoundary-
|
|
1
|
+
import { r as LinkProps } from "./RouterErrorBoundary-3UhUelqY.mjs";
|
|
2
2
|
import { FC, ReactNode } from "react";
|
|
3
3
|
import { NavigationOptions, Params, Router, State } from "@real-router/core";
|
|
4
4
|
|
|
@@ -106,4 +106,4 @@ interface RouteProviderProps {
|
|
|
106
106
|
declare const RouterProvider: FC<RouteProviderProps>;
|
|
107
107
|
//#endregion
|
|
108
108
|
export { Link as n, RouterProvider as t };
|
|
109
|
-
//# sourceMappingURL=RouterProvider-
|
|
109
|
+
//# sourceMappingURL=RouterProvider-DCchvq4n.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RouterProvider-
|
|
1
|
+
{"version":3,"file":"RouterProvider-DCchvq4n.d.mts","names":[],"sources":["../../src/components/Link.tsx","../../../../shared/dom-utils/scroll-restore.ts","../../../../shared/dom-utils/scroll-spy.ts","../../src/RouterProvider.tsx"],"mappings":";;;;;cAkHa,IAAA,EAAM,EAAE,CAAC,SAAA;;;KChGV,qBAAA;AAAA,UAEK,wBAAA;EACf,IAAA,GAAO,qBAAA;EACP,eAAA;EACA,eAAA,UAAyB,WAAA;ED2FyC;;;AAArC;;;;AChG/B;;;;AAAiC;EAkB/B,QAAA,GAAW,cAAA;EAhB4B;;;;;;;EAwBvC,UAAA;AAAA;;;;;;;ADsEF;;;;AAA+B;;;;AChG/B;;;;AAAiC;AAEjC;;;;;;;;;;;;;;;;;AAwBY;;;;UCFK,gBAAA;EAAgB;;;;;EAM/B,QAAA;EAcyB;;AAAW;;;EAPpC,UAAA;ECvCe;;;;;ED8Cf,eAAA,UAAyB,WAAW;AAAA;;;UC9CrB,kBAAA;EACf,MAAA,EAAQ,MAAA;EACR,QAAA,EAAU,SAAA;EACV,kBAAA;EACA,iBAAA,GAAoB,wBAAA;EACpB,SAAA,GAAY,gBAAA;EACZ,eAAA;AAAA;AAAA,cAGW,cAAA,EAAgB,EAAE,CAAC,kBAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as e,o as t,s as n}from"./useRoute-Bta1jyl2.mjs";import{useContext as r,useEffect as i,useLayoutEffect as a,useMemo as o,useRef as s,useSyncExternalStore as c}from"react";import{getNavigator as l}from"@real-router/core";import{getRouteUtils as u}from"@real-router/route-utils";import{Fragment as d,jsx as f,jsxs as p}from"react/jsx-runtime";import{createActiveRouteSource as m,createDismissableError as h,createRouteNodeSource as g,createRouteSource as _,getTransitionSource as v}from"@real-router/sources";import{getPluginApi as y}from"@real-router/core/api";const b=()=>{let e=r(n);if(!e)throw Error(`useRouter must be used within a RouterProvider`);return e};function x(e){let t=b(),n=o(()=>g(t,e),[t,e]),r=c(n.subscribe,n.getSnapshot,n.getSnapshot),i=l(t);return o(()=>({navigator:i,route:r.route,previousRoute:r.previousRoute}),[i,r])}const S=`data-real-router-announcer`,C=Object.freeze({destroy:()=>{}});function w(e,t){if(typeof document>`u`)return C;let n=t?.prefix??`Navigated to `,r=t?.getAnnouncementText,i=!0,a=!1,o=!1,s=``,c=null,l,u=T(),d=(e,t)=>{s=e,clearTimeout(l),u.textContent=e,l=setTimeout(()=>{u.textContent=``,s=``},7e3),O(t)},f=setTimeout(()=>{if(a=!0,c!==null&&!o){let e=c;c=null,d(e,document.querySelector(`h1`))}},100),p=e.subscribe(({route:e})=>{if(i){i=!1;return}requestAnimationFrame(()=>{requestAnimationFrame(()=>{if(o)return;let t=document.querySelector(`h1`),i=D(e,n,r,t);if(!(!i||i===s)){if(!a){c=i;return}d(i,t)}})})});return{destroy(){o=!0,p(),clearTimeout(l),clearTimeout(f),E()}}}function T(){let e=document.querySelector(`[${S}]`);if(e)return e;let t=document.createElement(`div`);return t.setAttribute(`style`,`position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0`),t.setAttribute(`aria-live`,`assertive`),t.setAttribute(`aria-atomic`,`true`),t.setAttribute(S,``),(document.body??document.documentElement).prepend(t),t}function E(){document.querySelector(`[${S}]`)?.remove()}function D(e,t,n,r){if(n)try{let t=n(e);if(t)return t}catch(e){console.error(`[real-router] getAnnouncementText threw; falling back to default resolution.`,e)}let i=(r?.textContent??``).trim(),a=e.name.startsWith(`@@`)?``:e.name;return`${t}${i||document.title||a||globalThis.location.pathname}`}function O(e){e&&(e.hasAttribute(`tabindex`)||e.setAttribute(`tabindex`,`-1`),e.focus({preventScroll:!0}))}const k=Object.freeze({destroy:()=>{}});function A(e,t){if(globalThis.window===void 0)return k;let n=t?.mode??`restore`;if(n===`native`)return k;let r=t?.anchorScrolling??!0,i=t?.scrollContainer,a=t?.behavior??`auto`,o=t?.storageKey??`real-router:scroll`,s,c=()=>{if(s!==void 0)return s;try{let e=sessionStorage.getItem(o);s=e?JSON.parse(e):{}}catch{s={}}return s},l=(e,t)=>{try{let n=c();if(n[e]===t)return;n[e]=t,sessionStorage.setItem(o,JSON.stringify(n))}catch{}},u=history.scrollRestoration;try{history.scrollRestoration=`manual`}catch{}let d=()=>{let e=i?.();return e?e.scrollTop:globalThis.scrollY},f=e=>{let t=i?.();t?t.scrollTo({top:e,left:0,behavior:a}):globalThis.scrollTo({top:e,left:0,behavior:a})},p=e=>{if(!i){globalThis.scrollTo({top:e,left:0,behavior:a});return}let t=0,n=()=>{if(h)return;let r=i();if(r){if(r.scrollTo({top:e,left:0,behavior:a}),a!==`smooth`&&Math.abs(r.scrollTop-e)<=1)return}else globalThis.scrollTo({top:e,left:0,behavior:a});t>=10||(t+=1,requestAnimationFrame(n))};n()},m=e=>{let t=e.context?.url?.hash;if(t!==void 0){if(r&&t.length>0){let e=document.getElementById(t);if(e){e.scrollIntoView({behavior:a});return}}f(0);return}let n=globalThis.location.hash;if(r&&n.length>1){let e;try{e=decodeURIComponent(n.slice(1))}catch{e=n.slice(1)}let t=document.getElementById(e);if(t){t.scrollIntoView({behavior:a});return}}f(0)},h=!1,g=!1,_=e=>{try{return M(e)}catch{return g||(g=!0,console.error(`[real-router] scroll-restore: route "${e.name}" has params that cannot be canonicalized (e.g. BigInt or cyclic structure). Scroll position will not be captured or restored for this route.`)),null}},v=e.subscribe(({route:e,previousRoute:t})=>{let r=e.context.navigation;if(t){let e=_(t);e!==null&&l(e,d())}requestAnimationFrame(()=>{if(!h){if(n===`top`){m(e);return}if(e.transition.reload||r?.navigationType===`reload`){let t=_(e);p(t===null?0:c()[t]??0);return}if(r?.direction===`back`||r?.navigationType===`traverse`){let t=_(e);p(t===null?0:c()[t]??0);return}e.transition.replace||r?.navigationType===`replace`||m(e)}})}),y=()=>{let t=e.getState();if(t){let e=_(t);e!==null&&l(e,d())}};return globalThis.addEventListener(`pagehide`,y),{destroy:()=>{if(!h){h=!0,v(),globalThis.removeEventListener(`pagehide`,y);try{history.scrollRestoration=u}catch{}}}}}const j=new WeakMap;function M(e){let t=j.get(e);if(t!==void 0)return t;let n=`${e.name}:${ee(e.params)}`;return j.set(e,n),n}function ee(e){return JSON.stringify(e,N)}function N(e,t){if(typeof t==`function`)return`<fn>`;if(typeof t==`symbol`)return`<sym>`;if(typeof t==`object`&&t&&!Array.isArray(t)){let e=Object.create(null),n=Object.keys(t).sort((e,t)=>e.localeCompare(t));for(let r of n)e[r]=t[r];return e}return t}const P=Object.freeze({destroy:()=>{}}),F=e=>e.context?.url,I=e=>{let t=null,n=1/0,r=null,i=-1/0;for(let a of e){if(!a.isIntersecting)continue;let e=a.rootBounds?.top??0,o=a.boundingClientRect.top-e;o>=0?o<n&&(t=a,n=o):o>i&&(r=a,i=o)}return t??r},L=(e,t)=>{let n=null,r=e=>{let n=e.context;n&&n.url===void 0&&(console.warn(`[real-router] scroll-spy: state.context.url is not claimed. Spy requires browser-plugin or navigation-plugin. Disabling.`),t())},i=e.getState();if(i)r(i);else{let t=!1;n=e.subscribe(({route:e})=>{t||(t=!0,r(e),n?.(),n=null)})}return{destroy(){n?.(),n=null}}},R=e=>{let t=!1,n=null,r=null,i=null,a=()=>{n!==null&&(clearTimeout(n),n=null),i&&(r??globalThis).removeEventListener(`scrollend`,i),i=null,r=null,t=!1};return{get active(){return t},start(){a(),t=!0;let o=()=>{a()};i=o,r=e(),(r??globalThis).addEventListener(`scrollend`,o,{once:!0}),n=setTimeout(o,500)},destroy(){a()}}},z=(e,t)=>{let n=null,r=null;return{schedule(){n===null&&(n=requestAnimationFrame(()=>{n=null,r!==null&&clearTimeout(r),r=setTimeout(()=>{r=null,e()},t)}))},destroy(){n!==null&&(cancelAnimationFrame(n),n=null),r!==null&&(clearTimeout(r),r=null)}}},B=(e,t,n,r,i,a)=>{let o=new Set,s=new Map,c=!1,l=null,u=new IntersectionObserver(e=>{if(!a()){for(let t of e)s.set(t.target,t);r()}},{root:n(),rootMargin:t,threshold:0}),d=()=>{let t=n()??document,r;try{r=t.querySelectorAll(e)}catch{i();return}let a=new Set;for(let e of r){let t=e.id;t&&!c&&(a.has(t)&&(c=!0,console.warn(`[real-router] scroll-spy: duplicate id "${t}" observed. Selection picks the topmost visible match deterministically.`)),a.add(t)),!o.has(e)&&(u.observe(e),o.add(e))}},f=()=>{for(let e of o)e.isConnected||(u.unobserve(e),o.delete(e),s.delete(e));d()};d();let p=n()??document.body,m=new MutationObserver(()=>{l!==null&&clearTimeout(l),l=setTimeout(()=>{l=null,f()},250)});return m.observe(p,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`id`]}),{pending:s,destroy(){u.disconnect(),m.disconnect(),l!==null&&(clearTimeout(l),l=null),o.clear(),s.clear()}}};function V(e,t){if(typeof document>`u`||typeof IntersectionObserver>`u`)return P;let{selector:n}=t;if(!n)return P;let r=t.rootMargin??`-20% 0px -60% 0px`,i=t.scrollContainer,a=()=>i?.()??null,o=!1,s=!1,c=!1,l=()=>s||o,u=null,d=v(e),f=L(e,()=>{s=!0}),p=R(a),m=z(()=>{u?.()},150),h=B(n,r,a,()=>{m.schedule()},()=>{s||(s=!0,console.warn(`[real-router] scroll-spy: invalid selector "${n}". Disabling.`))},l);u=()=>{if(o||s){h.pending.clear();return}if(d.getSnapshot().isTransitioning||p.active||h.pending.size===0)return;let t=I(h.pending.values());if(h.pending.clear(),!t)return;let n=t.target.id;if(!n)return;let r=e.getState();if(!r||n===(F(r)?.hash??``))return;let i={hash:n,replace:!0,force:!0,hashChange:!0};c=!0,e.navigate(r.name,r.params,i).catch(()=>{}).finally(()=>{c=!1})};let g=e.subscribe(({route:e})=>{c||F(e)?.hashChanged&&p.start()});return{destroy(){o||(o=!0,g(),h.destroy(),m.destroy(),p.destroy(),f.destroy())}}}const H=Object.freeze({destroy:()=>{}});function U(e){if(typeof document>`u`||typeof document.startViewTransition!=`function`)return H;let t=null,n=null,r=!1,i=()=>{t?.(),t=null},a=e.subscribeLeave(({signal:e})=>{if(!e.aborted)return r=!1,i(),new Promise(a=>{let o=new Promise(e=>{t=e});e.addEventListener(`abort`,()=>{r||(i(),n?.skipTransition?.(),a())},{once:!0});try{n=document.startViewTransition(()=>(a(),o))}catch{i(),a()}})}),o=e.subscribe(()=>{let e=t;r=!0,t=null,e===null?n=null:setTimeout(()=>{e(),n=null},0)});return{destroy:()=>{a(),o(),n?.skipTransition?.(),n=null,i()}}}function W(e){return e.button===0&&!e.metaKey&&!e.altKey&&!e.ctrlKey&&!e.shiftKey}const G=/%[\dA-Fa-f]{2}/;function K(e){if(G.test(e))try{return encodeURI(decodeURIComponent(e)).replaceAll(`#`,`%23`)}catch{}return encodeURI(e).replaceAll(`#`,`%23`)}function q(e,t,n,r){try{let i=r?.hash,a;i!==void 0&&(a=i.startsWith(`#`)?i.slice(1):i);let o=e.buildUrl;if(o){let e=o(t,n,a===void 0?void 0:{hash:a});if(typeof e==`string`&&e.length>0)return e}let s=e.buildPath(t,n);if(typeof s!=`string`||s.length===0){console.error(`[real-router] Route "${t}" yielded an empty path. The element will render without an href attribute.`);return}return a?`${s}#${K(a)}`:s}catch{console.error(`[real-router] Route "${t}" is not defined. The element will render without an href attribute.`);return}}function J(e,t,n,r,i){let a={...i};r!==void 0&&(a.hash=r);let o=e.getState();if(o?.name===t&&$(o.params,n)){let e=o.context?.url?.hash??``;e!==(r??e)&&(a.force=!0,a.hashChange=!0)}return e.navigate(t,n,a)}const Y=/\s/,X=/\S+/g;function Z(e){return e?Y.test(e)?e.match(X)??[]:[e]:[]}function Q(e,t,n){if(e&&t){let e=Z(t);if(e.length===0)return n??void 0;if(!n)return e.join(` `);let r=Z(n),i=new Set(r);for(let t of e)i.has(t)||(i.add(t),r.push(t));return r.join(` `)}return n??void 0}function $(e,t){if(Object.is(e,t))return!0;if(!e||!t)return!1;let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;let r=e,i=t;for(let e of n)if(!Object.prototype.hasOwnProperty.call(t,e)||!Object.is(r[e],i[e]))return!1;return!0}function te(e,t,n=!1,r=!0,i){let a=b(),s=o(()=>m(a,e,t,{strict:n,ignoreQueryParams:r,...i!==void 0&&{hash:i}}),[a,e,t,n,r,i]);return c(s.subscribe,s.getSnapshot,s.getSnapshot)}function ne({children:e,fallback:t,onError:n}){let r=b(),l=o(()=>h(r),[r]),u=c(l.subscribe,l.getSnapshot,l.getSnapshot),f=s(n);return a(()=>{f.current=n}),i(()=>{u.error&&f.current?.(u.error,u.toRoute,u.fromRoute)},[u.version]),p(d,{children:[e,u.error?t(u.error,u.resetError):null]})}const re=()=>{let t=r(e);if(!t)throw Error(`useNavigator must be used within a RouterProvider`);return t},ie=()=>u(y(b()).getTree());function ae(){let e=v(b());return c(e.subscribe,e.getSnapshot,e.getSnapshot)}const oe=({router:r,children:a,announceNavigation:s,scrollRestoration:u,scrollSpy:d,viewTransitions:p})=>{i(()=>{if(!s)return;let e=w(r);return()=>{e.destroy()}},[s,r]);let m=u?.mode,h=u?.anchorScrolling,g=u?.behavior,v=u?.storageKey,y=u!==void 0;i(()=>{if(!y)return;let e=A(r,{mode:m,anchorScrolling:h,behavior:g,storageKey:v,scrollContainer:u.scrollContainer});return()=>{e.destroy()}},[r,y,m,h,g,v]);let b=d?.selector,x=d?.rootMargin,S=d!==void 0&&b!==void 0&&b!==``;i(()=>{if(!S)return;let e=V(r,{selector:b,rootMargin:x,scrollContainer:d.scrollContainer});return()=>{e.destroy()}},[r,S,b,x]),i(()=>{if(!p)return;let e=U(r);return()=>{e.destroy()}},[r,p]);let C=o(()=>l(r),[r]),T=o(()=>_(r),[r]),E=c(T.subscribe,T.getSnapshot,T.getSnapshot),D=o(()=>({navigator:C,route:E.route,previousRoute:E.previousRoute}),[C,E]);return f(n.Provider,{value:r,children:f(e.Provider,{value:C,children:f(t.Provider,{value:D,children:a})})})};export{ne as a,q as c,W as d,x as f,re as i,J as l,ae as n,te as o,b as p,ie as r,Q as s,oe as t,$ as u};
|
|
2
|
-
//# sourceMappingURL=RouterProvider-
|
|
1
|
+
import{a as e,o as t,s as n}from"./useRoute-5MF3j-9P.mjs";import{useContext as r,useEffect as i,useLayoutEffect as a,useMemo as o,useRef as s,useSyncExternalStore as c}from"react";import{getNavigator as l}from"@real-router/core";import{getRouteUtils as u}from"@real-router/route-utils";import{Fragment as d,jsx as f,jsxs as p}from"react/jsx-runtime";import{createActiveRouteSource as m,createDismissableError as h,createRouteNodeSource as g,createRouteSource as _,getTransitionSource as v}from"@real-router/sources";import{getPluginApi as y}from"@real-router/core/api";const b=()=>{let e=r(n);if(!e)throw Error(`useRouter must be used within a RouterProvider`);return e};function x(e){let t=b(),n=o(()=>g(t,e),[t,e]),r=c(n.subscribe,n.getSnapshot,n.getSnapshot),i=l(t);return o(()=>({navigator:i,route:r.route,previousRoute:r.previousRoute}),[i,r])}const S=`data-real-router-announcer`,C=Object.freeze({destroy:()=>{}});function w(e,t){if(typeof document>`u`)return C;let n=t?.prefix??`Navigated to `,r=t?.getAnnouncementText,i=!0,a=!1,o=!1,s=``,c=null,l,u=T(),d=(e,t)=>{s=e,clearTimeout(l),u.textContent=e,l=setTimeout(()=>{u.textContent=``,s=``},7e3),O(t)},f=setTimeout(()=>{if(a=!0,c!==null&&!o){let e=c;c=null,d(e,document.querySelector(`h1`))}},100),p=e.subscribe(({route:e})=>{if(i){i=!1;return}requestAnimationFrame(()=>{requestAnimationFrame(()=>{if(o)return;let t=document.querySelector(`h1`),i=D(e,n,r,t);if(!(!i||i===s)){if(!a){c=i;return}d(i,t)}})})});return{destroy(){o=!0,p(),clearTimeout(l),clearTimeout(f),E()}}}function T(){let e=document.querySelector(`[${S}]`);if(e)return e;let t=document.createElement(`div`);return t.setAttribute(`style`,`position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0`),t.setAttribute(`aria-live`,`assertive`),t.setAttribute(`aria-atomic`,`true`),t.setAttribute(S,``),(document.body??document.documentElement).prepend(t),t}function E(){document.querySelector(`[${S}]`)?.remove()}function D(e,t,n,r){if(n)try{let t=n(e);if(t)return t}catch(e){console.error(`[real-router] getAnnouncementText threw; falling back to default resolution.`,e)}let i=(r?.textContent??``).trim(),a=e.name.startsWith(`@@`)?``:e.name;return`${t}${i||document.title||a||globalThis.location.pathname}`}function O(e){e&&(e.hasAttribute(`tabindex`)||e.setAttribute(`tabindex`,`-1`),e.focus({preventScroll:!0}))}const k=Object.freeze({destroy:()=>{}});function A(e,t){if(globalThis.window===void 0)return k;let n=t?.mode??`restore`;if(n===`native`)return k;let r=t?.anchorScrolling??!0,i=t?.scrollContainer,a=t?.behavior??`auto`,o=t?.storageKey??`real-router:scroll`,s,c=()=>{if(s!==void 0)return s;try{let e=sessionStorage.getItem(o);s=e?JSON.parse(e):{}}catch{s={}}return s},l=(e,t)=>{try{let n=c();if(n[e]===t)return;n[e]=t,sessionStorage.setItem(o,JSON.stringify(n))}catch{}},u=history.scrollRestoration;try{history.scrollRestoration=`manual`}catch{}let d=()=>{let e=i?.();return e?e.scrollTop:globalThis.scrollY},f=e=>{let t=i?.();t?t.scrollTo({top:e,left:0,behavior:a}):globalThis.scrollTo({top:e,left:0,behavior:a})},p=e=>{if(!i){globalThis.scrollTo({top:e,left:0,behavior:a});return}let t=0,n=()=>{if(h)return;let r=i();if(r){if(r.scrollTo({top:e,left:0,behavior:a}),a!==`smooth`&&Math.abs(r.scrollTop-e)<=1)return}else globalThis.scrollTo({top:e,left:0,behavior:a});t>=10||(t+=1,requestAnimationFrame(n))};n()},m=e=>{let t=e.context?.url?.hash;if(t!==void 0){if(r&&t.length>0){let e=document.getElementById(t);if(e){e.scrollIntoView({behavior:a});return}}f(0);return}let n=globalThis.location.hash;if(r&&n.length>1){let e;try{e=decodeURIComponent(n.slice(1))}catch{e=n.slice(1)}let t=document.getElementById(e);if(t){t.scrollIntoView({behavior:a});return}}f(0)},h=!1,g=!1,_=e=>{try{return M(e)}catch{return g||(g=!0,console.error(`[real-router] scroll-restore: route "${e.name}" has params that cannot be canonicalized (e.g. BigInt or cyclic structure). Scroll position will not be captured or restored for this route.`)),null}},v=e.subscribe(({route:e,previousRoute:t})=>{let r=e.context.navigation;if(t){let e=_(t);e!==null&&l(e,d())}requestAnimationFrame(()=>{if(!h){if(n===`top`){m(e);return}if(e.transition.reload||r?.navigationType===`reload`){let t=_(e);p(t===null?0:c()[t]??0);return}if(r?.direction===`back`||r?.navigationType===`traverse`){let t=_(e);p(t===null?0:c()[t]??0);return}e.transition.replace||r?.navigationType===`replace`||m(e)}})}),y=()=>{let t=e.getState();if(t){let e=_(t);e!==null&&l(e,d())}};return globalThis.addEventListener(`pagehide`,y),{destroy:()=>{if(!h){h=!0,v(),globalThis.removeEventListener(`pagehide`,y);try{history.scrollRestoration=u}catch{}}}}}const j=new WeakMap;function M(e){let t=j.get(e);if(t!==void 0)return t;let n=`${e.name}:${ee(e.params)}`;return j.set(e,n),n}function ee(e){return JSON.stringify(e,N)}function N(e,t){if(typeof t==`function`)return`<fn>`;if(typeof t==`symbol`)return`<sym>`;if(typeof t==`object`&&t&&!Array.isArray(t)){let e=Object.create(null),n=Object.keys(t).sort((e,t)=>e.localeCompare(t));for(let r of n)e[r]=t[r];return e}return t}const P=Object.freeze({destroy:()=>{}}),F=e=>e.context?.url,I=e=>{let t=null,n=1/0,r=null,i=-1/0;for(let a of e){if(!a.isIntersecting)continue;let e=a.rootBounds?.top??0,o=a.boundingClientRect.top-e;o>=0?o<n&&(t=a,n=o):o>i&&(r=a,i=o)}return t??r},L=(e,t)=>{let n=null,r=e=>{let n=e.context;n&&n.url===void 0&&(console.warn(`[real-router] scroll-spy: state.context.url is not claimed. Spy requires browser-plugin or navigation-plugin. Disabling.`),t())},i=e.getState();if(i)r(i);else{let t=!1;n=e.subscribe(({route:e})=>{t||(t=!0,r(e),n?.(),n=null)})}return{destroy(){n?.(),n=null}}},R=e=>{let t=!1,n=null,r=null,i=null,a=()=>{n!==null&&(clearTimeout(n),n=null),i&&(r??globalThis).removeEventListener(`scrollend`,i),i=null,r=null,t=!1};return{get active(){return t},start(){a(),t=!0;let o=()=>{a()};i=o,r=e(),(r??globalThis).addEventListener(`scrollend`,o,{once:!0}),n=setTimeout(o,500)},destroy(){a()}}},z=(e,t)=>{let n=null,r=null;return{schedule(){n===null&&(n=requestAnimationFrame(()=>{n=null,r!==null&&clearTimeout(r),r=setTimeout(()=>{r=null,e()},t)}))},destroy(){n!==null&&(cancelAnimationFrame(n),n=null),r!==null&&(clearTimeout(r),r=null)}}},B=(e,t,n,r,i,a)=>{let o=new Set,s=new Map,c=!1,l=null,u=new IntersectionObserver(e=>{if(!a()){for(let t of e)s.set(t.target,t);r()}},{root:n(),rootMargin:t,threshold:0}),d=()=>{let t=n()??document,r;try{r=t.querySelectorAll(e)}catch{i();return}let a=new Set;for(let e of r){let t=e.id;t&&!c&&(a.has(t)&&(c=!0,console.warn(`[real-router] scroll-spy: duplicate id "${t}" observed. Selection picks the topmost visible match deterministically.`)),a.add(t)),!o.has(e)&&(u.observe(e),o.add(e))}},f=()=>{for(let e of o)e.isConnected||(u.unobserve(e),o.delete(e),s.delete(e));d()};d();let p=n()??document.body,m=new MutationObserver(()=>{l!==null&&clearTimeout(l),l=setTimeout(()=>{l=null,f()},250)});return m.observe(p,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`id`]}),{pending:s,destroy(){u.disconnect(),m.disconnect(),l!==null&&(clearTimeout(l),l=null),o.clear(),s.clear()}}};function V(e,t){if(typeof document>`u`||typeof IntersectionObserver>`u`)return P;let{selector:n}=t;if(!n)return P;let r=t.rootMargin??`-20% 0px -60% 0px`,i=t.scrollContainer,a=()=>i?.()??null,o=!1,s=!1,c=!1,l=()=>s||o,u=null,d=v(e),f=L(e,()=>{s=!0}),p=R(a),m=z(()=>{u?.()},150),h=B(n,r,a,()=>{m.schedule()},()=>{s||(s=!0,console.warn(`[real-router] scroll-spy: invalid selector "${n}". Disabling.`))},l);u=()=>{if(o||s){h.pending.clear();return}if(d.getSnapshot().isTransitioning||p.active||h.pending.size===0)return;let t=I(h.pending.values());if(h.pending.clear(),!t)return;let n=t.target.id;if(!n)return;let r=e.getState();if(!r||n===(F(r)?.hash??``))return;let i={hash:n,replace:!0,force:!0,hashChange:!0};c=!0,e.navigate(r.name,r.params,i).catch(()=>{}).finally(()=>{c=!1})};let g=e.subscribe(({route:e})=>{c||F(e)?.hashChanged&&p.start()});return{destroy(){o||(o=!0,g(),h.destroy(),m.destroy(),p.destroy(),f.destroy())}}}const H=Object.freeze({destroy:()=>{}});function U(e){if(typeof document>`u`||typeof document.startViewTransition!=`function`)return H;let t=null,n=null,r=!1,i=()=>{t?.(),t=null},a=e.subscribeLeave(({signal:e})=>{if(!e.aborted)return r=!1,i(),new Promise(a=>{let o=new Promise(e=>{t=e});e.addEventListener(`abort`,()=>{r||(i(),n?.skipTransition?.(),a())},{once:!0});try{n=document.startViewTransition(()=>(a(),o))}catch{i(),a()}})}),o=e.subscribe(()=>{let e=t;r=!0,t=null,e===null?n=null:setTimeout(()=>{e(),n=null},0)});return{destroy:()=>{a(),o(),n?.skipTransition?.(),n=null,i()}}}function W(e){return e.button===0&&!e.metaKey&&!e.altKey&&!e.ctrlKey&&!e.shiftKey}const G=/%[\dA-Fa-f]{2}/;function K(e){if(G.test(e))try{return encodeURI(decodeURIComponent(e)).replaceAll(`#`,`%23`)}catch{}return encodeURI(e).replaceAll(`#`,`%23`)}function q(e,t,n,r){try{let i=r?.hash,a;i!==void 0&&(a=i.startsWith(`#`)?i.slice(1):i);let o=e.buildUrl;if(o){let e=o(t,n,a===void 0?void 0:{hash:a});if(typeof e==`string`&&e.length>0)return e}let s=e.buildPath(t,n);if(typeof s!=`string`||s.length===0){console.error(`[real-router] Route "${t}" yielded an empty path. The element will render without an href attribute.`);return}return a?`${s}#${K(a)}`:s}catch{console.error(`[real-router] Route "${t}" is not defined. The element will render without an href attribute.`);return}}function J(e,t,n,r,i){let a={...i};r!==void 0&&(a.hash=r);let o=e.getState();if(o?.name===t&&$(o.params,n)){let e=o.context?.url?.hash??``;e!==(r??e)&&(a.force=!0,a.hashChange=!0)}return e.navigate(t,n,a)}const Y=/\s/,X=/\S+/g;function Z(e){return e?Y.test(e)?e.match(X)??[]:[e]:[]}function Q(e,t,n){if(e&&t){let e=Z(t);if(e.length===0)return n??void 0;if(!n)return e.join(` `);let r=Z(n),i=new Set(r);for(let t of e)i.has(t)||(i.add(t),r.push(t));return r.join(` `)}return n??void 0}function $(e,t){if(Object.is(e,t))return!0;if(!e||!t)return!1;let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;let r=e,i=t;for(let e of n)if(!Object.prototype.hasOwnProperty.call(t,e)||!Object.is(r[e],i[e]))return!1;return!0}function te(e,t,n=!1,r=!0,i){let a=b(),s=o(()=>m(a,e,t,{strict:n,ignoreQueryParams:r,...i!==void 0&&{hash:i}}),[a,e,t,n,r,i]);return c(s.subscribe,s.getSnapshot,s.getSnapshot)}function ne({children:e,fallback:t,onError:n}){let r=b(),l=o(()=>h(r),[r]),u=c(l.subscribe,l.getSnapshot,l.getSnapshot),f=s(n);return a(()=>{f.current=n}),i(()=>{u.error&&f.current?.(u.error,u.toRoute,u.fromRoute)},[u.version]),p(d,{children:[e,u.error?t(u.error,u.resetError):null]})}const re=()=>{let t=r(e);if(!t)throw Error(`useNavigator must be used within a RouterProvider`);return t},ie=()=>u(y(b()).getTree());function ae(){let e=v(b());return c(e.subscribe,e.getSnapshot,e.getSnapshot)}const oe=({router:r,children:a,announceNavigation:s,scrollRestoration:u,scrollSpy:d,viewTransitions:p})=>{i(()=>{if(!s)return;let e=w(r);return()=>{e.destroy()}},[s,r]);let m=u?.mode,h=u?.anchorScrolling,g=u?.behavior,v=u?.storageKey,y=u!==void 0;i(()=>{if(!y)return;let e=A(r,{mode:m,anchorScrolling:h,behavior:g,storageKey:v,scrollContainer:u.scrollContainer});return()=>{e.destroy()}},[r,y,m,h,g,v]);let b=d?.selector,x=d?.rootMargin,S=d!==void 0&&b!==void 0&&b!==``;i(()=>{if(!S)return;let e=V(r,{selector:b,rootMargin:x,scrollContainer:d.scrollContainer});return()=>{e.destroy()}},[r,S,b,x]),i(()=>{if(!p)return;let e=U(r);return()=>{e.destroy()}},[r,p]);let C=o(()=>l(r),[r]),T=o(()=>_(r),[r]),E=c(T.subscribe,T.getSnapshot,T.getSnapshot),D=o(()=>({navigator:C,route:E.route,previousRoute:E.previousRoute}),[C,E]);return f(n.Provider,{value:r,children:f(e.Provider,{value:C,children:f(t.Provider,{value:D,children:a})})})};export{ne as a,q as c,W as d,x as f,re as i,J as l,ae as n,te as o,b as p,ie as r,Q as s,oe as t,$ as u};
|
|
2
|
+
//# sourceMappingURL=RouterProvider-DgHypQTJ.mjs.map
|