1import{j as e,L as y}from"./chunk-QFMPRPBF-Cyfx7RlH.js";import{c as k,a as d}from"./button-BEUmnKU7.js";import{f as T,c as A}from"./blog-utils-pi0wdbwU.js";import{T as R}from"./ArticleCard-B6Wf81Ug.js";import{I as x}from"./Image-C04eN5px.js";/** 2 * @license lucide-react v0.563.0 - ISC 3 * 4 * This source code is licensed under the ISC license. 5 * See the LICENSE file in the root directory of this source tree. 6 */const z=[["path",{d:"M22 12A10 10 0 1 1 12 2",key:"1fm58d"}],["path",{d:"M22 2 12 12",key:"yg2myt"}],["path",{d:"M16 2h6v6",key:"zan5cs"}]],L=k("circle-arrow-out-up-right",z);function D({article:h,variant:p="listing",showReadMore:g=!0,className:l}){const{handle:u,title:s,excerpt:f,excerptHtml:r,content:v,contentHtml:j,publishedAt:n,tags:i,image:t,blog:b,author:a}=h,w=`/blogs/${b.handle}/${u}`,N=T(n),m=f||(r?r.replace(/<[^>]*>/g,""):null),o=j||v||"",c=o?A(o):null;return p==="listing"?e.jsxs(y,{to:w,prefetch:"viewport",viewTransition:!0,"aria-label":`Read article: ${s}`,className:d("group relative block rounded-md overflow-hidden no-underline cursor-pointer","motion-link focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-primary",l),children:[t&&e.jsxs("div",{className:"absolute inset-0",children:[e.jsx("div",{className:"absolute inset-0",children:e.jsx(x,{alt:t.altText||s,data:t,loading:"eager",sizes:"100vw",className:"h-full w-full object-cover"})}),e.jsx("div",{className:"absolute inset-0",children:e.jsx("div",{className:"h-full w-full bg-gradient-to-t from-dark/90 via-dark/50 to-dark/20 sm:from-dark/80 sm:via-dark/40 sm:to-dark/10"})})]}),e.jsx("div",{className:"relative min-h-[60vh] sm:min-h-[55vh] md:min-h-[60vh] flex flex-col justify-end p-5 sm:p-6 md:p-10 lg:p-12",children:e.jsxs("div",{className:"max-w-3xl space-y-3 sm:space-y-4 md:space-y-6",children:[i&&i.length>0&&e.jsx(R,{tags:i,limit:3,variant:"hero",size:"sm"}),e.jsx("h2",{className:"font-sans text-3xl sm:text-3xl md:text-4xl font-normal leading-tight text-light text-balance",children:s}),m&&e.jsx("p",{className:"hidden sm:block text-base md:text-lg text-light leading-relaxed line-clamp-2 max-w-2xl text-pretty",children:m}),e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center gap-3 sm:gap-4 md:gap-6 pt-1 sm:pt-2",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2 sm:gap-3 text-sm sm:text-sm text-light",children:[(a==null?void 0:a.name)&&e.jsxs(e.Fragment,{children:[e.jsx("span",{children:a.name}),e.jsx("span",{className:"text-light/40",children:"·"})]}),e.jsx("time",{dateTime:n,children:N}),c&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-light/40",children:"·"}),e.jsxs("span",{children:[c," min"]})]})]}),g&&e.jsxs("span",{"aria-hidden":"true",className:"inline-flex w-fit items-center justify-center gap-2 sm:gap-2.5 rounded-sm bg-primary border border-primary px-4 sm:px-5 md:px-6 py-3 font-sans text-sm sm:text-base font-medium text-primary-foreground group-hover:bg-light group-hover:text-primary group-hover:border-light sleek",children:["Read Article",e.jsx(L,{className:"w-5 h-5"})]})]})]})})]}):e.jsx("div",{className:d("relative",l),children:t&&e.jsx("div",{className:"overflow-hidden rounded-md",children:e.jsx(x,{alt:t.altText||s,data:t,loading:"eager",sizes:"(min-width: 1024px) 896px, (min-width: 768px) 90vw, 100vw",className:"w-full h-auto max-h-[50vh] sm:max-h-[60vh] object-cover"})})})}export{D as A};
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.