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 }