{"version":3,"file":"AutoProjectCount.YS8Gf1C3.mjs","names":["React.useState","React.useRef"],"sources":["https:/framerusercontent.com/modules/6psbnT9dR60PkEqgdE9z/rjOMmIX5k4JtuchQTYBr/AutoProjectCount.js"],"sourcesContent":["import{jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{animate,useInView}from\"framer-motion\";/**\n * Shows how many projects are published on the site. It reads the site's own\n * sitemap, so every project added to (or removed from) the CMS is counted automatically.\n *\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */export default function AutoProjectCount(props){const{fallback,prefix,suffix,path,color,font}=props;const isStatic=useIsStaticRenderer();const[count,setCount]=React.useState(fallback);const[shown,setShown]=React.useState(fallback);const ref=React.useRef(null);const inView=useInView(ref,{once:true});React.useEffect(()=>{if(isStatic||typeof window===\"undefined\")return;const controller=new AbortController;fetch(\"/sitemap.xml\",{signal:controller.signal}).then(response=>response.ok?response.text():\"\").then(xml=>{const base=path.replace(/\\/+$/,\"\");const matches=xml.match(/<loc>[^<]+<\\/loc>/g)||[];const total=matches.filter(loc=>{const url=loc.replace(/<\\/?loc>/g,\"\");const pathname=url.replace(/^https?:\\/\\/[^/]+/,\"\");return pathname.startsWith(base+\"/\")&&pathname.length>base.length+1;}).length;if(total>0)setCount(total);}).catch(()=>{});return()=>controller.abort();},[isStatic,path]);React.useEffect(()=>{if(isStatic||!inView){setShown(count);return;}const controls=animate(0,count,{duration:1.2,ease:\"easeOut\",onUpdate:v=>setShown(Math.round(v))});return()=>controls.stop();},[count,inView,isStatic]);return /*#__PURE__*/_jsxs(\"span\",{ref:ref,style:{...font,color,whiteSpace:\"nowrap\",display:\"inline-block\"},children:[prefix,shown,suffix]});}AutoProjectCount.displayName=\"Auto Project Count\";addPropertyControls(AutoProjectCount,{fallback:{type:ControlType.Number,title:\"Fallback\",defaultValue:11,min:0,step:1,displayStepper:true},prefix:{type:ControlType.String,title:\"Prefix\",defaultValue:\"\"},suffix:{type:ControlType.String,title:\"Suffix\",defaultValue:\"\"},path:{type:ControlType.String,title:\"Section path\",defaultValue:\"/listings\"},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#F5F6F7\"},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"14px\",lineHeight:\"1.4em\"}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"AutoProjectCount\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"auto\",\"framerSupportedLayoutWidth\":\"auto\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./AutoProjectCount.map"],"mappings":"iQAMG,SAAwB,EAAiB,EAAM,CAAC,GAAK,CAAC,WAAS,SAAO,SAAO,OAAK,QAAM,QAAM,EAAY,EAAS,EAAoB,EAAO,CAAC,EAAM,GAAUA,EAAe,CAAQ,EAAO,CAAC,EAAM,GAAUA,EAAe,CAAQ,EAAQ,EAAIC,EAAa,IAAI,EAAQ,EAAO,EAAU,EAAI,CAAC,KAAK,EAAI,CAAC,EAA0yB,OAAxyB,MAAoB,CAAC,GAAG,GAAiB,IAAS,OAAY,OAAO,IAAM,EAAW,IAAI,gBAAoc,OAApb,MAAM,eAAe,CAAC,OAAO,EAAW,MAAM,CAAC,CAAC,CAAC,KAAK,GAAU,EAAS,GAAG,EAAS,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,GAAK,CAAC,IAAM,EAAK,EAAK,QAAQ,OAAO,EAAE,EAA0D,GAA1C,EAAI,MAAM,oBAAoB,GAAG,CAAC,EAAA,CAAsB,OAAO,GAAK,CAAuC,IAAM,EAAlC,EAAI,QAAQ,YAAY,EAAqB,CAAC,CAAC,QAAQ,oBAAoB,EAAE,EAAE,OAAO,EAAS,WAAW,EAAK,GAAG,GAAG,EAAS,OAAO,EAAK,OAAO,CAAE,CAAC,CAAC,CAAC,OAAU,EAAM,GAAE,EAAS,CAAK,CAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAY,EAAW,MAAM,CAAE,EAAE,CAAC,EAAS,CAAI,CAAC,EAAE,MAAoB,CAAC,GAAG,GAAU,CAAC,EAAO,CAAC,EAAS,CAAK,EAAE,MAAO,CAAC,IAAM,EAAS,EAAQ,EAAE,EAAM,CAAC,SAAS,IAAI,KAAK,UAAU,SAAS,GAAG,EAAS,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAS,KAAK,CAAE,EAAE,CAAC,EAAM,EAAO,CAAQ,CAAC,EAAsB,EAAM,OAAO,CAAK,MAAI,MAAM,CAAC,GAAG,EAAK,QAAM,WAAW,SAAS,QAAQ,cAAc,EAAE,SAAS,CAAC,EAAO,EAAM,CAAM,CAAC,CAAC,CAAE,qBANvrC,IAA4B,IAAwE,IAA6C,EAMuiC,EAAiB,YAAY,qBAAqB,EAAoB,EAAiB,CAAC,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,aAAa,GAAG,IAAI,EAAE,KAAK,EAAE,eAAe,EAAI,EAAE,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,EAAE,EAAE,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,EAAE,EAAE,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,aAAa,WAAW,EAAE,MAAM,CAAC,KAAK,EAAY,MAAM,MAAM,QAAQ,aAAa,SAAS,EAAE,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,SAAS,WAAW,gBAAgB,aAAa,aAAa,CAAC,SAAS,OAAO,WAAW,OAAO,CAAC,CAAC,CAAC"}