import { DetailedHTMLProps, HTMLAttributes, ComponentType, ButtonHTMLAttributes, InputHTMLAttributes, SelectHTMLAttributes, TextareaHTMLAttributes } from 'react'; // ============================================================================ // COMPONENT PROPS interfaces // ============================================================================ export interface FluentButtonProps extends DetailedHTMLProps, HTMLButtonElement> { variant?: 'primary' | 'secondary' | 'outline'; size?: 'sm' | 'md' | 'lg'; loading?: boolean; } export interface FluentCardProps extends DetailedHTMLProps, HTMLElement> { variant?: 'elevated' | 'outlined' | 'filled'; padding?: string; } export interface FluentInputProps extends DetailedHTMLProps, HTMLInputElement> { variant?: string; } export interface FluentSelectProps extends DetailedHTMLProps, HTMLSelectElement> {} export interface FluentCheckboxProps extends DetailedHTMLProps, HTMLInputElement> {} export interface FluentRadioProps extends DetailedHTMLProps, HTMLInputElement> {} export interface FluentTextareaProps extends DetailedHTMLProps, HTMLTextAreaElement> {} export interface FluentSwitchProps extends DetailedHTMLProps, HTMLElement> { checked?: boolean; disabled?: boolean; } export interface FluentSliderProps extends DetailedHTMLProps, HTMLElement> { min?: number; max?: number; value?: number; } export interface FluentProgressProps extends DetailedHTMLProps, HTMLElement> { value?: number; max?: number; } export interface FluentBadgeProps extends DetailedHTMLProps, HTMLElement> { variant?: 'primary' | 'success' | 'warning' | 'error'; } export interface FluentAvatarProps extends DetailedHTMLProps, HTMLElement> { src?: string; size?: 'sm' | 'md' | 'lg'; initials?: string; } export interface FluentModalProps extends DetailedHTMLProps, HTMLElement> { open?: boolean; } export interface FluentToastProps extends DetailedHTMLProps, HTMLElement> { open?: boolean; text?: string; } export interface FluentTabsProps extends DetailedHTMLProps, HTMLElement> { selected?: string; } export interface FluentAccordionProps extends DetailedHTMLProps, HTMLElement> { open?: boolean; } export interface FluentTooltipProps extends DetailedHTMLProps, HTMLElement> { text?: string; position?: 'top' | 'bottom' | 'left' | 'right'; } export interface FluentBreadcrumbProps extends DetailedHTMLProps, HTMLElement> {} export interface FluentChipProps extends DetailedHTMLProps, HTMLElement> {} export interface FluentDropdownProps extends DetailedHTMLProps, HTMLElement> { open?: boolean; } export interface FluentMenuProps extends DetailedHTMLProps, HTMLElement> {} export interface FluentPaginationProps extends DetailedHTMLProps, HTMLElement> { page?: number; pages?: number; } export interface FluentNotificationProps extends DetailedHTMLProps, HTMLElement> { open?: boolean; title?: string; message?: string; } export interface FluentTableProps extends DetailedHTMLProps, HTMLElement> { sortable?: boolean; } export interface FluentTextProps extends DetailedHTMLProps, HTMLElement> { size?: 'sm' | 'md' | 'lg'; weight?: 'normal' | 'bold'; } export interface FluentTitleProps extends DetailedHTMLProps, HTMLElement> { level?: number; } export interface FluentSkeletonProps extends DetailedHTMLProps, HTMLElement> { width?: string; height?: string; } export interface FluentSpinnerProps extends DetailedHTMLProps, HTMLElement> {} export interface FluentStepperProps extends DetailedHTMLProps, HTMLElement> { current?: number; total?: number; } export interface FluentAvatarGroupProps extends DetailedHTMLProps, HTMLElement> { max?: number; overlap?: string; } export interface FluentFormProps extends DetailedHTMLProps, HTMLElement> { novalidate?: boolean; } export interface FluentFormMessageProps extends DetailedHTMLProps, HTMLElement> { for?: string; } export interface FluentLabelProps extends DetailedHTMLProps, HTMLElement> { for?: string; } export interface FluentModalAdvancedProps extends DetailedHTMLProps, HTMLElement> { open?: boolean; } export interface FluentAutocompleteProps extends DetailedHTMLProps, HTMLElement> {} export interface FluentCheckboxGroupProps extends DetailedHTMLProps, HTMLElement> {} export interface FluentRadioGroupProps extends DetailedHTMLProps, HTMLElement> {} export interface FluentDatepickerProps extends DetailedHTMLProps, HTMLElement> {} export interface FluentPopoverProps extends DetailedHTMLProps, HTMLElement> { open?: boolean; } // ============================================================================ // GLOBAL JSX DEFINITIONS // ============================================================================ declare global { namespace JSX { interface IntrinsicElements { 'fluent-button': FluentButtonProps; 'fluent-card': FluentCardProps; 'fluent-input': FluentInputProps; 'fluent-select': FluentSelectProps; 'fluent-checkbox': FluentCheckboxProps; 'fluent-radio': FluentRadioProps; 'fluent-switch': FluentSwitchProps; 'fluent-slider': FluentSliderProps; 'fluent-progress': FluentProgressProps; 'fluent-badge': FluentBadgeProps; 'fluent-avatar': FluentAvatarProps; 'fluent-modal': FluentModalProps; 'fluent-toast': FluentToastProps; 'fluent-tabs': FluentTabsProps; 'fluent-accordion': FluentAccordionProps; 'fluent-tooltip': FluentTooltipProps; 'fluent-breadcrumb': FluentBreadcrumbProps; 'fluent-chip': FluentChipProps; 'fluent-dropdown': FluentDropdownProps; 'fluent-menu': FluentMenuProps; 'fluent-pagination': FluentPaginationProps; 'fluent-notification': FluentNotificationProps; 'fluent-table': FluentTableProps; 'fluent-text': FluentTextProps; 'fluent-title': FluentTitleProps; 'fluent-skeleton': FluentSkeletonProps; 'fluent-spinner': FluentSpinnerProps; 'fluent-stepper': FluentStepperProps; 'fluent-avatar-group': FluentAvatarGroupProps; 'fluent-form': FluentFormProps; 'fluent-form-message': FluentFormMessageProps; 'fluent-label': FluentLabelProps; 'fluent-modal-advanced': FluentModalAdvancedProps; 'fluent-autocomplete': FluentAutocompleteProps; 'fluent-checkbox-group': FluentCheckboxGroupProps; 'fluent-radio-group': FluentRadioGroupProps; 'fluent-datepicker': FluentDatepickerProps; 'fluent-popover': FluentPopoverProps; } } } export {};