{"version":3,"file":"ProjectCard.BN1DdzFS.mjs","names":["React.useId","React.useRef","React.useState","React.useCallback","React.Fragment"],"sources":["https:/framerusercontent.com/modules/izVZ4iHpNsGfwVSarfoc/cXIGWGRRSqgTL1IauA9M/ProjectCard.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";/* The dashed measurement grid, inlined so the card carries its own texture\n * rather than depending on an uploaded asset. Gradient fades it out toward\n * the bottom exactly as the source file does. */const GRID_SVG=`<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"568\" height=\"266\" viewBox=\"0 0 568 266\" fill=\"none\"><path d=\"M-106.499 -129.999L-106.503 423.281M-44.9207 -129.999L-44.9258 423.281M16.656 -129.999L16.6508 423.281M78.2327 -129.999L78.2275 423.281M139.809 -129.999L139.806 423.281M201.386 -129.999L201.382 423.281M262.964 -129.999L262.959 423.281M324.54 -129.999L324.535 423.281M386.118 -129.999L386.113 423.281M447.695 -129.999L447.69 423.281M509.271 -129.999L509.266 423.281M570.848 -129.999L570.843 423.281M632.425 -129.999L632.42 423.281M-137.287 -129.999L-137.291 423.281M-75.709 -129.999L-75.7142 423.281M-14.1324 -129.999L-14.1375 423.281M47.4443 -129.999L47.4392 423.281M109.021 -129.999L109.017 423.281M170.597 -129.999L170.594 423.281M232.174 -129.999L232.17 423.281M293.752 -129.999L293.747 423.281M355.33 -129.999L355.325 423.281M416.906 -129.999L416.901 423.281M478.483 -129.999L478.478 423.281M540.06 -129.999L540.055 423.281M601.637 -129.999L601.631 423.281M-168.077 362.812L663.208 362.817M-168.077 301.211L663.208 301.216M-168.077 239.61L663.208 239.613M-168.077 178.008L663.208 178.011M-168.077 116.405L663.208 116.41M-168.077 54.8038L663.208 54.8089M-168.077 -6.79768L663.208 -6.79255M-168.077 -68.3991L663.208 -68.394M-168.077 393.612L663.208 393.617M-168.077 332.012L663.208 332.017M-168.077 270.41L663.208 270.415M-168.077 208.809L663.208 208.812M-168.077 147.207L663.208 147.211M-168.077 85.6042L663.208 85.6094M-168.077 24.0033L663.208 24.0079M-168.077 -37.5981L663.208 -37.593M-168.077 -99.1996L663.208 -99.1945\" stroke=\"url(#g)\" stroke-opacity=\"0.22\" stroke-width=\"0.877915\" stroke-miterlimit=\"10\" stroke-dasharray=\"5.27 5.27\"/><defs><linearGradient id=\"g\" x1=\"247.565\" y1=\"-108.673\" x2=\"247.565\" y2=\"277.392\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"white\"/><stop offset=\"1\" stop-color=\"#999999\" stop-opacity=\"0.05\"/></linearGradient></defs></svg>`;const GRID_URI=`url(\"data:image/svg+xml,${encodeURIComponent(GRID_SVG)}\")`;function DottedArrow(){const dots=[[1.3,12.7],[6.6,12.7],[12,12.7],[17.3,12.7],[22.6,12.7],[27.9,12.7],[33.2,12.7],[27.9,6.3],[22.6,1.3],[27.9,19.1],[22.6,24.1]];return /*#__PURE__*/_jsx(\"svg\",{width:24,height:18,viewBox:\"0 0 35 26\",fill:\"none\",\"aria-hidden\":\"true\",style:{display:\"block\"},children:dots.map(([cx,cy],i)=>/*#__PURE__*/_jsx(\"circle\",{cx:cx,cy:cy,r:1.33,fill:\"currentColor\"},i))});}/**\n * Project Card\n *\n * Every text field is a separate control so each can be bound to its own CMS\n * variable from a Collection List — a code component cannot read the CMS\n * itself, so the binding has to happen per prop on the canvas.\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicWidth 1100\n * @framerIntrinsicHeight 620\n */export default function ProjectCard(props){const{image,name,year,description,fontName,fontValue,fontMeta,fontBody}=props;const cfg=props.style1||{ratio:1.75,radius:12,scrim:.45};const{ratio,scrim}=cfg;const radius=props.radius??32;const panelStyle=props.panelStyle??\"glass\";const rawId=React.useId();const uid=\"pcard\"+rawId.replace(/[^a-zA-Z0-9]/g,\"\");/* Media queries track the window, which on the Framer canvas is always\n       desktop-wide — measure the card's own box instead so every breakpoint\n       frame renders its true layout. */const bpRootRef=React.useRef(null);const[bp,setBp]=React.useState(\"desktop\");/* offsetWidth, not getBoundingClientRect: rect widths scale with canvas\n       zoom, so a zoomed-out frame would flip into the phone layout */const classify=React.useCallback(()=>{const el=bpRootRef.current;if(!el)return;const w=el.offsetWidth;setBp(w<560?\"phone\":w<1150?\"tablet\":\"desktop\");},[]);React.useLayoutEffect(()=>{classify();},[classify]);React.useEffect(()=>{const el=bpRootRef.current;if(!el||typeof ResizeObserver===\"undefined\")return;const ro=new ResizeObserver(()=>classify());ro.observe(el);return()=>ro.disconnect();},[classify]);const ease=\"cubic-bezier(0.22, 0.61, 0.24, 1)\";const stats=[{label:props.stat1Label,value:props.stat1Value},{label:props.stat2Label,value:props.stat2Value},{label:props.stat3Label,value:props.stat3Value}].filter(s=>s.value);const css=`\n.${uid} .media {\n    transition: transform 0.7s ${ease};\n    transform-origin: center;\n}\n/* flat dim above the photo but under the copy, so the card recedes on\n   hover without touching text legibility */\n.${uid} .dim {\n    position: absolute; inset: 0;\n    background: rgb(10, 10, 10);\n    opacity: 0; pointer-events: none;\n    transition: opacity 0.5s ${ease};\n}\n.${uid} .panel {\n    position: relative;\n    transition: background-color 0.45s ${ease};\n}\n.${uid} .panel.frame {\n    clip-path: polygon(0 0, 100% 0, 100% calc(100% - 26px), calc(100% - 26px) 100%, 0 100%);\n    -webkit-clip-path: polygon(0 0, 100% 0, 100% calc(100% - 26px), calc(100% - 26px) 100%, 0 100%);\n}\n/* corner brackets, the same device as the CTA — the panel reads as a\n   framed readout rather than a soft translucent box */\n.${uid} .cb {\n    position: absolute; width: 12px; height: 12px;\n    border: 0 solid rgba(255,255,255,0.28);\n    transition: width 0.5s ${ease}, height 0.5s ${ease};\n    pointer-events: none;\n}\n.${uid} .cb.tl { top: 0; left: 0; border-top-width: 1px; border-left-width: 1px; }\n.${uid} .cb.tr { top: 0; right: 0; border-top-width: 1px; border-right-width: 1px; }\n.${uid} .cb.bl { bottom: 0; left: 0; border-bottom-width: 1px; border-left-width: 1px; }\n.${uid} .cb.br { bottom: 0; right: 0; border-bottom-width: 1px; border-right-width: 1px; }\n/* the notch's diagonal edge, stroked — the fourth corner mark; the hover\n   frame completes around the cut instead of dying at the clipped corner */\n.${uid} .diag {\n    position: absolute;\n    right: -5.4px; bottom: 12.5px;\n    width: 36.8px; height: 1px;\n    background: rgba(255,255,255,0.28);\n    transform: translate(-0.4px, -0.4px) rotate(-45deg);\n    pointer-events: none;\n}\n.${uid} .arw {\n    position: absolute; top: 32px; right: 32px;\n    opacity: 0; transform: translateX(-10px);\n    transition: opacity 0.45s ${ease}, transform 0.45s ${ease};\n    color: rgba(255,255,255,0.85);\n}\n@media (hover: hover) {\n    .${uid}:hover .cb { width: 100%; height: 100%; }\n    .${uid}:hover .arw { opacity: 1; transform: translateX(0); }\n}\n@media (hover: hover) {\n    .${uid}:hover .dim { opacity: 0.18; }\n    .${uid}:hover .media { transform: scale(1.04); }\n    .${uid}:hover .panel.frame { background-color: rgba(16,16,16,0.5); }\n    .${uid}:hover .panel.glass { background-color: rgba(12,12,12,0.55); }\n}\n/* a 1.75 card leaves no height for the readout once the copy stacks, so the\n   card gets taller and the panel takes the full width */\n@media (max-width: 1199px) {\n    .${uid} { aspect-ratio: 1.5 !important; }\n    .${uid} .content { padding: 32px !important; gap: 32px !important; }\n    .${uid} .content.glass { padding: 14px !important; gap: 24px !important; }\n}\n@media (max-width: 809px) {\n    .${uid} { aspect-ratio: 0.62 !important; }\n    .${uid} .stats { flex-wrap: nowrap !important; gap: 16px !important; }\n    .${uid} .value { font-size: 26px !important; }\n    .${uid} .content {\n        padding: 24px !important;\n        gap: 24px !important;\n        flex-direction: column !important;\n        align-items: flex-start !important;\n        justify-content: flex-end !important;\n        flex-wrap: nowrap !important;\n    }\n    .${uid} .content > * { flex: 0 0 auto !important; width: 100%; }\n    .${uid} .panel { max-width: none !important; padding: 24px !important; }\n    .${uid} .content.glass { padding: 12px !important; gap: 16px !important; }\n    .${uid} .content.glass > div:first-child { padding: 0 0 24px 20px !important; }\n    .${uid} .arw { top: 20px !important; right: 20px !important; }\n}\n.${uid}[data-bp=\"tablet\"] { aspect-ratio: 1.5 !important; }\n.${uid}[data-bp=\"tablet\"] .content { padding: 32px !important; gap: 32px !important; }\n.${uid}[data-bp=\"tablet\"] .content.glass { padding: 14px !important; gap: 24px !important; }\n/* tall enough for the name and the full readout to coexist */\n.${uid}[data-bp=\"phone\"] { aspect-ratio: 0.62 !important; }\n.${uid}[data-bp=\"phone\"] .stats { flex-wrap: nowrap !important; gap: 16px !important; }\n.${uid}[data-bp=\"phone\"] .value { font-size: 26px !important; }\n.${uid}[data-bp=\"phone\"] .content {\n    padding: 24px !important;\n    gap: 24px !important;\n    /* inline styles set row + space-between, so these must win */\n    flex-direction: column !important;\n    align-items: flex-start !important;\n    justify-content: flex-end !important;\n    flex-wrap: nowrap !important;\n}\n/* flex-basis becomes a height once stacked — release both children so\n   they size to content instead of demanding 260px and 420px */\n.${uid}[data-bp=\"phone\"] .content > * { flex: 0 0 auto !important; width: 100%; }\n.${uid}[data-bp=\"phone\"] .panel { max-width: none !important; padding: 24px !important; }\n.${uid}[data-bp=\"phone\"] .content.glass { padding: 12px !important; gap: 16px !important; }\n.${uid}[data-bp=\"phone\"] .content.glass > div:first-child { padding: 0 0 24px 20px !important; }\n.${uid}[data-bp=\"phone\"] .arw { top: 20px !important; right: 20px !important; }\n@media (prefers-reduced-motion: reduce) {\n    .${uid} .media, .${uid} .panel, .${uid} .cb, .${uid} .dim,\n    .${uid} .arw { transition: none !important; }\n    .${uid}:hover .media { transform: none; }\n}\n`;return /*#__PURE__*/_jsxs(\"div\",{className:uid,ref:bpRootRef,\"data-bp\":bp,style:{...props.style,position:\"relative\",display:\"block\",width:\"100%\",aspectRatio:String(ratio),borderRadius:radius,overflow:\"hidden\",background:\"#1a1a1a\"},children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:css}}),image&&image.src?/*#__PURE__*/_jsx(\"img\",{className:\"media\",src:image.src,srcSet:image.srcSet,alt:image.alt||name||\"\",style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",objectFit:\"cover\",display:\"block\"}}):null,/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,background:`linear-gradient(180deg, rgba(10,10,10,${scrim*.35}) 0%, rgba(10,10,10,${scrim}) 100%)`}}),/*#__PURE__*/_jsx(\"div\",{className:\"dim\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"content \"+panelStyle,style:{position:\"absolute\",inset:0,display:\"flex\",alignItems:\"flex-end\",justifyContent:\"space-between\",gap:panelStyle===\"glass\"?24:48,padding:panelStyle===\"glass\"?\"14px\":\"48px\",flexWrap:\"wrap\"},children:[/*#__PURE__*/_jsxs(\"div\",{style:{flex:\"1 1 260px\",minWidth:0,/* the panel hugs the card corner; the copy keeps its\n                           own deep inset so the name stays where it was */padding:panelStyle===\"glass\"?\"0 0 34px 34px\":0},children:[year?/*#__PURE__*/_jsxs(\"div\",{style:{...fontMeta,color:\"rgba(255,255,255,0.7)\",marginBottom:16},children:[\"[\",year,\"]\"]}):null,/*#__PURE__*/_jsx(\"div\",{style:{...fontName,color:\"#FFFFFF\"},children:name})]}),stats.length===0&&!description?null:/*#__PURE__*/_jsxs(\"div\",{className:\"panel \"+panelStyle,style:{flex:\"1 1 420px\",minWidth:0,maxWidth:560,padding:panelStyle===\"glass\"?\"36px\":\"32px\",...panelStyle===\"glass\"?{background:`${GRID_URI}, rgba(16,16,16,0.42)`,backgroundSize:\"cover\",borderRadius:Math.max(radius-14,12),backdropFilter:\"blur(28px) saturate(1.15)\",WebkitBackdropFilter:\"blur(28px) saturate(1.15)\"}:{background:`${GRID_URI}, rgba(16,16,16,0.34)`,backgroundSize:\"cover\",backdropFilter:\"blur(2px)\",WebkitBackdropFilter:\"blur(2px)\"}},children:[/*#__PURE__*/_jsx(\"span\",{className:\"arw\",children:/*#__PURE__*/_jsx(DottedArrow,{})}),panelStyle===\"frame\"&&/*#__PURE__*/_jsxs(React.Fragment,{children:[/*#__PURE__*/_jsx(\"span\",{className:\"cb tl\"}),/*#__PURE__*/_jsx(\"span\",{className:\"cb tr\"}),/*#__PURE__*/_jsx(\"span\",{className:\"cb bl\"}),/*#__PURE__*/_jsx(\"span\",{className:\"cb br\"}),/*#__PURE__*/_jsx(\"span\",{className:\"diag\"})]}),stats.length>0&&/*#__PURE__*/_jsx(\"div\",{className:\"stats\",style:{display:\"flex\",gap:32,flexWrap:\"wrap\"},children:stats.map((s,i)=>/*#__PURE__*/_jsxs(\"div\",{className:\"stat\",style:{minWidth:0},children:[s.label?/*#__PURE__*/_jsxs(\"div\",{style:{...fontMeta,color:\"rgba(255,255,255,0.7)\",marginBottom:8},children:[\"[\",s.label,\"]\"]}):null,/*#__PURE__*/_jsx(\"div\",{className:\"value\",style:{...fontValue,color:\"#FFFFFF\"},children:s.value})]},i))}),description?/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"div\",{style:{...fontBody,color:\"rgba(255,255,255,0.82)\",/* the rule used to carry this gap; keep\n                                       the separation without the line */marginTop:stats.length>0?48:0},children:description})}):null]})]})]});}ProjectCard.displayName=\"Project Card\";addPropertyControls(ProjectCard,{image:{type:ControlType.ResponsiveImage,title:\"Image\"},name:{type:ControlType.String,title:\"Name\",defaultValue:\"Project Name\"},year:{type:ControlType.String,title:\"Year\",defaultValue:\"2026\"},description:{type:ControlType.String,title:\"Description\",defaultValue:\"\",displayTextArea:true},stat1Label:{type:ControlType.String,title:\"Stat 1 Label\",defaultValue:\"MW\"},stat1Value:{type:ControlType.String,title:\"Stat 1 Value\",defaultValue:\"200\"},stat2Label:{type:ControlType.String,title:\"Stat 2 Label\",defaultValue:\"MWH\"},stat2Value:{type:ControlType.String,title:\"Stat 2 Value\",defaultValue:\"800\"},stat3Label:{type:ControlType.String,title:\"Stat 3 Label\",defaultValue:\"MONTHS\"},stat3Value:{type:ControlType.String,title:\"Stat 3 Value\",defaultValue:\"14\"},radius:{type:ControlType.Number,title:\"Radius\",defaultValue:32,min:0,max:64,step:1},panelStyle:{type:ControlType.Enum,title:\"Panel\",options:[\"glass\",\"frame\"],optionTitles:[\"Glass\",\"Frame\"],defaultValue:\"glass\",displaySegmentedControl:true},customizeFonts:{type:ControlType.Boolean,title:\"Fonts\",defaultValue:false,enabledTitle:\"Custom\",disabledTitle:\"Default\"},fontName:{type:ControlType.Font,hidden:p=>!p.customizeFonts,title:\"Name Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"48px\",variant:\"Regular\",letterSpacing:\"-0.03em\",lineHeight:\"1.1em\"}},fontValue:{type:ControlType.Font,hidden:p=>!p.customizeFonts,title:\"Value Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"38px\",variant:\"Regular\",letterSpacing:\"-0.03em\",lineHeight:\"1em\"}},fontMeta:{type:ControlType.Font,hidden:p=>!p.customizeFonts,title:\"Meta Font\",controls:\"extended\",defaultFontType:\"monospace\",defaultValue:{fontSize:\"11px\",letterSpacing:\"0.1em\",lineHeight:\"1.2em\"}},fontBody:{type:ControlType.Font,hidden:p=>!p.customizeFonts,title:\"Body Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"15px\",letterSpacing:\"-0.01em\",lineHeight:\"1.45em\"}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ProjectCard\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"620\",\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"1100\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ProjectCard.map"],"mappings":"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"}