{"version":3,"file":"ClientPagination.C7pgFRIQ.mjs","names":["React.useRef","React.useState"],"sources":["https:/framerusercontent.com/modules/L7tJOw0DmPF5mavjktAw/15uAnUtkNmu2e663ve9O/ClientPagination.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 56\n */export default function ClientPagination({listMode=\"name\",listName=\"Upcoming List\",cardMode=\"name\",cardName=\"\",itemsPerPage=5,maxVisiblePages=5,activeColor=\"#0466C8\",textColor=\"#000A1C\",style}){const rootRef=React.useRef(null);const listRef=React.useRef(null);const[items,setItems]=React.useState([]);const[page,setPage]=React.useState(1);const isCanvas=RenderTarget.current()===RenderTarget.canvas;const pageSize=Number.isFinite(itemsPerPage)?Math.max(1,Math.floor(itemsPerPage)):5;const visibleCount=Number.isFinite(maxVisiblePages)?Math.max(1,Math.floor(maxVisiblePages)):5;const totalPages=isCanvas?10:Math.ceil(items.length/pageSize);const currentPage=Math.min(page,Math.max(1,totalPages));React.useEffect(()=>{if(isCanvas||!rootRef.current)return;const doc=rootRef.current.ownerDocument;let frame=0;let disposed=false;function query(root,mode,value){value=value.trim();if(!value)return[];try{if(mode===\"css\")return Array.from(root.querySelectorAll(value));const attribute=mode===\"id\"?\"id\":\"data-framer-name\";return Array.from(root.querySelectorAll(`[${attribute}]`)).filter(el=>el.getAttribute(attribute)===value);}catch{return[];}}function findItems(){frame=0;if(disposed)return;const matches=query(doc,listMode,listName);const visible=matches.filter(el=>el.getClientRects().length>0);// Do not silently control the wrong list when names are duplicated.\nconst list=visible.length===1?visible[0]:visible.length===0&&matches.length===1?matches[0]:null;if(listRef.current!==list){listRef.current=list;setPage(1);}let found=list?Array.from(list.children).filter(el=>el.nodeType===1&&\"style\"in el&&![\"STYLE\",\"SCRIPT\",\"TEMPLATE\"].includes(el.tagName)):[];if(list&&cardName.trim()){const matched=query(list,cardMode,cardName);// Ignore nested matches within an already matched card.\nconst cards=matched.filter(card=>!matched.some(other=>other!==card&&other.contains(card)));found=cards;if(cards.length>1){// Find their shared container, then hide each whole item wrapper.\nlet parent=cards[0].parentElement;while(parent&&parent!==list&&!cards.every(card=>parent.contains(card))){parent=parent.parentElement;}if(parent){const wrappers=cards.map(card=>{let item=card;while(item.parentElement&&item.parentElement!==parent){item=item.parentElement;}return item;});// Grouped layouts cannot safely hide a shared group per card.\nif(new Set(wrappers).size===cards.length)found=wrappers;}}}setItems(previous=>previous.length===found.length&&previous.every((el,index)=>el===found[index])?previous:found);}function schedule(){if(!frame)frame=requestAnimationFrame(findItems);}findItems();const observer=new MutationObserver(schedule);observer.observe(doc.body,{childList:true,subtree:true,attributes:true,attributeFilter:[\"data-framer-name\",\"id\",\"class\"]});window.addEventListener(\"resize\",schedule);return()=>{disposed=true;observer.disconnect();window.removeEventListener(\"resize\",schedule);cancelAnimationFrame(frame);listRef.current=null;};},[listMode,listName,cardMode,cardName,isCanvas]);React.useEffect(()=>{setPage(1);},[listMode,listName,cardMode,cardName,pageSize]);React.useEffect(()=>{setPage(value=>Math.min(value,Math.max(1,totalPages)));},[totalPages]);React.useEffect(()=>{if(isCanvas)return;const start=(currentPage-1)*pageSize;const hidden=items.filter((_,index)=>index<start||index>=start+pageSize);const originals=hidden.map(item=>({item,value:item.style.getPropertyValue(\"display\"),priority:item.style.getPropertyPriority(\"display\")}));hidden.forEach(item=>item.style.setProperty(\"display\",\"none\",\"important\"));return()=>{originals.forEach(({item,value,priority})=>{if(value)item.style.setProperty(\"display\",value,priority);else item.style.removeProperty(\"display\");});};},[items,currentPage,pageSize,isCanvas]);const pages=[];if(totalPages<=visibleCount+2){for(let n=1;n<=totalPages;n++)pages.push(n);}else{let start=Math.max(2,currentPage-Math.floor(visibleCount/2));const end=Math.min(totalPages-1,start+visibleCount-1);start=Math.max(2,end-visibleCount+1);pages.push(1);if(start>2)pages.push(\"start\");for(let n=start;n<=end;n++)pages.push(n);if(end<totalPages-1)pages.push(\"end\");pages.push(totalPages);}function changePage(value){setPage(Math.max(1,Math.min(value,totalPages)));if(!isCanvas)listRef.current?.scrollIntoView({behavior:window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches?\"auto\":\"smooth\",block:\"start\"});}const buttonStyle={width:40,height:40,padding:0,border:0,borderRadius:4,background:\"transparent\",color:textColor,flexShrink:0,fontFamily:'\"Libre Franklin\", sans-serif',fontSize:14,lineHeight:\"128%\",letterSpacing:0,cursor:\"pointer\"};function getHoverProps(active=false){return{onMouseEnter:event=>{if(event.currentTarget.disabled)return;event.currentTarget.style.backgroundColor=active?\"#0353A4\":\"#F8F8F8\";event.currentTarget.style.color=active?\"#FFFFFF\":textColor;},onMouseLeave:event=>{event.currentTarget.style.backgroundColor=active?activeColor:\"transparent\";event.currentTarget.style.color=active?\"#FFFFFF\":textColor;}};}return /*#__PURE__*/_jsx(\"div\",{ref:rootRef,style:{...style,width:\"100%\",height:\"auto\"},children:totalPages>1&&/*#__PURE__*/_jsxs(\"nav\",{\"aria-label\":`Pagination: ${listName}`,style:{display:\"flex\",flexWrap:\"wrap\",justifyContent:\"center\",alignItems:\"center\",gap:2,paddingTop:16,minHeight:56,boxSizing:\"border-box\"},children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"aria-label\":\"Previous page\",disabled:currentPage<=1,onClick:()=>changePage(currentPage-1),style:{...buttonStyle,opacity:currentPage<=1?.3:1},...getHoverProps(),children:/*#__PURE__*/_jsx(\"svg\",{width:\"7\",height:\"12\",viewBox:\"0 0 7 12\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M5.95703 0.353516L0.707031 5.60352L5.95703 10.8535\",stroke:\"#000A1C\"})})}),pages.map(value=>typeof value===\"string\"?/*#__PURE__*/_jsx(\"span\",{style:{width:16,textAlign:\"center\",color:textColor},children:\"…\"},value):/*#__PURE__*/_jsx(\"button\",{...getHoverProps(typeof value===\"number\"&&value===currentPage),type:\"button\",\"aria-label\":`Page ${value}`,\"aria-current\":value===currentPage?\"page\":undefined,onClick:()=>changePage(value),style:{...buttonStyle,background:value===currentPage?activeColor:\"transparent\",color:value===currentPage?\"#FFFFFF\":textColor},children:value},value)),/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"aria-label\":\"Next page\",disabled:currentPage>=totalPages,onClick:()=>changePage(currentPage+1),style:{...buttonStyle,opacity:currentPage>=totalPages?.3:1},...getHoverProps(),children:/*#__PURE__*/_jsx(\"svg\",{width:\"7\",height:\"12\",viewBox:\"0 0 7 12\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M0.355469 0.353516L5.60547 5.60352L0.355469 10.8535\",stroke:\"#000A1C\"})})})]})});}addPropertyControls(ClientPagination,{listMode:{type:ControlType.Enum,title:\"Find List By\",options:[\"name\",\"id\",\"css\"],optionTitles:[\"data-framer-name\",\"ID\",\"CSS Selector\"],defaultValue:\"name\"},listName:{type:ControlType.String,title:\"List Value\",defaultValue:\"Upcoming List\"},cardMode:{type:ControlType.Enum,title:\"Find Cards By\",options:[\"name\",\"id\",\"css\"],optionTitles:[\"data-framer-name\",\"ID\",\"CSS Selector\"],defaultValue:\"name\"},cardName:{type:ControlType.String,title:\"Card Value\",defaultValue:\"\",description:\"Empty: use direct list children. Otherwise match cards inside the list.\"},itemsPerPage:{type:ControlType.Number,title:\"Per Page\",defaultValue:5,min:1,max:50,step:1},maxVisiblePages:{type:ControlType.Number,title:\"Visible Numbers\",defaultValue:5,min:1,max:10,step:1},activeColor:{type:ControlType.Color,title:\"Active\",defaultValue:\"#0466C8\"},textColor:{type:ControlType.Color,title:\"Text\",defaultValue:\"#000A1C\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ClientPagination\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"auto\",\"framerSupportedLayoutWidth\":\"any\",\"framerIntrinsicWidth\":\"400\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"56\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ClientPagination.map"],"mappings":"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"}