fix: stabilize kumo ui components

This commit is contained in:
2026-07-02 18:00:58 -07:00
parent c181e6fbdd
commit 381233c675
10 changed files with 685 additions and 54 deletions

View File

@@ -16,13 +16,34 @@ const variantMap: Record<LegacyBadgeVariant, KumoBadgeProps["variant"]> = {
danger: "error",
};
export type BadgeProps = Omit<KumoBadgeProps, "variant" | "children"> & {
export type BadgeProps = Omit<KumoBadgeProps, "variant"> & {
variant?: LegacyBadgeVariant | KumoBadgeProps["variant"];
children?: React.ReactNode;
};
export function Badge({ className, variant = "default", ...props }: BadgeProps): React.ReactElement {
const mappedVariant = variant in variantMap ? variantMap[variant as LegacyBadgeVariant] : (variant as KumoBadgeProps["variant"]);
return <KumoBadge className={cn("teatea-badge", className)} variant={mappedVariant} {...(props as KumoBadgeProps)} />;
function isLegacyBadgeVariant(variant: BadgeProps["variant"]): variant is LegacyBadgeVariant {
switch (variant) {
case "default":
case "secondary":
case "outline":
case "success":
case "warning":
case "danger":
return true;
default:
return false;
}
}
function mapBadgeVariant(variant: BadgeProps["variant"]): KumoBadgeProps["variant"] {
if (isLegacyBadgeVariant(variant)) {
return variantMap[variant];
}
return variant;
}
export function Badge({ className, variant = "default", ...props }: BadgeProps): React.ReactElement {
const mappedVariant = mapBadgeVariant(variant);
return <KumoBadge className={cn("teatea-badge", className)} variant={mappedVariant} {...props} />;
}