{"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'\r\nimport type { SvgImageProps } from '@components/layout/svg-image/types/SvgImage.props.ts'\r\nimport { cn } from '@utils/cn.ts'\r\nimport { memo, useMemo, type FC } from 'react'\r\n\r\n/**\r\n * Image-layout wrapper for a locally bundled SVG component. SVGs are\r\n * decorative by default; pass `alt` or `aria-label` for informative images.\r\n */\r\nconst SvgImage: FC<SvgImageProps> = memo(\r\n    ({\r\n        image: ImageComponent,\r\n        alt,\r\n        'aria-label': ariaLabel,\r\n        color,\r\n        objectFit,\r\n        objectPosition,\r\n        borderRadius,\r\n        padding,\r\n        margin,\r\n        backgroundColor,\r\n        width,\r\n        minWidth,\r\n        maxWidth,\r\n        height,\r\n        minHeight,\r\n        maxHeight,\r\n        aspectRatio,\r\n        className,\r\n        style,\r\n        ref,\r\n        ...props\r\n    }) => {\r\n        const accessibleLabel = ariaLabel ?? (alt === '' ? undefined : alt)\r\n\r\n        const recipeClassName = useMemo(\r\n            () =>\r\n                SVG_IMAGE_STYLES.recipe({\r\n                    objectFit,\r\n                    objectPosition,\r\n                    borderRadius,\r\n                    padding,\r\n                    margin,\r\n                    backgroundColor,\r\n                }),\r\n            [\r\n                objectFit,\r\n                objectPosition,\r\n                borderRadius,\r\n                padding,\r\n                margin,\r\n                backgroundColor,\r\n            ],\r\n        )\r\n        const colorClassName = SVG_IMAGE_STYLES.color({ color })\r\n\r\n        return (\r\n            <ImageComponent\r\n                ref={ref}\r\n                aria-hidden={accessibleLabel === undefined}\r\n                aria-label={accessibleLabel}\r\n                role={accessibleLabel === undefined ? undefined : 'img'}\r\n                className={cn(recipeClassName, colorClassName, className)}\r\n                style={{\r\n                    width,\r\n                    minWidth,\r\n                    maxWidth,\r\n                    height,\r\n                    minHeight,\r\n                    maxHeight,\r\n                    aspectRatio,\r\n                    ...style,\r\n                }}\r\n                {...props}\r\n            />\r\n        )\r\n    },\r\n)\r\n\r\nSvgImage.displayName = 'SvgImage'\r\n\r\nexport default SvgImage\r\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"}