{"translation-revision-date":"2026-04-14 06:42+0000","generator":"WP-CLI\/2.12.0","source":"gutenberg\/edit-pages-panel\/src\/components\/PageForm.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"tr_TR","plural-forms":"nplurals=2; plural=n != 1;"},"Cancel":["\u0130ptal "],"Error:":["Hata:"],"Page title:":["Sayfa ba\u015fl\u0131\u011f\u0131:"],"Save":["Kaydet"],"Saving":["Kaydediliyor"]}}}!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 kn}});var n=window.elementorV2.licenseApi;const o="overridable-prop",r="atomic-components",i="elementor_component",a="Elementor Editor Components MCP - Tools for creating and managing reusable components.\n Components are reusable blocks of content that can be used multiple times across the pages, its a widget which contains a set of elements and styles.\n\t\t\n\t\tBefore using the tools, you must fetch the list of components from the resource (as mentioned in the required resources), if you see something that might fit, get the component instance.\n\t\tThen you can save the component instance as a new component (Name is unique so do not repeat it).\n\n\t\tIf you see that there is a component that might match the needs of the user, get the component, see if it's published and suggest the user to use it (but only if you are 100% sure on that).\n\t\tIgnore this If statement when the users asks to create a new component, you can only suggest it after the work is done.";var s=window.elementorV2.editor,l=window.elementorV2.editorComponents,c=window.elementorV2.editorControls,p=window.elementorV2.editorDocuments,m=window.elementorV2.editorEditingPanel,d=window.elementorV2.editorElementsPanel,u=window.elementorV2.editorMcp,g=window.elementorV2.editorPanels,f=window.elementorV2.editorV1Adapters,y=window.wp.i18n,h=window.React,v=window.elementorV2.editorCurrentUser,b=window.elementorV2.editorUi,E=window.elementorV2.icons,w=window.elementorV2.store,_=window.elementorV2.ui;function C(){const e=(0,w.__useSelector)(l.selectPath),t=(0,p.getV1DocumentsManager)();return(0,h.useCallback)(()=>{const{componentId:n,instanceId:o}=e.at(-2)??{};n&&o?(0,l.switchToComponent)(n,o):(0,l.switchToComponent)(t.getInitialId())},[e,t])}const x=({anchorRef:e,shouldShowIntroduction:t,onClose:n})=>e.current&&t?h.createElement(_.Popover,{anchorEl:e.current,open:t,anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:-30},onClose:n},h.createElement(_.Box,{sx:{width:"296px"}},h.createElement(b.PopoverHeader,{title:(0,y.__)("Add your first property","elementor-pro"),onClose:n}),h.createElement(_.Image,{sx:{width:"296px",height:"160px"},src:"https://assets.elementor.com/packages/v1/images/components-properties-intro.png",alt:""}),h.createElement(c.PopoverContent,null,h.createElement(_.Stack,{sx:{p:2}},h.createElement(_.Typography,{variant:"body2"},(0,y.__)("Properties make instances flexible.","elementor-pro")),h.createElement(_.Typography,{variant:"body2"},(0,y.__)("Select any Element, then in the General tab, click next to any setting you want users to customize - like text, images, or links.","elementor-pro")),h.createElement(_.Typography,{variant:"body2",sx:{mt:2}},(0,y.__)("Your properties will appear in the Properties panel, where you can organize and manage them anytime.","elementor-pro")),h.createElement(_.Link,{href:"http://go.elementor.com/components-guide",target:"_blank",sx:{mt:2},color:"info.main",variant:"body2"},(0,y.__)("Learn more","elementor-pro")),h.createElement(_.Stack,{direction:"row",alignItems:"center",justifyContent:"flex-end",sx:{pt:1}},h.createElement(_.Button,{size:"medium",variant:"contained",onClick:n},(0,y.__)("Got it","elementor-pro"))))))):null;var I=window.elementorV2.utils,P=window.elementorV2.editorElements;function S(e,t,n,o){const r=(0,P.getContainer)(e);r&&((0,l.isComponentInstance)(r.model.toJSON())?function(e,t){const n=(0,P.getElementSetting)(e,"component_instance"),o=l.componentInstancePropTypeUtil.extract(n),r=l.componentInstanceOverridesPropTypeUtil.extract(o?.overrides);if(!r?.length)return;const i=T(r,t),a=l.componentInstancePropTypeUtil.create({...o,overrides:l.componentInstanceOverridesPropTypeUtil.create(i)});(0,P.updateElementSettings)({id:e,props:{component_instance:a},withHistory:!1})}(e,o):(0,P.updateElementSettings)({id:e,props:{[t]:n??null},withHistory:!1}))}function T(e,t){return e.map(e=>l.componentOverridablePropTypeUtil.isValid(e)?l.componentInstanceOverridePropTypeUtil.isValid(e.value.origin_value)?t&&e.value.override_key!==t?e:e.value.origin_value:null:e).filter(e=>null!==e)}function O(e){let t=!1;const n={};for(const[o,r]of Object.entries(e))l.componentOverridablePropTypeUtil.isValid(r)?(n[o]=r.value.origin_value,t=!0):n[o]=r;return{hasChanges:t,settings:n}}function k(e){const t={...e};if((0,l.isComponentInstance)({widgetType:e.widgetType,elType:e.elType}))t.settings=function(e){if(!e?.component_instance)return e;const t=l.componentInstancePropTypeUtil.extract(e.component_instance),n=l.componentInstanceOverridesPropTypeUtil.extract(t?.overrides);if(!n?.length)return e;const o=T(n);return{...e,component_instance:l.componentInstancePropTypeUtil.create({...t,overrides:l.componentInstanceOverridesPropTypeUtil.create(o)})}}(e.settings);else if(t.settings){const{settings:e}=O(t.settings);t.settings=e}return t.elements&&(t.elements=t.elements.map(k)),t}function D(e,t,n){const o=e.items[t];return o?o.props.includes(n)?e:{...e,items:{...e.items,[t]:{...o,props:[...o.props,n]}}}:e}function A({componentId:e,propKey:t,executedBy:n,revertElementOverridable:o=!0}){const r=l.componentsSelectors.getOverridableProps(e);if(!r||0===Object.keys(r.props).length)return;const i=Array.isArray(t)?t:[t],a=[];for(const e of i){const t=r.props[e];t&&(a.push(t),o&&S(t.elementId,t.propKey,t.originValue,e))}if(0===a.length)return;const s=Object.fromEntries(Object.entries(r.props).filter(([e])=>!i.includes(e))),c=function(e,t){const n=Array.isArray(t)?t:[t];return{...e,items:Object.fromEntries(Object.entries(e.items).map(([e,t])=>[e,{...t,props:t.props.filter(e=>!n.includes(e))}]))}}(r.groups,t);l.componentsActions.setOverridableProps(e,{...r,props:s,groups:c});const p=l.componentsSelectors.getCurrentComponent();for(const e of a)(0,l.trackComponentEvent)({action:"propertyRemoved",source:n,executedBy:n,component_uid:p?.uid,property_id:e.overrideKey,property_path:e.propKey,property_name:e.label,element_type:e.widgetType??e.elType})}function L({componentId:e,overrideKey:t,label:n,groupId:o}){const r=l.componentsSelectors.getOverridableProps(e);if(!r)return;const i=r.props[t];if(!i)return;const a=i.groupId,s=o??a,c={...i,label:n,groupId:s},p=function(e,t,n,o){if(n===o)return e;const r=function(e,t,n){const o=e.items[t];return o?{...e,items:{...e.items,[t]:{...o,props:o.props.filter(e=>e!==n)}}}:e}(e,n,t);return D(r,o,t)}(r.groups,t,a,s);return l.componentsActions.setOverridableProps(e,{...r,props:{...r.props,[t]:c},groups:p}),c}const R="__cpPropGroupHeaders__",M={EMPTY_NAME:(0,y.__)("Property name is required","elementor-pro"),DUPLICATE_NAME:(0,y.__)("Property name already exists","elementor-pro")};function U(e,t,n){const o=e.trim();if(!o)return{isValid:!1,errorMessage:M.EMPTY_NAME};const r=o.toLowerCase(),i=n?.trim().toLowerCase();return t.some(e=>{const t=e.trim().toLowerCase();return(!i||t!==i)&&t===r})?{isValid:!1,errorMessage:M.DUPLICATE_NAME}:{isValid:!0,errorMessage:null}}function z(){return z=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const t=U(a??"",o,n?.label);t.isValid?e({label:a??"",group:l}):m(t.errorMessage)},"data-testid":"overridable-prop-form"},h.createElement(_.Stack,{alignItems:"start",sx:{width:"268px",...r}},h.createElement(_.Stack,{direction:"row",alignItems:"center",py:1,px:1.5,sx:{columnGap:.5,borderBottom:"1px solid",borderColor:"divider",width:"100%",mb:1.5}},h.createElement(_.Typography,{variant:"caption",sx:{color:"text.primary",fontWeight:"500",lineHeight:1}},f)),h.createElement(_.Grid,{container:!0,gap:.75,alignItems:"start",px:1.5,mb:1.5},h.createElement(_.Grid,{item:!0,xs:12},h.createElement(_.FormLabel,{size:"tiny"},d)),h.createElement(_.Grid,{item:!0,xs:12},h.createElement(_.TextField,{name:d,size:B,fullWidth:!0,autoFocus:!0,placeholder:(0,y.__)("Enter value","elementor-pro"),value:a??"",onChange:e=>{const t=e.target.value;s(t);const r=U(t,o,n?.label);m(r.errorMessage)},error:Boolean(p),helperText:p}))),h.createElement(_.Grid,{container:!0,gap:.75,alignItems:"start",px:1.5,mb:1.5},h.createElement(_.Grid,{item:!0,xs:12},h.createElement(_.FormLabel,{size:"tiny"},u)),h.createElement(_.Grid,{item:!0,xs:12},h.createElement(_.Select,{name:u,size:B,fullWidth:!0,value:l??null,onChange:e=>c(e.target.value),displayEmpty:!0,renderValue:e=>e?i.find(({value:t})=>t===e)?.label??e:i[0].label},i.map(({label:e,...t})=>h.createElement(b.MenuListItem,z({key:t.value},t,{value:t.value??""}),e))))),h.createElement(_.Stack,{direction:"row",justifyContent:"flex-end",alignSelf:"end",mt:1.5,py:1,px:1.5},h.createElement(_.Button,{type:"submit",disabled:!a||Boolean(p),variant:"contained",color:"primary",size:"small"},v))))}var N=window.elementorV2.coreAdapterUtils;function $(){return $=Object.assign?Object.assign.bind():function(e){for(var t=1;th.createElement(_.UnstableSortableProvider,$({restrictAxis:!0,variant:"static",dragPlaceholderStyle:{opacity:"1"}},e)),K=({triggerClassName:e,...t})=>h.createElement(J,$({},t,{role:"button",className:`sortable-trigger ${e??""}`.trim(),"aria-label":"sort"}),h.createElement(E.GripVerticalIcon,{fontSize:"tiny"})),F=({children:e,id:t})=>h.createElement(_.UnstableSortableItem,{id:t,render:({itemProps:t,isDragged:n,triggerProps:o,itemStyle:r,triggerStyle:i,dropIndicationStyle:a,showDropIndication:s,isDragOverlay:l,isDragPlaceholder:c})=>h.createElement(_.Box,$({},t,{style:r,component:"div",role:"listitem",sx:{backgroundColor:l?"background.paper":void 0}}),e({isDragged:n,isDragPlaceholder:c,triggerProps:o,triggerStyle:i}),s&&h.createElement(X,{style:a}))}),H=(0,N.isCoreAtLeast)("4.1.0");function q({children:e,value:t,onChange:n}){return h.createElement(_.UnstableSortable,{mode:"multiple",restrictAxis:!0,dragPlaceholderStyle:{opacity:"1"},value:t,onChange:n},e)}function W({groupId:e,children:t}){return h.createElement(_.UnstableSortableGroup,{groupId:e},t)}function Y({id:e,children:t}){return h.createElement(_.UnstableSortableItem,{id:e},t)}const J=(0,_.styled)("div")(({theme:e})=>({position:"absolute",left:"-2px",top:"50%",transform:`translate( -${e.spacing(1.5)}, -50% )`,color:e.palette.action.active,cursor:"grab"})),X=(0,_.styled)(_.Box)` width: 100%; height: 1px; background-color: ${({theme:e})=>e.palette.text.primary}; `;function Z(){return Z=Object.assign?Object.assign.bind():function(e){for(var t=1;t{t.stopPropagation(),s(e.overrideKey)},"aria-label":(0,y.__)("Delete property","elementor-pro"),sx:{p:.25}},h.createElement(E.XIcon,{fontSize:"tiny"}))),h.createElement(_.Popover,Z({},m,{anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},PaperProps:{sx:{width:c.anchorEl?.getBoundingClientRect().width}}}),h.createElement(j,{onSubmit:e=>{l(e),c.close()},currentValue:e,groups:i,existingLabels:a,sx:{width:"100%"}})))}function ee(){return ee=Object.assign?Object.assign.bind():function(e){for(var t=1;t0,x=u&&w===e.id;return h.createElement(_.Box,ee({},o,{style:r,sx:{opacity:a?.5:1}}),h.createElement(_.Stack,{gap:1},h.createElement(_.Box,{className:"group-header",sx:{position:"relative","&:hover .group-sortable-trigger":{visibility:"visible"},"& .group-sortable-trigger":{visibility:"hidden"},"&:hover .group-menu":{visibility:"visible"},"& .group-menu":{visibility:"hidden"}}},h.createElement(K,ee({triggerClassName:"group-sortable-trigger"},i)),h.createElement(_.Stack,{direction:"row",alignItems:"center",justifyContent:"space-between",gap:2},x?h.createElement(_.Box,{sx:{height:28,display:"flex",alignItems:"center",border:2,borderColor:"text.secondary",borderRadius:1,pl:.5,flexGrow:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",width:"100%"}},h.createElement(b.EditableField,ee({ref:d,as:_.Typography,variant:"caption",error:g??void 0,sx:{color:"text.primary",fontWeight:400,lineHeight:1.66}},f()))):h.createElement(b.EllipsisWithTooltip,{title:e.label,as:_.Typography,variant:"caption",sx:{color:"text.primary",fontWeight:400,lineHeight:1.66}}),h.createElement(_.IconButton,ee({className:"group-menu",size:"tiny",sx:{p:.25,visibility:x?"visible":void 0},"aria-label":(0,y.__)("Group actions","elementor-pro")},(0,_.bindTrigger)(m)),h.createElement(E.DotsVerticalIcon,{fontSize:"tiny"})))),h.createElement(W,{groupId:e.id},({setDroppableRef:e,isEmpty:o,items:r})=>h.createElement(_.List,{ref:e,sx:{p:0,display:"flex",flexDirection:"column",gap:1,...o&&{minHeight:40,backgroundColor:"action.hover",borderRadius:1}}},r.map(e=>{const o=t[String(e)];return o?h.createElement(Y,{key:String(e),id:e},({itemProps:e,itemStyle:r,triggerProps:i,triggerStyle:a,isDragPlaceholder:c})=>h.createElement(Q,{sortableItemProps:e,sortableItemStyle:r,prop:o,sortableTriggerProps:{...i,style:a},isDragPlaceholder:c,groups:n,existingLabels:Object.values(t).map(e=>e.label),onDelete:s,onUpdate:e=>l(o.overrideKey,e)})):null})))),h.createElement(_.Menu,ee({},(0,_.bindMenu)(m),{anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"}}),h.createElement(b.MenuListItem,{sx:{minWidth:"160px"},onClick:()=>{m.close(),v(e.id)}},h.createElement(_.Typography,{variant:"caption",sx:{color:"text.primary"}},(0,y.__)("Rename","elementor-pro"))),C?h.createElement(_.Tooltip,{title:(0,y.__)("To delete the group, first remove all the properties","elementor-pro"),placement:"right"},h.createElement("span",null,h.createElement(b.MenuListItem,{disabled:!0},h.createElement(_.Typography,{variant:"caption",sx:{color:"text.disabled"}},(0,y.__)("Delete","elementor-pro"))))):h.createElement(b.MenuListItem,{onClick:()=>{m.close(),c(e.id)}},h.createElement(_.Typography,{variant:"caption",sx:{color:"error.light"}},(0,y.__)("Delete","elementor-pro")))))}function ne({introductionRef:e}){const[t,n]=(0,h.useState)(!1);return h.createElement(h.Fragment,null,h.createElement(_.Stack,{alignItems:"center",justifyContent:"flex-start",height:"100%",color:"text.secondary",sx:{px:2.5,pt:10,pb:5.5},gap:1},h.createElement(E.ComponentPropListIcon,{fontSize:"large"}),h.createElement(_.Typography,{align:"center",variant:"subtitle2"},(0,y.__)("Add your first property","elementor-pro")),h.createElement(_.Typography,{align:"center",variant:"caption"},(0,y.__)("Make instances flexible while keeping design synced.","elementor-pro")),h.createElement(_.Typography,{align:"center",variant:"caption"},(0,y.__)("Select any element, then click + next to a setting to expose it.","elementor-pro")),h.createElement(_.Link,{variant:"caption",color:"secondary",sx:{textDecorationLine:"underline"},onClick:()=>n(!0)},(0,y.__)("Learn more","elementor-pro"))),h.createElement(x,{anchorRef:e,shouldShowIntroduction:t,onClose:()=>n(!1)}))}function oe(){return oe=Object.assign?Object.assign.bind():function(e){for(var t=1;t{t.stopPropagation(),i(e.overrideKey)},"aria-label":"Delete property",sx:{p:.25}},h.createElement(E.XIcon,{fontSize:"tiny"}))),h.createElement(_.Popover,oe({},c,{anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},PaperProps:{sx:{width:s.anchorEl?.getBoundingClientRect().width}}}),h.createElement(j,{onSubmit:e=>{a(e),s.close()},currentValue:e,groups:o,existingLabels:r,sx:{width:"100%"}})))}function ie(){return ie=Object.assign?Object.assign.bind():function(e){for(var t=1;tt[e]).filter(e=>Boolean(e)),m=(0,_.usePopupState)({variant:"popover",disableAutoFocus:!0}),{editableRef:d,isEditing:u,error:g,getEditableProps:f,setEditingGroupId:v,editingGroupId:w}=c,C=e.props.length>0,x=u&&w===e.id;return h.createElement(_.Box,{sx:{opacity:r?.5:1}},h.createElement(_.Stack,{gap:1},h.createElement(_.Box,{className:"group-header",sx:{position:"relative","&:hover .group-sortable-trigger":{visibility:"visible"},"& .group-sortable-trigger":{visibility:"hidden"},"&:hover .group-menu":{visibility:"visible"},"& .group-menu":{visibility:"hidden"}}},h.createElement(K,ie({triggerClassName:"group-sortable-trigger"},o)),h.createElement(_.Stack,{direction:"row",alignItems:"center",justifyContent:"space-between",gap:2},x?h.createElement(_.Box,{sx:{height:28,display:"flex",alignItems:"center",border:2,borderColor:"text.secondary",borderRadius:1,pl:.5,flexGrow:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",width:"100%"}},h.createElement(b.EditableField,ie({ref:d,as:_.Typography,variant:"caption",error:g??void 0,sx:{color:"text.primary",fontWeight:400,lineHeight:1.66}},f()))):h.createElement(b.EllipsisWithTooltip,{title:e.label,as:_.Typography,variant:"caption",sx:{color:"text.primary",fontWeight:400,lineHeight:1.66}}),h.createElement(_.IconButton,ie({className:"group-menu",size:"tiny",sx:{p:.25,visibility:x?"visible":void 0},"aria-label":(0,y.__)("Group actions","elementor-pro")},(0,_.bindTrigger)(m)),h.createElement(E.DotsVerticalIcon,{fontSize:"tiny"})))),h.createElement(_.List,{sx:{p:0,display:"flex",flexDirection:"column",gap:1}},h.createElement(G,{value:e.props,onChange:i},p.map(e=>h.createElement(F,{key:e.overrideKey,id:e.overrideKey},({triggerProps:o,triggerStyle:r,isDragPlaceholder:i})=>h.createElement(re,{prop:e,sortableTriggerProps:{...o,style:r},isDragPlaceholder:i,groups:n,existingLabels:Object.values(t).map(e=>e.label),onDelete:a,onUpdate:t=>s(e.overrideKey,t)})))))),h.createElement(_.Menu,ie({},(0,_.bindMenu)(m),{anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"}}),h.createElement(b.MenuListItem,{sx:{minWidth:"160px"},onClick:()=>{m.close(),v(e.id)}},h.createElement(_.Typography,{variant:"caption",sx:{color:"text.primary"}},(0,y.__)("Rename","elementor-pro"))),h.createElement(_.Tooltip,{title:C?(0,y.__)("To delete the group, first remove all the properties","elementor-pro"):"",placement:"right"},h.createElement("span",null,h.createElement(b.MenuListItem,{onClick:()=>{m.close(),l(e.id)},disabled:C},h.createElement(_.Typography,{variant:"caption",sx:{color:C?"text.disabled":"error.light"}},(0,y.__)("Delete","elementor-pro")))))))}const se={EMPTY_NAME:(0,y.__)("Group name is required","elementor-pro"),DUPLICATE_NAME:(0,y.__)("Group name already exists","elementor-pro")};function le({currentComponentId:e,overridableProps:t,groups:n,onPropertyDelete:o,onPropertyUpdate:r}){const[i,a]=(0,h.useState)(0),s=(0,h.useMemo)(()=>{const e=n.map(e=>e.id),t=Object.fromEntries(n.map(e=>[e.id,[...e.props]]));return{[R]:e,...t}},[n]);return{sortableKey:`${n.length}:${i}`,sortableValue:s,handlePropertyDelete:e=>{o(e),a(e=>e+1)},handlePropertyUpdate:(e,n)=>{const o=t.props[e],i=!!o&&n.group!==o.groupId;r(e,n),i&&a(e=>e+1)},handleSortableChange:t=>{(function(e,t){const n=l.componentsSelectors.getOverridableProps(t);if(!n)return;const o=e[R]??[],{items:r,props:i}=function(e,t){const n={...t.groups.items},o={...t.props};for(const[t,r]of Object.entries(e)){if(t===R||!Array.isArray(r))continue;const e=[...new Set(r)],i=n[t];i&&(n[t]={...i,props:e});for(const n of e){const e=o[n];e&&e.groupId!==t&&(o[n]={...e,groupId:t})}}return{items:n,props:o}}(e,n);l.componentsActions.setOverridableProps(t,{...n,props:i,groups:{items:r,order:o.filter(e=>e in r)}}),(0,p.setDocumentModifiedStatus)(!0)})(t,e),function(e){return Object.entries(e).some(([e,t])=>e!==R&&Array.isArray(t)&&t.length!==new Set(t).size)}(t)&&a(e=>e+1)}}}const ce="New group";function pe({onClose:e}){const t=(0,l.useCurrentComponentId)(),n=(0,l.useSanitizeOverridableProps)(t),[o,r]=(0,h.useState)(!1),i=(0,h.useRef)(null),a=function(){const[e,t]=(0,h.useState)(null),n=(0,l.useCurrentComponentId)(),o=(0,l.useOverridableProps)(n),r=o?.groups?.items??{},i=e?r[e]:null,{ref:a,openEditMode:s,isEditing:c,error:m,getProps:d}=(0,b.useEditable)({value:i?.label??"",onSubmit:t=>{if(!e||!n)throw new Error((0,y.__)("Group ID or component ID is missing","elementor-pro"));!function({componentId:e,groupId:t,label:n}){const o=l.componentsSelectors.getOverridableProps(e);if(!o)return!1;if(!o.groups.items[t])return!1;const r=function(e,t,n){const o=e.items[t];return o?{...e,items:{...e.items,[t]:{...o,label:n}}}:e}(o.groups,t,n);l.componentsActions.setOverridableProps(e,{...o,groups:r})}({componentId:n,groupId:e,label:t}),(0,p.setDocumentModifiedStatus)(!0)},validation:t=>function(e,t){const n=e.trim();return n?Object.values(t).some(e=>e.label===n)?se.DUPLICATE_NAME:"":se.EMPTY_NAME}(t,Object.fromEntries(Object.entries(r).filter(([t])=>t!==e)))||null});return{editableRef:a,isEditing:c,error:m,getEditableProps:d,setEditingGroupId:e=>{t(e),s()},editingGroupId:e}}(),s=(0,h.useMemo)(()=>n?n.groups.order.map(e=>n.groups.items[e]??null).filter(Boolean):[],[n]),c=(0,h.useMemo)(()=>s.map(e=>({value:e.id,label:e.label})),[s]);if(!t||!n)return null;const m=!(s.length>0||o),d=e=>{A({componentId:t,propKey:e,executedBy:"user"}),(0,p.setDocumentModifiedStatus)(!0)},u=(e,n)=>{L({componentId:t,overrideKey:e,label:n.label,groupId:n.group}),(0,p.setDocumentModifiedStatus)(!0)},f=e=>{!function({componentId:e,groupId:t}){const n=l.componentsSelectors.getOverridableProps(e);if(!n)return!1;const o=n.groups.items[t];if(!o||o.props.length>0)return!1;const r=function(e,t){const{[t]:n,...o}=e.items;return{items:o,order:e.order.filter(e=>e!==t)}}(n.groups,t);l.componentsActions.setOverridableProps(e,{...n,groups:r})}({componentId:t,groupId:e}),(0,p.setDocumentModifiedStatus)(!0)};return h.createElement(h.Fragment,null,h.createElement(g.PanelHeader,{sx:{justifyContent:"start",pl:1.5,pr:1,py:1},"data-testid":"component-property-panel-header"},h.createElement(_.Stack,{direction:"row",alignItems:"center",gap:.5,flexGrow:1},h.createElement(E.ComponentPropListIcon,{fontSize:"tiny"}),h.createElement(g.PanelHeaderTitle,{variant:"subtitle2"},(0,y.__)("Component properties","elementor-pro"))),!m&&h.createElement(_.Tooltip,{title:(0,y.__)("Add new group","elementor-pro")},h.createElement(_.IconButton,{size:"tiny","aria-label":(0,y.__)("Add new group","elementor-pro"),onClick:()=>{if(o)return;const e=(0,I.generateUniqueId)("group"),n=function(e){const t=new Set(e.map(e=>e.label));if(!t.has(ce))return ce;let n=1,o=`${ce}-${n}`;for(;t.has(o);)n++,o=`${ce}-${n}`;return o}(s);!function({componentId:e,groupId:t,label:n,executedBy:o}){const r=l.componentsSelectors.getCurrentComponent(),i=l.componentsSelectors.getOverridableProps(e);if(!i)return;const a={id:t,label:n,props:[]};l.componentsActions.setOverridableProps(e,{...i,groups:{...i.groups,items:{...i.groups.items,[t]:a},order:[t,...i.groups.order]}}),(0,l.trackComponentEvent)({action:"propertiesGroupCreated",source:o,executedBy:o,component_uid:r?.uid,group_name:n})}({componentId:t,groupId:e,label:n,executedBy:"user"}),(0,p.setDocumentModifiedStatus)(!0),r(!1),a.setEditingGroupId(e)}},h.createElement(E.FolderPlusIcon,{fontSize:"tiny"}))),h.createElement(_.Tooltip,{title:(0,y.__)("Close panel","elementor-pro")},h.createElement(_.IconButton,{ref:i,size:"tiny","aria-label":(0,y.__)("Close panel","elementor-pro"),onClick:e},h.createElement(E.XIcon,{fontSize:"tiny"})))),h.createElement(_.Divider,null),h.createElement(g.PanelBody,null,m?h.createElement(ne,{introductionRef:i}):h.createElement(_.List,{sx:{p:2,display:"flex",flexDirection:"column",gap:2}},H?h.createElement(de,{currentComponentId:t,overridableProps:n,groups:s,allGroupsForSelect:c,groupLabelEditable:a,setIsAddingGroup:r,onPropertyDelete:d,onPropertyUpdate:u,onGroupDelete:f}):h.createElement(me,{currentComponentId:t,overridableProps:n,groups:s,allGroupsForSelect:c,groupLabelEditable:a,setIsAddingGroup:r,onPropertyDelete:d,onPropertyUpdate:u,onGroupDelete:f}))))}function me({currentComponentId:e,overridableProps:t,groups:n,allGroupsForSelect:o,groupLabelEditable:r,setIsAddingGroup:i,onPropertyDelete:a,onPropertyUpdate:s,onGroupDelete:c}){const m=t.groups.order;return h.createElement(G,{value:m,onChange:t=>{!function({componentId:e,newOrder:t}){const n=l.componentsSelectors.getOverridableProps(e);n&&l.componentsActions.setOverridableProps(e,{...n,groups:{...n.groups,order:t}})}({componentId:e,newOrder:t}),(0,p.setDocumentModifiedStatus)(!0)}},n.map(n=>h.createElement(F,{key:n.id,id:n.id},({triggerProps:m,triggerStyle:d,isDragPlaceholder:u})=>h.createElement(ae,{group:n,props:t.props,allGroups:o,allGroupsRecord:t.groups.items,sortableTriggerProps:{...m,style:d},isDragPlaceholder:u,setIsAddingGroup:i,onPropsReorder:t=>{return o=n.id,function({componentId:e,groupId:t,newPropsOrder:n}){const o=l.componentsSelectors.getOverridableProps(e);if(!o)return;const r=o.groups.items[t];r&&l.componentsActions.setOverridableProps(e,{...o,groups:{...o.groups,items:{...o.groups.items,[t]:{...r,props:n}}}})}({componentId:e,groupId:o,newPropsOrder:t}),void(0,p.setDocumentModifiedStatus)(!0);var o},onPropertyDelete:a,onPropertyUpdate:s,editableLabelProps:r,onGroupDelete:c}))))}function de({currentComponentId:e,overridableProps:t,groups:n,allGroupsForSelect:o,groupLabelEditable:r,onPropertyDelete:i,onPropertyUpdate:a,onGroupDelete:s}){const{sortableKey:l,sortableValue:c,handlePropertyDelete:p,handlePropertyUpdate:m,handleSortableChange:d}=le({currentComponentId:e,overridableProps:t,groups:n,onPropertyDelete:i,onPropertyUpdate:a});return h.createElement(q,{key:l,value:c,onChange:d},h.createElement(W,{groupId:R},({setDroppableRef:e,items:n})=>h.createElement(_.Stack,{ref:e,direction:"column",sx:{width:"100%",gap:2}},n.map(e=>{const n=String(e),i=t.groups.items[n];return i?h.createElement(Y,{key:n,id:e},({itemProps:e,itemStyle:n,triggerProps:a,triggerStyle:l,isDragPlaceholder:c})=>h.createElement(te,{sortableItemProps:e,sortableItemStyle:n,group:i,props:t.props,allGroups:o,sortableTriggerProps:{...a,style:l},isDragPlaceholder:c,onPropertyDelete:p,onPropertyUpdate:m,editableLabelProps:r,onGroupDelete:s})):null}))))}const{panel:ue,usePanelActions:ge}=(0,g.__createPanel)({id:"component-properties-panel",component:function(){const{close:e}=ge(),{open:t}=(0,m.usePanelActions)();return h.createElement(b.ThemeProvider,null,h.createElement(_.ErrorBoundary,{fallback:h.createElement(fe,null)},h.createElement(g.Panel,{"data-testid":"component-properties-panel"},h.createElement(pe,{onClose:()=>{e(),t()}}))))}}),fe=()=>h.createElement(_.Box,{role:"alert",sx:{minHeight:"100%",p:2}},h.createElement(_.Alert,{severity:"error",sx:{mb:2,maxWidth:400,textAlign:"center"}},h.createElement("strong",null,(0,y.__)("Something went wrong","elementor-pro")))),ye=h.forwardRef(({overridablePropsCount:e,onClick:t},n)=>{const o=function(e){const t=(0,h.useRef)(e);return(0,h.useEffect)(()=>{t.current=e},[e]),t.current}(e),r=0===o&&1===e;return h.createElement(he,{ref:n,color:"primary",key:e,invisible:0===e,animate:r,anchorOrigin:{vertical:"top",horizontal:"right"},badgeContent:h.createElement(_.Box,{sx:{animation:r?"none":`${be} 300ms ease-out`}},e),"data-testid":"component-panel-header-properties-badge"},h.createElement(_.Tooltip,{title:(0,y.__)("Component properties","elementor-pro")},h.createElement(_.ToggleButton,{value:"exposed properties",size:"tiny",onClick:t,"aria-label":(0,y.__)("Component properties","elementor-pro")},h.createElement(E.ComponentPropListIcon,{fontSize:"tiny"}))))}),he=(0,_.styled)(_.Badge,{shouldForwardProp:e=>"animate"!==e})(({theme:e,animate:t})=>({"& .MuiBadge-badge":{minWidth:e.spacing(2),height:e.spacing(2),minHeight:e.spacing(2),maxWidth:e.spacing(2),fontSize:e.typography.caption.fontSize,animation:t?`${ve} 300ms ease-out`:"none"}})),ve=_.keyframes` 0% { transform: scale(0) translate(50%, 50%); opacity: 0; } 70% { transform: scale(1.1) translate(50%, -50%); opacity: 1; } 100% { transform: scale(1) translate(50%, -50%); opacity: 1; } `,be=_.keyframes` from { transform: translateY(100%); opacity: 0; } to { transform: translateY(0); opacity: 1; } `,Ee=()=>{const{id:e,uid:t}=(0,l.useCurrentComponent)()??{id:null,uid:null},n=(0,l.useSanitizeOverridableProps)(e),o=C(),r=function(){const e=(0,w.__getState)()[l.SLICE_NAME].path,{instanceTitle:t}=e.at(-1)??{};if(t)return t;const n=(0,p.getV1DocumentsManager)().getCurrent();return n?.container?.settings?.get("post_title")??""}(),[i,a]=(0,v.useSuppressedMessage)("components-properties-introduction"),[s,c]=h.useState(!i),{open:m}=ge(),d=n?Object.keys(n.props).length:0,u=h.useRef(null);return e?h.createElement(_.Box,{"data-testid":"component-panel-header"},h.createElement(g.PanelHeader,{sx:{justifyContent:"start",px:2}},h.createElement(_.Tooltip,{title:(0,y.__)("Back","elementor-pro")},h.createElement(_.IconButton,{size:"tiny",onClick:o,"aria-label":(0,y.__)("Back","elementor-pro")},h.createElement(E.ArrowLeftIcon,{fontSize:"tiny"}))),h.createElement(E.ComponentsFilledIcon,{fontSize:"tiny",stroke:"currentColor"}),h.createElement(b.EllipsisWithTooltip,{title:r,as:_.Typography,variant:"caption",sx:{fontWeight:500,flexGrow:1}}),h.createElement(ye,{overridablePropsCount:d,ref:u,onClick:()=>{m(),(0,l.trackComponentEvent)({action:"propertiesPanelOpened",source:"user",executedBy:"user",component_uid:t,properties_count:d})}})),h.createElement(_.Divider,null),h.createElement(x,{anchorRef:u,shouldShowIntroduction:s,onClose:()=>{a(),c(!1)}})):null};var we=window.elementorV2.editorCanvas,_e=window.elementorV2.editorNotifications;var Ce=window.elementorV2.schema;const xe=Ce.z.string().trim().max(50,(0,y.__)("Component name is too long. Please keep it under 50 characters.","elementor-pro")),Ie=e=>Ce.z.object({componentName:xe.refine(t=>!e.includes(t),{message:(0,y.__)("Component name already exists","elementor-pro")})}),Pe=e=>{const t=Ie(e);return t.extend({componentName:t.shape.componentName.refine(e=>e.length>0,{message:(0,y.__)("Component name is required.","elementor-pro")}).refine(e=>e.length>=2,{message:(0,y.__)("Component name is too short. Please enter at least 2 characters.","elementor-pro")})})},Se=e=>({elType:"widget",widgetType:"e-component",settings:{component_instance:{$$type:"component-instance",value:{component_id:{$$type:"number",value:e.id??e.uid}}}},editor_settings:{component_uid:e.uid}});function Te({open:e,onClose:t,onConfirm:n}){return h.createElement(b.ConfirmationDialog,{open:e,onClose:t},h.createElement(b.ConfirmationDialog.Title,null,(0,y.__)("Delete this component?","elementor-pro")),h.createElement(b.ConfirmationDialog.Content,null,h.createElement(b.ConfirmationDialog.ContentText,null,(0,y.__)("Existing instances on your pages will remain functional. You will no longer find this component in your list.","elementor-pro"))),h.createElement(b.ConfirmationDialog.Actions,{onClose:t,onConfirm:n}))}function Oe(){return Oe=Object.assign?Object.assign.bind():function(e){for(var t=1;t((e,t)=>{l.componentsActions.rename(e,t),(0,p.setDocumentModifiedStatus)(!0),function(e){const t=function(){const e=(0,p.getV1DocumentsManager)();return e?.getCurrent()?.container}();if(!t)return;const n=function(e,t){return(0,P.getAllDescendants)(e).filter(e=>{const n=e.model.get("widgetType"),o=e.model.get("editor_settings");return n===l.COMPONENT_WIDGET_TYPE&&o?.component_uid===t})}(t,e);n.forEach(e=>{e.model.trigger?.("title_external_change")})}(e)})(e.uid,t),validation:Ae}),w=Se(e),C=(0,_.usePopupState)({variant:"popover",disableAutoFocus:!0});return h.createElement(Re,{isAnimating:c},h.createElement(b.WarningInfotip,{open:Boolean(f),text:f??"",placement:"bottom",width:t.current?.getBoundingClientRect().width,offset:[0,-15]},h.createElement(l.ComponentItem,{ref:t,component:e,disabled:s,draggable:!s,onDragStart:e=>(0,we.startDragElementFromPanel)(w,e),onDragEnd:()=>{(0,l.loadComponentsAssets)([w]),(0,we.endDragElementFromPanel)()},onClick:()=>{De(w)},isEditing:u,error:f,nameSlot:h.createElement(l.ComponentName,{name:e.name,editable:{ref:d,isEditing:u,getProps:v}}),endSlot:m?h.createElement(_.IconButton,Oe({size:"tiny"},(0,_.bindTrigger)(C),{"aria-label":"More actions"}),h.createElement(E.DotsVerticalIcon,{fontSize:"tiny"})):void 0})),m&&h.createElement(_.Menu,Oe({},(0,_.bindMenu)(C),{anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"}}),i&&h.createElement(b.MenuListItem,{sx:{minWidth:"160px"},primaryTypographyProps:{variant:"caption",color:"text.primary"},onClick:()=>{C.close(),g()}},(0,y.__)("Rename","elementor-pro")),a&&h.createElement(b.MenuListItem,{sx:{minWidth:"160px"},primaryTypographyProps:{variant:"caption",color:"error.light"},onClick:()=>{r(!0),C.close()}},(0,y.__)("Delete","elementor-pro"))),h.createElement(Te,{open:o,onClose:()=>{r(!1)},onConfirm:()=>{if(!e.id)throw new Error("Component ID is required");var t,n;r(!1),t=e.id,n=e.name,l.componentsActions.archive(t),(0,p.setDocumentModifiedStatus)(!0),(0,_e.notify)(((e,t)=>({type:"success",message:(0,y.__)("Successfully deleted component %s","elementor-pro").replace("%s",t),id:`success-archived-components-notification-${e}`}))(t,n))}}))}const De=e=>{const{container:t,options:n}=(()=>{const e=(0,P.getCurrentDocumentContainer)(),t=function(){const e=(0,P.getSelectedElements)();if(1===e.length)return(0,P.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,l.loadComponentsAssets)([e]),(0,P.dropElement)({containerId:t.id,model:e,options:{...n,useHistory:!1,scrollIntoView:!0}})},Ae=e=>{const t=function(e){const t=l.componentsSelectors.getComponents()?.map(({name:e})=>e)??[],n=Pe(t).safeParse({componentName:e.toLowerCase()});if(n.success)return{isValid:!0,errorMessage:null};const o=n.error.format();return{isValid:!1,errorMessage:o.componentName?._errors[0]??o._errors[0]}}(e);return t.errorMessage?t.errorMessage:null},Le=_.keyframes` 0%, 100% { opacity: 0.4; } 50% { opacity: 0.8; } `,Re=({children:e,isAnimating:t})=>h.createElement(_.Stack,{sx:{animation:t?`${Le} 1.5s ease-in-out infinite`:void 0}},e);var Me=window.elementorV2.events;const Ue=()=>{const{canCreate:e}=(0,l.useComponentsPermissions)();return e&&(0,u.isAngieAvailable)()?h.createElement(_.Box,{sx:{position:"sticky",bottom:0,backgroundColor:"background.default",px:2,pb:2}},h.createElement(_.Stack,{gap:1},h.createElement(_.Divider,null),h.createElement(_.Stack,{direction:"row",alignItems:"center",justifyContent:"space-between"},h.createElement(_.Typography,{variant:"caption",color:"text.secondary"},(0,y.__)("Create components with Angie","elementor-pro")),h.createElement(_.Button,{variant:"text",size:"small",startIcon:h.createElement(E.AIIcon,{fontSize:"small"}),onClick:()=>{(0,Me.trackEvent)({eventName:"angie_cta_clicked",entry_point:"components_tab",has_angie_installed:!0}),(0,u.sendPromptToAngie)("Tell Angie what component you want to build")},sx:{color:"#c00bb9",px:"5px",py:"4px",minWidth:"auto"}},(0,y.__)("Create","elementor-pro"))))):null},ze=()=>h.createElement(_.Box,{sx:{px:2.5,pb:2,position:"sticky",bottom:0,zIndex:1e3}},h.createElement(_.Alert,{variant:"standard",color:"promotion",icon:h.createElement(E.CrownFilledIcon,{fontSize:"tiny"}),"aria-label":"expired-components-promotion",action:h.createElement(_.AlertAction,{color:"promotion",variant:"contained",href:"https://go.elementor.com/renew-license-components-exist-footer/",target:"_blank",rel:"noopener noreferrer"},(0,y.__)("Upgrade Now","elementor-pro")),sx:{maxWidth:296}},h.createElement(_.Box,{sx:{gap:.5,display:"flex",flexDirection:"column"}},h.createElement(_.AlertTitle,null,(0,y.__)("Create New Components","elementor-pro")),h.createElement(_.Typography,{variant:"caption"},(0,y.__)("Your Pro subscription has expired. Renew to create new components.","elementor-pro"))))),Be={fontSize:"0.875rem !important",fontWeight:"500 !important"},Ve=()=>h.createElement(_.Stack,{alignItems:"center",justifyContent:"start",sx:{px:2,pt:4},gap:1.75,overflow:"hidden"},h.createElement(E.ComponentsIcon,{fontSize:"large",sx:{color:"text.secondary"}}),h.createElement(_.Typography,{align:"center",variant:"subtitle2",color:"text.secondary",sx:Be},(0,y.__)("Create Reusable Components","elementor-pro")),h.createElement(_.Typography,{align:"center",variant:"caption",color:"text.secondary"},(0,y.__)("Create design elements that sync across your entire site.","elementor-pro")),h.createElement(b.CtaButton,{size:"small",href:"https://go.elementor.com/renew-license-components/"}));function je({open:e,onClose:t,prompt:n}){const[o,r]=(0,h.useState)("idle"),i=()=>{"installing"!==o&&(r("idle"),t())};return h.createElement(_.Dialog,{fullWidth:!0,maxWidth:"md",open:e,onClose:i},h.createElement(_.IconButton,{"aria-label":(0,y.__)("Close","elementor-pro"),onClick:i,sx:{position:"absolute",right:8,top:8,zIndex:1}},h.createElement(E.XIcon,null)),h.createElement(_.DialogContent,{sx:{p:0,overflow:"hidden"}},h.createElement(_.Stack,{direction:"row",sx:{height:400}},h.createElement(_.Image,{sx:{height:"100%",aspectRatio:"1 / 1",objectFit:"cover",objectPosition:"right center"},src:"https://assets.elementor.com/packages/v1/images/angie-components-promotion.svg"}),h.createElement(_.Stack,{gap:2,justifyContent:"center",p:4},h.createElement(_.Typography,{variant:"h6",fontWeight:600,whiteSpace:"nowrap"},"error"===o?(0,y.__)("Installation failed","elementor-pro"):(0,y.__)("Install Angie to build components","elementor-pro")),h.createElement(_.Typography,{variant:"body2",color:"text.secondary"},"error"===o?(0,y.__)("We couldn't install Angie automatically. Click below to install it manually.","elementor-pro"):(0,y.__)("Angie lets you create components, widgets, sections, and code using simple instructions.","elementor-pro")),"error"!==o&&h.createElement(_.Typography,{variant:"body2",color:"text.secondary"},(0,y.__)("Install once to start building directly inside the editor.","elementor-pro")),h.createElement(_.Stack,{direction:"row",justifyContent:"flex-end",sx:{mt:2}},"error"===o?h.createElement(_.Button,{variant:"contained",color:"accent",onClick:()=>{(0,u.redirectToInstallation)(n)}},(0,y.__)("Install Manually","elementor-pro")):h.createElement(_.Button,{variant:"contained",color:"accent",onClick:async()=>{r("installing"),(0,Me.trackEvent)({eventName:"angie_install_started",trigger_source:"components_tab"}),(await(0,u.installAngiePlugin)()).success?(0,u.redirectToAppAdmin)(n):r("error")},disabled:"installing"===o,startIcon:"installing"===o?h.createElement(_.CircularProgress,{size:18,color:"inherit"}):void 0},"installing"===o?(0,y.__)("Installing…","elementor-pro"):(0,y.__)("Install Angie","elementor-pro")))))))}const Ne=({open:e,onClose:t,onConfirm:n,anchorRef:o})=>{const r=o?.current,i=r?{popper:{anchorEl:r,modifiers:[{name:"offset",options:{offset:[-40,8]}}]}}:void 0;return h.createElement(_.Infotip,{placement:"right-start",content:h.createElement($e,{onClose:e=>{e.stopPropagation(),t()},onConfirm:n}),open:e,slotProps:i},h.createElement("span",null))};function $e({onClose:e,onConfirm:t}){return h.createElement(_.ClickAwayListener,{disableReactTree:!0,mouseEvent:"onMouseDown",touchEvent:"onTouchStart",onClickAway:e},h.createElement(_.Card,{elevation:0,sx:{width:296,borderRadius:"4px"}},h.createElement(_.CardHeader,{title:h.createElement(_.Box,{sx:{display:"flex",alignItems:"center",gap:1}},h.createElement(_.Typography,{variant:"subtitle2"},(0,y.__)("Meet Angie","elementor-pro")),h.createElement(_.Chip,{label:(0,y.__)("New","elementor-pro"),size:"small",sx:{height:24,fontSize:"13px",backgroundColor:"#ebf2fe",color:"#1945a4",borderRadius:"1000px"}})),action:h.createElement(_.CloseButton,{slotProps:{icon:{fontSize:"tiny"}},onClick:e}),sx:{py:1,px:2}}),h.createElement(_.Box,{sx:{position:"relative",width:"100%",height:148}},h.createElement(_.CardMedia,{component:"img",image:"https://assets.elementor.com/packages/v1/images/angie-components-promotion.svg",alt:"",sx:{width:"100%",height:"100%",objectFit:"cover"}}),h.createElement(_.Box,{sx:{position:"absolute",inset:0,backgroundColor:"rgba(255, 0, 191, 0.6)",pointerEvents:"none"}})),h.createElement(_.CardContent,{sx:{px:2,py:1}},h.createElement(_.Typography,{variant:"body2",color:"text.secondary"},(0,y.__)("Build components using simple instructions.","elementor-pro"))),h.createElement(_.CardActions,{sx:{justifyContent:"flex-end",px:2,pb:1.5,pt:1}},h.createElement(_.Button,{variant:"contained",size:"small",onClick:t,sx:{backgroundColor:"#f0abfc",color:"#0c0d0e","&:hover":{backgroundColor:"#e879f9"}}},(0,y.__)("Start building","elementor-pro")))))}const Ge="Tell Angie what component you want to build",Ke={fontSize:"0.875rem !important",fontWeight:"500 !important"},Fe=()=>{const{canCreate:e}=(0,l.useComponentsPermissions)(),{shouldShowIntro:t,suppressIntro:n}=(()=>{const[e,t]=(0,v.useSuppressedMessage)("angie-components-intro");return{shouldShowIntro:!e,suppressIntro:t}})(),[o,r]=(0,h.useState)(!1),[i,a]=(0,h.useState)(!1),s=(0,h.useRef)(null),c=navigator.platform.toUpperCase().indexOf("MAC")>=0?"Cmd":"Ctrl";return h.createElement(_.Stack,{alignItems:"center",justifyContent:"start",height:"100%",sx:{px:2,py:4},gap:1,overflow:"hidden"},h.createElement(_.Stack,{alignItems:"center",gap:1.75},h.createElement(E.ComponentsIcon,{fontSize:"large",sx:{color:"text.secondary"}}),h.createElement(_.Stack,{alignItems:"center",gap:1.75},h.createElement(_.Typography,{align:"center",variant:"subtitle2",color:"text.secondary",sx:Ke},(0,y.__)("Create your first component","elementor-pro")),h.createElement(_.Typography,{align:"center",variant:"caption",color:"text.tertiary"},e?`${(0,y.__)("To create, press","elementor-pro")} ${c}+ Shift + K ${(0,y.__)("on div-block or flexbox.","elementor-pro")}`:(0,y.__)("With your current role, you cannot create components. Contact an administrator to create one.","elementor-pro")))),e&&(!!(0,u.isAngieAvailable)()||!!window.elementor?.config?.user?.is_administrator)&&h.createElement(_.Stack,{alignItems:"center",gap:1,width:"100%"},h.createElement(_.Typography,{variant:"subtitle2",color:"text.primary",sx:{py:.5,fontWeight:500}},(0,y.__)("Or","elementor-pro")),h.createElement(_.Stack,{alignItems:"center",gap:1},h.createElement(_.Typography,{align:"center",variant:"caption",color:"text.tertiary"},(0,y.__)("Create a custom component with Angie","elementor-pro")),h.createElement(_.Link,{ref:s,component:"button",variant:"caption",onClick:()=>{const e=(0,u.isAngieAvailable)();(0,Me.trackEvent)({eventName:"angie_cta_clicked",entry_point:"components_tab",has_angie_installed:e}),e?(0,u.isAngieSidebarOpen)()?(0,u.sendPromptToAngie)(Ge):t?r(!0):(0,u.sendPromptToAngie)(Ge):a(!0)},sx:{display:"flex",alignItems:"center",padding:.5,gap:.5,color:"#c00bb9",textDecoration:"none","&:hover":{textDecoration:"underline"}}},h.createElement(E.AIIcon,{sx:{fontSize:16}}),(0,y.__)("Create component","elementor-pro")),h.createElement(Ne,{open:o,onClose:()=>{r(!1)},onConfirm:()=>{n(),r(!1),(0,u.sendPromptToAngie)(Ge)},anchorRef:s}))),h.createElement(_.Stack,{alignItems:"center",gap:.5,sx:{mt:"auto",width:"100%"}},h.createElement(_.Divider,{sx:{width:"100%",mb:2}}),h.createElement(_.Typography,{align:"center",variant:"caption",color:"text.tertiary"},(0,y.__)("Components are reusable elements that sync across your site.","elementor-pro")),h.createElement(_.Link,{href:"http://go.elementor.com/components-guide-article",target:"_blank",rel:"noopener noreferrer",variant:"caption",color:"info.main"},(0,y.__)("Learn more","elementor-pro"))),h.createElement(je,{open:i,onClose:()=>{a(!1)},prompt:Ge}))},He=()=>h.createElement(b.ThemeProvider,null,h.createElement(l.SearchProvider,{localStorageKey:"elementor-components-search"},h.createElement(qe,null))),qe=()=>{const{components:e,isLoading:t}=(0,l.useComponents)(),n=!t&&e.length>0;return h.createElement(h.Fragment,null,n&&h.createElement(l.ComponentSearch,null),h.createElement(Ye,null))},We="components-empty-state-full-height",Ye=()=>{const{isLoading:e}=(0,l.useComponents)(),{components:t,isLoading:o,searchValue:r}=(0,l.useFilteredComponents)(),{data:i=!1,isPending:a}=(0,n.useIsLicenseExpired)();if((0,h.useLayoutEffect)(()=>{let e=document.getElementById(We);return e||(e=document.createElement("style"),e.id=We,e.textContent="\n#elementor-panel-page-elements {\n\tdisplay: flex;\n\tflex-direction: column;\n\theight: 100%;\n}\n\n#elementor-panel-elements {\n\tdisplay: flex;\n\tflex-direction: column;\n\tflex: 1;\n\tmin-height: 0;\n}\n\n#elementor-panel-elements-wrapper {\n\tdisplay: flex;\n\tflex-direction: column;\n\tflex: 1;\n\tmin-height: 0;\n}\n",document.head.appendChild(e)),()=>{document.getElementById(We)?.remove()}},[]),o||e||a)return h.createElement(l.LoadingComponents,null);const s=!t?.length,c=r.length>0;return s?c?h.createElement(l.EmptySearchResult,null):i?h.createElement(Ve,null):h.createElement(Fe,null):h.createElement(_.Stack,{justifyContent:"space-between",sx:{flex:1,minHeight:0}},h.createElement(_.List,{sx:{display:"flex",flexDirection:"column",gap:1,px:2}},t.map(e=>h.createElement(ke,{key:e.uid,component:e}))),i?h.createElement(ze,null):h.createElement(Ue,null))};function Je(){const{canEdit:e}=(0,l.useComponentsPermissions)(),t=(0,l.useInstancePanelData)();if(!t)return null;const{componentId:n,component:o,overrides:r,overridableProps:i,groups:a,isEmpty:s,componentInstanceId:c}=t,p=(0,y.__)("Edit %s","elementor-pro").replace("%s",o.name),m=()=>(0,l.switchToComponent)(n,c),d=h.createElement(_.Stack,{direction:"row",gap:.5},h.createElement(l.DetachAction,{componentInstanceId:c,componentId:n}),e?h.createElement(l.EditComponentAction,{label:p,onClick:m,icon:E.PencilIcon}):null);return h.createElement(_.Box,{"data-testid":"instance-editing-panel",sx:{height:"100%"}},h.createElement(l.ComponentInstanceProvider,{componentId:n,overrides:r,overridableProps:i},h.createElement(l.InstancePanelHeader,{componentName:o.name,actions:d}),h.createElement(l.InstancePanelBody,{groups:a,isEmpty:s,emptyState:h.createElement(l.InstanceEmptyState,{onEditComponent:e?m:void 0}),componentInstanceId:c})))}function Xe(){return Xe=Object.assign?Object.assign.bind():function(e){for(var t=1;t!e.id||e.id!==o);if(!d)return null;if(!r?.override_key)throw new Error("Override key is required");const f="e-component"===n.key,y=u?.props?.[r.override_key],v=n.propsSchema[i],b=(y?(0,l.getPropTypeForComponentOverride)(y):void 0)??v;if(!b)return null;const E=(0,m.createTopLevelObjectType)({schema:{[i]:b}}),w=f?(r.origin_value?.value).override_value:r.origin_value,_=s?{[i]:s}:void 0;return h.createElement(l.OverridablePropProvider,{value:r},h.createElement(c.PropProvider,Xe({},p,{propType:E,setValue:e=>{const t={...r,origin_value:e[i]};a(t),f||(0,l.updateOverridableProp)(d,t,y?.originPropFields)},value:{[i]:w},placeholder:_}),h.createElement(c.PropKeyProvider,{bind:i},h.createElement(c.ControlReplacementsProvider,{replacements:g},h.createElement(Qe,{OriginalControl:e,props:t})))))}function Qe({OriginalControl:e,props:t}){const{ControlToRender:n,isReplaced:o}=(0,c.useControlReplacement)(e);if(o){const o=n;return h.createElement(o,Xe({},t,{OriginalControl:e}))}return h.createElement(e,t)}function et({componentId:e,overrideKey:t,elementId:n,label:o,groupId:r,propKey:i,elType:a,widgetType:s,originValue:c,originPropFields:p,executedBy:m}){const d=l.componentsSelectors.getOverridableProps(e);if(!d)throw new Error(`Component not found for componentId: ${e}`);const u=Object.values(d.props).filter(e=>e.elementId===n&&e.propKey===i),{groups:g,groupId:f}=function(e,t){return t&&e.items[t]?{groups:e,groupId:t}:!t&&e.order.length>0?{groups:e,groupId:e.order[0]}:function(e,t){const n=t||(0,I.generateUniqueId)("group"),o=(0,y.__)("Default","elementor-pro");return{groups:{...e,items:{...e.items,[n]:{id:n,label:o,props:[]}},order:[...e.order,n]},groupId:n}}(e,t)}(d.groups,r??void 0),h={overrideKey:t||(0,I.generateUniqueId)("prop"),label:o,elementId:n,propKey:i,widgetType:s,elType:a,originValue:c,groupId:f,originPropFields:p},v=function(e,t){const n=t.map(e=>e.overrideKey);return{props:Object.fromEntries(Object.entries(e.props).filter(([,e])=>!t.includes(e))),groups:{items:Object.fromEntries(Object.entries(e.groups.items).map(([e,t])=>[e,{...t,props:t.props.filter(e=>!n.includes(e))}])),order:e.groups.order.filter(e=>!n.includes(e))}}}({...d,groups:g},u),b={...v.props,[h.overrideKey]:h};let E=D(v.groups,f,h.overrideKey);E=function(e,t){return e.order.includes(t)?e:{...e,order:[...e.order,t]}}(E,f),l.componentsActions.setOverridableProps(e,{props:b,groups:E});const w=l.componentsSelectors.getCurrentComponent();return(0,l.trackComponentEvent)({action:"propertyExposed",source:m,executedBy:m,component_uid:w?.uid,property_id:h.overrideKey,property_path:i,property_name:o,element_type:s??a}),h}function tt(){return tt=Object.assign?Object.assign.bind():function(e){for(var t=1;t svg { position: absolute; top: 50%; left: 50%; transform: translate( -50%, -50% ); width: 10px; height: 10px; fill: ${({theme:e})=>e.palette.primary.contrastText}; stroke: ${({theme:e})=>e.palette.primary.contrastText}; stroke-width: 2px; } `,rt=(0,_.styled)(_.Box)` position: relative; display: flex; align-items: center; justify-content: center; cursor: pointer; width: 16px; height: 16px; margin-inline: ${({theme:e})=>e.spacing(.5)}; &:before { content: ''; display: block; position: absolute; top: 50%; left: 50%; transform: translate( -50%, -50% ) rotate( 45deg ); width: 5px; height: 5px; border-radius: 1px; background-color: ${({theme:e})=>e.palette.primary.main}; transition: all 0.1s ease-in-out; } &:hover, &.enlarged { &:before { width: 12px; height: 12px; border-radius: 2px; } .icon { opacity: 1; } } `,it=(0,h.forwardRef)(({isOpen:e,isOverridable:t,...n},o)=>h.createElement(rt,tt({role:"button",ref:o},n,{className:e||t?"enlarged":"","aria-label":t?(0,y.__)("Overridable property","elementor-pro"):(0,y.__)("Make prop overridable","elementor-pro")}),h.createElement(ot,{className:"icon"},t?h.createElement(E.CheckIcon,{fontSize:nt}):h.createElement(E.PlusIcon,{fontSize:nt}))));function at(){return at=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const n=({componentOverridablePropConfig:t,elementOriginValue:n})=>{const o=et(t);return e({override_key:o.overrideKey,origin_value:n},void 0,{withHistory:!1}),(0,p.setDocumentModifiedStatus)(!0),{createdOverridableProp:o}};return(0,f.undoable)({do:({componentOverridablePropConfig:e,elementOriginValue:t})=>n({componentOverridablePropConfig:e,elementOriginValue:t}),undo:({componentOverridablePropConfig:e,elementOriginValue:n},{createdOverridableProp:o})=>{A({componentId:e.componentId,propKey:o.overrideKey,executedBy:"system",revertElementOverridable:!1}),t(n,void 0,{withHistory:!1})},redo:({elementOriginValue:e,componentOverridablePropConfig:t},{createdOverridableProp:o})=>n({componentOverridablePropConfig:{...t,overrideKey:o.overrideKey},elementOriginValue:e})},{title:({componentOverridablePropConfig:e})=>e.label,subtitle:(0,y.__)("property exposed","elementor-pro")})},[t,e])}({setElementOverridableValue:v,setElementOriginValue:s}),E=g??d,w=(0,_.usePopupState)({variant:"popover"}),C=(0,_.bindTrigger)(w),x=(0,_.bindPopover)(w),{elType:I}=(0,P.getWidgetsCache)()?.[o.key]??{elType:"widget"},S=E?(0,l.getOverridableProp)({componentId:e,overrideKey:E.override_key}):void 0;return h.createElement(h.Fragment,null,h.createElement(_.Tooltip,{placement:"top",title:(0,y.__)("Override Property","elementor-pro")},h.createElement(it,at({},C,{isOpen:!!x.open,isOverridable:!!E}))),h.createElement(_.Popover,at({disableScrollLock:!0,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},PaperProps:{sx:{my:2.5}}},x),h.createElement(j,{onSubmit:({label:s,group:c})=>{const p=E?t?.props?.[E.override_key]:void 0;if(p)L({componentId:e,overrideKey:p.overrideKey,label:s,groupId:c});else{const t=a.default??{},p=(0,l.resolveOverridePropValue)(E?.origin_value)??r??t,m={componentId:e,overrideKey:E?.override_key??null,elementId:u?.element.id??n,label:s,groupId:c,propKey:i,elType:I??"widget",widgetType:u?.elementType.key??o.key,originValue:p,executedBy:"user"};b({componentOverridablePropConfig:m,elementOriginValue:p})}w.close()},groups:t?.groups.order.map(e=>({value:e,label:t.groups.items[e].label})),existingLabels:Object.values(t?.props??{}).map(e=>e.label),currentValue:S})))}function ct(e,t){Object.values(t.props).forEach(t=>{const n=pt(e,t.elementId);n?.settings&&(n.settings[t.propKey]={$$type:"overridable",value:{override_key:t.overrideKey,origin_value:n.settings[t.propKey]}})})}function pt(e,t){for(const n of e){if(n.id===t)return n;if(n.elements){const e=pt(n.elements,t);if(e)return e}}return null}const mt=(e,t)=>(0,P.replaceElement)({currentElementId:e.id,newElement:Se(t),withHistory:!1});async function dt({name:e,element:t,eventData:n,uid:o,overridableProps:r,executedBy:i}){const a=o??(0,I.generateUniqueId)("component"),s={uid:a,name:e},c=[k(t)];r&&ct(c,r);const p=(0,P.getContainer)(t.id),m=p?.model?.toJSON?.(),d={model:m??t,parentId:p?.parent?.id??"",index:p?.view?._index??0};l.componentsActions.addUnpublished({...s,elements:c,overridableProps:r}),l.componentsActions.addCreatedThisSession(a);const u=mt(t,s);(0,l.trackComponentEvent)({action:"created",source:i,executedBy:i,component_uid:a,component_name:e,...n});try{await(0,f.__privateRunCommand)("document/save/auto")}catch(e){throw function(e,t){const n=(0,P.getContainer)(t);n&&(0,P.deleteElement)({container:n,options:{useHistory:!1}});const o=(0,P.getContainer)(e.parentId);if(!o)return;const r=structuredClone(e.model);(0,P.createElements)({title:(0,y.__)("Restore Element","elementor-pro"),elements:[{container:o,model:r,options:{at:e.index}}]})}(d,u.id),l.componentsActions.removeUnpublished(a),l.componentsActions.removeCreatedThisSession(a),e}try{await(0,l.loadComponentsAssets)([u.model.toJSON()])}catch{}return{uid:a,instanceId:u.id}}function ut(){return null!==l.componentsSelectors.getCurrentComponentId()}const gt={type:"default",message:(0,y.__)("This widget isn't compatible with components. Use atomic elements instead.","elementor-pro"),id:"non-atomic-element-blocked"};function ft(e){return null!==(0,P.getElementType)(e)}function yt(e){if(!ut())return!1;const{model:t}=e,n=t?.widgetType||t?.elType;return!!n&&!ft(n)&&((0,_e.notify)(gt),!0)}function ht(e){if(!ut())return!1;const{containers:t=[e.container]}=e,n=t.some(e=>!!e&&(0,P.getAllDescendants)(e).some(e=>!(0,we.isAtomicWidget)(e)));return n&&(0,_e.notify)(gt),n}function vt(e){if(!ut())return!1;const{storageType:t}=e;if("localstorage"!==t)return!1;const n=window?.elementorCommon?.storage?.get();if(!n?.clipboard?.elements)return!1;const o=bt(n.clipboard.elements);return o&&(0,_e.notify)(gt),o}function bt(e){for(const t of e){const e=t.widgetType||t.elType;if(e&&!ft(e))return!0;if(t.elements?.length&&bt(t.elements))return!0}return!1}function Et(e){const t=[],n=e.widgetType||e.elType;if(n&&!ft(n)&&t.push(n),e.elements?.length)for(const n of e.elements)t.push(...Et(n));return[...new Set(t)]}const wt=e=>{const[t,n]=(0,h.useState)(e),[o,r]=(0,h.useState)({}),i=(0,h.useMemo)(()=>!Object.values(o).some(e=>e),[o]);return{values:t,errors:o,isValid:i,handleChange:(e,o,i)=>{const a={...t,[o]:e.target.value};n(a);const{success:s,errors:l}=_t(a,i);r(s?{}:l)},validateForm:e=>{const{success:n,errors:o,parsedValues:i}=_t(t,e);return n?(r({}),{success:n,parsedValues:i}):(r(o),{success:n})}}},_t=(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}},Ct=(e,t)=>{const{elementsCount:n,componentsCount:o}=xt(e);return{nested_elements_count:n,nested_components_count:o,top_element_type:e.elType,location:t?.location,secondary_location:t?.secondaryLocation,trigger:t?.trigger}};function xt(e){if(!e.elements||0===e.elements.length)return{elementsCount:0,componentsCount:0};let t=e.elements.length,n=0;for(const o of e.elements){"e-component"===o.widgetType&&n++;const{elementsCount:e,componentsCount:r}=xt(o);t+=e,n+=r}return{elementsCount:t,componentsCount:n}}const It=100;function Pt(){const[e,t]=(0,h.useState)(null),[n,o]=(0,h.useState)(),{components:r}=(0,l.useComponents)(),i=(0,h.useRef)(null);(0,h.useEffect)(()=>{const e="elementor/editor/open-save-as-component-form",n=e=>{const{shouldOpen:n,notification:a}=function(e,t){return Et(e).length>0?{shouldOpen:!1,notification:{type:"default",message:(0,y.__)("Components require atomic elements only. Remove widgets to create this component.","elementor-pro"),id:"non-atomic-element-save-blocked"}}:t>=It?{shouldOpen:!1,notification:{type:"default",message:(0,y.__)("You've reached the limit of %s components. Please remove an existing one to create a new component.","elementor-pro").replace("%s",It.toString()),id:"maximum-number-of-components-exceeded"}}:{shouldOpen:!0,notification:null}}(e.detail.element,r?.length??0);n?(t({element:e.detail.element,elementLabel:(0,P.getElementLabel)(e.detail.element.id)}),o(e.detail.anchorPosition),i.current=Ct(e.detail.element,e.detail.options),(0,l.trackComponentEvent)({action:"createClicked",source:"user",executedBy:"user",...i.current})):(0,_e.notify)(a)};return window.addEventListener(e,n),()=>{window.removeEventListener(e,n)}},[r?.length]);const a=()=>{t(null),o(void 0)},s=()=>{a(),(0,l.trackComponentEvent)({action:"createCancelled",source:"user",executedBy:"user",...i.current})};return h.createElement(b.ThemeProvider,null,h.createElement(_.Popover,{open:null!==e,onClose:s,anchorReference:"anchorPosition",anchorPosition:n,"data-testid":"create-component-form"},null!==e&&h.createElement(Tt,{initialValues:{componentName:e.elementLabel},handleSave:async t=>{try{if(!e)throw new Error("Can't save element as component: element not found");const{uid:n,instanceId:o}=await dt({name:t.componentName,element:e.element,eventData:i.current,executedBy:"user"}),r=l.componentsSelectors.getComponentByUid(n)?.id;if(!r)throw new Error("Failed to find published component");(0,l.switchToComponent)(r,o),(0,_e.notify)({type:"success",message:(0,y.__)("Component created successfully.","elementor-pro"),id:`component-saved-successfully-${n}`}),a()}catch{const e=(0,y.__)("Failed to create component. Please try again.","elementor-pro");(0,_e.notify)({type:"error",message:e,id:"component-save-failed"}),a()}},closePopup:s})))}const St="tiny",Tt=({initialValues:e,handleSave:t,closePopup:n})=>{const{values:o,errors:r,isValid:i,handleChange:a,validateForm:s}=wt(e),c=(0,b.useTextFieldAutoSelect)(),{components:p}=(0,l.useComponents)(),m=(0,h.useMemo)(()=>p?.map(e=>e.name)??[],[p]),d=(0,h.useMemo)(()=>Ie(m),[m]),u=(0,h.useMemo)(()=>Pe(m),[m]),g={heading:(0,y.__)("Create component","elementor-pro"),name:(0,y.__)("Name","elementor-pro"),cancel:(0,y.__)("Cancel","elementor-pro"),create:(0,y.__)("Create","elementor-pro")},f="component-name";return h.createElement(b.Form,{onSubmit:()=>{const{success:e,parsedValues:n}=s(u);e&&t(n)}},h.createElement(_.Stack,{alignItems:"start",width:"268px"},h.createElement(_.Stack,{direction:"row",alignItems:"center",py:1,px:1.5,sx:{columnGap:.5,borderBottom:"1px solid",borderColor:"divider",width:"100%"}},h.createElement(E.ComponentsIcon,{fontSize:St}),h.createElement(_.Typography,{variant:"caption",sx:{color:"text.primary",fontWeight:"500",lineHeight:1}},g.heading)),h.createElement(_.Grid,{container:!0,gap:.75,alignItems:"start",p:1.5},h.createElement(_.Grid,{item:!0,xs:12},h.createElement(_.FormLabel,{htmlFor:f,size:"tiny"},g.name)),h.createElement(_.Grid,{item:!0,xs:12},h.createElement(_.TextField,{id:f,size:St,fullWidth:!0,value:o.componentName,onChange:e=>a(e,"componentName",d),inputProps:{style:{color:"text.primary",fontWeight:"600"}},error:Boolean(r.componentName),helperText:r.componentName,inputRef:c}))),h.createElement(_.Stack,{direction:"row",justifyContent:"flex-end",alignSelf:"end",py:1,px:1.5},h.createElement(_.Button,{onClick:n,color:"secondary",variant:"text",size:"small"},g.cancel),h.createElement(_.Button,{type:"submit",disabled:!i,variant:"contained",color:"primary",size:"small"},g.create))))};function Ot(e){l.componentsActions.setPath(e.path),l.componentsActions.setCurrentComponentId(e.currentComponentId)}var kt=window.ReactDOM;const Dt=(0,N.isCoreAtLeast)("4.2.0"),At=Dt?we.useCanvasDocument:function(){return(0,f.__privateUseListenTo)((0,f.commandEndEvent)("editor/documents/attach-preview"),()=>(0,f.getCanvasIframeDocument)())},Lt=Dt?we.useEscapeOnCanvas:function(e,t){(0,h.useEffect)(()=>{if(!e)return;const n=e=>{"Escape"===e.key&&t()};return e.body.addEventListener("keydown",n),()=>{e.body.removeEventListener("keydown",n)}},[e,t])},Rt=Dt?we.SpotlightBackdrop:function({canvas:e,element:t,onExit:n,ariaLabel:o}){const r=function(e){const[t,n]=(0,h.useState)(new DOMRect(0,0,0,0)),o=(0,I.throttle)(()=>{n(e?.getBoundingClientRect()??new DOMRect(0,0,0,0))},20,!0);return function({element:e,onChange:t}){(0,h.useEffect)(()=>{if(!e)return;const n=e.ownerDocument?.defaultView;return n?.addEventListener("scroll",t,{passive:!0}),()=>{n?.removeEventListener("scroll",t)}},[e,t])}({element:e,onChange:o}),function({element:e,onChange:t}){(0,h.useEffect)(()=>{if(!e)return;const n=new ResizeObserver(t);n.observe(e);const o=e.ownerDocument?.defaultView;return o?.addEventListener("resize",t,{passive:!0}),()=>{n.disconnect(),o?.removeEventListener("resize",t)}},[e,t])}({element:e,onChange:o}),function({element:e,onChange:t}){(0,h.useEffect)(()=>{if(!e)return;const n=new MutationObserver(t);return n.observe(e,{childList:!0,subtree:!0}),()=>{n.disconnect()}},[e,t])}({element:e,onChange:o}),(0,h.useEffect)(()=>()=>{o.cancel()},[o]),t}(t),i={position:"fixed",top:0,left:0,width:"100vw",height:"100vh",backgroundColor:"rgba(0, 0, 0, 0.5)",zIndex:999,pointerEvents:"painted",cursor:"pointer",clipPath:t?function(e,t){const{x:n,y:o,width:r,height:i}=e,{innerWidth:a,innerHeight:s}=t;return`path(evenodd, 'M 0 0 L ${a} 0 L ${a} ${s} L 0 ${s} Z M ${n} ${o} L ${n+r} ${o} L ${n+r} ${o+i} L ${n} ${o+i} L ${n} ${o} Z')`}(r,e.defaultView):void 0};return h.createElement("div",{style:i,onClick:n,onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),n())},role:"button",tabIndex:0,"aria-label":o})};function Mt({topLevelElementDom:e,onClose:t}){const n=At();return Lt(n,t),n?.body?(0,kt.createPortal)(h.createElement(h.Fragment,null,h.createElement(Ut,null),h.createElement(Rt,{canvas:n,element:e,onExit:t,ariaLabel:(0,y.__)("Exit component editing mode","elementor-pro")})),n.body):null}function Ut(){return h.createElement("style",{"data-e-style-id":"e-block-v3-document-handles-styles"},"\n\t.elementor-editor-active {\n\t\t& .elementor-section-wrap.ui-sortable {\n\t\t\tdisplay: contents;\n\t\t}\n\n\t\t& *[data-editable-elementor-document]:not(.elementor-edit-mode):hover {\n\t\t\t& .elementor-document-handle:not(.elementor-document-save-back-handle) {\n\t\t\t\tdisplay: none;\n\n\t\t\t\t&::before,\n\t\t\t\t& .elementor-document-handle__inner {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t")}function zt(){const e=(0,l.useCurrentComponentId)();!function(){const e=(0,p.getV1DocumentsManager)(),t=(0,l.useCurrentComponentId)(),n=(0,w.__useSelector)(l.selectPath);(0,h.useEffect)(()=>(0,f.__privateListenTo)((0,f.commandEndEvent)("editor/documents/open"),()=>{const o=e.getCurrent();o.id!==t&&(t&&l.apiClient.unlockComponent(t),l.componentsActions.resetSanitizedComponents(),o.config.type===i?Ot({path:Bt(n,o),currentComponentId:o.id}):Ot({path:[],currentComponentId:null}))}),[n,e,t])}();const t=C(),n=(0,I.throttle)(t,100),o=function(e){const{componentContainerDomElement:t,topLevelElementDom:n}=function(e){if(!e)return{componentContainerDomElement:null,topLevelElementDom:null};const t=(0,p.getV1DocumentsManager)().get(e),n=t?.container,o=n?.view?.el?.children?.[0]??null;return{componentContainerDomElement:o,topLevelElementDom:o?.children[0]??null}}(e),[o,r]=(0,h.useState)(n);return(0,h.useEffect)(()=>{r(n)},[n]),(0,h.useEffect)(()=>{if(!t)return;const e=new MutationObserver(()=>{const e=t.children[0];r(e)});return e.observe(t,{childList:!0}),()=>{e.disconnect()}},[t]),o}(e??void 0);return e?h.createElement(Mt,{topLevelElementDom:o,onClose:n}):null}function Bt(e,t){const n=e.findIndex(({componentId:e})=>e===t.id);if(n>=0)return e.slice(0,n+1);const o=t?.container.view?.el?.dataset.id,r=function(e,t){if(!e)return;const n=(0,p.getV1DocumentsManager)(),o=t.at(-1)?.componentId??n.getInitialId(),r=n.get(o),i=r?.container,a=i?.children?.findRecursive?.(t=>t.id===e),s=a?.model?.get?.("editor_settings");return s?.title}(o,e);return[...e,{instanceId:o,instanceTitle:r,componentId:t.id}]}var Vt=window.elementorV2.editorTemplatesExtended;const jt=()=>(0,Vt.isCoreHandlingTemplateStyles)()?null:h.createElement(Nt,null);function Nt(){const e=(0,Vt.useLoadedTemplates)();return(0,h.useEffect)(()=>{(0,l.loadComponentsAssets)(e.flatMap(e=>e??[]))},[e]),null}const $t=new Map;function Gt(){return(0,h.useEffect)(()=>{(0,f.registerDataHook)("dependency","document/elements/delete",(e,t)=>{if(function(e){const t=e?.commandsCurrentTrace?.includes("document/elements/move")||e?.commandsCurrentTrace?.includes("document/repeater/move");return Boolean(t)}(t))return!0;const n=e.containers??(e.container?[e.container]:[]);if(0===n.length)return!0;const o=function(e){return e.filter(Boolean).flatMap(e=>[e,...(0,P.getAllDescendants)(e)]).map(e=>e.model?.get?.("id")??e.id).filter(e=>Boolean(e))}(n);return 0===o.length||Kt(o,t?.currentHistoryItemId),!0}),(0,f.registerDataHook)("after","document/history/undo",async(e,t)=>{t?.originHistoryItemId&&Ft(t.originHistoryItemId)}),(0,f.registerDataHook)("after","document/history/redo",(e,t)=>{t?.originHistoryItemId&&Ht(t.originHistoryItemId)});const e=function(){const e=e=>{const{detachedInstanceId:t,detachActionId:n}=e.detail;Kt([t],n)},t=e=>{const{detachActionId:t}=e.detail;Ft(t)},n=e=>{const{detachActionId:t}=e.detail;Ht(t)};return window.addEventListener(qt,e),window.addEventListener(Wt,t),window.addEventListener(Yt,n),()=>{window.removeEventListener(qt,e),window.removeEventListener(Wt,t),window.removeEventListener(Yt,n)}}();return(0,f.registerDataHook)("after","editor/documents/attach-preview",()=>{$t.clear()}),()=>{e()}},[]),null}function Kt(e,t){const n=l.componentsSelectors.getCurrentComponentId();if(!n)return;const o=l.componentsSelectors.getOverridableProps(n);if(!o||0===Object.keys(o.props).length)return;const r=Object.values(o.props).filter(t=>e.includes(t.elementId));0!==r.length&&(void 0!==t&&$t.set(t,{props:r,elementIds:e}),A({componentId:n,propKey:r.map(e=>e.overrideKey),executedBy:"system",revertElementOverridable:!1}))}function Ft(e){const t=l.componentsSelectors.getCurrentComponentId();if(!t)return;const n=$t.get(e);if(!n)return;(0,N.isCoreAtLeast)("4.1.0")&&(0,we.doAfterRender)(n.elementIds,()=>{for(const e of n.props)et({componentId:t,...e,executedBy:"system"})})}function Ht(e){const t=l.componentsSelectors.getCurrentComponentId();if(!t)return;const n=$t.get(e);n&&A({componentId:t,propKey:n.props.map(e=>e.overrideKey),executedBy:"system",revertElementOverridable:!1})}const qt="elementor/components/detach-instance",Wt="elementor/components/undo-detach-instance",Yt="elementor/components/redo-detach-instance";function Jt(){const e=(0,l.useCurrentComponentId)(),t=(0,l.useOverridableProps)(e),n=(0,l.useIsSanitizedComponent)(e,"overridableProps");return(0,h.useEffect)(()=>{if(n||!t||!e)return;const o=(0,l.filterValidOverridableProps)(t),r=Object.keys(t.props??{}).filter(e=>!o.props[e]);var i;r.length>0&&r.forEach(t=>{A({componentId:e,propKey:t,executedBy:"system"})}),i=e,l.componentsActions.updateComponentSanitizedAttribute(i,"overridableProps")},[e,n,t]),null}function Xt(){return h.createElement(en,null,h.createElement(ue.component,null))}function Zt(){return h.createElement(en,null,h.createElement(Pt,null),h.createElement(zt,null))}function Qt(){return h.createElement(en,null,h.createElement(Jt,null),h.createElement(jt,null),h.createElement(Gt,null))}function en({children:e}){const{data:t,isFetched:o}=(0,n.useHasFeature)(r);return o&&t?h.createElement(h.Fragment,null,e):null}const tn="elementor://components/list",nn=e=>{const{resource:t,sendResourceUpdated:n}=e;t("components-list",tn,{description:"Live list of all reusable components (published and unpublished) with full component data."},()=>({contents:[{uri:tn,mimeType:"application/json",text:JSON.stringify([...l.componentsSelectors.getComponents()??[],...l.componentsSelectors.getUnpublishedComponents()??[]])}]})),(0,w.__subscribeWithSelector)(e=>e[l.SLICE_NAME],()=>{n({uri:tn})})};var on=window.elementorV2.httpClient;const rn={action:Ce.z.enum(["save","get"]).describe('The operation to perform: "get" - retrieve a specific component by UID; "save" - create a new component from an existing element.'),element_id:Ce.z.string().optional().describe('[Required for "save"] The unique identifier of the element to save as a component. Use the "list-elements" tool to find available element IDs in the current document.'),component_name:Ce.z.string().optional().describe('[Required for "save"] The name for the new component. Should be descriptive and unique among existing components. Must be unique among all components.'),overridable_props:Ce.z.object({props:Ce.z.record(Ce.z.object({elementId:Ce.z.string().describe("The id of the child element that you want to override its settings"),propKey:Ce.z.string().describe('The property key of the child element that you want to override its settings (e.g., "text", "url", "tag"). To get the available propKeys for an element, use the "get-element-type-config" tool.'),label:Ce.z.string().describe('A unique, user-friendly display name for this property (e.g., "Hero Headline", "CTA Button Text"). Must be unique within the same component.'),group:Ce.z.string().optional().describe("Non unique, optional property grouping")}))}).optional().describe('[Optional for "save"] Overridable properties configuration. Specify which CHILD element properties can be customized. Only elementId and propKey are required; To get the available propKeys for a child element you must use the "get-element-type-config" tool.'),groups:Ce.z.array(Ce.z.string()).describe('[Optional for "save"] Property Groups, by order, unique values').optional(),component_uid:Ce.z.string().optional().describe('[Required for "get"] The unique identifier of the component to retrieve.')},an={message:Ce.z.string().optional().describe("Additional information about the operation result"),component_uid:Ce.z.string().optional().describe('The unique identifier of the newly created component (only present on "save" success)'),component:Ce.z.object({uid:Ce.z.string(),name:Ce.z.string(),status:Ce.z.enum(["published","unpublished"]),id:Ce.z.number().optional(),overridableProps:Ce.z.unknown().optional(),elements:Ce.z.array(Ce.z.any()).optional().describe("The elements of the component (only when component is unpublished)")}).optional().describe('The requested component data (only present on "get")')},sn=async e=>{const{action:t}=e;switch(t){case"get":return async function(e){const{component_uid:t}=e;if(!t)throw new Error('component_uid is required for the "get" action.');const n=l.componentsSelectors.getComponentByUid(t);if(!n)throw new Error(`Component with UID "${t}" not found.`);const o="id"in n;let r;if(o){const e=(0,p.getV1DocumentsManager)();try{const t=await e.request(n.id);r=t?.elements}catch{r=void 0}}return{status:"ok",component:{uid:n.uid,name:n.name,status:o?"published":"unpublished",id:o?n.id:void 0,overridableProps:n.overridableProps,elements:r}}}(e);case"save":return async function(e){const{groups:t=[],element_id:n,component_name:o,overridable_props:r}=e;if(!n)throw new Error('element_id is required for the "save" action.');if(!o)throw new Error('component_name is required for the "save" action.');const i=function(){const e=(0,P.getWidgetsCache)();return e?Object.entries(e).reduce((e,[t,n])=>n.atomic_props_schema&&n.show_in_panel&&"widget"!==n.elType?(e.push(t),e):e,[]):[]}(),a=(0,P.getContainer)(n);if(!a)throw new Error("Element not found. Use 'list-elements' to get valid element IDs.");const s=a.model.get("elType");if(!i.includes(s))throw new Error(`Element is not one of the following types: ${i.join(", ")}`);const c=a.model.toJSON({remove:["default"]});if(c?.isLocked)throw new Error("Cannot save a locked element as a component.");const p=(t.indexOf("Default")>=0?[...t]:["Default",...t]).map(e=>({id:(0,I.generateUniqueId)("group"),label:e,props:[]})),m=r?function(e,t,n){const o={},r={},i=n.find(e=>"Default"===e.label);if(!i)throw new Error("Internal mcp error: could not generate default group");return Object.entries(e.props).forEach(([,e])=>{const{elementId:a,propKey:s,label:l,group:c="Default"}=e,p=n.find(e=>e.label===c)||i,m=p.id,d=ln(t,a);if(!d)throw new Error(`Element with ID "${a}" not found in component`);const u=d.elType,g=d.widgetType||d.elType,f=(0,P.getElementType)(g);if(!f)throw new Error(`Element type "${g}" is not atomic or does not have a settings schema. Cannot expose property "${s}" for element "${a}".`);if(!f.propsSchema[s]){const e=Object.keys(f.propsSchema).join(", ");throw new Error(`Property "${s}" does not exist in element "${a}" (type: ${g}). Available properties: ${e}`)}const y=(0,I.generateUniqueId)("prop"),h=d.settings?.[s]?d.settings[s]:f.propsSchema[s].default??null;r[m]||(r[m]={id:m,label:p.label,props:[]}),r[m].props.push(y),o[y]={overrideKey:y,label:l,elementId:a,propKey:s,elType:u,widgetType:g,originValue:h,groupId:m}}),{props:o,groups:{items:r,order:n.filter(e=>r[e.id]).map(e=>e.id)}}}(r,c,p):void 0;m&&function(e,t){Object.values(t.props).forEach(t=>{const n=ln(e,t.elementId);n&&n.settings&&(n.settings[t.propKey]={$$type:"overridable",value:{override_key:t.overrideKey,origin_value:t.originValue}})})}(c,m);const d=(0,I.generateUniqueId)("component");try{await l.apiClient.validate({items:[{uid:d,title:o,elements:[c],settings:{overridable_props:m}}]})}catch(e){if(e instanceof on.AxiosError)throw new Error(e.response?.data.message);throw new Error("Unknown error")}return await dt({name:o,element:c,eventData:null,uid:d,overridableProps:m,executedBy:"mcp_tool"}),m&&Object.values(m.props).forEach(e=>{(0,l.trackComponentEvent)({action:"propertyExposed",source:"mcp_tool",executedBy:"mcp_tool",component_uid:d,property_id:e.overrideKey,property_path:e.propKey,property_name:e.label,element_type:e.widgetType??e.elType})}),{status:"ok",message:`Component "${o}" created successfully.`,component_uid:d}}(e)}};function ln(e,t){if(e.id===t)return e;if(e.elements)for(const n of e.elements){const e=ln(n,t);if(e)return e}return null}const cn=()=>{const e=(0,u.toolPrompts)("manage-component");return e.description(`\nManage reusable components in the Elementor editor: retrieve a specific component or save an element as a new component.\n\n# **CRITICAL - Before any operation, read the resources**\nAlways read all required resources before performing any action.\n\n# Actions\n\n## "get" - Get a specific component\nReturns full details of a component including its overridable properties.\nRequired: component_uid\n\n## "save" - Save an element as a new component\nCreates a new reusable component from an existing element.\nRequired: element_id, component_name\nOptional: overridable_props, groups\n\n# IMPORTANT - Before saving a new component\n**Always read [${tn}] first** to see existing components and avoid creating duplicates.\nUse "get" to inspect an existing component if you need to understand its structure.\n\n# When NOT to use "save"\n- Element is already a component (widgetType: 'e-component')\n- Element is locked\n- Element is not an atomic element (atomic_props_schema is not defined)\n- Element elType is a 'widget'\n\n# **REQUIRED RESOURCES (Must read before any operation)**\n1. [${tn}]\n **MANDATORY** - Live list of all existing components. Always read this first to check for duplicates.\n\n2. [${we.DOCUMENT_STRUCTURE_URI}]\n **MANDATORY** - Required to understand the document structure and identify child elements for overridable properties.\n\n3. [${we.WIDGET_SCHEMA_URI}]\n **MANDATORY** - Required to understand which properties are available for each widget type.\n\n# Instructions for "save" - MUST FOLLOW IN ORDER\n## Step 1: Check existing components\n1. Read the [${tn}] resource to see all existing components\n2. If a suitable component already exists, consider using it instead\n\n## Step 2: Identify the Target Element\n1. Read the [${we.DOCUMENT_STRUCTURE_URI}] resource\n2. Locate the element by its element_id\n3. Verify the element type is valid, not locked, and not already a component\n\n## Step 3: Define Overridable Properties\nSkip ONLY if the user explicitly requests no customizable properties.\n\n1. **Identify Child Elements** via [${we.DOCUMENT_STRUCTURE_URI}]\n2. **Find Available Properties** via [${we.WIDGET_SCHEMA_URI}] → atomic_props_schema\n - Use only top-level props (e.g., "text", "url", "tag", "size")\n3. **Build the overridable_props object** with unique, user-friendly labels\n\n## Step 4: Execute "save"\nCall with element_id, component_name, and optionally overridable_props and groups.\n\n# CONSTRAINTS\n- NEVER try to override properties of the parent element itself — ONLY child elements\n- NEVER use invalid propKeys — always verify against atomic_props_schema in [${we.WIDGET_SCHEMA_URI}]\n- Element IDs must exist within the target element's children\n- The element being saved must not be inside another component\n`),e.parameter("action",'**MANDATORY** The operation to perform:\n- "get": Returns details of a specific component. Requires component_uid.\n- "save": Creates a new component from an element. Requires element_id and component_name.'),e.parameter("component_uid",`**Required for "get"** The unique identifier of the component to retrieve.\nRead the [${tn}] resource first to discover available component UIDs.`),e.parameter("element_id",`**Required for "save"** The unique identifier of the element to save as a component.\nUse the [${we.DOCUMENT_STRUCTURE_URI}] resource to find available element IDs.`),e.parameter("component_name",'**Required for "save"** A descriptive name for the new component.\nShould be unique and clearly describe the component\'s purpose (e.g., "Hero Section", "Feature Card").'),e.parameter("overridable_props",`**Optional for "save"** Configuration for which child element properties can be customized in component instances.\n\nStructure:\n\`\`\`json\n{\n "props": {\n "": {\n "elementId": "",\n "propKey": "",\n "label": ""\n }\n }\n}\n\`\`\`\n\nTo populate this correctly:\n1. Use [${we.DOCUMENT_STRUCTURE_URI}] to find child element IDs and their widgetType\n2. Use [${we.WIDGET_SCHEMA_URI}] to find the atomic_props_schema for each child element's widgetType\n3. Only include properties you want to be customizable in component instances\n4. Provide a unique, user-friendly label for each property`),e.example('\nGet a specific component:\n```json\n{ "action": "get", "component_uid": "component-abc123" }\n```\n\nSave without overridable properties:\n```json\n{ "action": "save", "element_id": "abc123", "component_name": "Hero Section" }\n```\n\nSave with overridable properties:\n```json\n{\n "action": "save",\n "element_id": "abc123",\n "component_name": "Feature Card",\n "overridable_props": {\n "props": {\n "heading-text": {\n "elementId": "heading-123",\n "propKey": "text",\n "label": "Card Title",\n "group": "Content"\n },\n "button-link": {\n "elementId": "button-456",\n "propKey": "url",\n "label": "Button Link",\n "group": "Settings"\n }\n }\n }\n}\n```\n'),e.instruction('After successful "save", the component will be available in the components library and can be inserted into any page or template.'),e.instruction("When overridable properties are defined, component instances will show customization controls for those specific properties in the editing panel."),e.prompt()},pn=e=>{const{addTool:t}=e;t({name:"manage-component",schema:rn,outputSchema:an,description:cn(),requiredResources:[{uri:tn,description:"List of all components"},{uri:we.DOCUMENT_STRUCTURE_URI,description:"Document structure"},{uri:we.WIDGET_SCHEMA_URI,description:"Widget schema"}],handler:sn})},mn="ctrl+shift+k",dn="elementor/editor/open-save-as-component-form";function un(){const e=(0,P.getSelectedElements)();if(1!==e.length)return{allowed:!1};const t=e[0];if(!(0,P.getElementType)(t.type))return{allowed:!1};const n=(0,P.getWidgetsCache)(),o=n?.[t.type];if(!o?.atomic_props_schema||!o?.show_in_panel||"widget"===o?.elType)return{allowed:!1};const r=window.elementor.getContainer(t.id);return!r||r.isLocked()?{allowed:!1}:{allowed:!0,container:r}}const gn=({container:e})=>{const t=e.document;if(!t||t.config.type!==i)return;const n=l.componentsSelectors.getOverridableProps(t.id);n&&e.settings.set("overridable_props",n)};async function fn({elements:e,status:t}){const n=l.componentsSelectors.getUnpublishedComponents();if(n.length)try{const o=await async function(e,t){const n=await l.apiClient.create({status:t,items:e.map(e=>({uid:e.uid,title:e.name,elements:e.elements,settings:e.overridableProps?{overridable_props:e.overridableProps}:void 0}))}),o=new Map;return Object.entries(n).forEach(([e,t])=>{o.set(e,t)}),o}(n,t);yn(e,o),l.componentsActions.add(n.map(e=>({id:o.get(e.uid),name:e.name,uid:e.uid,overridableProps:e.overridableProps?e.overridableProps:void 0}))),l.componentsActions.resetUnpublished()}catch(e){const t=n.map(e=>e.uid);throw l.componentsActions.removeUnpublished(t),new Error(`Failed to publish components: ${e}`)}}function yn(e,t){e.forEach(e=>{const{shouldUpdate:n,newComponentId:o}=function(e,t){if("e-component"===e.widgetType){const n=e.settings?.component_instance?.value?.component_id.value;if(n&&t.has(n.toString()))return{shouldUpdate:!0,newComponentId:t.get(n.toString())}}return{shouldUpdate:!1,newComponentId:null}}(e,t);var r,i;n&&(r=e.id,i=o,(0,P.updateElementSettings)({id:r,props:{component_instance:{$$type:"component-instance",value:{component_id:{$$type:"number",value:i}}}},withHistory:!1})),e.elements&&yn(e.elements,t)})}const hn=({container:e,status:t})=>{const n=e?.model.get("elements").toJSON?.()??[];return Promise.all([vn({elements:n,status:t}),gn({container:e})])},vn=async({elements:e,status:t})=>{await bn({elements:e,status:t}),await fn({elements:e,status:t})},bn=async({elements:e,status:t})=>{await(async e=>{const t=l.componentsSelectors.getUpdatedComponentNames();t.length&&0===(await l.apiClient.updateComponentTitle(t,e)).failedIds.length&&l.componentsActions.cleanUpdatedComponentNames()})(t),await(async e=>{try{const t=l.componentsSelectors.getArchivedThisSession();if(!t.length)return;const n=(await l.apiClient.updateArchivedComponents(t,e)).failedIds.join(", ");n&&(0,_e.notify)({type:"error",message:`Failed to archive components: ${n}`,id:"failed-archived-components-notification"})}catch(e){throw new Error(`Failed to update archived components: ${e}`)}})(t),await(0,l.publishDraftComponentsInPageBeforeSave)({elements:e,status:t})};var En=window.elementorV2.editorCanvasExtended;const wn="e-flexbox";function _n(e){const t=(0,P.createElement)({container:e,model:{elType:wn}});(0,P.selectElement)(t.id)}function Cn(e){return!("document"!==e.id)&&e.document?.config.type===i}function xn(){(0,f.registerDataHook)("after","document/elements/duplicate",(e,t)=>{var n;ut()&&(n=t,(Array.isArray(n)?n:[n]).forEach(e=>{!function(e){(0,P.getAllDescendants)(e).forEach(e=>{e.model.get("widgetType")===l.COMPONENT_WIDGET_TYPE?function(e){const t=e.settings?.toJSON()??{},n=l.componentInstancePropTypeUtil.extract(t.component_instance),o=l.componentInstanceOverridesPropTypeUtil.extract(n?.overrides);if(!o?.length)return;const r=T(o),i=l.componentInstancePropTypeUtil.create({...n,overrides:l.componentInstanceOverridesPropTypeUtil.create(r)});(0,P.updateElementSettings)({id:e.id,props:{component_instance:i},withHistory:!1})}(e):function(e){const t=e.settings?.toJSON()??{},{hasChanges:n,settings:o}=O(t);n&&(0,P.updateElementSettings)({id:e.id,props:o,withHistory:!1})}(e)})}(e)}))}),(0,f.registerDataHook)("after","document/elements/copy",e=>{ut()&&function(e){const t=window.elementorCommon?.storage;if(!t)return;const n=t.get(e);if(!n?.elements?.length)return;const o=n.elements.map(k);t.set(e,{...n,elements:o})}(e.storageKey??"clipboard")})}function In(){return(0,h.useEffect)(()=>(window.addEventListener(we.ELEMENT_ADDED_EVENT,Pn),(0,f.registerDataHook)("after","preview/drop",(e,t)=>{"e-component"===t?.model?.get("widgetType")&&Sn(t.model.toJSON(),"user")}),()=>{window.removeEventListener(we.ELEMENT_ADDED_EVENT,Pn)}),[]),null}function Pn(e){const{element:t,executedBy:n}=e.detail;Sn(t,n)}function Sn(e,t){if("e-component"!==e?.widgetType)return;const n=e.editor_settings,o=n?.component_uid,r=(0,l.selectComponentByUid)?.((0,w.__getState)(),o??"")?.name,i=e.id,a=(0,l.selectCreatedThisSession)((0,w.__getState)()),s=o&&a.includes(o),c=window.elementorCommon.eventsManager.config,{locations:p,secondaryLocations:m}=c,d={location:p.widgetPanel,secondary_location:m.componentsTab};let u={source:t,executedBy:t,instance_id:i,component_uid:o,component_name:r,is_same_session_reuse:s};"mcp_tool"!==t&&(u={...u,...d}),(0,l.trackComponentEvent)({action:"instanceAdded",...u})}const Tn=1;function On({isLicenseExpired:e}){(0,m.registerEditingPanelReplacement)({id:"extended-component-instance-edit-panel",priority:Tn,condition:(e,t)=>"e-component"===t.key,component:Je}),(0,d.registerTab)({id:"components",label:(0,y.__)("Components","elementor-pro"),component:He,priority:Tn}),(0,f.registerDataHook)("dependency","editor/documents/close",e=>((0,p.getV1CurrentDocument)().config.type===i&&(e.mode="autosave"),!0)),window.elementorCommon.__beforeSave=hn,(0,m.injectIntoPanelHeaderTop)({id:"component-panel-header",component:Ee,options:{overwrite:!0}}),(0,m.registerFieldIndicator)({fieldType:m.FIELD_TYPE.SETTINGS,id:"component-overridable-prop",priority:1,indicator:st}),(0,c.registerControlReplacement)({id:o,component:Ze,condition:({value:e})=>l.componentOverridablePropTypeUtil.isValid(e)}),(0,f.blockCommand)({command:"document/elements/create",condition:yt}),(0,f.blockCommand)({command:"document/elements/move",condition:ht}),(0,f.blockCommand)({command:"document/elements/paste",condition:vt}),(0,En.registerDropContainerRedirect)({shouldHandle:ut,resolveRedirect:e=>Cn(e)?function(e){const t=e.children?.[0];return t?{shouldRedirect:!0,container:t}:{shouldRedirect:!1,container:e}}(e):{shouldRedirect:!1,container:e}}),(0,f.registerDataHook)("after","document/elements/delete",e=>{if(!ut())return;const t=e.containers??(e.container?[e.container]:[]);for(const e of t){if(!e.parent||!Cn(e.parent))continue;const t=e.parent;0===t.children?.length&&_n(e.parent)}}),xn(),e||window.$e.shortcuts.register(mn,{callback:()=>{const e=un();e.allowed&&function(e){const t=window,n=e.view.el.getBoundingClientRect(),o=t.elementor.$preview[0].getBoundingClientRect(),r={left:o.left+n.left+n.width/2,top:o.top+n.top};window.dispatchEvent(new CustomEvent(dn,{detail:{element:e.model.toJSON({remove:["default"]}),anchorPosition:r,options:{trigger:"keyboard",location:"canvas",secondaryLocation:"canvasElement"}}}))}(e.container)},dependency:()=>un().allowed,exclude:["input"]}),function(e){const{setMCPDescription:t,waitForReady:n}=e;t("Components V4 MCP Server - Tools for creating and managing reusable components."),n().then(()=>{nn(e),pn(e)})}((0,u.getMCPByDomain)("components",{instructions:a}))}async function kn(){(0,s.injectIntoTop)({id:"component-popups",component:Zt,options:{overwrite:!0}}),(0,g.__registerPanel)({id:ue.id,component:Xt}),(0,s.injectIntoLogic)({id:"components-logic-effects",component:Qt,options:{overwrite:!0}}),(0,s.injectIntoLogic)({id:"components-track-instance-added",component:In});const{isFeatureEnabled:e,isLicenseExpired:t}=await async function(){const[e,t]=await Promise.allSettled([(0,n.fetchTierFeatures)(),(0,n.fetchLicenseStatus)()]),o="fulfilled"===e.status?e.value:[],i="fulfilled"===t.status&&t.value;return{isFeatureEnabled:o.includes(r),isLicenseExpired:i}}();e&&On({isLicenseExpired:t})}(window.elementorV2=window.elementorV2||{}).editorComponentsExtended=t}(),window.elementorV2.editorComponentsExtended?.init?.(); Comments on: Bagaiman Memilih Peralatan Alat Medis yang Memenuhi Standar https://petragk.com/tips-memilih-peralatan-medis/ Distributor Alat Kesehatan Indonesia Mon, 24 Aug 2026 11:48:22 +0000 hourly 1