aura-glass
Version:
A comprehensive glassmorphism design system for React applications with 142+ production-ready components
106 lines • 2.69 kB
TypeScript
import React from "react";
export interface NavigationItem {
id: string;
label: string;
href?: string;
icon?: React.ReactNode;
badge?: string | number;
children?: NavigationItem[];
disabled?: boolean;
onClick?: () => void;
}
export interface GlassSidebarProps {
/**
* Navigation items
*/
items: NavigationItem[];
/**
* Currently active item
*/
activeId?: string;
/**
* Sidebar variant
*/
variant?: "default" | "compact" | "floating" | "overlay";
/**
* Sidebar width
*/
width?: "sm" | "md" | "lg" | "xl";
/**
* Whether sidebar is collapsible
*/
collapsible?: boolean;
/**
* Whether sidebar is collapsed
*/
collapsed?: boolean;
/**
* Callback when collapsed state changes
*/
onCollapsedChange?: (collapsed: boolean) => void;
/**
* Whether sidebar is open (for mobile/overlay)
*/
open?: boolean;
/**
* Callback when open state changes
*/
onOpenChange?: (open: boolean) => void;
/**
* Sidebar header content
*/
header?: React.ReactNode;
/**
* Sidebar footer content
*/
footer?: React.ReactNode;
/**
* Custom logo/brand
*/
logo?: React.ReactNode;
/**
* Custom user info
*/
userInfo?: React.ReactNode;
/**
* Navigation callback
*/
onNavigate?: (item: NavigationItem) => void;
/**
* Custom item renderer
*/
renderItem?: (item: NavigationItem, level: number) => React.ReactNode;
className?: string;
"aria-label"?: string;
}
/**
* GlassSidebar component
* A glassmorphism sidebar navigation with advanced features
*/
export declare const GlassSidebar: React.ForwardRefExoticComponent<GlassSidebarProps & React.RefAttributes<HTMLDivElement>>;
/**
* SidebarBrand component
*/
export interface SidebarBrandProps {
logo?: React.ReactNode;
title?: string;
subtitle?: string;
href?: string;
onClick?: () => void;
className?: string;
}
export declare function SidebarBrand({ logo, title, subtitle, href, onClick, className, }: SidebarBrandProps): import("react/jsx-runtime").JSX.Element;
/**
* SidebarUserInfo component
*/
export interface SidebarUserInfoProps {
name: string;
email?: string;
avatar?: string;
status?: "online" | "away" | "busy" | "offline";
actions?: React.ReactNode;
onClick?: () => void;
className?: string;
}
export declare function SidebarUserInfo({ name, email, avatar, status, actions, onClick, className, }: SidebarUserInfoProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=GlassSidebar.d.ts.map