PluginProbe
Elementor Website Builder – more than just a page builder / 3.35.0-dev2
Elementor Website Builder – more than just a page builder v3.35.0-dev2
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 4.1.0-beta2 4.1.0-dev2 All 455 releases
← All changes | assets/js/packages/editor-global-classes/editor-global-classes.js +2 -2 4.1.0-beta2 → 3.35.0-dev2 View file →
@@ -1,7 +1,7 @@
1 1 /*! For license information please see editor-global-classes.js.LICENSE.txt */
2 -!function(){"use strict";var e={"./packages/node_modules/@tanstack/react-virtual/dist/esm/index.js":function(e,t,s){s.r(t),s.d(t,{Virtualizer:function(){return r.Virtualizer},approxEqual:function(){return r.approxEqual},debounce:function(){return r.debounce},defaultKeyExtractor:function(){return r.defaultKeyExtractor},defaultRangeExtractor:function(){return r.defaultRangeExtractor},elementScroll:function(){return r.elementScroll},measureElement:function(){return r.measureElement},memo:function(){return r.memo},notUndefined:function(){return r.notUndefined},observeElementOffset:function(){return r.observeElementOffset},observeElementRect:function(){return r.observeElementRect},observeWindowOffset:function(){return r.observeWindowOffset},observeWindowRect:function(){return r.observeWindowRect},useVirtualizer:function(){return useVirtualizer},useWindowVirtualizer:function(){return useWindowVirtualizer},windowScroll:function(){return r.windowScroll}});var a=s("react"),n=s("react-dom"),r=s("./packages/node_modules/@tanstack/virtual-core/dist/esm/index.js");const o="undefined"!=typeof document?a.useLayoutEffect:a.useEffect;function useVirtualizerBase({useFlushSync:e=!0,...t}){const s=a.useReducer(()=>({}),{})[1],l={...t,onChange:(a,r)=>{var o;e&&r?(0,n.flushSync)(s):s(),null==(o=t.onChange)||o.call(t,a,r)}},[i]=a.useState(()=>new r.Virtualizer(l));return i.setOptions(l),o(()=>i._didMount(),[]),o(()=>i._willUpdate()),i}function useVirtualizer(e){return useVirtualizerBase({observeElementRect:r.observeElementRect,observeElementOffset:r.observeElementOffset,scrollToFn:r.elementScroll,...e})}function useWindowVirtualizer(e){return useVirtualizerBase({getScrollElement:()=>"undefined"!=typeof document?window:null,observeElementRect:r.observeWindowRect,observeElementOffset:r.observeWindowOffset,scrollToFn:r.windowScroll,initialOffset:()=>"undefined"!=typeof document?window.scrollY:0,...e})}},"./packages/node_modules/@tanstack/virtual-core/dist/esm/index.js":function(e,t,s){s.r(t),s.d(t,{Virtualizer:function(){return Virtualizer},approxEqual:function(){return a.approxEqual},debounce:function(){return a.debounce},defaultKeyExtractor:function(){return defaultKeyExtractor},defaultRangeExtractor:function(){return defaultRangeExtractor},elementScroll:function(){return elementScroll},measureElement:function(){return measureElement},memo:function(){return a.memo},notUndefined:function(){return a.notUndefined},observeElementOffset:function(){return observeElementOffset},observeElementRect:function(){return observeElementRect},observeWindowOffset:function(){return observeWindowOffset},observeWindowRect:function(){return observeWindowRect},windowScroll:function(){return windowScroll}});var a=s("./packages/node_modules/@tanstack/virtual-core/dist/esm/utils.js");const getRect=e=>{const{offsetWidth:t,offsetHeight:s}=e;return{width:t,height:s}},defaultKeyExtractor=e=>e,defaultRangeExtractor=e=>{const t=Math.max(e.startIndex-e.overscan,0),s=Math.min(e.endIndex+e.overscan,e.count-1),a=[];for(let e=t;e<=s;e++)a.push(e);return a},observeElementRect=(e,t)=>{const s=e.scrollElement;if(!s)return;const a=e.targetWindow;if(!a)return;const handler=e=>{const{width:s,height:a}=e;t({width:Math.round(s),height:Math.round(a)})};if(handler(getRect(s)),!a.ResizeObserver)return()=>{};const n=new a.ResizeObserver(t=>{const run=()=>{const e=t[0];if(null==e?void 0:e.borderBoxSize){const t=e.borderBoxSize[0];if(t)return void handler({width:t.inlineSize,height:t.blockSize})}handler(getRect(s))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(run):run()});return n.observe(s,{box:"border-box"}),()=>{n.unobserve(s)}},n={passive:!0},observeWindowRect=(e,t)=>{const s=e.scrollElement;if(!s)return;const handler=()=>{t({width:s.innerWidth,height:s.innerHeight})};return handler(),s.addEventListener("resize",handler,n),()=>{s.removeEventListener("resize",handler)}},r="undefined"==typeof window||"onscrollend"in window,observeElementOffset=(e,t)=>{const s=e.scrollElement;if(!s)return;const o=e.targetWindow;if(!o)return;let l=0;const i=e.options.useScrollendEvent&&r?()=>{}:(0,a.debounce)(o,()=>{t(l,!1)},e.options.isScrollingResetDelay),createHandler=a=>()=>{const{horizontal:n,isRtl:r}=e.options;l=n?s.scrollLeft*(r?-1:1):s.scrollTop,i(),t(l,a)},c=createHandler(!0),d=createHandler(!1);s.addEventListener("scroll",c,n);const u=e.options.useScrollendEvent&&r;return u&&s.addEventListener("scrollend",d,n),()=>{s.removeEventListener("scroll",c),u&&s.removeEventListener("scrollend",d)}},observeWindowOffset=(e,t)=>{const s=e.scrollElement;if(!s)return;const o=e.targetWindow;if(!o)return;let l=0;const i=e.options.useScrollendEvent&&r?()=>{}:(0,a.debounce)(o,()=>{t(l,!1)},e.options.isScrollingResetDelay),createHandler=a=>()=>{l=s[e.options.horizontal?"scrollX":"scrollY"],i(),t(l,a)},c=createHandler(!0),d=createHandler(!1);s.addEventListener("scroll",c,n);const u=e.options.useScrollendEvent&&r;return u&&s.addEventListener("scrollend",d,n),()=>{s.removeEventListener("scroll",c),u&&s.removeEventListener("scrollend",d)}},measureElement=(e,t,s)=>{if(null==t?void 0:t.borderBoxSize){const e=t.borderBoxSize[0];if(e){return Math.round(e[s.options.horizontal?"inlineSize":"blockSize"])}}return e[s.options.horizontal?"offsetWidth":"offsetHeight"]},windowScroll=(e,{adjustments:t=0,behavior:s},a)=>{var n,r;const o=e+t;null==(r=null==(n=a.scrollElement)?void 0:n.scrollTo)||r.call(n,{[a.options.horizontal?"left":"top"]:o,behavior:s})},elementScroll=(e,{adjustments:t=0,behavior:s},a)=>{var n,r;const o=e+t;null==(r=null==(n=a.scrollElement)?void 0:n.scrollTo)||r.call(n,{[a.options.horizontal?"left":"top"]:o,behavior:s})};class Virtualizer{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this.itemSizeCache=new Map,this.laneAssignments=new Map,this.pendingMeasuredCacheIndexes=[],this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.now=()=>{var e,t,s;return(null==(s=null==(t=null==(e=this.targetWindow)?void 0:e.performance)?void 0:t.now)?void 0:s.call(t))??Date.now()},this.observer=(()=>{let e=null;const get=()=>e||(this.targetWindow&&this.targetWindow.ResizeObserver?e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{const run=()=>{const t=e.target,s=this.indexFromElement(t);t.isConnected?this.shouldMeasureDuringScroll(s)&&this.resizeItem(s,this.options.measureElement(t,e,this)):this.observer.unobserve(t)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(run):run()})}):null);return{disconnect:()=>{var t;null==(t=get())||t.disconnect(),e=null},observe:e=>{var t;return null==(t=get())?void 0:t.observe(e,{box:"border-box"})},unobserve:e=>{var t;return null==(t=get())?void 0:t.unobserve(e)}}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([t,s])=>{void 0===s&&delete e[t]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:defaultKeyExtractor,rangeExtractor:defaultRangeExtractor,onChange:()=>{},measureElement:measureElement,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:"estimate",...e}},this.notify=e=>{var t,s;null==(s=(t=this.options).onChange)||s.call(t,this,e)},this.maybeNotify=(0,a.memo)(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:"maybeNotify",debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),null!=this.rafId&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var e;const t=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==t){if(this.cleanup(),!t)return void this.maybeNotify();this.scrollElement=t,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=(null==(e=this.scrollElement)?void 0:e.window)??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{this.scrollAdjustments=0,this.scrollDirection=t?this.getScrollOffset()<e?"forward":"backward":null,this.scrollOffset=e,this.isScrolling=t,this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??("function"==typeof this.options.initialOffset?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{const s=new Map,a=new Map;for(let n=t-1;n>=0;n--){const t=e[n];if(s.has(t.lane))continue;const r=a.get(t.lane);if(null==r||t.end>r.end?a.set(t.lane,t):t.end<r.end&&s.set(t.lane,!0),s.size===this.options.lanes)break}return a.size===this.options.lanes?Array.from(a.values()).sort((e,t)=>e.end===t.end?e.index-t.index:e.end-t.end)[0]:void 0},this.getMeasurementOptions=(0,a.memo)(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode],(e,t,s,a,n,r,o)=>(void 0!==this.prevLanes&&this.prevLanes!==r&&(this.lanesChangedFlag=!0),this.prevLanes=r,this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:t,scrollMargin:s,getItemKey:a,enabled:n,lanes:r,laneAssignmentMode:o}),{key:!1}),this.getMeasurements=(0,a.memo)(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:t,scrollMargin:s,getItemKey:a,enabled:n,lanes:r,laneAssignmentMode:o},l)=>{if(!n)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>e)for(const t of this.laneAssignments.keys())t>=e&&this.laneAssignments.delete(t);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMeasuredCacheIndexes=[]),0!==this.measurementsCache.length||this.lanesSettling||(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));const i=this.lanesSettling?0:this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[],this.lanesSettling&&this.measurementsCache.length===e&&(this.lanesSettling=!1);const c=this.measurementsCache.slice(0,i),d=new Array(r).fill(void 0);for(let e=0;e<i;e++){const t=c[e];t&&(d[t.lane]=e)}for(let n=i;n<e;n++){const e=a(n),r=this.laneAssignments.get(n);let i,u;const p="estimate"===o||l.has(e);if(void 0!==r&&this.options.lanes>1){i=r;const e=d[i],a=void 0!==e?c[e]:void 0;u=a?a.end+this.options.gap:t+s}else{const e=1===this.options.lanes?c[n-1]:this.getFurthestMeasurement(c,n);u=e?e.end+this.options.gap:t+s,i=e?e.lane:n%this.options.lanes,this.options.lanes>1&&p&&this.laneAssignments.set(n,i)}const g=l.get(e),m="number"==typeof g?g:this.options.estimateSize(n),h=u+m;c[n]={index:n,start:u,size:m,end:h,key:e,lane:i},d[i]=n}return this.measurementsCache=c,c},{key:"getMeasurements",debug:()=>this.options.debug}),this.calculateRange=(0,a.memo)(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,s,a)=>this.range=e.length>0&&t>0?function calculateRange({measurements:e,outerSize:t,scrollOffset:s,lanes:a}){const n=e.length-1,getOffset=t=>e[t].start;if(e.length<=a)return{startIndex:0,endIndex:n};let r=findNearestBinarySearch(0,n,getOffset,s),o=r;if(1===a)for(;o<n&&e[o].end<s+t;)o++;else if(a>1){const l=Array(a).fill(0);for(;o<n&&l.some(e=>e<s+t);){const t=e[o];l[t.lane]=t.end,o++}const i=Array(a).fill(s+t);for(;r>=0&&i.some(e=>e>=s);){const t=e[r];i[t.lane]=t.start,r--}r=Math.max(0,r-r%a),o=Math.min(n,o+(a-1-o%a))}return{startIndex:r,endIndex:o}}({measurements:e,outerSize:t,scrollOffset:s,lanes:a}):null,{key:"calculateRange",debug:()=>this.options.debug}),this.getVirtualIndexes=(0,a.memo)(()=>{let e=null,t=null;const s=this.calculateRange();return s&&(e=s.startIndex,t=s.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,s,a,n)=>null===a||null===n?[]:e({startIndex:a,endIndex:n,overscan:t,count:s}),{key:"getVirtualIndexes",debug:()=>this.options.debug}),this.indexFromElement=e=>{const t=this.options.indexAttribute,s=e.getAttribute(t);return s?parseInt(s,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=e=>{var t;if(!this.scrollState||"smooth"!==this.scrollState.behavior)return!0;const s=this.scrollState.index??(null==(t=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))?void 0:t.index);if(void 0!==s&&this.range){const t=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),a=Math.max(0,s-t),n=Math.min(this.options.count-1,s+t);return e>=a&&e<=n}return!0},this.measureElement=e=>{if(!e)return void this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))});const t=this.indexFromElement(e),s=this.options.getItemKey(t),a=this.elementsCache.get(s);a!==e&&(a&&this.observer.unobserve(a),this.observer.observe(e),this.elementsCache.set(s,e)),this.isScrolling&&!this.scrollState||!this.shouldMeasureDuringScroll(t)||this.resizeItem(t,this.options.measureElement(e,void 0,this))},this.resizeItem=(e,t)=>{var s;const a=this.measurementsCache[e];if(!a)return;const n=t-(this.itemSizeCache.get(a.key)??a.size);0!==n&&("smooth"!==(null==(s=this.scrollState)?void 0:s.behavior)&&(void 0!==this.shouldAdjustScrollPositionOnItemSizeChange?this.shouldAdjustScrollPositionOnItemSizeChange(a,n,this):a.start<this.getScrollOffset()+this.scrollAdjustments)&&(this.options.debug&&console.info("correction",n),this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=n,behavior:void 0})),this.pendingMeasuredCacheIndexes.push(a.index),this.itemSizeCache=new Map(this.itemSizeCache.set(a.key,t)),this.notify(!1))},this.getVirtualItems=(0,a.memo)(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{const s=[];for(let a=0,n=e.length;a<n;a++){const n=t[e[a]];s.push(n)}return s},{key:"getVirtualItems",debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{const t=this.getMeasurements();if(0!==t.length)return(0,a.notUndefined)(t[findNearestBinarySearch(0,t.length-1,e=>(0,a.notUndefined)(t[e]).start,e)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{const e=this.scrollElement.document.documentElement;return this.options.horizontal?e.scrollWidth-this.scrollElement.innerWidth:e.scrollHeight-this.scrollElement.innerHeight}},this.getOffsetForAlignment=(e,t,s=0)=>{if(!this.scrollElement)return 0;const a=this.getSize(),n=this.getScrollOffset();"auto"===t&&(t=e>=n+a?"end":"start"),"center"===t?e+=(s-a)/2:"end"===t&&(e-=a);const r=this.getMaxScrollOffset();return Math.max(Math.min(r,e),0)},this.getOffsetForIndex=(e,t="auto")=>{e=Math.max(0,Math.min(e,this.options.count-1));const s=this.getSize(),a=this.getScrollOffset(),n=this.measurementsCache[e];if(!n)return;if("auto"===t)if(n.end>=a+s-this.options.scrollPaddingEnd)t="end";else{if(!(n.start<=a+this.options.scrollPaddingStart))return[a,t];t="start"}if("end"===t&&e===this.options.count-1)return[this.getMaxScrollOffset(),t];const r="end"===t?n.end+this.options.scrollPaddingEnd:n.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(r,t,n.size),t]},this.scrollToOffset=(e,{align:t="start",behavior:s="auto"}={})=>{const a=this.getOffsetForAlignment(e,t),n=this.now();this.scrollState={index:null,align:t,behavior:s,startedAt:n,lastTargetOffset:a,stableFrames:0},this._scrollToOffset(a,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollToIndex=(e,{align:t="auto",behavior:s="auto"}={})=>{e=Math.max(0,Math.min(e,this.options.count-1));const a=this.getOffsetForIndex(e,t);if(!a)return;const[n,r]=a,o=this.now();this.scrollState={index:e,align:r,behavior:s,startedAt:o,lastTargetOffset:n,stableFrames:0},this._scrollToOffset(n,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollBy=(e,{behavior:t="auto"}={})=>{const s=this.getScrollOffset()+e,a=this.now();this.scrollState={index:null,align:"start",behavior:t,startedAt:a,lastTargetOffset:s,stableFrames:0},this._scrollToOffset(s,{adjustments:void 0,behavior:t}),this.scheduleScrollReconcile()},this.getTotalSize=()=>{var e;const t=this.getMeasurements();let s;if(0===t.length)s=this.options.paddingStart;else if(1===this.options.lanes)s=(null==(e=t[t.length-1])?void 0:e.end)??0;else{const e=Array(this.options.lanes).fill(null);let a=t.length-1;for(;a>=0&&e.some(e=>null===e);){const s=t[a];null===e[s.lane]&&(e[s.lane]=s.end),a--}s=Math.max(...e.filter(e=>null!==e))}return Math.max(s-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:t,behavior:s})=>{this.options.scrollToFn(e,{behavior:s,adjustments:t},this)},this.measure=()=>{this.itemSizeCache=new Map,this.laneAssignments=new Map,this.notify(!1)},this.setOptions(e)}scheduleScrollReconcile(){this.targetWindow?null==this.rafId&&(this.rafId=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()})):this.scrollState=null}reconcileScroll(){if(!this.scrollState)return;if(!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3)return void(this.scrollState=null);const e=null!=this.scrollState.index?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,t=e?e[0]:this.scrollState.lastTargetOffset,s=t!==this.scrollState.lastTargetOffset;if(!s&&(0,a.approxEqual)(t,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=1)return void(this.scrollState=null)}else this.scrollState.stableFrames=0,s&&(this.scrollState.lastTargetOffset=t,this.scrollState.behavior="auto",this._scrollToOffset(t,{adjustments:void 0,behavior:"auto"}));this.scheduleScrollReconcile()}}const findNearestBinarySearch=(e,t,s,a)=>{for(;e<=t;){const n=(e+t)/2|0,r=s(n);if(r<a)e=n+1;else{if(!(r>a))return n;t=n-1}}return e>0?e-1:0}},"./packages/node_modules/@tanstack/virtual-core/dist/esm/utils.js":function(e,t,s){function memo(e,t,s){let a,n=s.initialDeps??[],r=!0;function memoizedFunction(){var o,l,i;let c;s.key&&(null==(o=s.debug)?void 0:o.call(s))&&(c=Date.now());const d=e();if(!(d.length!==n.length||d.some((e,t)=>n[t]!==e)))return a;let u;if(n=d,s.key&&(null==(l=s.debug)?void 0:l.call(s))&&(u=Date.now()),a=t(...d),s.key&&(null==(i=s.debug)?void 0:i.call(s))){const e=Math.round(100*(Date.now()-c))/100,t=Math.round(100*(Date.now()-u))/100,a=t/16,pad=(e,t)=>{for(e=String(e);e.length<t;)e=" "+e;return e};console.info(`%c⏱ ${pad(t,5)} /${pad(e,5)} ms`,`\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(0,Math.min(120-120*a,120))}deg 100% 31%);`,null==s?void 0:s.key)}return!(null==s?void 0:s.onChange)||r&&s.skipInitialOnChange||s.onChange(a),r=!1,a}return memoizedFunction.updateDeps=e=>{n=e},memoizedFunction}function notUndefined(e,t){if(void 0===e)throw new Error("Unexpected undefined"+(t?`: ${t}`:""));return e}s.r(t),s.d(t,{approxEqual:function(){return approxEqual},debounce:function(){return debounce},memo:function(){return memo},notUndefined:function(){return notUndefined}});const approxEqual=(e,t)=>Math.abs(e-t)<1.01,debounce=(e,t,s)=>{let a;return function(...n){e.clearTimeout(a),a=e.setTimeout(()=>t.apply(this,n),s)}}},"./packages/packages/core/editor-global-classes/service/css-class-usage-service.ts":function(e,t,s){s.r(t),s.d(t,{fetchCssClassUsage:function(){return fetchCssClassUsage}});var a=s("./packages/packages/core/editor-global-classes/src/api.ts"),n=s("./packages/packages/core/editor-global-classes/src/components/css-class-usage/utils.ts");const fetchCssClassUsage=async()=>{const e=await a.apiClient.usage();return(0,n.transformData)(e?.data?.data||{})}},"./packages/packages/core/editor-global-classes/src/api.ts":function(e,t,s){s.r(t),s.d(t,{API_ERROR_CODES:function(){return d},apiClient:function(){return c}});var a=s("@elementor/http-client");const n="/global-classes",r="elementor/v1",o=`${n}/usage`,l=`${n}/post`,i=`${n}/styles`;function saveGlobalClasses(e,t){return(0,a.httpService)().put(`${r}${n}`,t,{params:{context:e}})}const c={usage:()=>(0,a.httpService)().get(`${r}${o}`),all:(e="preview")=>(0,a.httpService)().get(`${r}${n}`,{params:{context:e}}),getStylesForPost:(e,t="preview")=>(0,a.httpService)().get(`${r}${l}`,{params:{context:t,post_id:e}}),getStylesByIds:(e,t="preview")=>(0,a.httpService)().get(`${r}${i}`,{params:{context:t,ids:e.join(",")}}),publish:e=>saveGlobalClasses("frontend",e),saveDraft:e=>saveGlobalClasses("preview",e)},d={DUPLICATED_LABEL:"DUPLICATED_LABEL"}},"./packages/packages/core/editor-global-classes/src/capabilities.ts":function(e,t,s){s.r(t),s.d(t,{UPDATE_CLASS_CAPABILITY_KEY:function(){return n},getCapabilities:function(){return getCapabilities}});var a=s("@elementor/editor-v1-adapters");const n="elementor_global_classes_update_class",getCapabilities=()=>{if((0,a.isExperimentActive)("global_classes_should_enforce_capabilities"))return{update:n,create:n,delete:n,updateProps:n}}},"./packages/packages/core/editor-global-classes/src/components/class-manager/class-item.tsx":function(e,t,s){s.r(t),s.d(t,{ClassItem:function(){return ClassItem}});var a=s("react"),n=s("@elementor/editor-styles-repository"),r=s("@elementor/editor-ui"),o=s("@elementor/icons"),l=s("@elementor/ui"),i=s("@wordpress/i18n"),c=s("./packages/packages/core/editor-global-classes/src/components/css-class-usage/components/index.ts"),d=s("./packages/packages/core/editor-global-classes/src/components/class-manager/delete-confirmation-dialog.tsx"),u=s("./packages/packages/core/editor-global-classes/src/components/class-manager/sortable.tsx");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var a in s)({}).hasOwnProperty.call(s,a)&&(e[a]=s[a])}return e},_extends.apply(null,arguments)}const ClassItem=({id:e,label:t,renameClass:s,selected:n,disabled:m,sortableTriggerProps:h,showSortIndicator:f,syncToV3:b,onToggleSync:y})=>{const v=(0,a.useRef)(null),{ref:k,openEditMode:_,isEditing:C,error:E,getProps:x}=(0,r.useEditable)({value:t,onSubmit:s,validation:validateLabel}),[S,w]=(0,a.useState)(""),{openDialog:I}=(0,d.useDeleteConfirmation)(),D=(0,l.usePopupState)({variant:"popover",disableAutoFocus:!0}),P=(S===e||n||D.isOpen)&&!m;return a.createElement(a.Fragment,null,a.createElement(l.Stack,{p:0},a.createElement(r.WarningInfotip,{open:Boolean(E),text:E??"",placement:"bottom",width:v.current?.getBoundingClientRect().width,offset:[0,-15]},a.createElement(p,{ref:v,dense:!0,disableGutters:!0,showSortIndicator:f,showActions:P||C,shape:"rounded",onDoubleClick:_,selected:P,disabled:m,focusVisibleClassName:"visible-class-item"},a.createElement(u.SortableTrigger,h),a.createElement(g,{isActive:C,isError:!!E},C?a.createElement(r.EditableField,_extends({ref:k,as:l.Typography,variant:"caption"},x())):a.createElement(r.EllipsisWithTooltip,{title:t,as:l.Typography,variant:"caption"})),a.createElement(l.Box,{className:"class-item-locator"},a.createElement(c.CssClassUsageTrigger,{id:e,onClick:w})),a.createElement(l.Tooltip,{placement:"top",className:"class-item-more-actions",title:(0,i.__)("More actions","elementor")},a.createElement(l.IconButton,_extends({size:"tiny"},(0,l.bindTrigger)(D),{"aria-label":"More actions"}),a.createElement(o.DotsVerticalIcon,{fontSize:"tiny"})))))),a.createElement(l.Menu,_extends({},(0,l.bindMenu)(D),{anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"}}),a.createElement(r.MenuListItem,{sx:{minWidth:"160px"},onClick:()=>{D.close(),_()}},a.createElement(l.Typography,{variant:"caption",sx:{color:"text.primary"}},(0,i.__)("Rename","elementor"))),y&&a.createElement(r.MenuListItem,{onClick:()=>{D.close(),y(e,!b)}},a.createElement(l.Stack,{direction:"row",alignItems:"center",gap:1},b?a.createElement(o.RefreshOffIcon,{fontSize:"tiny"}):a.createElement(o.RefreshIcon,{fontSize:"tiny"}),a.createElement(l.Typography,{variant:"caption",sx:{color:"text.primary"}},b?(0,i.__)("Stop syncing to Global Fonts","elementor"):(0,i.__)("Sync to Global Fonts","elementor")))),a.createElement(r.MenuListItem,{onClick:()=>{D.close(),I({id:e,label:t})}},a.createElement(l.Typography,{variant:"caption",sx:{color:"error.light"}},(0,i.__)("Delete","elementor")))))},p=(0,l.styled)(l.ListItemButton,{shouldForwardProp:e=>!["showActions","showSortIndicator"].includes(e)})(({showActions:e,showSortIndicator:t})=>`\n min-height: 36px;\n\n &.visible-class-item {\n box-shadow: none !important;\n }\n\n .class-item-locator {\n visibility: hidden;\n }\n\n .class-item-sortable-trigger {\n visibility: ${t&&e?"visible":"hidden"};\n }\n\n &:hover:not(:disabled) {\n .class-item-locator {\n visibility: visible;\n }\n\n .class-item-sortable-trigger {\n visibility: ${t?"visible":"hidden"};\n }\n }\n `),g=(0,l.styled)(l.Box,{shouldForwardProp:e=>!["isActive","isError"].includes(e)})(({theme:e,isActive:t,isError:s})=>({display:"flex",width:"100%",flexGrow:1,borderRadius:e.spacing(.5),border:getIndicatorBorder({isActive:t,isError:s,theme:e}),padding:`0 ${e.spacing(1)}`,marginLeft:t?e.spacing(1):0,minWidth:0})),getIndicatorBorder=({isActive:e,isError:t,theme:s})=>t?`2px solid ${s.palette.error.main}`:e?`2px solid ${s.palette.secondary.main}`:"none",validateLabel=e=>{const t=(0,n.validateStyleLabel)(e,"rename");return t.isValid?null:t.errorMessage}},"./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-button.tsx":function(e,t,s){s.r(t),s.d(t,{ClassManagerButton:function(){return ClassManagerButton}});var a=s("react"),n=s("@elementor/editor-documents"),r=s("@elementor/editor-styles-repository"),o=s("@elementor/editor-ui"),l=s("@elementor/editor-v1-adapters"),i=s("@elementor/ui"),c=s("@wordpress/i18n"),d=s("./packages/packages/core/editor-global-classes/src/global-classes-styles-provider.ts"),u=s("./packages/packages/core/editor-global-classes/src/hooks/use-prefetch-css-class-usage.ts"),p=s("./packages/packages/core/editor-global-classes/src/utils/tracking.ts"),g=s("./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-panel.tsx"),m=s("./packages/packages/core/editor-global-classes/src/components/class-manager/flipped-color-swatch-icon.tsx");const trackGlobalClassesButton=()=>{(0,p.trackGlobalClasses)({event:"classManagerOpened",source:"style-panel"})},ClassManagerButton=()=>{const e=(0,n.__useActiveDocument)(),{open:t}=(0,g.usePanelActions)(),{save:s}=(0,n.__useActiveDocumentActions)(),{open:p,close:h,isOpen:f}=(0,o.useDialog)(),{prefetchClassesUsage:b}=(0,u.usePrefetchCssClassUsage)(),{userCan:y}=(0,r.useUserStylesCapability)();if(!y(d.globalClassesStylesProvider.getKey()).update)return null;const toggleClassesManagerPanel=()=>{(0,l.isExperimentActive)("e_editor_design_system_panel")?window.dispatchEvent(new CustomEvent("elementor/toggle-design-system",{detail:{tab:"classes"}})):t()};return a.createElement(a.Fragment,null,a.createElement(i.Tooltip,{title:(0,c.__)("Class Manager","elementor"),placement:"top"},a.createElement(i.IconButton,{size:"tiny",onClick:()=>{e?.isDirty?p():(toggleClassesManagerPanel(),trackGlobalClassesButton(),b())},sx:{marginInlineEnd:-.75}},a.createElement(m.FlippedColorSwatchIcon,{fontSize:"tiny"}))),f&&a.createElement(o.SaveChangesDialog,null,a.createElement(o.SaveChangesDialog.Title,null,(0,c.__)("You have unsaved changes","elementor")),a.createElement(o.SaveChangesDialog.Content,null,a.createElement(o.SaveChangesDialog.ContentText,{sx:{mb:2}},(0,c.__)("To open the Class Manager, save your page first. You can't continue without saving.","elementor"))),a.createElement(o.SaveChangesDialog.Actions,{actions:{cancel:{label:(0,c.__)("Stay here","elementor"),action:h},confirm:{label:(0,c.__)("Save & Continue","elementor"),action:async()=>{await s(),h(),toggleClassesManagerPanel(),trackGlobalClassesButton(),b()}}}})))}},"./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-introduction.tsx":function(e,t,s){s.r(t),s.d(t,{ClassManagerIntroduction:function(){return ClassManagerIntroduction}});var a=s("react"),n=s("@elementor/editor-current-user"),r=s("@elementor/editor-ui"),o=s("@elementor/ui"),l=s("@wordpress/i18n");const ClassManagerIntroduction=()=>{const[e,t]=(0,n.useSuppressedMessage)("global-class-manager"),[s,i]=(0,a.useState)(!e);return a.createElement(r.IntroductionModal,{open:s,title:(0,l.__)("Class Manager","elementor"),handleClose:e=>{e||t(),i(!1)}},a.createElement(o.Image,{sx:{width:"100%",aspectRatio:"16 / 9"},src:"https://assets.elementor.com/packages/v1/images/class-manager-intro.svg",alt:""}),a.createElement(IntroductionContent,null))},IntroductionContent=()=>a.createElement(o.Box,{p:3},a.createElement(o.Typography,{variant:"body2"},(0,l.__)("The Class Manager lets you see all the classes you've created, plus adjust their priority, rename them, and delete unused classes to keep your CSS structured.","elementor")),a.createElement("br",null),a.createElement(o.Typography,{variant:"body2"},(0,l.__)("Remember, when editing an item within a specific class, any changes you make will apply across all elements in that class.","elementor")))},"./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-panel.tsx":function(e,t,s){s.r(t),s.d(t,{ClassManagerPanel:function(){return ClassManagerPanel},ClassManagerPanelEmbedded:function(){return ClassManagerPanelEmbedded},panel:function(){return A},usePanelActions:function(){return L}});var a=s("react"),n=s("@elementor/editor-current-user"),r=s("@elementor/editor-documents"),o=s("@elementor/editor-panels"),l=s("@elementor/editor-ui"),i=s("@elementor/editor-v1-adapters"),c=s("@elementor/icons"),d=s("@elementor/query"),u=s("@elementor/store"),p=s("@elementor/ui"),g=s("@wordpress/i18n"),m=s("./packages/packages/core/editor-global-classes/src/hooks/use-classes-order.ts"),h=s("./packages/packages/core/editor-global-classes/src/hooks/use-dirty-state.ts"),f=s("./packages/packages/core/editor-global-classes/src/hooks/use-filters.ts"),b=s("./packages/packages/core/editor-global-classes/src/save-global-classes.tsx"),y=s("./packages/packages/core/editor-global-classes/src/store.ts"),v=s("./packages/packages/core/editor-global-classes/src/utils/tracking.ts"),k=s("./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/active-filters.tsx"),_=s("./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/css-class-filter.tsx"),C=s("./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/search/class-manager-search.tsx"),E=s("./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx"),x=s("./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-introduction.tsx"),S=s("./packages/packages/core/editor-global-classes/src/components/class-manager/delete-class.ts"),w=s("./packages/packages/core/editor-global-classes/src/components/class-manager/flipped-color-swatch-icon.tsx"),I=s("./packages/packages/core/editor-global-classes/src/components/class-manager/global-classes-list.tsx"),D=s("./packages/packages/core/editor-global-classes/src/components/class-manager/panel-interactions.ts"),P=s("./packages/packages/core/editor-global-classes/src/components/class-manager/start-sync-to-v3-modal.tsx");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var a in s)({}).hasOwnProperty.call(s,a)&&(e[a]=s[a])}return e},_extends.apply(null,arguments)}const O="stop-sync-class",T="global-classes-manager";function ClassManagerPanelEmbedded({onRequestClose:e,onExposeCloseAttempt:t}){return a.createElement(ClassManagerPanelRoot,{embedded:!0,onRequestClose:e,onExposeCloseAttempt:t})}function ClassManagerPanel(){return a.createElement(ClassManagerPanelRoot,null)}const{panel:A,usePanelActions:L}=(0,o.__createPanel)({id:T,component:ClassManagerPanel,allowedEditModes:["edit",T],onOpen:()=>{(0,i.changeEditMode)(T),(0,D.blockPanelInteractions)()},onClose:async()=>{(0,i.changeEditMode)("edit"),await(0,r.reloadCurrentDocument)(),(0,D.unblockPanelInteractions)()},isOpenPreviousElement:!0});function ClassManagerPanelRoot({embedded:e=!1,onRequestClose:t,onExposeCloseAttempt:s}={}){const r=(0,h.useDirtyState)(),{close:i}=L(),c=(0,a.useMemo)(()=>e?t??(async()=>{}):i,[e,t,i]),{open:d,close:m,isOpen:f}=(0,l.useDialog)(),[b,S]=(0,a.useState)(null),[T,A]=(0,a.useState)(null),[M]=(0,n.useSuppressedMessage)(O),[z,F]=(0,a.useState)(null),{mutateAsync:R,isPending:G}=usePublish(),U=(0,a.useCallback)(()=>{r?d():c()},[r,d,c]);(0,a.useEffect)(()=>{if(e&&s)return s(()=>U()),()=>s(null)},[e,s,U]),(0,a.useEffect)(()=>{if(e)return(0,D.blockPanelInteractions)(),()=>{(0,D.unblockPanelInteractions)()}},[e]);const B=(0,a.useCallback)(e=>{(0,u.__dispatch)(y.slice.actions.update({style:{id:e,sync_to_v3:!1}})),(0,v.trackGlobalClasses)({event:"classSyncToV3",classId:e,action:"unsync"}),S(null)},[]),j=(0,a.useCallback)(e=>{(0,u.__dispatch)(y.slice.actions.update({style:{id:e,sync_to_v3:!0}})),(0,v.trackGlobalClasses)({event:"classSyncToV3",classId:e,action:"sync"}),A(null)},[]),V=(0,a.useCallback)(e=>{M?B(e):S(e)},[M,B]);usePreventUnload();const W=a.createElement(p.Box,{px:2,pb:1},a.createElement(p.Stack,{direction:"row",alignItems:"center",justifyContent:"space-between",gap:.5,sx:{pb:.5}},a.createElement(p.Box,{sx:e?{flexGrow:1,minWidth:0}:{flexGrow:1}},a.createElement(C.ClassManagerSearch,null)),a.createElement(_.CssClassFilter,null),e&&a.createElement(TotalCssClassCounter,null)),a.createElement(k.ActiveFilters,null)),q=a.createElement(p.Box,{ref:F,px:2,sx:{flexGrow:1,overflowY:"auto",...e?{minHeight:0}:{}}},a.createElement(I.GlobalClassesList,{disabled:G,scrollElement:z,onStopSyncRequest:V,onStartSyncRequest:e=>A(e)})),$=a.createElement(o.PanelFooter,null,a.createElement(p.Button,{fullWidth:!0,size:"small",color:"global",variant:"contained",onClick:R,disabled:!r,loading:G},(0,g.__)("Save changes","elementor"))),N=a.createElement(a.Fragment,null,T&&a.createElement(P.StartSyncToV3Modal,{externalOpen:!0,classId:T,onExternalClose:()=>A(null),onConfirm:()=>j(T)}),b&&a.createElement(StopSyncConfirmationDialog,{open:!0,onClose:()=>S(null),onConfirm:()=>B(b)}),f&&a.createElement(l.SaveChangesDialog,null,a.createElement(p.DialogHeader,{onClose:m,logo:!1},a.createElement(l.SaveChangesDialog.Title,null,(0,g.__)("You have unsaved changes","elementor"))),a.createElement(l.SaveChangesDialog.Content,null,a.createElement(l.SaveChangesDialog.ContentText,null,(0,g.__)("You have unsaved changes in the Class Manager.","elementor")),a.createElement(l.SaveChangesDialog.ContentText,null,(0,g.__)("To avoid losing your updates, save your changes before leaving.","elementor"))),a.createElement(l.SaveChangesDialog.Actions,{actions:{discard:{label:(0,g.__)("Discard","elementor"),action:()=>{(0,u.__dispatch)(y.slice.actions.resetToInitialState({context:"frontend"})),m()}},confirm:{label:(0,g.__)("Save & Continue","elementor"),action:async()=>{await R(),m(),c()}}}}))),H=e?a.createElement(p.Stack,{direction:"column",sx:{height:"100%",width:"100%",flex:1,minHeight:0,overflow:"hidden"}},W,a.createElement(p.Divider,null),q,$):a.createElement(o.Panel,null,a.createElement(o.PanelHeader,null,a.createElement(p.Stack,{p:1,pl:2,width:"100%",direction:"row",alignItems:"center"},a.createElement(p.Stack,{width:"100%",direction:"row",gap:1},a.createElement(o.PanelHeaderTitle,{sx:{display:"flex",alignItems:"center",gap:.5}},a.createElement(w.FlippedColorSwatchIcon,{fontSize:"inherit"}),(0,g.__)("Class Manager","elementor")),a.createElement(TotalCssClassCounter,null)),a.createElement(ClassPanelCloseButton,{disabled:G,onClose:()=>{r?d():i()}}))),a.createElement(o.PanelBody,{sx:{display:"flex",flexDirection:"column",height:"100%"}},W,a.createElement(p.Divider,null),q),$),Y=a.createElement(a.Fragment,null,a.createElement(p.ErrorBoundary,{fallback:a.createElement(ErrorBoundaryFallback,null)},a.createElement(E.SearchAndFilterProvider,null,H)),a.createElement(x.ClassManagerIntroduction,null),N);return e?Y:a.createElement(l.ThemeProvider,null,Y)}const ClassPanelCloseButton=({onClose:e,sx:t,...s})=>a.createElement(p.IconButton,_extends({size:"small",color:"secondary",onClick:e,"aria-label":"Close",sx:{marginLeft:"auto",...t}},s),a.createElement(c.XIcon,{fontSize:"small"})),ErrorBoundaryFallback=()=>a.createElement(p.Box,{role:"alert",sx:{minHeight:"100%",p:2}},a.createElement(p.Alert,{severity:"error",sx:{mb:2,maxWidth:400,textAlign:"center"}},a.createElement("strong",null,(0,g.__)("Something went wrong","elementor")))),usePreventUnload=()=>{const e=(0,h.useDirtyState)();(0,a.useEffect)(()=>{const handleBeforeUnload=t=>{e&&t.preventDefault()};return window.addEventListener("beforeunload",handleBeforeUnload),()=>{window.removeEventListener("beforeunload",handleBeforeUnload)}},[e])},usePublish=()=>(0,d.useMutation)({mutationFn:()=>(0,b.saveGlobalClasses)({context:"frontend"}),onSuccess:async()=>{(0,r.setDocumentModifiedStatus)(!1),(0,S.hasDeletedItems)()&&await(0,S.onDelete)()}}),TotalCssClassCounter=()=>{const e=(0,f.useFilters)(),t=(0,m.useClassesOrder)();return a.createElement(p.Chip,{size:"small",label:e?`${e.length} / ${t?.length}`:t?.length})},StopSyncConfirmationDialog=({open:e,onClose:t,onConfirm:s})=>{const[,r]=(0,n.useSuppressedMessage)(O);return a.createElement(l.ConfirmationDialog,{open:e,onClose:t},a.createElement(l.ConfirmationDialog.Title,{icon:w.FlippedColorSwatchIcon,iconColor:"primary"},(0,g.__)("Un-sync typography class","elementor")),a.createElement(l.ConfirmationDialog.Content,null,a.createElement(l.ConfirmationDialog.ContentText,null,(0,g.__)("You're about to stop syncing a typography class to Global Fonts.","elementor")),a.createElement(l.ConfirmationDialog.ContentText,{sx:{mt:1}},(0,g.__)("Note that if it's being used anywhere, the affected elements will inherit the default typography.","elementor"))),a.createElement(l.ConfirmationDialog.Actions,{onClose:t,onConfirm:s,cancelLabel:(0,g.__)("Cancel","elementor"),confirmLabel:(0,g.__)("Got it","elementor"),color:"primary",onSuppressMessage:r,suppressLabel:(0,g.__)("Don't show again","elementor")}))}},"./packages/packages/core/editor-global-classes/src/components/class-manager/delete-class.ts":function(e,t,s){s.r(t),s.d(t,{deleteClass:function(){return deleteClass},hasDeletedItems:function(){return hasDeletedItems},onDelete:function(){return onDelete}});var a=s("@elementor/store"),n=s("./packages/packages/core/editor-global-classes/src/store.ts"),r=s("./packages/packages/core/editor-global-classes/src/utils/tracking.ts");let o=!1;const deleteClass=e=>{(0,r.trackGlobalClasses)({event:"classDeleted",classId:e,runAction:()=>{(0,a.__dispatch)(n.slice.actions.delete(e)),o=!0}})},onDelete=async()=>{o=!1},hasDeletedItems=()=>o},"./packages/packages/core/editor-global-classes/src/components/class-manager/delete-confirmation-dialog.tsx":function(e,t,s){s.r(t),s.d(t,{DeleteConfirmationProvider:function(){return DeleteConfirmationProvider},useDeleteConfirmation:function(){return useDeleteConfirmation}});var a=s("react"),n=s("@elementor/editor-ui"),r=s("@elementor/ui"),o=s("@wordpress/i18n"),l=s("./packages/packages/core/editor-global-classes/src/hooks/use-css-class-usage-by-id.ts"),i=s("./packages/packages/core/editor-global-classes/src/components/class-manager/delete-class.ts");const c=(0,a.createContext)(null),DeleteConfirmationProvider=({children:e})=>{const[t,s]=(0,a.useState)(null);return a.createElement(c.Provider,{value:{openDialog:e=>{s(e)},closeDialog:()=>{s(null)},dialogProps:t}},e,!!t&&a.createElement(DeleteClassDialog,t))},DeleteClassDialog=({label:e,id:t})=>{const{closeDialog:s}=useDeleteConfirmation(),{data:{total:c,content:d}}=(0,l.useCssClassUsageByID)(t),u=c&&d.length?(0,o.__)("Will permanently remove it from your project and may affect the design across all elements using it. Used %1 times across %2 pages. This action cannot be undone.","elementor").replace("%1",c.toString()).replace("%2",d.length.toString()):(0,o.__)("Will permanently remove it from your project and may affect the design across all elements using it. This action cannot be undone.","elementor");return a.createElement(n.ConfirmationDialog,{open:!0,onClose:s},a.createElement(n.ConfirmationDialog.Title,null,(0,o.__)("Delete this class?","elementor")),a.createElement(n.ConfirmationDialog.Content,null,a.createElement(n.ConfirmationDialog.ContentText,null,(0,o.__)("Deleting","elementor"),a.createElement(r.Typography,{variant:"subtitle2",component:"span"}," ",e," "),u)),a.createElement(n.ConfirmationDialog.Actions,{onClose:s,onConfirm:()=>{s(),(0,i.deleteClass)(t)}}))},useDeleteConfirmation=()=>{const e=(0,a.useContext)(c);if(!e)throw new Error("useDeleteConfirmation must be used within a DeleteConfirmationProvider");return e}},"./packages/packages/core/editor-global-classes/src/components/class-manager/duplicate-label-dialog.tsx":function(e,t,s){s.r(t),s.d(t,{DuplicateLabelDialog:function(){return DuplicateLabelDialog}});var a=s("react"),n=s("@elementor/editor-ui"),r=s("@elementor/icons"),o=s("@elementor/ui"),l=s("@wordpress/i18n");const i="DUP_",DuplicateLabelDialog=({modifiedLabels:e,onApprove:t})=>a.createElement(a.Fragment,null,a.createElement(o.DialogHeader,{logo:!1},a.createElement(o.Box,{display:"flex",alignItems:"center",gap:1},a.createElement(o.Icon,{color:"secondary"},a.createElement(r.InfoCircleFilledIcon,{fontSize:"medium"})),a.createElement(o.Typography,{variant:"subtitle1"},(0,l.__)("We've published your page and updated class names.","elementor")))),a.createElement(o.DialogContent,null,a.createElement(o.Stack,{spacing:2,direction:"column"},a.createElement(o.Typography,{variant:"body2"},(0,l.__)("Some new classes used the same names as existing ones. To prevent conflicts, we added the prefix","elementor"),a.createElement("strong",null," ",i)),a.createElement(o.Box,null,a.createElement(o.Box,{sx:{width:"100%",display:"flex",gap:2,alignItems:"flex-start"}},a.createElement(o.Typography,{variant:"subtitle2",sx:{fontWeight:"bold",flex:1,flexShrink:1,flexGrow:1,minWidth:0}},(0,l.__)("Before","elementor")),a.createElement(o.Typography,{variant:"subtitle2",sx:{minWidth:"200px",fontWeight:"bold",flexShrink:0,flexGrow:0,width:"200px",maxWidth:"200px"}},(0,l.__)("After","elementor"))),a.createElement(o.Divider,{sx:{mt:.5,mb:.5}}),a.createElement(o.Stack,{direction:"column",gap:.5,sx:{pb:2}},Object.values(e).map(({original:e,modified:t},s)=>a.createElement(o.Box,{key:s,sx:{width:"100%",display:"flex",gap:2,alignItems:"flex-start"}},a.createElement(o.Box,{sx:{flex:1,flexShrink:1,flexGrow:1,minWidth:0}},a.createElement(n.EllipsisWithTooltip,{title:e},a.createElement(o.Typography,{variant:"body2",sx:{color:"text.secondary"}},e))),a.createElement(o.Box,{sx:{minWidth:"200px",flexShrink:0,flexGrow:0,width:"200px",maxWidth:"200px"}},a.createElement(n.EllipsisWithTooltip,{title:t},a.createElement(o.Typography,{variant:"body2",sx:{color:"text.primary"}},t)))))),a.createElement(o.Box,null,a.createElement(o.Alert,{severity:"info",size:"small",color:"secondary"},a.createElement("strong",null,(0,l.__)("Your designs and classes are safe.","elementor")),(0,l.__)("Only the prefixes were added. Find them in Class Manager by searching","elementor"),a.createElement("strong",null,i)))))),a.createElement(o.DialogActions,null,a.createElement(o.Button,{color:"secondary",variant:"text",onClick:()=>{localStorage.setItem("elementor-global-classes-search",i),t?.(),(0,n.closeDialog)()}},(0,l.__)("Go to Class Manager","elementor")),a.createElement(o.Button,{color:"secondary",variant:"contained",onClick:n.closeDialog},(0,l.__)("Done","elementor"))))},"./packages/packages/core/editor-global-classes/src/components/class-manager/flipped-color-swatch-icon.tsx":function(e,t,s){s.r(t),s.d(t,{FlippedColorSwatchIcon:function(){return FlippedColorSwatchIcon}});var a=s("react"),n=s("@elementor/icons");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var a in s)({}).hasOwnProperty.call(s,a)&&(e[a]=s[a])}return e},_extends.apply(null,arguments)}const FlippedColorSwatchIcon=({sx:e,...t})=>a.createElement(n.ColorSwatchIcon,_extends({sx:{transform:"rotate(90deg)",...e}},t))},"./packages/packages/core/editor-global-classes/src/components/class-manager/global-classes-list.tsx":function(e,t,s){s.r(t),s.d(t,{GlobalClassesList:function(){return GlobalClassesList}});var a=s("react"),n=s("@elementor/store"),r=s("@elementor/ui"),o=s("./packages/node_modules/@tanstack/react-virtual/dist/esm/index.js"),l=s("./packages/node_modules/@tanstack/virtual-core/dist/esm/index.js"),i=s("@wordpress/i18n"),c=s("./packages/packages/core/editor-global-classes/src/hooks/use-classes-order.ts"),d=s("./packages/packages/core/editor-global-classes/src/hooks/use-filters.ts"),u=s("./packages/packages/core/editor-global-classes/src/hooks/use-ordered-classes.ts"),p=s("./packages/packages/core/editor-global-classes/src/store.ts"),g=s("./packages/packages/core/editor-global-classes/src/utils/tracking.ts"),m=s("./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx"),h=s("./packages/packages/core/editor-global-classes/src/components/class-manager/class-item.tsx"),f=s("./packages/packages/core/editor-global-classes/src/components/class-manager/delete-confirmation-dialog.tsx"),b=s("./packages/packages/core/editor-global-classes/src/components/class-manager/flipped-color-swatch-icon.tsx"),y=s("./packages/packages/core/editor-global-classes/src/components/class-manager/not-found.tsx"),v=s("./packages/packages/core/editor-global-classes/src/components/class-manager/sortable.tsx");const GlobalClassesList=({disabled:e,scrollElement:t,onStopSyncRequest:s,onStartSyncRequest:i})=>{const{search:{debouncedValue:c}}=(0,m.useSearchAndFilters)(),b=(0,u.useOrderedClasses)(),k=(0,n.__useDispatch)(),_=(0,d.useFilters)(),[C,E]=(0,a.useState)(null),x=b.find(e=>e.id===C)?.label??"",[S,w]=useReorder(C,E,x??""),I=useFilteredCssClasses(),D=(0,o.useVirtualizer)({count:I.length,getScrollElement:()=>t??null,estimateSize:()=>40,overscan:6,getItemKey:e=>I[e].id,rangeExtractor:e=>{const t=new Set((0,l.defaultRangeExtractor)(e));if(C){const e=I.findIndex(e=>e.id===C);e>=0&&t.add(e)}return[...t].sort((e,t)=>e-t)}});if((0,a.useEffect)(()=>{const handler=e=>{if("z"===e.key&&(e.ctrlKey||e.metaKey)){if(e.stopImmediatePropagation(),e.preventDefault(),e.shiftKey)return void k(p.slice.actions.redo());k(p.slice.actions.undo())}};return window.addEventListener("keydown",handler,{capture:!0}),()=>window.removeEventListener("keydown",handler)},[k]),!b?.length)return a.createElement(EmptyState,null);const P=(0,y.getNotFoundType)(c,_,I);if(P)return a.createElement(y.NotFound,{notFoundType:P});const O=_?.length||c,T=I.length>1&&!O;return a.createElement(f.DeleteConfirmationProvider,null,a.createElement(r.List,{sx:{position:"relative",display:"block",height:D.getTotalSize(),padding:0}},a.createElement(v.SortableProvider,{value:S,onChange:w,onDragStart:e=>E(e.active.id),onDragEnd:()=>E(null),onDragCancel:()=>E(null),disableDragOverlay:!T},D.getVirtualItems().map(t=>{const n=I[t.index];return a.createElement(v.SortableItem,{key:t.key,id:n.id,style:{position:"absolute",top:t.start,left:0,width:"100%"}},({isDragged:t,isDragPlaceholder:r,triggerProps:o,triggerStyle:l})=>a.createElement(h.ClassItem,{id:n.id,label:n.label,renameClass:e=>{(0,g.trackGlobalClasses)({event:"classRenamed",classId:n.id,oldValue:n.label,newValue:e,source:"class-manager"}),k(p.slice.actions.update({style:{id:n.id,label:e}}))},selected:t,disabled:e||r,sortableTriggerProps:{...o,style:l},showSortIndicator:T,syncToV3:n.sync_to_v3,onToggleSync:(e,t)=>{!t&&s?s(e):t&&i?i(e):k(p.slice.actions.update({style:{id:e,sync_to_v3:t}}))}}))}))))},EmptyState=()=>a.createElement(r.Stack,{alignItems:"center",gap:1.5,pt:10,px:.5,maxWidth:"260px",margin:"auto"},a.createElement(b.FlippedColorSwatchIcon,{fontSize:"large"}),a.createElement(k,{variant:"subtitle2",component:"h2",color:"text.secondary"},(0,i.__)("There are no global classes yet.","elementor")),a.createElement(r.Typography,{align:"center",variant:"caption",color:"text.secondary"},(0,i.__)("CSS classes created in the editor panel will appear here. Once they are available, you can arrange their hierarchy, rename them, or delete them as needed.","elementor"))),k=(0,r.styled)(r.Typography)(({theme:e,variant:t})=>({"&.MuiTypography-root":{...e.typography[t]}})),useReorder=(e,t,s)=>{const a=(0,n.__useDispatch)();return[(0,c.useClassesOrder)(),n=>{a(p.slice.actions.setOrder(n)),e&&((0,g.trackGlobalClasses)({event:"classManagerReorder",classId:e,classTitle:s}),t(null))}]},useFilteredCssClasses=()=>{const e=(0,u.useOrderedClasses)(),{search:{debouncedValue:t}}=(0,m.useSearchAndFilters)(),s=(0,d.useFilters)(),n=(0,a.useMemo)(()=>e.map(e=>({...e,lowerLabel:e.label.toLowerCase()})),[e]),r=(0,a.useMemo)(()=>{const s=t.replace(/[^a-zA-Z0-9_-]/g,"").toLowerCase();return s.length>1?n.filter(e=>e.lowerLabel.includes(s)):e},[t,e,n]);return(0,a.useMemo)(()=>s&&s.length>0?r.filter(e=>s.includes(e.id)):r,[r,s])}},"./packages/packages/core/editor-global-classes/src/components/class-manager/not-found.tsx":function(e,t,s){s.r(t),s.d(t,{NotFound:function(){return NotFound},NotFoundLayout:function(){return NotFoundLayout},getNotFoundType:function(){return getNotFoundType}});var a=s("react"),n=s("@elementor/icons"),r=s("@elementor/ui"),o=s("@wordpress/i18n"),l=s("./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var a in s)({}).hasOwnProperty.call(s,a)&&(e[a]=s[a])}return e},_extends.apply(null,arguments)}const getNotFoundType=(e,t,s)=>{const a=s.length<=0&&e.length>1,n=t&&0===t.length;return a&&n?"filterAndSearch":a?"search":n?"filter":void 0},i={filterAndSearch:{mainText:(0,o.__)("Sorry, nothing matched.","elementor"),sceneryText:(0,o.__)("Try something else.","elementor"),icon:a.createElement(n.PhotoIcon,{color:"inherit",fontSize:"large"})},search:{mainText:(0,o.__)("Sorry, nothing matched","elementor"),sceneryText:(0,o.__)("Clear your input and try something else.","elementor"),icon:a.createElement(n.PhotoIcon,{color:"inherit",fontSize:"large"})},filter:{mainText:(0,o.__)("Sorry, nothing matched that search.","elementor"),sceneryText:(0,o.__)("Clear the filters and try something else.","elementor"),icon:a.createElement(n.ColorSwatchIcon,{color:"inherit",fontSize:"large"})}},NotFound=({notFoundType:e})=>{const{search:{onClearSearch:t,inputValue:s},filters:{onClearFilter:n}}=(0,l.useSearchAndFilters)();switch(e){case"filter":return a.createElement(NotFoundLayout,_extends({},i.filter,{onClear:n}));case"search":return a.createElement(NotFoundLayout,_extends({},i.search,{searchValue:s,onClear:t}));case"filterAndSearch":return a.createElement(NotFoundLayout,_extends({},i.filterAndSearch,{onClear:()=>{n(),t()}}))}},NotFoundLayout=({onClear:e,searchValue:t,mainText:s,sceneryText:n,icon:l})=>a.createElement(r.Stack,{color:"text.secondary",pt:5,alignItems:"center",gap:1,overflow:"hidden",justifySelf:"center"},l,a.createElement(r.Box,{sx:{width:"100%"}},a.createElement(r.Typography,{align:"center",variant:"subtitle2",color:"inherit"},s),t&&a.createElement(r.Typography,{variant:"subtitle2",color:"inherit",sx:{display:"flex",width:"100%",justifyContent:"center"}},a.createElement("span",null,"“"),a.createElement("span",{style:{maxWidth:"80%",overflow:"hidden",textOverflow:"ellipsis"}},t),a.createElement("span",null,"”."))),a.createElement(r.Typography,{align:"center",variant:"caption",color:"inherit"},n),a.createElement(r.Typography,{align:"center",variant:"caption",color:"inherit"},a.createElement(r.Link,{color:"secondary",variant:"caption",component:"button",onClick:e},(0,o.__)("Clear & try again","elementor"))))},"./packages/packages/core/editor-global-classes/src/components/class-manager/panel-interactions.ts":function(e,t,s){function blockPanelInteractions(){const e=window;e.$e?.components?.get?.("panel")?.blockUserInteractions?.()}function unblockPanelInteractions(){const e=window;e.$e?.components?.get?.("panel")?.unblockUserInteractions?.()}s.r(t),s.d(t,{blockPanelInteractions:function(){return blockPanelInteractions},unblockPanelInteractions:function(){return unblockPanelInteractions}})},"./packages/packages/core/editor-global-classes/src/components/class-manager/sortable.tsx":function(e,t,s){s.r(t),s.d(t,{SortableItem:function(){return SortableItem},SortableProvider:function(){return SortableProvider},SortableTrigger:function(){return SortableTrigger}});var a=s("react"),n=s("@elementor/icons"),r=s("@elementor/ui");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var a in s)({}).hasOwnProperty.call(s,a)&&(e[a]=s[a])}return e},_extends.apply(null,arguments)}const SortableProvider=e=>a.createElement(r.UnstableSortableProvider,_extends({restrictAxis:!0,variant:"static",dragPlaceholderStyle:{visibility:"hidden"}},e)),SortableTrigger=e=>a.createElement(o,_extends({},e,{role:"button",className:"class-item-sortable-trigger","aria-label":"sort"}),a.createElement(n.GripVerticalIcon,{fontSize:"tiny"})),SortableItem=({children:e,id:t,style:s,...n})=>a.createElement(r.UnstableSortableItem,_extends({},n,{id:t,render:({itemProps:t,isDragged:n,triggerProps:o,itemStyle:i,triggerStyle:c,dropIndicationStyle:d,showDropIndication:u,isDragOverlay:p,isDragPlaceholder:g})=>a.createElement(r.Box,_extends({},t,{style:{...i,...p?null:s},component:"li",role:"listitem",sx:{backgroundColor:p?"background.paper":void 0}}),e({itemProps:t,isDragged:n,triggerProps:o,itemStyle:i,triggerStyle:c,isDragPlaceholder:g}),u&&a.createElement(l,{style:d}))})),o=(0,r.styled)("div")(({theme:e})=>({position:"absolute",left:0,top:"50%",transform:`translate( -${e.spacing(1.5)}, -50% )`,color:e.palette.action.active})),l=(0,r.styled)(r.Box)`
2 +!function(){"use strict";var e={"./packages/packages/core/editor-global-classes/service/css-class-usage-service.ts":function(e,s,t){t.r(s),t.d(s,{fetchCssClassUsage:function(){return fetchCssClassUsage}});var a=t("./packages/packages/core/editor-global-classes/src/api.ts"),r=t("./packages/packages/core/editor-global-classes/src/components/css-class-usage/utils.ts");const fetchCssClassUsage=async()=>{const e=await a.apiClient.usage();return(0,r.transformData)(e?.data?.data||{})}},"./packages/packages/core/editor-global-classes/src/api.ts":function(e,s,t){t.r(s),t.d(s,{API_ERROR_CODES:function(){return c},apiClient:function(){return l}});var a=t("@elementor/http-client");const r="/global-classes",o="elementor/v1",n=`${r}/usage`,l={usage:()=>(0,a.httpService)().get(`${o}${n}`),all:(e="preview")=>(0,a.httpService)().get(`${o}${r}`,{params:{context:e}}),publish:e=>(0,a.httpService)().put("elementor/v1"+r,e,{params:{context:"frontend"}}),saveDraft:e=>(0,a.httpService)().put("elementor/v1"+r,e,{params:{context:"preview"}})},c={DUPLICATED_LABEL:"DUPLICATED_LABEL"}},"./packages/packages/core/editor-global-classes/src/capabilities.ts":function(e,s,t){t.r(s),t.d(s,{UPDATE_CLASS_CAPABILITY_KEY:function(){return r},getCapabilities:function(){return getCapabilities}});var a=t("@elementor/editor-v1-adapters");const r="elementor_global_classes_update_class",getCapabilities=()=>{if((0,a.isExperimentActive)("global_classes_should_enforce_capabilities"))return{update:r,create:r,delete:r,updateProps:r}}},"./packages/packages/core/editor-global-classes/src/components/class-manager/class-item.tsx":function(e,s,t){t.r(s),t.d(s,{ClassItem:function(){return ClassItem}});var a=t("react"),r=t("@elementor/editor-styles-repository"),o=t("@elementor/editor-ui"),n=t("@elementor/icons"),l=t("@elementor/ui"),c=t("@wordpress/i18n"),i=t("./packages/packages/core/editor-global-classes/src/components/css-class-usage/components/index.ts"),d=t("./packages/packages/core/editor-global-classes/src/components/class-manager/delete-confirmation-dialog.tsx"),p=t("./packages/packages/core/editor-global-classes/src/components/class-manager/sortable.tsx");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var s=1;s<arguments.length;s++){var t=arguments[s];for(var a in t)({}).hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},_extends.apply(null,arguments)}const ClassItem=({id:e,label:s,renameClass:t,selected:r,disabled:m,sortableTriggerProps:h,showSortIndicator:b})=>{const f=(0,a.useRef)(null),{ref:y,openEditMode:k,isEditing:v,error:C,getProps:x}=(0,o.useEditable)({value:s,onSubmit:t,validation:validateLabel}),[_,E]=(0,a.useState)(""),{openDialog:w}=(0,d.useDeleteConfirmation)(),S=(0,l.usePopupState)({variant:"popover",disableAutoFocus:!0}),I=(_===e||r||S.isOpen)&&!m;return a.createElement(a.Fragment,null,a.createElement(l.Stack,{p:0},a.createElement(o.WarningInfotip,{open:Boolean(C),text:C??"",placement:"bottom",width:f.current?.getBoundingClientRect().width,offset:[0,-15]},a.createElement(u,{ref:f,dense:!0,disableGutters:!0,showSortIndicator:b,showActions:I||v,shape:"rounded",onDoubleClick:k,selected:I,disabled:m,focusVisibleClassName:"visible-class-item"},a.createElement(p.SortableTrigger,h),a.createElement(g,{isActive:v,isError:!!C},v?a.createElement(o.EditableField,_extends({ref:y,as:l.Typography,variant:"caption"},x())):a.createElement(o.EllipsisWithTooltip,{title:s,as:l.Typography,variant:"caption"})),a.createElement(l.Box,{className:"class-item-locator"},a.createElement(i.CssClassUsageTrigger,{id:e,onClick:E})),a.createElement(l.Tooltip,{placement:"top",className:"class-item-more-actions",title:(0,c.__)("More actions","elementor")},a.createElement(l.IconButton,_extends({size:"tiny"},(0,l.bindTrigger)(S),{"aria-label":"More actions"}),a.createElement(n.DotsVerticalIcon,{fontSize:"tiny"})))))),a.createElement(l.Menu,_extends({},(0,l.bindMenu)(S),{anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"}}),a.createElement(o.MenuListItem,{sx:{minWidth:"160px"},onClick:()=>{S.close(),k()}},a.createElement(l.Typography,{variant:"caption",sx:{color:"text.primary"}},(0,c.__)("Rename","elementor"))),a.createElement(o.MenuListItem,{onClick:()=>{S.close(),w({id:e,label:s})}},a.createElement(l.Typography,{variant:"caption",sx:{color:"error.light"}},(0,c.__)("Delete","elementor")))))},u=(0,l.styled)(l.ListItemButton,{shouldForwardProp:e=>!["showActions","showSortIndicator"].includes(e)})(({showActions:e,showSortIndicator:s})=>`\n min-height: 36px;\n\n &.visible-class-item {\n box-shadow: none !important;\n }\n\n .class-item-locator {\n visibility: hidden;\n }\n\n .class-item-sortable-trigger {\n visibility: ${s&&e?"visible":"hidden"};\n }\n\n &:hover:not(:disabled) {\n .class-item-locator {\n visibility: visible;\n }\n\n .class-item-sortable-trigger {\n visibility: ${s?"visible":"hidden"};\n }\n }\n `),g=(0,l.styled)(l.Box,{shouldForwardProp:e=>!["isActive","isError"].includes(e)})(({theme:e,isActive:s,isError:t})=>({display:"flex",width:"100%",flexGrow:1,borderRadius:e.spacing(.5),border:getIndicatorBorder({isActive:s,isError:t,theme:e}),padding:`0 ${e.spacing(1)}`,marginLeft:s?e.spacing(1):0,minWidth:0})),getIndicatorBorder=({isActive:e,isError:s,theme:t})=>s?`2px solid ${t.palette.error.main}`:e?`2px solid ${t.palette.secondary.main}`:"none",validateLabel=e=>{const s=(0,r.validateStyleLabel)(e,"rename");return s.isValid?null:s.errorMessage}},"./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-button.tsx":function(e,s,t){t.r(s),t.d(s,{ClassManagerButton:function(){return ClassManagerButton}});var a=t("react"),r=t("@elementor/editor-documents"),o=t("@elementor/editor-styles-repository"),n=t("@elementor/editor-ui"),l=t("@elementor/ui"),c=t("@wordpress/i18n"),i=t("./packages/packages/core/editor-global-classes/src/global-classes-styles-provider.ts"),d=t("./packages/packages/core/editor-global-classes/src/hooks/use-prefetch-css-class-usage.ts"),p=t("./packages/packages/core/editor-global-classes/src/utils/tracking.ts"),u=t("./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-panel.tsx"),g=t("./packages/packages/core/editor-global-classes/src/components/class-manager/flipped-color-swatch-icon.tsx");const trackGlobalClassesButton=()=>{(0,p.trackGlobalClasses)({event:"classManagerOpened",source:"style-panel"})},ClassManagerButton=()=>{const e=(0,r.__useActiveDocument)(),{open:s}=(0,u.usePanelActions)(),{save:t}=(0,r.__useActiveDocumentActions)(),{open:m,close:h,isOpen:b}=(0,n.useDialog)(),{prefetchClassesUsage:f}=(0,d.usePrefetchCssClassUsage)(),{userCan:y}=(0,o.useUserStylesCapability)();if(!y(i.globalClassesStylesProvider.getKey()).update)return null;return a.createElement(a.Fragment,null,a.createElement(l.Tooltip,{title:(0,c.__)("Class Manager","elementor"),placement:"top"},a.createElement(l.IconButton,{size:"tiny",onClick:()=>{e?.isDirty?m():(s(),trackGlobalClassesButton(),(0,p.trackGlobalClasses)({event:"classManagerOpened",source:"style-panel"}),f())},sx:{marginInlineEnd:-.75}},a.createElement(g.FlippedColorSwatchIcon,{fontSize:"tiny"}))),b&&a.createElement(n.SaveChangesDialog,null,a.createElement(n.SaveChangesDialog.Title,null,(0,c.__)("You have unsaved changes","elementor")),a.createElement(n.SaveChangesDialog.Content,null,a.createElement(n.SaveChangesDialog.ContentText,{sx:{mb:2}},(0,c.__)("To open the Class Manager, save your page first. You can't continue without saving.","elementor"))),a.createElement(n.SaveChangesDialog.Actions,{actions:{cancel:{label:(0,c.__)("Stay here","elementor"),action:h},confirm:{label:(0,c.__)("Save & Continue","elementor"),action:async()=>{await t(),h(),s(),trackGlobalClassesButton(),f()}}}})))}},"./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-introduction.tsx":function(e,s,t){t.r(s),t.d(s,{ClassManagerIntroduction:function(){return ClassManagerIntroduction}});var a=t("react"),r=t("@elementor/editor-current-user"),o=t("@elementor/editor-ui"),n=t("@elementor/ui"),l=t("@wordpress/i18n");const ClassManagerIntroduction=()=>{const[e,s]=(0,r.useSuppressedMessage)("global-class-manager"),[t,c]=(0,a.useState)(!e);return a.createElement(o.IntroductionModal,{open:t,title:(0,l.__)("Class Manager","elementor"),handleClose:e=>{e||s(),c(!1)}},a.createElement(n.Image,{sx:{width:"100%",aspectRatio:"16 / 9"},src:"https://assets.elementor.com/packages/v1/images/class-manager-intro.svg",alt:""}),a.createElement(IntroductionContent,null))},IntroductionContent=()=>a.createElement(n.Box,{p:3},a.createElement(n.Typography,{variant:"body2"},(0,l.__)("The Class Manager lets you see all the classes you've created, plus adjust their priority, rename them, and delete unused classes to keep your CSS structured.","elementor")),a.createElement("br",null),a.createElement(n.Typography,{variant:"body2"},(0,l.__)("Remember, when editing an item within a specific class, any changes you make will apply across all elements in that class.","elementor")))},"./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-panel.tsx":function(e,s,t){t.r(s),t.d(s,{ClassManagerPanel:function(){return ClassManagerPanel},panel:function(){return D},usePanelActions:function(){return P}});var a=t("react"),r=t("@elementor/editor-documents"),o=t("@elementor/editor-panels"),n=t("@elementor/editor-ui"),l=t("@elementor/editor-v1-adapters"),c=t("@elementor/icons"),i=t("@elementor/query"),d=t("@elementor/store"),p=t("@elementor/ui"),u=t("@wordpress/i18n"),g=t("./packages/packages/core/editor-global-classes/src/hooks/use-classes-order.ts"),m=t("./packages/packages/core/editor-global-classes/src/hooks/use-dirty-state.ts"),h=t("./packages/packages/core/editor-global-classes/src/hooks/use-filters.ts"),b=t("./packages/packages/core/editor-global-classes/src/save-global-classes.tsx"),f=t("./packages/packages/core/editor-global-classes/src/store.ts"),y=t("./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/active-filters.tsx"),k=t("./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/css-class-filter.tsx"),v=t("./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/search/class-manager-search.tsx"),C=t("./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx"),x=t("./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-introduction.tsx"),_=t("./packages/packages/core/editor-global-classes/src/components/class-manager/delete-class.ts"),E=t("./packages/packages/core/editor-global-classes/src/components/class-manager/flipped-color-swatch-icon.tsx"),w=t("./packages/packages/core/editor-global-classes/src/components/class-manager/global-classes-list.tsx"),S=t("./packages/packages/core/editor-global-classes/src/components/class-manager/panel-interactions.ts");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var s=1;s<arguments.length;s++){var t=arguments[s];for(var a in t)({}).hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},_extends.apply(null,arguments)}const I="global-classes-manager",{panel:D,usePanelActions:P}=(0,o.__createPanel)({id:I,component:ClassManagerPanel,allowedEditModes:["edit",I],onOpen:()=>{(0,l.changeEditMode)(I),(0,S.blockPanelInteractions)()},onClose:()=>{(0,l.changeEditMode)("edit"),(0,S.unblockPanelInteractions)()},isOpenPreviousElement:!0});function ClassManagerPanel(){const e=(0,m.useDirtyState)(),{close:s}=P(),{open:t,close:r,isOpen:l}=(0,n.useDialog)(),{mutateAsync:c,isPending:i}=usePublish();return usePreventUnload(),a.createElement(n.ThemeProvider,null,a.createElement(p.ErrorBoundary,{fallback:a.createElement(ErrorBoundaryFallback,null)},a.createElement(o.Panel,null,a.createElement(C.SearchAndFilterProvider,null,a.createElement(o.PanelHeader,null,a.createElement(p.Stack,{p:1,pl:2,width:"100%",direction:"row",alignItems:"center"},a.createElement(p.Stack,{width:"100%",direction:"row",gap:1},a.createElement(o.PanelHeaderTitle,{sx:{display:"flex",alignItems:"center",gap:.5}},a.createElement(E.FlippedColorSwatchIcon,{fontSize:"inherit"}),(0,u.__)("Class Manager","elementor")),a.createElement(TotalCssClassCounter,null)),a.createElement(CloseButton,{sx:{marginLeft:"auto"},disabled:i,onClose:()=>{e?t():s()}}))),a.createElement(o.PanelBody,{sx:{display:"flex",flexDirection:"column",height:"100%"}},a.createElement(p.Box,{px:2,pb:1},a.createElement(p.Stack,{direction:"row",justifyContent:"spaceBetween",gap:.5,sx:{pb:.5}},a.createElement(p.Box,{sx:{flexGrow:1}},a.createElement(v.ClassManagerSearch,null)),a.createElement(k.CssClassFilter,null)),a.createElement(y.ActiveFilters,null)),a.createElement(p.Divider,null),a.createElement(p.Box,{px:2,sx:{flexGrow:1,overflowY:"auto"}},a.createElement(w.GlobalClassesList,{disabled:i}))),a.createElement(o.PanelFooter,null,a.createElement(p.Button,{fullWidth:!0,size:"small",color:"global",variant:"contained",onClick:c,disabled:!e,loading:i},(0,u.__)("Save changes","elementor")))))),a.createElement(x.ClassManagerIntroduction,null),l&&a.createElement(n.SaveChangesDialog,null,a.createElement(p.DialogHeader,{onClose:r,logo:!1},a.createElement(n.SaveChangesDialog.Title,null,(0,u.__)("You have unsaved changes","elementor"))),a.createElement(n.SaveChangesDialog.Content,null,a.createElement(n.SaveChangesDialog.ContentText,null,(0,u.__)("You have unsaved changes in the Class Manager.","elementor")),a.createElement(n.SaveChangesDialog.ContentText,null,(0,u.__)("To avoid losing your updates, save your changes before leaving.","elementor"))),a.createElement(n.SaveChangesDialog.Actions,{actions:{discard:{label:(0,u.__)("Discard","elementor"),action:()=>{(0,d.__dispatch)(f.slice.actions.resetToInitialState({context:"frontend"})),r()}},confirm:{label:(0,u.__)("Save & Continue","elementor"),action:async()=>{await c(),r(),s()}}}})))}const CloseButton=({onClose:e,...s})=>a.createElement(p.IconButton,_extends({size:"small",color:"secondary",onClick:e,"aria-label":"Close"},s),a.createElement(c.XIcon,{fontSize:"small"})),ErrorBoundaryFallback=()=>a.createElement(p.Box,{role:"alert",sx:{minHeight:"100%",p:2}},a.createElement(p.Alert,{severity:"error",sx:{mb:2,maxWidth:400,textAlign:"center"}},a.createElement("strong",null,(0,u.__)("Something went wrong","elementor")))),usePreventUnload=()=>{const e=(0,m.useDirtyState)();(0,a.useEffect)(()=>{const handleBeforeUnload=s=>{e&&s.preventDefault()};return window.addEventListener("beforeunload",handleBeforeUnload),()=>{window.removeEventListener("beforeunload",handleBeforeUnload)}},[e])},usePublish=()=>(0,i.useMutation)({mutationFn:()=>(0,b.saveGlobalClasses)({context:"frontend"}),onSuccess:async()=>{(0,r.setDocumentModifiedStatus)(!1),(0,_.hasDeletedItems)()&&await(0,_.onDelete)()}}),TotalCssClassCounter=()=>{const e=(0,h.useFilters)(),s=(0,g.useClassesOrder)();return a.createElement(p.Chip,{size:"small",label:e?`${e.length} / ${s?.length}`:s?.length})}},"./packages/packages/core/editor-global-classes/src/components/class-manager/delete-class.ts":function(e,s,t){t.r(s),t.d(s,{deleteClass:function(){return deleteClass},hasDeletedItems:function(){return hasDeletedItems},onDelete:function(){return onDelete}});var a=t("@elementor/editor-documents"),r=t("@elementor/editor-v1-adapters"),o=t("@elementor/store"),n=t("./packages/packages/core/editor-global-classes/src/store.ts"),l=t("./packages/packages/core/editor-global-classes/src/utils/tracking.ts");let c=!1;const deleteClass=e=>{(0,l.trackGlobalClasses)({event:"classDeleted",classId:e,runAction:()=>{(0,o.__dispatch)(n.slice.actions.delete(e)),c=!0}})},onDelete=async()=>{await reloadDocument(),c=!1},hasDeletedItems=()=>c,reloadDocument=()=>{const e=(0,a.getCurrentDocument)();return(0,a.getV1DocumentsManager)().invalidateCache(),(0,r.__privateRunCommand)("editor/documents/switch",{id:e?.id,shouldScroll:!1,shouldNavigateToDefaultRoute:!1})}},"./packages/packages/core/editor-global-classes/src/components/class-manager/delete-confirmation-dialog.tsx":function(e,s,t){t.r(s),t.d(s,{DeleteConfirmationProvider:function(){return DeleteConfirmationProvider},useDeleteConfirmation:function(){return useDeleteConfirmation}});var a=t("react"),r=t("@elementor/editor-ui"),o=t("@elementor/ui"),n=t("@wordpress/i18n"),l=t("./packages/packages/core/editor-global-classes/src/hooks/use-css-class-usage-by-id.ts"),c=t("./packages/packages/core/editor-global-classes/src/components/class-manager/delete-class.ts");const i=(0,a.createContext)(null),DeleteConfirmationProvider=({children:e})=>{const[s,t]=(0,a.useState)(null);return a.createElement(i.Provider,{value:{openDialog:e=>{t(e)},closeDialog:()=>{t(null)},dialogProps:s}},e,!!s&&a.createElement(DeleteClassDialog,s))},DeleteClassDialog=({label:e,id:s})=>{const{closeDialog:t}=useDeleteConfirmation(),{data:{total:i,content:d}}=(0,l.useCssClassUsageByID)(s),p=i&&d.length?(0,n.__)("Will permanently remove it from your project and may affect the design across all elements using it. Used %1 times across %2 pages. This action cannot be undone.","elementor").replace("%1",i.toString()).replace("%2",d.length.toString()):(0,n.__)("Will permanently remove it from your project and may affect the design across all elements using it. This action cannot be undone.","elementor");return a.createElement(r.ConfirmationDialog,{open:!0,onClose:t},a.createElement(r.ConfirmationDialog.Title,null,(0,n.__)("Delete this class?","elementor")),a.createElement(r.ConfirmationDialog.Content,null,a.createElement(r.ConfirmationDialog.ContentText,null,(0,n.__)("Deleting","elementor"),a.createElement(o.Typography,{variant:"subtitle2",component:"span"}," ",e," "),p)),a.createElement(r.ConfirmationDialog.Actions,{onClose:t,onConfirm:()=>{t(),(0,c.deleteClass)(s)}}))},useDeleteConfirmation=()=>{const e=(0,a.useContext)(i);if(!e)throw new Error("useDeleteConfirmation must be used within a DeleteConfirmationProvider");return e}},"./packages/packages/core/editor-global-classes/src/components/class-manager/duplicate-label-dialog.tsx":function(e,s,t){t.r(s),t.d(s,{DuplicateLabelDialog:function(){return DuplicateLabelDialog}});var a=t("react"),r=t("@elementor/editor-ui"),o=t("@elementor/icons"),n=t("@elementor/ui"),l=t("@wordpress/i18n");const c="DUP_",DuplicateLabelDialog=({modifiedLabels:e,onApprove:s})=>a.createElement(a.Fragment,null,a.createElement(n.DialogHeader,{logo:!1},a.createElement(n.Box,{display:"flex",alignItems:"center",gap:1},a.createElement(n.Icon,{color:"secondary"},a.createElement(o.InfoCircleFilledIcon,{fontSize:"medium"})),a.createElement(n.Typography,{variant:"subtitle1"},(0,l.__)("We've published your page and updated class names.","elementor")))),a.createElement(n.DialogContent,null,a.createElement(n.Stack,{spacing:2,direction:"column"},a.createElement(n.Typography,{variant:"body2"},(0,l.__)("Some new classes used the same names as existing ones. To prevent conflicts, we added the prefix","elementor"),a.createElement("strong",null," ",c)),a.createElement(n.Box,null,a.createElement(n.Box,{sx:{width:"100%",display:"flex",gap:2,alignItems:"flex-start"}},a.createElement(n.Typography,{variant:"subtitle2",sx:{fontWeight:"bold",flex:1,flexShrink:1,flexGrow:1,minWidth:0}},(0,l.__)("Before","elementor")),a.createElement(n.Typography,{variant:"subtitle2",sx:{minWidth:"200px",fontWeight:"bold",flexShrink:0,flexGrow:0,width:"200px",maxWidth:"200px"}},(0,l.__)("After","elementor"))),a.createElement(n.Divider,{sx:{mt:.5,mb:.5}}),a.createElement(n.Stack,{direction:"column",gap:.5,sx:{pb:2}},Object.values(e).map(({original:e,modified:s},t)=>a.createElement(n.Box,{key:t,sx:{width:"100%",display:"flex",gap:2,alignItems:"flex-start"}},a.createElement(n.Box,{sx:{flex:1,flexShrink:1,flexGrow:1,minWidth:0}},a.createElement(r.EllipsisWithTooltip,{title:e},a.createElement(n.Typography,{variant:"body2",sx:{color:"text.secondary"}},e))),a.createElement(n.Box,{sx:{minWidth:"200px",flexShrink:0,flexGrow:0,width:"200px",maxWidth:"200px"}},a.createElement(r.EllipsisWithTooltip,{title:s},a.createElement(n.Typography,{variant:"body2",sx:{color:"text.primary"}},s)))))),a.createElement(n.Box,null,a.createElement(n.Alert,{severity:"info",size:"small",color:"secondary"},a.createElement("strong",null,(0,l.__)("Your designs and classes are safe.","elementor")),(0,l.__)("Only the prefixes were added. Find them in Class Manager by searching","elementor"),a.createElement("strong",null,c)))))),a.createElement(n.DialogActions,null,a.createElement(n.Button,{color:"secondary",variant:"text",onClick:()=>{localStorage.setItem("elementor-global-classes-search",c),s?.(),(0,r.closeDialog)()}},(0,l.__)("Go to Class Manager","elementor")),a.createElement(n.Button,{color:"secondary",variant:"contained",onClick:r.closeDialog},(0,l.__)("Done","elementor"))))},"./packages/packages/core/editor-global-classes/src/components/class-manager/flipped-color-swatch-icon.tsx":function(e,s,t){t.r(s),t.d(s,{FlippedColorSwatchIcon:function(){return FlippedColorSwatchIcon}});var a=t("react"),r=t("@elementor/icons");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var s=1;s<arguments.length;s++){var t=arguments[s];for(var a in t)({}).hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},_extends.apply(null,arguments)}const FlippedColorSwatchIcon=({sx:e,...s})=>a.createElement(r.ColorSwatchIcon,_extends({sx:{transform:"rotate(90deg)",...e}},s))},"./packages/packages/core/editor-global-classes/src/components/class-manager/global-classes-list.tsx":function(e,s,t){t.r(s),t.d(s,{GlobalClassesList:function(){return GlobalClassesList}});var a=t("react"),r=t("@elementor/store"),o=t("@elementor/ui"),n=t("@wordpress/i18n"),l=t("./packages/packages/core/editor-global-classes/src/hooks/use-classes-order.ts"),c=t("./packages/packages/core/editor-global-classes/src/hooks/use-filters.ts"),i=t("./packages/packages/core/editor-global-classes/src/hooks/use-ordered-classes.ts"),d=t("./packages/packages/core/editor-global-classes/src/store.ts"),p=t("./packages/packages/core/editor-global-classes/src/utils/tracking.ts"),u=t("./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx"),g=t("./packages/packages/core/editor-global-classes/src/components/class-manager/class-item.tsx"),m=t("./packages/packages/core/editor-global-classes/src/components/class-manager/delete-confirmation-dialog.tsx"),h=t("./packages/packages/core/editor-global-classes/src/components/class-manager/flipped-color-swatch-icon.tsx"),b=t("./packages/packages/core/editor-global-classes/src/components/class-manager/not-found.tsx"),f=t("./packages/packages/core/editor-global-classes/src/components/class-manager/sortable.tsx");const GlobalClassesList=({disabled:e})=>{const{search:{debouncedValue:s}}=(0,u.useSearchAndFilters)(),t=(0,i.useOrderedClasses)(),n=(0,r.__useDispatch)(),l=(0,c.useFilters)(),[h,y]=a.useState(null),k=t.find(e=>e.id===h)?.label??"",[v,C]=useReorder(h,y,k??""),x=useFilteredCssClasses();if((0,a.useEffect)(()=>{const handler=e=>{if("z"===e.key&&(e.ctrlKey||e.metaKey)){if(e.stopImmediatePropagation(),e.preventDefault(),e.shiftKey)return void n(d.slice.actions.redo());n(d.slice.actions.undo())}};return window.addEventListener("keydown",handler,{capture:!0}),()=>window.removeEventListener("keydown",handler)},[n]),!t?.length)return a.createElement(EmptyState,null);const _=(0,b.getNotFoundType)(s,l,x);if(_)return a.createElement(b.NotFound,{notFoundType:_});const E=l?.length||s,w=x.length>1&&!E;return a.createElement(m.DeleteConfirmationProvider,null,a.createElement(o.List,{sx:{display:"flex",flexDirection:"column",gap:.5}},a.createElement(f.SortableProvider,{value:v,onChange:C,disableDragOverlay:!w},x?.map(({id:s,label:t})=>a.createElement(f.SortableItem,{key:s,id:s},({isDragged:r,isDragPlaceholder:o,triggerProps:l,triggerStyle:c})=>(r&&!h&&y(s),a.createElement(g.ClassItem,{id:s,label:t,renameClass:e=>{(0,p.trackGlobalClasses)({event:"classRenamed",classId:s,oldValue:t,newValue:e,source:"class-manager"}),n(d.slice.actions.update({style:{id:s,label:e}}))},selected:r,disabled:e||o,sortableTriggerProps:{...l,style:c},showSortIndicator:w})))))))},EmptyState=()=>a.createElement(o.Stack,{alignItems:"center",gap:1.5,pt:10,px:.5,maxWidth:"260px",margin:"auto"},a.createElement(h.FlippedColorSwatchIcon,{fontSize:"large"}),a.createElement(y,{variant:"subtitle2",component:"h2",color:"text.secondary"},(0,n.__)("There are no global classes yet.","elementor")),a.createElement(o.Typography,{align:"center",variant:"caption",color:"text.secondary"},(0,n.__)("CSS classes created in the editor panel will appear here. Once they are available, you can arrange their hierarchy, rename them, or delete them as needed.","elementor"))),y=(0,o.styled)(o.Typography)(({theme:e,variant:s})=>({"&.MuiTypography-root":{...e.typography[s]}})),useReorder=(e,s,t)=>{const a=(0,r.__useDispatch)();return[(0,l.useClassesOrder)(),r=>{a(d.slice.actions.setOrder(r)),e&&((0,p.trackGlobalClasses)({event:"classManagerReorder",classId:e,classTitle:t}),s(null))}]},useFilteredCssClasses=()=>{const e=(0,i.useOrderedClasses)(),{search:{debouncedValue:s}}=(0,u.useSearchAndFilters)(),t=(0,c.useFilters)(),r=(0,a.useMemo)(()=>e.map(e=>({...e,lowerLabel:e.label.toLowerCase()})),[e]),o=(0,a.useMemo)(()=>s.length>1?r.filter(e=>e.lowerLabel.includes(s.toLowerCase())):e,[s,e,r]);return(0,a.useMemo)(()=>t&&t.length>0?o.filter(e=>t.includes(e.id)):o,[o,t])}},"./packages/packages/core/editor-global-classes/src/components/class-manager/not-found.tsx":function(e,s,t){t.r(s),t.d(s,{NotFound:function(){return NotFound},NotFoundLayout:function(){return NotFoundLayout},getNotFoundType:function(){return getNotFoundType}});var a=t("react"),r=t("@elementor/icons"),o=t("@elementor/ui"),n=t("@wordpress/i18n"),l=t("./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var s=1;s<arguments.length;s++){var t=arguments[s];for(var a in t)({}).hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},_extends.apply(null,arguments)}const getNotFoundType=(e,s,t)=>{const a=t.length<=0&&e.length>1,r=s&&0===s.length;return a&&r?"filterAndSearch":a?"search":r?"filter":void 0},c={filterAndSearch:{mainText:(0,n.__)("Sorry, nothing matched.","elementor"),sceneryText:(0,n.__)("Try something else.","elementor"),icon:a.createElement(r.PhotoIcon,{color:"inherit",fontSize:"large"})},search:{mainText:(0,n.__)("Sorry, nothing matched","elementor"),sceneryText:(0,n.__)("Clear your input and try something else.","elementor"),icon:a.createElement(r.PhotoIcon,{color:"inherit",fontSize:"large"})},filter:{mainText:(0,n.__)("Sorry, nothing matched that search.","elementor"),sceneryText:(0,n.__)("Clear the filters and try something else.","elementor"),icon:a.createElement(r.ColorSwatchIcon,{color:"inherit",fontSize:"large"})}},NotFound=({notFoundType:e})=>{const{search:{onClearSearch:s,inputValue:t},filters:{onClearFilter:r}}=(0,l.useSearchAndFilters)();switch(e){case"filter":return a.createElement(NotFoundLayout,_extends({},c.filter,{onClear:r}));case"search":return a.createElement(NotFoundLayout,_extends({},c.search,{searchValue:t,onClear:s}));case"filterAndSearch":return a.createElement(NotFoundLayout,_extends({},c.filterAndSearch,{onClear:()=>{r(),s()}}))}},NotFoundLayout=({onClear:e,searchValue:s,mainText:t,sceneryText:r,icon:l})=>a.createElement(o.Stack,{color:"text.secondary",pt:5,alignItems:"center",gap:1,overflow:"hidden",justifySelf:"center"},l,a.createElement(o.Box,{sx:{width:"100%"}},a.createElement(o.Typography,{align:"center",variant:"subtitle2",color:"inherit"},t),s&&a.createElement(o.Typography,{variant:"subtitle2",color:"inherit",sx:{display:"flex",width:"100%",justifyContent:"center"}},a.createElement("span",null,"“"),a.createElement("span",{style:{maxWidth:"80%",overflow:"hidden",textOverflow:"ellipsis"}},s),a.createElement("span",null,"”."))),a.createElement(o.Typography,{align:"center",variant:"caption",color:"inherit"},r),a.createElement(o.Typography,{align:"center",variant:"caption",color:"inherit"},a.createElement(o.Link,{color:"secondary",variant:"caption",component:"button",onClick:e},(0,n.__)("Clear & try again","elementor"))))},"./packages/packages/core/editor-global-classes/src/components/class-manager/panel-interactions.ts":function(e,s,t){function blockPanelInteractions(){const e=window;e.$e?.components?.get?.("panel")?.blockUserInteractions?.()}function unblockPanelInteractions(){const e=window;e.$e?.components?.get?.("panel")?.unblockUserInteractions?.()}t.r(s),t.d(s,{blockPanelInteractions:function(){return blockPanelInteractions},unblockPanelInteractions:function(){return unblockPanelInteractions}})},"./packages/packages/core/editor-global-classes/src/components/class-manager/sortable.tsx":function(e,s,t){t.r(s),t.d(s,{SortableItem:function(){return SortableItem},SortableProvider:function(){return SortableProvider},SortableTrigger:function(){return SortableTrigger}});var a=t("react"),r=t("@elementor/icons"),o=t("@elementor/ui");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var s=1;s<arguments.length;s++){var t=arguments[s];for(var a in t)({}).hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},_extends.apply(null,arguments)}const SortableProvider=e=>a.createElement(o.UnstableSortableProvider,_extends({restrictAxis:!0,variant:"static",dragPlaceholderStyle:{opacity:"1"}},e)),SortableTrigger=e=>a.createElement(n,_extends({},e,{role:"button",className:"class-item-sortable-trigger","aria-label":"sort"}),a.createElement(r.GripVerticalIcon,{fontSize:"tiny"})),SortableItem=({children:e,id:s,...t})=>a.createElement(o.UnstableSortableItem,_extends({},t,{id:s,render:({itemProps:s,isDragged:t,triggerProps:r,itemStyle:n,triggerStyle:c,dropIndicationStyle:i,showDropIndication:d,isDragOverlay:p,isDragPlaceholder:u})=>a.createElement(o.Box,_extends({},s,{style:n,component:"li",role:"listitem",sx:{backgroundColor:p?"background.paper":void 0}}),e({itemProps:s,isDragged:t,triggerProps:r,itemStyle:n,triggerStyle:c,isDragPlaceholder:u}),d&&a.createElement(l,{style:i}))})),n=(0,o.styled)("div")(({theme:e})=>({position:"absolute",left:0,top:"50%",transform:`translate( -${e.spacing(1.5)}, -50% )`,color:e.palette.action.active})),l=(0,o.styled)(o.Box)`
3 3 width: 100%;
4 4 height: 1px;
5 5 background-color: ${({theme:e})=>e.palette.text.primary};
6 -`},"./packages/packages/core/editor-global-classes/src/components/class-manager/start-sync-to-v3-modal.tsx":function(e,t,s){s.r(t),s.d(t,{StartSyncToV3Modal:function(){return StartSyncToV3Modal}});var a=s("react"),n=s("@elementor/ui"),r=s("@wordpress/i18n"),o=s("./packages/packages/core/editor-global-classes/src/utils/tracking.ts");const StartSyncToV3Modal=({externalOpen:e,classId:t,onExternalClose:s,onConfirm:l}={})=>{const[i,c]=(0,a.useState)(!0),d=(0,a.useRef)(!1);(0,a.useEffect)(()=>{e&&t&&!d.current&&(d.current=!0,(0,o.trackGlobalClasses)({event:"classSyncToV3PopupShown",classId:t})),e||(d.current=!1)},[e,t]);const handleClose=()=>{t&&(0,o.trackGlobalClasses)({event:"classSyncToV3PopupClick",classId:t,action:"cancel"}),s?.()};return a.createElement(n.Dialog,{open:!!e,onClose:handleClose,maxWidth:"sm",fullWidth:!0},a.createElement(n.DialogContent,{sx:{p:0}},a.createElement(n.Box,{component:"img",src:"https://assets.elementor.com/packages/v1/images/class-manager-sync-modal.png",alt:"",sx:{width:"100%",display:"block"}}),a.createElement(n.Box,{sx:{px:3,pt:4,pb:1}},a.createElement(n.Typography,{variant:"h6"},(0,r.__)("Sync class to Global Fonts","elementor")),a.createElement(n.Typography,{variant:"body2",color:"secondary",sx:{mb:2,pt:1}},(0,r.__)("Only typography settings supported in Global Fonts will be applied, including: font family, responsive font sizes, weight, text transform, decoration, line height, letter spacing, and word spacing. Changes made in the class will automatically apply to Global Fonts.","elementor")))),a.createElement(n.DialogActions,{sx:{justifyContent:"space-between",px:3,pb:2}},a.createElement(n.FormControlLabel,{control:a.createElement(n.Checkbox,{checked:!i,onChange:e=>c(!e.target.checked)}),label:a.createElement(n.Typography,{variant:"body2",color:"secondary"},(0,r.__)("Don't show again","elementor"))}),a.createElement(n.Box,{sx:{display:"flex",gap:1}},a.createElement(n.Button,{onClick:handleClose,color:"secondary",size:"small"},(0,r.__)("Cancel","elementor")),a.createElement(n.Button,{onClick:()=>{t&&(0,o.trackGlobalClasses)({event:"classSyncToV3PopupClick",classId:t,action:"sync"}),l?.(),s?.()},variant:"contained",size:"small"},(0,r.__)("Sync to Global Fonts","elementor")))))}},"./packages/packages/core/editor-global-classes/src/components/convert-local-class-to-global-class.tsx":function(e,t,s){s.r(t),s.d(t,{ConvertLocalClassToGlobalClass:function(){return ConvertLocalClassToGlobalClass}});var a=s("react"),n=s("@elementor/editor-styles-repository"),r=s("@elementor/editor-ui"),o=s("@elementor/ui"),l=s("@wordpress/i18n"),i=s("./packages/packages/core/editor-global-classes/src/global-classes-styles-provider.ts"),c=s("./packages/packages/core/editor-global-classes/src/utils/tracking.ts");const ConvertLocalClassToGlobalClass=e=>{const t=e.styleDef;return a.createElement(a.Fragment,null,a.createElement(r.MenuListItem,{disabled:!e.canConvert,onClick:()=>{const s=function createClassName(e){let t=1,s=`${e}${t}`;for(;!(0,n.validateStyleLabel)(s,"create").isValid;)s=`${e}${++t}`;return s}("converted-class-");if(!t)throw new Error("Style definition is required for converting local class to global class.");const a=i.globalClassesStylesProvider.actions.create?.(s,t.variants);a&&(e.successCallback(a),(0,c.trackGlobalClasses)({classId:a,event:"classCreated",source:"converted",classTitle:s}))},dense:!0,sx:{"&.Mui-focusVisible":{border:"none",boxShadow:"none !important",backgroundColor:"transparent"}}},(0,l.__)("Convert to global class","elementor")),a.createElement(o.Divider,null))}},"./packages/packages/core/editor-global-classes/src/components/css-class-usage/components/css-class-usage-popover.tsx":function(e,t,s){s.r(t),s.d(t,{CssClassUsagePopover:function(){return CssClassUsagePopover}});var a=s("react"),n=s("@elementor/editor-documents"),r=s("@elementor/editor-ui"),o=s("@elementor/icons"),l=s("@elementor/ui"),i=s("@wordpress/i18n"),c=s("./packages/packages/core/editor-global-classes/src/hooks/use-css-class-usage-by-id.ts"),d=s("./packages/packages/core/editor-global-classes/src/utils/tracking.ts");const u={"wp-post":{label:(0,i.__)("Post","elementor"),icon:a.createElement(o.PostTypeIcon,{fontSize:"inherit"})},"wp-page":{label:(0,i.__)("Page","elementor"),icon:a.createElement(o.PagesIcon,{fontSize:"inherit"})},popup:{label:(0,i.__)("Popup","elementor"),icon:a.createElement(o.PopupTemplateIcon,{fontSize:"inherit"})},header:{label:(0,i.__)("Header","elementor"),icon:a.createElement(o.HeaderTemplateIcon,{fontSize:"inherit"})},footer:{label:(0,i.__)("Footer","elementor"),icon:a.createElement(o.FooterTemplateIcon,{fontSize:"inherit"})}},CssClassUsagePopover=({cssClassID:e,onClose:t})=>{const{data:s}=(0,c.useCssClassUsageByID)(e),g=(0,n.__useOpenDocumentInNewTab)(),m=s?.content.map(({title:e,elements:t,pageId:s,type:a})=>({type:"item",value:s,label:e,secondaryText:t.length.toString(),docType:a}))??[];return a.createElement(a.Fragment,null,a.createElement(r.PopoverHeader,{icon:a.createElement(o.CurrentLocationIcon,{fontSize:"tiny"}),title:a.createElement(l.Stack,{flexDirection:"row",gap:1,alignItems:"center"},a.createElement(l.Box,{"aria-label":"header-title"},(0,i.__)("Locator","elementor")),a.createElement(l.Box,null,a.createElement(l.Chip,{sx:{lineHeight:1},size:"tiny",label:s.total}))),onClose:t}),a.createElement(l.Divider,null),a.createElement(r.PopoverBody,{width:300},a.createElement(r.PopoverMenuList,{onSelect:t=>{g(+t),(0,d.trackGlobalClasses)({event:"classUsageLocate",classId:e})},items:m,onClose:()=>{},menuListTemplate:p,menuItemContentTemplate:e=>a.createElement(l.Stack,{flexDirection:"row",flex:1,alignItems:"center"},a.createElement(l.Box,{display:"flex",sx:{pr:1}},a.createElement(l.Tooltip,{disableInteractive:!0,title:u?.[e.docType]?.label??e.docType,placement:"top"},a.createElement(l.Icon,{fontSize:"small"},u?.[e.docType]?.icon||a.createElement(o.PagesIcon,{fontSize:"inherit"})))),a.createElement(l.Box,{sx:{pr:.5,maxWidth:"173px"},display:"flex"},a.createElement(r.EllipsisWithTooltip,{title:e.label,as:l.Typography,variant:"caption",maxWidth:"173px",sx:{lineHeight:1}})),a.createElement(o.ExternalLinkIcon,{className:"hover-only-icon",fontSize:"tiny"}),a.createElement(l.Chip,{sx:{ml:"auto"},size:"tiny",label:e.secondaryText}))})))},p=(0,l.styled)(l.MenuList)(({theme:e})=>({"& > li":{display:"flex",cursor:"pointer",height:32,width:"100%"},'& > [role="option"]':{...e.typography.caption,lineHeight:"inherit",padding:e.spacing(.5,1,.5,2),textOverflow:"ellipsis",position:"absolute",top:0,left:0,opacity:1,".hover-only-icon":{color:e.palette.text.disabled,opacity:0},"&:hover":{borderRadius:e.spacing(.5),backgroundColor:e.palette.action.hover,".hover-only-icon":{color:e.palette.text.disabled,opacity:1}}},width:"100%",position:"relative"}))},"./packages/packages/core/editor-global-classes/src/components/css-class-usage/components/css-class-usage-trigger.tsx":function(e,t,s){s.r(t),s.d(t,{CssClassUsageTrigger:function(){return CssClassUsageTrigger}});var a=s("react"),n=s("@elementor/editor-ui"),r=s("@elementor/icons"),o=s("@elementor/ui"),l=s("@wordpress/i18n"),i=s("./packages/packages/core/editor-global-classes/src/hooks/use-css-class-usage-by-id.ts"),c=s("./packages/packages/core/editor-global-classes/src/utils/tracking.ts"),d=s("./packages/packages/core/editor-global-classes/src/components/css-class-usage/components/css-class-usage-popover.tsx");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var a in s)({}).hasOwnProperty.call(s,a)&&(e[a]=s[a])}return e},_extends.apply(null,arguments)}const CssClassUsageTrigger=({id:e,onClick:t})=>{const{data:{total:s},isLoading:n}=(0,i.useCssClassUsageByID)(e),l=(0,o.usePopupState)({variant:"popover",popupId:"css-class-usage-popover"});if(n)return null;const p=0!==s?TooltipWrapper:InfoAlertMessage;return a.createElement(a.Fragment,null,a.createElement(o.Box,{position:"relative",onMouseEnter:()=>{(0,c.trackGlobalClasses)({event:"classUsageHovered",classId:e,usage:s})}},a.createElement(p,{total:s},a.createElement(u,_extends({disabled:0===s,size:"tiny"},(0,o.bindTrigger)(l),{onClick:a=>{0!==s&&((0,o.bindTrigger)(l).onClick(a),t(e),(0,c.trackGlobalClasses)({event:"classUsageClicked",classId:e}))}}),a.createElement(r.CurrentLocationIcon,{fontSize:"tiny"})))),a.createElement(o.Box,null,a.createElement(o.Popover,_extends({anchorOrigin:{vertical:"center",horizontal:"right"},transformOrigin:{vertical:15,horizontal:-50}},(0,o.bindPopover)(l),{onClose:()=>{(0,o.bindPopover)(l).onClose(),t("")}}),a.createElement(d.CssClassUsagePopover,{onClose:l.close,"aria-label":"css-class-usage-popover",cssClassID:e}))))},u=(0,o.styled)(o.IconButton)(({theme:e})=>({"&.Mui-disabled":{pointerEvents:"auto","&:hover":{color:e.palette.action.disabled}},height:"22px",width:"22px"})),TooltipWrapper=({children:e,total:t})=>a.createElement(o.Tooltip,{disableInteractive:!0,placement:"top",title:`${(0,l.__)("Show {{number}} {{locations}}","elementor").replace("{{number}}",t.toString()).replace("{{locations}}",1===t?(0,l.__)("location","elementor"):(0,l.__)("locations","elementor"))}`},a.createElement("span",null,e)),InfoAlertMessage=({children:e})=>a.createElement(o.Infotip,{disableInteractive:!0,placement:"top",color:"secondary",content:a.createElement(n.InfoAlert,{sx:{mt:1}},(0,l.__)("This class isn’t being used yet.","elementor"))},a.createElement("span",null,e))},"./packages/packages/core/editor-global-classes/src/components/css-class-usage/components/index.ts":function(e,t,s){s.r(t),s.d(t,{CssClassUsagePopover:function(){return a.CssClassUsagePopover},CssClassUsageTrigger:function(){return n.CssClassUsageTrigger}});var a=s("./packages/packages/core/editor-global-classes/src/components/css-class-usage/components/css-class-usage-popover.tsx"),n=s("./packages/packages/core/editor-global-classes/src/components/css-class-usage/components/css-class-usage-trigger.tsx")},"./packages/packages/core/editor-global-classes/src/components/css-class-usage/types.ts":function(e,t,s){s.r(t),s.d(t,{QUERY_KEY:function(){return a}});const a="css-classes-usage"},"./packages/packages/core/editor-global-classes/src/components/css-class-usage/utils.ts":function(e,t,s){s.r(t),s.d(t,{transformData:function(){return transformData}});const transformData=e=>Object.entries(e).reduce((e,[t,s])=>(e[t]={content:s||[],total:s.reduce((e,t)=>e+(t?.total||0),0)},e),{})},"./packages/packages/core/editor-global-classes/src/components/global-styles-import-listener.tsx":function(e,t,s){s.r(t),s.d(t,{GlobalStylesImportListener:function(){return GlobalStylesImportListener}});var a=s("react"),n=s("@elementor/editor-canvas"),r=s("@elementor/store"),o=s("./packages/packages/core/editor-global-classes/src/load-document-classes.ts"),l=s("./packages/packages/core/editor-global-classes/src/store.ts"),i=s("./packages/packages/core/editor-global-classes/src/utils/create-labels-for-classes.ts");function GlobalStylesImportListener(){const e=(0,r.__useDispatch)();return(0,a.useEffect)(()=>{const handleGlobalStylesImported=async t=>{const s=t,a=s.detail?.global_classes;a?.added_items_order&&a?.added_items&&0!==a?.added_items_order?.length?e(l.slice.actions.updateAfterTemplateImport({addedItems:a.added_items,addedIdsOrder:a.added_items_order,addedClassLabels:(0,i.createLabelsForClasses)(Object.values(a.added_items))})):(0,o.loadCurrentDocumentClasses)()};return window.addEventListener(n.GLOBAL_STYLES_IMPORTED_EVENT,handleGlobalStylesImported),()=>{window.removeEventListener(n.GLOBAL_STYLES_IMPORTED_EVENT,handleGlobalStylesImported)}},[e]),null}},"./packages/packages/core/editor-global-classes/src/components/open-panel-from-event.tsx":function(e,t,s){s.r(t),s.d(t,{OpenPanelFromEvent:function(){return OpenPanelFromEvent}});var a=s("react"),n=s("./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-panel.tsx");const r="elementor/open-global-classes-manager";function OpenPanelFromEvent(){const{open:e}=(0,n.usePanelActions)();return(0,a.useEffect)(()=>{const handler=()=>e();return window.addEventListener(r,handler),()=>window.removeEventListener(r,handler)},[e]),null}},"./packages/packages/core/editor-global-classes/src/components/open-panel-from-url.tsx":function(e,t,s){s.r(t),s.d(t,{OpenPanelFromUrl:function(){return OpenPanelFromUrl}});var a=s("react"),n=s("@elementor/editor-v1-adapters"),r=s("./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-panel.tsx");const o="active-panel",l="global-classes-manager",i="panel/elements";function OpenPanelFromUrl(){const{open:e}=(0,r.usePanelActions)(),t=(0,a.useRef)(!1);return(0,a.useEffect)(()=>{if(new URLSearchParams(window.location.search).get(o)!==l)return;return(0,n.__privateListenTo)((0,n.routeOpenEvent)(i),()=>{t.current||(t.current=!0,requestAnimationFrame(()=>{e()}))})},[e]),null}},"./packages/packages/core/editor-global-classes/src/components/populate-store.tsx":function(e,t,s){s.r(t),s.d(t,{PopulateStore:function(){return PopulateStore}});var a=s("react"),n=s("@elementor/editor-v1-adapters"),r=s("./packages/packages/core/editor-global-classes/src/load-document-classes.ts");function PopulateStore(){return(0,a.useEffect)(()=>{(0,r.loadCurrentDocumentClasses)(),(0,n.registerDataHook)("after","editor/documents/attach-preview",async()=>{await(0,r.loadCurrentDocumentClasses)()})},[]),null}},"./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/active-filters.tsx":function(e,t,s){s.r(t),s.d(t,{ActiveFilters:function(){return ActiveFilters}});var a=s("react"),n=s("@elementor/ui"),r=s("@wordpress/i18n"),o=s("./packages/packages/core/editor-global-classes/src/utils/tracking.ts"),l=s("./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx"),i=s("./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/clear-icon-button.tsx"),c=s("./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/filter-list.tsx");const ActiveFilters=()=>{const{filters:{filters:e,setFilters:t}}=(0,l.useSearchAndFilters)(),s=Object.keys(e).filter(t=>e[t]),u=s.length>0;return a.createElement(n.Stack,{direction:"row",alignItems:"center",justifyContent:"space-between"},a.createElement(n.Stack,{direction:"row",gap:.5,alignItems:"center",flexWrap:"wrap"},s.map(e=>a.createElement(n.Chip,{key:e,label:c.filterConfig[e],onDelete:()=>(e=>{t(t=>({...t,[e]:!1})),(0,o.trackGlobalClasses)({event:"classManagerFilterUsed",action:"remove",type:e,trigger:"header"})})(e),sx:d,size:"tiny"}))),u&&a.createElement(i.ClearIconButton,{trigger:"header",tooltipText:(0,r.__)("Clear Filters","elementor"),sx:{margin:"0 0 auto auto"}}))},d={"& .MuiChip-deleteIcon":{display:"none",transition:"opacity 0.2s"},"&:hover .MuiChip-deleteIcon":{display:"block"}}},"./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/clear-icon-button.tsx":function(e,t,s){s.r(t),s.d(t,{ClearIconButton:function(){return ClearIconButton}});var a=s("react"),n=s("@elementor/icons"),r=s("@elementor/ui"),o=s("./packages/packages/core/editor-global-classes/src/utils/tracking.ts"),l=s("./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx");const ClearIconButton=({tooltipText:e,sx:t,trigger:s})=>{const{filters:{onClearFilter:c}}=(0,l.useSearchAndFilters)();return a.createElement(r.Tooltip,{title:e,placement:"top",disableInteractive:!0},a.createElement(r.Box,null,a.createElement(i,{"aria-label":e,size:"tiny",onClick:()=>{c(s),(0,o.trackGlobalClasses)({event:"classManagerFilterCleared",trigger:s})},sx:t},a.createElement(n.BrushBigIcon,{fontSize:"tiny"}))))},i=(0,r.styled)(r.IconButton)(({theme:e})=>({"&.Mui-disabled":{pointerEvents:"auto","&:hover":{color:e.palette.action.disabled}}}))},"./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/css-class-filter.tsx":function(e,t,s){s.r(t),s.d(t,{CssClassFilter:function(){return CssClassFilter}});var a=s("react"),n=s("@elementor/editor-ui"),r=s("@elementor/icons"),o=s("@elementor/ui"),l=s("@wordpress/i18n"),i=s("./packages/packages/core/editor-global-classes/src/utils/tracking.ts"),c=s("./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx"),d=s("./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/clear-icon-button.tsx"),u=s("./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/filter-list.tsx");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var a in s)({}).hasOwnProperty.call(s,a)&&(e[a]=s[a])}return e},_extends.apply(null,arguments)}const CssClassFilter=()=>{const{filters:{filters:e}}=(0,c.useSearchAndFilters)(),t=(0,o.usePopupState)({variant:"popover",disableAutoFocus:!0});(0,a.useEffect)(()=>{t.isOpen&&(0,i.trackGlobalClasses)({event:"classManagerFiltersOpened"})},[t.isOpen]);const s=Object.values(e).some(e=>e);return a.createElement(a.Fragment,null,a.createElement(o.Tooltip,{title:(0,l.__)("Filters","elementor"),placement:"top"},a.createElement(o.ToggleButton,_extends({value:"filter",size:"tiny",selected:t.isOpen},(0,o.bindToggle)(t)),a.createElement(r.FilterIcon,{fontSize:"tiny"}))),a.createElement(o.Popover,_extends({sx:{maxWidth:"344px"},anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:-21}},(0,o.bindPopover)(t)),a.createElement(n.PopoverHeader,{actions:s?[a.createElement(d.ClearIconButton,{trigger:"menu",key:"clear-all-button",tooltipText:(0,l.__)("Clear all","elementor")})]:[],onClose:t.close,title:(0,l.__)("Filters","elementor"),icon:a.createElement(r.FilterIcon,{fontSize:"tiny"})}),a.createElement(o.Divider,{sx:{borderWidth:"1px 0 0 0"}}),a.createElement(n.PopoverBody,{width:344,height:125},a.createElement(u.FilterList,null))))}},"./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/filter-list.tsx":function(e,t,s){s.r(t),s.d(t,{FilterList:function(){return FilterList},filterConfig:function(){return c}});var a=s("react"),n=s("@elementor/ui"),r=s("@wordpress/i18n"),o=s("./packages/packages/core/editor-global-classes/src/hooks/use-filtered-css-class-usage.tsx"),l=s("./packages/packages/core/editor-global-classes/src/utils/tracking.ts"),i=s("./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx");const c={unused:(0,r.__)("Unused","elementor"),empty:(0,r.__)("Empty","elementor"),onThisPage:(0,r.__)("On this page","elementor")},FilterList=()=>{const{filters:{filters:e,setFilters:t}}=(0,i.useSearchAndFilters)(),s=(0,o.useFilteredCssClassUsage)(),handleOnClick=s=>{t(e=>({...e,[s]:!e[s]})),(0,l.trackGlobalClasses)({event:"classManagerFilterUsed",action:e[s]?"remove":"apply",type:s,trigger:"menu"})};return a.createElement(n.MenuList,null,a.createElement(n.MenuItem,{onClick:()=>handleOnClick("unused")},a.createElement(LabeledCheckbox,{label:c.unused,checked:e.unused,suffix:a.createElement(n.Chip,{size:"tiny",sx:{ml:"auto"},label:s.unused.length})})),a.createElement(n.MenuItem,{onClick:()=>handleOnClick("empty")},a.createElement(LabeledCheckbox,{label:c.empty,checked:e.empty,suffix:a.createElement(n.Chip,{size:"tiny",sx:{ml:"auto"},label:s.empty.length})})),a.createElement(n.MenuItem,{onClick:()=>handleOnClick("onThisPage")},a.createElement(LabeledCheckbox,{label:c.onThisPage,checked:e.onThisPage,suffix:a.createElement(n.Chip,{size:"tiny",sx:{ml:"auto"},label:s.onThisPage.length})})))},LabeledCheckbox=({label:e,suffix:t,checked:s})=>a.createElement(n.Stack,{direction:"row",alignItems:"center",gap:.5,flex:1},a.createElement(n.Checkbox,{size:"small",checked:s,sx:{padding:0,color:"text.tertiary","&.Mui-checked":{color:"text.tertiary"}}}),a.createElement(n.Typography,{variant:"caption",sx:{color:"text.secondary"}},e),t)},"./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/search/class-manager-search.tsx":function(e,t,s){s.r(t),s.d(t,{ClassManagerSearch:function(){return ClassManagerSearch}});var a=s("react"),n=s("@elementor/icons"),r=s("@elementor/ui"),o=s("@wordpress/i18n"),l=s("./packages/packages/core/editor-global-classes/src/utils/tracking.ts"),i=s("./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx");const ClassManagerSearch=()=>{const{search:{inputValue:e,handleChange:t}}=(0,i.useSearchAndFilters)();return a.createElement(r.Stack,{direction:"row",gap:.5,sx:{width:"100%"}},a.createElement(r.Box,{sx:{flexGrow:1}},a.createElement(r.TextField,{role:"search",fullWidth:!0,size:"tiny",value:e,onFocus:()=>{(0,l.trackGlobalClasses)({event:"classManagerSearched"})},placeholder:(0,o.__)("Search","elementor"),onChange:e=>t(e.target.value),InputProps:{startAdornment:a.createElement(r.InputAdornment,{position:"start"},a.createElement(n.SearchIcon,{fontSize:"tiny"}))}})))}},"./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx":function(e,t,s){s.r(t),s.d(t,{SearchAndFilterProvider:function(){return SearchAndFilterProvider},useSearchAndFilters:function(){return useSearchAndFilters}});var a=s("react"),n=s("@elementor/utils");const r=(0,a.createContext)(void 0),o={empty:!1,onThisPage:!1,unused:!1},SearchAndFilterProvider=({children:e})=>{const[t,s]=(0,a.useState)(o),{debouncedValue:l,inputValue:i,handleChange:c}=(0,n.useDebounceState)({delay:300,initialValue:(()=>{const e=localStorage.getItem("elementor-global-classes-search");return e?(localStorage.removeItem("elementor-global-classes-search"),e):""})()});return a.createElement(r.Provider,{value:{search:{debouncedValue:l,inputValue:i,handleChange:c,onClearSearch:()=>{c("")}},filters:{filters:t,setFilters:s,onClearFilter:()=>{s(o)}}}},e)},useSearchAndFilters=()=>{const e=(0,a.useContext)(r);if(!e)throw new Error("useSearchContext must be used within a SearchContextProvider");return e}},"./packages/packages/core/editor-global-classes/src/errors.ts":function(e,t,s){s.r(t),s.d(t,{GlobalClassLabelAlreadyExistsError:function(){return r},GlobalClassNotFoundError:function(){return n},GlobalClassTrackingError:function(){return o}});var a=s("@elementor/utils");const n=(0,a.createError)({code:"global_class_not_found",message:"Global class not found."}),r=(0,a.createError)({code:"global_class_label_already_exists",message:"Class with this name already exists."}),o=(0,a.createError)({code:"global_class_tracking_error",message:"Error tracking global classes event."})},"./packages/packages/core/editor-global-classes/src/global-classes-styles-provider.ts":function(e,t,s){s.r(t),s.d(t,{GLOBAL_CLASSES_PROVIDER_KEY:function(){return p},globalClassesStylesProvider:function(){return m}});var a=s("@elementor/editor-styles"),n=s("@elementor/editor-styles-repository"),r=s("@elementor/store"),o=s("@wordpress/i18n"),l=s("./packages/packages/core/editor-global-classes/src/capabilities.ts"),i=s("./packages/packages/core/editor-global-classes/src/errors.ts"),c=s("./packages/packages/core/editor-global-classes/src/load-existing-classes.ts"),d=s("./packages/packages/core/editor-global-classes/src/store.ts"),u=s("./packages/packages/core/editor-global-classes/src/utils/tracking.ts");const p="global-classes",g=/^global-([0-9]+-)?(preview|frontend)-[a-zA-Z_-]+-css$/,m=(0,n.createStylesProvider)({key:p,priority:30,limit:1e3,isPregeneratedLink:({id:e})=>g.test(e),labels:{singular:(0,o.__)("class","elementor"),plural:(0,o.__)("classes","elementor")},subscribe:e=>subscribeWithStates(e),capabilities:(0,l.getCapabilities)(),actions:{all:()=>(0,d.selectOrderedClasses)((0,r.__getState)()),get:e=>{const t=(0,r.__getState)(),s=(0,d.selectIsClassFetched)(t,e),a=(0,d.selectClass)(t,e);if(s||a)return a;(0,c.loadExistingClasses)([e]);const n=(0,d.selectClassLabels)(t)[e]??e;return(0,d.placeholderDefinition)(e,n)},resolveCssName:e=>{const t=(0,r.__getState)(),s=(0,d.selectClass)(t,e);if(s)return s.label;return(0,d.selectClassLabels)(t)[e]??e},create:(e,t=[],s)=>{const n=Object.entries((0,d.selectClassLabels)((0,r.__getState)()));if(n.map(([,e])=>e).includes(e))throw new i.GlobalClassLabelAlreadyExistsError({context:{label:e}});const o=n.map(([e])=>e);return s||(s=(0,a.generateId)("g-",o)),(0,r.__dispatch)(d.slice.actions.add({id:s,type:"class",label:e,variants:t})),s},update:e=>{(0,r.__dispatch)(d.slice.actions.update({style:e}))},delete:e=>{(0,r.__dispatch)(d.slice.actions.delete(e))},updateProps:e=>{(0,r.__dispatch)(d.slice.actions.updateProps({id:e.id,meta:e.meta,props:e.props,mode:e.mode}))},updateCustomCss:e=>{(0,r.__dispatch)(d.slice.actions.updateProps({id:e.id,meta:e.meta,custom_css:e.custom_css,props:{}}))},tracking:e=>{(0,u.trackGlobalClasses)(e).catch(e=>{throw new i.GlobalClassTrackingError({cause:e})})}}}),subscribeWithStates=e=>{let t=(0,d.selectData)((0,r.__getState)());return(0,r.__subscribeWithSelector)(e=>(0,d.selectData)(e),s=>{e(t.items,s.items),t=s})}},"./packages/packages/core/editor-global-classes/src/hooks/use-classes-order.ts":function(e,t,s){s.r(t),s.d(t,{useClassesOrder:function(){return useClassesOrder}});var a=s("@elementor/store"),n=s("./packages/packages/core/editor-global-classes/src/store.ts");const useClassesOrder=()=>(0,a.__useSelector)(n.selectOrder)},"./packages/packages/core/editor-global-classes/src/hooks/use-css-class-usage-by-id.ts":function(e,t,s){s.r(t),s.d(t,{useCssClassUsageByID:function(){return useCssClassUsageByID}});var a=s("./packages/packages/core/editor-global-classes/src/hooks/use-css-class-usage.ts");const n={total:0,content:[]},useCssClassUsageByID=e=>{const{data:t,...s}=(0,a.useCssClassUsage)();return{...s,data:t?.[e]??n}}},"./packages/packages/core/editor-global-classes/src/hooks/use-css-class-usage.ts":function(e,t,s){s.r(t),s.d(t,{useCssClassUsage:function(){return useCssClassUsage}});var a=s("@elementor/query"),n=s("./packages/packages/core/editor-global-classes/service/css-class-usage-service.ts"),r=s("./packages/packages/core/editor-global-classes/src/components/css-class-usage/types.ts");const useCssClassUsage=()=>(0,a.useQuery)({queryKey:[r.QUERY_KEY],queryFn:n.fetchCssClassUsage,refetchOnMount:!1,refetchOnWindowFocus:!0})},"./packages/packages/core/editor-global-classes/src/hooks/use-dirty-state.ts":function(e,t,s){s.r(t),s.d(t,{useDirtyState:function(){return useDirtyState}});var a=s("@elementor/store"),n=s("./packages/packages/core/editor-global-classes/src/store.ts");const useDirtyState=()=>(0,a.__useSelector)(n.selectIsDirty)},"./packages/packages/core/editor-global-classes/src/hooks/use-empty-css-class.ts":function(e,t,s){s.r(t),s.d(t,{useAllCssClassesIDs:function(){return useAllCssClassesIDs},useEmptyCssClass:function(){return useEmptyCssClass}});var a=s("@elementor/store"),n=s("./packages/packages/core/editor-global-classes/src/store.ts");const useEmptyCssClass=()=>(0,a.__useSelector)(n.selectEmptyCssClass),useAllCssClassesIDs=()=>{const e=(0,a.__useSelector)(n.selectGlobalClasses);return Object.keys(e)}},"./packages/packages/core/editor-global-classes/src/hooks/use-filtered-css-class-usage.tsx":function(e,t,s){s.r(t),s.d(t,{useFilteredCssClassUsage:function(){return useFilteredCssClassUsage}});var a=s("react"),n=s("@elementor/editor-documents"),r=s("./packages/packages/core/editor-global-classes/src/hooks/use-css-class-usage.ts"),o=s("./packages/packages/core/editor-global-classes/src/hooks/use-empty-css-class.ts");const l={empty:[],onThisPage:[],unused:[]},useFilteredCssClassUsage=()=>{const e=(0,n.__useActiveDocument)(),t=(0,o.useEmptyCssClass)(),{data:s,isLoading:i}=(0,r.useCssClassUsage)(),c=(0,o.useAllCssClassesIDs)(),d=(0,a.useMemo)(()=>t.map(({id:e})=>e),[t]),u=(0,a.useMemo)(()=>s&&e?((e,t)=>{const s=[];for(const a in e)e[a].content.forEach(e=>{+e.pageId===t&&s.push(a)});return s})(s,e.id):[],[s,e]),p=(0,a.useMemo)(()=>s?((e,t)=>{const s=new Set(e);return t.filter(e=>!s.has(e))})(Object.keys(s),c):[],[s,c]);return!i&&s&&e?{onThisPage:u,unused:p,empty:d}:l}},"./packages/packages/core/editor-global-classes/src/hooks/use-filters.ts":function(e,t,s){s.r(t),s.d(t,{useFilters:function(){return useFilters}});var a=s("react"),n=s("./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx"),r=s("./packages/packages/core/editor-global-classes/src/hooks/use-filtered-css-class-usage.tsx");const useFilters=()=>{const{filters:{filters:e}}=(0,n.useSearchAndFilters)(),t=(0,r.useFilteredCssClassUsage)();return(0,a.useMemo)(()=>{const s=Object.entries(e).filter(([,e])=>e);return 0===s.length?null:s.reduce((e,[s],a)=>{const n=t[s]||[];return 0===a?n:e.filter(e=>n.includes(e))},[])},[e,t])}},"./packages/packages/core/editor-global-classes/src/hooks/use-ordered-classes.ts":function(e,t,s){s.r(t),s.d(t,{useOrderedClasses:function(){return useOrderedClasses}});var a=s("@elementor/store"),n=s("./packages/packages/core/editor-global-classes/src/store.ts");const useOrderedClasses=()=>(0,a.__useSelector)(n.selectOrderedClasses)},"./packages/packages/core/editor-global-classes/src/hooks/use-prefetch-css-class-usage.ts":function(e,t,s){s.r(t),s.d(t,{PrefetchCssClassUsage:function(){return PrefetchCssClassUsage},usePrefetchCssClassUsage:function(){return usePrefetchCssClassUsage}});var a=s("@elementor/query"),n=s("./packages/packages/core/editor-global-classes/service/css-class-usage-service.ts"),r=s("./packages/packages/core/editor-global-classes/src/components/css-class-usage/types.ts");function usePrefetchCssClassUsage(){const e=(0,a.useQueryClient)();return{prefetchClassesUsage:()=>e.prefetchQuery({queryKey:[r.QUERY_KEY],queryFn:n.fetchCssClassUsage})}}const PrefetchCssClassUsage=()=>{const{prefetchClassesUsage:e}=usePrefetchCssClassUsage();return e(),null}},"./packages/packages/core/editor-global-classes/src/init.ts":function(e,t,s){s.r(t),s.d(t,{init:function(){return init}});var a=s("@elementor/editor"),n=s("@elementor/editor-editing-panel"),r=s("@elementor/editor-mcp"),o=s("@elementor/editor-panels"),l=s("@elementor/editor-styles-repository"),i=s("@elementor/editor-v1-adapters"),c=s("@elementor/store"),d=s("./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-button.tsx"),u=s("./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-panel.tsx"),p=s("./packages/packages/core/editor-global-classes/src/components/convert-local-class-to-global-class.tsx"),g=s("./packages/packages/core/editor-global-classes/src/components/global-styles-import-listener.tsx"),m=s("./packages/packages/core/editor-global-classes/src/components/open-panel-from-event.tsx"),h=s("./packages/packages/core/editor-global-classes/src/components/open-panel-from-url.tsx"),f=s("./packages/packages/core/editor-global-classes/src/components/populate-store.tsx"),b=s("./packages/packages/core/editor-global-classes/src/global-classes-styles-provider.ts"),y=s("./packages/packages/core/editor-global-classes/src/hooks/use-prefetch-css-class-usage.ts"),v=s("./packages/packages/core/editor-global-classes/src/mcp-integration/index.ts"),k=s("./packages/packages/core/editor-global-classes/src/store.ts"),_=s("./packages/packages/core/editor-global-classes/src/sync-with-document.tsx");function init(){(0,c.__registerSlice)(k.slice),(0,i.isExperimentActive)("e_editor_design_system_panel")||(0,o.__registerPanel)(u.panel),l.stylesRepository.register(b.globalClassesStylesProvider),(0,a.injectIntoLogic)({id:"global-classes-populate-store",component:f.PopulateStore}),(0,a.injectIntoLogic)({id:"global-classes-sync-with-document",component:_.SyncWithDocumentSave}),(0,a.injectIntoLogic)({id:"global-classes-import-listener",component:g.GlobalStylesImportListener}),(0,a.injectIntoLogic)({id:"global-classes-prefetch-css-class-usage",component:y.PrefetchCssClassUsage}),(0,i.isExperimentActive)("e_editor_design_system_panel")||((0,a.injectIntoLogic)({id:"global-classes-open-panel-from-url",component:h.OpenPanelFromUrl}),(0,a.injectIntoLogic)({id:"global-classes-open-panel-from-event",component:m.OpenPanelFromEvent})),(0,n.injectIntoCssClassConvert)({id:"global-classes-convert-from-local-class",component:p.ConvertLocalClassToGlobalClass}),(0,n.injectIntoClassSelectorActions)({id:"global-classes-manager-button",component:d.ClassManagerButton}),(0,n.registerStyleProviderToColors)(b.GLOBAL_CLASSES_PROVIDER_KEY,{name:"global",getThemeColor:e=>e.palette.global.dark}),(0,v.initMcpIntegration)((0,r.getMCPByDomain)("classes",{instructions:"MCP server for management of Elementor global classes",docs:"Everything related to V4 ( Atomic ) global classes.\n# Global classes\n- Create/update/delete global classes\n- Get list of global classes\n- Get details of a global class\n"}),(0,r.getMCPByDomain)("canvas"))}},"./packages/packages/core/editor-global-classes/src/load-document-classes.ts":function(e,t,s){s.r(t),s.d(t,{addDocumentClasses:function(){return addDocumentClasses},loadCurrentDocumentClasses:function(){return loadCurrentDocumentClasses},styleDefinitionsMapWithoutNull:function(){return styleDefinitionsMapWithoutNull}});var a=s("@elementor/editor-documents"),n=s("@elementor/store"),r=s("./packages/packages/core/editor-global-classes/src/api.ts"),o=s("./packages/packages/core/editor-global-classes/src/store.ts"),l=s("./packages/packages/core/editor-global-classes/src/utils/create-labels-for-classes.ts");function styleDefinitionsMapWithoutNull(e){return Object.fromEntries(Object.entries(e).filter(e=>null!==e[1]))}async function loadCurrentDocumentClasses(){const e=(await r.apiClient.all("preview")).data.data,t=(0,l.createLabelsForClasses)(e),s=e.map(e=>e.id);!function resetGlobalClassesState(e,t){(0,n.__dispatch)(o.slice.actions.load({preview:{items:{},order:e},frontend:{items:{},order:e},classLabels:t}))}(s,t);const i=(0,a.getCurrentDocument)()?.id;if(!i)return;const[c,d]=await Promise.all([r.apiClient.getStylesForPost(i,"preview"),r.apiClient.getStylesForPost(i,"frontend")]),u=styleDefinitionsMapWithoutNull(c.data.data),p=styleDefinitionsMapWithoutNull(d.data.data);(0,n.__dispatch)(o.slice.actions.load({preview:{items:u,order:s},frontend:{items:p,order:s},classLabels:t}))}async function addDocumentClasses(e){const[t,s]=await Promise.all([r.apiClient.getStylesForPost(e,"preview"),r.apiClient.getStylesForPost(e,"frontend")]),a=styleDefinitionsMapWithoutNull(t.data.data),l=styleDefinitionsMapWithoutNull(s.data.data);(0,n.__dispatch)(o.slice.actions.mergeExistingClasses({preview:a,frontend:l}))}},"./packages/packages/core/editor-global-classes/src/load-existing-classes.ts":function(e,t,s){s.r(t),s.d(t,{loadExistingClasses:function(){return loadExistingClasses}});var a=s("@elementor/store"),n=s("./packages/packages/core/editor-global-classes/src/api.ts"),r=s("./packages/packages/core/editor-global-classes/src/load-document-classes.ts"),o=s("./packages/packages/core/editor-global-classes/src/store.ts");let l=null;const i=new Set;async function loadExistingClasses(e){const t=(0,o.selectGlobalClasses)((0,a.__getState)()),s=e.filter(e=>!(e in t));if(0!==s.length){if(s.forEach(e=>i.add(e)),l)return await l,loadExistingClasses(e);l=async function fetchAndMergeClasses(){const e=Array.from(i);if(i.clear(),0===e.length)return;const t=await n.apiClient.getStylesByIds(e,"preview"),s=await n.apiClient.getStylesByIds(e,"frontend"),l=(0,r.styleDefinitionsMapWithoutNull)(t.data.data),c=(0,r.styleDefinitionsMapWithoutNull)(s.data.data);(0,a.__dispatch)(o.slice.actions.mergeExistingClasses({preview:l,frontend:c}))}();try{await l}finally{l=null}}}},"./packages/packages/core/editor-global-classes/src/mcp-integration/apply-global-class-guide-prompt.ts":function(e,t,s){s.r(t),s.d(t,{APPLY_GLOBAL_CLASS_GUIDE_URI:function(){return n},generateApplyGlobalClassGuidePrompt:function(){return generateApplyGlobalClassGuidePrompt}});var a=s("@elementor/editor-mcp");const n="elementor://global-classes/tools/apply-global-class-guide",generateApplyGlobalClassGuidePrompt=()=>{const e=(0,a.toolPrompts)("apply-global-class");return e.description("Apply a global class to an element, enabling consistent styling through your design system."),e.instruction('## When to use this tool:\n**ALWAYS use this IMMEDIATELY AFTER building compositions** to apply the global classes you created beforehand:\n- After using "build-compositions" tool, apply semantic classes to the created elements\n- When applying consistent typography styles (heading-primary, text-body, etc.)\n- When applying theme colors or brand styles (bg-brand, button-cta, etc.)\n- When ensuring spacing consistency (spacing-section-large, etc.)\n\n**DO NOT use this tool** for:\n- Elements that don\'t share styles with other elements (use inline styles instead)\n- Layout-specific properties (those should remain inline in stylesConfig)'),e.instruction("## Prerequisites:\n- **REQUIRED**: Get the list of available global classes from 'elementor://global-classes' resource\n- **REQUIRED**: Get element IDs from the composition XML returned by \"build-compositions\" tool\n- Ensure you have the most up-to-date list of classes applied to the element to avoid duplicates\n- Make sure you have the correct class ID that you want to apply"),e.instruction('## Best Practices:\n1. Apply multiple classes to a single element if needed (typography + color + spacing)\n2. After applying, the tool will remind you to remove duplicate inline styles from elementConfig\n3. Classes should describe purpose, not implementation (e.g., "heading-primary" not "big-red-text")'),e.prompt()}},"./packages/packages/core/editor-global-classes/src/mcp-integration/classes-resource.ts":function(e,t,s){s.r(t),s.d(t,{GLOBAL_CLASSES_URI:function(){return o},initClassesResource:function(){return initClassesResource}});var a=s("@elementor/store"),n=s("./packages/packages/core/editor-global-classes/src/global-classes-styles-provider.ts"),r=s("./packages/packages/core/editor-global-classes/src/store.ts");const o="elementor://global-classes",l="elementor-global-classes",updateLocalStorageCache=()=>{const e=(0,r.selectOrderedClasses)((0,a.__getState)());localStorage.setItem(l,JSON.stringify(e))},initClassesResource=(e,t)=>{[t,e].forEach(e=>{const{sendResourceUpdated:t,resource:s,waitForReady:a}=e;s("global-classes",o,{description:"Global classes list."},async()=>({contents:[{uri:o,text:localStorage[l]??"[]"}]})),a().then(()=>{updateLocalStorageCache(),n.globalClassesStylesProvider.subscribe(()=>{updateLocalStorageCache(),t({uri:o})})})})}},"./packages/packages/core/editor-global-classes/src/mcp-integration/index.ts":function(e,t,s){s.r(t),s.d(t,{initMcpIntegration:function(){return initMcpIntegration}});var a=s("./packages/packages/core/editor-global-classes/src/mcp-integration/classes-resource.ts"),n=s("./packages/packages/core/editor-global-classes/src/mcp-integration/mcp-apply-unapply-global-classes.ts"),r=s("./packages/packages/core/editor-global-classes/src/mcp-integration/mcp-get-global-class-usages.ts"),o=s("./packages/packages/core/editor-global-classes/src/mcp-integration/mcp-manage-global-classes.ts");const initMcpIntegration=(e,t)=>{(0,n.default)(e),(0,r.default)(e),(0,o.initManageGlobalClasses)(e),(0,a.initClassesResource)(e,t)}},"./packages/packages/core/editor-global-classes/src/mcp-integration/mcp-apply-unapply-global-classes.ts":function(e,t,s){s.r(t),s.d(t,{default:function(){return initMcpApplyUnapplyGlobalClasses}});var a=s("@elementor/editor-editing-panel"),n=s("@elementor/schema"),r=s("./packages/packages/core/editor-global-classes/src/mcp-integration/apply-global-class-guide-prompt.ts"),o=s("./packages/packages/core/editor-global-classes/src/mcp-integration/classes-resource.ts");function initMcpApplyUnapplyGlobalClasses(e){const{addTool:t,resource:s}=e,l=(0,r.generateApplyGlobalClassGuidePrompt)();s("apply-global-class-guide",r.APPLY_GLOBAL_CLASS_GUIDE_URI,{description:"Workflow, prerequisites, and best practices for apply-global-class",mimeType:"text/plain",title:"Apply global class tool guide"},async e=>({contents:[{mimeType:"text/plain",text:l,uri:e.href}]})),t({schema:{classId:n.z.string().describe("The ID of the class to apply"),elementId:n.z.string().describe("The ID of the element to which the class will be applied")},outputSchema:{result:n.z.string().describe("Result message indicating the success of the apply operation"),llm_instructions:n.z.string().describe("Instructions what to do next, Important to follow these instructions!")},name:"apply-global-class",modelPreferences:{intelligencePriority:.7,speedPriority:.8},description:`Apply a global class to an element for shared design-system styling. Read the full guide at [${r.APPLY_GLOBAL_CLASS_GUIDE_URI}].`,requiredResources:[{description:"Apply global class tool guide",uri:r.APPLY_GLOBAL_CLASS_GUIDE_URI},{description:"Global classes list",uri:o.GLOBAL_CLASSES_URI}],handler:async e=>{const{classId:t,elementId:s}=e,n=(0,a.doGetAppliedClasses)(s);return(0,a.doApplyClasses)(s,[...n,t]),{llm_instructions:"Please check the element-configuration, find DUPLICATES in the style schema that are in the class, and remove them",result:`Class ${t} applied to element ${s} successfully.`}}}),t({name:"unapply-global-class",schema:{classId:n.z.string().describe("The ID of the class to unapply"),elementId:n.z.string().describe("The ID of the element from which the class will be unapplied")},outputSchema:{result:n.z.string().describe("Result message indicating the success of the unapply operation")},modelPreferences:{intelligencePriority:.7,speedPriority:.8},description:`Unapply a global class from an element by class ID. Resolve class names to IDs via [${o.GLOBAL_CLASSES_URI}].`,requiredResources:[{description:"Global classes list",uri:o.GLOBAL_CLASSES_URI}],handler:async e=>{const{classId:t,elementId:s}=e;if(!(0,a.doUnapplyClass)(s,t))throw new Error(`Class ${t} is not applied to element ${s}, cannot unapply it.`);return{result:`Class ${t} unapplied from element ${s} successfully.`}}})}},"./packages/packages/core/editor-global-classes/src/mcp-integration/mcp-get-global-class-usages.ts":function(e,t,s){s.r(t),s.d(t,{default:function(){return initMcpApplyGetGlobalClassUsages}});var a=s("@elementor/schema"),n=s("./packages/packages/core/editor-global-classes/service/css-class-usage-service.ts"),r=s("./packages/packages/core/editor-global-classes/src/mcp-integration/classes-resource.ts");function initMcpApplyGetGlobalClassUsages(e){const{addTool:t}=e,s={usages:a.z.array(a.z.object({classId:a.z.string().describe('The ID of the class, not visible to the user. To retrieve the name of the class, use the "list-global-classes" tool'),usages:a.z.array(a.z.object({pageId:a.z.string().describe("The ID of the page where the class is used"),title:a.z.string().describe("The title of the page where the class is used"),total:a.z.number().describe("The number of times the class is used on this page"),elements:a.z.array(a.z.string()).describe("List of element IDs using this class on the page")}))}))};t({name:"get-global-class-usages",modelPreferences:{intelligencePriority:.6,speedPriority:.8},description:"Retrieve usages of global classes across all Elementor pages. Heavy operation — scans every page in the site.\n\n## When to use:\n- Before deleting or radically changing a class — to understand cross-page side effects and decide whether to consult the user.\n- To identify unused global classes for cleanup.\n\n## When NOT to use:\n- To list global classes themselves — use the global-classes resource instead (this tool returns usages, not the class list).",requiredResources:[{description:"Global classes list",uri:r.GLOBAL_CLASSES_URI}],outputSchema:s,handler:async()=>{const e=await(0,n.fetchCssClassUsage)(),t={usages:[]};return Object.entries(e).forEach(([e,s])=>{const a={classId:e,usages:[]};if("number"!=typeof s){const{content:e}=s;e.forEach(e=>{a.usages.push({pageId:String(e.pageId),title:e.title,total:e.total,elements:e.elements})}),t.usages.push(a)}}),t}})}},"./packages/packages/core/editor-global-classes/src/mcp-integration/mcp-manage-global-classes.ts":function(e,t,s){s.r(t),s.d(t,{initManageGlobalClasses:function(){return initManageGlobalClasses}});var a=s("@elementor/editor-canvas"),n=s("@elementor/editor-props"),r=s("@elementor/editor-styles"),o=s("@elementor/schema"),l=s("./packages/packages/core/editor-global-classes/src/global-classes-styles-provider.ts"),i=s("./packages/packages/core/editor-global-classes/src/save-global-classes.tsx"),c=s("./packages/packages/core/editor-global-classes/src/mcp-integration/classes-resource.ts");const d={action:o.z.enum(["create","modify","delete"]).describe("Operation to perform"),classId:o.z.string().optional().describe("Global class ID (required for modify). Get from elementor://global-classes resource."),globalClassName:o.z.string().optional().describe("Global class name (required for create)"),props:o.z.object({default:o.z.record(o.z.any()).describe('key-value of style-schema PropValues. Available properties at dynamic resource "elementor://styles/schema/{property-name}"'),hover:o.z.record(o.z.any()).describe("key-value of style-schema PropValues, for :hover css state. optional").optional(),focus:o.z.record(o.z.any()).describe("key-value of style-schema PropValues, for :focus css state. optional").optional(),active:o.z.record(o.z.any()).describe("key-value of style-schema PropValues, for :active css state. optional").optional()}),breakpoint:o.z.nullable(o.z.string().describe("Responsive breakpoint name for styles. Defaults to desktop (null).")).default(null).describe("Responsive breakpoint name for styles. Defaults to desktop (null).")},u={status:o.z.enum(["ok","error"]).describe("Operation status"),classId:o.z.string().optional().describe("Class ID (returned on create success)"),message:o.z.string().optional().describe("Error details if status is error")},handler=async e=>{const{action:t,classId:s,globalClassName:a,props:o,breakpoint:i}=e,c=o;let d=s;if("create"===t&&!a)return{status:"error",message:"Create requires globalClassName"};if("modify"===t&&!d)return{status:"error",message:"Modify requires classId"};if("delete"===t&&!d)return{status:"error",message:"Delete requires classId"};const{create:u,update:p,delete:g}=l.globalClassesStylesProvider.actions;if(!u||!p||!g)return{status:"error",message:"Required actions not available"};const m=[],h=(0,r.getStylesSchema)(),f=Object.keys(h);if(Object.values(c).forEach(e=>{Object.keys(e).forEach(t=>{const s=h[t];if(!s)return void m.push(`Property "${t}" does not exist in styles schema.`);const{valid:a,jsonSchema:r}=n.Schema.validatePropValue(s,e[t]);a||m.push(`- Property "${t}" has invalid value\n Expected schema: ${r}\n`)})}),m.length>0)return{status:"error",message:`Validation errors:\n${m.join("\n")}\nAvailable Properties: ${f.join(", ")}\nUpdate your input and try again.`};const b=window.elementorV2.editorVariables.Utils;Object.values(c).forEach(e=>{Object.keys(e).forEach(t=>{e[t]=n.Schema.adjustLlmPropValueSchema(e[t],{transformers:b.globalVariablesLLMResolvers})})});const y=i??"desktop";let v={status:"error",classId:"",message:"unknown error"};try{let e=t;for await(const[s,n]of Object.entries(c))switch(e){case"create":const r=await attemptCreate({props:n,className:a,stylesProvider:l.globalClassesStylesProvider,breakpoint:y,state:s});r&&"create"===e&&(e="modify",d=r),v=r?{status:"ok",message:`created global class with ID ${r}`}:{status:"error",message:"error creating class"};break;case"modify":v=await attemptUpdate({classId:d,props:n,stylesProvider:l.globalClassesStylesProvider,breakpoint:y,state:s})?{status:"ok",classId:d}:{status:"error",message:"error modifying class"};break;case"delete":v=await attemptDelete({classId:d,stylesProvider:l.globalClassesStylesProvider})?{status:"ok",message:`deleted global class with ID ${d}`}:{status:"error",message:"error deleting class"};break;default:throw new Error(`Unsupported action ${t}`)}}catch(e){return{status:"error",message:`${t} failed: ${e.message||"Unknown error"}`}}return v},initManageGlobalClasses=e=>{const{addTool:t}=e;t({name:"manage-global-classes",requiredResources:[{uri:c.GLOBAL_CLASSES_URI,description:"Global classes list"},{uri:a.STYLE_SCHEMA_URI,description:"Style schema resources"},{uri:a.BREAKPOINTS_SCHEMA_URI,description:"Breakpoints list"}],modelPreferences:{intelligencePriority:.85,speedPriority:.6},description:"Create or modify global classes for reusable design-system styling. Class names must reflect purpose (e.g. heading-primary, button-cta). Create classes BEFORE compositions. Do NOT create classes for one-off styles or layout-specific properties.",schema:d,outputSchema:u,handler:handler})};async function attemptCreate(e){const{props:t,breakpoint:s,className:a,stylesProvider:n,state:r}=e,{create:o,delete:l}=n.actions;if(!a)throw new Error("Global class name is a required for creation");if(!o||!l)throw new Error("User is unable to create global classes");const c=o(a,[{meta:{breakpoint:s,state:"default"===r?null:r},custom_css:null,props:t}]);try{return await(0,i.saveGlobalClasses)({context:"frontend"}),c}catch{return l(c),null}}async function attemptUpdate(e){const{props:t,breakpoint:s,classId:a,stylesProvider:n,state:r}=e,{updateProps:o,update:l}=n.actions;if(!a)throw new Error("Class ID is required for modification");if(!o||!l)throw new Error("User is unable to update global classes");const c=structuredClone(n.actions.all());try{return o({id:a,props:t,meta:{breakpoint:s,state:r}}),await(0,i.saveGlobalClasses)({context:"frontend"}),!0}catch{return c.forEach(e=>{l({id:e.id,variants:e.variants})}),await(0,i.saveGlobalClasses)({context:"frontend"}),!1}}async function attemptDelete(e){const{classId:t,stylesProvider:s}=e,{delete:a,create:n}=s.actions;if(!t)throw new Error("Class ID is required for deletion");if(!a||!n)throw new Error("User is unable to delete global classes");if(!structuredClone(s.actions.all()).find(e=>e.id===t))throw new Error(`Class with ID "${t}" not found`);try{return a(t),await(0,i.saveGlobalClasses)({context:"frontend"}),!0}catch{return!1}}},"./packages/packages/core/editor-global-classes/src/save-global-classes.tsx":function(e,t,s){s.r(t),s.d(t,{saveGlobalClasses:function(){return saveGlobalClasses}});var a=s("react"),n=s("@elementor/editor-ui"),r=s("@elementor/store"),o=s("@elementor/utils"),l=s("./packages/packages/core/editor-global-classes/src/api.ts"),i=s("./packages/packages/core/editor-global-classes/src/components/class-manager/duplicate-label-dialog.tsx"),c=s("./packages/packages/core/editor-global-classes/src/store.ts"),d=s("./packages/packages/core/editor-global-classes/src/utils/tracking.ts");async function saveGlobalClasses({context:e,onApprove:t}){const s=(0,c.selectData)((0,r.__getState)()),u="preview"===e?l.apiClient.saveDraft:l.apiClient.publish,p="preview"===e?c.selectPreviewInitialData:c.selectFrontendInitialData,g=function calculateChanges(e,t){const s=Object.keys(e.items),a=Object.keys(t.items),{order:n}=e,{order:r}=t,l=new Set(n),i=r.filter(e=>!l.has(e)),c=n.join(";")!==r.join(";");return{added:s.filter(e=>!a.includes(e)),deleted:i,modified:s.filter(s=>s in t.items&&(0,o.hash)(e.items[s])!==(0,o.hash)(t.items[s])),order:c}}(s,p((0,r.__getState)())),m=[...g.added,...g.modified],h=Object.fromEntries(m.map(e=>[e,s.items[e]]).filter(([,e])=>e)),f=await u({items:h,order:s.order,changes:g});(0,r.__dispatch)(c.slice.actions.reset({context:e})),window.dispatchEvent(new CustomEvent("classes:updated",{detail:{context:e}})),f?.data?.data?.code===l.API_ERROR_CODES.DUPLICATED_LABEL&&((0,r.__dispatch)(c.slice.actions.updateMultiple(f.data.data.modifiedLabels)),(0,d.trackGlobalClasses)({event:"classPublishConflict",numOfConflicts:Object.keys(f.data.data.modifiedLabels).length}),(0,n.openDialog)({component:a.createElement(i.DuplicateLabelDialog,{modifiedLabels:f.data.data.modifiedLabels||[],onApprove:t})}))}},"./packages/packages/core/editor-global-classes/src/store.ts":function(e,t,s){s.r(t),s.d(t,{placeholderDefinition:function(){return placeholderDefinition},selectClass:function(){return selectClass},selectClassLabels:function(){return selectClassLabels},selectData:function(){return selectData},selectEmptyCssClass:function(){return p},selectFrontendInitialData:function(){return selectFrontendInitialData},selectGlobalClasses:function(){return d},selectIsClassFetched:function(){return selectIsClassFetched},selectIsDirty:function(){return selectIsDirty},selectOrder:function(){return c},selectOrderedClasses:function(){return u},selectPreviewInitialData:function(){return selectPreviewInitialData},slice:function(){return i}});var a=s("@elementor/editor-styles"),n=s("@elementor/store"),r=s("./packages/packages/core/editor-global-classes/src/errors.ts");const o=s("./packages/packages/core/editor-global-classes/src/utils/snapshot-history.ts").SnapshotHistory.get("global-classes"),l="globalClasses",i=(0,n.__createSlice)({name:l,initialState:{data:{items:{},order:[]},classLabels:{},initialData:{frontend:{items:{},order:[]},preview:{items:{},order:[]}},isDirty:!1},reducers:{load(e,{payload:{frontend:t,preview:s,classLabels:a}}){e.initialData.frontend=t,e.initialData.preview=s,e.data=s,e.classLabels=a,e.isDirty=!1},add(e,{payload:t}){o.next(e.data),e.data.items[t.id]=t,e.data.order.unshift(t.id),e.classLabels[t.id]=t.label,e.isDirty=!0},delete(e,{payload:t}){o.next(e.data),e.data.items=Object.fromEntries(Object.entries(e.data.items).filter(([e])=>e!==t)),e.data.order=e.data.order.filter(e=>e!==t),delete e.classLabels[t],e.isDirty=!0},setOrder(e,{payload:t}){o.next(e.data),e.data.order=t,e.isDirty=!0},update(e,{payload:t}){o.next(e.data);const s={...e.data.items[t.style.id],...t.style};e.data.items[t.style.id]=s,e.isDirty=!0},updateMultiple(e,{payload:t}){o.next(e.data),Object.entries(t).forEach(([t,{modified:s}])=>{e.data.items[t].label=s,e.classLabels[t]=s}),e.isDirty=!1},updateProps(e,{payload:t}){const s=e.data.items[t.id];if(!s)throw new r.GlobalClassNotFoundError({context:{styleId:t.id}});o.next(e.data);const n=(0,a.getVariantByMeta)(s,t.meta);let l=("custom_css"in t?t.custom_css:n?.custom_css)??null;if(l=l?.raw?l:null,n){const e=JSON.parse(JSON.stringify(t.props));if("replace"===(t.mode??"merge"))n.props=e;else{const t=JSON.parse(JSON.stringify(n.props));n.props=mergeProps(t,e)}n.custom_css=l,s.variants=getNonEmptyVariants(s)}else s.variants.push({meta:t.meta,props:t.props,custom_css:l});e.isDirty=!0},reset(e,{payload:{context:t}}){"frontend"===t&&(o.reset(),e.initialData.frontend=e.data,e.isDirty=!1),e.initialData.preview=e.data},undo(e){o.isLast()&&o.next(e.data);const t=o.prev();t?(e.data=t,e.isDirty=!0):e.data=e.initialData.preview},resetToInitialState(e,{payload:{context:t}}){o.reset(),e.data=e.initialData[t],e.isDirty=!1},redo(e){const t=o.next();o.isLast()&&o.prev(),t&&(e.data=t,e.isDirty=!0)},mergeExistingClasses(e,{payload:{preview:t,frontend:s}}){Object.entries(t).forEach(([t,a])=>{const n=s[t];null!=a&&(t in e.data.items||(e.data.items[t]=a),t in e.initialData.frontend.items||(e.initialData.frontend.items[t]=n),t in e.initialData.preview.items||(e.initialData.preview.items[t]=a),t in e.classLabels||(e.classLabels[t]=a.label))})},setOrderWithoutHistory(e,{payload:t}){e.data.order=t},updateAfterTemplateImport(e,{payload:t}){e.initialData.frontend.items={...e.initialData.frontend.items,...t.addedItems},e.initialData.frontend.order=[...e.initialData.frontend.order,...t.addedIdsOrder],e.initialData.preview.items={...e.initialData.preview.items,...t.addedItems},e.initialData.preview.order=[...e.initialData.preview.order,...t.addedIdsOrder],e.data.items={...e.data.items,...t.addedItems},e.data.order=[...e.data.order,...t.addedIdsOrder],e.classLabels={...e.classLabels,...t.addedClassLabels}}}}),mergeProps=(e,t)=>{const s=Array.isArray(e)?{}:e;return Object.entries(t).forEach(([e,t])=>{null==t?delete s[e]:s[e]=t}),s},getNonEmptyVariants=e=>e.variants.filter(({props:e,custom_css:t})=>Object.keys(e).length||t?.raw),placeholderDefinition=(e,t)=>({id:e,type:"class",label:t,variants:[]}),selectData=e=>e[l].data,selectClassLabels=e=>e[l].classLabels,selectFrontendInitialData=e=>e[l].initialData.frontend,selectPreviewInitialData=e=>e[l].initialData.preview,c=(0,n.__createSelector)(selectData,({order:e})=>e),d=(0,n.__createSelector)(selectData,({items:e})=>e),selectIsDirty=e=>e[l].isDirty,u=(0,n.__createSelector)(selectData,selectClassLabels,({items:e,order:t},s)=>t.map(t=>{const a=e[t];if(a)return a;const n=s[t];return void 0!==n?placeholderDefinition(t,n):null}).filter(e=>null!==e)),selectClass=(e,t)=>e[l].data.items[t]??null,p=(0,n.__createSelector)(selectData,({items:e})=>Object.values(e).filter(e=>0===e.variants.length)),selectIsClassFetched=(e,t)=>!!e[l].initialData.preview.items[t]||!!e[l].initialData.frontend.items[t]||!1},"./packages/packages/core/editor-global-classes/src/sync-with-document-save.ts":function(e,t,s){s.r(t),s.d(t,{syncWithDocumentSave:function(){return syncWithDocumentSave}});var a=s("@elementor/editor-current-user"),n=s("@elementor/editor-documents"),r=s("@elementor/editor-v1-adapters"),o=s("@elementor/store"),l=s("./packages/packages/core/editor-global-classes/src/capabilities.ts"),i=s("./packages/packages/core/editor-global-classes/src/save-global-classes.tsx"),c=s("./packages/packages/core/editor-global-classes/src/store.ts");let d=null;function syncWithDocumentSave(e){const t=function syncDirtyState(){return(0,o.__subscribeWithSelector)(c.selectIsDirty,()=>{isDirty()&&(0,n.setDocumentModifiedStatus)(!0)})}();return function bindSaveAction(e){(0,r.registerDataHook)("dependency","document/save/save",t=>(triggerSave(e,"publish"===t.status?"frontend":"preview"),!0))}(e),function bindBeforeSaveTemplateAction(){window.addEventListener("elementor/global-styles/before-save",e=>{!d&&isDirty()&&triggerSave(),d&&e.detail.promises.push(d)})}(),t}function triggerSave(e,t="preview"){const s=(0,a.getCurrentUser)(),n=s?.capabilities.includes(l.UPDATE_CLASS_CAPABILITY_KEY);if(!n)return null;if(d)return d;const r=(0,i.saveGlobalClasses)({context:t,onApprove:e?.open});return d=r,r.finally(()=>{d=null}),r}function isDirty(){return(0,c.selectIsDirty)((0,o.__getState)())}},"./packages/packages/core/editor-global-classes/src/sync-with-document.tsx":function(e,t,s){s.r(t),s.d(t,{SyncWithDocumentSave:function(){return SyncWithDocumentSave}});var a=s("react"),n=s("@elementor/editor-v1-adapters"),r=s("./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-panel.tsx"),o=s("./packages/packages/core/editor-global-classes/src/sync-with-document-save.ts");function SyncWithDocumentSave(){const{open:e}=(0,r.usePanelActions)();return(0,a.useEffect)(()=>(0,n.__privateListenTo)((0,n.v1ReadyEvent)(),()=>{const t=(0,n.isExperimentActive)("e_editor_design_system_panel")?()=>{window.dispatchEvent(new CustomEvent("elementor/open-global-classes-manager"))}:e;(0,o.syncWithDocumentSave)({open:t})}),[]),null}},"./packages/packages/core/editor-global-classes/src/utils/create-labels-for-classes.ts":function(e,t,s){function createLabelsForClasses(e){return Object.fromEntries(e.map(e=>[e.id,e.label]))}s.r(t),s.d(t,{createLabelsForClasses:function(){return createLabelsForClasses}})},"./packages/packages/core/editor-global-classes/src/utils/snapshot-history.ts":function(e,t,s){function createLink({value:e,next:t,prev:s}){return{value:e,prev:s||null,next:t||null}}s.r(t),s.d(t,{SnapshotHistory:function(){return SnapshotHistory}});class SnapshotHistory{static registry={};static get(e){return SnapshotHistory.registry[e]||(SnapshotHistory.registry[e]=new SnapshotHistory(e)),SnapshotHistory.registry[e]}first=null;current=null;constructor(e){this.namespace=e}transform(e){return JSON.parse(JSON.stringify(e))}reset(){this.first=this.current=null}prev(){return this.current&&this.current!==this.first?(this.current=this.current.prev,this.current?.value||null):null}isLast(){return!this.current||!this.current.next}next(e){if(e){if(!this.current)return this.first=createLink({value:this.transform(e)}),this.current=this.first,this.current.value;const t=createLink({value:this.transform(e),prev:this.current});return this.current.next=t,this.current=t,this.current.value}return this.current&&this.current.next?(this.current=this.current.next,this.current.value):null}}},"./packages/packages/core/editor-global-classes/src/utils/tracking.ts":function(e,t,s){s.r(t),s.d(t,{trackGlobalClasses:function(){return trackGlobalClasses}});var a=s("@elementor/events"),n=s("@elementor/store"),r=s("./packages/packages/core/editor-global-classes/service/css-class-usage-service.ts"),o=s("./packages/packages/core/editor-global-classes/src/errors.ts"),l=s("./packages/packages/core/editor-global-classes/src/store.ts");const trackGlobalClasses=async e=>{const{runAction:t}=e,s=await getSanitizedData(e);s&&(track(s),"classCreated"===s.event&&"classId"in s&&fireClassApplied(s.classId)),t?.()},fireClassApplied=async e=>{const t=await getAppliedInfo(e);track({event:"classApplied",classId:e,...t,totalInstancesAfterApply:1})},getSanitizedData=async e=>{switch(e.event){case"classApplied":if("classId"in e&&e.classId){const t=await getAppliedInfo(e.classId);return{...e,...t}}break;case"classRemoved":if("classId"in e&&e.classId){const t=getRemovedInfo(e.classId);return{...e,...t}}break;case"classDeleted":if("classId"in e&&e.classId){const t=await trackDeleteClass(e.classId);return{...e,...t}}break;case"classCreated":return"source"in e&&"created"!==e.source&&"classId"in e&&e.classId?{...e,classTitle:getCssClass(e.classId).label}:e;case"classStateClicked":if("classId"in e&&e.classId)return{...e,classTitle:getCssClass(e.classId).label};break;case"classSyncToV3PopupShown":return{...e,interaction_type:"popup_shown",target_type:"popup",target_name:"sync_to_v3_popup",interaction_result:"popup_viewed",target_location:"widget_panel",location_l1:"class_manager"};case"classSyncToV3":{const t=getCssClass(e.classId).label,s="sync"===e.action;return{...e,interaction_type:"click",target_type:t,target_name:s?"sync_to_v3":"unsync_to_v3",interaction_result:s?"class_is_synced_to_V3":"class_is_unsynced_from_V3",target_location:"widget_panel",location_l1:"class_manager",interaction_description:s?`user_synced_${t}_to_v3`:`user_unsync_${t}_from_v3`}}case"classSyncToV3PopupClick":{const t="sync"===e.action;return{...e,interaction_type:"click",target_type:"button",target_name:t?"sync_to_v3":"cancel",interaction_result:t?"class_is_synced":"cancel",target_location:"sync_to_v3_popup"}}default:return e}},track=e=>{const{dispatchEvent:t,config:s}=(0,a.getMixpanel)();if(!s?.names?.global_classes?.[e.event])return void console.error("Global class tracking event not found",{event:e.event});const n=s.names.global_classes[e.event],{event:r,...l}=e;try{t?.(n,{event:r,...l})}catch(e){throw new o.GlobalClassTrackingError({cause:e})}},extractCssClassData=e=>({classTitle:getCssClass(e).label}),getCssClass=e=>{const t=(0,n.__getState)(),s=(0,l.selectClass)(t,e);if(s)return s;const a=(0,l.selectClassLabels)(t)[e];if(void 0!==a)return(0,l.placeholderDefinition)(e,a);throw new Error(`CSS class with ID ${e} not found`)},trackDeleteClass=async e=>{const t=getCssClass(e).label;return{totalInstances:await getTotalInstancesByCssClassID(e),classTitle:t}},getTotalInstancesByCssClassID=async e=>{const t=await(0,r.fetchCssClassUsage)();return t[e]?.total??1},getAppliedInfo=async e=>{const{classTitle:t}=extractCssClassData(e);return{classTitle:t,totalInstancesAfterApply:await getTotalInstancesByCssClassID(e)+1}},getRemovedInfo=e=>{const{classTitle:t}=extractCssClassData(e);return{classTitle:t}}},"@elementor/editor":function(e){e.exports=window.elementorV2.editor},"@elementor/editor-canvas":function(e){e.exports=window.elementorV2.editorCanvas},"@elementor/editor-current-user":function(e){e.exports=window.elementorV2.editorCurrentUser},"@elementor/editor-documents":function(e){e.exports=window.elementorV2.editorDocuments},"@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-styles":function(e){e.exports=window.elementorV2.editorStyles},"@elementor/editor-styles-repository":function(e){e.exports=window.elementorV2.editorStylesRepository},"@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/query":function(e){e.exports=window.elementorV2.query},"@elementor/schema":function(e){e.exports=window.elementorV2.schema},"@elementor/store":function(e){e.exports=window.elementorV2.store},"@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},"react-dom":function(e){e.exports=window.ReactDOM}},t={};function __webpack_require__(s){var a=t[s];if(void 0!==a)return a.exports;var n=t[s]={exports:{}};return e[s](n,n.exports,__webpack_require__),n.exports}__webpack_require__.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=function(e,t){for(var s in t)__webpack_require__.o(t,s)&&!__webpack_require__.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},__webpack_require__.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},__webpack_require__.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var s={};!function(){__webpack_require__.r(s),__webpack_require__.d(s,{ClassManagerPanelEmbedded:function(){return e.ClassManagerPanelEmbedded},GLOBAL_CLASSES_URI:function(){return t.GLOBAL_CLASSES_URI},addDocumentClasses:function(){return r.addDocumentClasses},createLabelsForClasses:function(){return o.createLabelsForClasses},init:function(){return a.init},loadExistingClasses:function(){return n.loadExistingClasses}});var e=__webpack_require__("./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-panel.tsx"),t=__webpack_require__("./packages/packages/core/editor-global-classes/src/mcp-integration/classes-resource.ts"),a=__webpack_require__("./packages/packages/core/editor-global-classes/src/init.ts"),n=__webpack_require__("./packages/packages/core/editor-global-classes/src/load-existing-classes.ts"),r=__webpack_require__("./packages/packages/core/editor-global-classes/src/load-document-classes.ts"),o=__webpack_require__("./packages/packages/core/editor-global-classes/src/utils/create-labels-for-classes.ts")}(),(window.elementorV2=window.elementorV2||{}).editorGlobalClasses=s}(),window.elementorV2.editorGlobalClasses?.init?.();
6 +`},"./packages/packages/core/editor-global-classes/src/components/convert-local-class-to-global-class.tsx":function(e,s,t){t.r(s),t.d(s,{ConvertLocalClassToGlobalClass:function(){return ConvertLocalClassToGlobalClass}});var a=t("react"),r=t("@elementor/editor-styles-repository"),o=t("@elementor/editor-ui"),n=t("@elementor/ui"),l=t("@wordpress/i18n"),c=t("./packages/packages/core/editor-global-classes/src/global-classes-styles-provider.ts"),i=t("./packages/packages/core/editor-global-classes/src/utils/tracking.ts");const ConvertLocalClassToGlobalClass=e=>{const s=e.styleDef;return a.createElement(a.Fragment,null,a.createElement(o.MenuListItem,{disabled:!e.canConvert,onClick:()=>{const t=function createClassName(e){let s=1,t=`${e}${s}`;for(;!(0,r.validateStyleLabel)(t,"create").isValid;)t=`${e}${++s}`;return t}("converted-class-");if(!s)throw new Error("Style definition is required for converting local class to global class.");const a=c.globalClassesStylesProvider.actions.create?.(t,s.variants);a&&(e.successCallback(a),(0,i.trackGlobalClasses)({classId:a,event:"classCreated",source:"converted",classTitle:t}))},dense:!0,sx:{"&.Mui-focusVisible":{border:"none",boxShadow:"none !important",backgroundColor:"transparent"}}},(0,l.__)("Convert to global class","elementor")),a.createElement(n.Divider,null))}},"./packages/packages/core/editor-global-classes/src/components/css-class-usage/components/css-class-usage-popover.tsx":function(e,s,t){t.r(s),t.d(s,{CssClassUsagePopover:function(){return CssClassUsagePopover}});var a=t("react"),r=t("@elementor/editor-documents"),o=t("@elementor/editor-ui"),n=t("@elementor/icons"),l=t("@elementor/ui"),c=t("@wordpress/i18n"),i=t("./packages/packages/core/editor-global-classes/src/hooks/use-css-class-usage-by-id.ts"),d=t("./packages/packages/core/editor-global-classes/src/utils/tracking.ts");const p={"wp-post":{label:(0,c.__)("Post","elementor"),icon:a.createElement(n.PostTypeIcon,{fontSize:"inherit"})},"wp-page":{label:(0,c.__)("Page","elementor"),icon:a.createElement(n.PagesIcon,{fontSize:"inherit"})},popup:{label:(0,c.__)("Popup","elementor"),icon:a.createElement(n.PopupTemplateIcon,{fontSize:"inherit"})},header:{label:(0,c.__)("Header","elementor"),icon:a.createElement(n.HeaderTemplateIcon,{fontSize:"inherit"})},footer:{label:(0,c.__)("Footer","elementor"),icon:a.createElement(n.FooterTemplateIcon,{fontSize:"inherit"})}},CssClassUsagePopover=({cssClassID:e,onClose:s})=>{const{data:t}=(0,i.useCssClassUsageByID)(e),g=(0,r.__useOpenDocumentInNewTab)(),m=t?.content.map(({title:e,elements:s,pageId:t,type:a})=>({type:"item",value:t,label:e,secondaryText:s.length.toString(),docType:a}))??[];return a.createElement(a.Fragment,null,a.createElement(o.PopoverHeader,{icon:a.createElement(n.CurrentLocationIcon,{fontSize:"tiny"}),title:a.createElement(l.Stack,{flexDirection:"row",gap:1,alignItems:"center"},a.createElement(l.Box,{"aria-label":"header-title"},(0,c.__)("Locator","elementor")),a.createElement(l.Box,null,a.createElement(l.Chip,{sx:{lineHeight:1},size:"tiny",label:t.total}))),onClose:s}),a.createElement(l.Divider,null),a.createElement(o.PopoverBody,{width:300},a.createElement(o.PopoverMenuList,{onSelect:s=>{g(+s),(0,d.trackGlobalClasses)({event:"classUsageLocate",classId:e})},items:m,onClose:()=>{},menuListTemplate:u,menuItemContentTemplate:e=>a.createElement(l.Stack,{flexDirection:"row",flex:1,alignItems:"center"},a.createElement(l.Box,{display:"flex",sx:{pr:1}},a.createElement(l.Tooltip,{disableInteractive:!0,title:p?.[e.docType]?.label??e.docType,placement:"top"},a.createElement(l.Icon,{fontSize:"small"},p?.[e.docType]?.icon||a.createElement(n.PagesIcon,{fontSize:"inherit"})))),a.createElement(l.Box,{sx:{pr:.5,maxWidth:"173px"},display:"flex"},a.createElement(o.EllipsisWithTooltip,{title:e.label,as:l.Typography,variant:"caption",maxWidth:"173px",sx:{lineHeight:1}})),a.createElement(n.ExternalLinkIcon,{className:"hover-only-icon",fontSize:"tiny"}),a.createElement(l.Chip,{sx:{ml:"auto"},size:"tiny",label:e.secondaryText}))})))},u=(0,l.styled)(l.MenuList)(({theme:e})=>({"& > li":{display:"flex",cursor:"pointer",height:32,width:"100%"},'& > [role="option"]':{...e.typography.caption,lineHeight:"inherit",padding:e.spacing(.5,1,.5,2),textOverflow:"ellipsis",position:"absolute",top:0,left:0,opacity:1,".hover-only-icon":{color:e.palette.text.disabled,opacity:0},"&:hover":{borderRadius:e.spacing(.5),backgroundColor:e.palette.action.hover,".hover-only-icon":{color:e.palette.text.disabled,opacity:1}}},width:"100%",position:"relative"}))},"./packages/packages/core/editor-global-classes/src/components/css-class-usage/components/css-class-usage-trigger.tsx":function(e,s,t){t.r(s),t.d(s,{CssClassUsageTrigger:function(){return CssClassUsageTrigger}});var a=t("react"),r=t("@elementor/editor-ui"),o=t("@elementor/icons"),n=t("@elementor/ui"),l=t("@wordpress/i18n"),c=t("./packages/packages/core/editor-global-classes/src/hooks/use-css-class-usage-by-id.ts"),i=t("./packages/packages/core/editor-global-classes/src/utils/tracking.ts"),d=t("./packages/packages/core/editor-global-classes/src/components/css-class-usage/components/css-class-usage-popover.tsx");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var s=1;s<arguments.length;s++){var t=arguments[s];for(var a in t)({}).hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},_extends.apply(null,arguments)}const CssClassUsageTrigger=({id:e,onClick:s})=>{const{data:{total:t},isLoading:r}=(0,c.useCssClassUsageByID)(e),l=(0,n.usePopupState)({variant:"popover",popupId:"css-class-usage-popover"});if(r)return null;const u=0!==t?TooltipWrapper:InfoAlertMessage;return a.createElement(a.Fragment,null,a.createElement(n.Box,{position:"relative",onMouseEnter:()=>{(0,i.trackGlobalClasses)({event:"classUsageHovered",classId:e,usage:t})}},a.createElement(u,{total:t},a.createElement(p,_extends({disabled:0===t,size:"tiny"},(0,n.bindTrigger)(l),{onClick:a=>{0!==t&&((0,n.bindTrigger)(l).onClick(a),s(e),(0,i.trackGlobalClasses)({event:"classUsageClicked",classId:e}))}}),a.createElement(o.CurrentLocationIcon,{fontSize:"tiny"})))),a.createElement(n.Box,null,a.createElement(n.Popover,_extends({anchorOrigin:{vertical:"center",horizontal:"right"},transformOrigin:{vertical:15,horizontal:-50}},(0,n.bindPopover)(l),{onClose:()=>{(0,n.bindPopover)(l).onClose(),s("")}}),a.createElement(d.CssClassUsagePopover,{onClose:l.close,"aria-label":"css-class-usage-popover",cssClassID:e}))))},p=(0,n.styled)(n.IconButton)(({theme:e})=>({"&.Mui-disabled":{pointerEvents:"auto","&:hover":{color:e.palette.action.disabled}},height:"22px",width:"22px"})),TooltipWrapper=({children:e,total:s})=>a.createElement(n.Tooltip,{disableInteractive:!0,placement:"top",title:`${(0,l.__)("Show {{number}} {{locations}}","elementor").replace("{{number}}",s.toString()).replace("{{locations}}",1===s?(0,l.__)("location","elementor"):(0,l.__)("locations","elementor"))}`},a.createElement("span",null,e)),InfoAlertMessage=({children:e})=>a.createElement(n.Infotip,{disableInteractive:!0,placement:"top",color:"secondary",content:a.createElement(r.InfoAlert,{sx:{mt:1}},(0,l.__)("This class isn’t being used yet.","elementor"))},a.createElement("span",null,e))},"./packages/packages/core/editor-global-classes/src/components/css-class-usage/components/index.ts":function(e,s,t){t.r(s),t.d(s,{CssClassUsagePopover:function(){return a.CssClassUsagePopover},CssClassUsageTrigger:function(){return r.CssClassUsageTrigger}});var a=t("./packages/packages/core/editor-global-classes/src/components/css-class-usage/components/css-class-usage-popover.tsx"),r=t("./packages/packages/core/editor-global-classes/src/components/css-class-usage/components/css-class-usage-trigger.tsx")},"./packages/packages/core/editor-global-classes/src/components/css-class-usage/types.ts":function(e,s,t){t.r(s),t.d(s,{QUERY_KEY:function(){return a}});const a="css-classes-usage"},"./packages/packages/core/editor-global-classes/src/components/css-class-usage/utils.ts":function(e,s,t){t.r(s),t.d(s,{transformData:function(){return transformData}});const transformData=e=>Object.entries(e).reduce((e,[s,t])=>(e[s]={content:t||[],total:t.reduce((e,s)=>e+(s?.total||0),0)},e),{})},"./packages/packages/core/editor-global-classes/src/components/populate-store.tsx":function(e,s,t){t.r(s),t.d(s,{PopulateStore:function(){return PopulateStore}});var a=t("react"),r=t("@elementor/store"),o=t("./packages/packages/core/editor-global-classes/src/api.ts"),n=t("./packages/packages/core/editor-global-classes/src/store.ts");function PopulateStore(){const e=(0,r.__useDispatch)();return(0,a.useEffect)(()=>{Promise.all([o.apiClient.all("preview"),o.apiClient.all("frontend")]).then(([s,t])=>{const{data:a}=s,{data:r}=t;e(n.slice.actions.load({preview:{items:a.data,order:a.meta.order},frontend:{items:r.data,order:r.meta.order}}))})},[e]),null}},"./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/active-filters.tsx":function(e,s,t){t.r(s),t.d(s,{ActiveFilters:function(){return ActiveFilters}});var a=t("react"),r=t("@elementor/ui"),o=t("@wordpress/i18n"),n=t("./packages/packages/core/editor-global-classes/src/utils/tracking.ts"),l=t("./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx"),c=t("./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/clear-icon-button.tsx"),i=t("./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/filter-list.tsx");const ActiveFilters=()=>{const{filters:{filters:e,setFilters:s}}=(0,l.useSearchAndFilters)(),t=Object.keys(e).filter(s=>e[s]),p=t.length>0;return a.createElement(r.Stack,{direction:"row",alignItems:"center",justifyContent:"space-between"},a.createElement(r.Stack,{direction:"row",gap:.5,alignItems:"center",flexWrap:"wrap"},t.map(e=>a.createElement(r.Chip,{key:e,label:i.filterConfig[e],onDelete:()=>(e=>{s(s=>({...s,[e]:!1})),(0,n.trackGlobalClasses)({event:"classManagerFilterUsed",action:"remove",type:e,trigger:"header"})})(e),sx:d,size:"tiny"}))),p&&a.createElement(c.ClearIconButton,{trigger:"header",tooltipText:(0,o.__)("Clear Filters","elementor"),sx:{margin:"0 0 auto auto"}}))},d={"& .MuiChip-deleteIcon":{display:"none",transition:"opacity 0.2s"},"&:hover .MuiChip-deleteIcon":{display:"block"}}},"./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/clear-icon-button.tsx":function(e,s,t){t.r(s),t.d(s,{ClearIconButton:function(){return ClearIconButton}});var a=t("react"),r=t("@elementor/icons"),o=t("@elementor/ui"),n=t("./packages/packages/core/editor-global-classes/src/utils/tracking.ts"),l=t("./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx");const ClearIconButton=({tooltipText:e,sx:s,trigger:t})=>{const{filters:{onClearFilter:i}}=(0,l.useSearchAndFilters)();return a.createElement(o.Tooltip,{title:e,placement:"top",disableInteractive:!0},a.createElement(o.Box,null,a.createElement(c,{"aria-label":e,size:"tiny",onClick:()=>{i(t),(0,n.trackGlobalClasses)({event:"classManagerFilterCleared",trigger:t})},sx:s},a.createElement(r.BrushBigIcon,{fontSize:"tiny"}))))},c=(0,o.styled)(o.IconButton)(({theme:e})=>({"&.Mui-disabled":{pointerEvents:"auto","&:hover":{color:e.palette.action.disabled}}}))},"./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/css-class-filter.tsx":function(e,s,t){t.r(s),t.d(s,{CssClassFilter:function(){return CssClassFilter}});var a=t("react"),r=t("@elementor/editor-ui"),o=t("@elementor/icons"),n=t("@elementor/ui"),l=t("@wordpress/i18n"),c=t("./packages/packages/core/editor-global-classes/src/utils/tracking.ts"),i=t("./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx"),d=t("./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/clear-icon-button.tsx"),p=t("./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/filter-list.tsx");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var s=1;s<arguments.length;s++){var t=arguments[s];for(var a in t)({}).hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},_extends.apply(null,arguments)}const CssClassFilter=()=>{const{filters:{filters:e}}=(0,i.useSearchAndFilters)(),s=(0,n.usePopupState)({variant:"popover",disableAutoFocus:!0});a.useEffect(()=>{s.isOpen&&(0,c.trackGlobalClasses)({event:"classManagerFiltersOpened"})},[s.isOpen]);const t=Object.values(e).some(e=>e);return a.createElement(a.Fragment,null,a.createElement(n.Tooltip,{title:(0,l.__)("Filters","elementor"),placement:"top"},a.createElement(n.ToggleButton,_extends({value:"filter",size:"tiny",selected:s.isOpen},(0,n.bindToggle)(s)),a.createElement(o.FilterIcon,{fontSize:"tiny"}))),a.createElement(n.Popover,_extends({sx:{maxWidth:"344px"},anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:-21}},(0,n.bindPopover)(s)),a.createElement(r.PopoverHeader,{actions:t?[a.createElement(d.ClearIconButton,{trigger:"menu",key:"clear-all-button",tooltipText:(0,l.__)("Clear all","elementor")})]:[],onClose:s.close,title:(0,l.__)("Filters","elementor"),icon:a.createElement(o.FilterIcon,{fontSize:"tiny"})}),a.createElement(n.Divider,{sx:{borderWidth:"1px 0 0 0"}}),a.createElement(r.PopoverBody,{width:344,height:125},a.createElement(p.FilterList,null))))}},"./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/filter-list.tsx":function(e,s,t){t.r(s),t.d(s,{FilterList:function(){return FilterList},filterConfig:function(){return i}});var a=t("react"),r=t("@elementor/ui"),o=t("@wordpress/i18n"),n=t("./packages/packages/core/editor-global-classes/src/hooks/use-filtered-css-class-usage.tsx"),l=t("./packages/packages/core/editor-global-classes/src/utils/tracking.ts"),c=t("./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx");const i={unused:(0,o.__)("Unused","elementor"),empty:(0,o.__)("Empty","elementor"),onThisPage:(0,o.__)("On this page","elementor")},FilterList=()=>{const{filters:{filters:e,setFilters:s}}=(0,c.useSearchAndFilters)(),t=(0,n.useFilteredCssClassUsage)(),handleOnClick=t=>{s(e=>({...e,[t]:!e[t]})),(0,l.trackGlobalClasses)({event:"classManagerFilterUsed",action:e[t]?"remove":"apply",type:t,trigger:"menu"})};return a.createElement(r.MenuList,null,a.createElement(r.MenuItem,{onClick:()=>handleOnClick("unused")},a.createElement(LabeledCheckbox,{label:i.unused,checked:e.unused,suffix:a.createElement(r.Chip,{size:"tiny",sx:{ml:"auto"},label:t.unused.length})})),a.createElement(r.MenuItem,{onClick:()=>handleOnClick("empty")},a.createElement(LabeledCheckbox,{label:i.empty,checked:e.empty,suffix:a.createElement(r.Chip,{size:"tiny",sx:{ml:"auto"},label:t.empty.length})})),a.createElement(r.MenuItem,{onClick:()=>handleOnClick("onThisPage")},a.createElement(LabeledCheckbox,{label:i.onThisPage,checked:e.onThisPage,suffix:a.createElement(r.Chip,{size:"tiny",sx:{ml:"auto"},label:t.onThisPage.length})})))},LabeledCheckbox=({label:e,suffix:s,checked:t})=>a.createElement(r.Stack,{direction:"row",alignItems:"center",gap:.5,flex:1},a.createElement(r.Checkbox,{size:"small",checked:t,sx:{padding:0,color:"text.tertiary","&.Mui-checked":{color:"text.tertiary"}}}),a.createElement(r.Typography,{variant:"caption",sx:{color:"text.secondary"}},e),s)},"./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/search/class-manager-search.tsx":function(e,s,t){t.r(s),t.d(s,{ClassManagerSearch:function(){return ClassManagerSearch}});var a=t("react"),r=t("@elementor/icons"),o=t("@elementor/ui"),n=t("@wordpress/i18n"),l=t("./packages/packages/core/editor-global-classes/src/utils/tracking.ts"),c=t("./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx");const ClassManagerSearch=()=>{const{search:{inputValue:e,handleChange:s}}=(0,c.useSearchAndFilters)();return a.createElement(o.Stack,{direction:"row",gap:.5,sx:{width:"100%"}},a.createElement(o.Box,{sx:{flexGrow:1}},a.createElement(o.TextField,{role:"search",fullWidth:!0,size:"tiny",value:e,onFocus:()=>{(0,l.trackGlobalClasses)({event:"classManagerSearched"})},placeholder:(0,n.__)("Search","elementor"),onChange:e=>s(e.target.value),InputProps:{startAdornment:a.createElement(o.InputAdornment,{position:"start"},a.createElement(r.SearchIcon,{fontSize:"tiny"}))}})))}},"./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx":function(e,s,t){t.r(s),t.d(s,{SearchAndFilterProvider:function(){return SearchAndFilterProvider},useSearchAndFilters:function(){return useSearchAndFilters}});var a=t("react"),r=t("@elementor/utils");const o=(0,a.createContext)(void 0),n={empty:!1,onThisPage:!1,unused:!1},SearchAndFilterProvider=({children:e})=>{const[s,t]=a.useState(n),{debouncedValue:l,inputValue:c,handleChange:i}=(0,r.useDebounceState)({delay:300,initialValue:(()=>{const e=localStorage.getItem("elementor-global-classes-search");return e?(localStorage.removeItem("elementor-global-classes-search"),e):""})()});return a.createElement(o.Provider,{value:{search:{debouncedValue:l,inputValue:c,handleChange:i,onClearSearch:()=>{i("")}},filters:{filters:s,setFilters:t,onClearFilter:()=>{t(n)}}}},e)},useSearchAndFilters=()=>{const e=(0,a.useContext)(o);if(!e)throw new Error("useSearchContext must be used within a SearchContextProvider");return e}},"./packages/packages/core/editor-global-classes/src/errors.ts":function(e,s,t){t.r(s),t.d(s,{GlobalClassLabelAlreadyExistsError:function(){return o},GlobalClassNotFoundError:function(){return r},GlobalClassTrackingError:function(){return n}});var a=t("@elementor/utils");const r=(0,a.createError)({code:"global_class_not_found",message:"Global class not found."}),o=(0,a.createError)({code:"global_class_label_already_exists",message:"Class with this name already exists."}),n=(0,a.createError)({code:"global_class_tracking_error",message:"Error tracking global classes event."})},"./packages/packages/core/editor-global-classes/src/global-classes-styles-provider.ts":function(e,s,t){t.r(s),t.d(s,{GLOBAL_CLASSES_PROVIDER_KEY:function(){return p},globalClassesStylesProvider:function(){return u}});var a=t("@elementor/editor-styles"),r=t("@elementor/editor-styles-repository"),o=t("@elementor/store"),n=t("@wordpress/i18n"),l=t("./packages/packages/core/editor-global-classes/src/capabilities.ts"),c=t("./packages/packages/core/editor-global-classes/src/errors.ts"),i=t("./packages/packages/core/editor-global-classes/src/store.ts"),d=t("./packages/packages/core/editor-global-classes/src/utils/tracking.ts");const p="global-classes",u=(0,r.createStylesProvider)({key:p,priority:30,limit:100,labels:{singular:(0,n.__)("class","elementor"),plural:(0,n.__)("classes","elementor")},subscribe:e=>subscribeWithStates(e),capabilities:(0,l.getCapabilities)(),actions:{all:()=>{const e=(0,i.selectOrderedClasses)((0,o.__getState)());return localStorage.setItem("elementor-global-classes",JSON.stringify(e)),e},get:e=>(0,i.selectClass)((0,o.__getState)(),e),resolveCssName:e=>(0,i.selectClass)((0,o.__getState)(),e)?.label??e,create:(e,s=[])=>{const t=(0,i.selectGlobalClasses)((0,o.__getState)());if(Object.values(t).map(e=>e.label).includes(e))throw new c.GlobalClassLabelAlreadyExistsError({context:{label:e}});const r=Object.keys(t),n=(0,a.generateId)("g-",r);return(0,o.__dispatch)(i.slice.actions.add({id:n,type:"class",label:e,variants:s})),n},update:e=>{(0,o.__dispatch)(i.slice.actions.update({style:e}))},delete:e=>{(0,o.__dispatch)(i.slice.actions.delete(e))},updateProps:e=>{(0,o.__dispatch)(i.slice.actions.updateProps({id:e.id,meta:e.meta,props:e.props}))},updateCustomCss:e=>{(0,o.__dispatch)(i.slice.actions.updateProps({id:e.id,meta:e.meta,custom_css:e.custom_css,props:{}}))},tracking:e=>{(0,d.trackGlobalClasses)(e).catch(e=>{throw new c.GlobalClassTrackingError({cause:e})})}}}),subscribeWithStates=e=>{let s=(0,i.selectData)((0,o.__getState)());return(0,o.__subscribeWithSelector)(e=>e.globalClasses,t=>{e(s.items,t.data.items),s=t.data})}},"./packages/packages/core/editor-global-classes/src/hooks/use-classes-order.ts":function(e,s,t){t.r(s),t.d(s,{useClassesOrder:function(){return useClassesOrder}});var a=t("@elementor/store"),r=t("./packages/packages/core/editor-global-classes/src/store.ts");const useClassesOrder=()=>(0,a.__useSelector)(r.selectOrder)},"./packages/packages/core/editor-global-classes/src/hooks/use-css-class-usage-by-id.ts":function(e,s,t){t.r(s),t.d(s,{useCssClassUsageByID:function(){return useCssClassUsageByID}});var a=t("./packages/packages/core/editor-global-classes/src/hooks/use-css-class-usage.ts");const r={total:0,content:[]},useCssClassUsageByID=e=>{const{data:s,...t}=(0,a.useCssClassUsage)();return{...t,data:s?.[e]??r}}},"./packages/packages/core/editor-global-classes/src/hooks/use-css-class-usage.ts":function(e,s,t){t.r(s),t.d(s,{useCssClassUsage:function(){return useCssClassUsage}});var a=t("@elementor/query"),r=t("./packages/packages/core/editor-global-classes/service/css-class-usage-service.ts"),o=t("./packages/packages/core/editor-global-classes/src/components/css-class-usage/types.ts");const useCssClassUsage=()=>(0,a.useQuery)({queryKey:[o.QUERY_KEY],queryFn:r.fetchCssClassUsage,refetchOnMount:!1,refetchOnWindowFocus:!0})},"./packages/packages/core/editor-global-classes/src/hooks/use-dirty-state.ts":function(e,s,t){t.r(s),t.d(s,{useDirtyState:function(){return useDirtyState}});var a=t("@elementor/store"),r=t("./packages/packages/core/editor-global-classes/src/store.ts");const useDirtyState=()=>(0,a.__useSelector)(r.selectIsDirty)},"./packages/packages/core/editor-global-classes/src/hooks/use-empty-css-class.ts":function(e,s,t){t.r(s),t.d(s,{useAllCssClassesIDs:function(){return useAllCssClassesIDs},useEmptyCssClass:function(){return useEmptyCssClass}});var a=t("@elementor/store"),r=t("./packages/packages/core/editor-global-classes/src/store.ts");const useEmptyCssClass=()=>(0,a.__useSelector)(r.selectEmptyCssClass),useAllCssClassesIDs=()=>{const e=(0,a.__useSelector)(r.selectGlobalClasses);return Object.keys(e)}},"./packages/packages/core/editor-global-classes/src/hooks/use-filtered-css-class-usage.tsx":function(e,s,t){t.r(s),t.d(s,{useFilteredCssClassUsage:function(){return useFilteredCssClassUsage}});var a=t("react"),r=t("@elementor/editor-documents"),o=t("./packages/packages/core/editor-global-classes/src/hooks/use-css-class-usage.ts"),n=t("./packages/packages/core/editor-global-classes/src/hooks/use-empty-css-class.ts");const l={empty:[],onThisPage:[],unused:[]},useFilteredCssClassUsage=()=>{const e=(0,r.__useActiveDocument)(),s=(0,n.useEmptyCssClass)(),{data:t,isLoading:c}=(0,o.useCssClassUsage)(),i=(0,n.useAllCssClassesIDs)(),d=(0,a.useMemo)(()=>s.map(({id:e})=>e),[s]),p=(0,a.useMemo)(()=>t&&e?((e,s)=>{const t=[];for(const a in e)e[a].content.forEach(e=>{+e.pageId===s&&t.push(a)});return t})(t,e.id):[],[t,e]),u=(0,a.useMemo)(()=>t?((e,s)=>{const t=new Set(e);return s.filter(e=>!t.has(e))})(Object.keys(t),i):[],[t,i]);return!c&&t&&e?{onThisPage:p,unused:u,empty:d}:l}},"./packages/packages/core/editor-global-classes/src/hooks/use-filters.ts":function(e,s,t){t.r(s),t.d(s,{useFilters:function(){return useFilters}});var a=t("react"),r=t("./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx"),o=t("./packages/packages/core/editor-global-classes/src/hooks/use-filtered-css-class-usage.tsx");const useFilters=()=>{const{filters:{filters:e}}=(0,r.useSearchAndFilters)(),s=(0,o.useFilteredCssClassUsage)();return(0,a.useMemo)(()=>{const t=Object.entries(e).filter(([,e])=>e);return 0===t.length?null:t.reduce((e,[t],a)=>{const r=s[t]||[];return 0===a?r:e.filter(e=>r.includes(e))},[])},[e,s])}},"./packages/packages/core/editor-global-classes/src/hooks/use-ordered-classes.ts":function(e,s,t){t.r(s),t.d(s,{useOrderedClasses:function(){return useOrderedClasses}});var a=t("@elementor/store"),r=t("./packages/packages/core/editor-global-classes/src/store.ts");const useOrderedClasses=()=>(0,a.__useSelector)(r.selectOrderedClasses)},"./packages/packages/core/editor-global-classes/src/hooks/use-prefetch-css-class-usage.ts":function(e,s,t){t.r(s),t.d(s,{PrefetchCssClassUsage:function(){return PrefetchCssClassUsage},usePrefetchCssClassUsage:function(){return usePrefetchCssClassUsage}});var a=t("@elementor/query"),r=t("./packages/packages/core/editor-global-classes/service/css-class-usage-service.ts"),o=t("./packages/packages/core/editor-global-classes/src/components/css-class-usage/types.ts");function usePrefetchCssClassUsage(){const e=(0,a.useQueryClient)();return{prefetchClassesUsage:()=>e.prefetchQuery({queryKey:[o.QUERY_KEY],queryFn:r.fetchCssClassUsage})}}const PrefetchCssClassUsage=()=>{const{prefetchClassesUsage:e}=usePrefetchCssClassUsage();return e(),null}},"./packages/packages/core/editor-global-classes/src/init.ts":function(e,s,t){t.r(s),t.d(s,{init:function(){return init}});var a=t("@elementor/editor"),r=t("@elementor/editor-editing-panel"),o=t("@elementor/editor-panels"),n=t("@elementor/editor-styles-repository"),l=t("@elementor/store"),c=t("./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-button.tsx"),i=t("./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-panel.tsx"),d=t("./packages/packages/core/editor-global-classes/src/components/convert-local-class-to-global-class.tsx"),p=t("./packages/packages/core/editor-global-classes/src/components/populate-store.tsx"),u=t("./packages/packages/core/editor-global-classes/src/global-classes-styles-provider.ts"),g=t("./packages/packages/core/editor-global-classes/src/hooks/use-prefetch-css-class-usage.ts"),m=t("./packages/packages/core/editor-global-classes/src/mcp-integration/index.ts"),h=t("./packages/packages/core/editor-global-classes/src/store.ts"),b=t("./packages/packages/core/editor-global-classes/src/sync-with-document.tsx");function init(){(0,l.__registerSlice)(h.slice),(0,o.__registerPanel)(i.panel),n.stylesRepository.register(u.globalClassesStylesProvider),(0,a.injectIntoLogic)({id:"global-classes-populate-store",component:p.PopulateStore}),(0,a.injectIntoLogic)({id:"global-classes-sync-with-document",component:b.SyncWithDocumentSave}),(0,a.injectIntoLogic)({id:"global-classes-prefetch-css-class-usage",component:g.PrefetchCssClassUsage}),(0,r.injectIntoCssClassConvert)({id:"global-classes-convert-from-local-class",component:d.ConvertLocalClassToGlobalClass}),(0,r.injectIntoClassSelectorActions)({id:"global-classes-manager-button",component:c.ClassManagerButton}),(0,r.registerStyleProviderToColors)(u.GLOBAL_CLASSES_PROVIDER_KEY,{name:"global",getThemeColor:e=>e.palette.global.dark}),(0,m.initMcpIntegration)()}},"./packages/packages/core/editor-global-classes/src/mcp-integration/classes-resource.ts":function(e,s,t){t.r(s),t.d(s,{GLOBAL_CLASSES_URI:function(){return o},initClassesResource:function(){return initClassesResource}});var a=t("@elementor/editor-mcp"),r=t("./packages/packages/core/editor-global-classes/src/global-classes-styles-provider.ts");const o="elementor://global-classes",initClassesResource=()=>{[(0,a.getMCPByDomain)("canvas"),(0,a.getMCPByDomain)("classes")].forEach(e=>{const{mcpServer:s,resource:t,waitForReady:a}=e;t("global-classes",o,{description:"Global classes list."},async()=>({contents:[{uri:o,text:localStorage["elementor-global-classes"]??"{}"}]})),a().then(()=>{r.globalClassesStylesProvider.subscribe(()=>{s.sendResourceListChanged()})})})}},"./packages/packages/core/editor-global-classes/src/mcp-integration/index.ts":function(e,s,t){t.r(s),t.d(s,{initMcpIntegration:function(){return initMcpIntegration}});var a=t("@elementor/editor-mcp"),r=t("./packages/packages/core/editor-global-classes/src/mcp-integration/classes-resource.ts"),o=t("./packages/packages/core/editor-global-classes/src/mcp-integration/mcp-apply-unapply-global-classes.ts"),n=t("./packages/packages/core/editor-global-classes/src/mcp-integration/mcp-get-global-class-usages.ts"),l=t("./packages/packages/core/editor-global-classes/src/mcp-integration/mcp-manage-global-classes.ts");const initMcpIntegration=()=>{const e=(0,a.getMCPByDomain)("classes",{instructions:"MCP server for management of Elementor global classes"});(0,o.default)(e),(0,n.default)(e),(0,l.initManageGlobalClasses)(e),(0,r.initClassesResource)()}},"./packages/packages/core/editor-global-classes/src/mcp-integration/mcp-apply-unapply-global-classes.ts":function(e,s,t){t.r(s),t.d(s,{default:function(){return initMcpApplyUnapplyGlobalClasses}});var a=t("@elementor/editor-editing-panel"),r=t("@elementor/schema");function initMcpApplyUnapplyGlobalClasses(e){e.addTool({schema:{classId:r.z.string().describe("The ID of the class to apply"),elementId:r.z.string().describe("The ID of the element to which the class will be applied")},outputSchema:{result:r.z.string().describe("Result message indicating the success of the apply operation")},name:"apply-global-class",modelPreferences:{intelligencePriority:.7,speedPriority:.8},description:'Apply a global class to an element, enabling consistent styling through your design system.\n\n## When to use this tool:\n**ALWAYS use this IMMEDIATELY AFTER building compositions** to apply the global classes you created beforehand:\n- After using "build-compositions" tool, apply semantic classes to the created elements\n- When applying consistent typography styles (heading-primary, text-body, etc.)\n- When applying theme colors or brand styles (bg-brand, button-cta, etc.)\n- When ensuring spacing consistency (spacing-section-large, etc.)\n\n**DO NOT use this tool** for:\n- Elements that don\'t share styles with other elements (use inline styles instead)\n- Layout-specific properties (those should remain inline in stylesConfig)\n\n## Prerequisites:\n- **REQUIRED**: Get the list of available global classes from \'elementor://global-classes\' resource\n- **REQUIRED**: Get element IDs from the composition XML returned by "build-compositions" tool\n- Ensure you have the most up-to-date list of classes applied to the element to avoid duplicates\n- Make sure you have the correct class ID that you want to apply\n\n## Best Practices:\n1. Apply multiple classes to a single element if needed (typography + color + spacing)\n2. After applying, the tool will remind you to remove duplicate inline styles from elementConfig\n3. Classes should describe purpose, not implementation (e.g., "heading-primary" not "big-red-text")',handler:async e=>{const{classId:s,elementId:t}=e,r=(0,a.doGetAppliedClasses)(t);return(0,a.doApplyClasses)(t,[...r,s]),{llm_instructions:"Please check the element-configuration, find DUPLICATES in the style schema that are in the class, and remove them",result:`Class ${s} applied to element ${t} successfully.`}}}),e.addTool({name:"unapply-global-class",schema:{classId:r.z.string().describe("The ID of the class to unapply"),elementId:r.z.string().describe("The ID of the element from which the class will be unapplied")},outputSchema:{result:r.z.string().describe("Result message indicating the success of the unapply operation")},modelPreferences:{intelligencePriority:.7,speedPriority:.8},description:"Unapply a (global) class from the current element\n\n## When to use this tool:\n- When a user requests to unapply a global class or a class from an element in the Elementor editor.\n- When you need to remove a specific class from an element's applied classes.\n\n## Prerequisites:\n- Ensure you have the most up-to-date list of classes applied to the element to avoid errors.\n The list is available at always up-to-date resource 'elementor://global-classes'.\n- Make sure you have the correct class ID that you want to unapply.\n\n<note>\nIf the user want to unapply a class by it's name and not ID, retreive the id from the list, available at uri elementor://global-classes\n</note>\n",handler:async e=>{const{classId:s,elementId:t}=e;if(!(0,a.doUnapplyClass)(t,s))throw new Error(`Class ${s} is not applied to element ${t}, cannot unapply it.`);return{result:`Class ${s} unapplied from element ${t} successfully.`}}})}},"./packages/packages/core/editor-global-classes/src/mcp-integration/mcp-get-global-class-usages.ts":function(e,s,t){t.r(s),t.d(s,{default:function(){return initMcpApplyGetGlobalClassUsages}});var a=t("@elementor/schema"),r=t("./packages/packages/core/editor-global-classes/service/css-class-usage-service.ts");function initMcpApplyGetGlobalClassUsages(e){const{addTool:s}=e;s({name:"get-global-class-usages",modelPreferences:{intelligencePriority:.6,speedPriority:.8},description:"Retreive the usages of global-classes ACCROSS PAGES designed by Elementor editor.\n\n## Prequisites: CRITICAL\n- The list of global classes and their applid values is available at resource uri elementor://global-classes\n\n## When to use this tool:\n- When a user requests to see where a specific global class is being used accross the site.\n- When you need to manage or clean up unused global classes.\n- Before deleting a global class, to ensure it is not in use in any other pages.\n\n## When NOT to use this tool:\n- For getting the list of global classes, refer to the resource at uri elementor://global-classes\n",outputSchema:{usages:a.z.array(a.z.object({classId:a.z.string().describe('The ID of the class, not visible to the user. To retreive the name of the class, use the "list-global-classes" tool'),usages:a.z.array(a.z.object({pageId:a.z.string().describe("The ID of the page where the class is used"),title:a.z.string().describe("The title of the page where the class is used"),total:a.z.number().describe("The number of times the class is used on this page"),elements:a.z.array(a.z.string()).describe("List of element IDs using this class on the page")}))}))},handler:async()=>{const e=await(0,r.fetchCssClassUsage)(),s={usages:[]};return Object.entries(e).forEach(([e,t])=>{const a={classId:e,usages:[]};if("number"!=typeof t){const{content:e}=t;e.forEach(e=>{a.usages.push({pageId:String(e.pageId),title:e.title,total:e.total,elements:e.elements})}),s.usages.push(a)}}),s}})}},"./packages/packages/core/editor-global-classes/src/mcp-integration/mcp-manage-global-classes.ts":function(e,s,t){t.r(s),t.d(s,{initManageGlobalClasses:function(){return initManageGlobalClasses}});var a=t("@elementor/editor-canvas"),r=t("@elementor/editor-props"),o=t("@elementor/editor-styles"),n=t("@elementor/schema"),l=t("./packages/packages/core/editor-global-classes/src/global-classes-styles-provider.ts"),c=t("./packages/packages/core/editor-global-classes/src/save-global-classes.tsx"),i=t("./packages/packages/core/editor-global-classes/src/mcp-integration/classes-resource.ts");const d={action:n.z.enum(["create","modify","delete"]).describe("Operation to perform"),classId:n.z.string().optional().describe("Global class ID (required for modify). Get from elementor://global-classes resource."),globalClassName:n.z.string().optional().describe("Global class name (required for create)"),props:n.z.record(n.z.any()).describe('key-value of style-schema PropValues. Available properties at dynamic resource "elementor://styles/schema/{property-name}"'),breakpoint:n.z.nullable(n.z.string().describe("Responsive breakpoint name for styles. Defaults to desktop (null).")).default(null).describe("Responsive breakpoint name for styles. Defaults to desktop (null).")},p={status:n.z.enum(["ok","error"]).describe("Operation status"),classId:n.z.string().optional().describe("Class ID (returned on create success)"),message:n.z.string().optional().describe("Error details if status is error")},handler=async e=>{const{action:s,classId:t,globalClassName:a,props:n,breakpoint:i}=e;if("create"===s&&!a)return{status:"error",message:"Create requires globalClassName"};if("modify"===s&&!t)return{status:"error",message:"Modify requires classId"};if("delete"===s&&!t)return{status:"error",message:"Delete requires classId"};const{create:d,update:p,delete:u}=l.globalClassesStylesProvider.actions;if(!d||!p||!u)return{status:"error",message:"Required actions not available"};const g=[],m=(0,o.getStylesSchema)(),h=Object.keys(m);if(Object.keys(n).forEach(e=>{const s=m[e];if(!s)return void g.push(`Property "${e}" does not exist in styles schema.`);const{valid:t,jsonSchema:a}=r.Schema.validatePropValue(s,n[e]);t||g.push(`- Property "${e}" has invalid value\n Expected schema: ${a}\n`)}),g.length>0)return{status:"error",message:`Validation errors:\n${g.join("\n")}\nAvailable Properties: ${h.join(", ")}\nUpdate your input and try again.`};const b=window.elementorV2.editorVariables.Utils;Object.keys(n).forEach(e=>{n[e]=r.Schema.adjustLlmPropValueSchema(n[e],{transformers:b.globalVariablesLLMResolvers})});const f=i??"desktop";try{switch(s){case"create":const e=await async function attemptCreate(e){const{props:s,breakpoint:t,className:a,stylesProvider:r}=e,{create:o,delete:n}=r.actions;if(!a)throw new Error("Global class name is a required for creation");if(!o||!n)throw new Error("User is unable to create global classes");const l=o(a,[{meta:{breakpoint:t,state:null},custom_css:null,props:s}]);try{return await(0,c.saveGlobalClasses)({context:"frontend"}),l}catch{return n(l),null}}({props:n,className:a,stylesProvider:l.globalClassesStylesProvider,breakpoint:f});return e?{status:"ok",message:`created global class with ID ${e}`}:{status:"error",message:"error creating class"};case"modify":const s=await async function attemptUpdate(e){const{props:s,breakpoint:t,classId:a,stylesProvider:r}=e,{updateProps:o,update:n}=r.actions;if(!a)throw new Error("Class ID is required for modification");if(!o||!n)throw new Error("User is unable to update global classes");const l=structuredClone(r.actions.all());try{return o({id:a,props:s,meta:{breakpoint:t,state:null}}),await(0,c.saveGlobalClasses)({context:"frontend"}),!0}catch{return l.forEach(e=>{n({id:e.id,variants:e.variants})}),await(0,c.saveGlobalClasses)({context:"frontend"}),!1}}({classId:t,props:n,stylesProvider:l.globalClassesStylesProvider,breakpoint:f});return s?{status:"ok",classId:t}:{status:"error",message:"error modifying class"};case"delete":const r=await async function attemptDelete(e){const{classId:s,stylesProvider:t}=e,{delete:a,create:r}=t.actions;if(!s)throw new Error("Class ID is required for deletion");if(!a||!r)throw new Error("User is unable to delete global classes");const o=structuredClone(t.actions.all()).find(e=>e.id===s);if(!o)throw new Error(`Class with ID "${s}" not found`);try{return a(s),await(0,c.saveGlobalClasses)({context:"frontend"}),!0}catch{return!1}}({classId:t,stylesProvider:l.globalClassesStylesProvider});return r?{status:"ok",message:`deleted global class with ID ${t}`}:{status:"error",message:"error deleting class"}}}catch(e){return{status:"error",message:`${s} failed: ${e.message||"Unknown error"}`}}},initManageGlobalClasses=e=>{const{addTool:s}=e;s({name:"manage-global-classes",requiredResources:[{uri:i.GLOBAL_CLASSES_URI,description:"Global classes list"},{uri:a.STYLE_SCHEMA_URI,description:"Style schema resources"},{uri:a.BREAKPOINTS_SCHEMA_URI,description:"Breakpoints list"}],modelPreferences:{intelligencePriority:.85,speedPriority:.6},description:"Manages global classes (create/modify) in Elementor editor. Check [elementor://global-classes] and style schemas first.\n\nCREATE: Requires globalClassName, props. Use semantic naming (heading-primary, button-cta, text-muted). Check existing classes to avoid duplicates. ALWAYS create global classes BEFORE compositions for reusable styles.\nMODIFY: Requires classId, props. Get classId from [elementor://global-classes] resource.\n\nNaming pattern: [element-type]-[purpose/variant]-[modifier]\nDO NOT create global classes for: one-off styles, layout-specific properties.\n\nUse style schema at [elementor://styles/schema/{category}] for valid props. Errors include exact schema mismatch details.",schema:d,outputSchema:p,handler:handler})}},"./packages/packages/core/editor-global-classes/src/save-global-classes.tsx":function(e,s,t){t.r(s),t.d(s,{saveGlobalClasses:function(){return saveGlobalClasses}});var a=t("react"),r=t("@elementor/editor-ui"),o=t("@elementor/store"),n=t("@elementor/utils"),l=t("./packages/packages/core/editor-global-classes/src/api.ts"),c=t("./packages/packages/core/editor-global-classes/src/components/class-manager/duplicate-label-dialog.tsx"),i=t("./packages/packages/core/editor-global-classes/src/store.ts"),d=t("./packages/packages/core/editor-global-classes/src/utils/tracking.ts");async function saveGlobalClasses({context:e,onApprove:s}){const t=(0,i.selectData)((0,o.__getState)()),n="preview"===e?l.apiClient.saveDraft:l.apiClient.publish,p="preview"===e?i.selectPreviewInitialData:i.selectFrontendInitialData,u=await n({items:t.items,order:t.order,changes:calculateChanges(t,p((0,o.__getState)()))});(0,o.__dispatch)(i.slice.actions.reset({context:e})),u?.data?.data?.code===l.API_ERROR_CODES.DUPLICATED_LABEL&&((0,o.__dispatch)(i.slice.actions.updateMultiple(u.data.data.modifiedLabels)),(0,d.trackGlobalClasses)({event:"classPublishConflict",numOfConflicts:Object.keys(u.data.data.modifiedLabels).length}),(0,r.openDialog)({component:a.createElement(c.DuplicateLabelDialog,{modifiedLabels:u.data.data.modifiedLabels||[],onApprove:s})}))}function calculateChanges(e,s){const t=Object.keys(e.items),a=Object.keys(s.items);return{added:t.filter(e=>!a.includes(e)),deleted:a.filter(e=>!t.includes(e)),modified:t.filter(t=>t in s.items&&(0,n.hash)(e.items[t])!==(0,n.hash)(s.items[t]))}}},"./packages/packages/core/editor-global-classes/src/store.ts":function(e,s,t){t.r(s),t.d(s,{selectClass:function(){return selectClass},selectData:function(){return selectData},selectEmptyCssClass:function(){return u},selectFrontendInitialData:function(){return selectFrontendInitialData},selectGlobalClasses:function(){return d},selectIsDirty:function(){return selectIsDirty},selectOrder:function(){return i},selectOrderedClasses:function(){return p},selectPreviewInitialData:function(){return selectPreviewInitialData},slice:function(){return c}});var a=t("@elementor/editor-styles"),r=t("@elementor/store"),o=t("./packages/packages/core/editor-global-classes/src/errors.ts");const n=t("./packages/packages/core/editor-global-classes/src/utils/snapshot-history.ts").SnapshotHistory.get("global-classes"),l="globalClasses",c=(0,r.__createSlice)({name:l,initialState:{data:{items:{},order:[]},initialData:{frontend:{items:{},order:[]},preview:{items:{},order:[]}},isDirty:!1},reducers:{load(e,{payload:{frontend:s,preview:t}}){e.initialData.frontend=s,e.initialData.preview=t,e.data=t,e.isDirty=!1},add(e,{payload:s}){n.next(e.data),e.data.items[s.id]=s,e.data.order.unshift(s.id),e.isDirty=!0},delete(e,{payload:s}){n.next(e.data),e.data.items=Object.fromEntries(Object.entries(e.data.items).filter(([e])=>e!==s)),e.data.order=e.data.order.filter(e=>e!==s),e.isDirty=!0},setOrder(e,{payload:s}){n.next(e.data),e.data.order=s,e.isDirty=!0},update(e,{payload:s}){n.next(e.data);const t={...e.data.items[s.style.id],...s.style};e.data.items[s.style.id]=t,e.isDirty=!0},updateMultiple(e,{payload:s}){n.next(e.data),Object.entries(s).forEach(([s,{modified:t}])=>{e.data.items[s].label=t}),e.isDirty=!1},updateProps(e,{payload:s}){const t=e.data.items[s.id];if(!t)throw new o.GlobalClassNotFoundError({context:{styleId:s.id}});n.next(e.data);const r=(0,a.getVariantByMeta)(t,s.meta);let l=("custom_css"in s?s.custom_css:r?.custom_css)??null;if(l=l?.raw?l:null,r){const e=JSON.parse(JSON.stringify(r.props)),a=JSON.parse(JSON.stringify(s.props));r.props=mergeProps(e,a),r.custom_css=l,t.variants=getNonEmptyVariants(t)}else t.variants.push({meta:s.meta,props:s.props,custom_css:l});e.isDirty=!0},reset(e,{payload:{context:s}}){"frontend"===s&&(n.reset(),e.initialData.frontend=e.data,e.isDirty=!1),e.initialData.preview=e.data},undo(e){n.isLast()&&n.next(e.data);const s=n.prev();s?(e.data=s,e.isDirty=!0):e.data=e.initialData.preview},resetToInitialState(e,{payload:{context:s}}){n.reset(),e.data=e.initialData[s],e.isDirty=!1},redo(e){const s=n.next();n.isLast()&&n.prev(),s&&(e.data=s,e.isDirty=!0)}}}),mergeProps=(e,s)=>{const t=Array.isArray(e)?{}:e;return Object.entries(s).forEach(([e,s])=>{null==s?delete t[e]:t[e]=s}),t},getNonEmptyVariants=e=>e.variants.filter(({props:e,custom_css:s})=>Object.keys(e).length||s?.raw),selectData=e=>e[l].data,selectFrontendInitialData=e=>e[l].initialData.frontend,selectPreviewInitialData=e=>e[l].initialData.preview,i=(0,r.__createSelector)(selectData,({order:e})=>e),d=(0,r.__createSelector)(selectData,({items:e})=>e),selectIsDirty=e=>e[l].isDirty,p=(0,r.__createSelector)(d,i,(e,s)=>s.map(s=>e[s])),selectClass=(e,s)=>e[l].data.items[s]??null,u=(0,r.__createSelector)(selectData,({items:e})=>Object.values(e).filter(e=>0===e.variants.length))},"./packages/packages/core/editor-global-classes/src/sync-with-document-save.ts":function(e,s,t){t.r(s),t.d(s,{syncWithDocumentSave:function(){return syncWithDocumentSave}});var a=t("@elementor/editor-current-user"),r=t("@elementor/editor-documents"),o=t("@elementor/editor-v1-adapters"),n=t("@elementor/store"),l=t("./packages/packages/core/editor-global-classes/src/capabilities.ts"),c=t("./packages/packages/core/editor-global-classes/src/save-global-classes.tsx"),i=t("./packages/packages/core/editor-global-classes/src/store.ts");function syncWithDocumentSave(e){const s=function syncDirtyState(){return(0,n.__subscribeWithSelector)(i.selectIsDirty,()=>{(function isDirty(){return(0,i.selectIsDirty)((0,n.__getState)())})()&&(0,r.setDocumentModifiedStatus)(!0)})}();return function bindSaveAction(e){(0,o.registerDataHook)("dependency","document/save/save",s=>{const t=(0,a.getCurrentUser)(),r=t?.capabilities.includes(l.UPDATE_CLASS_CAPABILITY_KEY);return!r||((0,c.saveGlobalClasses)({context:"publish"===s.status?"frontend":"preview",onApprove:e?.open}),!0)})}(e),s}},"./packages/packages/core/editor-global-classes/src/sync-with-document.tsx":function(e,s,t){t.r(s),t.d(s,{SyncWithDocumentSave:function(){return SyncWithDocumentSave}});var a=t("react"),r=t("@elementor/editor-v1-adapters"),o=t("./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-panel.tsx"),n=t("./packages/packages/core/editor-global-classes/src/sync-with-document-save.ts");function SyncWithDocumentSave(){const e=(0,o.usePanelActions)();return(0,a.useEffect)(()=>{(0,r.__privateListenTo)((0,r.v1ReadyEvent)(),()=>{(0,n.syncWithDocumentSave)(e)})},[]),null}},"./packages/packages/core/editor-global-classes/src/utils/snapshot-history.ts":function(e,s,t){function createLink({value:e,next:s,prev:t}){return{value:e,prev:t||null,next:s||null}}t.r(s),t.d(s,{SnapshotHistory:function(){return SnapshotHistory}});class SnapshotHistory{static registry={};static get(e){return SnapshotHistory.registry[e]||(SnapshotHistory.registry[e]=new SnapshotHistory(e)),SnapshotHistory.registry[e]}first=null;current=null;constructor(e){this.namespace=e}transform(e){return JSON.parse(JSON.stringify(e))}reset(){this.first=this.current=null}prev(){return this.current&&this.current!==this.first?(this.current=this.current.prev,this.current?.value||null):null}isLast(){return!this.current||!this.current.next}next(e){if(e){if(!this.current)return this.first=createLink({value:this.transform(e)}),this.current=this.first,this.current.value;const s=createLink({value:this.transform(e),prev:this.current});return this.current.next=s,this.current=s,this.current.value}return this.current&&this.current.next?(this.current=this.current.next,this.current.value):null}}},"./packages/packages/core/editor-global-classes/src/utils/tracking.ts":function(e,s,t){t.r(s),t.d(s,{trackGlobalClasses:function(){return trackGlobalClasses}});var a=t("@elementor/mixpanel"),r=t("@elementor/store"),o=t("./packages/packages/core/editor-global-classes/service/css-class-usage-service.ts"),n=t("./packages/packages/core/editor-global-classes/src/errors.ts"),l=t("./packages/packages/core/editor-global-classes/src/store.ts");const trackGlobalClasses=async e=>{const{runAction:s}=e,t=await getSanitizedData(e);t&&(track(t),"classCreated"===t.event&&"classId"in t&&fireClassApplied(t.classId)),s?.()},fireClassApplied=async e=>{const s=await getAppliedInfo(e);track({event:"classApplied",classId:e,...s,totalInstancesAfterApply:1})},getSanitizedData=async e=>{switch(e.event){case"classApplied":if("classId"in e&&e.classId){const s=await getAppliedInfo(e.classId);return{...e,...s}}break;case"classRemoved":if("classId"in e&&e.classId){const s=getRemovedInfo(e.classId);return{...e,...s}}break;case"classDeleted":if("classId"in e&&e.classId){const s=await trackDeleteClass(e.classId);return{...e,...s}}break;case"classCreated":return"source"in e&&"created"!==e.source&&"classId"in e&&e.classId?{...e,classTitle:getCssClass(e.classId).label}:e;case"classStateClicked":if("classId"in e&&e.classId)return{...e,classTitle:getCssClass(e.classId).label};break;default:return e}},track=e=>{const{dispatchEvent:s,config:t}=(0,a.getMixpanel)();if(!t?.names?.global_classes?.[e.event])return void console.error("Global class tracking event not found",{event:e.event});const r=t.names.global_classes[e.event],{event:o,...l}=e;try{s?.(r,{event:o,...l})}catch(e){throw new n.GlobalClassTrackingError({cause:e})}},extractCssClassData=e=>({classTitle:getCssClass(e).label}),getCssClass=e=>{const s=(0,l.selectClass)((0,r.__getState)(),e);if(!s)throw new Error(`CSS class with ID ${e} not found`);return s},trackDeleteClass=async e=>({totalInstances:await getTotalInstancesByCssClassID(e),classTitle:getCssClass(e).label}),getTotalInstancesByCssClassID=async e=>{const s=await(0,o.fetchCssClassUsage)();return s[e]?.total??1},getAppliedInfo=async e=>{const{classTitle:s}=extractCssClassData(e);return{classTitle:s,totalInstancesAfterApply:await getTotalInstancesByCssClassID(e)+1}},getRemovedInfo=e=>{const{classTitle:s}=extractCssClassData(e);return{classTitle:s}}},"@elementor/editor":function(e){e.exports=window.elementorV2.editor},"@elementor/editor-canvas":function(e){e.exports=window.elementorV2.editorCanvas},"@elementor/editor-current-user":function(e){e.exports=window.elementorV2.editorCurrentUser},"@elementor/editor-documents":function(e){e.exports=window.elementorV2.editorDocuments},"@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-styles":function(e){e.exports=window.elementorV2.editorStyles},"@elementor/editor-styles-repository":function(e){e.exports=window.elementorV2.editorStylesRepository},"@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/query":function(e){e.exports=window.elementorV2.query},"@elementor/schema":function(e){e.exports=window.elementorV2.schema},"@elementor/store":function(e){e.exports=window.elementorV2.store},"@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}},s={};function __webpack_require__(t){var a=s[t];if(void 0!==a)return a.exports;var r=s[t]={exports:{}};return e[t](r,r.exports,__webpack_require__),r.exports}__webpack_require__.n=function(e){var s=e&&e.__esModule?function(){return e.default}:function(){return e};return __webpack_require__.d(s,{a:s}),s},__webpack_require__.d=function(e,s){for(var t in s)__webpack_require__.o(s,t)&&!__webpack_require__.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:s[t]})},__webpack_require__.o=function(e,s){return Object.prototype.hasOwnProperty.call(e,s)},__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,{GLOBAL_CLASSES_URI:function(){return e.GLOBAL_CLASSES_URI},init:function(){return s.init}});var e=__webpack_require__("./packages/packages/core/editor-global-classes/src/mcp-integration/classes-resource.ts"),s=__webpack_require__("./packages/packages/core/editor-global-classes/src/init.ts")}(),(window.elementorV2=window.elementorV2||{}).editorGlobalClasses=t}(),window.elementorV2.editorGlobalClasses?.init?.();
7 7 //# sourceMappingURL=editor-global-classes.js.map