{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/2z6XuJunooxBWxZ5cZCr/XBayAdt35bsSsdvJpJvE/Z7gdL2q2s.js", "ssg:https://framer.com/m/framer/store.js@^1.0.0", "ssg:https://framerusercontent.com/modules/wUiMgSZ0QuT8fiaguqCQ/rSycQxjf7bKJLcZhUrCG/LoadMore.js"],
  "sourcesContent": ["import{fontStore}from\"framer\";fontStore.loadFonts([\"CUSTOM;BDO Grotesk Medium\",\"CUSTOM;BDO Grotesk Medium\"]);export const fonts=[{family:\"BDO Grotesk Medium\",url:\"https://framerusercontent.com/assets/yI5Y8rw8NKuGVlhjGzBEiYxA4j4.woff2\"}];export const css=['.framer-1oJYe .framer-styles-preset-fmqju5:not(.rich-text-wrapper), .framer-1oJYe .framer-styles-preset-fmqju5.rich-text-wrapper h1 { --framer-font-family: \"BDO Grotesk Medium\", \"BDO Grotesk Medium Placeholder\", sans-serif; --framer-font-family-bold: \"BDO Grotesk Medium\", \"BDO Grotesk Medium Placeholder\", sans-serif; --framer-font-size: 120px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-weight: 400; --framer-font-weight-bold: 400; --framer-letter-spacing: -0.04em; --framer-line-height: 100%; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: var(--token-169d4d1c-fd2c-4113-998c-38e9976aae57, #000000); --framer-text-decoration: none; --framer-text-transform: none; }','@media (max-width: 1199px) and (min-width: 810px) { .framer-1oJYe .framer-styles-preset-fmqju5:not(.rich-text-wrapper), .framer-1oJYe .framer-styles-preset-fmqju5.rich-text-wrapper h1 { --framer-font-family: \"BDO Grotesk Medium\", \"BDO Grotesk Medium Placeholder\", sans-serif; --framer-font-family-bold: \"BDO Grotesk Medium\", \"BDO Grotesk Medium Placeholder\", sans-serif; --framer-font-size: 80px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-weight: 400; --framer-font-weight-bold: 400; --framer-letter-spacing: -0.04em; --framer-line-height: 100%; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: var(--token-169d4d1c-fd2c-4113-998c-38e9976aae57, #000000); --framer-text-decoration: none; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-1oJYe .framer-styles-preset-fmqju5:not(.rich-text-wrapper), .framer-1oJYe .framer-styles-preset-fmqju5.rich-text-wrapper h1 { --framer-font-family: \"BDO Grotesk Medium\", \"BDO Grotesk Medium Placeholder\", sans-serif; --framer-font-family-bold: \"BDO Grotesk Medium\", \"BDO Grotesk Medium Placeholder\", sans-serif; --framer-font-size: 64px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-weight: 400; --framer-font-weight-bold: 400; --framer-letter-spacing: -0.04em; --framer-line-height: 100%; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: var(--token-169d4d1c-fd2c-4113-998c-38e9976aae57, #000000); --framer-text-decoration: none; --framer-text-transform: none; } }'];export const className=\"framer-1oJYe\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}", "import{useState,useEffect}from\"react\";import{Data,useObserveData}from\"framer\";export function createStore(state1){// Use Data so that a Preview reload resets the state\nconst dataStore=Data({state:Object.freeze({...state1})});// Create a set function that updates the state\nconst setDataStore=newState=>{// If the state is an object, make sure we copy it\nif(typeof newState===\"function\"){newState=newState(dataStore.state);}dataStore.state=Object.freeze({...dataStore.state,...newState});};// Store the initial state, copy the object if it's an object\nlet storeState=typeof state1===\"object\"?Object.freeze({...state1}):state1;// Keep a list of all the listeners, in the form of React hook setters\nconst storeSetters=new Set();// Create a set function that updates all the listeners / setters\nconst setStoreState=newState=>{// If the state is an object, make sure we copy it\nif(typeof newState===\"function\"){newState=newState(storeState);}storeState=typeof newState===\"object\"?Object.freeze({...storeState,...newState}):newState;// Update all the listeners / setters with the new value\nstoreSetters.forEach(setter=>setter(storeState));};// Create the actual hook based on everything above\nfunction useStore(){// Create the hook we are going to use as a listener\nconst[state,setState]=useState(storeState);// If we unmount the component using this hook, we need to remove the listener\n// @ts-ignore\nuseEffect(()=>{// But right now, we need to add the listener\nstoreSetters.add(setState);return()=>storeSetters.delete(setState);},[]);// If Data context exists, use Data, otherwise use vanilla React state\nif(useObserveData()===true){useObserveData();return[dataStore.state,setDataStore];}else{// Return the state and a function to update the central store\nreturn[state,setStoreState];}}return useStore;}\nexport const __FramerMetadata__ = {\"exports\":{\"createStore\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./createStore.map", "import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useState,useEffect,useLayoutEffect}from\"react\";import{createStore}from\"https://framer.com/m/framer/store.js@^1.0.0\";// Made with love by Cl\u00E9ment. https://lionneclement.com/\n// Full tutorial: https://lionneclement.com/tutorial/how-to-create-pagination-for-cms-collections-in-framer\nconst LIMIT=4;const OFFSET=6;const SCROLL_THRESHOLD=200;const PREVIOUS_CLASS=\"Previous\";const PREVIOUS_DISABLED_CLASS=\"Previous Disabled\";const NEXT_CLASS=\"Next\";const NEXT_DISABLED_CLASS=\"Next Disabled\";const PAGE_NUMBER_CLASS=\"Page Number\";const PAGE_NUMBER_ACTIVE_CLASS=\"Page Number Active\";const useStore=createStore({limit:LIMIT,offset:OFFSET,totalItems:null,currentPage:1});export const withCollectionList=Component=>{return props=>{const[store,setStore]=useStore();const[newProps,setNewProps]=useState(props);useEffect(()=>{if(store.totalItems===null){const queryTotalItems=document.querySelector(`.${props.className}none .${props.className}`).children.length;const newTotalItems=queryTotalItems-OFFSET;setStore({totalItems:Math.max(newTotalItems,0)});}},[props,store]);useLayoutEffect(()=>{setNewProps({...props,children:{...props.children,props:{...props.children.props,query:{...props.children.props.query,limit:{type:\"LiteralValue\",value:store.limit},offset:{type:\"LiteralValue\",value:store.offset}}}}});},[store.offset,store.limit,props]);return /*#__PURE__*/_jsxs(_Fragment,{children:[store.totalItems===null&&/*#__PURE__*/_jsx(\"div\",{className:`${props.className}none`,style:{display:\"none\"},children:/*#__PURE__*/_jsx(Component,{...props})}),/*#__PURE__*/_jsx(Component,{...newProps})]});};};export const withLoadMore=Component=>{return props=>{const[store,setStore]=useStore();useEffect(()=>{setStore({offset:OFFSET,totalItems:null,currentPage:1});},[]);return /*#__PURE__*/_jsx(_Fragment,{children:store.limit<store.totalItems&&/*#__PURE__*/_jsx(Component,{...props,onClick:()=>setStore({limit:store.limit+LIMIT})})});};};export const withInfiniteScroll=Component=>{return props=>{const[store,setStore]=useStore();useEffect(()=>{setStore({offset:OFFSET,totalItems:null,currentPage:1});},[]);useEffect(()=>{window.addEventListener(\"scroll\",handleScroll);return()=>{window.removeEventListener(\"scroll\",handleScroll);};},[store,store.limit,store.totalItems]);const handleScroll=()=>{if(store.totalItems&&store.limit<store.totalItems&&window.innerHeight+document.documentElement.scrollTop>=document.documentElement.offsetHeight-SCROLL_THRESHOLD){setStore({limit:store.limit+LIMIT});}};return /*#__PURE__*/_jsx(Component,{...props});};};export const withPrevious=Component=>{return props=>{const[store,setStore]=useStore();useEffect(()=>{setStore({totalItems:null,limit:LIMIT});},[]);const handlePreviousPage=()=>{if(store.currentPage>1){const newPage=store.currentPage-1;const newOffset=(newPage-1)*LIMIT;setStore({offset:newOffset,currentPage:newPage});window.scrollTo(0,0);}};return /*#__PURE__*/_jsx(Component,{...props,onClick:handlePreviousPage,variant:store.currentPage!==1?PREVIOUS_CLASS:PREVIOUS_DISABLED_CLASS});};};export const withNext=Component=>{return props=>{const[store,setStore]=useStore();useEffect(()=>{setStore({totalItems:null,limit:LIMIT});},[]);const handleNextPage=()=>{if(store.currentPage*LIMIT<store.totalItems){const newPage=store.currentPage+1;const newOffset=(newPage-1)*LIMIT;setStore({offset:newOffset,currentPage:newPage});window.scrollTo(0,0);}};return /*#__PURE__*/_jsx(Component,{...props,onClick:handleNextPage,variant:store.currentPage*LIMIT<store.totalItems?NEXT_CLASS:NEXT_DISABLED_CLASS});};};export const withCurrentPage=Component=>{return props=>{const[store,setStore]=useStore();useEffect(()=>{setStore({totalItems:null,limit:LIMIT});},[]);const[currentPage,setCurrentPage]=useState(()=>store.currentPage.toString());const[totalPages,setTotalPages]=useState(()=>Math.ceil(store.totalItems/LIMIT));useEffect(()=>{setCurrentPage(store.currentPage.toString());setTotalPages(Math.ceil(store.totalItems/LIMIT));},[store.currentPage,store.totalItems]);return /*#__PURE__*/_jsx(Component,{...props,page:`${currentPage}/${totalPages}`});};};export const withPageSelector=Component=>{return props=>{const[store,setStore]=useStore();const[pages,setPages]=useState([]);useEffect(()=>{setStore({totalItems:null,limit:LIMIT});},[]);useEffect(()=>{const generatePages=()=>{const totalPages=Math.ceil(store.totalItems/LIMIT);const newPages=Array.from({length:totalPages},(_,index)=>index+1);setPages(newPages);};generatePages();},[store.totalItems]);const handleNewPage=newPage=>{const newOffset=(newPage-1)*LIMIT;setStore({offset:newOffset,currentPage:newPage});window.scrollTo(0,0);};return /*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexDirection:\"row\"},children:pages.map((item,index)=>{return /*#__PURE__*/_jsx(Component,{...props,page:item.toString(),onClick:()=>handleNewPage(item),variant:store.currentPage===item?PAGE_NUMBER_ACTIVE_CLASS:PAGE_NUMBER_CLASS},index);})});};};export const withTablePagination=Component=>{return props=>{const[store,setStore]=useStore();const[pages,setPages]=useState([]);useEffect(()=>{setStore({totalItems:null,limit:LIMIT});},[]);useEffect(()=>{const generatePages=()=>{const totalPages=Math.ceil(store.totalItems/LIMIT);const adjacentPages=store.currentPage===1||store.currentPage===totalPages?2:1;const pages=[];for(let i=1;i<=totalPages;i++){const isWithinRange=i>=store.currentPage-adjacentPages&&i<=store.currentPage+adjacentPages;if(i===1||i===totalPages||isWithinRange){pages.push(i);}else if(i===store.currentPage-adjacentPages-1&&i!==1||i===store.currentPage+adjacentPages+1&&i!==totalPages){pages.push(\"...\");}}setPages(pages);};generatePages();},[store.totalItems,store.currentPage]);const handleNewPage=newPage=>{const newOffset=(newPage-1)*LIMIT;setStore({offset:newOffset,currentPage:newPage});window.scrollTo(0,0);};return /*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexDirection:\"row\"},children:pages.map((item,index,array)=>{const isEllipsis=item===\"...\";return /*#__PURE__*/_jsx(Component,{...props,page:item.toString(),onClick:()=>!isEllipsis&&handleNewPage(item),variant:store.currentPage===item||isEllipsis?PAGE_NUMBER_ACTIVE_CLASS:PAGE_NUMBER_CLASS},index);})});};};export const withClear=Component=>{return props=>{const[store,setStore]=useStore();const handleClick=()=>{setStore({offset:OFFSET,totalItems:null,currentPage:1,limit:LIMIT});};return /*#__PURE__*/_jsx(Component,{...props,onClick:handleClick});};};\nexport const __FramerMetadata__ = {\"exports\":{\"withInfiniteScroll\":{\"type\":\"reactHoc\",\"name\":\"withInfiniteScroll\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withCollectionList\":{\"type\":\"reactHoc\",\"name\":\"withCollectionList\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withCurrentPage\":{\"type\":\"reactHoc\",\"name\":\"withCurrentPage\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withPageSelector\":{\"type\":\"reactHoc\",\"name\":\"withPageSelector\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withTablePagination\":{\"type\":\"reactHoc\",\"name\":\"withTablePagination\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withClear\":{\"type\":\"reactHoc\",\"name\":\"withClear\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withNext\":{\"type\":\"reactHoc\",\"name\":\"withNext\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withPrevious\":{\"type\":\"reactHoc\",\"name\":\"withPrevious\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withLoadMore\":{\"type\":\"reactHoc\",\"name\":\"withLoadMore\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./LoadMore.map"],
  "mappings": "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",
  "names": ["fontStore", "fonts", "css", "className", "createStore", "state1", "dataStore", "Data", "setDataStore", "newState", "storeState", "storeSetters", "setStoreState", "setter", "useStore", "state", "setState", "ye", "ue", "useObserveData", "LIMIT", "OFFSET", "useStore", "createStore", "LIMIT", "OFFSET", "withCollectionList", "Component", "props", "store", "setStore", "newProps", "setNewProps", "ye", "ue", "newTotalItems", "fe", "u", "l", "p", "withLoadMore"]
}
