import { Components } from "@singularsystems/neo-core"; export interface IconStyle { /** True if the icon should be fixed width */ fixedWidth?: boolean; /** True if the icon should have a spin animation applied. E.g. loading spinner. */ spin?: boolean; /** True if the icon should have a solid or filled in style. Set to false for font-awesome regular style. */ solid?: boolean; /** How thin / thick the icon lines are. Only supported by material symbols. */ weight?: number; /** Specific font size. Any valid css font size. */ size?: string; tooltip?: string | Components.Tooltip.ITooltipOptions; className?: string; } export interface IIconFactory { /** * Returns a component that renders an icon. * @param iconOrName If this is a string, it is treated as an icon name. Otherwise it is treated as the icon component. * * The default neo icon factory maps icon names to font-awesome icons. */ getIconComponent(iconOrName: any, style?: IconStyle): React.ReactNode | undefined; /** * Returns the original text, or an icon for specific prefixes. * @param textOrIcon If textOrIcon starts with a specific prefix, this will return an icon component, otherwise it will return text. * * By default the neo icon factory will return a font-awesome icon if the prefix is fa- or far- */ textOrIcon(textOrIcon: string, style?: IconStyle): React.ReactNode | string; }