{"version":3,"file":"CaseStudyGrid.BOZNMOfl.mjs","names":["useState","useRef","_Fragment"],"sources":["https:/framerusercontent.com/modules/s1RNTrEDkXmCDfpoeWhG/LIWESS832Jq7VYsktmYH/CaseStudyGrid.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget,useIsStaticRenderer}from\"framer\";import{useRef,useState}from\"react\";import{usePageLayout}from\"https://framerusercontent.com/modules/Ng45YrpyAOriq23Rp3Gd/Rhl7BCZJ2aOqb2ZcHvNC/PageScale.js\";import Reveal from\"https://framerusercontent.com/modules/xBmwLxnLlUbYRl8ubl83/lbyuul0zPvvAkYztuyqM/Reveal.js\";import RailBanner from\"https://framerusercontent.com/modules/K9PG0cxMXSkjuXA4RNe8/470b40IEIX2pL07UZd4d/RailBanner.js\";import CaseStudyCard,{EmptyFeed,useCaseStudies}from\"https://framerusercontent.com/modules/ZWm3Ti0ZJlXUXKFlgFHm/eJJ84CtZw5VN1lHXXGIR/CaseStudyCard.js\";import CaseStudySheet from\"https://framerusercontent.com/modules/cfGLhEjMN3sxLEc4jRcN/5vneQN8r6j2nx2o7HyXm/CaseStudySheet.js\";import RollText from\"https://framerusercontent.com/modules/SMecA9dEvdeNwGOcnfPU/mg7l3raZ3nrM7oILUoLV/RollText.js\";/**\n * Case Study Grid - every case study on /our-experience. From Henry's brief (2026-09-16): the case\n * studies split by the work RGRE did, one group for Investment and one for Leasing & Advisory, each\n * group's cards in a Jet Black box on the Cream White section, the boxes separated by a strip of the\n * cream. The card is the shared CaseStudyCard, the same one the Firm page's Case Study Fan deals.\n *\n * Groups come from the case studies' own Engagement field, in the order each first appears, so a new\n * engagement type makes its own box without a code change. Cards sit in rows at a fixed height, so a\n * long summary clamps rather than stretching a row. Pointing at a card grows it and lights it the way\n * the Fan's front card is lit. Each card reveals on its own arrival as the page scrolls (Reveal.tsx),\n * left to right along its row.\n *\n * The case studies come from the CMS (Case Studies collection) through the page's Case Study Feed list,\n * which must sit above this section on the page (CaseStudyCard.tsx explains why).\n *\n * House type: group titles Header 1.5 50 (Cormorant), eyebrow Medium-CAPS 12.\n *\n * @framerIntrinsicWidth 2132\n * @framerIntrinsicHeight 2600\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n */const EASE_CSS=\"cubic-bezier(0.22, 1, 0.36, 1)\";const SERIF='\"Cormorant Garamond\", Georgia, serif';const BRACKET_ARM=42;const BRACKET_INSET=24// the corner marks sit this far inside the jet box's edge\n;// every corner but the top left, where the box's eyebrow and title sit (Henry 2026-09-16), as [horizontal, vertical]\n// the title block's own brackets (Henry 2026-09-20, /rg-investments: \"brackets on the top left and both bottom sides of the title, text\n// and eyebrow\"): the mirror of the box's three, standing TITLE_BRACKET_OUT outside the copy\nconst TITLE_CORNERS=[[\"left\",\"top\"],[\"left\",\"bottom\"],[\"right\",\"bottom\"]];const TITLE_BRACKET_OUT=30;const BOX_ART_FADE=\"linear-gradient(to right, #000 0%, #000 30%, rgba(0, 0, 0, 0.55) 55%, transparent 80%)\";const BOX_CORNERS=[[\"right\",\"top\"],[\"left\",\"bottom\"],[\"right\",\"bottom\"]];export default function CaseStudyGrid(props){const{heading=\"\",only=\"\",headSide=\"top\",titleBrackets=false,rollTitle=false,boxBrackets=true,boxArt=\"\",boxArtStrength=.4,boxArtSize=100,boxArtDrop=0,titleAlign=\"center\",bodyCopy=\"\",railLabel=\"\",banner=\"#1E2934\",bannerWidth=160,railColor=\"\",padTop=-1,padRight=-1,railGap=64,railX=0,selfScale=false,grouped=true,eyebrow=\"Case Studies\",columns=3,cardHeight=800,cta=\"Learn More\",popupScheme=\"rg\",summaryLines=8,grow=1.04,padX=124,padY=120,boxPad=72,strip=40,gap=48,ground=\"#FCFCFA\",box=\"#1E2934\",card=\"#1E2934\",ink=\"#FCFCFA\",accent=\"#C2921C\",tagColor=\"#C2921C\",style}=props;const items=useCaseStudies();const isStatic=useIsStaticRenderer();const[hover,setHover]=useState(-1);// the case study popup: the index of the open study in the page's list, -1 when closed\nconst[openAt,setOpenAt]=useState(-1);// tablet and phone: two cards across, then one, inside tighter margins (the grid is already a flow, so it only needs numbers)\nconst rootRef=useRef(null);const page=usePageLayout(rootRef);const cols=page.stacked?page.cols(2):Math.max(1,Math.round(columns));const sideX=page.stacked?page.phone?16:32:padX;const inBox=page.stacked?page.phone?20:36:boxPad;// PAGE SCALE (Henry 2026-09-21, /rg-investments at 1400: \"looks very cramped\"): the laptop step of the site's size rule, applied\n// to this section's own root as its neighbours apply it. A switch, not always on, because /our-experience and /medical-investments\n// already shrink this section's FRAME with a Fit Scale; zooming here as well would shrink those two twice (0.72). page.z is 1\n// when stacked and at full size, so the switch only ever acts between 1200 and 1799 wide.\nconst zoom=selfScale&&page.z!==1?page.z:undefined;const railOn=!!railLabel.trim()&&!page.stacked;const headLeft=headSide===\"left\"&&!page.stacked;// one group per engagement, in the order they first appear; ungrouped is a single untitled group\nconst groups=[];// ONLY (Henry 2026-09-20, /medical-investments: \"a case study section showing Braselton and 755 Commerce\"): a list of names,\n// comma separated, keeps just those studies, in that order. A name matches when the study's name contains it, so\n// \"755 Commerce, Braselton\" is enough. The index stays the study's place in the page's list, which is what the popup opens.\nconst wanted=String(only||\"\").split(\",\").map(s=>s.trim().toLowerCase()).filter(Boolean);const picked=wanted.length?wanted.map(w=>items.findIndex(c=>(c.name||\"\").toLowerCase().includes(w))).filter(i=>i>=0).map(i=>({c:items[i],i})):items.map((c,i)=>({c,i}));picked.forEach(({c,i})=>{const title=heading.trim()?heading.trim():grouped?(c.service||\"\").trim()||\"Other\":\"\";let g=groups.find(x=>x.title===title);if(!g)groups.push(g={title,entries:[]});g.entries.push({c,i});});// no feed on the page: say so on the canvas instead of drawing an empty section\nif(!items.length&&RenderTarget.current()===RenderTarget.canvas)return /*#__PURE__*/_jsx(EmptyFeed,{style:style,ground:ground,ink:box});return(// BANNER AND SCROLLER (Henry 2026-09-20, /medical-investments: \"give it a banner and scroller\"): the house banner down the\n// left with the section's word riding the rail, as the sections round it have. Desktop only; stacked layouts drop scrollers.\n/*#__PURE__*/_jsxs(\"div\",{ref:rootRef,style:{...style,position:\"relative\",width:\"100%\",zoom,background:ground,// the box can line up with a neighbour's box and take its gap, instead of one margin all round\npadding:`${page.stacked?56:padTop>=0?padTop:padY}px ${page.stacked||padRight<0?sideX:padRight}px ${page.stacked?56:padY}px ${sideX}px`,paddingLeft:railOn?bannerWidth+railGap:sideX,boxSizing:\"border-box\",display:\"flex\",flexDirection:\"column\",gap:strip},children:[railOn&&/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":\"true\",style:{position:\"absolute\",left:0,top:0,bottom:0,width:bannerWidth,background:banner}}),railOn&&/*#__PURE__*/_jsx(RailBanner,{label:railLabel,x:railX>0?railX:Math.round(bannerWidth/2),inTop:padY,inBottom:padY,accent:railColor||accent,ground:banner,text:\"#F4F3F7\",seen:true,isStatic:isStatic}),groups.map(g=>// HEAD LEFT (Henry 2026-09-20, /medical-investments: \"too big. make the cards two thirds right, then the title on the\n    // left\"): the box is a one third / two thirds grid, the title block in the first column and the cards in the second.\n    // The corner brackets are absolute, so they take no cell. Stacked layouts keep the title on top.\n    /*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",isolation:\"isolate\",background:box,padding:inBox,boxSizing:\"border-box\",...headLeft?{display:\"grid\",gridTemplateColumns:\"minmax(0, 1fr) minmax(0, 2fr)\",columnGap:72,alignItems:titleAlign===\"top\"?\"start\":\"center\"}:null},children:[boxArt&&headLeft&&/*#__PURE__*/_jsx(Reveal,{isStatic:isStatic,style:{position:\"absolute\",inset:0,zIndex:-1,pointerEvents:\"none\",overflow:\"hidden\"},children:seen=>/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":\"true\",style:{position:\"absolute\",inset:0,backgroundImage:`url(${boxArt})`,backgroundRepeat:\"no-repeat\",backgroundSize:`auto ${Math.max(20,Math.min(160,boxArtSize))}%`,backgroundPosition:`0% calc(100% + ${boxArtDrop}px)`,opacity:seen?Math.max(0,Math.min(1,boxArtStrength)):0,transition:isStatic?\"none\":`opacity 1.8s ${EASE_CSS} 0.2s`,maskImage:BOX_ART_FADE,WebkitMaskImage:BOX_ART_FADE}})}),boxBrackets&&/*#__PURE__*/_jsx(Reveal,{isStatic:isStatic,style:{position:\"absolute\",inset:BRACKET_INSET,pointerEvents:\"none\"},children:seen=>/*#__PURE__*/_jsxs(_Fragment,{children:[BOX_CORNERS.map(([h,v])=>/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{position:\"absolute\",[h]:0,[v]:0,width:BRACKET_ARM,height:1,background:accent,transformOrigin:v===\"top\"?\"0% 50%\":\"100% 50%\",transform:seen?\"none\":\"scaleX(0)\",transition:isStatic?\"none\":`transform 0.75s ${EASE_CSS}`}},`h${h}${v}`)),BOX_CORNERS.map(([h,v])=>/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{position:\"absolute\",[h]:0,[v]:0,width:1,height:BRACKET_ARM,background:accent,transformOrigin:h===\"left\"?\"50% 100%\":\"50% 0%\",transform:seen?\"none\":\"scaleY(0)\",transition:isStatic?\"none\":`transform 0.75s ${EASE_CSS}`}},`v${h}${v}`))]})}),g.title&&/*#__PURE__*/_jsx(Reveal,{isStatic:isStatic,children:seen=>/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",marginTop:headLeft&&titleAlign===\"top\"&&titleBrackets?TITLE_BRACKET_OUT:0,marginBottom:headLeft?0:56,opacity:seen?1:0,transform:seen?\"none\":\"translateY(18px)\",transition:isStatic?\"none\":`opacity 0.9s ${EASE_CSS}, transform 0.9s ${EASE_CSS}`},children:[titleBrackets&&headLeft&&/*#__PURE__*/_jsxs(\"div\",{\"aria-hidden\":\"true\",style:{position:\"absolute\",inset:-TITLE_BRACKET_OUT,pointerEvents:\"none\"},children:[TITLE_CORNERS.map(([h,v])=>/*#__PURE__*/_jsx(\"span\",{style:{position:\"absolute\",[h]:0,[v]:0,width:BRACKET_ARM,height:1,background:accent,transformOrigin:h===\"left\"?\"0% 50%\":\"100% 50%\",transform:seen?\"none\":\"scaleX(0)\",transition:isStatic?\"none\":`transform 0.75s ${EASE_CSS} 0.3s`}},`th${h}${v}`)),TITLE_CORNERS.map(([h,v])=>/*#__PURE__*/_jsx(\"span\",{style:{position:\"absolute\",[h]:0,[v]:0,width:1,height:BRACKET_ARM,background:accent,transformOrigin:v===\"top\"?\"50% 0%\":\"50% 100%\",transform:seen?\"none\":\"scaleY(0)\",transition:isStatic?\"none\":`transform 0.75s ${EASE_CSS} 0.3s`}},`tv${h}${v}`))]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:28},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:\"Poppins, sans-serif\",fontWeight:400,fontSize:12,letterSpacing:\"0.4em\",textTransform:\"uppercase\",lineHeight:1.6,color:accent,whiteSpace:\"nowrap\"},children:eyebrow}),/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{width:110,height:1,background:accent}})]}),/*#__PURE__*/_jsx(\"div\",{style:{fontFamily:SERIF,fontWeight:400,fontSize:50,lineHeight:1.1,letterSpacing:\"-0.01em\",color:ink,marginTop:18,whiteSpace:\"pre-line\"},children:rollTitle?/*#__PURE__*/_jsx(RollText,{text:g.title,on:seen,delay:.25,isStatic:isStatic}):g.title}),bodyCopy&&/*#__PURE__*/_jsx(\"p\",{style:{fontFamily:\"Poppins, sans-serif\",fontSize:13,lineHeight:\"2.05em\",letterSpacing:\"0.165em\",color:ink,opacity:.78,margin:\"28px 0 0\",maxWidth:460},children:bodyCopy})]})}),/*#__PURE__*/_jsx(\"div\",{style:page.stacked&&!page.phone&&g.entries.length%2===1?{display:\"flex\",gap,overflowX:\"auto\",scrollSnapType:\"x mandatory\",scrollbarWidth:\"none\",marginRight:-inBox,paddingRight:inBox}:{display:\"grid\",gridTemplateColumns:`repeat(${cols}, minmax(0, 1fr))`,gap},onMouseLeave:()=>setHover(-1),children:g.entries.map(({c,i},n)=>/*#__PURE__*/_jsx(Reveal,{isStatic:isStatic,style:{height:page.stacked?690:cardHeight,...page.stacked&&!page.phone&&g.entries.length%2===1?{flex:\"0 0 44%\",scrollSnapAlign:\"start\"}:null},children:seen=>/*#__PURE__*/_jsx(\"div\",{onMouseEnter:()=>setHover(i),style:{width:\"100%\",height:\"100%\",opacity:seen?1:0,transform:seen?\"none\":\"translateY(40px) scale(0.975)\",transformOrigin:\"50% 100%\",willChange:\"transform, opacity\",// along a row the cards follow one another in\n            transition:isStatic?\"none\":`opacity 0.8s ${EASE_CSS} ${n%cols*.14}s, transform 1.15s ${EASE_CSS} ${n%cols*.14}s`},children:/*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",width:\"100%\",height:\"100%\",zIndex:hover===i?2:1,transform:hover===i?`scale(${grow})`:\"none\",transition:isStatic?\"none\":`transform 0.6s ${EASE_CSS}`},children:/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",transform:seen?\"none\":\"scale(1.06)\",transformOrigin:\"50% 40%\",transition:isStatic?\"none\":`transform 1.6s ${EASE_CSS} ${n%cols*.14}s`},children:/*#__PURE__*/_jsx(CaseStudyCard,{c:c,lit:hover===i,card:card,ink:ink,accent:accent,tagColor:tagColor,isStatic:isStatic,cta:cta,summaryLines:summaryLines,seen:seen,onOpen:()=>setOpenAt(i)})})})})},`${c.name}-${i}`))})]},g.title||\"all\")),/*#__PURE__*/_jsx(CaseStudySheet,{studies:items,openAt:openAt,onSelect:setOpenAt,onClose:()=>setOpenAt(-1),scheme:popupScheme,isStatic:isStatic})]}));}CaseStudyGrid.displayName=\"Case Study Grid\";addPropertyControls(CaseStudyGrid,{railLabel:{type:ControlType.String,title:\"Rail Label\",defaultValue:\"\",description:\"The word on the scroller down the left banner. Blank = no banner or scroller.\"},banner:{type:ControlType.Color,title:\"Banner\",defaultValue:\"#1E2934\",hidden:p=>!p.railLabel},bannerWidth:{type:ControlType.Number,title:\"Banner Width\",defaultValue:160,min:80,max:260,unit:\"px\",hidden:p=>!p.railLabel},railColor:{type:ControlType.Color,title:\"Rail Line\",defaultValue:\"\",hidden:p=>!p.railLabel,description:\"Blank follows the Accent. Medical pages use the neon #00FF80.\"},titleAlign:{type:ControlType.Enum,title:\"Title At\",options:[\"center\",\"top\"],optionTitles:[\"Middle\",\"Top\"],defaultValue:\"center\",displaySegmentedControl:true,hidden:p=>p.headSide!==\"left\",description:\"Top: the title block starts level with the top of the cards (Henry 2026-09-20, /rg-investments).\"},boxArt:{type:ControlType.String,title:\"Box Art\",defaultValue:\"\",hidden:p=>p.headSide!==\"left\",description:\"Framer CDN URL of a transparent line drawing laid from the box's lower left, behind the title and cards. Supplied artwork only. Blank = none.\"},boxArtStrength:{type:ControlType.Number,title:\"Box Art Strength\",defaultValue:.4,min:.05,max:1,step:.05,hidden:p=>!p.boxArt},boxArtSize:{type:ControlType.Number,title:\"Box Art Size\",defaultValue:100,min:20,max:160,step:5,unit:\"%\",hidden:p=>!p.boxArt,description:\"The drawing's height as a share of the box, standing on the box's lower left corner.\"},boxBrackets:{type:ControlType.Boolean,title:\"Box Brackets\",defaultValue:true,description:\"The gold corner brackets on the box. Off on /rg-investments, where the line drawing stands in the corner (Henry 2026-09-20).\"},rollTitle:{type:ControlType.Boolean,title:\"Roll Title\",defaultValue:false,description:\"The title rolls up letter by letter as the section arrives (the house RollText), as the other medical titles do.\"},boxArtDrop:{type:ControlType.Number,title:\"Box Art Drop\",defaultValue:0,min:-200,max:300,step:5,unit:\"px\",hidden:p=>!p.boxArt,description:\"Lowers the drawing past the box's foot (its base is cut off by the box), to clear the copy above it.\"},titleBrackets:{type:ControlType.Boolean,title:\"Title Brackets\",defaultValue:false,hidden:p=>p.headSide!==\"left\",description:\"Gold corner brackets round the title block (top left and both bottom corners). A line break in Title sets it on two lines.\"},headSide:{type:ControlType.Enum,title:\"Title Side\",options:[\"top\",\"left\"],optionTitles:[\"Top\",\"Left third\"],defaultValue:\"top\",displaySegmentedControl:true,description:\"Left third: the title (and Body) on the left, the cards in the right two thirds.\"},bodyCopy:{type:ControlType.String,title:\"Body\",defaultValue:\"\",displayTextArea:true,description:\"A paragraph under the title. Blank = none.\"},padTop:{type:ControlType.Number,title:\"Top Margin\",defaultValue:-1,min:-1,max:300,unit:\"px\",description:\"-1 = the same as Top/Bottom.\"},padRight:{type:ControlType.Number,title:\"Right Margin\",defaultValue:-1,min:-1,max:300,unit:\"px\",description:\"-1 = the same as Side Margin.\"},railX:{type:ControlType.Number,title:\"Rail X\",defaultValue:0,min:0,max:260,unit:\"px\",hidden:p=>!p.railLabel,description:\"Where the scroller runs, from the left edge. 0 = the middle of the banner. The RG boxed sections run theirs at 74.\"},selfScale:{type:ControlType.Boolean,title:\"Page Scale\",defaultValue:false,description:\"Shrink this section by the site's laptop size rule (PageScale.tsx). Leave off where a Fit Scale on the page already shrinks its frame (/our-experience, /medical-investments), or it shrinks twice.\"},railGap:{type:ControlType.Number,title:\"Rail Gap\",defaultValue:64,min:0,max:200,unit:\"px\",hidden:p=>!p.railLabel,description:\"Between the banner and the box.\"},only:{type:ControlType.String,title:\"Only\",defaultValue:\"\",placeholder:\"755 Commerce, Braselton\",description:\"Names, comma separated. Shows just those studies, in that order. Blank shows them all.\"},heading:{type:ControlType.String,title:\"Title\",defaultValue:\"\",description:\"Names the box instead of the engagement from the CMS. Blank keeps the engagement.\"},grouped:{type:ControlType.Boolean,title:\"Group by Engagement\",defaultValue:true,description:\"One jet box per engagement type (Investment, Leasing & Advisory...), in the order they first appear.\"},eyebrow:{type:ControlType.String,title:\"Eyebrow\",defaultValue:\"Case Studies\",hidden:p=>!p.grouped},columns:{type:ControlType.Number,title:\"Per Row\",defaultValue:3,min:1,max:4,step:1},cardHeight:{type:ControlType.Number,title:\"Card Height\",defaultValue:800,min:480,max:1e3,step:10,unit:\"px\"},popupScheme:{type:ControlType.Enum,title:\"Popup Colours\",options:[\"rg\",\"medical\"],optionTitles:[\"RG Real Estate\",\"RG Medical\"],defaultValue:\"rg\",displaySegmentedControl:true,description:\"The colour scheme of the case study popup the cards open.\"},cta:{type:ControlType.String,title:\"Button\",defaultValue:\"Learn More\",description:\"The link along each card's foot. Blank = none.\"},summaryLines:{type:ControlType.Number,title:\"Summary Lines\",defaultValue:8,min:2,max:12,step:1,description:\"How far a summary runs before it ends in an ellipsis.\"},grow:{type:ControlType.Number,title:\"Hover Grow\",defaultValue:1.04,min:1,max:1.12,step:.01},padX:{type:ControlType.Number,title:\"Side Margin\",defaultValue:124,min:0,max:300,step:4,unit:\"px\"},padY:{type:ControlType.Number,title:\"Top/Bottom\",defaultValue:120,min:0,max:300,step:4,unit:\"px\"},boxPad:{type:ControlType.Number,title:\"Box Padding\",defaultValue:72,min:0,max:160,step:4,unit:\"px\"},strip:{type:ControlType.Number,title:\"Cream Strip\",defaultValue:40,min:0,max:160,step:4,unit:\"px\",description:\"The cream between the boxes.\"},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:48,min:0,max:120,step:4,unit:\"px\"},ground:{type:ControlType.Color,title:\"Ground\",defaultValue:\"#FCFCFA\"},box:{type:ControlType.Color,title:\"Box\",defaultValue:\"#1E2934\"},card:{type:ControlType.Color,title:\"Card\",defaultValue:\"#1E2934\"},ink:{type:ControlType.Color,title:\"Ink\",defaultValue:\"#FCFCFA\"},accent:{type:ControlType.Color,title:\"Accent\",defaultValue:\"#C2921C\"},tagColor:{type:ControlType.Color,title:\"Tag\",defaultValue:\"#C2921C\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CaseStudyGrid\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CaseStudyGrid.map"],"mappings":"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"}