1;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="47e89bb8-ba3f-89c0-9173-cb7e47d0c405")}catch(e){}}(); 2(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,30841,e=>{"use strict";var t=e.i(190898),r=e.i(484649),a=e.i(657272),i=e.i(718098),s=class extends a.QueryObserver{constructor(e,t){super(e,t)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(e){super.setOptions({...e,behavior:(0,i.infiniteQueryBehavior)()})}getOptimisticResult(e){return e.behavior=(0,i.infiniteQueryBehavior)(),super.getOptimisticResult(e)}fetchNextPage(e){return this.fetch({...e,meta:{fetchMore:{direction:"forward"}}})}fetchPreviousPage(e){return this.fetch({...e,meta:{fetchMore:{direction:"backward"}}})}createResult(e,t){let{state:r}=e,a=super.createResult(e,t),{isFetching:s,isRefetching:n,isError:l,isRefetchError:o}=a,c=r.fetchMeta?.fetchMore?.direction,d=l&&"forward"===c,p=s&&"forward"===c,u=l&&"backward"===c,h=s&&"backward"===c;return{...a,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:(0,i.hasNextPage)(t,r.data),hasPreviousPage:(0,i.hasPreviousPage)(t,r.data),isFetchNextPageError:d,isFetchingNextPage:p,isFetchPreviousPageError:u,isFetchingPreviousPage:h,isRefetchError:o&&!d&&!u,isRefetching:n&&!p&&!h}}},n=e.i(136631),l=e.i(578791),o=e.i(226201),c=e.i(879146),d=e.i(355152),p=e.i(978892),u=e.i(812831);function h({post:e,priority:r=!1}){let a=e.featuredImage?.asset?.url;return(0,t.jsxs)(p.Link,{className:"group block flex flex-col gap-6 border-b pb-8",href:o.routes.blogPost(e.slug),children:[a?(0,t.jsx)("div",{className:"relative aspect-[16/9] w-full overflow-hidden rounded-xl",children:(0,t.jsx)(u.default,{alt:e.featuredImage?.alt||e.title,className:"object-cover transition-transform duration-300 group-hover:scale-105",fill:!0,priority:r,sizes:"(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw",src:a})}):(0,t.jsx)("div",{className:"bg-subtle aspect-[16/9] w-full rounded-xl"}),(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[e.publishedAt?(0,t.jsx)(c.DisplayDate,{className:"text-tertiary text-sm",type:"standard",value:new Date(e.publishedAt)}):null,(0,t.jsx)(d.Heading,{className:"line-clamp-2 transition-colors group-hover:text-purple-400",level:6,noNaturalSpacing:!0,children:e.title})]})]})}function f(e,t,r){let a=r+e.items.length;return a<e.total?a:void 0}function x({hasTag:e}){return(0,t.jsxs)("div",{className:"py-12 text-center",children:[(0,t.jsx)("p",{className:"text-subtle text-lg",children:"No posts found"}),e?(0,t.jsx)("p",{className:"text-subtle mt-2 text-sm",children:"Try selecting a different tag"}):null]})}e.s(["BlogGrid",0,function({initialPosts:e,initialTotal:a,tag:i}){var o;let c=(0,l.useRef)(null),{data:d,fetchNextPage:p,isFetchingNextPage:u}=(o={enabled:!1,getNextPageParam:f,initialPageParam:e.length,queryFn:async({pageParam:e})=>{let t=new URLSearchParams({end:String(e+12),start:String(e)});i&&t.set("tag",i);let r=await fetch(`/api/blog/posts?${t.toString()}`);if(!r.ok)throw Error(`Failed to load blog posts (${r.status})`);let a=await r.json();return{items:a.items,total:a.total}},queryKey:["blog-posts",i]},(0,n.useBaseQuery)(o,s,void 0)),g=[...e,...d?.pages.flatMap(e=>e.items)??[]],m=function({initialTotal:e,latestPageTotal:t,loadedCount:r}){return r<(t??e)}({initialTotal:a,latestPageTotal:d?.pages.at(-1)?.total,loadedCount:g.length}),v=(0,l.useCallback)(e=>{let[t]=e;t?.isIntersecting&&m&&!u&&p()},[p,m,u]);return((0,l.useEffect)(()=>{let e=c.current;if(!e)return;let t=new IntersectionObserver(v,{rootMargin:"200px"});return t.observe(e),()=>t.disconnect()},[v]),0===g.length)?(0,t.jsx)(x,{hasTag:!!i}):(0,t.jsxs)("div",{className:"space-y-8",children:[(0,t.jsx)("div",{className:"grid gap-x-8 gap-y-12 md:grid-cols-2 lg:grid-cols-3",children:g.map((e,r)=>(0,t.jsx)(h,{post:e,priority:r<3},e._id))}),u?(0,t.jsx)("div",{className:"flex justify-center py-4",children:(0,t.jsx)(r.Icon,{className:"text-subtle size-6 animate-spin",name:"spinner"})}):null,m?(0,t.jsx)("div",{ref:c,className:"h-1"}):null]})}],30841)},136426,e=>{"use strict";var t=e.i(578791),r=e.i(103258),a=e.i(389542),i=e.i(513410),s=e.i(190898),n=t.forwardRef((e,t)=>
2{let{children:r,width:a=10,height:n=5,...l}=e;return(0,s.jsx)(i.Primitive.svg,{...l,ref:t,width:a,height:n,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?r:(0,s.jsx)("polygon",{points:"0,0 30,0 15,10"})})});n.displayName="Arrow";var l=e.i(254161),o=e.i(28801),c=e.i(711743),d=e.i(780550),p=e.i(164015),u="Popper",[h,f]=(0,o.createContextScope)(u),[x,g]=h(u),m=e=>{let{__scopePopper:r,children:a}=e,[i,n]=t.useState(null);return(0,s.jsx)(x,{scope:r,anchor:i,onAnchorChange:n,children:a})};m.displayName=u;var v="PopperAnchor",b=t.forwardRef((e,r)=>{let{__scopePopper:a,virtualRef:n,...o}=e,c=g(v,a),d=t.useRef(null),p=(0,l.useComposedRefs)(r,d),u=t.useRef(null);return t.useEffect(()=>{let e=u.current;u.current=n?.current||d.current,e!==u.current&&c.onAnchorChange(u.current)}),n?null:(0,s.jsx)(i.Primitive.div,{...o,ref:p})});b.displayName=v;var y="PopperContent",[w,N]=h(y),P=t.forwardRef((e,n)=>{let{__scopePopper:o,side:u="bottom",sideOffset:h=0,align:f="center",alignOffset:x=0,arrowPadding:m=0,avoidCollisions:v=!0,collisionBoundary:b=[],collisionPadding:N=0,sticky:P="partial",hideWhenDetached:j=!1,updatePositionStrategy:S="optimized",onPlaced:A,...O}=e,z=g(y,o),[k,B]=t.useState(null),E=(0,l.useComposedRefs)(n,e=>B(e)),[H,M]=t.useState(null),I=(0,p.useSize)(H),T=I?.width??0,F=I?.height??0,L="number"==typeof N?N:{top:0,right:0,bottom:0,left:0,...N},V=Array.isArray(b)?b:[b],Q=V.length>0,U={padding:L,boundary:V.filter(R),altBoundary:Q},{refs:W,floatingStyles:Y,placement:D,isPositioned:K,middlewareData:X}=(0,r.useFloating)({strategy:"fixed",placement:u+("center"!==f?"-"+f:""),whileElementsMounted:(...e)=>(0,a.autoUpdate)(...e,{animationFrame:"always"===S}),elements:{reference:z.anchor},middleware:[(0,r.offset)({mainAxis:h+F,alignmentAxis:x}),v&&(0,r.shift)({mainAxis:!0,crossAxis:!1,limiter:"partial"===P?(0,r.limitShift)():void 0,...U}),v&&(0,r.flip)({...U}),(0,r.size)({...U,apply:({elements:e,rects:t,availableWidth:r,availableHeight:a})=>{let{width:i,height:s}=t.reference,n=e.floating.style;n.setProperty("--radix-popper-available-width",`${r}px`),n.setProperty("--radix-popper-available-height",`${a}px`),n.setProperty("--radix-popper-anchor-width",`${i}px`),n.setProperty("--radix-popper-anchor-height",`${s}px`)}}),H&&(0,r.arrow)({element:H,padding:m}),C({arrowWidth:T,arrowHeight:F}),j&&(0,r.hide)({strategy:"referenceHidden",...U})]}),[q,G]=$(D),_=(0,c.useCallbackRef)(A);(0,d.useLayoutEffect)(()=>{K&&_?.()},[K,_]);let J=X.arrow?.x,Z=X.arrow?.y,ee=X.arrow?.centerOffset!==0,[et,er]=t.useState();return(0,d.useLayoutEffect)(()=>{k&&er(window.getComputedStyle(k).zIndex)},[k]),(0,s.jsx)("div",{ref:W.setFloating,"data-radix-popper-content-wrapper":"",style:{...Y,transform:K?Y.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:et,"--radix-popper-transform-origin":[X.transformOrigin?.x,X.transformOrigin?.y].join(" "),...X.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:(0,s.jsx)(w,{scope:o,placedSide:q,onArrowChange:M,arrowX:J,arrowY:Z,shouldHideArrow:ee,children:(0,s.jsx)(i.Primitive.div,{"data-side":q,"data-align":G,...O,ref:E,style:{...O.style,animation:K?void 0:"none"}})})})});P.displayName=y;var j="PopperArrow",S={top:"bottom",right:"left",bottom:"top",left:"right"},A=t.forwardRef(function(e,t){let{__scopePopper:r,...a}=e,i=N(j,r),l=S[i.placedSide];return(0,s.jsx)("span",{ref:i.onArrowChange,style:{position:"absolute",left:i.arrowX,top:i.arrowY,[l]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[i.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[i.placedSide],visibility:i.shouldHideArrow?"hidden":void 0},children:(0,s.jsx)(n,{...a,ref:t,style:{...a.style,display:"block"}})})});function R(e){return null!==e}A.displayName=j;var C=e=>({name:"transformOrigin",options:e,fn(t){let{placement:r,rects:a,middlewareData:i}=t,s=i.arrow?.centerOffset!==0,n=s?0:e.arrowWidth,l=s?0:e.arrowHeight,[o,c]=$(r),d={start:"0%",center:"50%",end:"100%"}[c],p=(i.arrow?.x??0)+n/2,u=(i.arrow?.y??0)+l/2,h="",f="";return"bottom"===o?(h=s?d:`${p}px`,f=`${-l}px`):"top"===o?(h=s?d:`${p}px`,f=`${a.floating.height+l}px`):"right"===o?(h=`${-l}px`,f=s?d:`${u}px`):"left"===o&&(h=`${a.floating.width+l}px`,f=s?d:`${u}px`),{data:{x:h,y:f}}}});function $(e){let[t,r="center"]=e.split("-");return[t,r]}e.s(["Anchor",0,b,"Arrow",0,A,"Content",0,P,"Root",0,m,"createPopperScope",0,f],136426)},164015,e=>{"use strict";var t=e.i(578791),r=e.i(780550);e.s(["useSize",0,function(e){let[a,i]=t.useState(void 0);return(0,r.useLayoutEffect)(()=>
2{if(e){i({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{let r,a;if(!Array.isArray(t)||!t.length)return;let s=t[0];if("borderBoxSize"in s){let e=s.borderBoxSize,t=Array.isArray(e)?e[0]:e;r=t.inlineSize,a=t.blockSize}else r=e.offsetWidth,a=e.offsetHeight;i({width:r,height:a})});return t.observe(e,{box:"border-box"}),()=>t.unobserve(e)}i(void 0)},[e]),a}])},355152,e=>{"use strict";var t=e.i(190898),r=e.i(207298),a=e.i(470733),i=e.i(735706),s=e.i(484649);let n=(0,r.cva)("text-primary font-medium leading-tight",{compoundVariants:[{className:"mb-4 md:mb-6",level:1,noNaturalSpacing:!1},{className:"mb-3 md:mb-5",level:2,noNaturalSpacing:!1},{className:"mb-3 md:mb-4",level:3,noNaturalSpacing:!1},{className:"mb-2 md:mb-3",level:4,noNaturalSpacing:!1},{className:"mb-2",level:5,noNaturalSpacing:!1},{className:"mb-1",level:6,noNaturalSpacing:!1}],defaultVariants:{anchorVisibility:"never",hasAnchor:!1,level:1,noNaturalSpacing:!1},variants:{anchorVisibility:{always:"",hover:"group",never:""},hasAnchor:{false:"",true:"flex scroll-m-20 items-center gap-2"},level:{1:"text-[40px] md:text-[48px] lg:text-[56px]",2:"text-[40px] md:text-[40px] lg:text-[48px]",3:"text-[32px] md:text-[32px] lg:text-[40px]",4:"text-[24px] md:text-[24px] lg:text-[32px]",5:"text-[24px]",6:"text-[20px]"},noNaturalSpacing:{false:"",true:""}}}),l=({anchor:e,anchorVisibility:r="never"})=>(0,t.jsx)("div",{className:(0,a.clsx)({hidden:"never"===r,"invisible group-hover:visible":"hover"===r,visible:"always"===r}),children:(0,t.jsx)(i.default,{href:`#${e}`,children:(0,t.jsx)(s.Icon,{className:"text-subtler",name:"link"})})});e.s(["Heading",0,({anchor:e,anchorVisibility:r,children:i,className:s,component:o,id:c,level:d,noNaturalSpacing:p})=>{let u=o??`h${d}`;return(0,t.jsxs)(u,{className:(0,a.clsx)(n({anchorVisibility:r,className:s,hasAnchor:!!e,level:d,noNaturalSpacing:p})),id:e??c,children:[i,e?(0,t.jsx)(l,{anchor:e,anchorVisibility:r}):null]})}])},190391,e=>{"use strict";var t=e.i(190898),r=e.i(470733);let a=20;e.s(["SkeletonText",0,({children:e,className:i,length:s=a,...n})=>(0,t.jsxs)("span",{className:(0,r.clsx)("bg-neutral animate-pulse whitespace-pre-wrap",i),...n,children:[" ".repeat(s),e]})])}]); 3 4//# debugId=47e89bb8-ba3f-89c0-9173-cb7e47d0c405
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.