polen 0.8.0-next.5 → 0.8.0-next.7

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.
@@ -1 +1 @@
1
- {"version":3,"file":"load-config.d.ts","sourceRoot":"","sources":["../../src/api/load-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AAEzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAgB,KAAK,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAG/E,eAAO,MAAM,UAAU,GAAU,MAAM;IACrC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAA;IACnB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,YAAY,CAAC,WAAW,CAAA;CACrC,KAAG,OAAO,CAAC,uBAAuB,CA4ClC,CAAA"}
1
+ {"version":3,"file":"load-config.d.ts","sourceRoot":"","sources":["../../src/api/load-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AAEzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAgB,KAAK,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAG/E,eAAO,MAAM,UAAU,GAAU,MAAM;IACrC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAA;IACnB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,YAAY,CAAC,WAAW,CAAA;CACrC,KAAG,OAAO,CAAC,uBAAuB,CA2ClC,CAAA"}
@@ -13,7 +13,6 @@ export const loadConfig = async (args) => {
13
13
  // since its via CLI, no Vite bundle context, maybe we can use the new nodejs flags for parsing TS...
14
14
  // or just use tsx
15
15
  const loaded = await Vite.loadConfigFromFile(env, configFilePath, dir, undefined, logger);
16
- // console.log(`wtf??`, args)
17
16
  let config;
18
17
  if (loaded) {
19
18
  // hack: do one read
@@ -1 +1 @@
1
- {"version":3,"file":"load-config.js","sourceRoot":"","sources":["../../src/api/load-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AACzC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAE1C,OAAO,EAAE,YAAY,EAAgC,MAAM,oBAAoB,CAAA;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAEzC,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,IAIhC,EAAoC,EAAE;IACrC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;IACpB,MAAM,GAAG,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IAEjE,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAA;IAElE,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;QACrC,OAAO,MAAM,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC3C,CAAC;IAED,uFAAuF;IACvF,qGAAqG;IACrG,kBAAkB;IAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAC1C,GAAG,EACH,cAAc,EACd,GAAG,EACH,SAAS,EACT,MAAM,CACP,CAAA;IAED,6BAA6B;IAC7B,IAAI,MAA+B,CAAA;IACnC,IAAI,MAAM,EAAE,CAAC;QACX,oBAAoB;QACpB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAiC,CAAA;QACxD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAA;QAClC,MAAM,GAAG,MAAM,YAAY,CAAC;YAC1B,GAAG,KAAK;YACR,KAAK,EAAE;gBACL,GAAG,KAAK,EAAE,KAAK;gBACf,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK;aACzB;YACD,QAAQ,EAAE;gBACR,GAAG,KAAK,EAAE,QAAQ;gBAClB,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ;aAC5B;SACF,CAAC,CAAA;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC7C,CAAC;IACD,eAAe;IAEf,OAAO,MAAM,CAAA;AACf,CAAC,CAAA"}
1
+ {"version":3,"file":"load-config.js","sourceRoot":"","sources":["../../src/api/load-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AACzC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAE1C,OAAO,EAAE,YAAY,EAAgC,MAAM,oBAAoB,CAAA;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAEzC,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,IAIhC,EAAoC,EAAE;IACrC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;IACpB,MAAM,GAAG,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IAEjE,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAA;IAElE,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;QACrC,OAAO,MAAM,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC3C,CAAC;IAED,uFAAuF;IACvF,qGAAqG;IACrG,kBAAkB;IAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAC1C,GAAG,EACH,cAAc,EACd,GAAG,EACH,SAAS,EACT,MAAM,CACP,CAAA;IAED,IAAI,MAA+B,CAAA;IACnC,IAAI,MAAM,EAAE,CAAC;QACX,oBAAoB;QACpB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAiC,CAAA;QACxD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAA;QAClC,MAAM,GAAG,MAAM,YAAY,CAAC;YAC1B,GAAG,KAAK;YACR,KAAK,EAAE;gBACL,GAAG,KAAK,EAAE,KAAK;gBACf,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK;aACzB;YACD,QAAQ,EAAE;gBACR,GAAG,KAAK,EAAE,QAAQ;gBAClB,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ;aAC5B;SACF,CAAC,CAAA;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC7C,CAAC;IACD,eAAe;IAEf,OAAO,MAAM,CAAA;AACf,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../src/api/vite/plugins/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AAS9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAW/D,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,WAAW,CAAC,WAAW,EAAE,CAAA;CACjC;AAED,eAAO,MAAM,IAAI,GAAI,QAAQ,YAAY,CAAC,MAAM,KAAG,IAAI,CAAC,YAAY,EA6PnE,CAAA"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../src/api/vite/plugins/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AAgB9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAW/D,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,WAAW,CAAC,WAAW,EAAE,CAAA;CACjC;AAED,eAAO,MAAM,IAAI,GAAI,QAAQ,YAAY,CAAC,MAAM,KAAG,IAAI,CAAC,YAAY,EA4OnE,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { FileRouter } from '#lib/file-router/index.js';
2
2
  import { ViteVirtual } from '#lib/vite-virtual/index.js';
3
3
  import mdx from '@mdx-js/rollup';
4
- import { Cache, Json, Path, Str } from '@wollybeard/kit';
4
+ import { Cache, Idx, Json, Path, Str } from '@wollybeard/kit';
5
5
  import jsesc from 'jsesc';
6
6
  import remarkGfm from 'remark-gfm';
7
7
  import { superjson } from '../../../singletons/superjson.js';
@@ -159,31 +159,18 @@ export const Core = (config) => {
159
159
  //
160
160
  // ━━ Build Sidebar
161
161
  //
162
- const sidebar = {};
162
+ const sidebarIndex = {};
163
163
  for (const dirPath of topDirsPaths) {
164
164
  const childPages = pagesScanResult.routes.filter(page => FileRouter.routeIsSubOf(page, dirPath));
165
- const sidebarItems = [];
166
- // ━ Pages in this dir become sidebar items
167
- for (const childPage of childPages) {
168
- const childPageRelative = FileRouter.makeRelativeUnsafe(childPage, dirPath);
169
- if (FileRouter.routeIsRootLevel(childPageRelative)) {
170
- // We elide root from items. Root represents this whole group of items.
171
- continue;
172
- }
173
- if (FileRouter.routeIsTopLevel(childPageRelative)) {
174
- const pathExp = FileRouter.routeToPathExpression(childPage);
175
- const relativePathExp = FileRouter.routeToPathExpression(childPageRelative);
176
- const title = Str.titlizeSlug(relativePathExp);
177
- sidebarItems.push({ pathExp, title });
178
- }
179
- // TODO: Handle nested directories in phase 3
180
- }
181
- sidebar[FileRouter.pathToExpression(dirPath)] = sidebarItems;
165
+ sidebarIndex[FileRouter.pathToExpression(dirPath)] = buildSidebar(childPages, dirPath);
182
166
  }
167
+ //
168
+ // ━━ Put It All together
169
+ //
183
170
  const projectData = {
184
171
  schema,
185
172
  siteNavigationItems,
186
- sidebar,
173
+ sidebarIndex,
187
174
  faviconPath: `/logo.svg`,
188
175
  pagesScanResult: pagesScanResult,
189
176
  paths: config.paths.project,
@@ -235,4 +222,80 @@ export const Core = (config) => {
235
222
  },
236
223
  ];
237
224
  };
225
+ /**
226
+ * Helper function to build sidebar items recursively
227
+ */
228
+ const buildSidebar = (pages, basePath) => {
229
+ const navs = [];
230
+ const sections = Idx.create({ toKey: (item) => item.pathExp });
231
+ // Items
232
+ for (const page of pages) {
233
+ const pageRelative = FileRouter.makeRelativeUnsafe(page, basePath);
234
+ if (FileRouter.routeIsRootLevel(pageRelative)) {
235
+ continue;
236
+ }
237
+ if (FileRouter.routeIsTopLevel(pageRelative)) {
238
+ // Section (index)
239
+ if (FileRouter.routeIsFromIndexFile(pageRelative)) {
240
+ const sectionPath = page.logical.path;
241
+ const sectionPathExp = FileRouter.pathToExpression(sectionPath);
242
+ let section;
243
+ section = sections.getKey(sectionPathExp);
244
+ if (!section) {
245
+ const sectionTitle = Str.titlizeSlug(FileRouter.pathToExpression(pageRelative.logical.path));
246
+ section = {
247
+ type: `SidebarSection`,
248
+ title: sectionTitle,
249
+ pathExp: sectionPathExp,
250
+ isNavToo: false,
251
+ navs: [],
252
+ };
253
+ sections.set(section);
254
+ }
255
+ section.isNavToo = true;
256
+ continue;
257
+ }
258
+ // Nav
259
+ navs.push(pageToSidebarNav(page, basePath));
260
+ continue;
261
+ }
262
+ // Section (sub-page)
263
+ if (FileRouter.routeIsSubLevel(pageRelative)) {
264
+ const sectionRelativePath = [pageRelative.logical.path[0]];
265
+ const sectionPath = [...basePath, ...sectionRelativePath];
266
+ const sectionPathExp = FileRouter.pathToExpression(sectionPath);
267
+ let section;
268
+ section = sections.getKey(sectionPathExp);
269
+ if (!section) {
270
+ const sectionTitle = Str.titlizeSlug(FileRouter.pathToExpression(sectionRelativePath));
271
+ section = {
272
+ type: `SidebarSection`,
273
+ title: sectionTitle,
274
+ pathExp: sectionPathExp,
275
+ isNavToo: false,
276
+ navs: [],
277
+ };
278
+ sections.set(section);
279
+ }
280
+ section.navs.push(pageToSidebarNav(page, sectionPath));
281
+ }
282
+ }
283
+ const items = [...navs, ...sections.data.array];
284
+ return {
285
+ items,
286
+ };
287
+ };
288
+ /**
289
+ * Helper function to build sidebar items recursively
290
+ */
291
+ const pageToSidebarNav = (page, basePath) => {
292
+ const pagePathExp = FileRouter.routeToPathExpression(page);
293
+ const pageRelative = FileRouter.makeRelativeUnsafe(page, basePath);
294
+ const pageRelativePathExp = FileRouter.routeToPathExpression(pageRelative);
295
+ return {
296
+ type: `SidebarItem`,
297
+ pathExp: pagePathExp,
298
+ title: Str.titlizeSlug(pageRelativePathExp),
299
+ };
300
+ };
238
301
  //# sourceMappingURL=core.js.map
@@ -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,11 +1,36 @@
1
+ /* eslint-disable */
2
+ // @ts-nocheck
1
3
  import { Vite } from '#dep/vite/index.js';
4
+ import { Command } from '@molt/command';
2
5
  import { Err } from '@wollybeard/kit';
6
+ import { z } from 'zod';
3
7
  import { loadConfig } from '../../api/load-config.js';
8
+ const args = Command.create()
9
+ .parameter(`--project -p`,
10
+ // @ts-expect-error
11
+ z.string().optional().describe(`The path to the project directory. Default is CWD (current working directory).`))
12
+ .settings({
13
+ parameters: {
14
+ environment: {
15
+ $default: {
16
+ // todo prfix seting doesn't seem to work with Molt!
17
+ prefix: `POLEN_DEV_`,
18
+ enabled: false,
19
+ },
20
+ },
21
+ },
22
+ })
23
+ .parse();
24
+ const dir = args.project;
4
25
  const config = await loadConfig({
5
26
  env: {
6
27
  command: `serve`,
7
28
  mode: `development`,
8
29
  },
30
+ dir,
31
+ overrides: {
32
+ root: dir,
33
+ },
9
34
  });
10
35
  const viteDevServer = await Err.tryCatch(() => Vite.createServer(config));
11
36
  if (Err.is(viteDevServer)) {
@@ -1 +1 @@
1
- {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../src/cli/commands/dev.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AACzC,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC;IAC9B,GAAG,EAAE;QACH,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,aAAa;KACpB;CACF,CAAC,CAAA;AAEF,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAA;AAEzE,IAAI,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC;IAC1B,yBAAyB;IACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AAED,MAAM,aAAa,CAAC,MAAM,EAAE,CAAA;AAE5B,aAAa,CAAC,SAAS,EAAE,CAAA"}
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../src/cli/commands/dev.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,cAAc;AACd,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AACrC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE;KAC1B,SAAS,CACR,cAAc;AACd,mBAAmB;AACnB,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gFAAgF,CAAC,CACjH;KACA,QAAQ,CAAC;IACR,UAAU,EAAE;QACV,WAAW,EAAE;YACX,QAAQ,EAAE;gBACR,oDAAoD;gBACpD,MAAM,EAAE,YAAY;gBACpB,OAAO,EAAE,KAAK;aACf;SACF;KACF;CACF,CAAC;KACD,KAAK,EAAE,CAAA;AAEV,MAAM,GAAG,GAAG,IAAI,CAAC,OAAiB,CAAA;AAElC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC;IAC9B,GAAG,EAAE;QACH,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,aAAa;KACpB;IACD,GAAG;IACH,SAAS,EAAE;QACT,IAAI,EAAE,GAAG;KACV;CACF,CAAC,CAAA;AAEF,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAA;AAEzE,IAAI,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC;IAC1B,yBAAyB;IACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AAED,MAAM,aAAa,CAAC,MAAM,EAAE,CAAA;AAE5B,aAAa,CAAC,SAAS,EAAE,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sidebar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../../src/lib/file-router/sidebar.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sidebar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar.js","sourceRoot":"","sources":["../../../src/lib/file-router/sidebar.ts"],"names":[],"mappings":""}
@@ -4,7 +4,7 @@ import type { Schema } from './api/schema/index.js';
4
4
  export interface ProjectData {
5
5
  schema: null | Schema.Schema;
6
6
  siteNavigationItems: SiteNavigationItem[];
7
- sidebar: Sidebar;
7
+ sidebarIndex: SidebarIndex;
8
8
  faviconPath: string;
9
9
  paths: Configurator.Config[`paths`][`project`];
10
10
  pagesScanResult: FileRouter.ScanResult;
@@ -19,12 +19,23 @@ export interface SiteNavigationItem {
19
19
  title: string;
20
20
  pathExp: string;
21
21
  }
22
+ export interface SidebarIndex {
23
+ [pathExpression: string]: Sidebar;
24
+ }
22
25
  export interface Sidebar {
23
- [navPath: string]: SidebarItem[];
26
+ items: SidebarItem[];
27
+ }
28
+ export type SidebarItem = SidebarNav | SidebarSection;
29
+ export interface SidebarNav {
30
+ type: `SidebarItem`;
31
+ title: string;
32
+ pathExp: string;
24
33
  }
25
- export interface SidebarItem {
34
+ export interface SidebarSection {
35
+ type: `SidebarSection`;
26
36
  title: string;
27
37
  pathExp: string;
28
- children?: SidebarItem[];
38
+ isNavToo: boolean;
39
+ navs: SidebarNav[];
29
40
  }
30
41
  //# sourceMappingURL=project-data.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"project-data.d.ts","sourceRoot":"","sources":["../src/project-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAEnD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,CAAA;IAC5B,mBAAmB,EAAE,kBAAkB,EAAE,CAAA;IACzC,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAA;IAC9C,eAAe,EAAE,UAAU,CAAC,UAAU,CAAA;IACtC,MAAM,EAAE;QACN,MAAM,EAAE;YACN,SAAS,EAAE,MAAM,CAAA;YACjB,KAAK,EAAE,MAAM,CAAA;SACd,CAAA;KACF,CAAA;CACF;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,CAAA;CACjC;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAA;CACzB"}
1
+ {"version":3,"file":"project-data.d.ts","sourceRoot":"","sources":["../src/project-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAEnD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,CAAA;IAC5B,mBAAmB,EAAE,kBAAkB,EAAE,CAAA;IACzC,YAAY,EAAE,YAAY,CAAA;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAA;IAC9C,eAAe,EAAE,UAAU,CAAC,UAAU,CAAA;IACtC,MAAM,EAAE;QACN,MAAM,EAAE;YACN,SAAS,EAAE,MAAM,CAAA;YACjB,KAAK,EAAE,MAAM,CAAA;SACd,CAAA;KACF,CAAA;CACF;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAA;CAClC;AAED,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,WAAW,EAAE,CAAA;CACrB;AAED,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,cAAc,CAAA;AAErD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,aAAa,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,gBAAgB,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,OAAO,CAAA;IACjB,IAAI,EAAE,UAAU,EAAE,CAAA;CACnB"}
@@ -1,8 +1,4 @@
1
- export interface SidebarItem {
2
- title: string;
3
- pathExp: string;
4
- children?: SidebarItem[];
5
- }
1
+ import type { SidebarItem } from '../../project-data.js';
6
2
  interface SidebarProps {
7
3
  items: SidebarItem[];
8
4
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../../src/template/components/Sidebar.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAA;CACzB;AAED,UAAU,YAAY;IACpB,KAAK,EAAE,WAAW,EAAE,CAAA;CACrB;AAED,eAAO,MAAM,OAAO,GAAI,WAAW,YAAY,gCAuB9C,CAAA"}
1
+ {"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../../src/template/components/Sidebar.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAA8B,MAAM,uBAAuB,CAAA;AAEpF,UAAU,YAAY;IACpB,KAAK,EAAE,WAAW,EAAE,CAAA;CACrB;AAED,eAAO,MAAM,OAAO,GAAI,WAAW,YAAY,gCAyB9C,CAAA"}
@@ -1,23 +1,31 @@
1
+ import { ChevronDownIcon, ChevronRightIcon } from '@radix-ui/react-icons';
1
2
  import { Box, Flex, Text } from '@radix-ui/themes';
3
+ import { useState } from 'react';
2
4
  import { Link, useLocation } from 'react-router';
3
5
  export const Sidebar = ({ items }) => {
4
6
  const location = useLocation();
5
7
  return (<Box style={{
6
8
  width: `240px`,
9
+ minWidth: `240px`,
10
+ flexShrink: 0,
7
11
  borderRight: `1px solid var(--gray-3)`,
8
12
  height: `100%`,
9
13
  paddingRight: `var(--space-4)`,
10
14
  }}>
11
15
  <Flex direction='column' gap='1'>
12
- {items.map((item) => (<SidebarItem key={item.pathExp} item={item} currentPathExp={location.pathname}/>))}
16
+ {items.map((item) => (<SidebarItemComponent key={item.pathExp} item={item} currentPathExp={location.pathname}/>))}
13
17
  </Flex>
14
18
  </Box>);
15
19
  };
16
- const SidebarItem = ({ item, currentPathExp: currentPath, level = 0 }) => {
17
- const isActive = currentPath === item.pathExp;
18
- const hasChildren = item.children && item.children.length > 0;
19
- return (<>
20
- <Link to={item.pathExp} style={{
20
+ const SidebarItemComponent = ({ item, currentPathExp, level = 0 }) => {
21
+ if (item.type === `SidebarItem`) {
22
+ return <SidebarNavItem nav={item} currentPathExp={currentPathExp} level={level}/>;
23
+ }
24
+ return <SidebarSectionItem section={item} currentPathExp={currentPathExp} level={level}/>;
25
+ };
26
+ const SidebarNavItem = ({ nav, currentPathExp, level }) => {
27
+ const isActive = currentPathExp === nav.pathExp;
28
+ return (<Link to={nav.pathExp} style={{
21
29
  textDecoration: `none`,
22
30
  color: isActive ? `var(--accent-11)` : `var(--gray-12)`,
23
31
  padding: `var(--space-2) var(--space-3)`,
@@ -35,12 +43,65 @@ const SidebarItem = ({ item, currentPathExp: currentPath, level = 0 }) => {
35
43
  e.currentTarget.style.backgroundColor = `transparent`;
36
44
  }
37
45
  }}>
38
- <Text size='2' weight={isActive ? `medium` : `regular`}>
39
- {item.title}
40
- </Text>
41
- </Link>
42
- {hasChildren && (<Flex direction='column' gap='1'>
43
- {item.children.map((child) => (<SidebarItem key={child.pathExp} item={child} currentPathExp={currentPath} level={level + 1}/>))}
46
+ <Text size='2' weight={isActive ? `medium` : `regular`}>
47
+ {nav.title}
48
+ </Text>
49
+ </Link>);
50
+ };
51
+ const SidebarSectionItem = ({ section, currentPathExp, level }) => {
52
+ const [isExpanded, setIsExpanded] = useState(true);
53
+ const isDirectlyActive = currentPathExp === section.pathExp;
54
+ const hasActiveChild = section.navs.some(nav => currentPathExp === nav.pathExp);
55
+ const isActiveGroup = isDirectlyActive || hasActiveChild;
56
+ return (<>
57
+ <Flex align='center' style={{
58
+ padding: `var(--space-2) var(--space-3)`,
59
+ paddingLeft: `calc(var(--space-3) + ${(level * 16).toString()}px)`,
60
+ borderRadius: `var(--radius-2)`,
61
+ backgroundColor: isDirectlyActive ? `var(--accent-3)` : hasActiveChild ? `var(--accent-2)` : `transparent`,
62
+ transition: `background-color 0.2s ease`,
63
+ }} onMouseEnter={(e) => {
64
+ if (!isActiveGroup) {
65
+ e.currentTarget.style.backgroundColor = `var(--gray-2)`;
66
+ }
67
+ }} onMouseLeave={(e) => {
68
+ if (!isActiveGroup) {
69
+ e.currentTarget.style.backgroundColor = `transparent`;
70
+ }
71
+ }}>
72
+ <Box onClick={(e) => {
73
+ e.stopPropagation();
74
+ console.log(`Chevron clicked!`);
75
+ setIsExpanded(!isExpanded);
76
+ }} style={{
77
+ display: `flex`,
78
+ alignItems: `center`,
79
+ cursor: `pointer`,
80
+ padding: `4px`,
81
+ marginRight: `4px`,
82
+ marginLeft: `-4px`,
83
+ }}>
84
+ {isExpanded ? <ChevronDownIcon /> : <ChevronRightIcon />}
85
+ </Box>
86
+ {section.isNavToo
87
+ ? (<Link to={section.pathExp} style={{
88
+ textDecoration: `none`,
89
+ color: isDirectlyActive ? `var(--accent-11)` : `var(--gray-12)`,
90
+ flex: 1,
91
+ }}>
92
+ <Text size='2' weight={isDirectlyActive ? `bold` : `medium`}>
93
+ {section.title}
94
+ </Text>
95
+ </Link>)
96
+ : (<Text size='2' weight={isDirectlyActive ? `bold` : `medium`} style={{
97
+ flex: 1,
98
+ color: isDirectlyActive ? `var(--accent-11)` : `var(--gray-12)`,
99
+ }}>
100
+ {section.title}
101
+ </Text>)}
102
+ </Flex>
103
+ {isExpanded && (<Flex direction='column' gap='1'>
104
+ {section.navs.map((nav) => (<SidebarNavItem key={nav.pathExp} nav={nav} currentPathExp={currentPathExp} level={level + 1}/>))}
44
105
  </Flex>)}
45
106
  </>);
46
107
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Sidebar.jsx","sourceRoot":"","sources":["../../../src/template/components/Sidebar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Sidebar.jsx","sourceRoot":"","sources":["../../../src/template/components/Sidebar.tsx"],"names":[],"mappings":"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"}
@@ -53,8 +53,8 @@ const Layout = () => {
53
53
  return null;
54
54
  };
55
55
  const currentNavPathExp = getCurrentNavPathExp();
56
- const sidebarItems = currentNavPathExp && PROJECT_DATA.sidebar[currentNavPathExp];
57
- const showSidebar = sidebarItems && sidebarItems.length > 0;
56
+ const sidebar = currentNavPathExp && PROJECT_DATA.sidebarIndex[currentNavPathExp];
57
+ const showSidebar = sidebar && sidebar.items.length > 0;
58
58
  return (<Theme asChild>
59
59
  <Box m='8'>
60
60
  <Flex align='center' gap='8' pb='4' mb='8' style={{
@@ -76,7 +76,7 @@ const Layout = () => {
76
76
  </Flex>
77
77
  {showSidebar
78
78
  ? (<Flex gap='8'>
79
- <Sidebar items={sidebarItems}/>
79
+ <Sidebar items={sidebar.items}/>
80
80
  <Box style={{ flex: 1 }}>
81
81
  <Outlet />
82
82
  </Box>
@@ -1 +1 @@
1
- {"version":3,"file":"root.jsx","sourceRoot":"","sources":["../../../src/template/routes/root.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"root.jsx","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.8.0-next.5",
3
+ "version": "0.8.0-next.7",
4
4
  "type": "module",
5
5
  "description": "A framework for delightful GraphQL developer portals",
6
6
  "author": {
@@ -29,7 +29,6 @@ export const loadConfig = async (args: {
29
29
  logger,
30
30
  )
31
31
 
32
- // console.log(`wtf??`, args)
33
32
  let config: ViteUserConfigWithPolen
34
33
  if (loaded) {
35
34
  // hack: do one read
@@ -3,10 +3,17 @@ import type { Vite } from '#dep/vite/index.js'
3
3
  import { FileRouter } from '#lib/file-router/index.js'
4
4
  import { ViteVirtual } from '#lib/vite-virtual/index.js'
5
5
  import mdx from '@mdx-js/rollup'
6
- import { Cache, Json, Path, Str } from '@wollybeard/kit'
6
+ import { Cache, Idx, Json, Path, Str } from '@wollybeard/kit'
7
7
  import jsesc from 'jsesc'
8
8
  import remarkGfm from 'remark-gfm'
9
- import type { ProjectData, Sidebar, SidebarItem, SiteNavigationItem } from '../../../project-data.js'
9
+ import type {
10
+ ProjectData,
11
+ Sidebar,
12
+ SidebarIndex,
13
+ SidebarNav,
14
+ SidebarSection,
15
+ SiteNavigationItem,
16
+ } from '../../../project-data.js'
10
17
  import { superjson } from '../../../singletons/superjson.js'
11
18
  import type { Configurator } from '../../configurator/index.js'
12
19
  import { SchemaAugmentation } from '../../schema-augmentation/index.js'
@@ -185,38 +192,21 @@ export const Core = (config: Configurator.Config): Vite.PluginOption[] => {
185
192
  // ━━ Build Sidebar
186
193
  //
187
194
 
188
- const sidebar: Sidebar = {}
195
+ const sidebarIndex: SidebarIndex = {}
189
196
 
190
197
  for (const dirPath of topDirsPaths) {
191
198
  const childPages = pagesScanResult.routes.filter(page => FileRouter.routeIsSubOf(page, dirPath))
192
-
193
- const sidebarItems: SidebarItem[] = []
194
-
195
- // ━ Pages in this dir become sidebar items
196
- for (const childPage of childPages) {
197
- const childPageRelative = FileRouter.makeRelativeUnsafe(childPage, dirPath)
198
-
199
- if (FileRouter.routeIsRootLevel(childPageRelative)) {
200
- // We elide root from items. Root represents this whole group of items.
201
- continue
202
- }
203
-
204
- if (FileRouter.routeIsTopLevel(childPageRelative)) {
205
- const pathExp = FileRouter.routeToPathExpression(childPage)
206
- const relativePathExp = FileRouter.routeToPathExpression(childPageRelative)
207
- const title = Str.titlizeSlug(relativePathExp)
208
- sidebarItems.push({ pathExp, title })
209
- }
210
- // TODO: Handle nested directories in phase 3
211
- }
212
-
213
- sidebar[FileRouter.pathToExpression(dirPath)] = sidebarItems
199
+ sidebarIndex[FileRouter.pathToExpression(dirPath)] = buildSidebar(childPages, dirPath)
214
200
  }
215
201
 
202
+ //
203
+ // ━━ Put It All together
204
+ //
205
+
216
206
  const projectData: ProjectData = {
217
207
  schema,
218
208
  siteNavigationItems,
219
- sidebar,
209
+ sidebarIndex,
220
210
  faviconPath: `/logo.svg`,
221
211
  pagesScanResult: pagesScanResult,
222
212
  paths: config.paths.project,
@@ -277,3 +267,94 @@ export const Core = (config: Configurator.Config): Vite.PluginOption[] => {
277
267
  },
278
268
  ]
279
269
  }
270
+
271
+ /**
272
+ * Helper function to build sidebar items recursively
273
+ */
274
+ const buildSidebar = (pages: FileRouter.Route[], basePath: FileRouter.Path): Sidebar => {
275
+ const navs: SidebarNav[] = []
276
+ const sections = Idx.create<SidebarSection, string>({ toKey: (item) => item.pathExp })
277
+
278
+ // Items
279
+ for (const page of pages) {
280
+ const pageRelative = FileRouter.makeRelativeUnsafe(page, basePath)
281
+
282
+ if (FileRouter.routeIsRootLevel(pageRelative)) {
283
+ continue
284
+ }
285
+
286
+ if (FileRouter.routeIsTopLevel(pageRelative)) {
287
+ // Section (index)
288
+ if (FileRouter.routeIsFromIndexFile(pageRelative)) {
289
+ const sectionPath = page.logical.path
290
+ const sectionPathExp = FileRouter.pathToExpression(sectionPath)
291
+
292
+ let section: SidebarSection | undefined
293
+ section = sections.getKey(sectionPathExp)
294
+
295
+ if (!section) {
296
+ const sectionTitle = Str.titlizeSlug(FileRouter.pathToExpression(pageRelative.logical.path))
297
+ section = {
298
+ type: `SidebarSection`,
299
+ title: sectionTitle,
300
+ pathExp: sectionPathExp,
301
+ isNavToo: false,
302
+ navs: [],
303
+ }
304
+
305
+ sections.set(section)
306
+ }
307
+ section.isNavToo = true
308
+ continue
309
+ }
310
+
311
+ // Nav
312
+ navs.push(pageToSidebarNav(page, basePath))
313
+ continue
314
+ }
315
+
316
+ // Section (sub-page)
317
+ if (FileRouter.routeIsSubLevel(pageRelative)) {
318
+ const sectionRelativePath = [pageRelative.logical.path[0]]
319
+ const sectionPath = [...basePath, ...sectionRelativePath]
320
+ const sectionPathExp = FileRouter.pathToExpression(sectionPath)
321
+
322
+ let section: SidebarSection | undefined
323
+ section = sections.getKey(sectionPathExp)
324
+
325
+ if (!section) {
326
+ const sectionTitle = Str.titlizeSlug(FileRouter.pathToExpression(sectionRelativePath))
327
+ section = {
328
+ type: `SidebarSection`,
329
+ title: sectionTitle,
330
+ pathExp: sectionPathExp,
331
+ isNavToo: false,
332
+ navs: [],
333
+ }
334
+ sections.set(section)
335
+ }
336
+ section.navs.push(pageToSidebarNav(page, sectionPath))
337
+ }
338
+ }
339
+
340
+ const items = [...navs, ...sections.data.array]
341
+
342
+ return {
343
+ items,
344
+ }
345
+ }
346
+
347
+ /**
348
+ * Helper function to build sidebar items recursively
349
+ */
350
+ const pageToSidebarNav = (page: FileRouter.Route, basePath: FileRouter.Path): SidebarNav => {
351
+ const pagePathExp = FileRouter.routeToPathExpression(page)
352
+ const pageRelative = FileRouter.makeRelativeUnsafe(page, basePath)
353
+ const pageRelativePathExp = FileRouter.routeToPathExpression(pageRelative)
354
+
355
+ return {
356
+ type: `SidebarItem`,
357
+ pathExp: pagePathExp,
358
+ title: Str.titlizeSlug(pageRelativePathExp),
359
+ }
360
+ }
@@ -1,12 +1,41 @@
1
+ /* eslint-disable */
2
+ // @ts-nocheck
1
3
  import { Vite } from '#dep/vite/index.js'
4
+ import { Command } from '@molt/command'
2
5
  import { Err } from '@wollybeard/kit'
6
+ import { z } from 'zod'
3
7
  import { loadConfig } from '../../api/load-config.js'
4
8
 
9
+ const args = Command.create()
10
+ .parameter(
11
+ `--project -p`,
12
+ // @ts-expect-error
13
+ z.string().optional().describe(`The path to the project directory. Default is CWD (current working directory).`),
14
+ )
15
+ .settings({
16
+ parameters: {
17
+ environment: {
18
+ $default: {
19
+ // todo prfix seting doesn't seem to work with Molt!
20
+ prefix: `POLEN_DEV_`,
21
+ enabled: false,
22
+ },
23
+ },
24
+ },
25
+ })
26
+ .parse()
27
+
28
+ const dir = args.project as string
29
+
5
30
  const config = await loadConfig({
6
31
  env: {
7
32
  command: `serve`,
8
33
  mode: `development`,
9
34
  },
35
+ dir,
36
+ overrides: {
37
+ root: dir,
38
+ },
10
39
  })
11
40
 
12
41
  const viteDevServer = await Err.tryCatch(() => Vite.createServer(config))
File without changes
@@ -5,7 +5,7 @@ import type { Schema } from './api/schema/index.js'
5
5
  export interface ProjectData {
6
6
  schema: null | Schema.Schema
7
7
  siteNavigationItems: SiteNavigationItem[]
8
- sidebar: Sidebar
8
+ sidebarIndex: SidebarIndex
9
9
  faviconPath: string
10
10
  paths: Configurator.Config[`paths`][`project`]
11
11
  pagesScanResult: FileRouter.ScanResult
@@ -22,12 +22,26 @@ export interface SiteNavigationItem {
22
22
  pathExp: string
23
23
  }
24
24
 
25
+ export interface SidebarIndex {
26
+ [pathExpression: string]: Sidebar
27
+ }
28
+
25
29
  export interface Sidebar {
26
- [navPath: string]: SidebarItem[]
30
+ items: SidebarItem[]
31
+ }
32
+
33
+ export type SidebarItem = SidebarNav | SidebarSection
34
+
35
+ export interface SidebarNav {
36
+ type: `SidebarItem`
37
+ title: string
38
+ pathExp: string
27
39
  }
28
40
 
29
- export interface SidebarItem {
41
+ export interface SidebarSection {
42
+ type: `SidebarSection`
30
43
  title: string
31
44
  pathExp: string
32
- children?: SidebarItem[]
45
+ isNavToo: boolean
46
+ navs: SidebarNav[]
33
47
  }
@@ -1,11 +1,8 @@
1
+ import { ChevronDownIcon, ChevronRightIcon } from '@radix-ui/react-icons'
1
2
  import { Box, Flex, Text } from '@radix-ui/themes'
3
+ import { useState } from 'react'
2
4
  import { Link, useLocation } from 'react-router'
3
-
4
- export interface SidebarItem {
5
- title: string
6
- pathExp: string
7
- children?: SidebarItem[]
8
- }
5
+ import type { SidebarItem, SidebarNav, SidebarSection } from '../../project-data.js'
9
6
 
10
7
  interface SidebarProps {
11
8
  items: SidebarItem[]
@@ -18,6 +15,8 @@ export const Sidebar = ({ items }: SidebarProps) => {
18
15
  <Box
19
16
  style={{
20
17
  width: `240px`,
18
+ minWidth: `240px`,
19
+ flexShrink: 0,
21
20
  borderRight: `1px solid var(--gray-3)`,
22
21
  height: `100%`,
23
22
  paddingRight: `var(--space-4)`,
@@ -25,7 +24,7 @@ export const Sidebar = ({ items }: SidebarProps) => {
25
24
  >
26
25
  <Flex direction='column' gap='1'>
27
26
  {items.map((item) => (
28
- <SidebarItem
27
+ <SidebarItemComponent
29
28
  key={item.pathExp}
30
29
  item={item}
31
30
  currentPathExp={location.pathname}
@@ -36,52 +35,146 @@ export const Sidebar = ({ items }: SidebarProps) => {
36
35
  )
37
36
  }
38
37
 
39
- interface SidebarItemProps {
38
+ interface SidebarItemComponentProps {
40
39
  item: SidebarItem
41
40
  currentPathExp: string
42
41
  level?: number
43
42
  }
44
43
 
45
- const SidebarItem = ({ item, currentPathExp: currentPath, level = 0 }: SidebarItemProps) => {
46
- const isActive = currentPath === item.pathExp
47
- const hasChildren = item.children && item.children.length > 0
44
+ const SidebarItemComponent = ({ item, currentPathExp, level = 0 }: SidebarItemComponentProps) => {
45
+ if (item.type === `SidebarItem`) {
46
+ return <SidebarNavItem nav={item} currentPathExp={currentPathExp} level={level} />
47
+ }
48
+
49
+ return <SidebarSectionItem section={item} currentPathExp={currentPathExp} level={level} />
50
+ }
51
+
52
+ interface SidebarNavItemProps {
53
+ nav: SidebarNav
54
+ currentPathExp: string
55
+ level: number
56
+ }
57
+
58
+ const SidebarNavItem = ({ nav, currentPathExp, level }: SidebarNavItemProps) => {
59
+ const isActive = currentPathExp === nav.pathExp
60
+
61
+ return (
62
+ <Link
63
+ to={nav.pathExp}
64
+ style={{
65
+ textDecoration: `none`,
66
+ color: isActive ? `var(--accent-11)` : `var(--gray-12)`,
67
+ padding: `var(--space-2) var(--space-3)`,
68
+ paddingLeft: `calc(var(--space-3) + ${(level * 16).toString()}px)`,
69
+ borderRadius: `var(--radius-2)`,
70
+ display: `block`,
71
+ backgroundColor: isActive ? `var(--accent-3)` : `transparent`,
72
+ transition: `background-color 0.2s ease, color 0.2s ease`,
73
+ }}
74
+ onMouseEnter={(e) => {
75
+ if (!isActive) {
76
+ e.currentTarget.style.backgroundColor = `var(--gray-2)`
77
+ }
78
+ }}
79
+ onMouseLeave={(e) => {
80
+ if (!isActive) {
81
+ e.currentTarget.style.backgroundColor = `transparent`
82
+ }
83
+ }}
84
+ >
85
+ <Text size='2' weight={isActive ? `medium` : `regular`}>
86
+ {nav.title}
87
+ </Text>
88
+ </Link>
89
+ )
90
+ }
91
+
92
+ interface SidebarSectionItemProps {
93
+ section: SidebarSection
94
+ currentPathExp: string
95
+ level: number
96
+ }
97
+
98
+ const SidebarSectionItem = ({ section, currentPathExp, level }: SidebarSectionItemProps) => {
99
+ const [isExpanded, setIsExpanded] = useState(true)
100
+ const isDirectlyActive = currentPathExp === section.pathExp
101
+ const hasActiveChild = section.navs.some(nav => currentPathExp === nav.pathExp)
102
+ const isActiveGroup = isDirectlyActive || hasActiveChild
48
103
 
49
104
  return (
50
105
  <>
51
- <Link
52
- to={item.pathExp}
106
+ <Flex
107
+ align='center'
53
108
  style={{
54
- textDecoration: `none`,
55
- color: isActive ? `var(--accent-11)` : `var(--gray-12)`,
56
109
  padding: `var(--space-2) var(--space-3)`,
57
110
  paddingLeft: `calc(var(--space-3) + ${(level * 16).toString()}px)`,
58
111
  borderRadius: `var(--radius-2)`,
59
- display: `block`,
60
- backgroundColor: isActive ? `var(--accent-3)` : `transparent`,
61
- transition: `background-color 0.2s ease, color 0.2s ease`,
112
+ backgroundColor: isDirectlyActive ? `var(--accent-3)` : hasActiveChild ? `var(--accent-2)` : `transparent`,
113
+ transition: `background-color 0.2s ease`,
62
114
  }}
63
115
  onMouseEnter={(e) => {
64
- if (!isActive) {
116
+ if (!isActiveGroup) {
65
117
  e.currentTarget.style.backgroundColor = `var(--gray-2)`
66
118
  }
67
119
  }}
68
120
  onMouseLeave={(e) => {
69
- if (!isActive) {
121
+ if (!isActiveGroup) {
70
122
  e.currentTarget.style.backgroundColor = `transparent`
71
123
  }
72
124
  }}
73
125
  >
74
- <Text size='2' weight={isActive ? `medium` : `regular`}>
75
- {item.title}
76
- </Text>
77
- </Link>
78
- {hasChildren && (
126
+ <Box
127
+ onClick={(e) => {
128
+ e.stopPropagation()
129
+ console.log(`Chevron clicked!`)
130
+ setIsExpanded(!isExpanded)
131
+ }}
132
+ style={{
133
+ display: `flex`,
134
+ alignItems: `center`,
135
+ cursor: `pointer`,
136
+ padding: `4px`,
137
+ marginRight: `4px`,
138
+ marginLeft: `-4px`,
139
+ }}
140
+ >
141
+ {isExpanded ? <ChevronDownIcon /> : <ChevronRightIcon />}
142
+ </Box>
143
+ {section.isNavToo
144
+ ? (
145
+ <Link
146
+ to={section.pathExp}
147
+ style={{
148
+ textDecoration: `none`,
149
+ color: isDirectlyActive ? `var(--accent-11)` : `var(--gray-12)`,
150
+ flex: 1,
151
+ }}
152
+ >
153
+ <Text size='2' weight={isDirectlyActive ? `bold` : `medium`}>
154
+ {section.title}
155
+ </Text>
156
+ </Link>
157
+ )
158
+ : (
159
+ <Text
160
+ size='2'
161
+ weight={isDirectlyActive ? `bold` : `medium`}
162
+ style={{
163
+ flex: 1,
164
+ color: isDirectlyActive ? `var(--accent-11)` : `var(--gray-12)`,
165
+ }}
166
+ >
167
+ {section.title}
168
+ </Text>
169
+ )}
170
+ </Flex>
171
+ {isExpanded && (
79
172
  <Flex direction='column' gap='1'>
80
- {item.children!.map((child) => (
81
- <SidebarItem
82
- key={child.pathExp}
83
- item={child}
84
- currentPathExp={currentPath}
173
+ {section.navs.map((nav) => (
174
+ <SidebarNavItem
175
+ key={nav.pathExp}
176
+ nav={nav}
177
+ currentPathExp={currentPathExp}
85
178
  level={level + 1}
86
179
  />
87
180
  ))}
@@ -70,8 +70,8 @@ const Layout = () => {
70
70
  }
71
71
 
72
72
  const currentNavPathExp = getCurrentNavPathExp()
73
- const sidebarItems = currentNavPathExp && PROJECT_DATA.sidebar[currentNavPathExp]
74
- const showSidebar = sidebarItems && sidebarItems.length > 0
73
+ const sidebar = currentNavPathExp && PROJECT_DATA.sidebarIndex[currentNavPathExp]
74
+ const showSidebar = sidebar && sidebar.items.length > 0
75
75
 
76
76
  return (
77
77
  <Theme asChild>
@@ -107,7 +107,7 @@ const Layout = () => {
107
107
  {showSidebar
108
108
  ? (
109
109
  <Flex gap='8'>
110
- <Sidebar items={sidebarItems} />
110
+ <Sidebar items={sidebar.items} />
111
111
  <Box style={{ flex: 1 }}>
112
112
  <Outlet />
113
113
  </Box>