import classNames from 'classnames' import React from 'react' import { bsVersion } from '@/features/utils/bootstrap-5' // NOTE: When updating this list, make sure to update the bundled .woff2 // file as well. See details in material-symbols.css export type AvailableUnfilledIcon = | 'description' | 'forum' | 'integration_instructions' | 'rate_review' | 'report' type BaseIconProps = React.ComponentProps<'i'> & { accessibilityLabel?: string modifier?: string size?: '2x' } type FilledIconProps = BaseIconProps & { type: string unfilled?: false } type UnfilledIconProps = BaseIconProps & { type: AvailableUnfilledIcon unfilled: true } type IconProps = FilledIconProps | UnfilledIconProps function MaterialIcon({ type, className, accessibilityLabel, modifier, size, unfilled, ...rest }: IconProps) { const iconClassName = classNames('material-symbols', className, modifier, { [`size-${size}`]: size, unfilled, }) return ( <> {accessibilityLabel && ( {accessibilityLabel} )} ) } export default MaterialIcon