{"version":3,"file":"BlogArticleControls.BZouADn7.mjs","names":["React.useState","React.useRef","__esmMin","le","init_ssg_sandbox_shims","window","_e","p","ce","init_npm_react_18_3_1","de","motion","MotionConfig","AnimatePresence","init_framer_motion_DhsWWWsN","addPropertyControls","init_framer_CaDWdxiz","RenderTarget","ControlType","getStore","existing","stores","section","read","grid","el","store","ALL","next","patch","cards","words","hits","c","text","w","start","shown","display","box","columns","l","top","first","a","reduce","lenis","pageList","pages","i","page","Pill","props","disabled","active","FILL","LINE","SPRING","CategoryDropdown","open","setOpen","rootRef","triggerRef","optionRefs","label","o","ALL_LABEL","away","focusIndex","openAt","close","current","options","value","onTriggerKey","onOptionKey","move","n","PANEL_EASE","onChange","BlogArticleControls","onCanvas","size","pageSize","storeRef","state","setState","sectionName","gridName","sync","observer","empty","part","wrapper","set","go","s","noHits","CSS","Arrow","category","categories","categoryFilter","init_BlogArticleControls","init_jsx_runtime","back"],"sources":["https:/framerusercontent.com/modules/VQCrh7MfndNSTWeEw5zf/rZ2VLryeJSKMUJ96FNQi/BlogArticleControls.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{AnimatePresence,MotionConfig,motion}from\"framer-motion\";const stores=new WeakMap;const ALL=\"All\";// Same as the Secondary Button component: spring 0.4s / 0.2 bounce, Light/Dark hover fills, press to 0.9.\nconst SPRING={type:\"spring\",duration:.4,bounce:.2};const FILL={off:\"rgba(0, 0, 0, 0.3)\",offHover:\"rgb(18, 18, 18)\",on:\"rgb(255, 255, 255)\",onHover:\"rgb(204, 204, 204)\"};const LINE={off:\"rgba(255, 255, 255, 0.1)\",on:\"rgba(255, 255, 255, 1)\",onHover:\"rgba(204, 204, 204, 1)\"};function getStore(section,grid,size){const existing=stores.get(section);if(existing)return existing;const read=()=>Array.from(grid.children).map(el=>({el:el,title:(el.querySelector('[data-framer-name=\"Title\"]')?.textContent||\"\").trim(),category:(el.querySelector('[data-framer-name=\"Category\"]')?.textContent||\"\").trim()}));const store={size,fullHeight:0,fullWidth:0,state:{query:\"\",category:ALL,page:1,categories:[],pages:1,matches:0,ready:false},listeners:new Set,update(patch){const next={...store.state,...patch};const cards=read();const words=next.query.toLowerCase().split(/\\s+/).filter(Boolean);const hits=cards.filter(c=>{if(next.category!==ALL&&c.category!==next.category)return false;const text=(c.title+\" \"+c.category).toLowerCase();return words.every(w=>text.includes(w));});next.categories=Array.from(new Set(cards.map(c=>c.category).filter(Boolean)));next.matches=hits.length;next.pages=Math.max(1,Math.ceil(hits.length/store.size));next.page=Math.min(Math.max(1,next.page),next.pages);next.ready=true;const start=(next.page-1)*store.size;const shown=new Set(hits.slice(start,start+store.size).map(c=>c.el));cards.forEach(c=>{const display=shown.has(c.el)?\"\":\"none\";if(c.el.style.display!==display)c.el.style.display=display;});const box=grid;box.style.minHeight=\"\";const columns=getComputedStyle(box).gridTemplateColumns.split(\" \").length;if(box.clientWidth!==store.fullWidth)store.fullHeight=0;store.fullWidth=box.clientWidth;if(shown.size===store.size)store.fullHeight=box.offsetHeight;else if(columns>1&&next.pages>1&&store.fullHeight)box.style.minHeight=store.fullHeight+\"px\";store.state=next;store.listeners.forEach(l=>l());},scroll(){const top=section.getBoundingClientRect().top;// Leave the page alone while the first row is on screen, so the buttons stay under the cursor.\nconst first=Array.from(grid.querySelectorAll(\"a\")).find(a=>a.getBoundingClientRect().height>0);if(first&&first.getBoundingClientRect().bottom>120)return;const reduce=window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;const lenis=window.lenis;if(lenis&&typeof lenis.scrollTo===\"function\")lenis.scrollTo(section,{offset:-100,immediate:reduce});else window.scrollTo({top:top+window.scrollY-100,behavior:reduce?\"auto\":\"smooth\"});}};stores.set(section,store);return store;}const CSS=`\n.bac,.bac *{box-sizing:border-box;font-family:\"Geist\",\"Inter\",system-ui,sans-serif}\n.bac-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;width:100%}\n.bac-dd{position:relative;flex:0 1 240px;min-width:0}\n.bac .bac-dd-trigger{width:100%;justify-content:space-between}\n.bac-dd-trigger svg{flex:none}\n.bac-dd-panel{position:absolute;left:0;top:calc(100% + 8px);z-index:20;display:flex;flex-direction:column;gap:4px;width:100%;padding:4px;border-radius:24px;border:1px solid rgba(255,255,255,.1);background:rgb(27,27,27);box-shadow:0 18px 40px rgba(0,0,0,.45);transform-origin:top left}\n.bac-dd-option{display:flex;align-items:center;width:100%;min-height:40px;padding:8px 14px;border:0;border-radius:40px;font-size:14px;font-weight:400;line-height:1.2;letter-spacing:0;text-align:left;cursor:pointer}\n.bac-dd-option:focus-visible{outline:2px solid #fff;outline-offset:-2px}\n.bac-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;min-width:40px;padding:0 16px;border-radius:40px;border:1px solid rgba(255,255,255,.1);background:rgba(0,0,0,.3);color:#fff;font-size:14px;font-weight:400;line-height:1;letter-spacing:0;cursor:pointer;white-space:nowrap}\n.bac-btn:focus-visible,.bac-search input:focus-visible{outline:2px solid #fff;outline-offset:-2px}\n.bac-search{position:relative;flex:1 1 260px;max-width:320px;color:rgba(255,255,255,.6)}\n.bac-search svg{position:absolute;left:16px;top:50%;transform:translateY(-50%);pointer-events:none}\n.bac-search input{width:100%;height:40px;padding:0 16px 0 42px;border-radius:40px;border:1px solid rgba(255,255,255,.1);background:#131313;color:#fff;font-size:14px;line-height:1;-webkit-appearance:none;appearance:none}\n.bac-search input::placeholder{color:rgba(255,255,255,.5)}\n.bac-search input::-webkit-search-cancel-button{-webkit-appearance:none}\n.bac-pages{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;width:100%}\n.bac-pages .bac-btn{padding:0 8px}\n.bac-gap{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;color:rgba(255,255,255,.5);font-size:14px}\n.bac-empty{display:flex;flex-direction:column;align-items:center;gap:16px;width:100%;padding:40px 16px;color:rgba(255,255,255,.8);font-size:16px;text-align:center}\n.bac-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}\n@media (max-width:809.98px){.bac-search,.bac-dd{flex-basis:100%;max-width:none}}\n`;// Always the same number of slots once there are more than 7 pages, so buttons keep their positions.\nfunction pageList(page,pages){if(pages<=7)return Array.from({length:pages},(_,i)=>i+1);if(page<=4)return[1,2,3,4,5,\"gap\",pages];if(page>=pages-3)return[1,\"gap\",pages-4,pages-3,pages-2,pages-1,pages];return[1,\"gap\",page-1,page,page+1,\"gap\",pages];}function Pill(props){const{active=false,disabled=false}=props;return /*#__PURE__*/_jsx(motion.button,{type:\"button\",className:\"bac-btn\",\"aria-label\":props.label,\"aria-pressed\":props.pressed,\"aria-current\":props.current?\"page\":undefined,disabled:disabled,style:disabled?{opacity:.35,cursor:\"default\"}:undefined,onClick:props.onClick,initial:false,animate:{backgroundColor:active?FILL.on:FILL.off,borderColor:active?LINE.on:LINE.off,color:active?\"rgb(27, 27, 27)\":\"rgb(255, 255, 255)\",scale:1},whileHover:disabled?undefined:{backgroundColor:active?FILL.onHover:FILL.offHover,borderColor:active?LINE.onHover:LINE.off},whileTap:disabled?undefined:{scale:.9},transition:SPRING,children:props.children});}const PANEL_EASE=[.23,1,.32,1];const ALL_LABEL=\"All categories\";function CategoryDropdown(props){const{value,options,onChange}=props;const[open,setOpen]=React.useState(false);const rootRef=React.useRef(null);const triggerRef=React.useRef(null);const optionRefs=React.useRef([]);const label=o=>o===ALL?ALL_LABEL:o;// Close when clicking anywhere else.\nReact.useEffect(()=>{if(!open)return;const away=e=>{if(!rootRef.current?.contains(e.target))setOpen(false);};document.addEventListener(\"pointerdown\",away);return()=>document.removeEventListener(\"pointerdown\",away);},[open]);// Opening moves focus to the current option, so arrow keys work straight away.\nconst focusIndex=React.useRef(0);React.useEffect(()=>{if(open)optionRefs.current[focusIndex.current]?.focus();},[open]);const openAt=i=>{focusIndex.current=i;setOpen(true);};const close=()=>{setOpen(false);triggerRef.current?.focus();};const current=Math.max(0,options.indexOf(value));const onTriggerKey=e=>{if(e.key===\"ArrowDown\"||e.key===\"ArrowUp\"){e.preventDefault();openAt(current);}};const onOptionKey=(e,i)=>{const move=n=>{e.preventDefault();optionRefs.current[(n+options.length)%options.length]?.focus();};if(e.key===\"ArrowDown\")move(i+1);else if(e.key===\"ArrowUp\")move(i-1);else if(e.key===\"Home\")move(0);else if(e.key===\"End\")move(options.length-1);else if(e.key===\"Escape\"){e.preventDefault();close();}else if(e.key===\"Tab\")setOpen(false);};return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,className:\"bac-dd\",children:[/*#__PURE__*/_jsxs(motion.button,{ref:triggerRef,type:\"button\",className:\"bac-btn bac-dd-trigger\",\"aria-haspopup\":\"listbox\",\"aria-expanded\":open,\"aria-label\":`Filter by category: ${label(value)}`,onClick:()=>open?close():openAt(current),onKeyDown:onTriggerKey,initial:false,animate:{backgroundColor:FILL.off,borderColor:LINE.off,color:\"rgb(255, 255, 255)\",scale:1},whileHover:{backgroundColor:FILL.offHover},whileTap:{scale:.9},transition:SPRING,children:[/*#__PURE__*/_jsx(\"span\",{children:label(value)}),/*#__PURE__*/_jsx(motion.svg,{width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"1.5\",strokeLinecap:\"round\",strokeLinejoin:\"round\",\"aria-hidden\":true,initial:false,animate:{rotate:open?180:0},transition:SPRING,children:/*#__PURE__*/_jsx(\"path\",{d:\"M4 6l4 4 4-4\"})})]}),/*#__PURE__*/_jsx(AnimatePresence,{children:open&&/*#__PURE__*/_jsx(motion.div,{className:\"bac-dd-panel\",role:\"listbox\",\"aria-label\":\"Categories\",initial:{opacity:0,y:-6,scale:.97},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-6,scale:.97},transition:{duration:.2,ease:PANEL_EASE},children:options.map((o,i)=>{const active=o===value;return /*#__PURE__*/_jsx(motion.button,{ref:el=>{optionRefs.current[i]=el;},type:\"button\",role:\"option\",\"aria-selected\":active,className:\"bac-dd-option\",onClick:()=>{onChange(o);close();},onKeyDown:e=>onOptionKey(e,i),initial:false,animate:{backgroundColor:active?FILL.on:\"rgba(18, 18, 18, 0)\",color:active?\"rgb(27, 27, 27)\":\"rgb(255, 255, 255)\"},whileHover:{backgroundColor:active?FILL.onHover:FILL.offHover},transition:SPRING,children:label(o)},o);})})})]});}const Arrow=({back})=>/*#__PURE__*/_jsx(\"svg\",{width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"1.5\",strokeLinecap:\"round\",strokeLinejoin:\"round\",\"aria-hidden\":true,style:back?{transform:\"scaleX(-1)\"}:undefined,children:/*#__PURE__*/_jsx(\"path\",{d:\"M3 8h10M9 4l4 4-4 4\"})});/**\n * @framerSupportedLayoutWidth stretch\n * @framerSupportedLayoutHeight auto\n */export default function BlogArticleControls(props){const{part=\"Controls\",pageSize=3,sectionName=\"All Articles\",gridName=\"Grid\",placeholder=\"Search articles…\",categoryFilter=true}=props;const onCanvas=RenderTarget.current()===RenderTarget.canvas;const size=Math.max(1,Math.round(pageSize));const rootRef=React.useRef(null);const storeRef=React.useRef(null);const[state,setState]=React.useState(null);React.useLayoutEffect(()=>{const section=rootRef.current?.closest(`[data-framer-name=\"${sectionName}\"]`);const grid=section?.querySelector(`[data-framer-name=\"${gridName}\"]`);if(!section||!grid||onCanvas)return;const store=getStore(section,grid,size);storeRef.current=store;const sync=()=>setState(store.state);store.listeners.add(sync);store.update({});// Framer can swap the list's DOM while hydrating; re-apply when cards change.\nconst observer=new MutationObserver(()=>store.update({}));observer.observe(grid,{childList:true});return()=>{observer.disconnect();store.listeners.delete(sync);};},[sectionName,gridName,size,onCanvas]);// An empty pagination part shouldn't leave a stack gap behind it.\nconst empty=part===\"Pagination\"&&!!state&&state.pages<=1&&state.matches>0;React.useLayoutEffect(()=>{const wrapper=rootRef.current?.parentElement;if(wrapper&&!onCanvas)wrapper.style.display=empty?\"none\":\"\";},[empty,onCanvas]);const set=patch=>storeRef.current?.update(patch);const go=page=>{set({page});storeRef.current?.scroll();};if(part===\"Pagination\"){const s=state;const noHits=!!s&&s.ready&&s.matches===0;return /*#__PURE__*/_jsx(MotionConfig,{reducedMotion:\"user\",children:/*#__PURE__*/_jsxs(\"div\",{ref:rootRef,className:\"bac\",style:{width:\"100%\"},children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:CSS}}),noHits?/*#__PURE__*/_jsxs(\"div\",{className:\"bac-empty\",role:\"status\",children:[\"No articles found.\",/*#__PURE__*/_jsx(Pill,{onClick:()=>set({query:\"\",category:ALL,page:1}),children:\"Clear filters\"})]}):s&&s.pages>1?/*#__PURE__*/_jsxs(\"nav\",{className:\"bac-pages\",\"aria-label\":\"Articles pagination\",children:[/*#__PURE__*/_jsx(Pill,{label:\"Previous page\",disabled:s.page<=1,onClick:()=>go(s.page-1),children:/*#__PURE__*/_jsx(Arrow,{back:true})}),pageList(s.page,s.pages).map((p,i)=>p===\"gap\"?/*#__PURE__*/_jsx(\"span\",{className:\"bac-gap\",\"aria-hidden\":true,children:\"…\"},\"gap\"+i):/*#__PURE__*/_jsx(Pill,{label:`Page ${p}`,active:p===s.page,current:p===s.page,onClick:()=>go(p),children:p},p)),/*#__PURE__*/_jsx(Pill,{label:\"Next page\",disabled:s.page>=s.pages,onClick:()=>go(s.page+1),children:/*#__PURE__*/_jsx(Arrow,{})})]}):null]})});}const category=state?.category??ALL;const categories=[ALL,...state?.categories??[]];return /*#__PURE__*/_jsx(MotionConfig,{reducedMotion:\"user\",children:/*#__PURE__*/_jsxs(\"div\",{ref:rootRef,className:\"bac\",style:{width:\"100%\"},children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:CSS}}),!state&&!onCanvas&&/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:`[data-framer-name=\"${sectionName}\"] [data-framer-name=\"${gridName}\"]>*:nth-child(n+${size+1}){display:none}`}}),/*#__PURE__*/_jsxs(\"div\",{className:\"bac-controls\",children:[categoryFilter&&/*#__PURE__*/_jsx(CategoryDropdown,{value:category,options:categories,onChange:c=>set({category:c,page:1})}),/*#__PURE__*/_jsxs(\"label\",{className:\"bac-search\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"bac-sr\",children:\"Search articles\"}),/*#__PURE__*/_jsxs(\"svg\",{width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"1.5\",strokeLinecap:\"round\",\"aria-hidden\":true,children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"7\",cy:\"7\",r:\"4.5\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M10.5 10.5 14 14\"})]}),/*#__PURE__*/_jsx(\"input\",{type:\"search\",value:state?.query??\"\",placeholder:placeholder,onChange:e=>set({query:e.target.value,page:1})})]})]}),state&&/*#__PURE__*/_jsxs(\"span\",{className:\"bac-sr\",role:\"status\",children:[state.matches,\" \",state.matches===1?\"article\":\"articles\"]})]})});}addPropertyControls(BlogArticleControls,{part:{type:ControlType.Enum,title:\"Part\",options:[\"Controls\",\"Pagination\"],defaultValue:\"Controls\",displaySegmentedControl:true},pageSize:{type:ControlType.Number,title:\"Per Page\",min:1,max:48,step:1,defaultValue:3,displayStepper:true},placeholder:{type:ControlType.String,title:\"Placeholder\",defaultValue:\"Search articles…\",hidden:p=>p.part===\"Pagination\"},// Off on category pages, where the list is already one category.\ncategoryFilter:{type:ControlType.Boolean,title:\"Category Filter\",defaultValue:true,hidden:p=>p.part===\"Pagination\"},sectionName:{type:ControlType.String,title:\"Section Layer\",defaultValue:\"All Articles\"},gridName:{type:ControlType.String,title:\"Grid Layer\",defaultValue:\"Grid\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"BlogArticleControls\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"stretch\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"auto\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./BlogArticleControls.map"],"mappings":"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"}