'use client'; import type { ReactElement, SVGProps } from 'react'; /** * Original SF-symbol-inspired icon set drawn from scratch (no Apple assets). * All icons inherit `currentColor` and a shared 24x24 grid. */ export type IconName = | 'library' | 'collections' | 'heart' | 'heart-fill' | 'download' | 'map' | 'video' | 'screenshot' | 'person-circle' | 'people' | 'chat' | 'trash' | 'lock' | 'unlock' | 'duplicates' | 'folder' | 'sidebar' | 'chevron-left' | 'chevron-right' | 'chevron-down' | 'minus' | 'plus' | 'aspect' | 'filter' | 'ellipsis' | 'info' | 'share' | 'search' | 'check' | 'close' | 'compass' | 'camera' | 'crop' | 'adjust' | 'filters' | 'rotate' | 'wand' | 'image' | 'clock' | 'suitcase' | 'play' | 'pause' | 'volume' | 'mute' | 'expand' | 'maximize' | 'minimize' | 'pip' | 'tag' | 'document' | 'pin' | 'pencil' | 'mic'; export interface IconProps extends SVGProps { name: IconName; size?: number; } export function Icon({ name, size = 20, ...rest }: IconProps) { return ( ); } // `ReactElement`, not the global `JSX.Element`: React 19 removed the global JSX // namespace, so a React-19 host compiling this source would fail to resolve it. const paths: Record = { mic: ( <> ), pencil: ( <> ), library: ( <> ), collections: ( <> ), heart: ( ), 'heart-fill': ( ), download: ( <> ), map: ( <> ), video: ( <> ), screenshot: ( <> ), document: ( <> ), 'person-circle': ( <> ), people: ( <> ), chat: ( <> ), trash: ( <> ), lock: ( <> ), unlock: ( <> ), duplicates: ( <> ), folder: ( ), sidebar: ( <> ), 'chevron-left': , 'chevron-right': , 'chevron-down': , minus: , plus: , aspect: ( <> ), filter: , ellipsis: ( <> ), info: ( <> ), share: ( <> ), search: ( <> ), check: , close: , compass: ( <> ), camera: ( <> ), crop: ( <> ), adjust: ( <> ), filters: ( <> ), rotate: ( <> ), wand: ( <> ), image: ( <> ), clock: ( <> ), suitcase: ( <> ), play: , pause: ( <> ), volume: ( <> ), mute: ( <> ), expand: ( ), /* Four corner brackets pushing outward — "enter full screen". */ maximize: ( <> ), /* Same brackets pulled inward — "exit full screen". */ minimize: ( <> ), pip: ( <> ), tag: ( <> ), pin: ( <> ), };