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