@@ -4,6 +4,17 @@ import { debounce } from 'perfect-debounce'
44const searchQuery = shallowRef (' ' )
55const searchInputRef = useTemplateRef (' searchInputRef' )
66const { focused : isSearchFocused } = useFocus (searchInputRef )
7+ const frameworks = ref ([
8+ { name: ' nuxt' , package: ' nuxt' },
9+ { name: ' vue' , package: ' vue' },
10+ { name: ' react' , package: ' react' },
11+ { name: ' svelte' , package: ' svelte' },
12+ { name: ' vite' , package: ' vite' },
13+ { name: ' next' , package: ' next' },
14+ { name: ' astro' , package: ' astro' },
15+ { name: ' typescript' , package: ' typescript' },
16+ { name: ' Angular' , package: ' @angular/core' },
17+ ])
718
819async function search() {
920 const query = searchQuery .value .trim ()
@@ -114,18 +125,15 @@ defineOgImageComponent('Default', {
114125 style =" animation-delay : 0.3s "
115126 >
116127 <ul class =" flex flex-wrap items-center justify-center gap-x-6 gap-y-3 list-none m-0 p-0" >
117- <li
118- v-for =" pkg in ['nuxt', 'vue', 'react', 'svelte', 'vite', 'next', 'astro', 'typescript']"
119- :key =" pkg"
120- >
128+ <li v-for =" framework in frameworks" :key =" framework.name" >
121129 <NuxtLink
122- :to =" { name: 'package', params: { package: [pkg ] } }"
130+ :to =" { name: 'package', params: { package: [framework.package ] } }"
123131 class =" link-subtle font-mono text-sm inline-flex items-center gap-2 group"
124132 >
125133 <span
126134 class =" w-1 h-1 rounded-full bg-accent group-hover:bg-fg transition-colors duration-200"
127135 />
128- {{ pkg }}
136+ {{ framework.name }}
129137 </NuxtLink >
130138 </li >
131139 </ul >
0 commit comments