diff --git a/src/components/ui/badge.tsx b/src/components/ui/badge.tsx index baaedfa5..c6b70f58 100644 --- a/src/components/ui/badge.tsx +++ b/src/components/ui/badge.tsx @@ -26,7 +26,19 @@ import { } from './semanticProps'; const badgeBase = cva( - 'inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ds-ring-brand-default-focus focus:ring-offset-2 focus:ring-offset-ds-bg-neutral-subtle-default' + 'inline-flex items-center rounded-md border font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ds-ring-brand-default-focus focus:ring-offset-2 focus:ring-offset-ds-bg-neutral-subtle-default', + { + variants: { + size: { + xs: 'gap-0.5 px-1 py-0 !text-label-xs', + default: 'px-2 py-1 !text-label-sm', + sm: 'gap-1 px-2 py-1 !text-label-sm', + }, + }, + defaultVariants: { + size: 'default', + }, + } ); type BadgeLegacyVariant = 'default' | 'secondary' | 'destructive' | 'outline'; @@ -160,21 +172,32 @@ function badgeToneClasses( return BADGE_GHOST[tone]; } +export type BadgeSize = 'xs' | 'default' | 'sm'; + export interface BadgeProps extends React.HTMLAttributes { variant?: UiVariant | BadgeLegacyVariant; emphasis?: UiEmphasis; tone?: UiToneInput; + size?: BadgeSize; } -function Badge({ className, variant, emphasis, tone, ...props }: BadgeProps) { +function Badge({ + className, + variant, + emphasis, + tone, + size = 'default', + ...props +}: BadgeProps) { const resolved = resolveBadgeVisual(variant, tone, emphasis); return (
& { + iconClassName?: string; +}; + const Checkbox = React.forwardRef< React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, style, ...props }, ref) => ( + CheckboxProps +>(({ className, style, iconClassName, ...props }, ref) => ( - - + + )); diff --git a/src/components/ui/input.tsx b/src/components/ui/input.tsx index f15fe3d2..23fbbf9c 100644 --- a/src/components/ui/input.tsx +++ b/src/components/ui/input.tsx @@ -109,7 +109,7 @@ const Input = React.forwardRef(
{ const stateCls = formFieldSelectTriggerState(state, Boolean(disabled)); return ( -
+
{title ? (
{title} diff --git a/src/components/ui/textarea.tsx b/src/components/ui/textarea.tsx index ec349620..50877a59 100644 --- a/src/components/ui/textarea.tsx +++ b/src/components/ui/textarea.tsx @@ -80,6 +80,7 @@ const Textarea = React.forwardRef( return ( <>