import { ComponentProps, ExcludedProps, VariantProps } from "@vitality-ds/system"; import React from "react"; import type { RemoveBreakPointVariants, valueof } from "../helpers/logic/type-helpers"; import { BaseStatusBadge, BaseStatusBadgeButton, BaseStatusBadgeLink } from "./styled"; type SeverityVariants = Pick, "severity">; type ImportanceVariants = Pick, "importance">; type SeverityKeys = valueof>; type ImportanceKeys = valueof>; export type IconMappings = { [K in SeverityKeys]?: JSX.Element; }; type BaseStatusBadgeProps = { /** * Text label describing the status. */ label?: string; /** * Option to pass in a custom icon. Aim to use an icon from the lucide-react package */ icon?: React.ReactNode; /** * Option to hide the icon. * @default false */ hideIcon?: boolean; /** * Indicate the severity of a status using Vitality's feedback color scale. */ severity?: SeverityKeys; /** * The importance of a StatusBadge determines its level of visual prominence. */ importance?: ImportanceKeys; /** * @ignore */ interactive?: never; }; export type StatusBadgeType = ExcludedProps & VariantProps & ComponentProps & BaseStatusBadgeProps; export type StatusBadgeLinkType = ExcludedProps & VariantProps & ComponentProps & BaseStatusBadgeProps & { href: string; target: string; ref: React.RefObject; }; export type StatusBadgeButtonType = ExcludedProps & VariantProps & ComponentProps & BaseStatusBadgeProps & { onClick: () => void; ref: React.RefObject; }; export {};