@@ -686,7 +686,7 @@ const showSkeleton = shallowRef(false)
686686 </span >
687687 </h1 >
688688
689- <!-- Floating copy button -->
689+ <!-- Floating copy name button -->
690690 <button
691691 type =" button"
692692 @click =" copyPkgName()"
@@ -709,30 +709,43 @@ const showSkeleton = shallowRef(false)
709709 v-if =" resolvedVersion"
710710 class =" inline-flex items-baseline gap-1.5 font-mono text-base sm:text-lg text-fg-muted shrink-0"
711711 >
712- <!-- Version resolution indicator (e.g., "latest → 4.2.0") -->
713- <template v-if =" requestedVersion && resolvedVersion !== requestedVersion " >
714- <span class =" font-mono text-fg-muted text-sm" dir =" ltr" >{{ requestedVersion }}</span >
715- <span class =" i-carbon:arrow-right rtl-flip w-3 h-3" aria-hidden =" true" />
716- </template >
712+ <div class =" relative inline-flex gap-1.5 items-baseline group" >
713+ <!-- Version resolution indicator (e.g., "latest → 4.2.0") -->
714+ <template v-if =" requestedVersion && resolvedVersion !== requestedVersion " >
715+ <span class =" font-mono text-fg-muted text-sm" dir =" ltr" >
716+ {{ requestedVersion }}
717+ </span >
718+ <span class =" i-carbon:arrow-right rtl-flip w-3 h-3" aria-hidden =" true" />
719+ </template >
717720
718- <LinkBase
719- v-if =" requestedVersion && resolvedVersion !== requestedVersion"
720- :to =" packageRoute(pkg.name, resolvedVersion)"
721- :title =" $t('package.view_permalink')"
722- dir =" ltr"
723- >{{ resolvedVersion }}</LinkBase
724- >
725- <span dir =" ltr" v-else class =" inline-flex items-center gap-1"
726- >v{{ resolvedVersion }}
721+ <LinkBase
722+ v-if =" requestedVersion && resolvedVersion !== requestedVersion"
723+ :to =" packageRoute(pkg.name, resolvedVersion)"
724+ :title =" $t('package.view_permalink')"
725+ dir =" ltr"
726+ >
727+ {{ resolvedVersion }}
728+ </LinkBase >
727729
728- <ButtonBase
729- size =" small"
730- class =" opacity-50 hover:opacity-100 transition-opacity"
731- :classicon =" copiedVersion ? 'i-carbon:checkmark' : 'i-carbon:copy'"
732- :title =" copiedVersion ? $t('common.copied') : $t('package.copy_version')"
730+ <!-- Floating copy version button -->
731+ <button
732+ type =" button"
733733 @click =" copyVersion()"
734- />
735- </span >
734+ class =" absolute z-20 inset-is-0 top-full inline-flex items-center gap-1 px-2 py-1 rounded border text-xs font-mono whitespace-nowrap transition-all duration-150 opacity-0 -translate-y-1 pointer-events-none group-hover:opacity-100 group-hover:translate-y-0 group-hover:pointer-events-auto focus-visible:opacity-100 focus-visible:translate-y-0 focus-visible:pointer-events-auto"
735+ :class =" [
736+ $style.copyButton,
737+ copiedVersion ? 'text-accent bg-accent/10' : 'text-fg-muted bg-bg border-border',
738+ ]"
739+ :aria-label =" copiedVersion ? $t('common.copied') : $t('package.copy_version')"
740+ >
741+ <span
742+ :class =" copiedVersion ? 'i-carbon:checkmark' : 'i-carbon:copy'"
743+ class =" w-3.5 h-3.5"
744+ aria-hidden =" true"
745+ />
746+ {{ copiedVersion ? $t('common.copied') : $t('package.copy_version') }}
747+ </button >
748+ </div >
736749
737750 <template v-if =" hasProvenance (displayVersion )" >
738751 <TooltipApp
0 commit comments