!function(){"use strict";var e={d:function(t,n){for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{init:function(){return mt},registerVariableType:function(){return A}});var n=window.elementorV2.editor,r=window.elementorV2.editorEditingPanel,a=window.elementorV2.editorPanels,o=window.React,l=window.elementorV2.editorUi,i=window.elementorV2.editorV1Adapters,s=window.elementorV2.icons,c=window.elementorV2.ui,m=window.wp.i18n,u=window.elementorV2.editorControls,p=window.elementorV2.editorCanvas;const d=(0,c.styled)(c.UnstableColorIndicator)(({theme:e})=>({borderRadius:e.shape.borderRadius/2+"px",marginRight:e.spacing(.25)}));var v=window.elementorV2.editorProps,g=window.elementorV2.schema;const b=(0,v.createPropUtils)("global-color-variable",g.z.string());var E=window.elementorV2.httpClient;const h="elementor/v1/variables",y="elementor-global-variables",f="elementor-global-variables-watermark",C="RW",_=(0,v.createPropUtils)("global-font-variable",g.z.string()),w=(()=>{const e={};let t;const n=(t,n)=>!(t in e)||e[t].label!==n.label||e[t].value!==n.value||!(e[t]?.deleted||!n?.deleted)||!(!e[t]?.deleted||n?.deleted),r=e=>{if(e)try{((e,t="preview")=>{const n=window;n.elementor?.helpers?.enqueueFont?.(e,t)})(e)}catch{}};return{subscribe:e=>(t=e,()=>{t=()=>{}}),update:a=>{(t=>{let a=!1;for(const[o,l]of Object.entries(t))n(o,l)&&(e[o]=l,l.type===_.key&&r(l.value),a=!0);return a})(a)&&"function"==typeof t&&t({...e})}}})(),T=new class{constructor(){this.state={watermark:-1,variables:{}}}load(){return this.state.watermark=parseInt(localStorage.getItem(f)||"-1"),this.state.variables=JSON.parse(localStorage.getItem(y)||"{}"),this.state.variables}fill(e,t){this.state.variables={},e&&Object.keys(e).length&&(this.state.variables=e),this.state.watermark=t,localStorage.setItem(f,this.state.watermark.toString()),localStorage.setItem(y,JSON.stringify(this.state.variables))}add(e,t){this.load(),this.state.variables[e]=t,localStorage.setItem(y,JSON.stringify(this.state.variables))}update(e,t){this.load(),this.state.variables[e]=t,localStorage.setItem(y,JSON.stringify(this.state.variables))}watermark(e){this.state.watermark=e,localStorage.setItem(f,this.state.watermark.toString())}watermarkDiff(e,t){const n=t-this.state.watermark;return C===e?1!==n:"RO"===e&&0!==n}},k={variables:()=>T.load(),init:()=>{k.load()},load:()=>(0,E.httpService)().get(h+"/list").then(e=>{const{success:t,data:n}=e.data;if(!t)throw new Error("Unexpected response from server");return n}).then(e=>{const{variables:t,watermark:n}=e;return T.fill(t,n),w.update(t),t}),create:({type:e,label:t,value:n})=>((e,t,n)=>(0,E.httpService)().post(h+"/create",{type:e,label:t,value:n}))(e,t,n).then(e=>{const{success:t,data:n}=e.data;if(!t){const e=n?.message||(0,m.__)("Unexpected response from server","elementor");throw new Error(e)}return n}).then(e=>{const{variable:t,watermark:n}=e;S(C,n);const{id:r,...a}=t;return T.add(r,a),w.update({[r]:a}),{id:r,variable:a}}),update:(e,{label:t,value:n})=>((e,t,n)=>(0,E.httpService)().put(h+"/update",{id:e,label:t,value:n}))(e,t,n).then(e=>{const{success:t,data:n}=e.data;if(!t){const e=n?.message||(0,m.__)("Unexpected response from server","elementor");throw new Error(e)}return n}).then(e=>{const{variable:t,watermark:n}=e;S(C,n);const{id:r,...a}=t;return T.update(r,a),w.update({[r]:a}),{id:r,variable:a}}),delete:e=>(e=>(0,E.httpService)().post(h+"/delete",{id:e}))(e).then(e=>{const{success:t,data:n}=e.data;if(!t)throw new Error("Unexpected response from server");return n}).then(e=>{const{variable:t,watermark:n}=e;S(C,n);const{id:r,...a}=t;return T.update(r,a),w.update({[r]:a}),{id:r,variable:a}}),restore:(e,t,n)=>((e,t,n)=>{const r={id:e};return t&&(r.label=t),n&&(r.value=n),(0,E.httpService)().post(h+"/restore",r)})(e,t,n).then(e=>{const{success:t,data:n}=e.data;if(!t)throw new Error("Unexpected response from server");return n}).then(e=>{const{variable:t,watermark:n}=e;S(C,n);const{id:r,...a}=t;return T.update(r,a),w.update({[r]:a}),{id:r,variable:a}})},S=(e,t)=>{T.watermarkDiff(e,t)&&setTimeout(()=>k.load(),500),T.watermark(t)},x=(e,t)=>{let n=e,r="";return t&&(r=t.value),t&&!t.deleted&&(n=t.label),n.trim()?r.trim()?`var(--${n}, ${r})`:`var(--${n})`:null},P=(0,p.createTransformer)(e=>{const t=k.variables()[e];if(!t)return o.createElement("span",null,(0,m.__)("Missing variable","elementor"));const n=t.type===b.key,r=x(e,t);return o.createElement(c.Stack,{direction:"row",spacing:.5,sx:{paddingInline:"1px"},alignItems:"center"},n&&o.createElement(d,{size:"inherit",value:t.value}),o.createElement(c.Typography,{variant:"caption",overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"},r))}),I=(0,p.createTransformer)(e=>{const t=k.variables();return t[e]?x(e,t[e]):null}),{registerVariableType:A,getVariableType:B,hasVariableType:V}=function(){const e={};return{registerVariableType:({icon:t,startIcon:n,valueField:a,propTypeUtil:o,variableType:l,selectionFilter:i,valueTransformer:s,fallbackPropTypeUtil:c,isCompatible:m})=>{if(e[o.key])throw new Error(`Variable with key "${o.key}" is already registered.`);var u;m||(m=(e,t)=>"union"===e.kind&&t.type in e.prop_types),e[o.key]={icon:t,startIcon:n,valueField:a,propTypeUtil:o,variableType:l,selectionFilter:i,valueTransformer:s,fallbackPropTypeUtil:c,isCompatible:m},u=o.key,p.styleTransformersRegistry.register(u,I),(e=>{r.stylesInheritanceTransformersRegistry.register(e,P)})(o.key)},getVariableType:t=>e[t],hasVariableType:t=>t in e}}(),O=(0,o.createContext)(null);function L({children:e,propTypeKey:t}){return o.createElement(O.Provider,{value:t},e)}function z(){const e=(0,o.useContext)(O);if(null===e)throw new Error("useVariableType must be used within a VariableTypeProvider");return B(e)}const D=(e=!0)=>{const t=k.variables();return e?t:Object.fromEntries(Object.entries(t).filter(([,e])=>!e.deleted))},F=e=>{const t=D();return t?.[e]?{...t[e],key:e}:null},R=e=>{const t=D(!1);return Object.entries(t).filter(([,t])=>t.type===e).map(([e,{label:t,value:n}])=>({key:e,label:t,value:n}))},U=({id:e})=>e,M=(e,t,n)=>k.restore(e,t,n).then(U),j={MISSING_VARIABLE_NAME:(0,m.__)("Give your variable a name.","elementor"),MISSING_VARIABLE_VALUE:(0,m.__)("Add a value to complete your variable.","elementor"),INVALID_CHARACTERS:(0,m.__)("Use letters, numbers, dashes (-), or underscores (_) for the name.","elementor"),NO_NON_SPECIAL_CHARACTER:(0,m.__)("Names have to include at least one non-special character.","elementor"),VARIABLE_LABEL_MAX_LENGTH:(0,m.__)("Keep names up to 50 characters.","elementor"),DUPLICATED_LABEL:(0,m.__)("This variable name already exists. Please choose a unique name.","elementor"),UNEXPECTED_ERROR:(0,m.__)("There was a glitch. Try saving your variable again.","elementor")},H=e=>{if("duplicated_label"===e?.response?.data?.code)return{field:"label",message:j.DUPLICATED_LABEL}},W=e=>39<e.length?j.VARIABLE_LABEL_MAX_LENGTH:"",N=e=>e.trim()?"":j.MISSING_VARIABLE_VALUE;function $(e,t){return e.trim().toLowerCase()===t.trim().toLowerCase()}const G=e=>{const[t,n]=(0,o.useState)(e??{value:"",message:""});return{labelFieldError:t,setLabelFieldError:n}},K=({value:e,error:t,onChange:n,id:r,onErrorChange:a,size:l="tiny",focusOnShow:i=!1})=>{const[s,m]=(0,o.useState)(e),[u,p]=(0,o.useState)("");let d=u;return $(s,t?.value??"")&&t?.message&&(d=t.message),o.createElement(c.TextField,{id:r,size:l,fullWidth:!0,value:s,error:!!d,onChange:e=>(e=>{m(e);const r=(o=e).trim()?/^[a-zA-Z0-9_-]+$/.test(o)?/[a-zA-Z0-9]/.test(o)?50<o.length?j.VARIABLE_LABEL_MAX_LENGTH:"":j.NO_NON_SPECIAL_CHARACTER:j.INVALID_CHARACTERS:j.MISSING_VARIABLE_NAME;var o;p(r),a?.(r),n($(e,t?.value??"")||r?"":e)})(e.target.value),inputProps:{maxLength:50},autoFocus:i})};function X(){return X=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},X.apply(null,arguments)}const J=({menuActions:e,disabled:t,itemId:n})=>{const r=(0,c.usePopupState)({variant:"popover"});return o.createElement(o.Fragment,null,o.createElement(c.IconButton,X({},(0,c.bindTrigger)(r),{disabled:t,size:"tiny"}),o.createElement(s.DotsVerticalIcon,{fontSize:"tiny"})),o.createElement(c.Menu,X({disablePortal:!0,MenuListProps:{dense:!0},PaperProps:{elevation:6}},(0,c.bindMenu)(r),{anchorEl:r.anchorEl,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},open:r.isOpen,onClose:r.close}),e.map(e=>o.createElement(c.MenuItem,{key:e.name,onClick:()=>{e.onClick?.(n),r.close()},sx:{color:e.color,gap:1}},e.icon&&(0,o.createElement)(e.icon,{fontSize:"inherit"})," ",e.name))))},q=({initialValue:e,children:t,editableElement:n,onChange:r,prefixElement:a})=>{const[l,i]=(0,o.useState)(e),[s,m]=(0,o.useState)(!1),u=()=>{m(!0)},p=()=>{r(l),m(!1)},d=e=>{"Enter"===e.key?p():"Escape"===e.key&&m(!1)," "!==e.key||s||(e.preventDefault(),m(!0))},v=n({value:l,onChange:e=>{i(e)}});return s?o.createElement(c.ClickAwayListener,{onClickAway:p},o.createElement(c.Stack,{direction:"row",alignItems:"center",gap:1,onDoubleClick:u,onKeyDown:d,tabIndex:0,role:"button","aria-label":"Double click or press Space to edit"},a,v)):o.createElement(c.Stack,{direction:"row",alignItems:"center",gap:1,onDoubleClick:u,onKeyDown:d,tabIndex:0,role:"button","aria-label":"Double click or press Space to edit"},a,t)},Y=({children:e,isHeader:t,width:n,maxWidth:r,align:a,noPadding:l,sx:i})=>{const s={maxWidth:r??150,cursor:"initial",typography:"caption",...t&&{color:"text.primary",fontWeight:"bold"},...t&&!l&&{padding:"10px 16px"},...n&&{width:n},...i};return o.createElement(c.TableCell,{size:"small",padding:l?"none":void 0,align:a,sx:s},e)};function Z(){return Z=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Z.apply(null,arguments)}const Q=({menuActions:e,variables:t,onChange:n})=>{const[r,a]=(0,o.useState)(Object.keys(t)),i=r.filter(e=>!t[e].deleted).map(e=>{const n=t[e],r=B(n.type);return{id:e,name:n.label,value:n.value,type:n.type,...r}}),u={minWidth:250,tableLayout:"fixed"};return o.createElement(c.TableContainer,{sx:{overflow:"initial"}},o.createElement(c.Table,{sx:u,"aria-label":"Variables manager list with drag and drop reordering",stickyHeader:!0},o.createElement(c.TableHead,null,o.createElement(c.TableRow,null,o.createElement(Y,{isHeader:!0,noPadding:!0,width:10,maxWidth:10}),o.createElement(Y,{isHeader:!0},(0,m.__)("Name","elementor")),o.createElement(Y,{isHeader:!0},(0,m.__)("Value","elementor")),o.createElement(Y,{isHeader:!0,noPadding:!0,width:16,maxWidth:16}))),o.createElement(c.TableBody,null,o.createElement(c.UnstableSortableProvider,{value:r,onChange:a,variant:"static",restrictAxis:!0,dragOverlay:({children:e,...t})=>o.createElement(c.Table,Z({sx:u},t),o.createElement(c.TableBody,null,e))},i.map(r=>o.createElement(c.UnstableSortableItem,{key:r.id,id:r.id,render:({itemProps:a,showDropIndication:m,triggerProps:u,itemStyle:p,triggerStyle:d,isDragged:v,dropPosition:g,setTriggerRef:b,isDragOverlay:E,isSorting:h,index:y})=>{const f=m&&"before"===g,C=m&&"after"===g;return o.createElement(c.TableRow,Z({},a,{selected:v,sx:{...f&&{"& td, & th":{borderTop:"2px solid",borderTopColor:"primary.main"}},...C&&{"& td, & th":{borderBottom:"2px solid",borderBottomColor:"primary.main"}},'& [role="toolbar"], & [draggable]':{opacity:0},"&:hover, &:focus-within":{backgroundColor:"action.hover",'& [role="toolbar"], & [draggable]':{opacity:1}}},style:{...p,...d},disableDivider:E||y===i.length-1}),o.createElement(Y,{noPadding:!0,width:10,maxWidth:10},o.createElement(c.IconButton,Z({size:"small",ref:b},u,{disabled:h,draggable:!0}),o.createElement(s.GripVerticalIcon,{fontSize:"inherit"}))),o.createElement(Y,null,o.createElement(q,{initialValue:r.name,onChange:e=>{e!==r.name&&n({...t,[r.id]:{...t[r.id],label:e}})},prefixElement:(0,o.createElement)(r.icon,{fontSize:"inherit"}),editableElement:({value:e,onChange:t})=>o.createElement(K,{id:"variable-label-"+r.id,size:"tiny",value:e,onChange:t,focusOnShow:!0})},o.createElement(l.EllipsisWithTooltip,{title:r.name,sx:{border:"4px solid transparent"}},r.name))),o.createElement(Y,null,o.createElement(q,{initialValue:r.value,onChange:e=>{e!==r.value&&n({...t,[r.id]:{...t[r.id],value:e}})},editableElement:r.valueField},r.startIcon&&r.startIcon({value:r.value}),o.createElement(l.EllipsisWithTooltip,{title:r.value,sx:{border:"4px solid transparent"}},r.value))),o.createElement(Y,{align:"right",noPadding:!0,width:16,maxWidth:16,sx:{paddingInlineEnd:1}},o.createElement(c.Stack,{role:"toolbar",direction:"row",justifyContent:"flex-end"},o.createElement(J,{menuActions:e,disabled:h,itemId:r.id}))))}}))))))};function ee(){return ee=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ee.apply(null,arguments)}const te="variables-manager",{panel:ne,usePanelActions:re}=(0,a.__createPanel)({id:te,component:function(){const{close:e}=re(),[t,n]=(0,o.useState)(!1),[r,i]=(0,o.useState)(D(!1)),[u,p]=(0,o.useState)([]);le(t);const d=[{name:(0,m.__)("Delete","elementor"),icon:s.TrashIcon,color:"error.main",onClick:e=>{p([...u,e]),i({...r,[e]:{...r[e],deleted:!0}}),n(!0)}}];return o.createElement(l.ThemeProvider,null,o.createElement(c.ErrorBoundary,{fallback:o.createElement(oe,null)},o.createElement(a.Panel,null,o.createElement(a.PanelHeader,null,o.createElement(c.Stack,{width:"100%",direction:"column",alignItems:"center"},o.createElement(c.Stack,{p:1,pl:2,width:"100%",direction:"row",alignItems:"center"},o.createElement(c.Stack,{width:"100%",direction:"row",gap:1},o.createElement(a.PanelHeaderTitle,{sx:{display:"flex",alignItems:"center",gap:.5}},o.createElement(s.ColorFilterIcon,{fontSize:"inherit"}),(0,m.__)("Variable Manager","elementor"))),o.createElement(ae,{sx:{marginLeft:"auto"},onClose:()=>{e()}})),o.createElement(c.Divider,{sx:{width:"100%"}}))),o.createElement(a.PanelBody,{sx:{display:"flex",flexDirection:"column",height:"100%"}},o.createElement(Q,{menuActions:d,variables:r,onChange:e=>{i(e),n(!0)}})),o.createElement(a.PanelFooter,null,o.createElement(c.Button,{fullWidth:!0,size:"small",color:"global",variant:"contained",disabled:!t},(0,m.__)("Save changes","elementor"))))))},allowedEditModes:["edit",te],onOpen:()=>{(0,i.changeEditMode)(te)},onClose:()=>{(0,i.changeEditMode)("edit")}}),ae=({onClose:e,...t})=>o.createElement(c.IconButton,ee({size:"small",color:"secondary",onClick:e,"aria-label":"Close"},t),o.createElement(s.XIcon,{fontSize:"small"})),oe=()=>o.createElement(c.Box,{role:"alert",sx:{minHeight:"100%",p:2}},o.createElement(c.Alert,{severity:"error",sx:{mb:2,maxWidth:400,textAlign:"center"}},o.createElement("strong",null,(0,m.__)("Something went wrong","elementor")))),le=e=>{(0,o.useEffect)(()=>{const t=t=>{e&&t.preventDefault()};return window.addEventListener("beforeunload",t),()=>{window.removeEventListener("beforeunload",t)}},[e])};function ie(e,t,n){return()=>{const{fallbackPropTypeUtil:r}=B(t),a=function(e,t){const{valueTransformer:n}=B(t);return n?n(e.value):e.value}(e,t);n(r.create(a))}}const se=(0,o.createContext)(null),ce=({children:e})=>{const[t,n]=(0,o.useState)(null);return o.createElement(se.Provider,{value:t},o.createElement(c.Box,{ref:n},e))},me=()=>(0,o.useContext)(se);var ue=window.elementorV2.editorCurrentUser;const pe=()=>{const{canUser:e}=(0,ue.useCurrentUserCapabilities)();return{canAssign:()=>e("edit_posts"),canUnlink:()=>e("edit_posts"),canAdd:()=>e("manage_options"),canDelete:()=>e("manage_options"),canEdit:()=>e("manage_options"),canRestore:()=>e("manage_options"),canManageSettings:()=>e("manage_options")}},de=({varType:e,controlPath:t,action:n})=>{const r=window,a=r?.elementorCommon?.eventsManager?.config;if(!a?.names?.variables?.[n])return;const o=a.names.variables[n];r.elementorCommon?.eventsManager?.dispatchEvent(o,{location:a.locations.variables,secondaryLocation:a.secondaryLocations.variablesPopover,trigger:a.triggers.click,var_type:e,control_path:t,action_type:o})},ve=({id:e,label:t,errorMsg:n,noticeMsg:r,children:a})=>o.createElement(c.Grid,{container:!0,gap:.75,alignItems:"center"},o.createElement(c.Grid,{item:!0,xs:12},o.createElement(c.FormLabel,{htmlFor:e,size:"tiny"},t)),o.createElement(c.Grid,{item:!0,xs:12},a,n&&o.createElement(c.FormHelperText,{error:!0},n),r&&o.createElement(c.FormHelperText,null,r))),ge="tiny",be=({onGoBack:e,onClose:t})=>{const{icon:n,valueField:a,variableType:i,propTypeUtil:p}=z(),{setValue:d,path:v}=(0,u.useBoundProp)(p),{propType:g}=(0,u.useBoundProp)(),b=(()=>{const{value:e}=(0,u.useBoundProp)(),t=V(e?.$$type)&&Boolean(e?.value),n=F(t?e.value:"");return t?n?n.value:"":e?.value??""})(),[E,h]=(0,o.useState)(b),[y,f]=(0,o.useState)(""),[C,_]=(0,o.useState)(""),[w,T]=(0,o.useState)(""),{labelFieldError:S,setLabelFieldError:x}=G(),P=()=>{h(""),f(""),_(""),T(""),t()},I=""===y.trim()||("string"==typeof E?""===E.trim():!1===Boolean(E))||!!C;return o.createElement(r.PopoverBody,{height:"auto"},o.createElement(l.PopoverHeader,{icon:o.createElement(o.Fragment,null,e&&o.createElement(c.IconButton,{size:ge,"aria-label":(0,m.__)("Go Back","elementor"),onClick:e},o.createElement(s.ArrowLeftIcon,{fontSize:ge})),o.createElement(n,{fontSize:ge})),title:(0,m.__)("Create variable","elementor"),onClose:P}),o.createElement(c.Divider,null),o.createElement(u.PopoverContent,{p:2},o.createElement(ve,{id:"variable-label",label:(0,m.__)("Name","elementor"),errorMsg:S?.message,noticeMsg:W(y)},o.createElement(K,{id:"variable-label",value:y,error:S,onChange:e=>{f(e),_("")},onErrorChange:e=>{x({value:y,message:e})}})),o.createElement(ve,{errorMsg:w,label:(0,m.__)("Value","elementor")},o.createElement(c.Typography,{variant:"h5"},o.createElement(a,{value:E,onChange:e=>{h(e),_(""),T("")},onValidationChange:T,propType:g}))),C&&o.createElement(c.FormHelperText,{error:!0},C)),o.createElement(c.CardActions,{sx:{pt:.5,pb:1}},o.createElement(c.Button,{size:"small",variant:"contained",disabled:I,onClick:()=>{var e;(e={value:E,label:y,type:p.key},k.create(e).then(U)).then(e=>{d(e),P()}).catch(e=>{const t=H(e);if(t&&"label"===t.field)return f(""),void x({value:y,message:t.message});_(j.UNEXPECTED_ERROR)}),de({varType:i,controlPath:v.join("."),action:"save"})}},(0,m.__)("Create","elementor"))))},Ee="delete-variable-dialog",he=({open:e,label:t,closeDialog:n,onConfirm:r})=>o.createElement(c.Dialog,{open:e,onClose:n,"aria-labelledby":Ee,maxWidth:"xs"},o.createElement(c.DialogTitle,{id:Ee,display:"flex",alignItems:"center",gap:1,sx:{lineHeight:1}},o.createElement(s.AlertOctagonFilledIcon,{color:"error"}),(0,m.__)("Delete this variable?","elementor")),o.createElement(c.DialogContent,null,o.createElement(c.DialogContentText,{variant:"body2",color:"textPrimary"},(0,m.__)("All elements using","elementor")," ",o.createElement(c.Typography,{variant:"subtitle2",component:"span",sx:{lineBreak:"anywhere"}},t)," ",(0,m.__)("will keep their current values, but the variable itself will be removed.","elementor"))),o.createElement(c.DialogActions,null,o.createElement(c.Button,{color:"secondary",onClick:n},(0,m.__)("Not now","elementor")),o.createElement(c.Button,{variant:"contained",color:"error",onClick:r},(0,m.__)("Delete","elementor")))),ye=({closeDialog:e,onConfirm:t,onSuppressMessage:n})=>{const[r,a]=(0,o.useState)(!1);return o.createElement(c.Dialog,{open:!0,onClose:e,maxWidth:"xs"},o.createElement(c.DialogTitle,{display:"flex",alignItems:"center",gap:1},o.createElement(s.AlertTriangleFilledIcon,{color:"secondary"}),(0,m.__)("Changes to variables go live right away.","elementor")),o.createElement(c.DialogContent,null,o.createElement(c.DialogContentText,{variant:"body2",color:"textPrimary"},(0,m.__)("Don't worry - all other changes you make will wait until you publish your site.","elementor"))),o.createElement(c.DialogActions,{sx:{justifyContent:"space-between",alignItems:"center"}},o.createElement(c.FormControlLabel,{control:o.createElement(c.Checkbox,{checked:r,onChange:e=>a(e.target.checked),size:"small"}),label:o.createElement(c.Typography,{variant:"body2"},(0,m.__)("Don't show me again","elementor"))}),o.createElement("div",null,o.createElement(c.Button,{color:"secondary",onClick:e},(0,m.__)("Keep editing","elementor")),o.createElement(c.Button,{variant:"contained",color:"secondary",onClick:()=>{r&&n?.(),t?.()},sx:{ml:1}},(0,m.__)("Save","elementor")))))},fe="tiny",Ce=({onClose:e,onGoBack:t,onSubmit:n,editId:a})=>{const{icon:i,valueField:p,variableType:d,propTypeUtil:v}=z(),{setValue:g,value:b}=(0,u.useBoundProp)(v),{propType:E}=(0,u.useBoundProp)(),[h,y]=(0,ue.useSuppressedMessage)("edit-confirmation-dialog"),[f,C]=(0,o.useState)(!1),[_,T]=(0,o.useState)(!1),[S,x]=(0,o.useState)(""),[P,I]=(0,o.useState)(""),{labelFieldError:A,setLabelFieldError:B}=G(),V=F(a);if(!V)throw new Error(`Global ${d} variable not found`);const O=pe(),[L,D]=(0,o.useState)(()=>V.value),[R,M]=(0,o.useState)(()=>V.label);(0,o.useEffect)(()=>(w.update({[a]:{...V,value:L}}),()=>{w.update({[a]:{...V}})}),[a,L,V]);const N=()=>{((e,{value:t,label:n})=>k.update(e,{value:t,label:n}).then(U))(a,{value:L,label:R}).then(()=>{$(),n?.()}).catch(e=>{const t=H(e);if(t&&"label"===t.field)return M(""),void B({value:R,message:t.message});x(j.UNEXPECTED_ERROR)})},$=()=>{a===b&&g(a)},X=[];O.canDelete()&&X.push(o.createElement(c.IconButton,{key:"delete",size:fe,"aria-label":(0,m.__)("Delete","elementor"),onClick:()=>{C(!0)}},o.createElement(s.TrashIcon,{fontSize:fe})));const J=L===V.value&&R===V.label||""===R.trim()||("string"==typeof L?""===L.trim():!1===Boolean(L))||!!S;return o.createElement(o.Fragment,null,o.createElement(r.PopoverBody,{height:"auto"},o.createElement(l.PopoverHeader,{title:(0,m.__)("Edit variable","elementor"),onClose:e,icon:o.createElement(o.Fragment,null,t&&o.createElement(c.IconButton,{size:fe,"aria-label":(0,m.__)("Go Back","elementor"),onClick:t},o.createElement(s.ArrowLeftIcon,{fontSize:fe})),o.createElement(i,{fontSize:fe})),actions:X}),o.createElement(c.Divider,null),o.createElement(u.PopoverContent,{p:2},o.createElement(ve,{id:"variable-label",label:(0,m.__)("Name","elementor"),errorMsg:A?.message,noticeMsg:W(R)},o.createElement(K,{id:"variable-label",value:R,error:A,onChange:e=>{M(e),x("")},onErrorChange:e=>{B({value:R,message:e})}})),o.createElement(ve,{errorMsg:P,label:(0,m.__)("Value","elementor")},o.createElement(c.Typography,{variant:"h5"},o.createElement(p,{value:L,onChange:e=>{D(e),x(""),I("")},onValidationChange:I,propType:E}))),S&&o.createElement(c.FormHelperText,{error:!0},S)),o.createElement(c.CardActions,{sx:{pt:.5,pb:1}},o.createElement(c.Button,{size:"small",variant:"contained",disabled:J,onClick:()=>{h?N():T(!0)}},(0,m.__)("Save","elementor")))),f&&o.createElement(he,{open:!0,label:R,onConfirm:()=>{var e;(e=a,k.delete(e).then(U)).then(()=>{$(),n?.()})},closeDialog:()=>{C(!1)}}),_&&!h&&o.createElement(ye,{closeDialog:()=>{T(!1)},onConfirm:N,onSuppressMessage:y}))},_e=({item:e})=>{const t=e.onEdit;return o.createElement(o.Fragment,null,o.createElement(c.ListItemIcon,null,e.icon),o.createElement(c.Box,{sx:{flex:1,minWidth:0,display:"flex",alignItems:"center",gap:1}},o.createElement(l.EllipsisWithTooltip,{title:e.label||e.value,as:c.Typography,variant:"caption",color:"text.primary",sx:{marginTop:"1px",lineHeight:"2"},maxWidth:"50%"}),e.secondaryText&&o.createElement(l.EllipsisWithTooltip,{title:e.secondaryText,as:c.Typography,variant:"caption",color:"text.tertiary",sx:{marginTop:"1px",lineHeight:"1"},maxWidth:"50%"})),!!t&&o.createElement(c.IconButton,{sx:{mx:1,opacity:"0"},onClick:n=>{n.stopPropagation(),t(e.value)},"aria-label":(0,m.__)("Edit","elementor")},o.createElement(s.EditIcon,{color:"action",fontSize:"tiny"})))},we=({searchValue:e,onClear:t,icon:n})=>o.createElement(c.Stack,{gap:1,alignItems:"center",justifyContent:"center",height:"100%",p:2.5,color:"text.secondary",sx:{pb:3.5}},n,o.createElement(c.Typography,{align:"center",variant:"subtitle2"},(0,m.__)("Sorry, nothing matched","elementor"),o.createElement("br",null),"“",e,"”."),o.createElement(c.Typography,{align:"center",variant:"caption",sx:{display:"flex",flexDirection:"column"}},(0,m.__)("Try something else.","elementor"),o.createElement(c.Link,{color:"text.secondary",variant:"caption",component:"button",onClick:t},(0,m.__)("Clear & try again","elementor")))),Te=({icon:e,title:t,onAdd:n})=>{const r=pe().canAdd();return o.createElement(c.Stack,{gap:1,alignItems:"center",justifyContent:"center",height:"100%",color:"text.secondary",sx:{p:2.5,pb:5.5}},e,r?o.createElement(o.Fragment,null,o.createElement(ke,{title:t||(0,m.__)("Create your first variable","elementor"),message:(0,m.__)("Variables are saved attributes that you can apply anywhere on your site.","elementor")}),n&&o.createElement(c.Button,{variant:"outlined",color:"secondary",size:"small",onClick:n},(0,m.__)("Create a variable","elementor"))):o.createElement(ke,{title:(0,m.__)("There are no variables","elementor"),message:(0,m.__)("With your current role, you can only connect and detach variables.","elementor")}))};function ke({title:e,message:t}){return o.createElement(o.Fragment,null,o.createElement(c.Typography,{align:"center",variant:"subtitle2"},e),o.createElement(c.Typography,{align:"center",variant:"caption",maxWidth:"180px"},t))}const Se=(0,c.styled)(c.MenuList)(({theme:e})=>({"& > li":{height:32,width:"100%",display:"flex",alignItems:"center"},'& > [role="option"]':{...e.typography.caption,lineHeight:"inherit",padding:e.spacing(.5,1,.5,2),"&:hover, &:focus":{backgroundColor:e.palette.action.hover},'&[aria-selected="true"]':{backgroundColor:e.palette.action.selected},cursor:"pointer",textOverflow:"ellipsis",position:"absolute",top:0,left:0,"&:hover .MuiIconButton-root, .MuiIconButton-root:focus":{opacity:1}},width:"100%",position:"relative"})),xe="tiny",Pe=({closePopover:e,onAdd:t,onEdit:n,onSettings:a})=>{const{icon:i,startIcon:p,variableType:d,propTypeUtil:v}=z(),{value:g,setValue:b,path:E}=(0,u.useBoundProp)(v),[h,y]=(0,o.useState)(""),{list:f,hasMatches:C,isSourceNotEmpty:_}=((e,t)=>{const n=(e=>{const{selectionFilter:t}=z(),{propType:n}=(0,u.useBoundProp)();return t?t(e,n):e})((a=t,(0,o.useMemo)(()=>R(a),[a]))),r=((e,t)=>{const n=t.toLowerCase();return e.filter(({label:e})=>e.toLowerCase().includes(n))})(n,e);var a;return{list:r,hasMatches:r.length>0,isSourceNotEmpty:n.length>0}})(h,v.key),w=[];t&&w.push(o.createElement(c.IconButton,{key:"add",size:xe,onClick:()=>{t?.(),de({varType:d,controlPath:E.join("."),action:"add"})}},o.createElement(s.PlusIcon,{fontSize:xe}))),a&&w.push(o.createElement(c.IconButton,{key:"settings",size:xe,onClick:a},o.createElement(s.SettingsIcon,{fontSize:xe})));const T=p||(()=>o.createElement(i,{fontSize:xe})),k=f.map(({value:e,label:t,key:r})=>({type:"item",value:r,label:t,icon:o.createElement(T,{value:e}),secondaryText:e,onEdit:n?()=>n?.(r):void 0})),S=(0,m.sprintf)((0,m.__)("Create your first %s variable","elementor"),d);return o.createElement(r.PopoverBody,null,o.createElement(l.PopoverHeader,{title:(0,m.__)("Variables","elementor"),icon:o.createElement(s.ColorFilterIcon,{fontSize:xe}),onClose:e,actions:w}),_&&o.createElement(l.PopoverSearch,{value:h,onSearch:e=>{y(e)},placeholder:(0,m.__)("Search","elementor")}),o.createElement(c.Divider,null),_&&C&&o.createElement(l.PopoverMenuList,{items:k,onSelect:t=>{b(t),de({varType:d,controlPath:E.join("."),action:"connect"}),e()},onClose:()=>{},selectedValue:g,"data-testid":`${d}-variables-list`,menuListTemplate:Se,menuItemContentTemplate:e=>o.createElement(_e,{item:e})}),!C&&_&&o.createElement(we,{searchValue:h,onClear:()=>{y("")},icon:o.createElement(i,{fontSize:"large"})}),!_&&o.createElement(Te,{title:S,icon:o.createElement(i,{fontSize:"large"}),onAdd:t}))},Ie="list",Ae="edit",Be=({closePopover:e,propTypeKey:t,selectedVariable:n})=>{const[r,a]=(0,o.useState)(Ie),[l,s]=(0,o.useState)(""),{open:c}=re(),m=(0,i.isExperimentActive)("e_variables_manager")?()=>{c()}:void 0;return o.createElement(L,{propTypeKey:t},o.createElement(ce,null,function(e){const t=pe(),n={onClose:()=>{e.closePopover()},onGoBack:()=>{e.setCurrentView(Ie)}};t.canAdd()&&(n.onAdd=()=>{e.setCurrentView("add")}),t.canEdit()&&(n.onEdit=t=>{e.setEditId(t),e.setCurrentView(Ae)}),t.canManageSettings()&&e.onSettings&&(n.onSettings=()=>{e.closePopover(),e.onSettings?.()});return Ie===e.currentView?o.createElement(Pe,{closePopover:n.onClose,onAdd:n.onAdd,onEdit:n.onEdit,onSettings:n.onSettings}):"add"===e.currentView?o.createElement(be,{onGoBack:n.onGoBack,onClose:n.onClose}):Ae===e.currentView?o.createElement(Ce,{editId:e.editId,onGoBack:n.onGoBack,onClose:n.onClose,onSubmit:()=>{e?.selectedVariable?.key===e.editId?n.onClose():n.onGoBack?.()}}):null}({propTypeKey:t,currentView:r,selectedVariable:n,editId:l,setEditId:s,setCurrentView:a,closePopover:e,onSettings:m})))};function Ve(){return Ve=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ve.apply(null,arguments)}const Oe="tiny",Le=({startIcon:e,label:t,onUnlink:n,...r})=>{const a=[];return n&&a.push(o.createElement(c.IconButton,{key:"unlink",size:Oe,onClick:n,"aria-label":(0,m.__)("Unlink","elementor")},o.createElement(s.DetachIcon,{fontSize:Oe}))),o.createElement(c.Tooltip,{title:t,placement:"top"},o.createElement(c.UnstableTag,Ve({fullWidth:!0,showActionsOnHover:!0,startIcon:o.createElement(c.Stack,{gap:.5,direction:"row",alignItems:"center"},e),label:o.createElement(c.Box,{sx:{display:"inline-grid",minWidth:0}},o.createElement(c.Typography,{sx:{lineHeight:1.34},variant:"caption",noWrap:!0},t)),actions:a},r)))};function ze(){return ze=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ze.apply(null,arguments)}const De=({variable:e,propTypeKey:t})=>{const{startIcon:n,propTypeUtil:r}=B(t),{setValue:a}=(0,u.useBoundProp)(),l=(0,o.useRef)(null),i=(0,o.useId)(),m=(0,c.usePopupState)({variant:"popover",popupId:`elementor-variables-list-${i}`}),p=ie(e,t,a),d=n||(()=>null);return o.createElement(c.Box,{ref:l},o.createElement(Le,ze({label:e.label,startIcon:o.createElement(o.Fragment,null,o.createElement(s.ColorFilterIcon,{fontSize:Oe}),o.createElement(d,{value:e.value})),onUnlink:p},(0,c.bindTrigger)(m))),o.createElement(c.Popover,ze({disableScrollLock:!0,anchorEl:l.current,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},PaperProps:{sx:{my:1}}},(0,c.bindPopover)(m)),o.createElement(Be,{selectedVariable:e,closePopover:m.close,propTypeKey:r.key})))},Fe=({variableId:e,onClose:t,onSubmit:n})=>{const{icon:a,valueField:i,variableType:s,propTypeUtil:p}=z(),{setValue:d}=(0,u.useBoundProp)(p),{propType:v}=(0,u.useBoundProp)(),g=F(e);if(!g)throw new Error(`Global ${s} variable not found`);const[b,E]=(0,o.useState)(""),[h,y]=(0,o.useState)(""),[f,C]=(0,o.useState)(g.label),[_,w]=(0,o.useState)(g.value),{labelFieldError:T,setLabelFieldError:k}=G({value:g.label,message:j.DUPLICATED_LABEL}),S=_===g.value&&f===g.label||""===f.trim()||("string"==typeof _?""===_.trim():!1===Boolean(_))||!!b;return o.createElement(ce,null,o.createElement(r.PopoverBody,{height:"auto"},o.createElement(l.PopoverHeader,{icon:o.createElement(a,{fontSize:"tiny"}),title:(0,m.__)("Restore variable","elementor"),onClose:t}),o.createElement(c.Divider,null),o.createElement(u.PopoverContent,{p:2},o.createElement(ve,{id:"variable-label",label:(0,m.__)("Name","elementor"),errorMsg:T?.message,noticeMsg:W(f)},o.createElement(K,{id:"variable-label",value:f,error:T,onChange:e=>{C(e),E("")},onErrorChange:e=>{k({value:f,message:e})}})),o.createElement(ve,{errorMsg:h,label:(0,m.__)("Value","elementor")},o.createElement(c.Typography,{variant:"h5"},o.createElement(i,{value:_,onChange:e=>{w(e),E(""),y("")},onValidationChange:y,propType:v}))),b&&o.createElement(c.FormHelperText,{error:!0},b)),o.createElement(c.CardActions,{sx:{pt:.5,pb:1}},o.createElement(c.Button,{size:"small",variant:"contained",disabled:S,onClick:()=>{M(e,f,_).then(()=>{d(e),n?.()}).catch(e=>{const t=H(e);if(t&&"label"===t.field)return C(""),void k({value:f,message:t.message});E(j.UNEXPECTED_ERROR)})}},(0,m.__)("Restore","elementor")))))},Re=({onClose:e,onUnlink:t,onRestore:n,label:r})=>o.createElement(c.ClickAwayListener,{onClickAway:e},o.createElement(c.Alert,{variant:"standard",severity:"warning",onClose:e,action:o.createElement(o.Fragment,null,t&&o.createElement(c.AlertAction,{variant:"contained",onClick:t},(0,m.__)("Unlink","elementor")),n&&o.createElement(c.AlertAction,{variant:"outlined",onClick:n},(0,m.__)("Restore","elementor"))),sx:{maxWidth:300}},o.createElement(c.AlertTitle,null,(0,m.__)("Deleted variable","elementor")),o.createElement(c.Typography,{variant:"body2",color:"textPrimary"},(0,m.__)("The variable","elementor")," '",o.createElement(c.Typography,{variant:"body2",component:"span",sx:{lineBreak:"anywhere"}},r),"' ",(0,m.__)("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 Ue(){return Ue=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ue.apply(null,arguments)}const Me=o.forwardRef(({label:e,suffix:t,onClick:n,icon:r,...a},l)=>{const i=t?`${e} (${t})`:e;return o.createElement(c.Chip,Ue({ref:l,size:"tiny",color:"warning",shape:"rounded",variant:"standard",onClick:n,icon:o.createElement(s.AlertTriangleFilledIcon,null),label:o.createElement(c.Tooltip,{title:i,placement:"top"},o.createElement(c.Box,{sx:{display:"inline-grid",minWidth:0}},o.createElement(c.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%"}},a))});function je(){return je=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},je.apply(null,arguments)}Me.displayName="WarningVariableTag";const He=({variable:e,propTypeKey:t})=>{const{propTypeUtil:n}=B(t),{setValue:r}=(0,u.useBoundProp)(),a=pe(),[l,i]=(0,o.useState)(!1),s=()=>i(!1),p=(0,o.useRef)(null),d=(0,o.useId)(),v=(0,c.usePopupState)({variant:"popover",popupId:`elementor-variables-restore-${d}`}),g={};return a.canUnlink()&&(g.onUnlink=ie(e,t,r)),a.canRestore()&&(g.onRestore=()=>{e.key&&M(e.key).then(e=>{r(n.create(e)),s()}).catch(()=>{s(),v.setAnchorEl(p.current),v.open()})}),o.createElement(o.Fragment,null,o.createElement(c.Box,{ref:p},l&&o.createElement(c.Backdrop,{open:!0,onClick:s,invisible:!0}),o.createElement(c.Infotip,{color:"warning",placement:"right-start",open:l,disableHoverListener:!0,onClose:s,content:o.createElement(Re,{onClose:s,onUnlink:g.onUnlink,onRestore:g.onRestore,label:e.label}),slotProps:{popper:{modifiers:[{name:"offset",options:{offset:[0,24]}}]}}},o.createElement(Me,{label:e.label,onClick:()=>i(e=>!e),suffix:(0,m.__)("deleted","elementor")})),o.createElement(c.Popover,je({disableScrollLock:!0,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},PaperProps:{sx:{my:1}}},(0,c.bindPopover)(v)),o.createElement(L,{propTypeKey:t},o.createElement(Fe,{variableId:e.key??"",onClose:v.close,onSubmit:()=>{v.close()}})))))},We={title:(0,m.__)("Variable has changed","elementor"),message:(0,m.__)("This variable is no longer compatible with this property. You can clear it or select a different one.","elementor"),buttons:{clear:(0,m.__)("Clear","elementor"),select:(0,m.__)("Select variable","elementor")}},Ne=({onClose:e,onClear:t,triggerSelect:n})=>o.createElement(c.ClickAwayListener,{onClickAway:e},o.createElement(c.Alert,{variant:"standard",severity:"warning",onClose:e,action:o.createElement(o.Fragment,null,t&&o.createElement(c.AlertAction,{variant:"contained",onClick:t},We.buttons.clear),n&&o.createElement(c.AlertAction,{variant:"outlined",onClick:n},We.buttons.select)),sx:{maxWidth:300}},o.createElement(c.AlertTitle,null,We.title),o.createElement(c.Typography,{variant:"body2",color:"textPrimary"},We.message)));function $e(){return $e=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},$e.apply(null,arguments)}const Ge=({variable:e})=>{const{setValue:t}=(0,u.useBoundProp)(),n=(0,o.useRef)(null),r=(0,o.useId)(),a=(0,c.usePopupState)({variant:"popover",popupId:`elementor-variables-list-${r}`}),[l,i]=(0,o.useState)(!1),s=()=>i(!1);return o.createElement(c.Box,{ref:n},l&&o.createElement(c.Backdrop,{open:!0,onClick:s,invisible:!0}),o.createElement(c.Infotip,{color:"warning",placement:"right-start",open:l,disableHoverListener:!0,onClose:s,content:o.createElement(Ne,{onClose:s,onClear:()=>{s(),t(null)},triggerSelect:()=>{s(),a.setAnchorEl(n.current),a.open()}}),slotProps:{popper:{modifiers:[{name:"offset",options:{offset:[0,24]}}]}}},o.createElement(Me,{label:e.label,onClick:()=>i(e=>!e),suffix:(0,m.__)("changed","elementor")})),o.createElement(c.Popover,$e({disableScrollLock:!0,anchorEl:n.current,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},PaperProps:{sx:{my:1}}},(0,c.bindPopover)(a)),o.createElement(Be,{selectedVariable:e,closePopover:a.close,propTypeKey:e.type})))},Ke=({onClose:e,onClear:t})=>o.createElement(c.ClickAwayListener,{onClickAway:e},o.createElement(c.Alert,{variant:"standard",severity:"warning",onClose:e,action:o.createElement(o.Fragment,null,t&&o.createElement(c.AlertAction,{variant:"contained",onClick:t},(0,m.__)("Clear","elementor"))),sx:{maxWidth:300}},o.createElement(c.AlertTitle,null,(0,m.__)("This variable is missing","elementor")),o.createElement(c.Typography,{variant:"body2",color:"textPrimary"},(0,m.__)("It may have been deleted. Try clearing this field and select a different value or variable.","elementor")))),Xe=()=>{const{setValue:e}=(0,u.useBoundProp)(),[t,n]=(0,o.useState)(!1),r=()=>n(!1);return o.createElement(o.Fragment,null,t&&o.createElement(c.Backdrop,{open:!0,onClick:r,invisible:!0}),o.createElement(c.Infotip,{color:"warning",placement:"right-start",open:t,disableHoverListener:!0,onClose:r,content:o.createElement(Ke,{onClose:r,onClear:()=>e(null)}),slotProps:{popper:{modifiers:[{name:"offset",options:{offset:[0,24]}}]}}},o.createElement(Me,{label:(0,m.__)("Missing variable","elementor"),onClick:()=>n(e=>!e)})))},Je=()=>{const e=(0,u.useBoundProp)(),t=e.value,n=F(t?.value);if(!n)return o.createElement(Xe,null);const{$$type:r}=t;if(n?.deleted)return o.createElement(He,{variable:n,propTypeKey:r});const{isCompatible:a}=B(n.type);return a&&!a(e?.propType,n)?o.createElement(Ge,{variable:n}):o.createElement(De,{variable:n,propTypeKey:r})},qe=()=>{const{propType:e,path:t}=(0,r.useBoundProp)(),n=Ye(e);return{visible:Boolean(n),icon:s.ColorFilterIcon,title:(0,m.__)("Variables","elementor"),content:({close:e})=>n?(Ze(t,n.variableType),o.createElement(Be,{closePopover:e,propTypeKey:n.propTypeUtil.key})):null}},Ye=e=>{if("union"===e.kind)for(const t of Object.keys(e.prop_types)){const e=B(t);if(e)return e}},Ze=(e,t)=>{de({varType:t,controlPath:e.join("."),action:"open"})},Qe=({value:e,onChange:t,onValidationChange:n})=>{const[r,a]=(0,o.useState)(e),[l,i]=(0,o.useState)(""),s=(0,o.useRef)(null),m=me()??s.current;return o.createElement(c.UnstableColorField,{size:"tiny",fullWidth:!0,value:r,onChange:e=>{a(e);const r=N(e);i(r),n?.(r),t(r?"":e)},error:l||void 0,slotProps:{colorPicker:{anchorEl:m,anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:-10},slotProps:{colorIndicator:{size:"inherit",sx:{borderRadius:.5}}}}}})};function et(){return et=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},et.apply(null,arguments)}const tt=({value:e,onChange:t,onValidationChange:n})=>{const[a,l]=(0,o.useState)(e),i=(0,o.useRef)(null),p=me()??i.current,d=(0,c.usePopupState)({variant:"popover"}),v=(0,r.useFontFamilies)(),g=(0,r.useSectionWidth)(),b=o.useMemo(()=>v.map(({label:e,fonts:t})=>({label:e,items:t})),[v]),E=(0,o.useId)();return o.createElement(o.Fragment,null,o.createElement(c.UnstableTag,et({id:E,variant:"outlined",label:a,endIcon:o.createElement(s.ChevronDownIcon,{fontSize:"tiny"})},(0,c.bindTrigger)(d),{fullWidth:!0})),o.createElement(c.Popover,et({disablePortal:!0,disableScrollLock:!0,anchorEl:p,anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:-28}},(0,c.bindPopover)(d)),o.createElement(u.ItemSelector,{itemsList:b,selectedItem:a,onItemChange:e=>{(e=>{l(e);const r=N(e);n?.(r),t(r?"":e)})(e),d.close()},onClose:d.close,sectionWidth:g,title:(0,m.__)("Font Family","elementor"),itemStyle:e=>({fontFamily:e.value}),onDebounce:u.enqueueFont,icon:s.TextIcon})))},nt="body";function rt(){const e=(0,i.__privateUseListenTo)((0,i.commandEndEvent)("editor/documents/attach-preview"),()=>function(){const e=window;return e.elementor?.$preview?.[0]?.contentDocument}()?.head),t=function(){const[e,t]=(0,o.useState)({});return(0,o.useEffect)(()=>{const e=w.subscribe(t);return()=>{e()}},[]),e}(),n=Object.keys(t).length>0;if(!e||!n)return null;const r=(a=t,Object.entries(a).map(([e,t])=>function(e,t){return`--${t?.deleted?e:t.label}:${t.value};`}(e,t)).join(""));var a;const l=`${nt}{${r}}`;return o.createElement(c.Portal,{container:e},o.createElement("style",{"data-e-style-id":"e-variables",key:l},l))}const at=e=>{const t=e?.value?.color?.value;return F(t||"")},ot=({value:e})=>{const t=at(e);return o.createElement(d,{component:"span",size:"inherit",value:t?.value})},lt=({value:e})=>{const t=at(e);return o.createElement("span",null,t?.label)},it=({value:e})=>{const t=at(e);return o.createElement(d,{component:"span",size:"inherit",value:t?.value})},st=e=>!!b.isValid(e),{registerPopoverAction:ct}=r.controlActionsMenu;function mt(){A({valueField:Qe,icon:s.BrushIcon,propTypeUtil:b,fallbackPropTypeUtil:v.colorPropTypeUtil,variableType:"color",startIcon:({value:e})=>o.createElement(d,{size:"inherit",component:"span",value:e})}),A({valueField:tt,icon:s.TextIcon,propTypeUtil:_,fallbackPropTypeUtil:v.stringPropTypeUtil,variableType:"font"}),(0,u.injectIntoRepeaterItemIcon)({id:"color-variables-background-icon",component:ot,condition:({value:e})=>st(v.backgroundColorOverlayPropTypeUtil.extract(e)?.color)}),(0,u.injectIntoRepeaterItemIcon)({id:"color-variables-icon",component:it,condition:({value:e})=>st(v.shadowPropTypeUtil.extract(e)?.color)}),(0,u.injectIntoRepeaterItemLabel)({id:"color-variables-label",component:lt,condition:({value:e})=>st(v.backgroundColorOverlayPropTypeUtil.extract(e)?.color)}),(0,r.registerControlReplacement)({component:Je,condition:({value:e})=>{return!(!(t=e)||"object"!=typeof t||!("$$type"in t))&&V(t.$$type);var t}}),ct({id:"variables",useProps:qe}),k.init(),(0,n.injectIntoTop)({id:"canvas-style-variables-render",component:rt}),(0,a.__registerPanel)(ne)}(window.elementorV2=window.elementorV2||{}).editorVariables=t}(),window.elementorV2.editorVariables?.init?.();