cynarAI 6c7eed7580 Initial clean evOo-local from f00577b
Fresh history cut from cynarAI/evoo antigravity-handoff/project-timeline
(Voice First + project timeline). Brand docs/titles as evOo; keep @rakazo/*
packages as tech debt. Excludes node_modules, caches, secrets, voice blobs.
2026-09-20 17:15:16 +02:00

28 lines
655 B
TypeScript

import { cn } from "@rakazo/ui-web/lib/utils";
import type { LucideIcon, LucideProps } from "lucide-react";
const iconSizeClass = {
sm: "size-icon-sm",
md: "size-icon-md",
lg: "size-icon-lg",
} as const;
export type IconSize = keyof typeof iconSizeClass;
export type IconProps = Omit<LucideProps, "size"> & {
icon: LucideIcon;
size?: IconSize;
};
function Icon({ icon: IconComponent, size = "md", className, ...props }: IconProps) {
return (
<IconComponent
aria-hidden={props["aria-hidden"] ?? true}
className={cn("shrink-0", iconSizeClass[size], className)}
{...props}
/>
);
}
export { Icon, iconSizeClass };