lit-ui-router 1.2.4 → 1.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
@@ -7,4 +7,66 @@
7
7
  [![Website](https://img.shields.io/website?url=https%3A%2F%2Flit-ui-router.dev)](https://lit-ui-router.dev)
8
8
  [![codecov](https://codecov.io/gh/simshanith/lit-ui-router/graph/badge.svg?component=lit-ui-router)](https://app.codecov.io/gh/simshanith/lit-ui-router?components%5B0%5D=lit-ui-router)
9
9
 
10
- A UI Router implementation for Lit.
10
+ A [UI-Router](https://ui-router.github.io/) implementation for [Lit](https://lit.dev/).
11
+
12
+ ## Quick Start
13
+
14
+ ```ts
15
+ import { UIRouterLit } from 'lit-ui-router';
16
+ import { hashLocationPlugin } from '@uirouter/core';
17
+ import { html } from 'lit';
18
+
19
+ const router = new UIRouterLit();
20
+ router.plugin(hashLocationPlugin);
21
+
22
+ router.stateRegistry.register([
23
+ { name: 'home', url: '/', component: () => html`<h1>Home</h1>` },
24
+ { name: 'about', url: '/about', component: () => html`<h1>About</h1>` },
25
+ ]);
26
+
27
+ router.start();
28
+ ```
29
+
30
+ ## Component Styles
31
+
32
+ | Style | Best For | Example |
33
+ | ------------------- | ----------------------------- | -------------------------- |
34
+ | Template function | Simple views, prototyping | `` () => html`...` `` |
35
+ | Template with props | Views needing params/resolves | `` (props) => html`...` `` |
36
+ | LitElement class | Complex views with lifecycle | `MyComponent` |
37
+
38
+ ## Reacting to Transitions
39
+
40
+ Any element (routed or not) can stay synchronized with the router using the
41
+ `TransitionController` reactive controller. It registers transition hooks when
42
+ the host connects, calls `host.requestUpdate()` on matching transitions, and
43
+ deregisters everything when the host disconnects — no manual `requestUpdate()`
44
+ plumbing or leaked hooks.
45
+
46
+ ```ts
47
+ import { TransitionController } from 'lit-ui-router';
48
+
49
+ class NavHeader extends LitElement {
50
+ private transitions = new TransitionController(this);
51
+
52
+ render() {
53
+ // Re-evaluated after every successful transition
54
+ return html`Current state: ${this.transitions.current?.name}`;
55
+ }
56
+ }
57
+ ```
58
+
59
+ Scope it to specific states or react to parameter changes with a callback:
60
+
61
+ ```ts
62
+ class UserDetail extends LitElement {
63
+ private transitions = new TransitionController(this, {
64
+ criteria: { to: 'users.detail' },
65
+ callback: () => this.loadUser(this.transitions.params.userId),
66
+ });
67
+ }
68
+ ```
69
+
70
+ ## Documentation
71
+
72
+ Visit [lit-ui-router.dev](https://lit-ui-router.dev) for full documentation, tutorials, and API reference.
@@ -272,6 +272,25 @@
272
272
  },
273
273
  "description": "Root <code>uiRouter</code> singleton.\nIf not provided, the element creates and assigns a new instance."
274
274
  },
275
+ {
276
+ "kind": "method",
277
+ "name": "seekRouter",
278
+ "static": true,
279
+ "return": {
280
+ "type": {
281
+ "text": "UIRouterLit | undefined"
282
+ }
283
+ },
284
+ "parameters": [
285
+ {
286
+ "name": "candidate",
287
+ "type": {
288
+ "text": "Element"
289
+ }
290
+ }
291
+ ],
292
+ "description": "Discovers the UIRouterLit instance provided by the nearest\nenclosing <code>&lt;ui-router&gt;</code> element.\n\nDispatches a bubbling, composed <code>ui-router-context</code> event from\nthe candidate element; the enclosing <code>&lt;ui-router&gt;</code>\nanswers it with its router instance. Returns <code>undefined</code> when\nthe candidate is not inside a <code>&lt;ui-router&gt;</code> (e.g. not\nyet connected).\n\nThis is the dependency-injection primitive for integrating external\nreactivity systems (state stores, controllers) with the router context —\ncall it from <code>hostConnected()</code> / <code>connectedCallback()</code>\ninstead of prop-drilling the router instance."
293
+ },
275
294
  {
276
295
  "kind": "field",
277
296
  "name": "onUiRouterContextEvent",
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from './interface.js';
2
2
  export * from './core.js';
3
+ export * from './transition-controller.js';
3
4
  export * from './ui-router.js';
4
5
  export * from './ui-view.js';
5
6
  export * from './ui-sref.js';
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from './interface.js';
2
2
  export * from './core.js';
3
+ export * from './transition-controller.js';
3
4
  export * from './ui-router.js';
4
5
  export * from './ui-view.js';
5
6
  export * from './ui-sref.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC"}
@@ -166,21 +166,31 @@ export interface UIViewInjectedProps<T extends DefaultResolvesType = DefaultReso
166
166
  /**
167
167
  * A function that returns a Lit TemplateResult for rendering in a `<ui-view>`.
168
168
  *
169
- * This is one of the component types that can be used in state declarations.
170
- * The function receives [[UIViewInjectedProps]] as its argument.
171
- * [[NormalizedLitViewDeclaration.component]] uses this signature.
169
+ * This is the **simplest way** to define route components - no LitElement class needed.
170
+ * The function optionally receives [[UIViewInjectedProps]] as its argument.
172
171
  *
173
- * @example
172
+ * @example Simple template (no props needed)
174
173
  * ```ts
175
- * const HomeView: RoutedLitTemplate = (props) => {
176
- * return html`<h1>Welcome Home</h1>`;
177
- * };
174
+ * const HomeView: RoutedLitTemplate = () => html`<h1>Welcome Home</h1>`;
178
175
  *
179
- * router.stateRegistry.register({
180
- * name: 'home',
181
- * url: '/home',
182
- * component: HomeView
183
- * });
176
+ * // Or use directly inline in a state declaration:
177
+ * { name: 'home', url: '/', component: () => html`<h1>Home</h1>` }
178
+ * ```
179
+ *
180
+ * @example With route parameters
181
+ * ```ts
182
+ * const UserView: RoutedLitTemplate = (props) => html`
183
+ * <h1>User: ${props?.transition?.params().id}</h1>
184
+ * `;
185
+ * ```
186
+ *
187
+ * @example With resolved data (typed)
188
+ * ```ts
189
+ * interface UserResolves { user: { name: string } }
190
+ *
191
+ * const UserDetail: RoutedLitTemplate<UserResolves> = (props) => html`
192
+ * <h1>${props?.resolves?.user?.name}</h1>
193
+ * `;
184
194
  * ```
185
195
  *
186
196
  * @category types
@@ -266,38 +276,51 @@ export type LitViewDeclaration<T extends DefaultResolvesType = DefaultResolvesTy
266
276
  * State declaration interface for Lit applications.
267
277
  *
268
278
  * Extends the core [[StateDeclaration]] with Lit-specific component support.
279
+ * The `component` property accepts template functions, LitElement classes, or both.
269
280
  *
270
- * @example Basic state with template function
281
+ * @example Simplest: inline template function
271
282
  * ```ts
272
- * const homeState: LitStateDeclaration = {
273
- * name: 'home',
274
- * url: '/home',
275
- * component: () => html`<h1>Home</h1>`
276
- * };
283
+ * { name: 'home', url: '/', component: () => html`<h1>Home</h1>` }
284
+ * ```
285
+ *
286
+ * @example Template with route parameters
287
+ * ```ts
288
+ * {
289
+ * name: 'user',
290
+ * url: '/user/:id',
291
+ * component: (props) => html`<h1>User ${props?.transition?.params().id}</h1>`
292
+ * }
277
293
  * ```
278
294
  *
279
- * @example State with LitElement class
295
+ * @example Template with resolved data
280
296
  * ```ts
281
- * const usersState: LitStateDeclaration = {
297
+ * {
282
298
  * name: 'users',
283
299
  * url: '/users',
284
- * component: UserListElement,
285
- * resolve: [
286
- * { token: 'users', resolveFn: () => fetch('/api/users').then(r => r.json()) }
287
- * ]
288
- * };
300
+ * component: (props) => html`
301
+ * <ul>${props?.resolves?.users?.map(u => html`<li>${u.name}</li>`)}</ul>
302
+ * `,
303
+ * resolve: [{ token: 'users', resolveFn: () => fetch('/api/users').then(r => r.json()) }]
304
+ * }
305
+ * ```
306
+ *
307
+ * @example LitElement class (for complex components)
308
+ * ```ts
309
+ * { name: 'dashboard', url: '/dashboard', component: DashboardElement }
289
310
  * ```
290
311
  *
291
312
  * @example Nested states
292
313
  * ```ts
293
314
  * const states: LitStateDeclaration[] = [
294
315
  * { name: 'app', abstract: true, component: AppShell },
295
- * { name: 'app.home', url: '/home', component: HomeView },
316
+ * { name: 'app.home', url: '/home', component: () => html`<h1>Home</h1>` },
296
317
  * { name: 'app.users', url: '/users', component: UsersView }
297
318
  * ];
298
319
  * ```
299
320
  *
300
321
  * @see [[StateDeclaration]]
322
+ * @see {@link RoutedLitTemplate}
323
+ * @see {@link RoutedLitElement}
301
324
  *
302
325
  * @category types
303
326
  */
@@ -0,0 +1,156 @@
1
+ import { HookMatchCriteria, RawParams, StateDeclaration, StateOrName, Transition, UIRouter, UIRouterGlobals } from '@uirouter/core';
2
+ import { ReactiveController, ReactiveControllerHost } from 'lit';
3
+ /**
4
+ * Transition lifecycle events that a [[TransitionController]] can observe.
5
+ *
6
+ * Each value corresponds to a
7
+ * {@link https://ui-router.github.io/core/docs/latest/interfaces/_transition_interface_.ihookregistry.html | TransitionService hook registry}
8
+ * method of the same name.
9
+ *
10
+ * @category controllers
11
+ */
12
+ export type TransitionEventType = 'onBefore' | 'onStart' | 'onSuccess' | 'onError';
13
+ /**
14
+ * The reason a [[TransitionController]] invoked its callback.
15
+ *
16
+ * Either one of the observed [[TransitionEventType]] hooks fired, or the
17
+ * host element (re)connected to the DOM and the controller synchronized
18
+ * with the router's current state (`'hostConnected'`).
19
+ *
20
+ * @category controllers
21
+ */
22
+ export type TransitionCallbackReason = TransitionEventType | 'hostConnected';
23
+ /**
24
+ * A callback invoked by [[TransitionController]] whenever the host is
25
+ * synchronized with the router.
26
+ *
27
+ * For `'onBefore'` and `'onStart'` reasons, the returned value is passed
28
+ * back to UI-Router as a
29
+ * {@link https://ui-router.github.io/core/docs/latest/modules/_transition_interface_.html#hookresult | HookResult},
30
+ * so the callback may cancel or redirect the pending transition.
31
+ *
32
+ * @param transition - The [[Transition]] which triggered the callback.
33
+ * For the `'hostConnected'` reason this is the most recent successful
34
+ * transition, or `undefined` when no transition has succeeded yet.
35
+ * @param reason - Why the callback was invoked (see [[TransitionCallbackReason]]).
36
+ *
37
+ * @category controllers
38
+ */
39
+ export type TransitionCallback = (transition: Transition | undefined, reason: TransitionCallbackReason) => unknown;
40
+ /**
41
+ * Options for [[TransitionController]].
42
+ *
43
+ * @category controllers
44
+ */
45
+ export interface TransitionControllerOptions {
46
+ /**
47
+ * The [[UIRouter]] instance to observe.
48
+ *
49
+ * When omitted, the controller discovers the router from an ancestor
50
+ * <code>&lt;ui-router&gt;</code> (or <code>&lt;ui-view&gt;</code>) via the
51
+ * `ui-router-context` event when the host connects.
52
+ */
53
+ router?: UIRouter;
54
+ /**
55
+ * {@link https://ui-router.github.io/core/docs/latest/interfaces/_transition_interface_.hookmatchcriteria.html | HookMatchCriteria}
56
+ * limiting which transitions notify the host.
57
+ *
58
+ * Defaults to `{}` (all transitions).
59
+ */
60
+ criteria?: HookMatchCriteria;
61
+ /**
62
+ * The transition lifecycle events to observe.
63
+ *
64
+ * Defaults to `['onSuccess']`.
65
+ */
66
+ events?: TransitionEventType[];
67
+ /**
68
+ * Invoked before `host.requestUpdate()` whenever an observed event fires,
69
+ * and once each time the host connects (see [[TransitionCallbackReason]]).
70
+ */
71
+ callback?: TransitionCallback;
72
+ }
73
+ /**
74
+ * A zero-dependency Lit
75
+ * {@link https://lit.dev/docs/composition/controllers/ | ReactiveController}
76
+ * that keeps its host element synchronized with UI-Router transitions.
77
+ *
78
+ * The controller registers [[TransitionService]] hooks (by default
79
+ * `onSuccess`) when the host connects and calls `host.requestUpdate()`
80
+ * whenever a matching transition event fires — no manual `requestUpdate()`
81
+ * plumbing, no leaked hooks. All registered hooks are deregistered in
82
+ * `hostDisconnected()`, so the controller is garbage-collection safe for
83
+ * elements that come and go from the DOM (including `sticky` routed
84
+ * components).
85
+ *
86
+ * On (re)connect the controller also synchronizes once with the router's
87
+ * current state, so hosts render fresh data even when they connect after
88
+ * a transition has already completed.
89
+ *
90
+ * @example Re-render on every successful transition
91
+ * ```ts
92
+ * class NavHeader extends LitElement {
93
+ * private transitions = new TransitionController(this);
94
+ *
95
+ * render() {
96
+ * // Re-evaluated after every successful transition
97
+ * return html`Current state: ${this.transitions.current?.name}`;
98
+ * }
99
+ * }
100
+ * ```
101
+ *
102
+ * @example React to parameter changes on a specific state
103
+ * ```ts
104
+ * class UserDetail extends LitElement {
105
+ * private transitions = new TransitionController(this, {
106
+ * criteria: { to: 'users.detail' },
107
+ * callback: () => this.loadUser(this.transitions.params.userId),
108
+ * });
109
+ * }
110
+ * ```
111
+ *
112
+ * @example With an explicit router instance
113
+ * ```ts
114
+ * const controller = new TransitionController(host, { router });
115
+ * ```
116
+ *
117
+ * @category controllers
118
+ */
119
+ export declare class TransitionController implements ReactiveController {
120
+ private host;
121
+ private options;
122
+ private deregisterFns;
123
+ private _router?;
124
+ private _transition?;
125
+ constructor(host: ReactiveControllerHost & Element, options?: TransitionControllerOptions);
126
+ /**
127
+ * The observed [[UIRouter]] instance.
128
+ *
129
+ * `undefined` until provided via [[TransitionControllerOptions.router]] or
130
+ * discovered from an ancestor <code>&lt;ui-router&gt;</code> on connect.
131
+ */
132
+ get router(): UIRouter | undefined;
133
+ /** The router's [[UIRouterGlobals]], if a router has been discovered. */
134
+ get globals(): UIRouterGlobals | undefined;
135
+ /** The current parameter values (`globals.params`). */
136
+ get params(): RawParams;
137
+ /** The current [[StateDeclaration]] (`globals.current`). */
138
+ get current(): StateDeclaration | undefined;
139
+ /**
140
+ * The most recent [[Transition]] observed by this controller
141
+ * (set by observed events and on host connect).
142
+ */
143
+ get transition(): Transition | undefined;
144
+ /**
145
+ * Delegates to [[StateService.includes]]: is the state (or glob pattern,
146
+ * e.g. `'admin.**'`) included in the current active state?
147
+ *
148
+ * Returns `false` when no router has been discovered.
149
+ */
150
+ includes(stateOrName: StateOrName, params?: RawParams): boolean;
151
+ /** @internal */
152
+ hostConnected(): void;
153
+ /** @internal */
154
+ hostDisconnected(): void;
155
+ private notify;
156
+ }
@@ -0,0 +1,123 @@
1
+ import { UIRouterLitElement } from './ui-router.js';
2
+ /**
3
+ * A zero-dependency Lit
4
+ * {@link https://lit.dev/docs/composition/controllers/ | ReactiveController}
5
+ * that keeps its host element synchronized with UI-Router transitions.
6
+ *
7
+ * The controller registers [[TransitionService]] hooks (by default
8
+ * `onSuccess`) when the host connects and calls `host.requestUpdate()`
9
+ * whenever a matching transition event fires — no manual `requestUpdate()`
10
+ * plumbing, no leaked hooks. All registered hooks are deregistered in
11
+ * `hostDisconnected()`, so the controller is garbage-collection safe for
12
+ * elements that come and go from the DOM (including `sticky` routed
13
+ * components).
14
+ *
15
+ * On (re)connect the controller also synchronizes once with the router's
16
+ * current state, so hosts render fresh data even when they connect after
17
+ * a transition has already completed.
18
+ *
19
+ * @example Re-render on every successful transition
20
+ * ```ts
21
+ * class NavHeader extends LitElement {
22
+ * private transitions = new TransitionController(this);
23
+ *
24
+ * render() {
25
+ * // Re-evaluated after every successful transition
26
+ * return html`Current state: ${this.transitions.current?.name}`;
27
+ * }
28
+ * }
29
+ * ```
30
+ *
31
+ * @example React to parameter changes on a specific state
32
+ * ```ts
33
+ * class UserDetail extends LitElement {
34
+ * private transitions = new TransitionController(this, {
35
+ * criteria: { to: 'users.detail' },
36
+ * callback: () => this.loadUser(this.transitions.params.userId),
37
+ * });
38
+ * }
39
+ * ```
40
+ *
41
+ * @example With an explicit router instance
42
+ * ```ts
43
+ * const controller = new TransitionController(host, { router });
44
+ * ```
45
+ *
46
+ * @category controllers
47
+ */
48
+ export class TransitionController {
49
+ constructor(host, options = {}) {
50
+ this.deregisterFns = [];
51
+ this.host = host;
52
+ this.options = options;
53
+ this._router = options.router;
54
+ host.addController(this);
55
+ }
56
+ /**
57
+ * The observed [[UIRouter]] instance.
58
+ *
59
+ * `undefined` until provided via [[TransitionControllerOptions.router]] or
60
+ * discovered from an ancestor <code>&lt;ui-router&gt;</code> on connect.
61
+ */
62
+ get router() {
63
+ return this._router;
64
+ }
65
+ /** The router's [[UIRouterGlobals]], if a router has been discovered. */
66
+ get globals() {
67
+ return this._router?.globals;
68
+ }
69
+ /** The current parameter values (`globals.params`). */
70
+ get params() {
71
+ return this.globals?.params ?? {};
72
+ }
73
+ /** The current [[StateDeclaration]] (`globals.current`). */
74
+ get current() {
75
+ return this.globals?.current;
76
+ }
77
+ /**
78
+ * The most recent [[Transition]] observed by this controller
79
+ * (set by observed events and on host connect).
80
+ */
81
+ get transition() {
82
+ return this._transition;
83
+ }
84
+ /**
85
+ * Delegates to [[StateService.includes]]: is the state (or glob pattern,
86
+ * e.g. `'admin.**'`) included in the current active state?
87
+ *
88
+ * Returns `false` when no router has been discovered.
89
+ */
90
+ includes(stateOrName, params) {
91
+ return this._router?.stateService.includes(stateOrName, params) ?? false;
92
+ }
93
+ /** @internal */
94
+ hostConnected() {
95
+ this._router ??=
96
+ this.options.router ?? UIRouterLitElement.seekRouter(this.host);
97
+ const router = this._router;
98
+ if (!router) {
99
+ return;
100
+ }
101
+ const criteria = this.options.criteria ?? {};
102
+ const events = this.options.events ?? ['onSuccess'];
103
+ for (const event of events) {
104
+ this.deregisterFns.push(router.transitionService[event](criteria, (transition) => this.notify(transition, event)));
105
+ }
106
+ // Synchronize with the router's current state: the host may have
107
+ // (re)connected after the transition that put it on screen succeeded.
108
+ this.notify(router.globals.successfulTransitions.peekTail(), 'hostConnected');
109
+ }
110
+ /** @internal */
111
+ hostDisconnected() {
112
+ while (this.deregisterFns.length) {
113
+ this.deregisterFns.shift()?.();
114
+ }
115
+ }
116
+ notify(transition, reason) {
117
+ this._transition = transition ?? this._transition;
118
+ const result = this.options.callback?.(transition, reason);
119
+ this.host.requestUpdate();
120
+ return result;
121
+ }
122
+ }
123
+ //# sourceMappingURL=transition-controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transition-controller.js","sourceRoot":"","sources":["../src/transition-controller.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAyFpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAM,OAAO,oBAAoB;IAW/B,YACE,IAAsC,EACtC,UAAuC,EAAE;QARnC,kBAAa,GAAmB,EAAE,CAAC;QAUzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED;;;;;OAKG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,yEAAyE;IACzE,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;IAC/B,CAAC;IAED,uDAAuD;IACvD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,CAAC;IACpC,CAAC;IAED,4DAA4D;IAC5D,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACH,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAC,WAAwB,EAAE,MAAkB;QACnD,OAAO,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC;IAC3E,CAAC;IAED,gBAAgB;IAChB,aAAa;QACX,IAAI,CAAC,OAAO;YACV,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAElE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC;QAEpD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,aAAa,CAAC,IAAI,CACrB,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAC7B,QAAQ,EACR,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAe,CAC7C,CAClB,CAAC;QACJ,CAAC;QAED,iEAAiE;QACjE,sEAAsE;QACtE,IAAI,CAAC,MAAM,CACT,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,QAAQ,EAAE,EAC/C,eAAe,CAChB,CAAC;IACJ,CAAC;IAED,gBAAgB;IAChB,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YACjC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC;QACjC,CAAC;IACH,CAAC;IAEO,MAAM,CACZ,UAAkC,EAClC,MAAgC;QAEhC,IAAI,CAAC,WAAW,GAAG,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -12,7 +12,7 @@ export type UiRouterContextEvent = CustomEvent<UiRouterContextEventDetail>;
12
12
  *
13
13
  * @slot - <code>&lt;ui-router&gt;</code> renders slotted content.
14
14
  *
15
- * @event {CustomEvent} ui-router-context
15
+ * @fires {CustomEvent} ui-router-context
16
16
  *
17
17
  * <code>&lt;ui-router&gt;</code> listens to the
18
18
  * <code>ui-router-context</code> event
@@ -33,7 +33,21 @@ export declare class UIRouterLitElement extends LitElement {
33
33
  static uiRouterContextEventName: string;
34
34
  /** @internal */
35
35
  static uiRouterContextEvent(uiRouter?: UIRouterLit): UiRouterContextEvent;
36
- /** @internal */
36
+ /**
37
+ * Discovers the {@link UIRouterLit} instance provided by the nearest
38
+ * enclosing <code>&lt;ui-router&gt;</code> element.
39
+ *
40
+ * Dispatches a bubbling, composed <code>ui-router-context</code> event from
41
+ * the candidate element; the enclosing <code>&lt;ui-router&gt;</code>
42
+ * answers it with its router instance. Returns <code>undefined</code> when
43
+ * the candidate is not inside a <code>&lt;ui-router&gt;</code> (e.g. not
44
+ * yet connected).
45
+ *
46
+ * This is the dependency-injection primitive for integrating external
47
+ * reactivity systems (state stores, controllers) with the router context —
48
+ * call it from <code>hostConnected()</code> / <code>connectedCallback()</code>
49
+ * instead of prop-drilling the router instance.
50
+ */
37
51
  static seekRouter(candidate: Element): UIRouterLit | undefined;
38
52
  /** @internal */
39
53
  static onUiRouterContextEvent(uiRouter?: UIRouterLit): (event: UiRouterContextEvent) => void;
package/dist/ui-router.js CHANGED
@@ -12,7 +12,7 @@ import { UIRouterLit } from './core.js';
12
12
  *
13
13
  * @slot - <code>&lt;ui-router&gt;</code> renders slotted content.
14
14
  *
15
- * @event {CustomEvent} ui-router-context
15
+ * @fires {CustomEvent} ui-router-context
16
16
  *
17
17
  * <code>&lt;ui-router&gt;</code> listens to the
18
18
  * <code>ui-router-context</code> event
@@ -42,7 +42,21 @@ let UIRouterLitElement = class UIRouterLitElement extends LitElement {
42
42
  },
43
43
  });
44
44
  }
45
- /** @internal */
45
+ /**
46
+ * Discovers the {@link UIRouterLit} instance provided by the nearest
47
+ * enclosing <code>&lt;ui-router&gt;</code> element.
48
+ *
49
+ * Dispatches a bubbling, composed <code>ui-router-context</code> event from
50
+ * the candidate element; the enclosing <code>&lt;ui-router&gt;</code>
51
+ * answers it with its router instance. Returns <code>undefined</code> when
52
+ * the candidate is not inside a <code>&lt;ui-router&gt;</code> (e.g. not
53
+ * yet connected).
54
+ *
55
+ * This is the dependency-injection primitive for integrating external
56
+ * reactivity systems (state stores, controllers) with the router context —
57
+ * call it from <code>hostConnected()</code> / <code>connectedCallback()</code>
58
+ * instead of prop-drilling the router instance.
59
+ */
46
60
  static seekRouter(candidate) {
47
61
  const uiRouterContextEvent = this.uiRouterContextEvent();
48
62
  candidate.dispatchEvent(uiRouterContextEvent);
@@ -1 +1 @@
1
- {"version":3,"file":"ui-router.js","sourceRoot":"","sources":["../src/ui-router.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAWxC;;;;;;;;;;;;;;;GAeG;AAEI,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,UAAU;IAA3C;;QAqCG,2BAAsB,GAAG,CAAC,KAA2B,EAAE,EAAE;YAC/D,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;QAChE,CAAC,CAAC;IAmBJ,CAAC;IAlDC,gBAAgB;aACT,6BAAwB,GAAG,mBAAmB,AAAtB,CAAuB;IAEtD,gBAAgB;IAChB,MAAM,CAAC,oBAAoB,CAAC,QAAsB;QAChD,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,wBAAwB,EAAE;YACpD,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE;gBACN,QAAQ;aACT;SACF,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB;IAChB,MAAM,CAAC,UAAU,CAAC,SAAkB;QAClC,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACzD,SAAS,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;QAC9C,OAAO,oBAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9C,CAAC;IAED,gBAAgB;IAChB,MAAM,CAAC,sBAAsB,CAAC,QAAsB;QAClD,OAAO,CAAC,KAA2B,EAAE,EAAE;YACrC,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,KAAK,CAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACnC,CAAC,CAAC;IACJ,CAAC;IAMD,gBAAgB;IAChB,KAAK,CAAC,iBAAiB;QACrB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,WAAW,EAAE,CAAC;QAEnD,IAAI,CAAC,gBAAgB,CACnB,IAAI,CAAC,WAAW,CAAC,wBAAwB,EACzC,IAAI,CAAC,sBAAuC,CAC7C,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,gBAAgB;IAChB,MAAM;QACJ,OAAO,IAAI,CAAA,eAAe,CAAC;IAC7B,CAAC;;AAnDD;IADC,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;oDACG;AANvB,kBAAkB;IAD9B,aAAa,CAAC,WAAW,CAAC;GACd,kBAAkB,CA0D9B"}
1
+ {"version":3,"file":"ui-router.js","sourceRoot":"","sources":["../src/ui-router.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAWxC;;;;;;;;;;;;;;;GAeG;AAEI,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,UAAU;IAA3C;;QAmDG,2BAAsB,GAAG,CAAC,KAA2B,EAAE,EAAE;YAC/D,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;QAChE,CAAC,CAAC;IAmBJ,CAAC;IAhEC,gBAAgB;aACT,6BAAwB,GAAG,mBAAmB,AAAtB,CAAuB;IAEtD,gBAAgB;IAChB,MAAM,CAAC,oBAAoB,CAAC,QAAsB;QAChD,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,wBAAwB,EAAE;YACpD,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE;gBACN,QAAQ;aACT;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,UAAU,CAAC,SAAkB;QAClC,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACzD,SAAS,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;QAC9C,OAAO,oBAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9C,CAAC;IAED,gBAAgB;IAChB,MAAM,CAAC,sBAAsB,CAAC,QAAsB;QAClD,OAAO,CAAC,KAA2B,EAAE,EAAE;YACrC,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,KAAK,CAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACnC,CAAC,CAAC;IACJ,CAAC;IAMD,gBAAgB;IAChB,KAAK,CAAC,iBAAiB;QACrB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,WAAW,EAAE,CAAC;QAEnD,IAAI,CAAC,gBAAgB,CACnB,IAAI,CAAC,WAAW,CAAC,wBAAwB,EACzC,IAAI,CAAC,sBAAuC,CAC7C,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,gBAAgB;IAChB,MAAM;QACJ,OAAO,IAAI,CAAA,eAAe,CAAC;IAC7B,CAAC;;AAjED;IADC,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;oDACG;AANvB,kBAAkB;IAD9B,aAAa,CAAC,WAAW,CAAC;GACd,kBAAkB,CAwE9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"ui-sref.js","sourceRoot":"","sources":["../src/ui-sref.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui-sref.js","sourceRoot":"","sources":["../src/ui-sref.ts"],"names":[],"mappings":"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"}
package/dist/ui-view.d.ts CHANGED
@@ -8,14 +8,14 @@ export interface UiViewAddress {
8
8
  }
9
9
  /**
10
10
  * @hideconstructor
11
- * @event {CustomEvent} ui-router-context
11
+ * @fires {CustomEvent} ui-router-context
12
12
  *
13
13
  * This event is fired to obtain the <code>uiRouter</code> instance,
14
14
  * when not directly provided.
15
15
  * Once obtained, the <code>&lt;ui-view&gt;</code> listens and
16
16
  * provides the <code>uiRouter</code> to descendants.
17
17
  *
18
- * @event {CustomEvent} ui-view-context
18
+ * @fires {CustomEvent} ui-view-context
19
19
  *
20
20
  * This event is fired to obtain the parent <code>&lt;ui-view&gt;</code>.
21
21
  *
package/dist/ui-view.js CHANGED
@@ -13,14 +13,14 @@ import { UIRouterLitElement } from './ui-router.js';
13
13
  let viewIdCounter = 0;
14
14
  /**
15
15
  * @hideconstructor
16
- * @event {CustomEvent} ui-router-context
16
+ * @fires {CustomEvent} ui-router-context
17
17
  *
18
18
  * This event is fired to obtain the <code>uiRouter</code> instance,
19
19
  * when not directly provided.
20
20
  * Once obtained, the <code>&lt;ui-view&gt;</code> listens and
21
21
  * provides the <code>uiRouter</code> to descendants.
22
22
  *
23
- * @event {CustomEvent} ui-view-context
23
+ * @fires {CustomEvent} ui-view-context
24
24
  *
25
25
  * This event is fired to obtain the parent <code>&lt;ui-view&gt;</code>.
26
26
  *
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "lit-ui-router",
3
3
  "description": "State-based routing for Lit",
4
- "version": "1.2.4",
4
+ "version": "1.3.0",
5
5
  "type": "module",
6
6
  "module": "./dist/index.js",
7
7
  "homepage": "https://lit-ui-router.dev",
@@ -31,24 +31,24 @@
31
31
  "test": "vitest run",
32
32
  "test:coverage": "vitest run --coverage --browser=chromium"
33
33
  },
34
- "customElements": "./dist/custom-elements.json",
34
+ "customElements": "dist/custom-elements.json",
35
35
  "dependencies": {
36
- "@uirouter/core": "^6.0.8",
37
- "lit": "^2.0.0 || ^3.0.0"
36
+ "@uirouter/core": "catalog:",
37
+ "lit": "catalog:"
38
38
  },
39
39
  "devDependencies": {
40
- "@custom-elements-manifest/analyzer": "0.10.4",
41
- "@vitest/browser-playwright": "^4.0.16",
42
- "@vitest/coverage-v8": "^4.0.16",
43
- "playwright": "1.54.1",
44
- "prettier": "3.6.2",
45
- "release-it": "^19.2.2",
46
- "rimraf": "^6.0.0",
47
- "typedoc": "^0.28.15",
40
+ "@custom-elements-manifest/analyzer": "^0.10.10",
41
+ "@vitest/browser-playwright": "catalog:",
42
+ "@vitest/coverage-v8": "catalog:",
43
+ "playwright": "catalog:",
44
+ "prettier": "catalog:",
45
+ "release-it": "catalog:",
46
+ "rimraf": "catalog:",
47
+ "typedoc": "catalog:",
48
48
  "typedoc-plugin-lit-ui-router": "workspace:*",
49
- "typedoc-plugin-markdown": "^4.4.0",
50
- "typedoc-vitepress-theme": "^1.1.2",
51
- "typescript": "5.8.3",
52
- "vitest": "^4.0.16"
49
+ "typedoc-plugin-markdown": "catalog:",
50
+ "typedoc-vitepress-theme": "catalog:",
51
+ "typescript": "catalog:",
52
+ "vitest": "catalog:"
53
53
  }
54
54
  }