1import{a as m,n as x,j as e,H as u,L as c,m as n,d as h}from"./index-dEf1vis7.js";import{J as p}from"./JsonLd-j3n1jEEO.js";import{b as o,a as g}from"./blogArticles-Dat_x12l.js";const d=["from-amber-500/40 to-orange-600/40","from-orange-400/40 to-red-500/40","from-yellow-500/40 to-amber-600/40","from-red-500/40 to-rose-600/40","from-yellow-400/40 to-orange-500/40","from-orange-500/40 to-amber-700/40"];function f(t){return t.replace(/<[^>]*>/g,"").replace(/&[a-z]+;/g," ").trim()}function b(t){const r=new Date(t);return isNaN(r.getTime())?"":r.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}function j({post:t,index:r}){const s=t.categories[0]??"Medium",l=f(t.description).slice(0,150)+"â¦",a=d[r%d.length];return e.jsxs(n.a,{href:t.link,target:"_blank",rel:"noopener noreferrer",initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5,delay:Math.min(r*.06,.5),ease:[.25,.46,.45,.94]},whileHover:{y:-4,transition:{duration:.3}},className:"group flex flex-col overflow-hidden rounded-card border border-border bg-card transition-colors",children:[t.thumbnail?e.jsx("img",{src:t.thumbnail,alt:t.title,className:"h-40 w-full object-cover"}):e.jsx("div",{className:`h-40 w-full bg-gradient-to-br ${a}`}),e.jsxs("div",{className:"flex flex-1 flex-col p-6",children:[e.jsx("span",{className:"mb-4 inline-flex w-fit rounded-full bg-red-500/10 px-2.5 py-0.5 text-[10px] font-medium text-red-400",children:s}),e.jsx("h3",{className:"text-sm font-semibold text-foreground group-hover:text-red-400 transition-colors duration-300",style:{letterSpacing:"-0.01em"},children:t.title}),e.jsx("p",{className:"mt-2 flex-1 text-xs text-muted-foreground leading-relaxed",children:l}),e.jsxs("div",{className:"mt-4 flex items-center justify-between",children:[e.jsx("span",{className:"text-[10px] text-muted-foreground",children:b(t.pubDate)}),e.jsx("span",{className:"text-[10px] font-medium text-muted-foreground group-hover:text-foreground transition-colors duration-300",children:"Read more â"})]})]})]})}function v({article:t,index:r}){const s=g(t);return e.jsx(n.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5,delay:Math.min(r*.06,.5),ease:[.25,.46,.45,.94]},className:"group overflow-hidden rounded-card border border-border bg-card transition-colors hover:border-red-500/35",children:e.jsxs(c,{to:`/blog/${t.slug}`,className:"block",children:[s?e.jsx("div",{className:"relative h-48 overflow-hidden bg-secondary",children:e.jsx("video",{src:s.videoUrl,poster:s.posterUrl,muted:!0,playsInline:!0,loop:!0,autoPlay:r===0,className:"h-full w-full object-cover transition-transform duration-500 group-hover:scale-[1.03]"})}):e.jsx("div",{className:"h-48 bg-gradient-to-br from-red-500/25 to-orange-500/20"}),e.jsxs("div",{className:"p-6",children:[e.jsxs("div",{className:"mb-4 flex flex-wrap items-center gap-2",children:[e.jsx("span",{className:"rounded-full bg-red-500/10 px-2.5 py-0.5 text-[10px] font-medium text-red-400",children:t.category}),e.jsx("span",{className:"text-[10px] text-muted-foreground",children:t.readingTime})]}),e.jsx("h3",{className:"text-lg font-semibold leading-tight text-foreground transition-colors group-hover:text-red-400",children:t.title}),e.jsx("p",{className:"mt-3 line-clamp-3 text-sm leading-relaxed text-muted-foreground",children:t.description}),e.jsxs("span",{className:"mt-5 inline-flex items-center gap-1 text-xs font-medium text-muted-foreground transition-colors group-hover:text-foreground",children:["Read on vishalpaliwal.vercel.app ",e.jsx(h,{className:"h-3.5 w-3.5"})]})]})]})})}function N({index:t}){return e.jsxs(n.div,{initial:{opacity:0}
1,animate:{opacity:1},transition:{delay:t*.06},className:"flex flex-col overflow-hidden rounded-card border border-border bg-card",children:[e.jsx("div",{className:"h-40 w-full animate-pulse bg-border"}),e.jsxs("div",{className:"flex flex-col p-6 gap-3",children:[e.jsx("div",{className:"h-3 w-16 animate-pulse rounded-full bg-border"}),e.jsx("div",{className:"h-4 w-full animate-pulse rounded bg-border"}),e.jsx("div",{className:"h-4 w-3/4 animate-pulse rounded bg-border"}),e.jsx("div",{className:"mt-2 h-3 w-full animate-pulse rounded bg-border"}),e.jsx("div",{className:"h-3 w-2/3 animate-pulse rounded bg-border"})]})]})}const P=()=>{const t=m(),{data:r,isLoading:s}=x(),l={"@context":"https://schema.org","@type":"Blog",name:"Vishal Paliwal Articles & Deep-Dives",url:"https://vishalpaliwal.vercel.app/blog",description:"SwiftUI animation, iOS motion design, and product engineering articles by Vishal Paliwal.",author:{"@type":"Person",name:"Vishal Paliwal",url:"https://vishalpaliwal.vercel.app"},blogPost:o.map(a=>({"@type":"BlogPosting",headline:a.title,url:`https://vishalpaliwal.vercel.app/blog/${a.slug}`,datePublished:a.publishedAt,dateModified:a.updatedAt}))};return e.jsxs(e.Fragment,{children:[e.jsxs(u,{children:[e.jsx("title",{children:"Articles & Deep-Dives · Vishal Paliwal"}),e.jsx("meta",{name:"description",content:"Native articles and deep-dives on SwiftUI animation, iOS motion systems, and product craft from Vishal Paliwal."}),e.jsx("link",{rel:"canonical",href:"https://vishalpaliwal.vercel.app/blog"}),e.jsx("meta",{property:"og:title",content:"Articles & Deep-Dives · Vishal Paliwal"}),e.jsx("meta",{property:"og:url",content:"https://vishalpaliwal.vercel.app/blog"})]}),e.jsx(p,{data:l}),e.jsx("div",{className:"min-h-screen bg-background px-6 py-16",children:e.jsxs("div",{className:"mx-auto max-w-[1200px]",children:[e.jsxs("div",{className:"mb-12 flex items-start gap-4",children:[e.jsx("button",{onClick:()=>t(-1),className:"mt-1 flex h-10 w-10 shrink-0 items-center justify-center rounded-full border border-border bg-card text-muted-foreground transition-colors hover:border-accent hover:text-accent","aria-label":"Go back",children:e.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:e.jsx("path",{d:"M13 8H3M7 12l-4-4 4-4",strokeLinecap:"round",strokeLinejoin:"round"})})}),e.jsxs("div",{children:[e.jsx("p",{className:"label-caps mb-2",children:"Writing"}),e.jsx("h1",{className:"headline-lg text-gradient text-4xl sm:text-5xl",children:"From my journey."}),e.jsx("p",{className:"mt-3 max-w-xl text-sm leading-relaxed text-muted-foreground",children:"Human notes, code snippets, and real demos from my SwiftUI motion work. Native posts live here first, then selected pieces are syndicated elsewhere."})]})]}),e.jsxs("section",{children:[e.jsxs("div",{className:"mb-5 flex items-end justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx("p",{className:"label-caps mb-2",children:"Native SEO Articles"}),e.jsx("h2",{className:"headline-md text-2xl text-foreground",children:"Built around real demos."})]}),e.jsx(c,{to:"/swiftui-animation-examples",className:"hidden text-xs text-muted-foreground transition-colors hover:text-foreground sm:inline-flex",children:"View animation hub"})]}),e.jsx("div",{className:"grid gap-4 md:grid-cols-2",children:o.map((a,i)=>e.jsx(v,{article:a,index:i},a.slug))})]}),e.jsxs("section",{className:"mt-16",children:[e.jsxs("div",{className:"mb-5",children:[e.jsx("p",{className:"label-caps mb-2",children:"Syndicated Writing"}),e.jsx("h2",{className:"headline-md text-2xl text-foreground",children:"From Medium."}),e.jsx("p",{className:"mt-2 text-sm text-muted-foreground",children:s?"Loadingâ¦":`${(r==null?void 0:r.length)??0} external articles`})]}),e.jsx("div",{className:"grid gap-4 md:grid-cols-2 lg:grid-cols-3",children:s?Array.from({length:6}).map((a,i)=>e.jsx(N,{index:i},i)):(r??[]).map((a,i)=>e.jsx(j,{post:a,index:i},a.link))})]})]})})]})};export{P as default};
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.