@alepha/react 0.8.0 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,16 +1,17 @@
1
1
  import * as _alepha_core11 from "@alepha/core";
2
- import * as _alepha_core18 from "@alepha/core";
2
+ import * as _alepha_core24 from "@alepha/core";
3
3
  import * as _alepha_core16 from "@alepha/core";
4
4
  import * as _alepha_core1 from "@alepha/core";
5
5
  import { Alepha, Async, KIND, Module, OPTIONS, Service, Static, TObject, TSchema } from "@alepha/core";
6
6
  import { ApiLinksResponse, ServerHandler, ServerRequest, ServerRouterProvider, ServerTimingProvider } from "@alepha/server";
7
7
  import { ServerRouteCache } from "@alepha/server-cache";
8
8
  import { ClientScope, HttpVirtualClient, LinkProvider } from "@alepha/server-links";
9
+ import * as react20 from "react";
9
10
  import * as react23 from "react";
10
- import * as react24 from "react";
11
11
  import React, { AnchorHTMLAttributes, ErrorInfo, FC, PropsWithChildren, ReactNode } from "react";
12
+ import * as react_jsx_runtime18 from "react/jsx-runtime";
13
+ import * as react_jsx_runtime21 from "react/jsx-runtime";
12
14
  import * as react_jsx_runtime22 from "react/jsx-runtime";
13
- import * as react_jsx_runtime20 from "react/jsx-runtime";
14
15
  import { ServerStaticProvider } from "@alepha/server-static";
15
16
  import { Route, RouterProvider } from "@alepha/router";
16
17
  import { Root } from "react-dom/client";
@@ -34,6 +35,13 @@ declare const ClientOnly: (props: PropsWithChildren<ClientOnlyProps>) => ReactNo
34
35
  //#endregion
35
36
  //#region src/descriptors/$page.d.ts
36
37
  declare const KEY = "PAGE";
38
+ /**
39
+ * Main descriptor for defining a React route in the application.
40
+ */
41
+ declare const $page: {
42
+ <TConfig extends PageConfigSchema = PageConfigSchema, TProps extends object = any, TPropsParent extends object = TPropsParentDefault>(options: PageDescriptorOptions<TConfig, TProps, TPropsParent>): PageDescriptor<TConfig, TProps, TPropsParent>;
43
+ [KIND]: string;
44
+ };
37
45
  interface PageConfigSchema {
38
46
  query?: TSchema;
39
47
  params?: TSchema;
@@ -138,13 +146,6 @@ interface PageDescriptor<TConfig extends PageConfigSchema = PageConfigSchema, TP
138
146
  */
139
147
  render: (options?: PageDescriptorRenderOptions) => Promise<PageDescriptorRenderResult>;
140
148
  }
