polen 0.11.0-next.13 → 0.11.0-next.14

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.
Files changed (54) hide show
  1. package/README.md +1 -1
  2. package/build/api/hooks/helpers.d.ts +5 -0
  3. package/build/api/hooks/helpers.d.ts.map +1 -0
  4. package/build/api/hooks/helpers.js +4 -0
  5. package/build/api/hooks/helpers.js.map +1 -0
  6. package/build/api/hooks/index.d.ts +3 -0
  7. package/build/api/hooks/index.d.ts.map +1 -0
  8. package/build/api/hooks/index.js +3 -0
  9. package/build/api/hooks/index.js.map +1 -0
  10. package/build/api/hooks/types.d.ts +11 -0
  11. package/build/api/hooks/types.d.ts.map +1 -0
  12. package/build/api/hooks/types.js +2 -0
  13. package/build/api/hooks/types.js.map +1 -0
  14. package/build/api/vite/plugins/core.d.ts +1 -0
  15. package/build/api/vite/plugins/core.d.ts.map +1 -1
  16. package/build/api/vite/plugins/core.js +27 -0
  17. package/build/api/vite/plugins/core.js.map +1 -1
  18. package/build/exports/polen.d.ts +1 -0
  19. package/build/exports/polen.d.ts.map +1 -1
  20. package/build/exports/polen.js +1 -0
  21. package/build/exports/polen.js.map +1 -1
  22. package/build/exports/radix-ui/react-icons.d.ts +2 -0
  23. package/build/exports/radix-ui/react-icons.d.ts.map +1 -0
  24. package/build/exports/radix-ui/react-icons.js +4 -0
  25. package/build/exports/radix-ui/react-icons.js.map +1 -0
  26. package/build/exports/radix-ui/themes.d.ts +2 -0
  27. package/build/exports/radix-ui/themes.d.ts.map +1 -0
  28. package/build/exports/radix-ui/themes.js +4 -0
  29. package/build/exports/radix-ui/themes.js.map +1 -0
  30. package/build/template/components/navbar/DefaultNavbar.d.ts +4 -0
  31. package/build/template/components/navbar/DefaultNavbar.d.ts.map +1 -0
  32. package/build/template/components/navbar/DefaultNavbar.js +10 -0
  33. package/build/template/components/navbar/DefaultNavbar.js.map +1 -0
  34. package/build/template/components/navbar/Item.d.ts +7 -0
  35. package/build/template/components/navbar/Item.d.ts.map +1 -0
  36. package/build/template/components/navbar/Item.js +6 -0
  37. package/build/template/components/navbar/Item.js.map +1 -0
  38. package/build/template/routes/root.d.ts.map +1 -1
  39. package/build/template/routes/root.js +12 -6
  40. package/build/template/routes/root.js.map +1 -1
  41. package/package.json +7 -1
  42. package/src/api/hooks/helpers.ts +5 -0
  43. package/src/api/hooks/index.ts +2 -0
  44. package/src/api/hooks/types.ts +8 -0
  45. package/src/api/vite/plugins/core.ts +30 -0
  46. package/src/exports/polen.ts +1 -0
  47. package/src/exports/radix-ui/react-icons.ts +3 -0
  48. package/src/exports/radix-ui/themes.ts +3 -0
  49. package/src/lib/path-map/$.test.ts +2 -2
  50. package/src/lib/schema-lifecycle/$.test.ts +1 -1
  51. package/src/template/components/navbar/DefaultNavbar.tsx +22 -0
  52. package/src/template/components/navbar/Item.tsx +11 -0
  53. package/src/template/routes/root.tsx +25 -29
  54. package/src/vite-env.d.ts +5 -0
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  **A framework for delightful GraphQL developer portals**
9
9
 
