{"version":3,"file":"MapStatement.Dy-m0TY2.mjs","names":["useRef","useState"],"sources":["https:/framerusercontent.com/modules/2myrJWmlhpUzLhDbdj4H/Un14tiroRTn1pbW9HQT1/MapStatement.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{Numerals}from\"https://framerusercontent.com/modules/SV3D5eLnhXYqu6QFCP11/ZnQWt6WrgJsUtn3ausxq/HouseFigure.js\";import{usePageScale,usePageLayout}from\"https://framerusercontent.com/modules/Ng45YrpyAOriq23Rp3Gd/Rhl7BCZJ2aOqb2ZcHvNC/PageScale.js\";import{useEffect,useRef,useState}from\"react\";import RailBanner from\"https://framerusercontent.com/modules/K9PG0cxMXSkjuXA4RNe8/470b40IEIX2pL07UZd4d/RailBanner.js\";/**\n * Map Statement - \"What We Do\" from Henry's mock for /our-experience (2026-09-15), the section under\n * the Skyline Hero. A navy street-map ground (his image) split by two full-height gold rules: a narrow\n * rail on the left carrying the section label set vertically, and a rule about two thirds across.\n * The firm statement sits large at the head of the wide panel; a shorter aside sits at the foot of the\n * right panel and fades in as it scrolls into view.\n *\n * Fits the screen as the Skyline Hero does: the viewport height in design px under the site page\n * factor, the statement anchored to the foot and the aside to the head, so the composition holds at\n * any height. The rules draw down on entry, then the copy rises.\n *\n * House type: statement Header 1.5 50 (Cormorant), aside Header 2 32 (Cormorant), the rail label in the\n * house banner caps (RailBanner). Colours default to the RG Real Estate set: the gold for rules and label, Grey White type.\n *\n * @framerIntrinsicWidth 2132\n * @framerIntrinsicHeight 1000\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 STATEMENT_GAP=66// from the rail to the statement\n;const STATEMENT_W=1e3;const STATEMENT_BOTTOM=104;const ASIDE_GAP=76// from the split rule to the aside\n;const ASIDE_TOP=102;const ASIDE_W=500;// the copy never reaches closer than this to a rule or the right edge: on a laptop the panels are narrower than the\n// design, so the statement and aside wrap to more lines rather than run over the split rule or off the page\nconst PANEL_PAD=64;const ASIDE_FADE=.35// the aside fades in over this share of the window height as it scrolls up\n;// THE LABEL is the house rail banner (RailBanner.tsx), the same one the Verticals and Experience sections carry,\n// and it stands on the same line they do: RAIL_X from the left edge, not on this section's own rail rule.\nconst RAIL_X=74;// the gold lines melt away toward the foot of the section rather than stopping at its edge (Henry 2026-09-16)\nconst LINE_FADE=320;// a zoomed-out map fades out over its outer 14% on every side (two gradients intersected)\nconst EDGE_FEATHER=\"linear-gradient(to right, transparent 0%, #000 14%, #000 86%, transparent 100%), linear-gradient(to bottom, transparent 0%, #000 14%, #000 86%, transparent 100%)\";export default function MapStatement(props){const{label=\"What We Do\",statement=\"RG Real Estate creates lasting value and superior outcomes for clients and investors through expert real estate advisory and disciplined investment execution.\",aside=\"We apply owner’s insight, institutional rigor, local market expertise to align strategy, performance, and long-term outcomes.\",background=\"\",wash=\"#0A1A33\",washStrength=.4,rail=170,split=.695,// SPLIT GUTTER (Henry 2026-09-17, /healthcare-leasing-advisory: the split rule must line up with the hero's panel seam\n// above): measure the split from a margin line this far in, as MedicalHero sets its thirds (GUTTER 44 + the rest / 3),\n// so the two agree at every width; both sections zoom by the same page factor, so they agree on short screens too. 0 = plain share\nsplitGutter=0,// the same from the right, for a hero with a right margin line too (MedicalHero Right Line); 0 = none\nsplitGutterRight=0,// the scroller's line from the left edge (Henry 2026-09-17: the hero's margin line and the scrollers on one line)\nrailX=RAIL_X,// the aside's size: Header 2 32, or Header 3 24 for a longer aside (Henry 2026-09-17, /healthcare-leasing-advisory: \"a little smaller\")\nasideSize=32,topFade=0,overlap=0,mapScale=1,mapFocusY=.5,mapAt=.5,mapShiftX=0,mapStrength=1,cityLabel=\"\",ink=\"#F4F3F7\",accent=\"#C2921C\",// the scroller's own line colour; blank follows the Accent (Henry 2026-09-17: the medical pages' scrollers are neon)\nrailColor=\"\",fitScreen=true,designHeight=1e3,style}=props;const isStatic=useIsStaticRenderer();const ref=useRef(null);// the viewport height and the site page factor, as the Skyline Hero reads them\nconst[vh,setVh]=useState(0);useEffect(()=>{if(isStatic||typeof window===\"undefined\")return;const read=()=>setVh(window.innerHeight);read();window.addEventListener(\"resize\",read);return()=>window.removeEventListener(\"resize\",read);},[isStatic]);const z=usePageScale()// the site's one size rule (PageScale.tsx): full size, or the laptop step under 1500 wide\n;// FIXED HEIGHT (Henry 2026-09-19): the section no longer stretches or squeezes to the window; it is Design Height at full\n// size and Design Height x the laptop step under 1500 wide, and a short window scrolls. Fit Screen is kept only so old\n// instances still load; it no longer changes the height.\nconst height=designHeight;// both paragraphs fade in as they scroll up into view\nconst asideRef=useRef(null);const[asideIn,setAsideIn]=useState(isStatic?1:0);const statementRef=useRef(null);const[statementIn,setStatementIn]=useState(isStatic?1:0);useEffect(()=>{if(typeof window===\"undefined\")return;const read=()=>{if(isStatic)return;// the aside: 0 while its top is at the foot of the window, 1 once it has risen ASIDE_FADE of the window height\nconst fadeIn=el=>el?Math.max(0,Math.min(1,(window.innerHeight-el.getBoundingClientRect().top)/(window.innerHeight*ASIDE_FADE))):1;setAsideIn(fadeIn(asideRef.current));// the statement rises into view the same way (Henry: both paragraphs behave alike on scroll)\nsetStatementIn(fadeIn(statementRef.current));};read();const settle=window.setTimeout(read,600);window.addEventListener(\"scroll\",read,{passive:true});window.addEventListener(\"resize\",read);return()=>{window.clearTimeout(settle);window.removeEventListener(\"scroll\",read);window.removeEventListener(\"resize\",read);};},[isStatic,vh,label]);const[seen,setSeen]=useState(isStatic);useEffect(()=>{if(isStatic)return;const el=ref.current;if(!el||typeof IntersectionObserver===\"undefined\"){setSeen(true);return;}const io=new IntersectionObserver(es=>{if(es.some(e=>e.isIntersecting)){setSeen(true);io.disconnect();}},{threshold:.2});io.observe(el);// failsafe: an IntersectionObserver can stay quiet in a tab that loaded in the background\nconst t=window.setTimeout(()=>setSeen(true),4e3);return()=>{window.clearTimeout(t);io.disconnect();};},[isStatic]);const rise=at=>({opacity:seen?1:0,transform:seen?\"none\":\"translateY(18px)\",transition:isStatic?\"none\":`opacity 1s ${EASE_CSS} ${at}s, transform 1s ${EASE_CSS} ${at}s`});const drawDown=at=>({transformOrigin:\"50% 0%\",transform:seen?\"none\":\"scaleY(0)\",transition:isStatic?\"none\":`transform 1.4s ${EASE_CSS} ${at}s`});const s=Math.max(0,Math.min(1,washStrength));// with a top fade the rules fade in from the very top of the section (and so from inside any overlap), reaching\n// full gold well before the fade ends (Henry: start the gold lines a little higher)\nconst LINE_FADE_MASK=`linear-gradient(to bottom, #000 0, #000 calc(100% - ${LINE_FADE}px), transparent 100%)`;const ruleFill=topFade>0?`linear-gradient(to bottom, ${alpha(accent,0)} 0px, ${alpha(accent,.45)} ${Math.round(topFade*.3)}px, ${alpha(accent,.85)} ${Math.round(topFade*.6)}px)`:alpha(accent,.85);// OVERLAP (Henry 2026-09-15, \"make things overlap\"): the section rises over the foot of the one above by this much.\n// The box is drawn that much taller and pulled up, while its own height stays the same, so nothing below moves;\n// its ground is masked clear at the top, so the section above shows through and the map fades in over it.\nconst lift=Math.max(0,overlap);const scaleMap=Math.max(.4,Math.min(1,mapScale));const zoomedOut=scaleMap<1;// how strongly the map shows over the ground (Henry: bigger, but much subtler); the ground under it is the same Jet Black,\n// so lowering it fades the streets and gold roads without changing the colour around them\nconst mapOpacity=Math.max(0,Math.min(1,mapStrength));const groundMask=topFade>0?`linear-gradient(to bottom, transparent 0px, #000 ${topFade}px)`:undefined;const splitShare=Math.max(.3,Math.min(.9,split));const splitPct=splitGutter+splitGutterRight>0?`calc(${splitGutter}px + (100% - ${splitGutter+Math.max(0,splitGutterRight)}px) * ${splitShare})`:`${splitShare*100}%`;// TABLET AND PHONE (Henry 2026-09-19): one stacked layout. The side scroller and the split rule go; the label becomes a caps\n// eyebrow over the statement, the aside follows under a gold rule, and the map stays faintly behind.\nconst layout=usePageLayout(ref);if(layout.stacked){const edge=layout.phone?24:48;return /*#__PURE__*/_jsxs(\"div\",{ref:ref,style:{...style,width:\"100%\",position:\"relative\",overflow:\"hidden\",background:wash,color:ink,boxSizing:\"border-box\",padding:`${layout.phone?72:96}px ${edge}px`},children:[background&&/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":\"true\",style:{position:\"absolute\",top:0,bottom:0,right:layout.phone?\"-18%\":0,width:layout.phone?\"80%\":\"46%\",backgroundImage:`url(${background})`,/* sized by HEIGHT so the building fills its side; the drawing's centre is the building */backgroundSize:layout.phone?\"contain\":\"auto 72%\",backgroundRepeat:\"no-repeat\",backgroundPosition:layout.phone?\"100% 100%\":\"50% 50%\",opacity:Math.min(1,mapOpacity*1.4),WebkitMaskImage:\"linear-gradient(to left, #000 0%, #000 70%, transparent 100%)\",maskImage:\"linear-gradient(to left, #000 0%, #000 70%, transparent 100%)\"}}),/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",maxWidth:layout.phone||!background?720:\"60%\"},children:[label&&/*#__PURE__*/_jsx(\"div\",{style:{fontFamily:\"Poppins, sans-serif\",fontSize:12,letterSpacing:\"0.4em\",textTransform:\"uppercase\",lineHeight:1.6,color:railColor||accent},children:label}),/*#__PURE__*/_jsx(\"div\",{style:{fontFamily:'\"Cormorant Garamond\", Georgia, serif',fontWeight:400,fontSize:layout.phone?28:38,lineHeight:1.3,letterSpacing:\"-0.01em\",marginTop:24,whiteSpace:\"pre-line\"},children:/*#__PURE__*/_jsx(Numerals,{text:statement})}),aside&&/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":\"true\",style:{width:56,height:2,background:accent,margin:\"32px 0 28px\"}}),aside&&/*#__PURE__*/_jsx(\"div\",{style:{fontFamily:'\"Cormorant Garamond\", Georgia, serif',fontWeight:400,fontSize:layout.phone?20:24,lineHeight:1.5,color:ink,opacity:.88,whiteSpace:\"pre-line\"},children:/*#__PURE__*/_jsx(Numerals,{text:aside})})]})]});}return /*#__PURE__*/_jsx(\"div\",{ref:ref,style:{...style,width:\"100%\",height,zoom:z,position:\"relative\",color:ink},children:/*#__PURE__*/_jsxs(\"div\",{style:{position:\"absolute\",left:0,right:0,top:-lift,bottom:0,overflow:\"hidden\"},children:[/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":\"true\",style:{position:\"absolute\",left:0,right:0,top:lift,bottom:0,background:wash}}),/*#__PURE__*/_jsxs(\"div\",{\"aria-hidden\":\"true\",style:{position:\"absolute\",inset:0,maskImage:groundMask,WebkitMaskImage:groundMask},children:[background&&(zoomedOut?// zoomed out (Henry: the map dominated): the image drawn smaller than the box with its focus point (the city\n// centre) sitting ON the split rule, Map At of the way down the section, so the statement and the aside fall on its\n// quieter edges (Henry: centre Atlanta through the two-thirds line, much smaller); edges feathered into the\n// ground so no street line stops hard at the picture's border\n/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",width:`${scaleMap*100}%`,aspectRatio:\"16 / 9\",left:`calc(${splitPct} - ${scaleMap*50}% + ${mapShiftX}px)`,top:`${lift+height*Math.max(0,Math.min(1,mapAt))}px`,transform:`translateY(-${Math.max(0,Math.min(1,mapFocusY))*100}%)`,backgroundImage:`url(${background})`,backgroundSize:\"100% 100%\",opacity:mapOpacity,maskImage:EDGE_FEATHER,WebkitMaskImage:EDGE_FEATHER,maskComposite:\"intersect\",WebkitMaskComposite:\"source-in\"}}):/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,backgroundImage:`url(${background})`,backgroundSize:\"cover\",backgroundPosition:\"50% 50%\",opacity:mapOpacity}})),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,background:alpha(wash,s)}})]}),cityLabel&&background&&zoomedOut&&/*#__PURE__*/_jsxs(\"div\",{\"aria-hidden\":\"true\",style:{position:\"absolute\",left:`calc(${splitPct} + ${mapShiftX}px)`,top:`${lift+height*Math.max(0,Math.min(1,mapAt))}px`,width:0,height:0,opacity:seen||isStatic?1:0,transition:\"opacity 0.9s ease 0.9s\",pointerEvents:\"none\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:-11,top:-11,width:22,height:22,borderRadius:\"50%\",border:`1px solid ${alpha(accent,.45)}`}}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:-4,top:-4,width:8,height:8,borderRadius:\"50%\",background:accent}}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:20,left:0,transform:\"translateX(-50%)\",fontFamily:\"Poppins, sans-serif\",fontSize:11,fontWeight:400,letterSpacing:\"0.4em\",marginRight:\"-0.4em\",textTransform:\"uppercase\",lineHeight:1,whiteSpace:\"nowrap\",color:alpha(ink,.8)},children:cityLabel})]}),/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":\"true\",style:{position:\"absolute\",top:0,bottom:0,left:splitPct,width:1,background:ruleFill,maskImage:LINE_FADE_MASK,WebkitMaskImage:LINE_FADE_MASK,...drawDown(.2)}}),/*#__PURE__*/_jsx(RailBanner,{label:label,x:railX,accent:railColor||accent,ground:wash,fadeFoot:LINE_FADE,seen:seen,isStatic:isStatic}),/*#__PURE__*/_jsx(\"p\",{ref:statementRef,style:{position:\"absolute\",left:rail+STATEMENT_GAP,right:`calc(100% - ${splitPct} + ${PANEL_PAD}px)`,top:lift+ASIDE_TOP,maxWidth:STATEMENT_W,margin:0,fontFamily:SERIF,fontWeight:400,fontSize:50,lineHeight:1.45,letterSpacing:\"0.015em\",color:ink,opacity:statementIn,transform:`translateY(${Math.round((1-statementIn)*24)}px)`,transition:isStatic?\"none\":\"opacity 0.12s linear, transform 0.12s linear\"},children:statement}),/*#__PURE__*/_jsx(\"p\",{ref:asideRef,style:{position:\"absolute\",left:`calc(${splitPct} + ${ASIDE_GAP}px)`,right:PANEL_PAD,bottom:STATEMENT_BOTTOM,maxWidth:ASIDE_W,margin:0,fontFamily:SERIF,fontWeight:400,fontSize:asideSize===24?24:32,lineHeight:1.45,letterSpacing:\"0.005em\",color:alpha(ink,.92),opacity:asideIn,transform:`translateY(${Math.round((1-asideIn)*24)}px)`,transition:isStatic?\"none\":\"opacity 0.12s linear, transform 0.12s linear\"},children:aside})]})});}MapStatement.displayName=\"Map Statement\";// colour + alpha for hex or rgb()/rgba() strings\nfunction alpha(color,a){const c=(color||\"\").trim();const m=c.match(/rgba?\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*,\\s*([\\d.]+)/);if(m)return`rgba(${m[1]}, ${m[2]}, ${m[3]}, ${a})`;const h=c.replace(\"#\",\"\");const v=parseInt(h.length===3?h.split(\"\").map(x=>x+x).join(\"\"):h.slice(0,6),16);return`rgba(${v>>16&255}, ${v>>8&255}, ${v&255}, ${a})`;}addPropertyControls(MapStatement,{label:{type:ControlType.String,title:\"Label\",defaultValue:\"What We Do\"},statement:{type:ControlType.String,title:\"Statement\",displayTextArea:true,defaultValue:\"RG Real Estate creates lasting value and superior outcomes for clients and investors through expert real estate advisory and disciplined investment execution.\"},aside:{type:ControlType.String,title:\"Aside\",displayTextArea:true,defaultValue:\"We apply owner’s insight, institutional rigor, local market expertise to align strategy, performance, and long-term outcomes.\"},background:{type:ControlType.String,title:\"Background\",defaultValue:\"\",description:\"Framer CDN URL of the map image.\"},wash:{type:ControlType.Color,title:\"Wash\",defaultValue:\"#0A1A33\"},washStrength:{type:ControlType.Number,title:\"Wash Strength\",defaultValue:.4,min:0,max:1,step:.05},rail:{type:ControlType.Number,title:\"Rail\",defaultValue:170,min:80,max:400,unit:\"px\",description:\"Left edge to the first gold rule; the label is centred in it.\"},splitGutter:{type:ControlType.Number,title:\"Split Gutter\",defaultValue:0,min:0,max:200,unit:\"px\",description:\"Measure the split from a margin line this far in (44 matches the Medical Hero's panel seams at Split 0.667). 0 = a plain share of the width.\"},splitGutterRight:{type:ControlType.Number,title:\"Split Gutter R\",defaultValue:0,min:0,max:200,step:.5,unit:\"px\",description:\"The same from the right edge, for a hero with a right margin line. 0 = none.\"},asideSize:{type:ControlType.Enum,title:\"Aside Size\",options:[32,24],optionTitles:[\"Header 2 32\",\"Header 3 24\"],defaultValue:32,displaySegmentedControl:true},railX:{type:ControlType.Number,title:\"Rail X\",defaultValue:RAIL_X,min:0,max:300,step:.5,unit:\"px\",description:\"The scroller line's distance from the left edge.\"},split:{type:ControlType.Number,title:\"Split\",defaultValue:.695,min:.3,max:.9,step:.005,description:\"Where the second gold rule sits, as a share of the width.\"},ink:{type:ControlType.Color,title:\"Ink\",defaultValue:\"#F4F3F7\"},accent:{type:ControlType.Color,title:\"Accent\",defaultValue:\"#C2921C\"},railColor:{type:ControlType.Color,title:\"Rail Line\",defaultValue:\"\",description:\"The scroller line down the left. Blank follows the Accent.\"},mapScale:{type:ControlType.Number,title:\"Map Scale\",defaultValue:1,min:.4,max:1,step:.05,description:\"1 fills the section; below 1 the map is drawn smaller, centred on the split rule, with feathered edges.\"},mapFocusY:{type:ControlType.Number,title:\"Map Focus\",defaultValue:.5,min:0,max:1,step:.01,hidden:p=>p.mapScale>=1,description:\"How far down the map image its city centre sits (0.5 = the middle); that point lands on the split rule.\"},cityLabel:{type:ControlType.String,title:\"City Label\",defaultValue:\"\",hidden:p=>p.mapScale>=1,description:\"A gold dot on the map's focus point (the city centre) with this name under it. Blank = no marker. Desktop layout only.\"},mapStrength:{type:ControlType.Number,title:\"Map Strength\",defaultValue:1,min:0,max:1,step:.05,description:\"How strongly the map shows; lower is subtler.\"},mapShiftX:{type:ControlType.Number,title:\"Map Shift X\",defaultValue:0,min:-400,max:400,step:5,hidden:p=>p.mapScale>=1,description:\"Nudges the map sideways from the split rule; negative moves it left.\"},mapAt:{type:ControlType.Number,title:\"Map At\",defaultValue:.5,min:0,max:1,step:.01,hidden:p=>p.mapScale>=1,description:\"How far down the section the map's focus point lands; it lands on the split rule, between the statement at the head and the aside at the foot.\"},overlap:{type:ControlType.Number,title:\"Overlap\",defaultValue:0,min:0,max:500,unit:\"px\",description:\"How far the section rises over the foot of the one above; use with Top Fade so it shows through.\"},topFade:{type:ControlType.Number,title:\"Top Fade\",defaultValue:0,min:0,max:600,unit:\"px\",description:\"How far the head fades from solid Wash into the map, and the rules with it; for a section above that ends in the same colour.\"},fitScreen:{type:ControlType.Boolean,title:\"Fit Screen\",defaultValue:true},designHeight:{type:ControlType.Number,title:\"Design Height\",defaultValue:1e3,min:600,max:1400,unit:\"px\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"MapStatement\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MapStatement.map"],"mappings":"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"}