import { type ComponentPropsWithoutRef, type ReactNode } from 'react'; import { type Exclusive } from '../types/helpers'; type DotType = { /** * The badge will be displayed as a dot. * This prop is exclusive to `count` and `digit` prop. * * If this undefined, the badge will not be displayed. */ dot?: true; }; type CountType = { /** * The count of the badge. * This prop is exclusive to `digit` prop. * * If this undefined, the badge will not be displayed. * If this is a number: * Display the count with a `+` sign if it exceeds the specified digit. * Display the count as is if it does not exceed the specified digit. */ count?: number; /** * The digits of the count to display. * This prop is exclusive to `count` prop. * * If this is not specified, the count will be displayed as is. * If this is specified, the count will be displayed with a `+` sign if it exceeds the specified digit. * * @default undefined */ digit?: number; }; export type BadgeProps = { /** * The component which the badge will be displayed in the top-right corner. * * If `children` is `undefined`, the badge will be a standalone component. * * @default undefined */ children?: ReactNode; /** * The class name of the component. * * @default undefined */ className?: string; /** * The invisible label to specify how you want the badge to be recognized and read by screen readers. * This prop is required. * * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-label * * @example * ```jsx * * * * * * * // The button will be described as "通知, 5件の新しい通知があります" by screen readers. * ``` */ 'aria-label': string; } & Exclusive & ComponentPropsWithoutRef<'span'>; export {};