|
1 |
| -import fs from 'fs'; |
2 |
| -import { DefaultTheme } from "vitepress"; |
3 | 1 | import type { Package } from "custom-elements-manifest";
|
| 2 | +import fs from "fs"; |
| 3 | +import { DefaultTheme } from "vitepress"; |
4 | 4 |
|
5 |
| -const getComponentsDevItems = () => { |
6 |
| - const file = fs.readFileSync('dist/custom-elements.json'); |
| 5 | +const getComponentsDevItems = () => { |
| 6 | + const file = fs.readFileSync("dist/custom-elements.json"); |
7 | 7 | const manifest = JSON.parse(file.toString()) as Package;
|
8 | 8 | return manifest.modules
|
9 |
| - .filter((module) => !!module.declarations?.length) |
10 |
| - .map((module) => { |
| 9 | + .filter(module => !!module.declarations?.length) |
| 10 | + .map(module => { |
11 | 11 | if (!module.exports)
|
12 | 12 | throw new Error(`Module has no export: ${module.path}`);
|
13 | 13 |
|
14 | 14 | const components = module.exports.filter(
|
15 |
| - (exp) => exp.kind === 'custom-element-definition', |
| 15 | + exp => exp.kind === "custom-element-definition", |
16 | 16 | );
|
17 | 17 |
|
18 | 18 | // For now, we assume we have only one custom element per module
|
19 | 19 | const component = components[0];
|
20 | 20 |
|
21 |
| - return { |
22 |
| - link: '/components/' + component.name, |
23 |
| - text: component.name, |
24 |
| - }; |
25 |
| - }); |
26 |
| -} |
| 21 | + return { |
| 22 | + link: "/components/" + component.name, |
| 23 | + text: component.name, |
| 24 | + }; |
| 25 | + }); |
| 26 | +}; |
27 | 27 |
|
28 | 28 | const getSidebarDevContents = (): DefaultTheme.Sidebar => {
|
29 | 29 | return [
|
30 |
| - {text: 'Getting Started', link: '/getting-started'}, |
| 30 | + { text: "Getting Started", link: "/getting-started" }, |
31 | 31 | {
|
32 |
| - text: 'Design System Guidelines', |
33 |
| - base: '/design/', |
34 |
| - link: '/guidelines' |
| 32 | + text: "Design System Guidelines", |
| 33 | + base: "/design/", |
| 34 | + link: "/guidelines", |
35 | 35 | },
|
36 | 36 | {
|
37 |
| - text: 'Components', |
| 37 | + text: "Components", |
38 | 38 | collapsed: false,
|
39 | 39 | items: getComponentsDevItems(),
|
40 | 40 | },
|
41 | 41 | {
|
42 |
| - text: 'API References', |
| 42 | + text: "API References", |
43 | 43 | collapsed: false,
|
44 | 44 | items: [
|
45 |
| - {text: 'CSS Parts', link: '/references/css-parts'}, |
| 45 | + { text: "CSS Parts", link: "/references/css-parts" }, |
46 | 46 | {
|
47 |
| - text: 'Design Tokens', items: [ |
48 |
| - {text: 'Colors', link: '/references/color-tokens'}, |
49 |
| - {text: 'Radius', link: '/references/radius-tokens'}, |
50 |
| - {text: 'Spacing', link: '/references/spacing-tokens'}, |
51 |
| - {text: 'Stroke', link: '/references/stroke-tokens'}, |
52 |
| - {text: 'Typography', link: '/references/typography-tokens'}, |
53 |
| - {text: 'Components', link: '/references/components-tokens'}, |
54 |
| - ] |
| 47 | + text: "Design Tokens", |
| 48 | + items: [ |
| 49 | + { text: "Colors", link: "/references/color-tokens" }, |
| 50 | + { text: "Radius", link: "/references/radius-tokens" }, |
| 51 | + { text: "Spacing", link: "/references/spacing-tokens" }, |
| 52 | + { text: "Stroke", link: "/references/stroke-tokens" }, |
| 53 | + { text: "Typography", link: "/references/typography-tokens" }, |
| 54 | + { text: "Components", link: "/references/components-tokens" }, |
| 55 | + ], |
55 | 56 | },
|
56 | 57 | ],
|
57 | 58 | },
|
58 | 59 | ];
|
59 |
| -} |
| 60 | +}; |
60 | 61 |
|
61 |
| -const getComponentsDesignItems = () => { |
62 |
| - const componentGuidelinesBasePath = 'docs/design/components' |
63 |
| - const files = fs.readdirSync(componentGuidelinesBasePath) |
64 |
| - .filter((file) => file.endsWith('.md')) |
65 |
| - .map((file) => file.replace('.md', '')); |
66 |
| - return files.map((file) => { |
| 62 | +const getComponentsDesignItems = () => { |
| 63 | + const componentGuidelinesBasePath = "docs/design/components"; |
| 64 | + const files = fs |
| 65 | + .readdirSync(componentGuidelinesBasePath) |
| 66 | + .filter(file => file.endsWith(".md")) |
| 67 | + .map(file => file.replace(".md", "")); |
| 68 | + return files.map(file => { |
67 | 69 | return {
|
68 |
| - link: 'components/' + file, |
| 70 | + link: "components/" + file, |
69 | 71 | text: file,
|
70 | 72 | };
|
71 | 73 | });
|
72 | 74 | };
|
73 | 75 |
|
74 | 76 | const getSidebarDesignContents = (): DefaultTheme.Sidebar => {
|
75 | 77 | return [
|
76 |
| - {text: 'Introduction', link: '/guidelines'}, |
77 |
| - {text: 'Component Guidelines', base: '/design/', items: getComponentsDesignItems()} |
| 78 | + { text: "Introduction", link: "/guidelines" }, |
| 79 | + { |
| 80 | + text: "Component Guidelines", |
| 81 | + base: "/design/", |
| 82 | + items: getComponentsDesignItems(), |
| 83 | + }, |
78 | 84 | ];
|
79 |
| -} |
| 85 | +}; |
80 | 86 |
|
81 | 87 | export default {
|
82 |
| - '/dev/': { base: '/dev/', items: getSidebarDevContents() }, |
83 |
| - '/design/': { base: '/design/', items: getSidebarDesignContents() }, |
84 |
| -} as DefaultTheme.Sidebar |
| 88 | + "/dev/": { base: "/dev/", items: getSidebarDevContents() }, |
| 89 | + "/design/": { base: "/design/", items: getSidebarDesignContents() }, |
| 90 | +} as DefaultTheme.Sidebar; |
0 commit comments