PluginProbe
Elementor Website Builder – more than just a page builder / 3.33.0-beta1
Elementor Website Builder – more than just a page builder v3.33.0-beta1
4.3.4 4.3.3 4.3.2 4.3.1 4.3.0 4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 All 457 releases
← All changes | assets/js/packages/editor-variables/editor-variables.js +1 -1 4.0.9 → 3.33.0-beta1 View file →
@@ -1,3 +1,3 @@
1 1 /*! For license information please see editor-variables.js.LICENSE.txt */
2 -!function(){"use strict";var e={"./packages/packages/core/editor-variables/src/api.ts":function(e,a,r){r.r(a),r.d(a,{apiClient:function(){return o}});var t=r("@elementor/http-client");const n="elementor/v1/variables",o={list:()=>(0,t.httpService)().get(n+"/list"),create:(e,a,r)=>(0,t.httpService)().post(n+"/create",{type:e,label:a,value:r}),update:(e,a,r,o)=>(0,t.httpService)().put(n+"/update",{id:e,label:a,value:r,type:o}),delete:e=>(0,t.httpService)().post(n+"/delete",{id:e}),restore:(e,a,r,o)=>{const i={id:e};return a&&(i.label=a),r&&(i.value=r),o&&(i.type=o),(0,t.httpService)().post(n+"/restore",i)},batch:e=>(0,t.httpService)().post(n+"/batch",e)}},"./packages/packages/core/editor-variables/src/batch-operations.ts":function(e,a,r){r.r(a),r.d(a,{buildOperationsArray:function(){return buildOperationsArray},generateTempId:function(){return generateTempId},isTempId:function(){return isTempId}});const generateTempId=()=>`tmp-${Date.now().toString(36)}-${Math.random().toString(36).substring(2,8)}`,isTempId=e=>e.startsWith("tmp-"),buildOperationsArray=(e,a,r)=>{const t=[];return Object.entries(a).forEach(([a,r])=>{if(isTempId(a))t.push({type:"create",variable:{...r,id:a}});else if(e[a]){const n=e[a],o=n.sync_to_v3!==r.sync_to_v3;n.deleted&&!r.deleted?t.push({type:"restore",id:a,...n.label!==r.label&&{label:r.label},...n.value!==r.value&&{value:r.value}}):r.deleted||n.label===r.label&&n.value===r.value&&n.order===r.order&&n.type===r.type&&!o||t.push({type:"update",id:a,variable:{...n.label!==r.label&&{label:r.label},...n.value!==r.value&&{value:r.value},...n.order!==r.order&&{order:r.order},...n.type!==r.type&&{type:r.type},...o&&{sync_to_v3:r.sync_to_v3}}})}}),r.forEach(e=>{t.push({type:"delete",id:e})}),t.filter(e=>{const r=e.id||e.variable?.id;return r&&!(isTempId(r)&&a[r]?.deleted)})}},"./packages/packages/core/editor-variables/src/components/fields/color-field.tsx":function(e,a,r){r.r(a),r.d(a,{ColorField:function(){return ColorField}});var t=r("react"),n=r("@elementor/ui"),o=r("./packages/packages/core/editor-variables/src/context/variable-selection-popover.context.tsx"),i=r("./packages/packages/core/editor-variables/src/utils/validations.ts");const ColorField=({value:e,onChange:a,onValidationChange:r})=>{const[s,l]=(0,t.useState)(e),[c,p]=(0,t.useState)(""),u=(0,t.useRef)(null),d=(0,o.usePopoverContentRef)()??u.current;return t.createElement(n.UnstableColorField,{id:"color-variable-field",size:"tiny",fullWidth:!0,value:s,onChange:e=>{l(e);const t=(0,i.validateValue)(e);p(t),r?.(t),a(t?"":e)},error:c||void 0,slotProps:{colorPicker:{anchorEl:d,anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:-10},slotProps:{colorIndicator:{size:"inherit",sx:{borderRadius:.5}}}}}})}},"./packages/packages/core/editor-variables/src/components/fields/font-field.tsx":function(e,a,r){r.r(a),r.d(a,{FontField:function(){return FontField}});var t=r("react"),n=r("@elementor/editor-controls"),o=r("@elementor/editor-ui"),i=r("@elementor/icons"),s=r("@elementor/ui"),l=r("@wordpress/i18n"),c=r("./packages/packages/core/editor-variables/src/context/variable-selection-popover.context.tsx"),p=r("./packages/packages/core/editor-variables/src/utils/validations.ts");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var r=arguments[a];for(var t in r)({}).hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},_extends.apply(null,arguments)}const FontField=({value:e,onChange:a,onValidationChange:r})=>{const[u,d]=(0,t.useState)(e),b=(0,t.useRef)(null),m=(0,c.usePopoverContentRef)()??b.current,v=(0,s.usePopupState)({variant:"popover"}),g=(0,n.useFontFamilies)(),k=(0,o.useSectionWidth)(),f=t.useMemo(()=>g.map(({label:e,fonts:a})=>({label:e,items:a})),[g]),y=(0,t.useId)();return t.createElement(t.Fragment,null,t.createElement(s.UnstableTag,_extends({id:y,variant:"outlined",label:u,endIcon:t.createElement(i.ChevronDownIcon,{fontSize:"tiny"})},(0,s.bindTrigger)(v),{fullWidth:!0})),t.createElement(s.Popover,_extends({disablePortal:!0,disableScrollLock:!0,anchorEl:m,anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:-28}},(0,s.bindPopover)(v)),t.createElement(n.ItemSelector,{id:"font-family-variables-selector",itemsList:f,selectedItem:u,onItemChange:e=>{(e=>{d(e);const t=(0,p.validateValue)(e);r?.(t),a(t?"":e)})(e),v.close()},onClose:v.close,sectionWidth:k,title:(0,l.__)("Font family","elementor"),itemStyle:e=>({fontFamily:e.value}),onDebounce:n.enqueueFont,icon:i.TextIcon})))}},"./packages/packages/core/editor-variables/src/components/fields/label-field.tsx":function(e,a,r){r.r(a),r.d(a,{LabelField:function(){return LabelField},useLabelError:function(){return useLabelError}});var t=r("react"),n=r("@elementor/editor-ui"),o=r("@elementor/ui"),i=r("./packages/packages/core/editor-variables/src/utils/validations.ts");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var r=arguments[a];for(var t in r)({}).hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},_extends.apply(null,arguments)}function isLabelEqual(e,a){return e.trim().toLowerCase()===a.trim().toLowerCase()}const useLabelError=e=>{const[a,r]=(0,t.useState)(e??{value:"",message:""});return{labelFieldError:a,setLabelFieldError:r}},LabelField=({value:e,error:a,onChange:r,id:s,onErrorChange:l,size:c="tiny",focusOnShow:p=!1,selectOnShow:u=!1,showWarningInfotip:d=!1,variables:b,onKeyDown:m})=>{const[v,g]=(0,t.useState)(e),[k,f]=(0,t.useState)(""),y=(0,t.useRef)(null);let h=k;isLabelEqual(v,a?.value??"")&&a?.message&&(h=a.message);const E=h?"":(0,i.labelHint)(v),_=t.createElement(o.TextField,{ref:y,id:s,size:c,fullWidth:!0,value:v,error:!!h,onChange:e=>(e=>{g(e);const t=(0,i.validateLabel)(e,b);f(t),l?.(t),r(isLabelEqual(e,a?.value??"")||t?"":e)})(e.target.value),inputProps:{maxLength:i.VARIABLE_LABEL_MAX_LENGTH,...u&&{onFocus:e=>e.target.select()},"aria-label":"Name",onKeyDown:m},autoFocus:p});if(d){const e=Math.max(240,y.current?.getBoundingClientRect().width??240);return t.createElement(n.WarningInfotip,_extends({open:Boolean(h||E),text:h||E,placement:"bottom-start",width:e,offset:[0,-15]},E&&{hasError:!1}),_)}return _}},"./packages/packages/core/editor-variables/src/components/global-styles-import-listener.tsx":function(e,a,r){r.r(a),r.d(a,{GlobalStylesImportListener:function(){return GlobalStylesImportListener}});var t=r("react"),n=r("./packages/packages/core/editor-variables/src/service.ts"),o=r("./packages/packages/core/editor-variables/src/style-variables-repository.ts");function GlobalStylesImportListener(){return(0,t.useEffect)(()=>{const handleGlobalStylesImported=e=>{const a=e.detail?.global_variables;a&&(a.data&&"object"==typeof a.data&&o.styleVariablesRepository.update(a.data),n.service.load())};return window.addEventListener("elementor/global-styles/imported",handleGlobalStylesImported),()=>{window.removeEventListener("elementor/global-styles/imported",handleGlobalStylesImported)}},[]),null}},"./packages/packages/core/editor-variables/src/components/open-panel-from-event.tsx":function(e,a,r){r.r(a),r.d(a,{OpenPanelFromEvent:function(){return OpenPanelFromEvent}});var t=r("react"),n=r("@elementor/editor-v1-adapters"),o=r("./packages/packages/core/editor-variables/src/components/variables-manager/variables-manager-panel.tsx");const i="elementor/open-variables-manager",s="panel/elements/categories";function OpenPanelFromEvent(){const{open:e}=(0,o.usePanelActions)(),a=(0,t.useRef)(!1),[r,l]=(0,t.useState)(!1);return(0,t.useEffect)(()=>{r&&(l(!1),e())},[r,e]),(0,t.useEffect)(()=>(0,n.__privateListenTo)((0,n.routeOpenEvent)(s),()=>{a.current&&(a.current=!1,l(!0))}),[]),(0,t.useEffect)(()=>{const handler=()=>{a.current=!0,(0,n.__privateOpenRoute)(s)};return window.addEventListener(i,handler),()=>window.removeEventListener(i,handler)},[]),null}},"./packages/packages/core/editor-variables/src/components/open-panel-from-url.tsx":function(e,a,r){r.r(a),r.d(a,{OpenPanelFromUrl:function(){return OpenPanelFromUrl}});var t=r("react"),n=r("@elementor/editor-v1-adapters"),o=r("./packages/packages/core/editor-variables/src/components/variables-manager/variables-manager-panel.tsx");const i="active-panel",s="variables-manager",l="panel/elements";function OpenPanelFromUrl(){const{open:e}=(0,o.usePanelActions)(),a=(0,t.useRef)(!1);return(0,t.useEffect)(()=>{if(new URLSearchParams(window.location.search).get(i)!==s)return;return(0,n.__privateListenTo)((0,n.routeOpenEvent)(l),()=>{a.current||(a.current=!0,requestAnimationFrame(()=>{e()}))})},[e]),null}},"./packages/packages/core/editor-variables/src/components/ui/color-indicator.tsx":function(e,a,r){r.r(a),r.d(a,{ColorIndicator:function(){return n}});var t=r("@elementor/ui");const n=(0,t.styled)(t.UnstableColorIndicator)(({theme:e})=>({borderRadius:e.shape.borderRadius/2+"px",marginRight:e.spacing(.25)}))},"./packages/packages/core/editor-variables/src/components/ui/delete-confirmation-dialog.tsx":function(e,a,r){r.r(a),r.d(a,{DeleteConfirmationDialog:function(){return DeleteConfirmationDialog}});var t=r("react"),n=r("@elementor/editor-ui"),o=r("@elementor/ui"),i=r("@wordpress/i18n");const DeleteConfirmationDialog=({open:e,label:a,closeDialog:r,onConfirm:s})=>t.createElement(n.ConfirmationDialog,{open:e,onClose:r},t.createElement(n.ConfirmationDialog.Title,null,(0,i.__)("Delete this variable?","elementor")),t.createElement(n.ConfirmationDialog.Content,null,t.createElement(n.ConfirmationDialog.ContentText,null,(0,i.__)("All elements using","elementor")," ",t.createElement(o.Typography,{variant:"subtitle2",component:"span",sx:{lineBreak:"anywhere"}},a)," ",(0,i.__)("will keep their current values, but the variable itself will be removed.","elementor"))),t.createElement(n.ConfirmationDialog.Actions,{onClose:r,onConfirm:s}))},"./packages/packages/core/editor-variables/src/components/ui/deleted-variable-alert.tsx":function(e,a,r){r.r(a),r.d(a,{DeletedVariableAlert:function(){return DeletedVariableAlert}});var t=r("react"),n=r("@elementor/ui"),o=r("@wordpress/i18n");const DeletedVariableAlert=({onClose:e,onUnlink:a,onRestore:r,label:i})=>t.createElement(n.ClickAwayListener,{onClickAway:e},t.createElement(n.Alert,{variant:"standard",severity:"warning",onClose:e,action:t.createElement(t.Fragment,null,a&&t.createElement(n.AlertAction,{variant:"contained",onClick:a},(0,o.__)("Unlink","elementor")),r&&t.createElement(n.AlertAction,{variant:"outlined",onClick:r},(0,o.__)("Restore","elementor"))),sx:{maxWidth:300}},t.createElement(n.AlertTitle,null,(0,o.__)("Deleted variable","elementor")),t.createElement(n.Typography,{variant:"body2",color:"textPrimary"},(0,o.__)("The variable","elementor")," '",t.createElement(n.Typography,{variant:"body2",component:"span",sx:{lineBreak:"anywhere"}},i),"' ",(0,o.__)("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"))))},"./packages/packages/core/editor-variables/src/components/ui/edit-confirmation-dialog.tsx":function(e,a,r){r.r(a),r.d(a,{EDIT_CONFIRMATION_DIALOG_ID:function(){return s},EditConfirmationDialog:function(){return EditConfirmationDialog}});var t=r("react"),n=r("@elementor/icons"),o=r("@elementor/ui"),i=r("@wordpress/i18n");const s="edit-confirmation-dialog",EditConfirmationDialog=({closeDialog:e,onConfirm:a,onSuppressMessage:r})=>{const[s,l]=(0,t.useState)(!1);return t.createElement(o.Dialog,{open:!0,onClose:e,maxWidth:"xs"},t.createElement(o.DialogTitle,{display:"flex",alignItems:"center",gap:1},t.createElement(n.AlertTriangleFilledIcon,{color:"secondary"}),(0,i.__)("Changes to variables go live right away.","elementor")),t.createElement(o.DialogContent,null,t.createElement(o.DialogContentText,{variant:"body2",color:"textPrimary"},(0,i.__)("Don't worry - all other changes you make will wait until you publish your site.","elementor"))),t.createElement(o.DialogActions,{sx:{justifyContent:"space-between",alignItems:"center"}},t.createElement(o.FormControlLabel,{control:t.createElement(o.Checkbox,{checked:s,onChange:e=>l(e.target.checked),size:"small"}),label:t.createElement(o.Typography,{variant:"body2"},(0,i.__)("Don't show me again","elementor"))}),t.createElement("div",null,t.createElement(o.Button,{color:"secondary",onClick:e},(0,i.__)("Keep editing","elementor")),t.createElement(o.Button,{variant:"contained",color:"secondary",onClick:()=>{s&&r?.(),a?.()},sx:{ml:1}},(0,i.__)("Save","elementor")))))}},"./packages/packages/core/editor-variables/src/components/ui/empty-state.tsx":function(e,a,r){r.r(a),r.d(a,{EmptyState:function(){return EmptyState}});var t=r("react"),n=r("@elementor/ui"),o=r("@wordpress/i18n"),i=r("./packages/packages/core/editor-variables/src/hooks/use-permissions.ts");const EmptyState=({icon:e,title:a,message:r,onAdd:s,children:l})=>{const c=(0,i.usePermissions)().canAdd(),p=c?a:(0,o.__)("There are no variables","elementor"),u=c?r:(0,o.__)("With your current role, you can only connect and detach variables.","elementor");return t.createElement(Content,{title:p,message:u,icon:e},l||s&&t.createElement(n.Button,{variant:"outlined",color:"secondary",size:"small",onClick:s},(0,o.__)("Create a variable","elementor")))};function Content({title:e,message:a,icon:r,children:o}){return t.createElement(n.Stack,{gap:1,alignItems:"center",justifyContent:"flex-start",height:"100%",color:"text.secondary",sx:{p:2.5,pt:8,pb:5.5}},r,t.createElement(n.Typography,{align:"center",variant:"subtitle2"},e),t.createElement(n.Typography,{align:"center",variant:"caption",maxWidth:"180px"},a),o)}},"./packages/packages/core/editor-variables/src/components/ui/form-field.tsx":function(e,a,r){r.r(a),r.d(a,{FormField:function(){return FormField}});var t=r("react"),n=r("@elementor/ui");const FormField=({id:e,label:a,errorMsg:r,noticeMsg:o,children:i})=>t.createElement(n.Grid,{container:!0,gap:.75,alignItems:"center"},t.createElement(n.Grid,{item:!0,xs:12},t.createElement(n.FormLabel,{htmlFor:e,size:"tiny"},a)),t.createElement(n.Grid,{item:!0,xs:12},i,r&&t.createElement(n.FormHelperText,{error:!0},r),o&&t.createElement(n.FormHelperText,null,o)))},"./packages/packages/core/editor-variables/src/components/ui/menu-item-content.tsx":function(e,a,r){r.r(a),r.d(a,{MenuItemContent:function(){return MenuItemContent}});var t=r("react"),n=r("@elementor/editor-ui"),o=r("@elementor/icons"),i=r("@elementor/ui"),s=r("@wordpress/i18n");const l=(0,s.__)("Edit variable","elementor"),MenuItemContent=({item:e,disabled:a=!1})=>{const r=e.onEdit;return t.createElement(t.Fragment,null,t.createElement(i.ListItemIcon,{sx:{color:a?"text.disabled":"inherit"}},e.icon),t.createElement(i.Box,{sx:{flex:1,minWidth:0,display:"flex",alignItems:"center",gap:1}},t.createElement(n.EllipsisWithTooltip,{title:e.label||e.value,as:i.Typography,variant:"caption",color:a?"text.disabled":"text.primary",sx:{marginTop:"1px",lineHeight:"2"},maxWidth:"50%"}),e.secondaryText&&t.createElement(n.EllipsisWithTooltip,{title:e.secondaryText,as:i.Typography,variant:"caption",color:a?"text.disabled":"text.tertiary",sx:{marginTop:"1px",lineHeight:"1"},maxWidth:"50%"})),!!r&&!a&&t.createElement(i.Tooltip,{placement:"top",title:l},t.createElement(i.IconButton,{sx:{mx:1,opacity:"0"},onClick:a=>{a.stopPropagation(),r(e.value)},"aria-label":l},t.createElement(o.EditIcon,{color:"action",fontSize:"tiny"}))))}},"./packages/packages/core/editor-variables/src/components/ui/mismatch-variable-alert.tsx":function(e,a,r){r.r(a),r.d(a,{MismatchVariableAlert:function(){return MismatchVariableAlert}});var t=r("react"),n=r("@elementor/ui"),o=r("@wordpress/i18n");const i={title:(0,o.__)("Variable has changed","elementor"),message:(0,o.__)("This variable is no longer compatible with this property. You can clear it or select a different one.","elementor"),buttons:{clear:(0,o.__)("Clear","elementor"),select:(0,o.__)("Select variable","elementor")}},MismatchVariableAlert=({onClose:e,onClear:a,triggerSelect:r})=>t.createElement(n.ClickAwayListener,{onClickAway:e},t.createElement(n.Alert,{variant:"standard",severity:"warning",onClose:e,action:t.createElement(t.Fragment,null,a&&t.createElement(n.AlertAction,{variant:"contained",onClick:a},i.buttons.clear),r&&t.createElement(n.AlertAction,{variant:"outlined",onClick:r},i.buttons.select)),sx:{maxWidth:300}},t.createElement(n.AlertTitle,null,i.title),t.createElement(n.Typography,{variant:"body2",color:"textPrimary"},i.message)))},"./packages/packages/core/editor-variables/src/components/ui/missing-variable-alert.tsx":function(e,a,r){r.r(a),r.d(a,{MissingVariableAlert:function(){return MissingVariableAlert}});var t=r("react"),n=r("@elementor/ui"),o=r("@wordpress/i18n");const MissingVariableAlert=({onClose:e,onClear:a})=>t.createElement(n.ClickAwayListener,{onClickAway:e},t.createElement(n.Alert,{variant:"standard",severity:"warning",onClose:e,action:t.createElement(t.Fragment,null,a&&t.createElement(n.AlertAction,{variant:"contained",onClick:a},(0,o.__)("Clear","elementor"))),sx:{maxWidth:300}},t.createElement(n.AlertTitle,null,(0,o.__)("This variable is missing","elementor")),t.createElement(n.Typography,{variant:"body2",color:"textPrimary"},(0,o.__)("It may have been deleted. Try clearing this field and select a different value or variable.","elementor"))))},"./packages/packages/core/editor-variables/src/components/ui/no-search-results.tsx":function(e,a,r){r.r(a),r.d(a,{NoSearchResults:function(){return NoSearchResults}});var t=r("react"),n=r("@elementor/ui"),o=r("@wordpress/i18n");const NoSearchResults=({searchValue:e,onClear:a,icon:r})=>t.createElement(n.Stack,{gap:1,alignItems:"center",justifyContent:"center",p:2.5,color:"text.secondary",sx:{pb:3.5,pt:8}},r,t.createElement(n.Typography,{align:"center",variant:"subtitle2"},(0,o.__)("Sorry, nothing matched","elementor"),t.createElement("br",null),"“",e,"”."),t.createElement(n.Typography,{align:"center",variant:"caption",sx:{display:"flex",flexDirection:"column"}},(0,o.__)("Try something else.","elementor"),t.createElement(n.Link,{color:"text.secondary",variant:"caption",component:"button",onClick:a},(0,o.__)("Clear & try again","elementor"))))},"./packages/packages/core/editor-variables/src/components/ui/styled-menu-list.tsx":function(e,a,r){r.r(a),r.d(a,{VariablesStyledMenuList:function(){return n}});var t=r("@elementor/ui");const n=(0,t.styled)(t.MenuList)(({theme:e,disabled:a})=>({"& > li":{height:32,width:"100%",display:"flex",alignItems:"center"},'& > [role="option"]':{...e.typography.caption,lineHeight:"inherit",padding:e.spacing(.5,1,.5,2),...!a&&{"&: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"}))},"./packages/packages/core/editor-variables/src/components/ui/tags/assigned-tag.tsx":function(e,a,r){r.r(a),r.d(a,{AssignedTag:function(){return AssignedTag},SIZE:function(){return s}});var t=r("react"),n=r("@elementor/icons"),o=r("@elementor/ui"),i=r("@wordpress/i18n");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var r=arguments[a];for(var t in r)({}).hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},_extends.apply(null,arguments)}const s="tiny",l=(0,i.__)("Unlink variable","elementor"),AssignedTag=({startIcon:e,label:a,onUnlink:r,...i})=>{const c=[];return r&&c.push(t.createElement(o.Tooltip,{key:"unlink",title:l,placement:"bottom"},t.createElement(o.IconButton,{size:s,onClick:r,"aria-label":l},t.createElement(n.DetachIcon,{fontSize:s})))),t.createElement(o.Tooltip,{title:a,placement:"top"},t.createElement(o.UnstableTag,_extends({fullWidth:!0,showActionsOnHover:!0,startIcon:t.createElement(o.Stack,{gap:.5,direction:"row",alignItems:"center"},e),label:t.createElement(o.Box,{sx:{display:"inline-grid",minWidth:0}},t.createElement(o.Typography,{sx:{lineHeight:1.34},variant:"caption",noWrap:!0},a)),actions:c},i)))}},"./packages/packages/core/editor-variables/src/components/ui/tags/warning-variable-tag.tsx":function(e,a,r){r.r(a),r.d(a,{WarningVariableTag:function(){return i}});var t=r("react"),n=r("@elementor/icons"),o=r("@elementor/ui");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var r=arguments[a];for(var t in r)({}).hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},_extends.apply(null,arguments)}const i=t.forwardRef(({label:e,suffix:a,onClick:r,icon:i,...s},l)=>{const c=a?`${e} (${a})`:e;return t.createElement(o.Chip,_extends({ref:l,size:"tiny",color:"warning",shape:"rounded",variant:"standard",onClick:r,icon:t.createElement(n.AlertTriangleFilledIcon,null),label:t.createElement(o.Tooltip,{title:c,placement:"top"},t.createElement(o.Box,{sx:{display:"inline-grid",minWidth:0}},t.createElement(o.Typography,{variant:"caption",noWrap:!0,sx:{lineHeight:1.34}},c))),sx:{height:e=>e.spacing(3.5),borderRadius:e=>e.spacing(1),justifyContent:"flex-start",width:"100%"}},s))});i.displayName="WarningVariableTag"},"./packages/packages/core/editor-variables/src/components/ui/variable-promotion-chip.tsx":function(e,a,r){r.r(a),r.d(a,{VariablePromotionChip:function(){return c}});var t=r("react"),n=r("@elementor/editor-controls"),o=r("@elementor/editor-ui"),i=r("@elementor/ui"),s=r("@elementor/utils"),l=r("@wordpress/i18n");const c=(0,t.forwardRef)(({variableType:e,upgradeUrl:a,trackingData:r},c)=>{const[p,u]=(0,t.useState)(!1);(0,o.useCanvasClickHandler)(p,()=>u(!1));const d=(0,t.useCallback)(()=>{u(e=>(e||(0,n.trackViewPromotion)(r),!e))},[r]);(0,t.useImperativeHandle)(c,()=>({toggle:d}),[d]);const b=(0,l.sprintf)((0,l.__)("%s variables","elementor"),(0,s.capitalize)(e)),m=(0,l.sprintf)((0,l.__)("Upgrade to continue creating and editing %s variables.","elementor"),e);return t.createElement(o.PromotionPopover,{open:p,title:b,content:m,ctaText:(0,l.__)("Upgrade now","elementor"),ctaUrl:a,onClose:e=>{e.stopPropagation(),u(!1)},onCtaClick:()=>(0,n.trackUpgradePromotionClick)(r)},t.createElement(i.Box,{onClick:e=>{e.stopPropagation(),d()},sx:{cursor:"pointer",display:"inline-flex"}},t.createElement(o.PromotionChip,null)))})},"./packages/packages/core/editor-variables/src/components/ui/variable/assigned-variable.tsx":function(e,a,r){r.r(a),r.d(a,{AssignedVariable:function(){return AssignedVariable}});var t=r("react"),n=r("@elementor/editor-controls"),o=r("@elementor/icons"),i=r("@elementor/ui"),s=r("./packages/packages/core/editor-variables/src/utils/unlink-variable.ts"),l=r("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts"),c=r("./packages/packages/core/editor-variables/src/components/variable-selection-popover.tsx"),p=r("./packages/packages/core/editor-variables/src/components/ui/tags/assigned-tag.tsx");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var r=arguments[a];for(var t in r)({}).hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},_extends.apply(null,arguments)}const AssignedVariable=({variable:e,propTypeKey:a})=>{const{startIcon:r,propTypeUtil:u}=(0,l.getVariableType)(a),{setValue:d}=(0,n.useBoundProp)(),b=(0,t.useRef)(null),m=(0,t.useId)(),v=(0,i.usePopupState)({variant:"popover",popupId:`elementor-variables-list-${m}`}),g=(0,s.createUnlinkHandler)(e,a,d),k=r||(()=>null);return t.createElement(i.Box,{ref:b},t.createElement(p.AssignedTag,_extends({label:e.label,startIcon:t.createElement(t.Fragment,null,t.createElement(o.ColorFilterIcon,{fontSize:p.SIZE}),t.createElement(k,{value:e.value})),onUnlink:g},(0,i.bindTrigger)(v))),t.createElement(i.Popover,_extends({disableScrollLock:!0,anchorEl:b.current,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},PaperProps:{sx:{my:1}}},(0,i.bindPopover)(v)),t.createElement(c.VariableSelectionPopover,{selectedVariable:e,closePopover:v.close,propTypeKey:u.key})))}},"./packages/packages/core/editor-variables/src/components/ui/variable/deleted-variable.tsx":function(e,a,r){r.r(a),r.d(a,{DeletedVariable:function(){return DeletedVariable}});var t=r("react"),n=r("@elementor/editor-controls"),o=r("@elementor/ui"),i=r("@wordpress/i18n"),s=r("./packages/packages/core/editor-variables/src/context/variable-type-context.tsx"),l=r("./packages/packages/core/editor-variables/src/hooks/use-permissions.ts"),c=r("./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts"),p=r("./packages/packages/core/editor-variables/src/hooks/use-variable-bound-prop.ts"),u=r("./packages/packages/core/editor-variables/src/utils/unlink-variable.ts"),d=r("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts"),b=r("./packages/packages/core/editor-variables/src/components/variable-restore.tsx"),m=r("./packages/packages/core/editor-variables/src/components/ui/deleted-variable-alert.tsx"),v=r("./packages/packages/core/editor-variables/src/components/ui/tags/warning-variable-tag.tsx");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var r=arguments[a];for(var t in r)({}).hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},_extends.apply(null,arguments)}const DeletedVariable=({variable:e,propTypeKey:a})=>{const{propTypeUtil:r}=(0,d.getVariableType)(a),g=(0,n.useBoundProp)(),k=(0,l.usePermissions)(),[f,y]=(0,t.useState)(!1),closeInfotip=()=>y(!1),h=(0,t.useRef)(null),E=(0,t.useId)(),_=(0,o.usePopupState)({variant:"popover",popupId:`elementor-variables-restore-${E}`}),C={};k.canUnlink()&&(C.onUnlink=(0,u.createUnlinkHandler)(e,a,g.setValue)),k.canRestore()&&(C.onRestore=()=>{e.key&&(0,c.restoreVariable)(e.key).then(e=>{(0,p.resolveBoundPropAndSetValue)(r.create(e),g),closeInfotip()}).catch(()=>{closeInfotip(),_.setAnchorEl(h.current),_.open()})});return t.createElement(t.Fragment,null,t.createElement(o.Box,{ref:h},f&&t.createElement(o.Backdrop,{open:!0,onClick:closeInfotip,invisible:!0}),t.createElement(o.Infotip,{color:"warning",placement:"right-start",open:f,disableHoverListener:!0,onClose:closeInfotip,content:t.createElement(m.DeletedVariableAlert,{onClose:closeInfotip,onUnlink:C.onUnlink,onRestore:C.onRestore,label:e.label}),slotProps:{popper:{modifiers:[{name:"offset",options:{offset:[0,24]}}]}}},t.createElement(v.WarningVariableTag,{label:e.label,onClick:()=>y(e=>!e),suffix:(0,i.__)("deleted","elementor")})),t.createElement(o.Popover,_extends({disableScrollLock:!0,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},PaperProps:{sx:{my:1}}},(0,o.bindPopover)(_)),t.createElement(s.VariableTypeProvider,{propTypeKey:a},t.createElement(b.VariableRestore,{variableId:e.key??"",onClose:_.close,onSubmit:()=>{_.close()}})))))}},"./packages/packages/core/editor-variables/src/components/ui/variable/mismatch-variable.tsx":function(e,a,r){r.r(a),r.d(a,{MismatchVariable:function(){return MismatchVariable}});var t=r("react"),n=r("@elementor/editor-controls"),o=r("@elementor/ui"),i=r("@wordpress/i18n"),s=r("./packages/packages/core/editor-variables/src/components/variable-selection-popover.tsx"),l=r("./packages/packages/core/editor-variables/src/components/ui/mismatch-variable-alert.tsx"),c=r("./packages/packages/core/editor-variables/src/components/ui/tags/warning-variable-tag.tsx");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var r=arguments[a];for(var t in r)({}).hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},_extends.apply(null,arguments)}const MismatchVariable=({variable:e})=>{const{setValue:a,value:r}=(0,n.useBoundProp)(),p=(0,t.useRef)(null),u=(0,t.useId)(),d=(0,o.usePopupState)({variant:"popover",popupId:`elementor-variables-list-${u}`}),[b,m]=(0,t.useState)(!1),closeInfotip=()=>m(!1),v=!!r;return t.createElement(o.Box,{ref:p},b&&t.createElement(o.Backdrop,{open:!0,onClick:closeInfotip,invisible:!0}),t.createElement(o.Infotip,{color:"warning",placement:"right-start",open:b,disableHoverListener:!0,onClose:closeInfotip,content:t.createElement(l.MismatchVariableAlert,{onClose:closeInfotip,onClear:v?()=>{closeInfotip(),a(null)}:void 0,triggerSelect:()=>{closeInfotip(),d.setAnchorEl(p.current),d.open()}}),slotProps:{popper:{modifiers:[{name:"offset",options:{offset:[0,24]}}]}}},t.createElement(c.WarningVariableTag,{label:e.label,onClick:()=>m(e=>!e),suffix:(0,i.__)("changed","elementor")})),t.createElement(o.Popover,_extends({disableScrollLock:!0,anchorEl:p.current,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},PaperProps:{sx:{my:1}}},(0,o.bindPopover)(d)),t.createElement(s.VariableSelectionPopover,{selectedVariable:e,closePopover:d.close,propTypeKey:e.type})))}},"./packages/packages/core/editor-variables/src/components/ui/variable/missing-variable.tsx":function(e,a,r){r.r(a),r.d(a,{MissingVariable:function(){return MissingVariable}});var t=r("react"),n=r("@elementor/editor-controls"),o=r("@elementor/ui"),i=r("@wordpress/i18n"),s=r("./packages/packages/core/editor-variables/src/components/ui/missing-variable-alert.tsx"),l=r("./packages/packages/core/editor-variables/src/components/ui/tags/warning-variable-tag.tsx");const MissingVariable=()=>{const{setValue:e}=(0,n.useBoundProp)(),[a,r]=(0,t.useState)(!1),closeInfotip=()=>r(!1);return t.createElement(t.Fragment,null,a&&t.createElement(o.Backdrop,{open:!0,onClick:closeInfotip,invisible:!0}),t.createElement(o.Infotip,{color:"warning",placement:"right-start",open:a,disableHoverListener:!0,onClose:closeInfotip,content:t.createElement(s.MissingVariableAlert,{onClose:closeInfotip,onClear:()=>e(null)}),slotProps:{popper:{modifiers:[{name:"offset",options:{offset:[0,24]}}]}}},t.createElement(l.WarningVariableTag,{label:(0,i.__)("Missing variable","elementor"),onClick:()=>r(e=>!e)})))}},"./packages/packages/core/editor-variables/src/components/variable-creation.tsx":function(e,a,r){r.r(a),r.d(a,{VariableCreation:function(){return VariableCreation}});var t=r("react"),n=r("@elementor/editor-controls"),o=r("@elementor/editor-ui"),i=r("@elementor/icons"),s=r("@elementor/ui"),l=r("@wordpress/i18n"),c=r("./packages/packages/core/editor-variables/src/context/variable-type-context.tsx"),p=r("./packages/packages/core/editor-variables/src/hooks/use-initial-value.ts"),u=r("./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts"),d=r("./packages/packages/core/editor-variables/src/hooks/use-variable-bound-prop.ts"),b=r("./packages/packages/core/editor-variables/src/utils/tracking.ts"),m=r("./packages/packages/core/editor-variables/src/utils/validations.ts"),v=r("./packages/packages/core/editor-variables/src/components/fields/label-field.tsx"),g=r("./packages/packages/core/editor-variables/src/components/ui/form-field.tsx");const k="tiny",VariableCreation=({onGoBack:e,onClose:a})=>{const{icon:r,valueField:f,variableType:y,propTypeUtil:h}=(0,c.useVariableType)(),{setVariableValue:E,path:_}=(0,d.useVariableBoundProp)(),{propType:C}=(0,n.useBoundProp)(),x=(0,p.useInitialValue)(),[T,V]=(0,t.useState)(x),[S,w]=(0,t.useState)(""),[P,I]=(0,t.useState)(""),[A,R]=(0,t.useState)(""),[L,O]=(0,t.useState)(h.key),{labelFieldError:D,setLabelFieldError:B}=(0,v.useLabelError)(),closePopover=()=>{V(""),w(""),I(""),R(""),a()},handleCreateAndTrack=()=>{(0,u.createVariable)({value:T,label:S,type:L}).then(e=>{E(e),closePopover()}).catch(e=>{const a=(0,m.mapServerError)(e);if(a&&"label"===a.field)return w(""),void B({value:S,message:a.message});I(m.ERROR_MESSAGES.UNEXPECTED_ERROR)}),(0,b.trackVariableEvent)({varType:y,controlPath:_.join("."),action:"save"})},M=""===S.trim()||("string"==typeof T?""===T.trim():!1===Boolean(T))||!!P,handleKeyDown=e=>{"Enter"!==e.key||M||(e.preventDefault(),handleCreateAndTrack())};return t.createElement(o.SectionPopoverBody,{height:"auto"},t.createElement(o.PopoverHeader,{icon:t.createElement(t.Fragment,null,e&&t.createElement(s.IconButton,{size:k,"aria-label":(0,l.__)("Go Back","elementor"),onClick:e},t.createElement(i.ArrowLeftIcon,{fontSize:k})),t.createElement(r,{fontSize:k})),title:(0,l.__)("Create variable","elementor"),onClose:closePopover}),t.createElement(s.Divider,null),t.createElement(n.PopoverContent,{p:2},t.createElement(g.FormField,{id:"variable-label",label:(0,l.__)("Name","elementor"),errorMsg:D?.message,noticeMsg:(0,m.labelHint)(S)},t.createElement(v.LabelField,{id:"variable-label",value:S,error:D,onChange:e=>{w(e),I("")},onErrorChange:e=>{B({value:"",message:e})},onKeyDown:handleKeyDown,focusOnShow:!0})),f&&t.createElement(g.FormField,{errorMsg:A,label:(0,l.__)("Value","elementor")},t.createElement(s.Typography,{variant:"h5",id:"variable-value-wrapper"},t.createElement(f,{value:T,onPropTypeKeyChange:e=>O(e),onChange:e=>{V(e),I(""),R("")},onValidationChange:R,propType:C,onKeyDown:handleKeyDown}))),P&&t.createElement(s.FormHelperText,{error:!0},P)),t.createElement(s.CardActions,{sx:{pt:.5,pb:1}},t.createElement(s.Button,{id:"create-variable-button",size:"small",variant:"contained",disabled:M,onClick:handleCreateAndTrack},(0,l.__)("Create","elementor"))))}},"./packages/packages/core/editor-variables/src/components/variable-edit.tsx":function(e,a,r){r.r(a),r.d(a,{VariableEdit:function(){return VariableEdit}});var t=r("react"),n=r("@elementor/editor-controls"),o=r("@elementor/editor-current-user"),i=r("@elementor/editor-ui"),s=r("@elementor/icons"),l=r("@elementor/ui"),c=r("@wordpress/i18n"),p=r("./packages/packages/core/editor-variables/src/context/variable-type-context.tsx"),u=r("./packages/packages/core/editor-variables/src/hooks/use-permissions.ts"),d=r("./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts"),b=r("./packages/packages/core/editor-variables/src/hooks/use-variable-bound-prop.ts"),m=r("./packages/packages/core/editor-variables/src/style-variables-repository.ts"),v=r("./packages/packages/core/editor-variables/src/utils/validations.ts"),g=r("./packages/packages/core/editor-variables/src/components/fields/label-field.tsx"),k=r("./packages/packages/core/editor-variables/src/components/ui/delete-confirmation-dialog.tsx"),f=r("./packages/packages/core/editor-variables/src/components/ui/edit-confirmation-dialog.tsx"),y=r("./packages/packages/core/editor-variables/src/components/ui/form-field.tsx");const h="tiny",E=(0,c.__)("Delete variable","elementor"),VariableEdit=({onClose:e,onGoBack:a,onSubmit:r,editId:_})=>{const{icon:C,valueField:x,variableType:T,propTypeUtil:V}=(0,p.useVariableType)(),{setVariableValue:S,variableId:w}=(0,b.useVariableBoundProp)(),{propType:P}=(0,n.useBoundProp)(),[I,A]=(0,o.useSuppressedMessage)(f.EDIT_CONFIRMATION_DIALOG_ID),[R,L]=(0,t.useState)(!1),[O,D]=(0,t.useState)(!1),[B,M]=(0,t.useState)(""),[F,U]=(0,t.useState)(""),{labelFieldError:z,setLabelFieldError:N}=(0,g.useLabelError)(),j=(0,d.useVariable)(_),[G,H]=(0,t.useState)(j?.type??V.key);if(!j)throw new Error(`Global ${T} variable not found`);const W=(0,u.usePermissions)(),[q,$]=(0,t.useState)(()=>j.value),[K,X]=(0,t.useState)(()=>j.label);(0,t.useEffect)(()=>(m.styleVariablesRepository.update({[_]:{...j,value:q}}),()=>{m.styleVariablesRepository.update({[_]:{...j}})}),[_,q,j]);const handleUpdate=()=>{I?handleSaveVariable():D(!0)},handleSaveVariable=()=>{const e=G!==j.type?{value:q,label:K,type:G}:{value:q,label:K};(0,d.updateVariable)(_,e).then(()=>{maybeTriggerBoundPropChange(),r?.()}).catch(e=>{const a=(0,v.mapServerError)(e);if(a&&"label"===a.field)return X(""),void N({value:K,message:a.message});M(v.ERROR_MESSAGES.UNEXPECTED_ERROR)})},maybeTriggerBoundPropChange=()=>{_===w&&S(_)},handleDeleteConfirmation=()=>{L(!0)},Q=[];W.canDelete()&&Q.push(t.createElement(l.Tooltip,{key:"delete",placement:"top",title:E},t.createElement(l.IconButton,{size:h,onClick:handleDeleteConfirmation,"aria-label":E},t.createElement(s.TrashIcon,{fontSize:h}))));const Z=q===j.value&&K===j.label||""===K.trim()||("string"==typeof q?""===q.trim():!1===Boolean(q))||!!B,handleKeyDown=e=>{"Enter"!==e.key||Z||(e.preventDefault(),handleUpdate())};return t.createElement(t.Fragment,null,t.createElement(i.SectionPopoverBody,{height:"auto"},t.createElement(i.PopoverHeader,{title:(0,c.__)("Edit variable","elementor"),onClose:e,icon:t.createElement(t.Fragment,null,a&&t.createElement(l.IconButton,{size:h,"aria-label":(0,c.__)("Go Back","elementor"),onClick:a},t.createElement(s.ArrowLeftIcon,{fontSize:h})),t.createElement(C,{fontSize:h})),actions:Q}),t.createElement(l.Divider,null),t.createElement(n.PopoverContent,{p:2},t.createElement(y.FormField,{id:"variable-label",label:(0,c.__)("Name","elementor"),errorMsg:z?.message,noticeMsg:(0,v.labelHint)(K)},t.createElement(g.LabelField,{id:"variable-label",value:K,error:z,onChange:e=>{X(e),M("")},onErrorChange:e=>{N({value:"",message:e})},onKeyDown:handleKeyDown,focusOnShow:!0})),x&&t.createElement(y.FormField,{errorMsg:F,label:(0,c.__)("Value","elementor")},t.createElement(l.Typography,{variant:"h5"},t.createElement(x,{propTypeKey:j.type,onPropTypeKeyChange:e=>H(e),value:q,onChange:e=>{$(e),M(""),U("")},onKeyDown:handleKeyDown,onValidationChange:U,propType:P}))),B&&t.createElement(l.FormHelperText,{error:!0},B)),t.createElement(l.CardActions,{sx:{pt:.5,pb:1}},t.createElement(l.Button,{size:"small",variant:"contained",disabled:Z,onClick:handleUpdate},(0,c.__)("Save","elementor")))),R&&t.createElement(k.DeleteConfirmationDialog,{open:!0,label:K,onConfirm:()=>{(0,d.deleteVariable)(_).then(()=>{maybeTriggerBoundPropChange(),r?.()})},closeDialog:()=>{L(!1)}}),O&&!I&&t.createElement(f.EditConfirmationDialog,{closeDialog:()=>{D(!1)},onConfirm:handleSaveVariable,onSuppressMessage:A}))}},"./packages/packages/core/editor-variables/src/components/variable-restore.tsx":function(e,a,r){r.r(a),r.d(a,{VariableRestore:function(){return VariableRestore}});var t=r("react"),n=r("@elementor/editor-controls"),o=r("@elementor/editor-ui"),i=r("@elementor/ui"),s=r("@wordpress/i18n"),l=r("./packages/packages/core/editor-variables/src/context/variable-selection-popover.context.tsx"),c=r("./packages/packages/core/editor-variables/src/context/variable-type-context.tsx"),p=r("./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts"),u=r("./packages/packages/core/editor-variables/src/hooks/use-variable-bound-prop.ts"),d=r("./packages/packages/core/editor-variables/src/utils/validations.ts"),b=r("./packages/packages/core/editor-variables/src/components/fields/label-field.tsx"),m=r("./packages/packages/core/editor-variables/src/components/ui/form-field.tsx");const VariableRestore=({variableId:e,onClose:a,onSubmit:r})=>{const{icon:v,valueField:g,variableType:k,propTypeUtil:f}=(0,c.useVariableType)(),{setVariableValue:y}=(0,u.useVariableBoundProp)(),{propType:h}=(0,n.useBoundProp)(),E=(0,p.useVariable)(e);if(!E)throw new Error(`Global ${k} variable not found`);const[_,C]=(0,t.useState)(""),[x,T]=(0,t.useState)(""),[V,S]=(0,t.useState)(E.label),[w,P]=(0,t.useState)(E.value),[I,A]=(0,t.useState)(E?.type??f.key),{labelFieldError:R,setLabelFieldError:L}=(0,b.useLabelError)({value:E.label,message:d.ERROR_MESSAGES.DUPLICATED_LABEL}),handleRestore=()=>{(I!==E.type?(0,p.restoreVariable)(e,V,w,I):(0,p.restoreVariable)(e,V,w)).then(()=>{y(e),r?.()}).catch(e=>{const a=(0,d.mapServerError)(e);if(a&&"label"===a.field)return S(""),void L({value:V,message:a.message});C(d.ERROR_MESSAGES.UNEXPECTED_ERROR)})},O=w===E.value&&V===E.label||""===V.trim()||("string"==typeof w?""===w.trim():!1===Boolean(w))||!!_,handleKeyDown=e=>{"Enter"!==e.key||O||(e.preventDefault(),handleRestore())};return t.createElement(l.PopoverContentRefContextProvider,null,t.createElement(o.SectionPopoverBody,{height:"auto"},t.createElement(o.PopoverHeader,{icon:t.createElement(v,{fontSize:"tiny"}),title:(0,s.__)("Restore variable","elementor"),onClose:a}),t.createElement(i.Divider,null),t.createElement(n.PopoverContent,{p:2},t.createElement(m.FormField,{id:"variable-label",label:(0,s.__)("Name","elementor"),errorMsg:R?.message,noticeMsg:(0,d.labelHint)(V)},t.createElement(b.LabelField,{id:"variable-label",value:V,error:R,onChange:e=>{S(e),C("")},onErrorChange:e=>{L({value:"",message:e})},onKeyDown:handleKeyDown,focusOnShow:!0})),g&&t.createElement(m.FormField,{errorMsg:x,label:(0,s.__)("Value","elementor")},t.createElement(i.Typography,{variant:"h5"},t.createElement(g,{propTypeKey:I,onPropTypeKeyChange:e=>A(e),value:w,onChange:e=>{P(e),C(""),T("")},onValidationChange:T,propType:h,onKeyDown:handleKeyDown}))),_&&t.createElement(i.FormHelperText,{error:!0},_)),t.createElement(i.CardActions,{sx:{pt:.5,pb:1}},t.createElement(i.Button,{size:"small",variant:"contained",disabled:O,onClick:handleRestore},(0,s.__)("Restore","elementor")))))}},"./packages/packages/core/editor-variables/src/components/variable-selection-popover.tsx":function(e,a,r){r.r(a),r.d(a,{VariableSelectionPopover:function(){return VariableSelectionPopover}});var t=r("react"),n=r("@elementor/editor-v1-adapters"),o=r("./packages/packages/core/editor-variables/src/context/variable-selection-popover.context.tsx"),i=r("./packages/packages/core/editor-variables/src/context/variable-type-context.tsx"),s=r("./packages/packages/core/editor-variables/src/hooks/use-permissions.ts"),l=r("./packages/packages/core/editor-variables/src/hooks/use-quota-permissions.ts"),c=r("./packages/packages/core/editor-variables/src/components/variable-creation.tsx"),p=r("./packages/packages/core/editor-variables/src/components/variable-edit.tsx"),u=r("./packages/packages/core/editor-variables/src/components/variables-manager/variables-manager-panel.tsx"),d=r("./packages/packages/core/editor-variables/src/components/variables-selection.tsx");const b="list",m="add",v="edit",VariableSelectionPopover=({closePopover:e,propTypeKey:a,selectedVariable:r})=>{const[g,k]=(0,t.useState)(b),[f,y]=(0,t.useState)(""),{open:h}=(0,u.usePanelActions)(),E=(0,n.isExperimentActive)("e_variables_manager")?()=>{h()}:void 0;return t.createElement(i.VariableTypeProvider,{propTypeKey:a},t.createElement(o.PopoverContentRefContextProvider,null,function RenderView(e){const a=(0,s.usePermissions)(),r=(0,l.useQuotaPermissions)(e.propTypeKey),n={onClose:()=>{e.closePopover()},onGoBack:()=>{e.setCurrentView(b)}};a.canAdd()&&(n.onAdd=()=>{e.setCurrentView(m)});a.canEdit()&&(n.onEdit=a=>{e.setEditId(a),e.setCurrentView(v)});a.canManageSettings()&&e.onSettings&&(n.onSettings=()=>{e.closePopover(),e.onSettings?.()});const handleSubmitOnEdit=()=>{e?.selectedVariable?.key===e.editId?n.onClose():n.onGoBack?.()};if(b===e.currentView)return t.createElement(d.VariablesSelection,{closePopover:n.onClose,onAdd:n.onAdd,onEdit:n.onEdit,onSettings:n.onSettings,disabled:!r.canAdd()});if(m===e.currentView)return t.createElement(c.VariableCreation,{onGoBack:n.onGoBack,onClose:n.onClose});if(v===e.currentView)return t.createElement(p.VariableEdit,{editId:e.editId,onGoBack:n.onGoBack,onClose:n.onClose,onSubmit:handleSubmitOnEdit});return null}({propTypeKey:a,currentView:g,selectedVariable:r,editId:f,setEditId:y,setCurrentView:k,closePopover:e,onSettings:E})))}},"./packages/packages/core/editor-variables/src/components/variables-manager/hooks/use-auto-edit.ts":function(e,a,r){r.r(a),r.d(a,{useAutoEdit:function(){return useAutoEdit}});var t=r("react");const useAutoEdit=()=>{const[e,a]=(0,t.useState)(void 0);return{autoEditVariableId:e,startAutoEdit:(0,t.useCallback)(e=>{a(e)},[]),handleAutoEditComplete:(0,t.useCallback)(()=>{setTimeout(()=>{a(void 0)},100)},[])}}},"./packages/packages/core/editor-variables/src/components/variables-manager/hooks/use-error-navigation.ts":function(e,a,r){r.r(a),r.d(a,{useErrorNavigation:function(){return useErrorNavigation}});var t=r("react");const useErrorNavigation=()=>{const e=(0,t.useRef)(0);return{createNavigationCallback:(0,t.useCallback)((a,r,t)=>()=>{if(!a?.length)return;const n=e.current,o=a[n];if(o){r(o);const i=n+1;i>=a.length?(t(),e.current=0):e.current=i}},[]),resetNavigation:(0,t.useCallback)(()=>{e.current=0},[])}}},"./packages/packages/core/editor-variables/src/components/variables-manager/hooks/use-variables-manager-state.ts":function(e,a,r){r.r(a),r.d(a,{useVariablesManagerState:function(){return useVariablesManagerState}});var t=r("react"),n=r("./packages/packages/core/editor-variables/src/batch-operations.ts"),o=r("./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts"),i=r("./packages/packages/core/editor-variables/src/service.ts"),s=r("./packages/packages/core/editor-variables/src/utils/filter-by-search.ts"),l=r("./packages/packages/core/editor-variables/src/utils/variables-to-list.ts"),c=r("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");const useVariablesManagerState=()=>{const[e,a]=(0,t.useState)(()=>(0,o.getVariables)(!1)),[r,p]=(0,t.useState)([]),[u,d]=(0,t.useState)(!1),[b,m]=(0,t.useState)(!1),[v,g]=(0,t.useState)(!1),[k,f]=(0,t.useState)(""),y=(0,t.useCallback)(r=>{a({...e,...r}),m(!0)},[e]),h=(0,t.useCallback)((e,r,t)=>{const o=(0,n.generateTempId)(),i={id:o,label:r.trim(),value:t.trim(),type:e};return a(e=>({...e,[o]:i})),m(!0),o},[]),E=(0,t.useCallback)(e=>{p(a=>[...a,e]),a(a=>({...a,[e]:{...a[e],deleted:!0}})),m(!0)},[]),_=(0,t.useCallback)(e=>{a(a=>({...a,[e]:{...a[e],sync_to_v3:!0}})),m(!0)},[]),C=(0,t.useCallback)(e=>{a(a=>({...a,[e]:{...a[e],sync_to_v3:!1}})),m(!0)},[]),x=(0,t.useCallback)(async()=>{const t=(0,o.getVariables)(!1);g(!0);const n=await i.service.batchSave(t,e,r);if(n.success){await i.service.load();const e=i.service.variables();a(e),p([]),m(!1)}return{success:n.success}},[e,r]);return{variables:(0,t.useCallback)(()=>{const a=(0,l.variablesToList)(e).filter(e=>!e.deleted),r=(0,l.applySelectionFilters)(a,(0,c.getVariableTypes)()),t=(0,s.filterBySearch)(r,k);return Object.fromEntries(t.map(({key:e,...a})=>[e,a]))},[e,k])(),deletedVariables:r,isDirty:b,isSaveDisabled:u,handleOnChange:y,createVariable:h,handleDeleteVariable:E,handleStartSync:_,handleStopSync:C,handleSave:x,isSaving:v,handleSearch:e=>{f(e)},searchValue:k,setIsSaving:g,setIsSaveDisabled:d}}},"./packages/packages/core/editor-variables/src/components/variables-manager/ui/variable-edit-menu.tsx":function(e,a,r){r.r(a),r.d(a,{VariableEditMenu:function(){return VariableEditMenu}});var t=r("react"),n=r("@elementor/icons"),o=r("@elementor/ui");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var r=arguments[a];for(var t in r)({}).hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},_extends.apply(null,arguments)}const VariableEditMenu=({menuActions:e,disabled:a,itemId:r})=>{const i=(0,o.usePopupState)({variant:"popover"}),s=(0,o.bindTrigger)(i);return t.createElement(t.Fragment,null,t.createElement(o.IconButton,_extends({},s,{disabled:a,size:"tiny",onClick:e=>{e.stopPropagation(),s.onClick?.(e)}}),t.createElement(n.DotsVerticalIcon,{fontSize:"tiny"})),t.createElement(o.Menu,_extends({disablePortal:!0,MenuListProps:{dense:!0},PaperProps:{elevation:6}},(0,o.bindMenu)(i),{anchorEl:i.anchorEl,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},open:i.isOpen,onClose:i.close}),e.map(e=>t.createElement(o.MenuItem,{key:e.name,onClick:a=>{a.stopPropagation(),e.onClick?.(r),i.close()},sx:{color:e.color,gap:1}},e.icon&&(0,t.createElement)(e.icon,{fontSize:"inherit"})," ",e.name))))}},"./packages/packages/core/editor-variables/src/components/variables-manager/ui/variable-table-cell.tsx":function(e,a,r){r.r(a),r.d(a,{VariableTableCell:function(){return VariableTableCell}});var t=r("react"),n=r("@elementor/ui");const VariableTableCell=({children:e,isHeader:a,width:r,maxWidth:o,align:i,noPadding:s,sx:l})=>{const c={maxWidth:o??150,cursor:"initial",typography:"caption",...a&&{color:"text.primary",fontWeight:"bold"},...a&&!s&&{padding:"10px 16px"},...r&&{width:r},...l};return t.createElement(n.TableCell,{size:"small",padding:s?"none":void 0,align:i,sx:c},e)}},"./packages/packages/core/editor-variables/src/components/variables-manager/ui/variable-table-row.tsx":function(e,a,r){r.r(a),r.d(a,{VariableRow:function(){return VariableRow}});var t=r("react"),n=r("@elementor/editor-ui"),o=r("@elementor/icons"),i=r("@elementor/ui"),s=r("./packages/packages/core/editor-variables/src/hooks/use-quota-permissions.ts"),l=r("./packages/packages/core/editor-variables/src/components/fields/label-field.tsx"),c=r("./packages/packages/core/editor-variables/src/components/ui/variable-promotion-chip.tsx"),p=r("./packages/packages/core/editor-variables/src/components/variables-manager/variable-editable-cell.tsx"),u=r("./packages/packages/core/editor-variables/src/components/variables-manager/ui/variable-edit-menu.tsx"),d=r("./packages/packages/core/editor-variables/src/components/variables-manager/ui/variable-table-cell.tsx");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var r=arguments[a];for(var t in r)({}).hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},_extends.apply(null,arguments)}const b={target_name:"variables_manager",target_location:"variables_manager"},VariableRow=e=>{const{row:a,variables:r,handleOnChange:m,autoEditVariableId:v,onAutoEditComplete:g,onFieldError:k,menuActions:f,handleRowRef:y,itemProps:h,showDropIndication:E,triggerProps:_,itemStyle:C,triggerStyle:x,isDragged:T,dropPosition:V,setTriggerRef:S,isSorting:w}=e,P=(0,t.useRef)(null),I=!(0,s.useQuotaPermissions)(a.type).canEdit(),A=E&&"before"===V,R=E&&"after"===V;return t.createElement(i.TableRow,_extends({},h,{ref:h.ref,selected:T,sx:{...I&&{"& td, & th":{color:"text.disabled"}},...A&&{"& td, & th":{borderTop:"2px solid",borderTopColor:"primary.main"}},...R&&{"& 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:{...C,...x},onClick:()=>{I&&P.current?.toggle()}}),t.createElement(d.VariableTableCell,{noPadding:!0,width:10,maxWidth:10},t.createElement(i.IconButton,_extends({size:"small",ref:S},_,{disabled:w,draggable:!0}),t.createElement(o.GripVerticalIcon,{fontSize:"inherit"}))),t.createElement(d.VariableTableCell,null,t.createElement(p.VariableEditableCell,{initialValue:a.name,onChange:e=>{e===a.name||I||m({...r,[a.id]:{...r[a.id],label:e}})},prefixElement:(0,t.createElement)(a.icon,{fontSize:"inherit",color:I?"disabled":"inherit"}),editableElement:({value:e,onChange:n,onValidationChange:o,error:i})=>t.createElement(l.LabelField,{id:"variable-label-"+a.id,size:"tiny",value:e,onChange:n,onErrorChange:e=>{o?.(e),k?.(!!e)},error:i,focusOnShow:!0,selectOnShow:v===a.id,showWarningInfotip:!0,variables:r}),autoEdit:v===a.id&&!I,onRowRef:y(a.id),onAutoEditComplete:v===a.id?g:void 0,fieldType:"label",disabled:I},t.createElement(n.EllipsisWithTooltip,{title:a.name,sx:{border:"4px solid transparent"}},a.name))),t.createElement(d.VariableTableCell,null,t.createElement(p.VariableEditableCell,{initialValue:a.value,onChange:e=>{e===a.value||I||m({...r,[a.id]:{...r[a.id],value:e}})},editableElement:({value:e,onChange:n,onValidationChange:o,error:i})=>a.valueField?.({value:e,onChange:n,onPropTypeKeyChange:e=>{I||m({...r,[a.id]:{...r[a.id],type:e}})},propTypeKey:a.type,onValidationChange:e=>{o?.(e),k?.(!!e)},error:i})??t.createElement(t.Fragment,null),onRowRef:y(a.id),gap:.25,fieldType:"value",disabled:I},a.startIcon&&a.startIcon({value:a.value}),t.createElement(n.EllipsisWithTooltip,{title:a.value,sx:{border:"4px solid transparent",lineHeight:"1",pt:.25}},a.value))),t.createElement(d.VariableTableCell,{align:"right",noPadding:!0,width:16,maxWidth:16,sx:{paddingInlineEnd:1}},t.createElement(i.Stack,{role:"toolbar",direction:"row",justifyContent:"flex-end",alignItems:"center"},I&&t.createElement(c.VariablePromotionChip,{variableType:a.variableType,upgradeUrl:`https://go.elementor.com/renew-license-manager-${a.variableType}-variable`,ref:P,trackingData:b}),t.createElement(u.VariableEditMenu,{menuActions:f(a.id),disabled:w,itemId:a.id}))))}},"./packages/packages/core/editor-variables/src/components/variables-manager/variable-editable-cell.tsx":function(e,a,r){r.r(a),r.d(a,{VariableEditableCell:function(){return i}});var t=r("react"),n=r("@elementor/ui"),o=r("./packages/packages/core/editor-variables/src/components/fields/label-field.tsx");const i=t.memo(({initialValue:e,children:a,editableElement:r,onChange:i,prefixElement:s,autoEdit:l=!1,onRowRef:c,onAutoEditComplete:p,gap:u=1,fieldType:d,disabled:b=!1})=>{const[m,v]=(0,t.useState)(e),[g,k]=(0,t.useState)(!1),{labelFieldError:f,setLabelFieldError:y}=(0,o.useLabelError)(),[h,E]=(0,t.useState)(""),_=(0,t.useRef)(null),C=(0,t.useCallback)(()=>{"label"===d&&f?.message||"value"===d&&h||i(m),k(!1)},[m,i,d,f,h]);(0,t.useEffect)(()=>{c?.(_?.current)},[c]),(0,t.useEffect)(()=>{!l||g||b||(k(!0),p?.())},[l,g,p,b]);const handleDoubleClick=()=>{b||k(!0)},handleKeyDown=e=>{b||("Enter"===e.key?C():"Escape"===e.key&&k(!1)," "!==e.key||g||(e.preventDefault(),k(!0)))},x=(0,t.useCallback)(e=>{v(e)},[]),T=(0,t.useCallback)(e=>{"label"===d?y({value:m,message:e}):E(e)},[d,m,y,E]);let V;"label"===d?V=f:"value"===d&&(V={value:m,message:h});const S=r({value:m,onChange:x,onValidationChange:T,error:V});return g?t.createElement(n.ClickAwayListener,{onClickAway:C},t.createElement(n.Stack,{ref:_,direction:"row",alignItems:"center",gap:u,onDoubleClick:handleDoubleClick,onKeyDown:handleKeyDown,tabIndex:0,role:"button","aria-label":"Double click or press Space to edit"},s,S)):t.createElement(n.Stack,{ref:_,direction:"row",alignItems:"center",gap:u,onDoubleClick:handleDoubleClick,onKeyDown:handleKeyDown,tabIndex:b?-1:0,role:"button","aria-label":b?"":"Double click or press Space to edit"},s,a)})},"./packages/packages/core/editor-variables/src/components/variables-manager/variables-manager-create-menu.tsx":function(e,a,r){r.r(a),r.d(a,{SIZE:function(){return b},VariableManagerCreateMenu:function(){return VariableManagerCreateMenu},getDefaultName:function(){return getDefaultName}});var t=r("react"),n=r("@elementor/icons"),o=r("@elementor/ui"),i=r("@elementor/utils"),s=r("@wordpress/i18n"),l=r("./packages/packages/core/editor-variables/src/hooks/use-quota-permissions.ts"),c=r("./packages/packages/core/editor-variables/src/utils/tracking.ts"),p=r("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts"),u=r("./packages/packages/core/editor-variables/src/components/ui/variable-promotion-chip.tsx");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var r=arguments[a];for(var t in r)({}).hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},_extends.apply(null,arguments)}const d={target_name:"variables_manager",target_location:"variables_manager",location_l1:"create variable menu"},b="tiny",VariableManagerCreateMenu=({variables:e,onCreate:a,menuState:r})=>{const i=(0,t.useRef)(null),l=(0,p.getVariableTypes)(),c=(0,t.useMemo)(()=>Object.entries(l).filter(([,e])=>!!e.defaultValue).map(([e,a])=>({key:e,propTypeKey:a.propTypeUtil.key,variableType:a.variableType,defaultValue:a.defaultValue||"",icon:a.icon})),[l]);return t.createElement(t.Fragment,null,t.createElement(o.IconButton,_extends({},(0,o.bindTrigger)(r),{ref:i,size:b,"aria-label":(0,s.__)("Add variable","elementor")}),t.createElement(n.PlusIcon,{fontSize:b})),t.createElement(o.Menu,_extends({disablePortal:!0,MenuListProps:{dense:!0},PaperProps:{elevation:6}},(0,o.bindMenu)(r),{anchorEl:i.current,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},"data-testid":"variable-manager-create-menu"}),c.map(n=>t.createElement(MenuOption,{key:n.key,config:n,variables:e,onCreate:a,onClose:r.close}))))},MenuOption=({config:e,variables:a,onCreate:r,onClose:n})=>{const s=(0,t.useRef)(null),p=(0,l.useQuotaPermissions)(e.propTypeKey),m=(0,i.capitalize)(e.variableType),v=!p.canAdd();return t.createElement(o.MenuItem,{onClick:()=>{if(v)return void s.current?.toggle();const t=getDefaultName(a,e.variableType);r(e.key,t,e.defaultValue),(0,c.trackVariablesManagerEvent)({action:"add",varType:e.variableType}),n()},sx:{gap:1.5,cursor:"pointer"}},(0,t.createElement)(e.icon,{fontSize:b,color:v?"disabled":"action"}),t.createElement(o.Typography,{variant:"caption",color:v?"text.disabled":"text.primary"},m),v&&t.createElement(u.VariablePromotionChip,{variableType:e.variableType,upgradeUrl:`https://go.elementor.com/go-pro-manager-${e.variableType}-variable/`,ref:s,trackingData:d}))},getDefaultName=(e,a)=>{const r=new RegExp(`^${a}-(\\d+)$`,"i"),t=new Set;Object.values(e).forEach(e=>{const a=e.label.match(r);a&&t.add(parseInt(a[1],10))});let n=1;for(;t.has(n);)n++;return`${a}-${n}`}},"./packages/packages/core/editor-variables/src/components/variables-manager/variables-manager-panel.tsx":function(e,a,r){r.r(a),r.d(a,{VariablesManagerPanel:function(){return VariablesManagerPanel},panel:function(){return x},usePanelActions:function(){return T}});var t=r("react"),n=r("@elementor/editor-current-user"),o=r("@elementor/editor-panels"),i=r("@elementor/editor-ui"),s=r("@elementor/editor-v1-adapters"),l=r("@elementor/icons"),c=r("@elementor/ui"),p=r("@wordpress/i18n"),u=r("./packages/packages/core/editor-variables/src/utils/tracking.ts"),d=r("./packages/packages/core/editor-variables/src/utils/validations.ts"),b=r("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts"),m=r("./packages/packages/core/editor-variables/src/components/ui/delete-confirmation-dialog.tsx"),v=r("./packages/packages/core/editor-variables/src/components/ui/empty-state.tsx"),g=r("./packages/packages/core/editor-variables/src/components/ui/no-search-results.tsx"),k=r("./packages/packages/core/editor-variables/src/components/variables-manager/hooks/use-auto-edit.ts"),f=r("./packages/packages/core/editor-variables/src/components/variables-manager/hooks/use-error-navigation.ts"),y=r("./packages/packages/core/editor-variables/src/components/variables-manager/hooks/use-variables-manager-state.ts"),h=r("./packages/packages/core/editor-variables/src/components/variables-manager/variables-manager-create-menu.tsx"),E=r("./packages/packages/core/editor-variables/src/components/variables-manager/variables-manager-table.tsx");const _="variables-manager",C="stop-sync-variable",{panel:x,usePanelActions:T}=(0,o.__createPanel)({id:_,component:VariablesManagerPanel,allowedEditModes:["edit",_],onOpen:()=>{(0,s.changeEditMode)(_)},onClose:async()=>{(0,s.changeEditMode)("edit")},isOpenPreviousElement:!0});function VariablesManagerPanel(){const{close:e}=T(),{open:a,close:r,isOpen:s}=(0,i.useDialog)(),[_]=(0,n.useSuppressedMessage)(C),x=(0,c.usePopupState)({variant:"popover"}),{variables:V,isDirty:S,searchValue:w,isSaveDisabled:P,handleOnChange:I,createVariable:A,handleDeleteVariable:R,handleStartSync:L,handleStopSync:O,handleSave:D,isSaving:B,handleSearch:M,setIsSaving:F,setIsSaveDisabled:U}=(0,y.useVariablesManagerState)(),{autoEditVariableId:z,startAutoEdit:N,handleAutoEditComplete:j}=(0,k.useAutoEdit)(),{createNavigationCallback:G,resetNavigation:H}=(0,f.useErrorNavigation)(),[W,q]=(0,t.useState)(null),[$,K]=(0,t.useState)(null),[X,Q]=(0,t.useState)(null);usePreventUnload(S);const Z=(0,t.useCallback)((e,a,r)=>{const t=A(e,a,r);t&&N(t)},[A,N]),handleSaveClick=async()=>{try{Q(null),H();const e=await D();return(0,u.trackVariablesManagerEvent)({action:"saveChanges"}),e}catch(e){const a=(0,d.mapServerError)(e),r=a?.action?.data?.duplicatedIds;return a&&"label"===a.field&&(r&&a.action&&(a.action.callback=G(r,N,()=>{U(!1)})),Q(a),U(!0),H()),{success:!1,error:a}}finally{F(!1)}},J=(0,t.useCallback)(e=>{R(e),q(null)},[R]),Y=(0,t.useCallback)(e=>{O(e);const a=V[e];a&&(0,u.trackVariableSyncToV3)({variableLabel:a.label,action:"unsync"})},[O,V]),ee=(0,t.useCallback)(e=>{L(e);const a=V[e];a&&(0,u.trackVariableSyncToV3)({variableLabel:a.label,action:"sync"})},[L,V]),ae=(0,t.useCallback)(e=>{_?Y(e):K(e)},[_,Y]),re=(0,t.useCallback)(e=>{const a=V[e];if(!a)return[];return[...(0,b.getMenuActionsForVariable)(a.type,{variable:a,variableId:e,handlers:{onStartSync:ee,onStopSync:ae}}),{name:(0,p.__)("Delete","elementor"),icon:l.TrashIcon,color:"error.main",onClick:e=>{const a=V[e];if(a){q({id:e,label:a.label});const r=(0,b.getVariableType)(a.type);(0,u.trackVariablesManagerEvent)({action:"delete",varType:r?.variableType})}}}]},[V,ee,ae]),te=Object.keys(V).length>0;return t.createElement(i.ThemeProvider,null,t.createElement(o.Panel,null,t.createElement(o.PanelHeader,{sx:{height:"unset"}},t.createElement(c.Stack,{width:"100%",direction:"column",alignItems:"center"},t.createElement(c.Stack,{p:1,pl:2,width:"100%",direction:"row",alignItems:"center"},t.createElement(c.Stack,{width:"100%",direction:"row",gap:1},t.createElement(o.PanelHeaderTitle,{sx:{display:"flex",alignItems:"center",gap:.5}},t.createElement(l.ColorFilterIcon,{fontSize:"inherit"}),(0,p.__)("Variables Manager","elementor"))),t.createElement(c.Stack,{direction:"row",gap:.5,alignItems:"center"},t.createElement(h.VariableManagerCreateMenu,{onCreate:Z,variables:V,menuState:x}),t.createElement(c.CloseButton,{"aria-label":"Close",slotProps:{icon:{fontSize:h.SIZE}},onClick:()=>{S?a():e()}}))),t.createElement(c.Stack,{width:"100%",direction:"row",gap:1},t.createElement(i.SearchField,{sx:{display:"flex",flex:1},placeholder:(0,p.__)("Search","elementor"),value:w,onSearch:M})),t.createElement(c.Divider,{sx:{width:"100%"}}))),t.createElement(o.PanelBody,{sx:{display:"flex",flexDirection:"column",height:"100%"}},te&&t.createElement(E.VariablesManagerTable,{menuActions:re,variables:V,onChange:I,autoEditVariableId:z,onAutoEditComplete:j,onFieldError:U}),!te&&w&&t.createElement(g.NoSearchResults,{searchValue:w,onClear:()=>M(""),icon:t.createElement(l.ColorFilterIcon,{fontSize:"large"})}),!te&&!w&&t.createElement(v.EmptyState,{title:(0,p.__)("Create your first variable","elementor"),message:(0,p.__)("Variables are saved attributes that you can apply anywhere on your site.","elementor"),icon:t.createElement(l.ColorFilterIcon,{fontSize:"large"}),onAdd:x.open})),t.createElement(o.PanelFooter,null,t.createElement(c.Infotip,{placement:"right",open:!!X,content:X?t.createElement(c.Alert,{severity:X.severity??"error",action:X.action?.label?t.createElement(c.AlertAction,{onClick:X.action.callback},X.action.label):void 0,onClose:X.action?.label?void 0:()=>{Q(null),U(!1)},icon:X.IconComponent?t.createElement(X.IconComponent,null):t.createElement(l.AlertTriangleFilledIcon,null)},t.createElement(c.AlertTitle,null,X.message),X.action?.message):null,arrow:!1,slotProps:{popper:{modifiers:[{name:"offset",options:{offset:[-10,10]}}]}}},t.createElement(c.Button,{fullWidth:!0,size:"small",color:"global",variant:"contained",disabled:P||!S||B,onClick:handleSaveClick,loading:B},(0,p.__)("Save changes","elementor"))))),W&&t.createElement(m.DeleteConfirmationDialog,{open:!0,label:W.label,onConfirm:()=>J(W.id),closeDialog:()=>q(null)}),$&&t.createElement(StopSyncConfirmationDialog,{open:!0,onClose:()=>K(null),onConfirm:()=>{Y($),K(null)}}),s&&t.createElement(i.SaveChangesDialog,null,t.createElement(i.SaveChangesDialog.Title,{onClose:r},(0,p.__)("You have unsaved changes","elementor")),t.createElement(i.SaveChangesDialog.Content,null,t.createElement(i.SaveChangesDialog.ContentText,null,(0,p.__)("To avoid losing your updates, save your changes before leaving.","elementor"))),t.createElement(i.SaveChangesDialog.Actions,{actions:{discard:{label:(0,p.__)("Discard","elementor"),action:()=>{r(),e()}},confirm:{label:(0,p.__)("Save","elementor"),action:async()=>{const a=await handleSaveClick();r(),a?.success&&e()}}}})))}const usePreventUnload=e=>{(0,t.useEffect)(()=>{const handleBeforeUnload=a=>{e&&a.preventDefault()};return window.addEventListener("beforeunload",handleBeforeUnload),()=>{window.removeEventListener("beforeunload",handleBeforeUnload)}},[e])},StopSyncConfirmationDialog=({open:e,onClose:a,onConfirm:r})=>{const[,o]=(0,n.useSuppressedMessage)(C);return t.createElement(i.ConfirmationDialog,{open:e,onClose:a},t.createElement(i.ConfirmationDialog.Title,{icon:l.ColorFilterIcon,iconColor:"primary"},(0,p.__)("Stop syncing variable color","elementor")),t.createElement(i.ConfirmationDialog.Content,null,t.createElement(i.ConfirmationDialog.ContentText,null,(0,p.__)("This will disconnect the variable color from Global Colors. Existing uses on your site will automatically switch to a default color.","elementor"))),t.createElement(i.ConfirmationDialog.Actions,{onClose:a,onConfirm:r,cancelLabel:(0,p.__)("Cancel","elementor"),confirmLabel:(0,p.__)("Got it","elementor"),color:"primary",onSuppressMessage:o,suppressLabel:(0,p.__)("Don't show again","elementor")}))}},"./packages/packages/core/editor-variables/src/components/variables-manager/variables-manager-table.tsx":function(e,a,r){r.r(a),r.d(a,{VariablesManagerTable:function(){return VariablesManagerTable}});var t=r("react"),n=r("@elementor/ui"),o=r("@wordpress/i18n"),i=r("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts"),s=r("./packages/packages/core/editor-variables/src/components/variables-manager/ui/variable-table-cell.tsx"),l=r("./packages/packages/core/editor-variables/src/components/variables-manager/ui/variable-table-row.tsx");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var r=arguments[a];for(var t in r)({}).hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},_extends.apply(null,arguments)}const VariablesManagerTable=({menuActions:e,variables:a,onChange:r,autoEditVariableId:c,onAutoEditComplete:p,onFieldError:u})=>{const d=(0,t.useRef)(null),b=(0,t.useRef)(new Map);(0,t.useEffect)(()=>{if(c&&d.current){const e=b.current.get(c);e&&setTimeout(()=>{e.scrollIntoView({behavior:"smooth",block:"center",inline:"nearest"})},100)}},[c]);const handleRowRef=e=>a=>{a?b.current.set(e,a):b.current.delete(e)},m=Object.keys(a).sort(function sortVariablesOrder(e){return(a,r)=>(e[a]?.order??Number.MAX_SAFE_INTEGER)-(e[r]?.order??Number.MAX_SAFE_INTEGER)}(a)),v=m.map(e=>{const r=a[e],t=(0,i.getVariableType)(r.type);return t?{id:e,type:r.type,name:r.label,value:r.value,...t}:null}).filter(Boolean),g={minWidth:250,tableLayout:"fixed"};return t.createElement(n.TableContainer,{ref:d,sx:{overflow:"initial"}},t.createElement(n.Table,{sx:g,"aria-label":"Variables manager list with drag and drop reordering",stickyHeader:!0},t.createElement(n.TableHead,null,t.createElement(n.TableRow,null,t.createElement(s.VariableTableCell,{isHeader:!0,noPadding:!0,width:10,maxWidth:10}),t.createElement(s.VariableTableCell,{isHeader:!0},(0,o.__)("Name","elementor")),t.createElement(s.VariableTableCell,{isHeader:!0},(0,o.__)("Value","elementor")),t.createElement(s.VariableTableCell,{isHeader:!0,noPadding:!0,width:16,maxWidth:16}))),t.createElement(n.TableBody,null,t.createElement(n.UnstableSortableProvider,{value:m,onChange:e=>{const t={...a};e.forEach((e,a)=>{const r=t[e];r&&(t[e]=Object.assign({},r,{order:a+1}))}),r(t)},variant:"static",restrictAxis:!0,dragOverlay:({children:e,...a})=>t.createElement(n.Table,_extends({sx:g},a),t.createElement(n.TableBody,null,e))},v.map(o=>t.createElement(n.UnstableSortableItem,{key:o.id,id:o.id,render:n=>t.createElement(l.VariableRow,_extends({},n,{row:o,variables:a,handleOnChange:r,autoEditVariableId:c,onAutoEditComplete:p,onFieldError:u,menuActions:e,handleRowRef:handleRowRef}))}))))))}},"./packages/packages/core/editor-variables/src/components/variables-repeater-item-slot.tsx":function(e,a,r){r.r(a),r.d(a,{BackgroundRepeaterColorIndicator:function(){return BackgroundRepeaterColorIndicator},BackgroundRepeaterLabel:function(){return BackgroundRepeaterLabel},BoxShadowRepeaterColorIndicator:function(){return BoxShadowRepeaterColorIndicator}});var t=r("react"),n=r("./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts"),o=r("./packages/packages/core/editor-variables/src/components/ui/color-indicator.tsx");const useColorVariable=e=>{const a=e?.value?.color?.value;return(0,n.useVariable)(a||"")},BackgroundRepeaterColorIndicator=({value:e})=>{const a=useColorVariable(e);return t.createElement(o.ColorIndicator,{component:"span",size:"inherit",value:a?.value})},BackgroundRepeaterLabel=({value:e})=>{const a=useColorVariable(e);return t.createElement("span",null,a?.label)},BoxShadowRepeaterColorIndicator=({value:e})=>{const a=useColorVariable(e);return t.createElement(o.ColorIndicator,{component:"span",size:"inherit",value:a?.value})}},"./packages/packages/core/editor-variables/src/components/variables-selection.tsx":function(e,a,r){r.r(a),r.d(a,{VariablesSelection:function(){return VariablesSelection}});var t=r("react"),n=r("@elementor/editor-controls"),o=r("@elementor/editor-ui"),i=r("@elementor/icons"),s=r("@elementor/ui"),l=r("@wordpress/i18n"),c=r("./packages/packages/core/editor-variables/src/context/variable-type-context.tsx"),p=r("./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts"),u=r("./packages/packages/core/editor-variables/src/hooks/use-variable-bound-prop.ts"),d=r("./packages/packages/core/editor-variables/src/utils/tracking.ts"),b=r("./packages/packages/core/editor-variables/src/components/ui/empty-state.tsx"),m=r("./packages/packages/core/editor-variables/src/components/ui/menu-item-content.tsx"),v=r("./packages/packages/core/editor-variables/src/components/ui/no-search-results.tsx"),g=r("./packages/packages/core/editor-variables/src/components/ui/styled-menu-list.tsx");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var r=arguments[a];for(var t in r)({}).hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},_extends.apply(null,arguments)}const k="tiny",f=(0,l.__)("Create variable","elementor"),y=(0,l.__)("Variables Manager","elementor"),getProUpgradeUrl=e=>`https://go.elementor.com/renew-license-panel-${e}-variable`,VariablesSelection=({closePopover:e,onAdd:a,onEdit:r,onSettings:h,disabled:E=!1})=>{const{icon:_,startIcon:C,variableType:x,propTypeUtil:T,emptyState:V}=(0,c.useVariableType)(),{value:S,setValue:w,path:P}=(0,u.useVariableBoundProp)(),[I,A]=(0,t.useState)(""),{list:R,hasMatches:L,isSourceNotEmpty:O,hasNoCompatibleVariables:D}=(0,p.useFilteredVariables)(I,T.key),onAddAndTrack=()=>{a?.(),(0,d.trackVariableEvent)({varType:x,controlPath:P.join("."),action:"add"})},B=[];if(a&&B.push(t.createElement(s.Tooltip,{key:"add",placement:"top",title:f},t.createElement("span",null,t.createElement(s.IconButton,{id:"add-variable-button",size:k,onClick:onAddAndTrack,"aria-label":f,disabled:E},t.createElement(i.PlusIcon,{fontSize:k}))))),h){const handleOpenManager=()=>{h(),(0,d.trackVariablesManagerEvent)({action:"openManager",varType:x,controlPath:P.join(".")})};B.push(t.createElement(s.Tooltip,{key:"settings",placement:"top",title:y},t.createElement(s.IconButton,{id:"variables-manager-button",size:k,onClick:handleOpenManager,"aria-label":y},t.createElement(i.SettingsIcon,{fontSize:k}))))}const M=C||(()=>t.createElement(_,{fontSize:k})),F=R.map(({value:e,label:a,key:n})=>({type:"item",value:n,label:a,icon:t.createElement(M,{value:e}),secondaryText:e,onEdit:r?()=>r?.(n):void 0}));return(0,t.useEffect)(()=>{E&&(0,n.trackViewPromotion)({target_name:"variables_popover",target_location:"widget_panel",location_l1:"variables_list"})},[E]),t.createElement(o.SectionPopoverBody,null,t.createElement(o.PopoverHeader,{title:(0,l.__)("Variables","elementor"),icon:t.createElement(i.ColorFilterIcon,{fontSize:k}),onClose:e,actions:B}),O&&t.createElement(o.SearchField,{value:I,onSearch:e=>{A(e)},placeholder:(0,l.__)("Search","elementor")}),t.createElement(s.Divider,null),O&&L&&t.createElement(t.Fragment,null,t.createElement(o.PopoverMenuList,{items:F,onSelect:E?()=>{}:a=>{w(a),(0,d.trackVariableEvent)({varType:x,controlPath:P.join("."),action:"connect"}),e()},onClose:()=>{},selectedValue:S,"data-testid":`${x}-variables-list`,menuListTemplate:e=>t.createElement(g.VariablesStyledMenuList,_extends({},e,{disabled:E})),menuItemContentTemplate:e=>t.createElement(m.MenuItemContent,{item:e,disabled:E})}),E&&t.createElement(o.PromotionAlert,{message:(0,l.sprintf)((0,l.__)("Upgrade to continue creating and editing %s variables.","elementor"),x),upgradeUrl:getProUpgradeUrl(x),onCtaClick:()=>(0,n.trackUpgradePromotionClick)({target_name:"variables_popover",location_l1:"variables_list"})})),!L&&O&&t.createElement(v.NoSearchResults,{searchValue:I,onClear:()=>{A("")},icon:t.createElement(_,{fontSize:"large"})}),E&&!O&&t.createElement(b.EmptyState,{title:(0,l.sprintf)((0,l.__)("No %s variables yet","elementor"),x),message:(0,l.sprintf)((0,l.__)("Upgrade to create %s variables and maintain consistent element sizing.","elementor"),x),icon:t.createElement(_,{fontSize:"large"})},V),!O&&!D&&!E&&t.createElement(b.EmptyState,{title:(0,l.sprintf)((0,l.__)("Create your first %s variable","elementor"),x),message:(0,l.__)("Variables are saved attributes that you can apply anywhere on your site.","elementor"),icon:t.createElement(_,{fontSize:"large"}),onAdd:a}),D&&!E&&t.createElement(b.EmptyState,{title:(0,l.__)("No compatible variables","elementor"),message:(0,l.__)("Looks like none of your variables work with this control. Create a new variable to use it here.","elementor"),icon:t.createElement(_,{fontSize:"large"}),onAdd:a}))}},"./packages/packages/core/editor-variables/src/context/variable-selection-popover.context.tsx":function(e,a,r){r.r(a),r.d(a,{PopoverContentRefContextProvider:function(){return PopoverContentRefContextProvider},usePopoverContentRef:function(){return usePopoverContentRef}});var t=r("react"),n=r("@elementor/ui");const o=(0,t.createContext)(null),PopoverContentRefContextProvider=({children:e})=>{const[a,r]=(0,t.useState)(null);return t.createElement(o.Provider,{value:a},t.createElement(n.Box,{ref:r},e))},usePopoverContentRef=()=>(0,t.useContext)(o)},"./packages/packages/core/editor-variables/src/context/variable-type-context.tsx":function(e,a,r){r.r(a),r.d(a,{VariableTypeProvider:function(){return VariableTypeProvider},useVariableType:function(){return useVariableType}});var t=r("react"),n=r("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");const o=(0,t.createContext)(null);function VariableTypeProvider({children:e,propTypeKey:a}){return t.createElement(o.Provider,{value:a},e)}function useVariableType(){const e=(0,t.useContext)(o);if(null===e)throw new Error("useVariableType must be used within a VariableTypeProvider");return(0,n.getVariableType)(e)}},"./packages/packages/core/editor-variables/src/controls/variable-control.tsx":function(e,a,r){r.r(a),r.d(a,{VariableControl:function(){return VariableControl}});var t=r("react"),n=r("@elementor/editor-controls"),o=r("./packages/packages/core/editor-variables/src/components/ui/variable/assigned-variable.tsx"),i=r("./packages/packages/core/editor-variables/src/components/ui/variable/deleted-variable.tsx"),s=r("./packages/packages/core/editor-variables/src/components/ui/variable/mismatch-variable.tsx"),l=r("./packages/packages/core/editor-variables/src/components/ui/variable/missing-variable.tsx"),c=r("./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts"),p=r("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");const VariableControl=()=>{const e=(0,n.useBoundProp)(),a=e.value??e.placeholder,r=(0,c.useVariable)(a?.value);if(!r)return t.createElement(l.MissingVariable,null);const{$$type:u}=a;if(r?.deleted)return t.createElement(i.DeletedVariable,{variable:r,propTypeKey:u});const{isCompatible:d}=(0,p.getVariableType)(r.type);return d&&!d(e?.propType,r)?t.createElement(s.MismatchVariable,{variable:r}):t.createElement(o.AssignedVariable,{variable:r,propTypeKey:u})}},"./packages/packages/core/editor-variables/src/create-style-variables-repository.ts":function(e,a,r){r.r(a),r.d(a,{createStyleVariablesRepository:function(){return createStyleVariablesRepository}});var t=r("@elementor/editor-v1-adapters"),n=r("./packages/packages/core/editor-variables/src/prop-types/font-variable-prop-type.ts");const createStyleVariablesRepository=()=>{const e={};let a;const shouldUpdate=(a,r)=>!(a in e)||(e[a].label!==r.label||(e[a].value!==r.value||(!(e[a]?.deleted||!r?.deleted)||!(!e[a]?.deleted||r?.deleted)))),fontEnqueue=e=>{if(e)try{(0,t.enqueueFont)(e)}catch{}};return{subscribe:e=>(a=e,()=>{a=()=>{}}),update:r=>{(a=>{let r=!1;for(const[t,o]of Object.entries(a))shouldUpdate(t,o)&&(e[t]=o,o.type===n.fontVariablePropTypeUtil.key&&fontEnqueue(o.value),r=!0);return r})(r)&&"function"==typeof a&&a({...e})}}}},"./packages/packages/core/editor-variables/src/hooks/use-initial-value.ts":function(e,a,r){r.r(a),r.d(a,{useInitialValue:function(){return useInitialValue}});var t=r("@elementor/editor-controls"),n=r("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts"),o=r("./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts");const useInitialValue=()=>{const{value:e}=(0,t.useBoundProp)(),a=(0,n.hasVariableType)(e?.$$type)&&Boolean(e?.value),r=(0,o.useVariable)(a?e.value:"");return a?r?r.value:"":e?.value??""}},"./packages/packages/core/editor-variables/src/hooks/use-permissions.ts":function(e,a,r){r.r(a),r.d(a,{usePermissions:function(){return usePermissions}});var t=r("@elementor/editor-current-user");const usePermissions=()=>{const{canUser:e,isAdmin:a}=(0,t.useCurrentUserCapabilities)();return{canAssign:()=>e("edit_posts"),canUnlink:()=>e("edit_posts"),canAdd:()=>a,canDelete:()=>a,canEdit:()=>a,canRestore:()=>a,canManageSettings:()=>a}}},"./packages/packages/core/editor-variables/src/hooks/use-prop-variable-action.tsx":function(e,a,r){r.r(a),r.d(a,{usePropVariableAction:function(){return usePropVariableAction}});var t=r("react"),n=r("@elementor/editor-controls"),o=r("@elementor/icons"),i=r("@wordpress/i18n"),s=r("./packages/packages/core/editor-variables/src/components/variable-selection-popover.tsx"),l=r("./packages/packages/core/editor-variables/src/utils/tracking.ts"),c=r("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");const usePropVariableAction=()=>{const{propType:e,path:a}=(0,n.useBoundProp)(),r=resolveVariableFromPropType(e);return{visible:Boolean(r),icon:o.ColorFilterIcon,title:(0,i.__)("Variables","elementor"),content:({close:e})=>r?(trackOpenVariablePopover(a,r.variableType),t.createElement(s.VariableSelectionPopover,{closePopover:e,propTypeKey:r.propTypeUtil.key})):null}},resolveVariableFromPropType=e=>{if("union"===e.kind)for(const a of Object.keys(e.prop_types)){const e=(0,c.getVariableType)(a);if(e)return e}},trackOpenVariablePopover=(e,a)=>{(0,l.trackVariableEvent)({varType:a,controlPath:e.join("."),action:"open"})}},"./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts":function(e,a,r){r.r(a),r.d(a,{createVariable:function(){return createVariable},deleteVariable:function(){return deleteVariable},getVariables:function(){return getVariables},hasVariable:function(){return hasVariable},restoreVariable:function(){return restoreVariable},updateVariable:function(){return updateVariable},useFilteredVariables:function(){return useFilteredVariables},useVariable:function(){return useVariable}});var t=r("react"),n=r("@elementor/editor-controls"),o=r("./packages/packages/core/editor-variables/src/context/variable-type-context.tsx"),i=r("./packages/packages/core/editor-variables/src/service.ts"),s=r("./packages/packages/core/editor-variables/src/utils/filter-by-search.ts"),l=r("./packages/packages/core/editor-variables/src/utils/variables-to-list.ts"),c=r("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");const getVariables=(e=!0)=>{const a=i.service.variables();return e?a:Object.fromEntries(Object.entries(a).filter(([,e])=>!e.deleted))},hasVariable=e=>void 0!==getVariables()[e],useVariable=e=>{const a=getVariables();return a?.[e]?{...a[e],key:e}:null},useFilteredVariables=(e,a)=>{const r=usePropVariables(a),t=useVariableSelectionFilter(r),n=(0,s.filterBySearch)(t,e);return{list:n.sort((e,a)=>(e.order??Number.MAX_SAFE_INTEGER)-(a.order??Number.MAX_SAFE_INTEGER)),hasMatches:n.length>0,isSourceNotEmpty:t.length>0,hasNoCompatibleVariables:r.length>0&&0===t.length}},useVariableSelectionFilter=e=>{const{selectionFilter:a}=(0,o.useVariableType)(),{propType:r}=(0,n.useBoundProp)();return a?a(e,r):e},usePropVariables=e=>(0,t.useMemo)(()=>normalizeVariables(e),[e]),normalizeVariables=e=>{const a=getVariables(!1),r=(e=>{const a=[],r=(0,c.getVariableTypes)(),t=(0,c.getVariableType)(e);return Object.entries(r).forEach(([e,r])=>{t.variableType===r.variableType&&a.push(e)}),a})(e);return(0,l.variablesToList)(a).filter(e=>r.includes(e.type)).map(l.toNormalizedVariable)},extractId=({id:e})=>e,createVariable=e=>i.service.create(e).then(extractId),updateVariable=(e,{value:a,label:r,type:t})=>i.service.update(e,{value:a,label:r,type:t}).then(extractId),deleteVariable=e=>i.service.delete(e).then(extractId),restoreVariable=(e,a,r,t)=>i.service.restore(e,a,r,t).then(extractId)},"./packages/packages/core/editor-variables/src/hooks/use-quota-permissions.ts":function(e,a,r){r.r(a),r.d(a,{useQuotaPermissions:function(){return useQuotaPermissions}});const useQuotaPermissions=e=>{const a={...window.ElementorVariablesQuotaConfig??{},...window.ElementorVariablesQuotaConfigExtended??{}},r=void 0===a[e]&&window.elementorPro,t=a[e]||0,n=r||t>0;return{canAdd:()=>n,canEdit:()=>n}}},"./packages/packages/core/editor-variables/src/hooks/use-variable-bound-prop.ts":function(e,a,r){r.r(a),r.d(a,{resolveBoundPropAndSetValue:function(){return resolveBoundPropAndSetValue},useVariableBoundProp:function(){return useVariableBoundProp}});var t=r("@elementor/editor-controls"),n=r("@elementor/editor-props"),o=r("./packages/packages/core/editor-variables/src/context/variable-type-context.tsx");const useVariableBoundProp=()=>{const{propTypeUtil:e}=(0,o.useVariableType)(),a=(0,t.useBoundProp)(e);return{...a,setVariableValue:e=>resolveBoundPropAndSetValue(e,a),variableId:a.value??a.placeholder}},resolveBoundPropAndSetValue=(e,a)=>{const r=unwrapValue(a.value),t=unwrapValue(a.placeholder),n=unwrapValue(e);return r||t!==n?a.setValue(e):a.setValue(null)},unwrapValue=e=>(0,n.isTransformable)(e)?e.value:e},"./packages/packages/core/editor-variables/src/init.ts":function(e,a,r){r.r(a),r.d(a,{init:function(){return init}});var t=r("@elementor/editor"),n=r("@elementor/editor-controls"),o=r("@elementor/editor-mcp"),i=r("@elementor/editor-panels"),s=r("@elementor/editor-props"),l=r("@elementor/menus"),c=r("./packages/packages/core/editor-variables/src/components/global-styles-import-listener.tsx"),p=r("./packages/packages/core/editor-variables/src/components/open-panel-from-event.tsx"),u=r("./packages/packages/core/editor-variables/src/components/open-panel-from-url.tsx"),d=r("./packages/packages/core/editor-variables/src/components/variables-manager/variables-manager-panel.tsx"),b=r("./packages/packages/core/editor-variables/src/controls/variable-control.tsx"),m=r("./packages/packages/core/editor-variables/src/hooks/use-prop-variable-action.tsx"),v=r("./packages/packages/core/editor-variables/src/mcp/index.ts"),g=r("./packages/packages/core/editor-variables/src/register-variable-types.tsx"),k=r("./packages/packages/core/editor-variables/src/renderers/style-variables-renderer.tsx"),f=r("./packages/packages/core/editor-variables/src/repeater-injections.ts"),y=r("./packages/packages/core/editor-variables/src/service.ts"),h=r("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");const{registerPopoverAction:E}=l.controlActionsMenu;function init(){(0,g.registerVariableTypes)(),(0,f.registerRepeaterInjections)(),(0,n.registerControlReplacement)({component:b.VariableControl,condition:({value:e,placeholder:a})=>!!hasVariableAssigned(e)||!e&&hasVariableAssigned(a)}),E({id:"variables",priority:40,useProps:m.usePropVariableAction}),y.service.init().then(()=>{(0,v.initMcp)((0,o.getMCPByDomain)("variables"),(0,o.getMCPByDomain)("canvas"))}),(0,t.injectIntoTop)({id:"canvas-style-variables-render",component:k.StyleVariablesRenderer}),(0,t.injectIntoLogic)({id:"variables-import-listener",component:c.GlobalStylesImportListener}),(0,t.injectIntoLogic)({id:"variables-open-panel-from-url",component:u.OpenPanelFromUrl}),(0,t.injectIntoLogic)({id:"variables-open-panel-from-event",component:p.OpenPanelFromEvent}),(0,i.__registerPanel)(d.panel)}function hasVariableAssigned(e){return!!(0,s.isTransformable)(e)&&(0,h.hasVariableType)(e.$$type)}},"./packages/packages/core/editor-variables/src/mcp/index.ts":function(e,a,r){r.r(a),r.d(a,{initMcp:function(){return initMcp}});var t=r("./packages/packages/core/editor-variables/src/mcp/manage-variable-tool.ts"),n=r("./packages/packages/core/editor-variables/src/mcp/variables-resource.ts");function initMcp(e,a){const{setMCPDescription:r}=e;r("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"),(0,t.initManageVariableTool)(e),(0,n.initVariablesResource)(e,a)}},"./packages/packages/core/editor-variables/src/mcp/manage-variable-tool.ts":function(e,a,r){r.r(a),r.d(a,{initManageVariableTool:function(){return initManageVariableTool}});var t=r("@elementor/schema"),n=r("./packages/packages/core/editor-variables/src/service.ts"),o=r("./packages/packages/core/editor-variables/src/mcp/variables-resource.ts");const initManageVariableTool=e=>{const{addTool:a}=e;a({name:"manage-global-variable",schema:{action:t.z.enum(["create","update","delete"]).describe("Operation to perform"),id:t.z.string().optional().describe("Variable id (required for update/delete). Get from list-global-variables."),type:t.z.string().optional().describe('Variable type: "global-color-variable" or "global-font-variable" (required for create)'),label:t.z.string().optional().describe("Variable label (required for create/update)"),value:t.z.string().optional().describe("Variable value (required for create/update)")},outputSchema:{status:t.z.enum(["ok"]).describe("Operation status"),message:t.z.string().optional().describe("Error details if status is error")},modelPreferences:{intelligencePriority:.75,speedPriority:.75},requiredResources:[{uri:o.GLOBAL_VARIABLES_URI,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 a=function getServiceActions(e){return{create({type:a,label:r,value:t}){if(!a||!r||!t)throw new Error("Create requires type, label, and value");return e.create({type:a,label:r,value:t})},update({id:a,label:r,value:t}){if(!a||!r||!t)throw new Error("Update requires id, label, and value");return e.update(a,{label:r,value:t})},delete({id:a}){if(!a)throw new Error("delete requires id");return e.delete(a)}}}(n.service)[e.action];if(a)return await a(e),{status:"ok"};throw new Error(`Unknown action ${e.action}`)},isDestructive:!0})}},"./packages/packages/core/editor-variables/src/mcp/variables-resource.ts":function(e,a,r){r.r(a),r.d(a,{GLOBAL_VARIABLES_URI:function(){return n},initVariablesResource:function(){return initVariablesResource}});var t=r("./packages/packages/core/editor-variables/src/service.ts");const n="elementor://global-variables",initVariablesResource=(e,a)=>{[a,e].forEach(e=>{const{resource:a,sendResourceUpdated:r}=e;a("global-variables",n,{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(t.service.variables()).forEach(([a,r])=>{r.deleted||(e[a]=r)}),{contents:[{uri:n,text:JSON.stringify(e)}]}}),window.addEventListener("variables:updated",()=>{r({uri:n})})})}},"./packages/packages/core/editor-variables/src/prop-types/color-variable-prop-type.ts":function(e,a,r){r.r(a),r.d(a,{colorVariablePropTypeUtil:function(){return o}});var t=r("@elementor/editor-props"),n=r("@elementor/schema");const o=(0,t.createPropUtils)("global-color-variable",n.z.string())},"./packages/packages/core/editor-variables/src/prop-types/font-variable-prop-type.ts":function(e,a,r){r.r(a),r.d(a,{fontVariablePropTypeUtil:function(){return o}});var t=r("@elementor/editor-props"),n=r("@elementor/schema");const o=(0,t.createPropUtils)("global-font-variable",n.z.string())},"./packages/packages/core/editor-variables/src/prop-types/size-variable-prop-type.ts":function(e,a,r){r.r(a),r.d(a,{sizeVariablePropTypeUtil:function(){return o}});var t=r("@elementor/editor-props"),n=r("@elementor/schema");const o=(0,t.createPropUtils)("global-size-variable",n.z.string())},"./packages/packages/core/editor-variables/src/register-variable-types.tsx":function(e,a,r){r.r(a),r.d(a,{registerVariableTypes:function(){return registerVariableTypes}});var t=r("react"),n=r("@elementor/editor-controls"),o=r("@elementor/editor-props"),i=r("@elementor/editor-ui"),s=r("@elementor/icons"),l=r("@wordpress/i18n"),c=r("./packages/packages/core/editor-variables/src/components/fields/color-field.tsx"),p=r("./packages/packages/core/editor-variables/src/components/fields/font-field.tsx"),u=r("./packages/packages/core/editor-variables/src/components/ui/color-indicator.tsx"),d=r("./packages/packages/core/editor-variables/src/prop-types/color-variable-prop-type.ts"),b=r("./packages/packages/core/editor-variables/src/prop-types/font-variable-prop-type.ts"),m=r("./packages/packages/core/editor-variables/src/prop-types/size-variable-prop-type.ts"),v=r("./packages/packages/core/editor-variables/src/transformers/empty-transformer.tsx"),g=r("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");function registerVariableTypes(){(0,g.registerVariableType)({key:d.colorVariablePropTypeUtil.key,valueField:c.ColorField,icon:s.BrushIcon,propTypeUtil:d.colorVariablePropTypeUtil,fallbackPropTypeUtil:o.colorPropTypeUtil,variableType:"color",startIcon:({value:e})=>t.createElement(u.ColorIndicator,{size:"inherit",component:"span",value:e}),defaultValue:"#ffffff",menuActionsFactory:({variable:e,variableId:a,handlers:r})=>{const t=[];return e.sync_to_v3?t.push({name:(0,l.__)("Stop syncing to Global Colors","elementor"),icon:s.RefreshOffIcon,color:"text.primary",onClick:()=>r.onStopSync(a)}):t.push({name:(0,l.__)("Sync to Global Colors","elementor"),icon:s.RefreshIcon,color:"text.primary",onClick:()=>r.onStartSync(a)}),t}}),(0,g.registerVariableType)({key:b.fontVariablePropTypeUtil.key,valueField:p.FontField,icon:s.TextIcon,propTypeUtil:b.fontVariablePropTypeUtil,fallbackPropTypeUtil:o.stringPropTypeUtil,variableType:"font",defaultValue:"Roboto"});const e={isActive:!1,icon:s.ExpandDiagonalIcon,propTypeUtil:m.sizeVariablePropTypeUtil,fallbackPropTypeUtil:o.sizePropTypeUtil,styleTransformer:v.EmptyTransformer,variableType:"size",selectionFilter:()=>[],emptyState:t.createElement(i.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"})})};(0,g.registerVariableType)({...e,key:m.sizeVariablePropTypeUtil.key,defaultValue:"0px"}),(0,g.registerVariableType)({...e,key:"global-custom-size-variable"})}},"./packages/packages/core/editor-variables/src/renderers/style-variables-renderer.tsx":function(e,a,r){r.r(a),r.d(a,{StyleVariablesRenderer:function(){return StyleVariablesRenderer}});var t=r("react"),n=r("@elementor/editor-v1-adapters"),o=r("@elementor/ui"),i=r("./packages/packages/core/editor-variables/src/style-variables-repository.ts");const s=":root";function StyleVariablesRenderer(){const e=function usePortalContainer(){return(0,n.__privateUseListenTo)((0,n.commandEndEvent)("editor/documents/attach-preview"),()=>(0,n.getCanvasIframeDocument)()?.head)}(),a=function useStyleVariables(){const[e,a]=(0,t.useState)({});return(0,t.useEffect)(()=>{const e=i.styleVariablesRepository.subscribe(a);return()=>{e()}},[]),e}(),r=Object.keys(a).length>0;if(!e||!r)return null;const l=function convertToCssVariables(e){return Object.entries(e).map(([e,a])=>function cssVariableDeclaration(e,a){const r=a?.deleted?e:a.label,t=a.value;return`--${r}:${t};`}(e,a)).join("")}(a),c=`${s}{${l}}`;return t.createElement(o.Portal,{container:e},t.createElement("style",{"data-e-style-id":"e-variables",key:c},c))}},"./packages/packages/core/editor-variables/src/repeater-injections.ts":function(e,a,r){r.r(a),r.d(a,{registerRepeaterInjections:function(){return registerRepeaterInjections}});var t=r("@elementor/editor-controls"),n=r("@elementor/editor-props"),o=r("./packages/packages/core/editor-variables/src/components/variables-repeater-item-slot.tsx"),i=r("./packages/packages/core/editor-variables/src/prop-types/color-variable-prop-type.ts");function registerRepeaterInjections(){(0,t.injectIntoRepeaterItemIcon)({id:"color-variables-background-icon",component:o.BackgroundRepeaterColorIndicator,condition:({value:e})=>hasAssignedColorVariable(n.backgroundColorOverlayPropTypeUtil.extract(e)?.color)}),(0,t.injectIntoRepeaterItemIcon)({id:"color-variables-icon",component:o.BoxShadowRepeaterColorIndicator,condition:({value:e})=>hasAssignedColorVariable(n.shadowPropTypeUtil.extract(e)?.color)}),(0,t.injectIntoRepeaterItemLabel)({id:"color-variables-label",component:o.BackgroundRepeaterLabel,condition:({value:e})=>hasAssignedColorVariable(n.backgroundColorOverlayPropTypeUtil.extract(e)?.color)})}const hasAssignedColorVariable=e=>!!i.colorVariablePropTypeUtil.isValid(e)},"./packages/packages/core/editor-variables/src/service.ts":function(e,a,r){r.r(a),r.d(a,{service:function(){return c}});var t=r("@wordpress/i18n"),n=r("./packages/packages/core/editor-variables/src/api.ts"),o=r("./packages/packages/core/editor-variables/src/batch-operations.ts"),i=r("./packages/packages/core/editor-variables/src/storage.ts"),s=r("./packages/packages/core/editor-variables/src/style-variables-repository.ts");const l=new i.Storage,c={variables:()=>l.load(),findIdByLabel(e){const a=Object.entries(this.variables()).find(([,a])=>a.label===e);if(!a)throw new Error(`Variable with label ${e} not found`);return a[0]},findVariableByLabel(e){return Object.values(this.variables()).find(a=>a.label===e)||null},getWatermark:()=>l.state.watermark,init:()=>c.load(),load:()=>n.apiClient.list().then(e=>{const{success:a,data:r}=e.data;if(!a)throw new Error("Unexpected response from server");return r}).then(e=>{const{variables:a,watermark:r}=e;return l.fill(a,r),s.styleVariablesRepository.update(a),a}),create:({type:e,label:a,value:r})=>n.apiClient.create(e,a,r).then(e=>{const{success:a,data:r}=e.data;if(!a){const e=r?.message||(0,t.__)("Unexpected response from server","elementor");throw new Error(e)}return r}).then(e=>{const{variable:a,watermark:r}=e;handleWatermark(i.OP_RW,r);const{id:t,...n}=a;return l.add(t,n),s.styleVariablesRepository.update({[t]:n}),{id:t,variable:n}}),update:(e,{label:a,value:r,type:o})=>n.apiClient.update(e,a,r,o).then(e=>{const{success:a,data:r}=e.data;if(!a){const e=r?.message||(0,t.__)("Unexpected response from server","elementor");throw new Error(e)}return r}).then(e=>{const{variable:a,watermark:r}=e;handleWatermark(i.OP_RW,r);const{id:t,...n}=a;return l.update(t,n),s.styleVariablesRepository.update({[t]:n}),{id:t,variable:n}}),delete:e=>n.apiClient.delete(e).then(e=>{const{success:a,data:r}=e.data;if(!a)throw new Error("Unexpected response from server");return r}).then(e=>{const{variable:a,watermark:r}=e;handleWatermark(i.OP_RW,r);const{id:t,...n}=a;return l.update(t,n),s.styleVariablesRepository.update({[t]:n}),{id:t,variable:n}}),restore:(e,a,r,t)=>n.apiClient.restore(e,a,r,t).then(e=>{const{success:a,data:r}=e.data;if(!a)throw new Error("Unexpected response from server");return r}).then(e=>{const{variable:a,watermark:r}=e;handleWatermark(i.OP_RW,r);const{id:t,...n}=a;return l.update(t,n),s.styleVariablesRepository.update({[t]:n}),{id:t,variable:n}}),batchSave:(e,a,r)=>{const t=(0,o.buildOperationsArray)(e,a,r),c={operations:t,watermark:l.state.watermark};return 0===t.length?Promise.resolve({success:!0,watermark:l.state.watermark,operations:0}):n.apiClient.batch(c).then(e=>{const{success:a,data:r}=e.data;if(!a)throw new Error("Unexpected response from server");return r}).then(e=>{const{results:a,watermark:r}=e;return handleWatermark(i.OP_RW,r),a&&a.forEach(e=>{const a=e.id;e.variable&&("create"===e.type?l.add(a,e.variable):l.update(a,e.variable),s.styleVariablesRepository.update({[a]:e.variable}))}),{success:!0,watermark:r,operations:t.length}})}},handleWatermark=(e,a)=>{l.watermarkDiff(e,a)&&setTimeout(()=>c.load(),500),l.watermark(a)}},"./packages/packages/core/editor-variables/src/storage.ts":function(e,a,r){r.r(a),r.d(a,{OP_RW:function(){return o},Storage:function(){return Storage}});const t="elementor-global-variables",n="elementor-global-variables-watermark",o="RW";class Storage{notifyChange(){window.dispatchEvent(new Event("variables:updated"))}constructor(){this.state={watermark:-1,variables:{}}}load(){return this.state.watermark=parseInt(localStorage.getItem(n)||"-1"),this.state.variables=JSON.parse(localStorage.getItem(t)||"{}"),this.state.variables}fill(e,a){this.state.variables={},e&&Object.keys(e).length&&(this.state.variables=e),this.state.watermark=a,localStorage.setItem(n,this.state.watermark.toString()),localStorage.setItem(t,JSON.stringify(this.state.variables)),this.notifyChange()}add(e,a){this.load(),this.state.variables[e]=a,localStorage.setItem(t,JSON.stringify(this.state.variables)),this.notifyChange()}update(e,a){this.load(),this.state.variables[e]=a,localStorage.setItem(t,JSON.stringify(this.state.variables)),this.notifyChange()}watermark(e){this.state.watermark=e,localStorage.setItem(n,this.state.watermark.toString())}watermarkDiff(e,a){const r=a-this.state.watermark;return o===e?1!==r:"RO"===e&&0!==r}}},"./packages/packages/core/editor-variables/src/style-variables-repository.ts":function(e,a,r){r.r(a),r.d(a,{styleVariablesRepository:function(){return t}});const t=(0,r("./packages/packages/core/editor-variables/src/create-style-variables-repository.ts").createStyleVariablesRepository)()},"./packages/packages/core/editor-variables/src/transformers/empty-transformer.tsx":function(e,a,r){r.r(a),r.d(a,{EmptyTransformer:function(){return n}});var t=r("@elementor/editor-canvas");const n=(0,t.createTransformer)(e=>null)},"./packages/packages/core/editor-variables/src/transformers/inheritance-transformer.tsx":function(e,a,r){r.r(a),r.d(a,{inheritanceTransformer:function(){return u}});var t=r("react"),n=r("@elementor/editor-canvas"),o=r("@elementor/ui"),i=r("@wordpress/i18n"),s=r("./packages/packages/core/editor-variables/src/components/ui/color-indicator.tsx"),l=r("./packages/packages/core/editor-variables/src/prop-types/color-variable-prop-type.ts"),c=r("./packages/packages/core/editor-variables/src/service.ts"),p=r("./packages/packages/core/editor-variables/src/transformers/utils/resolve-css-variable.ts");const u=(0,n.createTransformer)(e=>{const a=c.service.variables()[e];if(!a)return t.createElement("span",null,(0,i.__)("Missing variable","elementor"));const r=a.type===l.colorVariablePropTypeUtil.key,n=(0,p.resolveCssVariable)(e,a);return t.createElement(o.Stack,{direction:"row",spacing:.5,sx:{paddingInline:"1px"},alignItems:"center"},r&&t.createElement(s.ColorIndicator,{size:"inherit",value:a.value}),t.createElement(o.Typography,{variant:"caption",overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"},n))})},"./packages/packages/core/editor-variables/src/transformers/utils/resolve-css-variable.ts":function(e,a,r){r.r(a),r.d(a,{resolveCssVariable:function(){return resolveCssVariable}});const resolveCssVariable=(e,a)=>{let r=e,t="";if(a&&(t=a.value),a&&!a.deleted&&(r=a.label),!r.trim())return null;const n=`--${r}`;return t.trim()?`var(${n}, ${t})`:`var(${n})`}},"./packages/packages/core/editor-variables/src/transformers/variable-transformer.ts":function(e,a,r){r.r(a),r.d(a,{variableTransformer:function(){return i}});var t=r("@elementor/editor-canvas"),n=r("./packages/packages/core/editor-variables/src/service.ts"),o=r("./packages/packages/core/editor-variables/src/transformers/utils/resolve-css-variable.ts");const i=(0,t.createTransformer)(e=>{const a=n.service.variables()[e]||n.service.findVariableByLabel(e);if(!a)return null;const r=n.service.findIdByLabel(a.label);return(0,o.resolveCssVariable)(r,a)})},"./packages/packages/core/editor-variables/src/utils/filter-by-search.ts":function(e,a,r){function filterBySearch(e,a){const r=a.toLowerCase();return e.filter(e=>e.label.toLowerCase().includes(r))}r.r(a),r.d(a,{filterBySearch:function(){return filterBySearch}})},"./packages/packages/core/editor-variables/src/utils/llm-propvalue-label-resolver.ts":function(e,a,r){r.r(a),r.d(a,{globalVariablesLLMResolvers:function(){return n}});var t=r("./packages/packages/core/editor-variables/src/service.ts");const defaultResolver=e=>a=>{const r=String(a);return{$$type:e,value:t.service.variables()[r]?r:t.service.findIdByLabel(r)}},n={"global-color-variable":defaultResolver("global-color-variable"),"global-font-variable":defaultResolver("global-font-variable"),"global-size-variable":defaultResolver("global-size-variable")}},"./packages/packages/core/editor-variables/src/utils/tracking.ts":function(e,a,r){r.r(a),r.d(a,{trackVariableEvent:function(){return trackVariableEvent},trackVariableSyncToV3:function(){return trackVariableSyncToV3},trackVariablesManagerEvent:function(){return trackVariablesManagerEvent}});var t=r("@elementor/events");const trackVariableEvent=({varType:e,controlPath:a,action:r})=>{const{dispatchEvent:n,config:o}=(0,t.getMixpanel)();if(!o?.names?.variables?.[r])return;const i=o.names.variables[r];n?.(i,{location:o?.locations?.variables||"",secondaryLocation:o?.secondaryLocations?.variablesPopover||"",trigger:o?.triggers?.click||"",var_type:e,control_path:a,action_type:i})},trackVariablesManagerEvent=({action:e,varType:a,controlPath:r})=>{const{dispatchEvent:n,config:o}=(0,t.getMixpanel)();if(!o?.names?.variables?.[e])return;const i=o.names.variables[e],s={location:o?.locations?.variablesManager||"",trigger:o?.triggers?.click||"",action_type:i};a&&(s.var_type=a),r&&(s.style_control_path=r),n?.(i,s)},trackVariableSyncToV3=({variableLabel:e,action:a})=>{try{const{dispatchEvent:r,config:n}=(0,t.getMixpanel)();if(!n?.names?.variables?.variableSyncToV3)return;const o=n.names.variables.variableSyncToV3,i="sync"===a;r?.(o,{interaction_type:"click",target_type:e,target_name:i?"sync_to_v3":"unsync_to_v3",interaction_result:i?"var_is_synced_to_V3":"var_is_unsynced_from_V3",target_location:"widget_panel",location_l1:"var_manager",interaction_description:i?`user_synced_${e}_to_v3`:`user_unsync_${e}_from_v3`})}catch{}}},"./packages/packages/core/editor-variables/src/utils/unlink-variable.ts":function(e,a,r){r.r(a),r.d(a,{createUnlinkHandler:function(){return createUnlinkHandler},transformValueBeforeUnlink:function(){return transformValueBeforeUnlink}});var t=r("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");function transformValueBeforeUnlink(e,a){const{valueTransformer:r}=(0,t.getVariableType)(a);return r?r(e.value,e.type):e.value}function createUnlinkHandler(e,a,r){return()=>{const{fallbackPropTypeUtil:n}=(0,t.getVariableType)(a),o=transformValueBeforeUnlink(e,a);r(n.create(o))}}},"./packages/packages/core/editor-variables/src/utils/validations.ts":function(e,a,r){r.r(a),r.d(a,{ERROR_MESSAGES:function(){return o},VARIABLE_LABEL_MAX_LENGTH:function(){return i},labelHint:function(){return labelHint},mapServerError:function(){return mapServerError},validateLabel:function(){return validateLabel},validateValue:function(){return validateValue}});var t=r("@elementor/icons"),n=r("@wordpress/i18n");const o={MISSING_VARIABLE_NAME:(0,n.__)("Give your variable a name.","elementor"),MISSING_VARIABLE_VALUE:(0,n.__)("Add a value to complete your variable.","elementor"),INVALID_CHARACTERS:(0,n.__)("Use letters, numbers, dashes (-), or underscores (_) for the name.","elementor"),NO_NON_SPECIAL_CHARACTER:(0,n.__)("Names have to include at least one non-special character.","elementor"),VARIABLE_LABEL_MAX_LENGTH:(0,n.__)("Keep names up to 50 characters.","elementor"),DUPLICATED_LABEL:(0,n.__)("This variable name already exists. Please choose a unique name.","elementor"),UNEXPECTED_ERROR:(0,n.__)("There was a glitch. Try saving your variable again.","elementor"),BATCH:{DUPLICATED_LABELS:(e,a)=>(0,n.sprintf)((0,n.__)("We found %1$d duplicated %2$s.","elementor"),e,a),UNEXPECTED_ERROR:(0,n.__)("There was a glitch.","elementor"),DUPLICATED_LABEL_ACTION:(0,n.__)("Take me there","elementor"),DUPLICATED_LABEL_ACTION_MESSAGE:(0,n.__)("Please rename the variables.","elementor"),UNEXPECTED_ERROR_ACTION_MESSAGE:(0,n.__)("Try saving your variables again.","elementor")}},i=50,mapServerError=e=>{if("duplicated_label"===e?.response?.data?.code)return{field:"label",message:o.DUPLICATED_LABEL};if("batch_duplicated_label"===e?.response?.data?.code){const a=e?.response?.data?.data??{},r=Object.keys(a).length,n=1===r?"name":"names",i=Object.keys(a);return{field:"label",message:o.BATCH.DUPLICATED_LABELS(r,n),severity:"error",IconComponent:t.AlertTriangleFilledIcon,action:{label:o.BATCH.DUPLICATED_LABEL_ACTION,message:o.BATCH.DUPLICATED_LABEL_ACTION_MESSAGE,data:{duplicatedIds:i}}}}return"batch_operation_failed"===e?.response?.data?.code?{field:"label",message:o.BATCH.UNEXPECTED_ERROR,severity:"secondary",IconComponent:t.InfoCircleFilledIcon,action:{message:o.BATCH.UNEXPECTED_ERROR_ACTION_MESSAGE}}:void 0},validateLabel=(e,a)=>{if(!e.trim())return o.MISSING_VARIABLE_NAME;if(!/^[a-zA-Z0-9_-]+$/.test(e))return o.INVALID_CHARACTERS;return/[a-zA-Z0-9]/.test(e)?i<e.length?o.VARIABLE_LABEL_MAX_LENGTH:Object.values(a??{}).some(a=>a.label===e)?o.DUPLICATED_LABEL:"":o.NO_NON_SPECIAL_CHARACTER},labelHint=e=>.8*i-1<e.length?o.VARIABLE_LABEL_MAX_LENGTH:"",validateValue=e=>e.trim()?"":o.MISSING_VARIABLE_VALUE},"./packages/packages/core/editor-variables/src/utils/variables-to-list.ts":function(e,a,r){r.r(a),r.d(a,{applySelectionFilters:function(){return applySelectionFilters},toNormalizedVariable:function(){return toNormalizedVariable},variablesToList:function(){return variablesToList}});const variablesToList=e=>Object.entries(e).map(([e,a])=>({key:e,...a})),toNormalizedVariable=({key:e,label:a,value:r,order:t,sync_to_v3:n})=>({key:e,label:a,value:r,order:t,sync_to_v3:n}),applySelectionFilters=(e,a)=>{const r={};return e.forEach(e=>(r[e.type]??=[]).push(e)),Object.entries(r).flatMap(([e,r])=>{const t=a[e]?.selectionFilter,n=r.map(toNormalizedVariable);return(t?.(n)??n).map(a=>({...a,type:e}))})}},"./packages/packages/core/editor-variables/src/variables-registry/create-variable-type-registry.ts":function(e,a,r){r.r(a),r.d(a,{createVariableTypeRegistry:function(){return createVariableTypeRegistry}});var t=r("@elementor/editor-canvas"),n=r("./packages/packages/core/editor-variables/src/transformers/inheritance-transformer.tsx"),o=r("./packages/packages/core/editor-variables/src/transformers/variable-transformer.ts");function createVariableTypeRegistry(){const e={},registerTransformer=(e,a)=>{t.styleTransformersRegistry.register(e,a??o.variableTransformer)},registerInheritanceTransformer=e=>{t.stylesInheritanceTransformersRegistry.register(e,n.inheritanceTransformer)};return{registerVariableType:({key:a,icon:r,startIcon:t,valueField:n,propTypeUtil:o,variableType:i,defaultValue:s,selectionFilter:l,valueTransformer:c,styleTransformer:p,fallbackPropTypeUtil:u,isCompatible:d,emptyState:b,isActive:m=!0,menuActionsFactory:v})=>{const g=a??o.key;d||(d=(e,a)=>"union"===e.kind&&a.type in e.prop_types),e[g]={icon:r,startIcon:t,valueField:n,propTypeUtil:o,variableType:i,defaultValue:s,selectionFilter:l,valueTransformer:c,fallbackPropTypeUtil:u,isCompatible:d,emptyState:b,isActive:m,menuActionsFactory:v},registerTransformer(o.key,p),registerInheritanceTransformer(o.key)},getVariableType:a=>e[a],getVariableTypes:()=>e,hasVariableType:a=>a in e&&!!e[a].isActive}}},"./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts":function(e,a,r){r.r(a),r.d(a,{getMenuActionsForVariable:function(){return getMenuActionsForVariable},getVariableType:function(){return o},getVariableTypes:function(){return i},hasVariableType:function(){return s},registerVariableType:function(){return n}});var t=r("./packages/packages/core/editor-variables/src/variables-registry/create-variable-type-registry.ts");const{registerVariableType:n,getVariableType:o,getVariableTypes:i,hasVariableType:s}=(0,t.createVariableTypeRegistry)();function getMenuActionsForVariable(e,a){const r=o(e);return r?.menuActionsFactory?r.menuActionsFactory(a):[]}},"@elementor/editor":function(e){e.exports=window.elementorV2.editor},"@elementor/editor-canvas":function(e){e.exports=window.elementorV2.editorCanvas},"@elementor/editor-controls":function(e){e.exports=window.elementorV2.editorControls},"@elementor/editor-current-user":function(e){e.exports=window.elementorV2.editorCurrentUser},"@elementor/editor-mcp":function(e){e.exports=window.elementorV2.editorMcp},"@elementor/editor-panels":function(e){e.exports=window.elementorV2.editorPanels},"@elementor/editor-props":function(e){e.exports=window.elementorV2.editorProps},"@elementor/editor-ui":function(e){e.exports=window.elementorV2.editorUi},"@elementor/editor-v1-adapters":function(e){e.exports=window.elementorV2.editorV1Adapters},"@elementor/events":function(e){e.exports=window.elementorV2.events},"@elementor/http-client":function(e){e.exports=window.elementorV2.httpClient},"@elementor/icons":function(e){e.exports=window.elementorV2.icons},"@elementor/menus":function(e){e.exports=window.elementorV2.menus},"@elementor/schema":function(e){e.exports=window.elementorV2.schema},"@elementor/ui":function(e){e.exports=window.elementorV2.ui},"@elementor/utils":function(e){e.exports=window.elementorV2.utils},"@wordpress/i18n":function(e){e.exports=window.wp.i18n},react:function(e){e.exports=window.React}},a={};function __webpack_require__(r){var t=a[r];if(void 0!==t)return t.exports;var n=a[r]={exports:{}};return e[r](n,n.exports,__webpack_require__),n.exports}__webpack_require__.n=function(e){var a=e&&e.__esModule?function(){return e.default}:function(){return e};return __webpack_require__.d(a,{a:a}),a},__webpack_require__.d=function(e,a){for(var r in a)__webpack_require__.o(a,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:a[r]})},__webpack_require__.o=function(e,a){return Object.prototype.hasOwnProperty.call(e,a)},__webpack_require__.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};!function(){__webpack_require__.r(r),__webpack_require__.d(r,{GLOBAL_VARIABLES_URI:function(){return a.GLOBAL_VARIABLES_URI},Utils:function(){return l},getMenuActionsForVariable:function(){return i.getMenuActionsForVariable},hasVariable:function(){return s.hasVariable},init:function(){return e.init},registerVariableType:function(){return i.registerVariableType},registerVariableTypes:function(){return n.registerVariableTypes},service:function(){return o.service},sizeVariablePropTypeUtil:function(){return t.sizeVariablePropTypeUtil}});var e=__webpack_require__("./packages/packages/core/editor-variables/src/init.ts"),a=__webpack_require__("./packages/packages/core/editor-variables/src/mcp/variables-resource.ts"),t=__webpack_require__("./packages/packages/core/editor-variables/src/prop-types/size-variable-prop-type.ts"),n=__webpack_require__("./packages/packages/core/editor-variables/src/register-variable-types.tsx"),o=__webpack_require__("./packages/packages/core/editor-variables/src/service.ts"),i=__webpack_require__("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts"),s=__webpack_require__("./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts");const l={globalVariablesLLMResolvers:__webpack_require__("./packages/packages/core/editor-variables/src/utils/llm-propvalue-label-resolver.ts").globalVariablesLLMResolvers}}(),(window.elementorV2=window.elementorV2||{}).editorVariables=r}(),window.elementorV2.editorVariables?.init?.();
2 +!function(){"use strict";var e={"./packages/packages/core/editor-variables/src/api.ts":function(e,a,t){t.r(a),t.d(a,{apiClient:function(){return n}});var r=t("@elementor/http-client");const o="elementor/v1/variables",n={list:()=>(0,r.httpService)().get(o+"/list"),create:(e,a,t)=>(0,r.httpService)().post(o+"/create",{type:e,label:a,value:t}),update:(e,a,t)=>(0,r.httpService)().put(o+"/update",{id:e,label:a,value:t}),delete:e=>(0,r.httpService)().post(o+"/delete",{id:e}),restore:(e,a,t)=>{const n={id:e};return a&&(n.label=a),t&&(n.value=t),(0,r.httpService)().post(o+"/restore",n)},batch:e=>(0,r.httpService)().post(o+"/batch",e)}},"./packages/packages/core/editor-variables/src/batch-operations.ts":function(e,a,t){t.r(a),t.d(a,{buildOperationsArray:function(){return buildOperationsArray},generateTempId:function(){return generateTempId},isTempId:function(){return isTempId}});const generateTempId=()=>`tmp-${Date.now().toString(36)}-${Math.random().toString(36).substring(2,8)}`,isTempId=e=>e.startsWith("tmp-"),buildOperationsArray=(e,a)=>{const t=[];return Object.entries(a).forEach(([a,r])=>{if(isTempId(a))t.push({type:"create",variable:{...r,id:a}});else if(e[a]){const o=e[a];o.deleted&&!r.deleted?t.push({type:"restore",id:a,...o.label!==r.label&&{label:r.label},...o.value!==r.value&&{value:r.value}}):r.deleted||o.label===r.label&&o.value===r.value&&o.order===r.order||t.push({type:"update",id:a,variable:{...o.label!==r.label&&{label:r.label},...o.value!==r.value&&{value:r.value},...o.order!==r.order&&{order:r.order}}})}}),Object.entries(e).forEach(([e,r])=>{if(isTempId(e)||r.deleted)return;const o=a[e];o&&!o.deleted||t.push({type:"delete",id:e})}),t.filter(e=>{const t=e.id||e.variable?.id;return t&&!(isTempId(t)&&a[t]?.deleted)})}},"./packages/packages/core/editor-variables/src/components/fields/color-field.tsx":function(e,a,t){t.r(a),t.d(a,{ColorField:function(){return ColorField}});var r=t("react"),o=t("@elementor/ui"),n=t("./packages/packages/core/editor-variables/src/context/variable-selection-popover.context.tsx"),i=t("./packages/packages/core/editor-variables/src/utils/validations.ts");const ColorField=({value:e,onChange:a,onValidationChange:t})=>{const[s,l]=(0,r.useState)(e),[c,p]=(0,r.useState)(""),u=(0,r.useRef)(null),d=(0,n.usePopoverContentRef)()??u.current;return r.createElement(o.UnstableColorField,{id:"color-variable-field",size:"tiny",fullWidth:!0,value:s,onChange:e=>{l(e);const r=(0,i.validateValue)(e);p(r),t?.(r),a(r?"":e)},error:c||void 0,slotProps:{colorPicker:{anchorEl:d,anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:-10},slotProps:{colorIndicator:{size:"inherit",sx:{borderRadius:.5}}}}}})}},"./packages/packages/core/editor-variables/src/components/fields/font-field.tsx":function(e,a,t){t.r(a),t.d(a,{FontField:function(){return FontField}});var r=t("react"),o=t("@elementor/editor-controls"),n=t("@elementor/editor-editing-panel"),i=t("@elementor/icons"),s=t("@elementor/ui"),l=t("@wordpress/i18n"),c=t("./packages/packages/core/editor-variables/src/context/variable-selection-popover.context.tsx"),p=t("./packages/packages/core/editor-variables/src/utils/validations.ts");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},_extends.apply(null,arguments)}const FontField=({value:e,onChange:a,onValidationChange:t})=>{const[u,d]=(0,r.useState)(e),b=(0,r.useRef)(null),m=(0,c.usePopoverContentRef)()??b.current,v=(0,s.usePopupState)({variant:"popover"}),g=(0,n.useFontFamilies)(),h=(0,n.useSectionWidth)(),f=r.useMemo(()=>g.map(({label:e,fonts:a})=>({label:e,items:a})),[g]),k=(0,r.useId)();return r.createElement(r.Fragment,null,r.createElement(s.UnstableTag,_extends({id:k,variant:"outlined",label:u,endIcon:r.createElement(i.ChevronDownIcon,{fontSize:"tiny"})},(0,s.bindTrigger)(v),{fullWidth:!0})),r.createElement(s.Popover,_extends({disablePortal:!0,disableScrollLock:!0,anchorEl:m,anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:-28}},(0,s.bindPopover)(v)),r.createElement(o.ItemSelector,{id:"font-family-variables-selector",itemsList:f,selectedItem:u,onItemChange:e=>{(e=>{d(e);const r=(0,p.validateValue)(e);t?.(r),a(r?"":e)})(e),v.close()},onClose:v.close,sectionWidth:h,title:(0,l.__)("Font family","elementor"),itemStyle:e=>({fontFamily:e.value}),onDebounce:o.enqueueFont,icon:i.TextIcon})))}},"./packages/packages/core/editor-variables/src/components/fields/label-field.tsx":function(e,a,t){t.r(a),t.d(a,{LabelField:function(){return LabelField},useLabelError:function(){return useLabelError}});var r=t("react"),o=t("@elementor/editor-ui"),n=t("@elementor/ui"),i=t("./packages/packages/core/editor-variables/src/utils/validations.ts");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},_extends.apply(null,arguments)}function isLabelEqual(e,a){return e.trim().toLowerCase()===a.trim().toLowerCase()}const useLabelError=e=>{const[a,t]=(0,r.useState)(e??{value:"",message:""});return{labelFieldError:a,setLabelFieldError:t}},LabelField=({value:e,error:a,onChange:t,id:s,onErrorChange:l,size:c="tiny",focusOnShow:p=!1,selectOnShow:u=!1,showWarningInfotip:d=!1,variables:b})=>{const[m,v]=(0,r.useState)(e),[g,h]=(0,r.useState)(""),f=(0,r.useRef)(null);let k=g;isLabelEqual(m,a?.value??"")&&a?.message&&(k=a.message);const y=k?"":(0,i.labelHint)(m),E=r.createElement(n.TextField,{ref:f,id:s,size:c,fullWidth:!0,value:m,error:!!k,onChange:e=>(e=>{v(e);const r=(0,i.validateLabel)(e,b);h(r),l?.(r),t(isLabelEqual(e,a?.value??"")||r?"":e)})(e.target.value),inputProps:{maxLength:i.VARIABLE_LABEL_MAX_LENGTH,...u&&{onFocus:e=>e.target.select()},"aria-label":"Name"},autoFocus:p});if(d){const e=Math.max(240,f.current?.getBoundingClientRect().width??240);return r.createElement(o.WarningInfotip,_extends({open:Boolean(k||y),text:k||y,placement:"bottom-start",width:e,offset:[0,-15]},y&&{hasError:!1}),E)}return E}},"./packages/packages/core/editor-variables/src/components/ui/color-indicator.tsx":function(e,a,t){t.r(a),t.d(a,{ColorIndicator:function(){return o}});var r=t("@elementor/ui");const o=(0,r.styled)(r.UnstableColorIndicator)(({theme:e})=>({borderRadius:e.shape.borderRadius/2+"px",marginRight:e.spacing(.25)}))},"./packages/packages/core/editor-variables/src/components/ui/delete-confirmation-dialog.tsx":function(e,a,t){t.r(a),t.d(a,{DeleteConfirmationDialog:function(){return DeleteConfirmationDialog}});var r=t("react"),o=t("@elementor/icons"),n=t("@elementor/ui"),i=t("@wordpress/i18n");const s="delete-variable-dialog",DeleteConfirmationDialog=({open:e,label:a,closeDialog:t,onConfirm:l})=>r.createElement(n.Dialog,{open:e,onClose:t,"aria-labelledby":s,maxWidth:"xs"},r.createElement(n.DialogTitle,{id:s,display:"flex",alignItems:"center",gap:1,sx:{lineHeight:1}},r.createElement(o.AlertOctagonFilledIcon,{color:"error"}),(0,i.__)("Delete this variable?","elementor")),r.createElement(n.DialogContent,null,r.createElement(n.DialogContentText,{variant:"body2",color:"textPrimary"},(0,i.__)("All elements using","elementor")," ",r.createElement(n.Typography,{variant:"subtitle2",component:"span",sx:{lineBreak:"anywhere"}},a)," ",(0,i.__)("will keep their current values, but the variable itself will be removed.","elementor"))),r.createElement(n.DialogActions,null,r.createElement(n.Button,{color:"secondary",onClick:t},(0,i.__)("Not now","elementor")),r.createElement(n.Button,{variant:"contained",color:"error",onClick:l},(0,i.__)("Delete","elementor"))))},"./packages/packages/core/editor-variables/src/components/ui/deleted-variable-alert.tsx":function(e,a,t){t.r(a),t.d(a,{DeletedVariableAlert:function(){return DeletedVariableAlert}});var r=t("react"),o=t("@elementor/ui"),n=t("@wordpress/i18n");const DeletedVariableAlert=({onClose:e,onUnlink:a,onRestore:t,label:i})=>r.createElement(o.ClickAwayListener,{onClickAway:e},r.createElement(o.Alert,{variant:"standard",severity:"warning",onClose:e,action:r.createElement(r.Fragment,null,a&&r.createElement(o.AlertAction,{variant:"contained",onClick:a},(0,n.__)("Unlink","elementor")),t&&r.createElement(o.AlertAction,{variant:"outlined",onClick:t},(0,n.__)("Restore","elementor"))),sx:{maxWidth:300}},r.createElement(o.AlertTitle,null,(0,n.__)("Deleted variable","elementor")),r.createElement(o.Typography,{variant:"body2",color:"textPrimary"},(0,n.__)("The variable","elementor")," '",r.createElement(o.Typography,{variant:"body2",component:"span",sx:{lineBreak:"anywhere"}},i),"' ",(0,n.__)("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"))))},"./packages/packages/core/editor-variables/src/components/ui/edit-confirmation-dialog.tsx":function(e,a,t){t.r(a),t.d(a,{EDIT_CONFIRMATION_DIALOG_ID:function(){return s},EditConfirmationDialog:function(){return EditConfirmationDialog}});var r=t("react"),o=t("@elementor/icons"),n=t("@elementor/ui"),i=t("@wordpress/i18n");const s="edit-confirmation-dialog",EditConfirmationDialog=({closeDialog:e,onConfirm:a,onSuppressMessage:t})=>{const[s,l]=(0,r.useState)(!1);return r.createElement(n.Dialog,{open:!0,onClose:e,maxWidth:"xs"},r.createElement(n.DialogTitle,{display:"flex",alignItems:"center",gap:1},r.createElement(o.AlertTriangleFilledIcon,{color:"secondary"}),(0,i.__)("Changes to variables go live right away.","elementor")),r.createElement(n.DialogContent,null,r.createElement(n.DialogContentText,{variant:"body2",color:"textPrimary"},(0,i.__)("Don't worry - all other changes you make will wait until you publish your site.","elementor"))),r.createElement(n.DialogActions,{sx:{justifyContent:"space-between",alignItems:"center"}},r.createElement(n.FormControlLabel,{control:r.createElement(n.Checkbox,{checked:s,onChange:e=>l(e.target.checked),size:"small"}),label:r.createElement(n.Typography,{variant:"body2"},(0,i.__)("Don't show me again","elementor"))}),r.createElement("div",null,r.createElement(n.Button,{color:"secondary",onClick:e},(0,i.__)("Keep editing","elementor")),r.createElement(n.Button,{variant:"contained",color:"secondary",onClick:()=>{s&&t?.(),a?.()},sx:{ml:1}},(0,i.__)("Save","elementor")))))}},"./packages/packages/core/editor-variables/src/components/ui/empty-state.tsx":function(e,a,t){t.r(a),t.d(a,{EmptyState:function(){return EmptyState}});var r=t("react"),o=t("@elementor/ui"),n=t("@wordpress/i18n"),i=t("./packages/packages/core/editor-variables/src/hooks/use-permissions.ts");const EmptyState=({icon:e,title:a,message:t,onAdd:s})=>{const l=(0,i.usePermissions)().canAdd();return r.createElement(o.Stack,{gap:1,alignItems:"center",justifyContent:"flex-start",height:"100%",color:"text.secondary",sx:{p:2.5,pt:8,pb:5.5}},e,l?r.createElement(r.Fragment,null,r.createElement(Content,{title:a,message:t}),s&&r.createElement(o.Button,{variant:"outlined",color:"secondary",size:"small",onClick:s},(0,n.__)("Create a variable","elementor"))):r.createElement(Content,{title:(0,n.__)("There are no variables","elementor"),message:(0,n.__)("With your current role, you can only connect and detach variables.","elementor")}))};function Content({title:e,message:a}){return r.createElement(r.Fragment,null,r.createElement(o.Typography,{align:"center",variant:"subtitle2"},e),r.createElement(o.Typography,{align:"center",variant:"caption",maxWidth:"180px"},a))}},"./packages/packages/core/editor-variables/src/components/ui/form-field.tsx":function(e,a,t){t.r(a),t.d(a,{FormField:function(){return FormField}});var r=t("react"),o=t("@elementor/ui");const FormField=({id:e,label:a,errorMsg:t,noticeMsg:n,children:i})=>r.createElement(o.Grid,{container:!0,gap:.75,alignItems:"center"},r.createElement(o.Grid,{item:!0,xs:12},r.createElement(o.FormLabel,{htmlFor:e,size:"tiny"},a)),r.createElement(o.Grid,{item:!0,xs:12},i,t&&r.createElement(o.FormHelperText,{error:!0},t),n&&r.createElement(o.FormHelperText,null,n)))},"./packages/packages/core/editor-variables/src/components/ui/menu-item-content.tsx":function(e,a,t){t.r(a),t.d(a,{MenuItemContent:function(){return MenuItemContent}});var r=t("react"),o=t("@elementor/editor-ui"),n=t("@elementor/icons"),i=t("@elementor/ui"),s=t("@wordpress/i18n");const l=(0,s.__)("Edit variable","elementor"),MenuItemContent=({item:e})=>{const a=e.onEdit;return r.createElement(r.Fragment,null,r.createElement(i.ListItemIcon,null,e.icon),r.createElement(i.Box,{sx:{flex:1,minWidth:0,display:"flex",alignItems:"center",gap:1}},r.createElement(o.EllipsisWithTooltip,{title:e.label||e.value,as:i.Typography,variant:"caption",color:"text.primary",sx:{marginTop:"1px",lineHeight:"2"},maxWidth:"50%"}),e.secondaryText&&r.createElement(o.EllipsisWithTooltip,{title:e.secondaryText,as:i.Typography,variant:"caption",color:"text.tertiary",sx:{marginTop:"1px",lineHeight:"1"},maxWidth:"50%"})),!!a&&r.createElement(i.Tooltip,{placement:"top",title:l},r.createElement(i.IconButton,{sx:{mx:1,opacity:"0"},onClick:t=>{t.stopPropagation(),a(e.value)},"aria-label":l},r.createElement(n.EditIcon,{color:"action",fontSize:"tiny"}))))}},"./packages/packages/core/editor-variables/src/components/ui/mismatch-variable-alert.tsx":function(e,a,t){t.r(a),t.d(a,{MismatchVariableAlert:function(){return MismatchVariableAlert}});var r=t("react"),o=t("@elementor/ui"),n=t("@wordpress/i18n");const i={title:(0,n.__)("Variable has changed","elementor"),message:(0,n.__)("This variable is no longer compatible with this property. You can clear it or select a different one.","elementor"),buttons:{clear:(0,n.__)("Clear","elementor"),select:(0,n.__)("Select variable","elementor")}},MismatchVariableAlert=({onClose:e,onClear:a,triggerSelect:t})=>r.createElement(o.ClickAwayListener,{onClickAway:e},r.createElement(o.Alert,{variant:"standard",severity:"warning",onClose:e,action:r.createElement(r.Fragment,null,a&&r.createElement(o.AlertAction,{variant:"contained",onClick:a},i.buttons.clear),t&&r.createElement(o.AlertAction,{variant:"outlined",onClick:t},i.buttons.select)),sx:{maxWidth:300}},r.createElement(o.AlertTitle,null,i.title),r.createElement(o.Typography,{variant:"body2",color:"textPrimary"},i.message)))},"./packages/packages/core/editor-variables/src/components/ui/missing-variable-alert.tsx":function(e,a,t){t.r(a),t.d(a,{MissingVariableAlert:function(){return MissingVariableAlert}});var r=t("react"),o=t("@elementor/ui"),n=t("@wordpress/i18n");const MissingVariableAlert=({onClose:e,onClear:a})=>r.createElement(o.ClickAwayListener,{onClickAway:e},r.createElement(o.Alert,{variant:"standard",severity:"warning",onClose:e,action:r.createElement(r.Fragment,null,a&&r.createElement(o.AlertAction,{variant:"contained",onClick:a},(0,n.__)("Clear","elementor"))),sx:{maxWidth:300}},r.createElement(o.AlertTitle,null,(0,n.__)("This variable is missing","elementor")),r.createElement(o.Typography,{variant:"body2",color:"textPrimary"},(0,n.__)("It may have been deleted. Try clearing this field and select a different value or variable.","elementor"))))},"./packages/packages/core/editor-variables/src/components/ui/no-search-results.tsx":function(e,a,t){t.r(a),t.d(a,{NoSearchResults:function(){return NoSearchResults}});var r=t("react"),o=t("@elementor/ui"),n=t("@wordpress/i18n");const NoSearchResults=({searchValue:e,onClear:a,icon:t})=>r.createElement(o.Stack,{gap:1,alignItems:"center",justifyContent:"center",p:2.5,color:"text.secondary",sx:{pb:3.5,pt:8}},t,r.createElement(o.Typography,{align:"center",variant:"subtitle2"},(0,n.__)("Sorry, nothing matched","elementor"),r.createElement("br",null),"“",e,"”."),r.createElement(o.Typography,{align:"center",variant:"caption",sx:{display:"flex",flexDirection:"column"}},(0,n.__)("Try something else.","elementor"),r.createElement(o.Link,{color:"text.secondary",variant:"caption",component:"button",onClick:a},(0,n.__)("Clear & try again","elementor"))))},"./packages/packages/core/editor-variables/src/components/ui/styled-menu-list.tsx":function(e,a,t){t.r(a),t.d(a,{VariablesStyledMenuList:function(){return o}});var r=t("@elementor/ui");const o=(0,r.styled)(r.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"}))},"./packages/packages/core/editor-variables/src/components/ui/tags/assigned-tag.tsx":function(e,a,t){t.r(a),t.d(a,{AssignedTag:function(){return AssignedTag},SIZE:function(){return s}});var r=t("react"),o=t("@elementor/icons"),n=t("@elementor/ui"),i=t("@wordpress/i18n");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},_extends.apply(null,arguments)}const s="tiny",l=(0,i.__)("Unlink variable","elementor"),AssignedTag=({startIcon:e,label:a,onUnlink:t,...i})=>{const c=[];return t&&c.push(r.createElement(n.Tooltip,{key:"unlink",title:l,placement:"bottom"},r.createElement(n.IconButton,{size:s,onClick:t,"aria-label":l},r.createElement(o.DetachIcon,{fontSize:s})))),r.createElement(n.Tooltip,{title:a,placement:"top"},r.createElement(n.UnstableTag,_extends({fullWidth:!0,showActionsOnHover:!0,startIcon:r.createElement(n.Stack,{gap:.5,direction:"row",alignItems:"center"},e),label:r.createElement(n.Box,{sx:{display:"inline-grid",minWidth:0}},r.createElement(n.Typography,{sx:{lineHeight:1.34},variant:"caption",noWrap:!0},a)),actions:c},i)))}},"./packages/packages/core/editor-variables/src/components/ui/tags/warning-variable-tag.tsx":function(e,a,t){t.r(a),t.d(a,{WarningVariableTag:function(){return i}});var r=t("react"),o=t("@elementor/icons"),n=t("@elementor/ui");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},_extends.apply(null,arguments)}const i=r.forwardRef(({label:e,suffix:a,onClick:t,icon:i,...s},l)=>{const c=a?`${e} (${a})`:e;return r.createElement(n.Chip,_extends({ref:l,size:"tiny",color:"warning",shape:"rounded",variant:"standard",onClick:t,icon:r.createElement(o.AlertTriangleFilledIcon,null),label:r.createElement(n.Tooltip,{title:c,placement:"top"},r.createElement(n.Box,{sx:{display:"inline-grid",minWidth:0}},r.createElement(n.Typography,{variant:"caption",noWrap:!0,sx:{lineHeight:1.34}},c))),sx:{height:e=>e.spacing(3.5),borderRadius:e=>e.spacing(1),justifyContent:"flex-start",width:"100%"}},s))});i.displayName="WarningVariableTag"},"./packages/packages/core/editor-variables/src/components/ui/variable/assigned-variable.tsx":function(e,a,t){t.r(a),t.d(a,{AssignedVariable:function(){return AssignedVariable}});var r=t("react"),o=t("@elementor/editor-controls"),n=t("@elementor/icons"),i=t("@elementor/ui"),s=t("./packages/packages/core/editor-variables/src/utils/unlink-variable.ts"),l=t("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts"),c=t("./packages/packages/core/editor-variables/src/components/variable-selection-popover.tsx"),p=t("./packages/packages/core/editor-variables/src/components/ui/tags/assigned-tag.tsx");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},_extends.apply(null,arguments)}const AssignedVariable=({variable:e,propTypeKey:a})=>{const{startIcon:t,propTypeUtil:u}=(0,l.getVariableType)(a),{setValue:d}=(0,o.useBoundProp)(),b=(0,r.useRef)(null),m=(0,r.useId)(),v=(0,i.usePopupState)({variant:"popover",popupId:`elementor-variables-list-${m}`}),g=(0,s.createUnlinkHandler)(e,a,d),h=t||(()=>null);return r.createElement(i.Box,{ref:b},r.createElement(p.AssignedTag,_extends({label:e.label,startIcon:r.createElement(r.Fragment,null,r.createElement(n.ColorFilterIcon,{fontSize:p.SIZE}),r.createElement(h,{value:e.value})),onUnlink:g},(0,i.bindTrigger)(v))),r.createElement(i.Popover,_extends({disableScrollLock:!0,anchorEl:b.current,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},PaperProps:{sx:{my:1}}},(0,i.bindPopover)(v)),r.createElement(c.VariableSelectionPopover,{selectedVariable:e,closePopover:v.close,propTypeKey:u.key})))}},"./packages/packages/core/editor-variables/src/components/ui/variable/deleted-variable.tsx":function(e,a,t){t.r(a),t.d(a,{DeletedVariable:function(){return DeletedVariable}});var r=t("react"),o=t("@elementor/editor-controls"),n=t("@elementor/ui"),i=t("@wordpress/i18n"),s=t("./packages/packages/core/editor-variables/src/context/variable-type-context.tsx"),l=t("./packages/packages/core/editor-variables/src/hooks/use-permissions.ts"),c=t("./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts"),p=t("./packages/packages/core/editor-variables/src/hooks/use-variable-bound-prop.ts"),u=t("./packages/packages/core/editor-variables/src/utils/unlink-variable.ts"),d=t("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts"),b=t("./packages/packages/core/editor-variables/src/components/variable-restore.tsx"),m=t("./packages/packages/core/editor-variables/src/components/ui/deleted-variable-alert.tsx"),v=t("./packages/packages/core/editor-variables/src/components/ui/tags/warning-variable-tag.tsx");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},_extends.apply(null,arguments)}const DeletedVariable=({variable:e,propTypeKey:a})=>{const{propTypeUtil:t}=(0,d.getVariableType)(a),g=(0,o.useBoundProp)(),h=(0,l.usePermissions)(),[f,k]=(0,r.useState)(!1),closeInfotip=()=>k(!1),y=(0,r.useRef)(null),E=(0,r.useId)(),_=(0,n.usePopupState)({variant:"popover",popupId:`elementor-variables-restore-${E}`}),x={};h.canUnlink()&&(x.onUnlink=(0,u.createUnlinkHandler)(e,a,g.setValue)),h.canRestore()&&(x.onRestore=()=>{e.key&&(0,c.restoreVariable)(e.key).then(e=>{(0,p.resolveBoundPropAndSetValue)(t.create(e),g),closeInfotip()}).catch(()=>{closeInfotip(),_.setAnchorEl(y.current),_.open()})});return r.createElement(r.Fragment,null,r.createElement(n.Box,{ref:y},f&&r.createElement(n.Backdrop,{open:!0,onClick:closeInfotip,invisible:!0}),r.createElement(n.Infotip,{color:"warning",placement:"right-start",open:f,disableHoverListener:!0,onClose:closeInfotip,content:r.createElement(m.DeletedVariableAlert,{onClose:closeInfotip,onUnlink:x.onUnlink,onRestore:x.onRestore,label:e.label}),slotProps:{popper:{modifiers:[{name:"offset",options:{offset:[0,24]}}]}}},r.createElement(v.WarningVariableTag,{label:e.label,onClick:()=>k(e=>!e),suffix:(0,i.__)("deleted","elementor")})),r.createElement(n.Popover,_extends({disableScrollLock:!0,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},PaperProps:{sx:{my:1}}},(0,n.bindPopover)(_)),r.createElement(s.VariableTypeProvider,{propTypeKey:a},r.createElement(b.VariableRestore,{variableId:e.key??"",onClose:_.close,onSubmit:()=>{_.close()}})))))}},"./packages/packages/core/editor-variables/src/components/ui/variable/mismatch-variable.tsx":function(e,a,t){t.r(a),t.d(a,{MismatchVariable:function(){return MismatchVariable}});var r=t("react"),o=t("@elementor/editor-controls"),n=t("@elementor/ui"),i=t("@wordpress/i18n"),s=t("./packages/packages/core/editor-variables/src/components/variable-selection-popover.tsx"),l=t("./packages/packages/core/editor-variables/src/components/ui/mismatch-variable-alert.tsx"),c=t("./packages/packages/core/editor-variables/src/components/ui/tags/warning-variable-tag.tsx");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},_extends.apply(null,arguments)}const MismatchVariable=({variable:e})=>{const{setValue:a,value:t}=(0,o.useBoundProp)(),p=(0,r.useRef)(null),u=(0,r.useId)(),d=(0,n.usePopupState)({variant:"popover",popupId:`elementor-variables-list-${u}`}),[b,m]=(0,r.useState)(!1),closeInfotip=()=>m(!1),v=!!t;return r.createElement(n.Box,{ref:p},b&&r.createElement(n.Backdrop,{open:!0,onClick:closeInfotip,invisible:!0}),r.createElement(n.Infotip,{color:"warning",placement:"right-start",open:b,disableHoverListener:!0,onClose:closeInfotip,content:r.createElement(l.MismatchVariableAlert,{onClose:closeInfotip,onClear:v?()=>{closeInfotip(),a(null)}:void 0,triggerSelect:()=>{closeInfotip(),d.setAnchorEl(p.current),d.open()}}),slotProps:{popper:{modifiers:[{name:"offset",options:{offset:[0,24]}}]}}},r.createElement(c.WarningVariableTag,{label:e.label,onClick:()=>m(e=>!e),suffix:(0,i.__)("changed","elementor")})),r.createElement(n.Popover,_extends({disableScrollLock:!0,anchorEl:p.current,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},PaperProps:{sx:{my:1}}},(0,n.bindPopover)(d)),r.createElement(s.VariableSelectionPopover,{selectedVariable:e,closePopover:d.close,propTypeKey:e.type})))}},"./packages/packages/core/editor-variables/src/components/ui/variable/missing-variable.tsx":function(e,a,t){t.r(a),t.d(a,{MissingVariable:function(){return MissingVariable}});var r=t("react"),o=t("@elementor/editor-controls"),n=t("@elementor/ui"),i=t("@wordpress/i18n"),s=t("./packages/packages/core/editor-variables/src/components/ui/missing-variable-alert.tsx"),l=t("./packages/packages/core/editor-variables/src/components/ui/tags/warning-variable-tag.tsx");const MissingVariable=()=>{const{setValue:e}=(0,o.useBoundProp)(),[a,t]=(0,r.useState)(!1),closeInfotip=()=>t(!1);return r.createElement(r.Fragment,null,a&&r.createElement(n.Backdrop,{open:!0,onClick:closeInfotip,invisible:!0}),r.createElement(n.Infotip,{color:"warning",placement:"right-start",open:a,disableHoverListener:!0,onClose:closeInfotip,content:r.createElement(s.MissingVariableAlert,{onClose:closeInfotip,onClear:()=>e(null)}),slotProps:{popper:{modifiers:[{name:"offset",options:{offset:[0,24]}}]}}},r.createElement(l.WarningVariableTag,{label:(0,i.__)("Missing variable","elementor"),onClick:()=>t(e=>!e)})))}},"./packages/packages/core/editor-variables/src/components/variable-creation.tsx":function(e,a,t){t.r(a),t.d(a,{VariableCreation:function(){return VariableCreation}});var r=t("react"),o=t("@elementor/editor-controls"),n=t("@elementor/editor-editing-panel"),i=t("@elementor/editor-ui"),s=t("@elementor/icons"),l=t("@elementor/ui"),c=t("@wordpress/i18n"),p=t("./packages/packages/core/editor-variables/src/context/variable-type-context.tsx"),u=t("./packages/packages/core/editor-variables/src/hooks/use-initial-value.ts"),d=t("./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts"),b=t("./packages/packages/core/editor-variables/src/hooks/use-variable-bound-prop.ts"),m=t("./packages/packages/core/editor-variables/src/utils/tracking.ts"),v=t("./packages/packages/core/editor-variables/src/utils/validations.ts"),g=t("./packages/packages/core/editor-variables/src/components/fields/label-field.tsx"),h=t("./packages/packages/core/editor-variables/src/components/ui/form-field.tsx");const f="tiny",VariableCreation=({onGoBack:e,onClose:a})=>{const{icon:t,valueField:k,variableType:y,propTypeUtil:E}=(0,p.useVariableType)(),{setVariableValue:_,path:x}=(0,b.useVariableBoundProp)(),{propType:C}=(0,o.useBoundProp)(),T=(0,u.useInitialValue)(),[V,w]=(0,r.useState)(T),[S,I]=(0,r.useState)(""),[P,A]=(0,r.useState)(""),[R,O]=(0,r.useState)(""),{labelFieldError:B,setLabelFieldError:D}=(0,g.useLabelError)(),closePopover=()=>{w(""),I(""),A(""),O(""),a()},L=""===S.trim()||("string"==typeof V?""===V.trim():!1===Boolean(V))||!!P;return r.createElement(n.PopoverBody,{height:"auto"},r.createElement(i.PopoverHeader,{icon:r.createElement(r.Fragment,null,e&&r.createElement(l.IconButton,{size:f,"aria-label":(0,c.__)("Go Back","elementor"),onClick:e},r.createElement(s.ArrowLeftIcon,{fontSize:f})),r.createElement(t,{fontSize:f})),title:(0,c.__)("Create variable","elementor"),onClose:closePopover}),r.createElement(l.Divider,null),r.createElement(o.PopoverContent,{p:2},r.createElement(h.FormField,{id:"variable-label",label:(0,c.__)("Name","elementor"),errorMsg:B?.message,noticeMsg:(0,v.labelHint)(S)},r.createElement(g.LabelField,{id:"variable-label",value:S,error:B,onChange:e=>{I(e),A("")},onErrorChange:e=>{D({value:S,message:e})}})),r.createElement(h.FormField,{errorMsg:R,label:(0,c.__)("Value","elementor")},r.createElement(l.Typography,{variant:"h5",id:"variable-value-wrapper"},r.createElement(k,{value:V,onChange:e=>{w(e),A(""),O("")},onValidationChange:O,propType:C}))),P&&r.createElement(l.FormHelperText,{error:!0},P)),r.createElement(l.CardActions,{sx:{pt:.5,pb:1}},r.createElement(l.Button,{id:"create-variable-button",size:"small",variant:"contained",disabled:L,onClick:()=>{(0,d.createVariable)({value:V,label:S,type:E.key}).then(e=>{_(e),closePopover()}).catch(e=>{const a=(0,v.mapServerError)(e);if(a&&"label"===a.field)return I(""),void D({value:S,message:a.message});A(v.ERROR_MESSAGES.UNEXPECTED_ERROR)}),(0,m.trackVariableEvent)({varType:y,controlPath:x.join("."),action:"save"})}},(0,c.__)("Create","elementor"))))}},"./packages/packages/core/editor-variables/src/components/variable-edit.tsx":function(e,a,t){t.r(a),t.d(a,{VariableEdit:function(){return VariableEdit}});var r=t("react"),o=t("@elementor/editor-controls"),n=t("@elementor/editor-current-user"),i=t("@elementor/editor-editing-panel"),s=t("@elementor/editor-ui"),l=t("@elementor/icons"),c=t("@elementor/ui"),p=t("@wordpress/i18n"),u=t("./packages/packages/core/editor-variables/src/context/variable-type-context.tsx"),d=t("./packages/packages/core/editor-variables/src/hooks/use-permissions.ts"),b=t("./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts"),m=t("./packages/packages/core/editor-variables/src/hooks/use-variable-bound-prop.ts"),v=t("./packages/packages/core/editor-variables/src/style-variables-repository.ts"),g=t("./packages/packages/core/editor-variables/src/utils/validations.ts"),h=t("./packages/packages/core/editor-variables/src/components/fields/label-field.tsx"),f=t("./packages/packages/core/editor-variables/src/components/ui/delete-confirmation-dialog.tsx"),k=t("./packages/packages/core/editor-variables/src/components/ui/edit-confirmation-dialog.tsx"),y=t("./packages/packages/core/editor-variables/src/components/ui/form-field.tsx");const E="tiny",_=(0,p.__)("Delete variable","elementor"),VariableEdit=({onClose:e,onGoBack:a,onSubmit:t,editId:x})=>{const{icon:C,valueField:T,variableType:V}=(0,u.useVariableType)(),{setVariableValue:w,variableId:S}=(0,m.useVariableBoundProp)(),{propType:I}=(0,o.useBoundProp)(),[P,A]=(0,n.useSuppressedMessage)(k.EDIT_CONFIRMATION_DIALOG_ID),[R,O]=(0,r.useState)(!1),[B,D]=(0,r.useState)(!1),[L,M]=(0,r.useState)(""),[F,U]=(0,r.useState)(""),{labelFieldError:z,setLabelFieldError:N}=(0,h.useLabelError)(),j=(0,b.useVariable)(x);if(!j)throw new Error(`Global ${V} variable not found`);const W=(0,d.usePermissions)(),[H,q]=(0,r.useState)(()=>j.value),[G,$]=(0,r.useState)(()=>j.label);(0,r.useEffect)(()=>(v.styleVariablesRepository.update({[x]:{...j,value:H}}),()=>{v.styleVariablesRepository.update({[x]:{...j}})}),[x,H,j]);const handleSaveVariable=()=>{(0,b.updateVariable)(x,{value:H,label:G}).then(()=>{maybeTriggerBoundPropChange(),t?.()}).catch(e=>{const a=(0,g.mapServerError)(e);if(a&&"label"===a.field)return $(""),void N({value:G,message:a.message});M(g.ERROR_MESSAGES.UNEXPECTED_ERROR)})},maybeTriggerBoundPropChange=()=>{x===S&&w(x)},handleDeleteConfirmation=()=>{O(!0)},X=[];W.canDelete()&&X.push(r.createElement(c.Tooltip,{key:"delete",placement:"top",title:_},r.createElement(c.IconButton,{size:E,onClick:handleDeleteConfirmation,"aria-label":_},r.createElement(l.TrashIcon,{fontSize:E}))));const K=H===j.value&&G===j.label||""===G.trim()||("string"==typeof H?""===H.trim():!1===Boolean(H))||!!L;return r.createElement(r.Fragment,null,r.createElement(i.PopoverBody,{height:"auto"},r.createElement(s.PopoverHeader,{title:(0,p.__)("Edit variable","elementor"),onClose:e,icon:r.createElement(r.Fragment,null,a&&r.createElement(c.IconButton,{size:E,"aria-label":(0,p.__)("Go Back","elementor"),onClick:a},r.createElement(l.ArrowLeftIcon,{fontSize:E})),r.createElement(C,{fontSize:E})),actions:X}),r.createElement(c.Divider,null),r.createElement(o.PopoverContent,{p:2},r.createElement(y.FormField,{id:"variable-label",label:(0,p.__)("Name","elementor"),errorMsg:z?.message,noticeMsg:(0,g.labelHint)(G)},r.createElement(h.LabelField,{id:"variable-label",value:G,error:z,onChange:e=>{$(e),M("")},onErrorChange:e=>{N({value:G,message:e})}})),r.createElement(y.FormField,{errorMsg:F,label:(0,p.__)("Value","elementor")},r.createElement(c.Typography,{variant:"h5"},r.createElement(T,{value:H,onChange:e=>{q(e),M(""),U("")},onValidationChange:U,propType:I}))),L&&r.createElement(c.FormHelperText,{error:!0},L)),r.createElement(c.CardActions,{sx:{pt:.5,pb:1}},r.createElement(c.Button,{size:"small",variant:"contained",disabled:K,onClick:()=>{P?handleSaveVariable():D(!0)}},(0,p.__)("Save","elementor")))),R&&r.createElement(f.DeleteConfirmationDialog,{open:!0,label:G,onConfirm:()=>{(0,b.deleteVariable)(x).then(()=>{maybeTriggerBoundPropChange(),t?.()})},closeDialog:()=>{O(!1)}}),B&&!P&&r.createElement(k.EditConfirmationDialog,{closeDialog:()=>{D(!1)},onConfirm:handleSaveVariable,onSuppressMessage:A}))}},"./packages/packages/core/editor-variables/src/components/variable-restore.tsx":function(e,a,t){t.r(a),t.d(a,{VariableRestore:function(){return VariableRestore}});var r=t("react"),o=t("@elementor/editor-controls"),n=t("@elementor/editor-editing-panel"),i=t("@elementor/editor-ui"),s=t("@elementor/ui"),l=t("@wordpress/i18n"),c=t("./packages/packages/core/editor-variables/src/context/variable-selection-popover.context.tsx"),p=t("./packages/packages/core/editor-variables/src/context/variable-type-context.tsx"),u=t("./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts"),d=t("./packages/packages/core/editor-variables/src/hooks/use-variable-bound-prop.ts"),b=t("./packages/packages/core/editor-variables/src/utils/validations.ts"),m=t("./packages/packages/core/editor-variables/src/components/fields/label-field.tsx"),v=t("./packages/packages/core/editor-variables/src/components/ui/form-field.tsx");const VariableRestore=({variableId:e,onClose:a,onSubmit:t})=>{const{icon:g,valueField:h,variableType:f}=(0,p.useVariableType)(),{setVariableValue:k}=(0,d.useVariableBoundProp)(),{propType:y}=(0,o.useBoundProp)(),E=(0,u.useVariable)(e);if(!E)throw new Error(`Global ${f} variable not found`);const[_,x]=(0,r.useState)(""),[C,T]=(0,r.useState)(""),[V,w]=(0,r.useState)(E.label),[S,I]=(0,r.useState)(E.value),{labelFieldError:P,setLabelFieldError:A}=(0,m.useLabelError)({value:E.label,message:b.ERROR_MESSAGES.DUPLICATED_LABEL}),R=S===E.value&&V===E.label||""===V.trim()||("string"==typeof S?""===S.trim():!1===Boolean(S))||!!_;return r.createElement(c.PopoverContentRefContextProvider,null,r.createElement(n.PopoverBody,{height:"auto"},r.createElement(i.PopoverHeader,{icon:r.createElement(g,{fontSize:"tiny"}),title:(0,l.__)("Restore variable","elementor"),onClose:a}),r.createElement(s.Divider,null),r.createElement(o.PopoverContent,{p:2},r.createElement(v.FormField,{id:"variable-label",label:(0,l.__)("Name","elementor"),errorMsg:P?.message,noticeMsg:(0,b.labelHint)(V)},r.createElement(m.LabelField,{id:"variable-label",value:V,error:P,onChange:e=>{w(e),x("")},onErrorChange:e=>{A({value:V,message:e})}})),r.createElement(v.FormField,{errorMsg:C,label:(0,l.__)("Value","elementor")},r.createElement(s.Typography,{variant:"h5"},r.createElement(h,{value:S,onChange:e=>{I(e),x(""),T("")},onValidationChange:T,propType:y}))),_&&r.createElement(s.FormHelperText,{error:!0},_)),r.createElement(s.CardActions,{sx:{pt:.5,pb:1}},r.createElement(s.Button,{size:"small",variant:"contained",disabled:R,onClick:()=>{(0,u.restoreVariable)(e,V,S).then(()=>{k(e),t?.()}).catch(e=>{const a=(0,b.mapServerError)(e);if(a&&"label"===a.field)return w(""),void A({value:V,message:a.message});x(b.ERROR_MESSAGES.UNEXPECTED_ERROR)})}},(0,l.__)("Restore","elementor")))))}},"./packages/packages/core/editor-variables/src/components/variable-selection-popover.tsx":function(e,a,t){t.r(a),t.d(a,{VariableSelectionPopover:function(){return VariableSelectionPopover}});var r=t("react"),o=t("@elementor/editor-v1-adapters"),n=t("./packages/packages/core/editor-variables/src/context/variable-selection-popover.context.tsx"),i=t("./packages/packages/core/editor-variables/src/context/variable-type-context.tsx"),s=t("./packages/packages/core/editor-variables/src/hooks/use-permissions.ts"),l=t("./packages/packages/core/editor-variables/src/components/variable-creation.tsx"),c=t("./packages/packages/core/editor-variables/src/components/variable-edit.tsx"),p=t("./packages/packages/core/editor-variables/src/components/variables-manager/variables-manager-panel.tsx"),u=t("./packages/packages/core/editor-variables/src/components/variables-selection.tsx");const d="list",b="add",m="edit",VariableSelectionPopover=({closePopover:e,propTypeKey:a,selectedVariable:t})=>{const[v,g]=(0,r.useState)(d),[h,f]=(0,r.useState)(""),{open:k}=(0,p.usePanelActions)(),y=(0,o.isExperimentActive)("e_variables_manager")?()=>{k()}:void 0;return r.createElement(i.VariableTypeProvider,{propTypeKey:a},r.createElement(n.PopoverContentRefContextProvider,null,function RenderView(e){const a=(0,s.usePermissions)(),t={onClose:()=>{e.closePopover()},onGoBack:()=>{e.setCurrentView(d)}};a.canAdd()&&(t.onAdd=()=>{e.setCurrentView(b)});a.canEdit()&&(t.onEdit=a=>{e.setEditId(a),e.setCurrentView(m)});a.canManageSettings()&&e.onSettings&&(t.onSettings=()=>{e.closePopover(),e.onSettings?.()});const handleSubmitOnEdit=()=>{e?.selectedVariable?.key===e.editId?t.onClose():t.onGoBack?.()};if(d===e.currentView)return r.createElement(u.VariablesSelection,{closePopover:t.onClose,onAdd:t.onAdd,onEdit:t.onEdit,onSettings:t.onSettings});if(b===e.currentView)return r.createElement(l.VariableCreation,{onGoBack:t.onGoBack,onClose:t.onClose});if(m===e.currentView)return r.createElement(c.VariableEdit,{editId:e.editId,onGoBack:t.onGoBack,onClose:t.onClose,onSubmit:handleSubmitOnEdit});return null}({propTypeKey:a,currentView:v,selectedVariable:t,editId:h,setEditId:f,setCurrentView:g,closePopover:e,onSettings:y})))}},"./packages/packages/core/editor-variables/src/components/variables-manager/hooks/use-auto-edit.ts":function(e,a,t){t.r(a),t.d(a,{useAutoEdit:function(){return useAutoEdit}});var r=t("react");const useAutoEdit=()=>{const[e,a]=(0,r.useState)(void 0);return{autoEditVariableId:e,startAutoEdit:(0,r.useCallback)(e=>{a(e)},[]),handleAutoEditComplete:(0,r.useCallback)(()=>{setTimeout(()=>{a(void 0)},100)},[])}}},"./packages/packages/core/editor-variables/src/components/variables-manager/hooks/use-error-navigation.ts":function(e,a,t){t.r(a),t.d(a,{useErrorNavigation:function(){return useErrorNavigation}});var r=t("react");const useErrorNavigation=()=>{const e=(0,r.useRef)(0);return{createNavigationCallback:(0,r.useCallback)((a,t,r)=>()=>{if(!a?.length)return;const o=e.current,n=a[o];if(n){t(n);const i=o+1;i>=a.length?(r(),e.current=0):e.current=i}},[]),resetNavigation:(0,r.useCallback)(()=>{e.current=0},[])}}},"./packages/packages/core/editor-variables/src/components/variables-manager/hooks/use-variables-manager-state.ts":function(e,a,t){t.r(a),t.d(a,{useVariablesManagerState:function(){return useVariablesManagerState}});var r=t("react"),o=t("./packages/packages/core/editor-variables/src/batch-operations.ts"),n=t("./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts"),i=t("./packages/packages/core/editor-variables/src/service.ts"),s=t("./packages/packages/core/editor-variables/src/utils/filter-by-search.ts");const useVariablesManagerState=()=>{const[e,a]=(0,r.useState)(()=>(0,n.getVariables)(!1)),[t,l]=(0,r.useState)([]),[c,p]=(0,r.useState)(!1),[u,d]=(0,r.useState)(!1),[b,m]=(0,r.useState)(!1),[v,g]=(0,r.useState)(""),h=(0,r.useCallback)(t=>{a({...e,...t}),d(!0)},[e]),f=(0,r.useCallback)((e,t,r)=>{const n=(0,o.generateTempId)(),i={id:n,label:t.trim(),value:r.trim(),type:e};return a(e=>({...e,[n]:i})),d(!0),n},[]),k=(0,r.useCallback)(e=>{l(a=>[...a,e]),a(a=>({...a,[e]:{...a[e],deleted:!0}})),d(!0)},[]),y=(0,r.useCallback)(async()=>{const t=(0,n.getVariables)(!1);m(!0);const r=await i.service.batchSave(t,e);if(r.success){await i.service.load();const e=i.service.variables();a(e),l([]),d(!1)}return{success:r.success}},[e]);return{variables:(()=>{const a=Object.entries(e).map(([e,a])=>({...a,id:e})),t=(0,s.filterBySearch)(a,v);return Object.fromEntries(t.map(({id:e,...a})=>[e,a]))})(),deletedVariables:t,isDirty:u,isSaveDisabled:c,handleOnChange:h,createVariable:f,handleDeleteVariable:k,handleSave:y,isSaving:b,handleSearch:e=>{g(e)},searchValue:v,setIsSaving:m,setIsSaveDisabled:p}}},"./packages/packages/core/editor-variables/src/components/variables-manager/ui/variable-edit-menu.tsx":function(e,a,t){t.r(a),t.d(a,{VariableEditMenu:function(){return VariableEditMenu}});var r=t("react"),o=t("@elementor/icons"),n=t("@elementor/ui");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},_extends.apply(null,arguments)}const VariableEditMenu=({menuActions:e,disabled:a,itemId:t})=>{const i=(0,n.usePopupState)({variant:"popover"});return r.createElement(r.Fragment,null,r.createElement(n.IconButton,_extends({},(0,n.bindTrigger)(i),{disabled:a,size:"tiny"}),r.createElement(o.DotsVerticalIcon,{fontSize:"tiny"})),r.createElement(n.Menu,_extends({disablePortal:!0,MenuListProps:{dense:!0},PaperProps:{elevation:6}},(0,n.bindMenu)(i),{anchorEl:i.anchorEl,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},open:i.isOpen,onClose:i.close}),e.map(e=>r.createElement(n.MenuItem,{key:e.name,onClick:()=>{e.onClick?.(t),i.close()},sx:{color:e.color,gap:1}},e.icon&&(0,r.createElement)(e.icon,{fontSize:"inherit"})," ",e.name))))}},"./packages/packages/core/editor-variables/src/components/variables-manager/ui/variable-table-cell.tsx":function(e,a,t){t.r(a),t.d(a,{VariableTableCell:function(){return VariableTableCell}});var r=t("react"),o=t("@elementor/ui");const VariableTableCell=({children:e,isHeader:a,width:t,maxWidth:n,align:i,noPadding:s,sx:l})=>{const c={maxWidth:n??150,cursor:"initial",typography:"caption",...a&&{color:"text.primary",fontWeight:"bold"},...a&&!s&&{padding:"10px 16px"},...t&&{width:t},...l};return r.createElement(o.TableCell,{size:"small",padding:s?"none":void 0,align:i,sx:c},e)}},"./packages/packages/core/editor-variables/src/components/variables-manager/variable-editable-cell.tsx":function(e,a,t){t.r(a),t.d(a,{VariableEditableCell:function(){return i}});var r=t("react"),o=t("@elementor/ui"),n=t("./packages/packages/core/editor-variables/src/components/fields/label-field.tsx");const i=r.memo(({initialValue:e,children:a,editableElement:t,onChange:i,prefixElement:s,autoEdit:l=!1,onRowRef:c,onAutoEditComplete:p,gap:u=1,fieldType:d})=>{const[b,m]=(0,r.useState)(e),[v,g]=(0,r.useState)(!1),{labelFieldError:h,setLabelFieldError:f}=(0,n.useLabelError)(),[k,y]=(0,r.useState)(""),E=(0,r.useRef)(null),_=(0,r.useCallback)(()=>{"label"===d&&h?.message||"value"===d&&k||i(b),g(!1)},[b,i,d,h,k]);(0,r.useEffect)(()=>{c?.(E?.current)},[c]),(0,r.useEffect)(()=>{l&&!v&&(g(!0),p?.())},[l,v,p]);const handleDoubleClick=()=>{g(!0)},handleKeyDown=e=>{"Enter"===e.key?_():"Escape"===e.key&&g(!1)," "!==e.key||v||(e.preventDefault(),g(!0))},x=(0,r.useCallback)(e=>{m(e)},[]),C=(0,r.useCallback)(e=>{"label"===d?f({value:b,message:e}):y(e)},[d,b,f,y]);let T;"label"===d?T=h:"value"===d&&(T={value:b,message:k});const V=t({value:b,onChange:x,onValidationChange:C,error:T});return v?r.createElement(o.ClickAwayListener,{onClickAway:_},r.createElement(o.Stack,{ref:E,direction:"row",alignItems:"center",gap:u,onDoubleClick:handleDoubleClick,onKeyDown:handleKeyDown,tabIndex:0,role:"button","aria-label":"Double click or press Space to edit"},s,V)):r.createElement(o.Stack,{ref:E,direction:"row",alignItems:"center",gap:u,onDoubleClick:handleDoubleClick,onKeyDown:handleKeyDown,tabIndex:0,role:"button","aria-label":"Double click or press Space to edit"},s,a)})},"./packages/packages/core/editor-variables/src/components/variables-manager/variables-manager-create-menu.tsx":function(e,a,t){t.r(a),t.d(a,{SIZE:function(){return l},VariableManagerCreateMenu:function(){return VariableManagerCreateMenu}});var r=t("react"),o=t("@elementor/icons"),n=t("@elementor/ui"),i=t("@wordpress/i18n"),s=t("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},_extends.apply(null,arguments)}const l="tiny",VariableManagerCreateMenu=({variables:e,onCreate:a,disabled:t,menuState:c})=>{const p=(0,r.useRef)(null),u=(0,s.getVariableTypes)(),d=Object.entries(u).map(([t,r])=>{const o=r.variableType.charAt(0).toUpperCase()+r.variableType.slice(1);return{key:t,name:o,icon:r.icon,onClick:()=>{const o=getDefaultName(e,t,r.variableType);a(t,o,r.defaultValue||"")}}});return r.createElement(r.Fragment,null,r.createElement(n.IconButton,_extends({},(0,n.bindTrigger)(c),{ref:p,disabled:t,size:l,"aria-label":(0,i.__)("Add variable","elementor")}),r.createElement(o.PlusIcon,{fontSize:l})),r.createElement(n.Menu,_extends({disablePortal:!0,MenuListProps:{dense:!0},PaperProps:{elevation:6}},(0,n.bindMenu)(c),{anchorEl:p.current,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},"data-testid":"variable-manager-create-menu"}),d.map(e=>r.createElement(n.MenuItem,{key:e.key,onClick:()=>{e.onClick?.(),c.close()},sx:{gap:1.5}},(0,r.createElement)(e.icon,{fontSize:l,color:"action"}),r.createElement(n.Typography,{variant:"caption",color:"text.primary"},e.name)))))},getDefaultName=(e,a,t)=>{const r=Object.values(e).filter(e=>e.type===a).map(e=>e.label);let o=1,n=`${t}-${o}`;for(;r.includes(n);)o++,n=`${t}-${o}`;return n}},"./packages/packages/core/editor-variables/src/components/variables-manager/variables-manager-panel.tsx":function(e,a,t){t.r(a),t.d(a,{VariablesManagerPanel:function(){return VariablesManagerPanel},panel:function(){return y},usePanelActions:function(){return E}});var r=t("react"),o=t("@elementor/editor-panels"),n=t("@elementor/editor-ui"),i=t("@elementor/editor-v1-adapters"),s=t("@elementor/icons"),l=t("@elementor/ui"),c=t("@wordpress/i18n"),p=t("./packages/packages/core/editor-variables/src/utils/validations.ts"),u=t("./packages/packages/core/editor-variables/src/components/ui/delete-confirmation-dialog.tsx"),d=t("./packages/packages/core/editor-variables/src/components/ui/empty-state.tsx"),b=t("./packages/packages/core/editor-variables/src/components/ui/no-search-results.tsx"),m=t("./packages/packages/core/editor-variables/src/components/variables-manager/hooks/use-auto-edit.ts"),v=t("./packages/packages/core/editor-variables/src/components/variables-manager/hooks/use-error-navigation.ts"),g=t("./packages/packages/core/editor-variables/src/components/variables-manager/hooks/use-variables-manager-state.ts"),h=t("./packages/packages/core/editor-variables/src/components/variables-manager/variables-manager-create-menu.tsx"),f=t("./packages/packages/core/editor-variables/src/components/variables-manager/variables-manager-table.tsx");const k="variables-manager",{panel:y,usePanelActions:E}=(0,o.__createPanel)({id:k,component:VariablesManagerPanel,allowedEditModes:["edit",k],onOpen:()=>{(0,i.changeEditMode)(k)},onClose:()=>{(0,i.changeEditMode)("edit")},isOpenPreviousElement:!0});function VariablesManagerPanel(){const{close:e}=E(),{open:a,close:t,isOpen:i}=(0,n.useDialog)(),k=(0,l.usePopupState)({variant:"popover"}),{variables:y,isDirty:_,searchValue:x,isSaveDisabled:C,handleOnChange:T,createVariable:V,handleDeleteVariable:w,handleSave:S,isSaving:I,handleSearch:P,setIsSaving:A,setIsSaveDisabled:R}=(0,g.useVariablesManagerState)(),{autoEditVariableId:O,startAutoEdit:B,handleAutoEditComplete:D}=(0,m.useAutoEdit)(),{createNavigationCallback:L,resetNavigation:M}=(0,v.useErrorNavigation)(),[F,U]=(0,r.useState)(null),[z,N]=(0,r.useState)(null);usePreventUnload(_);const j=(0,r.useCallback)((e,a,t)=>{const r=V(e,a,t);r&&B(r)},[V,B]),handleSaveClick=async()=>{try{return N(null),M(),await S()}catch(e){const a=(0,p.mapServerError)(e),t=a?.action?.data?.duplicatedIds;return a&&"label"===a.field&&(t&&a.action&&(a.action.callback=L(t,B,()=>{R(!1)})),N(a),R(!0),M()),{success:!1,error:a}}finally{A(!1)}},W=(0,r.useCallback)(e=>{w(e),U(null)},[w]),H=[{name:(0,c.__)("Delete","elementor"),icon:s.TrashIcon,color:"error.main",onClick:e=>{y[e]&&U({id:e,label:y[e].label})}}],q=Object.values(y).some(e=>!e.deleted);return r.createElement(n.ThemeProvider,null,r.createElement(o.Panel,null,r.createElement(o.PanelHeader,{sx:{height:"unset"}},r.createElement(l.Stack,{width:"100%",direction:"column",alignItems:"center"},r.createElement(l.Stack,{p:1,pl:2,width:"100%",direction:"row",alignItems:"center"},r.createElement(l.Stack,{width:"100%",direction:"row",gap:1},r.createElement(o.PanelHeaderTitle,{sx:{display:"flex",alignItems:"center",gap:.5}},r.createElement(s.ColorFilterIcon,{fontSize:"inherit"}),(0,c.__)("Variables Manager","elementor"))),r.createElement(l.Stack,{direction:"row",gap:.5,alignItems:"center"},r.createElement(h.VariableManagerCreateMenu,{onCreate:j,variables:y,menuState:k}),r.createElement(l.CloseButton,{"aria-label":"Close",slotProps:{icon:{fontSize:h.SIZE}},onClick:()=>{_?a():e()}}))),r.createElement(l.Stack,{width:"100%",direction:"row",gap:1},r.createElement(n.SearchField,{sx:{display:"flex",flex:1},placeholder:(0,c.__)("Search","elementor"),value:x,onSearch:P})),r.createElement(l.Divider,{sx:{width:"100%"}}))),r.createElement(o.PanelBody,{sx:{display:"flex",flexDirection:"column",height:"100%"}},q&&r.createElement(f.VariablesManagerTable,{menuActions:H,variables:y,onChange:T,autoEditVariableId:O,onAutoEditComplete:D,onFieldError:R}),!q&&x&&r.createElement(b.NoSearchResults,{searchValue:x,onClear:()=>P(""),icon:r.createElement(s.ColorFilterIcon,{fontSize:"large"})}),!q&&!x&&r.createElement(d.EmptyState,{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:r.createElement(s.ColorFilterIcon,{fontSize:"large"}),onAdd:k.open})),r.createElement(o.PanelFooter,null,r.createElement(l.Infotip,{placement:"right",open:!!z,content:z?r.createElement(l.Alert,{severity:z.severity??"error",action:z.action?.label?r.createElement(l.AlertAction,{onClick:z.action.callback},z.action.label):void 0,onClose:z.action?.label?void 0:()=>{N(null),R(!1)},icon:z.IconComponent?r.createElement(z.IconComponent,null):r.createElement(s.AlertTriangleFilledIcon,null)},r.createElement(l.AlertTitle,null,z.message),z.action?.message):null,arrow:!1,slotProps:{popper:{modifiers:[{name:"offset",options:{offset:[-10,10]}}]}}},r.createElement(l.Button,{fullWidth:!0,size:"small",color:"global",variant:"contained",disabled:C||!_||I,onClick:handleSaveClick,loading:I},(0,c.__)("Save changes","elementor"))))),F&&r.createElement(u.DeleteConfirmationDialog,{open:!0,label:F.label,onConfirm:()=>W(F.id),closeDialog:()=>U(null)}),i&&r.createElement(n.SaveChangesDialog,null,r.createElement(n.SaveChangesDialog.Title,{onClose:t},(0,c.__)("You have unsaved changes","elementor")),r.createElement(n.SaveChangesDialog.Content,null,r.createElement(n.SaveChangesDialog.ContentText,null,(0,c.__)("To avoid losing your updates, save your changes before leaving.","elementor"))),r.createElement(n.SaveChangesDialog.Actions,{actions:{discard:{label:(0,c.__)("Discard","elementor"),action:()=>{t(),e()}},confirm:{label:(0,c.__)("Save","elementor"),action:async()=>{const a=await handleSaveClick();t(),a?.success&&e()}}}})))}const usePreventUnload=e=>{(0,r.useEffect)(()=>{const handleBeforeUnload=a=>{e&&a.preventDefault()};return window.addEventListener("beforeunload",handleBeforeUnload),()=>{window.removeEventListener("beforeunload",handleBeforeUnload)}},[e])}},"./packages/packages/core/editor-variables/src/components/variables-manager/variables-manager-table.tsx":function(e,a,t){t.r(a),t.d(a,{VariablesManagerTable:function(){return VariablesManagerTable}});var r=t("react"),o=t("@elementor/editor-ui"),n=t("@elementor/icons"),i=t("@elementor/ui"),s=t("@wordpress/i18n"),l=t("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts"),c=t("./packages/packages/core/editor-variables/src/components/fields/label-field.tsx"),p=t("./packages/packages/core/editor-variables/src/components/variables-manager/ui/variable-edit-menu.tsx"),u=t("./packages/packages/core/editor-variables/src/components/variables-manager/ui/variable-table-cell.tsx"),d=t("./packages/packages/core/editor-variables/src/components/variables-manager/variable-editable-cell.tsx");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},_extends.apply(null,arguments)}const VariablesManagerTable=({menuActions:e,variables:a,onChange:t,autoEditVariableId:b,onAutoEditComplete:m,onFieldError:v})=>{const g=(0,r.useRef)(null),h=(0,r.useRef)(new Map);(0,r.useEffect)(()=>{if(b&&g.current){const e=h.current.get(b);e&&setTimeout(()=>{e.scrollIntoView({behavior:"smooth",block:"center",inline:"nearest"})},100)}},[b]);const handleRowRef=e=>a=>{a?h.current.set(e,a):h.current.delete(e)},f=Object.keys(a).sort(function sortVariablesOrder(e){return(a,t)=>(e[a]?.order??Number.MAX_SAFE_INTEGER)-(e[t]?.order??Number.MAX_SAFE_INTEGER)}(a)),k=f.filter(e=>!a[e].deleted).map(e=>{const t=a[e],r=(0,l.getVariableType)(t.type);return{id:e,type:t.type,name:t.label,value:t.value,...r}}),y={minWidth:250,tableLayout:"fixed"};return r.createElement(i.TableContainer,{ref:g,sx:{overflow:"initial"}},r.createElement(i.Table,{sx:y,"aria-label":"Variables manager list with drag and drop reordering",stickyHeader:!0},r.createElement(i.TableHead,null,r.createElement(i.TableRow,null,r.createElement(u.VariableTableCell,{isHeader:!0,noPadding:!0,width:10,maxWidth:10}),r.createElement(u.VariableTableCell,{isHeader:!0},(0,s.__)("Name","elementor")),r.createElement(u.VariableTableCell,{isHeader:!0},(0,s.__)("Value","elementor")),r.createElement(u.VariableTableCell,{isHeader:!0,noPadding:!0,width:16,maxWidth:16}))),r.createElement(i.TableBody,null,r.createElement(i.UnstableSortableProvider,{value:f,onChange:e=>{const r={...a};e.forEach((e,a)=>{const t=r[e];t&&(r[e]=Object.assign({},t,{order:a+1}))}),t(r)},variant:"static",restrictAxis:!0,dragOverlay:({children:e,...a})=>r.createElement(i.Table,_extends({sx:y},a),r.createElement(i.TableBody,null,e))},k.map(s=>r.createElement(i.UnstableSortableItem,{key:s.id,id:s.id,render:({itemProps:l,showDropIndication:g,triggerProps:h,itemStyle:f,triggerStyle:k,isDragged:y,dropPosition:E,setTriggerRef:_,isSorting:x})=>{const C=g&&"before"===E,T=g&&"after"===E;return r.createElement(i.TableRow,_extends({},l,{selected:y,sx:{...C&&{"& td, & th":{borderTop:"2px solid",borderTopColor:"primary.main"}},...T&&{"& 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:{...f,...k}}),r.createElement(u.VariableTableCell,{noPadding:!0,width:10,maxWidth:10},r.createElement(i.IconButton,_extends({size:"small",ref:_},h,{disabled:x,draggable:!0}),r.createElement(n.GripVerticalIcon,{fontSize:"inherit"}))),r.createElement(u.VariableTableCell,null,r.createElement(d.VariableEditableCell,{initialValue:s.name,onChange:e=>{e!==s.name&&t({...a,[s.id]:{...a[s.id],label:e}})},prefixElement:(0,r.createElement)(s.icon,{fontSize:"inherit"}),editableElement:({value:e,onChange:t,onValidationChange:o,error:n})=>r.createElement(c.LabelField,{id:"variable-label-"+s.id,size:"tiny",value:e,onChange:t,onErrorChange:e=>{o?.(e),v?.(!!e)},error:n,focusOnShow:!0,selectOnShow:b===s.id,showWarningInfotip:!0,variables:a}),autoEdit:b===s.id,onRowRef:handleRowRef(s.id),onAutoEditComplete:b===s.id?m:void 0,fieldType:"label"},r.createElement(o.EllipsisWithTooltip,{title:s.name,sx:{border:"4px solid transparent"}},s.name))),r.createElement(u.VariableTableCell,null,r.createElement(d.VariableEditableCell,{initialValue:s.value,onChange:e=>{e!==s.value&&t({...a,[s.id]:{...a[s.id],value:e}})},editableElement:({value:e,onChange:a,onValidationChange:t,error:r})=>s.valueField({value:e,onChange:a,onValidationChange:e=>{t?.(e),v?.(!!e)},error:r}),onRowRef:handleRowRef(s.id),gap:.25,fieldType:"value"},s.startIcon&&s.startIcon({value:s.value}),r.createElement(o.EllipsisWithTooltip,{title:s.value,sx:{border:"4px solid transparent",lineHeight:"1",pt:.25}},s.value))),r.createElement(u.VariableTableCell,{align:"right",noPadding:!0,width:16,maxWidth:16,sx:{paddingInlineEnd:1}},r.createElement(i.Stack,{role:"toolbar",direction:"row",justifyContent:"flex-end"},r.createElement(p.VariableEditMenu,{menuActions:e,disabled:x,itemId:s.id}))))}}))))))}},"./packages/packages/core/editor-variables/src/components/variables-repeater-item-slot.tsx":function(e,a,t){t.r(a),t.d(a,{BackgroundRepeaterColorIndicator:function(){return BackgroundRepeaterColorIndicator},BackgroundRepeaterLabel:function(){return BackgroundRepeaterLabel},BoxShadowRepeaterColorIndicator:function(){return BoxShadowRepeaterColorIndicator}});var r=t("react"),o=t("./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts"),n=t("./packages/packages/core/editor-variables/src/components/ui/color-indicator.tsx");const useColorVariable=e=>{const a=e?.value?.color?.value;return(0,o.useVariable)(a||"")},BackgroundRepeaterColorIndicator=({value:e})=>{const a=useColorVariable(e);return r.createElement(n.ColorIndicator,{component:"span",size:"inherit",value:a?.value})},BackgroundRepeaterLabel=({value:e})=>{const a=useColorVariable(e);return r.createElement("span",null,a?.label)},BoxShadowRepeaterColorIndicator=({value:e})=>{const a=useColorVariable(e);return r.createElement(n.ColorIndicator,{component:"span",size:"inherit",value:a?.value})}},"./packages/packages/core/editor-variables/src/components/variables-selection.tsx":function(e,a,t){t.r(a),t.d(a,{VariablesSelection:function(){return VariablesSelection}});var r=t("react"),o=t("@elementor/editor-editing-panel"),n=t("@elementor/editor-ui"),i=t("@elementor/icons"),s=t("@elementor/ui"),l=t("@wordpress/i18n"),c=t("./packages/packages/core/editor-variables/src/context/variable-type-context.tsx"),p=t("./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts"),u=t("./packages/packages/core/editor-variables/src/hooks/use-variable-bound-prop.ts"),d=t("./packages/packages/core/editor-variables/src/utils/tracking.ts"),b=t("./packages/packages/core/editor-variables/src/components/ui/empty-state.tsx"),m=t("./packages/packages/core/editor-variables/src/components/ui/menu-item-content.tsx"),v=t("./packages/packages/core/editor-variables/src/components/ui/no-search-results.tsx"),g=t("./packages/packages/core/editor-variables/src/components/ui/styled-menu-list.tsx");const h="tiny",f=(0,l.__)("Create variable","elementor"),k=(0,l.__)("Variables Manager","elementor"),VariablesSelection=({closePopover:e,onAdd:a,onEdit:t,onSettings:y})=>{const{icon:E,startIcon:_,variableType:x,propTypeUtil:C}=(0,c.useVariableType)(),{value:T,setValue:V,path:w}=(0,u.useVariableBoundProp)(),[S,I]=(0,r.useState)(""),{list:P,hasMatches:A,isSourceNotEmpty:R,hasNoCompatibleVariables:O}=(0,p.useFilteredVariables)(S,C.key),onAddAndTrack=()=>{a?.(),(0,d.trackVariableEvent)({varType:x,controlPath:w.join("."),action:"add"})},B=[];a&&B.push(r.createElement(s.Tooltip,{key:"add",placement:"top",title:f},r.createElement(s.IconButton,{id:"add-variable-button",size:h,onClick:onAddAndTrack,"aria-label":f},r.createElement(i.PlusIcon,{fontSize:h})))),y&&B.push(r.createElement(s.Tooltip,{key:"settings",placement:"top",title:k},r.createElement(s.IconButton,{id:"variables-manager-button",size:h,onClick:y,"aria-label":k},r.createElement(i.SettingsIcon,{fontSize:h}))));const D=_||(()=>r.createElement(E,{fontSize:h})),L=P.map(({value:e,label:a,key:o})=>({type:"item",value:o,label:a,icon:r.createElement(D,{value:e}),secondaryText:e,onEdit:t?()=>t?.(o):void 0})),M=(0,l.sprintf)((0,l.__)("Create your first %s variable","elementor"),x);return r.createElement(o.PopoverBody,null,r.createElement(n.PopoverHeader,{title:(0,l.__)("Variables","elementor"),icon:r.createElement(i.ColorFilterIcon,{fontSize:h}),onClose:e,actions:B}),R&&r.createElement(n.SearchField,{value:S,onSearch:e=>{I(e)},placeholder:(0,l.__)("Search","elementor")}),r.createElement(s.Divider,null),R&&A&&r.createElement(n.PopoverMenuList,{items:L,onSelect:a=>{V(a),(0,d.trackVariableEvent)({varType:x,controlPath:w.join("."),action:"connect"}),e()},onClose:()=>{},selectedValue:T,"data-testid":`${x}-variables-list`,menuListTemplate:g.VariablesStyledMenuList,menuItemContentTemplate:e=>r.createElement(m.MenuItemContent,{item:e})}),!A&&R&&r.createElement(v.NoSearchResults,{searchValue:S,onClear:()=>{I("")},icon:r.createElement(E,{fontSize:"large"})}),!R&&!O&&r.createElement(b.EmptyState,{title:M,message:(0,l.__)("Variables are saved attributes that you can apply anywhere on your site.","elementor"),icon:r.createElement(E,{fontSize:"large"}),onAdd:a}),O&&r.createElement(b.EmptyState,{title:(0,l.__)("No compatible variables","elementor"),message:(0,l.__)("Looks like none of your variables work with this control. Create a new variable to use it here.","elementor"),icon:r.createElement(E,{fontSize:"large"}),onAdd:a}))}},"./packages/packages/core/editor-variables/src/context/variable-selection-popover.context.tsx":function(e,a,t){t.r(a),t.d(a,{PopoverContentRefContextProvider:function(){return PopoverContentRefContextProvider},usePopoverContentRef:function(){return usePopoverContentRef}});var r=t("react"),o=t("@elementor/ui");const n=(0,r.createContext)(null),PopoverContentRefContextProvider=({children:e})=>{const[a,t]=(0,r.useState)(null);return r.createElement(n.Provider,{value:a},r.createElement(o.Box,{ref:t},e))},usePopoverContentRef=()=>(0,r.useContext)(n)},"./packages/packages/core/editor-variables/src/context/variable-type-context.tsx":function(e,a,t){t.r(a),t.d(a,{VariableTypeProvider:function(){return VariableTypeProvider},useVariableType:function(){return useVariableType}});var r=t("react"),o=t("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");const n=(0,r.createContext)(null);function VariableTypeProvider({children:e,propTypeKey:a}){return r.createElement(n.Provider,{value:a},e)}function useVariableType(){const e=(0,r.useContext)(n);if(null===e)throw new Error("useVariableType must be used within a VariableTypeProvider");return(0,o.getVariableType)(e)}},"./packages/packages/core/editor-variables/src/controls/variable-control.tsx":function(e,a,t){t.r(a),t.d(a,{VariableControl:function(){return VariableControl}});var r=t("react"),o=t("@elementor/editor-controls"),n=t("./packages/packages/core/editor-variables/src/components/ui/variable/assigned-variable.tsx"),i=t("./packages/packages/core/editor-variables/src/components/ui/variable/deleted-variable.tsx"),s=t("./packages/packages/core/editor-variables/src/components/ui/variable/mismatch-variable.tsx"),l=t("./packages/packages/core/editor-variables/src/components/ui/variable/missing-variable.tsx"),c=t("./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts"),p=t("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");const VariableControl=()=>{const e=(0,o.useBoundProp)(),a=e.value??e.placeholder,t=(0,c.useVariable)(a?.value);if(!t)return r.createElement(l.MissingVariable,null);const{$$type:u}=a;if(t?.deleted)return r.createElement(i.DeletedVariable,{variable:t,propTypeKey:u});const{isCompatible:d}=(0,p.getVariableType)(t.type);return d&&!d(e?.propType,t)?r.createElement(s.MismatchVariable,{variable:t}):r.createElement(n.AssignedVariable,{variable:t,propTypeKey:u})}},"./packages/packages/core/editor-variables/src/create-style-variables-repository.ts":function(e,a,t){t.r(a),t.d(a,{createStyleVariablesRepository:function(){return createStyleVariablesRepository}});var r=t("./packages/packages/core/editor-variables/src/prop-types/font-variable-prop-type.ts"),o=t("./packages/packages/core/editor-variables/src/sync/enqueue-font.ts");const createStyleVariablesRepository=()=>{const e={};let a;const shouldUpdate=(a,t)=>!(a in e)||(e[a].label!==t.label||(e[a].value!==t.value||(!(e[a]?.deleted||!t?.deleted)||!(!e[a]?.deleted||t?.deleted)))),fontEnqueue=e=>{if(e)try{(0,o.enqueueFont)(e)}catch{}};return{subscribe:e=>(a=e,()=>{a=()=>{}}),update:t=>{(a=>{let t=!1;for(const[o,n]of Object.entries(a))shouldUpdate(o,n)&&(e[o]=n,n.type===r.fontVariablePropTypeUtil.key&&fontEnqueue(n.value),t=!0);return t})(t)&&"function"==typeof a&&a({...e})}}}},"./packages/packages/core/editor-variables/src/hooks/use-initial-value.ts":function(e,a,t){t.r(a),t.d(a,{useInitialValue:function(){return useInitialValue}});var r=t("@elementor/editor-controls"),o=t("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts"),n=t("./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts");const useInitialValue=()=>{const{value:e}=(0,r.useBoundProp)(),a=(0,o.hasVariableType)(e?.$$type)&&Boolean(e?.value),t=(0,n.useVariable)(a?e.value:"");return a?t?t.value:"":e?.value??""}},"./packages/packages/core/editor-variables/src/hooks/use-permissions.ts":function(e,a,t){t.r(a),t.d(a,{usePermissions:function(){return usePermissions}});var r=t("@elementor/editor-current-user");const usePermissions=()=>{const{canUser:e}=(0,r.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")}}},"./packages/packages/core/editor-variables/src/hooks/use-prop-variable-action.tsx":function(e,a,t){t.r(a),t.d(a,{usePropVariableAction:function(){return usePropVariableAction}});var r=t("react"),o=t("@elementor/editor-editing-panel"),n=t("@elementor/icons"),i=t("@wordpress/i18n"),s=t("./packages/packages/core/editor-variables/src/components/variable-selection-popover.tsx"),l=t("./packages/packages/core/editor-variables/src/utils/tracking.ts"),c=t("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");const usePropVariableAction=()=>{const{propType:e,path:a}=(0,o.useBoundProp)(),t=resolveVariableFromPropType(e);return{visible:Boolean(t),icon:n.ColorFilterIcon,title:(0,i.__)("Variables","elementor"),content:({close:e})=>t?(trackOpenVariablePopover(a,t.variableType),r.createElement(s.VariableSelectionPopover,{closePopover:e,propTypeKey:t.propTypeUtil.key})):null}},resolveVariableFromPropType=e=>{if("union"===e.kind)for(const a of Object.keys(e.prop_types)){const e=(0,c.getVariableType)(a);if(e)return e}},trackOpenVariablePopover=(e,a)=>{(0,l.trackVariableEvent)({varType:a,controlPath:e.join("."),action:"open"})}},"./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts":function(e,a,t){t.r(a),t.d(a,{createVariable:function(){return createVariable},deleteVariable:function(){return deleteVariable},getVariables:function(){return getVariables},restoreVariable:function(){return restoreVariable},updateVariable:function(){return updateVariable},useFilteredVariables:function(){return useFilteredVariables},useVariable:function(){return useVariable}});var r=t("react"),o=t("@elementor/editor-controls"),n=t("./packages/packages/core/editor-variables/src/context/variable-type-context.tsx"),i=t("./packages/packages/core/editor-variables/src/service.ts"),s=t("./packages/packages/core/editor-variables/src/utils/filter-by-search.ts");const getVariables=(e=!0)=>{const a=i.service.variables();return e?a:Object.fromEntries(Object.entries(a).filter(([,e])=>!e.deleted))},useVariable=e=>{const a=getVariables();return a?.[e]?{...a[e],key:e}:null},useFilteredVariables=(e,a)=>{const t=usePropVariables(a),r=useVariableSelectionFilter(t),o=(0,s.filterBySearch)(r,e);return{list:o.sort((e,a)=>(e.order??Number.MAX_SAFE_INTEGER)-(a.order??Number.MAX_SAFE_INTEGER)),hasMatches:o.length>0,isSourceNotEmpty:r.length>0,hasNoCompatibleVariables:t.length>0&&0===r.length}},useVariableSelectionFilter=e=>{const{selectionFilter:a}=(0,n.useVariableType)(),{propType:t}=(0,o.useBoundProp)();return a?a(e,t):e},usePropVariables=e=>(0,r.useMemo)(()=>normalizeVariables(e),[e]),normalizeVariables=e=>{const a=getVariables(!1);return Object.entries(a).filter(([,a])=>a.type===e).map(([e,{label:a,value:t,order:r}])=>({key:e,label:a,value:t,order:r}))},extractId=({id:e})=>e,createVariable=e=>i.service.create(e).then(extractId),updateVariable=(e,{value:a,label:t})=>i.service.update(e,{value:a,label:t}).then(extractId),deleteVariable=e=>i.service.delete(e).then(extractId),restoreVariable=(e,a,t)=>i.service.restore(e,a,t).then(extractId)},"./packages/packages/core/editor-variables/src/hooks/use-variable-bound-prop.ts":function(e,a,t){t.r(a),t.d(a,{resolveBoundPropAndSetValue:function(){return resolveBoundPropAndSetValue},useVariableBoundProp:function(){return useVariableBoundProp}});var r=t("@elementor/editor-controls"),o=t("@elementor/editor-props"),n=t("./packages/packages/core/editor-variables/src/context/variable-type-context.tsx");const useVariableBoundProp=()=>{const{propTypeUtil:e}=(0,n.useVariableType)(),a=(0,r.useBoundProp)(e);return{...a,setVariableValue:e=>resolveBoundPropAndSetValue(e,a),variableId:a.value??a.placeholder}},resolveBoundPropAndSetValue=(e,a)=>{const t=unwrapValue(a.value),r=unwrapValue(a.placeholder),o=unwrapValue(e);return t||r!==o?a.setValue(e):a.setValue(null)},unwrapValue=e=>(0,o.isTransformable)(e)?e.value:e},"./packages/packages/core/editor-variables/src/init.ts":function(e,a,t){t.r(a),t.d(a,{init:function(){return init}});var r=t("@elementor/editor"),o=t("@elementor/editor-editing-panel"),n=t("@elementor/editor-panels"),i=t("@elementor/editor-props"),s=t("./packages/packages/core/editor-variables/src/components/variables-manager/variables-manager-panel.tsx"),l=t("./packages/packages/core/editor-variables/src/controls/variable-control.tsx"),c=t("./packages/packages/core/editor-variables/src/hooks/use-prop-variable-action.tsx"),p=t("./packages/packages/core/editor-variables/src/mcp/index.ts"),u=t("./packages/packages/core/editor-variables/src/register-variable-types.tsx"),d=t("./packages/packages/core/editor-variables/src/renderers/style-variables-renderer.tsx"),b=t("./packages/packages/core/editor-variables/src/repeater-injections.ts"),m=t("./packages/packages/core/editor-variables/src/service.ts"),v=t("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");const{registerPopoverAction:g}=o.controlActionsMenu;function init(){(0,u.registerVariableTypes)(),(0,b.registerRepeaterInjections)(),(0,o.registerControlReplacement)({component:l.VariableControl,condition:({value:e,placeholder:a})=>hasVariable(e)||hasVariable(a)}),g({id:"variables",useProps:c.usePropVariableAction}),m.service.init().then(()=>{(0,p.initMcp)()}),(0,r.injectIntoTop)({id:"canvas-style-variables-render",component:d.StyleVariablesRenderer}),(0,n.__registerPanel)(s.panel)}function hasVariable(e){return!!(0,i.isTransformable)(e)&&(0,v.hasVariableType)(e.$$type)}},"./packages/packages/core/editor-variables/src/mcp/create-variable-tool.ts":function(e,a,t){t.r(a),t.d(a,{initCreateVariableTool:function(){return initCreateVariableTool}});var r=t("@elementor/editor-mcp"),o=t("@elementor/schema"),n=t("./packages/packages/core/editor-variables/src/service.ts");const i={type:o.z.string().describe('The type of the variable. Example values: "global-color-variable" or "global-font-variable".'),label:o.z.string().describe("The label of the variable, displayed to the user"),value:o.z.string().describe("The value of the variable, should correspond to the type")},s={status:o.z.enum(["ok","error"]).describe("The status of the operation"),message:o.z.string().optional().describe("Optional message providing additional information about the operation")},initCreateVariableTool=()=>{(0,r.getMCPByDomain)("variables").addTool({name:"create-global-variable",schema:i,outputSchema:s,description:'Create a new global variable\n## When to use this tool:\n- When a user requests to create a new global variable in the Elementor editor.\n- When you need to add a new variable to be used in the editor.\n\n## Prequisites:\n- Ensure you have the most up-to-date list of existing global variables to avoid label duplication. You can use the "list-global-variables" tool to fetch the current variables.\n- Make sure when creating a new variable, the label is unique and not already in use.\n- If the user does not provide a label, ask them to provide one before proceeding.\n- If the user does not provide a type, ask them to provide one before proceeding.\n- If the user does not provide a value, ask them to provide one before proceeding.\n\n## Required parameters:\n- type: The type of the variable. Possible values are \'global-color-variable\' or \'global-font-variable\'.\n- label: The label of the variable, displayed to the user. Must be unique and not already in use.\n- value: The value of the variable. For color variables, this should be a valid CSS color (e.g., \'rgb(255,0,0)\', \'#ff0000\', \'red\'). For font variables, this should be a valid font family (e.g., \'Arial\', \'serif\').\n\n## Example tool call (JSON format):\n```json\n{ "type": "global-color-variable", "label": "My Cool Color", "value": "rgb(1,2,3)" }\n```\n\n## Example tool response (JSON format):\n```json\n{ "status": "ok" }\n```\n\n## Example to a failed tool response, which must be displayed to the end user. If the error message is not plain, attempt to find the most useful part of the message and display it.\n{ "status": "error", "message": "Unsupported type \'global-kuku-variable\'" }\n\nIn that case, inform the user the type is unsupported and they should try another type, perhaps consult to online documentation.\n',handler:async e=>{const{type:a,label:t,value:r}=e;try{await n.service.create({type:a,label:t,value:r})}catch(e){return{status:"error",message:`There was an error creating the variable: ${e.message||"Unknown server error"}`}}return{status:"ok"}}})}},"./packages/packages/core/editor-variables/src/mcp/delete-variable-tool.ts":function(e,a,t){t.r(a),t.d(a,{initDeleteVariableTool:function(){return initDeleteVariableTool}});var r=t("@elementor/editor-mcp"),o=t("@elementor/schema"),n=t("./packages/packages/core/editor-variables/src/service.ts");const initDeleteVariableTool=()=>{(0,r.getMCPByDomain)("variables").addTool({name:"delete-global-variable",schema:{id:o.z.string().describe("The unique identifier of the variable to be deleted.")},outputSchema:{status:o.z.enum(["ok","error"]).describe("The status of the operation")},description:'Delete an existing global variable\n \n## When to use this tool:\n- When a user requests to delete an existing global variable in the Elementor editor.\n- When you need to remove a variable that is no longer needed or relevant, with the user\'s confirmation.\n\n## Prerequisites:\n- Ensure you have the most up-to-date list of existing global variables. You can use the "list-global-variables" tool to fetch the current variables.\n- Reference the variable by the "id" property, given from the "list-global-variables" tool.\n- Make sure you have the unique identifier of the variable to be deleted before using this tool.\n- Confirm with the user that they want to proceed with the deletion, as this action is irreversible.\n\n<notice>\nA use might reference a variable by it\'s label, but you must always use the unique identifier (id) to delete it.\nIf you only have the label, use the "list-global-variables" tool to find the corresponding id.\n</notice>\n\n<important>\nThis operation is destructive and cannot be undone. Ensure that the user is fully aware of the consequences before proceeding.\nWhen a variable is deleted, all references to it in all pages accross the website will lose their effect.\n</important>',handler:async e=>{const{id:a}=e;try{return await n.service.delete(a),{status:"ok"}}catch(e){return{status:"error"}}},isDestrcutive:!0})}},"./packages/packages/core/editor-variables/src/mcp/index.ts":function(e,a,t){t.r(a),t.d(a,{initMcp:function(){return initMcp}});var r=t("@elementor/editor-mcp"),o=t("./packages/packages/core/editor-variables/src/mcp/create-variable-tool.ts"),n=t("./packages/packages/core/editor-variables/src/mcp/delete-variable-tool.ts"),i=t("./packages/packages/core/editor-variables/src/mcp/list-variables-tool.ts"),s=t("./packages/packages/core/editor-variables/src/mcp/update-variable-tool.ts");function initMcp(){const{setMCPDescription:e}=(0,r.getMCPByDomain)("variables");e("Elementor Editor Variables MCP"),(0,i.initListVariablesTool)(),(0,o.initCreateVariableTool)(),(0,s.initUpdateVariableTool)(),(0,n.initDeleteVariableTool)()}},"./packages/packages/core/editor-variables/src/mcp/list-variables-tool.ts":function(e,a,t){t.r(a),t.d(a,{initListVariablesTool:function(){return initListVariablesTool}});var r=t("@elementor/editor-mcp"),o=t("@elementor/schema"),n=t("./packages/packages/core/editor-variables/src/service.ts");const i={type:o.z.string().describe("The type of the variable."),label:o.z.string().describe("The label of the variable, displayed to the user"),value:o.z.string().describe("The value of the variable."),id:o.z.string().describe("The unique identifier of the variable. Used for internal reference, not to be exposed to end users")},s={variables:o.z.array(o.z.object(i)).describe("List of variables")},initListVariablesTool=()=>{(0,r.getMCPByDomain)("variables").addTool({name:"list-global-variables",description:"List editor global variables\n \n ## When to use this tool:\n - When a user requests to see all available global variables in the Elementor editor.\n - When you need to be exact on a variable label, to avoid any mistakes.\n - When you want to see the most up-to-date list of global variables.\n - Before using any other variables related tools that makes changes, such as deletion, creation, or updates. This ensures you have the latest information and there is no naming collision or mismatching.\n \n ## Example tool response (JSON format):\n ```json\n { variables: [\n { type: 'global-color-variable', label: 'Cool', value: 'rgb(1,2,3)', id: 'some-unique-id' },\n { type: 'global-font-variable', label: 'Headline', value: 'serif', id: 'some-other-unique-id' },\n ] }\n ```\n \n Once you get the response, please display the variables in a user-friendly way, unless explicitly requested otherwise.\n Unless explicitly requested otherwise, response in HTML Format, prefer to use tables or unordered lists.\n \n Note: **The label is most improtant to be seen as-is without any changes.**\n \n <important>\n **Do not omit the label**. This is important for the user to identify the variable.\n **Do not change the label**, it must be displayed exactly as it is, in it's original characters as received from this tool.\n </important>\n ",outputSchema:s,handler:async()=>{const e=n.service.variables();return{variables:Object.entries(e).map(([e,a])=>({id:e,...a}))}}})}},"./packages/packages/core/editor-variables/src/mcp/update-variable-tool.ts":function(e,a,t){t.r(a),t.d(a,{initUpdateVariableTool:function(){return initUpdateVariableTool}});var r=t("@elementor/editor-mcp"),o=t("@elementor/schema"),n=t("./packages/packages/core/editor-variables/src/service.ts");const initUpdateVariableTool=()=>{(0,r.getMCPByDomain)("variables").addTool({schema:{id:o.z.string().describe("The unique identifier of the variable to be updated or renamed."),label:o.z.string().describe("The label of the variable to be stored after the change. If the user only wishes to update the value, this must be strictly equal to the current label."),value:o.z.string().describe("The new value for the variable. For color variables, this should be a valid CSS color (e.g., 'rgb(255,0,0)', '#ff0000', 'red'). For font variables, this should be a valid font family (e.g., 'Arial', 'serif'). If the user wishes to rename only, make sure you provide the existing value.")},outputSchema:{status:o.z.enum(["ok","error"]).describe("The status of the operation"),message:o.z.string().optional().describe("Optional message providing additional information about the operation")},name:"update-global-variable",description:'Update an existing global variable\n\n## When to use this tool:\n- When a user requests to update an existing global variable in the Elementor editor.\n- When you need to modify the value of an existing variable.\n- When you want to rename an existing variable (change its label).\n- When you want to both rename and modify the value of an existing variable.\n\n## Prerequisites:\n- Ensure you have the most up-to-date list of existing global variables to avoid label duplication. You can use the "list-global-variables" tool to fetch the current variables.\n- Make sure when updating a variable, the new label is unique and not already in use by another variable.\n- Make sure you understand whether you are updating a value, renaming, or both.\n- Reference the variable by the "id" property, given from the "list-global-variables" tool.\n- If the user wishes to rename, make sure you have the existing value.\n- If the user wishes to update the value, make sure you have to **correct label**.\n- You must have the unique identifier, the current label, the current value, and the new value or label or both, before using this tool.\n\n## Required parameters:\n- id: The unique identifier of the variable to be updated or renamed.\n- label: The label of the variable to be stored after the change. If the user only wishes to update the value, this must be strictly equal to the current label.\n- value: The new value for the variable. For color variables, this should be a valid CSS color (e.g., \'rgb(255,0,0)\', \'#ff0000\', \'red\'). For font variables, this should be a valid font family (e.g., \'Arial\', \'serif\'). If the user wishes to rename only, make sure you provide the existing value.\n\n## Example tool call (JSON format):\n```json\n{ "id": "some-unique-id", "label": "Cool", "value": "rgb(0,140,250)" }\n```\n\n## Example responses (JSON format):\nSuccessful update:\n```json\n{ "status": "ok" }\n```\n\nFailed update, which must be displayed to the end user. If the error message is not plain, attempt to find the most useful part of the message and display it.\n```json\n{ "status": "error", "message": "Label \'Cool\' is already in use by another variable." }\n```\n',handler:async e=>{const{id:a,label:t,value:r}=e;try{return await n.service.update(a,{label:t,value:r}),{status:"ok"}}catch(e){return{status:"error",message:`There was an error creating the variable: ${e.message||"Unknown server error"}`}}}})}},"./packages/packages/core/editor-variables/src/prop-types/color-variable-prop-type.ts":function(e,a,t){t.r(a),t.d(a,{colorVariablePropTypeUtil:function(){return n}});var r=t("@elementor/editor-props"),o=t("@elementor/schema");const n=(0,r.createPropUtils)("global-color-variable",o.z.string())},"./packages/packages/core/editor-variables/src/prop-types/font-variable-prop-type.ts":function(e,a,t){t.r(a),t.d(a,{fontVariablePropTypeUtil:function(){return n}});var r=t("@elementor/editor-props"),o=t("@elementor/schema");const n=(0,r.createPropUtils)("global-font-variable",o.z.string())},"./packages/packages/core/editor-variables/src/register-variable-types.tsx":function(e,a,t){t.r(a),t.d(a,{registerVariableTypes:function(){return registerVariableTypes}});var r=t("react"),o=t("@elementor/editor-props"),n=t("@elementor/icons"),i=t("./packages/packages/core/editor-variables/src/components/fields/color-field.tsx"),s=t("./packages/packages/core/editor-variables/src/components/fields/font-field.tsx"),l=t("./packages/packages/core/editor-variables/src/components/ui/color-indicator.tsx"),c=t("./packages/packages/core/editor-variables/src/prop-types/color-variable-prop-type.ts"),p=t("./packages/packages/core/editor-variables/src/prop-types/font-variable-prop-type.ts"),u=t("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");function registerVariableTypes(){(0,u.registerVariableType)({valueField:i.ColorField,icon:n.BrushIcon,propTypeUtil:c.colorVariablePropTypeUtil,fallbackPropTypeUtil:o.colorPropTypeUtil,variableType:"color",startIcon:({value:e})=>r.createElement(l.ColorIndicator,{size:"inherit",component:"span",value:e}),defaultValue:"#ffffff"}),(0,u.registerVariableType)({valueField:s.FontField,icon:n.TextIcon,propTypeUtil:p.fontVariablePropTypeUtil,fallbackPropTypeUtil:o.stringPropTypeUtil,variableType:"font",defaultValue:"Roboto"})}},"./packages/packages/core/editor-variables/src/renderers/style-variables-renderer.tsx":function(e,a,t){t.r(a),t.d(a,{StyleVariablesRenderer:function(){return StyleVariablesRenderer}});var r=t("react"),o=t("@elementor/editor-v1-adapters"),n=t("@elementor/ui"),i=t("./packages/packages/core/editor-variables/src/style-variables-repository.ts"),s=t("./packages/packages/core/editor-variables/src/sync/get-canvas-iframe-document.ts");const l="body";function StyleVariablesRenderer(){const e=function usePortalContainer(){return(0,o.__privateUseListenTo)((0,o.commandEndEvent)("editor/documents/attach-preview"),()=>(0,s.getCanvasIframeDocument)()?.head)}(),a=function useStyleVariables(){const[e,a]=(0,r.useState)({});return(0,r.useEffect)(()=>{const e=i.styleVariablesRepository.subscribe(a);return()=>{e()}},[]),e}(),t=Object.keys(a).length>0;if(!e||!t)return null;const c=function convertToCssVariables(e){return Object.entries(e).map(([e,a])=>function cssVariableDeclaration(e,a){const t=a?.deleted?e:a.label,r=a.value;return`--${t}:${r};`}(e,a)).join("")}(a),p=`${l}{${c}}`;return r.createElement(n.Portal,{container:e},r.createElement("style",{"data-e-style-id":"e-variables",key:p},p))}},"./packages/packages/core/editor-variables/src/repeater-injections.ts":function(e,a,t){t.r(a),t.d(a,{registerRepeaterInjections:function(){return registerRepeaterInjections}});var r=t("@elementor/editor-controls"),o=t("@elementor/editor-props"),n=t("./packages/packages/core/editor-variables/src/components/variables-repeater-item-slot.tsx"),i=t("./packages/packages/core/editor-variables/src/prop-types/color-variable-prop-type.ts");function registerRepeaterInjections(){(0,r.injectIntoRepeaterItemIcon)({id:"color-variables-background-icon",component:n.BackgroundRepeaterColorIndicator,condition:({value:e})=>hasAssignedColorVariable(o.backgroundColorOverlayPropTypeUtil.extract(e)?.color)}),(0,r.injectIntoRepeaterItemIcon)({id:"color-variables-icon",component:n.BoxShadowRepeaterColorIndicator,condition:({value:e})=>hasAssignedColorVariable(o.shadowPropTypeUtil.extract(e)?.color)}),(0,r.injectIntoRepeaterItemLabel)({id:"color-variables-label",component:n.BackgroundRepeaterLabel,condition:({value:e})=>hasAssignedColorVariable(o.backgroundColorOverlayPropTypeUtil.extract(e)?.color)})}const hasAssignedColorVariable=e=>!!i.colorVariablePropTypeUtil.isValid(e)},"./packages/packages/core/editor-variables/src/service.ts":function(e,a,t){t.r(a),t.d(a,{service:function(){return c}});var r=t("@wordpress/i18n"),o=t("./packages/packages/core/editor-variables/src/api.ts"),n=t("./packages/packages/core/editor-variables/src/batch-operations.ts"),i=t("./packages/packages/core/editor-variables/src/storage.ts"),s=t("./packages/packages/core/editor-variables/src/style-variables-repository.ts");const l=new i.Storage,c={variables:()=>l.load(),getWatermark:()=>l.state.watermark,init:()=>c.load(),load:()=>o.apiClient.list().then(e=>{const{success:a,data:t}=e.data;if(!a)throw new Error("Unexpected response from server");return t}).then(e=>{const{variables:a,watermark:t}=e;return l.fill(a,t),s.styleVariablesRepository.update(a),a}),create:({type:e,label:a,value:t})=>o.apiClient.create(e,a,t).then(e=>{const{success:a,data:t}=e.data;if(!a){const e=t?.message||(0,r.__)("Unexpected response from server","elementor");throw new Error(e)}return t}).then(e=>{const{variable:a,watermark:t}=e;handleWatermark(i.OP_RW,t);const{id:r,...o}=a;return l.add(r,o),s.styleVariablesRepository.update({[r]:o}),{id:r,variable:o}}),update:(e,{label:a,value:t})=>o.apiClient.update(e,a,t).then(e=>{const{success:a,data:t}=e.data;if(!a){const e=t?.message||(0,r.__)("Unexpected response from server","elementor");throw new Error(e)}return t}).then(e=>{const{variable:a,watermark:t}=e;handleWatermark(i.OP_RW,t);const{id:r,...o}=a;return l.update(r,o),s.styleVariablesRepository.update({[r]:o}),{id:r,variable:o}}),delete:e=>o.apiClient.delete(e).then(e=>{const{success:a,data:t}=e.data;if(!a)throw new Error("Unexpected response from server");return t}).then(e=>{const{variable:a,watermark:t}=e;handleWatermark(i.OP_RW,t);const{id:r,...o}=a;return l.update(r,o),s.styleVariablesRepository.update({[r]:o}),{id:r,variable:o}}),restore:(e,a,t)=>o.apiClient.restore(e,a,t).then(e=>{const{success:a,data:t}=e.data;if(!a)throw new Error("Unexpected response from server");return t}).then(e=>{const{variable:a,watermark:t}=e;handleWatermark(i.OP_RW,t);const{id:r,...o}=a;return l.update(r,o),s.styleVariablesRepository.update({[r]:o}),{id:r,variable:o}}),batchSave:(e,a)=>{const t=(0,n.buildOperationsArray)(e,a),r={operations:t,watermark:l.state.watermark};return 0===t.length?Promise.resolve({success:!0,watermark:l.state.watermark,operations:0}):o.apiClient.batch(r).then(e=>{const{success:a,data:t}=e.data;if(!a)throw new Error("Unexpected response from server");return t}).then(e=>{const{results:a,watermark:r}=e;return handleWatermark(i.OP_RW,r),a&&a.forEach(e=>{if(e.variable){const{id:a,...t}=e.variable;"create"===e.type?l.add(a,t):l.update(a,t),s.styleVariablesRepository.update({[a]:t})}}),{success:!0,watermark:r,operations:t.length}})}},handleWatermark=(e,a)=>{l.watermarkDiff(e,a)&&setTimeout(()=>c.load(),500),l.watermark(a)}},"./packages/packages/core/editor-variables/src/storage.ts":function(e,a,t){t.r(a),t.d(a,{OP_RW:function(){return n},Storage:function(){return Storage}});const r="elementor-global-variables",o="elementor-global-variables-watermark",n="RW";class Storage{constructor(){this.state={watermark:-1,variables:{}}}load(){return this.state.watermark=parseInt(localStorage.getItem(o)||"-1"),this.state.variables=JSON.parse(localStorage.getItem(r)||"{}"),this.state.variables}fill(e,a){this.state.variables={},e&&Object.keys(e).length&&(this.state.variables=e),this.state.watermark=a,localStorage.setItem(o,this.state.watermark.toString()),localStorage.setItem(r,JSON.stringify(this.state.variables))}add(e,a){this.load(),this.state.variables[e]=a,localStorage.setItem(r,JSON.stringify(this.state.variables))}update(e,a){this.load(),this.state.variables[e]=a,localStorage.setItem(r,JSON.stringify(this.state.variables))}watermark(e){this.state.watermark=e,localStorage.setItem(o,this.state.watermark.toString())}watermarkDiff(e,a){const t=a-this.state.watermark;return n===e?1!==t:"RO"===e&&0!==t}}},"./packages/packages/core/editor-variables/src/style-variables-repository.ts":function(e,a,t){t.r(a),t.d(a,{styleVariablesRepository:function(){return r}});const r=(0,t("./packages/packages/core/editor-variables/src/create-style-variables-repository.ts").createStyleVariablesRepository)()},"./packages/packages/core/editor-variables/src/sync/enqueue-font.ts":function(e,a,t){t.r(a),t.d(a,{enqueueFont:function(){return enqueueFont}});const enqueueFont=(e,a="preview")=>{const t=window;return t.elementor?.helpers?.enqueueFont?.(e,a)??null}},"./packages/packages/core/editor-variables/src/sync/get-canvas-iframe-document.ts":function(e,a,t){function getCanvasIframeDocument(){const e=window;return e.elementor?.$preview?.[0]?.contentDocument}t.r(a),t.d(a,{getCanvasIframeDocument:function(){return getCanvasIframeDocument}})},"./packages/packages/core/editor-variables/src/transformers/inheritance-transformer.tsx":function(e,a,t){t.r(a),t.d(a,{inheritanceTransformer:function(){return u}});var r=t("react"),o=t("@elementor/editor-canvas"),n=t("@elementor/ui"),i=t("@wordpress/i18n"),s=t("./packages/packages/core/editor-variables/src/components/ui/color-indicator.tsx"),l=t("./packages/packages/core/editor-variables/src/prop-types/color-variable-prop-type.ts"),c=t("./packages/packages/core/editor-variables/src/service.ts"),p=t("./packages/packages/core/editor-variables/src/transformers/utils/resolve-css-variable.ts");const u=(0,o.createTransformer)(e=>{const a=c.service.variables()[e];if(!a)return r.createElement("span",null,(0,i.__)("Missing variable","elementor"));const t=a.type===l.colorVariablePropTypeUtil.key,o=(0,p.resolveCssVariable)(e,a);return r.createElement(n.Stack,{direction:"row",spacing:.5,sx:{paddingInline:"1px"},alignItems:"center"},t&&r.createElement(s.ColorIndicator,{size:"inherit",value:a.value}),r.createElement(n.Typography,{variant:"caption",overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"},o))})},"./packages/packages/core/editor-variables/src/transformers/utils/resolve-css-variable.ts":function(e,a,t){t.r(a),t.d(a,{resolveCssVariable:function(){return resolveCssVariable}});const resolveCssVariable=(e,a)=>{let t=e,r="";return a&&(r=a.value),a&&!a.deleted&&(t=a.label),t.trim()?r.trim()?`var(--${t}, ${r})`:`var(--${t})`:null}},"./packages/packages/core/editor-variables/src/transformers/variable-transformer.ts":function(e,a,t){t.r(a),t.d(a,{variableTransformer:function(){return i}});var r=t("@elementor/editor-canvas"),o=t("./packages/packages/core/editor-variables/src/service.ts"),n=t("./packages/packages/core/editor-variables/src/transformers/utils/resolve-css-variable.ts");const i=(0,r.createTransformer)(e=>{const a=o.service.variables();return a[e]?(0,n.resolveCssVariable)(e,a[e]):null})},"./packages/packages/core/editor-variables/src/utils/filter-by-search.ts":function(e,a,t){function filterBySearch(e,a){const t=a.toLowerCase();return e.filter(e=>e.label.toLowerCase().includes(t))}t.r(a),t.d(a,{filterBySearch:function(){return filterBySearch}})},"./packages/packages/core/editor-variables/src/utils/tracking.ts":function(e,a,t){t.r(a),t.d(a,{trackVariableEvent:function(){return trackVariableEvent}});var r=t("@elementor/mixpanel");const trackVariableEvent=({varType:e,controlPath:a,action:t})=>{const{dispatchEvent:o,config:n}=(0,r.getMixpanel)();if(!n?.names?.variables?.[t])return;const i=n.names.variables[t];o?.(i,{location:n?.locations?.variables||"",secondaryLocation:n?.secondaryLocations?.variablesPopover||"",trigger:n?.triggers?.click||"",var_type:e,control_path:a,action_type:i})}},"./packages/packages/core/editor-variables/src/utils/unlink-variable.ts":function(e,a,t){t.r(a),t.d(a,{createUnlinkHandler:function(){return createUnlinkHandler},transformValueBeforeUnlink:function(){return transformValueBeforeUnlink}});var r=t("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");function transformValueBeforeUnlink(e,a){const{valueTransformer:t}=(0,r.getVariableType)(a);return t?t(e.value):e.value}function createUnlinkHandler(e,a,t){return()=>{const{fallbackPropTypeUtil:o}=(0,r.getVariableType)(a),n=transformValueBeforeUnlink(e,a);t(o.create(n))}}},"./packages/packages/core/editor-variables/src/utils/validations.ts":function(e,a,t){t.r(a),t.d(a,{ERROR_MESSAGES:function(){return n},VARIABLE_LABEL_MAX_LENGTH:function(){return i},labelHint:function(){return labelHint},mapServerError:function(){return mapServerError},validateLabel:function(){return validateLabel},validateValue:function(){return validateValue}});var r=t("@elementor/icons"),o=t("@wordpress/i18n");const n={MISSING_VARIABLE_NAME:(0,o.__)("Give your variable a name.","elementor"),MISSING_VARIABLE_VALUE:(0,o.__)("Add a value to complete your variable.","elementor"),INVALID_CHARACTERS:(0,o.__)("Use letters, numbers, dashes (-), or underscores (_) for the name.","elementor"),NO_NON_SPECIAL_CHARACTER:(0,o.__)("Names have to include at least one non-special character.","elementor"),VARIABLE_LABEL_MAX_LENGTH:(0,o.__)("Keep names up to 50 characters.","elementor"),DUPLICATED_LABEL:(0,o.__)("This variable name already exists. Please choose a unique name.","elementor"),UNEXPECTED_ERROR:(0,o.__)("There was a glitch. Try saving your variable again.","elementor"),BATCH:{DUPLICATED_LABELS:(e,a)=>(0,o.sprintf)((0,o.__)("We found %1$d duplicated %2$s.","elementor"),e,a),UNEXPECTED_ERROR:(0,o.__)("There was a glitch.","elementor"),DUPLICATED_LABEL_ACTION:(0,o.__)("Take me there","elementor"),DUPLICATED_LABEL_ACTION_MESSAGE:(0,o.__)("Please rename the variables.","elementor"),UNEXPECTED_ERROR_ACTION_MESSAGE:(0,o.__)("Try saving your variables again.","elementor")}},i=50,mapServerError=e=>{if("duplicated_label"===e?.response?.data?.code)return{field:"label",message:n.DUPLICATED_LABEL};if("batch_duplicated_label"===e?.response?.data?.code){const a=e?.response?.data?.data??{},t=Object.keys(a).length,o=1===t?"name":"names",i=Object.keys(a);return{field:"label",message:n.BATCH.DUPLICATED_LABELS(t,o),severity:"error",IconComponent:r.AlertTriangleFilledIcon,action:{label:n.BATCH.DUPLICATED_LABEL_ACTION,message:n.BATCH.DUPLICATED_LABEL_ACTION_MESSAGE,data:{duplicatedIds:i}}}}return"batch_operation_failed"===e?.response?.data?.code?{field:"label",message:n.BATCH.UNEXPECTED_ERROR,severity:"secondary",IconComponent:r.InfoCircleFilledIcon,action:{message:n.BATCH.UNEXPECTED_ERROR_ACTION_MESSAGE}}:void 0},validateLabel=(e,a)=>{if(!e.trim())return n.MISSING_VARIABLE_NAME;if(!/^[a-zA-Z0-9_-]+$/.test(e))return n.INVALID_CHARACTERS;return/[a-zA-Z0-9]/.test(e)?i<e.length?n.VARIABLE_LABEL_MAX_LENGTH:Object.values(a??{}).some(a=>a.label===e)?n.DUPLICATED_LABEL:"":n.NO_NON_SPECIAL_CHARACTER},labelHint=e=>.8*i-1<e.length?n.VARIABLE_LABEL_MAX_LENGTH:"",validateValue=e=>e.trim()?"":n.MISSING_VARIABLE_VALUE},"./packages/packages/core/editor-variables/src/variables-registry/create-variable-type-registry.ts":function(e,a,t){t.r(a),t.d(a,{createVariableTypeRegistry:function(){return createVariableTypeRegistry}});var r=t("@elementor/editor-canvas"),o=t("@elementor/editor-editing-panel"),n=t("./packages/packages/core/editor-variables/src/transformers/inheritance-transformer.tsx"),i=t("./packages/packages/core/editor-variables/src/transformers/variable-transformer.ts");function createVariableTypeRegistry(){const e={},registerTransformer=e=>{r.styleTransformersRegistry.register(e,i.variableTransformer)},registerInheritanceTransformer=e=>{o.stylesInheritanceTransformersRegistry.register(e,n.inheritanceTransformer)};return{registerVariableType:({icon:a,startIcon:t,valueField:r,propTypeUtil:o,variableType:n,defaultValue:i,selectionFilter:s,valueTransformer:l,fallbackPropTypeUtil:c,isCompatible:p})=>{if(e[o.key])throw new Error(`Variable with key "${o.key}" is already registered.`);p||(p=(e,a)=>"union"===e.kind&&a.type in e.prop_types),e[o.key]={icon:a,startIcon:t,valueField:r,propTypeUtil:o,variableType:n,defaultValue:i,selectionFilter:s,valueTransformer:l,fallbackPropTypeUtil:c,isCompatible:p},registerTransformer(o.key),registerInheritanceTransformer(o.key)},getVariableType:a=>e[a],getVariableTypes:()=>e,hasVariableType:a=>a in e}}},"./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts":function(e,a,t){t.r(a),t.d(a,{getVariableType:function(){return n},getVariableTypes:function(){return i},hasVariableType:function(){return s},registerVariableType:function(){return o}});var r=t("./packages/packages/core/editor-variables/src/variables-registry/create-variable-type-registry.ts");const{registerVariableType:o,getVariableType:n,getVariableTypes:i,hasVariableType:s}=(0,r.createVariableTypeRegistry)()},"@elementor/editor":function(e){e.exports=window.elementorV2.editor},"@elementor/editor-canvas":function(e){e.exports=window.elementorV2.editorCanvas},"@elementor/editor-controls":function(e){e.exports=window.elementorV2.editorControls},"@elementor/editor-current-user":function(e){e.exports=window.elementorV2.editorCurrentUser},"@elementor/editor-editing-panel":function(e){e.exports=window.elementorV2.editorEditingPanel},"@elementor/editor-mcp":function(e){e.exports=window.elementorV2.editorMcp},"@elementor/editor-panels":function(e){e.exports=window.elementorV2.editorPanels},"@elementor/editor-props":function(e){e.exports=window.elementorV2.editorProps},"@elementor/editor-ui":function(e){e.exports=window.elementorV2.editorUi},"@elementor/editor-v1-adapters":function(e){e.exports=window.elementorV2.editorV1Adapters},"@elementor/http-client":function(e){e.exports=window.elementorV2.httpClient},"@elementor/icons":function(e){e.exports=window.elementorV2.icons},"@elementor/mixpanel":function(e){e.exports=window.elementorV2.mixpanel},"@elementor/schema":function(e){e.exports=window.elementorV2.schema},"@elementor/ui":function(e){e.exports=window.elementorV2.ui},"@wordpress/i18n":function(e){e.exports=window.wp.i18n},react:function(e){e.exports=window.React}},a={};function __webpack_require__(t){var r=a[t];if(void 0!==r)return r.exports;var o=a[t]={exports:{}};return e[t](o,o.exports,__webpack_require__),o.exports}__webpack_require__.n=function(e){var a=e&&e.__esModule?function(){return e.default}:function(){return e};return __webpack_require__.d(a,{a:a}),a},__webpack_require__.d=function(e,a){for(var t in a)__webpack_require__.o(a,t)&&!__webpack_require__.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:a[t]})},__webpack_require__.o=function(e,a){return Object.prototype.hasOwnProperty.call(e,a)},__webpack_require__.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var t={};!function(){__webpack_require__.r(t),__webpack_require__.d(t,{init:function(){return e.init},registerVariableType:function(){return a.registerVariableType},registerVariableTypes:function(){return r.registerVariableTypes}});var e=__webpack_require__("./packages/packages/core/editor-variables/src/init.ts"),a=__webpack_require__("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts"),r=__webpack_require__("./packages/packages/core/editor-variables/src/register-variable-types.tsx")}(),(window.elementorV2=window.elementorV2||{}).editorVariables=t}(),window.elementorV2.editorVariables?.init?.();
3 3 //# sourceMappingURL=editor-variables.js.map