'use client'; import React from 'react'; import { createIcon } from '@gluestack-ui/icon'; import { tva } from '@gluestack-ui/nativewind-utils/tva'; import { VariantProps } from '@gluestack-ui/nativewind-utils'; import { PrimitiveIcon, Svg } from '@gluestack-ui/icon'; export const UIIcon = createIcon({ Root: PrimitiveIcon, }); const iconStyle = tva({ base: 'text-typography-950 fill-none pointer-events-none', variants: { size: { '2xs': 'h-3 w-3', 'xs': 'h-3.5 w-3.5', 'sm': 'h-4 w-4', 'md': 'h-[18px] w-[18px]', 'lg': 'h-5 w-5', 'xl': 'h-6 w-6', }, }, }); export const Icon = React.forwardRef< React.ComponentRef, React.ComponentPropsWithoutRef & VariantProps & { height?: number | string; width?: number | string; } >(function Icon({ size = 'md', className, ...props }, ref) { if (typeof size === 'number') { return ( ); } else if ( (props.height !== undefined || props.width !== undefined) && size === undefined ) { return ( ); } return ( ); }); type ParameterTypes = Omit[0], 'Root'>; const accessClassName = (style: any) => { const styleObject = Array.isArray(style) ? style[0] : style; const keys = Object.keys(styleObject); return styleObject[keys[1]]; }; const createIconUI = ({ ...props }: ParameterTypes) => { const NewUIIcon = createIcon({ Root: Svg, ...props }); return React.forwardRef< React.ComponentRef, React.ComponentPropsWithoutRef & VariantProps & { height?: number | string; width?: number | string; } >(function UIIcon({ className, ...inComingprops }, ref) { const calculateClassName = React.useMemo(() => { return className === undefined ? accessClassName(inComingprops?.style) : className; }, [className, inComingprops?.style]); return ( ); }); }; export { createIconUI as createIcon }; // All Icons const AddIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); AddIcon.displayName = 'AddIcon'; export { AddIcon }; const AlertCircleIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); AlertCircleIcon.displayName = 'AlertCircleIcon'; export { AlertCircleIcon }; const ArrowUpIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); const ArrowDownIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); const ArrowRightIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); const ArrowLeftIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); ArrowUpIcon.displayName = 'ArrowUpIcon'; ArrowDownIcon.displayName = 'ArrowDownIcon'; ArrowRightIcon.displayName = 'ArrowRightIcon'; ArrowLeftIcon.displayName = 'ArrowLeftIcon'; export { ArrowUpIcon, ArrowDownIcon, ArrowRightIcon, ArrowLeftIcon }; const AtSignIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> <> ), }); AtSignIcon.displayName = 'AtSignIcon'; export { AtSignIcon }; const BellIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); BellIcon.displayName = 'BellIcon'; export { BellIcon }; const CalendarDaysIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); CalendarDaysIcon.displayName = 'CalendarDaysIcon'; export { CalendarDaysIcon }; const CheckIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); const CheckCircleIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); CheckIcon.displayName = 'CheckIcon'; CheckCircleIcon.displayName = 'CheckCircleIcon'; export { CheckIcon, CheckCircleIcon }; const ChevronUpIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', d: 'M12 10L8 6L4 10', path: ( <> ), }); const ChevronDownIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); const ChevronLeftIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); const ChevronRightIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); const ChevronsLeftIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); const ChevronsRightIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); const ChevronsUpDownIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); ChevronUpIcon.displayName = 'ChevronUpIcon'; ChevronDownIcon.displayName = 'ChevronDownIcon'; ChevronLeftIcon.displayName = 'ChevronLeftIcon'; ChevronRightIcon.displayName = 'ChevronRightIcon'; ChevronsLeftIcon.displayName = 'ChevronsLeftIcon'; ChevronsRightIcon.displayName = 'ChevronsRightIcon'; ChevronsUpDownIcon.displayName = 'ChevronsUpDownIcon'; export { ChevronUpIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronsLeftIcon, ChevronsRightIcon, ChevronsUpDownIcon, }; const CircleIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); CircleIcon.displayName = 'CircleIcon'; export { CircleIcon }; const ClockIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); ClockIcon.displayName = 'ClockIcon'; export { ClockIcon }; const CloseIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); const CloseCircleIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); CloseIcon.displayName = 'CloseIcon'; CloseCircleIcon.displayName = 'CloseCircleIcon'; export { CloseIcon, CloseCircleIcon }; const CopyIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); CopyIcon.displayName = 'CopyIcon'; export { CopyIcon }; const DownloadIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); DownloadIcon.displayName = 'DownloadIcon'; export { DownloadIcon }; const EditIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); EditIcon.displayName = 'EditIcon'; export { EditIcon }; const EyeIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); EyeIcon.displayName = 'EyeIcon'; const EyeOffIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); EyeOffIcon.displayName = 'EyeOffIcon'; export { EyeIcon, EyeOffIcon }; const FavouriteIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); FavouriteIcon.displayName = 'FavouriteIcon'; export { FavouriteIcon }; const GlobeIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); GlobeIcon.displayName = 'GlobeIcon'; export { GlobeIcon }; const GripVerticalIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); GripVerticalIcon.displayName = 'GripVerticalIcon'; export { GripVerticalIcon }; const HelpCircleIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); HelpCircleIcon.displayName = 'HelpCircleIcon'; export { HelpCircleIcon }; const InfoIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); InfoIcon.displayName = 'InfoIcon'; export { InfoIcon }; const LinkIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); LinkIcon.displayName = 'LinkIcon'; const ExternalLinkIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); ExternalLinkIcon.displayName = 'ExternalLinkIcon'; export { LinkIcon, ExternalLinkIcon }; const LoaderIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); LoaderIcon.displayName = 'LoaderIcon'; export { LoaderIcon }; const LockIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); LockIcon.displayName = 'LockIcon'; export { LockIcon }; const MailIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); MailIcon.displayName = 'MailIcon'; export { MailIcon }; const MenuIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); MenuIcon.displayName = 'MenuIcon'; export { MenuIcon }; const MessageCircleIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); MessageCircleIcon.displayName = 'MessageCircleIcon'; export { MessageCircleIcon }; const MoonIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); MoonIcon.displayName = 'MoonIcon'; export { MoonIcon }; const PaperclipIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); PaperclipIcon.displayName = 'PaperclipIcon'; export { PaperclipIcon }; const PhoneIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); PhoneIcon.displayName = 'PhoneIcon'; export { PhoneIcon }; const PlayIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); PlayIcon.displayName = 'PlayIcon'; export { PlayIcon }; const RemoveIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); RemoveIcon.displayName = 'RemoveIcon'; export { RemoveIcon }; const RepeatIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); RepeatIcon.displayName = 'RepeatIcon'; const Repeat1Icon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); Repeat1Icon.displayName = 'Repeat1Icon'; export { RepeatIcon, Repeat1Icon }; const SearchIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); SearchIcon.displayName = 'SearchIcon'; export { SearchIcon }; const SettingsIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); SettingsIcon.displayName = 'SettingsIcon'; export { SettingsIcon }; const ShareIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); ShareIcon.displayName = 'ShareIcon'; export { ShareIcon }; const SlashIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); SlashIcon.displayName = 'SlashIcon'; export { SlashIcon }; const StarIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); StarIcon.displayName = 'StarIcon'; export { StarIcon }; const SunIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); SunIcon.displayName = 'SunIcon'; export { SunIcon }; const ThreeDotsIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); ThreeDotsIcon.displayName = 'ThreeDotsIcon'; export { ThreeDotsIcon }; const TrashIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); TrashIcon.displayName = 'TrashIcon'; export { TrashIcon }; const UnlockIcon = createIcon({ Root: Svg, viewBox: '0 0 24 24', path: ( <> ), }); UnlockIcon.displayName = 'UnlockIcon'; export { UnlockIcon };