@zenithbuild/router 0.5.0-beta.2.3
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 +130 -0
- package/dist/ZenLink.zen +7 -0
- package/dist/events.js +53 -0
- package/dist/history.js +84 -0
- package/dist/index.d.ts +41 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/manifest.d.ts +32 -0
- package/dist/manifest.d.ts.map +1 -0
- package/dist/manifest.js +180 -0
- package/dist/manifest.js.map +1 -0
- package/dist/match.js +191 -0
- package/dist/navigate.js +67 -0
- package/dist/navigation/client-router.d.ts +59 -0
- package/dist/navigation/client-router.d.ts.map +1 -0
- package/dist/navigation/client-router.js +373 -0
- package/dist/navigation/client-router.js.map +1 -0
- package/dist/navigation/index.d.ts +30 -0
- package/dist/navigation/index.d.ts.map +1 -0
- package/dist/navigation/index.js +44 -0
- package/dist/navigation/index.js.map +1 -0
- package/dist/navigation/zen-link.d.ts +234 -0
- package/dist/navigation/zen-link.d.ts.map +1 -0
- package/dist/navigation/zen-link.js +437 -0
- package/dist/navigation/zen-link.js.map +1 -0
- package/dist/router.js +111 -0
- package/dist/runtime.d.ts +33 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +157 -0
- package/dist/runtime.js.map +1 -0
- package/dist/types.d.ts +50 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- package/package.json +62 -0
- package/template.js +260 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-router.js","sourceRoot":"","sources":["../../src/navigation/client-router.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zenith Navigation System
|
|
3
|
+
*
|
|
4
|
+
* Provides SPA navigation utilities and the ZenLink API.
|
|
5
|
+
*
|
|
6
|
+
* @package @zenithbuild/router
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* import { navigate, isActive, prefetch, zenLink } from '@zenithbuild/router/navigation'
|
|
11
|
+
*
|
|
12
|
+
* // Programmatic navigation
|
|
13
|
+
* navigate('/about')
|
|
14
|
+
*
|
|
15
|
+
* // Check active state
|
|
16
|
+
* if (isActive('/blog')) {
|
|
17
|
+
* console.log('On blog section')
|
|
18
|
+
* }
|
|
19
|
+
*
|
|
20
|
+
* // Prefetch for faster navigation
|
|
21
|
+
* prefetch('/dashboard')
|
|
22
|
+
*
|
|
23
|
+
* // Create link programmatically
|
|
24
|
+
* const link = zenLink({ href: '/contact', children: 'Contact' })
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export { zenNavigate, navigate, zenBack, back, zenForward, forward, zenGo, go, zenIsActive, isActive, zenPrefetch, prefetch, zenIsPrefetched, isPrefetched, setGlobalTransition, getGlobalTransition, createTransitionContext, zenGetRoute, getRoute, zenGetParam, getParam, zenGetQuery, getQuery, createZenLink, zenLink, isExternalUrl, shouldUseSPANavigation, normalizePath } from './zen-link';
|
|
28
|
+
export * from './client-router';
|
|
29
|
+
export type { ZenLinkProps, TransitionContext, TransitionHandler, NavigateOptions } from './zen-link';
|
|
30
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/navigation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,EAEH,WAAW,EACX,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,UAAU,EACV,OAAO,EACP,KAAK,EACL,EAAE,EAGF,WAAW,EACX,QAAQ,EAGR,WAAW,EACX,QAAQ,EACR,eAAe,EACf,YAAY,EAGZ,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EAGvB,WAAW,EACX,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,WAAW,EACX,QAAQ,EAGR,aAAa,EACb,OAAO,EAGP,aAAa,EACb,sBAAsB,EACtB,aAAa,EAChB,MAAM,YAAY,CAAA;AAEnB,cAAc,iBAAiB,CAAA;AAG/B,YAAY,EACR,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EAClB,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zenith Navigation System
|
|
3
|
+
*
|
|
4
|
+
* Provides SPA navigation utilities and the ZenLink API.
|
|
5
|
+
*
|
|
6
|
+
* @package @zenithbuild/router
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* import { navigate, isActive, prefetch, zenLink } from '@zenithbuild/router/navigation'
|
|
11
|
+
*
|
|
12
|
+
* // Programmatic navigation
|
|
13
|
+
* navigate('/about')
|
|
14
|
+
*
|
|
15
|
+
* // Check active state
|
|
16
|
+
* if (isActive('/blog')) {
|
|
17
|
+
* console.log('On blog section')
|
|
18
|
+
* }
|
|
19
|
+
*
|
|
20
|
+
* // Prefetch for faster navigation
|
|
21
|
+
* prefetch('/dashboard')
|
|
22
|
+
*
|
|
23
|
+
* // Create link programmatically
|
|
24
|
+
* const link = zenLink({ href: '/contact', children: 'Contact' })
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
// Export all navigation utilities
|
|
28
|
+
export {
|
|
29
|
+
// Navigation API
|
|
30
|
+
zenNavigate, navigate, zenBack, back, zenForward, forward, zenGo, go,
|
|
31
|
+
// Active state
|
|
32
|
+
zenIsActive, isActive,
|
|
33
|
+
// Prefetching
|
|
34
|
+
zenPrefetch, prefetch, zenIsPrefetched, isPrefetched,
|
|
35
|
+
// Transitions API
|
|
36
|
+
setGlobalTransition, getGlobalTransition, createTransitionContext,
|
|
37
|
+
// Route state
|
|
38
|
+
zenGetRoute, getRoute, zenGetParam, getParam, zenGetQuery, getQuery,
|
|
39
|
+
// ZenLink factory
|
|
40
|
+
createZenLink, zenLink,
|
|
41
|
+
// Utilities
|
|
42
|
+
isExternalUrl, shouldUseSPANavigation, normalizePath } from './zen-link';
|
|
43
|
+
export * from './client-router';
|
|
44
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/navigation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,kCAAkC;AAClC,OAAO;AACH,iBAAiB;AACjB,WAAW,EACX,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,UAAU,EACV,OAAO,EACP,KAAK,EACL,EAAE;AAEF,eAAe;AACf,WAAW,EACX,QAAQ;AAER,cAAc;AACd,WAAW,EACX,QAAQ,EACR,eAAe,EACf,YAAY;AAEZ,kBAAkB;AAClB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB;AAEvB,cAAc;AACd,WAAW,EACX,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,WAAW,EACX,QAAQ;AAER,kBAAkB;AAClB,aAAa,EACb,OAAO;AAEP,YAAY;AACZ,aAAa,EACb,sBAAsB,EACtB,aAAa,EAChB,MAAM,YAAY,CAAA;AAEnB,cAAc,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ZenLink Runtime Module
|
|
3
|
+
*
|
|
4
|
+
* Provides programmatic navigation and ZenLink utilities.
|
|
5
|
+
* This module can be imported in `.zen` files or TypeScript.
|
|
6
|
+
*
|
|
7
|
+
* @package @zenithbuild/router
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import { navigate, zenLink, isActive } from '@zenithbuild/router'
|
|
12
|
+
*
|
|
13
|
+
* // Programmatic navigation
|
|
14
|
+
* navigate('/about')
|
|
15
|
+
*
|
|
16
|
+
* // Check active state
|
|
17
|
+
* if (isActive('/blog')) {
|
|
18
|
+
* console.log('On blog section')
|
|
19
|
+
* }
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
/**
|
|
23
|
+
* Props for ZenLink component
|
|
24
|
+
*/
|
|
25
|
+
export interface ZenLinkProps {
|
|
26
|
+
/** Target URL path */
|
|
27
|
+
href: string;
|
|
28
|
+
/** Optional CSS class(es) */
|
|
29
|
+
class?: string;
|
|
30
|
+
/** Link target (_blank, _self, etc.) */
|
|
31
|
+
target?: '_blank' | '_self' | '_parent' | '_top';
|
|
32
|
+
/** Click handler (called before navigation) */
|
|
33
|
+
onClick?: (event: MouseEvent) => void | boolean;
|
|
34
|
+
/** Preload the linked page on hover */
|
|
35
|
+
preload?: boolean;
|
|
36
|
+
/** Future: Transition configuration */
|
|
37
|
+
onTransition?: TransitionHandler;
|
|
38
|
+
/** Future: Disable page transition animation */
|
|
39
|
+
noTransition?: boolean;
|
|
40
|
+
/** Match exact path for active state */
|
|
41
|
+
exact?: boolean;
|
|
42
|
+
/** Additional aria attributes */
|
|
43
|
+
ariaLabel?: string;
|
|
44
|
+
/** Replace history instead of push */
|
|
45
|
+
replace?: boolean;
|
|
46
|
+
/** Link content (children) */
|
|
47
|
+
children?: string | HTMLElement | HTMLElement[];
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Transition context for Transitions API
|
|
51
|
+
*/
|
|
52
|
+
export interface TransitionContext {
|
|
53
|
+
/** Current page element */
|
|
54
|
+
currentPage: HTMLElement | null;
|
|
55
|
+
/** Next page element (after load) */
|
|
56
|
+
nextPage: HTMLElement | null;
|
|
57
|
+
/** Between/loading page element */
|
|
58
|
+
betweenPage: HTMLElement | null;
|
|
59
|
+
/** Navigation direction */
|
|
60
|
+
direction: 'forward' | 'back';
|
|
61
|
+
/** Origin path */
|
|
62
|
+
fromPath: string;
|
|
63
|
+
/** Destination path */
|
|
64
|
+
toPath: string;
|
|
65
|
+
/** Route params */
|
|
66
|
+
params: Record<string, string>;
|
|
67
|
+
/** Query params */
|
|
68
|
+
query: Record<string, string>;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Transition handler function
|
|
72
|
+
*/
|
|
73
|
+
export type TransitionHandler = (context: TransitionContext) => void | Promise<void>;
|
|
74
|
+
/**
|
|
75
|
+
* Navigation options
|
|
76
|
+
*/
|
|
77
|
+
export interface NavigateOptions {
|
|
78
|
+
/** Replace current history entry instead of pushing */
|
|
79
|
+
replace?: boolean;
|
|
80
|
+
/** Scroll to top after navigation */
|
|
81
|
+
scrollToTop?: boolean;
|
|
82
|
+
/** Transition handler for this navigation */
|
|
83
|
+
onTransition?: TransitionHandler;
|
|
84
|
+
/** Skip transition animation */
|
|
85
|
+
noTransition?: boolean;
|
|
86
|
+
/** State to pass to the next page */
|
|
87
|
+
state?: Record<string, unknown>;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Check if URL is external (different origin)
|
|
91
|
+
*/
|
|
92
|
+
export declare function isExternalUrl(url: string): boolean;
|
|
93
|
+
/**
|
|
94
|
+
* Check if link should use SPA navigation
|
|
95
|
+
*/
|
|
96
|
+
export declare function shouldUseSPANavigation(href: string, target?: string): boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Normalize a path
|
|
99
|
+
*/
|
|
100
|
+
export declare function normalizePath(path: string): string;
|
|
101
|
+
/**
|
|
102
|
+
* Navigate to a new URL (SPA navigation)
|
|
103
|
+
*
|
|
104
|
+
* This is the primary API for programmatic navigation.
|
|
105
|
+
*
|
|
106
|
+
* @example
|
|
107
|
+
* ```ts
|
|
108
|
+
* // Simple navigation
|
|
109
|
+
* navigate('/about')
|
|
110
|
+
*
|
|
111
|
+
* // With options
|
|
112
|
+
* navigate('/dashboard', { replace: true })
|
|
113
|
+
*
|
|
114
|
+
* // With transition
|
|
115
|
+
* navigate('/gallery', {
|
|
116
|
+
* onTransition: async (ctx) => {
|
|
117
|
+
* await animateOut(ctx.currentPage)
|
|
118
|
+
* await animateIn(ctx.nextPage)
|
|
119
|
+
* }
|
|
120
|
+
* })
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
export declare function zenNavigate(to: string, options?: NavigateOptions): Promise<void>;
|
|
124
|
+
export declare const navigate: typeof zenNavigate;
|
|
125
|
+
/**
|
|
126
|
+
* Navigate back in history
|
|
127
|
+
*/
|
|
128
|
+
export declare function zenBack(): void;
|
|
129
|
+
export declare const back: typeof zenBack;
|
|
130
|
+
/**
|
|
131
|
+
* Navigate forward in history
|
|
132
|
+
*/
|
|
133
|
+
export declare function zenForward(): void;
|
|
134
|
+
export declare const forward: typeof zenForward;
|
|
135
|
+
/**
|
|
136
|
+
* Navigate to a specific history index
|
|
137
|
+
*/
|
|
138
|
+
export declare function zenGo(delta: number): void;
|
|
139
|
+
export declare const go: typeof zenGo;
|
|
140
|
+
/**
|
|
141
|
+
* Check if a path is currently active
|
|
142
|
+
*
|
|
143
|
+
* @example
|
|
144
|
+
* ```ts
|
|
145
|
+
* // Check if on blog section
|
|
146
|
+
* if (isActive('/blog')) {
|
|
147
|
+
* addClass(link, 'active')
|
|
148
|
+
* }
|
|
149
|
+
*
|
|
150
|
+
* // Exact match only
|
|
151
|
+
* if (isActive('/blog', true)) {
|
|
152
|
+
* addClass(link, 'active-exact')
|
|
153
|
+
* }
|
|
154
|
+
* ```
|
|
155
|
+
*/
|
|
156
|
+
export declare function zenIsActive(path: string, exact?: boolean): boolean;
|
|
157
|
+
export declare const isActive: typeof zenIsActive;
|
|
158
|
+
/**
|
|
159
|
+
* Prefetch a route for faster navigation
|
|
160
|
+
*
|
|
161
|
+
* @example
|
|
162
|
+
* ```ts
|
|
163
|
+
* // Prefetch on hover
|
|
164
|
+
* element.addEventListener('mouseenter', () => {
|
|
165
|
+
* prefetch('/about')
|
|
166
|
+
* })
|
|
167
|
+
* ```
|
|
168
|
+
*/
|
|
169
|
+
export declare function zenPrefetch(path: string): Promise<void>;
|
|
170
|
+
export declare const prefetch: typeof zenPrefetch;
|
|
171
|
+
/**
|
|
172
|
+
* Check if a route has been prefetched
|
|
173
|
+
*/
|
|
174
|
+
export declare function zenIsPrefetched(path: string): boolean;
|
|
175
|
+
export declare const isPrefetched: typeof zenIsPrefetched;
|
|
176
|
+
/**
|
|
177
|
+
* Set global transition handler
|
|
178
|
+
*
|
|
179
|
+
* This allows setting a layout-level transition that applies to all navigations.
|
|
180
|
+
*
|
|
181
|
+
* @example
|
|
182
|
+
* ```ts
|
|
183
|
+
* // In layout component
|
|
184
|
+
* setGlobalTransition(async (ctx) => {
|
|
185
|
+
* ctx.currentPage?.classList.add('fade-out')
|
|
186
|
+
* await delay(300)
|
|
187
|
+
* ctx.nextPage?.classList.add('fade-in')
|
|
188
|
+
* })
|
|
189
|
+
* ```
|
|
190
|
+
*/
|
|
191
|
+
export declare function setGlobalTransition(handler: TransitionHandler | null): void;
|
|
192
|
+
/**
|
|
193
|
+
* Get current global transition handler
|
|
194
|
+
*/
|
|
195
|
+
export declare function getGlobalTransition(): TransitionHandler | null;
|
|
196
|
+
/**
|
|
197
|
+
* Create a transition context
|
|
198
|
+
*/
|
|
199
|
+
export declare function createTransitionContext(fromPath: string, toPath: string, direction?: 'forward' | 'back'): TransitionContext;
|
|
200
|
+
/**
|
|
201
|
+
* Get current route state
|
|
202
|
+
*/
|
|
203
|
+
export declare function zenGetRoute(): {
|
|
204
|
+
path: string;
|
|
205
|
+
params: Record<string, string>;
|
|
206
|
+
query: Record<string, string>;
|
|
207
|
+
};
|
|
208
|
+
export declare const getRoute: typeof zenGetRoute;
|
|
209
|
+
/**
|
|
210
|
+
* Get a route parameter
|
|
211
|
+
*/
|
|
212
|
+
export declare function zenGetParam(name: string): string | undefined;
|
|
213
|
+
export declare const getParam: typeof zenGetParam;
|
|
214
|
+
/**
|
|
215
|
+
* Get a query parameter
|
|
216
|
+
*/
|
|
217
|
+
export declare function zenGetQuery(name: string): string | undefined;
|
|
218
|
+
export declare const getQuery: typeof zenGetQuery;
|
|
219
|
+
/**
|
|
220
|
+
* Create a ZenLink element programmatically
|
|
221
|
+
*
|
|
222
|
+
* @example
|
|
223
|
+
* ```ts
|
|
224
|
+
* const link = createZenLink({
|
|
225
|
+
* href: '/about',
|
|
226
|
+
* class: 'nav-link',
|
|
227
|
+
* children: 'About Us'
|
|
228
|
+
* })
|
|
229
|
+
* container.appendChild(link)
|
|
230
|
+
* ```
|
|
231
|
+
*/
|
|
232
|
+
export declare function createZenLink(props: ZenLinkProps): HTMLAnchorElement;
|
|
233
|
+
export declare const zenLink: typeof createZenLink;
|
|
234
|
+
//# sourceMappingURL=zen-link.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zen-link.d.ts","sourceRoot":"","sources":["../../src/navigation/zen-link.ts"],"names":[],"mappings":"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"}
|