{"version":3,"file":"CMSFilters.B2eqcH9j.mjs","names":["useState","getCmsQueryFromSlot","useRef","useMemo","getCmsQueryFromSlot","cloneElement","_Fragment","useState","useMemo","_Fragment","_jsx","_Fragment","_Fragment","useState","useRef","_Fragment","_Fragment","useRef","useCallback","useState","_Fragment","_Fragment","_Fragment","useMemo","getCmsQueryFromSlot","useMemo","getCmsQueryFromSlot","_Fragment","useState","useRef","getCmsQueryFromSlot"],"sources":["https:/framerusercontent.com/modules/vj7bFUjvEQFgEzNBkdoG/vf3CKm378wlVcBk7IhSU/createStore.js","https:/framer.com/m/framer/store.js@^1.0","https:/framerusercontent.com/modules/2VZikWBxCagm4nJReNjX/uFUqD0e9fJ1WAIOOmgia/store_management.js","https:/framerusercontent.com/modules/jM8jD1GlrCxD96rrTGLC/4bEIFe2BsBAYVYzZCpsc/query_builders.js","https:/framerusercontent.com/modules/0ZtPI0zMKW1Pn08h8oa0/2vnwqGgQ3vjW4mR9YNCk/variant_utils.js","https:/framerusercontent.com/modules/Bd2ZGjxd3wA16PORsZcM/xywNBkllbjazCcWq1vQQ/masonry_utils.js","https:/framerusercontent.com/modules/4kubTvEfQH0kypVlANcr/XJcWtxajPv3CPzwRWN2c/CMSCollection.js","https:/framerusercontent.com/modules/ACiSfH9XmEeGQw9FrwJm/sonBlYtuqlTIWRiEwECO/CMSSearch.js","https:/framerusercontent.com/modules/gpP9NQZkGM08zua7fzDA/ufvjGg4utuUHzowwKSUT/filter_utils.js","https:/framerusercontent.com/modules/6NPURxBM0dOECdL7VbnS/uDZ4zt8fHyZhi8PDFTYF/TextFilter.js","https:/framerusercontent.com/modules/UqIxQlR9i7N7s5eURJXt/U7c4b6n1TPhjZo5RSn1C/NumberFilter.js","https:/framerusercontent.com/modules/rhjV7CBikISubRqt2bpe/TsuS3P5xvcUSgd5zpupI/SelectFilter.js","https:/framerusercontent.com/modules/yoPENdwUHgW0xBoBrcKB/A0k863LM1epD0DYr3i4t/TagFilter.js","https:/framerusercontent.com/modules/ktAWutRRdcvtUBylxWdw/HPKhlQqZvPckSzCMy2kp/CheckboxFilter.js","https:/framerusercontent.com/modules/bf8X1kauFnevisLXUtaB/BlKZ4jc5D0pTAPFBnZyX/DropdownFilter.js","https:/framerusercontent.com/modules/BNKPJXocDPceT63H0PHv/zAHa2GsWdwYb02j8c0Hx/DoubleRangeSlider.js","https:/framerusercontent.com/modules/f4De0XAwI4Kf8M6qHjz8/33ZyZUTacomurZvkr6qi/RangeFilter.js","https:/framerusercontent.com/modules/CI7Pin8tWGfRHLuGR8tI/icY306VvK2VrbOePb4MN/ToggleFilter.js","https:/framerusercontent.com/modules/YJVHOw7sdl2iLFF7oTta/YbKAXG70FB7zJlegTsLi/CMSEnumFilter.js","https:/framerusercontent.com/modules/DiZxJ6bZqOMdV8ieN9sM/oGtxSd6znccsFVwOgbLr/MultiRefFilter.js","https:/framerusercontent.com/modules/hPN8XUHynAMierFs62Hi/8U4ipGEaqtww9gEM7jRz/SingleRefFilter.js","https:/framerusercontent.com/modules/3I5E2iQ0TFDjlfTzBR90/E3Q1bUpxnj8tVkalRAdF/FilterControl.js","https:/framerusercontent.com/modules/nVvoo0B7jcHs47MzljvK/UPLQUSR0YO5dzGMMgmsB/CMSFilters.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{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\";// Global store initialization tracker\nexport const globalInitStore=createStore({storeInitialized:[]});// Global stores per collection ID\nconst stores=new Map;// Helper to get or create store for collection\nexport const getCollectionStore=collectionId=>{if(!stores.has(collectionId)){const newStore=createStore({searchTerm:\"\",searchFields:[],filters:[],debug:true,count:0});stores.set(collectionId,newStore);// Mark this collection as initialized\nconst[initState,setInitState]=globalInitStore();if(!initState.storeInitialized.includes(collectionId)){setInitState({storeInitialized:[...initState.storeInitialized,collectionId]});}}return stores.get(collectionId);};// Internal helper to safely extract the CMS query from a collection slot\n// Supports both standard and Masonry CMS Collection structures.\nconst 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;return regularQuery||null;};// Exported helper so other components can safely read the CMS query\nexport const getCmsQueryFromSlot=slot=>{return getCmsQueryFromCollectionSlot(slot);};// Helper to get store key for collection - prioritizes actual CMS collection name\nexport const getCollectionStoreKey=(collection,manualStoreKey)=>{// If manual store key is provided and not \"auto\", use it\nif(manualStoreKey&&manualStoreKey.trim()!==\"\"&&manualStoreKey!==\"auto\"){return manualStoreKey.trim();}const cmsQuery=getCmsQueryFromCollectionSlot(collection);if(!cmsQuery)return null;// 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;};// 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)\nlet alias=null;let data=null;if(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\nalias=deepestFrom?.alias||deepestFrom?.collection;data=deepestFrom?.data;}else{// WITHOUT reference fields - standard path\nalias=cmsQuery.from?.alias;data=cmsQuery.from?.data;}// 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;return storeKey||null;};// Helper to extract collection info from slot connection\nexport const getCollectionInfo=collection=>{const cmsQuery=getCmsQueryFromCollectionSlot(collection);if(!cmsQuery)return null;// Helper to traverse nested .left structures to find the deepest node\nconst getDeepestLeft=node=>{if(!node)return null;let current=node;while(current?.left){current=current.left;}return current;};// Handle TWO query structures (same as getCollectionStoreKey):\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\nlet alias=null;let data=null;if(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\nalias=deepestFrom?.alias||deepestFrom?.collection;data=deepestFrom?.data;}else{// WITHOUT reference fields\nalias=cmsQuery.from?.alias;data=cmsQuery.from?.data;}return{collectionId:alias||\"\",collectionName:data?.displayName||\"\",query:cmsQuery,propertyControls:data?.propertyControls||{}};};// 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 const isPreview=RenderTarget.current()===RenderTarget.preview;export const isCanvas=RenderTarget.current()===RenderTarget.canvas;\nexport const __FramerMetadata__ = {\"exports\":{\"isPreview\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isCanvas\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCollectionStore\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCollectionInfo\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCollectionStoreKey\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"evGetRandomString\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getAvailableFilterFields\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FilterStore\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"globalInitStore\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCmsQueryFromSlot\":{\"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;};// ============================================================================\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\":{\"FilterRule\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Identifier\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LiteralValue\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"buildFiltersWhereClause\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"buildSearchWhereClause\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BinaryOperation\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"hasValidFilterValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"combineWhereClauses\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"UnaryOperation\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"buildFilterWhereClause\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"buildOrderByClause\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FunctionCall\":{\"type\":\"tsType\",\"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\"}},\"processVariantOverrides\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"VariantOverride\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"wrapWithVariantOverrides\":{\"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\"}},\"wrapWithMasonryOverrides\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"processMasonryOverrides\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./masonry_utils.map","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useEffect,useRef,useMemo,cloneElement}from\"react\";import{addPropertyControls,ControlType,RenderTarget,// @ts-ignore-next-line\nuseQueryData}from\"framer\";import{getCollectionStore,getCollectionStoreKey,globalInitStore,getCollectionInfo,getCmsQueryFromSlot,evGetRandomString}from\"https://framerusercontent.com/modules/2VZikWBxCagm4nJReNjX/uFUqD0e9fJ1WAIOOmgia/store_management.js\";import{buildSearchWhereClause,buildFiltersWhereClause,combineWhereClauses,buildOrderByClause}from\"https://framerusercontent.com/modules/jM8jD1GlrCxD96rrTGLC/4bEIFe2BsBAYVYzZCpsc/query_builders.js\";import{wrapWithVariantOverrides,processVariantOverrides}from\"https://framerusercontent.com/modules/0ZtPI0zMKW1Pn08h8oa0/2vnwqGgQ3vjW4mR9YNCk/variant_utils.js\";import{processMasonryOverrides}from\"https://framerusercontent.com/modules/Bd2ZGjxd3wA16PORsZcM/xywNBkllbjazCcWq1vQQ/masonry_utils.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;}/**\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,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;// Generate unique class name following CMSFilters pattern\nconst newId=id?id:evGetRandomString();const uniqueClassName=`cms-collection-${newId}`;// Get store key for this collection\nconst actualStoreKey=getCollectionStoreKey(collection,storeKey);const isInitialized=useRef(false);// Watch for store initialization\nconst[initState]=globalInitStore();const isStoreInitialized=actualStoreKey&&initState.storeInitialized.includes(actualStoreKey);// Extract collection info from slot connection\nconst collectionInfo=useMemo(()=>{return isStoreInitialized?getCollectionInfo(collection):null;},[collection,isStoreInitialized]);// Get store for this collection\nconst useStore=actualStoreKey?getCollectionStore(actualStoreKey):null;const[state,setState]=useStore?useStore():[null,null];// Initialize store if connected but not initialized\nuseEffect(()=>{if(actualStoreKey&&!isStoreInitialized&&!isInitialized.current){getCollectionStore(actualStoreKey);isInitialized.current=true;}},[actualStoreKey,isStoreInitialized]);// Handle URL synchronization\n// @todo: Later work on this later.\n/*\n    useURLSync(\n        {\n            enabled: urlSync,\n            prefix: urlPrefix,\n            debounceDelay: 500,\n            debugMode,\n        },\n        collectionInfo,\n        state,\n        setState\n    )*/// Get original query\nconst originalQuery=collectionInfo?.query;// Build search where clause - memoized\nconst searchWhere=useMemo(()=>{const result=buildSearchWhereClause(state?.searchTerm||\"\",state?.searchFields||[],collectionInfo?.collectionId||\"\",collectionInfo?.propertyControls||{});return result;},[state?.searchTerm,state?.searchFields,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]);// Combine search and filters - memoized\nconst combinedWhere=useMemo(()=>combineWhereClauses(searchWhere,filtersWhere,\"and\"),[searchWhere,filtersWhere]);// 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]);// Build the filtered query - memoized\nconst filteredQuery=useMemo(()=>{if(!originalQuery||!collectionInfo){return getCmsQueryFromSlot(collection);}const newQuery={...originalQuery,where:finalWhere,...orderBy.length>0&&{orderBy}};return newQuery;},[originalQuery,finalWhere,orderBy,collection,collectionInfo]);// Update count in store when query changes\nconst currentCount=useQueryCount(filteredQuery||{},debugMode);useEffect(()=>{if(setState&&currentCount!==state?.count){setState({...state,count:currentCount});}},[currentCount,setState]);// 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,{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,{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,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;// 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.\"})]}):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)\"},// @todo: Later work on this later.\n/* \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\":{\"framerSupportedLayoutWidth\":\"any\",\"framerSupportedLayoutHeight\":\"any\",\"framerDisableUnlink\":\"\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CMSCollection.map","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useState,useEffect,useMemo}from\"react\";import{addPropertyControls,ControlType,useQueryData}from\"framer\";// Import utilities and types from shared modules\nimport{getCollectionStore,getCollectionStoreKey,globalInitStore,getCollectionInfo,evGetRandomString}from\"https://framerusercontent.com/modules/2VZikWBxCagm4nJReNjX/uFUqD0e9fJ1WAIOOmgia/store_management.js\";// Helper to get available searchable fields from CMS\nconst getAvailableSearchFields=propertyControls=>{if(!propertyControls)return[];return Object.entries(propertyControls).filter(([,control])=>{// Only include searchable field types\nconst searchableTypes=[\"string\",\"richtext\"];return searchableTypes.includes(control.type);}).map(([key,control])=>({key,title:control.title||key,type:control.type}));};// Debounce hook\nfunction useDebounce(value,delay){const[debounced,setDebounced]=useState(value);useEffect(()=>{const handler=setTimeout(()=>setDebounced(value),delay);return()=>clearTimeout(handler);},[value,delay]);return debounced;}/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerDisableUnlink\n */export default function CMSSearch(props){const{collection,searchFields,searchDisplayTitle=\"Search\",placeholder,debounceDelay,storeKey,urlPrefix,style,containerStyles,labelStyles,inputStyles,iconStyles,debugMode,id}=props;const newId=id?id:evGetRandomString();const uniqueClassName=`cms-collection-${newId}`;// Get store key for this collection using new logic\nconst actualStoreKey=getCollectionStoreKey(collection,storeKey);// Initialize store immediately if we have a store key (fixes race condition)\nif(actualStoreKey){getCollectionStore(actualStoreKey);}// Watch for store initialization (for debugging/monitoring only)\nconst[initState]=globalInitStore();const isStoreInitialized=actualStoreKey&&initState.storeInitialized.includes(actualStoreKey);// Extract collection info from slot connection - memoized\nconst collectionInfo=useMemo(()=>getCollectionInfo(collection),[collection]);// Get store for this collection\nconst useStore=actualStoreKey?getCollectionStore(actualStoreKey):null;const[state,setState]=useStore?useStore():[null,null];// Local input value for immediate UI updates\nconst[inputValue,setInputValue]=useState(\"\");// Debounced search term\nconst debouncedSearchTerm=useDebounce(inputValue,debounceDelay);// Clear search function\nconst handleClearSearch=()=>{setInputValue(\"\");};// Memoized dynamic placeholder with count support - prevents render loops\nconst dynamicPlaceholder=useMemo(()=>{if(!placeholder.includes(\"{count}\")){return placeholder;}// Check if we have active filters\nconst hasActiveFilters=state&&(state.searchTerm&&state.searchTerm.trim()!==\"\"||state.filters&&state.filters.length>0||state.sort&&state.sort.length>0);let count=0;if(hasActiveFilters&&state?.count!==undefined){// Use filtered count when filters are active\ncount=state.count;}else if(collectionInfo){// Use total collection count when no filters are active\nconst originalQuery=getCmsQueryFromSlot(collection);if(originalQuery){try{const unfiltered=useQueryData(originalQuery);count=unfiltered?.length||0;}catch(error){console.warn(\"Error getting collection count:\",error);count=0;}}}return placeholder.replace(/{count}/g,String(count));},[placeholder,state?.count,state?.searchTerm,state?.filters,state?.sort,collectionInfo,collection]);// Update store when debounced search term changes - SIMPLIFIED\nuseEffect(()=>{if(setState&&state){setState({...state,searchTerm:debouncedSearchTerm,searchFields:searchFields,searchDisplayTitle:searchDisplayTitle});}},[debouncedSearchTerm,searchFields,searchDisplayTitle,setState]);// Initialize from URL parameters on component mount\n// useEffect(() => {\n//     if (isStoreInitialized && setState && state && !hasInitializedFromURL) {\n//         const urlParams = new URLSearchParams(window.location.search)\n//         const searchParam = urlPrefix ? `${urlPrefix}_search` : \"search\"\n//         const urlSearchTerm = urlParams.get(searchParam)\n//         if (urlSearchTerm) {\n//             setInputValue(urlSearchTerm)\n//             setState({\n//                 ...state,\n//                 searchTerm: urlSearchTerm,\n//                 searchFields: searchFields,\n//             })\n//         }\n//         setHasInitializedFromURL(true)\n//     }\n// }, [\n//     isStoreInitialized,\n//     setState,\n//     state,\n//     hasInitializedFromURL,\n//     urlPrefix,\n//     searchFields,\n// ])\n// const urlParams = new URLSearchParams(window.location.search)\n// const searchParam = urlPrefix ? `${urlPrefix}_search` : \"search\"\n// const urlSearchTerm = urlParams.get(searchParam)\nuseEffect(()=>{},[]);// Sync input value with store on change (including clears from other components)\nuseEffect(()=>{if(state&&state.searchTerm!==inputValue){setInputValue(state.searchTerm||\"\");}},[state?.searchTerm]);// Get available fields for validation/debugging (only in preview/live) - memoized\nconst availableFields=useMemo(()=>collectionInfo?getAvailableSearchFields(collectionInfo.propertyControls):[],[collectionInfo?.propertyControls]);const validFields=useMemo(()=>availableFields&&availableFields.length>0?searchFields.filter(fieldTitle=>availableFields.some(field=>field.title.toLowerCase()===fieldTitle.toLowerCase())):searchFields,[availableFields,searchFields]);const invalidFields=useMemo(()=>availableFields&&availableFields.length>0?searchFields.filter(fieldTitle=>!availableFields.some(field=>field.title.toLowerCase()===fieldTitle.toLowerCase())):[],[availableFields,searchFields]);let paddingLeft=0;const defaultPadding=\"8px 16px 8px 16px\";let curAppliedPadding=0;if(defaultPadding==inputStyles?.padding){curAppliedPadding=16;}else{const paddingArr=inputStyles?.padding.split(\" \");if(paddingArr.length>3){curAppliedPadding=parseInt(paddingArr[3].replace(\"px\",\"\"));}else{curAppliedPadding=parseInt(paddingArr[0].replace(\"px\",\"\"));}}if(iconStyles?.showSearchIcon){paddingLeft=(iconStyles?.iconSize||16)+curAppliedPadding;}else{paddingLeft=curAppliedPadding;}let paddingRight=0;if(defaultPadding==inputStyles?.padding){curAppliedPadding=16;}else{const paddingArr=inputStyles?.padding.split(\" \");if(paddingArr.length>1){curAppliedPadding=parseInt(paddingArr[1].replace(\"px\",\"\"));}else{curAppliedPadding=parseInt(paddingArr[0].replace(\"px\",\"\"));}}if(iconStyles?.showClearButton){paddingRight=(iconStyles?.clearIconSize||16)+curAppliedPadding;}else{paddingRight=curAppliedPadding;}return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:`\n                .${uniqueClassName} {\n                    display: flex;\n                    flex-direction: column;\n                    gap: 8px;\n                    overflow: hidden;\n                }\n\n                .${uniqueClassName}-debug-info {\n                    padding: 8px;\n                    background-color: #e8f5e8;\n                    border-radius: 4px;\n                    font-size: 12px;\n                    color: #2d5a2d;\n                    border: 1px solid #c3e6c3;\n                }\n\n                .${uniqueClassName}-validation-warning {\n                    padding: 12px;\n                    background-color: #f8d7da;\n                    border: 1px solid #f5c6cb;\n                    border-radius: 6px;\n                    color: #721c24;\n                    font-size: 13px;\n                }\n\n                .${uniqueClassName}-validation-title {\n                    font-weight: 500;\n                    margin-bottom: 4px;\n                }\n\n                .${uniqueClassName}-validation-note {\n                    font-size: 12px;\n                    margin-top: 4px;\n                    opacity: 0.8;\n                }\n\n                .${uniqueClassName}-search-container {\n                    display: flex;\n                    flex-direction: column;\n                    gap: 4px;\n                }\n\n                .${uniqueClassName}-label {\n                    font-size: 14px;\n                    font-weight: 500;\n                    display: flex;\n                    align-items: center;\n                    gap: 8px;\n                }\n\n                .${uniqueClassName}-field-badge {\n                    font-size: 11px;\n                    color: #666;\n                    font-weight: 400;\n                    background-color: #f8f9fa;\n                    padding: 2px 6px;\n                    border-radius: 3px;\n                }\n\n                .${uniqueClassName}-input-wrapper {\n                    position: relative;\n                    display: flex;\n                    align-items: center;\n                }\n\n                .${uniqueClassName}-search-icon {\n                    position: absolute;\n                    left: ${iconStyles?.iconPosition||12}px;\n                    z-index: 1;\n                    pointer-events: none;\n                    display: flex;\n                    align-items: center;\n                    height: 100%;\n                }\n\n                .${uniqueClassName}-input {\n                    outline: none;\n                    transition: border-color 0.2s ease, box-shadow 0.2s ease;\n                    width: 100%;\n                    color: ${inputStyles?.textColor||\"#333\"};\n                }\n\n                .${uniqueClassName}-input::placeholder {\n                    color: ${inputStyles?.placeholderColor||\"#999\"};\n                }\n\n                .${uniqueClassName}-input:hover:not(:focus) {\n                    border-color: ${inputStyles?.hoverBorderColor||inputStyles?.selectedBorderColor||\"#007AFF\"} !important;\n                    background-color: ${inputStyles?.hoverBackgroundColor||\"#f8f9fa\"} !important;\n                    color: ${inputStyles?.hoverTextColor||inputStyles?.textColor||\"#333\"} !important;\n                }\n\n                .${uniqueClassName}-input:focus {\n                    border-color: ${inputStyles?.selectedBorderColor||\"#007AFF\"} !important;\n                    background-color: ${inputStyles?.selectedBackgroundColor||\"#fff\"} !important;\n                    color: ${inputStyles?.selectedTextColor||inputStyles?.textColor||\"#333\"} !important;\n                }\n\n                .${uniqueClassName}-clear-button {\n                    position: absolute;\n                    right: ${iconStyles?.clearIconPosition||8}px;\n                    background: none;\n                    border: none;\n                    cursor: pointer;\n                    padding: 4px;\n                    display: flex;\n                    align-items: center;\n                    justify-content: center;\n                    border-radius: 50%;\n                    background-color: ${iconStyles?.clearIconBgColor||\"transparent\"};\n                    transition: background-color 0.2s ease;\n\n                }\n\n                .${uniqueClassName}-clear-button:hover {\n                    background-color: ${iconStyles?.clearIconHoverBgColor||\"#f3f4f6\"};\n                }\n            `}),/*#__PURE__*/_jsxs(\"div\",{className:uniqueClassName,style:{...containerStyles,...containerStyles?.border,...style},children:[debugMode&&collectionInfo&&state&&state.debug&&/*#__PURE__*/_jsxs(\"div\",{className:`${uniqueClassName}-debug-info`,children:[/*#__PURE__*/_jsx(\"div\",{children:/*#__PURE__*/_jsx(\"strong\",{children:\"CMS MultiFilter Search - SIMPLIFIED\"})}),/*#__PURE__*/_jsxs(\"div\",{children:[\"Collection: \",collectionInfo.collectionName,\" (\",collectionInfo.collectionId,\")\"]}),/*#__PURE__*/_jsx(\"div\",{children:\"Store Initialized: ✅\"}),/*#__PURE__*/_jsx(\"div\",{children:\"Store Connected: ✅\"}),/*#__PURE__*/_jsxs(\"div\",{children:[\"Property Controls Found:\",\" \",Object.keys(collectionInfo&&collectionInfo.propertyControls||{}).length]}),/*#__PURE__*/_jsxs(\"div\",{children:[\"Available Fields:\",\" \",availableFields.map(f=>f.title).join(\", \")||\"None\"]}),validFields.length>0&&/*#__PURE__*/_jsxs(\"div\",{children:[\"✅ Valid Search Fields: \",validFields.join(\", \")]}),invalidFields.length>0&&/*#__PURE__*/_jsxs(\"div\",{children:[\"⚠ Invalid Search Fields:\",\" \",invalidFields.join(\", \")]}),state.searchTerm&&/*#__PURE__*/_jsxs(\"div\",{children:['Active Search: \"',state.searchTerm,'\" (Always OR across fields)']})]}),collection&&collectionInfo&&invalidFields.length>0&&/*#__PURE__*/_jsxs(\"div\",{className:`${uniqueClassName}-validation-warning`,children:[/*#__PURE__*/_jsx(\"div\",{className:`${uniqueClassName}-validation-title`,children:\"Invalid Search Fields:\"}),/*#__PURE__*/_jsx(\"div\",{children:invalidFields.join(\", \")}),/*#__PURE__*/_jsxs(\"div\",{className:`${uniqueClassName}-validation-note`,children:[\"Available:\",\" \",availableFields.map(f=>f.title).join(\", \")||\"None found\"]})]}),/*#__PURE__*/_jsxs(\"div\",{className:`${uniqueClassName}-search-container`,children:[labelStyles?.labelToggle&&/*#__PURE__*/_jsxs(\"label\",{className:`${uniqueClassName}-label`,style:{...labelStyles,...labelStyles?.fontFamily,fontSize:labelStyles?.fontFamily?.fontSize||\"14px\"},children:[searchDisplayTitle,searchFields.length>0&&debugMode&&/*#__PURE__*/_jsxs(\"span\",{className:`${uniqueClassName}-field-badge`,children:[searchFields.length,\" field\",searchFields.length!==1?\"s\":\"\",\" • OR\"]})]}),/*#__PURE__*/_jsxs(\"div\",{className:`${uniqueClassName}-input-wrapper`,children:[iconStyles?.showSearchIcon&&/*#__PURE__*/_jsx(\"div\",{className:`${uniqueClassName}-search-icon`,children:/*#__PURE__*/_jsx(\"svg\",{width:iconStyles?.iconSize||16,height:iconStyles?.iconSize||16,viewBox:\"0 0 24 24\",fill:\"none\",style:{color:iconStyles?.iconColor||\"#6B7280\"},children:/*#__PURE__*/_jsx(\"path\",{d:\"M21 21L16.514 16.506M19 10.5C19 15.194 15.194 19 10.5 19S2 15.194 2 10.5 5.806 2 10.5 2 19 5.806 19 10.5Z\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})})}),/*#__PURE__*/_jsx(\"input\",{type:\"text\",placeholder:dynamicPlaceholder,value:inputValue,onChange:e=>setInputValue(e.target.value),className:`${uniqueClassName}-input`,style:{...inputStyles,...inputStyles?.border,paddingLeft,paddingRight,...inputStyles?.fontFamily,fontSize:inputStyles?.fontFamily?.fontSize||\"14px\"}}),iconStyles?.showClearButton&&inputValue&&/*#__PURE__*/_jsx(\"button\",{onClick:handleClearSearch,className:`${uniqueClassName}-clear-button`,children:/*#__PURE__*/_jsx(\"svg\",{width:iconStyles?.clearIconSize||16,height:iconStyles?.clearIconSize||16,viewBox:\"0 0 24 24\",fill:\"none\",style:{color:iconStyles?.clearIconColor||\"#6B7280\"},children:/*#__PURE__*/_jsx(\"path\",{d:\"M18 6L6 18M6 6L18 18\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})})})]})]})]})]});}// Property Controls - SIMPLIFIED\naddPropertyControls(CMSSearch,{collection:{type:ControlType.Slot,title:\"Collection\",description:\"Connect your CMS Collection List component here\",maxCount:1},searchFields:{type:ControlType.Array,title:\"Search Fields\",description:\"CMS field names to search through (uses OR logic across fields)\",control:{type:ControlType.String,placeholder:\"Field title (e.g., Title, Content, Description)\"},defaultValue:[\"Title\"]},searchDisplayTitle:{type:ControlType.String,title:\"Display Title\",description:\"Label shown in facet chips (e.g., 'Search', 'Find', 'Query')\",defaultValue:\"Search\",placeholder:\"Search\"},placeholder:{type:ControlType.String,title:\"Search Placeholder\",defaultValue:\"Search...\",description:\"Use {count} to show current result count\"},debounceDelay:{type:ControlType.Number,title:\"Debounce Delay (ms)\",description:\"Wait time before triggering search (prevents too many requests)\",min:0,max:1e3,step:50,defaultValue:300},containerStyles:{type:ControlType.Object,title:\"Container Styles\",description:\"Styling for outer container (background, padding, borders)\",controls:{backgroundColor:{type:ControlType.Color,title:\"Background Color\",description:\"Background color for search container\",defaultValue:\"transparent\",optional:true},padding:{type:ControlType.Padding,title:\"Padding\",description:\"Inner spacing for search container\",defaultValue:\"0px\"},border:{type:ControlType.Border,title:\"Border\",description:\"Border for search container\",defaultValue:{borderWidth:0,borderStyle:\"solid\",borderColor:\"rgba(0, 0, 0, 0)\"}},borderRadius:{type:ControlType.BorderRadius,title:\"Border Radius\",description:\"Corner rounding for search container\",defaultValue:\"0px\"}},defaultValue:[{backgroundColor:\"transparent\"}]},labelStyles:{type:ControlType.Object,title:\"Label Styles\",description:\"Styling for search label text (e.g., 'Search')\",controls:{labelToggle:{type:ControlType.Boolean,title:\"Toggle\",description:\"Show or hide the search label\",enabledTitle:\"Show\",disabledTitle:\"Hide\"},fontFamily:{type:ControlType.Font,title:\"Font\",description:\"Typography settings for label text\",controls:\"extended\",defaultValue:{fontSize:\"14px\"},hidden:props=>!props.labelToggle},padding:{type:ControlType.Padding,title:\"Padding\",description:\"Spacing around label text\",defaultValue:\"0px 0px 8px 0px\",hidden:props=>!props.labelToggle},color:{type:ControlType.Color,title:\"Color\",description:\"Label text color\",defaultValue:\"#333\",optional:true,hidden:props=>!props.labelToggle}},defaultValue:[{padding:\"8px 0 0 8px\",color:\"#333\"}]},inputStyles:{type:ControlType.Object,title:\"Input Styles\",description:\"Styling for the search input field\",controls:{fontFamily:{type:ControlType.Font,title:\"Font\",description:\"Typography settings for input text\",controls:\"extended\",defaultValue:{fontSize:\"14px\"}},padding:{type:ControlType.Padding,title:\"Padding\",description:\"Inner spacing within input field\",defaultValue:\"8px 16px 8px 16px\"},placeholderColor:{type:ControlType.Color,title:\"Placeholder Color\",description:\"Color of placeholder text\",defaultValue:\"#999\",optional:true},textColor:{type:ControlType.Color,title:\"Text Color\",description:\"Default input text color\",defaultValue:\"#ccc\",optional:true},backgroundColor:{type:ControlType.Color,title:\"Background Color\",description:\"Default input background color\",defaultValue:\"white\",optional:true},border:{type:ControlType.Border,title:\"Border\",description:\"Input field border styling\",defaultValue:{borderWidth:1,borderStyle:\"solid\",borderColor:\"#dee2e6\"}},borderRadius:{type:ControlType.BorderRadius,title:\"Border Radius\",description:\"Corner rounding for input field\",defaultValue:\"6px\"},selectedTextColor:{type:ControlType.Color,title:\"Focus Text Color\",description:\"Text color when input is focused\",defaultValue:\"#333\",optional:true},selectedBackgroundColor:{type:ControlType.Color,title:\"Focus Background\",description:\"Background color when focused\",defaultValue:\"white\",optional:true},selectedBorderColor:{type:ControlType.Color,title:\"Focus Border Color\",description:\"Border color when focused\",defaultValue:\"#000\"},hoverTextColor:{type:ControlType.Color,title:\"Hover Text Color\",description:\"Text color on hover\",defaultValue:\"#333\",optional:true},hoverBackgroundColor:{type:ControlType.Color,title:\"Hover Background\",description:\"Background color on hover\",defaultValue:\"#f8f9fa\",optional:true},hoverBorderColor:{type:ControlType.Color,title:\"Hover Border Color\",description:\"Border color on hover\",defaultValue:\"#007AFF\",optional:true}},defaultValue:[{backgroundColor:\"#fff\",borderRadius:\"6px\",selectedBorderColor:\"#000\"}]},iconStyles:{type:ControlType.Object,title:\"Icon Styles\",description:\"Styling for search and clear icons\",controls:{showSearchIcon:{type:ControlType.Boolean,title:\"Show Search Icon\",description:\"Display search icon in input field\",defaultValue:true},iconSize:{type:ControlType.Number,title:\"Search Icon Size\",description:\"Size of search icon\",defaultValue:16,min:12,max:50,step:1,unit:\"px\",hidden:props=>props.showSearchIcon===false},iconPosition:{type:ControlType.Number,title:\"Search Icon Position\",description:\"Distance from left edge\",defaultValue:12,min:0,max:100,step:1,unit:\"px\",hidden:props=>props.showSearchIcon===false},iconColor:{type:ControlType.Color,title:\"Search Icon Color\",description:\"Color of search icon\",defaultValue:\"#6B7280\",hidden:props=>props.showSearchIcon===false},showClearButton:{type:ControlType.Boolean,title:\"Show Clear Button\",description:\"Display X button to clear search\",defaultValue:true,hidden:props=>props.showSearchIcon===false},clearIconSize:{type:ControlType.Number,title:\"Clear Icon Size\",description:\"Size of clear (X) icon\",defaultValue:16,min:12,max:50,step:1,unit:\"px\",hidden:props=>props.showSearchIcon===false||props.showClearButton===false},clearIconPosition:{type:ControlType.Number,title:\"Clear Icon Position\",description:\"Distance from right edge\",defaultValue:8,min:0,max:100,step:1,unit:\"px\",hidden:props=>props.showSearchIcon===false||props.showClearButton===false},clearIconColor:{type:ControlType.Color,title:\"Clear Icon Color\",description:\"Color of clear icon\",defaultValue:\"#6B7280\",hidden:props=>props.showSearchIcon===false||props.showClearButton===false},clearIconBgColor:{type:ControlType.Color,title:\"Clear Icon Background\",description:\"Background color for clear button\",defaultValue:\"transparent\",hidden:props=>props.showSearchIcon===false||props.showClearButton===false},clearIconHoverColor:{type:ControlType.Color,title:\"Clear Icon Hover Color\",description:\"Icon color on hover\",defaultValue:\"#374151\",hidden:props=>props.showSearchIcon===false||props.showClearButton===false},clearIconHoverBgColor:{type:ControlType.Color,title:\"Clear Icon Hover Background Color\",defaultValue:\"#f3f4f6\",hidden:props=>props.showSearchIcon===false||props.showClearButton===false}},defaultValue:{showSearchIcon:true,showClearButton:true,iconSize:16,iconColor:\"#6B7280\"}},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)\"},urlPrefix:{type:ControlType.String,title:\"URL Prefix\",description:\"Prefix for URL parameter. If set, uses '{prefix}_search' instead of 'search'\",placeholder:\"e.g., 'product' creates '?product_search=...'\",optional:true},debugMode:{type:ControlType.Boolean,title:\"🛠 Debug Mode\",defaultValue:false}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CMSSearch\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any\",\"framerDisableUnlink\":\"\",\"framerSupportedLayoutHeight\":\"any\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CMSSearch.map","// Shared utility functions for CMS Filter components\n// Extracted from CMSFilters.tsx for better modularity and DRY principles\n// @ts-ignore-next-line\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useQueryData}from\"framer\";// Helper to get option values and titles from config\nexport const getOptionData=config=>{if(!config.options||config.options.length===0){return{values:[],titles:[],optionMap:new Map};}// Handle both old format (string[]) and new format (object[])\nconst values=[];const titles=[];const optionMap=new Map// value -> title mapping\n;config.options.forEach(option=>{if(typeof option===\"string\"){// Backward compatibility: old format\nvalues.push(option);titles.push(option);optionMap.set(option,option);}else if(option&&typeof option===\"object\"&&option.value&&option.title){// New format: {value, title}\nvalues.push(option.value);titles.push(option.title);optionMap.set(option.value,option.title);}});return{values,titles,optionMap};};// Operator definitions by field type - renamed to Match\nexport const getMatchOptions=(fieldType,filterType)=>{switch(filterType){case\"text\":return{options:[\"contains\",\"not_contains\",\"starts_with\",\"ends_with\",\"equals\",\"not_equals\",\"is_set\",\"is_not_set\"],titles:[\"Contains\",\"Doesn't contain\",\"Starts with\",\"Ends with\",\"Equals\",\"Doesn't equal\",\"Is set\",\"Is not set\"],default:\"contains\"};case\"dropdown\":return{options:[\"contains\",\"not_contains\",\"starts_with\",\"ends_with\",\"equals\",\"not_equals\",\"greater_than\",\"less_than\",\"greater_than_or_equal\",\"less_than_or_equal\",\"is_set\",\"is_not_set\"],titles:[\"Contains\",\"Doesn't contain\",\"Starts with\",\"Ends with\",\"Equals\",\"Doesn't equal\",\"Greater than\",\"Less than\",\"Greater than or equal\",\"Less than or equal\",\"Is set\",\"Is not set\"],default:\"equals\"};case\"number\":return{options:[\"equals\",\"not_equals\",\"greater_than\",\"less_than\",\"greater_than_or_equal\",\"less_than_or_equal\",\"is_set\",\"is_not_set\"],titles:[\"Equals\",\"Doesn't equal\",\"Greater than\",\"Less than\",\"Greater than or equal\",\"Less than or equal\",\"Is set\",\"Is not set\"],default:\"equals\"};case\"toggle\":return{options:[// Boolean operators (for boolean fields)\n\"is_enabled\",\"is_disabled\",// Value operators (works for all field types)\n\"has_value\",\"is_empty\",\"is_set\",\"is_not_set\"],titles:[// Boolean\n\"Enabled (true)\",\"Disabled (false)\",// Value\n\"Has Value\",\"Is Empty\",\"Is Set (not null)\",\"Is Not Set (null)\"],default:\"is_enabled\"};case\"cms-enum\":return{options:[\"equals\",\"not_equals\",\"is_set\",\"is_not_set\"],titles:[\"Equals\",\"Doesn't equal\",\"Is set\",\"Is not set\"],default:\"equals\"};case\"single-ref\":return{options:[\"equals\",\"not_equals\",\"is_set\",\"is_not_set\"],titles:[\"Equals\",\"Doesn't equal\",\"Is set\",\"Is not set\"],default:\"equals\"};case\"range\":return{options:[\"between\"],titles:[\"Between\"],default:\"between\"};default:return{options:[\"equals\"],titles:[\"Equals\"],default:\"equals\"};}};// Helper to get the appropriate match value based on filter type\nexport const getActiveMatch=config=>{// Defensive check for missing filterType\nif(!config.filterType){console.warn(\"getActiveMatch: config.filterType is undefined, defaulting to 'dropdown'\",config);return config.matchText||\"equals\";}switch(config.filterType){case\"text\":return config.matchText||\"contains\";case\"dropdown\":return config.matchText||\"equals\"// Use matchText for dropdown too\n;case\"number\":return config.matchNumber||\"equals\";case\"toggle\":return config.matchToggle||\"is_enabled\";case\"range\":return\"between\"// Always between for range\n;case\"cms-enum\":return config.matchEnum||\"equals\"// Use matchEnum for CMS enum\n;case\"single-ref\":return config.matchEnum||\"equals\";default:return config.match||\"equals\";}};// Helper to auto-detect filter type based on CMS field type\nexport const getRecommendedFilterType=cmsFieldType=>{switch(cmsFieldType){case\"string\":case\"richtext\":return\"text\"// or \"toggle\" for simple on/off filtering\n;case\"number\":return\"range\"// or \"number\" or \"toggle\" for threshold filtering\n;case\"enum\":return\"cms-enum\";case\"collectionreference\":return\"single-ref\";case\"multicollectionreference\":return\"multi-ref\";case\"boolean\":return\"toggle\";default:return\"text\";}};// Helper to get count for each CMS dropdown option\nexport const getOptionCounts=(collectionId,fieldKey,enumValues,originalQuery)=>{const counts={};// For each enum value, create a query to count items with that value\nenumValues.forEach(enumValue=>{try{const countQuery={...originalQuery,where:originalQuery.where?{left:originalQuery.where,operator:\"and\",right:{left:{collection:collectionId,name:fieldKey,type:\"Identifier\"},operator:\"==\",right:{type:\"LiteralValue\",value:enumValue},type:\"BinaryOperation\"},type:\"BinaryOperation\"}:{left:{collection:collectionId,name:fieldKey,type:\"Identifier\"},operator:\"==\",right:{type:\"LiteralValue\",value:enumValue},type:\"BinaryOperation\"},select:[]};// Use the same count hook as the main collection\nconst countData=useQueryData(countQuery);counts[enumValue]=countData.length;}catch(error){// If count query fails, default to 0\ncounts[enumValue]=0;}});return counts;};// Helper to format count display using template\nexport const formatCountDisplay=(option,count,template=\"[{count}]\",countStyle)=>{if(!template||!template.includes(\"{count}\")){return{text:option};}const countText=template.replace(\"{count}\",count.toString());// If template has styling, create a styled element\nif(countStyle&&Object.keys(countStyle).length>0){const styledCount=/*#__PURE__*/_jsx(\"span\",{style:{color:countStyle.color,backgroundColor:countStyle.backgroundColor,padding:countStyle.padding,borderRadius:countStyle.borderRadius,margin:countStyle.margin,...countStyle.font,fontSize:countStyle?.font?.fontSize,...countStyle.size!==0&&{width:countStyle.size,height:countStyle.size,placeContent:\"center\",textAlign:\"center\",display:\"inline-block\"}},children:countText});return{text:option,countElement:styledCount};}// Simple text replacement\nreturn{text:`${option} ${countText}`};};// Helper to validate toggle operator against field type\nexport const getValidToggleOperators=fieldType=>{switch(fieldType){case\"boolean\":return[\"is_enabled\",\"is_disabled\",\"is_set\",\"is_not_set\",\"has_value\",\"is_empty\"];case\"number\":return[\"has_value\",\"is_empty\",\"is_set\",\"is_not_set\",\"equals\",\"not_equals\",\"greater_than\",\"less_than\",\"greater_than_or_equal\",\"less_than_or_equal\"];case\"string\":case\"richtext\":return[\"is_set\",\"is_not_set\",\"has_value\",\"is_empty\",\"contains\",\"not_contains\",\"starts_with\",\"ends_with\",\"equals\",\"not_equals\"];default:return[\"is_set\",\"is_not_set\",\"has_value\",\"is_empty\"];}};// Better value validation for different filter types including range and toggle\nexport const hasValidValue=(config,value)=>{const activeMatch=getActiveMatch(config);// 1. FIELD NAME VALIDATION - must have field name\nif(!config.fieldName||!config.fieldName.trim()){return false;}// 2. Operators that don't need values\nif([\"is_set\",\"is_not_set\"].includes(activeMatch)){return true;}// 3. TOGGLE SPECIAL LOGIC - only apply filter when user explicitly enables it\nif(config.filterType===\"toggle\"){// Tri-state support: null/undefined = ANY (no filter), true = ON, false = OFF\nif(config.toggleTriState){// Apply filter when value is explicitly true or false (not null/undefined)\nreturn value===true||value===false;}// Binary toggle: Only apply filter when toggle is ON (value === true)\n// This prevents filter from applying on page load\nreturn value===true;}// 4. Handle range filters\nif(config.filterType===\"range\"){if(!value||typeof value!==\"object\"){return false;}return value.min!==undefined&&!isNaN(value.min)||value.max!==undefined&&!isNaN(value.max);}// Handle dropdown with multiple selection\nif(config.filterType===\"dropdown\"&&config.allowMultiple){if(!Array.isArray(value)){return false;}return value.length>0;}// 5. Handle CMS enum, single-ref, and multi-ref with multiple selection\nif((config.filterType===\"cms-enum\"||config.filterType===\"single-ref\"||config.filterType===\"multi-ref\")&&(config.allowMultiple||config.multiRefAllowMultiple||config.singleRefAllowMultiple)){if(Array.isArray(value)){return value.length>0;}// If it's a string (single value), use string check\nif(typeof value===\"string\"){return value.trim()!==\"\";}}// 6. Handle null/undefined\nif(value===null||value===undefined){return false;}// 7. Handle string values\nif(typeof value===\"string\"){return value.trim()!==\"\";}// 8. Handle number values\nif(typeof value===\"number\"){return!isNaN(value);}// 9. Handle boolean values\nif(typeof value===\"boolean\"){return true// Booleans are always valid\n;}// 10. Default: value exists\nreturn true;};\nexport const __FramerMetadata__ = {\"exports\":{\"getActiveMatch\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"formatCountDisplay\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getOptionData\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getOptionCounts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getMatchOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"hasValidValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getRecommendedFilterType\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getValidToggleOperators\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./filter_utils.map","// TextFilter component for CMS Filter system\n// Extracted from CMSFilters.tsx for better modularity\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{getActiveMatch}from\"https://framerusercontent.com/modules/gpP9NQZkGM08zua7fzDA/ufvjGg4utuUHzowwKSUT/filter_utils.js\";/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerDisableUnlink\n */export function TextFilter({config,value,onChange,debugLevel,filterInputStyles,uniqueClassName}){const activeMatch=getActiveMatch(config);// No input needed for is_set/is_not_set operators\nif(activeMatch===\"is_set\"||activeMatch===\"is_not_set\"){return /*#__PURE__*/_jsx(\"div\",{style:{padding:8,fontSize:12,color:\"#666\",fontStyle:\"italic\"},children:\"No input needed - checks if field has value\"});}return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:`\n              .cms-filter-input.${uniqueClassName} {                  \n  ${(()=>{if(typeof filterInputStyles?.border===\"string\"){return`border: ${filterInputStyles.border};`;}else if(filterInputStyles?.border){const border=filterInputStyles.border;return`\n        ${border.borderWidth!==undefined?`border-width: ${border.borderWidth}px;`:\"\"}\n        ${border.borderTopWidth!==undefined?`border-top-width: ${border.borderTopWidth}px;`:\"\"}\n        ${border.borderBottomWidth!==undefined?`border-bottom-width: ${border.borderBottomWidth}px;`:\"\"}\n        ${border.borderLeftWidth!==undefined?`border-left-width: ${border.borderLeftWidth}px;`:\"\"}\n        ${border.borderRightWidth!==undefined?`border-right-width: ${border.borderRightWidth}px;`:\"\"}\n        ${border.borderStyle?`border-style: ${border.borderStyle};`:\"border-style: solid;\"}\n        ${border.borderColor?`border-color: ${border.borderColor};`:\"border-color: #dee2e6;\"}\n      `;}else{return\"border: none;\";}})()}\n                  transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;\n              }\n              .cms-filter-input.${uniqueClassName}:hover:not(:focus) {\n                  border-color: ${filterInputStyles?.hoverBorderColor||filterInputStyles?.selectedBorderColor||\"#007AFF\"} !important;\n                  background-color: ${filterInputStyles?.hoverBackgroundColor||\"#f8f9fa\"} !important;\n                  color: ${filterInputStyles?.hoverTextColor||filterInputStyles?.color||\"#333\"} !important;\n              }\n              .cms-filter-input.${uniqueClassName}:focus {\n                  border-color: ${filterInputStyles?.selectedBorderColor||\"#007AFF\"} !important;\n                  background-color: ${filterInputStyles?.selectedBackgroundColor||\"#fff\"} !important;\n                  color: ${filterInputStyles?.selectedTextColor||\"#333\"} !important;\n              }\n          `}),/*#__PURE__*/_jsx(\"input\",{className:`${uniqueClassName} cms-filter-input`,type:\"text\",placeholder:config.placeholderTextInput?config.placeholderTextInput:`Enter ${config.title.toLowerCase()}...`,value:value||\"\",onChange:e=>onChange(e.target.value),style:{padding:\"8px 12px\",borderRadius:4,outline:\"none\",width:\"100%\",lineHeight:1.2,...filterInputStyles,...filterInputStyles.font,fontSize:filterInputStyles?.font?.fontSize||\"13px\"}})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"TextFilter\":{\"type\":\"reactComponent\",\"name\":\"TextFilter\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any\",\"framerDisableUnlink\":\"\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TextFilter.map","// NumberFilter component for CMS Filter system\n// Extracted from CMSFilters.tsx for better modularity\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{getActiveMatch}from\"https://framerusercontent.com/modules/gpP9NQZkGM08zua7fzDA/ufvjGg4utuUHzowwKSUT/filter_utils.js\";/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerDisableUnlink\n */export function NumberFilter({config,value,onChange,debugLevel,filterInputStyles,uniqueClassName}){const activeMatch=getActiveMatch(config);// No input needed for is_set/is_not_set operators\nif(activeMatch===\"is_set\"||activeMatch===\"is_not_set\"){return /*#__PURE__*/_jsx(\"div\",{style:{padding:8,fontSize:12,color:\"#666\",fontStyle:\"italic\"},children:\"No input needed - checks if field has value\"});}return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:`\n                .cms-filter-input.${uniqueClassName} {               \n  ${(()=>{if(typeof filterInputStyles?.border===\"string\"){return`border: ${filterInputStyles.border};`;}else if(filterInputStyles?.border){const border=filterInputStyles.border;return`\n        ${border.borderWidth!==undefined?`border-width: ${border.borderWidth}px;`:\"\"}\n        ${border.borderTopWidth!==undefined?`border-top-width: ${border.borderTopWidth}px;`:\"\"}\n        ${border.borderBottomWidth!==undefined?`border-bottom-width: ${border.borderBottomWidth}px;`:\"\"}\n        ${border.borderLeftWidth!==undefined?`border-left-width: ${border.borderLeftWidth}px;`:\"\"}\n        ${border.borderRightWidth!==undefined?`border-right-width: ${border.borderRightWidth}px;`:\"\"}\n        ${border.borderStyle?`border-style: ${border.borderStyle};`:\"border-style: solid;\"}\n        ${border.borderColor?`border-color: ${border.borderColor};`:\"border-color: #dee2e6;\"}\n      `;}else{return\"border: none;\";}})()}\n                    transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;\n                }\n                .cms-filter-input.${uniqueClassName}:hover:not(:focus) {\n                    border-color: ${filterInputStyles?.hoverBorderColor||filterInputStyles?.selectedBorderColor||\"#007AFF\"} !important;\n                    background-color: ${filterInputStyles?.hoverBackgroundColor||\"#f8f9fa\"} !important;\n                    color: ${filterInputStyles?.hoverTextColor||filterInputStyles?.color||\"#333\"} !important;\n                }\n                .cms-filter-input.${uniqueClassName}:focus {\n                    border-color: ${filterInputStyles?.selectedBorderColor||\"#007AFF\"} !important;\n                    background-color: ${filterInputStyles?.selectedBackgroundColor||\"#fff\"} !important;\n                    color: ${filterInputStyles?.selectedTextColor||\"#333\"} !important;\n                }\n            `}),/*#__PURE__*/_jsx(\"input\",{className:`${uniqueClassName} cms-filter-input`,type:\"number\",placeholder:config.placeholderNumberInput?config.placeholderNumberInput:`Enter ${config.title.toLowerCase()}...`,value:value||\"\",onChange:e=>{const stringValue=e.target.value.trim();if(stringValue===\"\"){onChange(\"\");}else{const numValue=parseFloat(stringValue);onChange(isNaN(numValue)?\"\":numValue);}},style:{padding:\"8px 12px\",borderRadius:4,outline:\"none\",width:\"100%\",lineHeight:1.2,...filterInputStyles,...filterInputStyles.font,fontSize:filterInputStyles?.font?.fontSize||\"14px\"}})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"NumberFilter\":{\"type\":\"reactComponent\",\"name\":\"NumberFilter\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any\",\"framerSupportedLayoutWidth\":\"any\",\"framerDisableUnlink\":\"\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./NumberFilter.map","// SelectFilter component for div-based custom dropdowns\n// Extracted from DropdownFilter.tsx for better maintainability\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{getActiveMatch,getOptionData}from\"https://framerusercontent.com/modules/gpP9NQZkGM08zua7fzDA/ufvjGg4utuUHzowwKSUT/filter_utils.js\";import{useState,useRef,useEffect}from\"react\";/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerDisableUnlink\n */export function SelectFilter({config,value,onChange,debugLevel,filterSelectStyles,uniqueClassName}){const[isOpen,setIsOpen]=useState(false);const dropdownRef=useRef(null);const activeMatch=getActiveMatch(config);// Close dropdown when clicking outside\nuseEffect(()=>{const handleClickOutside=event=>{if(dropdownRef.current&&!dropdownRef.current.contains(event.target)){setIsOpen(false);}};if(isOpen){document.addEventListener(\"mousedown\",handleClickOutside);}return()=>{document.removeEventListener(\"mousedown\",handleClickOutside);};},[isOpen]);// No input needed for is_set/is_not_set operators\nif(activeMatch===\"is_set\"||activeMatch===\"is_not_set\"){return /*#__PURE__*/_jsx(\"div\",{style:{padding:8,fontSize:12,color:\"#666\",fontStyle:\"italic\"},children:\"No input needed - checks if field has value\"});}const{values,titles}=getOptionData(config);if(values.length===0){return /*#__PURE__*/_jsx(\"div\",{style:{padding:8,fontSize:12,color:\"#dc3545\",fontStyle:\"italic\",backgroundColor:\"#f8d7da\",borderRadius:4},children:\"No options configured. Please add options to the filter configuration.\"});}if(config.allowMultiple){const selectedValues=Array.isArray(value)?value:[];const toggleOption=optionValue=>{const newSelected=selectedValues.includes(optionValue)?selectedValues.filter(v=>v!==optionValue):[...selectedValues,optionValue];onChange(newSelected);};const getDisplayText=()=>{if(selectedValues.length===0)return config.placeholderDropdownInput?config.placeholderDropdownInput:`Select ${config.title}`;if(selectedValues.length===1){const idx=values.indexOf(selectedValues[0]);return titles[idx]||selectedValues[0];}return`${selectedValues.length} selected`;};const selectControls=filterSelectStyles?.selectControls||{};const optionControls=filterSelectStyles?.optionControls||{};return /*#__PURE__*/_jsxs(\"div\",{ref:dropdownRef,style:{position:\"relative\",width:\"100%\"},children:[/*#__PURE__*/_jsx(\"style\",{children:`\n                    .dropdown-trigger.${uniqueClassName} {\n                        position: relative;\n                        padding: ${selectControls?.padding||\"8px 32px 8px 12px\"};\n                        border-radius: ${selectControls?.borderRadius||\"4\"};\n                        background-color: ${selectControls?.backgroundColor||\"#fff\"};\n                        color: ${selectControls?.color||\"#333\"};\n                    ${(()=>{if(typeof selectControls?.border===\"string\"){return`border: ${selectControls.border};`;}else if(selectControls?.border){const border=selectControls.border;return`\n        ${border.borderWidth!==undefined?`border-width: ${border.borderWidth}px;`:\"\"}\n        ${border.borderTopWidth!==undefined?`border-top-width: ${border.borderTopWidth}px;`:\"\"}\n        ${border.borderBottomWidth!==undefined?`border-bottom-width: ${border.borderBottomWidth}px;`:\"\"}\n        ${border.borderLeftWidth!==undefined?`border-left-width: ${border.borderLeftWidth}px;`:\"\"}\n        ${border.borderRightWidth!==undefined?`border-right-width: ${border.borderRightWidth}px;`:\"\"}\n        ${border.borderStyle?`border-style: ${border.borderStyle};`:\"border-style: solid;\"}\n        ${border.borderColor?`border-color: ${border.borderColor};`:\"border-color: #dee2e6;\"}\n      `;}else{return\"border: none;\";}})()}\n                        transition: border-color 0.2s ease, background-color 0.2s ease;\n                        cursor: pointer;\n                    }\n                    .dropdown-trigger.${uniqueClassName}:hover {\n                        border-color: ${selectControls?.hoverBorderColor||\"#007AFF\"};\n                        background-color: ${selectControls?.hoverBackgroundColor||\"#f8f9fa\"};\n                        color: ${selectControls?.hoverTextColor||\"#007AFF\"};\n                    }\n                    .dropdown-trigger.${uniqueClassName}.open {\n                        border-color: ${selectControls?.selectedBorderColor||\"#007AFF\"};\n                        background-color: ${selectControls?.selectedBackgroundColor||\"#007AFF\"};\n                        color: ${selectControls?.selectedTextColor||\"#fff\"};\n                    }\n                    .dropdown-options.${uniqueClassName} {\n                        margin-top: ${selectControls?.marginTop||\"4\"}px;\n                        padding: ${optionControls?.dropdownPadding||\"0px\"};\n                        background-color: ${optionControls?.dropdownBackgroundColor||\"#fff\"};\n                        ${(()=>{if(typeof optionControls?.dropdownBorder===\"string\"){return`border: ${optionControls.dropdownBorder};`;}else if(optionControls?.dropdownBorder){const border=optionControls.dropdownBorder;return`\n            ${border.borderWidth!==undefined?`border-width: ${border.borderWidth}px;`:\"\"}\n            ${border.borderTopWidth!==undefined?`border-top-width: ${border.borderTopWidth}px;`:\"\"}\n            ${border.borderBottomWidth!==undefined?`border-bottom-width: ${border.borderBottomWidth}px;`:\"\"}\n            ${border.borderLeftWidth!==undefined?`border-left-width: ${border.borderLeftWidth}px;`:\"\"}\n            ${border.borderRightWidth!==undefined?`border-right-width: ${border.borderRightWidth}px;`:\"\"}\n            ${border.borderStyle?`border-style: ${border.borderStyle};`:\"border-style: solid;\"}\n            ${border.borderColor?`border-color: ${border.borderColor};`:\"border-color: #dee2e6;\"}\n        `;}else{return\"border: none;\";}})()}\n                        border-radius: ${optionControls?.dropdownBorderRadius||\"3px\"};\n                        max-height: ${optionControls?.maxHeight||\"200\"}px;\n                        position: absolute;\n                        width: 100%;\n                        overflow-y: auto;\n                        z-index: 1000;\n                        box-shadow: 0 2px 8px rgba(0,0,0,0.15);\n                    }\n                    .dropdown-option.${uniqueClassName} {\n                        font-family: ${optionControls?.optionFont?.fontFamily||\"\"};\n                        font-weight: ${optionControls?.optionFont?.fontWeight||\"normal\"};\n                        font-style: ${optionControls?.optionFont?.fontStyle||\"normal\"};\n                        font-size: ${optionControls?.optionFontSize||\"14px\"};\n                        padding: ${optionControls?.optionPadding||\"8px 12px\"};\n                        margin: ${optionControls?.optionMargin||\"0\"};\n                        background-color: ${optionControls?.optionBackgroundColor||\"#fff\"};\n                        color: ${optionControls?.optionColor||\"#333\"};\n                    ${(()=>{if(typeof optionControls?.optionBorder===\"string\"){return`border: ${optionControls.optionBorder};`;}else if(optionControls?.optionBorder){const border=optionControls.optionBorder;return`\n        ${border.borderWidth!==undefined?`border-width: ${border.borderWidth}px;`:\"\"}\n        ${border.borderTopWidth!==undefined?`border-top-width: ${border.borderTopWidth}px;`:\"\"}\n        ${border.borderBottomWidth!==undefined?`border-bottom-width: ${border.borderBottomWidth}px;`:\"\"}\n        ${border.borderLeftWidth!==undefined?`border-left-width: ${border.borderLeftWidth}px;`:\"\"}\n        ${border.borderRightWidth!==undefined?`border-right-width: ${border.borderRightWidth}px;`:\"\"}\n        ${border.borderStyle?`border-style: ${border.borderStyle};`:\"border-style: solid;\"}\n        ${border.borderColor?`border-color: ${border.borderColor};`:\"border-color: #dee2e6;\"}\n      `;}else{return\"border: none;\";}})()}\n                        border-radius: ${optionControls?.optionBorderRadius||\"0px\"};\n                        transition: background-color 0.15s ease;\n                        cursor: pointer;\n                    }\n                    .dropdown-option.${uniqueClassName}:hover {\n                        background-color: ${optionControls?.optionHoverBackgroundColor||\"#f8f9fa\"};\n                        color: ${optionControls?.optionHoverTextColor||\"#333\"};\n                        border-color: ${optionControls?.optionHoverBorderColor||\"#dee2e6\"};\n                    }\n                    .dropdown-option.${uniqueClassName}.selected {\n                        background-color: ${optionControls?.optionSelectedBackgroundColor||\"#007AFF\"} !important;\n                        border-color: ${optionControls?.optionSelectedBorderColor||\"#007AFF\"} !important;\n                        color: ${optionControls?.optionSelectedTextColor||\"#fff\"} !important;\n                    }\n                `}),/*#__PURE__*/_jsxs(\"div\",{className:`dropdown-trigger ${uniqueClassName} ${isOpen?\"open\":\"\"}`,onClick:()=>setIsOpen(!isOpen),style:{width:\"100%\",...selectControls?.font,fontSize:selectControls?.font?.fontSize||\"13px\"},children:[/*#__PURE__*/_jsx(\"span\",{children:getDisplayText()}),/*#__PURE__*/_jsx(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:selectControls?.arrowSize??16,height:selectControls?.arrowSize??16,viewBox:\"0 0 24 24\",fill:\"none\",style:{position:\"absolute\",right:selectControls?.arrowPosition??8,top:\"50%\",transform:`translateY(-50%) rotate(${isOpen?\"180deg\":\"0deg\"})`,transition:\"transform 0.2s ease\"},children:/*#__PURE__*/_jsx(\"path\",{d:\"M7 10l5 5 5-5\",fill:\"none\",stroke:selectControls?.arrowColor||\"currentColor\",strokeWidth:\"2\"})})]}),isOpen&&/*#__PURE__*/_jsx(\"div\",{className:`dropdown-options ${uniqueClassName}`,children:values.map((optionValue,idx)=>/*#__PURE__*/_jsx(\"div\",{className:`dropdown-option ${uniqueClassName} ${selectedValues.includes(optionValue)?\"selected\":\"\"}`,style:{...optionControls?.optionFont,fontSize:optionControls?.optionFont?.fontSize||\"14px\"},onClick:()=>toggleOption(optionValue),children:/*#__PURE__*/_jsx(\"span\",{children:titles[idx]})},idx))})]});}else{// Single selection\nconst selectedIdx=values.indexOf(value);const displayText=selectedIdx>=0?titles[selectedIdx]:config.placeholderDropdownInput?config.placeholderDropdownInput:`Select ${config.title}`;const selectControls=filterSelectStyles?.selectControls||{};const optionControls=filterSelectStyles?.optionControls||{};return /*#__PURE__*/_jsxs(\"div\",{ref:dropdownRef,style:{position:\"relative\",width:\"100%\"},children:[/*#__PURE__*/_jsx(\"style\",{children:`\n                    .dropdown-trigger-single.${uniqueClassName} {\n                        position: relative;\n                        padding: ${selectControls?.padding||\"8px 32px 8px 12px\"};\n                        border-radius: ${selectControls?.borderRadius||\"4\"};\n                        background-color: ${selectControls?.backgroundColor||\"#fff\"};\n                        color: ${selectControls?.color||\"#333\"};\n                    ${(()=>{if(typeof selectControls?.border===\"string\"){return`border: ${selectControls.border};`;}else if(selectControls?.border){const border=selectControls.border;return`\n        ${border.borderWidth!==undefined?`border-width: ${border.borderWidth}px;`:\"\"}\n        ${border.borderTopWidth!==undefined?`border-top-width: ${border.borderTopWidth}px;`:\"\"}\n        ${border.borderBottomWidth!==undefined?`border-bottom-width: ${border.borderBottomWidth}px;`:\"\"}\n        ${border.borderLeftWidth!==undefined?`border-left-width: ${border.borderLeftWidth}px;`:\"\"}\n        ${border.borderRightWidth!==undefined?`border-right-width: ${border.borderRightWidth}px;`:\"\"}\n        ${border.borderStyle?`border-style: ${border.borderStyle};`:\"border-style: solid;\"}\n        ${border.borderColor?`border-color: ${border.borderColor};`:\"border-color: #dee2e6;\"}\n      `;}else{return\"border: none;\";}})()}\n                        transition: border-color 0.2s ease, background-color 0.2s ease;\n                        cursor: pointer;\n                    }\n                    .dropdown-trigger-single.${uniqueClassName}:hover {\n                        border-color: ${selectControls?.hoverBorderColor||\"#007AFF\"};\n                        background-color: ${selectControls?.hoverBackgroundColor||\"#f8f9fa\"};\n                        color: ${selectControls?.hoverTextColor||\"#007AFF\"};\n                    }\n                    .dropdown-trigger-single.${uniqueClassName}.open {\n                        border-color: ${selectControls?.selectedBorderColor||\"#007AFF\"};\n                        background-color: ${selectControls?.selectedBackgroundColor||\"#007AFF\"};\n                        color: ${selectControls?.selectedTextColor||\"#fff\"};\n                    }\n                    .dropdown-options.${uniqueClassName} {\n                        margin-top: ${selectControls?.marginTop||\"4\"}px;\n                        padding: ${optionControls?.dropdownPadding||\"0px\"};\n                        background-color: ${optionControls?.dropdownBackgroundColor||\"#fff\"};\n                        ${(()=>{if(typeof optionControls?.dropdownBorder===\"string\"){return`border: ${optionControls.dropdownBorder};`;}else if(optionControls?.dropdownBorder){const border=optionControls.dropdownBorder;return`\n            ${border.borderWidth!==undefined?`border-width: ${border.borderWidth}px;`:\"\"}\n            ${border.borderTopWidth!==undefined?`border-top-width: ${border.borderTopWidth}px;`:\"\"}\n            ${border.borderBottomWidth!==undefined?`border-bottom-width: ${border.borderBottomWidth}px;`:\"\"}\n            ${border.borderLeftWidth!==undefined?`border-left-width: ${border.borderLeftWidth}px;`:\"\"}\n            ${border.borderRightWidth!==undefined?`border-right-width: ${border.borderRightWidth}px;`:\"\"}\n            ${border.borderStyle?`border-style: ${border.borderStyle};`:\"border-style: solid;\"}\n            ${border.borderColor?`border-color: ${border.borderColor};`:\"border-color: #dee2e6;\"}\n        `;}else{return\"border: none;\";}})()}\n                        border-radius: ${optionControls?.dropdownBorderRadius||\"3px\"};\n                        max-height: ${optionControls?.maxHeight||\"200\"}px;\n                        position: absolute;\n                        width: 100%;\n                        overflow-y: auto;\n                        z-index: 1000;\n                        box-shadow: 0 2px 8px rgba(0,0,0,0.15);\n                    }\n                    .dropdown-option-single.${uniqueClassName} {\n                        font-family: ${optionControls?.optionFont?.fontFamily||\"\"};\n                        font-weight: ${optionControls?.optionFont?.fontWeight||\"normal\"};\n                        font-style: ${optionControls?.optionFont?.fontStyle||\"normal\"};\n                        padding: ${optionControls?.optionPadding||\"8px 12px\"};\n                        margin: ${optionControls?.optionMargin||\"0\"};\n                        background-color: ${optionControls?.backgroundColor||\"#fff\"};\n                        color: ${optionControls?.color||\"#333\"};\n                        ${(()=>{if(typeof optionControls?.optionBorder===\"string\"){return`border: ${optionControls.optionBorder};`;}else if(optionControls?.optionBorder){const border=optionControls.optionBorder;return`\n        ${border.borderWidth!==undefined?`border-width: ${border.borderWidth}px;`:\"\"}\n        ${border.borderTopWidth!==undefined?`border-top-width: ${border.borderTopWidth}px;`:\"\"}\n        ${border.borderBottomWidth!==undefined?`border-bottom-width: ${border.borderBottomWidth}px;`:\"\"}\n        ${border.borderLeftWidth!==undefined?`border-left-width: ${border.borderLeftWidth}px;`:\"\"}\n        ${border.borderRightWidth!==undefined?`border-right-width: ${border.borderRightWidth}px;`:\"\"}\n        ${border.borderStyle?`border-style: ${border.borderStyle};`:\"border-style: solid;\"}\n        ${border.borderColor?`border-color: ${border.borderColor};`:\"border-color: #dee2e6;\"}\n      `;}else{return\"border: none;\";}})()}\n                        border-radius: ${optionControls?.optionBorderRadius||\"0px\"};\n                        transition: background-color 0.15s ease;\n                        cursor: pointer;\n                    }\n                    .dropdown-option-single.${uniqueClassName}:hover {\n                        background-color: ${optionControls?.optionHoverBackgroundColor||\"#f8f9fa\"};\n                        color: ${optionControls?.optionHoverTextColor||\"#333\"};\n                        border-color: ${optionControls?.optionHoverBorderColor||\"#007AFF\"};\n                    }\n                    .dropdown-option-single.${uniqueClassName}.selected {\n                        background-color: ${optionControls?.optionSelectedBackgroundColor||\"#007AFF\"} !important;\n                        border-color: ${optionControls?.optionSelectedBorderColor||\"#007AFF\"} !important;\n                        color: ${optionControls?.optionSelectedTextColor||\"#fff\"} !important;\n                    }\n                `}),/*#__PURE__*/_jsxs(\"div\",{className:`dropdown-trigger-single ${uniqueClassName} ${isOpen?\"open\":\"\"}`,onClick:()=>setIsOpen(!isOpen),style:{width:\"100%\",...selectControls?.font,fontSize:selectControls?.font?.fontSize||\"13px\"},children:[/*#__PURE__*/_jsx(\"span\",{children:displayText}),/*#__PURE__*/_jsx(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:selectControls?.arrowSize??16,height:selectControls?.arrowSize??16,viewBox:\"0 0 24 24\",fill:\"none\",style:{position:\"absolute\",right:selectControls?.arrowPosition??8,top:\"50%\",transform:`translateY(-50%) rotate(${isOpen?\"180deg\":\"0deg\"})`,transition:\"transform 0.2s ease\"},children:/*#__PURE__*/_jsx(\"path\",{d:\"M7 10l5 5 5-5\",fill:\"none\",stroke:selectControls?.arrowColor||\"currentColor\",strokeWidth:\"2\"})})]}),isOpen&&/*#__PURE__*/_jsxs(\"div\",{className:`dropdown-options ${uniqueClassName}`,children:[(config.allowDeselect??true)&&/*#__PURE__*/_jsx(\"div\",{className:`dropdown-option-single ${uniqueClassName} ${!value?\"selected\":\"\"}`,style:{...optionControls?.optionFont,fontSize:optionControls?.optionFont?.fontSize||\"14px\"},onClick:()=>{onChange(\"\");setIsOpen(false);},children:config.placeholderDropdownInput?config.placeholderDropdownInput:`Select ${config.title}`}),values.map((optionValue,idx)=>/*#__PURE__*/_jsx(\"div\",{className:`dropdown-option-single ${uniqueClassName} ${value===optionValue?\"selected\":\"\"}`,style:{...optionControls?.optionFont,fontSize:optionControls?.optionFont?.fontSize||\"14px\"},onClick:()=>{// Respect allowDeselect setting - if current option is selected and allowDeselect is false, don't change\n    if(value===optionValue&&!(config.allowDeselect??true)){// Just close the dropdown, don't change selection\n    setIsOpen(false);}else{onChange(optionValue);setIsOpen(false);}},children:titles[idx]},idx))]})]});}}\nexport const __FramerMetadata__ = {\"exports\":{\"SelectFilter\":{\"type\":\"reactComponent\",\"name\":\"SelectFilter\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any\",\"framerDisableUnlink\":\"\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SelectFilter.map","// TagFilter component for tag-style selection\n// Extracted from DropdownFilter.tsx for better maintainability\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{getActiveMatch,getOptionData}from\"https://framerusercontent.com/modules/gpP9NQZkGM08zua7fzDA/ufvjGg4utuUHzowwKSUT/filter_utils.js\";/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerDisableUnlink\n */export function TagFilter({config,value,onChange,debugLevel,filterPillStyles,uniqueClassName}){const activeMatch=getActiveMatch(config);// No input needed for is_set/is_not_set operators\nif(activeMatch===\"is_set\"||activeMatch===\"is_not_set\"){return /*#__PURE__*/_jsx(\"div\",{style:{padding:8,fontSize:12,color:\"#666\",fontStyle:\"italic\"},children:\"No input needed - checks if field has value\"});}const{values,titles,optionMap}=getOptionData(config);if(values.length===0){return /*#__PURE__*/_jsx(\"div\",{style:{padding:8,fontSize:12,color:\"#dc3545\",fontStyle:\"italic\",backgroundColor:\"#f8d7da\",borderRadius:4},children:\"No options configured. Please add options to the filter configuration.\"});}const selectedValues=Array.isArray(value)?value:value?[value]:[];const isAllSelected=config.allowMultiple?selectedValues.length===0:!value||Array.isArray(value)&&value.length===0;// Compute pill width based on sizing option (only applies in block layout)\nconst getPillWidthStyle=()=>{if(config.pillLayout!==\"block\"){return{width:\"fit-content\"};}switch(config.pillSizing){case\"fill\":return{width:\"100%\"};case\"fixed\":return{width:config.pillWidth||\"200px\"};case\"auto\":default:return{width:\"fit-content\"};}};const pillWidthStyle=getPillWidthStyle();return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:`\n                .tag-filter.${uniqueClassName} {\n                    display: flex;\n                    align-items: center;\n                    padding: 6px 12px;\n                    border-radius: 4px;\n                    cursor: pointer;\n                    transition: all 0.2s ease;\n                    background-color: ${filterPillStyles?.backgroundColor||\"#fff\"};\n                    color: ${filterPillStyles?.color||\"#333\"};\n  ${(()=>{if(typeof filterPillStyles?.border===\"string\"){return`border: ${filterPillStyles.border};`;}else if(filterPillStyles?.border){const border=filterPillStyles.border;return`\n        ${border.borderWidth!==undefined?`border-width: ${border.borderWidth}px;`:\"\"}\n        ${border.borderTopWidth!==undefined?`border-top-width: ${border.borderTopWidth}px;`:\"\"}\n        ${border.borderBottomWidth!==undefined?`border-bottom-width: ${border.borderBottomWidth}px;`:\"\"}\n        ${border.borderLeftWidth!==undefined?`border-left-width: ${border.borderLeftWidth}px;`:\"\"}\n        ${border.borderRightWidth!==undefined?`border-right-width: ${border.borderRightWidth}px;`:\"\"}\n        ${border.borderStyle?`border-style: ${border.borderStyle};`:\"border-style: solid;\"}\n        ${border.borderColor?`border-color: ${border.borderColor};`:\"border-color: #dee2e6;\"}\n      `;}else{return\"border: none;\";}})()}\n                }\n                .tag-filter.${uniqueClassName}:hover {\n                    color: ${filterPillStyles?.hoverTextColor||\"#fff\"} !important;\n                    border-color: ${filterPillStyles?.hoverBorderColor||\"#007AFF\"} !important;\n                    background-color: ${filterPillStyles?.hoverBackgroundColor||\"#f8f9fa\"} !important;\n                }\n                .tag-filter.${uniqueClassName}.selected {\n                    background-color: ${filterPillStyles?.selectedBackgroundColor||\"#007AFF\"} !important;\n                    color: ${filterPillStyles?.selectedTextColor||\"#fff\"} !important;\n                    border-color: ${filterPillStyles?.selectedBorderColor||\"#007AFF\"} !important;\n                }\n            `}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:8},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:config.pillLayout===\"block\"?\"column\":\"row\",flexWrap:config.pillLayout===\"block\"?\"nowrap\":\"wrap\",gap:filterPillStyles?.gap||8},children:[config.showAllOption&&/*#__PURE__*/_jsx(\"div\",{className:`tag-filter ${uniqueClassName} ${isAllSelected?\"selected\":\"\"}`,style:{...filterPillStyles,...filterPillStyles?.font,fontSize:filterPillStyles?.font?.fontSize||\"14px\",...isAllSelected?filterPillStyles?.selectedFont:{},...pillWidthStyle},onClick:()=>{// \"All\" should not be deselectable - only select it if not already selected\nif(!isAllSelected){onChange(config.allowMultiple?[]:\"\");}},children:config.allOptionLabel||`All ${config.title}`}),values.map((optionValue,idx)=>{const optionTitle=titles[idx];const isSelected=selectedValues.includes(optionValue);return /*#__PURE__*/_jsx(\"div\",{className:`tag-filter ${uniqueClassName} ${isSelected?\"selected\":\"\"}`,style:{...filterPillStyles,...filterPillStyles?.font,fontSize:filterPillStyles?.font?.fontSize||\"14px\",...isSelected?filterPillStyles?.selectedFont:{},...pillWidthStyle},onClick:()=>{if(config.allowMultiple){if(isSelected){onChange(selectedValues.filter(v=>v!==optionValue));}else{onChange([...selectedValues,optionValue]);}}else{// Single select mode\nif(isSelected){// Already selected - only deselect if allowDeselect is true\nif(config.allowDeselect!==false){onChange(\"\");}// If allowDeselect is false, do nothing (keep selected)\n}else{// Not selected - select it\nonChange(optionValue);}}},children:optionTitle},idx);})]}),(debugLevel===\"ui_helpers\"||debugLevel===\"full_debug\")&&selectedValues.length>0&&/*#__PURE__*/_jsxs(\"div\",{style:{fontSize:11,color:\"#007AFF\",padding:\"6px 10px\",backgroundColor:\"#f0f8ff\",borderRadius:4,border:\"1px solid #b3d9ff\"},children:[/*#__PURE__*/_jsx(\"strong\",{children:selectedValues.length}),\" selected:\",\" \",selectedValues.map(val=>optionMap.get(val)||val).join(\", \")]})]})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"TagFilter\":{\"type\":\"reactComponent\",\"name\":\"TagFilter\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any\",\"framerDisableUnlink\":\"\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TagFilter.map","// CheckboxFilter component - Checkbox style for manual dropdown options\n// Based on CMSEnumFilter checkbox implementation\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerDisableUnlink\n */export function CheckboxFilter({config,value,onChange,debugLevel,filterCheckboxStyles,uniqueClassName}){const selected=config.allowMultiple?value||[]:value||\"\";const options=config.options||[];return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:`\n            .cms-checkbox-filter.${uniqueClassName} {\n                background-color: ${filterCheckboxStyles.backgroundColor};\n                ${(()=>{if(typeof filterCheckboxStyles?.border===\"string\"){return`border: ${filterCheckboxStyles.border};`;}else if(filterCheckboxStyles?.border){const border=filterCheckboxStyles.border;return`\n    ${border.borderWidth!==undefined?`border-width: ${border.borderWidth}px;`:\"\"}\n    ${border.borderTopWidth!==undefined?`border-top-width: ${border.borderTopWidth}px;`:\"\"}\n    ${border.borderBottomWidth!==undefined?`border-bottom-width: ${border.borderBottomWidth}px;`:\"\"}\n    ${border.borderLeftWidth!==undefined?`border-left-width: ${border.borderLeftWidth}px;`:\"\"}\n    ${border.borderRightWidth!==undefined?`border-right-width: ${border.borderRightWidth}px;`:\"\"}\n    ${border.borderStyle?`border-style: ${border.borderStyle};`:\"border-style: solid;\"}\n    ${border.borderColor?`border-color: ${border.borderColor};`:\"border-color: #dee2e6;\"}\n  `;}else{return\"border: none;\";}})()}\n                padding: ${filterCheckboxStyles.padding||\"8px 0px 8px 0px\"};\n                border-radius: ${filterCheckboxStyles.borderRadius};\n            }\n            .cms-checkbox-filter.${uniqueClassName}:hover {\n                background-color: ${filterCheckboxStyles.hoverBackgroundColor};\n                border-color: ${filterCheckboxStyles.hoverBorderColor};\n            }\n            .cms-checkbox-filter.${uniqueClassName}.cms-checkbox-filter-selected {\n                background-color: ${filterCheckboxStyles.activeBackgroundColor};\n                border-color: ${filterCheckboxStyles.activeBorderColor};\n            }\n        `}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:config.checkboxLayout===\"inline\"?\"row\":\"row\",flexWrap:config.checkboxLayout===\"inline\"?\"wrap\":\"wrap\",gap:filterCheckboxStyles.gap||6},children:[config.showAllOption&&(()=>{// \"All\" should not be deselectable - only select it if not already selected\nconst isAllSelected=config.allowMultiple?Array.isArray(selected)&&selected.length===0:selected===\"\";return /*#__PURE__*/_jsxs(\"div\",{onClick:()=>{if(!isAllSelected){onChange(config.allowMultiple?[]:\"\");}},className:isAllSelected?`cms-checkbox-filter ${uniqueClassName} cms-checkbox-filter-selected`:`cms-checkbox-filter ${uniqueClassName}`,style:{display:\"flex\",alignItems:\"center\",gap:filterCheckboxStyles.checkboxGap||10,cursor:\"pointer\",transition:\"all 0.2s ease\",width:config.checkboxLayout===\"block\"?config.checkboxWidth||\"100%\":\"auto\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",...filterCheckboxStyles.checkboxBorder,borderColor:isAllSelected?filterCheckboxStyles.selectedBorderColor:filterCheckboxStyles.checkboxBorder.borderColor,borderRadius:filterCheckboxStyles.checkboxBorderRadius,backgroundColor:isAllSelected?filterCheckboxStyles.selectedBackgroundColor:filterCheckboxStyles.checkboxBackgroundColor,color:isAllSelected?filterCheckboxStyles.selectedTextColor:filterCheckboxStyles.color,transition:\"all 0.2s ease\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",flexShrink:0,width:filterCheckboxStyles.scale||18,height:filterCheckboxStyles.scale||18},children:isAllSelected&&/*#__PURE__*/_jsx(\"svg\",{width:(filterCheckboxStyles.scale||18)!=18?\"70%\":\"12px\",height:(filterCheckboxStyles.scale||18)!=18?\"70%\":\"12px\",viewBox:\"0 0 24 24\",fill:\"none\",style:{color:filterCheckboxStyles.selectedSvgColor},children:/*#__PURE__*/_jsx(\"path\",{d:\"M20 6L9 17L4 12\",stroke:\"currentColor\",strokeWidth:\"2.5\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})})}),/*#__PURE__*/_jsx(\"span\",{style:{...filterCheckboxStyles.font,fontSize:filterCheckboxStyles?.font?.fontSize||\"14px\",transition:\"color 0.2s ease\",color:isAllSelected?filterCheckboxStyles.selectedTextColor:filterCheckboxStyles.color,...isAllSelected?filterCheckboxStyles.selectedFont:{}},children:config.allOptionLabel||`All ${config.title}`})]});})(),options.map((option,idx)=>{const optionValue=option.value||option.title;const optionTitle=option.title||option.value;const isSelected=config.allowMultiple?Array.isArray(selected)&&selected.includes(optionValue):selected===optionValue;return /*#__PURE__*/_jsxs(\"div\",{onClick:()=>{if(config.allowMultiple){const current=Array.isArray(selected)?[...selected]:[];if(isSelected){onChange(current.filter(v=>v!==optionValue));}else{current.push(optionValue);onChange(current);}}else{onChange(isSelected&&(config.allowDeselect??true)?\"\":optionValue);}},className:isSelected?`cms-checkbox-filter ${uniqueClassName} cms-checkbox-filter-selected`:`cms-checkbox-filter ${uniqueClassName}`,style:{display:\"flex\",alignItems:\"center\",gap:filterCheckboxStyles.checkboxGap||10,cursor:\"pointer\",transition:\"all 0.2s ease\",width:config.checkboxLayout===\"block\"?config.checkboxWidth||\"100%\":\"auto\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",...filterCheckboxStyles.checkboxBorder,borderColor:isSelected?filterCheckboxStyles.selectedBorderColor:filterCheckboxStyles.checkboxBorder.borderColor,borderRadius:filterCheckboxStyles.checkboxBorderRadius,backgroundColor:isSelected?filterCheckboxStyles.selectedBackgroundColor:filterCheckboxStyles.checkboxBackgroundColor,color:isSelected?filterCheckboxStyles.selectedTextColor:filterCheckboxStyles.color,transition:\"all 0.2s ease\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",flexShrink:0,width:filterCheckboxStyles.scale||18,height:filterCheckboxStyles.scale||18},children:isSelected&&/*#__PURE__*/_jsx(\"svg\",{width:(filterCheckboxStyles.scale||18)!=18?\"70%\":\"12px\",height:(filterCheckboxStyles.scale||18)!=18?\"70%\":\"12px\",viewBox:\"0 0 24 24\",fill:\"none\",style:{color:isSelected?filterCheckboxStyles.selectedSvgColor:\"\"},children:/*#__PURE__*/_jsx(\"path\",{d:\"M20 6L9 17L4 12\",stroke:\"currentColor\",strokeWidth:\"2.5\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})})}),/*#__PURE__*/_jsx(\"span\",{style:{...filterCheckboxStyles.font,...isSelected?filterCheckboxStyles.selectedFont:{},transition:\"color 0.2s ease\",color:isSelected?filterCheckboxStyles.selectedTextColor:filterCheckboxStyles.color},children:optionTitle})]},idx);}),(debugLevel===\"ui_helpers\"||debugLevel===\"full_debug\")&&/*#__PURE__*/_jsxs(\"div\",{style:{fontSize:11,color:\"#666\",marginTop:4},children:[\"Selected:\",\" \",Array.isArray(selected)?selected.join(\", \"):selected]})]})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"CheckboxFilter\":{\"type\":\"reactComponent\",\"name\":\"CheckboxFilter\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"\",\"framerSupportedLayoutHeight\":\"any\",\"framerSupportedLayoutWidth\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CheckboxFilter.map","// DropdownFilter component - Clean router for different dropdown styles\n// Separated into specialized components for better maintainability\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{SelectFilter}from\"https://framerusercontent.com/modules/rhjV7CBikISubRqt2bpe/TsuS3P5xvcUSgd5zpupI/SelectFilter.js\";import{TagFilter}from\"https://framerusercontent.com/modules/yoPENdwUHgW0xBoBrcKB/A0k863LM1epD0DYr3i4t/TagFilter.js\";import{CheckboxFilter}from\"https://framerusercontent.com/modules/ktAWutRRdcvtUBylxWdw/HPKhlQqZvPckSzCMy2kp/CheckboxFilter.js\";/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerDisableUnlink\n */export function DropdownFilter({config,value,onChange,debugLevel,filterSelectStyles,filterPillStyles,filterCheckboxStyles,uniqueClassName}){// Route to appropriate component based on multiStyle\n// Handle different styles (works for both single and multiple selection)\nif(config.multiStyle===\"checkboxes\"){return /*#__PURE__*/_jsx(CheckboxFilter,{config:config,value:value,onChange:onChange,debugLevel:debugLevel,filterCheckboxStyles:filterCheckboxStyles,uniqueClassName:uniqueClassName});}if(config.multiStyle===\"tags\"){return /*#__PURE__*/_jsx(TagFilter,{config:config,value:value,onChange:onChange,debugLevel:debugLevel,filterPillStyles:filterPillStyles,uniqueClassName:uniqueClassName});}if(config.multiStyle===\"select\"){return /*#__PURE__*/_jsx(SelectFilter,{config:config,value:value,onChange:onChange,debugLevel:debugLevel,filterSelectStyles:filterSelectStyles,uniqueClassName:uniqueClassName});}}\nexport const __FramerMetadata__ = {\"exports\":{\"DropdownFilter\":{\"type\":\"reactComponent\",\"name\":\"DropdownFilter\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"\",\"framerSupportedLayoutWidth\":\"any\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// DoubleRangeSlider component for CMS Filter system\n// Complete rewrite with pointer events for better UX and reliability\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState,useEffect,useRef,useCallback}from\"react\";/**\n * Custom debounce hook for onChange emissions\n * Prevents excessive callback invocations during dragging\n */function useDebouncedCallback(callback,delay){const timeoutRef=useRef();const callbackRef=useRef(callback);useEffect(()=>{callbackRef.current=callback;},[callback]);return useCallback((...args)=>{if(timeoutRef.current){clearTimeout(timeoutRef.current);}timeoutRef.current=setTimeout(()=>{callbackRef.current(...args);},delay);},[delay]);}/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerDisableUnlink\n */export function DoubleRangeSlider({config,minRangeValueGap=1,trackColor=\"#dddddd\",rangeColor=\"#007AFF\",thumbColor=\"#fff\",thumbBorderColor=\"#007AFF\",bubbleColor=\"#007AFF\",bubbleTextColor=\"#ffffff\",padding=0,borderRadius=20,backgroundColor=\"#ffffff\",font,fontSize,value,onRangeChange}){// Configuration from props\nconst min=config?.min||0;const max=config?.max||100;const step=config?.step||1;const unit=config?.unit||\"\";// Smart gap calculation to ensure visual separation\n// Calculate 0.5% of range as minimum visible gap\nconst rangeSize=max-min;const minVisibleGap=Math.ceil(rangeSize*.01)// 1% of range\n;// Use the largest of: explicit gap, step size, or minimum visible gap\nconst effectiveGap=Math.max(minRangeValueGap,step,minVisibleGap);// Internal state - source of truth during interaction\nconst[minValue,setMinValue]=useState(value?.min??min);const[maxValue,setMaxValue]=useState(value?.max??max);// Track which thumb is being actively dragged\nconst[activeThumb,setActiveThumb]=useState(null);// Refs for DOM elements and pointer tracking\nconst containerRef=useRef(null);const isDraggingRef=useRef(false);// Debounced onChange to prevent excessive emissions\nconst debouncedOnChange=useDebouncedCallback((newMin,newMax)=>{onRangeChange?.(newMin,newMax);},300);// Sync with external value changes (URL state, etc.)\n// Only sync when not actively dragging to prevent conflicts\nuseEffect(()=>{if(isDraggingRef.current)return;if(value===null||value===undefined){// Reset to defaults when cleared\nsetMinValue(min);setMaxValue(max);}else{const newMin=value.min??min;const newMax=value.max??max;if(newMin!==minValue||newMax!==maxValue){setMinValue(newMin);setMaxValue(newMax);}}},[value,min,max])// Intentionally omit minValue/maxValue to prevent loops\n;// Helper: Clamp value to valid range and apply step\nconst clampValue=useCallback(val=>{// Apply step rounding\nconst stepped=Math.round(val/step)*step;// Clamp to min/max bounds\nreturn Math.max(min,Math.min(max,stepped));},[min,max,step]);// Helper: Convert value to percentage position\nconst valueToPercentage=useCallback(val=>{return(val-min)/(max-min)*100;},[min,max]);// Helper: Convert pixel position to value\nconst positionToValue=useCallback(clientX=>{if(!containerRef.current)return min;const rect=containerRef.current.getBoundingClientRect();const percentage=Math.max(0,Math.min(100,(clientX-rect.left)/rect.width*100));const rawValue=min+percentage/100*(max-min);return clampValue(rawValue);},[min,max,clampValue]);// Helper: Determine which thumb is nearest to a click position\nconst getNearestThumb=useCallback(clickValue=>{const distanceToMin=Math.abs(clickValue-minValue);const distanceToMax=Math.abs(clickValue-maxValue);return distanceToMin<=distanceToMax?\"min\":\"max\";},[minValue,maxValue]);// Update values with constraint enforcement\nconst updateValues=useCallback((newMin,newMax)=>{// Ensure min doesn't exceed max\nconst constrainedMin=Math.min(newMin,newMax-effectiveGap);const constrainedMax=Math.max(newMax,newMin+effectiveGap);setMinValue(constrainedMin);setMaxValue(constrainedMax);// Emit debounced change\ndebouncedOnChange(constrainedMin,constrainedMax);},[effectiveGap,debouncedOnChange]);// Handle pointer down on thumb - start dragging\nconst handleThumbPointerDown=useCallback((e,thumb)=>{e.stopPropagation();e.preventDefault();isDraggingRef.current=true;setActiveThumb(thumb);e.target.setPointerCapture(e.pointerId);},[]);// Handle pointer move - update value during drag\nconst handlePointerMove=useCallback(e=>{if(!isDraggingRef.current||!activeThumb)return;const newValue=positionToValue(e.clientX);if(activeThumb===\"min\"){// First apply step rounding and bounds\nconst clampedMin=clampValue(newValue);// Then ensure gap constraint (this is the final constraint)\nconst constrainedMin=Math.min(clampedMin,maxValue-effectiveGap);setMinValue(constrainedMin);}else{// First apply step rounding and bounds\nconst clampedMax=clampValue(newValue);// Then ensure gap constraint (this is the final constraint)\nconst constrainedMax=Math.max(clampedMax,minValue+effectiveGap);setMaxValue(constrainedMax);}},[activeThumb,minValue,maxValue,effectiveGap,positionToValue,clampValue]);// Handle pointer up - end dragging and emit final value\nconst handlePointerUp=useCallback(e=>{if(isDraggingRef.current){isDraggingRef.current=false;setActiveThumb(null);e.target.releasePointerCapture(e.pointerId);// Emit immediate final value (not debounced)\nonRangeChange?.(minValue,maxValue);}},[minValue,maxValue,onRangeChange]);// Handle track click - move nearest thumb to clicked position\nconst handleTrackClick=useCallback(e=>{// Ignore if clicking on a thumb\nif(e.target.classList.contains(\"thumb\")){return;}const clickValue=positionToValue(e.clientX);const nearestThumb=getNearestThumb(clickValue);if(nearestThumb===\"min\"){// First apply step rounding and bounds\nconst clampedMin=clampValue(clickValue);// Then ensure gap constraint\nconst newMin=Math.min(clampedMin,maxValue-effectiveGap);setMinValue(newMin);onRangeChange?.(newMin,maxValue);}else{// First apply step rounding and bounds\nconst clampedMax=clampValue(clickValue);// Then ensure gap constraint\nconst newMax=Math.max(clampedMax,minValue+effectiveGap);setMaxValue(newMax);onRangeChange?.(minValue,newMax);}},[positionToValue,getNearestThumb,minValue,maxValue,effectiveGap,clampValue,onRangeChange]);// Handle keyboard navigation\nconst handleKeyDown=useCallback((e,thumb)=>{let delta=0;switch(e.key){case\"ArrowLeft\":case\"ArrowDown\":delta=-step;break;case\"ArrowRight\":case\"ArrowUp\":delta=step;break;case\"PageDown\":delta=-step*10;break;case\"PageUp\":delta=step*10;break;case\"Home\":delta=thumb===\"min\"?min-minValue:min-maxValue;break;case\"End\":delta=thumb===\"min\"?max-minValue:max-maxValue;break;default:return;// Don't prevent default for other keys\n}e.preventDefault();if(thumb===\"min\"){// First apply step rounding and bounds\nconst clampedMin=clampValue(minValue+delta);// Then ensure gap constraint\nconst newMin=Math.min(clampedMin,maxValue-effectiveGap);setMinValue(newMin);onRangeChange?.(newMin,maxValue);}else{// First apply step rounding and bounds\nconst clampedMax=clampValue(maxValue+delta);// Then ensure gap constraint\nconst newMax=Math.max(clampedMax,minValue+effectiveGap);setMaxValue(newMax);onRangeChange?.(minValue,newMax);}},[step,min,max,minValue,maxValue,effectiveGap,clampValue,onRangeChange]);// Calculate positions for rendering\nconst minPercentage=valueToPercentage(minValue);const maxPercentage=valueToPercentage(maxValue);// Helper to calculate thumb position that prevents overflow\n// At 0%, no offset (left edge aligns with track start)\n// At 100%, full offset (right edge aligns with track end)\n// In between, interpolate smoothly\nconst getThumbTransform=percentage=>{// At 0%: translateX(0) - left edge of thumb at track start\n// At 100%: translateX(-100%) - right edge of thumb at track end\n// Linear interpolation between\nconst xOffset=-percentage;return`translate(${xOffset}%, -50%)`;};return /*#__PURE__*/_jsx(\"div\",{className:\"double_range_slider_box\",style:{width:\"100%\",height:\"auto\",backgroundColor,borderRadius:`${borderRadius}px`,padding:`${padding}px`,// Add padding to prevent thumbs/bubbles from overflowing\npaddingLeft:`${padding+10}px`,paddingRight:`${padding+10}px`,paddingTop:`${padding+50}px`,paddingBottom:`${padding+10}px`},children:/*#__PURE__*/_jsxs(\"div\",{ref:containerRef,className:\"track_container\",onClick:handleTrackClick,style:{position:\"relative\",width:\"100%\",height:\"5px\",backgroundColor:trackColor,borderRadius:\"20px\",marginTop:\"30px\",marginBottom:\"15px\",cursor:\"pointer\"},children:[/*#__PURE__*/_jsx(\"div\",{className:\"track_fill\",style:{position:\"absolute\",height:\"100%\",backgroundColor:rangeColor,borderRadius:\"20px\",left:`${minPercentage}%`,width:`${maxPercentage-minPercentage}%`,pointerEvents:\"none\"}}),/*#__PURE__*/_jsx(\"div\",{className:\"thumb min\",onPointerDown:e=>handleThumbPointerDown(e,\"min\"),onPointerMove:handlePointerMove,onPointerUp:handlePointerUp,onKeyDown:e=>handleKeyDown(e,\"min\"),tabIndex:0,role:\"slider\",\"aria-label\":\"Minimum value\",\"aria-valuemin\":min,\"aria-valuemax\":max,\"aria-valuenow\":minValue,style:{position:\"absolute\",top:\"50%\",left:`${minPercentage}%`,transform:getThumbTransform(minPercentage),width:\"20px\",height:\"20px\",borderRadius:\"50%\",backgroundColor:thumbColor,border:`3px solid ${thumbBorderColor}`,cursor:\"grab\",// When dragging min, it gets highest priority (3)\n// Otherwise it stays below max (1) to ensure max is clickable when overlapping\nzIndex:activeThumb===\"min\"?3:1,touchAction:\"none\",transition:activeThumb===\"min\"?\"none\":\"left 0.1s ease\"},children:/*#__PURE__*/_jsxs(\"div\",{className:\"bubble\",style:{position:\"absolute\",bottom:\"calc(100% + 8px)\",// Smart positioning: shift at edges to prevent overflow\nleft:minPercentage<=10?\"0\":\"50%\",transform:minPercentage<=10?\"translateX(0)\":\"translateX(-50%)\",padding:\"6px 12px\",borderRadius:\"1rem\",backgroundColor:bubbleColor,color:bubbleTextColor,whiteSpace:\"nowrap\",fontSize:fontSize,fontFamily:font?.fontFamily||undefined,fontWeight:font?.fontWeight??undefined,fontStyle:font?.fontStyle??undefined,pointerEvents:\"none\",userSelect:\"none\"},children:[minValue,unit]})}),/*#__PURE__*/_jsx(\"div\",{className:\"thumb max\",onPointerDown:e=>handleThumbPointerDown(e,\"max\"),onPointerMove:handlePointerMove,onPointerUp:handlePointerUp,onKeyDown:e=>handleKeyDown(e,\"max\"),tabIndex:0,role:\"slider\",\"aria-label\":\"Maximum value\",\"aria-valuemin\":min,\"aria-valuemax\":max,\"aria-valuenow\":maxValue,style:{position:\"absolute\",top:\"50%\",left:`${maxPercentage}%`,transform:getThumbTransform(maxPercentage),width:\"20px\",height:\"20px\",borderRadius:\"50%\",backgroundColor:thumbColor,border:`3px solid ${thumbBorderColor}`,cursor:\"grab\",// When dragging max, it gets highest priority (3)\n// When not dragging, it stays at 2 (above min's 1) so it's always clickable when overlapping\nzIndex:activeThumb===\"max\"?3:2,touchAction:\"none\",transition:activeThumb===\"max\"?\"none\":\"left 0.1s ease\"},children:/*#__PURE__*/_jsxs(\"div\",{className:\"bubble\",style:{position:\"absolute\",bottom:\"calc(100% + 8px)\",// Smart positioning: shift at edges to prevent overflow\nleft:maxPercentage>=90?\"auto\":\"50%\",right:maxPercentage>=90?\"0\":\"auto\",transform:maxPercentage>=90?\"translateX(0)\":\"translateX(-50%)\",padding:\"6px 12px\",borderRadius:\"1rem\",backgroundColor:bubbleColor,color:bubbleTextColor,whiteSpace:\"nowrap\",fontSize:fontSize,fontFamily:font?.fontFamily||undefined,fontWeight:font?.fontWeight??undefined,fontStyle:font?.fontStyle??undefined,pointerEvents:\"none\",userSelect:\"none\"},children:[maxValue,unit]})})]})});}\nexport const __FramerMetadata__ = {\"exports\":{\"DoubleRangeSlider\":{\"type\":\"reactComponent\",\"name\":\"DoubleRangeSlider\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any\",\"framerDisableUnlink\":\"\",\"framerSupportedLayoutWidth\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./DoubleRangeSlider.map","// RangeFilter component for CMS Filter system\n// Extracted from CMSFilters.tsx for better modularity\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{DoubleRangeSlider}from\"https://framerusercontent.com/modules/BNKPJXocDPceT63H0PHv/zAHa2GsWdwYb02j8c0Hx/DoubleRangeSlider.js\";/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerDisableUnlink\n */export function RangeFilter({config,value,onChange,filterInputStyles,filterRangeStyles,uniqueClassName}){const min=config.min||0;const max=config.max||100;const step=config.step||1;const currentValue=value||{min:min,max:max};const unit=config.unit||\"\";// Use range slider if specified\nif(config.rangeStyle===\"range-slider\"){return /*#__PURE__*/_jsx(DoubleRangeSlider,{...filterRangeStyles,...filterRangeStyles.font,config:config,value:value,onRangeChange:(min,max)=>onChange({min,max})});}// Dual input style (default)\nreturn /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:`\n                .cms-filter-input.${uniqueClassName} {\n                    transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;\n                }\n                .cms-filter-input.${uniqueClassName}:hover:not(:focus) {\n                    border-color: ${filterInputStyles?.hoverBorderColor||filterInputStyles?.selectedBorderColor||\"#007AFF\"} !important;\n                    background-color: ${filterInputStyles?.hoverBackgroundColor||\"#f8f9fa\"} !important;\n                    color: ${filterInputStyles?.hoverTextColor||filterInputStyles?.color||\"#333\"} !important;\n                }\n                .cms-filter-input.${uniqueClassName}:focus {\n                    border-color: ${filterInputStyles?.selectedBorderColor||\"#007AFF\"} !important;\n                    background-color: ${filterInputStyles?.selectedBackgroundColor||\"#fff\"} !important;\n                    color: ${filterInputStyles?.selectedTextColor||\"#333\"} !important;\n                }\n            `}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:8},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:config.rangeInputOptions===\"left-right\"?\"row\":\"column\",justifyContent:config.rangeInputOptions===\"left-right\"?\"space-between\":\"space-around\",flexWrap:\"wrap\",gap:8},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:config.rangeInputOptions===\"left-right\"?\"flex-start\":\"center\",flexDirection:config.rangeInputOptions===\"left-right\"?\"column\":\"row\",gap:8},children:[/*#__PURE__*/_jsx(\"label\",{style:{fontSize:12,color:\"#666\",minWidth:30,...filterInputStyles.font,fontSize:filterInputStyles?.font?.fontSize||\"12px\"},children:\"Min:\"}),/*#__PURE__*/_jsx(\"input\",{className:`${uniqueClassName} cms-filter-input`,type:\"number\",value:currentValue.min!==undefined?currentValue.min:min,onChange:e=>{const newMin=e.target.value?parseFloat(e.target.value):min;onChange({min:newMin,max:currentValue.max!==undefined?currentValue.max:max});},min:min,max:currentValue.max!==undefined?currentValue.max:max,step:step,style:{padding:\"6px 8px\",border:\"1px solid #dee2e6\",borderRadius:4,lineHeight:1.2,outline:\"none\",flex:1,...filterInputStyles,...filterInputStyles.font,fontSize:filterInputStyles?.font?.fontSize||\"12px\"}}),unit&&/*#__PURE__*/_jsx(\"span\",{style:{fontSize:12,color:\"#666\",minWidth:\"auto\"},children:unit})]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:config.rangeInputOptions===\"left-right\"?\"flex-start\":\"center\",flexDirection:config.rangeInputOptions===\"left-right\"?\"column\":\"row\",gap:8},children:[/*#__PURE__*/_jsx(\"label\",{style:{fontSize:12,color:\"#666\",minWidth:30,...filterInputStyles.font,fontSize:filterInputStyles?.font?.fontSize||\"12px\"},children:\"Max:\"}),/*#__PURE__*/_jsx(\"input\",{className:`${uniqueClassName} cms-filter-input`,type:\"number\",value:currentValue.max!==undefined?currentValue.max:max,onChange:e=>{const newMax=e.target.value?parseFloat(e.target.value):max;onChange({min:currentValue.min!==undefined?currentValue.min:min,max:newMax});},min:currentValue.min!==undefined?currentValue.min:min,max:max,step:step,style:{padding:\"6px 8px\",border:\"1px solid #dee2e6\",borderRadius:4,lineHeight:1.2,outline:\"none\",flex:1,...filterInputStyles,...filterInputStyles.font,fontSize:filterInputStyles?.font?.fontSize||\"12px\"}}),unit&&/*#__PURE__*/_jsx(\"span\",{style:{fontSize:12,color:\"#666\",minWidth:\"auto\"},children:unit})]})]}),config.rangeBottomLabel&&/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\",fontSize:11,color:\"#999\",marginTop:4},children:[/*#__PURE__*/_jsxs(\"span\",{children:[\"Min: \",min,unit]}),/*#__PURE__*/_jsxs(\"span\",{children:[\"Max: \",max,unit]})]})]})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"RangeFilter\":{\"type\":\"reactComponent\",\"name\":\"RangeFilter\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any\",\"framerSupportedLayoutHeight\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./RangeFilter.map","// ToggleFilter component for CMS Filter system\n// Enhanced with tri-state support, custom labels, and multiple UI styles\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{getActiveMatch}from\"https://framerusercontent.com/modules/gpP9NQZkGM08zua7fzDA/ufvjGg4utuUHzowwKSUT/filter_utils.js\";/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerDisableUnlink\n */export function ToggleFilter({config,value,onChange,debugLevel,filterToggleStyles,uniqueClassName}){const activeMatch=getActiveMatch(config);// No input needed for is_set/is_not_set operators\nif(activeMatch===\"is_set\"||activeMatch===\"is_not_set\"){return /*#__PURE__*/_jsx(\"div\",{style:{padding:8,fontSize:12,color:\"#666\",fontStyle:\"italic\"},children:\"No input needed - checks if field has value\"});}// Get toggle style and tri-state setting\nconst toggleStyle=config.toggleStyle||\"switch\";const isTriState=config.toggleTriState||false;const showLabels=config.toggleShowLabels!==false// Default true\n;const isInverse=config.toggleInverse||false;// Get labels with smart defaults based on operator and inverse mode\nconst getDefaultLabels=()=>{// If inverse mode, flip ON/OFF meanings\nconst base=(()=>{switch(activeMatch){// Boolean operators (for boolean fields)\ncase\"is_enabled\":return isInverse?{on:\"Disabled\",off:\"Enabled\",any:\"Any\"}:{on:\"Enabled\",off:\"Disabled\",any:\"Any\"};case\"is_disabled\":return isInverse?{on:\"Enabled\",off:\"Disabled\",any:\"Any\"}:{on:\"Disabled\",off:\"Enabled\",any:\"Any\"};// Value operators (works for all field types)\ncase\"has_value\":return isInverse?{on:\"Hide With Value\",off:\"Show With Value\",any:\"Any\"}:{on:\"Has Value\",off:\"Empty\",any:\"Any\"};case\"is_empty\":return isInverse?{on:\"Hide Empty\",off:\"Show Empty\",any:\"Any\"}:{on:\"Empty\",off:\"Has Value\",any:\"Any\"};default:return isInverse?{on:\"Exclude\",off:\"Include\",any:\"Any\"}:{on:\"On\",off:\"Off\",any:\"Any\"};}})();return base;};const defaultLabels=getDefaultLabels();const onLabel=config.toggleOnLabel||defaultLabels.on;const offLabel=config.toggleOffLabel||defaultLabels.off;const anyLabel=config.toggleAnyLabel||defaultLabels.any;// Determine if toggle is \"active\" (ON state)\n// For boolean: true = ON, false = OFF\n// For other types: any truthy value = ON, null/undefined = OFF\nconst isValueActive=()=>{if(value===null||value===undefined)return false;if(typeof value===\"boolean\")return value;// For strings and numbers, check if they exist (not empty)\nif(typeof value===\"string\")return value.trim()!==\"\";if(typeof value===\"number\")return true;return!!value;};// Determine current state for tri-state or binary\nconst getCurrentState=()=>{if(isTriState){if(value===null||value===undefined)return\"any\";return isValueActive()?\"on\":\"off\";}else{return isValueActive()?\"on\":\"off\";}};const currentState=getCurrentState();// Handle click based on tri-state or binary mode\nconst handleClick=()=>{if(isTriState){// Cycle: ANY -> ON -> OFF -> ANY\nif(value===null||value===undefined){onChange(true)// Set to ON (true for any field type)\n;}else if(isValueActive()){onChange(false)// Set to OFF (false for any field type)\n;}else{onChange(null)// Set to ANY (null)\n;}}else{// Toggle: OFF -> ON -> OFF\n// For boolean: toggle true/false\n// For other types: toggle between value and null\nonChange(isValueActive()?false:true);}};// Render based on toggle style\nswitch(toggleStyle){case\"switch\":return renderSwitch();case\"pill\":return renderPill();default:return renderSwitch();}// Switch Style (CSS-based)\nfunction renderSwitch(){const switchWidth=filterToggleStyles?.switchWidth??52;const switchHeight=filterToggleStyles?.switchHeight??24;const knobSize=filterToggleStyles?.knobSize??18;const gap=filterToggleStyles?.gap??12;// Convert border object to CSS string\nconst getBorderString=()=>{const border=filterToggleStyles?.border;if(typeof border===\"string\"){return border;}else if(border&&typeof border===\"object\"){const{borderWidth=1,borderStyle=\"solid\",borderColor=\"#dee2e6\"}=border;return`${borderWidth}px ${borderStyle} ${borderColor}`;}return`1px solid ${filterToggleStyles?.borderColor||\"#dee2e6\"}`;};const borderString=getBorderString();// Calculate knob positions for different states\nconst knobPositionOff=gap;const knobPositionAny=(switchWidth-knobSize)/2;const knobPositionOn=switchWidth-knobSize-gap-1;// State classes\nconst stateClass=currentState===\"on\"?\"is-on\":currentState===\"any\"?\"is-any\":\"is-off\";return /*#__PURE__*/_jsxs(\"div\",{className:\"cms-toggle-wrapper\",children:[/*#__PURE__*/_jsx(\"style\",{children:`\n                    /* Switch Container */\n                    .cms-toggle-switch.${uniqueClassName} {\n                        position: relative;\n                        width: ${switchWidth}px;\n                        height: ${switchHeight}px;\n                        border-radius: ${switchHeight/2}px;\n                        cursor: pointer;\n                        transition: all 0.2s ease;\n                        place-content: center;\n                        border: ${borderString};\n                    }\n\n                    /* Any State (Tri-state) \n                    .cms-toggle-switch.${uniqueClassName}.is-any {\n                        background-color: ${filterToggleStyles?.anyBackgroundColor||\"#6c757d\"};\n                        border-color: ${filterToggleStyles?.anyBorderColor||\"#6c757d\"};\n                    }*/\n\n                    /* Default/Off State */\n                    .cms-toggle-switch.${uniqueClassName}.is-off {\n                        background-color: ${filterToggleStyles?.backgroundColor||\"#ccc\"};\n                        border-color: ${filterToggleStyles?.borderColor||\"#dee2e6\"};\n                    }\n\n                    /* Hover States */\n                    .cms-toggle-switch.${uniqueClassName}:hover {\n                        box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);\n                    }\n\n                    .cms-toggle-switch.${uniqueClassName}.is-on:hover {\n                        background-color: ${filterToggleStyles?.hoverBackgroundColor||\"#0056b3\"};\n                        border-color: ${filterToggleStyles?.hoverBorderColor||\"#dee2e6\"};\n                    }\n\n                    /* On/Selected State */\n                    .cms-toggle-switch.${uniqueClassName}.is-on {\n                        background-color: ${filterToggleStyles?.selectedBackgroundColor||\"#007AFF\"};\n                        border-color: ${filterToggleStyles?.selectedBorderColor||\"#007AFF\"};\n                    }\n\n                    /* Switch Knob */\n                    .cms-toggle-knob.${uniqueClassName} {\n                        position: relative;\n                        width: ${knobSize}px;\n                        height: ${knobSize}px;\n                        border-radius: ${filterToggleStyles?.borderRadius||knobSize/2}px;\n                        background-color: ${filterToggleStyles?.innerBackgroundColor||\"#fff\"};\n                        transition: all 0.2s ease;\n                        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);\n                    }\n\n                    /* Knob Positions */\n                    .cms-toggle-switch.${uniqueClassName}.is-off .cms-toggle-knob.${uniqueClassName} {\n                        left: ${knobPositionOff}px;\n                    }\n\n                    .cms-toggle-switch.${uniqueClassName}.is-any .cms-toggle-knob.${uniqueClassName} {\n                        left: ${knobPositionAny}px;\n                    }\n\n                    .cms-toggle-switch.${uniqueClassName}.is-on .cms-toggle-knob.${uniqueClassName} {\n                        left: ${knobPositionOn}px;\n                    }\n\n                    /* Label Styles */\n                    .cms-toggle-label.${uniqueClassName} {\n                        font-size: ${filterToggleStyles?.font?.fontSize||\"14px\"};\n                        font-family: ${filterToggleStyles?.font?.fontFamily||\"inherit\"};\n                        font-weight: ${filterToggleStyles?.font?.fontWeight||\"inherit\"};\n                        font-style: ${filterToggleStyles?.font?.fontStyle||\"inherit\"};\n                        transition: color 0.2s ease;\n                    }\n\n                    .cms-toggle-label.${uniqueClassName}.is-off  {\n                        color: ${filterToggleStyles?.color||\"#666\"};\n                    }\n\n                    .cms-toggle-label.${uniqueClassName}.is-on {\n                        color: ${filterToggleStyles?.selectedTextColor||\"#666\"};\n                    }\n\n                    /*.cms-toggle-label.${uniqueClassName}.is-any {\n                        color: ${filterToggleStyles?.anyTextColor||\"#6c757d\"};\n                    }*/\n\n                    /* Wrapper */\n                    .cms-toggle-wrapper {\n                        display: flex;\n                        align-items: center;\n                        gap: 12px;\n                        padding-left: 2px;\n                    }\n                `}),/*#__PURE__*/_jsx(\"div\",{className:`cms-toggle-switch ${uniqueClassName} ${stateClass}`,onClick:handleClick,children:/*#__PURE__*/_jsx(\"div\",{className:`cms-toggle-knob ${uniqueClassName}`})}),showLabels&&/*#__PURE__*/_jsx(\"span\",{className:`cms-toggle-label ${uniqueClassName} ${stateClass}`,style:{...filterToggleStyles?.font,fontSize:filterToggleStyles?.font?.fontSize||\"14px\"},children:currentState===\"on\"?onLabel:currentState===\"any\"?anyLabel:offLabel}),debugLevel===\"full_debug\"&&/*#__PURE__*/_jsxs(\"span\",{style:{fontSize:11,color:\"#888\",marginLeft:8},children:[isTriState?`Tri-state: ${currentState}`:`Binary: ${currentState}`,isInverse&&\" (Inverted)\"]})]});}// Pill Style (Segmented Control)\nfunction renderPill(){const borderRadius=filterToggleStyles?.borderRadius??20;const pillGap=filterToggleStyles?.pillGap??0;const padding=filterToggleStyles?.padding??8;// Convert border object to CSS string\nconst getBorderString=()=>{const border=filterToggleStyles?.border;if(typeof border===\"string\"){return border;}else if(border&&typeof border===\"object\"){const{borderWidth=1,borderStyle=\"solid\",borderColor=\"#dee2e6\"}=border;return`${borderWidth}px ${borderStyle} ${borderColor}`;}return`1px solid ${filterToggleStyles?.borderColor||\"#dee2e6\"}`;};const borderString=getBorderString();const pillOptions=isTriState?[{value:\"any\",label:anyLabel},{value:\"on\",label:onLabel},{value:\"off\",label:offLabel}]:[{value:\"on\",label:onLabel},{value:\"off\",label:offLabel}];// Calculate sliding pill position and width\nconst activeIndex=pillOptions.findIndex(opt=>opt.value===currentState);const totalOptions=pillOptions.length;// Total gap space between all pills\nconst totalGaps=(totalOptions-1)*pillGap;// Width of each pill = (100% - container padding - all gaps) / number of pills\nconst pillWidthFormula=`(100% - 4px - ${totalGaps}px) / ${totalOptions}`;// Position = container padding + (active index × (pill width + gap between pills))\n// For activeIndex = 0: 2px\n// For activeIndex = 1: 2px + 1 * (pillWidth + gap)\n// For activeIndex = 2: 2px + 2 * (pillWidth + gap)\nconst leftPosition=activeIndex===0?\"2px\":`calc(2px + ${activeIndex} * ((${pillWidthFormula}) + ${pillGap}px))`;const sliderWidth=`calc(${pillWidthFormula})`;const pillBackgroundColor=filterToggleStyles?.selectedBackgroundColor||\"#007AFF\";return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:`\n                    /* Pill Container */\n                    .cms-pill-container.${uniqueClassName} {\n                        position: relative;\n                        display: flex;\n                        gap: ${pillGap}px;\n                        padding: 2px;\n                        background-color: ${filterToggleStyles?.backgroundColor||\"#f0f0f0\"};\n                        border-radius: ${borderRadius}px;\n                        border: ${borderString};\n                    }\n\n                    /* Sliding Background Pill */\n                    .cms-pill-slider.${uniqueClassName} {\n                        position: absolute;\n                        top: 2px;\n                        left: ${leftPosition};\n                        width: ${sliderWidth};\n                        height: calc(100% - 4px);\n                        background-color: ${pillBackgroundColor};\n                        border-radius: ${borderRadius-2}px;\n                        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n                        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n                        z-index: 1;\n                    }\n\n                    /* Pill Option Base */\n                    .cms-pill-option.${uniqueClassName} {\n                        position: relative;\n                        flex: 1 1 0;\n                        min-width: 0;\n                        padding: ${filterToggleStyles?.padding||\"0px\"};\n                        border-radius: ${borderRadius-2}px;\n                        font-size: ${filterToggleStyles?.fontSize||\"14px\"};\n                        font-family: ${filterToggleStyles?.font?.fontFamily||\"inherit\"};\n                        font-weight: ${filterToggleStyles?.font?.fontWeight||\"inherit\"};\n                        font-style: ${filterToggleStyles?.font?.fontStyle||\"inherit\"};\n                        text-align: center;\n                        cursor: pointer;\n                        transition: color 0.2s ease;\n                        user-select: none;\n                        display: flex;\n                        align-items: center;\n                        justify-content: center;\n                        white-space: nowrap;\n                        overflow: hidden;\n                        text-overflow: ellipsis;\n                        z-index: 2;\n                    }\n\n                    /* Inactive State */\n                    .cms-pill-option.${uniqueClassName}.is-inactive {\n                        color: ${filterToggleStyles?.color||\"#666\"};\n                        font-weight: 400;\n                    }\n\n                    /* Active State */\n                    .cms-pill-option.${uniqueClassName}.is-active {\n                        color: ${filterToggleStyles?.selectedTextColor||\"#fff\"};\n                    }\n\n                    /* Hover States */\n                    .cms-pill-option.${uniqueClassName}:hover {\n                        opacity: 0.9;\n                    }\n                `}),/*#__PURE__*/_jsxs(\"div\",{className:`cms-pill-container ${uniqueClassName}`,children:[/*#__PURE__*/_jsx(\"div\",{className:`cms-pill-slider ${uniqueClassName}`}),pillOptions.map(option=>{const isActive=currentState===option.value;return /*#__PURE__*/_jsx(\"div\",{className:`cms-pill-option ${uniqueClassName} ${isActive?\"is-active\":\"is-inactive\"}`,style:{...filterToggleStyles?.font,fontSize:filterToggleStyles?.font?.fontSize||\"14px\"},onClick:()=>{if(isTriState){onChange(option.value===\"on\"?true:option.value===\"off\"?false:null);}else{onChange(option.value===\"on\"?true:false);}},children:option.label},option.value);})]})]});}}\nexport const __FramerMetadata__ = {\"exports\":{\"ToggleFilter\":{\"type\":\"reactComponent\",\"name\":\"ToggleFilter\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"\",\"framerSupportedLayoutWidth\":\"any\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ToggleFilter.map","// CMSEnumFilter component for CMS Filter system\n// Extracted from CMSFilters.tsx for better modularity\n// @ts-ignore-next-line\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{getActiveMatch,getOptionCounts,formatCountDisplay}from\"https://framerusercontent.com/modules/gpP9NQZkGM08zua7fzDA/ufvjGg4utuUHzowwKSUT/filter_utils.js\";import{SelectFilter}from\"https://framerusercontent.com/modules/rhjV7CBikISubRqt2bpe/TsuS3P5xvcUSgd5zpupI/SelectFilter.js\";import{CheckboxFilter}from\"https://framerusercontent.com/modules/ktAWutRRdcvtUBylxWdw/HPKhlQqZvPckSzCMy2kp/CheckboxFilter.js\";/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerDisableUnlink\n */export function CMSEnumFilter({config,value,onChange,debugLevel,filterPillStyles,filterSelectStyles,filterCheckboxStyles,uniqueClassName,availableFields,collectionInfo}){const activeMatch=getActiveMatch(config);// No input needed for is_set/is_not_set operators\nif(activeMatch===\"is_set\"||activeMatch===\"is_not_set\"){return /*#__PURE__*/_jsx(\"div\",{style:{padding:8,fontSize:12,color:\"#666\",fontStyle:\"italic\"},children:\"No input needed - checks if field has value\"});}const enumFieldInfo=availableFields.find(f=>f.title.toLowerCase()===config.fieldName.toLowerCase()&&f.type===\"enum\");// Determine enum options and values\nlet enumOptions;let enumValues;let optionCounts={};if(availableFields.length===0){// Editor mode: show placeholder options\nenumOptions=[\"Option 1\",\"Option 2\",\"Option 3\",\"Option 4\"];enumValues=[\"option1\",\"option2\",\"option3\",\"option4\"];}else if(!enumFieldInfo||!enumFieldInfo.optionTitles){// Preview mode: show error for invalid field\nreturn /*#__PURE__*/_jsxs(\"div\",{style:{padding:8,color:\"#dc3545\",fontSize:12,fontStyle:\"italic\",backgroundColor:\"#f8d7da\",borderRadius:4},children:['CMS enum field \"',config.fieldName,'\" not found or has no options. Make sure the field exists and is an enum type.']});}else{// Preview mode: use actual CMS data\nenumOptions=enumFieldInfo.optionTitles;enumValues=enumFieldInfo.options||enumFieldInfo.optionTitles;// Get counts for each option if enabled\nif(config.showPostCount&&collectionInfo){const fieldKey=Object.keys(collectionInfo.propertyControls).find(key=>collectionInfo.propertyControls[key]?.title?.toLowerCase()===config.fieldName.toLowerCase());if(fieldKey){const originalQuery=collectionInfo.query;optionCounts=getOptionCounts(collectionInfo.collectionId,fieldKey,enumValues,originalQuery);}}}// Dropdown style - uses SelectFilter component (supports both single and multi-select)\nif(config.enumStyle===\"dropdown\"){// Build config with enum options including counts\n// getOptionData expects config.options in {value, title} format\nconst configWithOptions={...config,options:enumValues.map((optionValue,idx)=>{const optionTitle=enumOptions[idx];const count=optionCounts[optionValue];const displayTitle=config.showPostCount&&count!==undefined?formatCountDisplay(optionTitle,count,config.countTemplate).text:optionTitle;return{value:optionValue,title:displayTitle};})};return /*#__PURE__*/_jsx(SelectFilter,{config:configWithOptions,value:value,onChange:onChange,debugLevel:debugLevel,filterSelectStyles:filterSelectStyles,uniqueClassName:uniqueClassName});}// Checkboxes style (from archive implementation)\nif(config.enumStyle===\"checkboxes\"){const configWithOptions={...config,options:enumValues.map((optionValue,idx)=>{const optionTitle=enumOptions[idx];const count=optionCounts[optionValue];const displayTitle=config.showPostCount&&count!==undefined?formatCountDisplay(optionTitle,count,config.countTemplate).text:optionTitle;return{value:optionValue,title:displayTitle};})};return /*#__PURE__*/_jsx(CheckboxFilter,{config:configWithOptions,value:value,onChange:onChange,debugLevel:debugLevel,filterCheckboxStyles:filterCheckboxStyles,uniqueClassName:uniqueClassName});}// Tags style (default for CMS enums)\nconst selectedValues=Array.isArray(value)?value:value?[value]:[];const isAllSelected=config.allowMultiple?selectedValues.length===0:value===\"\"||value===null||value===undefined;// Compute pill width based on sizing option (only applies in block layout)\nconst getPillWidthStyle=()=>{if(config.pillLayout!==\"block\"){return{width:\"fit-content\"};}switch(config.pillSizing){case\"fill\":return{width:\"100%\"};case\"fixed\":return{width:config.pillWidth||\"200px\"};case\"auto\":default:return{width:\"fit-content\"};}};const pillWidthStyle=getPillWidthStyle();return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:`\n                .cms-enum-tag.${uniqueClassName} {\n                    display: flex;\n                    align-items: center;\n                    padding: 6px 12px;\n                    border: 1px solid #dee2e6;\n                    border-radius: 4px;\n                    cursor: pointer;\n                    transition: all 0.2s ease;\n                    background-color: ${filterPillStyles?.backgroundColor||\"#fff\"};\n                    color: ${filterPillStyles?.color||\"#333\"};\n  ${(()=>{if(typeof filterPillStyles?.border===\"string\"){return`border: ${filterPillStyles.border};`;}else if(filterPillStyles?.border){const border=filterPillStyles.border;return`\n        ${border.borderWidth!==undefined?`border-width: ${border.borderWidth}px;`:\"\"}\n        ${border.borderTopWidth!==undefined?`border-top-width: ${border.borderTopWidth}px;`:\"\"}\n        ${border.borderBottomWidth!==undefined?`border-bottom-width: ${border.borderBottomWidth}px;`:\"\"}\n        ${border.borderLeftWidth!==undefined?`border-left-width: ${border.borderLeftWidth}px;`:\"\"}\n        ${border.borderRightWidth!==undefined?`border-right-width: ${border.borderRightWidth}px;`:\"\"}\n        ${border.borderStyle?`border-style: ${border.borderStyle};`:\"border-style: solid;\"}\n        ${border.borderColor?`border-color: ${border.borderColor};`:\"border-color: #dee2e6;\"}\n      `;}else{return\"border: none;\";}})()}\n                    user-select: none;\n                }\n                .cms-enum-tag.${uniqueClassName}:hover {\n                    color: ${filterPillStyles?.hoverTextColor||\"#fff\"} !important;\n                    border-color: ${filterPillStyles?.hoverBorderColor||\"#007AFF\"} !important;\n                    background-color: ${filterPillStyles?.hoverBackgroundColor||\"#f8f9fa\"} !important;\n                }\n                .cms-enum-tag.${uniqueClassName}.selected {\n                    background-color: ${filterPillStyles?.selectedBackgroundColor||\"#007AFF\"} !important;\n                    color: ${filterPillStyles?.selectedTextColor||\"#fff\"} !important;\n                    border-color: ${filterPillStyles?.selectedBorderColor||\"#007AFF\"} !important;\n                }\n            `}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:8},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:config.pillLayout===\"block\"?\"column\":\"row\",flexWrap:config.pillLayout===\"block\"?\"nowrap\":\"wrap\",gap:filterPillStyles?.gap||8},children:[config.showAllOption&&/*#__PURE__*/_jsx(\"div\",{className:`cms-enum-tag ${uniqueClassName} ${isAllSelected?\"selected\":\"\"}`,onClick:()=>{if(!isAllSelected){onChange(config.allowMultiple?[]:\"\");}},style:{...filterPillStyles,...filterPillStyles?.font,fontSize:filterPillStyles?.font?.fontSize||\"14px\",...isAllSelected?filterPillStyles?.selectedFont:{},...pillWidthStyle},children:config.allOptionLabel||`All ${config.title}`}),enumValues.map((optionValue,idx)=>{const optionTitle=enumOptions[idx];const isSelected=selectedValues.includes(optionValue);const count=optionCounts[optionValue];const{text:displayText,countElement}=config.showPostCount&&count!==undefined?formatCountDisplay(optionTitle,count,config.countTemplate,config.countStyle):{text:optionTitle,countElement:null};return /*#__PURE__*/_jsxs(\"div\",{className:`cms-enum-tag ${uniqueClassName} ${isSelected?\"selected\":\"\"}`,onClick:()=>{if(config.allowMultiple){if(isSelected){const newValues=selectedValues.filter(v=>v!==optionValue);onChange(newValues);}else{// When selecting any item, ensure \"All\" is not selected\nonChange([...selectedValues,optionValue]);}}else{// Single select - respect allowDeselect setting\nonChange(isSelected&&(config.allowDeselect??true)?\"\":optionValue);}},style:{...filterPillStyles,...filterPillStyles?.font,fontSize:filterPillStyles?.font?.fontSize||\"14px\",...isSelected?filterPillStyles?.selectedFont:{},...pillWidthStyle},children:[displayText,countElement&&/*#__PURE__*/_jsxs(_Fragment,{children:[\" \",countElement]})]},idx);})]}),(debugLevel===\"ui_helpers\"||debugLevel===\"full_debug\")&&selectedValues.length>0&&/*#__PURE__*/_jsxs(\"div\",{style:{fontSize:11,color:\"#007AFF\",padding:\"6px 10px\",backgroundColor:\"#f0f8ff\",borderRadius:4,border:\"1px solid #b3d9ff\"},children:[/*#__PURE__*/_jsx(\"strong\",{children:selectedValues.length}),\" selected:\",\" \",selectedValues.map(val=>enumOptions[enumValues.indexOf(val)]||val).join(\", \")]})]})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"CMSEnumFilter\":{\"type\":\"reactComponent\",\"name\":\"CMSEnumFilter\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any\",\"framerDisableUnlink\":\"\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// MultiRefFilter - Filter component for multi-reference fields in CMSFilters builder\n// Follows DRY approach, reusing patterns from CMSEnumFilter\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useMemo}from\"react\";import{useQueryData,RenderTarget}from\"framer\";import{getCollectionInfo,getCmsQueryFromSlot}from\"https://framerusercontent.com/modules/2VZikWBxCagm4nJReNjX/uFUqD0e9fJ1WAIOOmgia/store_management.js\";import{SelectFilter}from\"https://framerusercontent.com/modules/rhjV7CBikISubRqt2bpe/TsuS3P5xvcUSgd5zpupI/SelectFilter.js\";import{TagFilter}from\"https://framerusercontent.com/modules/yoPENdwUHgW0xBoBrcKB/A0k863LM1epD0DYr3i4t/TagFilter.js\";import{CheckboxFilter}from\"https://framerusercontent.com/modules/ktAWutRRdcvtUBylxWdw/HPKhlQqZvPckSzCMy2kp/CheckboxFilter.js\";export function MultiRefFilter({config,value,onChange,debugLevel,filterPillStyles={},filterCheckboxStyles={},filterSelectStyles={},uniqueClassName,multiRefCollection}){const selectedIds=value||[];const collectionName=config.multiRefCollectionName?.trim().toLowerCase()||\"\";// Find the matching collection from array by name\nconst{matchedCollection,collectionNameMatchError,availableCollectionNames}=useMemo(()=>{if(!multiRefCollection){return{matchedCollection:null,collectionNameMatchError:false,availableCollectionNames:[]};}const collections=Array.isArray(multiRefCollection)?multiRefCollection:[multiRefCollection];// Collect all available collection names for error message\nconst availableNames=[];for(const col of collections){try{const info=getCollectionInfo(col);if(info?.collectionName){availableNames.push(info.collectionName);}}catch{continue;}}// If only one collection, use it regardless of name\nif(collections.length===1){return{matchedCollection:collections[0],collectionNameMatchError:false,availableCollectionNames:availableNames};}// Find collection by matching name\nif(!collectionName){// If no name specified, use first collection\nreturn{matchedCollection:collections[0],collectionNameMatchError:false,availableCollectionNames:availableNames};}// Try to find collection by EXACT name match (case-insensitive)\nfor(const col of collections){try{const info=getCollectionInfo(col);const colName=info?.collectionName?.toLowerCase().trim()||\"\";// Strict equality match (not substring)\nif(colName===collectionName.toLowerCase()){return{matchedCollection:col,collectionNameMatchError:false,availableCollectionNames:availableNames};}}catch{continue;}}// Not found - return first collection but flag the error\nreturn{matchedCollection:collections[0],collectionNameMatchError:true,availableCollectionNames:availableNames};},[multiRefCollection,collectionName]);// Get reference collection info\nconst refCollectionInfo=useMemo(()=>getCollectionInfo(matchedCollection),[matchedCollection]);// Find title field key in reference collection FIRST (needed for query building)\n// This must be computed before refQuery so we can ensure the title field is in the select array\nconst titleField=config.multiRefTitleField||\"Title\";const{titleFieldKey,titleFieldMatchError,availableTitleFields}=useMemo(()=>{if(!refCollectionInfo?.propertyControls){return{titleFieldKey:null,titleFieldMatchError:false,availableTitleFields:[]};}// Collect available field names for error message\nconst availableFields=[];for(const[key,control]of Object.entries(refCollectionInfo.propertyControls)){const ctrl=control;if(ctrl.title){availableFields.push(ctrl.title);}}const entry=Object.entries(refCollectionInfo.propertyControls).find(([key,control])=>control.title?.toLowerCase().trim()===titleField.toLowerCase().trim()||key.toLowerCase().trim()===titleField.toLowerCase().trim());if(entry){return{titleFieldKey:entry[0],titleFieldMatchError:false,availableTitleFields:availableFields};}// Not found - flag the error\nreturn{titleFieldKey:null,titleFieldMatchError:true,availableTitleFields:availableFields};},[refCollectionInfo,titleField]);// Extract query from matchedCollection for useQueryData\n// CRITICAL: Ensure titleFieldKey is always in the select array\n// When converted to a Framer component, Framer optimizes out CMS fields not bound to visible elements\n// This causes the title field to be missing from query.select, resulting in IDs shown instead of labels\nconst refQuery=useMemo(()=>{if(!matchedCollection)return null;try{// Use the helper function that handles both Masonry and standard structures\nconst query=getCmsQueryFromSlot(matchedCollection);if(!query)return null;// Get the original select array\nconst originalSelect=query.select||[];// Ensure titleFieldKey is in the select array (fix for Framer component optimization)\nlet enhancedSelect=[...originalSelect];if(titleFieldKey){const hasTitleField=originalSelect.some(field=>field.name===titleFieldKey||field===titleFieldKey);if(!hasTitleField){// Add the title field to the select array\n// Match the format of other fields in the select array\nconst collectionId=originalSelect[0]?.collection||refCollectionInfo?.collectionId;if(collectionId){enhancedSelect.push({collection:collectionId,name:titleFieldKey,type:\"Identifier\"});}}}return{from:query.from,select:enhancedSelect,// Preserve where clause from reference collection (e.g., filter by \"Active\" status)\nwhere:query.where,// Preserve orderBy clause from reference collection (e.g., sort by \"Order\" field)\norderBy:query.orderBy};}catch{return null;}},[matchedCollection,titleFieldKey,refCollectionInfo?.collectionId]);// Fetch reference items\nconst refItems=refQuery?useQueryData(refQuery):[];// Compute options from reference items\nconst referenceOptions=useMemo(()=>{if(!refItems||!Array.isArray(refItems)||refItems.length===0){return[];}return refItems.map(item=>{const itemData=item.data||item;const id=itemData?.id?.value||itemData?.id;let title=id;if(titleFieldKey){title=itemData?.[titleFieldKey]?.value||itemData?.[titleFieldKey]||id;}else{title=itemData?.title?.value||itemData?.title||itemData?.name?.value||itemData?.name||id;}return{id,title:title||id};}).filter(opt=>opt.id);},[refItems,titleFieldKey]);// Build valueTitles map from referenceOptions for given IDs\nconst buildValueTitles=ids=>{const valueTitles={};ids.forEach(id=>{const option=referenceOptions.find(opt=>opt.id===id);if(option){valueTitles[id]=option.title;}});return valueTitles;};// Handle option toggle\nconst handleToggle=optionId=>{const currentValues=selectedIds;let newValues;if(currentValues.includes(optionId)){// Toggle off\nif(config.multiRefAllowDeselect!==false){newValues=currentValues.filter(v=>v!==optionId);}else{return;// Don't allow deselect\n}}else{// Toggle on - respect allowMultiple\nif(config.multiRefAllowMultiple!==false){newValues=[...currentValues,optionId];}else{newValues=[optionId];}}const valueTitles=newValues.length>0?buildValueTitles(newValues):undefined;onChange(newValues.length>0?newValues:null,valueTitles);};// Handle \"All\" option\nconst handleClearAll=()=>{onChange(null,undefined);};// Canvas mode - use same components with mock data\nconst isCanvas=RenderTarget.current()===RenderTarget.canvas;if(isCanvas){const mockOptions=[{value:\"1\",title:\"Option 1\"},{value:\"2\",title:\"Option 2\"},{value:\"3\",title:\"Option 3\"}];const showAll=config.multiRefShowAllOption??config.showAllOption;const allLabel=config.multiRefAllLabel||config.allOptionLabel||\"All\";const selectionStyle=config.multiRefStyle||\"tags\";const allowMultiple=config.multiRefAllowMultiple??config.allowMultiple??true;const allowDeselect=config.multiRefAllowDeselect??config.allowDeselect??true;// Create mock config for canvas (same as preview but with mock options)\nconst canvasConfig={...config,options:mockOptions,allowMultiple,allowDeselect,showAllOption:showAll,allOptionLabel:allLabel,multiStyle:selectionStyle===\"dropdown\"?\"select\":selectionStyle};// Mock handler for canvas (does nothing)\nconst canvasHandler=()=>{};// Determine value to pass to children based on selection mode\nconst canvasChildValue=allowMultiple?selectedIds:selectedIds[0]||\"\";// Use same routing as DropdownFilter\nif(selectionStyle===\"dropdown\"){return /*#__PURE__*/_jsx(SelectFilter,{config:canvasConfig,value:canvasChildValue,onChange:canvasHandler,debugLevel:debugLevel,filterSelectStyles:filterSelectStyles||{},uniqueClassName:uniqueClassName});}if(selectionStyle===\"checkboxes\"){return /*#__PURE__*/_jsx(CheckboxFilter,{config:canvasConfig,value:canvasChildValue,onChange:canvasHandler,debugLevel:debugLevel,filterCheckboxStyles:filterCheckboxStyles||{},uniqueClassName:uniqueClassName});}// Default: tags style\nreturn /*#__PURE__*/_jsx(TagFilter,{config:canvasConfig,value:canvasChildValue,onChange:canvasHandler,debugLevel:debugLevel,filterPillStyles:filterPillStyles||{},uniqueClassName:uniqueClassName});}// No reference collection connected (only shows in preview)\nif(!multiRefCollection){return /*#__PURE__*/_jsx(\"div\",{style:{padding:12,color:\"#e74c3c\",fontSize:12,backgroundColor:\"#fdf2f2\",borderRadius:4},children:\"⚠️ Connect Reference Collection to CMSFilters component\"});}// Error: Collection name not found in slot\nif(collectionNameMatchError&&collectionName){return /*#__PURE__*/_jsxs(\"div\",{style:{padding:12,color:\"#e74c3c\",fontSize:12,backgroundColor:\"#fdf2f2\",borderRadius:4},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontWeight:600,marginBottom:4},children:\"⚠️ Reference Collection Not Found\"}),/*#__PURE__*/_jsxs(\"div\",{style:{marginBottom:4},children:['Collection \"',/*#__PURE__*/_jsx(\"strong\",{children:config.multiRefCollectionName}),'\" not found in Reference Collections slot.']}),availableCollectionNames.length>0&&/*#__PURE__*/_jsxs(\"div\",{style:{color:\"#666\"},children:[\"Available: \",availableCollectionNames.join(\", \")]})]});}// Error: Title field not found in reference collection\nif(titleFieldMatchError&&titleField){return /*#__PURE__*/_jsxs(\"div\",{style:{padding:12,color:\"#e74c3c\",fontSize:12,backgroundColor:\"#fdf2f2\",borderRadius:4},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontWeight:600,marginBottom:4},children:\"⚠️ Title Field Not Found\"}),/*#__PURE__*/_jsxs(\"div\",{style:{marginBottom:4},children:['Field \"',/*#__PURE__*/_jsx(\"strong\",{children:titleField}),'\" not found in reference collection.']}),availableTitleFields.length>0&&/*#__PURE__*/_jsxs(\"div\",{style:{color:\"#666\"},children:[\"Available fields:\",\" \",availableTitleFields.slice(0,5).join(\", \"),availableTitleFields.length>5&&` (+${availableTitleFields.length-5} more)`]})]});}// No options found\nif(referenceOptions.length===0){return /*#__PURE__*/_jsxs(\"div\",{style:{padding:12,color:\"#666\",fontSize:12},children:[\"No reference items found\",collectionName?` for \"${config.multiRefCollectionName}\"`:\"\"]});}// Use correct config precedence\nconst showAllOption=config.multiRefShowAllOption??config.showAllOption;const allLabel=config.multiRefAllLabel||config.allOptionLabel||\"All\";const selectionStyle=config.multiRefStyle||\"tags\";// For AllowMultiple/AllowDeselect, we default to TRUE if not specified\n// But we must respect FALSE if specified\nconst allowMultiple=config.multiRefAllowMultiple??config.allowMultiple??true;const allowDeselect=config.multiRefAllowDeselect??config.allowDeselect??true;// Convert reference options to the format expected by existing filter components\nconst refOptions=referenceOptions.map(opt=>({value:opt.id,title:opt.title}));// Create a modified config for the reusable components\nconst modifiedConfig={...config,options:refOptions,allowMultiple,allowDeselect,showAllOption,allOptionLabel:allLabel,// Map multiStyle to match DropdownFilter expectation\nmultiStyle:selectionStyle===\"dropdown\"?\"select\":selectionStyle};// Handler that converts between string[] and string | string[] formats\nconst handleChange=newValue=>{if(Array.isArray(newValue)){const valueTitles=newValue.length>0?buildValueTitles(newValue):undefined;onChange(newValue.length>0?newValue:null,valueTitles);}else{const valueTitles=newValue?buildValueTitles([newValue]):undefined;onChange(newValue?[newValue]:null,valueTitles);}};// Determine value to pass to children based on selection mode\n// Component expects string for single select, array for multi select\nconst childValue=allowMultiple?selectedIds:selectedIds[0]||\"\";// =========================================================================\n// DROPDOWN STYLE - use SelectFilter\n// =========================================================================\nif(selectionStyle===\"dropdown\"){return /*#__PURE__*/_jsx(SelectFilter,{config:modifiedConfig,value:childValue,onChange:handleChange,debugLevel:debugLevel,filterSelectStyles:filterSelectStyles||{},uniqueClassName:uniqueClassName});}// =========================================================================\n// CHECKBOX STYLE - use CheckboxFilter\n// =========================================================================\nif(selectionStyle===\"checkboxes\"){return /*#__PURE__*/_jsx(CheckboxFilter,{config:modifiedConfig,value:childValue,onChange:handleChange,debugLevel:debugLevel,filterCheckboxStyles:filterCheckboxStyles||{},uniqueClassName:uniqueClassName});}// =========================================================================\n// TAGS STYLE (default) - use TagFilter\n// =========================================================================\nreturn /*#__PURE__*/_jsx(TagFilter,{config:modifiedConfig,value:childValue,onChange:handleChange,debugLevel:debugLevel,filterPillStyles:filterPillStyles||{},uniqueClassName:uniqueClassName});}\nexport const __FramerMetadata__ = {\"exports\":{\"MultiRefFilter\":{\"type\":\"reactComponent\",\"name\":\"MultiRefFilter\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// SingleRefFilter - Filter component for single-reference fields in CMSFilters builder\n// Reuses the same reference slot + patterns as MultiRefFilter but enforces single selection\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useMemo}from\"react\";import{useQueryData,RenderTarget}from\"framer\";import{getCollectionInfo,getCmsQueryFromSlot}from\"https://framerusercontent.com/modules/2VZikWBxCagm4nJReNjX/uFUqD0e9fJ1WAIOOmgia/store_management.js\";import{SelectFilter}from\"https://framerusercontent.com/modules/rhjV7CBikISubRqt2bpe/TsuS3P5xvcUSgd5zpupI/SelectFilter.js\";import{TagFilter}from\"https://framerusercontent.com/modules/yoPENdwUHgW0xBoBrcKB/A0k863LM1epD0DYr3i4t/TagFilter.js\";import{CheckboxFilter}from\"https://framerusercontent.com/modules/ktAWutRRdcvtUBylxWdw/HPKhlQqZvPckSzCMy2kp/CheckboxFilter.js\";/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerDisableUnlink\n */export function SingleRefFilter({config,value,onChange,debugLevel,filterPillStyles={},filterCheckboxStyles={},filterSelectStyles={},uniqueClassName,multiRefCollection}){// Support both single and multi-select modes\nconst allowMultiple=config.singleRefAllowMultiple??false;const selectedValues=allowMultiple?Array.isArray(value)?value:value?[value]:[]:null;const selectedId=allowMultiple?\"\":(Array.isArray(value)?value[0]:value)||\"\";const collectionName=config.singleRefCollectionName?.trim().toLowerCase()||config.multiRefCollectionName?.trim().toLowerCase()||\"\";// Find the matching collection from array by name (same pattern as MultiRefFilter)\nconst{matchedCollection,collectionNameMatchError,availableCollectionNames}=useMemo(()=>{if(!multiRefCollection){return{matchedCollection:null,collectionNameMatchError:false,availableCollectionNames:[]};}const collections=Array.isArray(multiRefCollection)?multiRefCollection:[multiRefCollection];// Collect all available collection names for error message\nconst availableNames=[];for(const col of collections){try{const info=getCollectionInfo(col);if(info?.collectionName){availableNames.push(info.collectionName);}}catch{continue;}}// If only one collection, use it regardless of name\nif(collections.length===1){return{matchedCollection:collections[0],collectionNameMatchError:false,availableCollectionNames:availableNames};}// If no name specified, use first collection\nif(!collectionName){return{matchedCollection:collections[0],collectionNameMatchError:false,availableCollectionNames:availableNames};}// Try to find collection by EXACT name match (case-insensitive)\nfor(const col of collections){try{const info=getCollectionInfo(col);const colName=info?.collectionName?.toLowerCase().trim()||\"\";if(colName===collectionName){return{matchedCollection:col,collectionNameMatchError:false,availableCollectionNames:availableNames};}}catch{continue;}}// Not found - return first collection but flag the error\nreturn{matchedCollection:collections[0],collectionNameMatchError:true,availableCollectionNames:availableNames};},[multiRefCollection,collectionName]);// Get reference collection info\nconst refCollectionInfo=useMemo(()=>getCollectionInfo(matchedCollection),[matchedCollection]);// Find title field key in reference collection FIRST (needed for query building)\n// This must be computed before refQuery so we can ensure the title field is in the select array\nconst titleField=config.singleRefTitleField||config.multiRefTitleField||\"Title\";const{titleFieldKey,titleFieldMatchError,availableTitleFields}=useMemo(()=>{if(!refCollectionInfo?.propertyControls){return{titleFieldKey:null,titleFieldMatchError:false,availableTitleFields:[]};}// Collect available field names for error message\nconst availableFields=[];for(const[key,control]of Object.entries(refCollectionInfo.propertyControls)){const ctrl=control;if(ctrl.title){availableFields.push(ctrl.title);}}const entry=Object.entries(refCollectionInfo.propertyControls).find(([key,control])=>control.title?.toLowerCase().trim()===titleField.toLowerCase().trim()||key.toLowerCase().trim()===titleField.toLowerCase().trim());if(entry){return{titleFieldKey:entry[0],titleFieldMatchError:false,availableTitleFields:availableFields};}// Not found - flag the error\nreturn{titleFieldKey:null,titleFieldMatchError:true,availableTitleFields:availableFields};},[refCollectionInfo,titleField]);// Extract query from matchedCollection for useQueryData\n// CRITICAL: Ensure titleFieldKey is always in the select array\n// When converted to a Framer component, Framer optimizes out CMS fields not bound to visible elements\n// This causes the title field to be missing from query.select, resulting in IDs shown instead of labels\nconst refQuery=useMemo(()=>{if(!matchedCollection)return null;try{// Use the helper function that handles both Masonry and standard structures\nconst query=getCmsQueryFromSlot(matchedCollection);if(!query)return null;// Get the original select array\nconst originalSelect=query.select||[];// Ensure titleFieldKey is in the select array (fix for Framer component optimization)\nlet enhancedSelect=[...originalSelect];if(titleFieldKey){const hasTitleField=originalSelect.some(field=>field.name===titleFieldKey||field===titleFieldKey);if(!hasTitleField){// Add the title field to the select array\n// Match the format of other fields in the select array\nconst collectionId=originalSelect[0]?.collection||refCollectionInfo?.collectionId;if(collectionId){enhancedSelect.push({collection:collectionId,name:titleFieldKey,type:\"Identifier\"});}}}return{from:query.from,select:enhancedSelect,// Preserve where clause from reference collection (e.g., filter by \"Active\" status)\nwhere:query.where,// Preserve orderBy clause from reference collection (e.g., sort by \"Order\" field)\norderBy:query.orderBy};}catch{return null;}},[matchedCollection,titleFieldKey,refCollectionInfo?.collectionId]);// Fetch reference items\nconst refItems=refQuery?useQueryData(refQuery):[];// Compute options from reference items\nconst referenceOptions=useMemo(()=>{if(!refItems||!Array.isArray(refItems)||refItems.length===0){return[];}return refItems.map(item=>{const itemData=item.data||item;const id=itemData?.id?.value||itemData?.id;if(!id)return null;let title;if(titleFieldKey){title=itemData?.[titleFieldKey]?.value||itemData?.[titleFieldKey]||id;}else{title=itemData?.title?.value||itemData?.title||itemData?.name?.value||itemData?.name||id;}return{id,title:title||id};}).filter(opt=>!!opt&&!!opt.id);},[refItems,titleFieldKey]);// Canvas mode - use same components with mock data\nconst isCanvas=RenderTarget.current()===RenderTarget.canvas;if(isCanvas){const mockOptions=[{value:\"1\",title:\"Option 1\"},{value:\"2\",title:\"Option 2\"},{value:\"3\",title:\"Option 3\"}];const showAll=config.singleRefShowAllOption??config.showAllOption??true;const allLabel=config.singleRefAllLabel||config.allOptionLabel||\"All\";const selectionStyle=config.singleRefStyle||\"dropdown\";const canvasAllowMultiple=config.singleRefAllowMultiple??false;const allowDeselect=config.singleRefAllowDeselect??config.allowDeselect??true;// Create mock config for canvas (same as preview but with mock options)\nconst canvasConfig={...config,options:mockOptions,allowMultiple:canvasAllowMultiple,allowDeselect,logic:config.singleRefLogic||\"Any\",showAllOption:showAll,allOptionLabel:allLabel,multiStyle:selectionStyle===\"dropdown\"?\"select\":selectionStyle};// Mock handler for canvas (does nothing)\nconst canvasHandler=()=>{};const canvasChildValue=canvasAllowMultiple?selectedValues||[]:selectedId;if(selectionStyle===\"dropdown\"){return /*#__PURE__*/_jsx(SelectFilter,{config:canvasConfig,value:canvasChildValue,onChange:canvasHandler,debugLevel:debugLevel,filterSelectStyles:filterSelectStyles||{},uniqueClassName:uniqueClassName});}if(selectionStyle===\"checkboxes\"){return /*#__PURE__*/_jsx(CheckboxFilter,{config:canvasConfig,value:canvasChildValue,onChange:canvasHandler,debugLevel:debugLevel,filterCheckboxStyles:filterCheckboxStyles||{},uniqueClassName:uniqueClassName});}// Default: tags style\nreturn /*#__PURE__*/_jsx(TagFilter,{config:canvasConfig,value:canvasChildValue,onChange:canvasHandler,debugLevel:debugLevel,filterPillStyles:filterPillStyles||{},uniqueClassName:uniqueClassName});}// No reference collection connected (only shows in preview)\nif(!multiRefCollection){return /*#__PURE__*/_jsx(\"div\",{style:{padding:12,color:\"#e74c3c\",fontSize:12,backgroundColor:\"#fdf2f2\",borderRadius:4},children:\"⚠️ Connect Reference Collection to CMSFilters component\"});}// Error: Collection name not found in slot\nif(collectionNameMatchError&&collectionName){return /*#__PURE__*/_jsxs(\"div\",{style:{padding:12,color:\"#e74c3c\",fontSize:12,backgroundColor:\"#fdf2f2\",borderRadius:4},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontWeight:600,marginBottom:4},children:\"⚠️ Reference Collection Not Found\"}),/*#__PURE__*/_jsxs(\"div\",{style:{marginBottom:4},children:['Collection \"',/*#__PURE__*/_jsx(\"strong\",{children:config.singleRefCollectionName||config.multiRefCollectionName}),'\" not found in Reference Collections slot.']}),availableCollectionNames.length>0&&/*#__PURE__*/_jsxs(\"div\",{style:{color:\"#666\"},children:[\"Available: \",availableCollectionNames.join(\", \")]})]});}// Error: Title field not found in reference collection\nif(titleFieldMatchError&&titleField){return /*#__PURE__*/_jsxs(\"div\",{style:{padding:12,color:\"#e74c3c\",fontSize:12,backgroundColor:\"#fdf2f2\",borderRadius:4},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontWeight:600,marginBottom:4},children:\"⚠️ Title Field Not Found\"}),/*#__PURE__*/_jsxs(\"div\",{style:{marginBottom:4},children:['Field \"',/*#__PURE__*/_jsx(\"strong\",{children:titleField}),'\" not found in reference collection.']}),availableTitleFields.length>0&&/*#__PURE__*/_jsxs(\"div\",{style:{color:\"#666\"},children:[\"Available fields:\",\" \",availableTitleFields.slice(0,5).join(\", \"),availableTitleFields.length>5&&` (+${availableTitleFields.length-5} more)`]})]});}// No options found\nif(referenceOptions.length===0){return /*#__PURE__*/_jsxs(\"div\",{style:{padding:12,color:\"#666\",fontSize:12},children:[\"No reference items found\",collectionName?` for \"${config.singleRefCollectionName||config.multiRefCollectionName}\"`:\"\"]});}// Use correct config precedence - prioritize single-ref specific options\nconst showAllOption=config.singleRefShowAllOption??config.showAllOption??true;const allLabel=config.singleRefAllLabel||config.allOptionLabel||\"All\";const selectionStyle=config.singleRefStyle||\"dropdown\";const allowDeselect=config.singleRefAllowDeselect??config.allowDeselect??true;// Convert reference options to the format expected by existing filter components\nconst refOptions=referenceOptions.map(opt=>({value:opt.id,title:opt.title}));// Create a modified config for the reusable components\nconst modifiedConfig={...config,options:refOptions,allowMultiple,allowDeselect,showAllOption,allOptionLabel:allLabel,logic:config.singleRefLogic||\"Any\",// Map selectionStyle to match DropdownFilter expectation\nmultiStyle:selectionStyle===\"dropdown\"?\"select\":selectionStyle};// Build valueTitles map from referenceOptions for given IDs\nconst buildValueTitles=ids=>{const valueTitles={};ids.forEach(id=>{const option=referenceOptions.find(opt=>opt.id===id);if(option){valueTitles[id]=option.title;}});return valueTitles;};// Handler that supports both single and multi-select modes\nconst handleChange=newValue=>{if(allowMultiple){// Multi-select mode: keep array format\nif(Array.isArray(newValue)){const valueTitles=newValue.length>0?buildValueTitles(newValue):undefined;onChange(newValue.length>0?newValue:null,valueTitles);}else{const valueTitles=newValue?buildValueTitles([newValue]):undefined;onChange(newValue?[newValue]:null,valueTitles);}}else{// Single-select mode: convert to string\nif(Array.isArray(newValue)){const id=newValue.length>0?newValue[0]:null;const valueTitles=id?buildValueTitles([id]):undefined;onChange(id,valueTitles);}else{const valueTitles=newValue?buildValueTitles([newValue]):undefined;onChange(newValue||null,valueTitles);}}};// Pass appropriate value format based on mode\nconst childValue=allowMultiple?selectedValues||[]:selectedId;// DROPDOWN STYLE - use SelectFilter\nif(selectionStyle===\"dropdown\"){return /*#__PURE__*/_jsx(SelectFilter,{config:modifiedConfig,value:childValue,onChange:handleChange,debugLevel:debugLevel,filterSelectStyles:filterSelectStyles||{},uniqueClassName:uniqueClassName});}// CHECKBOX STYLE - use CheckboxFilter\nif(selectionStyle===\"checkboxes\"){return /*#__PURE__*/_jsx(CheckboxFilter,{config:modifiedConfig,value:childValue,onChange:handleChange,debugLevel:debugLevel,filterCheckboxStyles:filterCheckboxStyles||{},uniqueClassName:uniqueClassName});}// TAGS STYLE (default) - use TagFilter\nreturn /*#__PURE__*/_jsx(TagFilter,{config:modifiedConfig,value:childValue,onChange:handleChange,debugLevel:debugLevel,filterPillStyles:filterPillStyles||{},uniqueClassName:uniqueClassName});}\nexport const __FramerMetadata__ = {\"exports\":{\"SingleRefFilter\":{\"type\":\"reactComponent\",\"name\":\"SingleRefFilter\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"\",\"framerSupportedLayoutWidth\":\"any\",\"framerSupportedLayoutHeight\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// FilterControl wrapper component - routes to appropriate filter type\n// Extracted from CMSFilters.tsx for better modularity\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{getActiveMatch,hasValidValue,getRecommendedFilterType}from\"https://framerusercontent.com/modules/gpP9NQZkGM08zua7fzDA/ufvjGg4utuUHzowwKSUT/filter_utils.js\";import{TextFilter}from\"https://framerusercontent.com/modules/6NPURxBM0dOECdL7VbnS/uDZ4zt8fHyZhi8PDFTYF/TextFilter.js\";import{NumberFilter}from\"https://framerusercontent.com/modules/UqIxQlR9i7N7s5eURJXt/U7c4b6n1TPhjZo5RSn1C/NumberFilter.js\";import{DropdownFilter}from\"https://framerusercontent.com/modules/bf8X1kauFnevisLXUtaB/BlKZ4jc5D0pTAPFBnZyX/DropdownFilter.js\";import{RangeFilter}from\"https://framerusercontent.com/modules/f4De0XAwI4Kf8M6qHjz8/33ZyZUTacomurZvkr6qi/RangeFilter.js\";import{ToggleFilter}from\"https://framerusercontent.com/modules/CI7Pin8tWGfRHLuGR8tI/icY306VvK2VrbOePb4MN/ToggleFilter.js\";import{CMSEnumFilter}from\"https://framerusercontent.com/modules/YJVHOw7sdl2iLFF7oTta/YbKAXG70FB7zJlegTsLi/CMSEnumFilter.js\";import{MultiRefFilter}from\"https://framerusercontent.com/modules/DiZxJ6bZqOMdV8ieN9sM/oGtxSd6znccsFVwOgbLr/MultiRefFilter.js\";import{SingleRefFilter}from\"https://framerusercontent.com/modules/hPN8XUHynAMierFs62Hi/8U4ipGEaqtww9gEM7jRz/SingleRefFilter.js\";/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerDisableUnlink\n */export function FilterControl({config,value,onChange,availableFields,debugLevel,filterContainerStyles,filterLabelStyles,filterInputStyles,filterPillStyles,filterRangeStyles,filterToggleStyles,filterCheckboxStyles,filterSelectStyles,uniqueClassName,collectionInfo,multiRefCollection}){const fieldInfo=availableFields.length>0?availableFields.find(f=>f.title.toLowerCase()===config.fieldName.toLowerCase()):null;// Check if toggle filter is used with non-boolean field (only in preview mode)\nconst isToggleInvalid=availableFields.length>0&&config.filterType===\"toggle\"&&fieldInfo&&fieldInfo.type!==\"boolean\";const hasValue=hasValidValue(config,value);const activeMatch=getActiveMatch(config);// Label setup\nconst showLabel=filterLabelStyles?.labelToggle!==false;const labelText=config.title;// don't remove this line\n// const labelText = `${config.title}${hasValue ? \" ✓\" : \"\"}`\n// Filter validation\nconst fieldExists=availableFields.length===0||fieldInfo;const isValidField=fieldExists&&!isToggleInvalid;return /*#__PURE__*/_jsx(_Fragment,{children:/*#__PURE__*/_jsxs(\"div\",{className:`cms-filter-container ${uniqueClassName}`,style:{...filterContainerStyles,...filterContainerStyles.border},children:[showLabel&&/*#__PURE__*/_jsx(\"label\",{style:{display:\"block\",...filterLabelStyles,...filterLabelStyles.font,fontSize:filterLabelStyles?.font?.fontSize||\"14px\"},children:labelText}),availableFields.length>0&&!fieldExists&&/*#__PURE__*/_jsxs(\"div\",{style:{color:\"#e74c3c\",fontSize:12,marginBottom:8,fontStyle:\"italic\"},children:['⚠️ Field \"',config.fieldName,'\" not found. Available:',\" \",availableFields.map(f=>f.title).join(\", \")]}),isToggleInvalid&&/*#__PURE__*/_jsxs(\"div\",{style:{color:\"#e74c3c\",fontSize:12,marginBottom:8,fontStyle:\"italic\"},children:['⚠️ Toggle filter requires boolean field. \"',fieldInfo?.title,'\" is ',fieldInfo?.type,\". Recommended:\",\" \",getRecommendedFilterType(fieldInfo?.type||\"\")]}),isValidField&&/*#__PURE__*/_jsxs(_Fragment,{children:[config.filterType===\"text\"&&/*#__PURE__*/_jsx(TextFilter,{config:config,value:value,onChange:onChange,debugLevel:debugLevel,filterInputStyles:filterInputStyles,uniqueClassName:uniqueClassName}),config.filterType===\"number\"&&/*#__PURE__*/_jsx(NumberFilter,{config:config,value:value,onChange:onChange,debugLevel:debugLevel,filterInputStyles:filterInputStyles,uniqueClassName:uniqueClassName}),config.filterType===\"dropdown\"&&/*#__PURE__*/_jsx(DropdownFilter,{config:config,value:value,onChange:onChange,debugLevel:debugLevel,filterSelectStyles:filterSelectStyles,filterPillStyles:filterPillStyles,filterCheckboxStyles:filterCheckboxStyles,uniqueClassName:uniqueClassName}),config.filterType===\"range\"&&/*#__PURE__*/_jsx(RangeFilter,{config:config,value:value,onChange:onChange,debugLevel:debugLevel,filterInputStyles:filterInputStyles,filterRangeStyles:filterRangeStyles,uniqueClassName:uniqueClassName}),config.filterType===\"toggle\"&&/*#__PURE__*/_jsx(ToggleFilter,{config:config,value:value,onChange:onChange,debugLevel:debugLevel,filterToggleStyles:filterToggleStyles,uniqueClassName:uniqueClassName}),config.filterType===\"cms-enum\"&&/*#__PURE__*/_jsx(CMSEnumFilter,{config:config,value:value,onChange:onChange,debugLevel:debugLevel,filterInputStyles:filterInputStyles,filterPillStyles:filterPillStyles,filterSelectStyles:filterSelectStyles,filterCheckboxStyles:filterCheckboxStyles,uniqueClassName:uniqueClassName,availableFields:availableFields,collectionInfo:collectionInfo}),config.filterType===\"single-ref\"&&/*#__PURE__*/_jsx(SingleRefFilter,{config:config,value:value,onChange:onChange,debugLevel:debugLevel,filterPillStyles:filterPillStyles,filterCheckboxStyles:filterCheckboxStyles,filterSelectStyles:filterSelectStyles,uniqueClassName:uniqueClassName,multiRefCollection:multiRefCollection}),config.filterType===\"multi-ref\"&&/*#__PURE__*/_jsx(MultiRefFilter,{config:config,value:value,onChange:onChange,debugLevel:debugLevel,filterPillStyles:filterPillStyles,filterCheckboxStyles:filterCheckboxStyles,filterSelectStyles:filterSelectStyles,uniqueClassName:uniqueClassName,multiRefCollection:multiRefCollection})]}),debugLevel===\"ui_helpers\"&&/*#__PURE__*/_jsxs(\"div\",{style:{marginTop:8,fontSize:11,color:\"#666\"},children:[/*#__PURE__*/_jsxs(\"div\",{children:[\"Field: \",config.fieldName,\" | Filter:\",\" \",config.filterType,\" | Match: \",activeMatch]}),/*#__PURE__*/_jsxs(\"div\",{children:[\"Valid: \",hasValue?\"✅\":\"❌\",\" | Logic:\",\" \",config.logic||\"Any\"]})]}),debugLevel===\"full_debug\"&&/*#__PURE__*/_jsxs(\"div\",{style:{marginTop:8,fontSize:10,color:\"#888\",fontFamily:\"monospace\"},children:[/*#__PURE__*/_jsxs(\"div\",{children:[\"Config: \",JSON.stringify(config,null,2)]}),/*#__PURE__*/_jsxs(\"div\",{children:[\"Value:\",\" \",typeof value===\"object\"?JSON.stringify(value):String(value||\"undefined\")]}),/*#__PURE__*/_jsxs(\"div\",{children:[\"Valid: \",hasValue?\"✅\":\"❌\"]})]})]})});}\nexport const __FramerMetadata__ = {\"exports\":{\"FilterControl\":{\"type\":\"reactComponent\",\"name\":\"FilterControl\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any\",\"framerDisableUnlink\":\"\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FilterControl.map","// Refactored CMSFilters component using modular architecture\n// This is the main component that orchestrates all filter functionality\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState,useEffect,useRef}from\"react\";import{addPropertyControls,ControlType}from\"framer\";import{hasValidValue,getActiveMatch}from\"https://framerusercontent.com/modules/gpP9NQZkGM08zua7fzDA/ufvjGg4utuUHzowwKSUT/filter_utils.js\";import{FilterControl}from\"https://framerusercontent.com/modules/3I5E2iQ0TFDjlfTzBR90/E3Q1bUpxnj8tVkalRAdF/FilterControl.js\";// Import utilities from shared modules\nimport{getCollectionStore,getCollectionStoreKey,globalInitStore,getCollectionInfo,getAvailableFilterFields,evGetRandomString,isCanvas,getCmsQueryFromSlot}from\"https://framerusercontent.com/modules/2VZikWBxCagm4nJReNjX/uFUqD0e9fJ1WAIOOmgia/store_management.js\";/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerDisableUnlink\n */export default function CMSFilters(props){const{collection,filters,builderLogic,storeKey,style,debugLevel:debug,filterContainerStyles,filterLabelStyles,filterInputStyles,filterPillStyles,filterRangeStyles,filterToggleStyles,filterCheckboxStyles,filterSelectStyles,multiRefCollection,id}=props;const debugLevel=isCanvas?false:debug;// Get store key for this collection using new logic\nconst actualStoreKey=getCollectionStoreKey(collection,storeKey);const newId=id?id:evGetRandomString();const uniqueClassName=`cms-filter-${newId}`;// Initialize store immediately if we have a store key (fixes race condition)\nif(actualStoreKey){getCollectionStore(actualStoreKey);}// Watch for store initialization (for debugging/monitoring only)\nconst[initState]=globalInitStore();const isStoreInitialized=actualStoreKey&&initState.storeInitialized.includes(actualStoreKey);// Extract collection info from slot connection\nconst collectionInfo=getCollectionInfo(collection);// Get store for this collection\nconst useStore=actualStoreKey?getCollectionStore(actualStoreKey):null;const[state,setState]=useStore?useStore():[null,null];// Local filter values state\nconst[filterValues,setFilterValues]=useState({});// Store valueTitles mappings from reference filter components\nconst[filterValueTitles,setFilterValueTitles]=useState({});const[isInitialized,setIsInitialized]=useState(false);// Get available fields for validation\nconst availableFields=collectionInfo?getAvailableFilterFields(collectionInfo.propertyControls):[];// Initialize component - restore UI state from store ONCE\nuseEffect(()=>{if(!setState||!state||isInitialized)return;// Check if store has filters from this component\nconst thisComponentFilters=state.filters?.filter(f=>f.componentId===id)||[];if(thisComponentFilters.length>0){// Restore UI state from store\nconst restoredValues={};thisComponentFilters.forEach(filter=>{// Extract original index from filter ID (format: \"{componentId}-{originalIndex}\")\n// Use lastIndexOf to handle component IDs that might contain dashes\nconst lastDashIndex=filter.id.lastIndexOf(\"-\");const originalIndex=filter.id.substring(lastDashIndex+1);const filterId=`filter-${originalIndex}`;restoredValues[filterId]=filter.value;});setFilterValues(restoredValues);if(debugLevel===\"full_debug\"){console.log(\"🔄 Restored UI state from store:\",{componentId:id,restoredFilters:thisComponentFilters.length,restoredValues});}}setIsInitialized(true);},[setState,state,id,isInitialized,debugLevel]);// Sync local filterValues with external store changes (e.g., from CMSClearAll, Facets removal, or other CMSFilters components)\n// CRITICAL: This effect only responds to EXTERNAL store changes, never to filterValues changes\n// This breaks the circular dependency: filterValues ⟷ state?.filters\nconst lastKnownStoreStateRef=useRef(\"\");// Track previous store filters to detect removals\nconst previousStoreFiltersRef=useRef([]);useEffect(()=>{if(!isInitialized)return;// Get ALL filters for the same fields across ALL components\nconst allStoreFilters=state?.filters||[];// Create stable serialization of store state to detect actual changes\n// CRITICAL: Sort by ID to ensure consistent comparison regardless of order\nconst storeStateKey=JSON.stringify(allStoreFilters.map(f=>({id:f.id,field:f.field,value:f.value,operator:f.operator,componentId:f.componentId})).sort((a,b)=>a.id.localeCompare(b.id)));// ANTI-LOOP: Only proceed if store actually changed from last time\nif(storeStateKey===lastKnownStoreStateRef.current){return;}// Get previous filters before updating the ref\nconst previousFilters=previousStoreFiltersRef.current;lastKnownStoreStateRef.current=storeStateKey;previousStoreFiltersRef.current=allStoreFilters;if(debugLevel===\"full_debug\"){console.log(\"🔄 STORE CHANGED, syncing to filterValues:\",{componentId:id,storeFilters:allStoreFilters.filter(f=>f.componentId===id)});}// Build new filter values by syncing with store\n// Use callback pattern to avoid needing filterValues in dependencies\nsetFilterValues(currentFilterValues=>{const newFilterValues={};let hasChanges=false;filters.forEach((config,index)=>{const filterId=`filter-${index}`;const fieldName=config.fieldName;if(!fieldName||!fieldName.trim()){return;}const normalizedFieldName=fieldName.trim().toLowerCase();// Find ANY filter in the store that matches this field (from any component)\nconst matchingStoreFilter=allStoreFilters.find(f=>{const fieldsMatch=(f.field||\"\").trim().toLowerCase()===normalizedFieldName;return fieldsMatch&&f.type===config.filterType&&f.operator===getActiveMatch(config);});if(matchingStoreFilter){// Always use store value as source of truth\nnewFilterValues[filterId]=matchingStoreFilter.value;// Deep comparison for arrays/objects\nconst currentValue=currentFilterValues[filterId];const storeValue=matchingStoreFilter.value;const isEqual=JSON.stringify(currentValue)===JSON.stringify(storeValue);if(!isEqual){hasChanges=true;}}else{// No matching filter in store\nconst currentValue=currentFilterValues[filterId];// Check if current value is \"empty\" (would not create a store filter)\nconst currentValueIsEmpty=currentValue===undefined||currentValue===null||currentValue===\"\"||Array.isArray(currentValue)&&currentValue.length===0;// CLEAR ALL FIX: If store filters array is empty, it means filters were\n// intentionally cleared (e.g., by ClearAll button). In this case, clear local values.\nconst storeWasCleared=allStoreFilters.length===0;// FACETS REMOVAL FIX: Check if this filter was PREVIOUSLY in the store but is now gone\n// This means it was explicitly removed (e.g., by CMSFacets), not a race condition\nconst wasInPreviousStore=previousFilters.some(f=>{const fieldsMatch=(f.field||\"\").trim().toLowerCase()===normalizedFieldName;return fieldsMatch&&f.type===config.filterType&&f.operator===getActiveMatch(config);});if(currentValueIsEmpty){// Value is already empty, nothing to change\n// Leave undefined in newFilterValues\n}else if(storeWasCleared||wasInPreviousStore){// Store was intentionally cleared OR filter was explicitly removed\n// Don't preserve the value, leave it undefined in newFilterValues\nhasChanges=true;}else{// Value exists locally but was NEVER in store (race condition)\n// This means the update effect hasn't written it yet - preserve it\nnewFilterValues[filterId]=currentValue;}}});// CRITICAL: Deep comparison to prevent unnecessary updates\n// Even if hasChanges=true, the actual VALUES might be identical\nconst currentKey=JSON.stringify(currentFilterValues);const newKey=JSON.stringify(newFilterValues);if(currentKey!==newKey){if(debugLevel===\"full_debug\"){console.log(\"✅ SYNCED from store (ACTUAL CHANGES):\",{componentId:id,currentFilterValues,newFilterValues,currentKey,newKey});}return newFilterValues;}// No actual changes, return current state unchanged\nif(debugLevel===\"full_debug\"){console.log(\"⏭️ SKIPPED sync (values identical):\",{componentId:id});}return currentFilterValues;});},[state?.filters,id,isInitialized,filters,debugLevel]);// NOTE: filterValues is INTENTIONALLY NOT in deps - this prevents circular updates\n// Update store when filter values change\nuseEffect(()=>{// CRITICAL FIX: Don't update store until component finishes initialization\n// This prevents clearing filters when component mounts as overlay\nif(!isInitialized)return;if(setState&&filters.length>0){if(debugLevel===\"full_debug\"){console.log(\"⚙️ Update effect running:\",{componentId:id,filterValues});}// Convert filter configs + values to filter rules\nconst activeFilters=filters.filter((config,index)=>{const filterId=`filter-${index}`;const value=filterValues[filterId];// Validate field name and value\nif(!config.fieldName||!config.fieldName.trim()){return false;}return hasValidValue(config,value);}).map(config=>{// CRITICAL FIX: Use original index from full filters array, not filtered index\nconst originalIndex=filters.findIndex(c=>c===config);const filterId=`filter-${originalIndex}`;const value=filterValues[filterId];const activeMatch=getActiveMatch(config);// Base filter rule\nconst filterRule={id:`${id}-${originalIndex}`,field:config.fieldName?.trim()||\"\",displayTitle:config.title,type:config.filterType,operator:activeMatch,value:value,// Include valueTitles from reference filter components for CMSFacets display\nvalueTitles:filterValueTitles[filterId],logic:config.filterType===\"multi-ref\"?config.multiRefLogic:config.filterType===\"single-ref\"?config.singleRefLogic||\"Any\":config.logic||\"Any\",builderLogic:builderLogic,componentId:id,config:config,// Toggle-specific labels for facet display\ntoggleOnLabel:config.toggleOnLabel,toggleOffLabel:config.toggleOffLabel};// Add multi-ref and single-ref specific fields for FLAT_ARRAY query pattern\nif((config.filterType===\"multi-ref\"||config.filterType===\"single-ref\")&&multiRefCollection&&collectionInfo){// Find internal field key from main collection propertyControls\nconst fieldKey=Object.entries(collectionInfo.propertyControls||{}).find(([key,control])=>control.title?.toLowerCase().trim()===config.fieldName?.toLowerCase().trim())?.[0];// Find the matched reference collection from the slot\nconst collections=Array.isArray(multiRefCollection)?multiRefCollection:[multiRefCollection];const collectionName=config.multiRefCollectionName?.trim().toLowerCase()||\"\";let matchedRefCollection=collections[0];if(collectionName&&collections.length>1){for(const col of collections){try{const info=getCollectionInfo(col);const colName=info?.collectionName?.toLowerCase().trim()||\"\";if(colName.includes(collectionName)||collectionName.includes(colName)){matchedRefCollection=col;break;}}catch{continue;}}}// Extract refCollectionData for FLAT_ARRAY query\n// Uses getCmsQueryFromSlot for masonry-aware extraction\nif(matchedRefCollection){try{const query=getCmsQueryFromSlot(matchedRefCollection);const refCollectionData=query?.from?.data;const refCollectionAlias=query?.from?.alias;if(debugLevel===\"full_debug\"){console.log(\"Multi-ref extraction:\",{fieldName:config.fieldName,fieldKey,refCollectionAlias,hasRefCollectionData:!!refCollectionData});}filterRule.refFieldName=fieldKey||config.fieldName;filterRule.refCollectionId=refCollectionAlias;filterRule.refCollectionData=refCollectionData;// Build valueTitles map for CMSFacets to display proper labels\n// Only do this if we don't already have it from the child component\nif(!filterRule.valueTitles&&refCollectionData){const valueTitles={};const titleField=config.multiRefTitleField||config.singleRefTitleField||\"Title\";// Get reference collection info to find title field key\nconst refInfo=getCollectionInfo(matchedRefCollection);let titleFieldKey=null;if(refInfo?.propertyControls){const entry=Object.entries(refInfo.propertyControls).find(([key,control])=>control.title?.toLowerCase().trim()===titleField.toLowerCase().trim()||key.toLowerCase().trim()===titleField.toLowerCase().trim());if(entry){titleFieldKey=entry[0];}}const idsToMap=Array.isArray(value)?value:value?[value]:[];const dataArray=Array.isArray(refCollectionData)?refCollectionData:refCollectionData&&typeof refCollectionData===\"object\"?Object.values(refCollectionData):[];if(Array.isArray(dataArray)&&dataArray.length>0){// Map each selected ID to its title\nidsToMap.forEach(selectedId=>{const item=dataArray.find(d=>(d.id||d._id)===selectedId);if(item){const itemData=item.data||item.fieldData||item;const title=titleFieldKey?itemData[titleFieldKey]?.value||itemData[titleFieldKey]:itemData.title?.value||itemData.title||itemData.name?.value||itemData.name;if(title){valueTitles[selectedId]=title;}}});if(Object.keys(valueTitles).length>0){filterRule.valueTitles=valueTitles;}}}}catch(e){console.error(\"Failed to extract ref collection data:\",e);}}}return filterRule;});// CRITICAL FIX: Use setState callback to avoid needing 'state' in dependencies\n// This prevents Update effect from running when OTHER components update the store\nsetState(prevState=>{// Update store with new filters\n// BUGFIX: Merge filters intelligently - if another component has the same field, update it instead of duplicating\nconst currentFilters=prevState?.filters||[];const normalizeFieldName=field=>(field||\"\").trim().toLowerCase();const normalizeOperator=operator=>(operator||\"\").trim().toLowerCase();const normalizeType=type=>(type||\"\").trim().toLowerCase();const buildFilterKey=(field,type,operator)=>`${normalizeFieldName(field)}::${normalizeType(type)}::${normalizeOperator(operator)}`;// Track which field/type/operator combos this component is explicitly clearing\nconst previousComponentFilters=currentFilters.filter(f=>f.componentId===id);const clearedFields=new Set;const clearedFieldNames=new Set;const activeFieldKeys=new Set(activeFilters.map(filter=>normalizeFieldName(filter.field)));previousComponentFilters.forEach(prevFilter=>{const stillActive=activeFilters.some(newFilter=>normalizeFieldName(newFilter.field)===normalizeFieldName(prevFilter.field)&&newFilter.type===prevFilter.type&&newFilter.operator===prevFilter.operator);if(!stillActive){clearedFields.add(buildFilterKey(prevFilter.field,prevFilter.type,prevFilter.operator));clearedFieldNames.add(normalizeFieldName(prevFilter.field));}});// Also detect cleared fields based on current filter values (e.g., selecting \"All\")\nfilters.forEach((config,index)=>{if(!config.fieldName||!config.fieldName.trim()){return;}const filterId=`filter-${index}`;if(!Object.prototype.hasOwnProperty.call(filterValues,filterId)){return;}const value=filterValues[filterId];if(hasValidValue(config,value)){return;}const normalizedField=normalizeFieldName(config.fieldName);const operator=getActiveMatch(config);clearedFields.add(buildFilterKey(config.fieldName,config.filterType,operator));if(!activeFieldKeys.has(normalizedField)){clearedFieldNames.add(normalizedField);}});// Get filters from other components, removing any that match cleared fields\nconst otherComponentFilters=currentFilters.filter(f=>{if(f.componentId===id){return false;}const key=buildFilterKey(f.field,f.type,f.operator);const normalizedField=normalizeFieldName(f.field);const shouldClearByKey=clearedFields.has(key);const shouldClearByField=clearedFieldNames.has(normalizedField)&&!activeFieldKeys.has(normalizedField);if(shouldClearByKey||shouldClearByField){if(debugLevel===\"full_debug\"){console.log(\"[CMSFilters] Removing cross-component filter due to 'All' selection\",{componentId:id,clearedKey:key,clearedByFilter:f,clearedByField:normalizedField,clearedMode:shouldClearByKey?\"key\":\"field\"});}return false;}return true;});// For each active filter, check if there's an existing filter for the same field from another component\nconst mergedFilters=[...otherComponentFilters];activeFilters.forEach(newFilter=>{// Find if any other component already has a filter for this field with same type and operator\nconst existingIndex=mergedFilters.findIndex(f=>normalizeFieldName(f.field)===normalizeFieldName(newFilter.field)&&f.type===newFilter.type&&f.operator===newFilter.operator);if(existingIndex>=0){// Update existing filter value instead of adding duplicate\n// Merge valueTitles from both filters to ensure all IDs have labels\nconst existingValueTitles=mergedFilters[existingIndex].valueTitles||{};const newValueTitles=newFilter.valueTitles||{};const mergedValueTitles={...existingValueTitles,...newValueTitles};mergedFilters[existingIndex]={...mergedFilters[existingIndex],value:newFilter.value,valueTitles:Object.keys(mergedValueTitles).length>0?mergedValueTitles:undefined,displayTitle:newFilter.displayTitle,logic:newFilter.logic,builderLogic:newFilter.builderLogic,config:newFilter.config,toggleOnLabel:newFilter.toggleOnLabel,toggleOffLabel:newFilter.toggleOffLabel};}else{// Add new filter\nmergedFilters.push(newFilter);}});// ANTI-LOOP: Only update store if filters actually changed\n// CRITICAL: Sort by ID to ensure consistent comparison regardless of order\nconst currentFiltersKey=JSON.stringify(currentFilters.map(f=>({id:f.id,field:f.field,value:f.value,operator:f.operator})).sort((a,b)=>a.id.localeCompare(b.id)));const mergedFiltersKey=JSON.stringify(mergedFilters.map(f=>({id:f.id,field:f.field,value:f.value,operator:f.operator})).sort((a,b)=>a.id.localeCompare(b.id)));if(currentFiltersKey!==mergedFiltersKey){if(debugLevel===\"full_debug\"){console.log(\"✍️ WRITING to store (DIFFERENCE DETECTED):\",{componentId:id,currentFiltersKey,mergedFiltersKey,currentFilters:currentFilters.filter(f=>f.componentId===id),mergedFilters:mergedFilters.filter(f=>f.componentId===id)});}// Return new state with updated filters\nreturn{...prevState,filters:mergedFilters};}if(debugLevel===\"full_debug\"){console.log(\"⏭️ SKIPPED store write (no change):\",{componentId:id});}// Return same state reference - prevents triggering other effects\nreturn prevState;});}},[isInitialized,filterValues,filterValueTitles,filters,setState,// NOTE: 'state' is INTENTIONALLY NOT in deps\n// We use setState callback to access fresh state without depending on it\n// This prevents Update effect from running when OTHER components update the store\nid,builderLogic,debugLevel]);// Handle individual filter value changes\nconst handleFilterChange=(index,value,valueTitles)=>{const filterId=`filter-${index}`;if(debugLevel===\"full_debug\"){console.log(\"👆 USER CLICKED filter:\",{componentId:id,filterId,newValue:value,previousValue:filterValues[filterId],valueTitles});}setFilterValues(prev=>({...prev,[filterId]:value}));// Store valueTitles if provided (from reference filter components)\nif(valueTitles){setFilterValueTitles(prev=>({...prev,[filterId]:valueTitles}));}else{// Clear valueTitles if value is cleared\nsetFilterValueTitles(prev=>{const updated={...prev};delete updated[filterId];return updated;});}};// Render individual filters\nconst renderFilters=()=>{return filters.map((config,index)=>{const filterId=`filter-${index}`;const value=filterValues[filterId];return /*#__PURE__*/_jsx(FilterControl,{config:config,value:value,onChange:(newValue,valueTitles)=>handleFilterChange(index,newValue,valueTitles),availableFields:availableFields,debugLevel:debugLevel,filterContainerStyles:filterContainerStyles||{},filterLabelStyles:filterLabelStyles||{},filterInputStyles:filterInputStyles||{},filterPillStyles:filterPillStyles||{},filterRangeStyles:filterRangeStyles||{},filterToggleStyles:filterToggleStyles||{},filterCheckboxStyles:filterCheckboxStyles||{},filterSelectStyles:filterSelectStyles||{},uniqueClassName:uniqueClassName,collectionInfo:collectionInfo,multiRefCollection:multiRefCollection},filterId);});};// Loading state - only check for collection connection\nif(!collection||!Array.isArray(collection)||!collection.length){return /*#__PURE__*/_jsxs(\"div\",{style:{padding:16,textAlign:\"center\",color:\"#666\"},children:[/*#__PURE__*/_jsx(\"div\",{children:\"🔄 Connecting to CMS collection...\"}),debugLevel!==\"hide\"&&/*#__PURE__*/_jsxs(\"div\",{style:{fontSize:11,marginTop:4},children:[\"Store key: \",actualStoreKey]})]});}// Main render\nreturn /*#__PURE__*/_jsxs(\"div\",{className:`cms-filters ${uniqueClassName}`,style:{// display: \"flex\",\n// flexDirection: \"column\",\n// gap: 12,\n...style,display:\"grid\",gridTemplateColumns:`repeat(${filterContainerStyles.column}, 1fr)`,gap:filterContainerStyles.gap},children:[debugLevel===\"ui_helpers\"&&/*#__PURE__*/_jsxs(\"div\",{style:{padding:8,backgroundColor:\"#f0f9ff\",border:\"1px solid #0ea5e9\",borderRadius:4,fontSize:11,color:\"#0369a1\"},children:[/*#__PURE__*/_jsxs(\"div\",{children:[\"🔧 CMS Filters: \",filters.length,\" configured,\",\" \",Object.keys(filterValues).length,\" with values\"]}),/*#__PURE__*/_jsxs(\"div\",{children:[\"Logic: \",builderLogic,\" | Store: \",actualStoreKey]})]}),debugLevel===\"full_debug\"&&/*#__PURE__*/_jsxs(\"div\",{style:{padding:8,backgroundColor:\"#fef3c7\",border:\"1px solid #f59e0b\",borderRadius:4,fontSize:10,color:\"#92400e\",fontFamily:\"monospace\"},children:[/*#__PURE__*/_jsxs(\"div\",{children:[\"Component ID: \",id]}),/*#__PURE__*/_jsxs(\"div\",{children:[\"Store Key: \",actualStoreKey]}),/*#__PURE__*/_jsxs(\"div\",{children:[\"Initialized: \",isInitialized?\"✅\":\"❌\"]}),/*#__PURE__*/_jsxs(\"div\",{children:[\"Available Fields: \",availableFields.length]}),/*#__PURE__*/_jsxs(\"div\",{children:[\"Filter Values: \",JSON.stringify(filterValues)]})]}),filters.length>0?renderFilters():/*#__PURE__*/_jsx(\"div\",{style:{padding:16,textAlign:\"center\",color:\"#666\",fontStyle:\"italic\"},children:\"No filters configured. Add filter configurations to start filtering.\"})]});}// Property Controls - Complete implementation restored from original\naddPropertyControls(CMSFilters,{collection:{type:ControlType.Slot,title:\"Collection\",description:\"Connect your CMS Collection List component here\",maxCount:1},multiRefCollection:{type:ControlType.Slot,title:\"Reference Collections\",description:\"Connect Reference Collections (Tags/Categories) for Multi-Reference filters\"},filters:{type:ControlType.Array,title:\"Filters\",description:\"Configure individual filter controls for your CMS fields\",control:{type:ControlType.Object,controls:{title:{type:ControlType.String,title:\"Display Title\",description:\"Label shown to users above the filter control\",placeholder:\"e.g., Price Range, Category, Status\",defaultValue:\"Filter\"},fieldName:{type:ControlType.String,title:\"CMS Field Name\",description:\"Exact name of the CMS field to filter (case-sensitive)\",placeholder:\"e.g., Title, Price, Category\",defaultValue:\"\"},filterType:{type:ControlType.Enum,title:\"Filter Type\",description:\"Choose the type of filter UI based on your field data\",options:[\"text\",\"number\",\"dropdown\",\"range\",\"toggle\",\"cms-enum\",\"single-ref\",\"multi-ref\"],optionTitles:[\"Text Input\",\"Number Input\",\"Option Field (manual entry)\",\"Range Slider\",\"Toggle Switch\",\"CMS Option Field\",\"Single Reference\",\"Multi-Reference\"],defaultValue:\"text\"},singleRefCollectionName:{type:ControlType.String,title:\"Reference Collection Name\",description:\"Name of the Reference Collection to use (e.g., 'Authors')\",placeholder:\"e.g., Authors\",defaultValue:\"\",hidden:props=>props.filterType!==\"single-ref\"},singleRefTitleField:{type:ControlType.String,title:\"Title Field\",description:\"Field to use for displaying option names in reference collection\",placeholder:\"e.g., Name\",defaultValue:\"Title\",hidden:props=>props.filterType!==\"single-ref\"},singleRefStyle:{type:ControlType.Enum,title:\"Selection Style\",description:\"How to display single reference options\",options:[\"dropdown\",\"tags\",\"checkboxes\"],optionTitles:[\"Dropdown\",\"Tag Buttons\",\"Checkboxes\"],defaultValue:\"dropdown\",hidden:props=>props.filterType!==\"single-ref\"},singleRefAllowMultiple:{type:ControlType.Boolean,title:\"Allow Multiple\",description:\"Allow selecting multiple options\",enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:false,hidden:props=>props.filterType!==\"single-ref\"},singleRefShowAllOption:{type:ControlType.Boolean,title:\"Show 'All' Option\",description:\"Show 'All' option to clear filter\",enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:true,hidden:props=>props.filterType!==\"single-ref\"},singleRefAllLabel:{type:ControlType.String,title:\"All Label\",description:\"Label for the 'All' option\",defaultValue:\"All\",hidden:props=>props.filterType!==\"single-ref\"||!props.singleRefShowAllOption},singleRefLogic:{type:ControlType.Enum,title:\"Logic\",description:\"How to combine multiple selections\",options:[\"All\",\"Any\"],optionTitles:[\"All (AND)\",\"Any (OR)\"],defaultValue:\"Any\",hidden:props=>props.filterType!==\"single-ref\"||!props.singleRefAllowMultiple},singleRefAllowDeselect:{type:ControlType.Boolean,title:\"Allow Deselect\",description:\"Allow clicking selected option to deselect\",enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:true,hidden:props=>props.filterType!==\"single-ref\"||props.singleRefAllowMultiple},multiRefCollectionName:{type:ControlType.String,title:\"Reference Collection Name\",description:\"Name of the Reference Collection to use (e.g., 'Tags', 'Categories')\",placeholder:\"e.g., Tags\",defaultValue:\"\",hidden:props=>props.filterType!==\"multi-ref\"},multiRefTitleField:{type:ControlType.String,title:\"Title Field\",description:\"Field to use for displaying option names in reference collection\",placeholder:\"e.g., Title\",defaultValue:\"Title\",hidden:props=>props.filterType!==\"multi-ref\"},multiRefStyle:{type:ControlType.Enum,title:\"Selection Style\",description:\"How to display multi-reference options\",options:[\"tags\",\"checkboxes\",\"dropdown\"],optionTitles:[\"Tag Buttons\",\"Checkboxes\",\"Dropdown\"],defaultValue:\"tags\",hidden:props=>props.filterType!==\"multi-ref\"},multiRefAllowMultiple:{type:ControlType.Boolean,title:\"Allow Multiple\",description:\"Allow selecting multiple options\",enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:true,hidden:props=>props.filterType!==\"multi-ref\"},multiRefShowAllOption:{type:ControlType.Boolean,title:\"Show 'All' Option\",description:\"Show 'All' option to clear filter\",enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:false,hidden:props=>props.filterType!==\"multi-ref\"},multiRefAllLabel:{type:ControlType.String,title:\"All Label\",description:\"Label for the 'All' option\",defaultValue:\"All\",hidden:props=>props.filterType!==\"multi-ref\"||!props.multiRefShowAllOption},multiRefLogic:{type:ControlType.Enum,title:\"Logic\",description:\"How to combine multiple selections\",options:[\"All\",\"Any\"],optionTitles:[\"All (AND)\",\"Any (OR)\"],defaultValue:\"Any\",hidden:props=>props.filterType!==\"multi-ref\"||!props.multiRefAllowMultiple},multiRefAllowDeselect:{type:ControlType.Boolean,title:\"Allow Deselect\",description:\"Allow clicking selected option to deselect\",enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:true,hidden:props=>props.filterType!==\"multi-ref\"},placeholderTextInput:{type:ControlType.String,title:\"Placeholder Text\",description:\"Placeholder text shown in the filter text control\",defaultValue:\"\",placeholder:\"e.g., Enter text...\",hidden:props=>props.filterType!==\"text\"},placeholderNumberInput:{type:ControlType.String,title:\"Placeholder Text\",description:\"Placeholder text shown in the filter number control\",defaultValue:\"\",placeholder:\"e.g., Enter number...\",hidden:props=>props.filterType!==\"number\"},placeholderDropdownInput:{type:ControlType.String,title:\"Select Option Text\",description:\"Initial 'Select text' shown in the filter dropdown control\",defaultValue:\"\",placeholder:\"e.g., Select option...\",hidden:props=>{if(props.filterType===\"dropdown\")return props.multiStyle!==\"select\";if(props.filterType===\"cms-enum\")return props.enumStyle!==\"dropdown\";if(props.filterType===\"multi-ref\")return props.multiRefStyle!==\"dropdown\";if(props.filterType===\"single-ref\")return props.singleRefStyle!==\"dropdown\";return true;}},// UPDATE matchText to work with dropdown too:\nmatchText:{type:ControlType.Enum,title:\"Match\",description:\"How to match the user input against field values\",options:[\"contains\",\"not_contains\",\"starts_with\",\"ends_with\",\"equals\",\"not_equals\",\"greater_than\",\"less_than\",\"greater_than_or_equal\",\"less_than_or_equal\",\"is_set\",\"is_not_set\"],optionTitles:[\"Contains\",\"Doesn't contain\",\"Starts with\",\"Ends with\",\"Equals\",\"Doesn't equal\",\"Greater than\",\"Less than\",\"Greater than or equal\",\"Less than or equal\",\"Is set\",\"Is not set\"],defaultValue:\"contains\",hidden:props=>![\"text\",\"dropdown\"].includes(props.filterType)},matchNumber:{type:ControlType.Enum,title:\"Match\",description:\"How to compare numbers in this field\",options:[\"equals\",\"not_equals\",\"greater_than\",\"less_than\",\"greater_than_or_equal\",\"less_than_or_equal\",\"is_set\",\"is_not_set\"],optionTitles:[\"Equals\",\"Doesn't equal\",\"Greater than\",\"Less than\",\"Greater than or equal\",\"Less than or equal\",\"Is set\",\"Is not set\"],defaultValue:\"equals\",hidden:props=>props.filterType!==\"number\"},matchToggle:{type:ControlType.Enum,title:\"Match\",description:\"How to match boolean/toggle field values\",options:[\"is_enabled\",\"is_disabled\",\"is_set\",\"is_not_set\"],optionTitles:[\"Is Enabled\",\"Is Disabled\",\"Is set\",\"Is not set\"],defaultValue:\"is_enabled\",hidden:props=>props.filterType!==\"toggle\"},matchEnum:{type:ControlType.Enum,title:\"Match\",description:\"How to match CMS enum field values\",options:[\"equals\",\"not_equals\",\"is_set\",\"is_not_set\"],optionTitles:[\"Equals\",\"Doesn't equal\",\"Is set\",\"Is not set\"],defaultValue:\"equals\",hidden:props=>props.filterType!==\"cms-enum\"},// Hide the generic match control\nmatch:{type:ControlType.Enum,title:\"Match (Hidden)\",options:[\"hidden\"],optionTitles:[\"Hidden\"],defaultValue:\"hidden\",hidden:()=>true},// Range-specific options\nmin:{type:ControlType.Number,title:\"Min Value (Range)\",description:\"Minimum possible value for this range filter\",defaultValue:0,hidden:props=>props.filterType!==\"range\"},max:{type:ControlType.Number,title:\"Max Value (Range)\",description:\"Maximum possible value for this range filter\",defaultValue:100,hidden:props=>props.filterType!==\"range\"},step:{type:ControlType.Number,title:\"Step (Range)\",description:\"Increment step size for the range slider\",defaultValue:1,hidden:props=>props.filterType!==\"range\"},rangeStyle:{type:ControlType.Enum,title:\"Range Style\",description:\"Choose between input fields or a visual slider\",options:[\"dual-input\",\"range-slider\"],optionTitles:[\"Dual Input\",\"Range Slider\"],defaultValue:\"dual-input\",hidden:props=>props.filterType!==\"range\"},rangeInputOptions:{type:ControlType.Enum,title:\"Dual Input Options\",description:\"Select range input options (left and right) or full range\",options:[\"left-right\",\"full-width\"],optionTitles:[\"Left and Right\",\"Full Width\"],defaultValue:\"full-width\",hidden:props=>props.filterType!==\"range\"||props.rangeStyle!==\"dual-input\"},rangeBottomLabel:{type:ControlType.Boolean,title:\"Range Bottom Label\",description:\"Show label below the range input fields\",enabledTitle:\"Show\",disabledTitle:\"Hide\",defaultValue:true,hidden:props=>props.filterType!==\"range\"||props.rangeStyle!==\"dual-input\"},unit:{type:ControlType.String,title:\"Unit\",description:\"Unit symbol displayed with values (optional)\",placeholder:\"e.g., $, %, units, px, km\",defaultValue:\"\",hidden:props=>props.filterType!==\"range\"||props.rangeStyle!==\"dual-input\"},// Toggle-specific options\ntoggleStyle:{type:ControlType.Enum,title:\"Toggle Style\",description:\"Choose the UI style for the toggle control\",options:[\"switch\",\"pill\"],optionTitles:[\"Switch\",\"Pill (Segmented)\"],defaultValue:\"switch\",hidden:props=>props.filterType!==\"toggle\"},toggleTriState:{type:ControlType.Boolean,title:\"Tri-State Mode\",description:\"Enable 3-state toggle: ON / OFF / ANY (no filter)\",enabledTitle:\"Enabled\",disabledTitle:\"Disabled\",defaultValue:false,hidden:props=>props.filterType!==\"toggle\"},toggleAnyLabel:{type:ControlType.String,title:\"ANY Label\",description:\"Custom label for ANY state (tri-state only)\",placeholder:\"e.g., All, Any, No Filter\",defaultValue:\"Any\",hidden:props=>props.filterType!==\"toggle\"||!props.toggleTriState},toggleInverse:{type:ControlType.Boolean,title:\"Inverse Logic\",description:\"Invert filter logic (ON = exclude, OFF = include)\",enabledTitle:\"Inverted\",disabledTitle:\"Normal\",defaultValue:false,hidden:props=>props.filterType!==\"toggle\"},toggleShowLabels:{type:ControlType.Boolean,title:\"Show Labels\",description:\"Display state labels next to toggle control\",enabledTitle:\"Show\",disabledTitle:\"Hide\",defaultValue:true,hidden:props=>props.filterType!==\"toggle\"||props.toggleStyle!==\"switch\"},toggleOnLabel:{type:ControlType.String,title:\"ON Label\",description:\"Custom label for ON state (optional)\",placeholder:\"e.g., Enabled, Active, Include\",defaultValue:\"\",hidden:props=>props.filterType!==\"toggle\"},toggleOffLabel:{type:ControlType.String,title:\"OFF Label\",description:\"Custom label for OFF state (optional)\",placeholder:\"e.g., Disabled, Inactive, Exclude\",defaultValue:\"\",hidden:props=>props.filterType!==\"toggle\"},// Dropdown/Multi-select options\noptions:{type:ControlType.Array,title:\"Options\",description:\"Define the list of options for dropdown filtering\",control:{type:ControlType.Object,controls:{value:{type:ControlType.String,title:\"Value (for filtering)\",description:\"Value to match against field data\",placeholder:\"e.g., premium, basic, enterprise\",defaultValue:\"\"},title:{type:ControlType.String,title:\"Display Title\",description:\"Text shown to users in the dropdown\",placeholder:\"e.g., Premium Plan, Basic Plan\",defaultValue:\"\"}}},defaultValue:[{value:\"option1\",title:\"Option 1\"},{value:\"option2\",title:\"Option 2\"}],hidden:props=>props.filterType!==\"dropdown\"},multiStyle:{type:ControlType.Enum,title:\"Selection Style\",description:\"How to display the dropdown options\",options:[\"checkboxes\",\"tags\",\"select\"],optionTitles:[\"Checkboxes\",\"Tag Buttons\",\"Select\"],defaultValue:\"checkboxes\",hidden:props=>props.filterType!==\"dropdown\"},enumStyle:{type:ControlType.Enum,title:\"CMS Selection Style\",description:\"How to display the CMS dropdown options\",options:[\"tags\",\"checkboxes\",\"dropdown\"],optionTitles:[\"Tag Buttons\",\"Checkboxes\",\"Select\"],defaultValue:\"tags\",hidden:props=>props.filterType!==\"cms-enum\"},checkboxLayout:{type:ControlType.Enum,title:\"Checkbox Layout\",description:\"Choose between vertical (block) or horizontal (inline) layout\",options:[\"block\",\"inline\"],optionTitles:[\"Block (Vertical)\",\"Inline (Horizontal)\"],defaultValue:\"block\",hidden:props=>{const style=props.filterType===\"dropdown\"?props.multiStyle:props.filterType===\"cms-enum\"?props.enumStyle:props.filterType===\"multi-ref\"?props.multiRefStyle:props.filterType===\"single-ref\"?props.singleRefStyle:null;return style!==\"checkboxes\";}},checkboxWidth:{type:ControlType.String,title:\"Checkbox Width\",description:\"Width for each checkbox item (e.g., 50%, 100px)\",defaultValue:\"100%\",placeholder:\"e.g., 50%, 120px\",hidden:props=>{const style=props.filterType===\"dropdown\"?props.multiStyle:props.filterType===\"cms-enum\"?props.enumStyle:props.filterType===\"multi-ref\"?props.multiRefStyle:props.filterType===\"single-ref\"?props.singleRefStyle:null;return style!==\"checkboxes\"||props.checkboxLayout===\"inline\";}},pillLayout:{type:ControlType.Enum,title:\"Pill Layout\",description:\"Choose between horizontal (inline) or vertical (block) layout for pill/tag buttons\",options:[\"inline\",\"block\"],optionTitles:[\"Inline (Horizontal)\",\"Block (Vertical)\"],defaultValue:\"inline\",hidden:props=>{const style=props.filterType===\"dropdown\"?props.multiStyle:props.filterType===\"cms-enum\"?props.enumStyle:props.filterType===\"multi-ref\"?props.multiRefStyle:props.filterType===\"single-ref\"?props.singleRefStyle:null;return style!==\"tags\";}},pillSizing:{type:ControlType.Enum,title:\"Pill Sizing\",description:\"Control how pill buttons are sized\",options:[\"auto\",\"fill\",\"fixed\"],optionTitles:[\"Auto (Fit Content)\",\"Fill Container\",\"Fixed Width\"],defaultValue:\"auto\",hidden:props=>{const style=props.filterType===\"dropdown\"?props.multiStyle:props.filterType===\"cms-enum\"?props.enumStyle:props.filterType===\"multi-ref\"?props.multiRefStyle:props.filterType===\"single-ref\"?props.singleRefStyle:null;return style!==\"tags\"||props.pillLayout!==\"block\";}},pillWidth:{type:ControlType.String,title:\"Pill Width\",description:\"Set a custom width for each pill (e.g., 50%, 200px, 10rem)\",defaultValue:\"200px\",placeholder:\"e.g., 50%, 200px, 10rem\",hidden:props=>{const style=props.filterType===\"dropdown\"?props.multiStyle:props.filterType===\"cms-enum\"?props.enumStyle:props.filterType===\"multi-ref\"?props.multiRefStyle:props.filterType===\"single-ref\"?props.singleRefStyle:null;return style!==\"tags\"||props.pillLayout!==\"block\"||props.pillSizing!==\"fixed\";}},// ADD new allowMultiple control:\nallowMultiple:{type:ControlType.Boolean,title:\"Allow Multiple Selection\",description:\"Let users select multiple options at once\",defaultValue:false,hidden:props=>!(props.filterType===\"dropdown\"||props.filterType===\"cms-enum\")},logic:{type:ControlType.Enum,title:\"Logic\",description:\"When multiple options are selected, how should they be combined?\",options:[\"All\",\"Any\"],optionTitles:[\"All (AND)\",\"Any (OR)\"],defaultValue:\"Any\",hidden:props=>{// Show logic only for dropdown with multiple selection\n// CMS Enum doesn't need logic (Framer enums are single-value only)\nreturn!(props.filterType===\"dropdown\"&&props.allowMultiple);}},showPostCount:{type:ControlType.Boolean,title:\"Show Post Count\",description:\"Display the number of posts for each option\",defaultValue:false,hidden:props=>props.filterType!==\"cms-enum\"},countTemplate:{type:ControlType.String,title:\"Count Template\",description:\"Template for displaying count. Use {count} as placeholder. Examples: [{count}], ({count}), •{count}\",defaultValue:\"[{count}]\",placeholder:\"[{count}]\",hidden:props=>props.filterType!==\"cms-enum\"||!props.showPostCount},countStyle:{type:ControlType.Object,title:\"Count Styling\",description:\"CSS styling for the count display\",controls:{font:{type:ControlType.Font,title:\"Font\",description:\"Typography settings for count badge\",controls:\"extended\",defaultValue:{fontSize:\"12px\"}},color:{type:ControlType.Color,title:\"Text Color\",description:\"Text color for count badge\",defaultValue:\"#666666\"},backgroundColor:{type:ControlType.Color,title:\"Background Color\",description:\"Background color for count badge\",defaultValue:\"#f0f0f0\"},padding:{type:ControlType.Padding,title:\"Padding\",description:\"Inner spacing for count badge (e.g., '2px 4px')\",defaultValue:\"2px 4px 2px 4px\"},borderRadius:{type:ControlType.BorderRadius,title:\"Border Radius\",description:\"Corner rounding for count badge\",defaultValue:\"3px\"},margin:{type:ControlType.Padding,title:\"Margin\",description:\"Outer spacing for count badge (e.g., '0 4px')\",defaultValue:\"0px 0px 0px 4px\"},size:{type:ControlType.Number,title:\"Size\",description:\"Fixed width and height for count badge (0 = auto)\",defaultValue:0,min:0,max:100,step:1}},hidden:props=>props.filterType!==\"cms-enum\"||!props.showPostCount},showAllOption:{type:ControlType.Boolean,title:\"Show 'All' option\",description:\"Add an 'All' option to reset this filter\",defaultValue:true,hidden:props=>!(props.filterType===\"dropdown\"||props.filterType===\"cms-enum\")},allOptionLabel:{type:ControlType.String,title:\"All Label\",description:\"Custom text for the 'All' reset option\",placeholder:\"e.g., All Posts, All Categories, Show All\",defaultValue:\"All\",hidden:props=>!(props.filterType===\"dropdown\"||props.filterType===\"cms-enum\")||!props.showAllOption},allowDeselect:{type:ControlType.Boolean,title:\"Allow Deselect\",description:\"Allow users to click selected option to deselect it (single selection only)\",defaultValue:true,hidden:props=>!(props.filterType===\"dropdown\"||props.filterType===\"cms-enum\")||props.allowMultiple}}},defaultValue:[]},builderLogic:{type:ControlType.Enum,title:\"Builder Logic\",description:\"How to combine filters within this builder\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\",options:[\"All\",\"Any\"],optionTitles:[\"All (AND)\",\"Any (OR)\"],defaultValue:\"All\"},filterContainerStyles:{type:ControlType.Object,title:\"Container Styles\",description:\"Styling for the overall filter container layout\",controls:{column:{type:ControlType.Number,title:\"Column\",description:\"Number of columns for filter layout\",defaultValue:1,min:1,max:10,step:1,displayStepper:true},gap:{type:ControlType.Number,title:\"Column Gap\",description:\"Spacing between filter columns\",defaultValue:12,min:0,max:100,step:1},backgroundColor:{type:ControlType.Color,title:\"Background Color\",description:\"Background color for the filter container\",defaultValue:\"transparent\",optional:true},padding:{type:ControlType.Padding,title:\"Padding\",description:\"Inner spacing around filter container\",defaultValue:\"0px\"},border:{type:ControlType.Border,title:\"Border\",description:\"Border style for filter container\",defaultValue:{borderWidth:0,borderStyle:\"solid\",borderColor:\"#dee2e6\"}},borderRadius:{type:ControlType.BorderRadius,title:\"Border Radius\",description:\"Corner rounding for filter container\",defaultValue:\"0px\"}},defaultValue:{backgroundColor:\"transparent\"}},filterLabelStyles:{type:ControlType.Object,title:\"Label Styles\",description:\"Styling for filter titles/labels\",controls:{labelToggle:{type:ControlType.Boolean,title:\"Toggle\",description:\"Show or hide filter labels\",enabledTitle:\"Show\",disabledTitle:\"Hide\"},font:{type:ControlType.Font,title:\"Font\",description:\"Typography settings for filter labels\",controls:\"extended\",defaultValue:{fontSize:\"14px\"},hidden:props=>!props.labelToggle},padding:{type:ControlType.Padding,title:\"Padding\",description:\"Spacing around filter labels\",defaultValue:\"0px 0px 16px 0px\",hidden:props=>!props.labelToggle},color:{type:ControlType.Color,title:\"Color\",description:\"Text color for filter labels\",defaultValue:\"#333\",optional:true,hidden:props=>!props.labelToggle}},defaultValue:{padding:\"0px 0px 16px 0px\",color:\"#333\"}},filterInputStyles:{type:ControlType.Object,title:\"Input Styles\",description:\"Styling for input fields and interactive elements\",controls:{font:{type:ControlType.Font,title:\"Font\",description:\"Typography settings for input text\",controls:\"extended\",defaultValue:{fontSize:\"14px\"}},padding:{type:ControlType.Padding,title:\"Padding\",description:\"Inner spacing around input content\",defaultValue:\"8px 16px 8px 16px\"},color:{type:ControlType.Color,title:\"Color\",description:\"Text color for input fields\",defaultValue:\"#333\"},backgroundColor:{type:ControlType.Color,title:\"Background Color\",description:\"Background color for input fields\",defaultValue:\"white\"},border:{type:ControlType.Border,title:\"Border\",description:\"Border style for input fields\",defaultValue:{borderWidth:1,borderStyle:\"solid\",borderColor:\"#dee2e6\"}},borderRadius:{type:ControlType.BorderRadius,title:\"Border Radius\",description:\"Corner rounding for input fields\",defaultValue:\"6px\"},selectedTextColor:{type:ControlType.Color,title:\"Selected Text Color\",description:\"Text color when input is selected/active\",defaultValue:\"#333\",optional:true},selectedBackgroundColor:{type:ControlType.Color,title:\"Selected Background Color\",description:\"Background color when input is selected/active\",defaultValue:\"white\",optional:true},selectedBorderColor:{type:ControlType.Color,title:\"Selected Border Color\",description:\"Border color when input is selected/active\",defaultValue:\"#000\"},hoverTextColor:{type:ControlType.Color,title:\"Hover Text Color\",description:\"Text color when hovering over input\",defaultValue:\"#333\",optional:true},hoverBackgroundColor:{type:ControlType.Color,title:\"Hover Background Color\",description:\"Background color when hovering over input\",defaultValue:\"#f8f9fa\",optional:true},hoverBorderColor:{type:ControlType.Color,title:\"Hover Border Color\",description:\"Border color when hovering over input\",defaultValue:\"#007AFF\",optional:true}},defaultValue:{backgroundColor:\"#fff\"}},filterPillStyles:{type:ControlType.Object,title:\"Pill Styles\",description:\"Styling for pill button fields and interactive elements\",controls:{font:{type:ControlType.Font,title:\"Font\",description:\"Typography settings for pill button text\",controls:\"extended\",defaultValue:{fontSize:\"14px\"}},selectedFont:{type:ControlType.Font,title:\"Active Font\",description:\"Typography settings for active pill button text\",controls:\"extended\",defaultValue:{fontSize:\"14px\"}},gap:{type:ControlType.Number,title:\"Gap\",description:\"Spacing between pill buttons\",defaultValue:6,step:1},padding:{type:ControlType.Padding,title:\"Padding\",description:\"Inner spacing around pill button content\",defaultValue:\"8px 16px 8px 16px\"},color:{type:ControlType.Color,title:\"Color\",description:\"Text color for pill buttons\",defaultValue:\"#333\"},backgroundColor:{type:ControlType.Color,title:\"Background Color\",description:\"Background color for pill buttons\",defaultValue:\"white\"},border:{type:ControlType.Border,title:\"Border\",description:\"Border style for pill buttons\",defaultValue:{borderWidth:1,borderStyle:\"solid\",borderColor:\"#dee2e6\"}},borderRadius:{type:ControlType.BorderRadius,title:\"Border Radius\",description:\"Corner rounding for pill buttons\",defaultValue:\"6px\"},selectedTextColor:{type:ControlType.Color,title:\"Selected Text Color\",description:\"Text color when pill button is selected\",defaultValue:\"white\",optional:true},selectedBackgroundColor:{type:ControlType.Color,title:\"Selected Background Color\",description:\"Background color when pill button is selected\",defaultValue:\"#007AFF\",optional:true},selectedBorderColor:{type:ControlType.Color,title:\"Selected Border Color\",description:\"Border color when pill button is selected\",defaultValue:\"#007AFF\"},hoverTextColor:{type:ControlType.Color,title:\"Hover Text Color\",description:\"Text color when hovering over pill button\",defaultValue:\"#333\",optional:true},hoverBackgroundColor:{type:ControlType.Color,title:\"Hover Background Color\",description:\"Background color when hovering over pill button\",defaultValue:\"#fff\",optional:true},hoverBorderColor:{type:ControlType.Color,title:\"Hover Border Color\",description:\"Border color when hovering over pill button\",defaultValue:\"#007AFF\",optional:true}},defaultValue:{backgroundColor:\"#fff\"}},filterToggleStyles:{type:ControlType.Object,title:\"Toggle Styles\",description:\"Styling for toggle switch and pill controls\",controls:{// Label styling\nfont:{type:ControlType.Font,title:\"Font\",description:\"Typography settings for toggle labels\",controls:\"extended\",defaultValue:{fontSize:\"14px\"}},// Switch-specific controls\nswitchWidth:{type:ControlType.Number,title:\"Switch Width\",description:\"Width of the toggle switch\",defaultValue:52,min:24,max:200,step:1,displayStepper:true},switchHeight:{type:ControlType.Number,title:\"Switch Height\",description:\"Height of the toggle switch\",defaultValue:24,min:12,max:100,step:1,displayStepper:true},knobSize:{type:ControlType.Number,title:\"Switch Knob Size\",description:\"Size of the toggle switch knob\",defaultValue:18,min:8,max:100,step:1,displayStepper:true},gap:{type:ControlType.Number,title:\"Switch Gap\",description:\"Spacing between switch and label\",defaultValue:2,min:0,max:100,step:1,displayStepper:true},// Pill specific controls\npadding:{type:ControlType.Padding,title:\"Pill Padding\",description:\"Inner spacing for pill toggle buttons\",defaultValue:\"8px 12px 8px 12px\"},pillGap:{type:ControlType.Number,title:\"Pill Gap\",description:\"Spacing between pill toggle buttons\",defaultValue:0,min:0,max:20,step:1,displayStepper:true},// Color controls\nbackgroundColor:{type:ControlType.Color,title:\"Background\",description:\"Background color for toggle control\",defaultValue:\"#e0e0e0\"},innerBackgroundColor:{type:ControlType.Color,title:\"Inner Background\",description:\"Background color for toggle knob/pill\",defaultValue:\"white\"},border:{type:ControlType.Border,title:\"Border\",description:\"Border style for toggle control\",defaultValue:{borderWidth:1,borderStyle:\"solid\",borderColor:\"#dee2e6\"}},borderRadius:{type:ControlType.Number,title:\"Border Radius\",description:\"Corner rounding for toggle control\",defaultValue:50,min:0,max:100,step:1},color:{type:ControlType.Color,title:\"Color\",description:\"Text color for toggle labels\",defaultValue:\"#333\"},// Selected state colors\nselectedBackgroundColor:{type:ControlType.Color,title:\"Selected Background\",description:\"Background color when toggle is active\",defaultValue:\"#007AFF\",optional:true},selectedTextColor:{type:ControlType.Color,title:\"Selected Text Color\",description:\"Text color when toggle is active\",defaultValue:\"#fff\",optional:true},selectedBorderColor:{type:ControlType.Color,title:\"Selected Border\",description:\"Border color when toggle is active\",defaultValue:\"#007AFF\",optional:true},// Hover state colors\nhoverBackgroundColor:{type:ControlType.Color,title:\"Hover Background\",description:\"Background color when hovering over toggle\",defaultValue:\"#0056b3\",optional:true},hoverTextColor:{type:ControlType.Color,title:\"Hover Text Color\",description:\"Text color when hovering over toggle\",defaultValue:\"#fff\",optional:true},hoverBorderColor:{type:ControlType.Color,title:\"Hover Border\",description:\"Border color when hovering over toggle\",defaultValue:\"#004085\",optional:true}},defaultValue:{backgroundColor:\"#e0e0e0\",borderRadius:\"50px\",selectedBackgroundColor:\"#007AFF\"}},filterRangeStyles:{type:ControlType.Object,title:\"Range Styles\",description:\"Styling for range slider and input controls\",controls:{font:{type:ControlType.Font,title:\"Font\",description:\"Typography settings for range values\",controls:\"extended\",defaultValue:{fontSize:\"14px\"}},minRangeValueGap:{type:ControlType.Number,title:\"Min Range Gap\",description:\"Minimum gap between min and max values\",defaultValue:1,min:1,step:1},padding:{type:ControlType.Padding,title:\"Padding\",description:\"Inner spacing around range control\",defaultValue:\"0px\"},trackColor:{type:ControlType.Color,title:\"Track Color\",description:\"Color of the slider track\",defaultValue:\"#dddddd\"},rangeColor:{type:ControlType.Color,title:\"Range Color\",description:\"Color of the active range segment\",defaultValue:\"#007AFF\"},thumbColor:{type:ControlType.Color,title:\"Thumb Color\",description:\"Color of the slider thumb/handle\",defaultValue:\"#ffffff\"},thumbBorderColor:{type:ControlType.Color,title:\"Thumb Border Color\",description:\"Border color of the slider thumb/handle\",defaultValue:\"#007AFF\"},bubbleColor:{type:ControlType.Color,title:\"Bubble Color\",description:\"Background color of value tooltip bubble\",defaultValue:\"#007AFF\"},bubbleTextColor:{type:ControlType.Color,title:\"Bubble Text Color\",description:\"Text color of value tooltip bubble\",defaultValue:\"#ffffff\"},borderRadius:{type:ControlType.BorderRadius,title:\"Border Radius\",description:\"Corner rounding for range control\",defaultValue:\"20px\"},backgroundColor:{type:ControlType.Color,title:\"Background Color\",description:\"Background color for range control container\",defaultValue:\"transparent\"}},defaultValue:{}},filterCheckboxStyles:{type:ControlType.Object,title:\"Checkboxes Styles\",description:\"Styling for checkbox filter controls\",controls:{font:{type:ControlType.Font,title:\"Font\",description:\"Typography settings for checkbox labels\",controls:\"extended\",defaultValue:{fontSize:\"14px\"}},selectedFont:{type:ControlType.Font,title:\"Active Font\",description:\"Typography settings for active pill button text\",controls:\"extended\",defaultValue:{fontSize:\"14px\"}},gap:{type:ControlType.Number,title:\"Gap\",description:\"Spacing between checkbox items\",defaultValue:6,step:1},backgroundColor:{type:ControlType.Color,title:\"Background Color\",description:\"Background color for checkbox container\",defaultValue:\"white\"},border:{type:ControlType.Border,title:\"Border\",description:\"Border style for checkbox container\",defaultValue:{borderWidth:0,borderStyle:\"solid\",borderColor:\"#dee2e6\"}},borderRadius:{type:ControlType.BorderRadius,title:\"Border Radius\",description:\"Corner rounding for checkbox container\",defaultValue:\"3px\"},hoverBackgroundColor:{type:ControlType.Color,title:\"Hover Background Color\",description:\"Background color when hovering over checkbox item\",defaultValue:\"transparent\"},hoverBorderColor:{type:ControlType.Color,title:\"Hover Border Color\",description:\"Border color when hovering over checkbox item\",defaultValue:\"transparent\"},activeBackgroundColor:{type:ControlType.Color,title:\"Active Background Color\",description:\"Background color when checkbox item is active\",defaultValue:\"transparent\"},activeBorderColor:{type:ControlType.Color,title:\"Active Border Color\",description:\"Border color when checkbox item is active\",defaultValue:\"transparent\"},padding:{type:ControlType.Padding,title:\"Padding\",description:\"Inner spacing for each checkbox item\",defaultValue:\"8px 0px 8px 0px\"},checkboxGap:{type:ControlType.Number,title:\"Checkbox Gap\",description:\"Spacing between checkbox and label\",defaultValue:10,step:1},scale:{type:ControlType.Number,title:\"Size\",description:\"Size of the checkbox\",defaultValue:18,min:10,max:100,step:1},color:{type:ControlType.Color,title:\"Text Color\",description:\"Text color for checkbox labels\",defaultValue:\"#333\"},checkboxBackgroundColor:{type:ControlType.Color,title:\"Checkbox Background Color\",description:\"Background color of the checkbox box\",defaultValue:\"white\"},checkboxBorder:{type:ControlType.Border,title:\"Checkbox Border\",description:\"Border style for the checkbox box\",defaultValue:{borderWidth:2,borderStyle:\"solid\",borderColor:\"#dee2e6\"}},checkboxBorderRadius:{type:ControlType.Number,title:\"Checkbox Border Radius\",description:\"Corner rounding for the checkbox box\",defaultValue:3,min:0,max:100,step:1},selectedTextColor:{type:ControlType.Color,title:\"Selected Text Color\",description:\"Text color when checkbox is checked\",defaultValue:\"#000\",optional:true},selectedBackgroundColor:{type:ControlType.Color,title:\"Checkbox Selected Background Color\",description:\"Background color when checkbox is checked\",defaultValue:\"#007AFF\",optional:true},selectedBorderColor:{type:ControlType.Color,title:\"Checkbox Selected Border Color\",description:\"Border color when checkbox is checked\",defaultValue:\"#007AFF\"},selectedSvgColor:{type:ControlType.Color,title:\"Checkbox Selected Check Color\",description:\"Color of the checkmark icon\",defaultValue:\"#fff\"}},defaultValue:{}},filterSelectStyles:{type:ControlType.Object,title:\"Select Styles\",description:\"Styling for select dropdown controls\",controls:{selectControls:{type:ControlType.Object,title:\"Select Control Styles\",description:\"Styling for the select input field\",controls:{font:{type:ControlType.Font,title:\"Font Family\",description:\"Typography settings for select text\",controls:\"extended\",defaultValue:{fontSize:\"14px\"}},padding:{type:ControlType.Padding,title:\"Padding\",description:\"Inner spacing around select field\",defaultValue:\"8px 32px 8px 12px\"},marginTop:{type:ControlType.Number,title:\"Gap\",description:\"Spacing between label and select field\",defaultValue:4,min:0,max:100,step:1},color:{type:ControlType.Color,title:\"Color\",description:\"Text color for select field\",defaultValue:\"#333\"},backgroundColor:{type:ControlType.Color,title:\"Background Color\",description:\"Background color for select field\",defaultValue:\"white\"},border:{type:ControlType.Border,title:\"Border\",description:\"Border style for select field\",defaultValue:{borderWidth:1,borderStyle:\"solid\",borderColor:\"#dee2e6\"}},borderRadius:{type:ControlType.BorderRadius,title:\"Border Radius\",description:\"Corner rounding for select field\",defaultValue:\"3px\"},hoverTextColor:{type:ControlType.Color,title:\"Hover Text Color\",description:\"Text color when hovering over select\",defaultValue:\"#333\"},hoverBackgroundColor:{type:ControlType.Color,title:\"Hover Background Color\",description:\"Background color when hovering over select\",defaultValue:\"#f8f9fa\"},hoverBorderColor:{type:ControlType.Color,title:\"Hover Border Color\",description:\"Border color when hovering over select\",defaultValue:\"#007AFF\"},selectedTextColor:{type:ControlType.Color,title:\"Selected Text Color\",description:\"Text color when select has a value\",defaultValue:\"#fff\"},selectedBackgroundColor:{type:ControlType.Color,title:\"Selected Background Color\",description:\"Background color when select has a value\",defaultValue:\"#007AFF\"},selectedBorderColor:{type:ControlType.Color,title:\"Selected Border Color\",description:\"Border color when select has a value\",defaultValue:\"#007AFF\"},arrowSize:{type:ControlType.Number,title:\"Arrow Size\",description:\"Size of the dropdown arrow icon\",defaultValue:16,step:1},arrowPosition:{type:ControlType.Number,title:\"Arrow Position\",description:\"Distance of arrow from right edge\",defaultValue:8,step:1},arrowColor:{type:ControlType.Color,title:\"Arrow Color\",description:\"Color of the dropdown arrow icon\",defaultValue:\"\"}}},optionControls:{type:ControlType.Object,title:\"Option Styles\",description:\"Styling for dropdown options list\",controls:{maxHeight:{type:ControlType.Number,title:\"Max Height\",description:\"Maximum height of dropdown options list\",defaultValue:200,min:100,max:500,step:1,unit:\"px\"},optionFont:{type:ControlType.Font,title:\"Font Family\",description:\"Typography settings for option text\",controls:\"extended\",defaultValue:{fontSize:\"14px\"}},dropdownPadding:{type:ControlType.Padding,title:\"Dropdown Padding\",description:\"Inner spacing for dropdown container\",defaultValue:\"0px\"},dropdownBackgroundColor:{type:ControlType.Color,title:\"Dropdown Background Color\",description:\"Background color for dropdown container\",defaultValue:\"white\"},dropdownBorder:{type:ControlType.Border,title:\"Dropdown Border\",description:\"Border style for dropdown container\",defaultValue:{borderWidth:1,borderStyle:\"solid\",borderColor:\"#dee2e6\"}},dropdownBorderRadius:{type:ControlType.BorderRadius,title:\"Dropdown Border Radius\",description:\"Corner rounding for dropdown container\",defaultValue:\"3px\"},optionPadding:{type:ControlType.Padding,title:\"Padding\",description:\"Inner spacing for each option\",defaultValue:\"8px 16px 8px 16px\"},optionMargin:{type:ControlType.Padding,title:\"Margin\",description:\"Outer spacing for each option\",defaultValue:\"0\"},optionColor:{type:ControlType.Color,title:\"Color\",description:\"Text color for options\",defaultValue:\"#333\"},optionBackgroundColor:{type:ControlType.Color,title:\"Background Color\",description:\"Background color for options\",defaultValue:\"white\"},optionBorder:{type:ControlType.Border,title:\"Border\",description:\"Border style for each option\",defaultValue:{borderWidth:0,borderStyle:\"solid\",borderColor:\"#dee2e6\"}},optionBorderRadius:{type:ControlType.BorderRadius,title:\"Border Radius\",description:\"Corner rounding for each option\",defaultValue:\"0px\"},optionHoverTextColor:{type:ControlType.Color,title:\"Hover Text Color\",description:\"Text color when hovering over option\",defaultValue:\"#333\"},optionHoverBackgroundColor:{type:ControlType.Color,title:\"Hover Background Color\",description:\"Background color when hovering over option\",defaultValue:\"#f8f9fa\"},optionHoverBorderColor:{type:ControlType.Color,title:\"Hover Border Color\",description:\"Border color when hovering over option\",defaultValue:\"#dee2e6\"},optionSelectedTextColor:{type:ControlType.Color,title:\"Selected Text Color\",description:\"Text color when option is selected\",defaultValue:\"#fff\"},optionSelectedBackgroundColor:{type:ControlType.Color,title:\"Selected Background Color\",description:\"Background color when option is selected\",defaultValue:\"#007AFF\"},optionSelectedBorderColor:{type:ControlType.Color,title:\"Selected Border Color\",description:\"Border color when option is selected\",defaultValue:\"#007AFF\"}}}},defaultValue:{}},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)\"},debugLevel:{type:ControlType.Enum,title:\"🐛 Debug Level\",description:\"Development tool to show UI helpers and debug info\",options:[\"hide\",\"ui_helpers\",\"full_debug\"],optionTitles:[\"Hide (Production)\",\"UI Helpers (Development)\",\"Full Debug (Deep Development)\"],defaultValue:\"hide\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CMSFilters\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any\",\"framerSupportedLayoutHeight\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CMSFilters.map"],"mappings":"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"}