@@ -911,29 +911,41 @@ defineOgImageComponent('Package', {
911911 />
912912 </a >
913913 </h2 >
914- <!-- Package manager tabs -->
915- <div
916- class =" flex items-center gap-1 p-0.5 bg-bg-subtle border border-border-subtle rounded-md overflow-x-auto"
917- role =" tablist"
918- :aria-label =" $t('package.get_started.pm_label')"
919- >
920- <button
921- v-for =" pm in packageManagers"
922- :key =" pm.id"
923- role =" tab"
924- :aria-selected =" selectedPM === pm.id"
925- class =" px-2 py-1.5 font-mono text-xs rounded transition-colors duration-150 border border-solid focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fg/50 inline-flex items-center gap-1.5"
926- :class ="
927- selectedPM === pm.id
928- ? 'bg-bg shadow text-fg border-border'
929- : 'text-fg-subtle hover:text-fg border-transparent'
930- "
931- @click =" selectedPM = pm.id"
914+ <ClientOnly >
915+ <!-- Package manager tabs -->
916+ <div
917+ class =" flex items-center gap-1 p-0.5 bg-bg-subtle border border-border-subtle rounded-md overflow-x-auto"
918+ role =" tablist"
919+ :aria-label =" $t('package.get_started.pm_label')"
932920 >
933- <span class =" inline-block h-3 w-3" :class =" pm.icon" aria-hidden =" true" />
934- {{ pm.label }}
935- </button >
936- </div >
921+ <button
922+ v-for =" pm in packageManagers"
923+ :key =" pm.id"
924+ role =" tab"
925+ :aria-selected =" selectedPM === pm.id"
926+ class =" px-2 py-1.5 font-mono text-xs rounded transition-colors duration-150 border border-solid focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fg/50 inline-flex items-center gap-1.5"
927+ :class ="
928+ selectedPM === pm.id
929+ ? 'bg-bg shadow text-fg border-border'
930+ : 'text-fg-subtle hover:text-fg border-transparent'
931+ "
932+ @click =" selectedPM = pm.id"
933+ >
934+ <span class =" inline-block h-3 w-3" :class =" pm.icon" aria-hidden =" true" />
935+ {{ pm.label }}
936+ </button >
937+ </div >
938+
939+ <template #fallback >
940+ <div
941+ class =" flex items-center gap-1 p-0.5 bg-bg-subtle border border-border-subtle rounded-md overflow-x-auto"
942+ aria-busy =" true"
943+ :aria-label =" $t('package.skeleton.loading')"
944+ >
945+ <div v-for =" pm in packageManagers" :key =" pm.id" class =" skeleton w-16 h-8" />
946+ </div >
947+ </template >
948+ </ClientOnly >
937949 </div >
938950 <div class =" relative group" >
939951 <!-- Terminal-style install command -->
0 commit comments