diff --git a/apps/desktop/src/app/profiles/index.tsx b/apps/desktop/src/app/profiles/index.tsx
index 7bd44829e..46bb8721e 100644
--- a/apps/desktop/src/app/profiles/index.tsx
+++ b/apps/desktop/src/app/profiles/index.tsx
@@ -1,6 +1,7 @@
import { useCallback, useEffect, useMemo, useRef, useState } from 'react'
import { PageLoader } from '@/components/page-loader'
+import { Badge } from '@/components/ui/badge'
import { Button } from '@/components/ui/button'
import { Codicon } from '@/components/ui/codicon'
import {
@@ -282,16 +283,8 @@ function ProfileDetail({
{profile.name}
- {profile.is_default && (
-
- Default
-
- )}
- {profile.has_env && (
-
- .env
-
- )}
+ {profile.is_default && Default}
+ {profile.has_env && .env}
{profile.path}
@@ -358,7 +351,7 @@ function DetailRow({ children, label }: { children: React.ReactNode; label: stri
return (
{label}
- {children}
+ {children}
)
}
diff --git a/apps/desktop/src/components/ui/badge.tsx b/apps/desktop/src/components/ui/badge.tsx
new file mode 100644
index 000000000..1b3091c18
--- /dev/null
+++ b/apps/desktop/src/components/ui/badge.tsx
@@ -0,0 +1,34 @@
+import { cva, type VariantProps } from 'class-variance-authority'
+import { Slot } from 'radix-ui'
+import type * as React from 'react'
+
+import { cn } from '@/lib/utils'
+
+// Small status/metadata tag. App radius (not a full pill); tones map to the
+// shared accent/muted/destructive surfaces so badges read consistently.
+const badgeVariants = cva(
+ 'inline-flex w-fit shrink-0 items-center gap-1 rounded-[3px] px-1.5 py-0.5 text-[0.65rem] font-medium leading-none whitespace-nowrap [&_svg]:size-3 [&_svg]:pointer-events-none',
+ {
+ variants: {
+ variant: {
+ default: 'bg-primary/10 text-primary',
+ muted: 'bg-muted text-muted-foreground',
+ destructive: 'bg-destructive/10 text-destructive',
+ outline: 'border border-(--ui-stroke-secondary) text-muted-foreground'
+ }
+ },
+ defaultVariants: { variant: 'default' }
+ }
+)
+
+export interface BadgeProps extends React.ComponentProps<'span'>, VariantProps
{
+ asChild?: boolean
+}
+
+export function Badge({ asChild = false, className, variant, ...props }: BadgeProps) {
+ const Comp = asChild ? Slot.Root : 'span'
+
+ return
+}
+
+export { badgeVariants }