10
- [Website](https://polen.js.org/) · [Demos](https://polen.js.org/overview/demos) · [Get Started](https://polen.js.org/overview/getting-started)
10
+ [Website](https://polen.js.org/) · [Examples](https://polen.js.org/examples/overview) · [Get Started](https://polen.js.org/guides/get-started)
11
11
 
12
12
  </div>
13
13
 
@@ -0,0 +1,5 @@
1
+ import type { NavbarProps } from './types.js';
2
+ export declare const Hooks: {
3
+ navbar: (implementation: (props: NavbarProps) => React.ReactNode) => (props: NavbarProps) => React.ReactNode;
4
+ };
5
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/api/hooks/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,eAAO,MAAM,KAAK;6BACS,CAAC,KAAK,EAAE,WAAW,KAAK,KAAK,CAAC,SAAS,aAA/B,WAAW,KAAK,KAAK,CAAC,SAAS;CACjE,CAAA"}
@@ -0,0 +1,4 @@
1
+ export const Hooks = {
2
+ navbar: (implementation) => implementation,
3
+ };
4
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/api/hooks/helpers.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,MAAM,EAAE,CAAC,cAAuD,EAAE,EAAE,CAAC,cAAc;CACpF,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './helpers.js';
2
+ export * from './types.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './helpers.js';
2
+ export * from './types.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA"}
@@ -0,0 +1,11 @@
1
+ import type { NavbarItem } from '#api/content/navbar';
2
+ export interface NavbarProps {
3
+ items: NavbarItem[];
4
+ Item: React.ComponentType<{
5
+ item: NavbarItem;
6
+ index: number;
7
+ }>;
8
+ Logo: React.ComponentType;
9
+ ThemeToggle: React.ComponentType;
10
+ }
11
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/api/hooks/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAErD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC9D,IAAI,EAAE,KAAK,CAAC,aAAa,CAAA;IACzB,WAAW,EAAE,KAAK,CAAC,aAAa,CAAA;CACjC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/api/hooks/types.ts"],"names":[],"mappings":""}
@@ -4,6 +4,7 @@ import type { Vite } from '#dep/vite/index';
4
4
  import { ViteVirtual } from '#lib/vite-virtual';
5
5
  export declare const viProjectData: ViteVirtual.Identifier.Identifier;
6
6
  export declare const viProjectSchema: ViteVirtual.Identifier.Identifier;
7
+ export declare const viProjectHooks: ViteVirtual.Identifier.Identifier;
7
8
  export interface ProjectRoutesModule {
8
9
  routes: ReactRouter.RouteObject[];
9
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../src/api/vite/plugins/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAK/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAc/C,eAAO,MAAM,aAAa,mCAA+E,CAAA;AACzG,eAAO,MAAM,eAAe,mCAAiF,CAAA;AAE7G,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,WAAW,CAAC,WAAW,EAAE,CAAA;CAClC;AAED,eAAO,MAAM,IAAI,GAAI,QAAQ,MAAM,CAAC,MAAM,KAAG,IAAI,CAAC,YAAY,EAsN7D,CAAA"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../src/api/vite/plugins/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAK/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAc/C,eAAO,MAAM,aAAa,mCAA+E,CAAA;AACzG,eAAO,MAAM,eAAe,mCAAiF,CAAA;AAC7G,eAAO,MAAM,cAAc,mCAAsE,CAAA;AAEjG,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,WAAW,CAAC,WAAW,EAAE,CAAA;CAClC;AAED,eAAO,MAAM,IAAI,GAAI,QAAQ,MAAM,CAAC,MAAM,KAAG,IAAI,CAAC,YAAY,EAmP7D,CAAA"}
@@ -17,6 +17,7 @@ const viTemplateVariables = polenVirtual([`template`, `variables`]);
17
17
  const viTemplateSchemaAugmentations = polenVirtual([`template`, `schema-augmentations`]);
18
18
  export const viProjectData = polenVirtual([`project`, `data.jsonsuper`], { allowPluginProcessing: true });
19
19
  export const viProjectSchema = polenVirtual([`project`, `schema.jsonsuper`], { allowPluginProcessing: true });
20
+ export const viProjectHooks = polenVirtual([`project`, `hooks`], { allowPluginProcessing: true });
20
21
  export const Core = (config) => {
21
22
  let schemaCache = null;
22
23
  const readSchema = async () => {
@@ -203,6 +204,32 @@ export const Core = (config) => {
203
204
  // Return just the JSON string - let the JSON plugin handle the transformation
204
205
  return superjson.stringify(projectData);
205
206
  },
207
+ }, {
208
+ identifier: viProjectHooks,
209
+ async loader() {
210
+ const fs = await import('node:fs/promises');
211
+ const path = await import('node:path');
212
+ const hooksPathTs = path.join(config.paths.project.rootDir, 'hooks.ts');
213
+ const hooksPathTsx = path.join(config.paths.project.rootDir, 'hooks.tsx');
214
+ let hooksPath = null;
215
+ try {
216
+ await fs.access(hooksPathTsx);
217
+ hooksPath = hooksPathTsx;
218
+ }
219
+ catch {
220
+ try {
221
+ await fs.access(hooksPathTs);
222
+ hooksPath = hooksPathTs;
223
+ }
224
+ catch {
225
+ // No hooks file found
226
+ }
227
+ }
228
+ if (!hooksPath) {
229
+ return `export const navbar = null`;
230
+ }
231
+ return `export * from '${hooksPath}'`;
232
+ },
206
233
  }),
207
234
  },
208
235
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../../src/api/vite/plugins/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../../src/api/vite/plugins/core.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export { defineConfig } from '#api/config/config';
2
2
  export { type ConfigInput } from '#api/config/configurator';
3
+ export { Hooks } from '#api/hooks/helpers';
3
4
  export { Main as VitePlugin } from '#api/vite/plugins/main';
4
5
  //# sourceMappingURL=polen.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"polen.d.ts","sourceRoot":"","sources":["../../src/exports/polen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,wBAAwB,CAAA"}
1
+ {"version":3,"file":"polen.d.ts","sourceRoot":"","sources":["../../src/exports/polen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,wBAAwB,CAAA"}
@@ -1,4 +1,5 @@
1
1
  export { defineConfig } from '#api/config/config';
2
2
  export {} from '#api/config/configurator';
3
+ export { Hooks } from '#api/hooks/helpers';
3
4
  export { Main as VitePlugin } from '#api/vite/plugins/main';
4
5
  //# sourceMappingURL=polen.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"polen.js","sourceRoot":"","sources":["../../src/exports/polen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAoB,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,wBAAwB,CAAA"}
1
+ {"version":3,"file":"polen.js","sourceRoot":"","sources":["../../src/exports/polen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAoB,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,wBAAwB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from '@radix-ui/react-icons';
2
+ //# sourceMappingURL=react-icons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-icons.d.ts","sourceRoot":"","sources":["../../../src/exports/radix-ui/react-icons.ts"],"names":[],"mappings":"AAEA,cAAc,uBAAuB,CAAA"}
@@ -0,0 +1,4 @@
1
+ // Re-export Radix UI icons that users might want to use in their navbar
2
+ // This allows users to import from 'polen/radix-ui/react-icons' without installing @radix-ui/react-icons
3
+ export * from '@radix-ui/react-icons';
4
+ //# sourceMappingURL=react-icons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-icons.js","sourceRoot":"","sources":["../../../src/exports/radix-ui/react-icons.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,yGAAyG;AACzG,cAAc,uBAAuB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from '@radix-ui/themes';
2
+ //# sourceMappingURL=themes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"themes.d.ts","sourceRoot":"","sources":["../../../src/exports/radix-ui/themes.ts"],"names":[],"mappings":"AAEA,cAAc,kBAAkB,CAAA"}
@@ -0,0 +1,4 @@
1
+ // Re-export Radix UI themes that Polen uses internally
2
+ // This allows users to import from 'polen/radix-ui/themes' without installing @radix-ui/themes
3
+ export * from '@radix-ui/themes';
4
+ //# sourceMappingURL=themes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"themes.js","sourceRoot":"","sources":["../../../src/exports/radix-ui/themes.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,+FAA+F;AAC/F,cAAc,kBAAkB,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { NavbarProps } from '#api/hooks/types';
2
+ import type React from 'react';
3
+ export declare const DefaultNavbar: React.FC<NavbarProps>;
4
+ //# sourceMappingURL=DefaultNavbar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultNavbar.d.ts","sourceRoot":"","sources":["../../../../src/template/components/navbar/DefaultNavbar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAiB/C,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Flex } from '@radix-ui/themes';
3
+ export const DefaultNavbar = ({ items, Item, Logo, ThemeToggle }) => {
4
+ return (_jsxs(_Fragment, { children: [_jsx(Logo, {}), _jsx(Flex, { direction: 'row', gap: '4', style: { flex: 1 }, children: items
5
+ .filter(item => item.position !== 'right')
6
+ .map((item, index) => _jsx(Item, { item: item, index: index }, index)) }), _jsx(Flex, { direction: 'row', gap: '4', children: items
7
+ .filter(item => item.position === 'right')
8
+ .map((item, index) => _jsx(Item, { item: item, index: index }, index)) }), _jsx(ThemeToggle, {})] }));
9
+ };
10
+ //# sourceMappingURL=DefaultNavbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultNavbar.js","sourceRoot":"","sources":["../../../../src/template/components/navbar/DefaultNavbar.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAGvC,MAAM,CAAC,MAAM,aAAa,GAA0B,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE;IACzF,OAAO,CACL,8BACE,KAAC,IAAI,KAAG,EACR,KAAC,IAAI,IAAC,SAAS,EAAC,KAAK,EAAC,GAAG,EAAC,GAAG,EAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,YAC7C,KAAK;qBACH,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC;qBACzC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAC,IAAI,IAAa,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,IAA/B,KAAK,CAA8B,CAAC,GAClE,EACP,KAAC,IAAI,IAAC,SAAS,EAAC,KAAK,EAAC,GAAG,EAAC,GAAG,YAC1B,KAAK;qBACH,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC;qBACzC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAC,IAAI,IAAa,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,IAA/B,KAAK,CAA8B,CAAC,GAClE,EACP,KAAC,WAAW,KAAG,IACd,CACJ,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,7 @@
1
+ import type { NavbarItem } from '#api/content/navbar';
2
+ import type React from 'react';
3
+ export declare const Item: React.FC<{
4
+ item: NavbarItem;
5
+ index: number;
6
+ }>;
7
+ //# sourceMappingURL=Item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Item.d.ts","sourceRoot":"","sources":["../../../../src/template/components/navbar/Item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAM9D,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Link as PolenLink } from '../Link.js';
3
+ export const Item = ({ item }) => {
4
+ return (_jsx(PolenLink, { color: 'gray', to: item.pathExp, children: item.title }));
5
+ };
6
+ //# sourceMappingURL=Item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Item.js","sourceRoot":"","sources":["../../../../src/template/components/navbar/Item.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,YAAY,CAAA;AAE9C,MAAM,CAAC,MAAM,IAAI,GAAkD,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAC9E,OAAO,CACL,KAAC,SAAS,IAAC,KAAK,EAAC,MAAM,EAAC,EAAE,EAAE,IAAI,CAAC,OAAO,YACrC,IAAI,CAAC,KAAK,GACD,CACb,CAAA;AACH,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../../src/template/routes/root.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAsB1D,eAAO,MAAM,SAAS,+CASrB,CAAA;AAmHD,eAAO,MAAM,IAAI;;;;;CAgBf,CAAA"}
1
+ {"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../../src/template/routes/root.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAyB1D,eAAO,MAAM,SAAS,+CASrB,CAAA;AA2GD,eAAO,MAAM,IAAI;;;;;CAgBf,CAAA"}
@@ -6,10 +6,13 @@ import { Link as LinkReactRouter } from 'react-router';
6
6
  import { Outlet, ScrollRestoration } from 'react-router';
7
7
  import logoSrc from 'virtual:polen/project/assets/logo.svg';
8
8
  import PROJECT_DATA from 'virtual:polen/project/data.jsonsuper';
9
+ import * as projectHooks from 'virtual:polen/project/hooks';
9
10
  import PROJECT_SCHEMA from 'virtual:polen/project/schema.jsonsuper';
10
11
  import { templateVariables } from 'virtual:polen/template/variables';
11
12
  import { Link as PolenLink } from '../components/Link.js';
12
13
  import { Logo } from '../components/Logo.js';
14
+ import { DefaultNavbar } from '../components/navbar/DefaultNavbar.js';
15
+ import { Item } from '../components/navbar/Item.js';
13
16
  import { NotFound } from '../components/NotFound.js';
14
17
  import { ThemeToggle } from '../components/ThemeToggle.js';
15
18
  import { ToastContainer } from '../components/ToastContainer.js';
@@ -23,13 +26,16 @@ export const Component = () => {
23
26
  };
24
27
  const Layout = () => {
25
28
  const { appearance } = useTheme();
26
- const header = (_jsxs(Flex, { align: 'center', gap: { initial: `4`, md: `8` }, pb: '4', mb: { initial: `4`, md: `8` }, style: {
29
+ const navbarProps = {
30
+ items: PROJECT_DATA.navbar,
31
+ Item,
32
+ Logo: () => (_jsx(LinkReactRouter, { to: '/', style: { color: `inherit`, textDecoration: `none` }, children: _jsx(Box, { display: { initial: `block`, md: `block` }, children: _jsx(Logo, { src: logoSrc, title: templateVariables.title, height: 30, showTitle: true }) }) })),
33
+ ThemeToggle,
34
+ };
35
+ const NavbarComponent = projectHooks.navbar || DefaultNavbar;
36
+ const header = (_jsx(Flex, { align: 'center', gap: { initial: `4`, md: `8` }, pb: '4', mb: { initial: `4`, md: `8` }, style: {
27
37
  borderBottom: `1px solid var(--gray-3)`,
28
- }, children: [_jsx(LinkReactRouter, { to: '/', style: { color: `inherit`, textDecoration: `none` }, children: _jsx(Box, { display: { initial: `block`, md: `block` }, children: _jsx(Logo, { src: logoSrc, title: templateVariables.title, height: 30, showTitle: true }) }) }), _jsx(Flex, { direction: 'row', gap: '4', style: { flex: 1 }, children: PROJECT_DATA.navbar
29
- .filter(item => item.position !== 'right')
30
- .map((item, key) => (_jsx(PolenLink, { color: 'gray', to: item.pathExp, children: item.title }, key))) }), _jsx(Flex, { direction: 'row', gap: '4', children: PROJECT_DATA.navbar
31
- .filter(item => item.position === 'right')
32
- .map((item, key) => (_jsx(PolenLink, { color: 'gray', to: item.pathExp, children: item.title }, key))) }), _jsx(ThemeToggle, {})] }));
38
+ }, children: _jsx(NavbarComponent, { ...navbarProps }) }));
33
39
  return (_jsx(Theme, { asChild: true, appearance: appearance, radius: 'none', children: _jsxs(Box, { width: { initial: `100%`, sm: `100%`, md: `var(--container-4)` }, maxWidth: '100vw', my: { initial: `0`, sm: `0`, md: `8` }, mx: 'auto', px: { initial: `4`, sm: `4`, md: `0` }, py: { initial: `4`, sm: `4`, md: `0` }, children: [header, _jsx(Outlet, {}), _jsx(ToastContainer, {})] }) }));
34
40
  };
35
41
  const children = [index, pages];
@@ -1 +1 @@
1
- {"version":3,"file":"root.js","sourceRoot":"","sources":["../../../src/template/routes/root.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,EAAE,MAAM,wCAAwC,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAA;AAE3E,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,IAAI,IAAI,eAAe,EAAE,MAAM,cAAc,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,OAAO,MAAM,uCAAuC,CAAA;AAC3D,OAAO,YAAY,MAAM,sCAAsC,CAAA;AAC/D,OAAO,cAAc,MAAM,wCAAwC,CAAA;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE;IAC5B,OAAO,CACL,8BACE,KAAC,aAAa,cACZ,KAAC,MAAM,KAAG,GACI,EAChB,KAAC,iBAAiB,KAAG,IACpB,CACJ,CAAA;AACH,CAAC,CAAA;AAED,MAAM,MAAM,GAAG,GAAG,EAAE;IAClB,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,EAAE,CAAA;IAEjC,MAAM,MAAM,GAAG,CACb,MAAC,IAAI,IACH,KAAK,EAAC,QAAQ,EACd,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAC9B,EAAE,EAAC,GAAG,EACN,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAC7B,KAAK,EAAE;YACL,YAAY,EAAE,yBAAyB;SACxC,aAED,KAAC,eAAe,IACd,EAAE,EAAC,GAAG,EACN,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,YAEnD,KAAC,GAAG,IAAC,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,YAC7C,KAAC,IAAI,IACH,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,iBAAiB,CAAC,KAAK,EAC9B,MAAM,EAAE,EAAE,EACV,SAAS,EAAE,IAAI,GACf,GACE,GACU,EAClB,KAAC,IAAI,IAAC,SAAS,EAAC,KAAK,EAAC,GAAG,EAAC,GAAG,EAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,YAC7C,YAAY,CAAC,MAAM;qBACjB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC;qBACzC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAClB,KAAC,SAAS,IAAW,KAAK,EAAC,MAAM,EAAC,EAAE,EAAE,IAAI,CAAC,OAAO,YAC/C,IAAI,CAAC,KAAK,IADG,GAAG,CAEP,CACb,CAAC,GACC,EACP,KAAC,IAAI,IAAC,SAAS,EAAC,KAAK,EAAC,GAAG,EAAC,GAAG,YAC1B,YAAY,CAAC,MAAM;qBACjB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC;qBACzC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAClB,KAAC,SAAS,IAAW,KAAK,EAAC,MAAM,EAAC,EAAE,EAAE,IAAI,CAAC,OAAO,YAC/C,IAAI,CAAC,KAAK,IADG,GAAG,CAEP,CACb,CAAC,GACC,EACP,KAAC,WAAW,KAAG,IACV,CACR,CAAA;IAED,OAAO,CACL,KAAC,KAAK,IAAC,OAAO,QAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAC,MAAM,YAClD,MAAC,GAAG,IACF,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,oBAAoB,EAAE,EAChE,QAAQ,EAAC,OAAO,EAChB,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EACtC,EAAE,EAAC,MAAM,EACT,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EACtC,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,aAErC,MAAM,EACP,KAAC,MAAM,KAAG,EACV,KAAC,cAAc,KAAG,IACd,GACA,CACT,CAAA;AACH,CAAC,CAAA;AAED,MAAM,QAAQ,GAA8B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AAE1D,EAAE;AACF,EAAE;AACF,EAAE;AACF,EAAE;AACF,8DAA8D;AAC9D,EAAE;AACF,EAAE;AACF,EAAE;AAEF,IAAI,cAAc,EAAE,CAAC;IACnB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACxB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAC1B,CAAC;AAED,EAAE;AACF,EAAE;AACF,EAAE;AACF,EAAE;AACF,mCAAmC;AACnC,EAAE;AACF,EAAE;AACF,EAAE;AAEF,MAAM,aAAa,GAAG,KAAK,CAAC;IAC1B,EAAE,EAAE,aAAa;IACjB,IAAI,EAAE,GAAG;IACT,SAAS,EAAE,QAAQ;IACnB,MAAM,EAAE;QACN,UAAU,EAAE,GAAG;KAChB;CACF,CAAC,CAAA;AACF,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;AAE5B,EAAE;AACF,EAAE;AACF,EAAE;AACF,8BAA8B;AAC9B,EAAE;AACF,EAAE;AAEF,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAG5E,CAAA;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,CAAC;IACxB,IAAI,EAAE,GAAG;IACT,SAAS;IACT,MAAM,EAAE,YAAY,CAAC,KAAK,IAAI,EAAE;QAC9B,6DAA6D;QAC7D,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YACxB,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;gBACjD,IAAI,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;oBACxB,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,EAAE,CAAA;IACX,CAAC,CAAC;IACF,QAAQ;CACT,CAAC,CAAA"}
1
+ {"version":3,"file":"root.js","sourceRoot":"","sources":["../../../src/template/routes/root.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,wCAAwC,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAA;AAE3E,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,IAAI,IAAI,eAAe,EAAE,MAAM,cAAc,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,OAAO,MAAM,uCAAuC,CAAA;AAC3D,OAAO,YAAY,MAAM,sCAAsC,CAAA;AAC/D,OAAO,KAAK,YAAY,MAAM,6BAA6B,CAAA;AAC3D,OAAO,cAAc,MAAM,wCAAwC,CAAA;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAA;AACrE,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE;IAC5B,OAAO,CACL,8BACE,KAAC,aAAa,cACZ,KAAC,MAAM,KAAG,GACI,EAChB,KAAC,iBAAiB,KAAG,IACpB,CACJ,CAAA;AACH,CAAC,CAAA;AAED,MAAM,MAAM,GAAG,GAAG,EAAE;IAClB,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,EAAE,CAAA;IAEjC,MAAM,WAAW,GAAgB;QAC/B,KAAK,EAAE,YAAY,CAAC,MAAM;QAC1B,IAAI;QACJ,IAAI,EAAE,GAAG,EAAE,CAAC,CACV,KAAC,eAAe,IACd,EAAE,EAAC,GAAG,EACN,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,YAEnD,KAAC,GAAG,IAAC,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,YAC7C,KAAC,IAAI,IACH,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,iBAAiB,CAAC,KAAK,EAC9B,MAAM,EAAE,EAAE,EACV,SAAS,EAAE,IAAI,GACf,GACE,GACU,CACnB;QACD,WAAW;KACZ,CAAA;IAED,MAAM,eAAe,GAAG,YAAY,CAAC,MAAM,IAAI,aAAa,CAAA;IAE5D,MAAM,MAAM,GAAG,CACb,KAAC,IAAI,IACH,KAAK,EAAC,QAAQ,EACd,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAC9B,EAAE,EAAC,GAAG,EACN,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAC7B,KAAK,EAAE;YACL,YAAY,EAAE,yBAAyB;SACxC,YAED,KAAC,eAAe,OAAK,WAAW,GAAI,GAC/B,CACR,CAAA;IAED,OAAO,CACL,KAAC,KAAK,IAAC,OAAO,QAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAC,MAAM,YAClD,MAAC,GAAG,IACF,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,oBAAoB,EAAE,EAChE,QAAQ,EAAC,OAAO,EAChB,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EACtC,EAAE,EAAC,MAAM,EACT,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EACtC,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,aAErC,MAAM,EACP,KAAC,MAAM,KAAG,EACV,KAAC,cAAc,KAAG,IACd,GACA,CACT,CAAA;AACH,CAAC,CAAA;AAED,MAAM,QAAQ,GAA8B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AAE1D,EAAE;AACF,EAAE;AACF,EAAE;AACF,EAAE;AACF,8DAA8D;AAC9D,EAAE;AACF,EAAE;AACF,EAAE;AAEF,IAAI,cAAc,EAAE,CAAC;IACnB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACxB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAC1B,CAAC;AAED,EAAE;AACF,EAAE;AACF,EAAE;AACF,EAAE;AACF,mCAAmC;AACnC,EAAE;AACF,EAAE;AACF,EAAE;AAEF,MAAM,aAAa,GAAG,KAAK,CAAC;IAC1B,EAAE,EAAE,aAAa;IACjB,IAAI,EAAE,GAAG;IACT,SAAS,EAAE,QAAQ;IACnB,MAAM,EAAE;QACN,UAAU,EAAE,GAAG;KAChB;CACF,CAAC,CAAA;AACF,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;AAE5B,EAAE;AACF,EAAE;AACF,EAAE;AACF,8BAA8B;AAC9B,EAAE;AACF,EAAE;AAEF,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAG5E,CAAA;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,CAAC;IACxB,IAAI,EAAE,GAAG;IACT,SAAS;IACT,MAAM,EAAE,YAAY,CAAC,KAAK,IAAI,EAAE;QAC9B,6DAA6D;QAC7D,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YACxB,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;gBACjD,IAAI,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;oBACxB,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,EAAE,CAAA;IACX,CAAC,CAAC;IACF,QAAQ;CACT,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "polen",
3
- "version": "0.11.0-next.13",
3
+ "version": "0.11.0-next.14",
4
4
  "type": "module",
5
5
  "description": "A framework for delightful GraphQL developer portals",
6
6
  "author": {
@@ -192,6 +192,12 @@
192
192
  },
193
193
  "./react/jsx-runtime": {
194
194
  "default": "./build/exports/react/jsx-runtime.js"
195
+ },
196
+ "./radix-ui/themes": {
197
+ "default": "./build/exports/radix-ui/themes.js"
198
+ },
199
+ "./radix-ui/react-icons": {
200
+ "default": "./build/exports/radix-ui/react-icons.js"
195
201
  }
196
202
  },
197
203
  "files": [
@@ -0,0 +1,5 @@
1
+ import type { NavbarProps } from './types.js'
2
+
3
+ export const Hooks = {
4
+ navbar: (implementation: (props: NavbarProps) => React.ReactNode) => implementation,
5
+ }
@@ -0,0 +1,2 @@
1
+ export * from './helpers.js'
2
+ export * from './types.js'
@@ -0,0 +1,8 @@
1
+ import type { NavbarItem } from '#api/content/navbar'
2
+
3
+ export interface NavbarProps {
4
+ items: NavbarItem[]
5
+ Item: React.ComponentType<{ item: NavbarItem; index: number }>
6
+ Logo: React.ComponentType
7
+ ThemeToggle: React.ComponentType
8
+ }
@@ -22,6 +22,7 @@ const viTemplateVariables = polenVirtual([`template`, `variables`])
22
22
  const viTemplateSchemaAugmentations = polenVirtual([`template`, `schema-augmentations`])
23
23
  export const viProjectData = polenVirtual([`project`, `data.jsonsuper`], { allowPluginProcessing: true })
24
24
  export const viProjectSchema = polenVirtual([`project`, `schema.jsonsuper`], { allowPluginProcessing: true })
25
+ export const viProjectHooks = polenVirtual([`project`, `hooks`], { allowPluginProcessing: true })
25
26
 
26
27
  export interface ProjectRoutesModule {
27
28
  routes: ReactRouter.RouteObject[]
@@ -238,6 +239,35 @@ export const Core = (config: Config.Config): Vite.PluginOption[] => {
238
239
  return superjson.stringify(projectData)
239
240
  },
240
241
  },
242
+ {
243
+ identifier: viProjectHooks,
244
+ async loader() {
245
+ const fs = await import('node:fs/promises')
246
+ const path = await import('node:path')
247
+
248
+ const hooksPathTs = path.join(config.paths.project.rootDir, 'hooks.ts')
249
+ const hooksPathTsx = path.join(config.paths.project.rootDir, 'hooks.tsx')
250
+
251
+ let hooksPath = null
252
+ try {
253
+ await fs.access(hooksPathTsx)
254
+ hooksPath = hooksPathTsx
255
+ } catch {
256
+ try {
257
+ await fs.access(hooksPathTs)
258
+ hooksPath = hooksPathTs
259
+ } catch {
260
+ // No hooks file found
261
+ }
262
+ }
263
+
264
+ if (!hooksPath) {
265
+ return `export const navbar = null`
266
+ }
267
+
268
+ return `export * from '${hooksPath}'`
269
+ },
270
+ },
241
271
  ),
242
272
  },
243
273
  ]
@@ -1,3 +1,4 @@
1
1
  export { defineConfig } from '#api/config/config'
2
2
  export { type ConfigInput } from '#api/config/configurator'
3
+ export { Hooks } from '#api/hooks/helpers'
3
4
  export { Main as VitePlugin } from '#api/vite/plugins/main'
@@ -0,0 +1,3 @@
1
+ // Re-export Radix UI icons that users might want to use in their navbar
2
+ // This allows users to import from 'polen/radix-ui/react-icons' without installing @radix-ui/react-icons
3
+ export * from '@radix-ui/react-icons'
@@ -0,0 +1,3 @@
1
+ // Re-export Radix UI themes that Polen uses internally
2
+ // This allows users to import from 'polen/radix-ui/themes' without installing @radix-ui/themes
3
+ export * from '@radix-ui/themes'
@@ -1,6 +1,6 @@
1
+ import { Path } from '@wollybeard/kit'
1
2
  import * as fc from 'fast-check'
2
3
  import { describe, expect, it } from 'vitest'
3
- import { Path } from '@wollybeard/kit'
4
4
  import { PathMap } from './$.js'
5
5
 
6
6
  describe('PathMap', () => {
@@ -209,7 +209,7 @@ describe('PathMap', () => {
209
209
  // Helper to build absolute paths with proper handling of root base
210
210
  const buildAbsolutePath = (normalizedBase: string, segments: string[]): string => {
211
211
  if (segments.length === 0) return normalizedBase
212
-
212
+
213
213
  // Use the same Path.join logic as the actual implementation
214
214
  return Path.join(normalizedBase, ...segments)
215
215
  }
@@ -136,7 +136,7 @@ describe('create', () => {
136
136
  // Original fields should have lifecycle info
137
137
  expect(lifecycle.data.Trainer.fields.id).toMatchObject({ name: 'id', events: [{ type: 'added', date: date1 }] })
138
138
  expect(lifecycle.data.Trainer.fields.name).toMatchObject({ name: 'name', events: [{ type: 'added', date: date1 }] })
139
-
139
+
140
140
  // New fields without FIELD_ADDED events should NOT have lifecycle info
141
141
  expect(lifecycle.data.Trainer.fields.battleRecord).toBeUndefined()
142
142
  expect(lifecycle.data.Trainer.fields.money).toBeUndefined()
@@ -0,0 +1,22 @@
1
+ import type { NavbarProps } from '#api/hooks/types'
2
+ import { Flex } from '@radix-ui/themes'
3
+ import type React from 'react'
4
+
5
+ export const DefaultNavbar: React.FC<NavbarProps> = ({ items, Item, Logo, ThemeToggle }) => {
6
+ return (
7
+ <>
8
+ <Logo />
9
+ <Flex direction='row' gap='4' style={{ flex: 1 }}>
10
+ {items
11
+ .filter(item => item.position !== 'right')
12
+ .map((item, index) => <Item key={index} item={item} index={index} />)}
13
+ </Flex>
14
+ <Flex direction='row' gap='4'>
15
+ {items
16
+ .filter(item => item.position === 'right')
17
+ .map((item, index) => <Item key={index} item={item} index={index} />)}
18
+ </Flex>
19
+ <ThemeToggle />
20
+ </>
21
+ )
22
+ }
@@ -0,0 +1,11 @@
1
+ import type { NavbarItem } from '#api/content/navbar'
2
+ import type React from 'react'
3
+ import { Link as PolenLink } from '../Link.js'
4
+
5
+ export const Item: React.FC<{ item: NavbarItem; index: number }> = ({ item }) => {
6
+ return (
7
+ <PolenLink color='gray' to={item.pathExp}>
8
+ {item.title}
9
+ </PolenLink>
10
+ )
11
+ }
@@ -1,3 +1,4 @@
1
+ import type { NavbarProps } from '#api/hooks/types'
1
2
  import type { ReactRouter } from '#dep/react-router/index'
2
3
  import { route } from '#lib/react-router-aid/react-router-aid'
3
4
  import { createLoader } from '#lib/react-router-loader/react-router-loader'
@@ -7,10 +8,13 @@ import { Link as LinkReactRouter } from 'react-router'
7
8
  import { Outlet, ScrollRestoration } from 'react-router'
8
9
  import logoSrc from 'virtual:polen/project/assets/logo.svg'
9
10
  import PROJECT_DATA from 'virtual:polen/project/data.jsonsuper'
11
+ import * as projectHooks from 'virtual:polen/project/hooks'
10
12
  import PROJECT_SCHEMA from 'virtual:polen/project/schema.jsonsuper'
11
13
  import { templateVariables } from 'virtual:polen/template/variables'
12
14
  import { Link as PolenLink } from '../components/Link.js'
13
15
  import { Logo } from '../components/Logo.js'
16
+ import { DefaultNavbar } from '../components/navbar/DefaultNavbar.js'
17
+ import { Item } from '../components/navbar/Item.js'
14
18
  import { NotFound } from '../components/NotFound.js'
15
19
  import { ThemeToggle } from '../components/ThemeToggle.js'
16
20
  import { ToastContainer } from '../components/ToastContainer.js'
@@ -34,16 +38,10 @@ export const Component = () => {
34
38
  const Layout = () => {
35
39
  const { appearance } = useTheme()
36
40
 
37
- const header = (
38
- <Flex
39
- align='center'
40
- gap={{ initial: `4`, md: `8` }}
41
- pb='4'
42
- mb={{ initial: `4`, md: `8` }}
43
- style={{
44
- borderBottom: `1px solid var(--gray-3)`,
45
- }}
46
- >
41
+ const navbarProps: NavbarProps = {
42
+ items: PROJECT_DATA.navbar,
43
+ Item,
44
+ Logo: () => (
47
45
  <LinkReactRouter
48
46
  to='/'
49
47
  style={{ color: `inherit`, textDecoration: `none` }}
@@ -57,25 +55,23 @@ const Layout = () => {
57
55
  />
58
56
  </Box>
59
57
  </LinkReactRouter>
60
- <Flex direction='row' gap='4' style={{ flex: 1 }}>
61
- {PROJECT_DATA.navbar
62
- .filter(item => item.position !== 'right')
63
- .map((item, key) => (
64
- <PolenLink key={key} color='gray' to={item.pathExp}>
65
- {item.title}
66
- </PolenLink>
67
- ))}
68
- </Flex>
69
- <Flex direction='row' gap='4'>
70
- {PROJECT_DATA.navbar
71
- .filter(item => item.position === 'right')
72
- .map((item, key) => (
73
- <PolenLink key={key} color='gray' to={item.pathExp}>
74
- {item.title}
75
- </PolenLink>
76
- ))}
77
- </Flex>
78
- <ThemeToggle />
58
+ ),
59
+ ThemeToggle,
60
+ }
61
+
62
+ const NavbarComponent = projectHooks.navbar || DefaultNavbar
63
+
64
+ const header = (
65
+ <Flex
66
+ align='center'
67
+ gap={{ initial: `4`, md: `8` }}
68
+ pb='4'
69
+ mb={{ initial: `4`, md: `8` }}
70
+ style={{
71
+ borderBottom: `1px solid var(--gray-3)`,
72
+ }}
73
+ >
74
+ <NavbarComponent {...navbarProps} />
79
75
  </Flex>
80
76
  )
81
77
 
@@ -0,0 +1,5 @@
1
+ /// <reference types="vite/client" />
2
+
3
+ declare module 'virtual:polen/project/hooks' {
4
+ export const navbar: ((props: import('./api/hooks/types').NavbarProps) => React.ReactNode) | null
5
+ }