{"version":3,"file":"BlogPost.COWIPr4D.mjs","names":["p","React.useRef","React.useMemo","React.useState"],"sources":["https:/framerusercontent.com/modules/pK3hUdwVMsdQtQ8wCr1S/nGv1G1OwcPDx7fB9cCwx/BlogPost.js"],"sourcesContent":["// BlogPost — parts of the Basalt blog post page (CMS detail page /blog/:slug), in page order (see BlogPost.md):\n//   PostHero      · section_page-hero of the post: back link, category tag, date, read time, H1, summary, author,\n//                   and (optionally) the 16:9 cover. G1/G2: H1 lines rise from a mask (1.2 s expo-out, .1 s apart,\n//                   from .15 s); back link, meta, lead and author fade up 16 px (.9 s, from .45 s, .06 s apart) —\n//                   plain CSS keyframes, so they run before JavaScript. Cover: G18 parallax (yPercent −4 → 4 while\n//                   it crosses the window, scrubbed, rAF only while on screen).\n//   PostCover     · the cover alone, if you prefer to keep it out of PostHero (same look and parallax)\n//   SectionLine   · the section top line with ┌ ┐ marks, for the native post-body section\n//   PostToc       · \"On this page\": reads the h2s of the native Rich Text named \"Body\", gives them ids, links to\n//                   them (smooth scroll). CSS sticky at 104 px like .docs_nav; a wrapping row at ≤ 991 px.\n//                   Optional Share block below it (as in the design's aside; hidden at ≤ 991 px).\n//   ShareLinks    · Copy link (→ \"Link copied\" for 1.6 s) · LinkedIn · X / Twitter · Hacker News, built from\n//                   window.location.href and document.title like the live site's script\n//   AuthorCard    · corner-frame card: avatar initials, name, role, bio (hidden when empty). G8 reveal (y 48, 1.2 s)\n//   RichTextStyle · renders nothing on the site; injects the design's .rich-text styles for [data-framer-name=\"Body\"]\n//   RelatedHead   · section_post-related header (\"Keep reading\"); the cards are a native list of Blog BlogCards\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";import{C,F,AXES,EXPO,fontsLink,styleTag,isCanvas,usePageWidth,bpClass,cornersBg,LINE_CSS}from\"https://framer.com/m/BasaltKit-8Vri0n.js\";import{Heading,Eyebrow}from\"https://framer.com/m/Parts-DjErWw.js\";/* ---------------- shared ---------------- */const MONO=`font-family:${F.mono};font-stretch:87.5%;font-variation-settings:\"wdth\" 87.5;font-size:11px;line-height:140%;letter-spacing:.01em;text-transform:uppercase`;const S=(title,area=false,description)=>({type:ControlType.String,title,displayTextArea:area,description});const reduced=()=>typeof window!==\"undefined\"&&!!window.matchMedia&&window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;const readText=(n,suffix)=>{const v=typeof n===\"number\"?n:parseFloat(n);return v&&isFinite(v)?`${v} ${suffix||\"\"}`.trim():\"\";};const initialsOf=name=>(name||\"\").split(/\\s+/).filter(Boolean).slice(0,2).map(p=>p.charAt(0).toUpperCase()).join(\"\");const slugify=s=>(s||\"\").toLowerCase().normalize(\"NFKD\").replace(/[̀-ͯ]/g,\"\").replace(/[^a-z0-9]+/g,\"-\").replace(/^-|-$/g,\"\");const CSS_BASE=`${LINE_CSS}\n.bbp{position:relative;width:100%;--gut:40px;--pad:40px;font-family:${F.sans};font-size:16px;line-height:155%;color:${C.fg};-webkit-font-smoothing:antialiased}\n.bbp *{box-sizing:border-box}\n.bbp a{color:inherit;text-decoration:none}\n.bbp p{margin:0}\n.bbp :focus-visible{outline:1px solid ${C.fg};outline-offset:3px}\n.bbp .g{padding:0 var(--gut)}\n.bbp .c{max-width:1280px;margin:0 auto;padding:0 var(--pad)}\n.bbp .mono{${MONO}}\n.bbp.is-md{--gut:32px;--pad:28px}\n.bbp.is-sm{--gut:12px;--pad:16px}\n`;/* ---------------- cover (shared by PostHero and PostCover) ---------------- */const CSS_COVER=`\n.bbp .cov{padding-bottom:80px}\n.bbp.is-md .cov{padding-bottom:64px}\n.bbp .media{position:relative;overflow:hidden;aspect-ratio:16/9;width:100%;background:${C.bg2};box-shadow:inset 0 0 0 1px ${C.line}}\n.bbp .media .pimg{position:absolute;left:0;top:-6%;width:100%;height:112%;display:block;object-fit:cover;will-change:transform}\n`;/* G18 parallax: the image drifts from −4 % to 4 % of its own height while the cover crosses the window. */const useParallax=(box,img,key)=>{React.useEffect(()=>{const b=box.current,el=img.current;if(!b||!el||isCanvas()||reduced())return;let on=false,raf=0;const upd=()=>{raf=0;const r=b.getBoundingClientRect();const h=r.height*1.12,top=r.top-r.height*.06,vh=window.innerHeight;const p=Math.min(1,Math.max(0,(vh-top)/(vh+h)));el.style.transform=`translate3d(0,${(-4+8*p).toFixed(3)}%,0)`;};const onScroll=()=>{if(on&&!raf)raf=requestAnimationFrame(upd);};const io=new IntersectionObserver(([e])=>{on=e.isIntersecting;if(on)upd();});io.observe(b);window.addEventListener(\"scroll\",onScroll,{passive:true});window.addEventListener(\"resize\",onScroll);return()=>{io.disconnect();window.removeEventListener(\"scroll\",onScroll);window.removeEventListener(\"resize\",onScroll);if(raf)cancelAnimationFrame(raf);el.style.transform=\"\";};},[key]);};/* Generative honeycomb used when a post has no cover (the design's post cover art). */const fallbackArt=seed=>{let h=2166136261;for(let i=0;i<seed.length;i++)h=Math.imul(h^seed.charCodeAt(i),16777619);const r=()=>{h^=h<<13;h^=h>>>17;h^=h<<5;return(h>>>0)/4294967296;};const cells=[];const R=24.4,dx=45,dy=39;for(let row=-1;row<11;row++)for(let col=-1;col<15;col++){if(r()>.42)continue;const cx=col*dx+(row%2?dx/2:0),cy=row*dy;const pts=[0,1,2,3,4,5].map(k=>{const a=Math.PI/3*k+Math.PI/6;return`${(cx+R*Math.cos(a)).toFixed(1)} ${(cy+R*Math.sin(a)).toFixed(1)}`;});cells.push(/*#__PURE__*/_jsx(\"path\",{d:\"M\"+pts.join(\"L\")+\"Z\"},cells.length));}return cells;};const Cover=({cover,title,w})=>{const box=React.useRef(null);const img=React.useRef(null);const src=cover&&cover.src;useParallax(box,img,src);return /*#__PURE__*/_jsx(\"div\",{className:\"cov\",children:/*#__PURE__*/_jsx(\"div\",{ref:box,className:\"media\",children:src?/*#__PURE__*/_jsx(\"img\",{ref:img,className:\"pimg\",src:cover.src,srcSet:cover.srcSet,sizes:w>1280?\"1200px\":\"100vw\",alt:cover.alt||title}):/*#__PURE__*/_jsx(\"svg\",{ref:img,className:\"pimg\",viewBox:\"0 0 640 360\",preserveAspectRatio:\"xMidYMid slice\",fill:\"none\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"g\",{style:{fill:C.chip,stroke:C.line2},children:fallbackArt(title||\"basalt\")})})})});};const COVER_CONTROL={type:ControlType.ResponsiveImage,title:\"Cover\",description:\"CMS: Cover. Empty draws generative art.\"};/* ---------------- PostHero ---------------- */const CSS_HERO=`\n.bbp.ph{isolation:isolate;overflow:hidden}\n.bbp .ph-clip{position:absolute;top:0;bottom:0;left:50%;width:min(1280px,calc(100% - var(--gut) * 2));transform:translateX(-50%);overflow:hidden;z-index:-1;pointer-events:none}\n.bbp .ph-grid{position:absolute;inset:0;opacity:.5;background-image:linear-gradient(rgba(237,237,234,.043) 1px,transparent 1px),linear-gradient(90deg,rgba(237,237,234,.043) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:radial-gradient(60% 70% at 70% 0,#000 0%,transparent 75%);mask-image:radial-gradient(60% 70% at 70% 0,#000 0%,transparent 75%)}\n.bbp .ph-comp{display:grid;grid-template-columns:1fr 2.6fr;gap:32px;align-items:start;padding-top:168px;padding-bottom:80px}\n.bbp .ph-left{display:flex;flex-direction:column;align-items:flex-start;gap:20px}\n.bbp .ph-content{display:flex;flex-direction:column;align-items:flex-start;gap:28px;min-width:0}\n.bbp .back{display:inline-flex;align-items:center;gap:8px;color:${C.mute};transition:color .2s ease}\n@media (hover:hover) and (pointer:fine){.bbp .back:hover{color:${C.fg}}}\n.bbp .pmeta{display:flex;align-items:center;gap:16px;flex-wrap:wrap;color:${C.mute}}\n.bbp .tag{display:inline-flex;align-items:center;height:24px;padding:0 8px;font-family:${F.mono};font-stretch:87.5%;font-variation-settings:\"wdth\" 87.5;font-size:10px;line-height:100%;letter-spacing:.04em;text-transform:uppercase;background:${C.fg};color:${C.bg};white-space:nowrap}\n.bbp .lead{max-width:544px;font-size:20px;line-height:150%;letter-spacing:-.01em;color:${C.fg2};text-wrap:pretty}\n.bbp.is-sm .lead{font-size:17px}\n.bbp.anim .f{animation:bbp-fade .9s ${EXPO} both}\n@keyframes bbp-fade{from{transform:translateY(16px);opacity:0}to{transform:none;opacity:1}}\n@media (prefers-reduced-motion:reduce){.bbp.anim .f{animation:none}}\n.bbp.is-md .ph-comp{grid-template-columns:1fr;gap:20px;padding-top:136px;padding-bottom:64px}\n`;const CSS_AUTHOR=`\n.bbp-au{display:flex;align-items:center;gap:14px}\n.bbp-av{flex:none;width:46px;height:46px;display:flex;align-items:center;justify-content:center;background:${C.chip};box-shadow:inset 0 0 0 1px ${C.line2};font-family:${F.mono};font-stretch:87.5%;font-variation-settings:\"wdth\" 87.5;font-size:12px;line-height:100%;letter-spacing:.04em;color:${C.fg}}\n.bbp-at{display:flex;flex-direction:column;gap:4px;min-width:0}\n.bbp-an{font-size:15px;line-height:155%;color:${C.fg}}\n.bbp-ar{${MONO};color:${C.mute}}\n`;const authorRow=(name,role,initials,cls=\"\",style)=>name||role?/*#__PURE__*/_jsxs(\"div\",{className:\"bbp-au\"+cls,style:style,children:[/*#__PURE__*/_jsx(\"div\",{className:\"bbp-av\",\"aria-hidden\":\"true\",children:(initials||initialsOf(name)).slice(0,3)}),/*#__PURE__*/_jsxs(\"div\",{className:\"bbp-at\",children:[name?/*#__PURE__*/_jsx(\"div\",{className:\"bbp-an\",children:name}):null,role?/*#__PURE__*/_jsx(\"div\",{className:\"bbp-ar\",children:role}):null]})]}):null;/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicWidth 1280\n * @framerIntrinsicHeight 1180\n */export function PostHero(props){const p=props;const ref=React.useRef(null);const w=usePageWidth(ref,true);const anim=!isCanvas();let i=0;const d=()=>({animationDelay:(.45+.06*i++).toFixed(2)+\"s\"});const rt=readText(p.readTime,p.readSuffix);return /*#__PURE__*/_jsxs(\"header\",{ref:ref,className:\"bbp ph\"+bpClass(w)+(anim?\" anim\":\"\"),children:[fontsLink(),styleTag(CSS_BASE+CSS_HERO+CSS_AUTHOR+CSS_COVER),p.grid?/*#__PURE__*/_jsx(\"div\",{className:\"ph-clip\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"div\",{className:\"ph-grid\"})}):null,/*#__PURE__*/_jsx(\"div\",{className:\"g\",children:/*#__PURE__*/_jsxs(\"div\",{className:\"c\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"ph-comp\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"ph-left\",children:p.backLabel?/*#__PURE__*/_jsx(\"a\",{href:p.backLink||\"/blog\",className:\"back mono f\",style:d(),children:p.backLabel}):null}),/*#__PURE__*/_jsxs(\"div\",{className:\"ph-content\",children:[p.category||p.date||rt?/*#__PURE__*/_jsxs(\"div\",{className:\"pmeta f\",style:d(),children:[p.category?/*#__PURE__*/_jsx(\"span\",{className:\"tag\",children:p.category}):null,p.date?/*#__PURE__*/_jsx(\"span\",{className:\"mono\",children:p.date}):null,rt?/*#__PURE__*/_jsx(\"span\",{className:\"mono\",children:rt}):null]}):null,/*#__PURE__*/_jsx(Heading,{text:p.title,tone:p.tone,tag:\"h1\",size:\"h1\",align:\"left\",reveal:\"hero\"}),p.summary?/*#__PURE__*/_jsx(\"p\",{className:\"lead f\",style:d(),children:p.summary}):null,p.showAuthor?authorRow(p.authorName,p.authorRole,p.authorInitials,\" f\",d()):null]})]}),p.showCover?/*#__PURE__*/_jsx(Cover,{cover:p.cover,title:p.title,w:w}):null]})})]});}PostHero.defaultProps={backLabel:\"← All posts\",backLink:\"/blog\",category:\"Engineering\",date:\"September 24, 2026\",readTime:8,readSuffix:\"min read\",title:\"How we cut p99 from 11 ms to 4.2 ms\",tone:\"\",summary:\"Three changes to the read path in v4.0: declared sort keys, a per-core allocator and a planner that stopped re-sorting partitions at query time.\",authorName:\"Sigr\\xfan Halld\\xf3rsd\\xf3ttir\",authorRole:\"Staff engineer, Query engine\",authorInitials:\"SH\",showAuthor:true,showCover:true,grid:true};addPropertyControls(PostHero,{backLabel:S(\"Back link\",false,\"Empty hides it.\"),backLink:{type:ControlType.Link,title:\"Back URL\",hidden:p=>!p.backLabel},category:S(\"Category\",false,\"CMS: Category → Title\"),date:S(\"Date\",false,\"CMS: Date (any format)\"),readTime:{type:ControlType.Number,title:\"Read time\",min:0,max:120,step:1,description:\"CMS: Read Time. 0 hides it.\"},readSuffix:S(\"Read suffix\"),title:S(\"Title\",true,\"CMS: Title\"),tone:S(\"Grey title\",true,\"Optional muted ending of the title.\"),summary:S(\"Summary\",true,\"CMS: Summary\"),showAuthor:{type:ControlType.Boolean,title:\"Author\"},authorName:{...S(\"Author\",false,\"CMS: Author Name\"),hidden:p=>!p.showAuthor},authorRole:{...S(\"Author role\",false,\"CMS: Author Role\"),hidden:p=>!p.showAuthor},authorInitials:{...S(\"Initials\",false,\"CMS: Author Initials. Empty = from the name.\"),hidden:p=>!p.showAuthor},showCover:{type:ControlType.Boolean,title:\"Cover\"},cover:{...COVER_CONTROL,hidden:p=>!p.showCover},grid:{type:ControlType.Boolean,title:\"Grid\",description:\"Faint 64 px grid behind the header.\"}});/**\n * The 16:9 cover on its own (use with PostHero → Cover off).\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicWidth 1280\n * @framerIntrinsicHeight 760\n */export function PostCover({cover,title}){const ref=React.useRef(null);const w=usePageWidth(ref,true);return /*#__PURE__*/_jsxs(\"div\",{ref:ref,className:\"bbp\"+bpClass(w),children:[styleTag(CSS_BASE+CSS_COVER),/*#__PURE__*/_jsx(\"div\",{className:\"g\",children:/*#__PURE__*/_jsx(\"div\",{className:\"c\",children:/*#__PURE__*/_jsx(Cover,{cover:cover,title:title,w:w})})})]});}PostCover.defaultProps={title:\"How we cut p99 from 11 ms to 4.2 ms\"};addPropertyControls(PostCover,{cover:COVER_CONTROL,title:S(\"Alt text\",false,\"CMS: Title (used when the image has no alt).\")});/**\n * Section top line with ┌ ┐ marks. Place it absolute, top 0, left 0, right 0, in the native post-body section.\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n * @framerIntrinsicWidth 1280\n * @framerIntrinsicHeight 9\n */export function SectionLine(){const ref=React.useRef(null);const w=usePageWidth(ref,true);return /*#__PURE__*/_jsxs(\"div\",{ref:ref,style:{position:\"relative\",width:\"100%\",height:9},children:[styleTag(LINE_CSS),/*#__PURE__*/_jsx(\"div\",{className:\"bs-sl\"+bpClass(w)})]});}/* ---------------- share links ---------------- */const CSS_NAV=`\n.bbp-nav{display:flex;flex-direction:column;gap:4px;font-family:${F.sans};-webkit-font-smoothing:antialiased;box-sizing:border-box}\n.bbp-nav *{box-sizing:border-box}\n.bbp-nav .lbl{${MONO};color:${C.mute};margin-bottom:12px}\n.bbp-nav a{display:block;padding:6px 0;font-size:14px;line-height:155%;color:${C.mute};text-decoration:none;transition:color .2s ease;cursor:pointer}\n.bbp-nav a:focus-visible{outline:1px solid ${C.fg};outline-offset:3px}\n@media (hover:hover) and (pointer:fine){.bbp-nav a:hover{color:${C.fg}}}\n.bbp-nav.share.div{margin-top:32px;padding-top:24px;border-top:1px solid ${C.line}}\n.bbp-nav.share.flat{margin:0;padding:0;border:0}\n`;const SHARE_DEFAULTS={shareLabel:\"Share\",copyLabel:\"Copy link\",copiedLabel:\"Link copied\",linkedinLabel:\"LinkedIn\",xLabel:\"X / Twitter\",hnLabel:\"Hacker News\",showHN:true};const SHARE_CONTROLS=hide=>({shareLabel:{...S(\"Share label\"),hidden:hide},copyLabel:{...S(\"Copy label\"),hidden:hide},copiedLabel:{...S(\"Copied label\"),hidden:hide},linkedinLabel:{...S(\"LinkedIn label\"),hidden:hide},xLabel:{...S(\"X label\"),hidden:hide},showHN:{type:ControlType.Boolean,title:\"Hacker News\",hidden:hide},hnLabel:{...S(\"HN label\"),hidden:p=>(hide?hide(p):false)||!p.showHN}});const Share=({s,cls})=>{const[url,setUrl]=React.useState(\"\");const[title,setTitle]=React.useState(\"\");const[copied,setCopied]=React.useState(false);const t=React.useRef(0);React.useEffect(()=>{setUrl(window.location.href);setTitle(document.title);return()=>clearTimeout(t.current);},[]);const u=encodeURIComponent(url),tt=encodeURIComponent(title);const copy=e=>{e.preventDefault();const href=window.location.href;try{navigator.clipboard&&navigator.clipboard.writeText(href);}catch(_){}setCopied(true);clearTimeout(t.current);t.current=setTimeout(()=>setCopied(false),1600);};const ext=(href,label)=>label?/*#__PURE__*/_jsx(\"a\",{href:url?href:\"#\",target:\"_blank\",rel:\"noopener\",children:label}):null;return /*#__PURE__*/_jsxs(\"div\",{className:\"bbp-nav share \"+cls,children:[s.label?/*#__PURE__*/_jsx(\"div\",{className:\"lbl\",children:s.label}):null,s.copyLabel?/*#__PURE__*/_jsx(\"a\",{href:\"#copy-link\",onClick:copy,\"aria-live\":\"polite\",children:copied?s.copiedLabel||s.copyLabel:s.copyLabel}):null,ext(\"https://www.linkedin.com/sharing/share-offsite/?url=\"+u,s.linkedinLabel),ext(\"https://x.com/intent/post?url=\"+u+\"&text=\"+tt,s.xLabel),s.showHN?ext(\"https://news.ycombinator.com/submitlink?u=\"+u+\"&t=\"+tt,s.hnLabel):null]});};const shareFrom=p=>({label:p.shareLabel,copyLabel:p.copyLabel,copiedLabel:p.copiedLabel,linkedinLabel:p.linkedinLabel,xLabel:p.xLabel,hnLabel:p.hnLabel,showHN:p.showHN});/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicWidth 224\n * @framerIntrinsicHeight 220\n */export function ShareLinks(props){const ref=React.useRef(null);const w=usePageWidth(ref);const hide=props.hideOnTablet&&w<=991&&!isCanvas();return /*#__PURE__*/_jsxs(\"div\",{ref:ref,style:{width:\"100%\",display:hide?\"none\":\"block\"},children:[fontsLink(),styleTag(CSS_NAV),/*#__PURE__*/_jsx(Share,{s:shareFrom(props),cls:props.divider?\"div\":\"flat\"})]});}ShareLinks.defaultProps={...SHARE_DEFAULTS,divider:false,hideOnTablet:true};addPropertyControls(ShareLinks,{...SHARE_CONTROLS(),divider:{type:ControlType.Boolean,title:\"Top rule\",description:\"Hairline and 32 px space above, as under the table of contents.\"},hideOnTablet:{type:ControlType.Boolean,title:\"Hide ≤ 991\",description:\"The design hides Share on tablet and phone.\"}});/* ---------------- PostToc ---------------- */const CSS_TOC=`\n.bbp-toc{position:relative;width:100%;height:100%}\n.bbp-toc>.bbp-nav{position:sticky;top:var(--top,104px)}\n.bbp-toc.is-md>.bbp-nav{position:relative;top:0;flex-direction:row;flex-wrap:wrap;gap:4px 16px}\n.bbp-toc.is-md>.bbp-nav .lbl{width:100%;margin-bottom:0}\n.bbp-toc.is-md .share{display:none}\n`;const SAMPLE=\"Where the time went\\nDeclared sort keys\\nA per-core allocator\\nResults\\nWhat is next\";const readHeadings=name=>{const body=document.querySelector(`[data-framer-name=\"${(name||\"Body\").replace(/\"/g,'\\\\\"')}\"]`);if(!body)return null;const used=new Set;return Array.from(body.querySelectorAll(\"h2\")).map((h,i)=>{const text=(h.textContent||\"\").trim();let id=h.id||slugify(text)||\"section-\"+(i+1);if(!h.id){let base=id,n=2;while(used.has(id)||document.getElementById(id)&&document.getElementById(id)!==h)id=base+\"-\"+n++;h.id=id;}used.add(id);return{id,text};});};/**\n * \"On this page\" — built from the h2s of the Rich Text layer named \"Body\". Set its height to Fill in the\n * left column so the list can stick (see BlogPost.md).\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-auto\n * @framerIntrinsicWidth 224\n * @framerIntrinsicHeight 420\n */export function PostToc(props){const{label,bodyName,sample,stickyTop,showShare}=props;const ref=React.useRef(null);const w=usePageWidth(ref);const canvas=isCanvas();const sampleItems=React.useMemo(()=>(sample||\"\").split(\"\\n\").map(s=>s.trim()).filter(Boolean).map(s=>({id:slugify(s),text:s})),[sample]);const[items,setItems]=React.useState(null);React.useEffect(()=>{let last=\"\";const set=l=>{if(!l)return false;const k=JSON.stringify(l);if(k!==last){last=k;setItems(l);}return true;};if(canvas){const l=readHeadings(bodyName);if(l&&l.length)set(l);return;}// the Rich Text may mount after this component: watch the page until it is there, then follow its changes\nlet raf=0;const run=()=>{raf=0;set(readHeadings(bodyName));};run();const mo=new MutationObserver(()=>{if(!raf)raf=requestAnimationFrame(run);});mo.observe(document.body,{childList:true,subtree:true,characterData:true});return()=>{mo.disconnect();if(raf)cancelAnimationFrame(raf);};},[bodyName]);const list=items&&(items.length||!canvas)?items:canvas?sampleItems:[];const go=(e,id)=>{const el=document.getElementById(id);if(!el)return;e.preventDefault();el.scrollIntoView({behavior:reduced()?\"auto\":\"smooth\",block:\"start\"});try{history.replaceState(null,\"\",\"#\"+id);}catch(_){}};return /*#__PURE__*/_jsxs(\"div\",{ref:ref,className:\"bbp-toc\"+bpClass(w),style:{[\"--top\"]:(stickyTop??104)+\"px\"},children:[fontsLink(),styleTag(CSS_NAV+CSS_TOC),/*#__PURE__*/_jsxs(\"nav\",{className:\"bbp-nav\",\"aria-label\":label||\"On this page\",children:[label?/*#__PURE__*/_jsx(\"div\",{className:\"lbl\",children:label}):null,(list||[]).map(it=>/*#__PURE__*/_jsx(\"a\",{href:\"#\"+it.id,onClick:e=>go(e,it.id),children:it.text},it.id)),showShare?/*#__PURE__*/_jsx(Share,{s:shareFrom(props),cls:\"div\"}):null]})]});}PostToc.defaultProps={label:\"On this page\",bodyName:\"Body\",sample:SAMPLE,stickyTop:104,showShare:true,...SHARE_DEFAULTS};addPropertyControls(PostToc,{label:S(\"Label\"),bodyName:S(\"Rich text layer\",false,\"Layer name of the native Rich Text bound to Content.\"),sample:S(\"Canvas sample\",true,\"Shown on the canvas when no h2 is found. One heading per line.\"),stickyTop:{type:ControlType.Number,title:\"Sticky top\",min:0,max:400,step:4,unit:\"px\"},showShare:{type:ControlType.Boolean,title:\"Share\",description:\"Share links under the list (hidden at ≤ 991 px).\"},...SHARE_CONTROLS(p=>!p.showShare)});/* ---------------- AuthorCard ---------------- */const CSS_AC=`\n.bbp-ac{position:relative;display:flex;flex-direction:column;gap:16px;width:100%;padding:28px;box-sizing:border-box;background:${C.bg2};box-shadow:inset 0 0 0 1px ${C.line};font-family:${F.sans};color:${C.fg};-webkit-font-smoothing:antialiased}\n.bbp-ac *{box-sizing:border-box}\n.bbp-ac::after{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;background:${cornersBg(C.mark,9)}}\n.bbp-ac p{margin:0;font-size:15px;line-height:155%;color:${C.fg2};text-wrap:pretty}\n`;/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicWidth 760\n * @framerIntrinsicHeight 200\n */export function AuthorCard(props){const{authorName,authorRole,authorInitials,authorBio}=props;const ref=React.useRef(null);// G8 reveal: y 48 → 0 and fade, 1.2 s, when the card top reaches 90 % of the window\nReact.useLayoutEffect(()=>{const el=ref.current;if(!el||isCanvas()||reduced())return;if(el.getBoundingClientRect().top<window.innerHeight*.9)return;const tf=\"translateY(48px)\";el.style.opacity=\"0\";el.style.transform=tf;const clear=()=>{el.style.opacity=\"\";el.style.transform=\"\";};const io=new IntersectionObserver(([e])=>{if(!e.isIntersecting)return;io.disconnect();clear();el.animate([{opacity:0,transform:tf},{opacity:1,transform:\"none\"}],{duration:1200,easing:EXPO,fill:\"backwards\"});},{rootMargin:\"0px 0px -10% 0px\"});io.observe(el);return()=>{io.disconnect();clear();};},[]);const bio=(authorBio||\"\").trim();return /*#__PURE__*/_jsxs(\"div\",{ref:ref,className:\"bbp-ac\",children:[fontsLink(),styleTag(CSS_AUTHOR+CSS_AC),authorRow(authorName,authorRole,authorInitials),bio?/*#__PURE__*/_jsx(\"p\",{children:bio}):null]});}AuthorCard.defaultProps={authorName:\"Sigr\\xfan Halld\\xf3rsd\\xf3ttir\",authorRole:\"Staff engineer, Query engine\",authorInitials:\"SH\",authorBio:\"Sigr\\xfan leads the query engine team in Reykjav\\xedk. Before Basalt she worked on storage at a Nordic payments company, where she learned to distrust any latency number without a percentile next to it.\"};addPropertyControls(AuthorCard,{authorName:S(\"Name\",false,\"CMS: Author Name\"),authorRole:S(\"Role\",false,\"CMS: Author Role\"),authorInitials:S(\"Initials\",false,\"CMS: Author Initials. Empty = from the name.\"),authorBio:S(\"Bio\",true,\"CMS: Author Bio. Empty hides the paragraph.\")});/* ---------------- RichTextStyle ---------------- */// The design's .rich-text (basalt.css) applied to the native Rich Text. Framer styles rich text through\n// .framer-text rules and CSS variables, so every declaration here is !important.\nconst rtCss=(name,maxW)=>{const R=`[data-framer-name=\"${(name||\"Body\").replace(/\"/g,'\\\\\"')}\"]`;const all=sels=>sels.map(s=>`${R} ${s}`).join(\",\");const I=\"!important\";return`\n${R}{max-width:${maxW}px${I};color:${C.fg2}${I};font-family:${F.sans}${I};font-size:17px${I};line-height:170%${I};-webkit-font-smoothing:antialiased}\n${all([\"p\",\"li\",\"ol\",\"ul\",\"span\",\"strong\",\"em\"])}{font-family:${F.sans}${I};font-size:17px${I};line-height:170%${I};letter-spacing:0${I};color:${C.fg2}${I};-webkit-text-fill-color:${C.fg2}${I}}\n${all([\"strong\",\"b\"])}{font-weight:600${I};color:${C.fg}${I};-webkit-text-fill-color:${C.fg}${I}}\n${all([\"p\"])}{margin:0 0 20px${I};padding:0${I};text-wrap:pretty}\n${all([\"h2\"])}{margin:48px 0 16px${I};padding:0${I};font-family:${F.display}${I};font-weight:360${I};font-variation-settings:${AXES}${I};font-size:32px${I};line-height:115%${I};letter-spacing:-.02em${I};color:${C.fg}${I};-webkit-text-fill-color:${C.fg}${I};text-wrap:balance;scroll-margin-top:96px}\n${all([\"h3\"])}{margin:32px 0 12px${I};padding:0${I};font-family:${F.sans}${I};font-weight:500${I};font-size:20px${I};line-height:130%${I};letter-spacing:-.02em${I};color:${C.fg}${I};-webkit-text-fill-color:${C.fg}${I};text-wrap:balance;scroll-margin-top:96px}\n${all([\"h2 *\",\"h3 *\"])}{font:inherit${I};letter-spacing:inherit${I};color:inherit${I};-webkit-text-fill-color:inherit${I}}\n${all([\"> :first-child\",\"> div > :first-child\"])}{margin-top:0${I}}\n${all([\"a\",\"a *\"])}{color:${C.fg}${I};-webkit-text-fill-color:${C.fg}${I};text-decoration:underline${I};text-underline-offset:3px${I};text-decoration-thickness:1px}\n${all([\"ul\",\"ol\"])}{margin:0 0 20px${I};padding:0 0 0 20px${I};display:block${I}}\n${all([\"ul\"])}{list-style:disc outside${I}}\n${all([\"ol\"])}{list-style:decimal outside${I}}\n${all([\"li\"])}{display:list-item${I};margin:0 0 8px${I};padding:0${I}}\n${all([\"li::marker\"])}{color:${C.fg2}}\n${all([\"li > p\",\"li p\"])}{margin:0${I}}\n${all([\"blockquote\"])}{margin:32px 0${I};padding:0 0 0 24px${I};border:0${I};border-left:1px solid ${C.line2}${I};background:none${I};font-family:${F.display}${I};font-weight:360${I};font-variation-settings:${AXES}${I};font-size:24px${I};line-height:135%${I};color:${C.fg}${I};-webkit-text-fill-color:${C.fg}${I}}\n${all([\"blockquote p\",\"blockquote *\"])}{margin:0${I};font:inherit${I};color:inherit${I};-webkit-text-fill-color:inherit${I}}\n${all([\"pre\"])}{margin:24px 0${I};padding:20px${I};border:0${I};border-radius:0${I};background:${C.bg2}${I};box-shadow:inset 0 0 0 1px ${C.line}${I};font-family:${F.mono}${I};font-stretch:87.5%;font-variation-settings:\"wdth\" 87.5;font-size:13px${I};line-height:175%${I};overflow-x:auto${I};white-space:pre${I};color:${C.fg2}${I};-webkit-text-fill-color:${C.fg2}${I}}\n${all([\"pre *\"])}{background:none${I};font-family:inherit${I};font-size:inherit${I};line-height:inherit${I};color:inherit${I};-webkit-text-fill-color:inherit${I};padding:0${I};box-shadow:none${I}}\n${all([\"code\"])}{font-family:${F.mono}${I};font-size:.875em${I};background:none${I};padding:0${I};border:0${I};border-radius:0${I}}\n${all([\"pre code\"])}{font-size:inherit${I}}\n${all([\"figure\"])}{margin:32px 0${I}}\n${all([\"img\"])}{display:block;width:100%${I};height:auto${I};border-radius:0${I};box-shadow:inset 0 0 0 1px ${C.line}}\n${all([\"figcaption\",\"figcaption *\"])}{margin-top:12px${I};font-family:${F.mono}${I};font-stretch:87.5%;font-size:11px${I};line-height:150%${I};text-transform:uppercase${I};letter-spacing:.03em${I};color:${C.mute}${I};-webkit-text-fill-color:${C.mute}${I}}\n${all([\"hr\"])}{margin:48px 0${I};border:0${I};border-top:1px solid ${C.line}${I};height:0${I}}\n${all([\"::selection\"])}{background:${C.fg};color:${C.bg};-webkit-text-fill-color:${C.bg}}\n`;};/**\n * Styles the native Rich Text named \"Body\" like the design's article. Shows a small label on the canvas only.\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */export function RichTextStyle({bodyName,maxWidth}){const canvas=isCanvas();const css=React.useMemo(()=>rtCss(bodyName,maxWidth||672),[bodyName,maxWidth]);return /*#__PURE__*/_jsxs(\"div\",{style:canvas?{display:\"inline-flex\",padding:\"6px 10px\",boxShadow:`inset 0 0 0 1px ${C.line2}`,color:C.mute,fontFamily:F.mono,fontSize:10,letterSpacing:\".04em\",textTransform:\"uppercase\",whiteSpace:\"nowrap\"}:{display:\"none\"},children:[fontsLink(),styleTag(css),canvas?`Rich text style → “${bodyName||\"Body\"}”`:null]});}RichTextStyle.defaultProps={bodyName:\"Body\",maxWidth:672};addPropertyControls(RichTextStyle,{bodyName:S(\"Rich text layer\",false,\"Layer name of the native Rich Text bound to Content.\"),maxWidth:{type:ControlType.Number,title:\"Max width\",min:320,max:1200,step:8,unit:\"px\"}});/* ---------------- RelatedHead · section_post-related header ---------------- */const CSS_REL=`\n.bbp .pt{padding-top:112px}\n.bbp.is-md .pt{padding-top:88px}\n.bbp.is-sm .pt{padding-top:72px}\n.bbp .sh{display:grid;grid-template-columns:1fr 2.6fr;gap:32px;margin-bottom:80px}\n.bbp.is-md .sh{grid-template-columns:1fr;gap:20px;margin-bottom:56px}\n`;/**\n * Section line + top padding + section header. The related Collection List (BlogCard) goes right below it.\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicWidth 1280\n * @framerIntrinsicHeight 260\n */export function RelatedHead({eyebrow,title,tone}){const ref=React.useRef(null);const w=usePageWidth(ref,true);return /*#__PURE__*/_jsxs(\"section\",{ref:ref,className:\"bbp\"+bpClass(w),children:[fontsLink(),styleTag(CSS_BASE+CSS_REL),/*#__PURE__*/_jsx(\"div\",{className:\"bs-sl\"+bpClass(w)}),/*#__PURE__*/_jsx(\"div\",{className:\"g\",children:/*#__PURE__*/_jsx(\"div\",{className:\"c\",children:/*#__PURE__*/_jsx(\"div\",{className:\"pt\",children:/*#__PURE__*/_jsxs(\"div\",{className:\"sh\",children:[/*#__PURE__*/_jsx(\"div\",{children:/*#__PURE__*/_jsx(Eyebrow,{text:eyebrow,appear:false,delay:0})}),/*#__PURE__*/_jsx(Heading,{text:title,tone:tone,tag:\"h2\",size:\"h2\",align:\"left\",reveal:\"scroll\"})]})})})})]});}RelatedHead.defaultProps={eyebrow:\"Keep reading\",title:\"More from\",tone:\"the engine room.\"};addPropertyControls(RelatedHead,{eyebrow:S(\"Eyebrow\"),title:S(\"Title\",true),tone:S(\"Grey title\",true)});\nexport const __FramerMetadata__ = {\"exports\":{\"AuthorCard\":{\"type\":\"reactComponent\",\"name\":\"AuthorCard\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"200\",\"framerIntrinsicWidth\":\"760\",\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\"}},\"ShareLinks\":{\"type\":\"reactComponent\",\"name\":\"ShareLinks\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"224\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"220\",\"framerSupportedLayoutHeight\":\"auto\"}},\"PostToc\":{\"type\":\"reactComponent\",\"name\":\"PostToc\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"224\",\"framerSupportedLayoutHeight\":\"any-prefer-auto\",\"framerIntrinsicHeight\":\"420\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"RelatedHead\":{\"type\":\"reactComponent\",\"name\":\"RelatedHead\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"1280\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicHeight\":\"260\"}},\"PostCover\":{\"type\":\"reactComponent\",\"name\":\"PostCover\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"auto\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicWidth\":\"1280\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"760\"}},\"RichTextStyle\":{\"type\":\"reactComponent\",\"name\":\"RichTextStyle\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"auto\",\"framerSupportedLayoutHeight\":\"auto\"}},\"PostHero\":{\"type\":\"reactComponent\",\"name\":\"PostHero\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"1280\",\"framerSupportedLayoutHeight\":\"auto\",\"framerIntrinsicHeight\":\"1180\",\"framerSupportedLayoutWidth\":\"fixed\"}},\"SectionLine\":{\"type\":\"reactComponent\",\"name\":\"SectionLine\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"9\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerIntrinsicWidth\":\"1280\",\"framerSupportedLayoutWidth\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./BlogPost.map"],"mappings":"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"}