141
- /**
142
- * Main descriptor for defining a React route in the application.
143
- */
144
- declare const $page: {
145
- <TConfig extends PageConfigSchema = PageConfigSchema, TProps extends object = any, TPropsParent extends object = TPropsParentDefault>(options: PageDescriptorOptions<TConfig, TProps, TPropsParent>): PageDescriptor<TConfig, TProps, TPropsParent>;
146
- [KIND]: string;
147
- };
148
149
  interface PageDescriptorRenderOptions {
149
150
  params?: Record<string, string>;
150
151
  query?: Record<string, string>;
@@ -231,6 +232,7 @@ interface Layer {
231
232
  index: number;
232
233
  path: string;
233
234
  route?: PageRoute;
235
+ cache?: boolean;
234
236
  }
235
237
  type PreviousLayerData = Omit<Layer, "element" | "index" | "path">;
236
238
  interface AnchorProps {
@@ -252,6 +254,7 @@ interface RouterStackItem {
252
254
  config?: Record<string, any>;
253
255
  props?: Record<string, any>;
254
256
  error?: Error;
257
+ cache?: boolean;
255
258
  }
256
259
  interface RouterRenderResult {
257
260
  state: RouterState;
@@ -281,11 +284,11 @@ interface BrowserRoute extends Route {
281
284
  page: PageRoute;
282
285
  }
283
286
  declare class BrowserRouterProvider extends RouterProvider<BrowserRoute> {
284
- protected readonly log: _alepha_core18.Logger;
287
+ protected readonly log: _alepha_core24.Logger;
285
288
  protected readonly alepha: Alepha;
286
289
  protected readonly pageDescriptorProvider: PageDescriptorProvider;
287
290
  add(entry: PageRouteEntry): void;
288
- protected readonly configure: _alepha_core18.HookDescriptor<"configure">;
291
+ protected readonly configure: _alepha_core24.HookDescriptor<"configure">;
289
292
  transition(url: URL, options?: TransitionOptions): Promise<RouterRenderResult>;
290
293
  root(state: RouterState, context: PageReactContext): ReactNode;
291
294
  }
@@ -304,7 +307,9 @@ declare class ReactBrowserProvider {
304
307
  state: RouterState;
305
308
  get document(): Document;
306
309
  get history(): History;
310
+ get location(): Location;
307
311
  get url(): string;
312
+ pushState(url: string, replace?: boolean): void;
308
313
  invalidate(props?: Record<string, any>): Promise<void>;
309
314
  go(url: string, options?: RouterGoOptions): Promise<void>;
310
315
  protected render(options?: {
@@ -373,7 +378,7 @@ interface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
373
378
  to: string | PageDescriptor;
374
379
  children?: React.ReactNode;
375
380
  }
376
- declare const Link: (props: LinkProps) => react_jsx_runtime22.JSX.Element | null;
381
+ declare const Link: (props: LinkProps) => react_jsx_runtime18.JSX.Element | null;
377
382
  //#endregion
378
383
  //#region src/components/NestedView.d.ts
379
384
  interface NestedViewProps {
@@ -400,7 +405,11 @@ interface NestedViewProps {
400
405
  * }
401
406
  * ```
402
407
  */
403
- declare const NestedView: (props: NestedViewProps) => react_jsx_runtime20.JSX.Element;
408
+ declare const NestedView: (props: NestedViewProps) => react_jsx_runtime21.JSX.Element;
409
+ //#endregion
410
+ //#region src/components/NotFound.d.ts
411
+ declare function NotFoundPage(): react_jsx_runtime22.JSX.Element;
412
+ //# sourceMappingURL=NotFound.d.ts.map
404
413
  //#endregion
405
414
  //#region src/contexts/RouterContext.d.ts
406
415
  interface RouterContextValue {
@@ -408,7 +417,7 @@ interface RouterContextValue {
408
417
  state: RouterState;
409
418
  context: PageReactContext;
410
419
  }
411
- declare const RouterContext: react23.Context<RouterContextValue | undefined>;
420
+ declare const RouterContext: react20.Context<RouterContextValue | undefined>;
412
421
  //# sourceMappingURL=RouterContext.d.ts.map
413
422
  //#endregion
414
423
  //#region src/contexts/RouterLayerContext.d.ts
@@ -416,18 +425,21 @@ interface RouterLayerContextValue {
416
425
  index: number;
417
426
  path: string;
418
427
  }
419
- declare const RouterLayerContext: react24.Context<RouterLayerContextValue | undefined>;
428
+ declare const RouterLayerContext: react23.Context<RouterLayerContextValue | undefined>;
420
429
  //# sourceMappingURL=RouterLayerContext.d.ts.map
421
430
  //#endregion
422
431
  //#region src/hooks/RouterHookApi.d.ts
423
432
  declare class RouterHookApi {
424
433
  private readonly pages;
434
+ private readonly context;
425
435
  private readonly state;
426
436
  private readonly layer;
427
437
  private readonly browser?;
428
- constructor(pages: PageRoute[], state: RouterState, layer: {
438
+ constructor(pages: PageRoute[], context: PageReactContext, state: RouterState, layer: {
429
439
  path: string;
430
440
  }, browser?: ReactBrowserProvider | undefined);
441
+ getURL(): URL;
442
+ get location(): Location;
431
443
  get current(): RouterState;
432
444
  get pathname(): string;
433
445
  get query(): Record<string, string>;
@@ -547,8 +559,8 @@ declare const envSchema: _alepha_core1.TObject<{
547
559
  declare module "@alepha/core" {
548
560
  interface Env extends Partial<Static<typeof envSchema>> {}
549
561
  interface State {
550
- "ReactServerProvider.template"?: string;
551
- "ReactServerProvider.ssr"?: boolean;
562
+ "react.server.template"?: string;
563
+ "react.server.ssr"?: boolean;
552
564
  }
553
565
  }
554
566
  declare class ReactServerProvider {
@@ -633,10 +645,132 @@ declare module "@alepha/core" {
633
645
  }
634
646
  }
635
647
  /**
636
- * Alepha React Module
648
+ * Provides full-stack React development with declarative routing, server-side rendering, and client-side hydration.
637
649
  *
638
- * Alepha React Module contains a router for client-side navigation and server-side rendering.
639
- * Routes can be defined using the `$page` descriptor.
650
+ * The React module enables building modern React applications using the `$page` descriptor on class properties.
651
+ * It delivers seamless server-side rendering, automatic code splitting, and client-side navigation with full
652
+ * type safety and schema validation for route parameters and data.
653
+ *
654
+ * **Key Features:**
655
+ * - Declarative page definition with `$page` descriptor
656
+ * - Server-side rendering (SSR) with automatic hydration
657
+ * - Type-safe routing with parameter validation
658
+ * - Schema-based data resolution and validation
659
+ * - SEO-friendly meta tag management
660
+ * - Automatic code splitting and lazy loading
661
+ * - Client-side navigation with browser history
662
+ *
663
+ * **Basic Usage:**
664
+ * ```ts
665
+ * import { Alepha, run, t } from "alepha";
666
+ * import { AlephaReact, $page } from "alepha/react";
667
+ *
668
+ * class AppRoutes {
669
+ * // Home page
670
+ * home = $page({
671
+ * path: "/",
672
+ * component: () => (
673
+ * <div>
674
+ * <h1>Welcome to Alepha</h1>
675
+ * <p>Build amazing React applications!</p>
676
+ * </div>
677
+ * ),
678
+ * });
679
+ *
680
+ * // About page with meta tags
681
+ * about = $page({
682
+ * path: "/about",
683
+ * head: {
684
+ * title: "About Us",
685
+ * description: "Learn more about our mission",
686
+ * },
687
+ * component: () => (
688
+ * <div>
689
+ * <h1>About Us</h1>
690
+ * <p>Learn more about our mission.</p>
691
+ * </div>
692
+ * ),
693
+ * });
694
+ * }
695
+ *
696
+ * const alepha = Alepha.create()
697
+ * .with(AlephaReact)
698
+ * .with(AppRoutes);
699
+ *
700
+ * run(alepha);
701
+ * ```
702
+ *
703
+ * **Dynamic Routes with Parameters:**
704
+ * ```tsx
705
+ * class UserRoutes {
706
+ * userProfile = $page({
707
+ * path: "/users/:id",
708
+ * schema: {
709
+ * params: t.object({
710
+ * id: t.string(),
711
+ * }),
712
+ * },
713
+ * resolve: async ({ params }) => {
714
+ * // Fetch user data server-side
715
+ * const user = await getUserById(params.id);
716
+ * return { user };
717
+ * },
718
+ * head: ({ user }) => ({
719
+ * title: `${user.name} - Profile`,
720
+ * description: `View ${user.name}'s profile`,
721
+ * }),
722
+ * component: ({ user }) => (
723
+ * <div>
724
+ * <h1>{user.name}</h1>
725
+ * <p>Email: {user.email}</p>
726
+ * </div>
727
+ * ),
728
+ * });
729
+ *
730
+ * userSettings = $page({
731
+ * path: "/users/:id/settings",
732
+ * schema: {
733
+ * params: t.object({
734
+ * id: t.string(),
735
+ * }),
736
+ * },
737
+ * component: ({ params }) => (
738
+ * <UserSettings userId={params.id} />
739
+ * ),
740
+ * });
741
+ * }
742
+ * ```
743
+ *
744
+ * **Static Generation:**
745
+ * ```tsx
746
+ * class BlogRoutes {
747
+ * blogPost = $page({
748
+ * path: "/blog/:slug",
749
+ * schema: {
750
+ * params: t.object({
751
+ * slug: t.string(),
752
+ * }),
753
+ * },
754
+ * static: {
755
+ * entries: [
756
+ * { params: { slug: "getting-started" } },
757
+ * { params: { slug: "advanced-features" } },
758
+ * { params: { slug: "deployment" } },
759
+ * ],
760
+ * },
761
+ * resolve: ({ params }) => {
762
+ * const post = getBlogPost(params.slug);
763
+ * return { post };
764
+ * },
765
+ * component: ({ post }) => (
766
+ * <article>
767
+ * <h1>{post.title}</h1>
768
+ * <div>{post.content}</div>
769
+ * </article>
770
+ * ),
771
+ * });
772
+ * }
773
+ * ```
640
774
  *
641
775
  * @see {@link $page}
642
776
  * @module alepha.react
@@ -648,5 +782,5 @@ declare class AlephaReact implements Module {
648
782
  //# sourceMappingURL=index.d.ts.map
649
783
 
650
784
  //#endregion
651
- export { $page, AlephaReact, AnchorProps, ClientOnly, CreateLayersResult, ErrorBoundary, HrefLike, Layer, Link, NestedView, PageConfigSchema, PageDescriptor, PageDescriptorOptions, PageDescriptorProvider, PageDescriptorRenderOptions, PageDescriptorRenderResult, PageReactContext, PageRequest, PageRequestConfig, PageResolve, PageRoute, PageRouteEntry, PreviousLayerData, ReactBrowserProvider, ReactHydrationState, ReactServerProvider, RedirectionError, RouterContext, RouterContextValue, RouterGoOptions, RouterHookApi, RouterLayerContext, RouterLayerContextValue, RouterRenderResult, RouterStackItem, RouterState, TPropsDefault, TPropsParentDefault, TransitionOptions, UseActiveHook, UseQueryParamsHookOptions, VirtualRouter, isPageRoute, useActive, useAlepha, useClient, useInject, useQueryParams, useRouter, useRouterEvents, useRouterState };
785
+ export { $page, AlephaReact, AnchorProps, ClientOnly, CreateLayersResult, ErrorBoundary, HrefLike, Layer, Link, NestedView, NotFoundPage as NotFound, PageConfigSchema, PageDescriptor, PageDescriptorOptions, PageDescriptorProvider, PageDescriptorRenderOptions, PageDescriptorRenderResult, PageReactContext, PageRequest, PageRequestConfig, PageResolve, PageRoute, PageRouteEntry, PreviousLayerData, ReactBrowserProvider, ReactHydrationState, ReactServerProvider, RedirectionError, RouterContext, RouterContextValue, RouterGoOptions, RouterHookApi, RouterLayerContext, RouterLayerContextValue, RouterRenderResult, RouterStackItem, RouterState, TPropsDefault, TPropsParentDefault, TransitionOptions, UseActiveHook, UseQueryParamsHookOptions, VirtualRouter, isPageRoute, useActive, useAlepha, useClient, useInject, useQueryParams, useRouter, useRouterEvents, useRouterState };
652
786
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/components/ClientOnly.tsx","../src/descriptors/$page.ts","../src/providers/PageDescriptorProvider.ts","../src/providers/BrowserRouterProvider.ts","../src/providers/ReactBrowserProvider.ts","../src/components/ErrorBoundary.tsx","../src/components/Link.tsx","../src/components/NestedView.tsx","../src/contexts/RouterContext.ts","../src/contexts/RouterLayerContext.ts","../src/hooks/RouterHookApi.ts","../src/errors/RedirectionError.ts","../src/hooks/useActive.ts","../src/hooks/useAlepha.ts","../src/hooks/useClient.ts","../src/hooks/useInject.ts","../src/hooks/useQueryParams.ts","../src/hooks/useRouter.ts","../src/hooks/useRouterEvents.ts","../src/hooks/useRouterState.ts","../src/providers/ReactServerProvider.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/components/ClientOnly.tsx","../src/descriptors/$page.ts","../src/providers/PageDescriptorProvider.ts","../src/providers/BrowserRouterProvider.ts","../src/providers/ReactBrowserProvider.ts","../src/components/ErrorBoundary.tsx","../src/components/Link.tsx","../src/components/NestedView.tsx","../src/components/NotFound.tsx","../src/contexts/RouterContext.ts","../src/contexts/RouterLayerContext.ts","../src/hooks/RouterHookApi.ts","../src/errors/RedirectionError.ts","../src/hooks/useActive.ts","../src/hooks/useAlepha.ts","../src/hooks/useClient.ts","../src/hooks/useInject.ts","../src/hooks/useQueryParams.ts","../src/hooks/useRouter.ts","../src/hooks/useRouterEvents.ts","../src/hooks/useRouterState.ts","../src/providers/ReactServerProvider.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -291,7 +291,7 @@ const NestedView = (props) => {
291
291
  const index = layer?.index ?? 0;
292
292
  const [view, setView] = useState(app?.state.layers[index]?.element);
293
293
  useRouterEvents({ onEnd: ({ state }) => {
294
- setView(state.layers[index]?.element);
294
+ if (!state.layers[index]?.cache) setView(state.layers[index]?.element);
295
295
  } }, [app]);
296
296
  if (!app) throw new Error("NestedView must be used within a RouterContext.");
297
297
  const element = view ?? props.children ?? null;
@@ -389,19 +389,18 @@ var PageDescriptorProvider = class {
389
389
  const route$1 = it.route;
390
390
  const config = {};
391
391
  try {
392
- config.query = route$1.schema?.query ? this.alepha.parse(route$1.schema.query, request.query) : request.query;
392
+ config.query = route$1.schema?.query ? this.alepha.parse(route$1.schema.query, request.query) : {};
393
393
  } catch (e) {
394
394
  it.error = e;
395
395
  break;
396
396
  }
397
397
  try {
398
- config.params = route$1.schema?.params ? this.alepha.parse(route$1.schema.params, request.params) : request.params;
398
+ config.params = route$1.schema?.params ? this.alepha.parse(route$1.schema.params, request.params) : {};
399
399
  } catch (e) {
400
400
  it.error = e;
401
401
  break;
402
402
  }
403
403
  it.config = { ...config };
404
- if (!route$1.resolve) continue;
405
404
  const previous = request.previous;
406
405
  if (previous?.[i] && !forceRefresh && previous[i].name === route$1.name) {
407
406
  const url = (str) => str ? str.replace(/\/\/+/g, "/") : "/";
@@ -416,6 +415,7 @@ var PageDescriptorProvider = class {
416
415
  if (prev === curr) {
417
416
  it.props = previous[i].props;
418
417
  it.error = previous[i].error;
418
+ it.cache = true;
419
419
  context = {
420
420
  ...context,
421
421
  ...it.props
@@ -424,6 +424,7 @@ var PageDescriptorProvider = class {
424
424
  }
425
425
  forceRefresh = true;
426
426
  }
427
+ if (!route$1.resolve) continue;
427
428
  try {
428
429
  const props = await route$1.resolve?.({
429
430
  ...request,
@@ -470,7 +471,7 @@ var PageDescriptorProvider = class {
470
471
  element: this.renderView(i + 1, path, element$1, it.route),
471
472
  index: i + 1,
472
473
  path,
473
- route
474
+ route: it.route
474
475
  });
475
476
  break;
476
477
  }
@@ -486,7 +487,8 @@ var PageDescriptorProvider = class {
486
487
  element: this.renderView(i + 1, path, element, it.route),
487
488
  index: i + 1,
488
489
  path,
489
- route
490
+ route: it.route,
491
+ cache: it.cache
490
492
  });
491
493
  }
492
494
  return {
@@ -554,8 +556,8 @@ var PageDescriptorProvider = class {
554
556
  };
555
557
  for (const { value, key } of pages) value[OPTIONS].name ??= key;
556
558
  for (const { value } of pages) {
557
- if (hasParent(value)) continue;
558
559
  if (value[OPTIONS].path === "/*") hasNotFoundHandler = true;
560
+ if (hasParent(value)) continue;
559
561
  this.add(this.map(pages, value));
560
562
  }
561
563
  if (!hasNotFoundHandler && pages.length > 0) this.add({
@@ -631,7 +633,7 @@ var ReactServerProvider = class {
631
633
  handler: async () => {
632
634
  const pages = this.alepha.getDescriptorValues($page);
633
635
  const ssrEnabled = pages.length > 0 && this.env.REACT_SSR_ENABLED !== false;
634
- this.alepha.state("ReactServerProvider.ssr", ssrEnabled);
636
+ this.alepha.state("react.server.ssr", ssrEnabled);
635
637
  for (const { key, instance, value } of pages) {
636
638
  const name = value[OPTIONS].name ?? key;
637
639
  instance[key].render = this.createRenderFunction(name);
@@ -671,7 +673,7 @@ var ReactServerProvider = class {
671
673
  }
672
674
  });
673
675
  get template() {
674
- return this.alepha.state("ReactServerProvider.template") ?? "<!DOCTYPE html><html lang='en'><head></head><body></body></html>";
676
+ return this.alepha.state("react.server.template") ?? "<!DOCTYPE html><html lang='en'><head></head><body></body></html>";
675
677
  }
676
678
  async registerPages(templateLoader) {
677
679
  for (const page of this.pageDescriptorProvider.getPages()) {
@@ -952,8 +954,22 @@ var ReactBrowserProvider = class {
952
954
  get history() {
953
955
  return window.history;
954
956
  }
957
+ get location() {
958
+ return window.location;
959
+ }
955
960
  get url() {
956
- return window.location.pathname + window.location.search;
961
+ let url = this.location.pathname + this.location.search;
962
+ if (import.meta?.env?.BASE_URL) {
963
+ url = url.replace(import.meta.env?.BASE_URL, "");
964
+ if (!url.startsWith("/")) url = `/${url}`;
965
+ }
966
+ return url;
967
+ }
968
+ pushState(url, replace) {
969
+ let path = url;
970
+ if (import.meta?.env?.BASE_URL) path = (import.meta.env?.BASE_URL + path).replaceAll("//", "/");
971
+ if (replace) this.history.replaceState({}, "", path);
972
+ else this.history.pushState({}, "", path);
957
973
  }
958
974
  async invalidate(props) {
959
975
  const previous = [];
@@ -979,14 +995,14 @@ var ReactBrowserProvider = class {
979
995
  async go(url, options = {}) {
980
996
  const result = await this.render({ url });
981
997
  if (result.context.url.pathname !== url) {
982
- this.history.replaceState({}, "", result.context.url.pathname);
998
+ this.pushState(result.context.url.pathname);
983
999
  return;
984
1000
  }
985
1001
  if (options.replace) {
986
- this.history.replaceState({}, "", url);
1002
+ this.pushState(url);
987
1003
  return;
988
1004
  }
989
- this.history.pushState({}, "", url);
1005
+ this.pushState(url);
990
1006
  }
991
1007
  async render(options = {}) {
992
1008
  const previous = options.previous ?? this.state.layers;
@@ -1023,6 +1039,7 @@ var ReactBrowserProvider = class {
1023
1039
  hydration
1024
1040
  });
1025
1041
  window.addEventListener("popstate", () => {
1042
+ if (this.state.pathname === location.pathname) return;
1026
1043
  this.render();
1027
1044
  });
1028
1045
  }
@@ -1032,12 +1049,21 @@ var ReactBrowserProvider = class {
1032
1049
  //#endregion
1033
1050
  //#region src/hooks/RouterHookApi.ts
1034
1051
  var RouterHookApi = class {
1035
- constructor(pages, state, layer, browser) {
1052
+ constructor(pages, context, state, layer, browser) {
1036
1053
  this.pages = pages;
1054
+ this.context = context;
1037
1055
  this.state = state;
1038
1056
  this.layer = layer;
1039
1057
  this.browser = browser;
1040
1058
  }
1059
+ getURL() {
1060
+ if (!this.browser) return this.context.url;
1061
+ return new URL(this.location.href);
1062
+ }
1063
+ get location() {
1064
+ if (!this.browser) throw new Error("Browser is required");
1065
+ return this.browser.location;
1066
+ }
1041
1067
  get current() {
1042
1068
  return this.state;
1043
1069
  }
@@ -1115,7 +1141,7 @@ const useRouter = () => {
1115
1141
  const pages = useMemo(() => {
1116
1142
  return ctx.alepha.get(PageDescriptorProvider).getPages();
1117
1143
  }, []);
1118
- return useMemo(() => new RouterHookApi(pages, ctx.state, layer, ctx.alepha.isBrowser() ? ctx.alepha.get(ReactBrowserProvider) : void 0), [layer]);
1144
+ return useMemo(() => new RouterHookApi(pages, ctx.context, ctx.state, layer, ctx.alepha.isBrowser() ? ctx.alepha.get(ReactBrowserProvider) : void 0), [layer]);
1119
1145
  };
1120
1146
 
1121
1147
  //#endregion
@@ -1235,10 +1261,132 @@ const useRouterState = () => {
1235
1261
  //#endregion
1236
1262
  //#region src/index.ts
1237
1263
  /**
1238
- * Alepha React Module
1264
+ * Provides full-stack React development with declarative routing, server-side rendering, and client-side hydration.
1265
+ *
1266
+ * The React module enables building modern React applications using the `$page` descriptor on class properties.
1267
+ * It delivers seamless server-side rendering, automatic code splitting, and client-side navigation with full
1268
+ * type safety and schema validation for route parameters and data.
1269
+ *
1270
+ * **Key Features:**
1271
+ * - Declarative page definition with `$page` descriptor
1272
+ * - Server-side rendering (SSR) with automatic hydration
1273
+ * - Type-safe routing with parameter validation
1274
+ * - Schema-based data resolution and validation
1275
+ * - SEO-friendly meta tag management
1276
+ * - Automatic code splitting and lazy loading
1277
+ * - Client-side navigation with browser history
1278
+ *
1279
+ * **Basic Usage:**
1280
+ * ```ts
1281
+ * import { Alepha, run, t } from "alepha";
1282
+ * import { AlephaReact, $page } from "alepha/react";
1239
1283
  *
1240
- * Alepha React Module contains a router for client-side navigation and server-side rendering.
1241
- * Routes can be defined using the `$page` descriptor.
1284
+ * class AppRoutes {
1285
+ * // Home page
1286
+ * home = $page({
1287
+ * path: "/",
1288
+ * component: () => (
1289
+ * <div>
1290
+ * <h1>Welcome to Alepha</h1>
1291
+ * <p>Build amazing React applications!</p>
1292
+ * </div>
1293
+ * ),
1294
+ * });
1295
+ *
1296
+ * // About page with meta tags
1297
+ * about = $page({
1298
+ * path: "/about",
1299
+ * head: {
1300
+ * title: "About Us",
1301
+ * description: "Learn more about our mission",
1302
+ * },
1303
+ * component: () => (
1304
+ * <div>
1305
+ * <h1>About Us</h1>
1306
+ * <p>Learn more about our mission.</p>
1307
+ * </div>
1308
+ * ),
1309
+ * });
1310
+ * }
1311
+ *
1312
+ * const alepha = Alepha.create()
1313
+ * .with(AlephaReact)
1314
+ * .with(AppRoutes);
1315
+ *
1316
+ * run(alepha);
1317
+ * ```
1318
+ *
1319
+ * **Dynamic Routes with Parameters:**
1320
+ * ```tsx
1321
+ * class UserRoutes {
1322
+ * userProfile = $page({
1323
+ * path: "/users/:id",
1324
+ * schema: {
1325
+ * params: t.object({
1326
+ * id: t.string(),
1327
+ * }),
1328
+ * },
1329
+ * resolve: async ({ params }) => {
1330
+ * // Fetch user data server-side
1331
+ * const user = await getUserById(params.id);
1332
+ * return { user };
1333
+ * },
1334
+ * head: ({ user }) => ({
1335
+ * title: `${user.name} - Profile`,
1336
+ * description: `View ${user.name}'s profile`,
1337
+ * }),
1338
+ * component: ({ user }) => (
1339
+ * <div>
1340
+ * <h1>{user.name}</h1>
1341
+ * <p>Email: {user.email}</p>
1342
+ * </div>
1343
+ * ),
1344
+ * });
1345
+ *
1346
+ * userSettings = $page({
1347
+ * path: "/users/:id/settings",
1348
+ * schema: {
1349
+ * params: t.object({
1350
+ * id: t.string(),
1351
+ * }),
1352
+ * },
1353
+ * component: ({ params }) => (
1354
+ * <UserSettings userId={params.id} />
1355
+ * ),
1356
+ * });
1357
+ * }
1358
+ * ```
1359
+ *
1360
+ * **Static Generation:**
1361
+ * ```tsx
1362
+ * class BlogRoutes {
1363
+ * blogPost = $page({
1364
+ * path: "/blog/:slug",
1365
+ * schema: {
1366
+ * params: t.object({
1367
+ * slug: t.string(),
1368
+ * }),
1369
+ * },
1370
+ * static: {
1371
+ * entries: [
1372
+ * { params: { slug: "getting-started" } },
1373
+ * { params: { slug: "advanced-features" } },
1374
+ * { params: { slug: "deployment" } },
1375
+ * ],
1376
+ * },
1377
+ * resolve: ({ params }) => {
1378
+ * const post = getBlogPost(params.slug);
1379
+ * return { post };
1380
+ * },
1381
+ * component: ({ post }) => (
1382
+ * <article>
1383
+ * <h1>{post.title}</h1>
1384
+ * <div>{post.content}</div>
1385
+ * </article>
1386
+ * ),
1387
+ * });
1388
+ * }
1389
+ * ```
1242
1390
  *
1243
1391
  * @see {@link $page}
1244
1392
  * @module alepha.react
@@ -1250,5 +1398,5 @@ var AlephaReact = class {
1250
1398
  __bind($page, AlephaReact);
1251
1399
 
1252
1400
  //#endregion
1253
- export { $page, AlephaReact, ClientOnly_default as ClientOnly, ErrorBoundary_default as ErrorBoundary, Link_default as Link, NestedView_default as NestedView, PageDescriptorProvider, ReactBrowserProvider, ReactServerProvider, RedirectionError, RouterContext, RouterHookApi, RouterLayerContext, isPageRoute, useActive, useAlepha, useClient, useInject, useQueryParams, useRouter, useRouterEvents, useRouterState };
1401
+ export { $page, AlephaReact, ClientOnly_default as ClientOnly, ErrorBoundary_default as ErrorBoundary, Link_default as Link, NestedView_default as NestedView, NotFoundPage as NotFound, PageDescriptorProvider, ReactBrowserProvider, ReactServerProvider, RedirectionError, RouterContext, RouterHookApi, RouterLayerContext, isPageRoute, useActive, useAlepha, useClient, useInject, useQueryParams, useRouter, useRouterEvents, useRouterState };
1254
1402
  //# sourceMappingURL=index.js.map