{"version":3,"file":"LedgerLine.C94jjdEw.mjs","names":["useState","useRef","p","c"],"sources":["https:/framerusercontent.com/modules/Tqf1vicD67lMYsePPB4g/NXd71snsAnJykFyEbtF8/LedgerLine.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType}from\"framer\";import{useEffect,useRef,useState}from\"react\";const GROT=\"'Space Grotesk', system-ui, sans-serif\";/* Live check 1 (2026-10-11): the published site emits only the ROMAN \"Fraunces Variable\" face, so italic was synthesized\n   and the static \"Fraunces\" 300 italic cut ignores opsz. Declare Framer's GF;Fraunces-variable-italic file under the same\n   family (italic) and set opsz + wght through variation settings. */const FRAUNCES_VI=\"https://fonts.gstatic.com/s/fraunces/v38/6NUT8FyLNQOQZAnv9ZwNlOkuzd1AZtw.woff2\";const SERIF=\"'Fraunces Variable', 'Fraunces', Georgia, serif\";const MONO=\"'JetBrains Mono', ui-monospace, Menlo, monospace\";const EASE=\"cubic-bezier(.16,1,.3,1)\";const css=`\n@font-face{font-family:\"Fraunces Variable\";font-style:italic;font-weight:100 900;font-display:swap;src:url(${FRAUNCES_VI}) format(\"woff2\")}\n.cll{font-family:${GROT};font-weight:500;color:var(--cll-ink);line-height:1.5;font-feature-settings:\"tnum\" 1}\n.cll-row{display:grid;grid-template-columns:1fr 360px;gap:40px;align-items:end}\n.cll-h{font-size:var(--cll-size);line-height:1.15;letter-spacing:-0.01em;font-weight:400;margin:0}\n.cll-name{display:inline-block;white-space:nowrap;font-family:${SERIF};font-style:italic;font-weight:300;font-variation-settings:\"opsz\" 72,\"wght\" 300;letter-spacing:0}\n.cll-ch{display:inline-block;vertical-align:bottom;line-height:1.15;clip-path:inset(-0.22em -0.4em -0.3em -0.4em)}\n.cll-ch i{display:inline-block;font-style:italic;will-change:transform}\n.cll-idx{color:var(--cll-accent);white-space:nowrap}\n.cll-data{justify-self:end;text-align:right;font-family:${MONO};font-weight:500;font-size:14px;line-height:1.6;font-feature-settings:\"tnum\" 1,\"zero\" 1}\n.cll-label{display:block;margin-bottom:6px;font-family:${GROT};font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--cll-ink-muted)}\n.cll-plan{margin-top:48px;border:1px solid var(--cll-hair);background:var(--cll-ground);overflow:hidden;aspect-ratio:var(--cll-aspect)}\n.cll-plan img{display:block;width:100%;height:100%;object-fit:cover}\n.cll-plan .cll-empty{width:100%;height:100%;background:var(--cll-ground-deep)}\n@media (max-width:1100px){.cll-h{font-size:var(--cll-size-t)}}\n@media (max-width:640px){.cll-row{grid-template-columns:1fr;gap:20px}.cll-data{justify-self:start;text-align:left}.cll-h{font-size:var(--cll-size-p)}.cll-name{white-space:normal}.cll-plan{margin-top:28px}}\n`;const SEED=[{name:\"Ferrant Yard\",verb:\"Complete:\",status:\"Complete\",lots:16,completionLabel:\"Completed Nov 2025\",started:\"2024-03-01\",completion:\"2025-11-01\"},{name:\"Ferrant Row\",verb:\"Now building:\",status:\"Now building\",lots:20,completionLabel:\"Completion Q3 2027\",started:\"2025-09-01\",completion:\"2027-09-01\"},{name:\"Ferrant Corner\",verb:\"Selling 2027:\",status:\"Selling 2027\",lots:16,completionLabel:\"Site work spring 2027\",started:\"2027-04-01\",completion:\"2028-06-01\"},{name:\"Ferrant Mews\",verb:\"Planned:\",status:\"Planned\",lots:12,completionLabel:\"Planned 2028\",started:\"2028-03-01\",completion:\"2029-03-01\"}];function utc(iso){const m=/^(\\d{4})-(\\d{2})-(\\d{2})/.exec(iso||\"\");if(m)return Date.UTC(+m[1],+m[2]-1,+m[3]);const t=Date.parse(iso||\"\");if(isNaN(t))return NaN;const d=new Date(t);return Date.UTC(d.getFullYear(),d.getMonth(),d.getDate());}function prefersReduced(){if(typeof window===\"undefined\"||!window.matchMedia)return false;return window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;}function readList(selector){if(typeof document===\"undefined\")return null;const root=document.querySelector(selector);if(!root)return null;const items=Array.from(root.querySelectorAll(\"[data-name]\"));if(!items.length){// Framer canvas lists cannot carry data-* attributes: fall back to the ordered-leaf grammar. Each direct\n// child of the list is one phase; its text leaves (p / span, in order) read name, verb, status, lots,\n// completion label, started, completion; the first <img> (or a background-image) is the site plan.\nconst kids=Array.from(root.children);const out=[];for(const kid of kids){const leaves=Array.from(kid.querySelectorAll(\"p, span, h1, h2, h3, h4, h5, h6\")).filter(n=>!n.querySelector(\"p, span, h1, h2, h3, h4, h5, h6\"));const t=leaves.map(n=>(n.textContent||\"\").trim());if(!t[0])continue;const img=kid.querySelector(\"img\");let plan=img?img.getAttribute(\"src\")||img.currentSrc||\"\":\"\";if(!plan){const bg=Array.from(kid.querySelectorAll(\"div\")).map(d=>d.style.backgroundImage).find(b=>b&&b!==\"none\");const mm=bg?/url\\([\"']?([^\"')]+)/.exec(bg):null;plan=mm?mm[1]:\"\";}out.push({name:t[0],verb:t[1]||\"\",status:t[2]||\"\",lots:Number((t[3]||\"0\").replace(/[^0-9.]/g,\"\")),completionLabel:t[4]||\"\",started:t[5]||\"\",completion:t[6]||\"\",planImage:plan?{src:plan}:undefined});}return out.length?out:null;}return items.map(el=>({name:el.getAttribute(\"data-name\")||\"\",verb:el.getAttribute(\"data-verb\")||\"\",status:el.getAttribute(\"data-status\")||\"\",lots:Number(el.getAttribute(\"data-lots\")||0),completionLabel:el.getAttribute(\"data-completion-label\")||\"\",started:el.getAttribute(\"data-started\")||\"\",completion:el.getAttribute(\"data-completion\")||\"\",planImage:el.getAttribute(\"data-plan\")?{src:el.getAttribute(\"data-plan\")}:undefined}));}function clampIndex(i,n){if(!n)return 0;return(Math.round(i)%n+n)%n;}export default function LedgerLine(props){const{sourceSelector,startIndex,startMode,intervalMs,autoplay,pauseOnHover,reducedMotion,showData,showPlan}=props;const[phases,setPhases]=useState(props.phases&&props.phases.length?props.phases:SEED);const[index,setIndex]=useState(clampIndex(startIndex,props.phases&&props.phases.length||SEED.length));const nameRef=useRef(null);const idxRef=useRef(null);const hover=useRef(false);const busy=useRef(false);// Keep the prop list on the canvas when it changes (no list in the DOM there).\nuseEffect(()=>{if(props.phases&&props.phases.length)setPhases(props.phases);},[props.phases]);// After mount: CMS list (if any) replaces the prop list; dates mode picks the live phase.\nuseEffect(()=>{const fromDom=readList(sourceSelector);const list=fromDom||(props.phases&&props.phases.length?props.phases:SEED);if(fromDom)setPhases(fromDom);let start=clampIndex(startIndex,list.length);if(startMode===\"dates\"){const now=new Date;const today=Date.UTC(now.getFullYear(),now.getMonth(),now.getDate());const live=list.findIndex(p=>{const a=utc(p.started),b=utc(p.completion);return!isNaN(a)&&!isNaN(b)&&a<=today&&today<b;});if(live>=0)start=live;}setIndex(start);},[sourceSelector,startIndex,startMode,props.phases]);// The loop. Static forever under reduced motion; never on the server.\nuseEffect(()=>{if(!autoplay||reducedMotion||prefersReduced())return;if(typeof window===\"undefined\"||phases.length<2)return;const n=phases.length;const roll=()=>{if(busy.current||hover.current||document.hidden)return;const nameEl=nameRef.current;if(!nameEl||typeof nameEl.animate!==\"function\"){setIndex(i=>clampIndex(i+1,n));return;}busy.current=true;const outs=Array.from(nameEl.querySelectorAll(\".cll-ch i\"));let done=0;const finish=()=>{setIndex(i=>clampIndex(i+1,n));// the new letters roll in on the next frame, after React has painted the next phase\nwindow.requestAnimationFrame(()=>{const el=nameRef.current;if(el)el.querySelectorAll(\".cll-ch i\").forEach((c,j)=>{c.animate([{transform:\"translateY(110%)\"},{transform:\"translateY(0)\"}],{duration:600,delay:j*22,easing:EASE,fill:\"both\"});});if(idxRef.current)idxRef.current.animate([{opacity:0},{opacity:1}],{duration:400,easing:\"linear\"});busy.current=false;});};if(!outs.length){finish();return;}outs.forEach((c,j)=>{const a=c.animate([{transform:\"translateY(0)\"},{transform:\"translateY(-110%)\"}],{duration:500,delay:j*22,easing:EASE,fill:\"forwards\"});a.onfinish=()=>{if(++done===outs.length)finish();};});};const t=window.setInterval(roll,Math.max(2e3,intervalMs));return()=>window.clearInterval(t);},[autoplay,reducedMotion,intervalMs,phases]);// Publish the current phase (window event + last value) so a sibling SitePlan can follow the roll.\nuseEffect(()=>{if(typeof window===\"undefined\")return;const k=clampIndex(index,phases.length);const detail={index:k,phase:k+1,name:(phases[k]||SEED[1]).name};window.__corbelLedger=detail;window.dispatchEvent(new CustomEvent(\"corbel-ledger\",{detail}));},[index,phases]);const n=phases.length;const i=clampIndex(index,n);const p=phases[i]||SEED[1];const chars=p.name.split(\"\");const vars={\"--cll-ground\":props.ground,\"--cll-ground-deep\":props.groundDeep,\"--cll-ink\":props.ink,\"--cll-ink-muted\":props.inkMuted,\"--cll-accent\":props.accent,\"--cll-hair\":\"color-mix(in srgb, \"+props.ink+\" 20%, transparent)\",\"--cll-size\":props.fontSize+\"px\",\"--cll-size-t\":props.fontSizeTablet+\"px\",\"--cll-size-p\":props.fontSizePhone+\"px\",\"--cll-aspect\":props.planAspect};return /*#__PURE__*/_jsxs(\"div\",{className:\"cll\",style:vars,\"aria-label\":props.ariaLabel,onMouseEnter:()=>{if(pauseOnHover)hover.current=true;},onMouseLeave:()=>{hover.current=false;},children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:css}}),/*#__PURE__*/_jsxs(\"div\",{className:\"cll-row\",children:[/*#__PURE__*/_jsxs(\"p\",{className:\"cll-h\",\"aria-live\":\"polite\",\"aria-atomic\":\"true\",children:[/*#__PURE__*/_jsx(\"span\",{children:p.verb}),\" \",/*#__PURE__*/_jsx(\"em\",{className:\"cll-name\",ref:nameRef,children:chars.map((c,k)=>/*#__PURE__*/_jsx(\"span\",{className:\"cll-ch\",children:/*#__PURE__*/_jsx(\"i\",{children:c===\" \"?\"\\xa0\":c})},k+c))}),\" \",/*#__PURE__*/_jsxs(\"span\",{className:\"cll-idx\",ref:idxRef,children:[props.separator,\" \",i+1,\" \",props.ofSeparator,\" \",n]})]}),showData?/*#__PURE__*/_jsxs(\"div\",{className:\"cll-data\",children:[/*#__PURE__*/_jsxs(\"span\",{className:\"cll-label\",children:[props.phaseLabel,\" \",i+1]}),p.status,\" \",props.separator,\" \",p.lots,\" \",props.residencesWord,/*#__PURE__*/_jsx(\"br\",{}),p.completionLabel]}):null]}),showPlan?/*#__PURE__*/_jsx(\"div\",{className:\"cll-plan\",children:p.planImage&&p.planImage.src?/*#__PURE__*/_jsx(\"img\",{src:p.planImage.src,srcSet:p.planImage.srcSet,alt:p.planImage.alt||\"\"}):/*#__PURE__*/_jsx(\"div\",{className:\"cll-empty\"})}):null]});}LedgerLine.defaultProps={phases:SEED,sourceSelector:\"#ledger-phases\",startIndex:1,startMode:\"index\",intervalMs:4e3,autoplay:true,pauseOnHover:true,reducedMotion:false,showData:true,showPlan:true,planAspect:\"1280 / 520\",phaseLabel:\"Phase\",residencesWord:\"residences\",separator:\"\\xb7\",ofSeparator:\"/\",fontSize:56,fontSizeTablet:40,fontSizePhone:32,ariaLabel:\"Construction phases\",ground:\"var(--token-51be705e-b1f5-4e95-ab55-2beba1912fa5, #FAFAFA)\",groundDeep:\"var(--token-fc930589-8fff-4089-997c-528ce4a76701, #EBEBEB)\",ink:\"var(--token-25542e87-3725-48c1-aa62-7834c0a54d9b, #111111)\",inkMuted:\"var(--token-2695c002-7854-4f3f-b684-5893548fd5f3, #5C5C5C)\",accent:\"var(--token-4cb6800d-1da9-45b7-9475-96d12bf06551, #1F4FB8)\"};/* Fonts: code components do not inherit the project's Google-font loading (Veranda session B). Re-read the URLs with\n * framer.getFont(family, { weight, style }) at build time; these are the Google Fonts CSS API latin files, 2026-10-08. */addFonts(LedgerLine,[{explicitInter:true,fonts:[{family:\"Space Grotesk\",source:\"google\",style:\"normal\",weight:\"400\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/6DG6HUOGHOB35UGAANBDBVY77OCFNQOA/MX56D7EXTFRCL3EZPNM332VF6D5TDENT/2MGP255ZY2RSFHKW6LNN6W6BWQGC2LUO.woff2\"},{family:\"Space Grotesk\",source:\"google\",style:\"normal\",weight:\"500\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/LQZILVYBY2UXBMF3ZGAZKDS2P53HB2G5/XB4XS4AXY7LIGYBYPO7RTAIGNPOSSI7K/V2SN6OQGC3Z2CCFHLOEJRJKQXUTOKEBX.woff2\"},{family:\"Fraunces\",source:\"google\",style:\"italic\",weight:\"300\",url:\"https://fonts.gstatic.com/s/fraunces/v38/6NVf8FyLNQOQZAnv9ZwNjucMHVn85Ni7emAe9lKqZTnbB-gzTK0K1ChJdt9vIVYX9G37lvd9sPEKsxx664UJf1gVTf7Tp05GNi3k.woff2\"},{family:\"JetBrains Mono\",source:\"google\",style:\"normal\",weight:\"500\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/WAVZNL4Z7TESTS4B4IIRZFODLSPP6FXA/E36Y7HT2GFM2VKF4G73CRBOSSERR73SW/33ZCUAC3GU2QVDMGY6EP3BNWHET5IUK4.woff2\"}]}],{supportsExplicitInterCodegen:true});addPropertyControls(LedgerLine,{phases:{type:ControlType.Array,title:\"Phases\",defaultValue:SEED,control:{type:ControlType.Object,controls:{name:{type:ControlType.String,title:\"Name\",defaultValue:\"Ferrant Row\"},verb:{type:ControlType.String,title:\"Status verb\",defaultValue:\"Now building:\"},status:{type:ControlType.String,title:\"Status\",defaultValue:\"Now building\"},lots:{type:ControlType.Number,title:\"Lots\",min:0,max:9999,step:1,defaultValue:20},completionLabel:{type:ControlType.String,title:\"Completion label\",defaultValue:\"Completion Q3 2027\"},started:{type:ControlType.String,title:\"Started (YYYY-MM-DD)\",defaultValue:\"2025-09-01\"},completion:{type:ControlType.String,title:\"Completion (YYYY-MM-DD)\",defaultValue:\"2027-09-01\"},planImage:{type:ControlType.ResponsiveImage,title:\"Site plan\"}}}},sourceSelector:{type:ControlType.String,title:\"CMS list selector\",defaultValue:\"#ledger-phases\"},startIndex:{type:ControlType.Number,title:\"Start index\",min:0,max:20,step:1,defaultValue:1},startMode:{type:ControlType.Enum,title:\"Start\",options:[\"index\",\"dates\"],optionTitles:[\"Start index\",\"Live by dates\"],defaultValue:\"index\"},intervalMs:{type:ControlType.Number,title:\"Interval (ms)\",min:2e3,max:1e4,step:250,defaultValue:4e3},autoplay:{type:ControlType.Boolean,title:\"Autoplay\",defaultValue:true},pauseOnHover:{type:ControlType.Boolean,title:\"Pause on hover\",defaultValue:true},reducedMotion:{type:ControlType.Boolean,title:\"Reduced motion\",defaultValue:false},showData:{type:ControlType.Boolean,title:\"Data block\",defaultValue:true},showPlan:{type:ControlType.Boolean,title:\"Site plan\",defaultValue:true},planAspect:{type:ControlType.String,title:\"Plan aspect\",defaultValue:\"1280 / 520\",hidden:p=>!p.showPlan},phaseLabel:{type:ControlType.String,title:\"Phase label\",defaultValue:\"Phase\"},residencesWord:{type:ControlType.String,title:\"Residences word\",defaultValue:\"residences\"},separator:{type:ControlType.String,title:\"Separator\",defaultValue:\"\\xb7\"},ofSeparator:{type:ControlType.String,title:\"Index separator\",defaultValue:\"/\"},fontSize:{type:ControlType.Number,title:\"Size\",min:20,max:120,step:1,defaultValue:56},fontSizeTablet:{type:ControlType.Number,title:\"Size tablet\",min:20,max:120,step:1,defaultValue:40},fontSizePhone:{type:ControlType.Number,title:\"Size phone\",min:16,max:80,step:1,defaultValue:32},ariaLabel:{type:ControlType.String,title:\"Aria label\",defaultValue:\"Construction phases\"},ground:{type:ControlType.Color,title:\"Ground\",defaultValue:\"var(--token-51be705e-b1f5-4e95-ab55-2beba1912fa5, #FAFAFA)\"},groundDeep:{type:ControlType.Color,title:\"Ground deep\",defaultValue:\"var(--token-fc930589-8fff-4089-997c-528ce4a76701, #EBEBEB)\"},ink:{type:ControlType.Color,title:\"Ink\",defaultValue:\"var(--token-25542e87-3725-48c1-aa62-7834c0a54d9b, #111111)\"},inkMuted:{type:ControlType.Color,title:\"Ink muted\",defaultValue:\"var(--token-2695c002-7854-4f3f-b684-5893548fd5f3, #5C5C5C)\"},accent:{type:ControlType.Color,title:\"Accent\",defaultValue:\"var(--token-4cb6800d-1da9-45b7-9475-96d12bf06551, #1F4FB8)\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"LedgerLine\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./LedgerLine.map"],"mappings":"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"}