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.
- package/README.md +1 -1
- package/build/api/hooks/helpers.d.ts +5 -0
- package/build/api/hooks/helpers.d.ts.map +1 -0
- package/build/api/hooks/helpers.js +4 -0
- package/build/api/hooks/helpers.js.map +1 -0
- package/build/api/hooks/index.d.ts +3 -0
- package/build/api/hooks/index.d.ts.map +1 -0
- package/build/api/hooks/index.js +3 -0
- package/build/api/hooks/index.js.map +1 -0
- package/build/api/hooks/types.d.ts +11 -0
- package/build/api/hooks/types.d.ts.map +1 -0
- package/build/api/hooks/types.js +2 -0
- package/build/api/hooks/types.js.map +1 -0
- package/build/api/vite/plugins/core.d.ts +1 -0
- package/build/api/vite/plugins/core.d.ts.map +1 -1
- package/build/api/vite/plugins/core.js +27 -0
- package/build/api/vite/plugins/core.js.map +1 -1
- package/build/exports/polen.d.ts +1 -0
- package/build/exports/polen.d.ts.map +1 -1
- package/build/exports/polen.js +1 -0
- package/build/exports/polen.js.map +1 -1
- package/build/exports/radix-ui/react-icons.d.ts +2 -0
- package/build/exports/radix-ui/react-icons.d.ts.map +1 -0
- package/build/exports/radix-ui/react-icons.js +4 -0
- package/build/exports/radix-ui/react-icons.js.map +1 -0
- package/build/exports/radix-ui/themes.d.ts +2 -0
- package/build/exports/radix-ui/themes.d.ts.map +1 -0
- package/build/exports/radix-ui/themes.js +4 -0
- package/build/exports/radix-ui/themes.js.map +1 -0
- package/build/template/components/navbar/DefaultNavbar.d.ts +4 -0
- package/build/template/components/navbar/DefaultNavbar.d.ts.map +1 -0
- package/build/template/components/navbar/DefaultNavbar.js +10 -0
- package/build/template/components/navbar/DefaultNavbar.js.map +1 -0
- package/build/template/components/navbar/Item.d.ts +7 -0
- package/build/template/components/navbar/Item.d.ts.map +1 -0
- package/build/template/components/navbar/Item.js +6 -0
- package/build/template/components/navbar/Item.js.map +1 -0
- package/build/template/routes/root.d.ts.map +1 -1
- package/build/template/routes/root.js +12 -6
- package/build/template/routes/root.js.map +1 -1
- package/package.json +7 -1
- package/src/api/hooks/helpers.ts +5 -0
- package/src/api/hooks/index.ts +2 -0
- package/src/api/hooks/types.ts +8 -0
- package/src/api/vite/plugins/core.ts +30 -0
- package/src/exports/polen.ts +1 -0
- package/src/exports/radix-ui/react-icons.ts +3 -0
- package/src/exports/radix-ui/themes.ts +3 -0
- package/src/lib/path-map/$.test.ts +2 -2
- package/src/lib/schema-lifecycle/$.test.ts +1 -1
- package/src/template/components/navbar/DefaultNavbar.tsx +22 -0
- package/src/template/components/navbar/Item.tsx +11 -0
- package/src/template/routes/root.tsx +25 -29
- 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/) · [
|
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 @@
|
|
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 @@
|
|
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 @@
|
|
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 @@
|
|
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 @@
|
|
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;
|
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":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAE,YAAY,EAAmB,MAAM,qBAAqB,CAAA;AACnE,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAChC,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAA;AAGxE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAA;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,MAAM,mBAAmB,GAAG,YAAY,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAA;AACnE,MAAM,6BAA6B,GAAG,YAAY,CAAC,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAC,CAAA;AACxF,MAAM,CAAC,MAAM,aAAa,GAAG,YAAY,CAAC,CAAC,SAAS,EAAE,gBAAgB,CAAC,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAA;AACzG,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC,CAAC,SAAS,EAAE,kBAAkB,CAAC,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAA;
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../../src/api/vite/plugins/core.ts"],"names":[],"mappings":"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"}
|
package/build/exports/polen.d.ts
CHANGED
@@ -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"}
|
package/build/exports/polen.js
CHANGED
@@ -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 @@
|
|
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 @@
|
|
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 @@
|
|
1
|
+
{"version":3,"file":"themes.d.ts","sourceRoot":"","sources":["../../../src/exports/radix-ui/themes.ts"],"names":[],"mappings":"AAEA,cAAc,kBAAkB,CAAA"}
|
@@ -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 @@
|
|
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 @@
|
|
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 @@
|
|
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":"
|
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
|
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:
|
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":";
|
1
|
+
{"version":3,"file":"root.js","sourceRoot":"","sources":["../../../src/template/routes/root.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "polen",
|
3
|
-
"version": "0.11.0-next.
|
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": [
|
@@ -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
|
]
|
package/src/exports/polen.ts
CHANGED
@@ -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
|
38
|
-
|
39
|
-
|
40
|
-
|
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
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
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
|
|