|
4 | 4 | import type { AtomProps } from '@vuetify/0'
|
5 | 5 |
|
6 | 6 | const { as = 'nav' } = defineProps<AtomProps>()
|
| 7 | +
|
| 8 | + const navs = [ |
| 9 | + { |
| 10 | + name: 'Introduction', |
| 11 | + children: [ |
| 12 | + { name: 'Welcome', to: '/introduction/welcome' }, |
| 13 | + { name: 'Frequently Asked', to: '/introduction/frequently-asked' }, |
| 14 | + { name: 'Contributing', to: '/introduction/contributing' }, |
| 15 | + ], |
| 16 | + }, |
| 17 | + { divider: true }, |
| 18 | + { |
| 19 | + name: 'Guide', |
| 20 | + children: [ |
| 21 | + { name: 'Installation', to: '/guide/installation' }, |
| 22 | + { name: 'Structure', to: '/guide/structure' }, |
| 23 | + { name: 'Framework core', to: '/guide/framework-core' }, |
| 24 | + { name: 'Composables', to: '/guide/composables' }, |
| 25 | + { name: 'Components', to: '/guide/components' }, |
| 26 | + { name: 'Utilities', to: '/guide/utilities' }, |
| 27 | + { name: 'Plugins', to: '/guide/plugins' }, |
| 28 | + { name: 'Theming', to: '/guide/theming' }, |
| 29 | + { name: 'Accessibility', to: '/guide/accessibility' }, |
| 30 | + ], |
| 31 | + }, |
| 32 | + { divider: true }, |
| 33 | + { |
| 34 | + name: 'Composables', |
| 35 | + to: '/composables', |
| 36 | + children: [ |
| 37 | + { |
| 38 | + name: 'Foundation', |
| 39 | + children: [ |
| 40 | + { name: 'createContext', to: '/composables/foundation/create-context' }, |
| 41 | + { name: 'createTrinity', to: '/composables/foundation/create-trinity' }, |
| 42 | + { name: 'createPlugin', to: '/composables/foundation/create-plugin' }, |
| 43 | + ], |
| 44 | + }, |
| 45 | + { |
| 46 | + name: 'Registration', |
| 47 | + children: [ |
| 48 | + { name: 'useRegistrar', to: '/composables/registration/use-registrar' }, |
| 49 | + { name: 'useTokens', to: '/composables/registration/use-tokens' }, |
| 50 | + ], |
| 51 | + }, |
| 52 | + { |
| 53 | + name: 'Selection', |
| 54 | + children: [ |
| 55 | + { name: 'useFilter', to: '/composables/selection/use-filter' }, |
| 56 | + { name: 'useGroup', to: '/composables/selection/use-group' }, |
| 57 | + { name: 'useSingle', to: '/composables/selection/use-single' }, |
| 58 | + { name: 'useStep', to: '/composables/selection/use-step' }, |
| 59 | + ], |
| 60 | + }, |
| 61 | + { |
| 62 | + name: 'Forms', |
| 63 | + children: [ |
| 64 | + ], |
| 65 | + }, |
| 66 | + { |
| 67 | + name: 'System', |
| 68 | + children: [ |
| 69 | + { name: 'useKeydown', to: '/composables/system/use-keydown' }, |
| 70 | + { name: 'useLogger', to: '/composables/system/use-logger' }, |
| 71 | + ], |
| 72 | + }, |
| 73 | + { |
| 74 | + name: 'Plugins', |
| 75 | + children: [ |
| 76 | + { name: 'useBreakpoints', to: '/composables/plugin/use-breakpoints' }, |
| 77 | + { name: 'useHydration', to: '/composables/plugin/use-hydration' }, |
| 78 | + { name: 'useLocale', to: '/composables/plugin/use-locale' }, |
| 79 | + { name: 'useStorage', to: '/composables/plugin/use-storage' }, |
| 80 | + { name: 'useTheme', to: '/composables/plugin/use-theme' }, |
| 81 | + ], |
| 82 | + }, |
| 83 | + ], |
| 84 | + }, |
| 85 | + { divider: true }, |
| 86 | + { |
| 87 | + name: 'Components', |
| 88 | + to: '/components', |
| 89 | + children: [ |
| 90 | + { name: 'Atom', to: '/components/atom' }, |
| 91 | + { name: 'Avatar', to: '/components/avatar' }, |
| 92 | + { name: 'Breakpoints', to: '/components/breakpoints' }, |
| 93 | + { name: 'Context', to: '/components/context' }, |
| 94 | + { name: 'Hydration', to: '/components/hydration' }, |
| 95 | + { name: 'Popover', to: '/components/popover' }, |
| 96 | + { name: 'Step', to: '/components/step' }, |
| 97 | + { name: 'Theme', to: '/components/theme' }, |
| 98 | + ], |
| 99 | + }, |
| 100 | + { divider: true }, |
| 101 | + { |
| 102 | + name: 'Utilities', |
| 103 | + children: [ |
| 104 | + { name: 'toReactive', to: '/utilities/to-reactive' }, |
| 105 | + ], |
| 106 | + }, |
| 107 | + ] |
7 | 108 | </script>
|
8 | 109 |
|
9 | 110 | <template>
|
10 | 111 | <Atom
|
11 | 112 | :as
|
12 | 113 | class="bg-4 app-nav text-[#e0e0e0] flex flex-col h-[100vh] fixed w-[220px] overflow-y-auto pb-4"
|
13 | 114 | >
|
14 |
| - <slot /> |
| 115 | + <img |
| 116 | + alt="Vuetify0 Logo" |
| 117 | + src="https://cdn.vuetifyjs.com/docs/images/logos/vzero-logo-dark.png" |
| 118 | + > |
| 119 | + |
| 120 | + <ul class="flex gap-2 flex-col"> |
| 121 | + <template v-for="(nav, i) in navs" :key="i"> |
| 122 | + <div v-if="nav.divider" class="px-4"> |
| 123 | + <AppDivider /> |
| 124 | + </div> |
| 125 | + |
| 126 | + <AppNavLink |
| 127 | + v-else |
| 128 | + :children="nav.children" |
| 129 | + class="px-4" |
| 130 | + :to="nav.to" |
| 131 | + > |
| 132 | + {{ nav.name }} |
| 133 | + </AppNavLink> |
| 134 | + </template> |
| 135 | + </ul> |
15 | 136 | </Atom>
|
16 | 137 | </template>
|
17 | 138 |
|
|
0 commit comments