@real-router/vue 0.13.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -607,7 +607,7 @@ h(
607
607
  );
608
608
  ```
609
609
 
610
- Restores scroll on back/forward, scrolls to top (or `#hash`) on push. Three modes: `"restore"` (default), `"top"`, `"native"`. Custom containers via `scrollContainer: () => HTMLElement | null`. Prop is reactive — toggling mode at runtime reconfigures the utility (watched by primitive fields, so inline objects with the same fields do not thrash). See [Scroll Restoration guide](https://github.com/greydragon888/real-router/wiki/Scroll-Restoration) for details.
610
+ Restores scroll on back/forward, scrolls to top (or `#hash`) on push. Three modes: `"restore"` (default), `"top"`, `"native"`. Custom containers via `scrollContainer: () => HTMLElement | null`. Prop is reactive — toggling mode at runtime reconfigures the utility (watched by primitive fields, so inline objects with the same fields do not thrash). Under `@real-router/browser-plugin`, replace transitions now preserve scroll position and programmatic reloads restore from `sessionStorage` (portable via `state.transition.replace` / `state.transition.reload`). See [Scroll Restoration guide](https://github.com/greydragon888/real-router/wiki/Scroll-Restoration) for the full behaviour matrix.
611
611
 
612
612
  ## View Transitions
613
613
 
@@ -1 +1 @@
1
- {"version":3,"file":"createHttpStatusSink-XDu5aGhc.d.ts","names":[],"sources":["../../src/utils/createHttpStatusSink.ts"],"mappings":";;AAwBA;;;;;AAIA;;;;;;;;;;;;;;;;;;UAJiB,cAAA;EACf,IAAA;AAAA;AAAA,iBAGc,oBAAA,CAAA,GAAwB,cAAA"}
1
+ {"version":3,"file":"createHttpStatusSink-XDu5aGhc.d.ts","names":[],"sources":["../../src/utils/createHttpStatusSink.ts"],"mappings":";;AAwBA;;;;AACM;AAGN;;;;AAAsD;;;;;;;;;;;;;;UAJrC,cAAA;EACf,IAAI;AAAA;AAAA,iBAGU,oBAAA,CAAA,GAAwB,cAAc"}
@@ -1,4 +1,3 @@
1
- import * as _$vue from "vue";
2
1
  import { Directive, InjectionKey, Plugin, PropType, Ref, ShallowRef, VNode } from "vue";
3
2
  import { NavigationOptions, Navigator, Navigator as Navigator$1, Params, Router, RouterError, State } from "@real-router/core";
4
3
  import { RouteUtils } from "@real-router/route-utils";
@@ -23,7 +22,7 @@ type NotFoundProps = Record<string, never>;
23
22
  //#endregion
24
23
  //#region src/components/RouteView/RouteView.d.ts
25
24
  declare const RouteView: {
26
- new (...args: any[]): _$vue.CreateComponentPublicInstanceWithMixins<Readonly<_$vue.ExtractPropTypes<{
25
+ new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
27
26
  nodeName: {
28
27
  type: StringConstructor;
29
28
  required: true;
@@ -32,16 +31,16 @@ declare const RouteView: {
32
31
  type: BooleanConstructor;
33
32
  default: boolean;
34
33
  };
35
- }>> & Readonly<{}>, () => VNode | null, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {}, _$vue.PublicProps, {
34
+ }>> & Readonly<{}>, () => VNode | null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {
36
35
  keepAlive: boolean;
37
- }, true, {}, {}, _$vue.GlobalComponents, _$vue.GlobalDirectives, string, {}, any, _$vue.ComponentProvideOptions, {
36
+ }, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
38
37
  P: {};
39
38
  B: {};
40
39
  D: {};
41
40
  C: {};
42
41
  M: {};
43
42
  Defaults: {};
44
- }, Readonly<_$vue.ExtractPropTypes<{
43
+ }, Readonly<import("vue").ExtractPropTypes<{
45
44
  nodeName: {
46
45
  type: StringConstructor;
47
46
  required: true;
@@ -56,7 +55,7 @@ declare const RouteView: {
56
55
  __isFragment?: never;
57
56
  __isTeleport?: never;
58
57
  __isSuspense?: never;
59
- } & _$vue.ComponentOptionsBase<Readonly<_$vue.ExtractPropTypes<{
58
+ } & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
60
59
  nodeName: {
61
60
  type: StringConstructor;
62
61
  required: true;
@@ -65,12 +64,12 @@ declare const RouteView: {
65
64
  type: BooleanConstructor;
66
65
  default: boolean;
67
66
  };
68
- }>> & Readonly<{}>, () => VNode | null, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {}, string, {
67
+ }>> & Readonly<{}>, () => VNode | null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
69
68
  keepAlive: boolean;
70
- }, {}, string, {}, _$vue.GlobalComponents, _$vue.GlobalDirectives, string, _$vue.ComponentProvideOptions> & _$vue.VNodeProps & _$vue.AllowedComponentProps & _$vue.ComponentCustomProps & {
71
- Match: _$vue.DefineComponent<_$vue.ExtractPropTypes<{
69
+ }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & {
70
+ Match: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
72
71
  segment: {
73
- type: _$vue.PropType<string>;
72
+ type: import("vue").PropType<string>;
74
73
  required: true;
75
74
  };
76
75
  exact: {
@@ -78,16 +77,16 @@ declare const RouteView: {
78
77
  default: boolean;
79
78
  };
80
79
  fallback: {
81
- type: _$vue.PropType<VNode | (() => VNode)>;
80
+ type: import("vue").PropType<VNode | (() => VNode)>;
82
81
  default: undefined;
83
82
  };
84
83
  keepAlive: {
85
84
  type: BooleanConstructor;
86
85
  default: boolean;
87
86
  };
88
- }>, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {}, string, _$vue.PublicProps, Readonly<_$vue.ExtractPropTypes<{
87
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
89
88
  segment: {
90
- type: _$vue.PropType<string>;
89
+ type: import("vue").PropType<string>;
91
90
  required: true;
92
91
  };
93
92
  exact: {
@@ -95,7 +94,7 @@ declare const RouteView: {
95
94
  default: boolean;
96
95
  };
97
96
  fallback: {
98
- type: _$vue.PropType<VNode | (() => VNode)>;
97
+ type: import("vue").PropType<VNode | (() => VNode)>;
99
98
  default: undefined;
100
99
  };
101
100
  keepAlive: {
@@ -103,18 +102,18 @@ declare const RouteView: {
103
102
  default: boolean;
104
103
  };
105
104
  }>> & Readonly<{}>, {
106
- fallback: VNode<_$vue.RendererNode, _$vue.RendererElement, {
105
+ fallback: VNode<import("vue").RendererNode, import("vue").RendererElement, {
107
106
  [key: string]: any;
108
107
  }> | (() => VNode);
109
108
  keepAlive: boolean;
110
109
  exact: boolean;
111
- }, {}, {}, {}, string, _$vue.ComponentProvideOptions, true, {}, any>;
112
- Self: _$vue.FunctionalComponent<SelfProps, {}, any, {}>;
113
- NotFound: _$vue.DefineComponent<{}, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {}, string, _$vue.PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, _$vue.ComponentProvideOptions, true, {}, any>;
110
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
111
+ Self: import("vue").FunctionalComponent<SelfProps, {}, any, {}>;
112
+ NotFound: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
114
113
  };
115
114
  //#endregion
116
115
  //#region src/components/Link.d.ts
117
- declare const Link: _$vue.DefineComponent<_$vue.ExtractPropTypes<{
116
+ declare const Link: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
118
117
  routeName: {
119
118
  type: StringConstructor;
120
119
  required: true;
@@ -157,9 +156,9 @@ declare const Link: _$vue.DefineComponent<_$vue.ExtractPropTypes<{
157
156
  type: StringConstructor;
158
157
  default: undefined;
159
158
  };
160
- }>, () => _$vue.VNode<_$vue.RendererNode, _$vue.RendererElement, {
159
+ }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
161
160
  [key: string]: any;
162
- }>, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {}, string, _$vue.PublicProps, Readonly<_$vue.ExtractPropTypes<{
161
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
163
162
  routeName: {
164
163
  type: StringConstructor;
165
164
  required: true;
@@ -211,10 +210,10 @@ declare const Link: _$vue.DefineComponent<_$vue.ExtractPropTypes<{
211
210
  ignoreQueryParams: boolean;
212
211
  target: string;
213
212
  hash: string;
214
- }, {}, {}, {}, string, _$vue.ComponentProvideOptions, true, {}, any>;
213
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
215
214
  //#endregion
216
215
  //#region src/components/RouterErrorBoundary.d.ts
217
- declare const RouterErrorBoundary: _$vue.DefineComponent<_$vue.ExtractPropTypes<{
216
+ declare const RouterErrorBoundary: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
218
217
  fallback: {
219
218
  type: PropType<(error: RouterError, resetError: () => void) => VNode>;
220
219
  required: true;
@@ -223,9 +222,9 @@ declare const RouterErrorBoundary: _$vue.DefineComponent<_$vue.ExtractPropTypes<
223
222
  type: PropType<(error: RouterError, toRoute: State | null, fromRoute: State | null) => void>;
224
223
  default: undefined;
225
224
  };
226
- }>, () => VNode<_$vue.RendererNode, _$vue.RendererElement, {
225
+ }>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
227
226
  [key: string]: any;
228
- }>, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {}, string, _$vue.PublicProps, Readonly<_$vue.ExtractPropTypes<{
227
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
229
228
  fallback: {
230
229
  type: PropType<(error: RouterError, resetError: () => void) => VNode>;
231
230
  required: true;
@@ -236,7 +235,7 @@ declare const RouterErrorBoundary: _$vue.DefineComponent<_$vue.ExtractPropTypes<
236
235
  };
237
236
  }>> & Readonly<{}>, {
238
237
  onError: (error: RouterError, toRoute: State | null, fromRoute: State | null) => void;
239
- }, {}, {}, {}, string, _$vue.ComponentProvideOptions, true, {}, any>;
238
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
240
239
  type RouterErrorBoundaryProps = InstanceType<typeof RouterErrorBoundary>["$props"];
241
240
  //#endregion
242
241
  //#region src/directives/vLink.d.ts
@@ -498,7 +497,7 @@ interface ScrollRestorationOptions {
498
497
  }
499
498
  //#endregion
500
499
  //#region src/RouterProvider.d.ts
501
- declare const RouterProvider: _$vue.DefineComponent<_$vue.ExtractPropTypes<{
500
+ declare const RouterProvider: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
502
501
  router: {
503
502
  type: PropType<Router>;
504
503
  required: true;
@@ -514,9 +513,9 @@ declare const RouterProvider: _$vue.DefineComponent<_$vue.ExtractPropTypes<{
514
513
  type: BooleanConstructor;
515
514
  default: boolean;
516
515
  };
517
- }>, () => _$vue.VNode<_$vue.RendererNode, _$vue.RendererElement, {
516
+ }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
518
517
  [key: string]: any;
519
- }>[] | undefined, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {}, string, _$vue.PublicProps, Readonly<_$vue.ExtractPropTypes<{
518
+ }>[] | undefined, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
520
519
  router: {
521
520
  type: PropType<Router>;
522
521
  required: true;
@@ -535,7 +534,7 @@ declare const RouterProvider: _$vue.DefineComponent<_$vue.ExtractPropTypes<{
535
534
  }>> & Readonly<{}>, {
536
535
  announceNavigation: boolean;
537
536
  viewTransitions: boolean;
538
- }, {}, {}, {}, string, _$vue.ComponentProvideOptions, true, {}, any>;
537
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
539
538
  //#endregion
540
539
  //#region src/context.d.ts
541
540
  declare const RouterKey: InjectionKey<Router>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/components/RouteView/types.ts","../../src/components/RouteView/RouteView.ts","../../src/components/Link.ts","../../src/components/RouterErrorBoundary.ts","../../src/directives/vLink.ts","../../src/composables/useRouter.ts","../../src/composables/useNavigator.ts","../../src/composables/useRouteUtils.ts","../../src/types.ts","../../src/composables/useRoute.ts","../../src/composables/useRouteNode.ts","../../src/composables/useRouterTransition.ts","../../src/composables/useRouteExit.ts","../../src/composables/useRouteEnter.ts","../../src/createRouterPlugin.ts","../../../../shared/dom-utils/scroll-restore.ts","../../src/RouterProvider.ts","../../src/context.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/components/RouteView/types.ts","../../src/components/RouteView/RouteView.ts","../../src/components/Link.ts","../../src/components/RouterErrorBoundary.ts","../../src/directives/vLink.ts","../../src/composables/useRouter.ts","../../src/composables/useNavigator.ts","../../src/composables/useRouteUtils.ts","../../src/types.ts","../../src/composables/useRoute.ts","../../src/composables/useRouteNode.ts","../../src/composables/useRouterTransition.ts","../../src/composables/useRouteExit.ts","../../src/composables/useRouteEnter.ts","../../src/createRouterPlugin.ts","../../../../shared/dom-utils/scroll-restore.ts","../../src/RouterProvider.ts","../../src/context.ts"],"mappings":"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"}
package/dist/cjs/index.js CHANGED
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./useRoute-BT3SkdOc.js`);let t=require(`vue`),n=require(`@real-router/core`),r=require(`@real-router/route-utils`),i=require(`@real-router/sources`),a=require(`@real-router/core/api`);function o(){return null}const s=(0,t.defineComponent)({name:`RouteView.Match`,props:{segment:{type:String,required:!0},exact:{type:Boolean,default:!1},fallback:{type:[Object,Function],default:void 0},keepAlive:{type:Boolean,default:!1}},render:o}),c=(0,t.defineComponent)({name:`RouteView.Self`,props:{fallback:{type:[Object,Function],default:void 0}},render:o}),l=(0,t.defineComponent)({name:`RouteView.NotFound`,render:o});function u(e,t,n){return n?e===t:(0,r.startsWithSegment)(e,t)}function d(e){return e===!0||e===``||e===`keep-alive`}function f(e){if(Array.isArray(e)){let n=[];for(let r of e)Array.isArray(r)?n.push(...f(r)):(0,t.isVNode)(r)&&n.push(r);return n}return(0,t.isVNode)(e)?[e]:[]}function p(e,n){let r=f(e);for(let e of r)e.type===s||e.type===c||e.type===l?n.push(e):e.type===t.Fragment&&p(e.children,n)}function m(e,t){return e.type===l?(t.notFoundChildren=e.children,!0):e.type===c?(t.selfVNode===null&&(t.selfVNode=e,t.selfFallback=e.props?.fallback),!0):!1}function h(e,t,n){let r=e.props,i=r?.segment??``,a=r?.exact??!1;return{isActive:u(t,n?`${n}.${i}`:i,a),fallback:r?.fallback}}function g(e,t,r,i,a){if(i.selfVNode!==null&&t===r)return e.push(i.selfVNode),i.selfFallback;if(t===n.UNKNOWN_ROUTE&&i.notFoundChildren!==null){let t=a.filter(e=>e.type===l).at(-1);t&&e.push(t)}}function _(e,t,n){let r={selfVNode:null,selfFallback:void 0,notFoundChildren:null},i=!1,a,o=!1,c=[];for(let l of e){if(!o&&l.type===s){let e=l.props;d(e?.keepAlive)&&(o=!0)}if(m(l,r)||i)continue;let e=h(l,t,n);e.isActive&&(i=!0,a=e.fallback,c.push(l))}return i||(a=g(c,t,n,r,e)),{rendered:c,activeMatchFound:i,fallback:a,hasPerMatchKA:o}}function v(e){let n=(0,t.shallowRef)(e.getSnapshot());return(0,t.onScopeDispose)(e.subscribe(()=>{n.value=e.getSnapshot()})),n}const y=()=>{let n=(0,t.inject)(e.a);if(!n)throw Error(`useRouter must be used within a RouterProvider`);return n};function b(e){let r=y(),a=v((0,i.createRouteNodeSource)(r,e));return{navigator:(0,n.getNavigator)(r),route:(0,t.computed)(()=>a.value.route),previousRoute:(0,t.computed)(()=>a.value.previousRoute)}}function x(e){return e.children?.default?.()??null}function S(e,n){let r=e.get(n);if(r)return r;let i=(0,t.markRaw)((0,t.defineComponent)({name:`KeepAlive-${n}`,setup(e,t){return()=>t.slots.default?.()}}));return e.set(n,i),i}function C(e,n){if(n===void 0)return e;let r=typeof n==`function`?n():n;return(0,t.h)(t.Suspense,{},{default:()=>e,fallback:()=>r})}let w=null;function ee(){return w??=(0,t.markRaw)((0,t.defineComponent)({name:`KeepAlive-placeholder`,render(){return null}})),w}function te(e,n,r){let i=e.props?.segment??`__not-found__`,a=S(n,i),o=x(e)??[];return C((0,t.h)(t.KeepAlive,null,{default:()=>(0,t.h)(a,{key:i},{default:()=>o})}),r)}function T(e,n,r){let i=e.props;if(d(i?.keepAlive)&&e.type===s){let r=i?.segment??`__not-found__`,a=S(n,r),o=x(e)??[];return(0,t.h)(t.Fragment,[(0,t.h)(t.KeepAlive,null,{default:()=>(0,t.h)(a,{key:r},{default:()=>o})})])}let a=x(e);return a?(0,t.h)(t.Fragment,[(0,t.h)(t.KeepAlive,null,{default:()=>(0,t.h)(ee())}),C((0,t.h)(t.Fragment,a),r)]):null}const E=(0,t.defineComponent)({name:`RouteView`,props:{nodeName:{type:String,required:!0},keepAlive:{type:Boolean,default:!1}},setup(e,{slots:n}){let r=b(e.nodeName),i=new Map;return()=>{let a=r.route.value;if(!a)return null;let o=n.default?.(),u=[];p(o,u);let{rendered:d,fallback:f,hasPerMatchKA:m}=_(u,a.name,e.nodeName);if(d.length===0)return null;let h=d[0];if(e.keepAlive)return te(h,i,f);if(h.type!==s&&h.type!==c&&h.type!==l)return null;if(m)return T(h,i,f);let g=x(h);return g?C((0,t.h)(t.Fragment,g),f):null}}}),D=Object.assign(E,{Match:s,Self:c,NotFound:l}),ne=Object.freeze({}),re=Object.freeze({}),O=`data-real-router-announcer`,ie=Object.freeze({destroy:()=>{}});function ae(e,t){if(typeof document>`u`)return ie;let n=t?.prefix??`Navigated to `,r=t?.getAnnouncementText,i=!0,a=!1,o=!1,s=``,c=null,l,u=oe(),d=(e,t)=>{s=e,clearTimeout(l),u.textContent=e,l=setTimeout(()=>{u.textContent=``,s=``},7e3),le(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=ce(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),se()}}}function oe(){let e=document.querySelector(`[${O}]`);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(O,``),(document.body??document.documentElement).prepend(t),t}function se(){document.querySelector(`[${O}]`)?.remove()}function ce(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 le(e){e&&(e.hasAttribute(`tabindex`)||e.setAttribute(`tabindex`,`-1`),e.focus({preventScroll:!0}))}const k=Object.freeze({destroy:()=>{}});function ue(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=>{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)},m=!1,h=!1,g=e=>{try{return j(e)}catch{return h||(h=!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}},_=e.subscribe(({route:e,previousRoute:t})=>{let r=e.context.navigation;if(t){let e=g(t);e!==null&&l(e,d())}requestAnimationFrame(()=>{if(!m){if(n===`top`||!r){p(e);return}if(r.navigationType!==`replace`){if(r.direction===`back`||r.navigationType===`traverse`||r.navigationType===`reload`){let t=g(e);f(t===null?0:c()[t]??0);return}p(e)}}})}),v=()=>{let t=e.getState();if(t){let e=g(t);e!==null&&l(e,d())}};return globalThis.addEventListener(`pagehide`,v),{destroy:()=>{if(!m){m=!0,_(),globalThis.removeEventListener(`pagehide`,v);try{history.scrollRestoration=u}catch{}}}}}const A=new WeakMap;function j(e){let t=A.get(e);if(t!==void 0)return t;let n=`${e.name}:${M(e.params)}`;return A.set(e,n),n}function M(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:()=>{}});function F(e){if(typeof document>`u`||typeof document.startViewTransition!=`function`)return P;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 I(e){return e.button===0&&!e.metaKey&&!e.altKey&&!e.ctrlKey&&!e.shiftKey}const L=/%[\dA-Fa-f]{2}/;function R(e){if(L.test(e))try{return encodeURI(decodeURIComponent(e)).replaceAll(`#`,`%23`)}catch{}return encodeURI(e).replaceAll(`#`,`%23`)}function z(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}#${R(a)}`:s}catch{console.error(`[real-router] Route "${t}" is not defined. The element will render without an href attribute.`);return}}function B(e,t,n,r,i){let a={...i};r!==void 0&&(a.hash=r);let o=e.getState();if(o?.name===t&&fe(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 V=/\s/,H=/\S+/g;function U(e){return e?V.test(e)?e.match(H)??[]:[e]:[]}function de(e,t,n){if(e&&t){let e=U(t);if(e.length===0)return n??void 0;if(!n)return e.join(` `);let r=U(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 fe(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 pe(e){if(!e)return;let t=e.tagName;t===`A`||t===`BUTTON`||(e.hasAttribute(`role`)||e.setAttribute(`role`,`link`),e.hasAttribute(`tabindex`)||e.setAttribute(`tabindex`,`0`))}function me(e,t){if(typeof e==`function`){e(t);return}if(Array.isArray(e)){let n=e;for(let e of n)if(typeof e==`function`&&(e(t),t.defaultPrevented))return}}const he=(0,t.defineComponent)({name:`Link`,inheritAttrs:!1,props:{routeName:{type:String,required:!0},routeParams:{type:Object,default:()=>ne},routeOptions:{type:Object,default:()=>re},class:{type:String,default:void 0},activeClassName:{type:String,default:`active`},activeStrict:{type:Boolean,default:!1},ignoreQueryParams:{type:Boolean,default:!0},target:{type:String,default:void 0},hash:{type:String,default:void 0}},setup(e,{slots:n,attrs:r}){let a=y(),o=(0,t.shallowRef)(!1);(0,t.watch)(()=>[e.routeName,(0,i.canonicalJson)(e.routeParams),e.activeStrict,e.ignoreQueryParams,e.hash],([t,n,r,s,c],l,u)=>{let d=e.routeParams,f=(0,i.createActiveRouteSource)(a,t,d,c===void 0?{strict:r,ignoreQueryParams:s}:{strict:r,ignoreQueryParams:s,hash:c});o.value=f.getSnapshot(),u(f.subscribe(()=>{o.value=f.getSnapshot()}))},{immediate:!0,flush:`sync`});let s=(0,t.computed)(()=>z(a,e.routeName,e.routeParams,e.hash===void 0?void 0:{hash:e.hash})),c=(0,t.computed)(()=>de(o.value,e.activeClassName,e.class)),l=t=>{r.onClick!==void 0&&r.onClick!==null&&(me(r.onClick,t),t.defaultPrevented)||!I(t)||e.target===`_blank`||(t.preventDefault(),B(a,e.routeName,e.routeParams,e.hash,e.routeOptions).catch(()=>{}))};return()=>{let i={...r};return delete i.onClick,(0,t.h)(`a`,{...i,href:s.value,class:c.value,target:e.target,onClick:l},n.default?.())}}}),ge=(0,t.defineComponent)({name:`RouterErrorBoundary`,props:{fallback:{type:Function,required:!0},onError:{type:Function,default:void 0}},setup(e,{slots:n}){let r=v((0,i.createDismissableError)(y()));return(0,t.watch)(()=>r.value.version,()=>{r.value.error&&e.onError?.(r.value.error,r.value.toRoute,r.value.fromRoute)},{immediate:!0}),()=>{let i=n.default?.()??[],a=r.value.error?e.fallback(r.value.error,r.value.resetError):null;return(0,t.h)(t.Fragment,null,[...i,a])}}}),W=[];function G(e){return W.push(e),()=>{let t=W.lastIndexOf(e);t!==-1&&W.splice(t,1)}}function K(){let e=W.at(-1);if(!e)throw Error(`v-link directive requires a RouterProvider ancestor. Make sure RouterProvider is mounted.`);return e}const q=new WeakMap;function J(e){return e==null?(console.error(`[real-router] v-link directive received null/undefined value. The element will not be wired for navigation.`),!1):typeof e.name==`string`?!0:(console.error("[real-router] v-link directive value is missing a string `name` field. The element will not be wired for navigation."),!1)}function _e(e,t){return n=>{I(n)&&(n.preventDefault(),e.navigate(t.name,t.params??{},t.options??{}).catch(()=>{}))}}function ve(e,t,n){return r=>{r.key===`Enter`&&!(n instanceof HTMLButtonElement)&&e.navigate(t.name,t.params??{},t.options??{}).catch(()=>{})}}function Y(e,t,n){let r=_e(t,n),i=ve(t,n,e);e.addEventListener(`click`,r),e.addEventListener(`keydown`,i),q.set(e,{click:r,keydown:i})}function X(e){let t=q.get(e);t&&(e.removeEventListener(`click`,t.click),e.removeEventListener(`keydown`,t.keydown),q.delete(e))}const ye={mounted(e,t){let n=K();pe(e),e.style.cursor=`pointer`,J(t.value)&&Y(e,n,t.value)},updated(e,t){if(t.value===t.oldValue)return;let n=K();X(e),J(t.value)&&Y(e,n,t.value)},beforeUnmount(e){X(e)}},be=()=>{let n=(0,t.inject)(e.r);if(!n)throw Error(`useNavigator must be used within a RouterProvider`);return n},xe=()=>(0,r.getRouteUtils)((0,a.getPluginApi)(y()).getTree());function Se(){return v((0,i.getTransitionSource)(y()))}function Z(e,n){let r=y(),i=n?.skipSameRoute??!0;(0,t.onScopeDispose)(r.subscribeLeave(({route:t,nextRoute:n,signal:r})=>{if(!(i&&t.name===n.name)&&!r.aborted)return e({route:t,nextRoute:n,signal:r})}))}function Ce(n,r){let{route:i,previousRoute:a}=e.t(),o=r?.skipSameRoute??!0,s=null;(0,t.watch)(i,e=>{let t=a.value;e.transition.from&&(o&&e.transition.from===e.name||s===e||!t||(s=e,n({route:e,previousRoute:t})))})}function Q(e){let r=(0,n.getNavigator)(e),a=(0,i.createRouteSource)(e),o=a.getSnapshot(),s=(0,t.shallowRef)(o.route),c=(0,t.shallowRef)(o.previousRoute);return{navigator:r,route:s,previousRoute:c,unsubscribe:a.subscribe(()=>{let e=a.getSnapshot();s.value=e.route,c.value=e.previousRoute})}}function we(t){return{install(n){let r=G(t),{navigator:i,route:a,previousRoute:o,unsubscribe:s}=Q(t);`onUnmount`in n&&n.onUnmount(()=>{r(),s()}),n.provide(e.a,t),n.provide(e.r,i),n.provide(e.i,{navigator:i,route:a,previousRoute:o})}}}function $(e,n){(0,t.watch)(e,(e,t,r)=>{let i=n(e);i&&r(()=>{i.destroy()})},{immediate:!0})}const Te=(0,t.defineComponent)({name:`RouterProvider`,props:{router:{type:Object,required:!0},announceNavigation:{type:Boolean,default:!1},scrollRestoration:{type:Object},viewTransitions:{type:Boolean,default:!1}},setup(n,{slots:r}){$(()=>[n.router,n.announceNavigation],([e,t])=>t?ae(e):void 0),$(()=>[n.router,n.scrollRestoration!==void 0,n.scrollRestoration?.mode,n.scrollRestoration?.anchorScrolling,n.scrollRestoration?.behavior,n.scrollRestoration?.storageKey],([e,t,r,i,a,o])=>{if(t)return ue(e,{mode:r,anchorScrolling:i,behavior:a,storageKey:o,scrollContainer:n.scrollRestoration?.scrollContainer})}),$(()=>[n.router,n.viewTransitions],([e,t])=>t?F(e):void 0);let i=G(n.router),{navigator:a,route:o,previousRoute:s,unsubscribe:c}=Q(n.router);return(0,t.onScopeDispose)(()=>{i(),c()}),(0,t.provide)(e.a,n.router),(0,t.provide)(e.r,a),(0,t.provide)(e.i,{navigator:a,route:o,previousRoute:s}),()=>r.default?.()}});exports.Link=he,exports.NavigatorKey=e.r,exports.RouteKey=e.i,exports.RouteView=D,exports.RouterErrorBoundary=ge,exports.RouterKey=e.a,exports.RouterProvider=Te,exports.createRouterPlugin=we,exports.useNavigator=be,exports.useRoute=e.t,exports.useRouteEnter=Ce,exports.useRouteExit=Z,exports.useRouteNode=b,exports.useRouteUtils=xe,exports.useRouter=y,exports.useRouterTransition=Se,exports.vLink=ye;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./useRoute-BT3SkdOc.js`);let t=require(`vue`),n=require(`@real-router/core`),r=require(`@real-router/route-utils`),i=require(`@real-router/sources`),a=require(`@real-router/core/api`);function o(){return null}const s=(0,t.defineComponent)({name:`RouteView.Match`,props:{segment:{type:String,required:!0},exact:{type:Boolean,default:!1},fallback:{type:[Object,Function],default:void 0},keepAlive:{type:Boolean,default:!1}},render:o}),c=(0,t.defineComponent)({name:`RouteView.Self`,props:{fallback:{type:[Object,Function],default:void 0}},render:o}),l=(0,t.defineComponent)({name:`RouteView.NotFound`,render:o});function u(e,t,n){return n?e===t:(0,r.startsWithSegment)(e,t)}function d(e){return e===!0||e===``||e===`keep-alive`}function f(e){if(Array.isArray(e)){let n=[];for(let r of e)Array.isArray(r)?n.push(...f(r)):(0,t.isVNode)(r)&&n.push(r);return n}return(0,t.isVNode)(e)?[e]:[]}function p(e,n){let r=f(e);for(let e of r)e.type===s||e.type===c||e.type===l?n.push(e):e.type===t.Fragment&&p(e.children,n)}function m(e,t){return e.type===l?(t.notFoundChildren=e.children,!0):e.type===c?(t.selfVNode===null&&(t.selfVNode=e,t.selfFallback=e.props?.fallback),!0):!1}function h(e,t,n){let r=e.props,i=r?.segment??``,a=r?.exact??!1;return{isActive:u(t,n?`${n}.${i}`:i,a),fallback:r?.fallback}}function g(e,t,r,i,a){if(i.selfVNode!==null&&t===r)return e.push(i.selfVNode),i.selfFallback;if(t===n.UNKNOWN_ROUTE&&i.notFoundChildren!==null){let t=a.filter(e=>e.type===l).at(-1);t&&e.push(t)}}function _(e,t,n){let r={selfVNode:null,selfFallback:void 0,notFoundChildren:null},i=!1,a,o=!1,c=[];for(let l of e){if(!o&&l.type===s){let e=l.props;d(e?.keepAlive)&&(o=!0)}if(m(l,r)||i)continue;let e=h(l,t,n);e.isActive&&(i=!0,a=e.fallback,c.push(l))}return i||(a=g(c,t,n,r,e)),{rendered:c,activeMatchFound:i,fallback:a,hasPerMatchKA:o}}function v(e){let n=(0,t.shallowRef)(e.getSnapshot());return(0,t.onScopeDispose)(e.subscribe(()=>{n.value=e.getSnapshot()})),n}const y=()=>{let n=(0,t.inject)(e.a);if(!n)throw Error(`useRouter must be used within a RouterProvider`);return n};function b(e){let r=y(),a=v((0,i.createRouteNodeSource)(r,e));return{navigator:(0,n.getNavigator)(r),route:(0,t.computed)(()=>a.value.route),previousRoute:(0,t.computed)(()=>a.value.previousRoute)}}function x(e){return e.children?.default?.()??null}function S(e,n){let r=e.get(n);if(r)return r;let i=(0,t.markRaw)((0,t.defineComponent)({name:`KeepAlive-${n}`,setup(e,t){return()=>t.slots.default?.()}}));return e.set(n,i),i}function C(e,n){if(n===void 0)return e;let r=typeof n==`function`?n():n;return(0,t.h)(t.Suspense,{},{default:()=>e,fallback:()=>r})}let w=null;function ee(){return w??=(0,t.markRaw)((0,t.defineComponent)({name:`KeepAlive-placeholder`,render(){return null}})),w}function te(e,n,r){let i=e.props?.segment??`__not-found__`,a=S(n,i),o=x(e)??[];return C((0,t.h)(t.KeepAlive,null,{default:()=>(0,t.h)(a,{key:i},{default:()=>o})}),r)}function T(e,n,r){let i=e.props;if(d(i?.keepAlive)&&e.type===s){let r=i?.segment??`__not-found__`,a=S(n,r),o=x(e)??[];return(0,t.h)(t.Fragment,[(0,t.h)(t.KeepAlive,null,{default:()=>(0,t.h)(a,{key:r},{default:()=>o})})])}let a=x(e);return a?(0,t.h)(t.Fragment,[(0,t.h)(t.KeepAlive,null,{default:()=>(0,t.h)(ee())}),C((0,t.h)(t.Fragment,a),r)]):null}const E=(0,t.defineComponent)({name:`RouteView`,props:{nodeName:{type:String,required:!0},keepAlive:{type:Boolean,default:!1}},setup(e,{slots:n}){let r=b(e.nodeName),i=new Map;return()=>{let a=r.route.value;if(!a)return null;let o=n.default?.(),u=[];p(o,u);let{rendered:d,fallback:f,hasPerMatchKA:m}=_(u,a.name,e.nodeName);if(d.length===0)return null;let h=d[0];if(e.keepAlive)return te(h,i,f);if(h.type!==s&&h.type!==c&&h.type!==l)return null;if(m)return T(h,i,f);let g=x(h);return g?C((0,t.h)(t.Fragment,g),f):null}}}),D=Object.assign(E,{Match:s,Self:c,NotFound:l}),ne=Object.freeze({}),re=Object.freeze({}),O=`data-real-router-announcer`,ie=Object.freeze({destroy:()=>{}});function ae(e,t){if(typeof document>`u`)return ie;let n=t?.prefix??`Navigated to `,r=t?.getAnnouncementText,i=!0,a=!1,o=!1,s=``,c=null,l,u=oe(),d=(e,t)=>{s=e,clearTimeout(l),u.textContent=e,l=setTimeout(()=>{u.textContent=``,s=``},7e3),le(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=ce(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),se()}}}function oe(){let e=document.querySelector(`[${O}]`);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(O,``),(document.body??document.documentElement).prepend(t),t}function se(){document.querySelector(`[${O}]`)?.remove()}function ce(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 le(e){e&&(e.hasAttribute(`tabindex`)||e.setAttribute(`tabindex`,`-1`),e.focus({preventScroll:!0}))}const k=Object.freeze({destroy:()=>{}});function ue(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=>{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)},m=!1,h=!1,g=e=>{try{return j(e)}catch{return h||(h=!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}},_=e.subscribe(({route:e,previousRoute:t})=>{let r=e.context.navigation;if(t){let e=g(t);e!==null&&l(e,d())}requestAnimationFrame(()=>{if(!m){if(n===`top`){p(e);return}if(!(e.transition.replace||r?.navigationType===`replace`)){if(e.transition.reload||r?.navigationType===`reload`){let t=g(e);f(t===null?0:c()[t]??0);return}if(r?.direction===`back`||r?.navigationType===`traverse`){let t=g(e);f(t===null?0:c()[t]??0);return}p(e)}}})}),v=()=>{let t=e.getState();if(t){let e=g(t);e!==null&&l(e,d())}};return globalThis.addEventListener(`pagehide`,v),{destroy:()=>{if(!m){m=!0,_(),globalThis.removeEventListener(`pagehide`,v);try{history.scrollRestoration=u}catch{}}}}}const A=new WeakMap;function j(e){let t=A.get(e);if(t!==void 0)return t;let n=`${e.name}:${M(e.params)}`;return A.set(e,n),n}function M(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:()=>{}});function F(e){if(typeof document>`u`||typeof document.startViewTransition!=`function`)return P;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 I(e){return e.button===0&&!e.metaKey&&!e.altKey&&!e.ctrlKey&&!e.shiftKey}const L=/%[\dA-Fa-f]{2}/;function R(e){if(L.test(e))try{return encodeURI(decodeURIComponent(e)).replaceAll(`#`,`%23`)}catch{}return encodeURI(e).replaceAll(`#`,`%23`)}function z(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}#${R(a)}`:s}catch{console.error(`[real-router] Route "${t}" is not defined. The element will render without an href attribute.`);return}}function B(e,t,n,r,i){let a={...i};r!==void 0&&(a.hash=r);let o=e.getState();if(o?.name===t&&fe(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 V=/\s/,H=/\S+/g;function U(e){return e?V.test(e)?e.match(H)??[]:[e]:[]}function de(e,t,n){if(e&&t){let e=U(t);if(e.length===0)return n??void 0;if(!n)return e.join(` `);let r=U(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 fe(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 pe(e){if(!e)return;let t=e.tagName;t===`A`||t===`BUTTON`||(e.hasAttribute(`role`)||e.setAttribute(`role`,`link`),e.hasAttribute(`tabindex`)||e.setAttribute(`tabindex`,`0`))}function me(e,t){if(typeof e==`function`){e(t);return}if(Array.isArray(e)){let n=e;for(let e of n)if(typeof e==`function`&&(e(t),t.defaultPrevented))return}}const he=(0,t.defineComponent)({name:`Link`,inheritAttrs:!1,props:{routeName:{type:String,required:!0},routeParams:{type:Object,default:()=>ne},routeOptions:{type:Object,default:()=>re},class:{type:String,default:void 0},activeClassName:{type:String,default:`active`},activeStrict:{type:Boolean,default:!1},ignoreQueryParams:{type:Boolean,default:!0},target:{type:String,default:void 0},hash:{type:String,default:void 0}},setup(e,{slots:n,attrs:r}){let a=y(),o=(0,t.shallowRef)(!1);(0,t.watch)(()=>[e.routeName,(0,i.canonicalJson)(e.routeParams),e.activeStrict,e.ignoreQueryParams,e.hash],([t,n,r,s,c],l,u)=>{let d=e.routeParams,f=(0,i.createActiveRouteSource)(a,t,d,c===void 0?{strict:r,ignoreQueryParams:s}:{strict:r,ignoreQueryParams:s,hash:c});o.value=f.getSnapshot(),u(f.subscribe(()=>{o.value=f.getSnapshot()}))},{immediate:!0,flush:`sync`});let s=(0,t.computed)(()=>z(a,e.routeName,e.routeParams,e.hash===void 0?void 0:{hash:e.hash})),c=(0,t.computed)(()=>de(o.value,e.activeClassName,e.class)),l=t=>{r.onClick!==void 0&&r.onClick!==null&&(me(r.onClick,t),t.defaultPrevented)||!I(t)||e.target===`_blank`||(t.preventDefault(),B(a,e.routeName,e.routeParams,e.hash,e.routeOptions).catch(()=>{}))};return()=>{let i={...r};return delete i.onClick,(0,t.h)(`a`,{...i,href:s.value,class:c.value,target:e.target,onClick:l},n.default?.())}}}),ge=(0,t.defineComponent)({name:`RouterErrorBoundary`,props:{fallback:{type:Function,required:!0},onError:{type:Function,default:void 0}},setup(e,{slots:n}){let r=v((0,i.createDismissableError)(y()));return(0,t.watch)(()=>r.value.version,()=>{r.value.error&&e.onError?.(r.value.error,r.value.toRoute,r.value.fromRoute)},{immediate:!0}),()=>{let i=n.default?.()??[],a=r.value.error?e.fallback(r.value.error,r.value.resetError):null;return(0,t.h)(t.Fragment,null,[...i,a])}}}),W=[];function G(e){return W.push(e),()=>{let t=W.lastIndexOf(e);t!==-1&&W.splice(t,1)}}function K(){let e=W.at(-1);if(!e)throw Error(`v-link directive requires a RouterProvider ancestor. Make sure RouterProvider is mounted.`);return e}const q=new WeakMap;function J(e){return e==null?(console.error(`[real-router] v-link directive received null/undefined value. The element will not be wired for navigation.`),!1):typeof e.name==`string`?!0:(console.error("[real-router] v-link directive value is missing a string `name` field. The element will not be wired for navigation."),!1)}function _e(e,t){return n=>{I(n)&&(n.preventDefault(),e.navigate(t.name,t.params??{},t.options??{}).catch(()=>{}))}}function ve(e,t,n){return r=>{r.key===`Enter`&&!(n instanceof HTMLButtonElement)&&e.navigate(t.name,t.params??{},t.options??{}).catch(()=>{})}}function Y(e,t,n){let r=_e(t,n),i=ve(t,n,e);e.addEventListener(`click`,r),e.addEventListener(`keydown`,i),q.set(e,{click:r,keydown:i})}function X(e){let t=q.get(e);t&&(e.removeEventListener(`click`,t.click),e.removeEventListener(`keydown`,t.keydown),q.delete(e))}const ye={mounted(e,t){let n=K();pe(e),e.style.cursor=`pointer`,J(t.value)&&Y(e,n,t.value)},updated(e,t){if(t.value===t.oldValue)return;let n=K();X(e),J(t.value)&&Y(e,n,t.value)},beforeUnmount(e){X(e)}},be=()=>{let n=(0,t.inject)(e.r);if(!n)throw Error(`useNavigator must be used within a RouterProvider`);return n},xe=()=>(0,r.getRouteUtils)((0,a.getPluginApi)(y()).getTree());function Se(){return v((0,i.getTransitionSource)(y()))}function Z(e,n){let r=y(),i=n?.skipSameRoute??!0;(0,t.onScopeDispose)(r.subscribeLeave(({route:t,nextRoute:n,signal:r})=>{if(!(i&&t.name===n.name)&&!r.aborted)return e({route:t,nextRoute:n,signal:r})}))}function Ce(n,r){let{route:i,previousRoute:a}=e.t(),o=r?.skipSameRoute??!0,s=null;(0,t.watch)(i,e=>{let t=a.value;e.transition.from&&(o&&e.transition.from===e.name||s===e||!t||(s=e,n({route:e,previousRoute:t})))})}function Q(e){let r=(0,n.getNavigator)(e),a=(0,i.createRouteSource)(e),o=a.getSnapshot(),s=(0,t.shallowRef)(o.route),c=(0,t.shallowRef)(o.previousRoute);return{navigator:r,route:s,previousRoute:c,unsubscribe:a.subscribe(()=>{let e=a.getSnapshot();s.value=e.route,c.value=e.previousRoute})}}function we(t){return{install(n){let r=G(t),{navigator:i,route:a,previousRoute:o,unsubscribe:s}=Q(t);`onUnmount`in n&&n.onUnmount(()=>{r(),s()}),n.provide(e.a,t),n.provide(e.r,i),n.provide(e.i,{navigator:i,route:a,previousRoute:o})}}}function $(e,n){(0,t.watch)(e,(e,t,r)=>{let i=n(e);i&&r(()=>{i.destroy()})},{immediate:!0})}const Te=(0,t.defineComponent)({name:`RouterProvider`,props:{router:{type:Object,required:!0},announceNavigation:{type:Boolean,default:!1},scrollRestoration:{type:Object},viewTransitions:{type:Boolean,default:!1}},setup(n,{slots:r}){$(()=>[n.router,n.announceNavigation],([e,t])=>t?ae(e):void 0),$(()=>[n.router,n.scrollRestoration!==void 0,n.scrollRestoration?.mode,n.scrollRestoration?.anchorScrolling,n.scrollRestoration?.behavior,n.scrollRestoration?.storageKey],([e,t,r,i,a,o])=>{if(t)return ue(e,{mode:r,anchorScrolling:i,behavior:a,storageKey:o,scrollContainer:n.scrollRestoration?.scrollContainer})}),$(()=>[n.router,n.viewTransitions],([e,t])=>t?F(e):void 0);let i=G(n.router),{navigator:a,route:o,previousRoute:s,unsubscribe:c}=Q(n.router);return(0,t.onScopeDispose)(()=>{i(),c()}),(0,t.provide)(e.a,n.router),(0,t.provide)(e.r,a),(0,t.provide)(e.i,{navigator:a,route:o,previousRoute:s}),()=>r.default?.()}});exports.Link=he,exports.NavigatorKey=e.r,exports.RouteKey=e.i,exports.RouteView=D,exports.RouterErrorBoundary=ge,exports.RouterKey=e.a,exports.RouterProvider=Te,exports.createRouterPlugin=we,exports.useNavigator=be,exports.useRoute=e.t,exports.useRouteEnter=Ce,exports.useRouteExit=Z,exports.useRouteNode=b,exports.useRouteUtils=xe,exports.useRouter=y,exports.useRouterTransition=Se,exports.vLink=ye;
2
2
  //# sourceMappingURL=index.js.map