{"version":3,"file":"SvgImage.cjs","sources":["../../../../src/components/layout/svg-image/SvgImage.tsx"],"sourcesContent":["import { SVG_IMAGE_STYLES } from '@components/layout/svg-image/styles/SvgImage.css.ts'\nimport type { SvgImageProps } from '@components/layout/svg-image/types/SvgImage.props.ts'\nimport { cn } from '@utils/cn.ts'\nimport { memo, useMemo, type FC } from 'react'\n\n/**\n * Image-layout wrapper for a locally bundled SVG component. SVGs are\n * decorative by default; pass `alt` or `aria-label` for informative images.\n */\nconst SvgImage: FC<SvgImageProps> = memo(\n    ({\n        image: ImageComponent,\n        alt,\n        'aria-label': ariaLabel,\n        color,\n        objectFit,\n        objectPosition,\n        borderRadius,\n        padding,\n        margin,\n        backgroundColor,\n        width,\n        minWidth,\n        maxWidth,\n        height,\n        minHeight,\n        maxHeight,\n        aspectRatio,\n        className,\n        style,\n        ref,\n        ...props\n    }) => {\n        const accessibleLabel = ariaLabel ?? (alt === '' ? undefined : alt)\n\n        const recipeClassName = useMemo(\n            () =>\n                SVG_IMAGE_STYLES.recipe({\n                    objectFit,\n                    objectPosition,\n                    borderRadius,\n                    padding,\n                    margin,\n                    backgroundColor,\n                }),\n            [\n                objectFit,\n                objectPosition,\n                borderRadius,\n                padding,\n                margin,\n                backgroundColor,\n            ],\n        )\n        const colorClassName = SVG_IMAGE_STYLES.color({ color })\n\n        return (\n            <ImageComponent\n                ref={ref}\n                aria-hidden={accessibleLabel === undefined}\n                aria-label={accessibleLabel}\n                role={accessibleLabel === undefined ? undefined : 'img'}\n                className={cn(recipeClassName, colorClassName, className)}\n                style={{\n                    width,\n                    minWidth,\n                    maxWidth,\n                    height,\n                    minHeight,\n                    maxHeight,\n                    aspectRatio,\n                    ...style,\n                }}\n                {...props}\n            />\n        )\n    },\n)\n\nSvgImage.displayName = 'SvgImage'\n\nexport default SvgImage\n"],"names":["SvgImage","memo","ImageComponent","alt","ariaLabel","color","objectFit","objectPosition","borderRadius","padding","margin","backgroundColor","width","minWidth","maxWidth","height","minHeight","maxHeight","aspectRatio","className","style","ref","props","accessibleLabel","recipeClassName","useMemo","SVG_IMAGE_STYLES","colorClassName","jsx","cn"],"mappings":"+IASMA,EAA8BC,EAAAA,KAChC,CAAC,CACG,MAAOC,EACP,IAAAC,EACA,aAAcC,EACd,MAAAC,EACA,UAAAC,EACA,eAAAC,EACA,aAAAC,EACA,QAAAC,EACA,OAAAC,EACA,gBAAAC,EACA,MAAAC,EACA,SAAAC,EACA,SAAAC,EACA,OAAAC,EACA,UAAAC,EACA,UAAAC,EACA,YAAAC,EACA,UAAAC,EACA,MAAAC,EACA,IAAAC,EACA,GAAGC,CAAA,IACD,CACF,MAAMC,EAAkBnB,IAAcD,IAAQ,GAAK,OAAYA,GAEzDqB,EAAkBC,EAAAA,QACpB,IACIC,EAAAA,iBAAiB,OAAO,CACpB,UAAApB,EACA,eAAAC,EACA,aAAAC,EACA,QAAAC,EACA,OAAAC,EACA,gBAAAC,CAAA,CACH,EACL,CACIL,EACAC,EACAC,EACAC,EACAC,EACAC,CAAA,CACJ,EAEEgB,EAAiBD,EAAAA,iBAAiB,MAAM,CAAE,MAAArB,EAAO,EAEvD,OACIuB,EAAAA,IAAC1B,EAAA,CACG,IAAAmB,EACA,cAAaE,IAAoB,OACjC,aAAYA,EACZ,KAAMA,IAAoB,OAAY,OAAY,MAClD,UAAWM,EAAAA,GAAGL,EAAiBG,EAAgBR,CAAS,EACxD,MAAO,CACH,MAAAP,EACA,SAAAC,EACA,SAAAC,EACA,OAAAC,EACA,UAAAC,EACA,UAAAC,EACA,YAAAC,EACA,GAAGE,CAAA,EAEN,GAAGE,CAAA,CAAA,CAGhB,CACJ,EAEAtB,EAAS,YAAc"}