UNPKG

@voilajsx/uikit

Version:

Cross-platform React components with beautiful themes and OKLCH color sciences - Now with mobile (Capacitor) support

128 lines 4.15 kB
/** * Footer component with standardized prop naming and tone system * @module @voilajsx/uikit * @file src/components/sections/footer.tsx */ import * as React from 'react'; import type { Size, NavigationItem } from '@/types'; /** * Footer component props with standardized system */ export interface FooterProps extends React.HTMLAttributes<HTMLElement> { /** Visual styling tone */ tone?: 'clean' | 'subtle' | 'brand' | 'contrast'; /** Footer size (width + padding + spacing) */ size?: Size; /** Footer positioning */ position?: 'sticky' | 'fixed' | 'relative'; /** Navigation items */ navigation?: NavigationItem[]; /** Current path for active states */ currentPath?: string; /** Navigation handler */ onNavigate?: (href: string, item: NavigationItem) => void; /** Footer content */ children: React.ReactNode; } /** * Basic Footer props */ export interface FooterBasicProps extends React.HTMLAttributes<HTMLDivElement> { /** Navigation items (standardized) */ navigation?: NavigationItem[]; /** Current path for active states */ currentPath?: string; /** Navigation handler */ onNavigate?: (href: string, item: NavigationItem) => void; /** Footer logo/brand */ logo?: React.ReactNode; /** Social media links */ social?: React.ReactNode; /** Copyright text */ copyright?: React.ReactNode; } /** * Basic Footer - Simple row layout with navigation */ declare const FooterBasic: React.ForwardRefExoticComponent<FooterBasicProps & React.RefAttributes<HTMLDivElement>>; /** * Footer column interface */ export interface FooterColumn { /** Unique key */ key: string; /** Column title */ title: string; /** Column navigation items */ items: NavigationItem[]; } /** * Advanced Footer props */ export interface FooterAdvancedProps extends React.HTMLAttributes<HTMLDivElement> { /** Brand section (logo + description) */ brand?: React.ReactNode; /** Footer columns with navigation items (up to 5) */ columns?: FooterColumn[]; /** Newsletter signup */ newsletter?: React.ReactNode; /** Social media links */ social?: React.ReactNode; /** Legal navigation items */ legal?: NavigationItem[]; /** Current path for active states */ currentPath?: string; /** Navigation handler */ onNavigate?: (href: string, item: NavigationItem) => void; /** Copyright text */ copyright?: React.ReactNode; } /** * Advanced Footer - Multi-column layout with organized sections */ /** * Advanced Footer - Multi-column layout with organized sections * Two-level grid: Brand (30%) + Menu Container (70%) with intelligent 0-4 columns */ declare const FooterAdvanced: React.ForwardRefExoticComponent<FooterAdvancedProps & React.RefAttributes<HTMLDivElement>>; /** * Social link interface */ export interface SocialLink { /** Unique key */ key: string; /** Accessibility label */ label: string; /** Icon component */ icon: React.ComponentType<{ className?: string; }>; /** Click handler */ onClick: () => void; /** Additional CSS classes */ className?: string; } /** * Footer Social props */ export interface FooterSocialProps extends React.HTMLAttributes<HTMLDivElement> { /** Social media links */ links?: SocialLink[]; } /** * Footer Social component */ declare const FooterSocial: React.ForwardRefExoticComponent<FooterSocialProps & React.RefAttributes<HTMLDivElement>>; /** * Footer with compound components */ declare const Footer: React.ForwardRefExoticComponent<FooterProps & React.RefAttributes<HTMLElement>> & { Basic: React.ForwardRefExoticComponent<FooterBasicProps & React.RefAttributes<HTMLDivElement>>; Advanced: React.ForwardRefExoticComponent<FooterAdvancedProps & React.RefAttributes<HTMLDivElement>>; Social: React.ForwardRefExoticComponent<FooterSocialProps & React.RefAttributes<HTMLDivElement>>; }; /** * Export Footer with compound components and individual components */ export { Footer, FooterBasic, FooterAdvanced, FooterSocial }; //# sourceMappingURL=footer.d.ts.map