import React from 'react'; import { type ComposableProps } from '../../../lib/slot'; import { IconName } from '../Icons'; import { type GlassVariant } from '../../../lib/glass'; /** * Badge component props * * @public * * @example * ```tsx * // Simple badge (Shadcn-style) * Active * * // Composable API * * * Active * * * // Badge with count * Notifications * * // Dot badge * * * // With asChild * * Custom Badge * * ``` */ export interface BadgeProps extends ComposableProps<'div'> { /** * Badge variant for semantic coloring * @default 'default' * * - `default`: Neutral gray badge * - `error` / `danger`: Red badge for errors * - `success`: Green badge for success states * - `warning`: Orange badge for warnings * - `info` / `neutral`: Blue badge for informational content * - `normal`: Default neutral styling */ variant?: 'default' | 'error' | 'success' | 'warning' | 'info' | 'neutral' | 'normal' | 'danger'; /** * Count number or custom React node to display * When number exceeds overflowCount, shows "overflowCount+" */ count?: number | React.ReactNode; /** * Maximum count to display before showing "overflowCount+" * @default 99 */ overflowCount?: number; /** * Display as a dot instead of count/text * @default false */ dot?: boolean; /** * Offset position [x, y] in pixels * Useful for positioning badge on corners */ offset?: [number, number]; /** * Status indicator variant * Alternative to variant prop for status badges */ status?: 'success' | 'processing' | 'default' | 'error' | 'warning'; /** * Badge text content * Alternative to children prop */ text?: React.ReactNode; /** * Badge size * @default 'md' * * Available sizes: `xs`, `sm`, `md`, `lg` */ size?: 'xs' | 'sm' | 'md' | 'lg'; /** * Icon displayed before badge content * @see {@link IconName} for available icons */ leadingIcon?: IconName; /** * Icon displayed after badge content * @see {@link IconName} for available icons */ trailingIcon?: IconName; /** * Enable glassmorphism effect on badge background * - `true`: Standard glass effect * - `'subtle'`: Subtle glass effect * - `'prominent'`: Prominent glass effect */ glass?: GlassVariant; /** * Enable hover interaction styles * @default false */ interaction?: boolean; /** * Badge content (text or React nodes) */ children?: React.ReactNode; } export interface BadgeRibbonProps { className?: string; text?: React.ReactNode; placement?: 'start' | 'end'; color?: string; children?: React.ReactNode; } declare const Ribbon: React.FC; /** * Badge Component * * A composable badge component for displaying status, labels, and notifications. * Supports Shadcn-style simple API and composable API with BadgeIcon and BadgeText. * * @public * * @example * ```tsx * // Simple API (Shadcn-style) * Active * * // Composable API * * * Active * * * // With asChild * * Custom Badge * * ``` * * @remarks * - Supports `asChild` prop for custom element composition * - Use composable API with BadgeIcon and BadgeText for maximum flexibility * - Automatically handles notification badges when used as wrapper * - Accessible: maintains proper semantics */ export declare const Badge: React.ForwardRefExoticComponent>; export { Ribbon }; //# sourceMappingURL=Badge.d.ts.map