1import{dA as n,u as l,dB as i,t as d,j as e,ds as c,E as r}from"./index-CW1D4Lz2.js";import{D as m}from"./dashboard-header-Ca-t0V_m.js";import{M as x}from"./markdown-CcqDovkP.js";import{c as p}from"./formatter-DwiRWmNk.js";import{I as a}from"./IconArrowLeft-BjGI3HpC.js";function j(){const t=n.useLoaderData(),s=l();if(!t)throw i();const o=d.useCallback(()=>{typeof window<"u"&&window.history.length>1?s.history.back():s.navigate({to:"/blog",search:{page:void 0}})},[s]);return e.jsxs("div",{className:"flex min-h-svh flex-col",children:[e.jsx(m,{showBack:!0}),e.jsx(c,{className:"py-16 px-4",children:e.jsxs("div",{className:"mx-auto max-w-4xl",children:[e.jsxs("button",{type:"button",onClick:o,className:"mb-6 inline-flex items-center gap-2 text-muted-foreground text-sm hover:text-foreground",children:[e.jsx(a,{className:"size-4"}),r.blog.allPosts]}),e.jsxs("article",{children:[e.jsxs("div",{className:"mb-4 flex flex-wrap items-center gap-2 text-muted-foreground text-sm",children:[e.jsx("span",{className:"rounded-full bg-muted px-2.5 py-0.5 font-medium capitalize",children:t.category}),e.jsx("span",{children:p(new Date(t.date))})]}),e.jsx("h1",{className:"text-3xl font-bold tracking-tight",children:t.title}),t.description&&e.jsx("p",{className:"mt-4 text-muted-foreground text-lg leading-relaxed",children:t.description}),e.jsx("div",{className:"mt-6 pt-10 border-t border-border",children:e.jsx(x,{content:t.content,className:"prose prose-neutral dark:prose-invert max-w-none"})}),e.jsx("div",{className:"mt-10 pt-6 border-t border-border",children:e.jsxs("button",{type:"button",onClick:o,className:"inline-flex items-center gap-2 text-muted-foreground text-sm hover:text-foreground",children:[e.jsx(a,{className:"size-4"}),r.blog.allPosts]})})]})]})})]})}export{j as component};
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.