@voyant-travel/admin 0.111.4 → 0.112.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/dist/app/extension-routes.d.ts +14 -0
- package/dist/app/extension-routes.d.ts.map +1 -1
- package/dist/app/extension-routes.js +27 -0
- package/dist/app/index.d.ts +2 -2
- package/dist/app/index.d.ts.map +1 -1
- package/dist/app/index.js +2 -2
- package/dist/app/router.d.ts +3 -1
- package/dist/app/router.d.ts.map +1 -1
- package/dist/app/router.js +6 -2
- package/dist/extensions.d.ts +20 -0
- package/dist/extensions.d.ts.map +1 -1
- package/dist/extensions.js +31 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/navigation/operator-navigation.d.ts +8 -0
- package/dist/navigation/operator-navigation.d.ts.map +1 -1
- package/dist/navigation/operator-navigation.js +25 -0
- package/package.json +3 -3
|
@@ -87,6 +87,20 @@ export interface AdminExtensionChildRoutesOptions {
|
|
|
87
87
|
* reachable via plain string navigation only.
|
|
88
88
|
*/
|
|
89
89
|
export declare function adminExtensionChildRoutes(extension: AdminExtension, parentRouteId: string, getParentRoute: () => AnyRoute, runtime: AdminExtensionRouteRuntime, options?: AdminExtensionChildRoutesOptions): Array<AnyRoute>;
|
|
90
|
+
/**
|
|
91
|
+
* Build code-based TOP-LEVEL routes for a set of admin extensions' route
|
|
92
|
+
* contributions, at runtime — for DISCOVERED (`src/admin/*`) deployment-local
|
|
93
|
+
* extensions the host's `voyant admin generate` never scanned. Mirrors the
|
|
94
|
+
* generated `admin.routes.generated.tsx` `createRoute` loop, then hand the
|
|
95
|
+
* result to {@link attachAdminExtensionRoutes} alongside the generated routes.
|
|
96
|
+
*
|
|
97
|
+
* Runtime-built routes carry NO typed-link contract (they are invisible to the
|
|
98
|
+
* host's generated typed-link maps), so they are reachable via plain string
|
|
99
|
+
* navigation only — the same trade-off as {@link adminExtensionChildRoutes}.
|
|
100
|
+
* Nested `children` are not built here (top-level pages only); a contribution
|
|
101
|
+
* needs a `page`, `component`, or `redirectTo` to count as implemented.
|
|
102
|
+
*/
|
|
103
|
+
export declare function buildAdminExtensionRoutes(extensions: ReadonlyArray<AdminExtension>, getParentRoute: () => AnyRoute, runtime: AdminExtensionRouteRuntime): Array<AnyRoute>;
|
|
90
104
|
/**
|
|
91
105
|
* Graft code-built extension routes under a file-based parent route
|
|
92
106
|
* (typically the workspace layout) and return the tree for `_addFileTypes`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension-routes.d.ts","sourceRoot":"","sources":["../../src/app/extension-routes.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EAOd,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,iBAAiB,EAKvB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAErD;;;;;;;;;;;;;;;;;GAiBG;AAEH,6EAA6E;AAC7E,MAAM,MAAM,0BAA0B,GAAG,iBAAiB,GAAG,CAAC,MAAM,iBAAiB,CAAC,CAAA;AAMtF;;;;;GAKG;AACH,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,kBAAkB,CAAA;IAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC/B;AAED,KAAK,oBAAoB,GAAG,KAAK,CAAC,iBAAiB,GAAG;IACpD,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC9B,CAAA;AAED,MAAM,WAAW,0BAA0B;IACzC,0EAA0E;IAC1E,SAAS,CAAC,EAAE,oBAAoB,CAAA;IAChC,MAAM,EAAE,CAAC,IAAI,EAAE,6BAA6B,KAAK,OAAO,CAAA;IACxD;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IACvB,GAAG,CAAC,EAAE,OAAO,GAAG,WAAW,CAAA;IAC3B;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,gBAAgB,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAA;IAC1C,cAAc,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC,CAAA;CAC9E;AA4ED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,cAAc,EACzB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,0BAA0B,GAClC,0BAA0B,CAG5B;AAkCD,MAAM,WAAW,gCAAgC;IAC/C;;;;;OAKG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CAChC;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,cAAc,EACzB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,QAAQ,EAC9B,OAAO,EAAE,0BAA0B,EACnC,OAAO,GAAE,gCAAqC,GAC7C,KAAK,CAAC,QAAQ,CAAC,CAsBjB;AAgBD;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,SAAS,QAAQ,EACpE,SAAS,EAAE,UAAU,EACrB,WAAW,EAAE,QAAQ,EACrB,eAAe,EAAE,aAAa,CAAC,QAAQ,CAAC,GACvC,UAAU,CAaZ"}
|
|
1
|
+
{"version":3,"file":"extension-routes.d.ts","sourceRoot":"","sources":["../../src/app/extension-routes.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EAOd,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,iBAAiB,EAKvB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAErD;;;;;;;;;;;;;;;;;GAiBG;AAEH,6EAA6E;AAC7E,MAAM,MAAM,0BAA0B,GAAG,iBAAiB,GAAG,CAAC,MAAM,iBAAiB,CAAC,CAAA;AAMtF;;;;;GAKG;AACH,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,kBAAkB,CAAA;IAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC/B;AAED,KAAK,oBAAoB,GAAG,KAAK,CAAC,iBAAiB,GAAG;IACpD,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC9B,CAAA;AAED,MAAM,WAAW,0BAA0B;IACzC,0EAA0E;IAC1E,SAAS,CAAC,EAAE,oBAAoB,CAAA;IAChC,MAAM,EAAE,CAAC,IAAI,EAAE,6BAA6B,KAAK,OAAO,CAAA;IACxD;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IACvB,GAAG,CAAC,EAAE,OAAO,GAAG,WAAW,CAAA;IAC3B;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,gBAAgB,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAA;IAC1C,cAAc,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC,CAAA;CAC9E;AA4ED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,cAAc,EACzB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,0BAA0B,GAClC,0BAA0B,CAG5B;AAkCD,MAAM,WAAW,gCAAgC;IAC/C;;;;;OAKG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CAChC;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,cAAc,EACzB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,QAAQ,EAC9B,OAAO,EAAE,0BAA0B,EACnC,OAAO,GAAE,gCAAqC,GAC7C,KAAK,CAAC,QAAQ,CAAC,CAsBjB;AAgBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,aAAa,CAAC,cAAc,CAAC,EACzC,cAAc,EAAE,MAAM,QAAQ,EAC9B,OAAO,EAAE,0BAA0B,GAClC,KAAK,CAAC,QAAQ,CAAC,CAejB;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,SAAS,QAAQ,EACpE,SAAS,EAAE,UAAU,EACrB,WAAW,EAAE,QAAQ,EACrB,eAAe,EAAE,aAAa,CAAC,QAAQ,CAAC,GACvC,UAAU,CAaZ"}
|
|
@@ -132,6 +132,33 @@ function requireChildImplementation(extension, child) {
|
|
|
132
132
|
}
|
|
133
133
|
return child;
|
|
134
134
|
}
|
|
135
|
+
/**
|
|
136
|
+
* Build code-based TOP-LEVEL routes for a set of admin extensions' route
|
|
137
|
+
* contributions, at runtime — for DISCOVERED (`src/admin/*`) deployment-local
|
|
138
|
+
* extensions the host's `voyant admin generate` never scanned. Mirrors the
|
|
139
|
+
* generated `admin.routes.generated.tsx` `createRoute` loop, then hand the
|
|
140
|
+
* result to {@link attachAdminExtensionRoutes} alongside the generated routes.
|
|
141
|
+
*
|
|
142
|
+
* Runtime-built routes carry NO typed-link contract (they are invisible to the
|
|
143
|
+
* host's generated typed-link maps), so they are reachable via plain string
|
|
144
|
+
* navigation only — the same trade-off as {@link adminExtensionChildRoutes}.
|
|
145
|
+
* Nested `children` are not built here (top-level pages only); a contribution
|
|
146
|
+
* needs a `page`, `component`, or `redirectTo` to count as implemented.
|
|
147
|
+
*/
|
|
148
|
+
export function buildAdminExtensionRoutes(extensions, getParentRoute, runtime) {
|
|
149
|
+
const routes = [];
|
|
150
|
+
for (const extension of extensions) {
|
|
151
|
+
for (const contribution of extension.routes ?? []) {
|
|
152
|
+
routes.push(createRoute({
|
|
153
|
+
getParentRoute,
|
|
154
|
+
path: contribution.path,
|
|
155
|
+
validateSearch: contribution.validateSearch,
|
|
156
|
+
...adminExtensionRouteOptions(extension, contribution.id, runtime),
|
|
157
|
+
}));
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
return routes;
|
|
161
|
+
}
|
|
135
162
|
/**
|
|
136
163
|
* Graft code-built extension routes under a file-based parent route
|
|
137
164
|
* (typically the workspace layout) and return the tree for `_addFileTypes`
|
package/dist/app/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export type { AdminExtensionChildRoutesOptions, AdminExtensionRouteLoaderArgs, AdminExtensionRouteOptions, AdminExtensionRouteRuntime, } from "./extension-routes.js";
|
|
2
|
-
export { adminExtensionChildRoutes, adminExtensionRouteOptions, attachAdminExtensionRoutes, } from "./extension-routes.js";
|
|
2
|
+
export { adminExtensionChildRoutes, adminExtensionRouteOptions, attachAdminExtensionRoutes, buildAdminExtensionRoutes, } from "./extension-routes.js";
|
|
3
3
|
export type { AdminRootErrorBoundaryProps, AdminRootHeadOptions } from "./root.js";
|
|
4
4
|
export { AdminRootErrorBoundary, AdminRootShell, adminRootHead } from "./root.js";
|
|
5
5
|
export type { AdminRouterContext, CreateAdminRouterOptions } from "./router.js";
|
|
6
|
-
export { AdminNotFound, createAdminQueryClient, createAdminRouter } from "./router.js";
|
|
6
|
+
export { AdminNotFound, AdminPendingFallback, createAdminQueryClient, createAdminRouter, } from "./router.js";
|
|
7
7
|
export type { AdminWorkspaceShellProps, AdminWorkspaceShellUser, CreateAdminWorkspaceBeforeLoadOptions, } from "./workspace.js";
|
|
8
8
|
export { AdminRouterLink, AdminWorkspacePendingFallback, AdminWorkspaceShell, createAdminWorkspaceBeforeLoad, defaultAdminWorkspaceUser, } from "./workspace.js";
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/app/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,gCAAgC,EAChC,6BAA6B,EAC7B,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,gCAAgC,EAChC,6BAA6B,EAC7B,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,uBAAuB,CAAA;AAC9B,YAAY,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAClF,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACjF,YAAY,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAC/E,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,aAAa,CAAA;AACpB,YAAY,EACV,wBAAwB,EACxB,uBAAuB,EACvB,qCAAqC,GACtC,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,eAAe,EACf,6BAA6B,EAC7B,mBAAmB,EACnB,8BAA8B,EAC9B,yBAAyB,GAC1B,MAAM,gBAAgB,CAAA"}
|
package/dist/app/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { adminExtensionChildRoutes, adminExtensionRouteOptions, attachAdminExtensionRoutes, } from "./extension-routes.js";
|
|
1
|
+
export { adminExtensionChildRoutes, adminExtensionRouteOptions, attachAdminExtensionRoutes, buildAdminExtensionRoutes, } from "./extension-routes.js";
|
|
2
2
|
export { AdminRootErrorBoundary, AdminRootShell, adminRootHead } from "./root.js";
|
|
3
|
-
export { AdminNotFound, createAdminQueryClient, createAdminRouter } from "./router.js";
|
|
3
|
+
export { AdminNotFound, AdminPendingFallback, createAdminQueryClient, createAdminRouter, } from "./router.js";
|
|
4
4
|
export { AdminRouterLink, AdminWorkspacePendingFallback, AdminWorkspaceShell, createAdminWorkspaceBeforeLoad, defaultAdminWorkspaceUser, } from "./workspace.js";
|
package/dist/app/router.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export declare function createAdminQueryClient(): QueryClient;
|
|
|
13
13
|
export interface CreateAdminRouterOptions<TRouteTree extends AnyRoute> {
|
|
14
14
|
routeTree: TRouteTree;
|
|
15
15
|
queryClient?: QueryClient;
|
|
16
|
+
pendingComponent?: () => ReactNode;
|
|
16
17
|
notFoundComponent?: () => ReactNode;
|
|
17
18
|
}
|
|
18
19
|
/**
|
|
@@ -23,8 +24,9 @@ export interface CreateAdminRouterOptions<TRouteTree extends AnyRoute> {
|
|
|
23
24
|
* SSR dehydrate/hydrate so loader-prefetched queries survive the
|
|
24
25
|
* server→client boundary on routes that opt into SSR.
|
|
25
26
|
*/
|
|
26
|
-
export declare function createAdminRouter<TRouteTree extends AnyRoute>({ routeTree, queryClient, notFoundComponent, }: CreateAdminRouterOptions<TRouteTree>): import("@tanstack/router-core").RouterCore<TRouteTree, "never", false, import("@tanstack/history").RouterHistory, {
|
|
27
|
+
export declare function createAdminRouter<TRouteTree extends AnyRoute>({ routeTree, queryClient, pendingComponent, notFoundComponent, }: CreateAdminRouterOptions<TRouteTree>): import("@tanstack/router-core").RouterCore<TRouteTree, "never", false, import("@tanstack/history").RouterHistory, {
|
|
27
28
|
queryClient: object;
|
|
28
29
|
}>;
|
|
30
|
+
export declare function AdminPendingFallback(): import("react/jsx-runtime").JSX.Element;
|
|
29
31
|
export declare function AdminNotFound(): import("react/jsx-runtime").JSX.Element;
|
|
30
32
|
//# sourceMappingURL=router.d.ts.map
|
package/dist/app/router.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/app/router.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA4C,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAC7F,OAAO,EAAE,KAAK,QAAQ,EAA8C,MAAM,wBAAwB,CAAA;AAWlG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,WAAW,CAAA;CACzB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,WAAW,CAUpD;AAED,MAAM,WAAW,wBAAwB,CAAC,UAAU,SAAS,QAAQ;IACnE,SAAS,EAAE,UAAU,CAAA;IACrB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,iBAAiB,CAAC,EAAE,MAAM,SAAS,CAAA;CACpC;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,SAAS,QAAQ,EAAE,EAC7D,SAAS,EACT,WAAsC,EACtC,iBAAiC,GAClC,EAAE,wBAAwB,CAAC,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/app/router.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA4C,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAC7F,OAAO,EAAE,KAAK,QAAQ,EAA8C,MAAM,wBAAwB,CAAA;AAWlG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,WAAW,CAAA;CACzB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,WAAW,CAUpD;AAED,MAAM,WAAW,wBAAwB,CAAC,UAAU,SAAS,QAAQ;IACnE,SAAS,EAAE,UAAU,CAAA;IACrB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,gBAAgB,CAAC,EAAE,MAAM,SAAS,CAAA;IAClC,iBAAiB,CAAC,EAAE,MAAM,SAAS,CAAA;CACpC;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,SAAS,QAAQ,EAAE,EAC7D,SAAS,EACT,WAAsC,EACtC,gBAAuC,EACvC,iBAAiC,GAClC,EAAE,wBAAwB,CAAC,UAAU,CAAC;iBAawB,MAAM;GAKpE;AAED,wBAAgB,oBAAoB,4CAcnC;AAED,wBAAgB,aAAa,4CAqB5B"}
|
package/dist/app/router.js
CHANGED
|
@@ -3,7 +3,7 @@ import { dehydrate, hydrate, QueryClient } from "@tanstack/react-query";
|
|
|
3
3
|
import { createRouter as createTanStackRouter, Link } from "@tanstack/react-router";
|
|
4
4
|
import { buttonVariants } from "@voyant-travel/ui/components/button";
|
|
5
5
|
import { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, } from "@voyant-travel/ui/components/empty";
|
|
6
|
-
import { SearchX } from "lucide-react";
|
|
6
|
+
import { Loader2, SearchX } from "lucide-react";
|
|
7
7
|
/**
|
|
8
8
|
* QueryClient with the admin defaults: no focus refetch, one retry, and a
|
|
9
9
|
* 30s staleTime that keeps hover-preloaded data fresh long enough for the
|
|
@@ -28,13 +28,14 @@ export function createAdminQueryClient() {
|
|
|
28
28
|
* SSR dehydrate/hydrate so loader-prefetched queries survive the
|
|
29
29
|
* server→client boundary on routes that opt into SSR.
|
|
30
30
|
*/
|
|
31
|
-
export function createAdminRouter({ routeTree, queryClient = createAdminQueryClient(), notFoundComponent = AdminNotFound, }) {
|
|
31
|
+
export function createAdminRouter({ routeTree, queryClient = createAdminQueryClient(), pendingComponent = AdminPendingFallback, notFoundComponent = AdminNotFound, }) {
|
|
32
32
|
return createTanStackRouter({
|
|
33
33
|
routeTree,
|
|
34
34
|
context: { queryClient },
|
|
35
35
|
scrollRestoration: true,
|
|
36
36
|
defaultPreload: "intent",
|
|
37
37
|
defaultPreloadStaleTime: 30_000,
|
|
38
|
+
defaultPendingComponent: pendingComponent,
|
|
38
39
|
defaultNotFoundComponent: notFoundComponent,
|
|
39
40
|
// Cast around Router's ValidateSerializableInput, which is stricter than
|
|
40
41
|
// DehydratedState's recursive `unknown` slots. Runtime payload is
|
|
@@ -46,6 +47,9 @@ export function createAdminRouter({ routeTree, queryClient = createAdminQueryCli
|
|
|
46
47
|
},
|
|
47
48
|
});
|
|
48
49
|
}
|
|
50
|
+
export function AdminPendingFallback() {
|
|
51
|
+
return (_jsx("div", { className: "flex min-h-screen items-center justify-center bg-background p-6", children: _jsxs("div", { className: "flex flex-col items-center gap-4 text-muted-foreground", role: "status", "aria-live": "polite", "aria-label": "Loading admin workspace", children: [_jsx(Loader2, { className: "size-8 animate-spin", "aria-hidden": "true" }), _jsx("span", { className: "text-sm", children: "Loading workspace" })] }) }));
|
|
52
|
+
}
|
|
49
53
|
export function AdminNotFound() {
|
|
50
54
|
return (_jsx("div", { className: "flex min-h-screen items-center justify-center bg-background p-6", children: _jsxs(Empty, { className: "max-w-xl border border-border bg-card", children: [_jsxs(EmptyHeader, { children: [_jsx(EmptyMedia, { variant: "icon", children: _jsx(SearchX, {}) }), _jsx(EmptyTitle, { children: "Page not found" }), _jsx(EmptyDescription, { children: "The page you requested does not exist or is no longer available." })] }), _jsx(EmptyContent, { children: _jsx(Link, { to: "/", className: buttonVariants({ variant: "default" }), children: "Go to dashboard" }) })] }) }));
|
|
51
55
|
}
|
package/dist/extensions.d.ts
CHANGED
|
@@ -201,6 +201,26 @@ export interface AdminExtension {
|
|
|
201
201
|
widgets?: ReadonlyArray<AdminWidgetContribution>;
|
|
202
202
|
}
|
|
203
203
|
export declare function defineAdminExtension<T extends AdminExtension>(extension: T): T;
|
|
204
|
+
/**
|
|
205
|
+
* Discover deployment-local admin extensions from a Vite `import.meta.glob`
|
|
206
|
+
* (eager) of `src/admin/<name>/index.tsx` files — the admin-UI half of the
|
|
207
|
+
* "extend without forking" seam (mirrors `modulesFromGlob`/`extensionsFromGlob`
|
|
208
|
+
* on the API side). Each file's `default` export is an {@link AdminExtension}
|
|
209
|
+
* (wrap it with {@link defineAdminExtension}); append the result to the shell's
|
|
210
|
+
* extension registry so its nav, widgets, and routes auto-compose. Returns the
|
|
211
|
+
* extensions in stable (path-sorted) order; empty until a deployment adds one.
|
|
212
|
+
*
|
|
213
|
+
* Vite compiles `import.meta.glob` to static imports at build time, so this is
|
|
214
|
+
* Cloudflare-Workers-safe (no runtime module resolution).
|
|
215
|
+
*
|
|
216
|
+
* // src/lib/admin-extensions.tsx
|
|
217
|
+
* export const discoveredAdminExtensions = adminExtensionsFromGlob(
|
|
218
|
+
* import.meta.glob("../admin/*\/index.tsx", { eager: true }),
|
|
219
|
+
* )
|
|
220
|
+
*
|
|
221
|
+
* @throws if a matched file has no default export.
|
|
222
|
+
*/
|
|
223
|
+
export declare function adminExtensionsFromGlob(glob: Record<string, unknown>): AdminExtension[];
|
|
204
224
|
/**
|
|
205
225
|
* A route contribution whose `component` is guaranteed present, typed as a
|
|
206
226
|
* function component so it attaches directly to router `component:` options
|
package/dist/extensions.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../src/extensions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../src/extensions.ts"],"names":[],"mappings":"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"}
|
package/dist/extensions.js
CHANGED
|
@@ -13,6 +13,37 @@ export const adminWorkspaceHeaderActionsSlot = "workspace.header.actions";
|
|
|
13
13
|
export function defineAdminExtension(extension) {
|
|
14
14
|
return extension;
|
|
15
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Discover deployment-local admin extensions from a Vite `import.meta.glob`
|
|
18
|
+
* (eager) of `src/admin/<name>/index.tsx` files — the admin-UI half of the
|
|
19
|
+
* "extend without forking" seam (mirrors `modulesFromGlob`/`extensionsFromGlob`
|
|
20
|
+
* on the API side). Each file's `default` export is an {@link AdminExtension}
|
|
21
|
+
* (wrap it with {@link defineAdminExtension}); append the result to the shell's
|
|
22
|
+
* extension registry so its nav, widgets, and routes auto-compose. Returns the
|
|
23
|
+
* extensions in stable (path-sorted) order; empty until a deployment adds one.
|
|
24
|
+
*
|
|
25
|
+
* Vite compiles `import.meta.glob` to static imports at build time, so this is
|
|
26
|
+
* Cloudflare-Workers-safe (no runtime module resolution).
|
|
27
|
+
*
|
|
28
|
+
* // src/lib/admin-extensions.tsx
|
|
29
|
+
* export const discoveredAdminExtensions = adminExtensionsFromGlob(
|
|
30
|
+
* import.meta.glob("../admin/*\/index.tsx", { eager: true }),
|
|
31
|
+
* )
|
|
32
|
+
*
|
|
33
|
+
* @throws if a matched file has no default export.
|
|
34
|
+
*/
|
|
35
|
+
export function adminExtensionsFromGlob(glob) {
|
|
36
|
+
return Object.entries(glob)
|
|
37
|
+
.sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0))
|
|
38
|
+
.map(([path, namespace]) => {
|
|
39
|
+
const declaration = namespace.default;
|
|
40
|
+
if (declaration == null) {
|
|
41
|
+
throw new Error(`[voyant-admin] deployment admin extension "${path}" has no default export — ` +
|
|
42
|
+
"add `export default defineAdminExtension(...)` to its index.tsx");
|
|
43
|
+
}
|
|
44
|
+
return declaration;
|
|
45
|
+
});
|
|
46
|
+
}
|
|
16
47
|
/**
|
|
17
48
|
* Look up a route contribution by id and assert it carries a component.
|
|
18
49
|
*
|
package/dist/index.d.ts
CHANGED
|
@@ -34,11 +34,11 @@ export { TeamSettingsPage, type TeamSettingsPageApi, type TeamSettingsPageProps,
|
|
|
34
34
|
export type { DashboardEmptyAction, DashboardEmptyStateConfig, DashboardEmptyStateKey, DashboardPageProps, } from "./dashboard/dashboard-page.js";
|
|
35
35
|
export { type BookingsAggregates, bookingStatusConfig, buildDashboardSixMonthWindow, buildMonthSeries, DashboardApiError, type DashboardQueryClient, dashboardQueryKeys, type FinanceAggregates, formatCurrency, getDashboardBookingsAggregatesQueryOptions, getDashboardFinanceAggregatesQueryOptions, getDashboardProductsAggregatesQueryOptions, getDashboardSuppliersAggregatesQueryOptions, getStatusColor, monthlyBookingsConfig, type ProductsAggregates, pickPrimaryCurrency, revenueChartConfig, type SuppliersAggregates, } from "./dashboard/dashboard-query-options.js";
|
|
36
36
|
export { DashboardAreaChartSkeleton, DashboardBarChartSkeleton, DashboardKpiRowSkeleton, DashboardKpiSkeleton, DashboardOutstandingInvoicesSkeleton, DashboardPieChartSkeleton, DashboardSkeleton, DashboardUpcomingListSkeleton, } from "./dashboard/dashboard-skeleton.js";
|
|
37
|
-
export { type AdminExtension, type AdminNavigationContribution, type AdminRouteLoaderContext, type AdminRouteMessagesProvider, type AdminRouteMessagesProviderModule, type AdminRouteMessagesProviderProps, type AdminRoutePageComponent, type AdminRoutePageModule, type AdminRoutePageProps, type AdminRouteRuntime, type AdminUiRouteContribution, type AdminWidgetContribution, type AdminWidgetSlot, adminRoutePageModule, adminWorkspaceHeaderActionsSlot, type BindableAdminRoute, createAdminExtensionRegistry, defineAdminExtension, findAdminRouteContribution, type ImplementedAdminRoute, type ResolveAdminNavigationOptions, type ResolveAdminWidgetsOptions, requireAdminRoute, requireImplementedAdminRoute, resolveAdminNavigation, resolveAdminWidgets, } from "./extensions.js";
|
|
37
|
+
export { type AdminExtension, type AdminNavigationContribution, type AdminRouteLoaderContext, type AdminRouteMessagesProvider, type AdminRouteMessagesProviderModule, type AdminRouteMessagesProviderProps, type AdminRoutePageComponent, type AdminRoutePageModule, type AdminRoutePageProps, type AdminRouteRuntime, type AdminUiRouteContribution, type AdminWidgetContribution, type AdminWidgetSlot, adminExtensionsFromGlob, adminRoutePageModule, adminWorkspaceHeaderActionsSlot, type BindableAdminRoute, createAdminExtensionRegistry, defineAdminExtension, findAdminRouteContribution, type ImplementedAdminRoute, type ResolveAdminNavigationOptions, type ResolveAdminWidgetsOptions, requireAdminRoute, requireImplementedAdminRoute, resolveAdminNavigation, resolveAdminWidgets, } from "./extensions.js";
|
|
38
38
|
export { composeLocaleMessageDefinitions, type DeepPartial, formatMessage, type LocaleMessageDefinitions, type LocaleMessageOverrides, MessagesProvider, resolveLocaleMessages, useMessages, } from "./lib/i18n.js";
|
|
39
39
|
export { getDisplayName, getInitials } from "./lib/initials.js";
|
|
40
40
|
export { type AdminDestinationKey, type AdminDestinationNavigator, type AdminDestinationResolvers, type AdminDestinations, type AdminHrefResolver, type AdminNavigateOptions, AdminNavigationProvider, type AdminNavigationProviderProps, useAdminHref, useAdminNavigate, } from "./navigation/destinations.js";
|
|
41
|
-
export { type CreateOperatorAdminNavigationOptions, createOperatorAdminNavigation, type OperatorAdminNavigationIconName, type OperatorAdminNavigationIcons, } from "./navigation/operator-navigation.js";
|
|
41
|
+
export { type CreateOperatorAdminNavigationOptions, createOperatorAdminNavigation, defaultOperatorNavIcons, type OperatorAdminNavigationIconName, type OperatorAdminNavigationIcons, } from "./navigation/operator-navigation.js";
|
|
42
42
|
export { AdminExtensionsProvider, type AdminExtensionsProviderProps, useAdminExtensions, } from "./providers/admin-extensions.js";
|
|
43
43
|
export { AdminProvider, type AdminProviderProps } from "./providers/admin-provider.js";
|
|
44
44
|
export { DEFAULT_ADMIN_LOCALE, DEFAULT_ADMIN_LOCALES, type LocaleContextValue, LocaleProvider, type LocaleProviderProps, resolveAdminLocale, useLocale, } from "./providers/locale.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -37,11 +37,11 @@ export { TeamSettingsPage, } from "./components/team-settings-page.js";
|
|
|
37
37
|
// directly from "@voyant-travel/admin/dashboard/dashboard-page" instead.
|
|
38
38
|
export { bookingStatusConfig, buildDashboardSixMonthWindow, buildMonthSeries, DashboardApiError, dashboardQueryKeys, formatCurrency, getDashboardBookingsAggregatesQueryOptions, getDashboardFinanceAggregatesQueryOptions, getDashboardProductsAggregatesQueryOptions, getDashboardSuppliersAggregatesQueryOptions, getStatusColor, monthlyBookingsConfig, pickPrimaryCurrency, revenueChartConfig, } from "./dashboard/dashboard-query-options.js";
|
|
39
39
|
export { DashboardAreaChartSkeleton, DashboardBarChartSkeleton, DashboardKpiRowSkeleton, DashboardKpiSkeleton, DashboardOutstandingInvoicesSkeleton, DashboardPieChartSkeleton, DashboardSkeleton, DashboardUpcomingListSkeleton, } from "./dashboard/dashboard-skeleton.js";
|
|
40
|
-
export { adminRoutePageModule, adminWorkspaceHeaderActionsSlot, createAdminExtensionRegistry, defineAdminExtension, findAdminRouteContribution, requireAdminRoute, requireImplementedAdminRoute, resolveAdminNavigation, resolveAdminWidgets, } from "./extensions.js";
|
|
40
|
+
export { adminExtensionsFromGlob, adminRoutePageModule, adminWorkspaceHeaderActionsSlot, createAdminExtensionRegistry, defineAdminExtension, findAdminRouteContribution, requireAdminRoute, requireImplementedAdminRoute, resolveAdminNavigation, resolveAdminWidgets, } from "./extensions.js";
|
|
41
41
|
export { composeLocaleMessageDefinitions, formatMessage, MessagesProvider, resolveLocaleMessages, useMessages, } from "./lib/i18n.js";
|
|
42
42
|
export { getDisplayName, getInitials } from "./lib/initials.js";
|
|
43
43
|
export { AdminNavigationProvider, useAdminHref, useAdminNavigate, } from "./navigation/destinations.js";
|
|
44
|
-
export { createOperatorAdminNavigation, } from "./navigation/operator-navigation.js";
|
|
44
|
+
export { createOperatorAdminNavigation, defaultOperatorNavIcons, } from "./navigation/operator-navigation.js";
|
|
45
45
|
export { AdminExtensionsProvider, useAdminExtensions, } from "./providers/admin-extensions.js";
|
|
46
46
|
export { AdminProvider } from "./providers/admin-provider.js";
|
|
47
47
|
export { DEFAULT_ADMIN_LOCALE, DEFAULT_ADMIN_LOCALES, LocaleProvider, resolveAdminLocale, useLocale, } from "./providers/locale.js";
|
|
@@ -2,6 +2,14 @@ import type { OperatorAdminMessages } from "../providers/operator-admin-messages
|
|
|
2
2
|
import type { NavItem } from "../types.js";
|
|
3
3
|
export type OperatorAdminNavigationIconName = "availability" | "bookings" | "catalog" | "channelSync" | "dashboard" | "finance" | "flights" | "legal" | "notifications" | "organizations" | "people" | "products" | "resources" | "settings" | "suppliers";
|
|
4
4
|
export type OperatorAdminNavigationIcons = Partial<Record<OperatorAdminNavigationIconName, NavItem["icon"]>>;
|
|
5
|
+
/**
|
|
6
|
+
* The standard operator nav icon set, shipped by the framework so deployments
|
|
7
|
+
* don't hand-wire lucide imports. Use directly (`icons={defaultOperatorNavIcons}`)
|
|
8
|
+
* or spread to override a single entry
|
|
9
|
+
* (`icons={{ ...defaultOperatorNavIcons, finance: MyIcon }}`). A custom domain
|
|
10
|
+
* supplies its own icon via the override; the standard 15 come from here.
|
|
11
|
+
*/
|
|
12
|
+
export declare const defaultOperatorNavIcons: Record<OperatorAdminNavigationIconName, NavItem["icon"]>;
|
|
5
13
|
export interface CreateOperatorAdminNavigationOptions {
|
|
6
14
|
messages: OperatorAdminMessages["nav"];
|
|
7
15
|
icons?: OperatorAdminNavigationIcons;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operator-navigation.d.ts","sourceRoot":"","sources":["../../src/navigation/operator-navigation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"operator-navigation.d.ts","sourceRoot":"","sources":["../../src/navigation/operator-navigation.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAA;AACpF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1C,MAAM,MAAM,+BAA+B,GACvC,cAAc,GACd,UAAU,GACV,SAAS,GACT,aAAa,GACb,WAAW,GACX,SAAS,GACT,SAAS,GACT,OAAO,GACP,eAAe,GACf,eAAe,GACf,QAAQ,GACR,UAAU,GACV,WAAW,GACX,UAAU,GACV,WAAW,CAAA;AAEf,MAAM,MAAM,4BAA4B,GAAG,OAAO,CAChD,MAAM,CAAC,+BAA+B,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CACzD,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,+BAA+B,EAAE,OAAO,CAAC,MAAM,CAAC,CAgB5F,CAAA;AAED,MAAM,WAAW,oCAAoC;IACnD,QAAQ,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAA;IACtC,KAAK,CAAC,EAAE,4BAA4B,CAAA;CACrC;AAED,wBAAgB,6BAA6B,CAAC,EAC5C,KAAU,EACV,QAAQ,GACT,EAAE,oCAAoC,GAAG,OAAO,EAAE,CA8LlD"}
|
|
@@ -1,3 +1,28 @@
|
|
|
1
|
+
import { Building, Building2, CalendarCheck, CalendarDays, DollarSign, LayoutDashboard, Library, Mail, Package, Plane, Radio, Scale, Settings, Users, Wrench, } from "lucide-react";
|
|
2
|
+
/**
|
|
3
|
+
* The standard operator nav icon set, shipped by the framework so deployments
|
|
4
|
+
* don't hand-wire lucide imports. Use directly (`icons={defaultOperatorNavIcons}`)
|
|
5
|
+
* or spread to override a single entry
|
|
6
|
+
* (`icons={{ ...defaultOperatorNavIcons, finance: MyIcon }}`). A custom domain
|
|
7
|
+
* supplies its own icon via the override; the standard 15 come from here.
|
|
8
|
+
*/
|
|
9
|
+
export const defaultOperatorNavIcons = {
|
|
10
|
+
availability: CalendarDays,
|
|
11
|
+
bookings: CalendarCheck,
|
|
12
|
+
catalog: Library,
|
|
13
|
+
channelSync: Radio,
|
|
14
|
+
dashboard: LayoutDashboard,
|
|
15
|
+
finance: DollarSign,
|
|
16
|
+
flights: Plane,
|
|
17
|
+
legal: Scale,
|
|
18
|
+
notifications: Mail,
|
|
19
|
+
organizations: Building,
|
|
20
|
+
people: Users,
|
|
21
|
+
products: Package,
|
|
22
|
+
resources: Wrench,
|
|
23
|
+
settings: Settings,
|
|
24
|
+
suppliers: Building2,
|
|
25
|
+
};
|
|
1
26
|
export function createOperatorAdminNavigation({ icons = {}, messages, }) {
|
|
2
27
|
return [
|
|
3
28
|
{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@voyant-travel/admin",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.112.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -184,8 +184,8 @@
|
|
|
184
184
|
"@voyant-travel/ui": "^0.106.2"
|
|
185
185
|
},
|
|
186
186
|
"dependencies": {
|
|
187
|
-
"@voyant-travel/
|
|
188
|
-
"@voyant-travel/
|
|
187
|
+
"@voyant-travel/i18n": "^0.106.1",
|
|
188
|
+
"@voyant-travel/react": "^0.104.1"
|
|
189
189
|
},
|
|
190
190
|
"devDependencies": {
|
|
191
191
|
"@tanstack/react-query": "^5.100.11",
|