UNPKG

aurcare-ui

Version:

Aurcare UI component library for healthcare applications with dynamic sidebar, navbar, and stats cards

1 lines 51 kB
{"version":3,"sources":["../src/utils/index.ts","../src/components/Sidebar/Sidebar.tsx","../src/components/Navbar/Navbar.tsx","../src/components/StatsCard/StatsCard.tsx"],"names":["heroUICn","useTheme","useState","useEffect","jsx","jsxs","Button","Badge","Fragment","ChevronDown"],"mappings":"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","file":"index.mjs","sourcesContent":["import { Direction } from '../types';\n\n/**\n * Class name utility function (similar to clsx)\n * Combines multiple class names into a single string\n */\nexport function cn(...classes: (string | undefined | null | false)[]): string {\n return classes.filter(Boolean).join(' ');\n}\n\n/**\n * Check if a path is active based on current path\n * @param itemPath - The path of the navigation item\n * @param currentPath - The current active path\n * @returns Whether the path is active\n */\nexport function isPathActive(itemPath: string, currentPath: string): boolean {\n if (itemPath === currentPath) return true;\n if (itemPath === '/' || itemPath === '') return currentPath === '/' || currentPath === '';\n return currentPath.startsWith(itemPath + '/');\n}\n\n/**\n * Check if locale is RTL\n * @param locale - The locale code\n * @returns Whether the locale is RTL\n */\nexport function isRTL(locale?: string): boolean {\n const rtlLocales = ['ar', 'he', 'fa', 'ur'];\n return locale ? rtlLocales.includes(locale) : false;\n}\n\n/**\n * Get text direction based on locale\n * @param locale - The locale code\n * @returns The text direction\n */\nexport function getDirection(locale?: string): Direction {\n return isRTL(locale) ? 'rtl' : 'ltr';\n}\n\n/**\n * Default translation function\n * @param key - Translation key\n * @returns The key itself (fallback when no translation function is provided)\n */\nexport function defaultTranslate(key: string): string {\n return key;\n}\n\n/**\n * Truncate text to specified length\n * @param text - Text to truncate\n * @param maxLength - Maximum length\n * @returns Truncated text with ellipsis\n */\nexport function truncate(text: string, maxLength: number): string {\n if (text.length <= maxLength) return text;\n return text.slice(0, maxLength) + '...';\n}\n\n/**\n * Format time ago string\n * @param date - Date object or timestamp\n * @returns Formatted time ago string\n */\nexport function timeAgo(date: Date | number | string): string {\n const now = new Date();\n const past = new Date(date);\n const diffInSeconds = Math.floor((now.getTime() - past.getTime()) / 1000);\n\n if (diffInSeconds < 60) return 'just now';\n if (diffInSeconds < 3600) return `${Math.floor(diffInSeconds / 60)} minutes ago`;\n if (diffInSeconds < 86400) return `${Math.floor(diffInSeconds / 3600)} hours ago`;\n if (diffInSeconds < 604800) return `${Math.floor(diffInSeconds / 86400)} days ago`;\n return past.toLocaleDateString();\n}\n","'use client';\n\nimport { useState, useCallback, useEffect } from 'react';\nimport Link from 'next/link';\nimport { usePathname } from 'next/navigation';\nimport { useTheme } from 'next-themes';\nimport { Button } from '@heroui/button';\nimport { Badge } from '@heroui/badge';\nimport { cn as heroUICn } from '@heroui/theme';\nimport {\n ChevronLeft,\n ChevronRight,\n ChevronDown,\n ChevronUp,\n LayoutDashboard,\n} from 'lucide-react';\nimport { SidebarProps, NavItem } from '../../types';\nimport { cn, isPathActive, isRTL } from '../../utils';\n\n/**\n * Dynamic Sidebar Component\n *\n * A flexible and customizable sidebar navigation component with support for:\n * - Dynamic navigation items via props\n * - Collapsible design\n * - RTL support\n * - Nested navigation (sub-items)\n * - Active state detection\n * - Badges for notification counts\n * - Custom header and footer\n * - Dark mode support\n *\n * @example\n * ```tsx\n * <Sidebar\n * sections={[\n * {\n * id: 'main',\n * title: 'Main',\n * items: [\n * { id: 'home', label: 'Home', href: '/', icon: Home }\n * ]\n * }\n * ]}\n * appName=\"My App\"\n * appSubtitle=\"Dashboard\"\n * />\n * ```\n */\nexport function Sidebar({\n sections,\n isCollapsed: controlledCollapsed,\n onCollapse,\n currentPath,\n locale = 'en',\n appName = 'Aurcare',\n appSubtitle = 'Healthcare System',\n appLogo: AppLogo = LayoutDashboard,\n className,\n expandedWidth = 'w-72',\n collapsedWidth = 'w-20',\n hideCollapseButton = false,\n customHeader,\n customFooter,\n onNavigate,\n logoClassName,\n logoContainerClassName,\n logoIconClassName,\n navItemClassName,\n navSectionClassName,\n backgroundClassName,\n}: SidebarProps) {\n const { theme } = useTheme();\n const [mounted, setMounted] = useState(false);\n const [internalCollapsed, setInternalCollapsed] = useState(false);\n const [expandedItems, setExpandedItems] = useState<string[]>([]);\n const pathname = usePathname?.() || currentPath || '/';\n const isRTLMode = isRTL(locale);\n\n // Ensure component is mounted before rendering theme-dependent styles\n useEffect(() => {\n setMounted(true);\n }, []);\n\n // Force re-render when theme changes by accessing it\n // This ensures dark mode classes are properly applied\n void theme; // Used to subscribe to theme changes\n void mounted; // Used for hydration check\n\n // Use controlled or internal collapsed state\n const isCollapsed = controlledCollapsed !== undefined ? controlledCollapsed : internalCollapsed;\n\n const toggleCollapse = useCallback(() => {\n const newValue = !isCollapsed;\n setInternalCollapsed(newValue);\n onCollapse?.(newValue);\n }, [isCollapsed, onCollapse]);\n\n const toggleExpanded = useCallback((itemId: string) => {\n setExpandedItems((prev) =>\n prev.includes(itemId)\n ? prev.filter((id) => id !== itemId)\n : [...prev, itemId]\n );\n }, []);\n\n const handleNavigate = useCallback((item: NavItem) => {\n onNavigate?.(item);\n }, [onNavigate]);\n\n const renderNavItem = (item: NavItem, depth: number = 0) => {\n const Icon = item.icon;\n const isActive = item.href ? isPathActive(item.href, pathname) : false;\n const hasSubItems = item.subItems && item.subItems.length > 0;\n const isExpanded = expandedItems.includes(item.id);\n\n // Custom render function if provided\n if (item.render) {\n return (\n <li key={item.id}>\n {item.render(item, isActive)}\n </li>\n );\n }\n\n return (\n <li key={item.id}>\n {hasSubItems ? (\n <>\n <div\n onClick={() => toggleExpanded(item.id)}\n className={heroUICn(\n 'flex items-center justify-between gap-3 px-3 py-3 rounded-lg transition-all duration-200 cursor-pointer',\n 'text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-slate-800',\n depth > 0 && 'py-2.5',\n navItemClassName,\n item.className\n )}\n >\n <div className=\"flex items-center gap-3\">\n <Icon className={heroUICn('flex-shrink-0', depth === 0 ? 'w-5 h-5' : 'w-4 h-4')} />\n {!isCollapsed && (\n <span className=\"font-medium text-sm truncate\">\n {item.label}\n </span>\n )}\n {!isCollapsed && item.badge && (\n <Badge\n color={item.badgeColor || 'primary'}\n size=\"sm\"\n >\n {item.badge}\n </Badge>\n )}\n </div>\n {!isCollapsed &&\n (isExpanded ? (\n <ChevronUp className=\"w-4 h-4 flex-shrink-0\" />\n ) : (\n <ChevronDown className=\"w-4 h-4 flex-shrink-0\" />\n ))}\n </div>\n {isExpanded && !isCollapsed && item.subItems && (\n <ul className={heroUICn('mt-1.5 space-y-1.5', 'ms-6')}>\n {item.subItems.map((subItem) => renderNavItem(subItem, depth + 1))}\n </ul>\n )}\n </>\n ) : (\n <Link\n href={item.href || '#'}\n onClick={() => handleNavigate(item)}\n >\n <div\n className={heroUICn(\n 'flex items-center gap-3 px-3 py-3 rounded-lg transition-all duration-200',\n isActive\n ? 'bg-primary text-white shadow-md'\n : 'text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-slate-800',\n depth > 0 && 'py-2.5',\n navItemClassName,\n item.className\n )}\n >\n <Icon className={heroUICn('flex-shrink-0', depth === 0 ? 'w-5 h-5' : 'w-4 h-4')} />\n {!isCollapsed && (\n <>\n <span className=\"font-medium text-sm truncate flex-1\">\n {item.label}\n </span>\n {item.badge && (\n <Badge\n color={item.badgeColor || 'primary'}\n size=\"sm\"\n >\n {item.badge}\n </Badge>\n )}\n </>\n )}\n </div>\n </Link>\n )}\n </li>\n );\n };\n\n return (\n <aside\n suppressHydrationWarning\n className={cn(\n 'flex flex-col h-screen bg-white dark:bg-slate-900 transition-all duration-300 flex-shrink-0 border-gray-200 dark:border-slate-700',\n 'border-s',\n isCollapsed ? collapsedWidth : expandedWidth,\n 'inset-x-0',\n isRTLMode ? 'rtl:right-auto' : 'ltr:left-auto',\n backgroundClassName,\n className\n )}\n dir={isRTLMode ? 'rtl' : 'ltr'}\n >\n {/* Header */}\n {customHeader || (\n <div className={cn(\n \"flex items-center justify-between px-6 py-3 border-b border-gray-200 dark:border-slate-700 h-[63px] mb-[15px]\",\n logoClassName\n )}>\n {!isCollapsed && (\n <div className=\"flex items-center gap-3\">\n <div className={cn(\n \"w-10 h-10 rounded-xl bg-primary flex items-center justify-center shadow-lg\",\n logoContainerClassName\n )}>\n <AppLogo className={cn(\"w-6 h-6 text-white\", logoIconClassName)} />\n </div>\n <div className=\"flex-1\">\n <span className=\"font-bold text-xl text-primary block\">\n {appName}\n </span>\n <p className=\"text-xs text-gray-500 dark:text-gray-400 mt-0.5\">\n {appSubtitle}\n </p>\n </div>\n </div>\n )}\n {!hideCollapseButton && (\n <Button\n isIconOnly\n size=\"sm\"\n variant=\"light\"\n onPress={toggleCollapse}\n >\n {isCollapsed ? (\n isRTLMode ? (\n <ChevronLeft className=\"w-4 h-4\" />\n ) : (\n <ChevronRight className=\"w-4 h-4\" />\n )\n ) : isRTLMode ? (\n <ChevronRight className=\"w-4 h-4\" />\n ) : (\n <ChevronLeft className=\"w-4 h-4\" />\n )}\n </Button>\n )}\n </div>\n )}\n\n {/* Navigation */}\n <nav className=\"flex-1 overflow-y-auto px-4 py-5\">\n <div className=\"space-y-6\">\n {sections.map((section) => (\n <div key={section.id}>\n {section.title && !isCollapsed && (\n <div className={heroUICn(\"px-3 mb-3\", navSectionClassName)}>\n <p className=\"text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400\">\n {section.title}\n </p>\n </div>\n )}\n <ul className=\"space-y-2\">\n {section.items.map((item) => renderNavItem(item))}\n </ul>\n </div>\n ))}\n </div>\n </nav>\n\n {/* Footer */}\n {customFooter}\n </aside>\n );\n}\n","'use client';\n\nimport { useState, useEffect, Fragment } from 'react';\nimport { Badge } from '@heroui/badge';\nimport { Button } from '@heroui/button';\nimport { Dropdown, DropdownTrigger, DropdownMenu, DropdownItem } from '@heroui/dropdown';\nimport { Avatar } from '@heroui/avatar';\nimport { Divider } from '@heroui/divider';\nimport {\n Bell,\n User,\n Settings,\n LogOut,\n ChevronDown,\n Clock,\n CheckCircle,\n AlertTriangle,\n Info,\n Sun,\n Moon,\n Monitor,\n Languages,\n Check,\n} from 'lucide-react';\nimport { useTheme } from 'next-themes';\nimport { NavbarProps, Notification } from '../../types';\nimport { cn, defaultTranslate } from '../../utils';\n\n/**\n * Dynamic Navbar Component\n *\n * A flexible and customizable navbar component with support for:\n * - User profile dropdown\n * - Notifications system\n * - Theme switcher\n * - Language switcher\n * - Custom left and right content\n * - Dark mode support\n *\n * @example\n * ```tsx\n * <Navbar\n * user={{ name: 'John Doe', email: 'john@example.com' }}\n * notifications={[...]}\n * onLogout={() => console.log('Logout')}\n * showThemeToggle\n * />\n * ```\n */\nexport function Navbar({\n user = { name: 'Admin', role: 'Administrator' },\n notifications = [],\n onNotificationClick,\n onMarkAllAsRead,\n onLogout,\n onProfileClick,\n onSettingsClick,\n languages = [\n { code: 'en', label: 'English' },\n { code: 'ar', label: 'العربية' },\n ],\n currentLanguage = 'en',\n onLanguageChange,\n showThemeToggle = true,\n showNotifications = true,\n showLanguageSwitcher = true,\n leftContent,\n rightContent,\n className,\n t = defaultTranslate,\n containerClassName,\n notificationsClassName,\n userMenuClassName,\n backgroundClassName,\n}: NavbarProps) {\n const { theme, setTheme } = useTheme();\n const [mounted, setMounted] = useState(false);\n const [showNotificationsDropdown, setShowNotificationsDropdown] = useState(false);\n const unreadCount = notifications.filter((n) => !n.read).length;\n\n // Ensure component is mounted before rendering theme-dependent styles\n useEffect(() => {\n setMounted(true);\n }, []);\n\n // Force re-render when theme changes (theme is already used in the component)\n // mounted state ensures proper hydration\n void mounted; // Used for hydration check\n\n const getNotificationIcon = (type: string) => {\n switch (type) {\n case 'success':\n return <CheckCircle className=\"w-5 h-5 text-success\" />;\n case 'warning':\n return <AlertTriangle className=\"w-5 h-5 text-warning\" />;\n case 'error':\n return <AlertTriangle className=\"w-5 h-5 text-danger\" />;\n default:\n return <Info className=\"w-5 h-5 text-primary\" />;\n }\n };\n\n const handleNotificationClick = (notification: Notification) => {\n onNotificationClick?.(notification);\n };\n\n return (\n <nav\n suppressHydrationWarning\n className={cn(\n 'h-16 bg-white dark:bg-slate-900 border-b border-gray-200 dark:border-slate-700 px-6 flex items-center justify-between sticky top-0 z-40',\n backgroundClassName,\n containerClassName,\n className\n )}\n >\n {/* Left Section */}\n <div className=\"flex items-center gap-4\">\n {leftContent}\n </div>\n\n {/* Right Section */}\n <div className=\"flex items-center gap-3\">\n {rightContent}\n\n {/* Notifications Dropdown */}\n {showNotifications && (\n <Dropdown\n isOpen={showNotificationsDropdown}\n onOpenChange={setShowNotificationsDropdown}\n placement=\"bottom-end\"\n >\n <DropdownTrigger>\n <Button\n isIconOnly\n variant=\"light\"\n radius=\"full\"\n className=\"relative\"\n >\n <Badge\n content={unreadCount}\n color=\"danger\"\n isInvisible={unreadCount === 0}\n size=\"sm\"\n placement=\"top-right\"\n >\n <Bell className=\"w-5 h-5\" />\n </Badge>\n </Button>\n </DropdownTrigger>\n <DropdownMenu\n aria-label={t('notifications')}\n className={cn(\"w-[480px] max-h-[500px] overflow-y-auto\", notificationsClassName)}\n closeOnSelect={false}\n >\n <DropdownItem\n key=\"header\"\n isReadOnly\n className=\"h-14 gap-2\"\n textValue={t('notifications')}\n >\n <div className=\"flex items-center justify-between px-2\">\n <p className=\"font-bold text-lg text-gray-900 dark:text-white\">{t('notifications')}</p>\n {unreadCount > 0 && (\n <Button\n size=\"sm\"\n variant=\"flat\"\n color=\"primary\"\n onPress={onMarkAllAsRead}\n >\n {t('markAllRead')}\n </Button>\n )}\n </div>\n </DropdownItem>\n <DropdownItem key=\"divider1\" isReadOnly textValue=\"divider\">\n <Divider />\n </DropdownItem>\n {notifications.length === 0 ? (\n <DropdownItem key=\"empty\" isReadOnly textValue={t('noNotifications')}>\n <div className=\"text-center py-8 text-gray-500\">\n <Bell className=\"w-12 h-12 mx-auto mb-2 opacity-50\" />\n <p className=\"text-sm\">{t('noNotifications')}</p>\n </div>\n </DropdownItem>\n ) : (\n <>\n {notifications.map((notification, index) => (\n <Fragment key={notification.id}>\n <DropdownItem\n key={notification.id}\n textValue={notification.title}\n className={`py-3 px-3 ${!notification.read ? 'bg-primary/5' : ''}`}\n onPress={() => handleNotificationClick(notification)}\n >\n <div className=\"flex gap-3\">\n <div className=\"flex-shrink-0 mt-1\">\n {getNotificationIcon(notification.type)}\n </div>\n <div className=\"flex-1 min-w-0\">\n <div className=\"flex items-start justify-between gap-2\">\n <p className=\"font-semibold text-sm text-gray-900 dark:text-white\">{notification.title}</p>\n {!notification.read && (\n <div className=\"w-2 h-2 bg-primary rounded-full flex-shrink-0 mt-1\" />\n )}\n </div>\n <p className=\"text-xs text-gray-600 dark:text-gray-400 mt-1 line-clamp-2\">\n {notification.message}\n </p>\n <div className=\"flex items-center gap-1 mt-2 text-xs text-gray-500\">\n <Clock className=\"w-3 h-3\" />\n <span>{notification.time}</span>\n </div>\n </div>\n </div>\n </DropdownItem>\n {index < notifications.length - 1 && (\n <DropdownItem\n key={`divider-${notification.id}`}\n isReadOnly\n textValue=\"divider\"\n >\n <Divider className=\"my-0\" />\n </DropdownItem>\n )}\n </Fragment>\n ))}\n </>\n )}\n </DropdownMenu>\n </Dropdown>\n )}\n\n {/* User Profile Dropdown */}\n <Dropdown placement=\"bottom-end\">\n <DropdownTrigger>\n <Button variant=\"light\" className=\"gap-2 px-2 h-auto py-2\">\n <Avatar\n size=\"sm\"\n name={user.name}\n src={user.avatarUrl}\n className=\"w-9 h-9 bg-gradient-to-br from-primary to-secondary text-white font-semibold\"\n />\n <div className=\"hidden md:flex flex-col items-start\">\n <span className=\"text-sm font-semibold text-gray-900 dark:text-white\">\n {user.name}\n </span>\n <span className=\"text-xs text-gray-500\">\n {user.role || user.email || t('user')}\n </span>\n </div>\n <ChevronDown className=\"w-4 h-4 text-gray-500 hidden md:block\" />\n </Button>\n </DropdownTrigger>\n <DropdownMenu aria-label=\"User menu\" className={cn(\"w-80\", userMenuClassName)}>\n {/* Profile Info */}\n <DropdownItem\n key=\"profile-info\"\n isReadOnly\n textValue=\"Profile info\"\n className=\"h-14 gap-2\"\n >\n <div className=\"flex items-center gap-3\">\n <Avatar\n size=\"md\"\n name={user.name}\n src={user.avatarUrl}\n className=\"w-10 h-10 bg-gradient-to-br from-primary to-secondary text-white font-semibold\"\n />\n <div className=\"flex flex-col\">\n <span className=\"text-sm font-semibold text-gray-900 dark:text-white\">{user.name}</span>\n <span className=\"text-xs text-gray-500 dark:text-gray-400\">\n {user.role || user.email || t('user')}\n </span>\n </div>\n </div>\n </DropdownItem>\n <DropdownItem key=\"divider1\" isReadOnly textValue=\"divider\">\n <Divider />\n </DropdownItem>\n\n {/* Profile and Settings */}\n {onProfileClick ? (\n <DropdownItem\n key=\"profile\"\n startContent={<User className=\"w-4 h-4\" />}\n textValue={t('profile')}\n onPress={onProfileClick}\n className=\"text-gray-900 dark:text-white\"\n >\n {t('profile')}\n </DropdownItem>\n ) : null}\n {onSettingsClick ? (\n <DropdownItem\n key=\"settings\"\n startContent={<Settings className=\"w-4 h-4\" />}\n textValue={t('settings')}\n onPress={onSettingsClick}\n className=\"text-gray-900 dark:text-white\"\n >\n {t('settings')}\n </DropdownItem>\n ) : null}\n\n {(onProfileClick || onSettingsClick) ? (\n <DropdownItem key=\"divider2\" isReadOnly textValue=\"divider\">\n <Divider />\n </DropdownItem>\n ) : null}\n\n {/* Theme Section */}\n {showThemeToggle ? (\n <Fragment>\n <DropdownItem\n key=\"theme-header\"\n isReadOnly\n className=\"opacity-60 text-xs font-semibold text-gray-700 dark:text-gray-300\"\n textValue=\"Theme\"\n >\n {t('theme')}\n </DropdownItem>\n <DropdownItem\n key=\"theme-light\"\n startContent={<Sun className=\"w-4 h-4\" />}\n endContent={\n theme === 'light' ? <Check className=\"w-4 h-4 text-primary\" /> : null\n }\n textValue=\"Light\"\n onPress={() => setTheme('light')}\n className=\"text-gray-900 dark:text-white\"\n >\n {t('light')}\n </DropdownItem>\n <DropdownItem\n key=\"theme-dark\"\n startContent={<Moon className=\"w-4 h-4\" />}\n endContent={\n theme === 'dark' ? <Check className=\"w-4 h-4 text-primary\" /> : null\n }\n textValue=\"Dark\"\n onPress={() => setTheme('dark')}\n className=\"text-gray-900 dark:text-white\"\n >\n {t('dark')}\n </DropdownItem>\n <DropdownItem\n key=\"theme-system\"\n startContent={<Monitor className=\"w-4 h-4\" />}\n endContent={\n theme === 'system' ? <Check className=\"w-4 h-4 text-primary\" /> : null\n }\n textValue=\"System\"\n onPress={() => setTheme('system')}\n className=\"text-gray-900 dark:text-white\"\n >\n {t('system')}\n </DropdownItem>\n <DropdownItem key=\"divider3\" isReadOnly textValue=\"divider\">\n <Divider />\n </DropdownItem>\n </Fragment>\n ) : null}\n\n {/* Language Section */}\n {showLanguageSwitcher && languages.length > 0 ? (\n <Fragment>\n <DropdownItem\n key=\"language-header\"\n isReadOnly\n className=\"opacity-60 text-xs font-semibold text-gray-700 dark:text-gray-300\"\n textValue=\"Language\"\n >\n {t('language')}\n </DropdownItem>\n {languages.map((lang) => {\n const LangIcon = lang.icon || Languages;\n return (\n <DropdownItem\n key={`language-${lang.code}`}\n startContent={<LangIcon className=\"w-4 h-4\" />}\n endContent={\n currentLanguage === lang.code ? (\n <Check className=\"w-4 h-4 text-primary\" />\n ) : null\n }\n textValue={lang.label}\n onPress={() => onLanguageChange?.(lang.code)}\n className=\"text-gray-900 dark:text-white\"\n >\n {lang.label}\n </DropdownItem>\n );\n })}\n <DropdownItem key=\"divider4\" isReadOnly textValue=\"divider\">\n <Divider />\n </DropdownItem>\n </Fragment>\n ) : null}\n\n {/* Logout */}\n {onLogout ? (\n <DropdownItem\n key=\"logout\"\n color=\"danger\"\n startContent={<LogOut className=\"w-4 h-4\" />}\n textValue={t('logout')}\n onPress={onLogout}\n className=\"text-danger\"\n >\n {t('logout')}\n </DropdownItem>\n ) : null}\n </DropdownMenu>\n </Dropdown>\n </div>\n </nav>\n );\n}\n","'use client';\n\nimport { Card, CardBody } from '@heroui/card';\nimport { LucideIcon } from 'lucide-react';\n\nexport type StatColorType = 'primary' | 'success' | 'warning' | 'danger' | 'secondary' | 'default';\n\ninterface StatsCardProps {\n label: string;\n value: string | number;\n icon: LucideIcon;\n color?: StatColorType;\n subtitle?: string;\n trend?: {\n value: number;\n isPositive: boolean;\n };\n}\n\nconst colorClasses: Record<StatColorType, { border: string; bg: string; text: string }> = {\n primary: {\n border: 'border-l-primary',\n bg: 'bg-primary/10',\n text: 'text-primary',\n },\n success: {\n border: 'border-l-success',\n bg: 'bg-success/10',\n text: 'text-success',\n },\n warning: {\n border: 'border-l-warning',\n bg: 'bg-warning/10',\n text: 'text-warning',\n },\n danger: {\n border: 'border-l-danger',\n bg: 'bg-danger/10',\n text: 'text-danger',\n },\n secondary: {\n border: 'border-l-secondary',\n bg: 'bg-secondary/10',\n text: 'text-secondary',\n },\n default: {\n border: 'border-l-default',\n bg: 'bg-default/10',\n text: 'text-default',\n },\n};\n\nexport function StatsCard({ label, value, icon: Icon, color = 'primary', subtitle, trend }: StatsCardProps) {\n const colors = colorClasses[color];\n\n return (\n <Card className={`border-l-4 ${colors.border} shadow-md hover:shadow-lg transition-shadow`}>\n <CardBody className=\"p-4\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex-1\">\n <p className=\"text-xs font-medium text-gray-600 dark:text-gray-400 uppercase tracking-wide\">\n {label}\n </p>\n <div className=\"flex items-baseline gap-2 mt-1\">\n <p className=\"text-2xl font-bold\">{value}</p>\n {trend && (\n <span className={`text-xs font-medium ${trend.isPositive ? 'text