1import{p as b,a5 as S,S as E,L as r,R as u,E as x,a6 as i}from"./index-osEr2qXk.js";import{r as g,j as e}from"./react-PPJ0mPjh.js";import{G as P}from"./GfmMarkdown-3YPD2Tfd.js";import w from"./index-iutKtKSh.js";import{c as j}from"./Blog.module-0SI_vvW9.js";import{j as L,A as R,m,G as c,c as a,o as v,n as f,e as o,S as A,k as B}from"./mantine-DyaIkVVa.js";function T(s){const t=String(s).match(/^---\r?\n[\s\S]*?\r?\n---\r?\n?([\s\S]*)$/);return t?t[1]:String(s)}const _=Object.assign({
1"../../content/blog/posts/ai-api-with-google-gemini.md":()=>i(()=>import("./ai-api-with-google-gemini-mFFH48BR.js"),__vite__mapDeps([])).then(s=>s.default),
1"../../content/blog/posts/build-your-own-mcp-server.md":()=>i(()=>import("./build-your-own-mcp-server-DwbfnxQB.js"),__vite__mapDeps([])).then(s=>s.default),
1"../../content/blog/posts/mongodb-atlas-rest-api.md":()=>i(()=>import("./mongodb-atlas-rest-api-AiYN9o6d.js"),__vite__mapDeps([])).then(s=>s.default),
1"../../content/blog/posts/workflow-automation-on-kubernetes.md":()=>i(()=>import("./workflow-automation-on-kubernetes-vGfoboz3.js"),__vite__mapDeps([]))
1.then(s=>s.default)});function N(){var p;const{slug:s}=b(),t=S[s],[l,k]=g.useState(null);return g.useEffect(()=>{if(!t)return;let n=!0;const h=Object.keys(_).find(d=>d.endsWith(`/${s}.md`));if(h)return _[h]().then(d=>{n&&k(T(d))}),()=>{n=!1}},[t,s]),t?e.jsxs(L,{size:"md",py:"xl",children:[e.jsx(E,{path:t.path,title:`${t.title} | Air Pipe`,description:t.description}),e.jsx(R,{component:r,to:"/blog",size:"sm",children:"â All posts"}),e.jsx(m,{order:1,mt:"md",mb:"xs",children:t.title}),e.jsxs(c,{gap:"xs",mb:"lg",children:[e.jsxs(a,{size:"sm",c:"dimmed",children:[e.jsx("time",{dateTime:t.date,children:new Date(t.date).toLocaleDateString("en-AU",{day:"numeric",month:"long",year:"numeric"})})," · ",t.readingMinutes," min read"]}),t.tags.map(n=>e.jsx(v,{variant:"light",size:"sm",children:n},n))]}),l?e.jsx(P,{content:l}):e.jsx(a,{c:"dimmed",children:"Loadingâ¦"}),t.pack&&e.jsxs(f,{withBorder:!0,radius:"md",padding:"lg",mt:"xl",className:j.packCta,children:[e.jsx(a,{size:"xs",fw:700,c:"dimmed",tt:"uppercase",mb:6,children:"Skip the setup"}),e.jsx(m,{order:3,mb:6,children:t.pack.name}),e.jsx(a,{c:"dimmed",size:"sm",mb:"md",lineClamp:3,children:t.pack.description}),e.jsxs(c,{gap:"sm",children:[e.jsx(o,{component:r,to:t.pack.path,className:"btn-cta",children:"View the pack"}),e.jsx(o,{component:"a",href:u,variant:"outline",...x,children:"Start free â no card"})]})]}),((p=t.relatedPacks)==null?void 0:p.length)>0&&e.jsxs(e.Fragment,{children:[e.jsx(m,{order:3,mt:"xl",mb:"md",children:"Related packs"}),e.jsx(A,{cols:{base:1,sm:Math.min(2,t.relatedPacks.length)},spacing:"md",children:t.relatedPacks.map(n=>e.jsx(f,{component:r,to:n.path,withBorder:!0,radius:"md",padding:"md",className:j.tile,children:e.jsxs(B,{gap:4,children:[e.jsx(a,{fw:600,children:n.name}),e.jsx(a,{c:"dimmed",size:"sm",lineClamp:3,children:n.description})]})},n.slug))})]}),!t.pack&&e.jsxs(c,{mt:"xl",children:[e.jsx(o,{component:"a",href:u,className:"btn-cta",...x,children:"Start free â no card"}),e.jsx(o,{component:r,to:"/marketplace",variant:"outline",children:"Browse packs"})]})]}):e.jsx(w,{})}export{N as default}; 2function __vite__mapDeps(indexes) { 3 if (!__vite__mapDeps.viteFileDeps) { 4 __vite__mapDeps.viteFileDeps = [] 5 } 6 return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) 7}
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.