lazyBoy/apps/web/src/animated-icons.tsx

61 lines
2.7 KiB
TypeScript
Raw Normal View History

2026-09-04 05:41:09 +00:00
import UseAnimations from "react-useanimations";
import type { Animation } from "react-useanimations/utils";
import activity from "react-useanimations/lib/activity";
2026-09-04 14:43:29 +00:00
import archive from "react-useanimations/lib/archive";
import star from "react-useanimations/lib/star";
2026-09-04 05:41:09 +00:00
import airplay from "react-useanimations/lib/airplay";
import arrowDown from "react-useanimations/lib/arrowDown";
import arrowRightCircle from "react-useanimations/lib/arrowRightCircle";
import download from "react-useanimations/lib/download";
import help from "react-useanimations/lib/help";
import info from "react-useanimations/lib/info";
import menu3 from "react-useanimations/lib/menu3";
import notification from "react-useanimations/lib/notification";
import playPause from "react-useanimations/lib/playPause";
import plusToX from "react-useanimations/lib/plusToX";
import pocket from "react-useanimations/lib/pocket";
import settings2 from "react-useanimations/lib/settings2";
import skipBack from "react-useanimations/lib/skipBack";
import toggle from "react-useanimations/lib/toggle";
import userPlus from "react-useanimations/lib/userPlus";
import video from "react-useanimations/lib/video";
type IconProps={className?:string;size?:number};
function animatedIcon(animation:Animation,defaultSize=16,reverse=false){
return function AnimatedIcon({className,size=defaultSize}:IconProps){
return <UseAnimations
animation={animation}
reverse={reverse}
size={size}
strokeColor="currentColor"
className={["animated-icon",className].filter(Boolean).join(" ")}
aria-hidden="true"
wrapperStyle={{display:"inline-flex",alignItems:"center",justifyContent:"center",flex:"0 0 auto"}}
/>;
};
}
export const BotIcon=animatedIcon(userPlus,18);
export const Brain=animatedIcon(activity,17);
export const ChevronDown=animatedIcon(arrowDown,14);
export const ChevronsRight=animatedIcon(arrowRightCircle,17);
export const CircleHelp=animatedIcon(help,16);
export const ClipboardPaste=animatedIcon(download,17);
export const Computer=animatedIcon(airplay,18);
export const Ellipsis=animatedIcon(menu3,18);
export const Info=animatedIcon(info,16);
export const LogOut=animatedIcon(arrowRightCircle,16);
export const Megaphone=animatedIcon(notification,16);
2026-09-04 14:43:29 +00:00
export const Paperclip=animatedIcon(archive,16);
2026-09-04 05:41:09 +00:00
export const Pin=animatedIcon(pocket,14);
2026-09-04 14:43:29 +00:00
export const Sparkle=animatedIcon(star,16);
2026-09-04 05:41:09 +00:00
export const Plug=animatedIcon(toggle,16);
export const Plus=animatedIcon(plusToX,17);
export const RefreshCw=animatedIcon(skipBack,14);
export const Settings=animatedIcon(settings2,16);
export const Smartphone=animatedIcon(video,16);
export const Square=animatedIcon(playPause,14);
export const Users=animatedIcon(userPlus,17);
export const X=animatedIcon(plusToX,16,true);