import type { ReactElement, ReactNode } from 'react';
// Inline stroke icons so glyphs render identically on every OS/browser (no
// emoji font variance). `currentColor` lets callers theme them via CSS.
interface IconProps {
size?: number;
className?: string;
}
const base = (
size: number,
className: string | undefined,
children: ReactNode,
strokeWidth = 2,
): ReactElement => (
);
// Solid-fill variant helper (play triangle, filled dots, etc.).
const solid = (size: number, className: string | undefined, children: ReactNode): ReactElement => (
);
export const PaperclipIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(
size,
className,
,
);
export const MicIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(
size,
className,
<>
>,
);
export const VideoIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(
size,
className,
<>
>,
);
export const StopIcon = ({ size = 20, className }: IconProps): ReactElement =>
solid(size, className, );
export const SendIcon = ({ size = 20, className }: IconProps): ReactElement =>
solid(size, className, );
export const CloseIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(
size,
className,
<>
>,
);
export const FileIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(
size,
className,
<>
>,
);
export const SearchIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(
size,
className,
<>
>,
);
export const PlayIcon = ({ size = 20, className }: IconProps): ReactElement =>
solid(size, className, );
export const PauseIcon = ({ size = 20, className }: IconProps): ReactElement =>
solid(
size,
className,
<>
>,
);
export const RefreshIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(
size,
className,
<>
>,
);
export const DownloadIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(
size,
className,
<>
>,
);
export const ImageIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(
size,
className,
<>
>,
);
export const CheckIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(size, className, , 2.4);
export const DoubleCheckIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(
size,
className,
<>
>,
2.4,
);
export const PlusIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(
size,
className,
<>
>,
);
export const ChevronLeftIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(size, className, );
export const SunIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(
size,
className,
<>
>,
);
export const MoonIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(size, className, );
export const MonitorIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(
size,
className,
<>
>,
);
export const LogOutIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(
size,
className,
<>
>,
);
export const TrashIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(
size,
className,
<>
>,
);
export const EditIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(
size,
className,
<>
>,
);
export const SmileIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(
size,
className,
<>
>,
);
export const UsersIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(
size,
className,
<>
>,
);
export const PinIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(
size,
className,
<>
>,
);
export const PinOffIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(
size,
className,
<>
>,
);
export const FolderIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(
size,
className,
,
);
export const CopyIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(
size,
className,
<>
>,
);
export const EraserIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(
size,
className,
<>
>,
);
export const SettingsIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(
size,
className,
<>
>,
);
export const ChatsIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(
size,
className,
,
);
export const UserIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(
size,
className,
<>
>,
);
export const ChevronDownIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(size, className, );
export const CameraIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(
size,
className,
<>
>,
);
export const MegaphoneIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(
size,
className,
<>
>,
);
export const ForwardIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(
size,
className,
<>
>,
);
export const SelectIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(
size,
className,
<>
>,
);
export const ReplyIcon = ({ size = 20, className }: IconProps): ReactElement =>
base(
size,
className,
<>
>,
);
// Zovi brand mark (the "bubble Z") — filled glyph only; the container supplies
// the gradient tile so one asset works at every size.
export const BrandGlyph = ({ size = 20, className }: IconProps): ReactElement => (
);