11<script setup lang="ts">
2- import { joinURL } from ' ufo'
3- import type { PackumentVersion , NpmVersionDist , ReadmeResponse } from ' #shared/types'
2+ import type { NpmVersionDist , PackumentVersion , ReadmeResponse } from ' #shared/types'
43import type { JsrPackageInfo } from ' #shared/types/jsr'
54import { assertValidPackageName } from ' #shared/utils/npm'
5+ import { onKeyStroke } from ' @vueuse/core'
6+ import { joinURL } from ' ufo'
67
78definePageMeta ({
89 name: ' package' ,
@@ -11,6 +12,8 @@ definePageMeta({
1112
1213const route = useRoute (' package' )
1314
15+ const router = useRouter ()
16+
1417// Parse package name and optional version from URL
1518// Patterns:
1619// /nuxt → packageName: "nuxt", requestedVersion: null
@@ -311,6 +314,17 @@ useSeoMeta({
311314 description : () => pkg .value ?.description ?? ' ' ,
312315})
313316
317+ onKeyStroke (' .' , () => {
318+ if (pkg .value && displayVersion .value ) {
319+ router .push ({
320+ name: ' code' ,
321+ params: {
322+ path: [pkg .value .name , ' v' , displayVersion .value .version ],
323+ },
324+ })
325+ }
326+ })
327+
314328defineOgImageComponent (' Package' , {
315329 name : () => pkg .value ?.name ?? ' Package' ,
316330 version : () => displayVersion .value ?.version ?? ' ' ,
@@ -656,9 +670,15 @@ defineOgImageComponent('Package', {
656670 params: { path: [...pkg.name.split('/'), 'v', displayVersion.version] },
657671 }"
658672 class =" link-subtle font-mono text-sm inline-flex items-center gap-1.5"
673+ aria-keyshortcuts =" ."
659674 >
660- <span class =" i-carbon-code w-4 h-4" aria-hidden =" true" />
661675 code
676+ <kbd
677+ class =" hidden sm:inline-flex items-center justify-center w-4 h-4 text-xs bg-bg-muted border border-border rounded"
678+ aria-hidden =" true"
679+ >
680+ .
681+ </kbd >
662682 </NuxtLink >
663683 </li >
664684 </ul >
0 commit comments