interface IconProps {
  className?: string;
}

const base = { fill: 'none', viewBox: '0 0 24 24', stroke: 'currentColor' } as const;
const path = { strokeLinecap: 'round', strokeLinejoin: 'round', strokeWidth: 2 } as const;

export function IconEdit({ className = 'h-3.5 w-3.5' }: IconProps) {
  return (
    <svg className={className} {...base}>
      <path {...path} d="M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z" />
    </svg>
  );
}

export function IconTrash({ className = 'h-3.5 w-3.5' }: IconProps) {
  return (
    <svg className={className} {...base}>
      <path {...path} d="M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16" />
    </svg>
  );
}

export function IconDuplicate({ className = 'h-3.5 w-3.5' }: IconProps) {
  return (
    <svg className={className} {...base}>
      <path {...path} d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z" />
    </svg>
  );
}

export function IconPlus({ className = 'h-5 w-5' }: IconProps) {
  return (
    <svg className={className} {...base}>
      <path {...path} d="M12 4v16m8-8H4" />
    </svg>
  );
}

export function IconCheck({ className = 'h-4 w-4' }: IconProps) {
  return (
    <svg className={className} fill="currentColor" viewBox="0 0 24 24">
      <path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z" />
    </svg>
  );
}

export function IconClose({ className = 'h-5 w-5' }: IconProps) {
  return (
    <svg className={className} {...base}>
      <path {...path} d="M6 18L18 6M6 6l12 12" />
    </svg>
  );
}
