{"version":3,"file":"ContainImage.CWGfTFaU.mjs","names":[],"sources":["https:/framerusercontent.com/modules/Kus0gx4OmbIfJduM1M10/fSYVgXEPj2LzAUDMLF3m/ContainImage.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";/**\n * Image that fills its container without ever cropping.\n *\n * Framer's own image fill on a frame is always object-fit: cover, which crops\n * promotional artwork (the \"COMING SOON\" strip on the Inglis card was being cut\n * off). LogoTile solves cropping too, but it deliberately never upscales — right\n * for a logo row, wrong for a hero visual that should fill its square.\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 400\n */export default function ContainImage(props){const{image,radius,fit,align,hugImage,style}=props;const src=typeof image===\"string\"?image:image&&image.src;if(!src)return /*#__PURE__*/_jsx(\"div\",{style:{...style}});return(// Two modes. Fixed: the image fills the box Framer gave it — overriding\n// width/height here would collapse the frame, so it is absolutely\n// positioned. Natural: the box hugs the image instead, which avoids the\n// white letterboxing you get when a landscape asset sits in a square\n// slot (what broke the webinar hero on phones).\n/*#__PURE__*/_jsx(\"div\",{style:{...style,position:hugImage?\"static\":\"relative\",overflow:\"hidden\",borderRadius:radius,lineHeight:0},children:/*#__PURE__*/_jsx(\"img\",{src:src,alt:image&&image.alt||\"\",style:hugImage?{width:\"100%\",height:\"auto\",display:\"block\",borderRadius:radius}:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",objectFit:fit,objectPosition:align,display:\"block\"}})}));}ContainImage.defaultProps={radius:0,fit:\"contain\",align:\"center\",hugImage:false};addPropertyControls(ContainImage,{image:{type:ControlType.Image,title:\"Image\"},fit:{type:ControlType.Enum,title:\"Fit\",options:[\"contain\",\"cover\"],optionTitles:[\"Contain (no crop)\",\"Cover (fills, crops)\"],defaultValue:\"contain\"},align:{type:ControlType.Enum,title:\"Align\",options:[\"left center\",\"center\",\"right center\"],optionTitles:[\"Left\",\"Center\",\"Right\"],defaultValue:\"center\",description:\"Where the image sits when it doesn't fill the box\"},hugImage:{type:ControlType.Boolean,title:\"Fit to Image\",defaultValue:false,description:\"Box follows the image shape — no empty space around it\"},radius:{type:ControlType.Number,title:\"Radius\",min:0,max:48,step:1}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ContainImage\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any\",\"framerSupportedLayoutHeight\":\"any\",\"framerIntrinsicWidth\":\"400\",\"framerIntrinsicHeight\":\"400\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ContainImage.map"],"mappings":"4JAYG,SAAwB,EAAa,EAAM,CAAC,GAAK,CAAC,QAAM,SAAO,MAAI,QAAM,WAAS,SAAO,EAAY,EAAI,OAAO,GAAQ,SAAS,EAAM,GAAO,EAAM,IAA+D,OAAvD,EAKlJ,EAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAM,SAAS,EAAS,SAAS,WAAW,SAAS,SAAS,aAAa,EAAO,WAAW,CAAC,EAAE,SAAsB,EAAK,MAAM,CAAK,MAAI,IAAI,GAAO,EAAM,KAAK,GAAG,MAAM,EAAS,CAAC,MAAM,OAAO,OAAO,OAAO,QAAQ,QAAQ,aAAa,CAAM,EAAE,CAAC,SAAS,WAAW,MAAM,EAAE,MAAM,OAAO,OAAO,OAAO,UAAU,EAAI,eAAe,EAAM,QAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,EAL7M,EAAK,MAAM,CAAC,MAAM,CAAC,GAAG,CAAK,CAAC,CAAC,CAKmL,iBAjB7V,IAAoD,EAiB0S,EAAa,aAAa,CAAC,OAAO,EAAE,IAAI,UAAU,MAAM,SAAS,SAAS,EAAK,EAAE,EAAoB,EAAa,CAAC,MAAM,CAAC,KAAK,EAAY,MAAM,MAAM,OAAO,EAAE,IAAI,CAAC,KAAK,EAAY,KAAK,MAAM,MAAM,QAAQ,CAAC,UAAU,OAAO,EAAE,aAAa,CAAC,oBAAoB,sBAAsB,EAAE,aAAa,SAAS,EAAE,MAAM,CAAC,KAAK,EAAY,KAAK,MAAM,QAAQ,QAAQ,CAAC,cAAc,SAAS,cAAc,EAAE,aAAa,CAAC,OAAO,SAAS,OAAO,EAAE,aAAa,SAAS,YAAY,mDAAmD,EAAE,SAAS,CAAC,KAAK,EAAY,QAAQ,MAAM,eAAe,aAAa,GAAM,YAAY,wDAAwD,EAAE,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC"}