{"version":3,"file":"ImageBlock.F1F0Wza_.mjs","names":["_Fragment"],"sources":["https:/framerusercontent.com/modules/v172cTg9SAu2o6pzfEiw/WWZH4gsIe2lh1PqYB74R/ImageBlock.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";const HEAD_FONT=\"'Montserrat', 'Helvetica Neue', sans-serif\";const BODY_FONT=\"'Archivo', 'Helvetica Neue', sans-serif\";/**\n * Plain image block with a URL string prop, and an optional text lockup\n * layered over the photo.\n *\n * Exists because Frame backgroundImage writes are unreliable through the MCP\n * and ResponsiveImage pickers are invisible to it. A string src prop is\n * writable by everything and editable by the client in one field.\n *\n * The overlay is built in here rather than as absolutely-positioned canvas\n * layers because the MCP cannot set position reliably on nodes it creates,\n * and because keeping the scrim with the image is what guarantees the text\n * stays readable when the client swaps the photo for a brighter one.\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 500\n */export default function ImageBlock(props){const{src,alt,radius,aspect,grayscale,overlayTitle,overlayText,overlayAlign=\"bottom-left\",style}=props;const hasOverlay=Boolean(overlayTitle||overlayText);const bottom=overlayAlign.indexOf(\"bottom\")===0;const centered=overlayAlign.indexOf(\"center\")>=0;return /*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",width:\"100%\",aspectRatio:aspect||undefined,borderRadius:radius,overflow:\"hidden\",background:\"#1f2933\",...style},children:[src?/*#__PURE__*/_jsx(\"img\",{src:src,alt:alt||\"\",loading:\"lazy\",decoding:\"async\",style:{width:\"100%\",height:\"100%\",objectFit:\"cover\",display:\"block\",filter:grayscale?\"grayscale(100%)\":\"none\"}}):null,hasOverlay?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":true,style:{position:\"absolute\",inset:0,background:bottom?\"linear-gradient(180deg, rgba(0,0,0,0.05) 35%, rgba(0,0,0,0.72))\":\"linear-gradient(180deg, rgba(0,0,0,0.45), rgba(0,0,0,0.25))\"}}),/*#__PURE__*/_jsxs(\"div\",{style:{position:\"absolute\",inset:0,display:\"flex\",flexDirection:\"column\",justifyContent:bottom?\"flex-end\":\"center\",alignItems:centered?\"center\":\"flex-start\",textAlign:centered?\"center\":\"left\",gap:10,padding:\"clamp(20px, 4vw, 48px)\",color:\"#ffffff\",textShadow:\"0 2px 18px rgba(0,0,0,0.45)\"},children:[overlayTitle?/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:HEAD_FONT,fontWeight:700,fontSize:\"clamp(24px, 3.6vw, 44px)\",lineHeight:1.08,letterSpacing:\"-0.02em\",maxWidth:720},children:overlayTitle}):null,overlayText?/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:BODY_FONT,fontWeight:500,fontSize:\"clamp(14px, 1.7vw, 19px)\",lineHeight:1.35,maxWidth:640},children:overlayText}):null]})]}):null]});}addPropertyControls(ImageBlock,{src:{type:ControlType.String,title:\"Image URL\",defaultValue:\"\"},alt:{type:ControlType.String,title:\"Alt Text\",defaultValue:\"\"},radius:{type:ControlType.Number,title:\"Radius\",defaultValue:20,min:0,max:60},aspect:{type:ControlType.Number,title:\"Aspect (w/h)\",defaultValue:.8,min:.3,max:3,step:.05,description:\"0.8 = portrait, 1.78 = 16:9, 0 = fill parent height\"},grayscale:{type:ControlType.Boolean,title:\"Black & White\",defaultValue:false},overlayTitle:{type:ControlType.String,title:\"Overlay Title\",defaultValue:\"\",description:\"Leave empty for a plain photo\"},overlayText:{type:ControlType.String,title:\"Overlay Text\",defaultValue:\"\"},overlayAlign:{type:ControlType.Enum,title:\"Overlay At\",options:[\"bottom-left\",\"bottom-center\",\"center\"],optionTitles:[\"Bottom left\",\"Bottom center\",\"Center\"],defaultValue:\"bottom-left\",hidden:p=>!p.overlayTitle&&!p.overlayText}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ImageBlock\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any\",\"framerSupportedLayoutWidth\":\"any\",\"framerIntrinsicWidth\":\"400\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"500\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ImageBlock.map"],"mappings":"qKAiBG,SAAwB,EAAW,EAAM,CAAC,GAAK,CAAC,MAAI,MAAI,SAAO,SAAO,YAAU,eAAa,cAAY,eAAa,cAAc,SAAO,EAAY,EAAW,GAAQ,GAAc,GAAmB,EAAO,EAAa,QAAQ,QAAQ,IAAI,EAAQ,EAAS,EAAa,QAAQ,QAAQ,GAAG,EAAE,OAAoB,EAAM,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,MAAM,OAAO,YAAY,GAAQ,IAAA,GAAU,aAAa,EAAO,SAAS,SAAS,WAAW,UAAU,GAAG,CAAK,EAAE,SAAS,CAAC,EAAiB,EAAK,MAAM,CAAK,MAAI,IAAI,GAAK,GAAG,QAAQ,OAAO,SAAS,QAAQ,MAAM,CAAC,MAAM,OAAO,OAAO,OAAO,UAAU,QAAQ,QAAQ,QAAQ,OAAO,EAAU,kBAAkB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAwB,EAAMA,EAAU,CAAC,SAAS,CAAc,EAAK,MAAM,CAAC,cAAc,GAAK,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,WAAW,EAAO,kEAAkE,6DAA6D,CAAC,CAAC,EAAe,EAAM,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,QAAQ,OAAO,cAAc,SAAS,eAAe,EAAO,WAAW,SAAS,WAAW,EAAS,SAAS,aAAa,UAAU,EAAS,SAAS,OAAO,IAAI,GAAG,QAAQ,yBAAyB,MAAM,UAAU,WAAW,6BAA6B,EAAE,SAAS,CAAC,EAA0B,EAAK,OAAO,CAAC,MAAM,CAAC,WAAW,EAAU,WAAW,IAAI,SAAS,2BAA2B,WAAW,KAAK,cAAc,UAAU,SAAS,GAAG,EAAE,SAAS,CAAY,CAAC,EAAE,KAAK,EAAyB,EAAK,OAAO,CAAC,MAAM,CAAC,WAAW,EAAU,WAAW,IAAI,SAAS,2BAA2B,WAAW,KAAK,SAAS,GAAG,EAAE,SAAS,CAAW,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAE,qBAjB3jD,IAAoD,EAAO,EAAU,6CAAmD,EAAU,0CAiB07C,EAAoB,EAAW,CAAC,IAAI,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,aAAa,EAAE,EAAE,IAAI,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,aAAa,EAAE,EAAE,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,aAAa,GAAG,IAAI,GAAG,IAAI,EAAE,KAAK,IAAI,YAAY,qDAAqD,EAAE,UAAU,CAAC,KAAK,EAAY,QAAQ,MAAM,gBAAgB,aAAa,EAAK,EAAE,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,aAAa,GAAG,YAAY,+BAA+B,EAAE,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,aAAa,EAAE,EAAE,aAAa,CAAC,KAAK,EAAY,KAAK,MAAM,aAAa,QAAQ,CAAC,cAAc,gBAAgB,QAAQ,EAAE,aAAa,CAAC,cAAc,gBAAgB,QAAQ,EAAE,aAAa,cAAc,OAAO,GAAG,CAAC,EAAE,cAAc,CAAC,EAAE,WAAW,CAAC,CAAC"}