@wavelengthusaf/client-router 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Wavelength Router
2
2
 
3
- A lightweight, native TypeScript web components router for modern web applications.
3
+ A lightweight, framework-free TypeScript router built with native custom elements.
4
4
 
5
5
  ## Table of Contents
6
6
 
@@ -21,6 +21,9 @@ A lightweight, native TypeScript web components router for modern web applicatio
21
21
  - [Route-Level Error Handling](#route-level-error-handling)
22
22
  - [Navigation Lifecycle Events](#navigation-lifecycle-events)
23
23
  - [Programmatic Navigation](#programmatic-navigation)
24
+ - [`<wavelength-link>` / `RouterLink`](#wavelength-link--routerlink)
25
+ - [`MemoryRouter`](#memoryrouter)
26
+ - [`useLocation`](#uselocation)
24
27
  - [Scroll Restoration](#scroll-restoration)
25
28
  - [Route Preloading](#route-preloading)
26
29
  - [Focus Management](#focus-management)
@@ -55,15 +58,7 @@ npm install @wavelengthusaf/client-router
55
58
 
56
59
  ## Use in Your Application
57
60
 
58
- ### Option 1: npm Package (Published)
59
-
60
- Once published to npm, install the package:
61
-
62
- ```bash
63
- npm install @wavelengthusaf/client-router
64
- ```
65
-
66
- Then import the elements in your entry point:
61
+ Install the package and import the elements in your entry point:
67
62
 
68
63
  ```typescript
69
64
  // main.ts or main.js
@@ -90,12 +85,12 @@ Use the custom elements directly in your HTML. This is ideal for simpler applica
90
85
  <title>My App</title>
91
86
  </head>
92
87
  <body>
93
- <!-- Router Container - owns navigation and renders matched pages -->
88
+ <!-- The router owns navigation and renders the matched page. -->
94
89
  <wavelength-router>
95
90
  <nav aria-label="Main navigation">
96
- <a href="/">Home</a>
97
- <a href="/about">About</a>
98
- <a href="/users/123">User Profile</a>
91
+ <wavelength-link to="/" end>Home</wavelength-link>
92
+ <wavelength-link to="/about" end>About</wavelength-link>
93
+ <wavelength-link to="/users/123" end>User Profile</wavelength-link>
99
94
  </nav>
100
95
 
101
96
  <wavelength-route path="/" component="home-page"></wavelength-route>
@@ -153,10 +148,10 @@ Use the custom elements directly in your HTML. This is ideal for simpler applica
153
148
  </html>
154
149
  ```
155
150
 
156
- `<wavelength-router>` delegates links from its own Light DOM and open Shadow
157
- DOM descendants. Keep declarative navigation inside the router, outside the
158
- rendered page outlet. Links outside the router intentionally retain native
159
- browser navigation; external controls can call `router.navigate(path)`.
151
+ `<wavelength-router>` delegates navigation for links in its Light DOM and open
152
+ Shadow DOM descendants. Keep navigation controls inside the router and route
153
+ declarations outside the rendered outlet. Links outside the router retain
154
+ native browser navigation.
160
155
 
161
156
  #### How It Works
162
157
 
@@ -303,13 +298,15 @@ intended.
303
298
 
304
299
  ### `<wavelength-router>` Attributes
305
300
 
306
- | Attribute | Type | Description |
307
- | -------------------- | --------------------------- | -------------------------------------------------------------------------- |
308
- | `base-path` | string | Base URL pathname stripped before matching and prepended during navigation |
309
- | `hash-mode` | flag | Enable hash-based routing (`#/path`) instead of history |
310
- | `guard` | string | Name of a global guard function on `window` |
311
- | `focus-strategy` | `none`, `outlet`, `heading` | Focus target after navigation; defaults to `none` |
312
- | `scroll-restoration` | `preserve`, `top` | Scroll behavior after navigation; defaults to `preserve` |
301
+ | Attribute | Type | Description |
302
+ | --------------------- | --------------------------- | -------------------------------------------------------------------------- |
303
+ | `base-path` | string | Base URL pathname stripped before matching and prepended during navigation |
304
+ | `error-component` | string | Custom element tag rendered for guard or mount failures |
305
+ | `hash-mode` | flag | Enable hash-based routing (`#/path`) instead of history |
306
+ | `guard` | string | Name of a global guard function on `window` |
307
+ | `focus-strategy` | `none`, `outlet`, `heading` | Focus target after navigation; defaults to `none` |
308
+ | `not-found-component` | string | Custom element tag rendered when no route matches |
309
+ | `scroll-restoration` | `preserve`, `top` | Scroll behavior after navigation; defaults to `preserve` |
313
310
 
314
311
  #### Example with Hash Mode
315
312
 
@@ -370,6 +367,24 @@ router's definitions.
370
367
  ></wavelength-route>
371
368
  ```
372
369
 
370
+ #### Example with Error Pages
371
+
372
+ Use `not-found-component` for unmatched paths and `error-component` for guard or
373
+ mount failures. The rendered component receives the normal `routeContext`.
374
+ Not-found contexts include `routeContext.meta.status === 404`; error contexts
375
+ include `routeContext.meta.status === 500` and
376
+ `routeContext.meta.errorPhase`.
377
+
378
+ ```html
379
+ <wavelength-router
380
+ error-component="error-page"
381
+ not-found-component="error-page"
382
+ >
383
+ <wavelength-route path="/" component="home-page"></wavelength-route>
384
+ <wavelength-route path="/reports" component="reports-page"></wavelength-route>
385
+ </wavelength-router>
386
+ ```
387
+
373
388
  #### Path Patterns
374
389
 
375
390
  - Static: `/about`, `/dashboard`
@@ -523,22 +538,31 @@ const router = new Router(routes, {
523
538
 
524
539
  ### Route-Level Error Handling
525
540
 
526
- Pass `onError` to a direct `Router` to handle route matching, guard, mount, and
527
- unmount failures in one place. The hook receives the thrown value, its phase,
528
- and the matched `RouteContext` when one exists. It works in both Light and
529
- Shadow DOM because it is independent of event retargeting.
541
+ Pass `notFoundComponent` to a direct `Router` to render a route component when
542
+ no route matches. Pass `errorComponent` to render a route component for guard
543
+ and mount failures. The not-found component receives
544
+ `routeContext.meta.status === 404`. The error component receives
545
+ `routeContext.meta.status === 500` and `routeContext.meta.errorPhase`.
546
+
547
+ Pass `onError` to report route matching, guard, mount, unmount, and scroll
548
+ failures in one place. The hook receives the thrown value, its phase, and the
549
+ matched `RouteContext` when one exists. It works in both Light and Shadow DOM
550
+ because it is independent of event retargeting.
530
551
 
531
552
  ```typescript
532
553
  import type { RouteErrorDetail } from '@wavelengthusaf/client-router';
533
554
 
534
555
  const router = new Router(routes, {
535
556
  outlet,
557
+ errorComponent: {
558
+ mount: (container, routeContext) => {
559
+ const page = document.createElement('error-page');
560
+ page.routeContext = routeContext;
561
+ container.replaceChildren(page);
562
+ },
563
+ },
536
564
  onError: ({ error, phase, context }: RouteErrorDetail) => {
537
565
  reportRouteError(error, { phase, path: context?.path });
538
-
539
- if (phase === 'mount') {
540
- outlet.textContent = 'Sorry, this page could not be loaded.';
541
- }
542
566
  },
543
567
  });
544
568
  ```
@@ -546,9 +570,9 @@ const router = new Router(routes, {
546
570
  The phases are `match`, `guard`, `mount`, `unmount`, and `scroll`. Supplying
547
571
  `onError` handles synchronous guard and mount errors so the router remains
548
572
  started. Unmount and scroll errors are reported and do not prevent the next
549
- route from mounting. Without a hook, synchronous guard and mount errors retain
550
- their normal thrown behavior. `wavelength-route-error` is dispatched in all
551
- cases.
573
+ route from mounting. Without `onError` or `errorComponent`, synchronous guard
574
+ and mount errors retain their normal thrown behavior.
575
+ `wavelength-route-error` is dispatched in all cases.
552
576
 
553
577
  ### Navigation Lifecycle Events
554
578
 
@@ -613,6 +637,54 @@ post-login or canonicalization redirects when the previous URL should not
613
637
  remain in browser history. Programmatic navigation accepts only valid
614
638
  same-origin HTTP(S) paths; external and malformed targets are ignored.
615
639
 
640
+ ### `<wavelength-link>` / `RouterLink`
641
+
642
+ `<wavelength-link>` renders an anchor that participates in delegated router
643
+ navigation. `RouterLink` is the exported custom-element class. Use `replace`
644
+ for replacement history entries and `end` for exact active matching:
645
+
646
+ ```html
647
+ <wavelength-link to="/account" end>Account</wavelength-link>
648
+ <wavelength-link to="/settings" replace>Settings</wavelength-link>
649
+ ```
650
+
651
+ ### `MemoryRouter`
652
+
653
+ `MemoryRouter` uses the same route definitions and route components while
654
+ keeping history in memory. It is useful for tests and embedded flows where the
655
+ browser URL should not change. It supports `start`, `destroy`, `navigate`,
656
+ `replace`, `back`, `forward`, and `go`.
657
+
658
+ ```typescript
659
+ import { MemoryRouter, useLocation } from '@wavelengthusaf/client-router';
660
+
661
+ const router = new MemoryRouter(routes, {
662
+ outlet: document.querySelector('#app')!,
663
+ initialEntries: ['/users/42'],
664
+ });
665
+ router.start();
666
+ const location = useLocation(router);
667
+ ```
668
+
669
+ ### `useLocation`
670
+
671
+ `useLocation(router)` is a framework-free equivalent of a location hook. It
672
+ returns a snapshot with `pathname`, `search`, `hash`, `path`, `routeParams`,
673
+ `query`, and optional route `meta`. Call `router.subscribe(listener)` when a
674
+ component needs to react to subsequent navigations. This works with both
675
+ `Router` and `MemoryRouter`:
676
+
677
+ ```typescript
678
+ import { useLocation } from '@wavelengthusaf/client-router';
679
+
680
+ const location = useLocation(router);
681
+ const unsubscribe = router.subscribe((nextLocation) => {
682
+ document.title = nextLocation.meta?.title ?? nextLocation.path;
683
+ });
684
+
685
+ // Call unsubscribe when the owning component is disconnected.
686
+ ```
687
+
616
688
  ### Scroll Restoration
617
689
 
618
690
  By default, navigation preserves the current scroll position. Set
@@ -867,9 +939,19 @@ if (match) {
867
939
 
868
940
  ## Best Practices
869
941
 
870
- ### 1. Always Define a Wildcard Route
942
+ ### 1. Provide a Not-Found Route
943
+
944
+ Use `not-found-component` when all unmatched paths should render one fallback
945
+ component:
946
+
947
+ ```html
948
+ <wavelength-router not-found-component="not-found-page">
949
+ <wavelength-route path="/" component="home-page"></wavelength-route>
950
+ </wavelength-router>
951
+ ```
871
952
 
872
- Provide a catch-all route for 404 handling:
953
+ Use a catch-all route when unmatched paths need route-specific guards or
954
+ metadata:
873
955
 
874
956
  ```html
875
957
  <wavelength-route path="*" component="not-found-page"></wavelength-route>
@@ -1 +1 @@
1
- {"version":3,"file":"RouteElement.d.ts","sourceRoot":"","sources":["../../src/elements/RouteElement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,eAAe,EAEf,SAAS,EACV,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,YAAa,SAAQ,WAAW;;IAC3C,gBAAuB,GAAG,sBAAsB;IAEhD,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,IAAW,YAAY,IAAI,MAAM,CAEhC;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,IAAI,IAAI,SAAS,GAAG,SAAS,CAevC;IAEM,YAAY,CAAC,GAAG,GAAE,eAAoB,GAAG,eAAe,GAAG,IAAI;CA4EvE"}
1
+ {"version":3,"file":"RouteElement.d.ts","sourceRoot":"","sources":["../../src/elements/RouteElement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,eAAe,EAEf,SAAS,EACV,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,YAAa,SAAQ,WAAW;;IAC3C,gBAAuB,GAAG,sBAAsB;IAEhD,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,IAAW,YAAY,IAAI,MAAM,CAEhC;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,IAAI,IAAI,SAAS,GAAG,SAAS,CAevC;IAEM,YAAY,CAAC,GAAG,GAAE,eAAoB,GAAG,eAAe,GAAG,IAAI;CA0EvE"}
@@ -62,7 +62,7 @@ export class RouteElement extends HTMLElement {
62
62
  };
63
63
  }
64
64
  #isRouteMeta(value) {
65
- return (typeof value === 'object' && value !== null && !Array.isArray(value));
65
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
66
66
  }
67
67
  #resolveGuard(env) {
68
68
  const guardName = this.guardName;
@@ -1 +1 @@
1
- {"version":3,"file":"RouteElement.js","sourceRoot":"","sources":["../../src/elements/RouteElement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RouteElement.js","sourceRoot":"","sources":["../../src/elements/RouteElement.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RouterElement.d.ts","sourceRoot":"","sources":["../../src/elements/RouterElement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAc,MAAM,oBAAoB,CAAC;AAEtE,OAAO,KAAK,EAEV,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAG7B,qBAAa,aAAc,SAAQ,WAAW;;IAC5C,gBAAuB,GAAG,uBAAuB;IAgBjD,WAAkB,kBAAkB,IAAI,MAAM,EAAE,CAQ/C;IAEM,iBAAiB,IAAI,IAAI;IAKzB,oBAAoB,IAAI,IAAI;IAK5B,wBAAwB,CAC7B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,GACtB,IAAI;IAKA,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI5B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3B,IAAI,IAAI,IAAI;IAInB,IAAW,SAAS,IAAI,cAAc,GAAG,SAAS,CAEjD;IAED,IAAW,SAAS,CAAC,SAAS,EAAE,cAAc,GAAG,SAAS,EAKzD;IAED,IAAW,iBAAiB,IAAI,iBAAiB,GAAG,SAAS,CAE5D;IAED,IAAW,iBAAiB,CAC1B,iBAAiB,EAAE,iBAAiB,GAAG,SAAS,EAMjD;IAEM,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3B,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB;IAIlD,OAAO,IAAI,IAAI;IAKf,cAAc,CAAC,gBAAgB,EAAE,eAAe,EAAE,GAAG,MAAM,IAAI;CAqTvE"}
1
+ {"version":3,"file":"RouterElement.d.ts","sourceRoot":"","sources":["../../src/elements/RouterElement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,eAAe,EAEhB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAEV,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAG7B,qBAAa,aAAc,SAAQ,WAAW;;IAC5C,gBAAuB,GAAG,uBAAuB;IAgBjD,WAAkB,kBAAkB,IAAI,MAAM,EAAE,CAU/C;IAEM,iBAAiB,IAAI,IAAI;IASzB,oBAAoB,IAAI,IAAI;IAS5B,wBAAwB,CAC7B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,GACtB,IAAI;IAKA,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI5B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3B,IAAI,IAAI,IAAI;IAInB,IAAW,SAAS,IAAI,cAAc,GAAG,SAAS,CAEjD;IAED,IAAW,SAAS,CAAC,SAAS,EAAE,cAAc,GAAG,SAAS,EAKzD;IAED,IAAW,iBAAiB,IAAI,iBAAiB,GAAG,SAAS,CAE5D;IAED,IAAW,iBAAiB,CAC1B,iBAAiB,EAAE,iBAAiB,GAAG,SAAS,EAMjD;IAEM,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3B,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB;IAIlD,OAAO,IAAI,IAAI;IAKf,cAAc,CAAC,gBAAgB,EAAE,eAAe,EAAE,GAAG,MAAM,IAAI;CA6VvE"}
@@ -12,17 +12,21 @@ export class RouterElement extends HTMLElement {
12
12
  static get observedAttributes() {
13
13
  return [
14
14
  'base-path',
15
+ 'error-component',
15
16
  'focus-strategy',
16
17
  'hash-mode',
17
18
  'guard',
19
+ 'not-found-component',
18
20
  'scroll-restoration',
19
21
  ];
20
22
  }
21
23
  connectedCallback() {
24
+ this.addEventListener('wavelength-route-complete', this.#handleRouteComplete);
22
25
  this.#observeRoutes();
23
26
  this.#bootstrap();
24
27
  }
25
28
  disconnectedCallback() {
29
+ this.removeEventListener('wavelength-route-complete', this.#handleRouteComplete);
26
30
  this.#routeObserver?.disconnect();
27
31
  this.#teardown();
28
32
  }
@@ -112,6 +116,7 @@ export class RouterElement extends HTMLElement {
112
116
  navigationRoot: this,
113
117
  focusStrategy: this.#focusStrategy(),
114
118
  scrollRestoration: this.#scrollRestoration ?? this.#scrollRestorationAttribute(),
119
+ ...this.#errorHandlingComponents(),
115
120
  ...(guard ? { beforeEach: guard } : {}),
116
121
  ...(this.#preloader ? { preload: this.#preloader } : {}),
117
122
  }, {
@@ -119,7 +124,15 @@ export class RouterElement extends HTMLElement {
119
124
  document: this.ownerDocument,
120
125
  });
121
126
  this.#router.start();
122
- }
127
+ const locationPath = this.#router.location?.path;
128
+ if (locationPath)
129
+ this.setAttribute('data-location-path', locationPath);
130
+ }
131
+ #handleRouteComplete = (event) => {
132
+ const detail = event.detail;
133
+ if (detail?.path)
134
+ this.setAttribute('data-location-path', detail.path);
135
+ };
123
136
  #teardown() {
124
137
  this.#router?.destroy();
125
138
  this.#router = undefined;
@@ -142,6 +155,27 @@ export class RouterElement extends HTMLElement {
142
155
  ...declarativeRoutes.slice(wildcardIndex),
143
156
  ];
144
157
  }
158
+ #errorHandlingComponents() {
159
+ const errorComponent = this.#componentFromAttribute('error-component');
160
+ const notFoundComponent = this.#componentFromAttribute('not-found-component');
161
+ return {
162
+ ...(errorComponent ? { errorComponent } : {}),
163
+ ...(notFoundComponent ? { notFoundComponent } : {}),
164
+ };
165
+ }
166
+ #componentFromAttribute(attributeName) {
167
+ const tag = this.getAttribute(attributeName) ?? '';
168
+ if (!tag)
169
+ return undefined;
170
+ return {
171
+ mount: (container, routeContext) => {
172
+ const element = this.ownerDocument.createElement(tag);
173
+ element.routeContext = routeContext;
174
+ container.appendChild(element);
175
+ },
176
+ unmount() { },
177
+ };
178
+ }
145
179
  #observeRoutes() {
146
180
  const MutationObserverConstructor = this.ownerDocument.defaultView?.MutationObserver;
147
181
  if (!MutationObserverConstructor)
@@ -1 +1 @@
1
- {"version":3,"file":"RouterElement.js","sourceRoot":"","sources":["../../src/elements/RouterElement.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAO7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,OAAO,aAAc,SAAQ,WAAW;IACrC,MAAM,CAAU,GAAG,GAAG,mBAAmB,CAAC;IAEjD,OAAO,CAAqB;IAE5B,OAAO,CAAe;IAEtB,cAAc,CAAoB;IAElC,uBAAuB,GAAG,KAAK,CAAC;IAEhC,iBAAiB,GAAG,IAAI,GAAG,EAAqB,CAAC;IAEjD,UAAU,CAA6B;IAEvC,kBAAkB,CAAgC;IAE3C,MAAM,KAAK,kBAAkB;QAClC,OAAO;YACL,WAAW;YACX,gBAAgB;YAChB,WAAW;YACX,OAAO;YACP,oBAAoB;SACrB,CAAC;IACJ,CAAC;IAEM,iBAAiB;QACtB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAEM,oBAAoB;QACzB,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAEM,wBAAwB,CAC7B,IAAY,EACZ,QAAuB,EACvB,QAAuB;QAEvB,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,QAAQ,KAAK,QAAQ;YAAE,OAAO;QACvD,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAEM,QAAQ,CAAC,IAAY;QAC1B,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAEM,OAAO,CAAC,IAAY;QACzB,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAEM,IAAI;QACT,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;IACvB,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAW,SAAS,CAAC,SAAqC;QACxD,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;YAAE,OAAO;QAE1C,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,UAAU,EAAE,CAAC;IAC1C,CAAC;IAED,IAAW,iBAAiB;QAC1B,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED,IAAW,iBAAiB,CAC1B,iBAAgD;QAEhD,IAAI,IAAI,CAAC,kBAAkB,KAAK,iBAAiB;YAAE,OAAO;QAE1D,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;QAC5C,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,UAAU,EAAE,CAAC;IAC1C,CAAC;IAEM,OAAO,CAAC,IAAY;QACzB,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAEM,gBAAgB,CAAC,IAAY;QAClC,OAAO,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;IACxD,CAAC;IAEM,OAAO;QACZ,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAC9B,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAEM,cAAc,CAAC,gBAAmC;QACvD,MAAM,gBAAgB,GAAsB,gBAAgB,CAAC,GAAG,CAC9D,CAAC,eAAgC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,eAAe,EAAE,CAAC,CAC/D,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAChC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC7C,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,UAAU,EAAE,CAAC;QAExC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,gBAAgB,CAAC;gBAAE,OAAO;YAC7D,IAAI,IAAI,CAAC,WAAW;gBAAE,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1C,CAAC,CAAC;IACJ,CAAC;IAED,UAAU;QACR,MAAM,MAAM,GAAgB,IAAI,CAAC,aAAa,EAAE,CAAC;QACjD,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,MAAM,eAAe,GAAc,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACjE,MAAM,aAAa,GAAmB,eAAe,CAAC,MAAM,CAC1D,CAAC,YAAqB,EAAgC,EAAE,CACtD,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CACrC,CAAC;QAEF,IAAI,aAAa,CAAC,MAAM,KAAK,eAAe,CAAC,MAAM,EAAE,CAAC;YACpD,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjB,MAAM,MAAM,GAAsB,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAErE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,eAAe,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;YAC1E,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAA2B,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3D,MAAM,WAAW,GAAkB,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;QAClE,IAAI,CAAC,WAAW;YAAE,OAAO;QAEzB,IAAI,CAAC,OAAO,GAAG,IAAI,MAAM,CACvB,MAAM,EACN;YACE,MAAM;YACN,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;YACxC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,EAAE;YAC9C,WAAW,EAAE,IAAI;YACjB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE;YACpC,iBAAiB,EACf,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,2BAA2B,EAAE;YAC/D,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzD,EACD;YACE,MAAM,EAAE,WAAW;YACnB,QAAQ,EAAE,IAAI,CAAC,aAAa;SAC7B,CACF,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,SAAS;QACP,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;IAC3B,CAAC;IAED,cAAc,CAAC,aAA6B;QAC1C,OAAO,aAAa;aACjB,GAAG,CAAC,CAAC,YAA0B,EAAE,EAAE,CAClC,YAAY,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAC5D;aACA,MAAM,CACL,CACE,eAAuC,EACH,EAAE,CAAC,eAAe,KAAK,IAAI,CAClE,CAAC;IACN,CAAC;IAED,cAAc,CAAC,aAA6B;QAC1C,MAAM,iBAAiB,GACrB,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QACrC,MAAM,gBAAgB,GAAsB,KAAK,CAAC,IAAI,CACpD,IAAI,CAAC,iBAAiB,CACvB,CAAC,IAAI,EAAE,CAAC;QACT,MAAM,aAAa,GAAW,iBAAiB,CAAC,SAAS,CACvD,CAAC,KAAsB,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAC/C,CAAC;QAEF,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,iBAAiB,EAAE,GAAG,gBAAgB,CAAC,CAAC;QACrD,CAAC;QAED,OAAO;YACL,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC;YAC5C,GAAG,gBAAgB;YACnB,GAAG,iBAAiB,CAAC,KAAK,CAAC,aAAa,CAAC;SAC1C,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,MAAM,2BAA2B,GAC/B,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,gBAAgB,CAAC;QACnD,IAAI,CAAC,2BAA2B;YAAE,OAAO;QAEzC,IAAI,CAAC,cAAc,GAAG,IAAI,2BAA2B,CACnD,CAAC,OAAyB,EAAE,EAAE;YAC5B,MAAM,cAAc,GAAY,OAAO,CAAC,IAAI,CAC1C,CAAC,MAAsB,EAAE,EAAE,CACzB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CACjE,CAAC;YAEF,IAAI,cAAc;gBAAE,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,CAAC,CACF,CAAC;IACJ,CAAC;IAED,wBAAwB;QACtB,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAEjE,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YAC7C,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,qBAAqB;QACnB,OAAO;YACL,UAAU,EAAE,IAAI;YAChB,eAAe,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC;YACvD,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,MAAsB;QACrC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;QAElD,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACjC,OAAO,CACL,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CACtE,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,GAAG,MAAM,CAAC,UAAU,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,IAAU,EAAE,EAAE,CACxE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CACjC,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,MAAsB;QACrC,OAAO,CACL,MAAM,CAAC,IAAI,KAAK,WAAW;YAC3B,MAAM,CAAC,MAAM,KAAK,IAAI;YACtB,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAQ,CAAC,CACjD,CAAC;IACJ,CAAC;IAED,qBAAqB,CAAC,IAAU;QAC9B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,KAAK,aAAa,CAAC,GAAG,EAAE,CAAC;YACnE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,KAAK,YAAY,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QAErD,OAAO,CACL,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC;YAClC,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI;gBACvB,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CACjD,CAAC;IACJ,CAAC;IAED,uBAAuB,CAAC,IAAgB;QACtC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,OAAgB,EAAE,EAAE,CACzD,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CACpC,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,IAAU;QACnB,OAAO,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,eAAe,CAAC,OAAgB;QAC9B,MAAM,YAAY,GAAG,OAAgC,CAAC;QACtD,MAAM,sBAAsB,GAC1B,OAAO,CAAC,aAAa,CAAC,WAAW,EAAE,WAAW,CAAC;QACjD,OAAO,CACL,OAAO,CAAC,SAAS,KAAK,YAAY,CAAC,GAAG;YACtC,OAAO,YAAY,CAAC,YAAY,KAAK,UAAU;YAC/C,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,sBAAsB,EAAE,SAAS,CACrE,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,IAAU;QACpB,OAAO,IAAI,CAAC,OAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxE,CAAC;IAED,aAAa;QACX,IAAI,IAAI,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC;QAE9D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,gBAAgB,CAAC,MAAmB;QAClC,MAAM,UAAU,GAAc,EAAE,CAAC;QACjC,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAEvD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QACpE,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,uBAAuB,CACrB,IAAgB,EAChB,MAAmB,EACnB,UAAqB;QAErB,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChD,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,SAAS,KAAK,aAAa,CAAC,GAAG,EAAE,CAAC;gBACxE,SAAS;YACX,CAAC;YAED,IAAI,OAAO,CAAC,SAAS,KAAK,YAAY,CAAC,GAAG;gBAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAErE,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YAC1D,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;IACH,CAAC;IAED,YAAY;QACV,MAAM,WAAW,GAAiB,EAAE,CAAC;QACrC,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC5C,IAAI,IAAI,CAAC,UAAU;YAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvD,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,mBAAmB,CAAC,IAAgB,EAAE,WAAyB;QAC7D,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChD,IACE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;gBACzB,OAAO,CAAC,SAAS,KAAK,aAAa,CAAC,GAAG,EACvC,CAAC;gBACD,SAAS;YACX,CAAC;YAED,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBACrC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YAC5D,CAAC;YAED,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,oBAAoB;QAClB,IAAI,IAAI,CAAC,uBAAuB;YAAE,OAAO;QAEzC,MAAM,QAAQ,GACZ,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,cAAc,CAAC;QACjD,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;QACpC,KAAK,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;YACpD,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;YACrC,IAAI,IAAI,CAAC,WAAW;gBAAE,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,cAAc;QACZ,MAAM,KAAK,GAAkB,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;QAEjE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC5D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,2BAA2B;QACzB,MAAM,KAAK,GAAkB,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;QACrE,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,UAAU;YAAE,OAAO,KAAK,CAAC;QAC1D,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,aAAa;QACX,MAAM,SAAS,GAAkB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC5D,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC;QAEjC,MAAM,WAAW,GAAkB,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;QAClE,IAAI,CAAC,WAAW;YAAE,OAAO,SAAS,CAAC;QAEnC,MAAM,EAAE,GAAa,WAAkD,CACrE,SAAS,CACV,CAAC;QAEF,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CACV,8BAA8B,SAAS,wBAAwB,CAChE,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,EAAgB,CAAC;IAC1B,CAAC;;AAGH,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;IAC3C,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;AAC1D,CAAC"}
1
+ {"version":3,"file":"RouterElement.js","sourceRoot":"","sources":["../../src/elements/RouterElement.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export declare class RouterLink extends HTMLElement {
2
+ #private;
3
+ static readonly tag = "wavelength-link";
4
+ static get observedAttributes(): string[];
5
+ connectedCallback(): void;
6
+ disconnectedCallback(): void;
7
+ attributeChangedCallback(): void;
8
+ }
9
+ //# sourceMappingURL=RouterLink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RouterLink.d.ts","sourceRoot":"","sources":["../../src/elements/RouterLink.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAW,SAAQ,WAAW;;IACzC,gBAAuB,GAAG,qBAAqB;IAI/C,WAAkB,kBAAkB,IAAI,MAAM,EAAE,CAE/C;IACM,iBAAiB,IAAI,IAAI;IASzB,oBAAoB,IAAI,IAAI;IAM5B,wBAAwB,IAAI,IAAI;CAsDxC"}
@@ -0,0 +1,76 @@
1
+ export class RouterLink extends HTMLElement {
2
+ static tag = 'wavelength-link';
3
+ #anchor;
4
+ #router;
5
+ static get observedAttributes() {
6
+ return ['to', 'replace', 'end'];
7
+ }
8
+ connectedCallback() {
9
+ this.#render();
10
+ const router = this.closest('wavelength-router');
11
+ if (router)
12
+ this.#router = router;
13
+ this.#router?.addEventListener('wavelength-route-complete', this.#handleRouteComplete);
14
+ }
15
+ disconnectedCallback() {
16
+ this.#router?.removeEventListener('wavelength-route-complete', this.#handleRouteComplete);
17
+ }
18
+ attributeChangedCallback() {
19
+ if (this.isConnected)
20
+ this.#render();
21
+ }
22
+ #render() {
23
+ const to = this.getAttribute('to') ?? '/';
24
+ if (!this.#anchor) {
25
+ const anchor = this.ownerDocument.createElement('a');
26
+ anchor.addEventListener('click', this.#handleClick);
27
+ anchor.append(...Array.from(this.childNodes));
28
+ this.appendChild(anchor);
29
+ this.#anchor = anchor;
30
+ }
31
+ this.#anchor.href = to;
32
+ this.#anchor.setAttribute('href', to);
33
+ this.#updateActive();
34
+ }
35
+ #handleClick = (event) => {
36
+ if (!this.hasAttribute('replace') ||
37
+ event.button !== 0 ||
38
+ event.metaKey ||
39
+ event.ctrlKey ||
40
+ event.shiftKey ||
41
+ event.altKey)
42
+ return;
43
+ this.dispatchEvent(new CustomEvent('wavelength-navigate', {
44
+ bubbles: true,
45
+ composed: true,
46
+ cancelable: true,
47
+ detail: { path: this.getAttribute('to') ?? '/', replace: true },
48
+ }));
49
+ event.preventDefault();
50
+ };
51
+ #handleRouteComplete = (event) => {
52
+ const detail = event
53
+ .detail;
54
+ this.#updateActive(detail?.context?.path);
55
+ };
56
+ #updateActive = (current) => {
57
+ current ??=
58
+ this.closest('wavelength-router')?.getAttribute('data-location-path') ??
59
+ undefined;
60
+ const target = this.getAttribute('to') ?? '/';
61
+ const active = current === target ||
62
+ (!this.hasAttribute('end') && current?.startsWith(`${target}/`) === true);
63
+ this.toggleAttribute('data-active', active);
64
+ if (active)
65
+ this.#anchor?.setAttribute('aria-current', 'page');
66
+ else
67
+ this.#anchor?.removeAttribute('aria-current');
68
+ };
69
+ }
70
+ if (!customElements.get(RouterLink.tag))
71
+ customElements.define(RouterLink.tag, RouterLink);
72
+ if (!customElements.get('wavelength-router-link')) {
73
+ customElements.define('wavelength-router-link', class RouterLinkAlias extends RouterLink {
74
+ });
75
+ }
76
+ //# sourceMappingURL=RouterLink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RouterLink.js","sourceRoot":"","sources":["../../src/elements/RouterLink.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,11 @@
1
1
  export { Router } from './router/Router.js';
2
+ export { MemoryRouter } from './router/MemoryRouter.js';
3
+ export { useLocation } from './router/useLocation.js';
4
+ export type { LocationSource } from './router/useLocation.js';
2
5
  export type { FocusStrategy, RouteErrorDetail, RouteErrorHandler, RouteErrorPhase, RouteLifecycleEventDetail, RoutePreloader, RoutePreloadStatus, ScrollRestoration, ScrollRestorationHandler, ScrollRestorationNavigation, } from './router/Router.js';
3
6
  export { RouterElement } from './elements/RouterElement.js';
4
7
  export { RouteElement } from './elements/RouteElement.js';
5
- export type { RouteComponent, RouteContext, RouteDefinition, RouteGuard, RouteMeta, RouteMetaValue, RouteParams, CompiledRoute, MatchedRoute, } from './models/index.ts';
8
+ export { RouterLink } from './elements/RouterLink.js';
9
+ export type { RouteComponent, RouteContext, RouteDefinition, RouteGuard, RouteMeta, RouteMetaValue, RouteParams, CompiledRoute, MatchedRoute, LocationListener, RouterLocation, } from './models/index.ts';
6
10
  export { compileRoute, matchRoute } from './utils/index.js';
7
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,yBAAyB,EACzB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,YAAY,EACV,cAAc,EACd,YAAY,EACZ,eAAe,EACf,UAAU,EACV,SAAS,EACT,cAAc,EACd,WAAW,EACX,aAAa,EACb,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,yBAAyB,EACzB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,YAAY,EACV,cAAc,EACd,YAAY,EACZ,eAAe,EACf,UAAU,EACV,SAAS,EACT,cAAc,EACd,WAAW,EACX,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,8 @@
1
1
  export { Router } from './router/Router.js';
2
+ export { MemoryRouter } from './router/MemoryRouter.js';
3
+ export { useLocation } from './router/useLocation.js';
2
4
  export { RouterElement } from './elements/RouterElement.js';
3
5
  export { RouteElement } from './elements/RouteElement.js';
6
+ export { RouterLink } from './elements/RouterLink.js';
4
7
  export { compileRoute, matchRoute } from './utils/index.js';
5
8
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAa5C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAc1D,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AActD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAgBtD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { RouteContext } from './RouteContext.js';
2
+ export interface RouterLocation extends RouteContext {
3
+ pathname: string;
4
+ search: string;
5
+ hash: string;
6
+ }
7
+ export type LocationListener = (location: RouterLocation) => void;
8
+ //# sourceMappingURL=RouterLocation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RouterLocation.d.ts","sourceRoot":"","sources":["../../src/models/RouterLocation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=RouterLocation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RouterLocation.js","sourceRoot":"","sources":["../../src/models/RouterLocation.ts"],"names":[],"mappings":""}
@@ -6,5 +6,6 @@ import type { RouteDefinition } from './RouteDefinition.js';
6
6
  import type { RouteGuard } from './RouteGuard.js';
7
7
  import type { RouteMeta, RouteMetaValue } from './RouteMeta.js';
8
8
  import type { RouteParams } from './RouteParams.js';
9
- export type { CompiledRoute, MatchedRoute, RouteComponent, RouteContext, RouteDefinition, RouteGuard, RouteMeta, RouteMetaValue, RouteParams, };
9
+ import type { LocationListener, RouterLocation } from './RouterLocation.js';
10
+ export type { CompiledRoute, MatchedRoute, RouteComponent, RouteContext, RouteDefinition, RouteGuard, RouteMeta, RouteMetaValue, RouteParams, LocationListener, RouterLocation, };
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,YAAY,EACV,aAAa,EACb,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,eAAe,EACf,UAAU,EACV,SAAS,EACT,cAAc,EACd,WAAW,GACZ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE5E,YAAY,EACV,aAAa,EACb,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,eAAe,EACf,UAAU,EACV,SAAS,EACT,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,cAAc,GACf,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { LocationListener, RouteDefinition, RouteGuard, RouterLocation } from '../models/index.js';
2
+ export interface MemoryRouterOptions {
3
+ outlet?: HTMLElement;
4
+ initialEntries?: string[];
5
+ initialIndex?: number;
6
+ beforeEach?: RouteGuard;
7
+ eventTarget?: EventTarget;
8
+ }
9
+ export declare class MemoryRouter {
10
+ #private;
11
+ constructor(routes: RouteDefinition[], options?: MemoryRouterOptions);
12
+ get location(): RouterLocation;
13
+ start(): void;
14
+ destroy(): void;
15
+ navigate(path: string): void;
16
+ replace(path: string): void;
17
+ back(): void;
18
+ forward(): void;
19
+ go(delta: number): void;
20
+ subscribe(listener: LocationListener): () => void;
21
+ }
22
+ //# sourceMappingURL=MemoryRouter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoryRouter.d.ts","sourceRoot":"","sources":["../../src/router/MemoryRouter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,gBAAgB,EAGhB,eAAe,EACf,UAAU,EACV,cAAc,EACf,MAAM,oBAAoB,CAAC;AAI5B,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,qBAAa,YAAY;;gBAYX,MAAM,EAAE,eAAe,EAAE,EAAE,OAAO,GAAE,mBAAwB;IAcxE,IAAW,QAAQ,IAAI,cAAc,CAWpC;IAEM,KAAK,IAAI,IAAI;IAMb,OAAO,IAAI,IAAI;IAMf,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM5B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3B,IAAI,IAAI,IAAI;IAGZ,OAAO,IAAI,IAAI;IAGf,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMvB,SAAS,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,IAAI;CA6DzD"}
@@ -0,0 +1,133 @@
1
+ import { compileRoute, matchRoute } from '../utils/index.js';
2
+ export class MemoryRouter {
3
+ #routes;
4
+ #outlet;
5
+ #beforeEach;
6
+ #eventTarget;
7
+ #entries;
8
+ #listeners = new Set();
9
+ #index;
10
+ #started = false;
11
+ #component;
12
+ #context;
13
+ constructor(routes, options = {}) {
14
+ this.#routes = routes.map(compileRoute);
15
+ this.#outlet = options.outlet;
16
+ this.#beforeEach = options.beforeEach;
17
+ this.#eventTarget = options.eventTarget;
18
+ this.#entries = options.initialEntries?.length
19
+ ? [...options.initialEntries]
20
+ : ['/'];
21
+ this.#index = Math.min(Math.max(options.initialIndex ?? this.#entries.length - 1, 0), this.#entries.length - 1);
22
+ }
23
+ get location() {
24
+ const url = new URL(this.#entries[this.#index], 'https://memory.local');
25
+ return {
26
+ pathname: url.pathname,
27
+ path: this.#context?.path ?? url.pathname,
28
+ search: url.search,
29
+ hash: url.hash,
30
+ routeParams: this.#context?.routeParams ?? {},
31
+ query: this.#context?.query ?? new URLSearchParams(url.search),
32
+ ...(this.#context?.meta ? { meta: this.#context.meta } : {}),
33
+ };
34
+ }
35
+ start() {
36
+ if (!this.#started) {
37
+ this.#started = true;
38
+ this.#resolve();
39
+ }
40
+ }
41
+ destroy() {
42
+ this.#started = false;
43
+ this.#component?.unmount?.();
44
+ this.#component = undefined;
45
+ this.#context = undefined;
46
+ }
47
+ navigate(path) {
48
+ this.#entries.splice(this.#index + 1);
49
+ this.#entries.push(path);
50
+ this.#index += 1;
51
+ this.#resolve();
52
+ }
53
+ replace(path) {
54
+ this.#entries[this.#index] = path;
55
+ this.#resolve();
56
+ }
57
+ back() {
58
+ this.go(-1);
59
+ }
60
+ forward() {
61
+ this.go(1);
62
+ }
63
+ go(delta) {
64
+ const next = this.#index + delta;
65
+ if (next < 0 || next >= this.#entries.length)
66
+ return;
67
+ this.#index = next;
68
+ this.#resolve();
69
+ }
70
+ subscribe(listener) {
71
+ this.#listeners.add(listener);
72
+ return () => this.#listeners.delete(listener);
73
+ }
74
+ #resolve() {
75
+ if (!this.#started)
76
+ return;
77
+ const location = this.location;
78
+ const match = matchRoute(this.#routes, location.pathname);
79
+ if (!match)
80
+ return;
81
+ const context = {
82
+ path: location.pathname,
83
+ routeParams: match.routeParams,
84
+ query: new URLSearchParams(location.search),
85
+ ...(match.routeDefinition.meta
86
+ ? { meta: match.routeDefinition.meta }
87
+ : {}),
88
+ };
89
+ this.#dispatch('wavelength-route-start', { path: context.path, context });
90
+ const next = () => {
91
+ this.#component?.unmount?.();
92
+ this.#outlet?.replaceChildren();
93
+ if (this.#outlet)
94
+ match.routeDefinition.routeComponent.mount(this.#outlet, context);
95
+ this.#component = match.routeDefinition.routeComponent;
96
+ this.#context = context;
97
+ for (const listener of this.#listeners)
98
+ listener(this.location);
99
+ this.#dispatch('wavelength-route-complete', {
100
+ path: context.path,
101
+ context,
102
+ });
103
+ };
104
+ const guards = [
105
+ ...(this.#beforeEach ? [this.#beforeEach] : []),
106
+ ...(match.routeDefinition.beforeEach
107
+ ? [match.routeDefinition.beforeEach]
108
+ : []),
109
+ ];
110
+ const runGuard = (index) => {
111
+ const guard = guards[index];
112
+ if (!guard) {
113
+ next();
114
+ return;
115
+ }
116
+ guard(context, (redirect) => {
117
+ if (redirect)
118
+ this.navigate(redirect);
119
+ else
120
+ runGuard(index + 1);
121
+ });
122
+ };
123
+ if (guards.length > 0) {
124
+ runGuard(0);
125
+ return;
126
+ }
127
+ next();
128
+ }
129
+ #dispatch(type, detail) {
130
+ this.#eventTarget?.dispatchEvent(new CustomEvent(type, { bubbles: true, composed: true, detail }));
131
+ }
132
+ }
133
+ //# sourceMappingURL=MemoryRouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoryRouter.js","sourceRoot":"","sources":["../../src/router/MemoryRouter.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { RouteContext, RouteDefinition, RouteGuard } from '../models/index.js';
1
+ import type { LocationListener, RouteComponent, RouteContext, RouteDefinition, RouteGuard, RouterLocation } from '../models/index.js';
2
2
  export interface RouterEnv {
3
3
  window?: Window;
4
4
  document?: Document;
@@ -25,6 +25,8 @@ export interface RouterOptions {
25
25
  navigationRoot?: HTMLElement;
26
26
  focusStrategy?: FocusStrategy;
27
27
  onError?: RouteErrorHandler;
28
+ errorComponent?: RouteComponent;
29
+ notFoundComponent?: RouteComponent;
28
30
  preload?: RoutePreloader;
29
31
  scrollRestoration?: ScrollRestoration;
30
32
  }
@@ -44,5 +46,7 @@ export declare class Router {
44
46
  back(): void;
45
47
  preload(path: string): void;
46
48
  getPreloadStatus(path: string): RoutePreloadStatus;
49
+ get location(): RouterLocation;
50
+ subscribe(listener: LocationListener): () => void;
47
51
  }
48
52
  //# sourceMappingURL=Router.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../../src/router/Router.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAIV,YAAY,EACZ,eAAe,EACf,UAAU,EACX,MAAM,oBAAoB,CAAC;AAG5B,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,QAAQ,GACR,SAAS,GACT,CAAC,CACC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,YAAY,KAClB,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAEzC,MAAM,MAAM,2BAA2B,GACrC,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC;AAEzC,MAAM,MAAM,wBAAwB,GAAG,CACrC,OAAO,EAAE,YAAY,EACrB,cAAc,EAAE,2BAA2B,KACxC,IAAI,CAAC;AAEV,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,UAAU,GAAG,wBAAwB,CAAC;AAE9E,MAAM,MAAM,eAAe,GACzB,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;AAErD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,eAAe,CAAC;IACvB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAEnE,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,YAAY,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE5E,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAwB7E,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;AAED,qBAAa,MAAM;;gBAkCf,gBAAgB,EAAE,eAAe,EAAE,EACnC,aAAa,GAAE,aAAkB,EACjC,GAAG,GAAE,SAAc;IA2Cd,KAAK,IAAI,IAAI;IAsBb,OAAO,IAAI,IAAI;IAqCf,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAe5B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAe3B,IAAI,IAAI,IAAI;IAMZ,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAS3B,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB;CA+xB1D"}
1
+ {"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../../src/router/Router.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,gBAAgB,EAEhB,cAAc,EACd,YAAY,EACZ,eAAe,EACf,UAAU,EACV,cAAc,EACf,MAAM,oBAAoB,CAAC;AAG5B,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,QAAQ,GACR,SAAS,GACT,CAAC,CACC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,YAAY,KAClB,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAEzC,MAAM,MAAM,2BAA2B,GACrC,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC;AAEzC,MAAM,MAAM,wBAAwB,GAAG,CACrC,OAAO,EAAE,YAAY,EACrB,cAAc,EAAE,2BAA2B,KACxC,IAAI,CAAC;AAEV,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,UAAU,GAAG,wBAAwB,CAAC;AAE9E,MAAM,MAAM,eAAe,GACzB,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;AAErD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,eAAe,CAAC;IACvB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAEnE,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,YAAY,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE5E,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAwB7E,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,iBAAiB,CAAC,EAAE,cAAc,CAAC;IACnC,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;AAED,qBAAa,MAAM;;gBAsCf,gBAAgB,EAAE,eAAe,EAAE,EACnC,aAAa,GAAE,aAAkB,EACjC,GAAG,GAAE,SAAc;IAmDd,KAAK,IAAI,IAAI;IAsBb,OAAO,IAAI,IAAI;IAqCf,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAe5B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAe3B,IAAI,IAAI,IAAI;IAMZ,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAS3B,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB;IAOzD,IAAW,QAAQ,IAAI,cAAc,CAgBpC;IAEM,SAAS,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,IAAI;CA04BzD"}
@@ -25,6 +25,8 @@ export class Router {
25
25
  #navigationRoot;
26
26
  #focusStrategy;
27
27
  #onError;
28
+ #errorComponent;
29
+ #notFoundComponent;
28
30
  #preloader;
29
31
  #scrollRestoration;
30
32
  #preloadMachine = createMachine(reducePreloadState, {});
@@ -36,6 +38,7 @@ export class Router {
36
38
  #document;
37
39
  #isStarted = false;
38
40
  #isDestroyed = false;
41
+ #locationListeners = new Set();
39
42
  #isNavigationRootRegistered = false;
40
43
  #navigationVersion = 0;
41
44
  constructor(routeDefinitions, routerOptions = {}, env = {}) {
@@ -56,6 +59,12 @@ export class Router {
56
59
  if (routerOptions.onError !== undefined) {
57
60
  this.#onError = routerOptions.onError;
58
61
  }
62
+ if (routerOptions.errorComponent !== undefined) {
63
+ this.#errorComponent = routerOptions.errorComponent;
64
+ }
65
+ if (routerOptions.notFoundComponent !== undefined) {
66
+ this.#notFoundComponent = routerOptions.notFoundComponent;
67
+ }
59
68
  if (routerOptions.preload !== undefined) {
60
69
  this.#preloader = routerOptions.preload;
61
70
  }
@@ -154,6 +163,26 @@ export class Router {
154
163
  return 'idle';
155
164
  return this.#preloadMachine.getState()[navigationPath] ?? 'idle';
156
165
  }
166
+ get location() {
167
+ const pathname = this.#window ? this.#currentPath() : '/';
168
+ const query = this.#currentRouteContext?.query ??
169
+ (this.#window ? this.#currentQuery() : new URLSearchParams());
170
+ return {
171
+ pathname,
172
+ path: this.#currentRouteContext?.path ?? pathname,
173
+ search: this.#window?.location.search ?? '',
174
+ hash: this.#window?.location.hash ?? '',
175
+ routeParams: this.#currentRouteContext?.routeParams ?? {},
176
+ query,
177
+ ...(this.#currentRouteContext?.meta
178
+ ? { meta: this.#currentRouteContext.meta }
179
+ : {}),
180
+ };
181
+ }
182
+ subscribe(listener) {
183
+ this.#locationListeners.add(listener);
184
+ return () => this.#locationListeners.delete(listener);
185
+ }
157
186
  #bindEvents() {
158
187
  this.#window.addEventListener(this.#hashMode ? 'hashchange' : 'popstate', this.#handleLocationChange);
159
188
  this.#eventTarget.addEventListener('click', this.#handleClick);
@@ -473,6 +502,7 @@ export class Router {
473
502
  }
474
503
  this.#currentComponent = routeComponent;
475
504
  this.#currentRouteContext = routeContext;
505
+ this.#notifyLocation();
476
506
  this.#focusAfterNavigation(routeContext);
477
507
  this.#restoreScroll(routeContext, navigationType);
478
508
  }
@@ -608,6 +638,9 @@ export class Router {
608
638
  const match = matchRoute(this.#compiledRoutes, pathname);
609
639
  if (!match) {
610
640
  const error = new Error(`[Router] No route matched: ${pathname}`);
641
+ if (this.#mountNotFoundRoute(pathname, query, navigationVersion)) {
642
+ return;
643
+ }
611
644
  console.warn(error.message);
612
645
  this.#reportRouteError(error, 'match');
613
646
  return;
@@ -632,6 +665,11 @@ export class Router {
632
665
  ];
633
666
  this.#runGuards(guards, match, context, navigationVersion, navigationType);
634
667
  }
668
+ #notifyLocation() {
669
+ const location = this.location;
670
+ for (const listener of this.#locationListeners)
671
+ listener(location);
672
+ }
635
673
  #runGuards(guards, match, context, navigationVersion, navigationType, guardIndex = 0) {
636
674
  const guard = guards[guardIndex];
637
675
  if (!guard) {
@@ -701,11 +739,80 @@ export class Router {
701
739
  phase,
702
740
  ...contextDetail,
703
741
  });
742
+ const handledByErrorComponent = this.#mountErrorRoute(error, phase, context);
704
743
  if (!this.#onError)
705
- return false;
744
+ return handledByErrorComponent;
706
745
  this.#onError({ error, phase, ...contextDetail });
707
746
  return true;
708
747
  }
748
+ #mountNotFoundRoute(pathname, query, navigationVersion) {
749
+ if (!this.#notFoundComponent)
750
+ return false;
751
+ const context = {
752
+ path: pathname,
753
+ routeParams: {},
754
+ query,
755
+ meta: { status: 404 },
756
+ };
757
+ this.#dispatchLifecycleEvent('wavelength-route-start', {
758
+ path: pathname,
759
+ context,
760
+ });
761
+ this.#mountRoute(this.#notFoundComponent, context, navigationVersion, 'replace');
762
+ return true;
763
+ }
764
+ #mountErrorRoute(error, phase, context) {
765
+ if (!this.#errorComponent ||
766
+ phase === 'match' ||
767
+ phase === 'unmount' ||
768
+ phase === 'scroll') {
769
+ return false;
770
+ }
771
+ const routeContext = {
772
+ path: context?.path ?? this.#currentPath(),
773
+ routeParams: context?.routeParams ?? {},
774
+ query: context?.query ?? this.#currentQuery(),
775
+ meta: {
776
+ ...(context?.meta ?? {}),
777
+ errorPhase: phase,
778
+ status: 500,
779
+ },
780
+ };
781
+ try {
782
+ const mountResult = this.#mount(this.#errorComponent, routeContext, this.#navigationVersion, 'replace');
783
+ if (this.#isPromiseLike(mountResult)) {
784
+ void mountResult
785
+ .then(() => {
786
+ this.#dispatchLifecycleEvent('wavelength-route-complete', {
787
+ path: routeContext.path,
788
+ context: routeContext,
789
+ });
790
+ })
791
+ .catch((mountError) => {
792
+ console.error('[Router] Error component failed to mount.', {
793
+ error,
794
+ mountError,
795
+ phase,
796
+ });
797
+ });
798
+ }
799
+ else {
800
+ this.#dispatchLifecycleEvent('wavelength-route-complete', {
801
+ path: routeContext.path,
802
+ context: routeContext,
803
+ });
804
+ }
805
+ return true;
806
+ }
807
+ catch (mountError) {
808
+ console.error('[Router] Error component failed to mount.', {
809
+ error,
810
+ mountError,
811
+ phase,
812
+ });
813
+ return false;
814
+ }
815
+ }
709
816
  #dispatchLifecycleEvent(type, detail) {
710
817
  const CustomEventConstructor = this.#window?.CustomEvent;
711
818
  if (!CustomEventConstructor || !this.#eventTarget?.dispatchEvent)
@@ -1 +1 @@
1
- {"version":3,"file":"Router.js","sourceRoot":"","sources":["../../src/router/Router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Router.js","sourceRoot":"","sources":["../../src/router/Router.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { LocationListener, RouterLocation } from '../models/index.js';
2
+ export interface LocationSource {
3
+ readonly location: RouterLocation;
4
+ subscribe(listener: LocationListener): () => void;
5
+ }
6
+ export declare const useLocation: (source: LocationSource) => RouterLocation;
7
+ export type { LocationListener, RouterLocation } from '../models/index.js';
8
+ //# sourceMappingURL=useLocation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLocation.d.ts","sourceRoot":"","sources":["../../src/router/useLocation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE3E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,SAAS,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,IAAI,CAAC;CACnD;AAED,eAAO,MAAM,WAAW,GAAI,QAAQ,cAAc,KAAG,cACpC,CAAC;AAElB,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export const useLocation = (source) => source.location;
2
+ //# sourceMappingURL=useLocation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLocation.js","sourceRoot":"","sources":["../../src/router/useLocation.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAsB,EAAkB,EAAE,CACpE,MAAM,CAAC,QAAQ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wavelengthusaf/client-router",
3
- "version": "0.2.1",
3
+ "version": "0.3.0",
4
4
  "description": "Native TypeScript Router",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -10,7 +10,7 @@
10
10
  "lint:fix": "eslint . --fix",
11
11
  "prettier": "prettier --write .",
12
12
  "type-check": "tsc --noEmit",
13
- "test": "vitest run --coverage",
13
+ "test": "vitest run --typecheck --coverage",
14
14
  "test:browser": "vitest run --config vitest.browser.config.ts",
15
15
  "storybook": "storybook dev -p 6006",
16
16
  "build-storybook": "storybook build",
@@ -21,6 +21,8 @@
21
21
  "router"
22
22
  ],
23
23
  "author": "Wavelength",
24
+ "repository": "https://gitlab.wavelengthusaf.com/common-components/client-router",
25
+ "homepage": "https://client-router-common-components-ea755c8714ecc213b01e6bbc8f7899e.gitlab.wavelengthusaf.com",
24
26
  "license": "ISC",
25
27
  "type": "module",
26
28
  "files": [
@@ -37,32 +39,29 @@
37
39
  "access": "public"
38
40
  },
39
41
  "devDependencies": {
40
- "@happy-dom/global-registrator": "^20.9.0",
41
- "@storybook/addon-a11y": "^10.3.5",
42
- "@storybook/addon-docs": "^10.3.5",
43
- "@storybook/addon-links": "^10.3.5",
44
- "@storybook/addon-vitest": "^10.3.5",
45
- "@storybook/testing-library": "^0.2.1",
46
- "@storybook/web-components": "^10.3.5",
47
- "@storybook/web-components-vite": "^10.3.5",
42
+ "@happy-dom/global-registrator": "^21.0.1",
43
+ "@storybook/addon-a11y": "^10.6.1",
44
+ "@storybook/addon-docs": "^10.6.1",
45
+ "@storybook/addon-links": "^10.6.1",
46
+ "@storybook/web-components": "^10.6.1",
47
+ "@storybook/web-components-vite": "^10.6.1",
48
48
  "@trivago/prettier-plugin-sort-imports": "^6.0.2",
49
- "@types/jsdom": "^28.0.1",
50
- "@types/node": "^25.6.0",
51
- "@vitest/browser-playwright": "^4.1.11",
52
- "@vitest/coverage-v8": "^4.1.4",
53
- "eslint": "^10.2.0",
49
+ "@types/node": "^24.19.2",
50
+ "@vitest/browser-playwright": "^5.0.4",
51
+ "@vitest/coverage-v8": "^5.0.4",
52
+ "eslint": "^10.12.0",
54
53
  "eslint-config-prettier": "^10.1.8",
55
- "eslint-plugin-sonarjs": "^4.0.2",
56
- "eslint-plugin-storybook": "^10.3.5",
54
+ "eslint-plugin-sonarjs": "^4.2.2",
55
+ "eslint-plugin-storybook": "^10.6.1",
57
56
  "eslint-plugin-wc": "^3.1.0",
58
- "globals": "^17.5.0",
57
+ "globals": "^17.13.0",
59
58
  "husky": "^9.1.7",
60
- "jsdom": "^29.0.2",
61
- "playwright": "^1.59.1",
62
- "prettier": "^3.8.2",
63
- "storybook": "^10.3.5",
59
+ "jsdom": "^30.1.2",
60
+ "playwright": "^1.64.0",
61
+ "prettier": "^3.9.10",
62
+ "storybook": "^10.6.1",
64
63
  "typescript": "^5.9.3",
65
- "typescript-eslint": "^8.58.2",
66
- "vitest": "^4.1.4"
64
+ "typescript-eslint": "^8.71.2",
65
+ "vitest": "5.0.4"
67
66
  }
68
67
  }