NOX-ROOT-MARAZ Manager v2
PHP 8+ Secure
/
home
/
xiedrke
/
malino
/
wp-content
/
plugins
/
elementor
/
assets
/
js
/
packages
/
editor-variables
/
Name
Size
Perms
Actions
📄 editor-variables.asset.php
691 B
0644
Edit
|
Chmod
|
Delete
📄 editor-variables.js.LICENSE.txt
28,807 B
0644
Edit
|
Chmod
|
Delete
📄 editor-variables.min.js
63,256 B
0644
Edit
|
Chmod
|
Delete
Editing: editor-variables.min.js
!function(){"use strict";var e={d:function(t,a){for(var n in a)e.o(a,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:a[n]})},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,{GLOBAL_VARIABLES_URI:function(){return wt},Utils:function(){return Wt},init:function(){return jt},registerVariableType:function(){return U},registerVariableTypes:function(){return Ot},service:function(){return O},sizeVariablePropTypeUtil:function(){return xt}});var a=window.elementorV2.editor,n=window.elementorV2.editorEditingPanel,r=window.elementorV2.editorPanels,l=window.elementorV2.editorProps,o=window.React,i=window.elementorV2.editorUi,s=window.elementorV2.editorV1Adapters,c=window.elementorV2.icons,u=window.elementorV2.ui,d=window.wp.i18n,p=window.elementorV2.events;const m=({varType:e,controlPath:t,action:a})=>{const{dispatchEvent:n,config:r}=(0,p.getMixpanel)();if(!r?.names?.variables?.[a])return;const l=r.names.variables[a];n?.(l,{location:r?.locations?.variables||"",secondaryLocation:r?.secondaryLocations?.variablesPopover||"",trigger:r?.triggers?.click||"",var_type:e,control_path:t,action_type:l})},b=({action:e,varType:t,controlPath:a})=>{const{dispatchEvent:n,config:r}=(0,p.getMixpanel)();if(!r?.names?.variables?.[e])return;const l=r.names.variables[e],o={location:r?.locations?.variablesManager||"",trigger:r?.triggers?.click||"",action_type:l};t&&(o.var_type=t),a&&(o.style_control_path=a),n?.(l,o)},v={MISSING_VARIABLE_NAME:(0,d.__)("Give your variable a name.","elementor"),MISSING_VARIABLE_VALUE:(0,d.__)("Add a value to complete your variable.","elementor"),INVALID_CHARACTERS:(0,d.__)("Use letters, numbers, dashes (-), or underscores (_) for the name.","elementor"),NO_NON_SPECIAL_CHARACTER:(0,d.__)("Names have to include at least one non-special character.","elementor"),VARIABLE_LABEL_MAX_LENGTH:(0,d.__)("Keep names up to 50 characters.","elementor"),DUPLICATED_LABEL:(0,d.__)("This variable name already exists. Please choose a unique name.","elementor"),UNEXPECTED_ERROR:(0,d.__)("There was a glitch. Try saving your variable again.","elementor"),BATCH:{DUPLICATED_LABELS:(e,t)=>(0,d.sprintf)((0,d.__)("We found %1$d duplicated %2$s.","elementor"),e,t),UNEXPECTED_ERROR:(0,d.__)("There was a glitch.","elementor"),DUPLICATED_LABEL_ACTION:(0,d.__)("Take me there","elementor"),DUPLICATED_LABEL_ACTION_MESSAGE:(0,d.__)("Please rename the variables.","elementor"),UNEXPECTED_ERROR_ACTION_MESSAGE:(0,d.__)("Try saving your variables again.","elementor")}},g=e=>{if("duplicated_label"===e?.response?.data?.code)return{field:"label",message:v.DUPLICATED_LABEL};if("batch_duplicated_label"===e?.response?.data?.code){const t=e?.response?.data?.data??{},a=Object.keys(t).length,n=1===a?"name":"names",r=Object.keys(t);return{field:"label",message:v.BATCH.DUPLICATED_LABELS(a,n),severity:"error",IconComponent:c.AlertTriangleFilledIcon,action:{label:v.BATCH.DUPLICATED_LABEL_ACTION,message:v.BATCH.DUPLICATED_LABEL_ACTION_MESSAGE,data:{duplicatedIds:r}}}}return"batch_operation_failed"===e?.response?.data?.code?{field:"label",message:v.BATCH.UNEXPECTED_ERROR,severity:"secondary",IconComponent:c.InfoCircleFilledIcon,action:{message:v.BATCH.UNEXPECTED_ERROR_ACTION_MESSAGE}}:void 0},E=e=>39<e.length?v.VARIABLE_LABEL_MAX_LENGTH:"",h=e=>e.trim()?"":v.MISSING_VARIABLE_VALUE;var y=window.elementorV2.editorCanvas;const f=(0,u.styled)(u.UnstableColorIndicator)(({theme:e})=>({borderRadius:e.shape.borderRadius/2+"px",marginRight:e.spacing(.25)}));var C=window.elementorV2.schema;const T=(0,l.createPropUtils)("global-color-variable",C.z.string());var _=window.elementorV2.httpClient;const w="elementor/v1/variables",k=e=>e.startsWith("tmp-"),S="elementor-global-variables",I="elementor-global-variables-watermark",P="RW",A=(0,l.createPropUtils)("global-font-variable",C.z.string()),x=(()=>{const e={};let t;const a=(t,a)=>!(t in e)||e[t].label!==a.label||e[t].value!==a.value||!(e[t]?.deleted||!a?.deleted)||!(!e[t]?.deleted||a?.deleted),n=e=>{if(e)try{((e,t="preview")=>{const a=window;a.elementor?.helpers?.enqueueFont?.(e,t)})(e)}catch{}};return{subscribe:e=>(t=e,()=>{t=()=>{}}),update:r=>{(t=>{let r=!1;for(const[l,o]of Object.entries(t))a(l,o)&&(e[l]=o,o.type===A.key&&n(o.value),r=!0);return r})(r)&&"function"==typeof t&&t({...e})}}})(),V=new class{notifyChange(){window.dispatchEvent(new Event("variables:updated"))}constructor(){this.state={watermark:-1,variables:{}}}load(){return this.state.watermark=parseInt(localStorage.getItem(I)||"-1"),this.state.variables=JSON.parse(localStorage.getItem(S)||"{}"),this.state.variables}fill(e,t){this.state.variables={},e&&Object.keys(e).length&&(this.state.variables=e),this.state.watermark=t,localStorage.setItem(I,this.state.watermark.toString()),localStorage.setItem(S,JSON.stringify(this.state.variables)),this.notifyChange()}add(e,t){this.load(),this.state.variables[e]=t,localStorage.setItem(S,JSON.stringify(this.state.variables)),this.notifyChange()}update(e,t){this.load(),this.state.variables[e]=t,localStorage.setItem(S,JSON.stringify(this.state.variables)),this.notifyChange()}watermark(e){this.state.watermark=e,localStorage.setItem(I,this.state.watermark.toString())}watermarkDiff(e,t){const a=t-this.state.watermark;return P===e?1!==a:"RO"===e&&0!==a}},O={variables:()=>V.load(),findIdByLabel(e){const t=Object.entries(this.variables()).find(([,t])=>t.label===e);if(!t)throw new Error(`Variable with label ${e} not found`);return t[0]},findVariableByLabel(e){return Object.values(this.variables()).find(t=>t.label===e)||null},getWatermark:()=>V.state.watermark,init:()=>O.load(),load:()=>(0,_.httpService)().get(w+"/list").then(e=>{const{success:t,data:a}=e.data;if(!t)throw new Error("Unexpected response from server");return a}).then(e=>{const{variables:t,watermark:a}=e;return V.fill(t,a),x.update(t),t}),create:({type:e,label:t,value:a})=>((e,t,a)=>(0,_.httpService)().post(w+"/create",{type:e,label:t,value:a}))(e,t,a).then(e=>{const{success:t,data:a}=e.data;if(!t){const e=a?.message||(0,d.__)("Unexpected response from server","elementor");throw new Error(e)}return a}).then(e=>{const{variable:t,watermark:a}=e;D(P,a);const{id:n,...r}=t;return V.add(n,r),x.update({[n]:r}),{id:n,variable:r}}),update:(e,{label:t,value:a,type:n})=>((e,t,a,n)=>(0,_.httpService)().put(w+"/update",{id:e,label:t,value:a,type:n}))(e,t,a,n).then(e=>{const{success:t,data:a}=e.data;if(!t){const e=a?.message||(0,d.__)("Unexpected response from server","elementor");throw new Error(e)}return a}).then(e=>{const{variable:t,watermark:a}=e;D(P,a);const{id:n,...r}=t;return V.update(n,r),x.update({[n]:r}),{id:n,variable:r}}),delete:e=>(e=>(0,_.httpService)().post(w+"/delete",{id:e}))(e).then(e=>{const{success:t,data:a}=e.data;if(!t)throw new Error("Unexpected response from server");return a}).then(e=>{const{variable:t,watermark:a}=e;D(P,a);const{id:n,...r}=t;return V.update(n,r),x.update({[n]:r}),{id:n,variable:r}}),restore:(e,t,a,n)=>((e,t,a,n)=>{const r={id:e};return t&&(r.label=t),a&&(r.value=a),n&&(r.type=n),(0,_.httpService)().post(w+"/restore",r)})(e,t,a,n).then(e=>{const{success:t,data:a}=e.data;if(!t)throw new Error("Unexpected response from server");return a}).then(e=>{const{variable:t,watermark:a}=e;D(P,a);const{id:n,...r}=t;return V.update(n,r),x.update({[n]:r}),{id:n,variable:r}}),batchSave:(e,t,a)=>{const n=((e,t,a)=>{const n=[];return Object.entries(t).forEach(([t,a])=>{if(k(t))n.push({type:"create",variable:{...a,id:t}});else if(e[t]){const r=e[t];r.deleted&&!a.deleted?n.push({type:"restore",id:t,...r.label!==a.label&&{label:a.label},...r.value!==a.value&&{value:a.value}}):a.deleted||r.label===a.label&&r.value===a.value&&r.order===a.order&&r.type===a.type||n.push({type:"update",id:t,variable:{...r.label!==a.label&&{label:a.label},...r.value!==a.value&&{value:a.value},...r.order!==a.order&&{order:a.order},...r.type!==a.type&&{type:a.type}}})}}),a.forEach(e=>{n.push({type:"delete",id:e})}),n.filter(e=>{const a=e.id||e.variable?.id;return a&&!(k(a)&&t[a]?.deleted)})})(e,t,a),r={operations:n,watermark:V.state.watermark};return 0===n.length?Promise.resolve({success:!0,watermark:V.state.watermark,operations:0}):(l=r,(0,_.httpService)().post(w+"/batch",l)).then(e=>{const{success:t,data:a}=e.data;if(!t)throw new Error("Unexpected response from server");return a}).then(e=>{const{results:t,watermark:a}=e;return D(P,a),t&&t.forEach(e=>{if(e.variable){const{id:t,...a}=e.variable;"create"===e.type?V.add(t,a):V.update(t,a),x.update({[t]:a})}}),{success:!0,watermark:a,operations:n.length}});var l}},D=(e,t)=>{V.watermarkDiff(e,t)&&setTimeout(()=>O.load(),500),V.watermark(t)},B=(e,t)=>{let a=e,n="";if(t&&(n=t.value),t&&!t.deleted&&(a=t.label),!a.trim())return null;const r=`--${a}`;return n.trim()?`var(${r}, ${n})`:`var(${r})`},L=(0,y.createTransformer)(e=>{const t=O.variables()[e];if(!t)return o.createElement("span",null,(0,d.__)("Missing variable","elementor"));const a=t.type===T.key,n=B(e,t);return o.createElement(u.Stack,{direction:"row",spacing:.5,sx:{paddingInline:"1px"},alignItems:"center"},a&&o.createElement(f,{size:"inherit",value:t.value}),o.createElement(u.Typography,{variant:"caption",overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"},n))}),R=(0,y.createTransformer)(e=>{const t=O.variables()[e]||O.findVariableByLabel(e);if(!t)return null;const a=O.findIdByLabel(t.label);return B(a,t)}),{registerVariableType:U,getVariableType:z,getVariableTypes:F,hasVariableType:M}=function(){const e={};return{registerVariableType:({key:t,icon:a,startIcon:r,valueField:l,propTypeUtil:o,variableType:i,defaultValue:s,selectionFilter:c,valueTransformer:u,styleTransformer:d,fallbackPropTypeUtil:p,isCompatible:m,emptyState:b,isActive:v=!0})=>{const g=t??o.key;m||(m=(e,t)=>"union"===e.kind&&t.type in e.prop_types),e[g]={icon:a,startIcon:r,valueField:l,propTypeUtil:o,variableType:i,defaultValue:s,selectionFilter:c,valueTransformer:u,fallbackPropTypeUtil:p,isCompatible:m,emptyState:b,isActive:v},((e,t)=>{y.styleTransformersRegistry.register(e,t??R)})(o.key,d),(e=>{n.stylesInheritanceTransformersRegistry.register(e,L)})(o.key)},getVariableType:t=>e[t],getVariableTypes:()=>e,hasVariableType:t=>t in e&&!!e[t].isActive}}(),j=({open:e,label:t,closeDialog:a,onConfirm:n})=>o.createElement(i.ConfirmationDialog,{open:e,onClose:a},o.createElement(i.ConfirmationDialog.Title,null,(0,d.__)("Delete this variable?","elementor")),o.createElement(i.ConfirmationDialog.Content,null,o.createElement(i.ConfirmationDialog.ContentText,null,(0,d.__)("All elements using","elementor")," ",o.createElement(u.Typography,{variant:"subtitle2",component:"span",sx:{lineBreak:"anywhere"}},t)," ",(0,d.__)("will keep their current values, but the variable itself will be removed.","elementor"))),o.createElement(i.ConfirmationDialog.Actions,{onClose:a,onConfirm:n}));var N=window.elementorV2.editorCurrentUser;const H=()=>{const{canUser:e,isAdmin:t}=(0,N.useCurrentUserCapabilities)();return{canAssign:()=>e("edit_posts"),canUnlink:()=>e("edit_posts"),canAdd:()=>t,canDelete:()=>t,canEdit:()=>t,canRestore:()=>t,canManageSettings:()=>t}},W=({icon:e,title:t,message:a,onAdd:n,children:r})=>{const l=H().canAdd(),i=l?t:(0,d.__)("There are no variables","elementor"),s=l?a:(0,d.__)("With your current role, you can only connect and detach variables.","elementor");return o.createElement($,{title:i,message:s,icon:e},r||n&&o.createElement(u.Button,{variant:"outlined",color:"secondary",size:"small",onClick:n},(0,d.__)("Create a variable","elementor")))};function $({title:e,message:t,icon:a,children:n}){return o.createElement(u.Stack,{gap:1,alignItems:"center",justifyContent:"flex-start",height:"100%",color:"text.secondary",sx:{p:2.5,pt:8,pb:5.5}},a,o.createElement(u.Typography,{align:"center",variant:"subtitle2"},e),o.createElement(u.Typography,{align:"center",variant:"caption",maxWidth:"180px"},t),n)}const G=({searchValue:e,onClear:t,icon:a})=>o.createElement(u.Stack,{gap:1,alignItems:"center",justifyContent:"center",p:2.5,color:"text.secondary",sx:{pb:3.5,pt:8}},a,o.createElement(u.Typography,{align:"center",variant:"subtitle2"},(0,d.__)("Sorry, nothing matched","elementor"),o.createElement("br",null),"“",e,"”."),o.createElement(u.Typography,{align:"center",variant:"caption",sx:{display:"flex",flexDirection:"column"}},(0,d.__)("Try something else.","elementor"),o.createElement(u.Link,{color:"text.secondary",variant:"caption",component:"button",onClick:t},(0,d.__)("Clear & try again","elementor"))));var K=window.elementorV2.editorControls;const q=(0,o.createContext)(null);function X({children:e,propTypeKey:t}){return o.createElement(q.Provider,{value:t},e)}function J(){const e=(0,o.useContext)(q);if(null===e)throw new Error("useVariableType must be used within a VariableTypeProvider");return z(e)}function Y(e,t){const a=t.toLowerCase();return e.filter(e=>e.label.toLowerCase().includes(a))}const Q=e=>Object.entries(e).map(([e,t])=>({key:e,...t})),Z=({key:e,label:t,value:a,order:n})=>({key:e,label:t,value:a,order:n}),ee=(e=!0)=>{const t=O.variables();return e?t:Object.fromEntries(Object.entries(t).filter(([,e])=>!e.deleted))},te=e=>{const t=ee();return t?.[e]?{...t[e],key:e}:null},ae=e=>{const t=ee(!1),a=(e=>{const t=[],a=F(),n=z(e);return Object.entries(a).forEach(([e,a])=>{n.variableType===a.variableType&&t.push(e)}),t})(e);return Q(t).filter(e=>a.includes(e.type)).map(Z)},ne=({id:e})=>e,re=(e,t,a,n)=>O.restore(e,t,a,n).then(ne);var le=window.elementorV2.utils;const oe=e=>{const t={...window.ElementorVariablesQuotaConfig??{},...window.ElementorVariablesQuotaConfigExtended??{}},a=void 0===t[e]&&window.elementorPro,n=t[e]||0,r=a||n>0;return{canAdd:()=>r,canEdit:()=>r}},ie=(0,o.forwardRef)(({variableType:e,upgradeUrl:t},a)=>{const[n,r]=(0,o.useState)(!1);(0,i.useCanvasClickHandler)(n,()=>r(!1));const l=()=>r(e=>!e);(0,o.useImperativeHandle)(a,()=>({toggle:l}),[]);const s=(0,d.sprintf)((0,d.__)("%s variables","elementor"),(0,le.capitalize)(e)),c=(0,d.sprintf)((0,d.__)("Upgrade to continue creating and editing %s variables.","elementor"),e);return o.createElement(i.PromotionPopover,{open:n,title:s,content:c,ctaText:(0,d.__)("Upgrade now","elementor"),ctaUrl:t,onClose:e=>{e.stopPropagation(),r(!1)}},o.createElement(u.Box,{onClick:e=>{e.stopPropagation(),l()},sx:{cursor:"pointer",display:"inline-flex"}},o.createElement(i.PromotionChip,null)))});function se(){return se=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},se.apply(null,arguments)}const ce="tiny",ue=({variables:e,onCreate:t,menuState:a})=>{const n=(0,o.useRef)(null),r=F(),l=(0,o.useMemo)(()=>Object.entries(r).filter(([,e])=>!!e.defaultValue).map(([e,t])=>({key:e,propTypeKey:t.propTypeUtil.key,variableType:t.variableType,defaultValue:t.defaultValue||"",icon:t.icon})),[r]);return o.createElement(o.Fragment,null,o.createElement(u.IconButton,se({},(0,u.bindTrigger)(a),{ref:n,size:ce,"aria-label":(0,d.__)("Add variable","elementor")}),o.createElement(c.PlusIcon,{fontSize:ce})),o.createElement(u.Menu,se({disablePortal:!0,MenuListProps:{dense:!0},PaperProps:{elevation:6}},(0,u.bindMenu)(a),{anchorEl:n.current,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},"data-testid":"variable-manager-create-menu"}),l.map(n=>o.createElement(de,{key:n.key,config:n,variables:e,onCreate:t,onClose:a.close}))))},de=({config:e,variables:t,onCreate:a,onClose:n})=>{const r=(0,o.useRef)(null),l=oe(e.propTypeKey),i=(0,le.capitalize)(e.variableType),s=!l.canAdd();return o.createElement(u.MenuItem,{onClick:()=>{if(s)return void r.current?.toggle();const l=pe(t,e.key,e.variableType);a(e.key,l,e.defaultValue),b({action:"add",varType:e.variableType}),n()},sx:{gap:1.5,cursor:"pointer"}},(0,o.createElement)(e.icon,{fontSize:ce,color:s?"disabled":"action"}),o.createElement(u.Typography,{variant:"caption",color:s?"text.disabled":"text.primary"},i),s&&o.createElement(ie,{variableType:e.variableType,upgradeUrl:`https://go.elementor.com/go-pro-manager-${e.variableType}-variable/`,ref:r}))},pe=(e,t,a)=>{const n=Object.values(e).filter(e=>e.type===t).map(e=>e.label);let r=1,l=`${a}-${r}`;for(;n.includes(l);)r++,l=`${a}-${r}`;return l},me=({children:e,isHeader:t,width:a,maxWidth:n,align:r,noPadding:l,sx:i})=>{const s={maxWidth:n??150,cursor:"initial",typography:"caption",...t&&{color:"text.primary",fontWeight:"bold"},...t&&!l&&{padding:"10px 16px"},...a&&{width:a},...i};return o.createElement(u.TableCell,{size:"small",padding:l?"none":void 0,align:r,sx:s},e)};function be(){return be=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},be.apply(null,arguments)}function ve(e,t){return e.trim().toLowerCase()===t.trim().toLowerCase()}const ge=e=>{const[t,a]=(0,o.useState)(e??{value:"",message:""});return{labelFieldError:t,setLabelFieldError:a}},Ee=({value:e,error:t,onChange:a,id:n,onErrorChange:r,size:l="tiny",focusOnShow:s=!1,selectOnShow:c=!1,showWarningInfotip:d=!1,variables:p,onKeyDown:m})=>{const[b,g]=(0,o.useState)(e),[h,y]=(0,o.useState)(""),f=(0,o.useRef)(null);let C=h;ve(b,t?.value??"")&&t?.message&&(C=t.message);const T=C?"":E(b),_=o.createElement(u.TextField,{ref:f,id:n,size:l,fullWidth:!0,value:b,error:!!C,onChange:e=>(e=>{g(e);const n=((e,t)=>e.trim()?/^[a-zA-Z0-9_-]+$/.test(e)?/[a-zA-Z0-9]/.test(e)?50<e.length?v.VARIABLE_LABEL_MAX_LENGTH:Object.values(t??{}).some(t=>t.label===e)?v.DUPLICATED_LABEL:"":v.NO_NON_SPECIAL_CHARACTER:v.INVALID_CHARACTERS:v.MISSING_VARIABLE_NAME)(e,p);y(n),r?.(n),a(ve(e,t?.value??"")||n?"":e)})(e.target.value),inputProps:{maxLength:50,...c&&{onFocus:e=>e.target.select()},"aria-label":"Name",onKeyDown:m},autoFocus:s});if(d){const e=Math.max(240,f.current?.getBoundingClientRect().width??240);return o.createElement(i.WarningInfotip,be({open:Boolean(C||T),text:C||T,placement:"bottom-start",width:e,offset:[0,-15]},T&&{hasError:!1}),_)}return _},he=o.memo(({initialValue:e,children:t,editableElement:a,onChange:n,prefixElement:r,autoEdit:l=!1,onRowRef:i,onAutoEditComplete:s,gap:c=1,fieldType:d,disabled:p=!1})=>{const[m,b]=(0,o.useState)(e),[v,g]=(0,o.useState)(!1),{labelFieldError:E,setLabelFieldError:h}=ge(),[y,f]=(0,o.useState)(""),C=(0,o.useRef)(null),T=(0,o.useCallback)(()=>{"label"===d&&E?.message||"value"===d&&y||n(m),g(!1)},[m,n,d,E,y]);(0,o.useEffect)(()=>{i?.(C?.current)},[i]),(0,o.useEffect)(()=>{!l||v||p||(g(!0),s?.())},[l,v,s,p]);const _=()=>{p||g(!0)},w=e=>{p||("Enter"===e.key?T():"Escape"===e.key&&g(!1)," "!==e.key||v||(e.preventDefault(),g(!0)))},k=(0,o.useCallback)(e=>{b(e)},[]),S=(0,o.useCallback)(e=>{"label"===d?h({value:m,message:e}):f(e)},[d,m,h,f]);let I;"label"===d?I=E:"value"===d&&(I={value:m,message:y});const P=a({value:m,onChange:k,onValidationChange:S,error:I});return v?o.createElement(u.ClickAwayListener,{onClickAway:T},o.createElement(u.Stack,{ref:C,direction:"row",alignItems:"center",gap:c,onDoubleClick:_,onKeyDown:w,tabIndex:0,role:"button","aria-label":"Double click or press Space to edit"},r,P)):o.createElement(u.Stack,{ref:C,direction:"row",alignItems:"center",gap:c,onDoubleClick:_,onKeyDown:w,tabIndex:p?-1:0,role:"button","aria-label":p?"":"Double click or press Space to edit"},r,t)});function ye(){return ye=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},ye.apply(null,arguments)}const fe=({menuActions:e,disabled:t,itemId:a})=>{const n=(0,u.usePopupState)({variant:"popover"}),r=(0,u.bindTrigger)(n);return o.createElement(o.Fragment,null,o.createElement(u.IconButton,ye({},r,{disabled:t,size:"tiny",onClick:e=>{e.stopPropagation(),r.onClick?.(e)}}),o.createElement(c.DotsVerticalIcon,{fontSize:"tiny"})),o.createElement(u.Menu,ye({disablePortal:!0,MenuListProps:{dense:!0},PaperProps:{elevation:6}},(0,u.bindMenu)(n),{anchorEl:n.anchorEl,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},open:n.isOpen,onClose:n.close}),e.map(e=>o.createElement(u.MenuItem,{key:e.name,onClick:t=>{t.stopPropagation(),e.onClick?.(a),n.close()},sx:{color:e.color,gap:1}},e.icon&&(0,o.createElement)(e.icon,{fontSize:"inherit"})," ",e.name))))};function Ce(){return Ce=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},Ce.apply(null,arguments)}const Te=e=>{const{row:t,variables:a,handleOnChange:n,autoEditVariableId:r,onAutoEditComplete:l,onFieldError:s,menuActions:d,handleRowRef:p,itemProps:m,showDropIndication:b,triggerProps:v,itemStyle:g,triggerStyle:E,isDragged:h,dropPosition:y,setTriggerRef:f,isSorting:C}=e,T=(0,o.useRef)(null),_=!oe(t.type).canEdit(),w=b&&"before"===y,k=b&&"after"===y;return o.createElement(u.TableRow,Ce({},m,{ref:m.ref,selected:h,sx:{..._&&{"& td, & th":{color:"text.disabled"}},...w&&{"& td, & th":{borderTop:"2px solid",borderTopColor:"primary.main"}},...k&&{"& td, & th":{borderBottom:"2px solid",borderBottomColor:"primary.main"}},"&:hover, &:focus-within":{backgroundColor:"action.hover",'& [role="toolbar"], & [draggable]':{opacity:1}},'& [role="toolbar"], & [draggable]':{opacity:0}},style:{...g,...E},onClick:()=>{_&&T.current?.toggle()}}),o.createElement(me,{noPadding:!0,width:10,maxWidth:10},o.createElement(u.IconButton,Ce({size:"small",ref:f},v,{disabled:C,draggable:!0}),o.createElement(c.GripVerticalIcon,{fontSize:"inherit"}))),o.createElement(me,null,o.createElement(he,{initialValue:t.name,onChange:e=>{e===t.name||_||n({...a,[t.id]:{...a[t.id],label:e}})},prefixElement:(0,o.createElement)(t.icon,{fontSize:"inherit",color:_?"disabled":"inherit"}),editableElement:({value:e,onChange:n,onValidationChange:l,error:i})=>o.createElement(Ee,{id:"variable-label-"+t.id,size:"tiny",value:e,onChange:n,onErrorChange:e=>{l?.(e),s?.(!!e)},error:i,focusOnShow:!0,selectOnShow:r===t.id,showWarningInfotip:!0,variables:a}),autoEdit:r===t.id&&!_,onRowRef:p(t.id),onAutoEditComplete:r===t.id?l:void 0,fieldType:"label",disabled:_},o.createElement(i.EllipsisWithTooltip,{title:t.name,sx:{border:"4px solid transparent"}},t.name))),o.createElement(me,null,o.createElement(he,{initialValue:t.value,onChange:e=>{e===t.value||_||n({...a,[t.id]:{...a[t.id],value:e}})},editableElement:({value:e,onChange:r,onValidationChange:l,error:i})=>t.valueField?.({value:e,onChange:r,onPropTypeKeyChange:e=>{_||n({...a,[t.id]:{...a[t.id],type:e}})},propTypeKey:t.type,onValidationChange:e=>{l?.(e),s?.(!!e)},error:i})??o.createElement(o.Fragment,null),onRowRef:p(t.id),gap:.25,fieldType:"value",disabled:_},t.startIcon&&t.startIcon({value:t.value}),o.createElement(i.EllipsisWithTooltip,{title:t.value,sx:{border:"4px solid transparent",lineHeight:"1",pt:.25}},t.value))),o.createElement(me,{align:"right",noPadding:!0,width:16,maxWidth:16,sx:{paddingInlineEnd:1}},o.createElement(u.Stack,{role:"toolbar",direction:"row",justifyContent:"flex-end",alignItems:"center"},_&&o.createElement(ie,{variableType:t.variableType,upgradeUrl:`https://go.elementor.com/renew-license-manager-${t.variableType}-variable`,ref:T}),o.createElement(fe,{menuActions:d(t.id),disabled:C,itemId:t.id}))))};function _e(){return _e=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},_e.apply(null,arguments)}const we=({menuActions:e,variables:t,onChange:a,autoEditVariableId:n,onAutoEditComplete:r,onFieldError:l})=>{const i=(0,o.useRef)(null),s=(0,o.useRef)(new Map);(0,o.useEffect)(()=>{if(n&&i.current){const e=s.current.get(n);e&&setTimeout(()=>{e.scrollIntoView({behavior:"smooth",block:"center",inline:"nearest"})},100)}},[n]);const c=e=>t=>{t?s.current.set(e,t):s.current.delete(e)},p=Object.keys(t).sort(function(e){return(t,a)=>(e[t]?.order??Number.MAX_SAFE_INTEGER)-(e[a]?.order??Number.MAX_SAFE_INTEGER)}(t)),m=p.map(e=>{const a=t[e],n=z(a.type);return n?{id:e,type:a.type,name:a.label,value:a.value,...n}:null}).filter(Boolean),b={minWidth:250,tableLayout:"fixed"};return o.createElement(u.TableContainer,{ref:i,sx:{overflow:"initial"}},o.createElement(u.Table,{sx:b,"aria-label":"Variables manager list with drag and drop reordering",stickyHeader:!0},o.createElement(u.TableHead,null,o.createElement(u.TableRow,null,o.createElement(me,{isHeader:!0,noPadding:!0,width:10,maxWidth:10}),o.createElement(me,{isHeader:!0},(0,d.__)("Name","elementor")),o.createElement(me,{isHeader:!0},(0,d.__)("Value","elementor")),o.createElement(me,{isHeader:!0,noPadding:!0,width:16,maxWidth:16}))),o.createElement(u.TableBody,null,o.createElement(u.UnstableSortableProvider,{value:p,onChange:e=>{const n={...t};e.forEach((e,t)=>{const a=n[e];a&&(n[e]=Object.assign({},a,{order:t+1}))}),a(n)},variant:"static",restrictAxis:!0,dragOverlay:({children:e,...t})=>o.createElement(u.Table,_e({sx:b},t),o.createElement(u.TableBody,null,e))},m.map(i=>o.createElement(u.UnstableSortableItem,{key:i.id,id:i.id,render:s=>o.createElement(Te,_e({},s,{row:i,variables:t,handleOnChange:a,autoEditVariableId:n,onAutoEditComplete:r,onFieldError:l,menuActions:e,handleRowRef:c}))}))))))},ke="variables-manager",{panel:Se,usePanelActions:Ie}=(0,r.__createPanel)({id:ke,component:function(){const{close:e}=Ie(),{open:t,close:a,isOpen:n}=(0,i.useDialog)(),l=(0,u.usePopupState)({variant:"popover"}),{variables:s,isDirty:p,searchValue:m,isSaveDisabled:v,handleOnChange:E,createVariable:h,handleDeleteVariable:y,handleSave:f,isSaving:C,handleSearch:T,setIsSaving:_,setIsSaveDisabled:w}=(()=>{const[e,t]=(0,o.useState)(()=>ee(!1)),[a,n]=(0,o.useState)([]),[r,l]=(0,o.useState)(!1),[i,s]=(0,o.useState)(!1),[c,u]=(0,o.useState)(!1),[d,p]=(0,o.useState)(""),m=(0,o.useCallback)(a=>{t({...e,...a}),s(!0)},[e]),b=(0,o.useCallback)((e,a,n)=>{const r=`tmp-${Date.now().toString(36)}-${Math.random().toString(36).substring(2,8)}`,l={id:r,label:a.trim(),value:n.trim(),type:e};return t(e=>({...e,[r]:l})),s(!0),r},[]),v=(0,o.useCallback)(e=>{n(t=>[...t,e]),t(t=>({...t,[e]:{...t[e],deleted:!0}})),s(!0)},[]),g=(0,o.useCallback)(async()=>{const r=ee(!1);u(!0);const l=await O.batchSave(r,e,a);if(l.success){await O.load();const e=O.variables();t(e),n([]),s(!1)}return{success:l.success}},[e,a]),E=(0,o.useCallback)(()=>{const t=((e,t)=>{const a={};return e.forEach(e=>(a[e.type]??=[]).push(e)),Object.entries(a).flatMap(([e,a])=>{const n=t[e]?.selectionFilter,r=a.map(Z);return(n?.(r)??r).map(t=>({...t,type:e}))})})(Q(e).filter(e=>!e.deleted),F()),a=Y(t,d);return Object.fromEntries(a.map(({key:e,...t})=>[e,t]))},[e,d]);return{variables:E(),deletedVariables:a,isDirty:i,isSaveDisabled:r,handleOnChange:m,createVariable:b,handleDeleteVariable:v,handleSave:g,isSaving:c,handleSearch:e=>{p(e)},searchValue:d,setIsSaving:u,setIsSaveDisabled:l}})(),{autoEditVariableId:k,startAutoEdit:S,handleAutoEditComplete:I}=(()=>{const[e,t]=(0,o.useState)(void 0);return{autoEditVariableId:e,startAutoEdit:(0,o.useCallback)(e=>{t(e)},[]),handleAutoEditComplete:(0,o.useCallback)(()=>{setTimeout(()=>{t(void 0)},100)},[])}})(),{createNavigationCallback:P,resetNavigation:A}=(()=>{const e=(0,o.useRef)(0);return{createNavigationCallback:(0,o.useCallback)((t,a,n)=>()=>{if(!t?.length)return;const r=e.current,l=t[r];if(l){a(l);const o=r+1;o>=t.length?(n(),e.current=0):e.current=o}},[]),resetNavigation:(0,o.useCallback)(()=>{e.current=0},[])}})(),[x,V]=(0,o.useState)(null),[D,B]=(0,o.useState)(null);Pe(p);const L=(0,o.useCallback)((e,t,a)=>{const n=h(e,t,a);n&&S(n)},[h,S]),R=async()=>{try{B(null),A();const e=await f();return b({action:"saveChanges"}),e}catch(e){const t=g(e),a=t?.action?.data?.duplicatedIds;return t&&"label"===t.field&&(a&&t.action&&(t.action.callback=P(a,S,()=>{w(!1)})),B(t),w(!0),A()),{success:!1,error:t}}finally{_(!1)}},U=(0,o.useCallback)(e=>{y(e),V(null)},[y]),M=(0,o.useCallback)(()=>[{name:(0,d.__)("Delete","elementor"),icon:c.TrashIcon,color:"error.main",onClick:e=>{const t=s[e];if(t){V({id:e,label:t.label});const a=z(t.type);b({action:"delete",varType:a?.variableType})}}}],[s]),N=Object.keys(s).length>0;return o.createElement(i.ThemeProvider,null,o.createElement(r.Panel,null,o.createElement(r.PanelHeader,{sx:{height:"unset"}},o.createElement(u.Stack,{width:"100%",direction:"column",alignItems:"center"},o.createElement(u.Stack,{p:1,pl:2,width:"100%",direction:"row",alignItems:"center"},o.createElement(u.Stack,{width:"100%",direction:"row",gap:1},o.createElement(r.PanelHeaderTitle,{sx:{display:"flex",alignItems:"center",gap:.5}},o.createElement(c.ColorFilterIcon,{fontSize:"inherit"}),(0,d.__)("Variables Manager","elementor"))),o.createElement(u.Stack,{direction:"row",gap:.5,alignItems:"center"},o.createElement(ue,{onCreate:L,variables:s,menuState:l}),o.createElement(u.CloseButton,{"aria-label":"Close",slotProps:{icon:{fontSize:ce}},onClick:()=>{p?t():e()}}))),o.createElement(u.Stack,{width:"100%",direction:"row",gap:1},o.createElement(i.SearchField,{sx:{display:"flex",flex:1},placeholder:(0,d.__)("Search","elementor"),value:m,onSearch:T})),o.createElement(u.Divider,{sx:{width:"100%"}}))),o.createElement(r.PanelBody,{sx:{display:"flex",flexDirection:"column",height:"100%"}},N&&o.createElement(we,{menuActions:M,variables:s,onChange:E,autoEditVariableId:k,onAutoEditComplete:I,onFieldError:w}),!N&&m&&o.createElement(G,{searchValue:m,onClear:()=>T(""),icon:o.createElement(c.ColorFilterIcon,{fontSize:"large"})}),!N&&!m&&o.createElement(W,{title:(0,d.__)("Create your first variable","elementor"),message:(0,d.__)("Variables are saved attributes that you can apply anywhere on your site.","elementor"),icon:o.createElement(c.ColorFilterIcon,{fontSize:"large"}),onAdd:l.open})),o.createElement(r.PanelFooter,null,o.createElement(u.Infotip,{placement:"right",open:!!D,content:D?o.createElement(u.Alert,{severity:D.severity??"error",action:D.action?.label?o.createElement(u.AlertAction,{onClick:D.action.callback},D.action.label):void 0,onClose:D.action?.label?void 0:()=>{B(null),w(!1)},icon:D.IconComponent?o.createElement(D.IconComponent,null):o.createElement(c.AlertTriangleFilledIcon,null)},o.createElement(u.AlertTitle,null,D.message),D.action?.message):null,arrow:!1,slotProps:{popper:{modifiers:[{name:"offset",options:{offset:[-10,10]}}]}}},o.createElement(u.Button,{fullWidth:!0,size:"small",color:"global",variant:"contained",disabled:v||!p||C,onClick:R,loading:C},(0,d.__)("Save changes","elementor"))))),x&&o.createElement(j,{open:!0,label:x.label,onConfirm:()=>U(x.id),closeDialog:()=>V(null)}),n&&o.createElement(i.SaveChangesDialog,null,o.createElement(i.SaveChangesDialog.Title,{onClose:a},(0,d.__)("You have unsaved changes","elementor")),o.createElement(i.SaveChangesDialog.Content,null,o.createElement(i.SaveChangesDialog.ContentText,null,(0,d.__)("To avoid losing your updates, save your changes before leaving.","elementor"))),o.createElement(i.SaveChangesDialog.Actions,{actions:{discard:{label:(0,d.__)("Discard","elementor"),action:()=>{a(),e()}},confirm:{label:(0,d.__)("Save","elementor"),action:async()=>{const t=await R();a(),t?.success&&e()}}}})))},allowedEditModes:["edit",ke],onOpen:()=>{(0,s.changeEditMode)(ke)},onClose:async()=>{(0,s.changeEditMode)("edit")},isOpenPreviousElement:!0}),Pe=e=>{(0,o.useEffect)(()=>{const t=t=>{e&&t.preventDefault()};return window.addEventListener("beforeunload",t),()=>{window.removeEventListener("beforeunload",t)}},[e])};function Ae(e,t,a){return()=>{const{fallbackPropTypeUtil:n}=z(t),r=function(e,t){const{valueTransformer:a}=z(t);return a?a(e.value,e.type):e.value}(e,t);a(n.create(r))}}const xe=(0,o.createContext)(null),Ve=({children:e})=>{const[t,a]=(0,o.useState)(null);return o.createElement(xe.Provider,{value:t},o.createElement(u.Box,{ref:a},e))},Oe=()=>(0,o.useContext)(xe),De=()=>{const{propTypeUtil:e}=J(),t=(0,K.useBoundProp)(e);return{...t,setVariableValue:e=>Be(e,t),variableId:t.value??t.placeholder}},Be=(e,t)=>{const a=Le(t.value),n=Le(t.placeholder),r=Le(e);return a||n!==r?t.setValue(e):t.setValue(null)},Le=e=>(0,l.isTransformable)(e)?e.value:e,Re=({id:e,label:t,errorMsg:a,noticeMsg:n,children:r})=>o.createElement(u.Grid,{container:!0,gap:.75,alignItems:"center"},o.createElement(u.Grid,{item:!0,xs:12},o.createElement(u.FormLabel,{htmlFor:e,size:"tiny"},t)),o.createElement(u.Grid,{item:!0,xs:12},r,a&&o.createElement(u.FormHelperText,{error:!0},a),n&&o.createElement(u.FormHelperText,null,n))),Ue="tiny",ze=({onGoBack:e,onClose:t})=>{const{icon:a,valueField:r,variableType:l,propTypeUtil:s}=J(),{setVariableValue:p,path:b}=De(),{propType:h}=(0,K.useBoundProp)(),y=(()=>{const{value:e}=(0,K.useBoundProp)(),t=M(e?.$$type)&&Boolean(e?.value),a=te(t?e.value:"");return t?a?a.value:"":e?.value??""})(),[f,C]=(0,o.useState)(y),[T,_]=(0,o.useState)(""),[w,k]=(0,o.useState)(""),[S,I]=(0,o.useState)(""),[P,A]=(0,o.useState)(s.key),{labelFieldError:x,setLabelFieldError:V}=ge(),D=()=>{C(""),_(""),k(""),I(""),t()},B=()=>{var e;(e={value:f,label:T,type:P},O.create(e).then(ne)).then(e=>{p(e),D()}).catch(e=>{const t=g(e);if(t&&"label"===t.field)return _(""),void V({value:T,message:t.message});k(v.UNEXPECTED_ERROR)}),m({varType:l,controlPath:b.join("."),action:"save"})},L=""===T.trim()||("string"==typeof f?""===f.trim():!1===Boolean(f))||!!w,R=e=>{"Enter"!==e.key||L||(e.preventDefault(),B())};return o.createElement(n.PopoverBody,{height:"auto"},o.createElement(i.PopoverHeader,{icon:o.createElement(o.Fragment,null,e&&o.createElement(u.IconButton,{size:Ue,"aria-label":(0,d.__)("Go Back","elementor"),onClick:e},o.createElement(c.ArrowLeftIcon,{fontSize:Ue})),o.createElement(a,{fontSize:Ue})),title:(0,d.__)("Create variable","elementor"),onClose:D}),o.createElement(u.Divider,null),o.createElement(K.PopoverContent,{p:2},o.createElement(Re,{id:"variable-label",label:(0,d.__)("Name","elementor"),errorMsg:x?.message,noticeMsg:E(T)},o.createElement(Ee,{id:"variable-label",value:T,error:x,onChange:e=>{_(e),k("")},onErrorChange:e=>{V({value:T,message:e})},onKeyDown:R})),r&&o.createElement(Re,{errorMsg:S,label:(0,d.__)("Value","elementor")},o.createElement(u.Typography,{variant:"h5",id:"variable-value-wrapper"},o.createElement(r,{value:f,onPropTypeKeyChange:e=>A(e),onChange:e=>{C(e),k(""),I("")},onValidationChange:I,propType:h,onKeyDown:R}))),w&&o.createElement(u.FormHelperText,{error:!0},w)),o.createElement(u.CardActions,{sx:{pt:.5,pb:1}},o.createElement(u.Button,{id:"create-variable-button",size:"small",variant:"contained",disabled:L,onClick:B},(0,d.__)("Create","elementor"))))},Fe=({closeDialog:e,onConfirm:t,onSuppressMessage:a})=>{const[n,r]=(0,o.useState)(!1);return o.createElement(u.Dialog,{open:!0,onClose:e,maxWidth:"xs"},o.createElement(u.DialogTitle,{display:"flex",alignItems:"center",gap:1},o.createElement(c.AlertTriangleFilledIcon,{color:"secondary"}),(0,d.__)("Changes to variables go live right away.","elementor")),o.createElement(u.DialogContent,null,o.createElement(u.DialogContentText,{variant:"body2",color:"textPrimary"},(0,d.__)("Don't worry - all other changes you make will wait until you publish your site.","elementor"))),o.createElement(u.DialogActions,{sx:{justifyContent:"space-between",alignItems:"center"}},o.createElement(u.FormControlLabel,{control:o.createElement(u.Checkbox,{checked:n,onChange:e=>r(e.target.checked),size:"small"}),label:o.createElement(u.Typography,{variant:"body2"},(0,d.__)("Don't show me again","elementor"))}),o.createElement("div",null,o.createElement(u.Button,{color:"secondary",onClick:e},(0,d.__)("Keep editing","elementor")),o.createElement(u.Button,{variant:"contained",color:"secondary",onClick:()=>{n&&a?.(),t?.()},sx:{ml:1}},(0,d.__)("Save","elementor")))))},Me="tiny",je=(0,d.__)("Delete variable","elementor"),Ne=({onClose:e,onGoBack:t,onSubmit:a,editId:r})=>{const{icon:l,valueField:s,variableType:p,propTypeUtil:m}=J(),{setVariableValue:b,variableId:h}=De(),{propType:y}=(0,K.useBoundProp)(),[f,C]=(0,N.useSuppressedMessage)("edit-confirmation-dialog"),[T,_]=(0,o.useState)(!1),[w,k]=(0,o.useState)(!1),[S,I]=(0,o.useState)(""),[P,A]=(0,o.useState)(""),{labelFieldError:V,setLabelFieldError:D}=ge(),B=te(r),[L,R]=(0,o.useState)(B?.type??m.key);if(!B)throw new Error(`Global ${p} variable not found`);const U=H(),[z,F]=(0,o.useState)(()=>B.value),[M,W]=(0,o.useState)(()=>B.label);(0,o.useEffect)(()=>(x.update({[r]:{...B,value:z}}),()=>{x.update({[r]:{...B}})}),[r,z,B]);const $=()=>{f?G():k(!0)},G=()=>{const e=L!==B.type;((e,{value:t,label:a,type:n})=>O.update(e,{value:t,label:a,type:n}).then(ne))(r,e?{value:z,label:M,type:L}:{value:z,label:M}).then(()=>{q(),a?.()}).catch(e=>{const t=g(e);if(t&&"label"===t.field)return W(""),void D({value:M,message:t.message});I(v.UNEXPECTED_ERROR)})},q=()=>{r===h&&b(r)},X=[];U.canDelete()&&X.push(o.createElement(u.Tooltip,{key:"delete",placement:"top",title:je},o.createElement(u.IconButton,{size:Me,onClick:()=>{_(!0)},"aria-label":je},o.createElement(c.TrashIcon,{fontSize:Me}))));const Y=z===B.value&&M===B.label||""===M.trim()||("string"==typeof z?""===z.trim():!1===Boolean(z))||!!S,Q=e=>{"Enter"!==e.key||Y||(e.preventDefault(),$())};return o.createElement(o.Fragment,null,o.createElement(n.PopoverBody,{height:"auto"},o.createElement(i.PopoverHeader,{title:(0,d.__)("Edit variable","elementor"),onClose:e,icon:o.createElement(o.Fragment,null,t&&o.createElement(u.IconButton,{size:Me,"aria-label":(0,d.__)("Go Back","elementor"),onClick:t},o.createElement(c.ArrowLeftIcon,{fontSize:Me})),o.createElement(l,{fontSize:Me})),actions:X}),o.createElement(u.Divider,null),o.createElement(K.PopoverContent,{p:2},o.createElement(Re,{id:"variable-label",label:(0,d.__)("Name","elementor"),errorMsg:V?.message,noticeMsg:E(M)},o.createElement(Ee,{id:"variable-label",value:M,error:V,onChange:e=>{W(e),I("")},onErrorChange:e=>{D({value:M,message:e})},onKeyDown:Q})),s&&o.createElement(Re,{errorMsg:P,label:(0,d.__)("Value","elementor")},o.createElement(u.Typography,{variant:"h5"},o.createElement(s,{propTypeKey:B.type,onPropTypeKeyChange:e=>R(e),value:z,onChange:e=>{F(e),I(""),A("")},onKeyDown:Q,onValidationChange:A,propType:y}))),S&&o.createElement(u.FormHelperText,{error:!0},S)),o.createElement(u.CardActions,{sx:{pt:.5,pb:1}},o.createElement(u.Button,{size:"small",variant:"contained",disabled:Y,onClick:$},(0,d.__)("Save","elementor")))),T&&o.createElement(j,{open:!0,label:M,onConfirm:()=>{var e;(e=r,O.delete(e).then(ne)).then(()=>{q(),a?.()})},closeDialog:()=>{_(!1)}}),w&&!f&&o.createElement(Fe,{closeDialog:()=>{k(!1)},onConfirm:G,onSuppressMessage:C}))},He=(0,d.__)("Edit variable","elementor"),We=({item:e,disabled:t=!1})=>{const a=e.onEdit;return o.createElement(o.Fragment,null,o.createElement(u.ListItemIcon,{sx:{color:t?"text.disabled":"inherit"}},e.icon),o.createElement(u.Box,{sx:{flex:1,minWidth:0,display:"flex",alignItems:"center",gap:1}},o.createElement(i.EllipsisWithTooltip,{title:e.label||e.value,as:u.Typography,variant:"caption",color:t?"text.disabled":"text.primary",sx:{marginTop:"1px",lineHeight:"2"},maxWidth:"50%"}),e.secondaryText&&o.createElement(i.EllipsisWithTooltip,{title:e.secondaryText,as:u.Typography,variant:"caption",color:t?"text.disabled":"text.tertiary",sx:{marginTop:"1px",lineHeight:"1"},maxWidth:"50%"})),!!a&&!t&&o.createElement(u.Tooltip,{placement:"top",title:He},o.createElement(u.IconButton,{sx:{mx:1,opacity:"0"},onClick:t=>{t.stopPropagation(),a(e.value)},"aria-label":He},o.createElement(c.EditIcon,{color:"action",fontSize:"tiny"}))))},$e=(0,u.styled)(u.MenuList)(({theme:e,disabled:t})=>({"& > li":{height:32,width:"100%",display:"flex",alignItems:"center"},'& > [role="option"]':{...e.typography.caption,lineHeight:"inherit",padding:e.spacing(.5,1,.5,2),...!t&&{"&:hover, &:focus":{backgroundColor:e.palette.action.hover},cursor:"pointer"},'&[aria-selected="true"]':{backgroundColor:e.palette.action.selected},textOverflow:"ellipsis",position:"absolute",top:0,left:0,"&:hover .MuiIconButton-root, .MuiIconButton-root:focus":{opacity:1}},width:"100%",position:"relative"}));function Ge(){return Ge=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},Ge.apply(null,arguments)}const Ke="tiny",qe=(0,d.__)("Create variable","elementor"),Xe=(0,d.__)("Variables Manager","elementor"),Je=e=>`https://go.elementor.com/renew-license-panel-${e}-variable`,Ye=({closePopover:e,onAdd:t,onEdit:a,onSettings:r,disabled:l=!1})=>{const{icon:s,startIcon:p,variableType:v,propTypeUtil:g,emptyState:E}=J(),{value:h,setValue:y,path:f}=De(),[C,T]=(0,o.useState)(""),{list:_,hasMatches:w,isSourceNotEmpty:k,hasNoCompatibleVariables:S}=((e,t)=>{const a=(l=t,(0,o.useMemo)(()=>ae(l),[l])),n=(e=>{const{selectionFilter:t}=J(),{propType:a}=(0,K.useBoundProp)();return t?t(e,a):e})(a),r=Y(n,e);var l;return{list:r.sort((e,t)=>(e.order??Number.MAX_SAFE_INTEGER)-(t.order??Number.MAX_SAFE_INTEGER)),hasMatches:r.length>0,isSourceNotEmpty:n.length>0,hasNoCompatibleVariables:a.length>0&&0===n.length}})(C,g.key),I=[];if(t&&I.push(o.createElement(u.Tooltip,{key:"add",placement:"top",title:qe},o.createElement("span",null,o.createElement(u.IconButton,{id:"add-variable-button",size:Ke,onClick:()=>{t?.(),m({varType:v,controlPath:f.join("."),action:"add"})},"aria-label":qe,disabled:l},o.createElement(c.PlusIcon,{fontSize:Ke}))))),r){const e=()=>{r(),b({action:"openManager",varType:v,controlPath:f.join(".")})};I.push(o.createElement(u.Tooltip,{key:"settings",placement:"top",title:Xe},o.createElement(u.IconButton,{id:"variables-manager-button",size:Ke,onClick:e,"aria-label":Xe},o.createElement(c.SettingsIcon,{fontSize:Ke}))))}const P=p||(()=>o.createElement(s,{fontSize:Ke})),A=_.map(({value:e,label:t,key:n})=>({type:"item",value:n,label:t,icon:o.createElement(P,{value:e}),secondaryText:e,onEdit:a?()=>a?.(n):void 0}));return o.createElement(n.PopoverBody,null,o.createElement(i.PopoverHeader,{title:(0,d.__)("Variables","elementor"),icon:o.createElement(c.ColorFilterIcon,{fontSize:Ke}),onClose:e,actions:I}),k&&o.createElement(i.SearchField,{value:C,onSearch:e=>{T(e)},placeholder:(0,d.__)("Search","elementor")}),o.createElement(u.Divider,null),k&&w&&o.createElement(o.Fragment,null,o.createElement(i.PopoverMenuList,{items:A,onSelect:l?()=>{}:t=>{y(t),m({varType:v,controlPath:f.join("."),action:"connect"}),e()},onClose:()=>{},selectedValue:h,"data-testid":`${v}-variables-list`,menuListTemplate:e=>o.createElement($e,Ge({},e,{disabled:l})),menuItemContentTemplate:e=>o.createElement(We,{item:e,disabled:l})}),l&&o.createElement(i.PromotionAlert,{message:(0,d.sprintf)((0,d.__)("Upgrade to continue creating and editing %s variables.","elementor"),v),upgradeUrl:Je(v)})),!w&&k&&o.createElement(G,{searchValue:C,onClear:()=>{T("")},icon:o.createElement(s,{fontSize:"large"})}),l&&!k&&o.createElement(W,{title:(0,d.sprintf)((0,d.__)("No %s variables yet","elementor"),v),message:(0,d.sprintf)((0,d.__)("Upgrade to create %s variables and maintain consistent element sizing.","elementor"),v),icon:o.createElement(s,{fontSize:"large"})},E),!k&&!S&&!l&&o.createElement(W,{title:(0,d.sprintf)((0,d.__)("Create your first %s variable","elementor"),v),message:(0,d.__)("Variables are saved attributes that you can apply anywhere on your site.","elementor"),icon:o.createElement(s,{fontSize:"large"}),onAdd:t}),S&&!l&&o.createElement(W,{title:(0,d.__)("No compatible variables","elementor"),message:(0,d.__)("Looks like none of your variables work with this control. Create a new variable to use it here.","elementor"),icon:o.createElement(s,{fontSize:"large"}),onAdd:t}))},Qe="list",Ze="edit",et=({closePopover:e,propTypeKey:t,selectedVariable:a})=>{const[n,r]=(0,o.useState)(Qe),[l,i]=(0,o.useState)(""),{open:c}=Ie(),u=(0,s.isExperimentActive)("e_variables_manager")?()=>{c()}:void 0;return o.createElement(X,{propTypeKey:t},o.createElement(Ve,null,function(e){const t=H(),a=oe(e.propTypeKey),n={onClose:()=>{e.closePopover()},onGoBack:()=>{e.setCurrentView(Qe)}};t.canAdd()&&(n.onAdd=()=>{e.setCurrentView("add")}),t.canEdit()&&(n.onEdit=t=>{e.setEditId(t),e.setCurrentView(Ze)}),t.canManageSettings()&&e.onSettings&&(n.onSettings=()=>{e.closePopover(),e.onSettings?.()});return Qe===e.currentView?o.createElement(Ye,{closePopover:n.onClose,onAdd:n.onAdd,onEdit:n.onEdit,onSettings:n.onSettings,disabled:!a.canAdd()}):"add"===e.currentView?o.createElement(ze,{onGoBack:n.onGoBack,onClose:n.onClose}):Ze===e.currentView?o.createElement(Ne,{editId:e.editId,onGoBack:n.onGoBack,onClose:n.onClose,onSubmit:()=>{e?.selectedVariable?.key===e.editId?n.onClose():n.onGoBack?.()}}):null}({propTypeKey:t,currentView:n,selectedVariable:a,editId:l,setEditId:i,setCurrentView:r,closePopover:e,onSettings:u})))};function tt(){return tt=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},tt.apply(null,arguments)}const at="tiny",nt=(0,d.__)("Unlink variable","elementor"),rt=({startIcon:e,label:t,onUnlink:a,...n})=>{const r=[];return a&&r.push(o.createElement(u.Tooltip,{key:"unlink",title:nt,placement:"bottom"},o.createElement(u.IconButton,{size:at,onClick:a,"aria-label":nt},o.createElement(c.DetachIcon,{fontSize:at})))),o.createElement(u.Tooltip,{title:t,placement:"top"},o.createElement(u.UnstableTag,tt({fullWidth:!0,showActionsOnHover:!0,startIcon:o.createElement(u.Stack,{gap:.5,direction:"row",alignItems:"center"},e),label:o.createElement(u.Box,{sx:{display:"inline-grid",minWidth:0}},o.createElement(u.Typography,{sx:{lineHeight:1.34},variant:"caption",noWrap:!0},t)),actions:r},n)))};function lt(){return lt=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},lt.apply(null,arguments)}const ot=({variable:e,propTypeKey:t})=>{const{startIcon:a,propTypeUtil:n}=z(t),{setValue:r}=(0,K.useBoundProp)(),l=(0,o.useRef)(null),i=(0,o.useId)(),s=(0,u.usePopupState)({variant:"popover",popupId:`elementor-variables-list-${i}`}),d=Ae(e,t,r),p=a||(()=>null);return o.createElement(u.Box,{ref:l},o.createElement(rt,lt({label:e.label,startIcon:o.createElement(o.Fragment,null,o.createElement(c.ColorFilterIcon,{fontSize:at}),o.createElement(p,{value:e.value})),onUnlink:d},(0,u.bindTrigger)(s))),o.createElement(u.Popover,lt({disableScrollLock:!0,anchorEl:l.current,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},PaperProps:{sx:{my:1}}},(0,u.bindPopover)(s)),o.createElement(et,{selectedVariable:e,closePopover:s.close,propTypeKey:n.key})))},it=({variableId:e,onClose:t,onSubmit:a})=>{const{icon:r,valueField:l,variableType:s,propTypeUtil:c}=J(),{setVariableValue:p}=De(),{propType:m}=(0,K.useBoundProp)(),b=te(e);if(!b)throw new Error(`Global ${s} variable not found`);const[h,y]=(0,o.useState)(""),[f,C]=(0,o.useState)(""),[T,_]=(0,o.useState)(b.label),[w,k]=(0,o.useState)(b.value),[S,I]=(0,o.useState)(b?.type??c.key),{labelFieldError:P,setLabelFieldError:A}=ge({value:b.label,message:v.DUPLICATED_LABEL}),x=()=>{(S!==b.type?re(e,T,w,S):re(e,T,w)).then(()=>{p(e),a?.()}).catch(e=>{const t=g(e);if(t&&"label"===t.field)return _(""),void A({value:T,message:t.message});y(v.UNEXPECTED_ERROR)})},V=w===b.value&&T===b.label||""===T.trim()||("string"==typeof w?""===w.trim():!1===Boolean(w))||!!h,O=e=>{"Enter"!==e.key||V||(e.preventDefault(),x())};return o.createElement(Ve,null,o.createElement(n.PopoverBody,{height:"auto"},o.createElement(i.PopoverHeader,{icon:o.createElement(r,{fontSize:"tiny"}),title:(0,d.__)("Restore variable","elementor"),onClose:t}),o.createElement(u.Divider,null),o.createElement(K.PopoverContent,{p:2},o.createElement(Re,{id:"variable-label",label:(0,d.__)("Name","elementor"),errorMsg:P?.message,noticeMsg:E(T)},o.createElement(Ee,{id:"variable-label",value:T,error:P,onChange:e=>{_(e),y("")},onErrorChange:e=>{A({value:T,message:e})},onKeyDown:O})),l&&o.createElement(Re,{errorMsg:f,label:(0,d.__)("Value","elementor")},o.createElement(u.Typography,{variant:"h5"},o.createElement(l,{propTypeKey:S,onPropTypeKeyChange:e=>I(e),value:w,onChange:e=>{k(e),y(""),C("")},onValidationChange:C,propType:m,onKeyDown:O}))),h&&o.createElement(u.FormHelperText,{error:!0},h)),o.createElement(u.CardActions,{sx:{pt:.5,pb:1}},o.createElement(u.Button,{size:"small",variant:"contained",disabled:V,onClick:x},(0,d.__)("Restore","elementor")))))},st=({onClose:e,onUnlink:t,onRestore:a,label:n})=>o.createElement(u.ClickAwayListener,{onClickAway:e},o.createElement(u.Alert,{variant:"standard",severity:"warning",onClose:e,action:o.createElement(o.Fragment,null,t&&o.createElement(u.AlertAction,{variant:"contained",onClick:t},(0,d.__)("Unlink","elementor")),a&&o.createElement(u.AlertAction,{variant:"outlined",onClick:a},(0,d.__)("Restore","elementor"))),sx:{maxWidth:300}},o.createElement(u.AlertTitle,null,(0,d.__)("Deleted variable","elementor")),o.createElement(u.Typography,{variant:"body2",color:"textPrimary"},(0,d.__)("The variable","elementor")," '",o.createElement(u.Typography,{variant:"body2",component:"span",sx:{lineBreak:"anywhere"}},n),"' ",(0,d.__)("has been deleted, but it is still referenced in this location. You may restore the variable or unlink it to assign a different value.","elementor"))));function ct(){return ct=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},ct.apply(null,arguments)}const ut=o.forwardRef(({label:e,suffix:t,onClick:a,icon:n,...r},l)=>{const i=t?`${e} (${t})`:e;return o.createElement(u.Chip,ct({ref:l,size:"tiny",color:"warning",shape:"rounded",variant:"standard",onClick:a,icon:o.createElement(c.AlertTriangleFilledIcon,null),label:o.createElement(u.Tooltip,{title:i,placement:"top"},o.createElement(u.Box,{sx:{display:"inline-grid",minWidth:0}},o.createElement(u.Typography,{variant:"caption",noWrap:!0,sx:{lineHeight:1.34}},i))),sx:{height:e=>e.spacing(3.5),borderRadius:e=>e.spacing(1),justifyContent:"flex-start",width:"100%"}},r))});function dt(){return dt=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},dt.apply(null,arguments)}ut.displayName="WarningVariableTag";const pt=({variable:e,propTypeKey:t})=>{const{propTypeUtil:a}=z(t),n=(0,K.useBoundProp)(),r=H(),[l,i]=(0,o.useState)(!1),s=()=>i(!1),c=(0,o.useRef)(null),p=(0,o.useId)(),m=(0,u.usePopupState)({variant:"popover",popupId:`elementor-variables-restore-${p}`}),b={};return r.canUnlink()&&(b.onUnlink=Ae(e,t,n.setValue)),r.canRestore()&&(b.onRestore=()=>{e.key&&re(e.key).then(e=>{Be(a.create(e),n),s()}).catch(()=>{s(),m.setAnchorEl(c.current),m.open()})}),o.createElement(o.Fragment,null,o.createElement(u.Box,{ref:c},l&&o.createElement(u.Backdrop,{open:!0,onClick:s,invisible:!0}),o.createElement(u.Infotip,{color:"warning",placement:"right-start",open:l,disableHoverListener:!0,onClose:s,content:o.createElement(st,{onClose:s,onUnlink:b.onUnlink,onRestore:b.onRestore,label:e.label}),slotProps:{popper:{modifiers:[{name:"offset",options:{offset:[0,24]}}]}}},o.createElement(ut,{label:e.label,onClick:()=>i(e=>!e),suffix:(0,d.__)("deleted","elementor")})),o.createElement(u.Popover,dt({disableScrollLock:!0,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},PaperProps:{sx:{my:1}}},(0,u.bindPopover)(m)),o.createElement(X,{propTypeKey:t},o.createElement(it,{variableId:e.key??"",onClose:m.close,onSubmit:()=>{m.close()}})))))},mt={title:(0,d.__)("Variable has changed","elementor"),message:(0,d.__)("This variable is no longer compatible with this property. You can clear it or select a different one.","elementor"),buttons:{clear:(0,d.__)("Clear","elementor"),select:(0,d.__)("Select variable","elementor")}},bt=({onClose:e,onClear:t,triggerSelect:a})=>o.createElement(u.ClickAwayListener,{onClickAway:e},o.createElement(u.Alert,{variant:"standard",severity:"warning",onClose:e,action:o.createElement(o.Fragment,null,t&&o.createElement(u.AlertAction,{variant:"contained",onClick:t},mt.buttons.clear),a&&o.createElement(u.AlertAction,{variant:"outlined",onClick:a},mt.buttons.select)),sx:{maxWidth:300}},o.createElement(u.AlertTitle,null,mt.title),o.createElement(u.Typography,{variant:"body2",color:"textPrimary"},mt.message)));function vt(){return vt=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},vt.apply(null,arguments)}const gt=({variable:e})=>{const{setValue:t,value:a}=(0,K.useBoundProp)(),n=(0,o.useRef)(null),r=(0,o.useId)(),l=(0,u.usePopupState)({variant:"popover",popupId:`elementor-variables-list-${r}`}),[i,s]=(0,o.useState)(!1),c=()=>s(!1),p=!!a;return o.createElement(u.Box,{ref:n},i&&o.createElement(u.Backdrop,{open:!0,onClick:c,invisible:!0}),o.createElement(u.Infotip,{color:"warning",placement:"right-start",open:i,disableHoverListener:!0,onClose:c,content:o.createElement(bt,{onClose:c,onClear:p?()=>{c(),t(null)}:void 0,triggerSelect:()=>{c(),l.setAnchorEl(n.current),l.open()}}),slotProps:{popper:{modifiers:[{name:"offset",options:{offset:[0,24]}}]}}},o.createElement(ut,{label:e.label,onClick:()=>s(e=>!e),suffix:(0,d.__)("changed","elementor")})),o.createElement(u.Popover,vt({disableScrollLock:!0,anchorEl:n.current,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},PaperProps:{sx:{my:1}}},(0,u.bindPopover)(l)),o.createElement(et,{selectedVariable:e,closePopover:l.close,propTypeKey:e.type})))},Et=({onClose:e,onClear:t})=>o.createElement(u.ClickAwayListener,{onClickAway:e},o.createElement(u.Alert,{variant:"standard",severity:"warning",onClose:e,action:o.createElement(o.Fragment,null,t&&o.createElement(u.AlertAction,{variant:"contained",onClick:t},(0,d.__)("Clear","elementor"))),sx:{maxWidth:300}},o.createElement(u.AlertTitle,null,(0,d.__)("This variable is missing","elementor")),o.createElement(u.Typography,{variant:"body2",color:"textPrimary"},(0,d.__)("It may have been deleted. Try clearing this field and select a different value or variable.","elementor")))),ht=()=>{const{setValue:e}=(0,K.useBoundProp)(),[t,a]=(0,o.useState)(!1),n=()=>a(!1);return o.createElement(o.Fragment,null,t&&o.createElement(u.Backdrop,{open:!0,onClick:n,invisible:!0}),o.createElement(u.Infotip,{color:"warning",placement:"right-start",open:t,disableHoverListener:!0,onClose:n,content:o.createElement(Et,{onClose:n,onClear:()=>e(null)}),slotProps:{popper:{modifiers:[{name:"offset",options:{offset:[0,24]}}]}}},o.createElement(ut,{label:(0,d.__)("Missing variable","elementor"),onClick:()=>a(e=>!e)})))},yt=()=>{const e=(0,K.useBoundProp)(),t=e.value??e.placeholder,a=te(t?.value);if(!a)return o.createElement(ht,null);const{$$type:n}=t;if(a?.deleted)return o.createElement(pt,{variable:a,propTypeKey:n});const{isCompatible:r}=z(a.type);return r&&!r(e?.propType,a)?o.createElement(gt,{variable:a}):o.createElement(ot,{variable:a,propTypeKey:n})},ft=()=>{const{propType:e,path:t}=(0,n.useBoundProp)(),a=Ct(e);return{visible:Boolean(a),icon:c.ColorFilterIcon,title:(0,d.__)("Variables","elementor"),content:({close:e})=>a?(Tt(t,a.variableType),o.createElement(et,{closePopover:e,propTypeKey:a.propTypeUtil.key})):null}},Ct=e=>{if("union"===e.kind)for(const t of Object.keys(e.prop_types)){const e=z(t);if(e)return e}},Tt=(e,t)=>{m({varType:t,controlPath:e.join("."),action:"open"})};var _t=window.elementorV2.editorMcp;const wt="elementor://global-variables",kt=()=>{[(0,_t.getMCPByDomain)("canvas"),(0,_t.getMCPByDomain)("variables")].forEach(e=>{const{mcpServer:t}=e;t.resource("global-variables",wt,{description:"List of Global variables. Defined as a key-value store (ID as key, global-variable object as value)"},async()=>{const e={};return Object.entries(O.variables()).forEach(([t,a])=>{a.deleted||(e[t]=a)}),{contents:[{uri:wt,text:JSON.stringify(e)}]}}),window.addEventListener("variables:updated",()=>{t.server.sendResourceUpdated({uri:wt,contents:[{uri:wt,text:localStorage["elementor-global-variables"]}]})})})},St=()=>{(0,_t.getMCPByDomain)("variables").addTool({name:"manage-global-variable",schema:{action:C.z.enum(["create","update","delete"]).describe("Operation to perform"),id:C.z.string().optional().describe("Variable id (required for update/delete). Get from list-global-variables."),type:C.z.string().optional().describe('Variable type: "global-color-variable" or "global-font-variable" (required for create)'),label:C.z.string().optional().describe("Variable label (required for create/update)"),value:C.z.string().optional().describe("Variable value (required for create/update)")},outputSchema:{status:C.z.enum(["ok"]).describe("Operation status"),message:C.z.string().optional().describe("Error details if status is error")},modelPreferences:{intelligencePriority:.75,speedPriority:.75},requiredResources:[{uri:wt,description:"Global variables"}],description:'Manages global variables (create/update/delete). Existing variables available in resources.\nCREATE: requires type, label, value. Ensure label is unique.\nUPDATE: requires id, label, value. When renaming: keep existing value. When updating value: keep exact label.\nDELETE: requires id. DESTRUCTIVE - confirm with user first.\n\n# NAMING - IMPORTANT\nthe variables names should ALWAYS be lowercased and dashed spaced. example: "Headline Primary" should be "headline-primary"\n',handler:async e=>{const t=(a=O,{create({type:e,label:t,value:n}){if(!e||!t||!n)throw new Error("Create requires type, label, and value");return a.create({type:e,label:t,value:n})},update({id:e,label:t,value:n}){if(!e||!t||!n)throw new Error("Update requires id, label, and value");return a.update(e,{label:t,value:n})},delete({id:e}){if(!e)throw new Error("delete requires id");return a.delete(e)}});var a;const n=t[e.action];if(n)return await n(e),{status:"ok"};throw new Error(`Unknown action ${e.action}`)},isDestructive:!0})},It=({value:e,onChange:t,onValidationChange:a})=>{const[n,r]=(0,o.useState)(e),[l,i]=(0,o.useState)(""),s=(0,o.useRef)(null),c=Oe()??s.current;return o.createElement(u.UnstableColorField,{id:"color-variable-field",size:"tiny",fullWidth:!0,value:n,onChange:e=>{r(e);const n=h(e);i(n),a?.(n),t(n?"":e)},error:l||void 0,slotProps:{colorPicker:{anchorEl:c,anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:-10},slotProps:{colorIndicator:{size:"inherit",sx:{borderRadius:.5}}}}}})};function Pt(){return Pt=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},Pt.apply(null,arguments)}const At=({value:e,onChange:t,onValidationChange:a})=>{const[r,l]=(0,o.useState)(e),i=(0,o.useRef)(null),s=Oe()??i.current,p=(0,u.usePopupState)({variant:"popover"}),m=(0,n.useFontFamilies)(),b=(0,n.useSectionWidth)(),v=o.useMemo(()=>m.map(({label:e,fonts:t})=>({label:e,items:t})),[m]),g=(0,o.useId)();return o.createElement(o.Fragment,null,o.createElement(u.UnstableTag,Pt({id:g,variant:"outlined",label:r,endIcon:o.createElement(c.ChevronDownIcon,{fontSize:"tiny"})},(0,u.bindTrigger)(p),{fullWidth:!0})),o.createElement(u.Popover,Pt({disablePortal:!0,disableScrollLock:!0,anchorEl:s,anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:-28}},(0,u.bindPopover)(p)),o.createElement(K.ItemSelector,{id:"font-family-variables-selector",itemsList:v,selectedItem:r,onItemChange:e=>{(e=>{l(e);const n=h(e);a?.(n),t(n?"":e)})(e),p.close()},onClose:p.close,sectionWidth:b,title:(0,d.__)("Font family","elementor"),itemStyle:e=>({fontFamily:e.value}),onDebounce:K.enqueueFont,icon:c.TextIcon})))},xt=(0,l.createPropUtils)("global-size-variable",C.z.string()),Vt=(0,y.createTransformer)(e=>null);function Ot(){U({key:T.key,valueField:It,icon:c.BrushIcon,propTypeUtil:T,fallbackPropTypeUtil:l.colorPropTypeUtil,variableType:"color",startIcon:({value:e})=>o.createElement(f,{size:"inherit",component:"span",value:e}),defaultValue:"#ffffff"}),U({key:A.key,valueField:At,icon:c.TextIcon,propTypeUtil:A,fallbackPropTypeUtil:l.stringPropTypeUtil,variableType:"font",defaultValue:"Roboto"});const e={isActive:!1,icon:c.ExpandDiagonalIcon,propTypeUtil:xt,fallbackPropTypeUtil:l.sizePropTypeUtil,styleTransformer:Vt,variableType:"size",selectionFilter:()=>[],emptyState:o.createElement(i.CtaButton,{size:"small",href:"https://go.elementor.com/go-pro-panel-size-variable/"})};U({...e,key:xt.key,defaultValue:"0px"}),U({...e,key:"global-custom-size-variable"})}const Dt="body";function Bt(){const e=(0,s.__privateUseListenTo)((0,s.commandEndEvent)("editor/documents/attach-preview"),()=>(0,s.getCanvasIframeDocument)()?.head),t=function(){const[e,t]=(0,o.useState)({});return(0,o.useEffect)(()=>{const e=x.subscribe(t);return()=>{e()}},[]),e}(),a=Object.keys(t).length>0;if(!e||!a)return null;const n=(r=t,Object.entries(r).map(([e,t])=>function(e,t){return`--${t?.deleted?e:t.label}:${t.value};`}(e,t)).join(""));var r;const l=`${Dt}{${n}}`;return o.createElement(u.Portal,{container:e},o.createElement("style",{"data-e-style-id":"e-variables",key:l},l))}const Lt=e=>{const t=e?.value?.color?.value;return te(t||"")},Rt=({value:e})=>{const t=Lt(e);return o.createElement(f,{component:"span",size:"inherit",value:t?.value})},Ut=({value:e})=>{const t=Lt(e);return o.createElement("span",null,t?.label)},zt=({value:e})=>{const t=Lt(e);return o.createElement(f,{component:"span",size:"inherit",value:t?.value})},Ft=e=>!!T.isValid(e),{registerPopoverAction:Mt}=n.controlActionsMenu;function jt(){Ot(),(0,K.injectIntoRepeaterItemIcon)({id:"color-variables-background-icon",component:Rt,condition:({value:e})=>Ft(l.backgroundColorOverlayPropTypeUtil.extract(e)?.color)}),(0,K.injectIntoRepeaterItemIcon)({id:"color-variables-icon",component:zt,condition:({value:e})=>Ft(l.shadowPropTypeUtil.extract(e)?.color)}),(0,K.injectIntoRepeaterItemLabel)({id:"color-variables-label",component:Ut,condition:({value:e})=>Ft(l.backgroundColorOverlayPropTypeUtil.extract(e)?.color)}),(0,n.registerControlReplacement)({component:yt,condition:({value:e,placeholder:t})=>!!Nt(e)||!e&&Nt(t)}),Mt({id:"variables",useProps:ft}),O.init().then(()=>{(0,_t.isAngieAvailable)()&&(St(),kt())}),(0,a.injectIntoTop)({id:"canvas-style-variables-render",component:Bt}),(0,r.__registerPanel)(Se)}function Nt(e){return!!(0,l.isTransformable)(e)&&M(e.$$type)}const Ht=e=>t=>{const a=String(t);return{$$type:e,value:O.variables()[a]?a:O.findIdByLabel(a)}},Wt={globalVariablesLLMResolvers:{"global-color-variable":Ht("global-color-variable"),"global-font-variable":Ht("global-font-variable"),"global-size-variable":Ht("global-size-variable")}};(window.elementorV2=window.elementorV2||{}).editorVariables=t}(),window.elementorV2.editorVariables?.init?.();
Cancel