import React from 'react'; import clsx from 'clsx'; interface AudioLevelMeterProps { level: number; // 0-100 percentage isActive: boolean; className?: string; size?: 'sm' | 'md' | 'lg'; showLabel?: boolean; } export const AudioLevelMeter: React.FC = ({ level, isActive, className, size = 'md', showLabel = true }) => { const sizeClasses = { sm: 'h-1', md: 'h-2', lg: 'h-3' }; const getLevelColor = (level: number) => { if (level < 20) return 'bg-green-500'; if (level < 60) return 'bg-yellow-500'; return 'bg-red-500'; }; const getTextColor = (level: number) => { if (level < 20) return 'text-green-600 dark:text-green-400'; if (level < 60) return 'text-yellow-600 dark:text-yellow-400'; return 'text-red-600 dark:text-red-400'; }; return (
{showLabel && (
Microphone Level {isActive ? `${Math.round(level)}%` : 'No Signal'}
)}
{/* Peak indicators */}
0% 50% 100%
); };