@buddhacognitivelab/theme-glassmorphic
Version:
Enhanced glassmorphic theme package with dual-mode support, advanced glass effects, interactive UI components, and gesture-based interactions
70 lines (69 loc) • 2.06 kB
TypeScript
/**
* @fileoverview Sidebar component with glassmorphic styling
*/
import React from 'react';
export interface SidebarItem {
/** Unique identifier */
id: string;
/** Item label */
label: string;
/** Optional icon */
icon?: React.ReactNode;
/** Whether item is active */
active?: boolean;
/** Whether item is disabled */
disabled?: boolean;
/** Badge content */
badge?: string | number;
/** Child items */
children?: SidebarItem[];
/** Click handler */
onClick?: () => void;
/** Custom className */
className?: string;
/** Whether to show as divider */
divider?: boolean;
}
export interface SidebarProps {
/** Sidebar items */
items: SidebarItem[];
/** Whether sidebar is collapsed */
collapsed?: boolean;
/** Whether sidebar can be collapsed */
collapsible?: boolean;
/** Sidebar width when expanded */
width?: string | number;
/** Sidebar width when collapsed */
collapsedWidth?: string | number;
/** Sidebar placement */
placement?: 'left' | 'right';
/** Glass effect intensity */
glassIntensity?: 'light' | 'medium' | 'heavy';
/** Whether to show backdrop on mobile */
showBackdrop?: boolean;
/** Whether sidebar is open on mobile */
mobileOpen?: boolean;
/** Mobile breakpoint */
mobileBreakpoint?: string;
/** Header content */
header?: React.ReactNode;
/** Footer content */
footer?: React.ReactNode;
/** Collapse handler */
onCollapse?: (collapsed: boolean) => void;
/** Item click handler */
onItemClick?: (item: SidebarItem) => void;
/** Mobile open change handler */
onMobileOpenChange?: (open: boolean) => void;
/** Custom className */
className?: string;
/** Z-index */
zIndex?: number;
/** Whether to show resize handle */
resizable?: boolean;
/** Minimum width for resizing */
minWidth?: number;
/** Maximum width for resizing */
maxWidth?: number;
}
export declare const Sidebar: React.FC<SidebarProps>;