PluginProbe
Elementor Website Builder – more than just a page builder / 3.33.0-beta1
Elementor Website Builder – more than just a page builder v3.33.0-beta1
4.3.4 4.3.3 4.3.2 4.3.1 4.3.0 4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 All 457 releases
← All changes | assets/js/packages/editor-components/editor-components.min.js +1 -21 4.3.0 → 3.33.0-beta1 View file →
@@ -1,21 +1 @@
1 -(function(){var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,__commonJSMin=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),__copyProps=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},__toESM=(n,r,a)=>(a=n==null?{}:e(i(n)),__copyProps(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n)),o=__toESM(__commonJSMin(((e,t)=>{var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,__export=(e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})},__copyProps=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let c of a(t))!s.call(e,c)&&c!==n&&r(e,c,{get:()=>t[c],enumerable:!(o=i(t,c))||o.enumerable});return e},__toESM=(e,t,i)=>(i=e==null?{}:n(o(e)),__copyProps(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e)),__toCommonJS=e=>__copyProps(r({},`__esModule`,{value:!0}),e),c={};__export(c,{COMPONENT_WIDGET_TYPE:()=>tr,ComponentInstanceProvider:()=>ComponentInstanceProvider,ComponentItem:()=>Je,ComponentName:()=>ComponentName,ComponentSearch:()=>ComponentSearch,ComponentsList:()=>ComponentsList,DetachAction:()=>DetachAction,EditComponentAction:()=>EditComponentAction,EmptySearchResult:()=>EmptySearchResult,InstanceEmptyState:()=>EmptyState2,InstancePanelBody:()=>InstancePanelBody,InstancePanelHeader:()=>InstancePanelHeader,LoadingComponents:()=>LoadingComponents,OverridablePropProvider:()=>OverridablePropProvider,SLICE_NAME:()=>g,SearchProvider:()=>SearchProvider,apiClient:()=>y,componentInstanceOverridePropTypeUtil:()=>z,componentInstanceOverridesPropTypeUtil:()=>H,componentInstancePropTypeUtil:()=>U,componentOverridablePropTypeUtil:()=>V,componentsActions:()=>vn,componentsSelectors:()=>yn,createComponentsAction:()=>createComponentsAction,filterValidOverridableProps:()=>filterValidOverridableProps,getComponentDocumentData:()=>getComponentDocumentData,getContainerByOriginId:()=>getContainerByOriginId,getOverridableProp:()=>getOverridableProp,getPropTypeForComponentOverride:()=>getPropTypeForComponentOverride,init:()=>init,isComponentInstance:()=>isComponentInstance,loadComponentsAssets:()=>loadComponentsAssets,onElementDrop:()=>onElementDrop,publishDraftComponentsInPageBeforeSave:()=>publishDraftComponentsInPageBeforeSave,registerComponentsReducer:()=>registerComponentsReducer,resolveOverridePropValue:()=>resolveOverridePropValue,selectComponentByUid:()=>selectComponentByUid,selectCreatedThisSession:()=>he,selectOverridableProps:()=>_e,selectPath:()=>ye,slice:()=>b,switchToComponent:()=>switchToComponent,trackComponentEvent:()=>trackComponentEvent,updateOverridableProp:()=>updateOverridableProp,useComponentInstanceElement:()=>useComponentInstanceElement,useComponents:()=>useComponents,useComponentsPermissions:()=>useComponentsPermissions,useCurrentComponent:()=>useCurrentComponent,useCurrentComponentId:()=>useCurrentComponentId,useFilteredComponents:()=>useFilteredComponents,useInstancePanelData:()=>useInstancePanelData,useIsSanitizedComponent:()=>useIsSanitizedComponent,useOverridablePropValue:()=>useOverridablePropValue,useOverridableProps:()=>useOverridableProps,useSanitizeOverridableProps:()=>useSanitizeOverridableProps}),t.exports=__toCommonJS(c);var l=globalThis.elementorV2.editor,u=globalThis.elementorV2.editorCanvas,d=globalThis.elementorV2.editorDocuments,ee=globalThis.elementorV2.editorEditingPanel,f=globalThis.elementorV2.editorElementsPanel,p=globalThis.elementorV2.editorEmbeddedDocumentsManager,m=globalThis.elementorV2.editorV1Adapters,te=globalThis.elementorV2.store,ne=globalThis.wp.i18n,re=globalThis.elementorV2.editorCanvas,ie=globalThis.elementorV2.store,h=globalThis.elementorV2.store,ae={data:[],unpublishedData:[],loadStatus:`idle`,createdThisSession:[],archivedThisSession:[],path:[],currentComponentId:null,updatedComponentNames:{},sanitized:{}},g=`components`,oe=globalThis.elementorV2.store,se=globalThis.elementorV2.store,ce=globalThis.elementorV2.editorV1Adapters,_=globalThis.elementorV2.httpClient,v=`elementor/v1/components`,getParams=e=>({action:`get_document_config`,unique_id:`document-config-${e}`,data:{id:e}}),y={get:()=>(0,_.httpService)().get(`${v}`).then(e=>e.data.data),create:e=>(0,_.httpService)().post(`${v}`,e).then(e=>e.data.data),updateStatuses:(e,t)=>(0,_.httpService)().put(`${v}/status`,{ids:e,status:t}),getComponentConfig:e=>ce.ajax.load(getParams(e)),invalidateComponentConfigCache:e=>ce.ajax.invalidateCache(getParams(e)),getComponentLockStatus:async e=>await(0,_.httpService)().get(`${v}/lock-status`,{params:{componentId:e}}).then(e=>{let{is_current_user_allow_to_edit:t,locked_by:n}=e.data.data;return{isAllowedToSwitchDocument:t,lockedBy:n||``}}),lockComponent:async e=>await(0,_.httpService)().post(`${v}/lock`,{componentId:e}).then(e=>e.data),unlockComponent:async e=>await(0,_.httpService)().post(`${v}/unlock`,{componentId:e}).then(e=>e.data),getOverridableProps:async e=>await(0,_.httpService)().get(`${v}/overridable-props`,{params:{"componentIds[]":e}}).then(e=>e.data),updateArchivedComponents:async(e,t)=>await(0,_.httpService)().post(`${v}/archive`,{componentIds:e,status:t}).then(e=>e.data.data),updateComponentTitle:(e,t)=>(0,_.httpService)().post(`${v}/update-titles`,{components:e,status:t}).then(e=>e.data.data),validate:async e=>await(0,_.httpService)().post(`${v}/create-validate`,e).then(e=>e.data)},le=(0,se.__createAsyncThunk)(`components/load`,async()=>await y.get()),ue=new Map;function registerComponentsReducer(e,t){ue.set(`${g}/${e}`,t)}function createComponentsAction(e){let t=(0,oe.__createAction)(`${g}/${e}`);return{action:t,register(t){registerComponentsReducer(e,t)},dispatch(e){(0,oe.__dispatch)(t(e))}}}var de=(0,oe.__createSlice)({name:g,initialState:ae,reducers:{add:(e,{payload:t})=>{Array.isArray(t)?e.data=[...t,...e.data]:e.data.unshift(t)},load:(e,{payload:t})=>{e.data=t},addUnpublished:(e,{payload:t})=>{e.unpublishedData.unshift(t)},removeUnpublished:(e,{payload:t})=>{let n=Array.isArray(t)?t:[t];e.unpublishedData=e.unpublishedData.filter(e=>!n.includes(e.uid))},resetUnpublished:e=>{e.unpublishedData=[]},addCreatedThisSession:(e,{payload:t})=>{e.createdThisSession.push(t)},removeCreatedThisSession:(e,{payload:t})=>{e.createdThisSession=e.createdThisSession.filter(e=>e!==t)},archive:(e,{payload:t})=>{let n=e.data.find(e=>e.id===t);n&&(n.isArchived=!0,e.archivedThisSession.push(t))},setCurrentComponentId:(e,{payload:t})=>{e.currentComponentId=t},setPath:(e,{payload:t})=>{e.path=t},setOverridableProps:(e,{payload:t})=>{let n=e.data.find(e=>e.id===t.componentId);n&&(n.overridableProps=t.overridableProps)},loadOverridableProps:(e,{payload:t})=>{Object.keys(t).forEach(n=>{let r=Number(n),i=t[r],a=e.data.find(e=>e.id===r);!a||!i||(a.overridableProps=i)})},rename:(e,{payload:t})=>{let n=e.data.find(e=>e.uid===t.componentUid);n&&(n.id&&(e.updatedComponentNames[n.id]=t.name),n.name=t.name)},cleanUpdatedComponentNames:e=>{e.updatedComponentNames={}},updateComponentSanitizedAttribute:(e,{payload:{componentId:t,attribute:n}})=>{e.sanitized[t]||(e.sanitized[t]={}),e.sanitized[t][n]=!0},resetSanitizedComponents:e=>{e.sanitized={}}},extraReducers:e=>{e.addCase(le.fulfilled,(e,{payload:t})=>{e.data=t,e.loadStatus=`idle`}),e.addCase(le.pending,e=>{e.loadStatus=`pending`}),e.addCase(le.rejected,e=>{e.loadStatus=`error`})}}),b={...de,reducer(e,t){let n=de.reducer(e,t),r=ue.get(t.type);if(!r||!n)return n;let i=structuredClone(n);return r(i,t),i}},selectData=e=>e[g].data,selectArchivedThisSession=e=>e[g].archivedThisSession,selectLoadStatus=e=>e[g].loadStatus,selectUnpublishedData=e=>e[g].unpublishedData,getCreatedThisSession=e=>e[g].createdThisSession,getPath=e=>e[g].path,getCurrentComponentId=e=>e[g].currentComponentId,selectComponent=(e,t)=>e[g].data.find(e=>e.id===t),useComponent=e=>(0,h.__useSelector)(t=>e?selectComponent(t,e):null),selectComponentByUid=(e,t)=>e[g].data.find(e=>e.uid===t)??e[g].unpublishedData.find(e=>e.uid===t),fe=(0,h.__createSelector)(selectData,selectUnpublishedData,(e,t)=>[...t.map(e=>({uid:e.uid,name:e.name,overridableProps:e.overridableProps})),...e.filter(e=>!e.isArchived)]),pe=(0,h.__createSelector)(selectUnpublishedData,e=>e),me=(0,h.__createSelector)(selectLoadStatus,e=>e===`pending`);(0,h.__createSelector)(selectLoadStatus,e=>e===`error`);var he=(0,h.__createSelector)(getCreatedThisSession,e=>e),ge={props:{},groups:{items:{},order:[]}},_e=(0,h.__createSelector)(selectComponent,e=>{if(e)return e.overridableProps??ge}),useOverridableProps=e=>(0,h.__useSelector)(t=>e?_e(t,e):null),ve=(0,h.__createSelector)(selectComponent,e=>!!e?.overridableProps),ye=(0,h.__createSelector)(getPath,e=>e),be=(0,h.__createSelector)(getCurrentComponentId,e=>e),xe=(0,h.__createSelector)(selectData,getCurrentComponentId,(e,t)=>e.find(e=>e.id===t)),useCurrentComponentId=()=>(0,h.__useSelector)(be),useCurrentComponent=()=>(0,h.__useSelector)(xe),Se=(0,h.__createSelector)(e=>e[g].updatedComponentNames,e=>Object.entries(e).map(([e,t])=>({componentId:Number(e),title:t}))),useSanitizedComponents=()=>(0,h.__useSelector)(e=>e[g].sanitized),useIsSanitizedComponent=(e,t)=>{let n=useSanitizedComponents();return e?!!n[e]?.[t]:!1},Ce=globalThis.elementorV2.editorV1Adapters,getComponentDocumentParams=e=>({action:`get_document_config`,unique_id:`document-${e}`,data:{id:e}}),we=new Map,getComponentDocumentData=e=>{let t=we.get(e);if(t)return t;let n=Ce.ajax.load(getComponentDocumentParams(e)).catch(()=>null).finally(()=>we.delete(e));return we.set(e,n),n},Te=(0,re.createTransformer)(async({component_id:e,overrides:t})=>{let n=pe((0,ie.__getState)()).find(({uid:t})=>t===e),r=t?.reduce((e,t)=>({...e,...t}),{});if(n)return{elements:structuredClone(n.elements),overrides:r};if(typeof e!=`number`)throw Error(`Component ID "${e}" not valid.`);return{elements:(await getComponentDocumentData(e))?.elements??[],overrides:r}}),Ee=globalThis.elementorV2.editorCanvas,De=(0,Ee.createTransformer)((e,t)=>{let{overrides:n}=t.renderContext??{},r=n?.[e.override_key];return r?isOriginValueOverride(e.origin_value)?transformOverride(e,t,r):r:e.origin_value});function transformOverride(e,t,n){let r=Ee.settingsTransformersRegistry.get(`override`);if(!r)return null;let i=r(e.origin_value.value,t);if(!i)return null;let[a]=Object.keys(i);return{[a]:n}}function isOriginValueOverride(e){return e.$$type===`override`}var Oe=(0,globalThis.elementorV2.editorCanvas.createTransformer)(e=>{let{override_key:t,override_value:n}=e;return{[t]:n}}),x=__toESM(globalThis.React),ke=globalThis.React,Ae=globalThis.elementorV2.editorUi,je=globalThis.elementorV2.ui,Me=globalThis.elementorV2.store,useComponents=()=>({components:(0,Me.__useSelector)(fe),isLoading:(0,Me.__useSelector)(me)}),Ne=globalThis.elementorV2.utils,Pe=`4.0`;function isProComponentsSupported(){return(0,Ne.hasProInstalled)()&&(0,Ne.isProAtLeast)(Pe)}function isProOutdatedForComponents(){return(0,Ne.hasProInstalled)()&&!(0,Ne.isProAtLeast)(Pe)}var Fe=__toESM(globalThis.React),Ie=globalThis.elementorV2.icons,Le=globalThis.elementorV2.ui,Re=globalThis.wp.i18n,ze=__toESM(globalThis.React),Be=globalThis.React,Ve=globalThis.elementorV2.utils,He=(0,Be.createContext)(void 0),SearchProvider=({children:e,localStorageKey:t})=>{let{debouncedValue:n,handleChange:r,inputValue:i}=(0,Ve.useSearchState)({localStorageKey:t}),clearSearch=()=>{r(``)};return ze.createElement(He.Provider,{value:{handleChange:r,clearSearch,searchValue:n,inputValue:i}},e)},useSearch=()=>{let e=(0,Be.useContext)(He);if(!e)throw Error(`useSearch must be used within a SearchProvider`);return e},ComponentSearch=()=>{let{inputValue:e,handleChange:t}=useSearch();return Fe.createElement(Le.Stack,{direction:`row`,gap:.5,sx:{width:`100%`,px:2,py:1.5}},Fe.createElement(Le.Box,{sx:{flexGrow:1}},Fe.createElement(Le.TextField,{role:`search`,fullWidth:!0,size:`tiny`,value:e,placeholder:(0,Re.__)(`Search`,`elementor`),onChange:e=>t(e.target.value),InputProps:{startAdornment:Fe.createElement(Le.InputAdornment,{position:`start`},Fe.createElement(Ie.SearchIcon,{fontSize:`tiny`}))}})))},S=__toESM(globalThis.React),Ue=globalThis.elementorV2.icons,C=globalThis.elementorV2.ui,w=globalThis.wp.i18n,We=globalThis.elementorV2.editorCurrentUser,useComponentsPermissions=()=>{let{isAdmin:e}=(0,We.useCurrentUserCapabilities)();return{canCreate:e,canEdit:e,canDelete:e,canRename:e}},T=__toESM(globalThis.React),Ge=globalThis.React,Ke=globalThis.elementorV2.editorUi,qe=globalThis.elementorV2.icons,E=globalThis.elementorV2.ui,Je=(0,Ge.forwardRef)(({component:e,disabled:t=!0,draggable:n,onDragStart:r,onDragEnd:i,onClick:a,isEditing:o=!1,error:s=null,nameSlot:c,endSlot:l,...u},d)=>T.createElement(E.ListItemButton,{disabled:t,draggable:n,onDragStart:r,onDragEnd:i,shape:`rounded`,ref:d,sx:{border:`solid 1px`,borderColor:`divider`,py:.5,px:1,display:`flex`,width:`100%`,alignItems:`center`,gap:1},...u},T.createElement(E.Box,{display:`flex`,alignItems:`center`,gap:1,minWidth:0,flexGrow:1,onClick:a},T.createElement(E.ListItemIcon,{size:`tiny`},T.createElement(qe.ComponentsIcon,{fontSize:`tiny`})),T.createElement(Ye,{isActive:o,isError:!!s},T.createElement(E.Box,{display:`flex`,flex:1,minWidth:0,flexGrow:1},c??T.createElement(ComponentName,{name:e.name})))),l)),Ye=(0,E.styled)(E.Box,{shouldForwardProp:e=>e!==`isActive`&&e!==`isError`})(({theme:e,isActive:t,isError:n})=>({display:`flex`,width:`100%`,flexGrow:1,borderRadius:e.spacing(.5),border:getIndicatorBorder({isActive:t,isError:n,theme:e}),padding:`0 ${e.spacing(1)}`,marginLeft:t?e.spacing(1):0,minWidth:0})),getIndicatorBorder=({isActive:e,isError:t,theme:n})=>t?`2px solid ${n.palette.error.main}`:e?`2px solid ${n.palette.secondary.main}`:`none`;function ComponentName({name:e,editable:t}){return t?.isEditing?T.createElement(Ke.EditableField,{ref:t.ref,as:E.Typography,variant:`caption`,...t.getProps()}):T.createElement(Ke.EllipsisWithTooltip,{title:e,as:E.Typography,variant:`caption`,color:`text.primary`})}var Xe=__toESM(globalThis.React),Ze=globalThis.elementorV2.ui,Qe=Array.from({length:3},(e,t)=>t),$e=80,LoadingComponents=()=>Xe.createElement(Ze.Stack,{"aria-label":`Loading components`,gap:1.5,sx:{pointerEvents:`none`,position:`relative`,maxHeight:`300px`,overflow:`hidden`,px:1,"&:after":{position:`absolute`,bottom:0,content:`""`,left:0,width:`100%`,height:`40%`,pointerEvents:`none`,zIndex:1}}},Qe.map(e=>Xe.createElement(Ze.Box,{key:e,display:`flex`,alignItems:`center`,gap:1.5,sx:{py:.75,px:1.5,opacity:0,animation:`e-loading-fade-in 0.4s ease-out ${e*$e}ms forwards`,"@keyframes e-loading-fade-in":{from:{opacity:0,transform:`translateY(4px)`},to:{opacity:1,transform:`translateY(0)`}}}},Xe.createElement(Ze.Skeleton,{animation:`wave`,variant:`rounded`,width:24,height:24}),Xe.createElement(Ze.Skeleton,{animation:`wave`,variant:`rounded`,width:`60%`,height:14})))),et=`http://go.elementor.com/components-guide-article`,tt=`https://go.elementor.com/go-pro-components/`,nt=`/wp-admin/plugins.php`,D={fontSize:`0.875rem !important`,fontWeight:`500 !important`};function ComponentsList(){let{components:e,isLoading:t,searchValue:n}=useFilteredComponents();return t?S.createElement(LoadingComponents,null):e?.length?S.createElement(C.List,{sx:{display:`flex`,flexDirection:`column`,gap:1,px:2}},e.map(e=>S.createElement(Je,{key:e.uid,component:e}))):n.length?S.createElement(EmptySearchResult,null):isProOutdatedForComponents()?S.createElement(ProOutdatedEmptyState,null):isProComponentsSupported()?S.createElement(EmptyState,null):S.createElement(ProUpgradeEmptyState,null)}var ProUpgradeEmptyState=()=>S.createElement(C.Stack,{alignItems:`center`,justifyContent:`start`,height:`100%`,sx:{px:2,py:4},gap:2,overflow:`hidden`},S.createElement(C.Stack,{alignItems:`center`,gap:1},S.createElement(Ue.ComponentsIcon,{fontSize:`large`,sx:{color:`text.secondary`}}),S.createElement(C.Typography,{align:`center`,variant:`subtitle2`,color:`text.secondary`,sx:D},(0,w.__)(`Create Reusable Components`,`elementor`)),S.createElement(C.Typography,{align:`center`,variant:`caption`,color:`secondary`,sx:{maxWidth:200}},(0,w.__)(`Create design elements that sync across your entire site.`,`elementor`))),S.createElement(C.Button,{variant:`contained`,color:`promotion`,size:`small`,startIcon:S.createElement(Ue.CrownFilledIcon,null),href:tt,target:`_blank`,rel:`noopener noreferrer`},(0,w.__)(`Upgrade now`,`elementor`))),ProOutdatedEmptyState=()=>S.createElement(C.Stack,{alignItems:`center`,justifyContent:`start`,height:`100%`,sx:{px:2,py:4,maxWidth:268,m:`auto`},gap:2,overflow:`hidden`},S.createElement(C.Stack,{alignItems:`center`,gap:1},S.createElement(Ue.ComponentsIcon,{fontSize:`large`,sx:{color:`text.secondary`}}),S.createElement(C.Typography,{align:`center`,variant:`subtitle2`,color:`text.secondary`,sx:D},(0,w.__)(`Create Reusable Components`,`elementor`)),S.createElement(C.Typography,{align:`center`,variant:`caption`,color:`secondary`},(0,w.__)(`Create design elements that sync across your entire site.`,`elementor`)),S.createElement(C.Typography,{align:`center`,variant:`caption`,color:`secondary`,sx:{mt:1}},(0,w.__)(`To create components, update Elementor Pro to the latest version.`,`elementor`))),S.createElement(C.Button,{variant:`text`,color:`info`,size:`small`,href:nt,target:`_blank`,rel:`noopener noreferrer`},(0,w.__)(`Update Elementor Pro`,`elementor`))),EmptyState=()=>{let{canCreate:e}=useComponentsPermissions();return S.createElement(C.Stack,{alignItems:`center`,justifyContent:`start`,height:`100%`,sx:{px:2,py:4},gap:2,overflow:`hidden`},S.createElement(C.Stack,{alignItems:`center`,gap:1},S.createElement(Ue.ComponentsIcon,{fontSize:`large`,sx:{color:`text.secondary`}}),S.createElement(C.Typography,{align:`center`,variant:`subtitle2`,color:`text.secondary`,sx:D},(0,w.__)(`No components yet`,`elementor`)),S.createElement(C.Typography,{align:`center`,variant:`caption`,color:`secondary`,sx:{maxWidth:200}},(0,w.__)(`Components are reusable blocks that sync across your site.`,`elementor`),S.createElement(`br`,null),e?(0,w.__)(`Create once, use everywhere.`,`elementor`):(0,w.__)(`With your current role, you cannot create components. Contact an administrator to create one.`,`elementor`)),S.createElement(C.Link,{href:et,target:`_blank`,rel:`noopener noreferrer`,variant:`caption`,color:`info.main`},(0,w.__)(`Learn more about components`,`elementor`))),e&&S.createElement(S.Fragment,null,S.createElement(C.Divider,{sx:{width:`100%`}}),S.createElement(C.Stack,{alignItems:`center`,gap:1,width:`100%`},S.createElement(C.Typography,{align:`center`,variant:`subtitle2`,color:`text.secondary`,sx:D},(0,w.__)(`Create your first one:`,`elementor`)),S.createElement(C.Typography,{align:`center`,variant:`caption`,color:`secondary`,sx:{maxWidth:228}},(0,w.__)(`Right-click any div-block or flexbox on your canvas or structure and select "Create component"`,`elementor`)))))},EmptySearchResult=()=>{let{searchValue:e,clearSearch:t}=useSearch();return S.createElement(C.Stack,{color:`text.secondary`,pt:5,alignItems:`center`,gap:1,overflow:`hidden`,justifySelf:`center`},S.createElement(Ue.ComponentsIcon,null),S.createElement(C.Box,{sx:{width:`100%`}},S.createElement(C.Typography,{align:`center`,variant:`subtitle2`,color:`inherit`,sx:D},(0,w.__)(`Sorry, nothing matched`,`elementor`)),e&&S.createElement(C.Typography,{variant:`subtitle2`,color:`inherit`,sx:{...D,display:`flex`,width:`100%`,justifyContent:`center`}},S.createElement(`span`,null,`“`),S.createElement(`span`,{style:{maxWidth:`80%`,overflow:`hidden`,textOverflow:`ellipsis`}},e),S.createElement(`span`,null,`”.`))),S.createElement(C.Typography,{align:`center`,variant:`caption`,color:`inherit`},(0,w.__)(`Try something else.`,`elementor`)),S.createElement(C.Typography,{align:`center`,variant:`caption`,color:`inherit`},S.createElement(C.Link,{color:`secondary`,variant:`caption`,component:`button`,onClick:t},(0,w.__)(`Clear & try again`,`elementor`))))},useFilteredComponents=()=>{let{components:e,isLoading:t}=useComponents(),{searchValue:n}=useSearch();return{components:e.filter(e=>e.name.toLowerCase().includes(n.toLowerCase())),isLoading:t,searchValue:n}},rt=__toESM(globalThis.React),it=globalThis.wp.i18n,O=__toESM(globalThis.React),at=globalThis.elementorV2.icons,k=globalThis.elementorV2.ui,ot=globalThis.wp.i18n;function ComponentsUpgradeAlert({title:e,description:t,upgradeUrl:n}){return O.createElement(k.Box,{sx:{mt:`auto`,position:`sticky`,bottom:0}},O.createElement(k.Alert,{variant:`standard`,color:`promotion`,icon:O.createElement(at.CrownFilledIcon,{fontSize:`tiny`}),role:`status`,size:`small`,action:O.createElement(k.AlertAction,{variant:`contained`,color:`promotion`,href:n,target:`_blank`,rel:`noopener noreferrer`},(0,ot.__)(`Upgrade now`,`elementor`)),sx:{m:2,mt:1}},O.createElement(k.AlertTitle,null,e),O.createElement(k.Typography,{variant:`caption`},t)))}var st=`https://go.elementor.com/go-pro-components-exist-footer/`;function ComponentsProNotification(){return rt.createElement(ComponentsUpgradeAlert,{title:(0,it.__)(`Create new components`,`elementor`),description:(0,it.__)(`Creating new components requires an active Pro subscription.`,`elementor`),upgradeUrl:st})}var ct=__toESM(globalThis.React),lt=globalThis.wp.i18n,A=__toESM(globalThis.React),ut=globalThis.elementorV2.icons,dt=globalThis.elementorV2.ui,ft=globalThis.wp.i18n,pt=`/wp-admin/plugins.php`;function ComponentsUpdateAlert({title:e,description:t}){return A.createElement(dt.Box,{sx:{mt:`auto`,position:`sticky`,bottom:0}},A.createElement(dt.Alert,{variant:`standard`,color:`info`,icon:A.createElement(ut.InfoCircleFilledIcon,{fontSize:`tiny`}),role:`status`,size:`small`,action:A.createElement(dt.AlertAction,{variant:`contained`,color:`info`,href:pt,target:`_blank`,rel:`noopener noreferrer`},(0,ft.__)(`Upgrade Now`,`elementor`)),sx:{m:2,mt:1}},A.createElement(dt.AlertTitle,null,e),A.createElement(dt.Typography,{variant:`caption`},t)))}function ComponentsUpdateNotification(){return ct.createElement(ComponentsUpdateAlert,{title:(0,lt.__)(`Create new Components`,`elementor`),description:(0,lt.__)(`To create new components, update Elementor Pro to the latest version.`,`elementor`)})}var mt=`components-full-height-panel`,ht=`
2 -#elementor-panel-page-elements {
3 - display: flex;
4 - flex-direction: column;
5 - height: 100%;
6 -}
7 -
8 -#elementor-panel-elements {
9 - display: flex;
10 - flex-direction: column;
11 - flex: 1;
12 - min-height: 0;
13 -}
14 -
15 -#elementor-panel-elements-wrapper {
16 - display: flex;
17 - flex-direction: column;
18 - flex: 1;
19 - min-height: 0;
20 -}
21 -`,useFullHeightPanel=()=>{(0,ke.useLayoutEffect)(()=>{let e=document.getElementById(mt);return e||(e=document.createElement(`style`),e.id=mt,e.textContent=ht,document.head.appendChild(e)),()=>{document.getElementById(mt)?.remove()}},[])},ComponentsContent=()=>{let{components:e,isLoading:t}=useComponents(),n=!t&&e.length>0,r=!isProComponentsSupported()&&n,i=isProOutdatedForComponents();return useFullHeightPanel(),x.createElement(je.Stack,{justifyContent:`space-between`,sx:{flex:1,minHeight:0}},n&&x.createElement(ComponentSearch,null),x.createElement(ComponentsList,null),r&&(i?x.createElement(ComponentsUpdateNotification,null):x.createElement(ComponentsProNotification,null)))},Components=()=>x.createElement(Ae.ThemeProvider,null,x.createElement(SearchProvider,{localStorageKey:`elementor-components-search`},x.createElement(ComponentsContent,null))),j=__toESM(globalThis.React),M=globalThis.elementorV2.editorUi,gt=globalThis.elementorV2.icons,_t=globalThis.wp.i18n;function DetachInstanceConfirmationDialog({open:e,onClose:t,onConfirm:n}){return j.createElement(M.ConfirmationDialog,{open:e,onClose:t},j.createElement(M.ConfirmationDialog.Title,{icon:gt.AlertTriangleFilledIcon,iconColor:`secondary`},(0,_t.__)(`Detach from Component?`,`elementor`)),j.createElement(M.ConfirmationDialog.Content,null,j.createElement(M.ConfirmationDialog.ContentText,null,(0,_t.__)(`Detaching this instance will break its link to the Component. Changes to the Component will no longer apply. Continue?`,`elementor`))),j.createElement(M.ConfirmationDialog.Actions,{onClose:t,onConfirm:n,confirmLabel:(0,_t.__)(`Detach`,`elementor`),color:`primary`}))}function openDetachConfirmDialog(e){let handleConfirm=()=>{(0,M.closeDialog)(),e()};(0,M.openDialog)({component:j.createElement(DetachInstanceConfirmationDialog,{open:!0,onClose:M.closeDialog,onConfirm:handleConfirm})})}var N=__toESM(globalThis.React),vt=globalThis.elementorV2.editorUi,yt=globalThis.elementorV2.icons,P=globalThis.elementorV2.ui,bt=globalThis.wp.i18n,openEditModeDialog=e=>{(0,vt.openDialog)({component:N.createElement(EditModeDialog,{lockedBy:e})})},EditModeDialog=({lockedBy:e})=>{let t=(0,bt.__)(`%s is currently editing this document`,`elementor`).replace(`%s`,e);return N.createElement(N.Fragment,null,N.createElement(P.DialogHeader,{logo:!1},N.createElement(P.Box,{display:`flex`,alignItems:`center`,gap:1},N.createElement(P.Icon,{color:`secondary`},N.createElement(yt.InfoCircleFilledIcon,{fontSize:`medium`})),N.createElement(P.Typography,{variant:`subtitle1`},t))),N.createElement(P.DialogContent,null,N.createElement(P.Stack,{spacing:2,direction:`column`},N.createElement(P.Typography,{variant:`body2`},(0,bt.__)(`You can wait for them to finish or reach out to coordinate your changes together.`,`elementor`)),N.createElement(P.DialogActions,null,N.createElement(P.Button,{color:`secondary`,variant:`contained`,onClick:vt.closeDialog},(0,bt.__)(`Close`,`elementor`))))))},F=__toESM(globalThis.React),xt=globalThis.elementorV2.icons,St=globalThis.elementorV2.ui,I=globalThis.wp.i18n,Ct=__toESM(globalThis.React),wt=globalThis.React,Tt=(0,wt.createContext)(null);function ComponentInstanceProvider({children:e,...t}){return Ct.createElement(Tt.Provider,{value:t},e)}function useComponentInstanceContext(){let e=(0,wt.useContext)(Tt);if(!e)throw Error(`useComponentInstanceContext must be used within a ComponentInstanceProvider`);return e}var useComponentId=()=>useComponentInstanceContext().componentId,useComponentInstanceOverrides=()=>useComponentInstanceContext().overrides,useComponentOverridableProps=()=>useComponentInstanceContext().overridableProps,Et=__toESM(globalThis.React),Dt=globalThis.React,Ot=globalThis.elementorV2.editorNotifications,kt=globalThis.elementorV2.icons,At=globalThis.wp.i18n,jt=globalThis.elementorV2.editorCanvas,L=globalThis.elementorV2.editorElements,Mt=globalThis.elementorV2.editorV1Adapters,Nt=globalThis.elementorV2.store,Pt=globalThis.wp.i18n,Ft=globalThis.elementorV2.editorProps,It=globalThis.elementorV2.schema,Lt=globalThis.elementorV2.editorProps,R=globalThis.elementorV2.schema,z=(0,Lt.createPropUtils)(`override`,R.z.object({override_key:R.z.string(),override_value:R.z.unknown(),schema_source:R.z.object({type:R.z.literal(`component`),id:R.z.number()})})),Rt=globalThis.elementorV2.editorProps,B=globalThis.elementorV2.schema,V=(0,Rt.createPropUtils)(`overridable`,B.z.object({override_key:B.z.string(),origin_value:B.z.object({$$type:B.z.string(),value:B.z.unknown()}).nullable()})),H=(0,Ft.createPropUtils)(`overrides`,It.z.array(It.z.union([z.schema,V.schema])).optional().default([])),zt=globalThis.elementorV2.editorProps,Bt=globalThis.elementorV2.schema,U=(0,zt.createPropUtils)(`component-instance`,Bt.z.object({component_id:zt.numberPropTypeUtil.schema,overrides:Bt.z.optional(H.schema)})),Vt=globalThis.elementorV2.events,Ht=globalThis.elementorV2.store,Ut=`Components`,trackComponentEvent=({action:e,source:t,executedBy:n,...r})=>{if(t===`system`||n===`system`)return;let{dispatchEvent:i,config:a}=(0,Vt.getMixpanel)();if(!a?.names?.components?.[e])return;let o=a.names.components[e];i?.(o,{...r,executed_by:n??t,"Feature name":Ut})},onElementDrop=(e,t)=>{if(t?.model?.get(`widgetType`)!==`e-component`)return;let n=t.model.get(`editor_settings`),r=n?.title,i=n?.component_uid,a=t.id,o=he((0,Ht.__getState)()),s=i&&o.includes(i),{locations:c,secondaryLocations:l}=window.elementorCommon.eventsManager.config;trackComponentEvent({action:`instanceAdded`,executedBy:`user`,instance_id:a,component_uid:i,component_name:r,is_same_session_reuse:s,location:c.widgetPanel,secondary_location:l.componentsTab})},Wt=globalThis.elementorV2.editorElements,Gt=globalThis.elementorV2.editorElements,Kt=globalThis.elementorV2.editorProps;function regenerateLocalStyleIds(e){let t=e.styles;if(!t||Object.keys(t).length===0)return{styles:void 0,settings:void 0};let n={},r={};for(let[i,a]of Object.entries(t)){let t=generateLocalStyleId(e.id);n[t]={...a,id:t},r[i]=t}let i=e.settings;if(!i||Object.keys(i).length===0)return{styles:n,settings:void 0};let a={...i};for(let[e,t]of Object.entries(a))if(isClassesProp(t)&&t.value.length>0){let n=t.value.map(e=>r[e]??e);a[e]=Kt.classesPropTypeUtil.create(n)}return{styles:n,settings:a}}function isClassesProp(e){return Kt.classesPropTypeUtil.isValid(e)}function generateLocalStyleId(e){return`e-${e}-${(0,Gt.generateElementId)()}`}var qt=`e-component`;function isComponentInstance(e){return[e.widgetType,e.elType].includes(qt)}function resolveOverridableSettings(e,t){return isComponentInstance({widgetType:e.widgetType,elType:e.elType})?resolveOverridableSettingsForComponentInstance(e,t):resolveOverridableSettingsForElement(e,t)}function resolveOverridableSettingsForElement(e,t){let n=e.settings?{...e.settings}:{};for(let[r,i]of Object.entries(e.settings??{}))n[r]=resolvePropValue(i,t);return n}function resolveOverridableSettingsForComponentInstance(e,t){let n=e.settings?.component_instance;if(!U.isValid(n))return e.settings??{};let r=n.value.overrides?.value;if(!r?.length)return e.settings??{};let i=r.map(e=>resolvePropValue(e,t,{isOverridableOverride:!0}));return{...e.settings,component_instance:{...n,value:{...n.value,overrides:{...n.value.overrides,value:i}}}}}function resolvePropValue(e,t,n){let{isOverridableOverride:r=!1}=n??{};if(!V.isValid(e))return e;let i=e.value.override_key,a=t.get(i),o=V.extract(e)?.origin_value;return a?r?resolveOverridableOverride(a,o):z.extract(a)?.override_value??o:o}function resolveOverridableOverride(e,t){return!t||!z.isValid(t)?null:z.create({override_value:e.value.override_value,override_key:t.value.override_key,schema_source:t.value.schema_source})}function resolveDetachedInstance(e,t){let n=createOverrideMap(t);return resolveElementRecursive(structuredClone(e),n)}function resolveElementRecursive(e,t){if(e.id=(0,Wt.generateElementId)(),e.styles){let{styles:t,settings:n}=regenerateLocalStyleIds(e);e.styles=t,n&&(e.settings={...e.settings,...n})}return e.settings&&=resolveOverridableSettings(e,t),e.elements?.length&&(e.elements=e.elements.map(e=>resolveElementRecursive(e,t))),e}function createOverrideMap(e){let t=new Map;return e.forEach(e=>{let n=null;if(z.isValid(e)?n=e:V.isValid(e)&&(n=getOverridableOverride(e)),n){let e=n.value.override_key;t.set(e,n)}}),t}function getOverridableOverride(e){if(!V.isValid(e))return null;let t=V.extract(e)?.origin_value;return z.isValid(t)?t:null}var Jt=`elementor/components/detach-instance`,Yt=`elementor/components/undo-detach-instance`,Xt=`elementor/components/redo-detach-instance`;async function detachComponentInstance({instanceId:e,componentId:t,trackingInfo:n}){let r=(0,L.getContainer)(e);if(!r)throw Error(`Instance container with ID "${e}" not found.`);let i=await getComponentDocumentData(t);if(!i)throw Error(`Component with ID "${t}" not found.`);let a=i.elements?.[0];if(!a)throw Error(`Component with ID "${t}" has no root element.`);return(0,Mt.undoable)({do:()=>{let i=extractInstanceOverrides(r),o=resolveDetachedInstance(a,i),s=r.model.toJSON(),c=new Date().getTime();window.dispatchEvent(new CustomEvent(Jt,{detail:{detachedInstanceId:e,detachActionId:c}}));let l=(0,L.replaceElement)({currentElementId:e,newElement:o,withHistory:!1});(0,L.selectElement)(l.id);let u=selectComponent((0,Nt.__getState)(),t)?.uid;return trackComponentEvent({action:`detached`,executedBy:`user`,component_uid:u,instance_id:e,location:n.location,secondary_location:n.secondaryLocation,trigger:n.trigger}),{detachedElement:l,detachedInstanceElementData:o,originalInstanceModel:s,actionId:c}},undo:(e,{detachedElement:t,originalInstanceModel:n,actionId:r})=>{let i=(0,L.replaceElement)({currentElementId:t.id,newElement:n,withHistory:!1});return window.dispatchEvent(new CustomEvent(Yt,{detail:{restoredInstanceId:i.id,detachActionId:r}})),(0,jt.doAfterRender)([i.id],()=>{(0,L.selectElement)(i.id)}),i},redo:(e,t,n)=>{let{detachedInstanceElementData:r,actionId:i}=t,a=(0,L.replaceElement)({currentElementId:n.id,newElement:r,withHistory:!1});return window.dispatchEvent(new CustomEvent(Xt,{detail:{detachedInstanceId:a.id,detachActionId:i}})),(0,L.selectElement)(a.id),{...t,detachedElement:a}}},{title:(0,Pt.__)(`Detach from Component`,`elementor`),subtitle:(0,Pt.__)(`Instance detached`,`elementor`)})()}function extractInstanceOverrides(e){let t=e.model.toJSON().settings,n=U.extract(t?.component_instance);return H.extract(n?.overrides)??[]}var W=__toESM(globalThis.React),Zt=globalThis.elementorV2.editorPanels,Qt=globalThis.elementorV2.editorUi,$t=globalThis.elementorV2.icons,en=globalThis.elementorV2.ui;function InstancePanelHeader({componentName:e,actions:t}){return W.createElement(Zt.PanelHeader,{sx:{justifyContent:`start`,px:2}},W.createElement(en.Stack,{direction:`row`,alignItems:`center`,flexGrow:1,gap:1,maxWidth:`100%`},W.createElement($t.ComponentsIcon,{fontSize:`small`,sx:{color:`text.tertiary`}}),W.createElement(Qt.EllipsisWithTooltip,{title:e,as:Zt.PanelHeaderTitle,sx:{flexGrow:1}}),t))}function EditComponentAction({label:e,onClick:t,disabled:n=!1,icon:r}){return W.createElement(en.Tooltip,{title:e},W.createElement(en.IconButton,{size:`tiny`,onClick:t,"aria-label":e,disabled:n},W.createElement(r,{fontSize:`tiny`})))}var DetachAction=({componentInstanceId:e,componentId:t})=>{let[n,r]=(0,Dt.useState)(!1),handleDetachConfirm=async()=>{r(!1);try{await detachComponentInstance({instanceId:e,componentId:t,trackingInfo:getDetachTrackingInfo()})}catch{(0,Ot.notify)({type:`error`,message:(0,At.__)(`Failed to detach component instance.`,`elementor`),id:`detach-component-instance-failed`})}},handleDetachCancel=()=>{r(!1)},handleDetachClick=()=>{r(!0)},i=(0,At.__)(`Detach from Component`,`elementor`);return Et.createElement(Et.Fragment,null,Et.createElement(EditComponentAction,{label:i,icon:kt.DetachIcon,onClick:handleDetachClick}),Et.createElement(DetachInstanceConfirmationDialog,{open:n,onClose:handleDetachCancel,onConfirm:handleDetachConfirm}))};function getDetachTrackingInfo(){let e=window?.elementorCommon?.eventsManager?.config;return e?{location:e.locations.components.instanceEditingPanel,trigger:e.triggers.click}:{location:``,trigger:``}}var G=__toESM(globalThis.React),tn=globalThis.elementorV2.icons,nn=globalThis.elementorV2.ui,rn=globalThis.wp.i18n,EmptyState2=({onEditComponent:e})=>{let{canEdit:t}=useComponentsPermissions(),n=t?(0,rn.__)(`Edit the component to add properties, manage them or update the design across all instances.`,`elementor`):(0,rn.__)(`With your current role, you cannot edit this component. Contact an administrator to add properties.`,`elementor`);return G.createElement(nn.Stack,{alignItems:`center`,justifyContent:`start`,height:`100%`,color:`text.secondary`,sx:{p:2.5,pt:8,pb:5.5,mt:1},gap:1.5},G.createElement(tn.ComponentPropListIcon,{fontSize:`large`}),G.createElement(nn.Typography,{align:`center`,variant:`subtitle2`},(0,rn.__)(`No properties yet`,`elementor`)),G.createElement(nn.Typography,{align:`center`,variant:`caption`,maxWidth:`170px`},n),t&&G.createElement(nn.Button,{variant:`outlined`,color:`secondary`,size:`small`,sx:{mt:1},disabled:!e,onClick:e},G.createElement(tn.PencilIcon,{fontSize:`small`}),(0,rn.__)(`Edit component`,`elementor`)))},K=__toESM(globalThis.React),an=globalThis.elementorV2.editorControls,on=globalThis.elementorV2.editorEditingPanel,sn=globalThis.elementorV2.editorPanels,cn=globalThis.elementorV2.ui,q=__toESM(globalThis.React),ln=globalThis.React,un=globalThis.elementorV2.editorEditingPanel,dn=globalThis.elementorV2.editorUi,J=globalThis.elementorV2.ui,Y=__toESM(globalThis.React),fn=globalThis.elementorV2.editorControls,X=globalThis.elementorV2.editorEditingPanel,pn=globalThis.elementorV2.ui,mn=globalThis.elementorV2.editorElements;function useControlsByWidgetType(e){let t=(0,mn.getElementType)(e);return t?getControlsByBind(iterateControls(t.controls)):{}}function iterateControls(e){return e.map(e=>e.type===`control`&&`bind`in e.value?e:e.type===`section`?iterateControls(e.value.items):null).filter(Boolean).flat()}function getControlsByBind(e){return e.reduce((e,t)=>({...e,[t.value.bind]:t}),{})}var hn=__toESM(globalThis.React),gn=globalThis.React,_n=(0,gn.createContext)(null);function OverridablePropProvider({children:e,...t}){return hn.createElement(_n.Provider,{value:t},e)}var useOverridablePropValue=()=>(0,gn.useContext)(_n)?.value,useComponentInstanceElement=()=>(0,gn.useContext)(_n)?.componentInstanceElement,resolveOverridePropValue=e=>V.isValid(e)?getOverridableValue(e):z.isValid(e)?getOverrideValue(e):e;function getOverridableValue(e){let t=V.extract(e);return t?z.isValid(t.origin_value)?getOverrideValue(t.origin_value):t.origin_value:null}function getOverrideValue(e){let t=z.extract(e);return t?t.override_value:null}var Z=globalThis.elementorV2.store;function safeDispatch(){return(0,Z.__getStore)()?.dispatch}var vn={add(e){(0,Z.__dispatch)(b.actions.add(e))},load(e){(0,Z.__dispatch)(b.actions.load(e))},addUnpublished(e){(0,Z.__dispatch)(b.actions.addUnpublished(e))},removeUnpublished(e){(0,Z.__dispatch)(b.actions.removeUnpublished(e))},resetUnpublished(){(0,Z.__dispatch)(b.actions.resetUnpublished())},addCreatedThisSession(e){(0,Z.__dispatch)(b.actions.addCreatedThisSession(e))},removeCreatedThisSession(e){(0,Z.__dispatch)(b.actions.removeCreatedThisSession(e))},archive(e){(0,Z.__dispatch)(b.actions.archive(e))},setCurrentComponentId(e){safeDispatch()?.(b.actions.setCurrentComponentId(e))},setPath(e){safeDispatch()?.(b.actions.setPath(e))},setOverridableProps(e,t){(0,Z.__dispatch)(b.actions.setOverridableProps({componentId:e,overridableProps:t}))},rename(e,t){(0,Z.__dispatch)(b.actions.rename({componentUid:e,name:t}))},cleanUpdatedComponentNames(){(0,Z.__dispatch)(b.actions.cleanUpdatedComponentNames())},updateComponentSanitizedAttribute(e,t){(0,Z.__dispatch)(b.actions.updateComponentSanitizedAttribute({componentId:e,attribute:t}))},resetSanitizedComponents(){(0,Z.__dispatch)(b.actions.resetSanitizedComponents())}},Q=globalThis.elementorV2.store;function safeGetState(){return(0,Q.__getStore)()?.getState()}var yn={getOverridableProps(e){return _e((0,Q.__getState)(),e)},getCurrentComponent(){return xe((0,Q.__getState)())},getCurrentComponentId(){let e=safeGetState();return e?be(e):null},getUnpublishedComponents(){return pe((0,Q.__getState)())},getUpdatedComponentNames(){return Se((0,Q.__getState)())},getArchivedThisSession(){return selectArchivedThisSession((0,Q.__getState)())},getCreatedThisSession(){return he((0,Q.__getState)())},getComponents(){return fe((0,Q.__getState)())},getComponentByUid(e){return selectComponentByUid((0,Q.__getState)(),e)}};function updateOverridableProp(e,t,n){let r=yn.getOverridableProps(e);if(!r)return;let i=r.props[t.override_key];if(!i)return;let a=resolveOverridePropValue(t.origin_value),o=n?{originValue:a,originPropFields:n}:{originValue:a},s={...r,props:{...r.props,[i.overrideKey]:{...i,...o}}};vn.setOverridableProps(e,s)}var bn=globalThis.elementorV2.editorElements,getPropTypeForComponentOverride=e=>{if(e.originPropFields)return getPropType(e.originPropFields);let{widgetType:t,propKey:n}=e;return getPropType({widgetType:t,propKey:n})};function getPropType({widgetType:e,propKey:t}){return(0,bn.getWidgetsCache)()?.[e]?.atomic_props_schema?.[t]}function getMatchingOverride(e,t){return e?.find(e=>{let n=V.extract(e);return n?z.extract(n.origin_value)?.override_key===t:e.value.override_key===t})??null}var xn=__toESM(globalThis.React),Sn=globalThis.elementorV2.editorControls,Cn=globalThis.elementorV2.ui,ControlLabel=({children:e,...t})=>xn.createElement(Cn.Stack,{direction:`row`,alignItems:`center`,justifyItems:`start`,gap:.25},xn.createElement(Sn.ControlFormLabel,{...t},e),xn.createElement(Sn.ControlAdornments,null)),wn=globalThis.elementorV2.utils,Tn=(0,wn.createError)({code:`override_control_inner_element_not_found`,message:`Component inner element not found for override control. The element may have been deleted without updating the overridable props, or the component has not finished rendering yet.`}),En=(0,wn.createError)({code:`override_control_prop_type_not_found`,message:`Prop type not found for override control.`});function correctExposedEmptyOverride(e,t){let n=V.extract(e);return n&&t===null?V.create({override_key:n.override_key,origin_value:null}):e}function applyOverridesToSettings(e,t){let n={};for(let[r,i]of Object.entries(e)){let e=V.extract(i);if(!e){n[r]=i;continue}let a=t[e.override_key];if(!a){n[r]=i;continue}if(a.outermostKey&&a.outermostKey!==e.override_key){let t=e.origin_value;n[r]=V.create({override_key:a.outermostKey,origin_value:a.value??t})}else n[r]=a.value??i}return n}function unwrapOverridableSettings(e){let t={};for(let[n,r]of Object.entries(e)){let e=V.extract(r);if(!e){t[n]=r;continue}t[n]=e.origin_value}return t}var Dn=globalThis.React,On=globalThis.elementorV2.editorEditingPanel;function useOverrideControlDependencies({existingOverride:e,resolvedElementSettings:t,elementId:n,elementType:r,propKey:i}){return(0,Dn.useMemo)(()=>{let{isDisabled:a,isHidden:o}=(0,On.extractDependencyEffect)(i,r.propsSchema,t),s=e?resolveOverridePropValue(e):null,c={...t,[i]:s},l=(0,On.getElementSettingsWithDefaults)(r.propsSchema,c),u=(0,On.extractOrderedDependencies)(r.dependenciesPerTargetMapping??{});return{overrideValue:(0,On.getUpdatedValues)({[i]:s},u,r.propsSchema,l,n)[i],isDisabled:a,isHidden:o}},[e,t,i,r.propsSchema,r.dependenciesPerTargetMapping,n])}var kn=globalThis.React,An=globalThis.elementorV2.editorEditingPanel,jn=globalThis.elementorV2.editorElements,Mn=globalThis.elementorV2.editorElements;function getContainerByOriginId(e,t){if(!t)return(0,Mn.getContainer)(e);let n=(0,Mn.getContainer)(t);return n?window.elementor?.getContainerByKeyValue?.({key:`originId`,value:e,parent:n.view})??null:null}var Nn=globalThis.elementorV2.store;function getOverridableProp({componentId:e,overrideKey:t}){let n=_e((0,Nn.__getState)(),e);if(n)return n.props[t]}function resolveOverridesChain({outerOverridableProp:e,outerInstanceId:t,overridesMapping:n={}}){if(!e.originPropFields){let r=getContainerByOriginId(e.elementId,t);if(!r)throw Error(`Inner element not found inside instance. elementId: ${e.elementId}, instanceId: ${t}`);return{isChainBroken:!1,innerElement:r,overridesMapping:n}}let r=getContainerByOriginId(e.elementId,t);if(!r)return{isChainBroken:!0};let{componentId:i,overrides:a}=extractComponentInstanceSettings(r);if(!i)throw Error(`Component ID not found for current instance. currentInstanceId: ${r.id}. outerInstanceId: ${t}`);let o=buildOverridesMap(n,a??[]),s=findOverrideByOuterKey(a,e.overrideKey),c=z.extract(s)?.override_key;if(!s||!c)return{isChainBroken:!0};let l=getOverridableProp({componentId:i,overrideKey:c});if(!l)throw Error(`Overridable prop not found. componentId: ${i}, overrideKey: ${c}`);return resolveOverridesChain({outerOverridableProp:l,outerInstanceId:r.id,overridesMapping:o})}function buildOverridesMap(e,t){let n={...e};for(let r of t){let t=V.extract(r);if(t){let r=z.extract(t.origin_value);if(!r)continue;let i=t.override_key,a=r.override_key,o=r.override_value,s=e[i];if(s){n[a]={value:s.value??o,outermostKey:s.outermostKey??i};continue}n[a]={value:o,outermostKey:i}}else{let e=z.extract(r);if(!e)continue;let t=e.override_key;n[t]={value:e.override_value}}}return n}function extractComponentInstanceSettings(e){let t=e.settings?.get(`component_instance`),n=U.extract(t);return{componentId:n?.component_id?.value,overrides:H.extract(n?.overrides)}}function findOverrideByOuterKey(e,t){if(!e)return null;let n=e.find(e=>{let n=V.extract(e);return n?n.override_key===t:!1}),r=V.extract(n)?.origin_value;return!r||!z.isValid(r)?null:r}function useResolvedInnerElement(e){let t=(0,An.useElement)(),n=useComponentId(),r=useComponentInstanceOverrides(),{elementId:i,widgetType:a,elType:o}=e.originPropFields??e,s=o===`widget`?a:o,c=(0,jn.getElementType)(s);if(!c)throw Error(`Element type not found for ${s}`);let{elementId:l,overridesMapping:u}=(0,kn.useMemo)(()=>{let r=resolveOverridesChain({outerOverridableProp:e,outerInstanceId:t.element.id});if(r.isChainBroken)throw new Tn({context:{componentId:n,elementId:i}});return{elementId:r.innerElement.id,overridesMapping:r.overridesMapping}},[e,t.element.id,n,i]),d=(0,kn.useMemo)(()=>applyOverridesToSettings((0,jn.getElementSettings)(l,Object.keys(c?.propsSchema??{})),u),[l,c?.propsSchema,u]);return{elementId:l,elementType:c,resolvedOriginValues:d,resolvedElementSettings:(0,kn.useMemo)(()=>unwrapOverridableSettings(applyOverridesToSettings(d,formatOverridesToApply(r))),[d,r])}}function formatOverridesToApply(e){if(!e)return{};let t={};for(let n of e){let e=V.extract(n),r=n;e&&(r=e.origin_value);let i=z.extract(r);i&&(t[i.override_key]={value:i.override_value})}return t}function OverridePropControl({overrideKey:e}){let t=useComponentOverridableProps().props[e];return t?Y.createElement(X.SettingsField,{bind:`component_instance`,propDisplayName:t.label},Y.createElement(OverrideControl,{overridableProp:t})):null}function OverrideControl({overridableProp:e}){let t=(0,X.useElement)(),{value:n,setValue:r}=(0,fn.useBoundProp)(U),i=useCurrentComponentId(),a=useComponentId(),o=useComponentOverridableProps(),s=useComponentInstanceOverrides(),c=useControlsByWidgetType(e.originPropFields?.widgetType??e.widgetType),l=(0,fn.getControlReplacements)(),u=getMatchingOverride(s,e.overrideKey),{propKey:d}=e.originPropFields??e,ee=getPropTypeForComponentOverride(e);if(!ee)throw new En({context:{overridableProp:e}});let{elementId:f,elementType:p,resolvedElementSettings:m,resolvedOriginValues:te}=useResolvedInnerElement(e),{overrideValue:ne,isDisabled:re,isHidden:ie}=useOverrideControlDependencies({existingOverride:u,resolvedElementSettings:m,elementType:p,elementId:f,propKey:d});if(ie)return null;let{propValue:h,baseValue:ae}=resolveOverrideValues(ne,te,d),g={[e.overrideKey]:h},oe={[e.overrideKey]:ae},{control:se,controlProps:ce,layout:_}=getControlParams(c,e.originPropFields??e,e.label),v=(0,X.createTopLevelObjectType)({schema:{[e.overrideKey]:ee}}),setValue=(t,c,l)=>{let d=getTempNewValueForDynamicProp(ee,h,t[e.overrideKey]);d=correctExposedEmptyOverride(d,u);let f=createOverrideValue({matchingOverride:u,overrideKey:e.overrideKey,overrideValue:d,componentId:a}),p=(s??[]).filter(e=>isValidOverride(o,e)).map(e=>e===u?f:e);u||(p=[...p,f]),r({...n,overrides:H.create(p)},c,l);let m=V.extract(f);if(m&&i){if(e.originPropFields){updateOverridableProp(i,m,e.originPropFields);return}let t={elType:e.elType,widgetType:e.widgetType,propKey:e.propKey,elementId:e.elementId};updateOverridableProp(i,m,t)}};return Y.createElement(OverridablePropProvider,{value:V.extract(u)??void 0,componentInstanceElement:t},Y.createElement(X.ElementProvider,{element:{id:f,type:p.key},elementType:p,settings:m},Y.createElement(fn.PropProvider,{propType:v,value:g,setValue,baseValue:oe,isDisabled:re},Y.createElement(fn.PropKeyProvider,{bind:e.overrideKey},Y.createElement(fn.ControlReplacementsProvider,{replacements:l},Y.createElement(pn.Box,{mb:1.5},Y.createElement(X.ControlTypeContainer,{layout:_},_!==`custom`&&Y.createElement(ControlLabel,null,e.label),Y.createElement(OriginalControl,{control:se,controlProps:ce}))))))))}function resolveOverrideValues(e,t,n){let r=unwrapOverridableSettings(t)[n]??null,i=(0,X.isDynamicPropValue)(r);return{propValue:i&&!e?r:e,baseValue:e||i?null:r}}function getTempNewValueForDynamicProp(e,t,n){return n===null&&(0,X.isDynamicPropValue)(t)?e.default??null:n}function createOverrideValue({matchingOverride:e,overrideKey:t,overrideValue:n,componentId:r}){let i=V.extract(e),a=V.extract(n)??i;if(a){let e=z.create({override_key:t,override_value:resolveOverridePropValue(n),schema_source:{type:`component`,id:r}});return V.create({override_key:a.override_key,origin_value:e})}return z.create({override_key:t,override_value:n,schema_source:{type:`component`,id:r}})}function getControlParams(e,t,n){let r=e[t.propKey],{value:i}=r,a=getControlLayout(r),o=populateChildControlProps(i.props);return a===`custom`&&(o.label=n??i.label),{control:r,controlProps:o,layout:a}}function OriginalControl({control:e,controlProps:t}){let{value:n}=e;return Y.createElement(X.BaseControl,{type:n.type,props:t})}function getControlLayout(e){return e.value.meta?.layout||X.controlsRegistry.getLayout(e.value.type)}function populateChildControlProps(e){if(e.childControlType){let t=X.controlsRegistry.get(e.childControlType),n=X.controlsRegistry.getPropTypeUtil(e.childControlType);e={...e,childControlConfig:{component:t,props:e.childControlProps||{},propTypeUtil:n}}}return e}function isValidOverride(e,t){let n=V.isValid(t)?t.value.origin_value?.value.override_key:t.value.override_key;return!!e.props[n]}function OverridePropsGroup({group:e}){let[t,n]=(0,un.useStateByElement)(e.id,!0),handleClick=()=>{n(!t)},r=(0,ln.useId)(),i=`label-${r}`,a=`content-${r}`,o=e.label;return q.createElement(J.Box,{"aria-label":`${o} section`},q.createElement(J.ListItemButton,{id:i,"aria-controls":a,"aria-label":`${o} section`,onClick:handleClick,p:0,sx:{"&:hover":{backgroundColor:`transparent`}}},q.createElement(J.Stack,{direction:`row`,alignItems:`center`,justifyItems:`start`,flexGrow:1,gap:.5},q.createElement(J.ListItemText,{secondary:o,secondaryTypographyProps:{color:`text.primary`,variant:`caption`,fontWeight:`bold`},sx:{flexGrow:0,flexShrink:1,marginInlineEnd:1}})),q.createElement(dn.CollapseIcon,{open:t,color:`secondary`,fontSize:`tiny`})),q.createElement(J.Collapse,{id:a,"aria-labelledby":i,in:t,timeout:`auto`},q.createElement(J.Stack,{direction:`column`,gap:1,p:2},e.props.map(e=>q.createElement(OverridePropControl,{key:e,overrideKey:e})))))}function InstancePanelBody({groups:e,isEmpty:t,emptyState:n,componentInstanceId:r}){return K.createElement(sn.PanelBody,null,K.createElement(an.ControlAdornmentsProvider,{items:(0,on.getFieldIndicators)(`settings`)},t?n:K.createElement(cn.Stack,{direction:`column`,alignItems:`stretch`},e.map(e=>K.createElement(K.Fragment,{key:e.id+r},K.createElement(OverridePropsGroup,{group:e}),K.createElement(cn.Divider,null))))))}var Pn=globalThis.elementorV2.editorEditingPanel;function filterValidOverridableProps(e,t){let n={};for(let[r,i]of Object.entries(e.props))isExposedPropValid(i,t)&&(n[r]=i);let r=new Set(Object.keys(n));return{props:n,groups:{items:Object.fromEntries(Object.entries(e.groups.items).map(([e,t])=>[e,{...t,props:t.props.filter(e=>r.has(e))}])),order:e.groups.order}}}function isExposedPropValid(e,t){let{isChainBroken:n}=resolveOverridesChain({outerOverridableProp:e,outerInstanceId:t});return!n}function useSanitizeOverridableProps(e,t){let n=useOverridableProps(e),r=useIsSanitizedComponent(e,`overridableProps`);if(!(!n||!e))return r?n:filterValidOverridableProps(n,t)}function useInstancePanelData(){let{element:e,settings:t}=useComponentInstanceSettings(),n=t?.component_id?.value,r=t?.overrides?.value,i=useComponent(n??null),a=e?.id,o=useSanitizeOverridableProps(n??null,a);if(!n||!o||!i||!a)return null;let isNonEmptyGroup=e=>e!==null&&e.props.length>0,s=o.groups.order.map(e=>o.groups.items[e]??null).filter(isNonEmptyGroup);return{componentId:n,component:i,overrides:r,overridableProps:o,groups:s,isEmpty:s.length===0||Object.keys(o.props).length===0,componentInstanceId:a}}function useComponentInstanceSettings(){let{element:e,settings:t}=(0,Pn.useElement)();return{element:e,settings:U.extract(t.component_instance)}}var Fn=`https://go.elementor.com/go-pro-components-Instance-edit-footer/`;function InstanceEditingPanel(){let{canEdit:e}=useComponentsPermissions(),t=useInstancePanelData();if(!t)return null;let{componentId:n,component:r,overrides:i,overridableProps:a,groups:o,isEmpty:s,componentInstanceId:c}=t,l=(0,I.__)(`Edit %s`,`elementor`).replace(`%s`,r.name),u=F.createElement(St.Stack,{direction:`row`,gap:.5},F.createElement(DetachAction,{componentInstanceId:c,componentId:n}),e&&F.createElement(EditComponentAction,{disabled:!0,label:l,icon:xt.PencilIcon}));return F.createElement(St.Box,{"data-testid":`instance-editing-panel`,sx:{display:`flex`,flexDirection:`column`,height:`100%`}},F.createElement(ComponentInstanceProvider,{componentId:n,overrides:i,overridableProps:a},F.createElement(InstancePanelHeader,{componentName:r.name,actions:u}),F.createElement(InstancePanelBody,{groups:o,isEmpty:s,emptyState:F.createElement(EmptyState2,null),componentInstanceId:c})),!isProComponentsSupported()&&(isProOutdatedForComponents()?F.createElement(ComponentsUpdateAlert,{title:(0,I.__)(`Edit Component`,`elementor`),description:(0,I.__)(`To edit components, update Elementor Pro to the latest version.`,`elementor`)}):F.createElement(ComponentsUpgradeAlert,{title:(0,I.__)(`Edit components`,`elementor`),description:(0,I.__)(`Editing components requires an active Pro subscription.`,`elementor`),upgradeUrl:Fn})))}var In=__toESM(globalThis.React),Ln=globalThis.React,Rn=globalThis.elementorV2.editorTemplates,zn=globalThis.elementorV2.editorDocuments,Bn=globalThis.elementorV2.editorEmbeddedDocumentsManager;async function getComponentDocuments({elements:e,cache:t=new Map,isRecursive:n=!0}){return getDocumentsMap(await getComponentIds(e,t,n),t)}async function getComponentIds(e,t,n){let r=await Promise.all(e.filter(Boolean).map(async({widgetType:e,elType:r,elements:i,settings:a})=>{let o=[];if(isComponentInstance({widgetType:e,elType:r})){let e=a?.component_instance?.value?.component_id.value;if(!e)return o;o.push(e),t.has(e)||t.set(e,getComponentDocumentData(e)),n&&(i=(await t.get(e))?.elements)}if(i?.length){let e=await getComponentIds(i,t,n);o.push(...e)}return o}));return[...new Set(r.flat())]}async function getDocumentsMap(e,t){let n=await Promise.all(e.map(async e=>{let n=await t.get(e);return n?[e,n]:null}));return new Map(n.filter(e=>e!==null))}var Vn=globalThis.elementorV2.store;async function loadComponentsOverridableProps(e,{force:t=!1}={}){let n=t?e:e.filter(e=>!ve((0,Vn.__getState)(),e));if(!n.length)return;let{data:r}=await y.getOverridableProps(n);(0,Vn.__dispatch)(b.actions.loadOverridableProps(r))}async function loadComponentsAssets(e){if(!e.length)return;let t=await getComponentDocuments({elements:e,isRecursive:!1});updateDocumentState(t),t.forEach((e,t)=>{Bn.embeddedDocumentsManager.setDocument(t,e)}),await loadComponentsOverridableProps([...t.keys()])}function updateDocumentState(e){[...e.values()].some(zn.isDocumentDirty)&&(0,zn.setDocumentModifiedStatus)(!0)}var LoadTemplateComponents=()=>(0,Rn.isHandlingTemplateStyles)()?In.createElement(LoadTemplateComponentsInternal,null):null;function LoadTemplateComponentsInternal(){let e=(0,Rn.useLoadedTemplates)();return(0,Ln.useEffect)(()=>{loadComponentsAssets(e.flatMap(e=>e??[]))},[e]),null}var Hn=globalThis.elementorV2.editorCanvas,Un=globalThis.elementorV2.editorDocuments,Wn=globalThis.elementorV2.editorNotifications,Gn=globalThis.elementorV2.store,Kn=globalThis.elementorV2.utils,$=globalThis.wp.i18n,qn=globalThis.elementorV2.utils,Jn=7;function formatComponentElementsId(e,t){return e.map(e=>{let n=[...t,e.id],r=(0,qn.hashString)(n.join(`_`),Jn);return{...e,id:r,originId:e.id,elements:e.elements?formatComponentElementsId(e.elements,n):void 0}})}var Yn=globalThis.elementorV2.editorElements,Xn=globalThis.elementorV2.utils,Zn=7;function overridesRecordToMapping(e){let t={};for(let[n,r]of Object.entries(e))t[n]={value:r};return t}function getElementConfig(e){let t=e.elType===`widget`?e.widgetType:e.elType;if(t)return(0,Yn.getWidgetsCache)()?.[t]}function deriveIds(e,t){let n=(0,Xn.hashString)(t,Zn);return{...e,id:n,elements:(e.elements??[]).map((e,t)=>deriveIds(e,`${n}_${t}`))}}function reconcileElementTree(e,t){let n=getElementConfig(e),r=unwrapOverridableSettings(applyOverridesToSettings(e.settings??{},t)),i=e.elements??[],a=new Set(i.map(e=>e.id)),o={elements:[...i],settings:r};n?.children_dependencies?.length&&(0,Yn.reconcileInitialChildren)({elementId:e.id,elementConfig:n,attributes:o});let s=(o.elements??[]).map(t=>a.has(t.id)?t:deriveIds(t,`${e.id}_${t.elType}`)).map(e=>reconcileElementTree(e,t));return{...e,elements:s}}function reconcileComponentInstanceElements(e,t={}){let n=overridesRecordToMapping(t);return e.map(e=>reconcileElementTree(e,n))}var Qn=globalThis.elementorV2.editorDocuments,$n=globalThis.elementorV2.editorElements,er=globalThis.elementorV2.editorV1Adapters;async function switchToComponent(e,t,n){let r=getSelector(n,t);(0,Qn.invalidateDocumentData)(e),await(0,Qn.switchToDocument)(e,{selector:r,mode:`autosave`,setAsInitial:!1,shouldScroll:!1}),await loadComponentsOverridableProps([e],{force:!0});let i=(0,$n.getCurrentDocumentContainer)()?.children?.[0];i&&((0,$n.selectElement)(i.id),expandNavigator())}async function expandNavigator(){await(0,er.__privateRunCommand)(`navigator/expand-all`)}function getSelector(e,t){if(e)return buildUniqueSelector(e);if(t)return`[data-id="${t}"]`}function buildUniqueSelector(e){let t=[],n=e.closest(`[data-id]`);for(;n;){let e=n.dataset.id;n.hasAttribute(`data-elementor-id`)&&t.unshift(`[data-id="${e}"]`),n=n.parentElement?.closest(`[data-id]`)??null}if(t.length===0){let t=e.closest(`[data-id]`);if(t?.dataset?.id)return`[data-id="${t.dataset.id}"]`}return t.join(` `)}var tr=`e-component`,nr=`https://go.elementor.com/go-pro-components-Instance-edit-canvas-double-click/`,rr=`https://go.elementor.com/go-pro-components-Instance-edit-context-menu/`,ir=`/wp-admin/plugins.php`,ar=`component-edit-upgrade`,or=`component-edit-update`,sr=2e3;function notifyComponentEditUpgrade(){(0,Wn.notify)({type:`promotion`,id:ar,message:(0,$.__)(`Editing components requires an active Pro subscription.`,`elementor`),autoHideDuration:sr,additionalActionProps:[{size:`small`,variant:`contained`,color:`promotion`,href:nr,target:`_blank`,children:(0,$.__)(`Upgrade Now`,`elementor`)}]})}function notifyComponentEditUpdate(){(0,Wn.notify)({type:`info`,id:or,message:(0,$.__)(`To edit components, update Elementor Pro to the latest version.`,`elementor`),additionalActionProps:[{size:`small`,variant:`contained`,color:`info`,href:ir,target:`_blank`,children:(0,$.__)(`Update Now`,`elementor`)}]})}var updateGroups=(e,t)=>{let n=new Map(Object.entries(t.disable??{})),r=new Map(Object.entries(t.add??{}));return e.map(e=>{let t=n.get(e.name)??[],i=r.get(e.name),a=e.actions.map(e=>t.includes(e.name)?{...e,isEnabled:()=>!1}:e);return i&&a.splice(i.index,0,...i.actions),{...e,actions:a}})};function createComponentType(e){let t=window.elementor.modules.elements.types.Widget,n=createComponentView({...e});return class extends t{getType(){return e.type}getView(){return n}getModel(){return createComponentModel()}}}function createComponentView(e){let t=window;return class extends (0,Hn.createTemplatedElementView)(e){eventsManagerConfig=t.elementorCommon.eventsManager.config;#e;isComponentCurrentlyEdited(){return(0,Un.getCurrentDocument)()?.id===this.getComponentId()}getRenderContext(){let e=this.getNamespaceKey(),t=this._parent?.getRenderContext?.(),n=t?.[e];if(!this.#e)return t;let r=this.#e.overrides??{},i=n?.overrides??{};return{...t,[e]:{overrides:{...i,...r}}}}getResolverRenderContext(){let e=this.getNamespaceKey(),t=this.getRenderContext()?.[e];return t?{...this._parent?.getResolverRenderContext?.(),...t}:this._parent?.getResolverRenderContext?.()}afterSettingsResolve(e){let n=e.component_instance;if(n){this.#e={overrides:n.overrides??{}};let r=this.model.get(`id`),i=formatComponentElementsId(reconcileComponentInstanceElements(n.elements??[],n.overrides??{}),[r]);this.collection=t.elementor.createBackboneElementsCollection(i),this.collection.models.forEach(setInactiveRecursively),e.component_instance=`<template data-children-placeholder></template>`}return e}getDomElement(){return this.children.findByIndex(0)?.getDomElement()??this.$el}attachBuffer(e,t){let n=e.$el.find(`[data-children-placeholder]`).get(0);if(!n){super.attachBuffer(e,t);return}n.replaceWith(t)}getComponentId(){return(this.options?.model?.get(`settings`)?.get(`component_instance`)?.value).component_id.value}getContextMenuGroups(){let e=super.getContextMenuGroups().filter(e=>e.name!==`save`);return this.getComponentId()?updateGroups(e,this._getContextMenuConfig()):e}_getContextMenuConfig(){let e=isUserAdministrator(),t=(0,Kn.hasProInstalled)(),n=isProOutdatedForComponents(),r=!t&&!n,i=`<a href="${rr}" target="_blank" onclick="event.stopPropagation()" class="elementor-context-menu-list__item__shortcut__promotion-badge"><i class="eicon-upgrade-crown"></i></a>`,a={name:`edit component`,icon:`eicon-edit`,title:()=>(0,$.__)(`Edit Component`,`elementor`),...r&&{shortcut:i,hasShortcutAction:!0},isEnabled:()=>isProComponentsSupported()||n,callback:(e,t)=>this.editComponent(t)},o={name:`detach instance`,icon:`eicon-chain-broken`,title:()=>(0,$.__)(`Detach from Component`,`elementor`),isEnabled:()=>!0,callback:(e,t)=>this.detachInstance(t)};return{add:{general:{index:1,actions:e?[a,o]:[o]}},disable:{clipboard:[`pasteStyle`,`resetStyle`]}}}async switchDocument(){let{isAllowedToSwitchDocument:t,lockedBy:n}=await y.getComponentLockStatus(this.getComponentId());t?switchToComponent(this.getComponentId(),this.model.get(`id`),this.el):e.showLockedByModal?.(n||``)}editComponent({trigger:e,location:t,secondaryLocation:n}){if(isProOutdatedForComponents()){notifyComponentEditUpdate();return}if(!isProComponentsSupported()||this.isComponentCurrentlyEdited())return;this.switchDocument();let r=this.model.get(`editor_settings`);trackComponentEvent({action:`edited`,executedBy:`user`,component_uid:r?.component_uid,component_name:r?.title,location:t,secondary_location:n,trigger:e})}detachInstance({trigger:t,location:n,secondaryLocation:r}){let i=this.getComponentId(),a=this.model.get(`id`);if(!i||!a)return;let handleConfirm=async()=>{try{await detachComponentInstance({instanceId:a,componentId:i,trackingInfo:{location:n,secondaryLocation:r,trigger:t}})}catch{(0,Wn.notify)({type:`error`,message:(0,$.__)(`Failed to detach component instance.`,`elementor`),id:`detach-component-instance-failed`})}};e.showDetachConfirmDialog?.(handleConfirm)}handleDblClick(e){if(e.stopPropagation(),!isUserAdministrator())return;if(isProOutdatedForComponents()){notifyComponentEditUpdate();return}if(!(0,Kn.hasProInstalled)()){notifyComponentEditUpgrade();return}let{triggers:t,locations:n,secondaryLocations:r}=this.eventsManagerConfig;this.editComponent({trigger:t.doubleClick,location:n.canvas,secondaryLocation:r.canvasElement})}events(){return{...super.events(),dblclick:this.handleDblClick}}attributes(){return{...super.attributes(),"data-elementor-id":this.getComponentId()}}}}function setInactiveRecursively(e){let t=e.get(`editSettings`);t&&t.set(`inactive`,!0);let n=e.get(`elements`);n&&n.forEach(e=>{setInactiveRecursively(e)})}function isUserAdministrator(){return window.elementor.config?.user?.is_administrator??!1}function createComponentModel(){let e=window.elementor.modules.elements.types.Widget,t=new e().getModel();return t.extend({initialize(e,n){t.prototype.initialize.call(this,e,n);let r=this.get(`settings`)?.get(`component_instance`);if(r?.value){let e=r.value.component_id?.value;e&&typeof e==`number`&&this.set(`componentId`,e)}this.set(`isGlobal`,!0)},getTitle(){let e=this.get(`editor_settings`),t=e?.title;if(t)return t;let n=e?.component_uid;if(n){let e=selectComponentByUid((0,Gn.__getState)(),n);if(e?.name)return e.name}return window.elementor.getElementData(this).title},getComponentId(){return this.get(`componentId`)||null},getComponentName(){return this.getTitle()},getComponentUid(){return this.get(`editor_settings`)?.component_uid||null}})}var cr=globalThis.React,lr=globalThis.elementorV2.store;function PopulateStore(){return(0,cr.useEffect)(()=>{(0,lr.__dispatch)(le())},[]),null}var ur=globalThis.elementorV2.editorElements,dr=globalThis.elementorV2.editorNotifications,fr=globalThis.elementorV2.editorV1Adapters,pr=globalThis.elementorV2.store,mr=globalThis.wp.i18n,hr=`e-component`,gr={type:`default`,message:(0,mr.__)(`Can't add this component - components that contain each other can't be nested.`,`elementor`),id:`circular-component-nesting-blocked`};function initCircularNestingPrevention(){(0,fr.blockCommand)({command:`document/elements/create`,condition:blockCircularCreate}),(0,fr.blockCommand)({command:`document/elements/move`,condition:blockCircularMove}),(0,fr.blockCommand)({command:`document/elements/paste`,condition:blockCircularPaste})}function wouldCreateCircularNesting(e){if(e===void 0)return!1;let t=(0,pr.__getState)(),n=be(t),r=ye(t);return n===null?!1:e===n||r.some(t=>t.componentId===e)}function extractComponentIdFromModel(e){return!e||e.widgetType!==hr?null:e.settings?.component_instance?.value?.component_id?.value??null}function extractComponentIdFromElement(e){return e.widgetType===hr?e.settings?.component_instance?.value?.component_id?.value??null:null}function extractComponentIdsFromElements(e){let t=[];for(let n of e){let e=extractComponentIdFromElement(n);e!==null&&t.push(e),n.elements?.length&&t.push(...extractComponentIdsFromElements(n.elements))}return t}function extractComponentIdFromContainer(e){return e.model?.get?.(`widgetType`)===hr?((e.model?.get?.(`settings`))?.get?.(`component_instance`))?.value?.component_id?.value??null:null}function blockCircularCreate(e){let t=extractComponentIdFromModel(e.model);if(t===null)return!1;let n=wouldCreateCircularNesting(t);return n&&(0,dr.notify)(gr),n}function blockCircularMove(e){let{containers:t=[e.container]}=e,n=t.some(e=>e?(0,ur.getAllDescendants)(e).some(e=>{let t=extractComponentIdFromContainer(e);return t!==null&&wouldCreateCircularNesting(t)}):!1);return n&&(0,dr.notify)(gr),n}function blockCircularPaste(e){let{storageType:t}=e;if(t!==`localstorage`)return!1;let n=window?.elementorCommon?.storage?.get();if(!n?.clipboard?.elements)return!1;let r=extractComponentIdsFromElements(n.clipboard.elements).some(wouldCreateCircularNesting);return r&&(0,dr.notify)(gr),r}function removeComponentStyles(e){y.invalidateComponentConfigCache(e)}var _r=globalThis.elementorV2.editorDocuments,vr=globalThis.elementorV2.editorNotifications,yr=globalThis.elementorV2.httpClient,br=globalThis.wp.i18n,xr=`insufficient_permissions`,Sr=`https://go.elementor.com/go-pro-components-Instance-draft-failure/`,Cr=`component-publish-upgrade`;async function publishDraftComponentsInPageBeforeSave({status:e,elements:t}){if(e!==`publish`)return;let n=[...(await getComponentDocuments({elements:t})).values()].filter(_r.isDocumentDirty).map(e=>e.id);if(n.length!==0){try{await y.updateStatuses(n,`publish`)}catch(e){if(isInsufficientPermissionsError(e)){notifyPublishUpgrade();return}throw e}n.forEach(e=>(0,_r.invalidateDocumentData)(e))}}function isInsufficientPermissionsError(e){return e instanceof yr.AxiosError&&e.response?.data?.code===xr}function notifyPublishUpgrade(){(0,vr.notify)({type:`promotion`,id:Cr,message:(0,br.__)(`You have unpublished component on this page. You need a pro version to publish it.`,`elementor`),additionalActionProps:[{size:`small`,variant:`contained`,color:`promotion`,href:Sr,target:`_blank`,children:(0,br.__)(`Upgrade Now`,`elementor`)}]})}var beforeSave=({container:e,status:t})=>publishDraftComponentsInPageBeforeSave({elements:e?.model.get(`elements`).toJSON?.()??[],status:t}),wr=globalThis.elementorV2.editorV1Adapters;function initLoadComponentDataAfterInstanceAdded(){(0,wr.registerDataHook)(`after`,`document/elements/paste`,(e,t)=>{load(t)}),(0,wr.registerDataHook)(`after`,`document/elements/import`,(e,t)=>{load(t)})}function load(e){e&&loadComponentsAssets((Array.isArray(e)?e:[e]).map(e=>e.model?.toJSON()).filter(e=>!!e))}function init(){(0,te.__registerSlice)(b),(0,u.registerElementType)(tr,e=>createComponentType({...e,showLockedByModal:openEditModeDialog,showDetachConfirmDialog:openDetachConfirmDialog})),window.elementorCommon.__beforeSave=beforeSave,(0,f.injectTab)({id:`components`,label:(0,ne.__)(`Components`,`elementor`),component:Components,position:1}),(0,l.injectIntoLogic)({id:`components-populate-store`,component:PopulateStore}),(0,m.registerDataHook)(`after`,`editor/documents/attach-preview`,()=>{let{id:e,config:t}=(0,d.getV1CurrentDocument)()??{};e&&(removeComponentStyles(e),loadComponentsAssets(t?.elements??[]))}),p.embeddedDocumentsManager.onDocumentLoad((e,t)=>{loadComponentsAssets(t.elements??[])}),(0,l.injectIntoLogic)({id:`templates`,component:LoadTemplateComponents}),(0,ee.registerEditingPanelReplacement)({id:`component-instance-edit-panel`,condition:(e,t)=>t.key===`e-component`,component:InstanceEditingPanel}),u.settingsTransformersRegistry.register(`component-instance`,Te),u.settingsTransformersRegistry.register(`overridable`,De),u.settingsTransformersRegistry.register(`override`,Oe),initCircularNestingPrevention(),initLoadComponentDataAfterInstanceAdded()}0&&(t.exports={COMPONENT_WIDGET_TYPE:qt,ComponentInstanceProvider,ComponentItem:Je,ComponentName,ComponentSearch,ComponentsList,DetachAction,EditComponentAction,EmptySearchResult,InstanceEmptyState,InstancePanelBody,InstancePanelHeader,LoadingComponents,OverridablePropProvider,SLICE_NAME:g,SearchProvider,apiClient:y,componentInstanceOverridePropTypeUtil:z,componentInstanceOverridesPropTypeUtil:H,componentInstancePropTypeUtil:U,componentOverridablePropTypeUtil:V,componentsActions:vn,componentsSelectors:yn,createComponentsAction,filterValidOverridableProps,getComponentDocumentData,getContainerByOriginId,getOverridableProp,getPropTypeForComponentOverride,init,isComponentInstance,loadComponentsAssets,onElementDrop,publishDraftComponentsInPageBeforeSave,registerComponentsReducer,resolveOverridePropValue,selectComponentByUid,selectCreatedThisSession:he,selectOverridableProps:_e,selectPath:ye,slice:b,switchToComponent,trackComponentEvent,updateOverridableProp,useComponentInstanceElement,useComponents,useComponentsPermissions,useCurrentComponent,useCurrentComponentId,useFilteredComponents,useInstancePanelData,useIsSanitizedComponent,useOverridablePropValue,useOverridableProps,useSanitizeOverridableProps})}))());(window.elementorV2=window.elementorV2||{}).editorComponents=o})(),window.elementorV2.editorComponents?.init?.();
1 +!function(){"use strict";var e={d:function(t,n){for(var o in n)e.o(n,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:n[o]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{init:function(){return se}});var n=window.elementorV2.editor,o=window.elementorV2.editorDocuments,a=window.elementorV2.editorElementsPanel,r=window.elementorV2.editorStylesRepository,l=window.elementorV2.editorV1Adapters,i=window.elementorV2.store,s=window.wp.i18n,c=window.React,m=window.elementorV2.editorUi,d=window.elementorV2.icons,p=window.elementorV2.ui,u=window.elementorV2.utils;const h=(0,c.createContext)(void 0),g=({children:e,localStorageKey:t})=>{const{debouncedValue:n,handleChange:o,inputValue:a}=(0,u.useSearchState)({localStorageKey:t});return c.createElement(h.Provider,{value:{handleChange:o,clearSearch:()=>{o("")},searchValue:n,inputValue:a}},e)},y=()=>{const e=(0,c.useContext)(h);if(!e)throw new Error("useSearch must be used within a SearchProvider");return e},f=()=>{const{inputValue:e,handleChange:t}=y();return c.createElement(p.Stack,{direction:"row",gap:.5,sx:{width:"100%",px:2,py:1.5}},c.createElement(p.Box,{sx:{flexGrow:1}},c.createElement(p.TextField,{role:"search",fullWidth:!0,size:"tiny",value:e,placeholder:(0,s.__)("Search","elementor"),onChange:e=>t(e.target.value),InputProps:{startAdornment:c.createElement(p.InputAdornment,{position:"start"},c.createElement(d.SearchIcon,{fontSize:"tiny"}))}})))};var _=window.elementorV2.httpClient;const w="elementor/v1/components",E=e=>({action:"get_document_config",unique_id:`document-config-${e}`,data:{id:e}}),S={get:()=>(0,_.httpService)().get(`${w}`).then(e=>e.data.data),create:e=>(0,_.httpService)().post(`${w}`,e).then(e=>e.data.data),getComponentConfig:e=>l.ajax.load(E(e)),invalidateComponentConfigCache:e=>l.ajax.invalidateCache(E(e))},v=(0,i.__createAsyncThunk)("components/create",async e=>({...await S.create(e),name:e.name})),x=(0,i.__createAsyncThunk)("components/load",async()=>await S.get()),C="components",b=(0,i.__createSlice)({name:C,initialState:{data:[],loadStatus:"idle",createStatus:"idle",styles:{}},reducers:{add:(e,{payload:t})=>{e.data={...t}},load:(e,{payload:t})=>{e.data=t},removeStyles(e,{payload:t}){const{[t.id]:n,...o}=e.styles;e.styles=o},addStyles:(e,{payload:t})=>{e.styles={...e.styles,...t}}},extraReducers:e=>{e.addCase(x.fulfilled,(e,{payload:t})=>{e.data=t,e.loadStatus="idle"}),e.addCase(x.pending,e=>{e.loadStatus="pending"}),e.addCase(x.rejected,e=>{e.loadStatus="error"}),e.addCase(v.fulfilled,(e,{payload:t,meta:n})=>{e.createStatus="idle",e.data.push({id:t.component_id,name:n.arg.name})}),e.addCase(v.pending,e=>{e.createStatus="pending"}),e.addCase(v.rejected,e=>{e.createStatus="error"})}}),V=e=>e[C].loadStatus,T=e=>e[C].createStatus,P=(0,i.__createSelector)(e=>e[C].data,e=>e),k=(0,i.__createSelector)(V,e=>"pending"===e),I=((0,i.__createSelector)(V,e=>"error"===e),(0,i.__createSelector)(T,e=>"pending"===e)),j=(0,i.__createSelector)(T,e=>"error"===e),L=e=>e[C].styles??{},O=(0,i.__createSelector)(e=>e[C].styles??{},e=>Object.values(e).flat()),z=()=>({components:(0,i.__useSelector)(P),isLoading:(0,i.__useSelector)(k)});var N=window.elementorV2.editorCanvas,D=window.elementorV2.editorElements;var B=window.elementorV2.editorProps;const F=async(e,t)=>{(0,D.replaceElement)({currentElement:e,newElement:A(t),withHistory:!1})},A=e=>({elType:"widget",widgetType:"e-component",settings:{component_id:B.numberPropTypeUtil.create(e.id)},editor_settings:{title:e.name}}),M=({component:e})=>{const t=A({id:e.id,name:e.name});return c.createElement(p.ListItemButton,{draggable:!0,onDragStart:()=>(0,N.startDragElementFromPanel)(t),onDragEnd:N.endDragElementFromPanel,shape:"rounded",sx:{border:"solid 1px",borderColor:"divider",py:.5,px:1}},c.createElement(p.Box,{sx:{display:"flex",width:"100%",alignItems:"center",gap:1},onClick:()=>{W(t)}},c.createElement(p.ListItemIcon,{size:"tiny"},c.createElement(d.ComponentsIcon,{fontSize:"tiny"})),c.createElement(p.ListItemText,{primary:c.createElement(p.Typography,{variant:"caption",sx:{color:"text.primary"}},e.name)})))},W=e=>{const{container:t,options:n}=(()=>{const e=(0,D.getCurrentDocumentContainer)(),t=function(){const e=(0,D.getSelectedElements)();if(1===e.length)return(0,D.getContainer)(e[0].id)}();let n,o;if(t)switch(t.model.get("elType")){case"widget":{n=t?.parent;const e=t.view?._index??-1;e>-1&&(o={at:e+1});break}case"section":n=t?.children?.[0];break;default:n=t}return{container:n??e,options:o}})();if(!t)throw new Error("Can't find container to drop new component instance at");(0,D.dropElement)({containerId:t.id,model:e,options:{...n,useHistory:!1,scrollIntoView:!0}})},$=Array.from({length:6},(e,t)=>t),R=()=>c.createElement(p.Stack,{"aria-label":"Loading components",gap:1,sx:{pointerEvents:"none",position:"relative",maxHeight:"300px",overflow:"hidden","&:after":{position:"absolute",top:0,content:'""',left:0,width:"100%",height:"300px",background:"linear-gradient(to top, white, transparent)",pointerEvents:"none"}}},$.map(e=>c.createElement(p.ListItemButton,{key:e,sx:{border:"solid 1px",borderColor:"divider",py:.5,px:1},shape:"rounded"},c.createElement(p.Box,{display:"flex",gap:1,width:"100%"},c.createElement(p.Skeleton,{variant:"text",width:"24px",height:"36px"}),c.createElement(p.Skeleton,{variant:"text",width:"100%",height:"36px"})))));function G(){const{components:e,isLoading:t,searchValue:n}=K();return t?c.createElement(R,null):e&&0!==e.length?c.createElement(p.List,{sx:{display:"flex",flexDirection:"column",gap:1,px:2}},e.map(e=>c.createElement(M,{key:e.id,component:e}))):n.length>0?c.createElement(U,null):c.createElement(H,null)}const H=()=>c.createElement(p.Stack,{alignItems:"center",justifyContent:"center",height:"100%",sx:{px:2.5,pt:10},gap:1.75,overflow:"hidden"},c.createElement(p.Icon,{fontSize:"large"},c.createElement(d.EyeIcon,{fontSize:"large"})),c.createElement(p.Typography,{align:"center",variant:"subtitle2",color:"text.secondary",fontWeight:"bold"},(0,s.__)("Text that explains that there are no Components yet.","elementor")),c.createElement(p.Typography,{variant:"caption",align:"center",color:"text.secondary"},(0,s.__)("Once you have Components, this is where you can manage them—rearrange, duplicate, rename and delete irrelevant classes.","elementor")),c.createElement(p.Divider,{sx:{width:"100%"},color:"text.secondary"}),c.createElement(p.Typography,{align:"left",variant:"caption",color:"text.secondary"},(0,s.__)("To create a component, first design it, then choose one of three options:","elementor")),c.createElement(p.Typography,{align:"left",variant:"caption",color:"text.secondary",sx:{display:"flex",flexDirection:"column"}},c.createElement("span",null,(0,s.__)("1. Right-click and select Create Component","elementor")),c.createElement("span",null,(0,s.__)("2. Use the component icon in the Structure panel","elementor")),c.createElement("span",null,(0,s.__)("3. Use the component icon in the Edit panel header","elementor")))),U=()=>{const{searchValue:e,clearSearch:t}=y();return c.createElement(p.Stack,{color:"text.secondary",pt:5,alignItems:"center",gap:1,overflow:"hidden",justifySelf:"center"},c.createElement(d.ComponentsIcon,null),c.createElement(p.Box,{sx:{width:"100%"}},c.createElement(p.Typography,{align:"center",variant:"subtitle2",color:"inherit"},(0,s.__)("Sorry, nothing matched","elementor")),e&&c.createElement(p.Typography,{variant:"subtitle2",color:"inherit",sx:{display:"flex",width:"100%",justifyContent:"center"}},c.createElement("span",null,"“"),c.createElement("span",{style:{maxWidth:"80%",overflow:"hidden",textOverflow:"ellipsis"}},e),c.createElement("span",null,"”."))),c.createElement(p.Typography,{align:"center",variant:"caption",color:"inherit"},(0,s.__)("Try something else.","elementor")),c.createElement(p.Typography,{align:"center",variant:"caption",color:"inherit"},c.createElement(p.Link,{color:"secondary",variant:"caption",component:"button",onClick:t},(0,s.__)("Clear & try again","elementor"))))},K=()=>{const{components:e,isLoading:t}=z(),{searchValue:n}=y();return{components:e.filter(e=>e.name.toLowerCase().includes(n.toLowerCase())),isLoading:t,searchValue:n}},q=()=>c.createElement(m.ThemeProvider,null,c.createElement(g,{localStorageKey:"elementor-components-search"},c.createElement(f,null),c.createElement(G,null))),J=()=>{const e=(0,i.__useDispatch)();return{createComponent:async t=>(await e(v(t))).payload,isPending:(0,i.__useSelector)(I),isError:(0,i.__useSelector)(j)}},Q=e=>{const[t,n]=(0,c.useState)(e),[o,a]=(0,c.useState)({}),r=(0,c.useMemo)(()=>!Object.values(o).some(e=>e),[o]);return{values:t,errors:o,isValid:r,handleChange:(e,o,r)=>{const l={...t,[o]:e.target.value};n(l);const{success:i,errors:s}=X(l,r);a(i?{}:s)},validateForm:e=>{const{success:n,errors:o,parsedValues:r}=X(t,e);return n?(a({}),{success:n,parsedValues:r}):(a(o),{success:n})}}},X=(e,t)=>{const n=t.safeParse(e);if(n.success)return{success:!0,parsedValues:n.data};const o={};return Object.entries(n.error.formErrors.fieldErrors).forEach(([e,t])=>{o[e]=t[0]}),{success:!1,errors:o}};var Y=window.elementorV2.schema;const Z=e=>Y.z.object({componentName:Y.z.string().trim().max(50,(0,s.__)("Component name is too long. Please keep it under 50 characters.","elementor")).refine(t=>!e.includes(t),{message:(0,s.__)("Component name already exists","elementor")})});function ee(){const[e,t]=(0,c.useState)(null),[n,o]=(0,c.useState)(),[a,r]=(0,c.useState)(null),{createComponent:l,isPending:i}=J();(0,c.useEffect)(()=>{const e="elementor/editor/open-save-as-component-form",n=e=>{t({element:e.detail.element,elementLabel:(0,D.getElementLabel)(e.detail.element.id)}),o(e.detail.anchorPosition)};return window.addEventListener(e,n),()=>{window.removeEventListener(e,n)}},[]);const d=()=>{t(null),o(void 0)};return c.createElement(m.ThemeProvider,null,c.createElement(p.Popover,{open:null!==e,onClose:d,anchorReference:"anchorPosition",anchorPosition:n},null!==e&&c.createElement(ne,{initialValues:{componentName:e.elementLabel},handleSave:async t=>{if(!e)throw new Error("Can't save element as component: element not found");try{const n=await l({name:t.componentName,content:[e.element.model.toJSON({remove:["default"]})]});if(!e)throw new Error("Can't replace element with component: element not found");F(e.element,{id:n.component_id,name:t.componentName}),r({show:!0,message:(0,s.__)("Component saved successfully as: %1$s (ID: %2$s)","elementor").replace("%1$s",t.componentName).replace("%2$s",n.component_id.toString()),type:"success"}),d()}catch{const e=(0,s.__)("Failed to save component. Please try again.","elementor");r({show:!0,message:e,type:"error"})}},isSubmitting:i,closePopup:d})),c.createElement(p.Snackbar,{open:a?.show,onClose:()=>r(null)},c.createElement(p.Alert,{onClose:()=>r(null),severity:a?.type,sx:{width:"100%"}},a?.message)))}const te="tiny",ne=({initialValues:e,handleSave:t,isSubmitting:n,closePopup:o})=>{const{values:a,errors:r,isValid:l,handleChange:i,validateForm:m}=Q(e),{components:u}=z(),h=(0,c.useMemo)(()=>u?.map(e=>e.name)??[],[u]),g=(0,c.useMemo)(()=>Z(h),[h]),y=(0,c.useMemo)(()=>(e=>{const t=Z(e);return t.extend({componentName:t.shape.componentName.refine(e=>e.length>0,{message:(0,s.__)("Component name is required.","elementor")}).refine(e=>e.length>=2,{message:(0,s.__)("Component name is too short. Please enter at least 2 characters.","elementor")})})})(h),[h]);return c.createElement(p.Stack,{alignItems:"start",width:"268px"},c.createElement(p.Stack,{direction:"row",alignItems:"center",py:1,px:1.5,sx:{columnGap:.5,borderBottom:"1px solid",borderColor:"divider",width:"100%"}},c.createElement(d.StarIcon,{fontSize:te}),c.createElement(p.Typography,{variant:"caption",sx:{color:"text.primary",fontWeight:"500",lineHeight:1}},(0,s.__)("Save as a component","elementor"))),c.createElement(p.Grid,{container:!0,gap:.75,alignItems:"start",p:1.5},c.createElement(p.Grid,{item:!0,xs:12},c.createElement(p.FormLabel,{htmlFor:"component-name",size:"tiny"},(0,s.__)("Name","elementor"))),c.createElement(p.Grid,{item:!0,xs:12},c.createElement(p.TextField,{id:"component-name",size:te,fullWidth:!0,value:a.componentName,onChange:e=>i(e,"componentName",g),inputProps:{style:{color:"text.primary",fontWeight:"600"}},error:Boolean(r.componentName),helperText:r.componentName}))),c.createElement(p.Stack,{direction:"row",justifyContent:"flex-end",alignSelf:"end",py:1,px:1.5},c.createElement(p.Button,{onClick:o,disabled:n,color:"secondary",variant:"text",size:"small"},(0,s.__)("Cancel","elementor")),c.createElement(p.Button,{onClick:()=>{const{success:e,parsedValues:n}=m(y);e&&t(n)},disabled:n||!l,variant:"contained",color:"primary",size:"small"},n?(0,s.__)("Creating…","elementor"):(0,s.__)("Create","elementor"))))};function oe(){return(0,c.useEffect)(()=>{(0,i.__dispatch)(x())},[]),null}const ae=(0,r.createStylesProvider)({key:"components-styles",priority:100,subscribe:e=>(0,i.__subscribeWithSelector)(e=>e[C],()=>{e()}),actions:{all:()=>O((0,i.__getState)()),get:e=>O((0,i.__getState)()).find(t=>t.id===e)??null}}),re=e=>e.flatMap(e=>{const t=[];return"e-component"===(e.widgetType||e.elType)&&e.settings?.component_id&&(0,B.isTransformable)(e.settings?.component_id)&&t.push(e.settings.component_id.value),e.elements&&t.push(...re(e.elements)),t});async function le(e){const t=Array.from(new Set(re(e)));if(!t.length)return;const n=L((0,i.__getState)()),o=t.filter(e=>!n[e]);o.length&&async function(e){const t=await async function(e){return Promise.all(e.map(async e=>[e,await S.getComponentConfig(e)]))}(e);(function(e){const t=Object.fromEntries(e.map(([e,t])=>[e,ie(t)]));(0,i.__dispatch)(b.actions.addStyles(t))})(t),Object.values(t).forEach(([,e])=>{le(e.elements)})}(o)}function ie(e){return[...Object.values(e.styles??{}),...(e.elements??[]).flatMap(ie)]}function se(){r.stylesRepository.register(ae),(0,i.__registerSlice)(b),(0,a.injectTab)({id:"components",label:(0,s.__)("Components","elementor"),component:q}),(0,n.injectIntoTop)({id:"create-component-popup",component:ee}),(0,n.injectIntoLogic)({id:"components-populate-store",component:oe}),(0,l.__privateListenTo)((0,l.commandStartEvent)("editor/documents/attach-preview"),()=>{const{id:e,config:t}=(0,o.getV1CurrentDocument)();e&&function(e){S.invalidateComponentConfigCache(e),(0,i.__dispatch)(b.actions.removeStyles({id:e}))}(e),le(t?.elements??[])})}(window.elementorV2=window.elementorV2||{}).editorComponents=t}(),window.elementorV2.editorComponents?.init?.();