{"version":3,"file":"CMSCollection.D_oGmeL2.mjs","names":["useState","React","useRef","useMemo","useState","cloneElement","_Fragment"],"sources":["https:/framerusercontent.com/modules/vj7bFUjvEQFgEzNBkdoG/vf3CKm378wlVcBk7IhSU/createStore.js","https:/framer.com/m/framer/store.js@^1.0","https:/framerusercontent.com/modules/2VZikWBxCagm4nJReNjX/PfyILngDXp5cnNZmDCPc/store_management.js","https:/framerusercontent.com/modules/jM8jD1GlrCxD96rrTGLC/Nl6KtWGdzqche9IhSAhu/query_builders.js","https:/framerusercontent.com/modules/0ZtPI0zMKW1Pn08h8oa0/5XWhkGyDrlgVREAckeNg/variant_utils.js","https:/framerusercontent.com/modules/Bd2ZGjxd3wA16PORsZcM/EfL0hu08hDJCvOSVfoZt/masonry_utils.js","https:/framerusercontent.com/modules/btKadHcwepCes5ME1dWi/1oPmQbILL9BfunIfeUb3/url_sync.js","https:/framerusercontent.com/modules/4kubTvEfQH0kypVlANcr/xoM2CuuBZrXqTsZCRdjY/CMSCollection.js"],"sourcesContent":["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","/*\n * createStore (framer/store@1.0.1)\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/vj7bFUjvEQFgEzNBkdoG/vf3CKm378wlVcBk7IhSU/createStore.js\"\n","// Store management utilities for CMS Collection\n// Extracted from CMSCollection.tsx for better modularity\nimport React from\"react\";import{RenderTarget}from\"framer\";// Store management utilities for CMS Collection\n// Extracted from CMSCollection.tsx for better modularity\nimport{createStore}from\"https://framer.com/m/framer/store.js@^1.0\";const collectionStores=new Map;const runtimeSnapshots=new Map;// Helper to get or create store for collection\nexport const getCollectionStore=collectionId=>{if(!collectionStores.has(collectionId)){const newStore=createStore({searchTerm:\"\",searchFields:[],searchRules:[],filters:[],debug:true,pagination:{page:1,pageSize:null},count:-1,urlSync:{configInitialized:false,enabled:false,prefix:\"\",hasRelevantParams:false,registrationClosed:false,knownParamKeys:[],pendingComponentIds:[],readyComponentIds:[]}});collectionStores.set(collectionId,newStore);debugCMSFilter(\"Store created\",{collectionId,initialState:{searchTerm:\"\",searchFields:[],searchRules:[],filters:[],debug:true,pagination:{page:1,pageSize:null},count:-1,urlSync:{configInitialized:false,enabled:false,prefix:\"\",hasRelevantParams:false,registrationClosed:false,knownParamKeys:[],pendingComponentIds:[],readyComponentIds:[]}}});}else{debugCMSFilter(\"Store reused\",{collectionId});}return collectionStores.get(collectionId);};export const useCollectionStoreBinding=(actualStoreKey,instanceId)=>{const fallbackStoreKeyRef=React.useRef(instanceId?.trim()?`cms-unbound-${instanceId.trim()}`:`cms-unbound-${evGetRandomString()}`);const resolvedStoreKey=actualStoreKey||fallbackStoreKeyRef.current;const useStore=getCollectionStore(resolvedStoreKey);const[state,setState]=useStore();return{state,setState,resolvedStoreKey,isBoundToCollection:!!actualStoreKey};};export const getCollectionRuntimeSnapshot=collectionId=>{return runtimeSnapshots.get(collectionId)||null;};export const setCollectionRuntimeSnapshot=(collectionId,partial)=>{if(!collectionId)return;const previous=runtimeSnapshots.get(collectionId)||{};runtimeSnapshots.set(collectionId,{...previous,...partial});};// Helper to traverse nested .left structures to find the deepest node\n// Each reference field adds another .left level:\n// 1 ref field: .left\n// 2 ref fields: .left.left\n// 3 ref fields: .left.left.left\n// ... and so on\nconst getDeepestLeft=node=>{if(!node)return null;let current=node;while(current?.left){current=current.left;}return current;};const getQuerySourceInfo=cmsQuery=>{if(!cmsQuery){return{alias:null,data:null};}// Handle TWO query structures:\n// 1. WITHOUT reference fields: query.from.data and query.from.alias\n// 2. WITH reference fields: traverse nested .left levels to find data and alias\n//    (Framer adds a LEFT JOIN constraint for each reference field)\nif(cmsQuery.from?.constraint){// WITH reference fields - traverse to deepest level\nconst deepestFrom=getDeepestLeft(cmsQuery.from);// Both data and alias are on the same deepest node in the from chain\nreturn{alias:deepestFrom?.alias||deepestFrom?.collection||null,data:deepestFrom?.data||null};}// WITHOUT reference fields - standard path\nreturn{alias:cmsQuery.from?.alias||null,data:cmsQuery.from?.data||null};};// Internal helper to safely extract the CMS query from a collection slot\n// Supports both standard and Masonry CMS Collection structures, and falls back\n// to a recursive search because published output can wrap the query element\n// differently from preview/canvas.\nconst findQueryInNode=node=>{if(!node)return null;if(Array.isArray(node)){for(const child of node){const match=findQueryInNode(child);if(match)return match;}return null;}if(!node?.props)return null;if(node.props.query)return node.props.query;return findQueryInNode(node.props.children);};const getCmsQueryFromCollectionSlot=slot=>{const element=Array.isArray(slot)?slot[0]:slot;if(!element)return null;// Masonry-enabled structure: children.props.query\nconst masonryQuery=element?.props?.children?.props?.query;if(masonryQuery)return masonryQuery;// Standard structure: children.props.children.props.query\nconst regularQuery=element?.props?.children?.props?.children?.props?.query;if(regularQuery)return regularQuery;return findQueryInNode(element);};const getCanvasCollectionNodeInfo=slot=>{const element=Array.isArray(slot)?slot[0]:slot;const node=element?.props?.__node;if(!node)return null;const dataIdentifier=typeof node.dataIdentifier===\"string\"?node.dataIdentifier:null;const match=dataIdentifier?.match(/^local-module:(?:draftCollection|collection)\\/([^:]+):([^:]+)$/);return{dataIdentifier,collectionId:match?.[1]||null,localeId:match?.[2]||null,collectionLimit:typeof node.collectionLimit===\"number\"&&node.collectionLimit>0?node.collectionLimit:null,collectionFilters:node.collectionFilters??null,collectionOperator:typeof node.collectionOperator===\"string\"?node.collectionOperator:null,collectionOrder:node.collectionOrder??null,collectionPaginationPageSize:typeof node.collectionPaginationPageSize===\"number\"?node.collectionPaginationPageSize:null,collectionRepeatedItemId:typeof node.collectionRepeatedItemId===\"string\"?node.collectionRepeatedItemId:null,collectionReverse:typeof node.collectionReverse===\"boolean\"?node.collectionReverse:null,collectionStartOffset:typeof node.collectionStartOffset===\"number\"?node.collectionStartOffset:null};};// Exported helper so other components can safely read the CMS query\nexport const getCmsQueryFromSlot=slot=>{return getCmsQueryFromCollectionSlot(slot);};export const getCanvasCollectionInfo=slot=>{return getCanvasCollectionNodeInfo(slot);};export const getCollectionStoreKeyFromQuery=(cmsQuery,canvasInfo,manualStoreKey)=>{// If manual store key is provided and not \"auto\", use it\nif(manualStoreKey&&manualStoreKey.trim()!==\"\"&&manualStoreKey!==\"auto\"){return manualStoreKey.trim();}const{alias,data}=getQuerySourceInfo(cmsQuery);// Priority order for store key:\n// 1. CMS collection name/title from data\n// 2. Collection display name\n// 3. Alias as fallback\nconst storeKey=data?.name||data?.title||data?.displayName||alias||canvasInfo?.collectionId;return storeKey||null;};export const getCollectionInfoFromQuery=cmsQuery=>{if(!cmsQuery)return null;// Same resolution rules as getCollectionStoreKeyFromQuery:\n// resolve the real collection source whether Framer used a direct from clause\n// or a nested reference-field constraint chain.\nconst{alias,data}=getQuerySourceInfo(cmsQuery);return{collectionId:alias||\"\",collectionName:data?.displayName||\"\",query:cmsQuery,propertyControls:data?.propertyControls||{}};};// Helper to get store key for collection - prioritizes actual CMS collection name\nexport const getCollectionStoreKey=(collection,manualStoreKey)=>{const cmsQuery=getCmsQueryFromCollectionSlot(collection);const canvasInfo=getCanvasCollectionNodeInfo(collection);return getCollectionStoreKeyFromQuery(cmsQuery,canvasInfo,manualStoreKey);};// Helper to extract collection info from slot connection\nexport const getCollectionInfo=collection=>{const cmsQuery=getCmsQueryFromCollectionSlot(collection);return getCollectionInfoFromQuery(cmsQuery);};// Helper to get available fields from CMS with their types\nexport const getAvailableFilterFields=propertyControls=>{if(!propertyControls||typeof propertyControls!==\"object\"){return[];}return Object.entries(propertyControls).map(([key,control])=>({key,title:control.title||key,type:control.type||\"string\",options:control.options,optionTitles:control.optionTitles})).filter(field=>field.title&&field.type);};// Utility function to generate random strings\nexport function evGetRandomString(length=8){const chars=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";let result=\"\";for(let i=0;i<length;i++){result+=chars.charAt(Math.floor(Math.random()*chars.length));}return result;}export function shouldDebugCMSFilter(){if(typeof window===\"undefined\")return false;try{const url=new URL(window.location.href);if(url.searchParams.get(\"cmsFilterDebug\")===\"1\")return true;}catch{}try{if(window.localStorage?.getItem(\"cmsFilterDebug\")===\"1\")return true;}catch{}try{if(window.__CMS_FILTER_DEBUG__===true)return true;}catch{}return false;}export function debugCMSFilter(scope,payload){if(!shouldDebugCMSFilter())return;console.log(`[CMS Filter Debug] ${scope}`,payload);}export const getActiveSearchRules=state=>{const searchRules=Array.isArray(state?.searchRules)?state.searchRules:[];const validSearchRules=searchRules.filter(searchRule=>!!searchRule?.searchTerm?.trim()&&Array.isArray(searchRule?.searchFields)&&searchRule.searchFields.length>0);if(validSearchRules.length>0){return validSearchRules;}if(state?.searchTerm?.trim()&&Array.isArray(state?.searchFields)&&state.searchFields.length>0){return[{id:\"legacy-search\",componentId:\"legacy-search\",searchTerm:state.searchTerm,searchFields:state.searchFields,displayTitle:state.searchDisplayTitle}];}return[];};export const isPreview=RenderTarget.current()===RenderTarget.preview;export const isCanvas=RenderTarget.current()===RenderTarget.canvas;\nexport const __FramerMetadata__ = {\"exports\":{\"getCollectionInfoFromQuery\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCollectionStoreKey\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FilterStore\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCollectionRuntimeSnapshot\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isCanvas\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getAvailableFilterFields\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCollectionInfo\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"shouldDebugCMSFilter\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"setCollectionRuntimeSnapshot\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CanvasCollectionNodeInfo\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"debugCMSFilter\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getActiveSearchRules\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isPreview\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"evGetRandomString\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useCollectionStoreBinding\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCmsQueryFromSlot\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCollectionStoreKeyFromQuery\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CollectionRuntimeSnapshot\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCanvasCollectionInfo\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCollectionStore\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./store_management.map","// Query building utilities for CMS Collection\n// Extracted from CMSCollection.tsx for better modularity\n// Query building types\n// Helper to check if filter has valid value based on type\nexport const hasValidFilterValue=filter=>{const{value,operator}=filter;// Operators that don't need values\nif(operator===\"is_set\"||operator===\"is_not_set\"){return true;}// Handle different value types\nif(value===null||value===undefined){return false;}// For numeric comparison operators, validate that value can be converted to number\nconst numericOps=[\"greater_than\",\"less_than\",\"greater_than_or_equal\",\"less_than_or_equal\"];if(numericOps.includes(operator)){if(typeof value===\"number\")return!isNaN(value);if(typeof value===\"string\")return!isNaN(parseFloat(value));return false;}// For range filters, check both min and max\nif(operator===\"between\"&&typeof value===\"object\"){return value.min!==undefined&&!isNaN(value.min)||value.max!==undefined&&!isNaN(value.max);}// For arrays (multi-select), check length\nif(Array.isArray(value)){return value.length>0;}// For strings, check if not empty\nif(typeof value===\"string\"){return value.trim()!==\"\";}// For booleans and numbers, always valid\nreturn true;};// Helper to build search where clause - SIMPLIFIED: Always OR across fields\nexport const buildSearchWhereClause=(searchTerm,searchFields,collectionId,propertyControls)=>{if(!searchTerm||!searchTerm.trim()||searchFields.length===0){return null;}// Convert field titles to internal keys\nconst searchFieldKeys=searchFields.map(title=>{const field=Object.entries(propertyControls).find(([key,control])=>control.title?.toLowerCase()===title.toLowerCase());return field?field[0]:title;}).filter(Boolean);if(searchFieldKeys.length===0)return null;// Build search conditions - ALWAYS OR\nconst conditions=searchFieldKeys.map(fieldKey=>({arguments:[{collection:collectionId,name:fieldKey,type:\"Identifier\"},{type:\"LiteralValue\",value:searchTerm}],functionName:\"CONTAINS\",type:\"FunctionCall\"}));// Single condition\nif(conditions.length===1){return conditions[0];}// Multiple conditions with OR logic (simplified)\nlet whereClause={left:conditions[0],operator:\"or\",right:conditions[1],type:\"BinaryOperation\"};// Add remaining conditions with OR\nfor(let i=2;i<conditions.length;i++){whereClause={left:whereClause,operator:\"or\",right:conditions[i],type:\"BinaryOperation\"};}return whereClause;};export const hasValidSearchRule=searchRule=>{return!!searchRule?.searchTerm?.trim()&&Array.isArray(searchRule?.searchFields)&&searchRule.searchFields.length>0;};export const buildCombinedSearchWhereClause=(searchRules,collectionId,propertyControls)=>{const validSearchRules=(searchRules||[]).filter(hasValidSearchRule);if(validSearchRules.length===0){return null;}const conditions=validSearchRules.map(searchRule=>buildSearchWhereClause(searchRule.searchTerm,searchRule.searchFields,collectionId,propertyControls)).filter(Boolean);if(conditions.length===0){return null;}if(conditions.length===1){return conditions[0];}let combinedWhere={left:conditions[0],operator:\"and\",right:conditions[1],type:\"BinaryOperation\"};for(let i=2;i<conditions.length;i++){combinedWhere={left:combinedWhere,operator:\"and\",right:conditions[i],type:\"BinaryOperation\"};}return combinedWhere;};// ============================================================================\n// MULTI-REFERENCE FILTER SUPPORT (FLAT_ARRAY Pattern)\n// ============================================================================\n/**\n * Builds a FLAT_ARRAY condition for multi-reference filtering\n * Pattern: tagId IN FLAT_ARRAY(SELECT id FROM Tags WHERE id IN Template.tags)\n */function buildFlatArrayCondition(mainAlias,refFieldName,refCollectionAlias,refCollectionData,tagId){return{type:\"BinaryOperation\",left:{type:\"LiteralValue\",value:tagId},operator:\"in\",right:{type:\"FunctionCall\",functionName:\"FLAT_ARRAY\",arguments:[{type:\"Select\",from:{alias:refCollectionAlias,data:refCollectionData,type:\"Collection\"},select:[{collection:refCollectionAlias,name:\"id\",type:\"Identifier\"}],where:{type:\"BinaryOperation\",left:{collection:refCollectionAlias,name:\"id\",type:\"Identifier\"},operator:\"in\",right:{collection:mainAlias,name:refFieldName,type:\"Identifier\"}},orderBy:[{type:\"FunctionCall\",functionName:\"INDEX_OF\",arguments:[{collection:mainAlias,name:refFieldName,type:\"Identifier\"},{collection:refCollectionAlias,name:\"id\",type:\"Identifier\"}]}]}]}};}/**\n * Builds multi-reference query from filter rule\n */function buildMultiReferenceQueryFromFilter(filter,mainAlias,refFieldName,refCollectionAlias,refCollectionData){const values=Array.isArray(filter.value)?filter.value:[filter.value];if(values.length===0)return null;// Build FLAT_ARRAY pattern for first tag\nlet query=buildFlatArrayCondition(mainAlias,refFieldName,refCollectionAlias,refCollectionData,values[0]);// Combine additional tags with AND or OR\nfor(let i=1;i<values.length;i++){query={type:\"BinaryOperation\",left:query,operator:filter.logic===\"All\"?\"and\":\"or\",right:buildFlatArrayCondition(mainAlias,refFieldName,refCollectionAlias,refCollectionData,values[i])};}return query;}// Helper to build filter where clause for a single filter\nexport const buildFilterWhereClause=(filter,collectionId,propertyControls)=>{if(!hasValidFilterValue(filter)){return null;}// Handle multi-reference filters (FLAT_ARRAY pattern)\n// Multi-reference filter - uses FLAT_ARRAY pattern with improved query structure\nif(filter.type===\"multi-ref\"){const refFieldKey=filter.refFieldName||filter.field;const refCollectionAlias=filter.refCollectionId// This now contains the actual alias\n;if(!refCollectionAlias||!filter.refCollectionData){console.error(\"Multi-reference filter missing refCollectionId or refCollectionData:\",filter);return null;}return buildMultiReferenceQueryFromFilter(filter,collectionId,refFieldKey,refCollectionAlias,filter.refCollectionData// Pass the stored collection data\n);}// Convert field title to internal key\nconst fieldKey=Object.entries(propertyControls).find(([key,control])=>control.title?.toLowerCase()===filter.field.toLowerCase())?.[0]||filter.field;const{operator,value}=filter;// Handle is_set and is_not_set operators\nif(operator===\"is_set\"){return{left:{left:{collection:collectionId,name:fieldKey,type:\"Identifier\"},operator:\"!=\",right:{type:\"LiteralValue\",value:null},type:\"BinaryOperation\"},operator:\"and\",right:{left:{collection:collectionId,name:fieldKey,type:\"Identifier\"},operator:\"!=\",right:{type:\"LiteralValue\",value:\"\"},type:\"BinaryOperation\"},type:\"BinaryOperation\"};}if(operator===\"is_not_set\"){return{operator:\"not\",type:\"UnaryOperation\",value:{left:{left:{collection:collectionId,name:fieldKey,type:\"Identifier\"},operator:\"!=\",right:{type:\"LiteralValue\",value:null},type:\"BinaryOperation\"},operator:\"and\",right:{left:{collection:collectionId,name:fieldKey,type:\"Identifier\"},operator:\"!=\",right:{type:\"LiteralValue\",value:\"\"},type:\"BinaryOperation\"},type:\"BinaryOperation\"}};}// Handle range (between) operator\nif(operator===\"between\"&&typeof value===\"object\"){const conditions=[];if(value.min!==undefined&&!isNaN(value.min)){conditions.push({left:{collection:collectionId,name:fieldKey,type:\"Identifier\"},operator:\">=\",right:{type:\"LiteralValue\",value:value.min},type:\"BinaryOperation\"});}if(value.max!==undefined&&!isNaN(value.max)){conditions.push({left:{collection:collectionId,name:fieldKey,type:\"Identifier\"},operator:\"<=\",right:{type:\"LiteralValue\",value:value.max},type:\"BinaryOperation\"});}if(conditions.length===0)return null;if(conditions.length===1)return conditions[0];return{left:conditions[0],operator:\"and\",right:conditions[1],type:\"BinaryOperation\"};}// NOTE: Array values (multi-select) are handled by buildMultiValueFilterClause()\n// which is called from buildFiltersWhereClause(). This ensures all operators\n// (contains, equals, starts_with, etc.) are properly respected for arrays.\n// The early array handler that was here (lines 424-459) was removed because it\n// hardcoded operator \"==\" and ignored the actual operator parameter.\n// Handle toggle special operators\nif(filter.type===\"toggle\"){// Determine if we need to invert the logic based on config\nconst shouldInvert=filter.config?.toggleInverse===true;// Tri-state support: Check if toggle is in OFF state (value === false)\n// When OFF in tri-state mode, we need to invert the query result\nconst isTriStateOff=value===false;// Build base query\nlet baseQuery;switch(operator){case\"is_enabled\":baseQuery={left:{collection:collectionId,name:fieldKey,type:\"Identifier\"},operator:shouldInvert?\"!=\":\"==\",right:{type:\"LiteralValue\",value:true},type:\"BinaryOperation\"};break;case\"is_disabled\":baseQuery={left:{collection:collectionId,name:fieldKey,type:\"Identifier\"},operator:shouldInvert?\"!=\":\"==\",right:{type:\"LiteralValue\",value:false},type:\"BinaryOperation\"};break;case\"has_value\":baseQuery={left:{collection:collectionId,name:fieldKey,type:\"Identifier\"},operator:shouldInvert?\"<=\":\">\",right:{type:\"LiteralValue\",value:0},type:\"BinaryOperation\"};break;case\"is_empty\":baseQuery={left:{collection:collectionId,name:fieldKey,type:\"Identifier\"},operator:shouldInvert?\"!=\":\"==\",right:{type:\"LiteralValue\",value:0},type:\"BinaryOperation\"};break;}// If tri-state OFF, wrap base query in NOT operator to invert results\nif(isTriStateOff&&baseQuery){return{operator:\"not\",type:\"UnaryOperation\",value:baseQuery};}return baseQuery;}// Handle text search functions\nif(operator===\"contains\"){return{arguments:[{collection:collectionId,name:fieldKey,type:\"Identifier\"},{type:\"LiteralValue\",value:value}],functionName:\"CONTAINS\",type:\"FunctionCall\"};}if(operator===\"starts_with\"){return{arguments:[{collection:collectionId,name:fieldKey,type:\"Identifier\"},{type:\"LiteralValue\",value:value}],functionName:\"STARTS_WITH\",type:\"FunctionCall\"};}if(operator===\"ends_with\"){return{arguments:[{collection:collectionId,name:fieldKey,type:\"Identifier\"},{type:\"LiteralValue\",value:value}],functionName:\"ENDS_WITH\",type:\"FunctionCall\"};}// Handle negated contains\nif(operator===\"not_contains\"){return{operator:\"not\",type:\"UnaryOperation\",value:{arguments:[{collection:collectionId,name:fieldKey,type:\"Identifier\"},{type:\"LiteralValue\",value:value}],functionName:\"CONTAINS\",type:\"FunctionCall\"}};}// Handle comparison operators\nconst operatorMap={equals:\"==\",not_equals:\"!=\",greater_than:\">\",less_than:\"<\",greater_than_or_equal:\">=\",less_than_or_equal:\"<=\"};const mappedOperator=operatorMap[operator];if(mappedOperator){return{left:{collection:collectionId,name:fieldKey,type:\"Identifier\"},operator:mappedOperator,right:{type:\"LiteralValue\",value:value},type:\"BinaryOperation\"};}return null;};// Helper to build filters where clause - FIXED: Use hierarchical logic system\nexport const buildFiltersWhereClause=(filters,collectionId,propertyControls,globalLogic,debugMode=false)=>{const validFilters=filters.filter(hasValidFilterValue);if(validFilters.length===0){return null;}// Group filters by component and builder logic\nconst filtersByComponent=new Map;validFilters.forEach(filter=>{const key=`${filter.componentId}-${filter.builderLogic}`;if(!filtersByComponent.has(key)){filtersByComponent.set(key,[]);}filtersByComponent.get(key).push(filter);});// Build conditions for each component group\nconst componentConditions=[];for(const[key,componentFilters]of filtersByComponent){const[componentId,builderLogic]=key.split(\"-\");// Build individual filter conditions within this component\nconst filterConditions=componentFilters.map(filter=>{// IMPORTANT: Multi-reference filters MUST use buildFilterWhereClause\n// even when they have multiple values (array), because they need FLAT_ARRAY pattern\nif(filter.type===\"multi-ref\"){return buildFilterWhereClause(filter,collectionId,propertyControls);}// For other multi-value filters (arrays), respect individual filter logic\n// BUGFIX: Changed from length > 1 to length > 0 to handle single-value arrays\n// This ensures that dropdown filters with \"Allow Multiple: Yes\" properly\n// use buildMultiValueFilterClause which respects the operator (contains, etc.)\n// instead of the broken early array handler that hardcoded \"==\"\nif(Array.isArray(filter.value)&&filter.value.length>0){return buildMultiValueFilterClause(filter,collectionId,propertyControls);}return buildFilterWhereClause(filter,collectionId,propertyControls);}).filter(Boolean);if(filterConditions.length===0)continue;if(filterConditions.length===1){componentConditions.push(filterConditions[0]);continue;}// Combine filters within component using builder logic\nconst builderOperator=builderLogic===\"All\"?\"and\":\"or\";let componentCombined={left:filterConditions[0],operator:builderOperator,right:filterConditions[1],type:\"BinaryOperation\"};for(let i=2;i<filterConditions.length;i++){componentCombined={left:componentCombined,operator:builderOperator,right:filterConditions[i],type:\"BinaryOperation\"};}componentConditions.push(componentCombined);}if(componentConditions.length===0){return null;}if(componentConditions.length===1){return componentConditions[0];}// Combine component conditions using global logic\nconst globalOperator=globalLogic===\"All\"?\"and\":\"or\";let globalCombined={left:componentConditions[0],operator:globalOperator,right:componentConditions[1],type:\"BinaryOperation\"};for(let i=2;i<componentConditions.length;i++){globalCombined={left:globalCombined,operator:globalOperator,right:componentConditions[i],type:\"BinaryOperation\"};}// Keep essential debug info for support\nif(debugMode&&filters.length>3){console.log(`🔍 Complex filter query: ${filters.length} filters with ${globalLogic} logic`);}return globalCombined;};// Helper to build multi-value filter clause respecting individual filter logic\nconst buildMultiValueFilterClause=(filter,collectionId,propertyControls)=>{if(!Array.isArray(filter.value)||filter.value.length===0){return null;}// Convert field title to internal key\nconst fieldKey=Object.entries(propertyControls).find(([key,control])=>control.title?.toLowerCase()===filter.field.toLowerCase())?.[0]||filter.field;const{operator}=filter;// Build conditions for each value\nconst conditions=filter.value.map(val=>{const baseIdentifier={collection:collectionId,name:fieldKey,type:\"Identifier\"};switch(operator){case\"contains\":return{arguments:[baseIdentifier,{type:\"LiteralValue\",value:val}],functionName:\"CONTAINS\",type:\"FunctionCall\"};case\"starts_with\":return{arguments:[baseIdentifier,{type:\"LiteralValue\",value:val}],functionName:\"STARTS_WITH\",type:\"FunctionCall\"};case\"ends_with\":return{arguments:[baseIdentifier,{type:\"LiteralValue\",value:val}],functionName:\"ENDS_WITH\",type:\"FunctionCall\"};case\"not_contains\":return{operator:\"not\",type:\"UnaryOperation\",value:{arguments:[baseIdentifier,{type:\"LiteralValue\",value:val}],functionName:\"CONTAINS\",type:\"FunctionCall\"}};case\"equals\":return{left:baseIdentifier,operator:\"==\",right:{type:\"LiteralValue\",value:val},type:\"BinaryOperation\"};case\"not_equals\":return{left:baseIdentifier,operator:\"!=\",right:{type:\"LiteralValue\",value:val},type:\"BinaryOperation\"};case\"greater_than\":return{left:baseIdentifier,operator:\">\",right:{type:\"LiteralValue\",value:val},type:\"BinaryOperation\"};case\"less_than\":return{left:baseIdentifier,operator:\"<\",right:{type:\"LiteralValue\",value:val},type:\"BinaryOperation\"};case\"greater_than_or_equal\":return{left:baseIdentifier,operator:\">=\",right:{type:\"LiteralValue\",value:val},type:\"BinaryOperation\"};case\"less_than_or_equal\":return{left:baseIdentifier,operator:\"<=\",right:{type:\"LiteralValue\",value:val},type:\"BinaryOperation\"};default:// Fallback to equality\nreturn{left:baseIdentifier,operator:\"==\",right:{type:\"LiteralValue\",value:val},type:\"BinaryOperation\"};}});if(conditions.length===1){return conditions[0];}// Combine using individual filter logic - SPECIAL CASE: not_contains always uses AND\nconst filterOperator=filter.operator===\"not_contains\"?\"and\":filter.logic===\"All\"?\"and\":\"or\";let combined={left:conditions[0],operator:filterOperator,right:conditions[1],type:\"BinaryOperation\"};for(let i=2;i<conditions.length;i++){combined={left:combined,operator:filterOperator,right:conditions[i],type:\"BinaryOperation\"};}return combined;};// Helper to combine existing where clause with new filter where clause\nexport const combineWhereClauses=(existing,additional,operator=\"and\")=>{if(!existing&&!additional)return null;if(!existing)return additional;if(!additional)return existing;return{left:existing,operator:operator,right:additional,type:\"BinaryOperation\"};};// Helper to build orderBy clause from sort state\nexport const buildOrderByClause=(sortState,propertyControls,collectionId)=>{if(!sortState||sortState.length===0){return[];}const orderBy=sortState.map((sort,index)=>{// Convert field title to internal key\nconst fieldKey=Object.entries(propertyControls).find(([key,control])=>control.title?.toLowerCase()===sort.field.toLowerCase())?.[0]||sort.field;return{collection:collectionId,name:fieldKey,direction:sort.direction,type:\"Identifier\"};});return orderBy;};\nexport const __FramerMetadata__ = {\"exports\":{\"SearchRule\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FunctionCall\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LiteralValue\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"buildSearchWhereClause\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"buildOrderByClause\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"combineWhereClauses\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"buildFiltersWhereClause\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Identifier\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"UnaryOperation\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"buildFilterWhereClause\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"buildCombinedSearchWhereClause\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BinaryOperation\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"hasValidFilterValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FilterRule\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"hasValidSearchRule\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./query_builders.map","// Variant override utilities for CMS Collection\n// Extracted for better readability and maintainability\nimport{cloneElement}from\"react\";// Get component name from React element\nexport const getComponentName=element=>{if(!element?.type)return null;// Try displayName first, then name, then fallback\nreturn element.type.displayName||element.type.name||element.type.constructor?.name||\"Unknown\";};/**\n * Recursively process React tree and apply variant overrides\n * @param element - React element to process\n * @param variantOverrides - Array of variant override configurations\n * @param depth - Current recursion depth (for debugging)\n * @returns Processed React element with variant overrides applied\n */export const processVariantOverrides=(element,variantOverrides,depth=0)=>{// Return non-object elements as-is\nif(!element||typeof element!==\"object\"){return element;}// Handle arrays\nif(Array.isArray(element)){return element.map(child=>processVariantOverrides(child,variantOverrides,depth));}// Process React elements\nif(element.type&&element.props){const componentName=getComponentName(element);// Check if this component should have its variant overridden\nconst override=variantOverrides.find(vo=>vo.componentName.toLowerCase().trim()===componentName?.toLowerCase().trim());let newProps={...element.props};// ONLY change variant if we found a matching override\nif(override){newProps.variant=override.variantName;}// Always process children recursively\nif(newProps.children){if(Array.isArray(newProps.children)){newProps.children=newProps.children.map(child=>processVariantOverrides(child,variantOverrides,depth+1));}else{newProps.children=processVariantOverrides(newProps.children,variantOverrides,depth+1);}}return /*#__PURE__*/cloneElement(element,newProps);}return element;};/**\n * Wrap CMS Item children function with variant override logic\n * @param originalChildrenFn - Original children render function from CMS Item\n * @param variantOverrides - Array of variant override configurations\n * @returns Wrapped function that applies variant overrides\n */export const wrapWithVariantOverrides=(originalChildrenFn,variantOverrides)=>{return(collection,paginationInfo,loadMore)=>{// Call original function to get JSX\nconst originalJSX=originalChildrenFn(collection,paginationInfo,loadMore);// Process the JSX tree and apply variant overrides\nreturn processVariantOverrides(originalJSX,variantOverrides);};};\nexport const __FramerMetadata__ = {\"exports\":{\"getComponentName\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"wrapWithVariantOverrides\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"VariantOverride\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"processVariantOverrides\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./variant_utils.map","// Masonry override utilities for CMS Collection\n// Allows overriding trackCount and rowGap props on Framer's masonry layout\nimport{cloneElement}from\"react\";/**\n * Check if a component is likely the masonry layout component\n * Framer uses withColumnMasonryLayout HOC which adds specific props\n */const isMasonryComponent=element=>{if(!element?.props)return false;// Check for masonry-specific props that only exist on MotionDivWithColumnMasonryLayout\nreturn\"columnMasonryLayoutEnabled\"in element.props||\"trackCount\"in element.props&&\"rowGap\"in element.props&&\"parentIsDataRepeater\"in element.props;};/**\n * Recursively process React tree and apply masonry overrides\n * @param element - React element to process\n * @param overrides - Masonry override configuration\n * @param depth - Current recursion depth (for debugging)\n * @returns Processed React element with masonry overrides applied\n */export const processMasonryOverrides=(element,overrides,depth=0)=>{// Return non-object elements as-is\nif(!element||typeof element!==\"object\"){return element;}// Handle arrays\nif(Array.isArray(element)){return element.map(child=>processMasonryOverrides(child,overrides,depth));}// Process React elements\nif(element.type&&element.props){let newProps={...element.props};// Check if this is the masonry component and apply overrides\nif(isMasonryComponent(element)){if(overrides.disableMasonry){// Standard mode: disable masonry entirely\nnewProps.columnMasonryLayoutEnabled=false;}else{// Masonry mode: override trackCount and rowGap\nif(overrides.trackCount!==undefined&&overrides.trackCount>0){newProps.trackCount=overrides.trackCount;}if(overrides.rowGap!==undefined&&overrides.rowGap>=0){newProps.rowGap=overrides.rowGap;}}}// Always process children recursively\nif(newProps.children){if(Array.isArray(newProps.children)){newProps.children=newProps.children.map(child=>processMasonryOverrides(child,overrides,depth+1));}else if(typeof newProps.children===\"function\"){// Wrap function children (like QueryData's children callback)\nconst originalFn=newProps.children;newProps.children=(...args)=>{const result=originalFn(...args);return processMasonryOverrides(result,overrides,depth+1);};}else{newProps.children=processMasonryOverrides(newProps.children,overrides,depth+1);}}return /*#__PURE__*/cloneElement(element,newProps);}return element;};/**\n * Wrap QueryData children function with masonry override logic\n * @param originalChildrenFn - Original children render function from QueryData\n * @param overrides - Masonry override configuration\n * @returns Wrapped function that applies masonry overrides\n */export const wrapWithMasonryOverrides=(originalChildrenFn,overrides)=>{return(collection,paginationInfo,loadMore)=>{// Call original function to get JSX\nconst originalJSX=originalChildrenFn(collection,paginationInfo,loadMore);// Process the JSX tree and apply masonry overrides\nreturn processMasonryOverrides(originalJSX,overrides);};};\nexport const __FramerMetadata__ = {\"exports\":{\"MasonryOverrides\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"processMasonryOverrides\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"wrapWithMasonryOverrides\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./masonry_utils.map","const SEARCH_PARAM_BASE=\"search\";const SORT_PARAM_BASE=\"sort\";export function slugifyParamSegment(value){return(value||\"\").trim().toLowerCase().replace(/[^a-z0-9]+/g,\"-\").replace(/^-+|-+$/g,\"\");}export function buildURLParamKey(name,prefix=\"\"){const slug=slugifyParamSegment(name);const normalizedPrefix=slugifyParamSegment(prefix);if(!slug)return normalizedPrefix;if(!normalizedPrefix)return slug;return`${normalizedPrefix}-${slug}`;}export function getSearchParamKey(prefix=\"\"){return buildURLParamKey(SEARCH_PARAM_BASE,prefix);}export function getScopedSearchParamKey(searchFields=[],displayTitle=\"\",prefix=\"\"){const fieldKey=slugifyParamSegment(searchFields[0]||\"\");const titleKey=slugifyParamSegment(displayTitle||\"\");const scopedName=fieldKey||titleKey||SEARCH_PARAM_BASE;return buildURLParamKey(scopedName,prefix);}export function getSortParamKey(prefix=\"\"){return buildURLParamKey(SORT_PARAM_BASE,prefix);}export function getCurrentURLParams(){if(typeof window===\"undefined\")return new URLSearchParams;return new URLSearchParams(window.location.search);}export function readURLParam(paramKey,searchParams=getCurrentURLParams()){if(!paramKey)return null;return searchParams.get(paramKey);}export function readURLParamValues(paramKey,searchParams=getCurrentURLParams()){const rawValue=readURLParam(paramKey,searchParams);if(!rawValue)return[];const uniqueValues=new Set;rawValue.split(\",\").map(value=>decodeURIComponent(value).trim()).filter(Boolean).forEach(value=>uniqueValues.add(value));return Array.from(uniqueValues);}export function hasRelevantURLParams(prefix=\"\"){if(typeof window===\"undefined\")return false;const params=new URLSearchParams(window.location.search);const normalizedPrefix=slugifyParamSegment(prefix);const prefixedStart=normalizedPrefix?`${normalizedPrefix}-`:\"\";let isRelevant=false;params.forEach((_,key)=>{if(key===getSearchParamKey(prefix)||key===getSortParamKey(prefix)){isRelevant=true;return;}if(normalizedPrefix){if(key.startsWith(prefixedStart)){isRelevant=true;}return;}if(key!==\"cmsFilterDebug\"){isRelevant=true;}});return isRelevant;}function dedupeAndSortValues(values){return Array.from(new Set(values.map(value=>String(value).trim()).filter(Boolean))).sort((a,b)=>a.localeCompare(b));}function getSerializableFilterValues(filter){const rawValues=Array.isArray(filter.value)?filter.value:[filter.value];const valueTitles=filter.valueTitles||{};return rawValues.map(value=>{if(value===null||value===undefined)return\"\";const rawKey=String(value);const displayValue=valueTitles[rawKey];return(displayValue??rawKey).trim();}).filter(Boolean);}export function canSerializeFilterToURL(filter){const{type,operator,value}=filter;const supportedOperators=new Set([\"equals\",\"includes\"]);const supportedTypes=new Set([\"dropdown\",\"enum\",\"cms-enum\",\"single-ref\",\"multi-ref\"]);if(!type||!supportedTypes.has(type))return false;if(!operator||!supportedOperators.has(operator))return false;if(Array.isArray(value)){return value.every(entry=>typeof entry===\"string\"||typeof entry===\"number\");}return typeof value===\"string\"||typeof value===\"number\";}export function serializeStoreToURLState(state,prefix=\"\"){const params=new Map;const managedKeys=new Set;const filterBuckets=new Map;for(const filter of state?.filters||[]){const paramName=filter.urlParamName||filter.field||filter.displayTitle||\"\";const paramKey=buildURLParamKey(paramName,prefix);if(!paramKey)continue;managedKeys.add(paramKey);if(!canSerializeFilterToURL(filter)){continue;}const signature=JSON.stringify({type:filter.type,operator:filter.operator});const existingBucket=filterBuckets.get(paramKey)||{values:[],signatures:new Set};existingBucket.signatures.add(signature);existingBucket.values.push(...getSerializableFilterValues(filter));filterBuckets.set(paramKey,existingBucket);}filterBuckets.forEach((bucket,paramKey)=>{if(bucket.signatures.size>1){return;}const values=dedupeAndSortValues(bucket.values);if(values.length===0)return;params.set(paramKey,values.join(\",\"));});managedKeys.add(getSearchParamKey(prefix));const activeSearchRules=(state?.searchRules||[]).filter(searchRule=>!!searchRule?.searchTerm?.trim());if(activeSearchRules.length===0){const legacySearchValue=state?.searchTerm||\"\";if(legacySearchValue.trim()){params.set(getSearchParamKey(prefix),legacySearchValue.trim());}}else{activeSearchRules.forEach(searchRule=>{const searchParamKey=getScopedSearchParamKey(searchRule.searchFields||[],searchRule.displayTitle||\"\",prefix);managedKeys.add(searchParamKey);params.set(searchParamKey,searchRule.searchTerm.trim());});}const sortParamKey=getSortParamKey(prefix);managedKeys.add(sortParamKey);const primarySort=state?.sort?.[0];if(primarySort?.field&&primarySort?.direction){params.set(sortParamKey,`${slugifyParamSegment(primarySort.field)}:${primarySort.direction}`);}return{params,managedKeys:Array.from(managedKeys)};}export function buildUpdatedURLSearchParams(currentParams,urlState,previousManagedKeys=[]){const nextParams=new URLSearchParams(currentParams.toString());const keysToClear=new Set([...previousManagedKeys,...urlState.managedKeys]);keysToClear.forEach(key=>{if(key)nextParams.delete(key);});urlState.params.forEach((value,key)=>{nextParams.set(key,value);});return nextParams;}export function updateBrowserURL(params){if(typeof window===\"undefined\")return;const url=new URL(window.location.href);const nextSearch=params.toString();const currentSearch=url.search.startsWith(\"?\")?url.search.slice(1):url.search;if(currentSearch===nextSearch)return;url.search=nextSearch;window.history.replaceState({},\"\",url.toString());}export function generateURLParams(state,prefix=\"\"){const serializedState=serializeStoreToURLState(state,prefix);const params=new URLSearchParams;serializedState.params.forEach((value,key)=>{params.set(key,value);});return params;}export function parseURLParams(searchParams,prefix=\"\",availableFields=new Map){const parsedState={searchTerm:\"\",filters:[],sort:undefined};const searchTerm=searchParams.get(getSearchParamKey(prefix))||\"\";if(searchTerm.trim()){parsedState.searchTerm=searchTerm.trim();}const sortValue=searchParams.get(getSortParamKey(prefix))||\"\";if(sortValue.includes(\":\")){const[field,direction]=sortValue.split(\":\");if(field&&(direction===\"asc\"||direction===\"desc\")){parsedState.sort=[{id:\"url-sort\",componentId:\"url-sort\",field,direction}];}}const filters=[];searchParams.forEach((value,key)=>{if(key===getSearchParamKey(prefix)||key===getSortParamKey(prefix)){return;}const normalizedPrefix=slugifyParamSegment(prefix);if(normalizedPrefix&&!key.startsWith(`${normalizedPrefix}-`)){return;}const rawField=normalizedPrefix?key.slice(`${normalizedPrefix}-`.length):key;const availableFieldEntry=Array.from(availableFields.entries()).find(([fieldName])=>slugifyParamSegment(fieldName)===rawField);const fieldName=availableFieldEntry?.[0]||rawField;const fieldType=availableFieldEntry?.[1]?.type||\"dropdown\";const values=value.split(\",\").map(entry=>entry.trim()).filter(Boolean);if(values.length===0)return;filters.push({id:`url-${fieldName}`,field:fieldName,displayTitle:fieldName,type:fieldType,operator:fieldType===\"multi-ref\"?\"includes\":\"equals\",value:values.length===1?values[0]:values,logic:\"Any\",builderLogic:\"Any\",componentId:\"url-sync\"});});parsedState.filters=filters;return parsedState;}export function buildAvailableFieldsMap(propertyControls){const fieldsMap=new Map;if(!propertyControls||typeof propertyControls!==\"object\"){return fieldsMap;}Object.entries(propertyControls).forEach(([key,control])=>{fieldsMap.set(control.title||key,{type:control.type||\"dropdown\",options:control.options});});return fieldsMap;}export function createDebouncedURLUpdate(delay=250){let timeoutId=null;return function(params){if(timeoutId){clearTimeout(timeoutId);}timeoutId=setTimeout(()=>{updateBrowserURL(params);timeoutId=null;},delay);};}export function hasURLParams(prefix=\"\"){return hasRelevantURLParams(prefix);}\nexport const __FramerMetadata__ = {\"exports\":{\"readURLParamValues\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"hasURLParams\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"updateBrowserURL\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getSearchParamKey\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"serializeStoreToURLState\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"buildURLParamKey\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"slugifyParamSegment\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"canSerializeFilterToURL\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"readURLParam\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getScopedSearchParamKey\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"parseURLParams\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"buildUpdatedURLSearchParams\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"generateURLParams\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"buildAvailableFieldsMap\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCurrentURLParams\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"hasRelevantURLParams\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getSortParamKey\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"createDebouncedURLUpdate\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./url_sync.map","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useEffect,useRef,useMemo,useState,cloneElement}from\"react\";import{addPropertyControls,ControlType,RenderTarget,// @ts-ignore-next-line\nuseQueryData}from\"framer\";import{useCollectionStoreBinding,getCollectionStoreKey,getCollectionInfo,getCmsQueryFromSlot,evGetRandomString,debugCMSFilter,setCollectionRuntimeSnapshot,getActiveSearchRules}from\"https://framerusercontent.com/modules/2VZikWBxCagm4nJReNjX/PfyILngDXp5cnNZmDCPc/store_management.js\";import{buildCombinedSearchWhereClause,buildFiltersWhereClause,combineWhereClauses,buildOrderByClause}from\"https://framerusercontent.com/modules/jM8jD1GlrCxD96rrTGLC/Nl6KtWGdzqche9IhSAhu/query_builders.js\";import{wrapWithVariantOverrides,processVariantOverrides}from\"https://framerusercontent.com/modules/0ZtPI0zMKW1Pn08h8oa0/5XWhkGyDrlgVREAckeNg/variant_utils.js\";import{processMasonryOverrides}from\"https://framerusercontent.com/modules/Bd2ZGjxd3wA16PORsZcM/EfL0hu08hDJCvOSVfoZt/masonry_utils.js\";import{buildUpdatedURLSearchParams,getCurrentURLParams,hasRelevantURLParams,serializeStoreToURLState,updateBrowserURL}from\"https://framerusercontent.com/modules/btKadHcwepCes5ME1dWi/1oPmQbILL9BfunIfeUb3/url_sync.js\";// Hook to get query count\nfunction useQueryCount(query,debugMode=false){if(debugMode){console.log(\"🎣 useQueryCount CALLED with:\",{hasQuery:!!query,hasFrom:!!query?.from,queryWhere:query?.where});}if(!query||!query.from){if(debugMode){console.log(\"❌ useQueryCount early return - no query or no from\");}return 0;}const countQuery={...query,select:[]};const collection=useQueryData(countQuery);if(debugMode){console.log(\"📊 useQueryCount result:\",{queryWhere:query?.where,countQueryWhere:countQuery?.where,resultLength:collection?.length});}return collection.length;}function resolveFieldKey(fieldName,propertyControls){const normalizedFieldName=fieldName?.trim().toLowerCase();if(!normalizedFieldName)return null;const matchedField=Object.entries(propertyControls||{}).find(([key,control])=>key?.toLowerCase().trim()===normalizedFieldName||control.title?.toLowerCase().trim()===normalizedFieldName)?.[0]||null;if(matchedField)return matchedField;const systemFieldAliases={created:\"createdAt\",\"created date\":\"createdAt\",edited:\"updatedAt\",\"edited date\":\"updatedAt\",updated:\"updatedAt\",\"updated date\":\"updatedAt\",modified:\"updatedAt\",\"modified date\":\"updatedAt\"};return systemFieldAliases[normalizedFieldName]||fieldName;}function getTodayUTCDateString(){const now=new Date;const todayUTC=new Date(Date.UTC(now.getUTCFullYear(),now.getUTCMonth(),now.getUTCDate()));return todayUTC.toISOString().slice(0,10);}function getStartOfDayISOString(dateInput){const normalized=dateInput?.trim();if(!normalized)return\"\";// If a full timestamp is already provided, keep it.\nif(normalized.includes(\"T\")){return normalized;}return`${normalized}T00:00:00.000Z`;}/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerDisableUnlink\n */export default function CMSCollection(props){const{collection,emptyState,collectionWidth=\"100%\",overflow=false,emptyStateWidth=\"100%\",filterLogic,storeKey,variantOverrides=[],urlSync=false,urlPrefix=\"\",layoutToggle=false,responsiveMasonry=false,layoutDisplay=true,flexDirection=\"horizontal\",justifyContent=\"center\",alignRow=\"flex-start\",alignColumn=\"flex-start\",gridColumns=3,gridRows=0,gridAutoRows=\"minmax(200px, auto)\",flexWrap=false,gapRow=14,gapX=16,gapY=16,masonryColumns=0,masonryGap=16,debugMode=false,style,showOnlyAfterToday=false,postDateField=\"Created\",useCustomCutoffDate=false,cutoffDate=\"\",fallback={text:\"No items found\",font:{fontSize:16,lineHeight:\"1.5em\"},backgroundColor:\"transparent\",padding:40,borderRadius:\"0px\"},id}=props;// Extract fallback settings with defaults\nconst fallbackText=fallback?.text||\"No items found\";const fallbackFont=fallback?.font||{fontSize:16,lineHeight:\"1.5em\"};const fallbackBackgroundColor=fallback?.backgroundColor||\"transparent\";const fallbackPadding=fallback?.padding??40;const fallbackBorderRadius=fallback?.borderRadius??\"0px\";// Detect render mode\nconst current=RenderTarget.current();const isCanvas=current===RenderTarget.canvas;// Keep the generated class stable for the lifetime of the component.\n// Re-generating it on every page change adds extra DOM/style churn on top\n// of the query update that Framer already has to process.\nconst generatedIdRef=useRef(id||evGetRandomString());const uniqueClassName=`cms-collection-${generatedIdRef.current}`;// Get store key for this collection\nconst actualStoreKey=getCollectionStoreKey(collection,storeKey);// Extract collection info from slot connection\nconst collectionInfo=useMemo(()=>getCollectionInfo(collection),[collection]);// Always subscribe to a store so slot connection changes don't alter hook order.\nconst{state,setState}=useCollectionStoreBinding(actualStoreKey,generatedIdRef.current);const activeSearchRules=useMemo(()=>getActiveSearchRules(state),[state]);const previousManagedURLKeysRef=useRef([]);const previousURLSignatureRef=useRef(\"\");const registrationTimeoutRef=useRef(null);const[urlGateState,setURLGateState]=useState(urlSync?\"checking\":\"ready\");useEffect(()=>{if(!setState)return;const relevantParams=!isCanvas&&urlSync&&hasRelevantURLParams(urlPrefix);setState(prevState=>({...prevState,urlSync:{configInitialized:true,enabled:urlSync,prefix:urlPrefix,hasRelevantParams:relevantParams,registrationClosed:!relevantParams,knownParamKeys:prevState?.urlSync?.knownParamKeys||[],pendingComponentIds:relevantParams?prevState?.urlSync?.pendingComponentIds||[]:[],readyComponentIds:relevantParams?prevState?.urlSync?.readyComponentIds||[]:[]}}));setURLGateState(urlSync?\"checking\":\"ready\");if(registrationTimeoutRef.current){clearTimeout(registrationTimeoutRef.current);registrationTimeoutRef.current=null;}if(relevantParams){registrationTimeoutRef.current=setTimeout(()=>{setState(prevState=>({...prevState,urlSync:{configInitialized:true,enabled:true,prefix:urlPrefix,hasRelevantParams:true,registrationClosed:true,knownParamKeys:prevState?.urlSync?.knownParamKeys||[],pendingComponentIds:prevState?.urlSync?.pendingComponentIds||[],readyComponentIds:prevState?.urlSync?.readyComponentIds||[]}}));},0);}else{setURLGateState(\"ready\");}return()=>{if(registrationTimeoutRef.current){clearTimeout(registrationTimeoutRef.current);registrationTimeoutRef.current=null;}};},[isCanvas,setState,urlPrefix,urlSync]);useEffect(()=>{if(!urlSync||isCanvas){setURLGateState(\"ready\");return;}if(!state?.urlSync?.hasRelevantParams){setURLGateState(\"ready\");return;}if(!state.urlSync.registrationClosed){setURLGateState(\"checking\");return;}const pendingIds=state.urlSync.pendingComponentIds||[];const readyIds=new Set(state.urlSync.readyComponentIds||[]);const allReady=pendingIds.length===0||pendingIds.every(componentId=>readyIds.has(componentId));setURLGateState(allReady?\"ready\":\"checking\");},[isCanvas,state?.urlSync,urlSync]);useEffect(()=>{if(!urlSync||isCanvas||!state||urlGateState!==\"ready\"){return;}const serializedState=serializeStoreToURLState(state,urlPrefix);const nextParams=buildUpdatedURLSearchParams(getCurrentURLParams(),serializedState,previousManagedURLKeysRef.current);const nextSignature=nextParams.toString();console.log(\"[URL Sync][CMSCollection] preparing browser URL update\",{urlPrefix,urlGateState,managedKeys:serializedState.managedKeys,serializedParams:Array.from(serializedState.params.entries()),filters:state?.filters?.map(filter=>({id:filter.id,field:filter.field,urlParamName:filter.urlParamName,displayTitle:filter.displayTitle,type:filter.type,operator:filter.operator,value:filter.value,valueTitles:filter.valueTitles,componentId:filter.componentId})),nextSignature});if(nextSignature===previousURLSignatureRef.current){console.log(\"[URL Sync][CMSCollection] skipped browser URL update\",{reason:\"unchanged-signature\",nextSignature});previousManagedURLKeysRef.current=serializedState.managedKeys;return;}previousManagedURLKeysRef.current=serializedState.managedKeys;previousURLSignatureRef.current=nextSignature;console.log(\"[URL Sync][CMSCollection] applying browser URL update\",{nextSignature,href:typeof window!==\"undefined\"?`${window.location.pathname}${nextSignature?`?${nextSignature}`:\"\"}`:\"\"});updateBrowserURL(nextParams);},[isCanvas,state,state?.filters,state?.searchRules,state?.searchTerm,state?.sort,urlGateState,urlPrefix,urlSync]);// Get original query\nconst originalQuery=collectionInfo?.query;const postDateFieldKey=useMemo(()=>resolveFieldKey(postDateField,collectionInfo?.propertyControls||{}),[postDateField,collectionInfo?.propertyControls]);const dateFilterSignature=useMemo(()=>JSON.stringify({enabled:showOnlyAfterToday,field:postDateFieldKey||\"\",mode:useCustomCutoffDate?\"custom\":\"today\",cutoffDate:useCustomCutoffDate?cutoffDate?.trim()||\"\":\"\"}),[showOnlyAfterToday,postDateFieldKey,useCustomCutoffDate,cutoffDate]);const resolvedCutoffDate=useMemo(()=>getStartOfDayISOString(useCustomCutoffDate?cutoffDate?.trim()||getTodayUTCDateString():getTodayUTCDateString()),[cutoffDate,useCustomCutoffDate]);useEffect(()=>{debugCMSFilter(\"CMSCollection runtime\",{renderTarget:current,hasCollection:!!collection?.length,actualStoreKey,hasCollectionInfo:!!collectionInfo,hasOriginalQuery:!!originalQuery,originalQueryShape:originalQuery?{hasFrom:!!originalQuery.from,hasWhere:!!originalQuery.where,hasLimit:!!originalQuery.limit,hasOffset:!!originalQuery.offset}:null,state:state?{searchTerm:state.searchTerm,searchRules:activeSearchRules,filtersCount:state.filters?.length||0,sortCount:state.sort?.length||0,pagination:state.pagination,count:state.count}:null});},[current,collection,actualStoreKey,collectionInfo,originalQuery,state,activeSearchRules]);// Build search where clause - memoized\nconst searchWhere=useMemo(()=>{const result=buildCombinedSearchWhereClause(activeSearchRules,collectionInfo?.collectionId||\"\",collectionInfo?.propertyControls||{});return result;},[activeSearchRules,collectionInfo?.collectionId,collectionInfo?.propertyControls]);// Build filters where clause - memoized\nconst filtersWhere=useMemo(()=>{const result=buildFiltersWhereClause(state?.filters||[],collectionInfo?.collectionId||\"\",collectionInfo?.propertyControls||{},filterLogic);// Keep for support debugging\nif(debugMode&&(state?.filters||[]).length>0){console.log(\"🔍 Applied filters:\",{totalFilters:(state?.filters||[]).length,filters:state?.filters,whereClause:result});}return result;},[state?.filters,collectionInfo?.collectionId,collectionInfo?.propertyControls,filterLogic]);const afterTodayWhere=useMemo(()=>{if(!showOnlyAfterToday||!postDateFieldKey||!collectionInfo?.collectionId){return null;}return{type:\"BinaryOperation\",left:{collection:collectionInfo.collectionId,name:postDateFieldKey,type:\"Identifier\"},operator:\">=\",right:{type:\"LiteralValue\",value:resolvedCutoffDate}};},[showOnlyAfterToday,postDateFieldKey,collectionInfo?.collectionId,resolvedCutoffDate]);// Combine search and filters - memoized\nconst combinedWhere=useMemo(()=>combineWhereClauses(combineWhereClauses(searchWhere,filtersWhere,\"and\"),afterTodayWhere,\"and\"),[searchWhere,filtersWhere,afterTodayWhere]);// Combine with existing where clause - memoized\nconst finalWhere=useMemo(()=>{const result=combineWhereClauses(originalQuery?.where,combinedWhere,\"and\");if(debugMode&&result){console.log(\"🎯 Final where clause:\",JSON.stringify(result,null,2));}return result;},[originalQuery?.where,combinedWhere,debugMode]);// Build order by clause - memoized\nconst orderBy=useMemo(()=>buildOrderByClause(state?.sort||[],collectionInfo?.propertyControls||{},collectionInfo?.collectionId||\"\"),[state?.sort,collectionInfo?.propertyControls,collectionInfo?.collectionId]);// Determine layout styles - MUST be calculated before clonedCollection\nconst containerStyles=useMemo(()=>{if(!layoutToggle)return{};const layout=layoutDisplay?\"flex\":\"grid\";if(layout===\"flex\"){return{display:\"flex\",flexDirection:flexDirection===\"horizontal\"?\"row\":\"column\",justifyContent,alignItems:flexDirection===\"horizontal\"?alignRow:alignColumn,flexWrap:flexWrap?\"wrap\":\"nowrap\",gap:flexWrap?`${gapY}px ${gapX}px`:`${gapRow}px`};}else{return{display:\"grid\",gridTemplateColumns:`repeat(${gridColumns}, 1fr)`,...gridRows>0&&{gridTemplateRows:`repeat(${gridRows}, 1fr)`},gridAutoRows,gap:`${gapY}px ${gapX}px`};}},[layoutToggle,layoutDisplay,flexDirection,justifyContent,alignRow,alignColumn,flexWrap,gapRow,gapX,gapY,gridColumns,gridRows,gridAutoRows]);const queryLimitValue=typeof originalQuery?.limit?.value===\"number\"?originalQuery.limit.value:null;const effectivePageSize=Math.max(1,queryLimitValue||9);const paginationState=state?.pagination||{page:1,pageSize:effectivePageSize};const currentPage=Math.max(1,paginationState.page||1);const querySignature=useMemo(()=>JSON.stringify({searchTerm:state?.searchTerm||\"\",searchFields:state?.searchFields||[],searchRules:activeSearchRules,filters:state?.filters||[],sort:state?.sort||[],filterLogic,dateFilterSignature}),[activeSearchRules,state?.searchTerm,state?.searchFields,state?.filters,state?.sort,filterLogic,dateFilterSignature]);const lastQuerySignatureRef=useRef(querySignature);useEffect(()=>{if(!setState||!state)return;if((state.pagination?.pageSize||null)!==effectivePageSize){setState(prevState=>({...prevState,pagination:{page:prevState?.pagination?.page||1,pageSize:effectivePageSize}}));return;}if(lastQuerySignatureRef.current===querySignature)return;lastQuerySignatureRef.current=querySignature;if((state.pagination?.page||1)!==1){setState(prevState=>({...prevState,pagination:{page:1,pageSize:effectivePageSize}}));}},[querySignature,effectivePageSize,setState,state]);// Build the filtered query WITHOUT pagination - used for total counts\nconst filteredBaseQuery=useMemo(()=>{if(!originalQuery||!collectionInfo){return getCmsQueryFromSlot(collection);}const{limit:_ignoredLimit,offset:_ignoredOffset,...queryWithoutPagination}=originalQuery;const originalSelect=Array.isArray(queryWithoutPagination.select)?queryWithoutPagination.select:[];let enhancedSelect=originalSelect;if(showOnlyAfterToday&&postDateFieldKey&&collectionInfo.collectionId&&!originalSelect.some(field=>field?.name===postDateFieldKey)){enhancedSelect=[...originalSelect,{collection:collectionInfo.collectionId,name:postDateFieldKey,type:\"Identifier\"}];}const newQuery={...queryWithoutPagination,select:enhancedSelect,where:finalWhere,...orderBy.length>0&&{orderBy}};return newQuery;},[originalQuery,finalWhere,orderBy,collection,collectionInfo,showOnlyAfterToday,postDateFieldKey]);// Build the paginated query used for rendering\nconst filteredQuery=useMemo(()=>{if(!filteredBaseQuery)return filteredBaseQuery;return{...filteredBaseQuery,limit:{type:\"LiteralValue\",value:effectivePageSize},offset:{type:\"LiteralValue\",value:(currentPage-1)*effectivePageSize}};},[filteredBaseQuery,effectivePageSize,currentPage]);// Update count in store when query changes\nconst currentCount=useQueryCount(filteredBaseQuery||{},debugMode);if(actualStoreKey){setCollectionRuntimeSnapshot(actualStoreKey,{pageSize:effectivePageSize,count:currentCount});}useEffect(()=>{if(setState&&currentCount!==state?.count){setState(prevState=>({...prevState,count:currentCount}));}},[currentCount,setState,state]);useEffect(()=>{debugCMSFilter(\"CMSCollection query output\",{actualStoreKey,currentPage,pageSize:effectivePageSize,count:currentCount,filteredBaseQueryShape:filteredBaseQuery?{hasFrom:!!filteredBaseQuery.from,hasWhere:!!filteredBaseQuery.where,hasLimit:!!filteredBaseQuery.limit,hasOffset:!!filteredBaseQuery.offset}:null,filteredQueryShape:filteredQuery?{hasFrom:!!filteredQuery.from,hasWhere:!!filteredQuery.where,limit:filteredQuery.limit,offset:filteredQuery.offset}:null});},[actualStoreKey,currentPage,effectivePageSize,currentCount,filteredBaseQuery,filteredQuery]);// Clone collection with filtered query\nconst clonedCollection=useMemo(()=>{if(!collection?.[0]||!filteredQuery)return{elements:collection,masonryCss:\"\",isMasonry:false};const originalElement=collection[0];const firstChild=originalElement.props?.children;if(!firstChild)return{elements:collection,masonryCss:\"\",isMasonry:false};// --- Masonry structure ---\n// When Masonry is enabled, the query lives on the immediate child:\n//   container.props.children.props.query\n// In this case, `firstChild` is the query element (QueryData), so we only\n// need to clone that element with the new query and keep its children\n// function intact.\nif(firstChild?.props?.query){if(debugMode){console.log(\"🏗️ MASONRY DETECTED:\",{originalElementStyle:originalElement.props?.style,containerStyles,masonryColumns,masonryGap,uniqueClassName,firstChildType:firstChild?.type?.name||firstChild?.type,firstChildProps:Object.keys(firstChild?.props||{})});}const newQueryElement=/*#__PURE__*/cloneElement(firstChild,{key:`${uniqueClassName}-masonry-query-${dateFilterSignature}`,query:filteredQuery});// Note: Masonry column/gap overrides are now applied via prop overrides\n// in processedCollection, not CSS injection\nconst newContainerElement=/*#__PURE__*/cloneElement(originalElement,{children:newQueryElement,style:{...originalElement.props?.style,width:\"100%\",overflow:overflow?\"visible\":\"hidden\"}});return{elements:[newContainerElement],masonryCss:\"\",isMasonry:true};}// --- Standard (non-Masonry) structure ---\n// container -> listElement -> queryElement (with .props.query)\nconst originalListElement=firstChild;const originalQueryElement=originalListElement?.props?.children;if(!originalQueryElement)return{elements:collection,masonryCss:\"\",isMasonry:false};// Clone the query element with new query\nconst newQueryElement=/*#__PURE__*/cloneElement(originalQueryElement,{key:`${uniqueClassName}-query-${dateFilterSignature}`,query:filteredQuery});// Clone the list element with new query element\nconst newListElement=/*#__PURE__*/cloneElement(originalListElement,{children:newQueryElement});// Clone the container with new list element AND apply ONLY layout styles (NOT width)\nconst newContainerElement=/*#__PURE__*/cloneElement(originalElement,{children:newListElement,style:{...originalElement.props?.style,...containerStyles,width:\"100%\",overflow:overflow?\"visible\":\"hidden\"}});return{elements:[newContainerElement],masonryCss:\"\",isMasonry:false};},[collection,filteredQuery,containerStyles,overflow,uniqueClassName,dateFilterSignature,masonryColumns,masonryGap,debugMode]);// Build masonry overrides config\nconst masonryOverrides=useMemo(()=>{if(!layoutToggle){// Responsive Layout disabled - no overrides\nreturn{trackCount:undefined,rowGap:undefined,disableMasonry:false};}if(responsiveMasonry){// Masonry mode: override trackCount and rowGap\nreturn{trackCount:masonryColumns>0?masonryColumns:undefined,rowGap:masonryGap>=0?masonryGap:undefined,disableMasonry:false};}else{// Standard mode: disable masonry, use grid/stack layout\nreturn{trackCount:undefined,rowGap:undefined,disableMasonry:true};}},[layoutToggle,responsiveMasonry,masonryColumns,masonryGap]);// Apply variant and masonry overrides\nconst processedCollection=useMemo(()=>{const{elements,isMasonry}=clonedCollection;if(!elements){return elements;}const hasVariantOverrides=variantOverrides&&variantOverrides.length>0;const hasMasonryOverrides=masonryOverrides.trackCount!==undefined||masonryOverrides.rowGap!==undefined||masonryOverrides.disableMasonry===true;// If no overrides needed, return as-is\nif(!hasVariantOverrides&&!hasMasonryOverrides){return elements;}// Process each container element\nreturn elements.map(containerElement=>{if(isMasonry){// --- MASONRY STRUCTURE ---\n// container -> QueryData (with children function)\n// The QueryData's children function returns the masonry component\nconst queryElement=containerElement.props?.children;if(!queryElement)return containerElement;const originalChildrenFn=queryElement.props?.children;if(typeof originalChildrenFn!==\"function\")return containerElement;// Wrap children function to apply overrides to the rendered result\nconst wrappedChildren=(collection,paginationInfo,loadMore)=>{let result=originalChildrenFn(collection,paginationInfo,loadMore);// Apply masonry overrides (trackCount, rowGap)\nif(hasMasonryOverrides){result=processMasonryOverrides(result,masonryOverrides);}// Apply variant overrides\nif(hasVariantOverrides){result=processVariantOverrides(result,variantOverrides);}return result;};// Clone QueryData with wrapped children\nconst newQueryElement=/*#__PURE__*/cloneElement(queryElement,{...queryElement.props,children:wrappedChildren});// Clone container with new QueryData\nreturn /*#__PURE__*/cloneElement(containerElement,{children:newQueryElement,style:containerElement.props?.style});}else{// --- STANDARD (NON-MASONRY) STRUCTURE ---\n// container -> listElement -> cmsItem (QueryData with children function)\nconst listElement=containerElement.props?.children;if(!listElement)return containerElement;const cmsItem=listElement.props?.children;if(!cmsItem)return containerElement;const originalChildrenFn=cmsItem.props?.children;if(typeof originalChildrenFn!==\"function\")return containerElement;// Wrap children function with variant override logic\nconst wrappedChildren=wrapWithVariantOverrides(originalChildrenFn,variantOverrides);// Clone CMS Item with wrapped children\nconst newCmsItem=/*#__PURE__*/cloneElement(cmsItem,{...cmsItem.props,children:wrappedChildren});// Clone list element with new CMS Item\nconst newListElement=/*#__PURE__*/cloneElement(listElement,{children:newCmsItem});// Clone container with new list element\nreturn /*#__PURE__*/cloneElement(containerElement,{children:newListElement,style:containerElement.props?.style});}});},[clonedCollection,variantOverrides,masonryOverrides]);// Build wrapper CSS to override Framer's inline styles (width only)\n// Note: Masonry column/gap overrides are now applied via prop overrides in processedCollection\nconst wrapperCss=useMemo(()=>{return`\n            .${uniqueClassName} > div {\n                width: 100% !important;\n            }\n        `;},[uniqueClassName]);// Determine if we're in editor mode (no CMS data available)\nconst isEditorMode=!collectionInfo;const shouldHideForURLSync=!isEditorMode&&urlSync&&urlGateState!==\"ready\";// Show empty state if filtered and no results (only in preview/live mode)\nconst showEmptyState=!isEditorMode&&collectionInfo&&currentCount===0&&(state?.searchTerm||state?.filters&&state.filters.length>0);// If in canvas mode, apply layout styles directly to collection element\nif(isCanvas){const canvasCollection=useMemo(()=>{if(!collection?.[0])return collection;const element=collection[0];const props=element.props||{};// Check if masonry is enabled on this element\nconst isMasonryElement=props?.columnMasonryLayoutEnabled===true;// Build new props with masonry overrides if applicable\nconst newProps={style:{...props.style,...containerStyles,width:\"100%\",overflow:overflow?\"visible\":\"hidden\"}};// Handle masonry overrides based on layout settings\nif(isMasonryElement&&layoutToggle){if(responsiveMasonry){// Masonry mode: override trackCount and rowGap\nif(masonryColumns>0){newProps.trackCount=masonryColumns;}if(masonryGap>=0){newProps.rowGap=masonryGap;}}else{// Standard mode: disable masonry entirely\nnewProps.columnMasonryLayoutEnabled=false;}}return[/*#__PURE__*/cloneElement(element,newProps)];},[collection,containerStyles,overflow,layoutToggle,responsiveMasonry,masonryColumns,masonryGap]);return /*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",width:\"100%\",...style},children:[wrapperCss&&/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:wrapperCss}}),collection&&Array.isArray(collection)&&collection.length>0?/*#__PURE__*/_jsx(\"div\",{className:uniqueClassName,style:{width:collectionWidth,marginLeft:\"auto\",marginRight:\"auto\"},children:canvasCollection}):/*#__PURE__*/_jsxs(\"div\",{style:{padding:\"24px\",textAlign:\"center\",backgroundColor:\"#f8f9fa\",border:\"2px dashed #dee2e6\",borderRadius:\"8px\",color:\"#6c757d\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontSize:\"16px\",fontWeight:500,marginBottom:\"8px\",color:\"#495057\"},children:\"Connect CMS Collection\"}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:\"14px\"},children:\"Add your CMS List to the canvas and connect it.\"})]})]});}// Prepare empty state with width styling\nconst modifiedEmptyState=useMemo(()=>{if(!emptyState||!Array.isArray(emptyState)||emptyState.length===0){return null;}return /*#__PURE__*/cloneElement(emptyState[0],{style:{width:emptyStateWidth}});},[emptyState,emptyStateWidth]);return /*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",width:\"100%\",...style},children:[wrapperCss&&/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:wrapperCss}}),debugMode&&state&&/*#__PURE__*/_jsxs(\"div\",{style:{padding:12,backgroundColor:\"#f8f9fa\",border:\"1px solid #dee2e6\",borderRadius:4,marginBottom:16,fontSize:12,fontFamily:\"monospace\"},children:[/*#__PURE__*/_jsx(\"div\",{children:/*#__PURE__*/_jsx(\"strong\",{children:\"🛠 Debug Information\"})}),/*#__PURE__*/_jsxs(\"div\",{children:[\"Store Key: \",actualStoreKey]}),/*#__PURE__*/_jsxs(\"div\",{children:['Search Term: \"',state.searchTerm,'\"']}),/*#__PURE__*/_jsxs(\"div\",{children:[\"Search Fields: [\",state.searchFields.join(\", \"),\"]\"]}),/*#__PURE__*/_jsxs(\"div\",{children:[\"Active Filters: \",state.filters?.length||0]}),/*#__PURE__*/_jsxs(\"div\",{children:[\"Filter Logic: \",filterLogic]}),/*#__PURE__*/_jsxs(\"div\",{children:[\"Total Results: \",currentCount]}),/*#__PURE__*/_jsxs(\"div\",{children:[\"Collection ID: \",collectionInfo?.collectionId]}),urlSync&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"div\",{style:{marginTop:8,borderTop:\"1px solid #dee2e6\",paddingTop:8},children:/*#__PURE__*/_jsx(\"strong\",{children:\"🔗 URL Sync\"})}),/*#__PURE__*/_jsx(\"div\",{children:\"Enabled: Yes\"}),/*#__PURE__*/_jsxs(\"div\",{children:[\"Prefix: \",urlPrefix||\"(none)\"]}),/*#__PURE__*/_jsxs(\"div\",{children:[\"Current URL:\",\" \",typeof window!==\"undefined\"?window.location.search:\"\"]})]})]}),isEditorMode?// Editor mode: Show collection or connection prompt\ncollection&&Array.isArray(collection)&&collection.length>0?/*#__PURE__*/_jsx(\"div\",{className:uniqueClassName,style:{width:collectionWidth,marginLeft:\"auto\",marginRight:\"auto\"},children:processedCollection}):/*#__PURE__*/_jsxs(\"div\",{style:{padding:\"24px\",textAlign:\"center\",backgroundColor:\"#f8f9fa\",border:\"2px dashed #dee2e6\",borderRadius:\"8px\",color:\"#6c757d\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontSize:\"16px\",fontWeight:500,marginBottom:\"8px\",color:\"#495057\"},children:\"Connect CMS Collection\"}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:\"14px\"},children:\"Add your CMS List to the canvas and connect it.\"})]}):shouldHideForURLSync?null:collection&&Array.isArray(collection)&&collection.length>0?showEmptyState?// Filtered with no results - show empty state or fallback\nmodifiedEmptyState?modifiedEmptyState:/*#__PURE__*/_jsx(\"div\",{style:{textAlign:\"center\",padding:`${fallbackPadding}px`,backgroundColor:fallbackBackgroundColor,borderRadius:`${fallbackBorderRadius}`,fontFamily:fallbackFont?.family||\"sans-serif\",fontSize:fallbackFont?.fontSize||16,fontWeight:fallbackFont?.fontWeight,fontStyle:fallbackFont?.fontStyle,lineHeight:fallbackFont?.lineHeight||\"1.5em\",color:fallbackFont?.color||\"#666\"},children:fallbackText}):// Has results - show processed collection\n/*#__PURE__*/_jsx(\"div\",{className:uniqueClassName,style:{width:collectionWidth,marginLeft:\"auto\",marginRight:\"auto\"},children:processedCollection}):modifiedEmptyState?modifiedEmptyState:/*#__PURE__*/_jsx(\"div\",{style:{textAlign:\"center\",padding:`${fallbackPadding}px`,backgroundColor:fallbackBackgroundColor,borderRadius:`${fallbackBorderRadius}`,fontFamily:fallbackFont?.family||\"sans-serif\",fontSize:fallbackFont?.fontSize||16,fontWeight:fallbackFont?.fontWeight,fontStyle:fallbackFont?.fontStyle,lineHeight:fallbackFont?.lineHeight||\"1.5em\",color:fallbackFont?.color||\"#666\"},children:fallbackText})]});}// Property Controls\naddPropertyControls(CMSCollection,{collection:{type:ControlType.Slot,title:\"Collection\",description:\"Connect your CMS Collection List component here\",maxCount:1},emptyState:{type:ControlType.Slot,title:\"Empty State\",description:\"Component to show when no items match the filters\",maxCount:1},fallback:{type:ControlType.Object,title:\"Empty State Fallback\",description:\"Styling for fallback text when no items found and no empty state is connected\",controls:{text:{type:ControlType.String,title:\"Text\",description:\"Message shown when no results found\",defaultValue:\"No items found\"},font:{type:ControlType.Font,title:\"Font\",description:\"Typography settings for empty state text\",controls:\"extended\",defaultValue:{fontSize:16,lineHeight:\"1.5em\"}},color:{type:ControlType.Color,title:\"Color\",description:\"Text color for empty state text\",defaultValue:\"#666\"},backgroundColor:{type:ControlType.Color,title:\"Background\",description:\"Background color for empty state area\",defaultValue:\"rgba(0,0,0,0)\"},border:{type:ControlType.Border,title:\"Border\",description:\"Empty state border styling\",defaultValue:{borderWidth:0,borderStyle:\"solid\",borderColor:\"#dee2e6\"}},borderRadius:{type:ControlType.BorderRadius,title:\"Border Radius\",description:\"Corner rounding for empty state container\",defaultValue:\"0px\"},padding:{type:ControlType.Number,title:\"Padding\",description:\"Inner spacing around empty state text\",defaultValue:40,min:0,max:200,step:1,displayStepper:true,unit:\"px\"}}},collectionWidth:{type:ControlType.String,title:\"CMS Collection Width\",defaultValue:\"100%\",description:\"Please enter value with unit ex: 100%\"},overflow:{type:ControlType.Boolean,title:\"Overflow\",description:\"How to handle overflow content\",enabledTitle:\"Visible\",disabledTitle:\"Hidden\",defaultValue:false},emptyStateWidth:{type:ControlType.String,title:\"Empty State Width\",defaultValue:\"100%\",description:\"Please enter value with unit ex: 100%\"},filterLogic:{type:ControlType.Enum,title:\"Filter Logic\",description:\"How to combine multiple filter components on the page\",segmentedControlDirection:\"vertical\",options:[\"All\",\"Any\"],optionTitles:[\"All (AND)\",\"Any (OR)\"],defaultValue:\"All\"},storeKey:{type:ControlType.String,title:\"Filter Group\",description:\"Components with same group share filters. Leave empty or 'auto' to use collection name.\",defaultValue:\"auto\",placeholder:\"auto (uses collection name)\"},showOnlyAfterToday:{type:ControlType.Boolean,title:\"Show From Today\",description:\"Only show non-draft CMS items from today onward.\",enabledTitle:\"On\",disabledTitle:\"Off\",defaultValue:false},postDateField:{type:ControlType.String,title:\"CMS Date Field\",description:\"Exact CMS field name to compare against today's date. Use Created for live posts.\",placeholder:\"e.g., Created\",defaultValue:\"Created\",hidden:props=>!props.showOnlyAfterToday},useCustomCutoffDate:{type:ControlType.Boolean,title:\"Custom Date\",description:\"Use a custom cutoff date instead of today for the date filter.\",enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:false,hidden:props=>!props.showOnlyAfterToday},cutoffDate:{type:ControlType.Date,title:\"Date & Time\",defaultValue:new Date().toISOString(),displayTime:true,hidden:props=>!props.showOnlyAfterToday||!props.useCustomCutoffDate},urlSync:{type:ControlType.Boolean,title:\"URL Sync\",description:\"Sync filters, search, and sort to shareable URL params\",defaultValue:false,enabledTitle:\"Enabled\",disabledTitle:\"Disabled\"},urlPrefix:{type:ControlType.String,title:\"URL Prefix\",description:\"Optional prefix for URL params. Example: blog + category => ?blog-category=value\",defaultValue:\"\",placeholder:\"e.g., blog\",hidden:props=>!props.urlSync},/*\n    urlSync: {\n      type: ControlType.Boolean,\n      title: \"🔗 URL Sync\",\n      description: \"Sync filters to URL for shareable filter states\",\n      defaultValue: false,\n      enabledTitle: \"Enabled\",\n      disabledTitle: \"Disabled\",\n    },\n    urlPrefix: {\n      type: ControlType.String,\n      title: \"URL Prefix\",\n      description:\n        \"Optional prefix for URL parameters (e.g., 'blog' → ?blog_s=search). Leave empty for no prefix.\",\n      defaultValue: \"\",\n      placeholder: \"e.g., blog\",\n      hidden: (props) => !props.urlSync,\n    },\n    */variantOverrides:{type:ControlType.Array,title:\"Variant Overrides\",description:\"Enter component name and variant name, you want to change in CMS Item. Note: Variant Overrides doen't show in canvas, check preview/published page.\",control:{type:ControlType.Object,controls:{componentName:{type:ControlType.String,title:\"Component Name\",description:\"Exact component name as it appears in CMS item (case-sensitive)\"},variantName:{type:ControlType.String,title:\"Variant Name\",description:\"Exact variant name to apply (case-sensitive)\"}}}},layoutToggle:{type:ControlType.Boolean,title:\"Layout Override\",description:\"Override layout settings per breakpoint. To mix masonry and grid layouts, enable Masonry on your CMS List in Framer first.\",enabledTitle:\"Enable\",disabledTitle:\"Disable\",defaultValue:false},responsiveMasonry:{type:ControlType.Boolean,title:\"Layout Type\",description:\"Masonry: Override masonry columns/gap (requires Masonry enabled on CMS List). Standard: Use grid/stack layout (disables masonry if enabled).\",enabledTitle:\"Masonry\",disabledTitle:\"Standard\",defaultValue:false,hidden:props=>!props.layoutToggle},layoutDisplay:{type:ControlType.Boolean,title:\"Display\",enabledTitle:\"Stack\",disabledTitle:\"Grid\",defaultValue:true,hidden:props=>!props.layoutToggle||props.responsiveMasonry===true},flexDirection:{type:ControlType.Enum,title:\"Direction\",options:[\"horizontal\",\"vertical\"],optionTitles:[\"horizontal\",\"vertical\"],displaySegmentedControl:true,hidden(props){return!props.layoutToggle||props.responsiveMasonry===true||!props.layoutDisplay;}},justifyContent:{type:ControlType.Enum,title:\"Justify\",options:[\"flex-start\",\"center\",\"flex-end\",\"space-between\",\"space-around\",\"space-evenly\"],optionTitles:[\"Start\",\"Center\",\"End\",\"Space Between\",\"Space Around\",\"Space Evenly\"],defaultValue:\"center\",hidden(props){return!props.layoutToggle||props.responsiveMasonry===true||props.layoutDisplay===false;}},alignRow:{type:ControlType.Enum,title:\"Align\",options:[\"flex-start\",\"center\",\"flex-end\"],optionTitles:[\"Left\",\"Center\",\"Right\"],displaySegmentedControl:true,hidden(props){const layout=props.layoutDisplay===true?\"stack\":\"grid\";return!props.layoutToggle||props.responsiveMasonry===true||layout===\"stack\"&&props.flexDirection===\"vertical\"||layout===\"grid\";}},alignColumn:{type:ControlType.Enum,title:\"Align\",options:[\"flex-start\",\"center\",\"flex-end\"],optionTitles:[\"Top\",\"Center\",\"Bottom\"],displaySegmentedControl:true,hidden(props){const layout=props.layoutDisplay===true?\"stack\":\"grid\";return!props.layoutToggle||props.responsiveMasonry===true||layout===\"stack\"&&props.flexDirection===\"horizontal\"||layout===\"grid\";}},gridColumns:{type:ControlType.Number,title:\"Columns\",defaultValue:3,min:1,max:10,step:1,displayStepper:true,hidden(props){const layout=props.layoutDisplay===true?\"stack\":\"grid\";return!props.layoutToggle||props.responsiveMasonry===true||layout===\"stack\";}},gridRows:{type:ControlType.Number,title:\"Rows\",defaultValue:0,min:0,max:10,step:1,displayStepper:true,description:\"0 = auto-size rows, 1+ = fixed row count\",hidden(props){const layout=props.layoutDisplay===true?\"stack\":\"grid\";return!props.layoutToggle||props.responsiveMasonry===true||layout===\"stack\";}},gridAutoRows:{type:ControlType.String,title:\"Auto Rows\",defaultValue:\"minmax(200px, auto)\",description:\"CSS grid-auto-rows value for row height. Examples: 'minmax(200px, auto)', '200px', 'auto'\",hidden(props){const layout=props.layoutDisplay===true?\"stack\":\"grid\";return!props.layoutToggle||props.responsiveMasonry===true||layout===\"stack\";}},flexWrap:{type:ControlType.Boolean,title:\"Wrap\",enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:false,hidden(props){const layout=props.layoutDisplay===true?\"stack\":\"grid\";return!props.layoutToggle||props.responsiveMasonry===true||layout===\"grid\";}},gapRow:{type:ControlType.Number,title:\"Gap\",defaultValue:14,step:1,displayStepper:true,hidden(props){const layout=props.layoutDisplay===true?\"stack\":\"grid\";return!props.layoutToggle||props.responsiveMasonry===true||layout===\"stack\"&&props.flexWrap===true||layout===\"grid\";}},gapX:{type:ControlType.Number,title:\"Gap X\",defaultValue:16,step:1,unit:\"px\",displayStepper:true,hidden(props){const layout=props.layoutDisplay===true?\"stack\":\"grid\";return!props.layoutToggle||props.responsiveMasonry===true||layout===\"stack\"&&props.flexWrap===false;}},gapY:{type:ControlType.Number,title:\"Gap Y\",defaultValue:16,step:1,unit:\"px\",displayStepper:true,hidden(props){const layout=props.layoutDisplay===true?\"stack\":\"grid\";return!props.layoutToggle||props.responsiveMasonry===true||layout===\"stack\"&&props.flexWrap===false;}},masonryColumns:{type:ControlType.Number,title:\"Columns\",description:\"Override Framer's masonry column count for this breakpoint.\",defaultValue:0,min:0,max:10,step:1,displayStepper:true,hidden(props){return!props.layoutToggle||props.responsiveMasonry!==true;}},masonryGap:{type:ControlType.Number,title:\"Gap\",description:\"Gap between masonry items\",defaultValue:16,min:0,step:1,unit:\"px\",displayStepper:true,hidden(props){return!props.layoutToggle||props.responsiveMasonry!==true;}},debugMode:{type:ControlType.Boolean,title:\"🛠 Debug Mode\",defaultValue:false,description:\"Show debug information including active filters, logic, and query generation\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CMSCollection\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any\",\"framerSupportedLayoutHeight\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CMSCollection.map"],"mappings":"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"}