PageSourceSearch

https://www.fiber.world/_next/static/chunks/03ec-j_rz076r.js?dpl=dpl_BrvnPgnc1ovEXeSEa5bAVBUwWxVB

js fiber.world collected 2026-09-25 20:35:17 UTC 4,917 bytes, 1 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,21628,e=>{"use strict";var r=e.i(99873),t=e.i(15300),s=e.i(21239);let o=["All","Article","Devlog","Pulse"];function l({allPosts:e}){let[a,d]=(0,t.useState)("All"),n="All"===a?e:"Article"===a?e.filter(e=>"blog"===e.type.toLowerCase()):"Pulse"===a?e.filter(e=>"pulse"===e.type.toLowerCase()):e.filter(e=>"devlog"===e.type.toLowerCase()),i=({post:e,children:t})=>{let o=e.type.toLowerCase();return"devlog"===e.type?(0,r.jsx)(s.default,{href:`/blog/d/${encodeURIComponent(e.id)}`,className:"block",children:t}):"pulse"===o?(0,r.jsx)(s.default,{href:`/blog/pulse/${encodeURIComponent(e.id)}`,className:"block",children:t}):(0,r.jsx)(s.default,{href:`/blog/p/${encodeURIComponent(e.id)}`,className:"block",children:t})};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"flex flex-wrap gap-2 mb-8 justify-center",children:o.map(e=>(0,r.jsx)("button",{onClick:()=>d(e),className:`px-4 py-2 text-sm font-medium rounded-full border transition-all duration-200 ${a===e?"border-fd-primary bg-fd-primary text-fd-primary-foreground":"border-fd-border hover:border-fd-primary/50 hover:bg-fd-primary/10"}`,children:e},e))}),(0,r.jsx)("div",{className:"space-y-6",children:n.map((e,t)=>(0,r.jsx)(i,{post:e,children:(0,r.jsxs)("article",{className:"group relative border border-fd-border rounded-lg p-6 hover:border-fd-primary/50 transition-all duration-200 hover:shadow-lg bg-fd-background/50 cursor-pointer",children:[(0,r.jsx)("div",{className:"absolute -left-3 -top-3 w-8 h-8 bg-fd-primary text-fd-primary-foreground rounded-full flex items-center justify-center text-sm font-mono font-bold shadow-lg",children:String(t+1).padStart(2,"0")}),(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-4 text-sm text-fd-muted-foreground",children:[(0,r.jsx)("time",{className:"font-mono",children:new Date(e.date).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"})}),(0,r.jsx)("span",{children:"•"}),(0,r.jsx)("span",{children:e.readTime}),(0,r.jsx)("span",{children:"•"}),(0,r.jsxs)("span",{children:["by ",e.author]})]}),(0,r.jsx)("h2",{className:"text-xl font-semibold text-fd-foreground group-hover:text-fd-primary transition-colors",children:e.title}),(0,r.jsx)("p",{className:"text-fd-muted-foreground leading-relaxed",children:e.excerpt}),(0,r.jsx)("div",{className:"flex flex-wrap gap-2 pt-2",children:e.tags.map(t=>(0,r.jsxs)("span",{className:`px-2 py-1 text-xs font-medium rounded-full transition-colors ${"devlog"===e.type?"bg-blue-100 text-blue-800 hover:bg-blue-200":"bg-fd-muted text-fd-muted-foreground hover:bg-fd-primary/10 hover:text-fd-primary"}`,children:["#",t.toLowerCase().replace(/\s+/g,"")]},t))})]}),(0,r.jsx)("div",{className:"absolute right-6 top-1/2 transform -translate-y-1/2 opacity-0 group-hover:opacity-100 transition-opacity",children:(0,r.jsx)("svg",{className:"w-5 h-5 text-fd-primary",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})})]})},e.id))}),0===n.length&&(0,r.jsx)("div",{className:"text-center py-12",children:(0,r.jsx)("p",{className:"text-fd-muted-foreground",children:0===e.length?"No blog posts found.":"No posts found for the selected category."})})]})}e.s(["default",0,function({documentPosts:e}){let[s,o]=(0,t.useState)([]),[a,d]=(0,t.useState)(!0),[n,i]=(0,t.useState)(null);(0,t.useEffect)(()=>{(async()=>{try{d(!0),i(null);let e=await fetch("/api/devlogs?limit=20");if(!e.ok)throw Error(`HTTP error! status: ${e.status}`);let r=await e.json();if(r.success)o(r.data);else throw Error(r.error||"Failed to fetch devlogs")}catch(e){console.error("Error fetching devlogs:",e),i(e instanceof Error?e.message:"Unknown error occurred"),o([])}finally{d(!1)}})()},[]);let c=[...e,...s].sort((e,r)=>new Date(r.date).getTime()-new Date(e.date).getTime());return a?(0,r.jsxs)("div",{className:"flex flex-col justify-center items-center py-16",children:[(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)("div",{className:"w-10 h-10 border-2 border-fd-border rounded-full"}),(0,r.jsx)("div",{className:"absolute top-0 left-0 w-10 h-10 border-2 border-fd-primary border-t-transparent roun
1ded-full animate-spin"})]}),(0,r.jsx)("p",{className:"mt-4 text-sm text-fd-muted-foreground",children:"Loading blog posts..."})]}):n?(0,r.jsxs)("div",{className:"text-center py-12",children:[(0,r.jsx)("div",{className:"text-yellow-600 mb-4",children:"⚠️ Some blog posts may not be available"}),(0,r.jsx)("p",{className:"text-fd-muted-foreground text-sm mb-6",children:n}),(0,r.jsx)(l,{allPosts:e})]}):(0,r.jsx)(l,{allPosts:c})}],21628)},48754,e=>{e.v(r=>Promise.all(["static/chunks/09ngf7osf2le8.js","static/chunks/0psnz_guqgcaf.js"].map(r=>e.l(r))).then(()=>r(46860)))}]);

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.