{"version":3,"file":"ApiBlogCardGrid.CFSflXsr.mjs","names":["useState","useRef","useMemo","useCallback","_Fragment"],"sources":["https:/framerusercontent.com/modules/wnG0P6m6ExcR5tQKs6l2/fLmFFmh6fnQ6Xo6RXuJq/ApiBlogCardGrid.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useCallback,useEffect,useMemo,useRef,useState,startTransition}from\"react\";import{addPropertyControls,ControlType}from\"framer\";const demoArticles=[{id:\"demo-1\",title:\"Designing Thoughtful Interfaces for Fast-Growing Teams\",slug:\"designing-thoughtful-interfaces\",date:\"2026-04-03T10:00:00.000Z\",category:\"Design\",image:\"https://framerusercontent.com/images/yoJD2EZ3BhXKhTdvHcmko54isbY.png?scale-down-to=512&width=928&height=244\",excerpt:\"How visual clarity, hierarchy, and rhythm help teams ship confidently as product scope expands.\",ctaLink:\"\"},{id:\"demo-2\",title:\"A Practical Guide to Better Product Storytelling\",slug:\"better-product-storytelling\",date:\"2026-03-12T10:00:00.000Z\",category:\"Strategy\",image:\"https://framerusercontent.com/images/yoJD2EZ3BhXKhTdvHcmko54isbY.png?scale-down-to=512&width=928&height=244\",excerpt:\"A concise framework for creating narratives that connect product outcomes to real user needs.\",ctaLink:\"\"},{id:\"demo-3\",title:\"Balancing Speed and Quality in Modern Web Projects\",slug:\"balancing-speed-and-quality\",date:\"2026-02-21T10:00:00.000Z\",category:\"Engineering\",image:\"https://framerusercontent.com/images/yoJD2EZ3BhXKhTdvHcmko54isbY.png?scale-down-to=512&width=928&height=244\",excerpt:\"Patterns, trade-offs, and workflows that keep momentum high without sacrificing craft.\",ctaLink:\"\"}];function safeString(value){if(typeof value===\"string\")return value;if(typeof value===\"number\")return String(value);return\"\";}function parseDate(value){const raw=safeString(value);if(!raw)return\"\";const date=new Date(raw);if(Number.isNaN(date.getTime()))return\"\";return date.toISOString();}// Normalizes a DRIX blog document (image is `{ url, path }`, slug is\n// `handle`, date is `publishDate`) while still tolerating a generic CMS\n// shape (`image` as a string, `slug`, `date`/`publishedAt`/`createdAt`).\nfunction normalizePost(item,index){const imageValue=item?.image??item?.coverImage??item?.thumbnail;const image=typeof imageValue===\"string\"&&imageValue?imageValue:imageValue?.url||imageValue?.src||\"https://framerusercontent.com/images/yoJD2EZ3BhXKhTdvHcmko54isbY.png?scale-down-to=512&width=928&height=244\";return{id:safeString(item?.id??item?._id??`item-${index}`)||`item-${index}`,title:safeString(item?.title)||\"Untitled article\",slug:safeString(item?.handle??item?.slug),date:parseDate(item?.publishDate??item?.date??item?.publishedAt??item?.createdAt),category:safeString(item?.category)||\"General\",image,excerpt:safeString(item?.excerpt)||\"Read more about this story.\",ctaLink:safeString(item?.cta?.link)};}function formatDate(isoDate){if(!isoDate)return\"\";const date=new Date(isoDate);if(Number.isNaN(date.getTime()))return\"\";return date.toLocaleDateString(undefined,{year:\"numeric\",month:\"short\",day:\"numeric\"});}/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n */export default function ApiBlogCardGrid(props){const{endpoint=\"\",headers=\"\",limit=3,detailPath=\"/blog-details?slug=\",demoMode=true,accentColor=\"#1F3D36\",style}=props;const[articles,setArticles]=useState(()=>demoArticles.slice(0,Math.max(1,limit)));const[loading,setLoading]=useState(false);const[error,setError]=useState(\"\");const[retryCount,setRetryCount]=useState(0);const[containerWidth,setContainerWidth]=useState(1200);const containerRef=useRef(null);const normalizedDetailPath=useMemo(()=>{if(!detailPath)return\"/\";if(detailPath.includes(\"?slug=\"))return detailPath;return detailPath.endsWith(\"/\")?detailPath:`${detailPath}/`;},[detailPath]);const parsedHeaders=useMemo(()=>{if(!headers.trim())return{};try{const parsed=JSON.parse(headers);return typeof parsed===\"object\"&&parsed!==null?parsed:null;}catch(_error){return null;}},[headers]);const columnCount=useMemo(()=>{if(containerWidth<680)return 1;if(containerWidth<980)return 2;return 3;},[containerWidth]);const refresh=useCallback(()=>{startTransition(()=>setRetryCount(count=>count+1));},[]);useEffect(()=>{if(typeof window===\"undefined\")return;const element=containerRef.current;if(!element)return;const observer=new ResizeObserver(entries=>{const width=entries[0]?.contentRect.width;if(!width)return;startTransition(()=>setContainerWidth(width));});observer.observe(element);return()=>observer.disconnect();},[]);useEffect(()=>{const trimmedEndpoint=endpoint.trim();const shouldUseDemo=demoMode||!trimmedEndpoint;if(shouldUseDemo){startTransition(()=>{setLoading(false);setError(\"\");setArticles(demoArticles.slice(0,Math.max(1,limit)));});return;}if(parsedHeaders===null){startTransition(()=>{setLoading(false);setError(\"Headers must be valid JSON.\");setArticles([]);});return;}if(typeof window===\"undefined\")return;const abortController=new AbortController;startTransition(()=>{setLoading(true);setError(\"\");});// The DRIX trending API accepts a `limit` query param directly, so\n// request exactly the number of cards we intend to render.\nconst safeLimit=Math.max(1,limit);const requestUrl=`${trimmedEndpoint}${trimmedEndpoint.includes(\"?\")?\"&\":\"?\"}limit=${safeLimit}`;fetch(requestUrl,{method:\"GET\",headers:parsedHeaders,signal:abortController.signal}).then(async response=>{if(!response.ok){throw new Error(`Request failed (${response.status})`);}return response.json();}).then(json=>{// DRIX responds with { success, data: [...] }. Also accept a\n// bare array or { items: [...] } for compatibility with\n// other endpoints.\nconst source=Array.isArray(json)?json:Array.isArray(json?.data)?json.data:Array.isArray(json?.items)?json.items:[];if(json&&json.success===false){throw new Error(json.message||\"Unable to load blog posts.\");}const normalized=source.map((item,index)=>normalizePost(item,index));const trimmed=normalized.slice(0,safeLimit);startTransition(()=>{setArticles(trimmed);setLoading(false);});}).catch(caughtError=>{if(caughtError?.name===\"AbortError\")return;startTransition(()=>{setLoading(false);setArticles([]);setError(caughtError?.message||\"Unable to load blog posts.\");});});return()=>abortController.abort();},[demoMode,endpoint,parsedHeaders,limit,retryCount]);const gridTemplateColumns=useMemo(()=>`repeat(${columnCount}, minmax(0, 1fr))`,[columnCount]);return /*#__PURE__*/_jsx(\"section\",{ref:containerRef,style:{position:\"relative\",width:\"100%\",boxSizing:\"border-box\",overflowX:\"hidden\",background:\"transparent\",padding:0,...style},children:loading?/*#__PURE__*/_jsx(\"div\",{style:{display:\"grid\",gridTemplateColumns,gap:20,width:\"100%\"},children:[0,1,2].map(item=>/*#__PURE__*/_jsxs(\"article\",{style:{display:\"flex\",flexDirection:\"column\",gap:12},children:[/*#__PURE__*/_jsx(\"div\",{style:{borderRadius:16,background:\"#EDEDED\",aspectRatio:\"16 / 9\",width:\"100%\"}}),/*#__PURE__*/_jsx(\"div\",{style:{width:90,height:28,borderRadius:999,background:\"#EDEDED\"}}),/*#__PURE__*/_jsx(\"div\",{style:{width:\"90%\",height:20,borderRadius:6,background:\"#EDEDED\"}}),/*#__PURE__*/_jsx(\"div\",{style:{width:\"75%\",height:20,borderRadius:6,background:\"#EDEDED\"}}),/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:16,borderRadius:6,background:\"#EEEEEE\"}}),/*#__PURE__*/_jsx(\"div\",{style:{width:\"85%\",height:16,borderRadius:6,background:\"#EEEEEE\"}})]},`skeleton-${item}`))}):error?/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",alignItems:\"flex-start\",gap:12,padding:12},children:[/*#__PURE__*/_jsx(\"p\",{style:{margin:0,color:\"#000000\"},children:error}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:refresh,style:{border:\"none\",borderRadius:999,background:accentColor,color:\"#FFFFFF\",padding:\"10px 16px\",cursor:\"pointer\"},\"aria-label\":\"Retry loading blog posts\",children:\"Retry\"})]}):articles.length===0?/*#__PURE__*/_jsx(\"div\",{style:{padding:12,color:\"#000000\"},children:\"No trending blog posts found.\"}):/*#__PURE__*/_jsx(\"div\",{style:{display:\"grid\",gridTemplateColumns,gap:20,width:\"100%\"},children:articles.map(article=>{const content=/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"img\",{src:article.image,alt:article.title,style:{width:\"100%\",aspectRatio:\"16 / 9\",borderRadius:16,objectFit:\"cover\",filter:\"grayscale(10%)\",display:\"block\"}}),/*#__PURE__*/_jsx(\"div\",{style:{alignSelf:\"flex-start\",marginTop:12,padding:\"7px 12px\",borderRadius:999,background:\"#EEEEEE\",color:accentColor,fontSize:12,lineHeight:\"1em\",fontWeight:600},children:article.category}),/*#__PURE__*/_jsx(\"h3\",{style:{margin:\"12px 0 0 0\",color:\"#000000\",fontSize:24,lineHeight:\"1.1em\",letterSpacing:\"-0.02em\"},children:article.title}),article.date?/*#__PURE__*/_jsx(\"p\",{style:{margin:\"8px 0 0 0\",color:\"#666666\",fontSize:13,lineHeight:\"1.2em\"},children:formatDate(article.date)}):null,/*#__PURE__*/_jsx(\"p\",{style:{margin:\"10px 0 0 0\",color:\"#111111\",fontSize:15,lineHeight:\"1.4em\"},children:article.excerpt})]});// Prefer detailPath + handle for card-level routing.\n// Use CTA link only when no handle/slug exists.\nconst href=article.slug?detailPath.includes(\"?slug=\")?`${normalizedDetailPath}${encodeURIComponent(article.slug)}`:`${normalizedDetailPath}${article.slug}`:article.ctaLink;if(href){return /*#__PURE__*/_jsx(\"a\",{href:href,style:{color:\"inherit\",textDecoration:\"none\",display:\"flex\",flexDirection:\"column\"},children:content},article.id);}return /*#__PURE__*/_jsx(\"article\",{style:{display:\"flex\",flexDirection:\"column\"},children:content},article.id);})})});}addPropertyControls(ApiBlogCardGrid,{endpoint:{type:ControlType.String,title:\"Endpoint\",defaultValue:\"\",placeholder:\"https://admin.yourdrixdomain.com/api/public/blogs/trending\"},headers:{type:ControlType.String,title:\"Headers JSON\",defaultValue:\"\",placeholder:'{\"Authorization\":\"Bearer ...\"}',displayTextArea:true},limit:{type:ControlType.Number,title:\"Limit\",defaultValue:3,min:1,max:24,step:1},detailPath:{type:ControlType.String,title:\"Detail Path\",defaultValue:\"/blog-details?slug=\"},demoMode:{type:ControlType.Boolean,title:\"Demo Mode\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},accentColor:{type:ControlType.Color,title:\"Accent\",defaultValue:\"#1F3D36\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ApiBlogCardGrid\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ApiBlogCardGrid.map"],"mappings":"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"}