UNPKG

@buddhacognitivelab/theme-glassmorphic

Version:

Enhanced glassmorphic theme package with dual-mode support, advanced glass effects, interactive UI components, and gesture-based interactions

65 lines (64 loc) 2.06 kB
/** * @fileoverview Select component with glassmorphic styling */ import React from 'react'; import type { GlassIntensity } from '../../types/theme'; export interface SelectOption { /** Option value */ value: string | number; /** Option label */ label: string; /** Whether option is disabled */ disabled?: boolean; /** Option description */ description?: string; /** Custom icon */ icon?: React.ReactNode; } export interface SelectProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> { /** Select options */ options: SelectOption[]; /** Current selected value */ value?: string | number; /** Default selected value */ defaultValue?: string | number; /** Callback when selection changes */ onChange?: (value: string | number, option: SelectOption) => void; /** Select size */ size?: 'small' | 'medium' | 'large'; /** Glass effect intensity */ glassIntensity?: GlassIntensity; /** Select state */ state?: 'default' | 'error' | 'warning' | 'success'; /** Select label */ label?: string; /** Placeholder text */ placeholder?: string; /** Helper text */ helperText?: string; /** Error message */ error?: string; /** Whether select is disabled */ disabled?: boolean; /** Whether select is loading */ loading?: boolean; /** Whether select is searchable */ searchable?: boolean; /** Whether select allows multiple selection */ multiple?: boolean; /** Whether to clear selection */ clearable?: boolean; /** Custom search placeholder */ searchPlaceholder?: string; /** Custom no options message */ noOptionsMessage?: string; /** Maximum height of dropdown */ maxHeight?: number; /** Additional CSS class */ className?: string; /** Required field indicator */ required?: boolean; /** Full width */ fullWidth?: boolean; } export declare const Select: React.ForwardRefExoticComponent<SelectProps & React.RefAttributes<HTMLDivElement>>;