PageSourceSearch

https://afhco.co.za/assets/PropertyCard-DWOSO5xJ.js

js afhco.co.za collected 2026-10-08 09:17:25 UTC 3,892 bytes, 1 lines download raw bytes

1import{u as c,j as s,v as m,ah as r,b9 as x,ba as t,a8 as u,bb as g,bc as h,ao as f,S as b,aC as j,L as N}from"./index-BEqAodlh.js";function v({property:e,index:l,animate:n="inView"}){const{t:d}=c(),o=n==="inView"?{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0}}:{initial:{opacity:0,y:20},animate:{opacity:1,y:0}},a=s.jsxs(m.div,{...o,transition:{duration:.4,delay:l*.06},whileHover:{y:-4},className:"group cursor-pointer bg-card border border-border rounded-xl overflow-hidden shadow-soft hover:shadow-elevated transition-all duration-300 h-full flex flex-col",children:[s.jsxs("div",{className:"aspect-[4/3] overflow-hidden relative",children:[s.jsx("img",{src:r(e.image,{width:600,quality:72}),alt:e.name,width:600,height:450,loading:"lazy",decoding:"async",className:"w-full h-full object-cover grayscale-[0.15] group-hover:grayscale-0 group-hover:scale-105 transition-all duration-500"}),(e.badge||e.displayUnitsLeft&&e.unitsLeft!=null)&&s.jsxs("div",{className:"absolute top-3 left-3 flex flex-col items-start gap-1.5",children:[e.badge&&s.jsx("span",{className:"px-4 py-1.5 text-xs font-bold uppercase bg-highlight text-highlight-foreground rounded-full tracking-wide",children:d("On Promotion")}),e.displayUnitsLeft&&e.unitsLeft!=null&&s.jsx("span",{className:"px-4 py-1.5 text-xs font-bold uppercase bg-units-left text-units-left-foreground rounded-full tracking-wide",children:x(e.unitsLeft)})]})]}),s.jsxs("div",{className:"p-5 border-t border-border flex flex-col flex-1",children:[s.jsx("h3",{className:"text-lg font-bold text-foreground mt-0.5",children:e.name}),(e.listingType||(e.categories?.length??0)>0||typeof e.priceFrom=="number"&&e.priceFrom>0)&&s.jsxs("div",{className:"flex flex-wrap items-center gap-1.5 mt-2",children:[e.listingType&&s.jsx("span",{className:`px-2.5 py-0.5 text-[11px] font-bold uppercase rounded-full tracking-wide ${e.listingType==="For Sale"?"bg-blue-100 text-blue-700":"bg-primary/10 text-primary"}`,children:e.listingType}),e.categories?.map(i=>s.jsx("span",{className:"px-2.5 py-0.5 text-[11px] font-semibold rounded-full bg-muted text-muted-foreground",children:i},i)),typeof e.priceFrom=="number"&&e.priceFrom>0&&s.jsxs("span",{className:"ml-auto text-sm font-bold text-accent whitespace-nowrap",children:["From ",t(e.priceFrom),e.listingType==="For Sale"?"":" pm"]})]}),s.jsxs("div",{className:"flex items-center gap-1.5 mt-1.5 text-sm text-muted-foreground",children:[s.jsx(u,{className:"w-3.5 h-3.5 shrink-0"}),e.location]}),e.badge&&s.jsxs("div",{className:"flex items-center gap-1.5 mt-2 text-sm font-semibold text-highlight",children:[s.jsx(g,{className:"w-3.5 h-3.5 shrink-0"}),Array.isArray(e.badge)?e.badge.join(" | "):e.badge]}),e.hasSubsidy&&e.subsidyAmount&&s.jsxs("div",{className:"flex items-center gap-1.5 mt-2 text-sm font-semibold text-highlight",children:[s.jsx(h,{className:"w-3.5 h-3.5 shrink-0"}),"Subsidy Available Up To ",t(e.subsidyAmount)]}),e.isRentToBuy&&s.jsxs("div",{className:"flex items-center gap-1.5 mt-2 text-sm font-semibold text-accent",children:[s.jsx(f,{className:"w-3.5 h-3.5 shrink-0"}),"Rent to Buy Available"]}),e.description&&s.jsx("p",{className:"mt-2 mb-3 text-sm text-muted-foreground line-clamp-2",children:e.description}),e.aiReason&&s.jsxs("div",{className:"mt-2 p-2.5 rounded-lg border border-border bg-muted/40 flex items-start gap-2",children:[s.jsx(b,{className:"w-3.5 h-3.5 shrink-0 mt-0.5",style:{color:"hsl(var(--accent))"}}),s.jsx("p",{className:"text-xs text-foreground/80 italic",children:e.aiReason})]}),s.jsx("div",{className:"mt-auto pt-5 border-t border-border",children:s.jsxs("span",{className:"inline-flex items-center gap-1 text-sm font-semibold text-accent group-hover:gap-2 transition-all",children:["View building ",s.jsx(j,{className:"w-4 h-4"})]})})]})]});return e.link?s.jsx(N,{to:e.link,className:"block h-full",children:a}):a}export{v as P};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.