Skip to content

Commit 7a7dca8

Browse files
committed
feat: add package manager tabs to local connector install command
1 parent f09077a commit 7a7dca8

3 files changed

Lines changed: 43 additions & 27 deletions

File tree

app/components/ConnectorModal.vue

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,14 @@ watch(open, isOpen => {
124124
{{ $t('connector.modal.run_hint') }}
125125
</p>
126126

127+
<div
128+
class="inline-flex items-center gap-1 p-0.5 bg-bg-subtle border border-border-subtle rounded-md"
129+
role="tablist"
130+
:aria-label="$t('package.install.pm_label')"
131+
>
132+
<PackageManagerTabs v-model="selectedPM" />
133+
</div>
134+
127135
<div
128136
class="flex items-center p-3 bg-[#0d0d0d] border border-border rounded-lg font-mono text-sm"
129137
>
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<script setup lang="ts">
2+
const selectedPM = defineModel<PackageManagerId>({ required: true })
3+
</script>
4+
5+
<template>
6+
<ClientOnly>
7+
<button
8+
v-for="pm in packageManagers"
9+
:key="pm.id"
10+
type="button"
11+
role="tab"
12+
:aria-selected="selectedPM === pm.id"
13+
class="px-2 py-1 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"
14+
:class="
15+
selectedPM === pm.id
16+
? 'bg-bg shadow text-fg border-border'
17+
: 'text-fg-subtle hover:text-fg border-transparent'
18+
"
19+
@click="selectedPM = pm.id"
20+
>
21+
{{ pm.label }}
22+
</button>
23+
<template #fallback>
24+
<span
25+
v-for="pm in packageManagers"
26+
:key="pm.id"
27+
class="px-2 py-1 font-mono text-xs rounded"
28+
:class="pm.id === 'npm' ? 'bg-bg-elevated text-fg' : 'text-fg-subtle'"
29+
>
30+
{{ pm.label }}
31+
</span>
32+
</template>
33+
</ClientOnly>
34+
</template>

app/pages/[...package].vue

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -785,33 +785,7 @@ defineOgImageComponent('Package', {
785785
role="tablist"
786786
:aria-label="$t('package.install.pm_label')"
787787
>
788-
<ClientOnly>
789-
<button
790-
v-for="pm in packageManagers"
791-
:key="pm.id"
792-
role="tab"
793-
:aria-selected="selectedPM === pm.id"
794-
class="px-2 py-1 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"
795-
:class="
796-
selectedPM === pm.id
797-
? 'bg-bg shadow text-fg border-border'
798-
: 'text-fg-subtle hover:text-fg border-transparent'
799-
"
800-
@click="selectedPM = pm.id"
801-
>
802-
{{ pm.label }}
803-
</button>
804-
<template #fallback>
805-
<span
806-
v-for="pm in packageManagers"
807-
:key="pm.id"
808-
class="px-2 py-1 font-mono text-xs rounded"
809-
:class="pm.id === 'npm' ? 'bg-bg-elevated text-fg' : 'text-fg-subtle'"
810-
>
811-
{{ pm.label }}
812-
</span>
813-
</template>
814-
</ClientOnly>
788+
<PackageManagerTabs v-model="selectedPM" />
815789
</div>
816790
</div>
817791
<div class="relative group">

0 commit comments

Comments
 (0)