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