{"version":3,"file":"CMSSearch.BTJYoPI5.mjs","names":["useState","getCmsQueryFromSlot","useState","useMemo","_Fragment"],"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/ACiSfH9XmEeGQw9FrwJm/sonBlYtuqlTIWRiEwECO/CMSSearch.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","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"],"mappings":"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"}