Spaces:
Sleeping
Sleeping
| import React from 'react'; | |
| interface IconProps { | |
| className?: string; | |
| size?: number; | |
| } | |
| export const VideoIcon: React.FC<IconProps> = ({ className = '', size = 24 }) => ( | |
| <svg | |
| className={className} | |
| width={size} | |
| height={size} | |
| viewBox="0 0 24 24" | |
| fill="none" | |
| stroke="currentColor" | |
| strokeWidth="2" | |
| strokeLinecap="round" | |
| strokeLinejoin="round" | |
| > | |
| <polygon points="23 7 16 12 23 17 23 7" /> | |
| <rect x="1" y="5" width="15" height="14" rx="2" ry="2" /> | |
| </svg> | |
| ); | |
| export const SparklesIcon: React.FC<IconProps> = ({ className = '', size = 24 }) => ( | |
| <svg | |
| className={className} | |
| width={size} | |
| height={size} | |
| viewBox="0 0 24 24" | |
| fill="none" | |
| stroke="currentColor" | |
| strokeWidth="2" | |
| strokeLinecap="round" | |
| strokeLinejoin="round" | |
| > | |
| <path d="M12 3l1.912 5.813a2 2 0 001.275 1.275L21 12l-5.813 1.912a2 2 0 00-1.275 1.275L12 21l-1.912-5.813a2 2 0 00-1.275-1.275L3 12l5.813-1.912a2 2 0 001.275-1.275L12 3z" /> | |
| </svg> | |
| ); | |
| export const UploadIcon: React.FC<IconProps> = ({ className = '', size = 24 }) => ( | |
| <svg | |
| className={className} | |
| width={size} | |
| height={size} | |
| viewBox="0 0 24 24" | |
| fill="none" | |
| stroke="currentColor" | |
| strokeWidth="2" | |
| strokeLinecap="round" | |
| strokeLinejoin="round" | |
| > | |
| <path d="M21 15v4a2 2 0 01-2 2H5a2 2 0 01-2-2v-4" /> | |
| <polyline points="17 8 12 3 7 8" /> | |
| <line x1="12" y1="3" x2="12" y2="15" /> | |
| </svg> | |
| ); | |
| export const CheckIcon: React.FC<IconProps> = ({ className = '', size = 24 }) => ( | |
| <svg | |
| className={className} | |
| width={size} | |
| height={size} | |
| viewBox="0 0 24 24" | |
| fill="none" | |
| stroke="currentColor" | |
| strokeWidth="2" | |
| strokeLinecap="round" | |
| strokeLinejoin="round" | |
| > | |
| <polyline points="20 6 9 17 4 12" /> | |
| </svg> | |
| ); | |
| export const XIcon: React.FC<IconProps> = ({ className = '', size = 24 }) => ( | |
| <svg | |
| className={className} | |
| width={size} | |
| height={size} | |
| viewBox="0 0 24 24" | |
| fill="none" | |
| stroke="currentColor" | |
| strokeWidth="2" | |
| strokeLinecap="round" | |
| strokeLinejoin="round" | |
| > | |
| <line x1="18" y1="6" x2="6" y2="18" /> | |
| <line x1="6" y1="6" x2="18" y2="18" /> | |
| </svg> | |
| ); | |
| export const ArrowRightIcon: React.FC<IconProps> = ({ className = '', size = 24 }) => ( | |
| <svg | |
| className={className} | |
| width={size} | |
| height={size} | |
| viewBox="0 0 24 24" | |
| fill="none" | |
| stroke="currentColor" | |
| strokeWidth="2" | |
| strokeLinecap="round" | |
| strokeLinejoin="round" | |
| > | |
| <line x1="5" y1="12" x2="19" y2="12" /> | |
| <polyline points="12 5 19 12 12 19" /> | |
| </svg> | |
| ); | |
| export const ArrowLeftIcon: React.FC<IconProps> = ({ className = '', size = 24 }) => ( | |
| <svg | |
| className={className} | |
| width={size} | |
| height={size} | |
| viewBox="0 0 24 24" | |
| fill="none" | |
| stroke="currentColor" | |
| strokeWidth="2" | |
| strokeLinecap="round" | |
| strokeLinejoin="round" | |
| > | |
| <line x1="19" y1="12" x2="5" y2="12" /> | |
| <polyline points="12 19 5 12 12 5" /> | |
| </svg> | |
| ); | |
| export const ImageIcon: React.FC<IconProps> = ({ className = '', size = 24 }) => ( | |
| <svg | |
| className={className} | |
| width={size} | |
| height={size} | |
| viewBox="0 0 24 24" | |
| fill="none" | |
| stroke="currentColor" | |
| strokeWidth="2" | |
| strokeLinecap="round" | |
| strokeLinejoin="round" | |
| > | |
| <rect x="3" y="3" width="18" height="18" rx="2" ry="2" /> | |
| <circle cx="8.5" cy="8.5" r="1.5" /> | |
| <polyline points="21 15 16 10 5 21" /> | |
| </svg> | |
| ); | |
| export const SettingsIcon: React.FC<IconProps> = ({ className = '', size = 24 }) => ( | |
| <svg | |
| className={className} | |
| width={size} | |
| height={size} | |
| viewBox="0 0 24 24" | |
| fill="none" | |
| stroke="currentColor" | |
| strokeWidth="2" | |
| strokeLinecap="round" | |
| strokeLinejoin="round" | |
| > | |
| <circle cx="12" cy="12" r="3" /> | |
| <path d="M19.4 15a1.65 1.65 0 00.33 1.82l.06.06a2 2 0 010 2.83 2 2 0 01-2.83 0l-.06-.06a1.65 1.65 0 00-1.82-.33 1.65 1.65 0 00-1 1.51V21a2 2 0 01-2 2 2 2 0 01-2-2v-.09A1.65 1.65 0 009 19.4a1.65 1.65 0 00-1.82.33l-.06.06a2 2 0 01-2.83 0 2 2 0 010-2.83l.06-.06a1.65 1.65 0 00.33-1.82 1.65 1.65 0 00-1.51-1H3a2 2 0 01-2-2 2 2 0 012-2h.09A1.65 1.65 0 004.6 9a1.65 1.65 0 00-.33-1.82l-.06-.06a2 2 0 010-2.83 2 2 0 012.83 0l.06.06a1.65 1.65 0 001.82.33H9a1.65 1.65 0 001-1.51V3a2 2 0 012-2 2 2 0 012 2v.09a1.65 1.65 0 001 1.51 1.65 1.65 0 001.82-.33l.06-.06a2 2 0 012.83 0 2 2 0 010 2.83l-.06.06a1.65 1.65 0 00-.33 1.82V9a1.65 1.65 0 001.51 1H21a2 2 0 012 2 2 2 0 01-2 2h-.09a1.65 1.65 0 00-1.51 1z" /> | |
| </svg> | |
| ); | |
| export const PlayIcon: React.FC<IconProps> = ({ className = '', size = 24 }) => ( | |
| <svg | |
| className={className} | |
| width={size} | |
| height={size} | |
| viewBox="0 0 24 24" | |
| fill="currentColor" | |
| > | |
| <polygon points="5 3 19 12 5 21 5 3" /> | |
| </svg> | |
| ); | |
| export const RefreshIcon: React.FC<IconProps> = ({ className = '', size = 24 }) => ( | |
| <svg | |
| className={className} | |
| width={size} | |
| height={size} | |
| viewBox="0 0 24 24" | |
| fill="none" | |
| stroke="currentColor" | |
| strokeWidth="2" | |
| strokeLinecap="round" | |
| strokeLinejoin="round" | |
| > | |
| <polyline points="23 4 23 10 17 10" /> | |
| <polyline points="1 20 1 14 7 14" /> | |
| <path d="M3.51 9a9 9 0 0114.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0020.49 15" /> | |
| </svg> | |
| ); | |
| export const DownloadIcon: React.FC<IconProps> = ({ className = '', size = 24 }) => ( | |
| <svg | |
| className={className} | |
| width={size} | |
| height={size} | |
| viewBox="0 0 24 24" | |
| fill="none" | |
| stroke="currentColor" | |
| strokeWidth="2" | |
| strokeLinecap="round" | |
| strokeLinejoin="round" | |
| > | |
| <path d="M21 15v4a2 2 0 01-2 2H5a2 2 0 01-2-2v-4" /> | |
| <polyline points="7 10 12 15 17 10" /> | |
| <line x1="12" y1="15" x2="12" y2="3" /> | |
| </svg> | |
| ); | |
| export const ZapIcon: React.FC<IconProps> = ({ className = '', size = 24 }) => ( | |
| <svg | |
| className={className} | |
| width={size} | |
| height={size} | |
| viewBox="0 0 24 24" | |
| fill="none" | |
| stroke="currentColor" | |
| strokeWidth="2" | |
| strokeLinecap="round" | |
| strokeLinejoin="round" | |
| > | |
| <polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2" /> | |
| </svg> | |
| ); | |
| export const BrainIcon: React.FC<IconProps> = ({ className = '', size = 24 }) => ( | |
| <svg | |
| className={className} | |
| width={size} | |
| height={size} | |
| viewBox="0 0 24 24" | |
| fill="none" | |
| stroke="currentColor" | |
| strokeWidth="2" | |
| strokeLinecap="round" | |
| strokeLinejoin="round" | |
| > | |
| <path d="M9.5 2A2.5 2.5 0 0112 4.5v15a2.5 2.5 0 01-4.96.44 2.5 2.5 0 01-2.96-3.08 3 3 0 01-.34-5.58 2.5 2.5 0 011.32-4.24 2.5 2.5 0 011.98-3A2.5 2.5 0 019.5 2z" /> | |
| <path d="M14.5 2A2.5 2.5 0 0012 4.5v15a2.5 2.5 0 004.96.44 2.5 2.5 0 002.96-3.08 3 3 0 00.34-5.58 2.5 2.5 0 00-1.32-4.24 2.5 2.5 0 00-1.98-3A2.5 2.5 0 0014.5 2z" /> | |
| </svg> | |
| ); | |
| // Logo icon for the app | |
| export const LogoIcon: React.FC<IconProps> = ({ className = '', size = 40 }) => ( | |
| <svg | |
| className={className} | |
| width={size} | |
| height={size} | |
| viewBox="0 0 40 40" | |
| fill="none" | |
| > | |
| <defs> | |
| <linearGradient id="logoGradient" x1="0%" y1="0%" x2="100%" y2="100%"> | |
| <stop offset="0%" stopColor="#ff6b6b" /> | |
| <stop offset="100%" stopColor="#22b8cf" /> | |
| </linearGradient> | |
| </defs> | |
| <rect x="2" y="2" width="36" height="36" rx="8" fill="url(#logoGradient)" /> | |
| <polygon points="16 12 16 28 28 20" fill="white" /> | |
| <circle cx="12" cy="12" r="3" fill="white" opacity="0.8" /> | |
| <circle cx="28" cy="28" r="3" fill="white" opacity="0.8" /> | |
| </svg> | |
| ); | |
| // Kling logo placeholder | |
| export const KlingLogo: React.FC<IconProps> = ({ className = '', size = 48 }) => ( | |
| <div className={`${className} flex items-center justify-center`} style={{ width: size, height: size }}> | |
| <span className="text-3xl font-bold gradient-text">K</span> | |
| </div> | |
| ); | |
| // Replicate logo placeholder | |
| export const ReplicateLogo: React.FC<IconProps> = ({ className = '', size = 48 }) => ( | |
| <div className={`${className} flex items-center justify-center`} style={{ width: size, height: size }}> | |
| <span className="text-3xl font-bold gradient-text-electric">R</span> | |
| </div> | |
| ); | |