/** * Sidebar Component - Componente headless de sidebar con arquitectura primitiva * * @module Sidebar * * @description * Sistema de sidebar altamente configurable siguiendo el patrón de componentes * headless inspirado en Headless UI y shadcn/ui. * * **Características principales:** * - Arquitectura headless con primitivos componibles * - Soporte para render props y data attributes * - Navegación por teclado (arrows, home, end) * - Indicador visual animado * - Modos de colapso (hide/collapse) * - Accesibilidad WAI-ARIA completa * - Usa tokens CSS de shadcn para colores * - Dark/Light mode automático * - TypeScript strict mode * * @example * ```tsx * import { * Sidebar, * SidebarNav, * SidebarToggle, * SidebarContent, * SidebarIndicator, * SidebarItem, * SidebarIconLibrary * } from '@/components/Sidebar' * * function App() { * return ( * * * * * * } label="Home" /> * } label="Settings" /> * * * * ) * } * ``` */ /** * Componente raíz del Sidebar (Provider) */ export { Sidebar } from "./Sidebar"; /** * Contenedor de navegación con gestión de eventos */ export { SidebarNav } from "./SidebarNav"; /** * Botón toggle para abrir/cerrar el sidebar */ export { SidebarToggle } from "./SidebarToggle"; /** * Contenedor de items de navegación */ export { SidebarContent } from "./SidebarContent"; /** * Indicador visual que sigue al cursor/focus */ export { SidebarIndicator } from "./SidebarIndicator"; /** * Indicador fluid glassmorphism con spring physics (experimental) */ export { SidebarFluidIndicator } from "./SidebarFluidIndicator"; /** * Área segura (top/bottom) para contenido especial */ export { SidebarSafeArea } from "./SidebarSafeArea"; /** * Item individual de navegación */ export { SidebarItem } from "./SidebarItem"; /** * Contenedor de subcontenido para tooltips (slot component) */ export { SidebarSubContent } from "./SidebarSubContent"; /** * Link individual dentro de tooltip de subcontenido */ export { SidebarSubLink } from "./SidebarSubLink"; /** * Tooltip genérico anclado al indicador */ export { SidebarTooltip } from "./SidebarTooltip"; /** * Hook para acceder al contexto del sidebar * * @throws {Error} Si se usa fuera de un componente * * @example * ```tsx * const { open, setOpen, dimensions } = useSidebarContext() * ``` */ export { useSidebarContext } from "./hooks/useSidebarContext"; /** * Hook para navegación por teclado (arrows, home, end) * * @example * ```tsx * const { focusedIndex, updateIndicatorForFocus } = useSidebarKeyboard() * ``` */ export { useSidebarKeyboard } from "./hooks/useSidebarKeyboard"; /** * Hook para gestión del indicador visual * * @example * ```tsx * const { isVisible, handleMouseMove } = useSidebarIndicator() * ``` */ export { useSidebarIndicator } from "./hooks/useSidebarIndicator"; /** * Hook para acceder al contexto de subcontenido * * @throws {Error} Si se usa fuera de un componente * * @example * ```tsx * const { registerSubContent, getSubContent } = useSubContent() * ``` */ export { useSubContent } from "./hooks/useSubContent"; /** * Todos los tipos e interfaces del sidebar */ export type { SidebarProps, SidebarNavProps, SidebarToggleProps, SidebarContentProps, SidebarIndicatorProps, SidebarSafeAreaProps, SidebarItemProps, SidebarState, SidebarToggleState, SidebarItemState, SidebarIndicatorState, SidebarContextValue, SidebarDimensions, SidebarSafeAreas, SidebarAnimations, SidebarConfig, SidebarRenderProp, SidebarToggleRenderProp, SidebarItemRenderProp, SidebarIndicatorRenderProp, SidebarVisualStyle, } from "./Sidebar.types"; /** * Tipos de componentes de subcontenido */ export type { SidebarSubContentProps } from "./SidebarSubContent"; export type { SidebarSubLinkProps } from "./SidebarSubLink"; export type { SidebarTooltipProps } from "./SidebarTooltip"; /** * Enums exportados */ export { SidebarCollapseMode, SidebarHideBehaviour, SidebarHideOpensBehavior, SidebarLayoutBehaviour, SidebarWidth, SidebarTransitionDuration, SidebarZIndex, SidebarBorderRadius, SidebarSafeAreaPosition, SidebarTimingFunction, SidebarIconLibrary, } from "./Sidebar.types"; /** * Constantes y valores por defecto */ export { DEFAULT_DIMENSIONS, DEFAULT_SAFE_AREAS, DEFAULT_ANIMATIONS, DEFAULT_CONFIG, DEFAULT_VISUAL_STYLE, SIDEBAR_KEYBOARD_KEYS, SIDEBAR_DATA_ATTRIBUTES, SIDEBAR_TAILWIND_CLASSES, SIDEBAR_DEBUG_PATTERNS, SIDEBAR_ARIA_ROLES, SIDEBAR_ARIA_LABELS, SIDEBAR_BREAKPOINTS, SIDEBAR_LIMITS, SIDEBAR_CSS_VARIABLES, SIDEBAR_VISUAL_PRESETS, } from "./Sidebar.constants"; /** * Tipos de constantes */ export type { SidebarVisualPreset } from "./Sidebar.constants"; /** * Funciones para generar estilos CSS dinámicos * * @note * Los estilos usan tokens CSS de shadcn (--sidebar, --sidebar-primary, etc.) * definidos en globals.css, permitiendo soporte automático de dark/light mode. */ export { generateSidebarStyles, generateIndicatorStyles } from "./Sidebar.styles"; //# sourceMappingURL=index.d.ts.map