Skip to content

Commit 5e0f9dd

Browse files
authored
feat(ui): NBadge component (#433)
1 parent 87a0eec commit 5e0f9dd

15 files changed

Lines changed: 48 additions & 58 deletions

File tree

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<template>
2+
<span class="n-badge">
3+
<slot />
4+
</span>
5+
</template>

packages/devtools-ui-kit/src/unocss.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,9 @@ export function unocssPreset(): Preset {
146146
// icon-button
147147
'n-icon-button': 'aspect-1/1 w-1.6em h-1.6em flex items-center justify-center rounded op50 hover:op100 hover:n-bg-active',
148148

149+
// badge
150+
'n-badge': 'bg-context/10 text-context mx-0.5 select-none whitespace-nowrap rounded px-1.5 py-0.5 text-xs',
151+
149152
// loading
150153
'n-loading': 'flex h-full w-full justify-center items-center',
151154
'n-panel-grids': 'n-panel-grids-light dark:n-panel-grids-dark',

packages/devtools/client/components/Badge.vue

Lines changed: 0 additions & 5 deletions
This file was deleted.

packages/devtools/client/components/ComponentDetails.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ const copy = useCopy()
2020
<div flex="~ gap2" px3>
2121
<ComponentName :component="component" />
2222
<NIconButton title="Copy name" flex-none icon="carbon-copy" @click="copy(`<${name}></${name}>`)" />
23-
<Badge
23+
<NBadge
2424
v-if="component.global"
25-
bg-green-400:10 text-green-400
25+
n="green"
2626
title="Registered at runtime as a global component"
2727
v-text="'runtime'"
2828
/>

packages/devtools/client/components/ComponentItem.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ const filePath = computed(() => props.component.filePath || props.component.file
3434
<sup v-if="dependents?.length" ml--1 text-primary>
3535
x{{ dependents?.length }}
3636
</sup>
37-
<Badge
37+
<NBadge
3838
v-if="component.global"
39-
bg-green-400:10 text-green-400
39+
n="green"
4040
title="Registered at runtime as a global component"
4141
v-text="'runtime'"
4242
/>

packages/devtools/client/components/ModuleItemInstall.vue

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,7 @@ const anyObj = {} as any
4747
@click="isInstalled ? null : useModuleAction(item, 'install')"
4848
>
4949
<template v-if="isInstalled" #badge>
50-
<Badge bg-green-400:10 text-green-400>
51-
Installed
52-
</Badge>
50+
<NBadge n="green" v-text="'Installed'" />
5351
<NDropdown v-if="isUninstallable" n="sm green">
5452
<template #trigger="{ click }">
5553
<NIconButton icon="carbon-overflow-menu-vertical" @click="click()" />

packages/devtools/client/components/NpmVersionCheck.vue

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,15 +50,15 @@ async function updateWithConfirm() {
5050
<code v-if="info && showVersion">{{ `v${info.current}` }}</code>
5151
<template v-if="info?.latest">
5252
<button v-if="info.needsUpdate" @click="updateWithConfirm()">
53-
<Badge
54-
bg-green-400:10 text-green-400
53+
<NBadge
54+
n="green"
5555
title="updates available"
5656
v-text="'updates available'"
5757
/>
5858
</button>
59-
<Badge
59+
<NBadge
6060
v-else
61-
bg-gray-400:10 text-gray-400
61+
n="gray"
6262
title="latest"
6363
v-text="'latest'"
6464
/>

packages/devtools/client/components/PluginItem.vue

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,24 +17,24 @@ const shortPath = computed(() => parseReadablePath(props.plugin.src, config.valu
1717
</div>
1818
<FilepathItem :filepath="props.plugin.src" :subpath="true" />
1919
<div>
20-
<Badge
20+
<NBadge
2121
v-if="shortPath.startsWith('#')"
22-
bg-rose-400:10 text-rose
22+
n="rose"
2323
v-text="'virtual'"
2424
/>
25-
<Badge
25+
<NBadge
2626
v-else-if="!shortPath.startsWith('.')"
27-
bg-gray-400:10 text-gray
27+
n="gray"
2828
v-text="'module'"
2929
/>
30-
<Badge
30+
<NBadge
3131
v-if="plugin.mode === 'server'"
32-
bg-teal-400:10 text-teal-400
32+
n="teal"
3333
v-text="'server'"
3434
/>
35-
<Badge
35+
<NBadge
3636
v-if="plugin.mode === 'client'"
37-
bg-orange-400:10 text-orange-400
37+
n="orange"
3838
v-text="'client'"
3939
/>
4040
</div>

packages/devtools/client/components/RoutesTable.vue

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,15 +57,15 @@ function getMiddlewarePath(name: any) {
5757
<tr v-for="item of sorted" :key="item.name" class="group" h-7 border="b dashed transparent hover:base">
5858
<td w-20 pr-1>
5959
<div flex items-center justify-end>
60-
<Badge
60+
<NBadge
6161
v-if="matched.find(m => m.name === item.name)"
62-
bg-green-400:10 text-green-400
62+
n="green"
6363
title="active"
6464
v-text="'active'"
6565
/>
66-
<Badge
66+
<NBadge
6767
v-if="matchedPending.find(m => m.name === item.name)"
68-
bg-teal-400:10 text-teal-400
68+
n="teal"
6969
title="next"
7070
v-text="'next'"
7171
/>

packages/devtools/client/components/ServerRouteDetails.vue

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -469,20 +469,13 @@ const copy = useCopy()
469469
<template v-else>
470470
<div border="b base" flex="~ gap2" items-center px4 py2>
471471
<div>Response</div>
472-
<Badge
472+
<NBadge
473473
v-if="response.error"
474-
bg-red-400:10 text-red-400
474+
n="red"
475475
>
476476
Error
477-
</Badge>
478-
<Badge
479-
:class="{
480-
'bg-orange-400:10 text-orange-400': response.error,
481-
'bg-green-400:10 text-green-400': !response.error,
482-
}"
483-
>
484-
{{ response.statusCode }}
485-
</Badge>
477+
</NBadge>
478+
<NBadge :n="response.error ? 'orange' : 'green'" v-text="response.statusCode" />
486479
<code v-if="response.contentType" text-xs op50>
487480
{{ response.contentType }}
488481
</code>
@@ -494,9 +487,9 @@ const copy = useCopy()
494487
<div op50>
495488
Request finished in
496489
</div>
497-
<Badge bg-green-400:10 text-green-400>
490+
<NBadge n="green">
498491
{{ response.fetchTime }} ms
499-
</Badge>
492+
</NBadge>
500493
</div>
501494
<div v-if="responseLang === 'pdf'" flex-auto overflow-auto>
502495
<div border="~ base" h-full w-full rounded>

0 commit comments

Comments
 (0)