UNPKG

social-floating-icons

Version:

A React component for floating social media icons with customizable configuration. Perfect for portfolios, websites, and React/Next.js projects. Features hover effects, animations, and JSON-based configuration.

83 lines (78 loc) 2.47 kB
import React from 'react'; import { IconType } from 'react-icons'; /** * Configuration for a single social media link */ interface SocialLink { /** Display name of the social media platform */ name: string; /** URL to the social media profile */ link: string; /** React icon component name from react-icons */ icon: string; /** Tailwind CSS color classes for styling */ color: string; /** Whether to show this icon */ want: boolean; /** Size of the icon (optional, default: 30) */ size?: number; } /** * Configuration object containing all social media links */ interface SocialLinksConfig { /** Array of social media links */ socialLinks: SocialLink[]; } /** * Props for the FloatingIcons component */ interface FloatingIconsProps { /** Configuration object for social media links */ config?: SocialLinksConfig; /** Position of the floating icons ('left' | 'right') */ position?: 'left' | 'right'; /** Custom CSS classes for styling */ className?: string; /** Whether to show tooltips on hover */ showTooltips?: boolean; /** Custom spacing between icons */ spacing?: number; /** Animation duration in milliseconds */ animationDuration?: number; /** Z-index for the floating container */ zIndex?: number; } /** * Icon mapping for react-icons */ interface IconMapping { [key: string]: IconType; } /** * FloatingIcons component for displaying floating social media icons */ declare const FloatingIcons: React.FC<FloatingIconsProps>; /** * Default configuration for social media links */ declare const defaultConfig: SocialLinksConfig; /** * Load configuration from a JSON file * @param configPath - Path to the configuration JSON file * @returns Promise<SocialLinksConfig> */ declare const loadConfig: (configPath: string) => Promise<SocialLinksConfig>; /** * Validate configuration object * @param config - Configuration object to validate * @returns SocialLinksConfig */ declare const validateConfig: (config: any) => SocialLinksConfig; /** * Create a configuration object from individual parameters * @param socialLinks - Array of social media links * @returns SocialLinksConfig */ declare const createConfig: (socialLinks: any[]) => SocialLinksConfig; export { FloatingIcons, FloatingIconsProps, IconMapping, SocialLink, SocialLinksConfig, createConfig, FloatingIcons as default, defaultConfig, loadConfig, validateConfig };