interface TemplateVariables { componentName: string jsx: unknown } interface TemplateContext { tpl: (strings: TemplateStringsArray, ...values: unknown[]) => unknown[] } const template = ( variables: TemplateVariables, { tpl }: TemplateContext, ): unknown[] => { const { componentName, jsx } = variables return tpl` // eslint-disable-next-line @typescript-eslint/ban-ts-comment //@ts-nocheck import type { VariantProps } from 'class-variance-authority' import * as React from 'react' import type { SVGProps } from 'react' import { iconVariants } from '../../iconVariants' ${'\n'} type Color = VariantProps['color'] | undefined ${'\n'} export const ${componentName} = ({ color, className, ...props }: SVGProps & { color?: Color }) => React.cloneElement(${jsx}, { className: iconVariants({ color, className, }), ...props, }) ` } export default template