← All changes
|
assets/js/packages/editor-global-classes/editor-global-classes.min.js
+1
-1
4.3.0-beta3
→
trunk
View file →
| @@ -1,8 +1,8 @@ | ||
| 1 | 1 | (function(){var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,__commonJSMin=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),__copyProps=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},__toESM=(n,r,a)=>(a=n==null?{}:e(i(n)),__copyProps(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n)),o=__commonJSMin((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function memo(e,t,n){let r=n.initialDeps??[],i,a=!0;function memoizedFunction(){let o;n.key&&n.debug?.call(n)&&(o=Date.now());let s=e();if(!(s.length!==r.length||s.some((e,t)=>r[t]!==e)))return i;r=s;let c;if(n.key&&n.debug?.call(n)&&(c=Date.now()),i=t(...s),n.key&&n.debug?.call(n)){let e=Math.round((Date.now()-o)*100)/100,t=Math.round((Date.now()-c)*100)/100,r=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`,` |
| 2 | 2 | font-size: .6rem; |
| 3 | 3 | font-weight: bold; |
| 4 | - color: hsl(${Math.max(0,Math.min(120-120*r,120))}deg 100% 31%);`,n?.key)}return n?.onChange&&!(a&&n.skipInitialOnChange)&&n.onChange(i),a=!1,i}return memoizedFunction.updateDeps=e=>{r=e},memoizedFunction}function notUndefined(e,t){if(e===void 0)throw Error(`Unexpected undefined${t?`: ${t}`:``}`);return e}var approxEqual=(e,t)=>Math.abs(e-t)<1.01,debounce=(e,t,n)=>{let r;return function(...i){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,i),n)}};e.approxEqual=approxEqual,e.debounce=debounce,e.memo=memo,e.notUndefined=notUndefined})),s=__commonJSMin((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=o(),getRect=e=>{let{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},defaultKeyExtractor=e=>e,defaultRangeExtractor=e=>{let t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1),r=[];for(let e=t;e<=n;e++)r.push(e);return r},observeElementRect=(e,t)=>{let n=e.scrollElement;if(!n)return;let r=e.targetWindow;if(!r)return;let handler=e=>{let{width:n,height:r}=e;t({width:Math.round(n),height:Math.round(r)})};if(handler(getRect(n)),!r.ResizeObserver)return()=>{};let i=new r.ResizeObserver(t=>{let run=()=>{let e=t[0];if(e?.borderBoxSize){let t=e.borderBoxSize[0];if(t){handler({width:t.inlineSize,height:t.blockSize});return}}handler(getRect(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(run):run()});return i.observe(n,{box:`border-box`}),()=>{i.unobserve(n)}},n={passive:!0},observeWindowRect=(e,t)=>{let r=e.scrollElement;if(!r)return;let handler=()=>{t({width:r.innerWidth,height:r.innerHeight})};return handler(),r.addEventListener(`resize`,handler,n),()=>{r.removeEventListener(`resize`,handler)}},r=typeof window>`u`||`onscrollend`in window,observeElementOffset=(e,i)=>{let a=e.scrollElement;if(!a)return;let o=e.targetWindow;if(!o)return;let s=0,c=e.options.useScrollendEvent&&r?()=>void 0:t.debounce(o,()=>{i(s,!1)},e.options.isScrollingResetDelay),createHandler=t=>()=>{let{horizontal:n,isRtl:r}=e.options;s=n?a.scrollLeft*(r&&-1||1):a.scrollTop,c(),i(s,t)},l=createHandler(!0),u=createHandler(!1);a.addEventListener(`scroll`,l,n);let d=e.options.useScrollendEvent&&r;return d&&a.addEventListener(`scrollend`,u,n),()=>{a.removeEventListener(`scroll`,l),d&&a.removeEventListener(`scrollend`,u)}},observeWindowOffset=(e,i)=>{let a=e.scrollElement;if(!a)return;let o=e.targetWindow;if(!o)return;let s=0,c=e.options.useScrollendEvent&&r?()=>void 0:t.debounce(o,()=>{i(s,!1)},e.options.isScrollingResetDelay),createHandler=t=>()=>{s=a[e.options.horizontal?`scrollX`:`scrollY`],c(),i(s,t)},l=createHandler(!0),u=createHandler(!1);a.addEventListener(`scroll`,l,n);let d=e.options.useScrollendEvent&&r;return d&&a.addEventListener(`scrollend`,u,n),()=>{a.removeEventListener(`scroll`,l),d&&a.removeEventListener(`scrollend`,u)}},measureElement=(e,t,n)=>{if(t?.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[n.options.horizontal?`inlineSize`:`blockSize`])}return e[n.options.horizontal?`offsetWidth`:`offsetHeight`]},windowScroll=(e,{adjustments:t=0,behavior:n},r)=>{var i,a;let o=e+t;(a=(i=r.scrollElement)?.scrollTo)==null||a.call(i,{[r.options.horizontal?`left`:`top`]:o,behavior:n})},elementScroll=(e,{adjustments:t=0,behavior:n},r)=>{var i,a;let o=e+t;(a=(i=r.scrollElement)?.scrollTo)==null||a.call(i,{[r.options.horizontal?`left`:`top`]:o,behavior:n})},Virtualizer=class{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;return((e=this.targetWindow?.performance)?.now)?.call(e)??Date.now()},this.observer=(()=>{let e=null,get=()=>e||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let run=()=>{let t=e.target,n=this.indexFromElement(t);if(!t.isConnected){this.observer.unobserve(t);return}this.shouldMeasureDuringScroll(n)&&this.resizeItem(n,this.options.measureElement(t,e,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(run):run()})}));return{disconnect:()=>{var t;(t=get())==null||t.disconnect(),e=null},observe:e=>get()?.observe(e,{box:`border-box`}),unobserve:e=>get()?.unobserve(e)}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([t,n])=>{n===void 0&&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,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,n;(n=(t=this.options).onChange)==null||n.call(t,this,e)},this.maybeNotify=t.memo(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,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(),this.rafId!=null&&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=()=>{let e=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==e){if(this.cleanup(),!e){this.maybeNotify();return}this.scrollElement=e,this.scrollElement&&`ownerDocument`in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=this.scrollElement?.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??(typeof this.options.initialOffset==`function`?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{let n=new Map,r=new Map;for(let i=t-1;i>=0;i--){let t=e[i];if(n.has(t.lane))continue;let a=r.get(t.lane);if(a==null||t.end>a.end?r.set(t.lane,t):t.end<a.end&&n.set(t.lane,!0),n.size===this.options.lanes)break}return r.size===this.options.lanes?Array.from(r.values()).sort((e,t)=>e.end===t.end?e.index-t.index:e.end-t.end)[0]:void 0},this.getMeasurementOptions=t.memo(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode],(e,t,n,r,i,a,o)=>(this.prevLanes!==void 0&&this.prevLanes!==a&&(this.lanesChangedFlag=!0),this.prevLanes=a,this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o}),{key:!1}),this.getMeasurements=t.memo(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o},s)=>{if(!i)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>e)for(let 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=[]),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let c=this.lanesSettling?0:this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[],this.lanesSettling&&this.measurementsCache.length===e&&(this.lanesSettling=!1);let l=this.measurementsCache.slice(0,c),u=Array(a).fill(void 0);for(let e=0;e<c;e++){let t=l[e];t&&(u[t.lane]=e)}for(let i=c;i<e;i++){let e=r(i),a=this.laneAssignments.get(i),c,d,f=o===`estimate`||s.has(e);if(a!==void 0&&this.options.lanes>1){c=a;let e=u[c],r=e===void 0?void 0:l[e];d=r?r.end+this.options.gap:t+n}else{let e=this.options.lanes===1?l[i-1]:this.getFurthestMeasurement(l,i);d=e?e.end+this.options.gap:t+n,c=e?e.lane:i%this.options.lanes,this.options.lanes>1&&f&&this.laneAssignments.set(i,c)}let p=s.get(e),m=typeof p==`number`?p:this.options.estimateSize(i),h=d+m;l[i]={index:i,start:d,size:m,end:h,key:e,lane:c},u[c]=i}return this.measurementsCache=l,l},{key:!1,debug:()=>this.options.debug}),this.calculateRange=t.memo(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,n,r)=>this.range=e.length>0&&t>0?calculateRange({measurements:e,outerSize:t,scrollOffset:n,lanes:r}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=t.memo(()=>{let e=null,t=null,n=this.calculateRange();return n&&(e=n.startIndex,t=n.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,n,r,i)=>r===null||i===null?[]:e({startIndex:r,endIndex:i,overscan:t,count:n}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=e=>{if(!this.scrollState||this.scrollState.behavior!==`smooth`)return!0;let t=this.scrollState.index??this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)?.index;if(t!==void 0&&this.range){let n=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),r=Math.max(0,t-n),i=Math.min(this.options.count-1,t+n);return e>=r&&e<=i}return!0},this.measureElement=e=>{if(!e){this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))});return}let t=this.indexFromElement(e),n=this.options.getItemKey(t),r=this.elementsCache.get(n);r!==e&&(r&&this.observer.unobserve(r),this.observer.observe(e),this.elementsCache.set(n,e)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(t)&&this.resizeItem(t,this.options.measureElement(e,void 0,this))},this.resizeItem=(e,t)=>{let n=this.measurementsCache[e];if(!n)return;let r=t-(this.itemSizeCache.get(n.key)??n.size);r!==0&&(this.scrollState?.behavior!==`smooth`&&(this.shouldAdjustScrollPositionOnItemSizeChange===void 0?n.start<this.getScrollOffset()+this.scrollAdjustments:this.shouldAdjustScrollPositionOnItemSizeChange(n,r,this))&&this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=r,behavior:void 0}),this.pendingMeasuredCacheIndexes.push(n.index),this.itemSizeCache=new Map(this.itemSizeCache.set(n.key,t)),this.notify(!1))},this.getVirtualItems=t.memo(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let n=[];for(let r=0,i=e.length;r<i;r++){let i=t[e[r]];n.push(i)}return n},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{let n=this.getMeasurements();if(n.length!==0)return t.notUndefined(n[findNearestBinarySearch(0,n.length-1,e=>t.notUndefined(n[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;{let e=this.scrollElement.document.documentElement;return this.options.horizontal?e.scrollWidth-this.scrollElement.innerWidth:e.scrollHeight-this.scrollElement.innerHeight}},this.getOffsetForAlignment=(e,t,n=0)=>{if(!this.scrollElement)return 0;let r=this.getSize(),i=this.getScrollOffset();t===`auto`&&(t=e>=i+r?`end`:`start`),t===`center`?e+=(n-r)/2:t===`end`&&(e-=r);let a=this.getMaxScrollOffset();return Math.max(Math.min(a,e),0)},this.getOffsetForIndex=(e,t=`auto`)=>{e=Math.max(0,Math.min(e,this.options.count-1));let n=this.getSize(),r=this.getScrollOffset(),i=this.measurementsCache[e];if(!i)return;if(t===`auto`)if(i.end>=r+n-this.options.scrollPaddingEnd)t=`end`;else if(i.start<=r+this.options.scrollPaddingStart)t=`start`;else return[r,t];if(t===`end`&&e===this.options.count-1)return[this.getMaxScrollOffset(),t];let a=t===`end`?i.end+this.options.scrollPaddingEnd:i.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(a,t,i.size),t]},this.scrollToOffset=(e,{align:t=`start`,behavior:n=`auto`}={})=>{let r=this.getOffsetForAlignment(e,t),i=this.now();this.scrollState={index:null,align:t,behavior:n,startedAt:i,lastTargetOffset:r,stableFrames:0},this._scrollToOffset(r,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollToIndex=(e,{align:t=`auto`,behavior:n=`auto`}={})=>{e=Math.max(0,Math.min(e,this.options.count-1));let r=this.getOffsetForIndex(e,t);if(!r)return;let[i,a]=r,o=this.now();this.scrollState={index:e,align:a,behavior:n,startedAt:o,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollBy=(e,{behavior:t=`auto`}={})=>{let n=this.getScrollOffset()+e,r=this.now();this.scrollState={index:null,align:`start`,behavior:t,startedAt:r,lastTargetOffset:n,stableFrames:0},this._scrollToOffset(n,{adjustments:void 0,behavior:t}),this.scheduleScrollReconcile()},this.getTotalSize=()=>{let e=this.getMeasurements(),t;if(e.length===0)t=this.options.paddingStart;else if(this.options.lanes===1)t=e[e.length-1]?.end??0;else{let n=Array(this.options.lanes).fill(null),r=e.length-1;for(;r>=0&&n.some(e=>e===null);){let t=e[r];n[t.lane]===null&&(n[t.lane]=t.end),r--}t=Math.max(...n.filter(e=>e!==null))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:t,behavior:n})=>{this.options.scrollToFn(e,{behavior:n,adjustments:t},this)},this.measure=()=>{this.itemSizeCache=new Map,this.laneAssignments=new Map,this.notify(!1)},this.setOptions(e)}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId??=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()})}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}let e=this.scrollState.index==null?void 0:this.getOffsetForIndex(this.scrollState.index,this.scrollState.align),n=e?e[0]:this.scrollState.lastTargetOffset,r=n!==this.scrollState.lastTargetOffset;if(!r&&t.approxEqual(n,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=1){this.scrollState=null;return}}else this.scrollState.stableFrames=0,r&&(this.scrollState.lastTargetOffset=n,this.scrollState.behavior=`auto`,this._scrollToOffset(n,{adjustments:void 0,behavior:`auto`}));this.scheduleScrollReconcile()}},findNearestBinarySearch=(e,t,n,r)=>{for(;e<=t;){let i=(e+t)/2|0,a=n(i);if(a<r)e=i+1;else if(a>r)t=i-1;else return i}return e>0?e-1:0};function calculateRange({measurements:e,outerSize:t,scrollOffset:n,lanes:r}){let i=e.length-1,getOffset=t=>e[t].start;if(e.length<=r)return{startIndex:0,endIndex:i};let a=findNearestBinarySearch(0,i,getOffset,n),o=a;if(r===1)for(;o<i&&e[o].end<n+t;)o++;else if(r>1){let s=Array(r).fill(0);for(;o<i&&s.some(e=>e<n+t);){let t=e[o];s[t.lane]=t.end,o++}let c=Array(r).fill(n+t);for(;a>=0&&c.some(e=>e>=n);){let t=e[a];c[t.lane]=t.start,a--}a=Math.max(0,a-a%r),o=Math.min(i,o+(r-1-o%r))}return{startIndex:a,endIndex:o}}e.approxEqual=t.approxEqual,e.debounce=t.debounce,e.memo=t.memo,e.notUndefined=t.notUndefined,e.Virtualizer=Virtualizer,e.defaultKeyExtractor=defaultKeyExtractor,e.defaultRangeExtractor=defaultRangeExtractor,e.elementScroll=elementScroll,e.measureElement=measureElement,e.observeElementOffset=observeElementOffset,e.observeElementRect=observeElementRect,e.observeWindowOffset=observeWindowOffset,e.observeWindowRect=observeWindowRect,e.windowScroll=windowScroll})),c=__commonJSMin((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=globalThis.React,n=globalThis.ReactDOM,r=s();function _interopNamespaceDefault(e){let t=Object.create(null,{[Symbol.toStringTag]:{value:`Module`}});if(e){for(let n in e)if(n!=="default"){let r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}var i=_interopNamespaceDefault(t),a=typeof document<`u`?i.useLayoutEffect:i.useEffect;function useVirtualizerBase({useFlushSync:e=!0,...t}){let o=i.useReducer(()=>({}),{})[1],s={...t,onChange:(r,i)=>{var a;e&&i?n.flushSync(o):o(),(a=t.onChange)==null||a.call(t,r,i)}},[c]=i.useState(()=>new r.Virtualizer(s));return c.setOptions(s),a(()=>c._didMount(),[]),a(()=>c._willUpdate()),c}function useVirtualizer(e){return useVirtualizerBase({observeElementRect:r.observeElementRect,observeElementOffset:r.observeElementOffset,scrollToFn:r.elementScroll,...e})}function useWindowVirtualizer(e){return useVirtualizerBase({getScrollElement:()=>typeof document<`u`?window:null,observeElementRect:r.observeWindowRect,observeElementOffset:r.observeWindowOffset,scrollToFn:r.windowScroll,initialOffset:()=>typeof document<`u`?window.scrollY:0,...e})}e.useVirtualizer=useVirtualizer,e.useWindowVirtualizer=useWindowVirtualizer,Object.keys(r).forEach(t=>{t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:()=>r[t]})})})),l=__toESM(__commonJSMin(((e,t)=>{var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,__export=(e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})},__copyProps=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let c of a(t))!s.call(e,c)&&c!==n&&r(e,c,{get:()=>t[c],enumerable:!(o=i(t,c))||o.enumerable});return e},__toESM=(e,t,i)=>(i=e==null?{}:n(o(e)),__copyProps(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e)),__toCommonJS=e=>__copyProps(r({},`__esModule`,{value:!0}),e),l={};__export(l,{ClassManagerPanelEmbedded:()=>ClassManagerPanelEmbedded,GLOBAL_CLASSES_URI:()=>Y,addDocumentClasses:()=>addDocumentClasses,createLabelsForClasses:()=>createLabelsForClasses,init:()=>init,loadExistingClasses:()=>loadExistingClasses,trackGlobalClasses:()=>trackGlobalClasses}),t.exports=__toCommonJS(l);var u=__toESM(globalThis.React),d=globalThis.React,f=globalThis.elementorV2.editorCurrentUser,p=globalThis.elementorV2.editorDocuments,m=globalThis.elementorV2.editorPanels,h=globalThis.elementorV2.editorUi,ee=globalThis.elementorV2.query,te=globalThis.elementorV2.store,g=globalThis.elementorV2.ui,_=globalThis.wp.i18n,ne=globalThis.elementorV2.store,re=globalThis.elementorV2.editorStyles,v=globalThis.elementorV2.store,ie=globalThis.elementorV2.utils,ae=(0,ie.createError)({code:`global_class_not_found`,message:`Global class not found.`}),oe=(0,ie.createError)({code:`global_class_label_already_exists`,message:`Class with this name already exists.`}),se=(0,ie.createError)({code:`global_class_tracking_error`,message:`Error tracking global classes event.`});function createLink({value:e,next:t,prev:n}){return{value:e,prev:n||null,next:t||null}}var y=class _SnapshotHistory{constructor(e){this.namespace=e}static registry={};static get(e){return _SnapshotHistory.registry[e]||(_SnapshotHistory.registry[e]=new _SnapshotHistory(e)),_SnapshotHistory.registry[e]}first=null;current=null;transform(e){return JSON.parse(JSON.stringify(e))}reset(){this.first=this.current=null}prev(){return!this.current||this.current===this.first?null:(this.current=this.current.prev,this.current?.value||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;let 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?null:(this.current=this.current.next,this.current.value)}}.get(`global-classes`),ce={data:{items:{},order:[]},classLabels:{},initialData:{frontend:{items:{},order:[]},preview:{items:{},order:[]}},isDirty:!1},b=`globalClasses`,x=(0,v.__createSlice)({name:b,initialState:ce,reducers:{load(e,{payload:{frontend:t,preview:n,classLabels:r}}){e.initialData.frontend=t,e.initialData.preview=n,e.data=n,e.classLabels=r,e.isDirty=!1},add(e,{payload:t}){y.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}){y.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}){y.next(e.data),e.data.order=t,e.isDirty=!0},update(e,{payload:t}){let n=e.classLabels[t.style.id];y.next(e.data);let r={...e.data.items[t.style.id],...t.style};n&&t.style.label&&t.style.label!==n&&(e.classLabels[t.style.id]=t.style.label),e.data.items[t.style.id]=r,e.isDirty=!0},updateMultiple(e,{payload:t}){y.next(e.data),Object.entries(t).forEach(([t,{modified:n}])=>{e.data.items[t].label=n,e.classLabels[t]=n}),e.isDirty=!1},updateProps(e,{payload:t}){let n=e.data.items[t.id];if(!n)throw new ae({context:{styleId:t.id}});y.next(e.data);let r=(0,re.getVariantByMeta)(n,t.meta),i=(`custom_css`in t?t.custom_css:r?.custom_css)??null;if(i=i?.raw?i:null,r){let e=JSON.parse(JSON.stringify(t.props));(t.mode??`merge`)===`replace`?r.props=e:r.props=mergeProps(JSON.parse(JSON.stringify(r.props)),e),r.custom_css=i,n.variants=getNonEmptyVariants(n)}else n.variants.push({meta:t.meta,props:t.props,custom_css:i});e.isDirty=!0},reset(e,{payload:{context:t}}){t===`frontend`&&(y.reset(),e.initialData.frontend=e.data,e.isDirty=!1),e.initialData.preview=e.data},undo(e){y.isLast()&&y.next(e.data);let t=y.prev();t?(e.data=t,e.isDirty=!0):e.data=e.initialData.preview},resetToInitialState(e,{payload:{context:t}}){y.reset(),e.data=e.initialData[t],e.isDirty=!1},redo(e){let t=y.next();y.isLast()&&y.prev(),t&&(e.data=t,e.isDirty=!0)},mergeExistingClasses(e,{payload:{preview:t,frontend:n}}){Object.entries(t).forEach(([t,r])=>{let i=n[t];r!=null&&(t in e.data.items||(e.data.items[t]=r),t in e.initialData.frontend.items||(e.initialData.frontend.items[t]=i),t in e.initialData.preview.items||(e.initialData.preview.items[t]=r),t in e.classLabels||(e.classLabels[t]=r.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)=>{let n=Array.isArray(e)?{}:e;return Object.entries(t).forEach(([e,t])=>{t==null?delete n[e]:n[e]=t}),n},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[b].data,selectClassLabels=e=>e[b].classLabels,selectFrontendInitialData=e=>e[b].initialData.frontend,selectPreviewInitialData=e=>e[b].initialData.preview,le=(0,v.__createSelector)(selectData,({order:e})=>e),ue=(0,v.__createSelector)(selectData,({items:e})=>e),selectIsDirty=e=>e[b].isDirty,de=(0,v.__createSelector)(selectData,selectClassLabels,({items:e,order:t},n)=>t.map(t=>{let r=e[t];if(r)return r;let i=n[t];return i===void 0?null:placeholderDefinition(t,i)}).filter(e=>e!==null)),selectClass=(e,t)=>e[b].data.items[t]??null,fe=(0,v.__createSelector)(selectData,({items:e})=>Object.values(e).filter(e=>(e.variants?.length??0)===0)),selectIsClassFetched=(e,t)=>!!e[b].initialData.preview.items[t]||!!e[b].initialData.frontend.items[t]||!1,useClassesOrder=()=>(0,ne.__useSelector)(le),pe=globalThis.elementorV2.store,useDirtyState=()=>(0,pe.__useSelector)(selectIsDirty),me=globalThis.React,he=__toESM(globalThis.React),ge=globalThis.React,_e=globalThis.elementorV2.utils,ve=(0,ge.createContext)(void 0),ye={empty:!1,onThisPage:!1,unused:!1},SearchAndFilterProvider=({children:e})=>{let[t,n]=(0,ge.useState)(ye),getInitialSearchValue=()=>{let e=localStorage.getItem(`elementor-global-classes-search`);return e?(localStorage.removeItem(`elementor-global-classes-search`),e):``},{debouncedValue:r,inputValue:i,handleChange:a}=(0,_e.useDebounceState)({delay:300,initialValue:getInitialSearchValue()}),onClearSearch=()=>{a(``)},onClearFilter=()=>{n(ye)};return he.createElement(ve.Provider,{value:{search:{debouncedValue:r,inputValue:i,handleChange:a,onClearSearch},filters:{filters:t,setFilters:n,onClearFilter}}},e)},useSearchAndFilters=()=>{let e=(0,ge.useContext)(ve);if(!e)throw Error(`useSearchContext must be used within a SearchContextProvider`);return e},be=globalThis.React,xe=globalThis.elementorV2.editorDocuments,Se=globalThis.elementorV2.query,Ce=globalThis.elementorV2.httpClient,we=`/global-classes`,Te=`elementor/v1`,Ee=`${we}/usage`,De=`${we}/post`,Oe=`${we}/styles`;function saveGlobalClasses(e,t){return(0,Ce.httpService)().put(`${Te}${we}`,t,{params:{context:e}})}var S={usage:()=>(0,Ce.httpService)().get(`${Te}${Ee}`),all:(e=`preview`)=>(0,Ce.httpService)().get(`${Te}${we}`,{params:{context:e}}),getStylesForPost:(e,t=`preview`)=>(0,Ce.httpService)().get(`${Te}${De}`,{params:{context:t,post_id:e}}),getStylesByIds:(e,t=`preview`)=>(0,Ce.httpService)().get(`${Te}${Oe}`,{params:{context:t,ids:e.join(`,`)}}),publish:e=>saveGlobalClasses(`frontend`,e),saveDraft:e=>saveGlobalClasses(`preview`,e)},ke={DUPLICATED_LABEL:`DUPLICATED_LABEL`},transformData=e=>Object.entries(e).reduce((e,[t,n])=>(e[t]={content:n||[],total:n.reduce((e,t)=>e+(t?.total||0),0)},e),{}),fetchCssClassUsage=async()=>transformData((await S.usage())?.data?.data||{}),Ae=`css-classes-usage`,useCssClassUsage=()=>(0,Se.useQuery)({queryKey:[Ae],queryFn:fetchCssClassUsage,refetchOnMount:!1,refetchOnWindowFocus:!0}),je=globalThis.elementorV2.store,useEmptyCssClass=()=>(0,je.__useSelector)(fe),useAllCssClassesIDs=()=>{let e=(0,je.__useSelector)(ue);return Object.keys(e)},findCssClassKeysByPageID=(e,t)=>{let n=[];for(let r in e)e[r].content.forEach(e=>{+e.pageId===t&&n.push(r)});return n},getUnusedClasses=(e,t)=>{let n=new Set(e);return t.filter(e=>!n.has(e))},Me={empty:[],onThisPage:[],unused:[]},useFilteredCssClassUsage=()=>{let e=(0,xe.__useActiveDocument)(),t=useEmptyCssClass(),{data:n,isLoading:r}=useCssClassUsage(),i=useAllCssClassesIDs(),a=(0,be.useMemo)(()=>t.map(({id:e})=>e),[t]),o=(0,be.useMemo)(()=>!n||!e?[]:findCssClassKeysByPageID(n,e.id),[n,e]),s=(0,be.useMemo)(()=>n?getUnusedClasses(Object.keys(n),i):[],[n,i]);return r||!n||!e?Me:{onThisPage:o,unused:s,empty:a}},useFilters=()=>{let{filters:{filters:e}}=useSearchAndFilters(),t=useFilteredCssClassUsage();return(0,me.useMemo)(()=>{let n=Object.entries(e).filter(([,e])=>e);return n.length===0?null:n.reduce((e,[n],r)=>{let i=t[n]||[];return r===0?i:e.filter(e=>i.includes(e))},[])},[e,t])},Ne=globalThis.elementorV2.store,Pe=globalThis.elementorV2.editorDocuments,Fe=globalThis.elementorV2.store;function createLabelsForClasses(e){return Object.fromEntries(e.map(e=>[e.id,e.label]))}function styleDefinitionsMapWithoutNull(e){return Object.fromEntries(Object.entries(e).filter(e=>e[1]!==null))}function resetGlobalClassesState(e,t){(0,Fe.__dispatch)(x.actions.load({preview:{items:{},order:e},frontend:{items:{},order:e},classLabels:t}))}async function loadCurrentDocumentClasses(){let[e,t]=await Promise.all([S.all(`preview`),S.all(`frontend`)]),n=e.data.data,r=t.data.data,i=createLabelsForClasses(n),a=n.map(e=>e.id),o=r.map(e=>e.id);resetGlobalClassesState(a,i);let s=(0,Pe.getCurrentDocument)()?.id;if(!s)return;let[c,l]=await Promise.all([S.getStylesForPost(s,`preview`),S.getStylesForPost(s,`frontend`)]),u=styleDefinitionsMapWithoutNull(c.data.data),d=styleDefinitionsMapWithoutNull(l.data.data);(0,Fe.__dispatch)(x.actions.load({preview:{items:u,order:a},frontend:{items:d,order:o},classLabels:i}))}async function addDocumentClasses(e){let[t,n]=await Promise.all([S.getStylesForPost(e,`preview`),S.getStylesForPost(e,`frontend`)]),r=styleDefinitionsMapWithoutNull(t.data.data),i=styleDefinitionsMapWithoutNull(n.data.data);(0,Fe.__dispatch)(x.actions.mergeExistingClasses({preview:r,frontend:i}))}var Ie=null,Le=new Set;async function loadExistingClasses(e){let t=ue((0,Ne.__getState)()),n=e.filter(e=>!(e in t));if(n.length!==0){if(n.forEach(e=>Le.add(e)),Ie)return await Ie,loadExistingClasses(e);Ie=fetchAndMergeClasses();try{await Ie}finally{Ie=null}}}async function fetchAndMergeClasses(){let e=Array.from(Le);if(Le.clear(),e.length===0)return;let[t,n]=await Promise.all([S.getStylesByIds(e,`preview`),S.getStylesByIds(e,`frontend`)]),r=styleDefinitionsMapWithoutNull(t.data.data),i=styleDefinitionsMapWithoutNull(n.data.data);(0,Ne.__dispatch)(x.actions.mergeExistingClasses({preview:r,frontend:i}))}var Re=__toESM(globalThis.React),ze=globalThis.elementorV2.editorUi,Be=globalThis.elementorV2.store,Ve=globalThis.elementorV2.utils,C=__toESM(globalThis.React),He=globalThis.elementorV2.editorUi,Ue=globalThis.elementorV2.icons,w=globalThis.elementorV2.ui,T=globalThis.wp.i18n,We=`DUP_`,DuplicateLabelDialog=({modifiedLabels:e,onApprove:t})=>{let handleButtonClick=()=>{localStorage.setItem(`elementor-global-classes-search`,We),t?.(),(0,He.closeDialog)()};return C.createElement(C.Fragment,null,C.createElement(w.DialogHeader,{logo:!1},C.createElement(w.Box,{display:`flex`,alignItems:`center`,gap:1},C.createElement(w.Icon,{color:`secondary`},C.createElement(Ue.InfoCircleFilledIcon,{fontSize:`medium`})),C.createElement(w.Typography,{variant:`subtitle1`},(0,T.__)(`We've published your page and updated class names.`,`elementor`)))),C.createElement(w.DialogContent,null,C.createElement(w.Stack,{spacing:2,direction:`column`},C.createElement(w.Typography,{variant:`body2`},(0,T.__)(`Some new classes used the same names as existing ones. To prevent conflicts, we added the prefix`,`elementor`),C.createElement(`strong`,null,` `,We)),C.createElement(w.Box,null,C.createElement(w.Box,{sx:{width:`100%`,display:`flex`,gap:2,alignItems:`flex-start`}},C.createElement(w.Typography,{variant:`subtitle2`,sx:{fontWeight:`bold`,flex:1,flexShrink:1,flexGrow:1,minWidth:0}},(0,T.__)(`Before`,`elementor`)),C.createElement(w.Typography,{variant:`subtitle2`,sx:{minWidth:`200px`,fontWeight:`bold`,flexShrink:0,flexGrow:0,width:`200px`,maxWidth:`200px`}},(0,T.__)(`After`,`elementor`))),C.createElement(w.Divider,{sx:{mt:.5,mb:.5}}),C.createElement(w.Stack,{direction:`column`,gap:.5,sx:{pb:2}},Object.values(e).map(({original:e,modified:t},n)=>C.createElement(w.Box,{key:n,sx:{width:`100%`,display:`flex`,gap:2,alignItems:`flex-start`}},C.createElement(w.Box,{sx:{flex:1,flexShrink:1,flexGrow:1,minWidth:0}},C.createElement(He.EllipsisWithTooltip,{title:e},C.createElement(w.Typography,{variant:`body2`,sx:{color:`text.secondary`}},e))),C.createElement(w.Box,{sx:{minWidth:`200px`,flexShrink:0,flexGrow:0,width:`200px`,maxWidth:`200px`}},C.createElement(He.EllipsisWithTooltip,{title:t},C.createElement(w.Typography,{variant:`body2`,sx:{color:`text.primary`}},t)))))),C.createElement(w.Box,null,C.createElement(w.Alert,{severity:`info`,size:`small`,color:`secondary`},C.createElement(`strong`,null,(0,T.__)(`Your designs and classes are safe.`,`elementor`)),(0,T.__)(`Only the prefixes were added. Find them in Class Manager by searching`,`elementor`),C.createElement(`strong`,null,We)))))),C.createElement(w.DialogActions,null,C.createElement(w.Button,{color:`secondary`,variant:`text`,onClick:handleButtonClick},(0,T.__)(`Go to Class Manager`,`elementor`)),C.createElement(w.Button,{color:`secondary`,variant:`contained`,onClick:He.closeDialog},(0,T.__)(`Done`,`elementor`))))},Ge=globalThis.elementorV2.events,Ke=globalThis.elementorV2.store,trackGlobalClasses=async e=>{let{runAction:t}=e,n=await getSanitizedData(e);n&&(track(n),n.event===`classCreated`&&`classId`in n&&fireClassApplied(n.classId)),t?.()},fireClassApplied=async e=>{track({event:`classApplied`,classId:e,...await getAppliedInfo(e),totalInstancesAfterApply:1})},getSanitizedData=async e=>{switch(e.event){case`classApplied`:if(`classId`in e&&e.classId){let t=await getAppliedInfo(e.classId);return{...e,...t}}break;case`classRemoved`:if(`classId`in e&&e.classId){let t=getRemovedInfo(e.classId);return{...e,...t}}break;case`classDeleted`:if(`classId`in e&&e.classId){let t=await trackDeleteClass(e.classId);return{...e,...t}}break;case`classCreated`:return`source`in e&&e.source!==`created`&&`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`:{let t=getCssClass(e.classId).label,n=e.action===`sync`;return{...e,interaction_type:`click`,target_type:t,target_name:n?`sync_to_v3`:`unsync_to_v3`,interaction_result:n?`class_is_synced_to_V3`:`class_is_unsynced_from_V3`,target_location:`widget_panel`,location_l1:`class_manager`,interaction_description:n?`user_synced_${t}_to_v3`:`user_unsync_${t}_from_v3`}}case`classSyncToV3PopupClick`:{let t=e.action===`sync`;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=>{let{dispatchEvent:t,config:n}=(0,Ge.getMixpanel)();if(!n?.names?.global_classes?.[e.event]){console.error(`Global class tracking event not found`,{event:e.event});return}let r=n.names.global_classes[e.event],{event:i,...a}=e;try{t?.(r,{event:i,...a})}catch(e){throw new se({cause:e})}},extractCssClassData=e=>({classTitle:getCssClass(e).label}),getCssClass=e=>{let t=(0,Ke.__getState)(),n=selectClass(t,e);if(n)return n;let r=selectClassLabels(t)[e];if(r!==void 0)return placeholderDefinition(e,r);throw Error(`CSS class with ID ${e} not found`)},trackDeleteClass=async e=>{let t=getCssClass(e).label;return{totalInstances:await getTotalInstancesByCssClassID(e),classTitle:t}},getTotalInstancesByCssClassID=async e=>(await fetchCssClassUsage())[e]?.total??1,getAppliedInfo=async e=>{let{classTitle:t}=extractCssClassData(e);return{classTitle:t,totalInstancesAfterApply:await getTotalInstancesByCssClassID(e)+1}},getRemovedInfo=e=>{let{classTitle:t}=extractCssClassData(e);return{classTitle:t}};async function saveGlobalClasses2({context:e,onApprove:t}){let n=selectData((0,Be.__getState)()),r=e===`preview`?S.saveDraft:S.publish,i=calculateChanges(n,(e===`preview`?selectPreviewInitialData:selectFrontendInitialData)((0,Be.__getState)())),a=[...i.added,...i.modified],o=await r({items:Object.fromEntries(a.map(e=>[e,n.items[e]]).filter(([,e])=>e)),order:n.order,changes:i});(0,Be.__dispatch)(x.actions.reset({context:e})),window.dispatchEvent(new CustomEvent(`classes:updated`,{detail:{context:e}})),o?.data?.data?.code===ke.DUPLICATED_LABEL&&((0,Be.__dispatch)(x.actions.updateMultiple(o.data.data.modifiedLabels)),trackGlobalClasses({event:`classPublishConflict`,numOfConflicts:Object.keys(o.data.data.modifiedLabels).length}),(0,ze.openDialog)({component:Re.createElement(DuplicateLabelDialog,{modifiedLabels:o.data.data.modifiedLabels||[],onApprove:t})}))}function calculateChanges(e,t){let n=Object.keys(e.items),r=Object.keys(t.items),{order:i}=e,{order:a}=t,o=new Set(i),s=a.filter(e=>!o.has(e)),c=i.join(`;`)!==a.join(`;`);return{added:n.filter(e=>!r.includes(e)),deleted:s,modified:n.filter(n=>n in t.items&&(0,Ve.hash)(e.items[n])!==(0,Ve.hash)(t.items[n])),order:c}}var qe=__toESM(globalThis.React),Je=globalThis.elementorV2.ui,Ye=globalThis.wp.i18n,Xe=__toESM(globalThis.React),Ze=globalThis.elementorV2.icons,Qe=globalThis.elementorV2.ui,ClearIconButton=({tooltipText:e,sx:t,trigger:n})=>{let{filters:{onClearFilter:r}}=useSearchAndFilters(),handleClearFilters=()=>{r(n),trackGlobalClasses({event:`classManagerFilterCleared`,trigger:n})};return Xe.createElement(Qe.Tooltip,{title:e,placement:`top`,disableInteractive:!0},Xe.createElement(Qe.Box,null,Xe.createElement($e,{"aria-label":e,size:`tiny`,onClick:handleClearFilters,sx:t},Xe.createElement(Ze.BrushBigIcon,{fontSize:`tiny`}))))},$e=(0,Qe.styled)(Qe.IconButton)(({theme:e})=>({"&.Mui-disabled":{pointerEvents:`auto`,"&:hover":{color:e.palette.action.disabled}}})),E=__toESM(globalThis.React),D=globalThis.elementorV2.ui,et=globalThis.wp.i18n,tt={unused:(0,et.__)(`Unused`,`elementor`),empty:(0,et.__)(`Empty`,`elementor`),onThisPage:(0,et.__)(`On this page`,`elementor`)},FilterList=()=>{let{filters:{filters:e,setFilters:t}}=useSearchAndFilters(),n=useFilteredCssClassUsage(),handleOnClick=n=>{t(e=>({...e,[n]:!e[n]})),trackGlobalClasses({event:`classManagerFilterUsed`,action:e[n]?`remove`:`apply`,type:n,trigger:`menu`})};return E.createElement(D.MenuList,null,E.createElement(D.MenuItem,{onClick:()=>handleOnClick(`unused`)},E.createElement(LabeledCheckbox,{label:tt.unused,checked:e.unused,suffix:E.createElement(D.Chip,{size:`tiny`,sx:{ml:`auto`},label:n.unused.length})})),E.createElement(D.MenuItem,{onClick:()=>handleOnClick(`empty`)},E.createElement(LabeledCheckbox,{label:tt.empty,checked:e.empty,suffix:E.createElement(D.Chip,{size:`tiny`,sx:{ml:`auto`},label:n.empty.length})})),E.createElement(D.MenuItem,{onClick:()=>handleOnClick(`onThisPage`)},E.createElement(LabeledCheckbox,{label:tt.onThisPage,checked:e.onThisPage,suffix:E.createElement(D.Chip,{size:`tiny`,sx:{ml:`auto`},label:n.onThisPage.length})})))},LabeledCheckbox=({label:e,suffix:t,checked:n})=>E.createElement(D.Stack,{direction:`row`,alignItems:`center`,gap:.5,flex:1},E.createElement(D.Checkbox,{size:`small`,checked:n,sx:{padding:0,color:`text.tertiary`,"&.Mui-checked":{color:`text.tertiary`}}}),E.createElement(D.Typography,{variant:`caption`,sx:{color:`text.secondary`}},e),t),ActiveFilters=()=>{let{filters:{filters:e,setFilters:t}}=useSearchAndFilters(),handleRemove=e=>{t(t=>({...t,[e]:!1})),trackGlobalClasses({event:`classManagerFilterUsed`,action:`remove`,type:e,trigger:`header`})},n=Object.keys(e).filter(t=>e[t]),r=n.length>0;return qe.createElement(Je.Stack,{direction:`row`,alignItems:`center`,justifyContent:`space-between`},qe.createElement(Je.Stack,{direction:`row`,gap:.5,alignItems:`center`,flexWrap:`wrap`},n.map(e=>qe.createElement(Je.Chip,{key:e,label:tt[e],onDelete:()=>handleRemove(e),sx:nt,size:`tiny`}))),r&&qe.createElement(ClearIconButton,{trigger:`header`,tooltipText:(0,Ye.__)(`Clear Filters`,`elementor`),sx:{margin:`0 0 auto auto`}}))},nt={"& .MuiChip-deleteIcon":{display:`none`,transition:`opacity 0.2s`},"&:hover .MuiChip-deleteIcon":{display:`block`}},O=__toESM(globalThis.React),rt=globalThis.React,it=globalThis.elementorV2.editorUi,at=globalThis.elementorV2.icons,k=globalThis.elementorV2.ui,ot=globalThis.wp.i18n,CssClassFilter=()=>{let{filters:{filters:e}}=useSearchAndFilters(),t=(0,k.usePopupState)({variant:`popover`,disableAutoFocus:!0});(0,rt.useEffect)(()=>{t.isOpen&&trackGlobalClasses({event:`classManagerFiltersOpened`})},[t.isOpen]);let n=Object.values(e).some(e=>e);return O.createElement(O.Fragment,null,O.createElement(k.Tooltip,{title:(0,ot.__)(`Filters`,`elementor`),placement:`top`},O.createElement(k.ToggleButton,{value:`filter`,size:`tiny`,selected:t.isOpen,...(0,k.bindToggle)(t)},O.createElement(at.FilterIcon,{fontSize:`tiny`}))),O.createElement(k.Popover,{sx:{maxWidth:`344px`},anchorOrigin:{vertical:`top`,horizontal:`right`},transformOrigin:{vertical:`top`,horizontal:-21},...(0,k.bindPopover)(t)},O.createElement(it.PopoverHeader,{actions:n?[O.createElement(ClearIconButton,{trigger:`menu`,key:`clear-all-button`,tooltipText:(0,ot.__)(`Clear all`,`elementor`)})]:[],onClose:t.close,title:(0,ot.__)(`Filters`,`elementor`),icon:O.createElement(at.FilterIcon,{fontSize:`tiny`})}),O.createElement(k.Divider,{sx:{borderWidth:`1px 0 0 0`}}),O.createElement(it.PopoverBody,{width:344,height:125},O.createElement(FilterList,null))))},st=__toESM(globalThis.React),ct=globalThis.elementorV2.icons,lt=globalThis.elementorV2.ui,ut=globalThis.wp.i18n,ClassManagerSearch=()=>{let{search:{inputValue:e,handleChange:t}}=useSearchAndFilters();return st.createElement(lt.Stack,{direction:`row`,gap:.5,sx:{width:`100%`}},st.createElement(lt.Box,{sx:{flexGrow:1}},st.createElement(lt.TextField,{role:`search`,fullWidth:!0,size:`tiny`,value:e,onFocus:()=>{trackGlobalClasses({event:`classManagerSearched`})},placeholder:(0,ut.__)(`Search`,`elementor`),onChange:e=>t(e.target.value),InputProps:{startAdornment:st.createElement(lt.InputAdornment,{position:`start`},st.createElement(ct.SearchIcon,{fontSize:`tiny`}))}})))},A=__toESM(globalThis.React),dt=globalThis.React,ft=globalThis.elementorV2.editorCurrentUser,pt=globalThis.elementorV2.editorUi,mt=globalThis.elementorV2.ui,ht=globalThis.wp.i18n,gt=`global-class-manager`,ClassManagerIntroduction=()=>{let[e,t]=(0,ft.useSuppressedMessage)(gt),[n,r]=(0,dt.useState)(!e);return A.createElement(pt.IntroductionModal,{open:n,title:(0,ht.__)(`Class Manager`,`elementor`),handleClose:e=>{e||t(),r(!1)}},A.createElement(mt.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(mt.Box,{p:3},A.createElement(mt.Typography,{variant:`body2`},(0,ht.__)(`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(mt.Typography,{variant:`body2`},(0,ht.__)(`Remember, when editing an item within a specific class, any changes you make will apply across all elements in that class.`,`elementor`))),_t=globalThis.elementorV2.store,vt=!1,deleteClass=e=>{trackGlobalClasses({event:`classDeleted`,classId:e,runAction:()=>{(0,_t.__dispatch)(x.actions.delete(e)),vt=!0}})},onDelete=async()=>{vt=!1},hasDeletedItems=()=>vt,yt=__toESM(globalThis.React),bt=globalThis.elementorV2.icons,FlippedColorSwatchIcon=({sx:e,...t})=>yt.createElement(bt.ColorSwatchIcon,{sx:{transform:`rotate(90deg)`,...e},...t}),j=__toESM(globalThis.React),xt=globalThis.React,St=globalThis.elementorV2.store,Ct=globalThis.elementorV2.ui,wt=c(),Tt=globalThis.wp.i18n,Et=globalThis.elementorV2.store,useOrderedClasses=()=>(0,Et.__useSelector)(de),M=__toESM(globalThis.React),Dt=globalThis.React,Ot=globalThis.elementorV2.editorStylesRepository,N=globalThis.elementorV2.editorUi,kt=globalThis.elementorV2.icons,P=globalThis.elementorV2.ui,At=globalThis.wp.i18n,F=__toESM(globalThis.React),jt=globalThis.elementorV2.editorDocuments,Mt=globalThis.elementorV2.editorUi,I=globalThis.elementorV2.icons,L=globalThis.elementorV2.ui,R=globalThis.wp.i18n,Nt={total:0,content:[]},useCssClassUsageByID=e=>{let{data:t,...n}=useCssClassUsage(),r=t?.[e]??Nt;return{...n,data:r}},Pt={"wp-post":{label:(0,R.__)(`Post`,`elementor`),icon:F.createElement(I.PostTypeIcon,{fontSize:`inherit`})},"wp-page":{label:(0,R.__)(`Page`,`elementor`),icon:F.createElement(I.PagesIcon,{fontSize:`inherit`})},popup:{label:(0,R.__)(`Popup`,`elementor`),icon:F.createElement(I.PopupTemplateIcon,{fontSize:`inherit`})},header:{label:(0,R.__)(`Header`,`elementor`),icon:F.createElement(I.HeaderTemplateIcon,{fontSize:`inherit`})},footer:{label:(0,R.__)(`Footer`,`elementor`),icon:F.createElement(I.FooterTemplateIcon,{fontSize:`inherit`})}},CssClassUsagePopover=({cssClassID:e,onClose:t})=>{let{data:n}=useCssClassUsageByID(e),r=(0,jt.__useOpenDocumentInNewTab)(),i=n?.content.map(({title:e,elements:t,pageId:n,type:r})=>({type:`item`,value:n,label:e,secondaryText:t.length.toString(),docType:r}))??[],handleSelect=t=>{r(+t),trackGlobalClasses({event:`classUsageLocate`,classId:e})};return F.createElement(F.Fragment,null,F.createElement(Mt.PopoverHeader,{icon:F.createElement(I.CurrentLocationIcon,{fontSize:`tiny`}),title:F.createElement(L.Stack,{flexDirection:`row`,gap:1,alignItems:`center`},F.createElement(L.Box,{"aria-label":`header-title`},(0,R.__)(`Locator`,`elementor`)),F.createElement(L.Box,null,F.createElement(L.Chip,{sx:{lineHeight:1},size:`tiny`,label:n.total}))),onClose:t}),F.createElement(L.Divider,null),F.createElement(Mt.PopoverBody,{width:300},F.createElement(Mt.PopoverMenuList,{onSelect:handleSelect,items:i,onClose:()=>{},menuListTemplate:Ft,menuItemContentTemplate:e=>F.createElement(L.Stack,{flexDirection:`row`,flex:1,alignItems:`center`},F.createElement(L.Box,{display:`flex`,sx:{pr:1}},F.createElement(L.Tooltip,{disableInteractive:!0,title:Pt?.[e.docType]?.label??e.docType,placement:`top`},F.createElement(L.Icon,{fontSize:`small`},Pt?.[e.docType]?.icon||F.createElement(I.PagesIcon,{fontSize:`inherit`})))),F.createElement(L.Box,{sx:{pr:.5,maxWidth:`173px`},display:`flex`},F.createElement(Mt.EllipsisWithTooltip,{title:e.label,as:L.Typography,variant:`caption`,maxWidth:`173px`,sx:{lineHeight:1}})),F.createElement(I.ExternalLinkIcon,{className:`hover-only-icon`,fontSize:`tiny`}),F.createElement(L.Chip,{sx:{ml:`auto`},size:`tiny`,label:e.secondaryText}))})))},Ft=(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`})),z=__toESM(globalThis.React),It=globalThis.elementorV2.editorUi,Lt=globalThis.elementorV2.icons,B=globalThis.elementorV2.ui,Rt=globalThis.wp.i18n,CssClassUsageTrigger=({id:e,onClick:t})=>{let{data:{total:n},isLoading:r}=useCssClassUsageByID(e),i=(0,B.usePopupState)({variant:`popover`,popupId:`css-class-usage-popover`});if(r)return null;let a=n===0?InfoAlertMessage:TooltipWrapper,handleMouseEnter=()=>{trackGlobalClasses({event:`classUsageHovered`,classId:e,usage:n})},handleClick=r=>{n!==0&&((0,B.bindTrigger)(i).onClick(r),t(e),trackGlobalClasses({event:`classUsageClicked`,classId:e}))};return z.createElement(z.Fragment,null,z.createElement(B.Box,{position:`relative`,onMouseEnter:handleMouseEnter},z.createElement(a,{total:n},z.createElement(zt,{disabled:n===0,size:`tiny`,...(0,B.bindTrigger)(i),onClick:handleClick},z.createElement(Lt.CurrentLocationIcon,{fontSize:`tiny`})))),z.createElement(B.Box,null,z.createElement(B.Popover,{anchorOrigin:{vertical:`center`,horizontal:`right`},transformOrigin:{vertical:15,horizontal:-50},...(0,B.bindPopover)(i),onClose:()=>{(0,B.bindPopover)(i).onClose(),t(``)}},z.createElement(CssClassUsagePopover,{onClose:i.close,"aria-label":`css-class-usage-popover`,cssClassID:e}))))},zt=(0,B.styled)(B.IconButton)(({theme:e})=>({"&.Mui-disabled":{pointerEvents:`auto`,"&:hover":{color:e.palette.action.disabled}},height:`22px`,width:`22px`})),TooltipWrapper=({children:e,total:t})=>z.createElement(B.Tooltip,{disableInteractive:!0,placement:`top`,title:`${(0,Rt.__)(`Show {{number}} {{locations}}`,`elementor`).replace(`{{number}}`,t.toString()).replace(`{{locations}}`,t===1?(0,Rt.__)(`location`,`elementor`):(0,Rt.__)(`locations`,`elementor`))}`},z.createElement(`span`,null,e)),InfoAlertMessage=({children:e})=>z.createElement(B.Infotip,{disableInteractive:!0,placement:`top`,color:`secondary`,content:z.createElement(It.InfoAlert,{sx:{mt:1}},(0,Rt.__)(`This class isn’t being used yet.`,`elementor`))},z.createElement(`span`,null,e)),V=__toESM(globalThis.React),Bt=globalThis.React,Vt=globalThis.elementorV2.editorUi,Ht=globalThis.elementorV2.ui,Ut=globalThis.wp.i18n,Wt=(0,Bt.createContext)(null),DeleteConfirmationProvider=({children:e})=>{let[t,n]=(0,Bt.useState)(null),openDialog2=e=>{n(e)},closeDialog2=()=>{n(null)};return V.createElement(Wt.Provider,{value:{openDialog:openDialog2,closeDialog:closeDialog2,dialogProps:t}},e,!!t&&V.createElement(DeleteClassDialog,{...t}))},DeleteClassDialog=({label:e,id:t})=>{let{closeDialog:n}=useDeleteConfirmation(),{data:{total:r,content:i}}=useCssClassUsageByID(t),handleConfirm=()=>{n(),deleteClass(t)},a=r&&i.length?(0,Ut.__)(`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`,r.toString()).replace(`%2`,i.length.toString()):(0,Ut.__)(`Will permanently remove it from your project and may affect the design across all elements using it. This action cannot be undone.`,`elementor`);return V.createElement(Vt.ConfirmationDialog,{open:!0,onClose:n},V.createElement(Vt.ConfirmationDialog.Title,null,(0,Ut.__)(`Delete this class?`,`elementor`)),V.createElement(Vt.ConfirmationDialog.Content,null,V.createElement(Vt.ConfirmationDialog.ContentText,null,(0,Ut.__)(`Deleting`,`elementor`),V.createElement(Ht.Typography,{variant:`subtitle2`,component:`span`},`\xA0`,e,`\xA0`),a)),V.createElement(Vt.ConfirmationDialog.Actions,{onClose:n,onConfirm:handleConfirm}))},useDeleteConfirmation=()=>{let e=(0,Bt.useContext)(Wt);if(!e)throw Error(`useDeleteConfirmation must be used within a DeleteConfirmationProvider`);return e},Gt=__toESM(globalThis.React),Kt=globalThis.elementorV2.icons,qt=globalThis.elementorV2.ui,SortableProvider=e=>Gt.createElement(qt.UnstableSortableProvider,{restrictAxis:!0,variant:`static`,dragPlaceholderStyle:{visibility:`hidden`},...e}),SortableTrigger=e=>Gt.createElement(Jt,{...e,role:`button`,className:`class-item-sortable-trigger`,"aria-label":`sort`},Gt.createElement(Kt.GripVerticalIcon,{fontSize:`tiny`})),SortableItem=({children:e,id:t,style:n,...r})=>Gt.createElement(qt.UnstableSortableItem,{...r,id:t,render:({itemProps:t,isDragged:r,triggerProps:i,itemStyle:a,triggerStyle:o,dropIndicationStyle:s,showDropIndication:c,isDragOverlay:l,isDragPlaceholder:u})=>Gt.createElement(qt.Box,{...t,style:{...a,...l?null:n},component:`li`,role:`listitem`,sx:{backgroundColor:l?`background.paper`:void 0}},e({itemProps:t,isDragged:r,triggerProps:i,itemStyle:a,triggerStyle:o,isDragPlaceholder:u}),c&&Gt.createElement(Yt,{style:s}))}),Jt=(0,qt.styled)(`div`)(({theme:e})=>({position:`absolute`,left:0,top:`50%`,transform:`translate( -${e.spacing(1.5)}, -50% )`,color:e.palette.action.active})),Yt=(0,qt.styled)(qt.Box)` | |
| 4 | + color: hsl(${Math.max(0,Math.min(120-120*r,120))}deg 100% 31%);`,n?.key)}return n?.onChange&&!(a&&n.skipInitialOnChange)&&n.onChange(i),a=!1,i}return memoizedFunction.updateDeps=e=>{r=e},memoizedFunction}function notUndefined(e,t){if(e===void 0)throw Error(`Unexpected undefined${t?`: ${t}`:``}`);return e}var approxEqual=(e,t)=>Math.abs(e-t)<1.01,debounce=(e,t,n)=>{let r;return function(...i){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,i),n)}};e.approxEqual=approxEqual,e.debounce=debounce,e.memo=memo,e.notUndefined=notUndefined})),s=__commonJSMin((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=o(),getRect=e=>{let{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},defaultKeyExtractor=e=>e,defaultRangeExtractor=e=>{let t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1),r=[];for(let e=t;e<=n;e++)r.push(e);return r},observeElementRect=(e,t)=>{let n=e.scrollElement;if(!n)return;let r=e.targetWindow;if(!r)return;let handler=e=>{let{width:n,height:r}=e;t({width:Math.round(n),height:Math.round(r)})};if(handler(getRect(n)),!r.ResizeObserver)return()=>{};let i=new r.ResizeObserver(t=>{let run=()=>{let e=t[0];if(e?.borderBoxSize){let t=e.borderBoxSize[0];if(t){handler({width:t.inlineSize,height:t.blockSize});return}}handler(getRect(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(run):run()});return i.observe(n,{box:`border-box`}),()=>{i.unobserve(n)}},n={passive:!0},observeWindowRect=(e,t)=>{let r=e.scrollElement;if(!r)return;let handler=()=>{t({width:r.innerWidth,height:r.innerHeight})};return handler(),r.addEventListener(`resize`,handler,n),()=>{r.removeEventListener(`resize`,handler)}},r=typeof window>`u`||`onscrollend`in window,observeElementOffset=(e,i)=>{let a=e.scrollElement;if(!a)return;let o=e.targetWindow;if(!o)return;let s=0,c=e.options.useScrollendEvent&&r?()=>void 0:t.debounce(o,()=>{i(s,!1)},e.options.isScrollingResetDelay),createHandler=t=>()=>{let{horizontal:n,isRtl:r}=e.options;s=n?a.scrollLeft*(r&&-1||1):a.scrollTop,c(),i(s,t)},l=createHandler(!0),u=createHandler(!1);a.addEventListener(`scroll`,l,n);let d=e.options.useScrollendEvent&&r;return d&&a.addEventListener(`scrollend`,u,n),()=>{a.removeEventListener(`scroll`,l),d&&a.removeEventListener(`scrollend`,u)}},observeWindowOffset=(e,i)=>{let a=e.scrollElement;if(!a)return;let o=e.targetWindow;if(!o)return;let s=0,c=e.options.useScrollendEvent&&r?()=>void 0:t.debounce(o,()=>{i(s,!1)},e.options.isScrollingResetDelay),createHandler=t=>()=>{s=a[e.options.horizontal?`scrollX`:`scrollY`],c(),i(s,t)},l=createHandler(!0),u=createHandler(!1);a.addEventListener(`scroll`,l,n);let d=e.options.useScrollendEvent&&r;return d&&a.addEventListener(`scrollend`,u,n),()=>{a.removeEventListener(`scroll`,l),d&&a.removeEventListener(`scrollend`,u)}},measureElement=(e,t,n)=>{if(t?.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[n.options.horizontal?`inlineSize`:`blockSize`])}return e[n.options.horizontal?`offsetWidth`:`offsetHeight`]},windowScroll=(e,{adjustments:t=0,behavior:n},r)=>{var i,a;let o=e+t;(a=(i=r.scrollElement)?.scrollTo)==null||a.call(i,{[r.options.horizontal?`left`:`top`]:o,behavior:n})},elementScroll=(e,{adjustments:t=0,behavior:n},r)=>{var i,a;let o=e+t;(a=(i=r.scrollElement)?.scrollTo)==null||a.call(i,{[r.options.horizontal?`left`:`top`]:o,behavior:n})},Virtualizer=class{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;return((e=this.targetWindow?.performance)?.now)?.call(e)??Date.now()},this.observer=(()=>{let e=null,get=()=>e||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let run=()=>{let t=e.target,n=this.indexFromElement(t);if(!t.isConnected){this.observer.unobserve(t);return}this.shouldMeasureDuringScroll(n)&&this.resizeItem(n,this.options.measureElement(t,e,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(run):run()})}));return{disconnect:()=>{var t;(t=get())==null||t.disconnect(),e=null},observe:e=>get()?.observe(e,{box:`border-box`}),unobserve:e=>get()?.unobserve(e)}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([t,n])=>{n===void 0&&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,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,n;(n=(t=this.options).onChange)==null||n.call(t,this,e)},this.maybeNotify=t.memo(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,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(),this.rafId!=null&&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=()=>{let e=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==e){if(this.cleanup(),!e){this.maybeNotify();return}this.scrollElement=e,this.scrollElement&&`ownerDocument`in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=this.scrollElement?.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??(typeof this.options.initialOffset==`function`?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{let n=new Map,r=new Map;for(let i=t-1;i>=0;i--){let t=e[i];if(n.has(t.lane))continue;let a=r.get(t.lane);if(a==null||t.end>a.end?r.set(t.lane,t):t.end<a.end&&n.set(t.lane,!0),n.size===this.options.lanes)break}return r.size===this.options.lanes?Array.from(r.values()).sort((e,t)=>e.end===t.end?e.index-t.index:e.end-t.end)[0]:void 0},this.getMeasurementOptions=t.memo(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode],(e,t,n,r,i,a,o)=>(this.prevLanes!==void 0&&this.prevLanes!==a&&(this.lanesChangedFlag=!0),this.prevLanes=a,this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o}),{key:!1}),this.getMeasurements=t.memo(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o},s)=>{if(!i)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>e)for(let 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=[]),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let c=this.lanesSettling?0:this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[],this.lanesSettling&&this.measurementsCache.length===e&&(this.lanesSettling=!1);let l=this.measurementsCache.slice(0,c),u=Array(a).fill(void 0);for(let e=0;e<c;e++){let t=l[e];t&&(u[t.lane]=e)}for(let i=c;i<e;i++){let e=r(i),a=this.laneAssignments.get(i),c,d,f=o===`estimate`||s.has(e);if(a!==void 0&&this.options.lanes>1){c=a;let e=u[c],r=e===void 0?void 0:l[e];d=r?r.end+this.options.gap:t+n}else{let e=this.options.lanes===1?l[i-1]:this.getFurthestMeasurement(l,i);d=e?e.end+this.options.gap:t+n,c=e?e.lane:i%this.options.lanes,this.options.lanes>1&&f&&this.laneAssignments.set(i,c)}let p=s.get(e),m=typeof p==`number`?p:this.options.estimateSize(i),h=d+m;l[i]={index:i,start:d,size:m,end:h,key:e,lane:c},u[c]=i}return this.measurementsCache=l,l},{key:!1,debug:()=>this.options.debug}),this.calculateRange=t.memo(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,n,r)=>this.range=e.length>0&&t>0?calculateRange({measurements:e,outerSize:t,scrollOffset:n,lanes:r}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=t.memo(()=>{let e=null,t=null,n=this.calculateRange();return n&&(e=n.startIndex,t=n.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,n,r,i)=>r===null||i===null?[]:e({startIndex:r,endIndex:i,overscan:t,count:n}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=e=>{if(!this.scrollState||this.scrollState.behavior!==`smooth`)return!0;let t=this.scrollState.index??this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)?.index;if(t!==void 0&&this.range){let n=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),r=Math.max(0,t-n),i=Math.min(this.options.count-1,t+n);return e>=r&&e<=i}return!0},this.measureElement=e=>{if(!e){this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))});return}let t=this.indexFromElement(e),n=this.options.getItemKey(t),r=this.elementsCache.get(n);r!==e&&(r&&this.observer.unobserve(r),this.observer.observe(e),this.elementsCache.set(n,e)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(t)&&this.resizeItem(t,this.options.measureElement(e,void 0,this))},this.resizeItem=(e,t)=>{let n=this.measurementsCache[e];if(!n)return;let r=t-(this.itemSizeCache.get(n.key)??n.size);r!==0&&(this.scrollState?.behavior!==`smooth`&&(this.shouldAdjustScrollPositionOnItemSizeChange===void 0?n.start<this.getScrollOffset()+this.scrollAdjustments:this.shouldAdjustScrollPositionOnItemSizeChange(n,r,this))&&this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=r,behavior:void 0}),this.pendingMeasuredCacheIndexes.push(n.index),this.itemSizeCache=new Map(this.itemSizeCache.set(n.key,t)),this.notify(!1))},this.getVirtualItems=t.memo(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let n=[];for(let r=0,i=e.length;r<i;r++){let i=t[e[r]];n.push(i)}return n},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{let n=this.getMeasurements();if(n.length!==0)return t.notUndefined(n[findNearestBinarySearch(0,n.length-1,e=>t.notUndefined(n[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;{let e=this.scrollElement.document.documentElement;return this.options.horizontal?e.scrollWidth-this.scrollElement.innerWidth:e.scrollHeight-this.scrollElement.innerHeight}},this.getOffsetForAlignment=(e,t,n=0)=>{if(!this.scrollElement)return 0;let r=this.getSize(),i=this.getScrollOffset();t===`auto`&&(t=e>=i+r?`end`:`start`),t===`center`?e+=(n-r)/2:t===`end`&&(e-=r);let a=this.getMaxScrollOffset();return Math.max(Math.min(a,e),0)},this.getOffsetForIndex=(e,t=`auto`)=>{e=Math.max(0,Math.min(e,this.options.count-1));let n=this.getSize(),r=this.getScrollOffset(),i=this.measurementsCache[e];if(!i)return;if(t===`auto`)if(i.end>=r+n-this.options.scrollPaddingEnd)t=`end`;else if(i.start<=r+this.options.scrollPaddingStart)t=`start`;else return[r,t];if(t===`end`&&e===this.options.count-1)return[this.getMaxScrollOffset(),t];let a=t===`end`?i.end+this.options.scrollPaddingEnd:i.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(a,t,i.size),t]},this.scrollToOffset=(e,{align:t=`start`,behavior:n=`auto`}={})=>{let r=this.getOffsetForAlignment(e,t),i=this.now();this.scrollState={index:null,align:t,behavior:n,startedAt:i,lastTargetOffset:r,stableFrames:0},this._scrollToOffset(r,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollToIndex=(e,{align:t=`auto`,behavior:n=`auto`}={})=>{e=Math.max(0,Math.min(e,this.options.count-1));let r=this.getOffsetForIndex(e,t);if(!r)return;let[i,a]=r,o=this.now();this.scrollState={index:e,align:a,behavior:n,startedAt:o,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollBy=(e,{behavior:t=`auto`}={})=>{let n=this.getScrollOffset()+e,r=this.now();this.scrollState={index:null,align:`start`,behavior:t,startedAt:r,lastTargetOffset:n,stableFrames:0},this._scrollToOffset(n,{adjustments:void 0,behavior:t}),this.scheduleScrollReconcile()},this.getTotalSize=()=>{let e=this.getMeasurements(),t;if(e.length===0)t=this.options.paddingStart;else if(this.options.lanes===1)t=e[e.length-1]?.end??0;else{let n=Array(this.options.lanes).fill(null),r=e.length-1;for(;r>=0&&n.some(e=>e===null);){let t=e[r];n[t.lane]===null&&(n[t.lane]=t.end),r--}t=Math.max(...n.filter(e=>e!==null))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:t,behavior:n})=>{this.options.scrollToFn(e,{behavior:n,adjustments:t},this)},this.measure=()=>{this.itemSizeCache=new Map,this.laneAssignments=new Map,this.notify(!1)},this.setOptions(e)}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId??=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()})}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}let e=this.scrollState.index==null?void 0:this.getOffsetForIndex(this.scrollState.index,this.scrollState.align),n=e?e[0]:this.scrollState.lastTargetOffset,r=n!==this.scrollState.lastTargetOffset;if(!r&&t.approxEqual(n,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=1){this.scrollState=null;return}}else this.scrollState.stableFrames=0,r&&(this.scrollState.lastTargetOffset=n,this.scrollState.behavior=`auto`,this._scrollToOffset(n,{adjustments:void 0,behavior:`auto`}));this.scheduleScrollReconcile()}},findNearestBinarySearch=(e,t,n,r)=>{for(;e<=t;){let i=(e+t)/2|0,a=n(i);if(a<r)e=i+1;else if(a>r)t=i-1;else return i}return e>0?e-1:0};function calculateRange({measurements:e,outerSize:t,scrollOffset:n,lanes:r}){let i=e.length-1,getOffset=t=>e[t].start;if(e.length<=r)return{startIndex:0,endIndex:i};let a=findNearestBinarySearch(0,i,getOffset,n),o=a;if(r===1)for(;o<i&&e[o].end<n+t;)o++;else if(r>1){let s=Array(r).fill(0);for(;o<i&&s.some(e=>e<n+t);){let t=e[o];s[t.lane]=t.end,o++}let c=Array(r).fill(n+t);for(;a>=0&&c.some(e=>e>=n);){let t=e[a];c[t.lane]=t.start,a--}a=Math.max(0,a-a%r),o=Math.min(i,o+(r-1-o%r))}return{startIndex:a,endIndex:o}}e.approxEqual=t.approxEqual,e.debounce=t.debounce,e.memo=t.memo,e.notUndefined=t.notUndefined,e.Virtualizer=Virtualizer,e.defaultKeyExtractor=defaultKeyExtractor,e.defaultRangeExtractor=defaultRangeExtractor,e.elementScroll=elementScroll,e.measureElement=measureElement,e.observeElementOffset=observeElementOffset,e.observeElementRect=observeElementRect,e.observeWindowOffset=observeWindowOffset,e.observeWindowRect=observeWindowRect,e.windowScroll=windowScroll})),c=__commonJSMin((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=globalThis.React,n=globalThis.ReactDOM,r=s();function _interopNamespaceDefault(e){let t=Object.create(null,{[Symbol.toStringTag]:{value:`Module`}});if(e){for(let n in e)if(n!=="default"){let r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}var i=_interopNamespaceDefault(t),a=typeof document<`u`?i.useLayoutEffect:i.useEffect;function useVirtualizerBase({useFlushSync:e=!0,...t}){let o=i.useReducer(()=>({}),{})[1],s={...t,onChange:(r,i)=>{var a;e&&i?n.flushSync(o):o(),(a=t.onChange)==null||a.call(t,r,i)}},[c]=i.useState(()=>new r.Virtualizer(s));return c.setOptions(s),a(()=>c._didMount(),[]),a(()=>c._willUpdate()),c}function useVirtualizer(e){return useVirtualizerBase({observeElementRect:r.observeElementRect,observeElementOffset:r.observeElementOffset,scrollToFn:r.elementScroll,...e})}function useWindowVirtualizer(e){return useVirtualizerBase({getScrollElement:()=>typeof document<`u`?window:null,observeElementRect:r.observeWindowRect,observeElementOffset:r.observeWindowOffset,scrollToFn:r.windowScroll,initialOffset:()=>typeof document<`u`?window.scrollY:0,...e})}e.useVirtualizer=useVirtualizer,e.useWindowVirtualizer=useWindowVirtualizer,Object.keys(r).forEach(t=>{t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:()=>r[t]})})})),l=__toESM(__commonJSMin(((e,t)=>{var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,__export=(e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})},__copyProps=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let c of a(t))!s.call(e,c)&&c!==n&&r(e,c,{get:()=>t[c],enumerable:!(o=i(t,c))||o.enumerable});return e},__toESM=(e,t,i)=>(i=e==null?{}:n(o(e)),__copyProps(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e)),__toCommonJS=e=>__copyProps(r({},`__esModule`,{value:!0}),e),l={};__export(l,{ClassManagerPanelEmbedded:()=>ClassManagerPanelEmbedded,GLOBAL_CLASSES_URI:()=>Y,addDocumentClasses:()=>addDocumentClasses,createLabelsForClasses:()=>createLabelsForClasses,init:()=>init,loadExistingClasses:()=>loadExistingClasses,trackGlobalClasses:()=>trackGlobalClasses}),t.exports=__toCommonJS(l);var u=__toESM(globalThis.React),d=globalThis.React,f=globalThis.elementorV2.editorCurrentUser,p=globalThis.elementorV2.editorDocuments,m=globalThis.elementorV2.editorPanels,h=globalThis.elementorV2.editorUi,ee=globalThis.elementorV2.query,te=globalThis.elementorV2.store,g=globalThis.elementorV2.ui,_=globalThis.wp.i18n,ne=globalThis.elementorV2.store,re=globalThis.elementorV2.editorStyles,v=globalThis.elementorV2.store,ie=globalThis.elementorV2.utils,ae=(0,ie.createError)({code:`global_class_not_found`,message:`Global class not found.`}),oe=(0,ie.createError)({code:`global_class_label_already_exists`,message:`Class with this name already exists.`}),se=(0,ie.createError)({code:`global_class_tracking_error`,message:`Error tracking global classes event.`});function createLink({value:e,next:t,prev:n}){return{value:e,prev:n||null,next:t||null}}var y=class _SnapshotHistory{constructor(e){this.namespace=e}static registry={};static get(e){return _SnapshotHistory.registry[e]||(_SnapshotHistory.registry[e]=new _SnapshotHistory(e)),_SnapshotHistory.registry[e]}first=null;current=null;transform(e){return JSON.parse(JSON.stringify(e))}reset(){this.first=this.current=null}prev(){return!this.current||this.current===this.first?null:(this.current=this.current.prev,this.current?.value||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;let 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?null:(this.current=this.current.next,this.current.value)}}.get(`global-classes`),ce={data:{items:{},order:[]},classLabels:{},initialData:{frontend:{items:{},order:[]},preview:{items:{},order:[]}},isDirty:!1},b=`globalClasses`,x=(0,v.__createSlice)({name:b,initialState:ce,reducers:{load(e,{payload:{frontend:t,preview:n,classLabels:r}}){e.initialData.frontend=t,e.initialData.preview=n,e.data=n,e.classLabels=r,e.isDirty=!1},add(e,{payload:t}){y.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}){y.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}){y.next(e.data),e.data.order=t,e.isDirty=!0},update(e,{payload:t}){let n=e.classLabels[t.style.id];y.next(e.data);let r={...e.data.items[t.style.id],...t.style};n&&t.style.label&&t.style.label!==n&&(e.classLabels[t.style.id]=t.style.label),e.data.items[t.style.id]=r,e.isDirty=!0},updateMultiple(e,{payload:t}){y.next(e.data),Object.entries(t).forEach(([t,{modified:n}])=>{e.data.items[t].label=n,e.classLabels[t]=n}),e.isDirty=!1},updateProps(e,{payload:t}){let n=e.data.items[t.id];if(!n)throw new ae({context:{styleId:t.id}});y.next(e.data);let r=(0,re.getVariantByMeta)(n,t.meta),i=(`custom_css`in t?t.custom_css:r?.custom_css)??null;if(i=i?.raw?i:null,r){let e=JSON.parse(JSON.stringify(t.props));(t.mode??`merge`)===`replace`?r.props=e:r.props=mergeProps(JSON.parse(JSON.stringify(r.props)),e),r.custom_css=i,n.variants=getNonEmptyVariants(n)}else n.variants.push({meta:t.meta,props:t.props,custom_css:i});e.isDirty=!0},reset(e,{payload:{context:t}}){t===`frontend`&&(y.reset(),e.initialData.frontend=e.data,e.isDirty=!1),e.initialData.preview=e.data},undo(e){y.isLast()&&y.next(e.data);let t=y.prev();t?(e.data=t,e.isDirty=!0):e.data=e.initialData.preview},resetToInitialState(e,{payload:{context:t}}){y.reset(),e.data=e.initialData[t],e.isDirty=!1},redo(e){let t=y.next();y.isLast()&&y.prev(),t&&(e.data=t,e.isDirty=!0)},mergeExistingClasses(e,{payload:{preview:t,frontend:n}}){Object.entries(t).forEach(([t,r])=>{let i=n[t];r!=null&&(t in e.data.items||(e.data.items[t]=r),i&&!(t in e.initialData.frontend.items)&&(e.initialData.frontend.items[t]=i),t in e.initialData.preview.items||(e.initialData.preview.items[t]=r),t in e.classLabels||(e.classLabels[t]=r.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)=>{let n=Array.isArray(e)?{}:e;return Object.entries(t).forEach(([e,t])=>{t==null?delete n[e]:n[e]=t}),n},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[b].data,selectClassLabels=e=>e[b].classLabels,selectFrontendInitialData=e=>e[b].initialData.frontend,selectPreviewInitialData=e=>e[b].initialData.preview,le=(0,v.__createSelector)(selectData,({order:e})=>e),ue=(0,v.__createSelector)(selectData,({items:e})=>e),selectIsDirty=e=>e[b].isDirty,de=(0,v.__createSelector)(selectData,selectClassLabels,({items:e,order:t},n)=>t.map(t=>{let r=e[t];if(r)return r;let i=n[t];return i===void 0?null:placeholderDefinition(t,i)}).filter(e=>e!==null)),selectClass=(e,t)=>e[b].data.items[t]??null,fe=(0,v.__createSelector)(selectData,({items:e})=>Object.values(e).filter(e=>(e.variants?.length??0)===0)),selectIsClassFetched=(e,t)=>!!e[b].initialData.preview.items[t]||!!e[b].initialData.frontend.items[t]||!1,useClassesOrder=()=>(0,ne.__useSelector)(le),pe=globalThis.elementorV2.store,useDirtyState=()=>(0,pe.__useSelector)(selectIsDirty),me=globalThis.React,he=__toESM(globalThis.React),ge=globalThis.React,_e=globalThis.elementorV2.utils,ve=(0,ge.createContext)(void 0),ye={empty:!1,onThisPage:!1,unused:!1},SearchAndFilterProvider=({children:e})=>{let[t,n]=(0,ge.useState)(ye),getInitialSearchValue=()=>{let e=localStorage.getItem(`elementor-global-classes-search`);return e?(localStorage.removeItem(`elementor-global-classes-search`),e):``},{debouncedValue:r,inputValue:i,handleChange:a}=(0,_e.useDebounceState)({delay:300,initialValue:getInitialSearchValue()}),onClearSearch=()=>{a(``)},onClearFilter=()=>{n(ye)};return he.createElement(ve.Provider,{value:{search:{debouncedValue:r,inputValue:i,handleChange:a,onClearSearch},filters:{filters:t,setFilters:n,onClearFilter}}},e)},useSearchAndFilters=()=>{let e=(0,ge.useContext)(ve);if(!e)throw Error(`useSearchContext must be used within a SearchContextProvider`);return e},be=globalThis.React,xe=globalThis.elementorV2.editorDocuments,Se=globalThis.elementorV2.query,Ce=globalThis.elementorV2.httpClient,we=`/global-classes`,Te=`elementor/v1`,Ee=`${we}/usage`,De=`${we}/post`,Oe=`${we}/styles`;function saveGlobalClasses(e,t){return(0,Ce.httpService)().put(`${Te}${we}`,t,{params:{context:e}})}var S={usage:()=>(0,Ce.httpService)().get(`${Te}${Ee}`),all:(e=`preview`)=>(0,Ce.httpService)().get(`${Te}${we}`,{params:{context:e}}),getStylesForPost:(e,t=`preview`)=>(0,Ce.httpService)().get(`${Te}${De}`,{params:{context:t,post_id:e}}),getStylesByIds:(e,t=`preview`)=>(0,Ce.httpService)().get(`${Te}${Oe}`,{params:{context:t,ids:e.join(`,`)}}),publish:e=>saveGlobalClasses(`frontend`,e),saveDraft:e=>saveGlobalClasses(`preview`,e)},ke={DUPLICATED_LABEL:`DUPLICATED_LABEL`},transformData=e=>Object.entries(e).reduce((e,[t,n])=>(e[t]={content:n||[],total:n.reduce((e,t)=>e+(t?.total||0),0)},e),{}),fetchCssClassUsage=async()=>transformData((await S.usage())?.data?.data||{}),Ae=`css-classes-usage`,useCssClassUsage=()=>(0,Se.useQuery)({queryKey:[Ae],queryFn:fetchCssClassUsage,refetchOnMount:!1,refetchOnWindowFocus:!0}),je=globalThis.elementorV2.store,useEmptyCssClass=()=>(0,je.__useSelector)(fe),useAllCssClassesIDs=()=>{let e=(0,je.__useSelector)(ue);return Object.keys(e)},findCssClassKeysByPageID=(e,t)=>{let n=[];for(let r in e)e[r].content.forEach(e=>{+e.pageId===t&&n.push(r)});return n},getUnusedClasses=(e,t)=>{let n=new Set(e);return t.filter(e=>!n.has(e))},Me={empty:[],onThisPage:[],unused:[]},useFilteredCssClassUsage=()=>{let e=(0,xe.__useActiveDocument)(),t=useEmptyCssClass(),{data:n,isLoading:r}=useCssClassUsage(),i=useAllCssClassesIDs(),a=(0,be.useMemo)(()=>t.map(({id:e})=>e),[t]),o=(0,be.useMemo)(()=>!n||!e?[]:findCssClassKeysByPageID(n,e.id),[n,e]),s=(0,be.useMemo)(()=>n?getUnusedClasses(Object.keys(n),i):[],[n,i]);return r||!n||!e?Me:{onThisPage:o,unused:s,empty:a}},useFilters=()=>{let{filters:{filters:e}}=useSearchAndFilters(),t=useFilteredCssClassUsage();return(0,me.useMemo)(()=>{let n=Object.entries(e).filter(([,e])=>e);return n.length===0?null:n.reduce((e,[n],r)=>{let i=t[n]||[];return r===0?i:e.filter(e=>i.includes(e))},[])},[e,t])},Ne=globalThis.elementorV2.store,Pe=globalThis.elementorV2.editorDocuments,Fe=globalThis.elementorV2.store;function createLabelsForClasses(e){return Object.fromEntries(e.map(e=>[e.id,e.label]))}function styleDefinitionsMapWithoutNull(e){return Object.fromEntries(Object.entries(e).filter(e=>e[1]!==null))}function resetGlobalClassesState(e,t){(0,Fe.__dispatch)(x.actions.load({preview:{items:{},order:e},frontend:{items:{},order:e},classLabels:t}))}async function loadCurrentDocumentClasses(){let[e,t]=await Promise.all([S.all(`preview`),S.all(`frontend`)]),n=e.data.data,r=t.data.data,i=createLabelsForClasses(n),a=n.map(e=>e.id),o=r.map(e=>e.id);resetGlobalClassesState(a,i);let s=(0,Pe.getCurrentDocument)()?.id;if(!s)return;let[c,l]=await Promise.all([S.getStylesForPost(s,`preview`),S.getStylesForPost(s,`frontend`)]),u=styleDefinitionsMapWithoutNull(c.data.data),d=styleDefinitionsMapWithoutNull(l.data.data);(0,Fe.__dispatch)(x.actions.load({preview:{items:u,order:a},frontend:{items:d,order:o},classLabels:i}))}async function addDocumentClasses(e){let[t,n]=await Promise.all([S.getStylesForPost(e,`preview`),S.getStylesForPost(e,`frontend`)]),r=styleDefinitionsMapWithoutNull(t.data.data),i=styleDefinitionsMapWithoutNull(n.data.data);(0,Fe.__dispatch)(x.actions.mergeExistingClasses({preview:r,frontend:i}))}var Ie=null,Le=new Set;async function loadExistingClasses(e){let t=ue((0,Ne.__getState)()),n=e.filter(e=>!(e in t));if(n.length!==0){if(n.forEach(e=>Le.add(e)),Ie)return await Ie,loadExistingClasses(e);Ie=fetchAndMergeClasses();try{await Ie}finally{Ie=null}}}async function fetchAndMergeClasses(){let e=Array.from(Le);if(Le.clear(),e.length===0)return;let[t,n]=await Promise.all([S.getStylesByIds(e,`preview`),S.getStylesByIds(e,`frontend`)]),r=styleDefinitionsMapWithoutNull(t.data.data),i=styleDefinitionsMapWithoutNull(n.data.data);(0,Ne.__dispatch)(x.actions.mergeExistingClasses({preview:r,frontend:i}))}var Re=__toESM(globalThis.React),ze=globalThis.elementorV2.editorUi,Be=globalThis.elementorV2.store,Ve=globalThis.elementorV2.utils,C=__toESM(globalThis.React),He=globalThis.elementorV2.editorUi,Ue=globalThis.elementorV2.icons,w=globalThis.elementorV2.ui,T=globalThis.wp.i18n,We=`DUP_`,DuplicateLabelDialog=({modifiedLabels:e,onApprove:t})=>{let handleButtonClick=()=>{localStorage.setItem(`elementor-global-classes-search`,We),t?.(),(0,He.closeDialog)()};return C.createElement(C.Fragment,null,C.createElement(w.DialogHeader,{logo:!1},C.createElement(w.Box,{display:`flex`,alignItems:`center`,gap:1},C.createElement(w.Icon,{color:`secondary`},C.createElement(Ue.InfoCircleFilledIcon,{fontSize:`medium`})),C.createElement(w.Typography,{variant:`subtitle1`},(0,T.__)(`We've published your page and updated class names.`,`elementor`)))),C.createElement(w.DialogContent,null,C.createElement(w.Stack,{spacing:2,direction:`column`},C.createElement(w.Typography,{variant:`body2`},(0,T.__)(`Some new classes used the same names as existing ones. To prevent conflicts, we added the prefix`,`elementor`),C.createElement(`strong`,null,` `,We)),C.createElement(w.Box,null,C.createElement(w.Box,{sx:{width:`100%`,display:`flex`,gap:2,alignItems:`flex-start`}},C.createElement(w.Typography,{variant:`subtitle2`,sx:{fontWeight:`bold`,flex:1,flexShrink:1,flexGrow:1,minWidth:0}},(0,T.__)(`Before`,`elementor`)),C.createElement(w.Typography,{variant:`subtitle2`,sx:{minWidth:`200px`,fontWeight:`bold`,flexShrink:0,flexGrow:0,width:`200px`,maxWidth:`200px`}},(0,T.__)(`After`,`elementor`))),C.createElement(w.Divider,{sx:{mt:.5,mb:.5}}),C.createElement(w.Stack,{direction:`column`,gap:.5,sx:{pb:2}},Object.values(e).map(({original:e,modified:t},n)=>C.createElement(w.Box,{key:n,sx:{width:`100%`,display:`flex`,gap:2,alignItems:`flex-start`}},C.createElement(w.Box,{sx:{flex:1,flexShrink:1,flexGrow:1,minWidth:0}},C.createElement(He.EllipsisWithTooltip,{title:e},C.createElement(w.Typography,{variant:`body2`,sx:{color:`text.secondary`}},e))),C.createElement(w.Box,{sx:{minWidth:`200px`,flexShrink:0,flexGrow:0,width:`200px`,maxWidth:`200px`}},C.createElement(He.EllipsisWithTooltip,{title:t},C.createElement(w.Typography,{variant:`body2`,sx:{color:`text.primary`}},t)))))),C.createElement(w.Box,null,C.createElement(w.Alert,{severity:`info`,size:`small`,color:`secondary`},C.createElement(`strong`,null,(0,T.__)(`Your designs and classes are safe.`,`elementor`)),(0,T.__)(`Only the prefixes were added. Find them in Class Manager by searching`,`elementor`),C.createElement(`strong`,null,We)))))),C.createElement(w.DialogActions,null,C.createElement(w.Button,{color:`secondary`,variant:`text`,onClick:handleButtonClick},(0,T.__)(`Go to Class Manager`,`elementor`)),C.createElement(w.Button,{color:`secondary`,variant:`contained`,onClick:He.closeDialog},(0,T.__)(`Done`,`elementor`))))},Ge=globalThis.elementorV2.events,Ke=globalThis.elementorV2.store,trackGlobalClasses=async e=>{let{runAction:t}=e,n=await getSanitizedData(e);n&&(track(n),n.event===`classCreated`&&`classId`in n&&fireClassApplied(n.classId)),t?.()},fireClassApplied=async e=>{track({event:`classApplied`,classId:e,...await getAppliedInfo(e),totalInstancesAfterApply:1})},getSanitizedData=async e=>{switch(e.event){case`classApplied`:if(`classId`in e&&e.classId){let t=await getAppliedInfo(e.classId);return{...e,...t}}break;case`classRemoved`:if(`classId`in e&&e.classId){let t=getRemovedInfo(e.classId);return{...e,...t}}break;case`classDeleted`:if(`classId`in e&&e.classId){let t=await trackDeleteClass(e.classId);return{...e,...t}}break;case`classCreated`:return`source`in e&&e.source!==`created`&&`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`:{let t=getCssClass(e.classId).label,n=e.action===`sync`;return{...e,interaction_type:`click`,target_type:t,target_name:n?`sync_to_v3`:`unsync_to_v3`,interaction_result:n?`class_is_synced_to_V3`:`class_is_unsynced_from_V3`,target_location:`widget_panel`,location_l1:`class_manager`,interaction_description:n?`user_synced_${t}_to_v3`:`user_unsync_${t}_from_v3`}}case`classSyncToV3PopupClick`:{let t=e.action===`sync`;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=>{let{dispatchEvent:t,config:n}=(0,Ge.getMixpanel)();if(!n?.names?.global_classes?.[e.event]){console.error(`Global class tracking event not found`,{event:e.event});return}let r=n.names.global_classes[e.event],{event:i,...a}=e;try{t?.(r,{event:i,...a})}catch(e){throw new se({cause:e})}},extractCssClassData=e=>({classTitle:getCssClass(e).label}),getCssClass=e=>{let t=(0,Ke.__getState)(),n=selectClass(t,e);if(n)return n;let r=selectClassLabels(t)[e];if(r!==void 0)return placeholderDefinition(e,r);throw Error(`CSS class with ID ${e} not found`)},trackDeleteClass=async e=>{let t=getCssClass(e).label;return{totalInstances:await getTotalInstancesByCssClassID(e),classTitle:t}},getTotalInstancesByCssClassID=async e=>(await fetchCssClassUsage())[e]?.total??1,getAppliedInfo=async e=>{let{classTitle:t}=extractCssClassData(e);return{classTitle:t,totalInstancesAfterApply:await getTotalInstancesByCssClassID(e)+1}},getRemovedInfo=e=>{let{classTitle:t}=extractCssClassData(e);return{classTitle:t}};async function saveGlobalClasses2({context:e,onApprove:t}){let n=selectData((0,Be.__getState)()),r=e===`preview`?S.saveDraft:S.publish,i=calculateChanges(n,(e===`preview`?selectPreviewInitialData:selectFrontendInitialData)((0,Be.__getState)())),a=[...i.added,...i.modified],o=await r({items:Object.fromEntries(a.map(e=>[e,n.items[e]]).filter(([,e])=>e)),order:n.order,changes:i});(0,Be.__dispatch)(x.actions.reset({context:e})),window.dispatchEvent(new CustomEvent(`classes:updated`,{detail:{context:e}})),o?.data?.data?.code===ke.DUPLICATED_LABEL&&((0,Be.__dispatch)(x.actions.updateMultiple(o.data.data.modifiedLabels)),trackGlobalClasses({event:`classPublishConflict`,numOfConflicts:Object.keys(o.data.data.modifiedLabels).length}),(0,ze.openDialog)({component:Re.createElement(DuplicateLabelDialog,{modifiedLabels:o.data.data.modifiedLabels||[],onApprove:t})}))}function calculateChanges(e,t){let n=Object.keys(e.items),r=Object.keys(t.items),{order:i}=e,{order:a}=t,o=new Set(i),s=a.filter(e=>!o.has(e)),c=i.join(`;`)!==a.join(`;`);return{added:n.filter(e=>!r.includes(e)),deleted:s,modified:n.filter(n=>n in t.items&&(0,Ve.hash)(e.items[n])!==(0,Ve.hash)(t.items[n])),order:c}}var qe=__toESM(globalThis.React),Je=globalThis.elementorV2.ui,Ye=globalThis.wp.i18n,Xe=__toESM(globalThis.React),Ze=globalThis.elementorV2.icons,Qe=globalThis.elementorV2.ui,ClearIconButton=({tooltipText:e,sx:t,trigger:n})=>{let{filters:{onClearFilter:r}}=useSearchAndFilters(),handleClearFilters=()=>{r(n),trackGlobalClasses({event:`classManagerFilterCleared`,trigger:n})};return Xe.createElement(Qe.Tooltip,{title:e,placement:`top`,disableInteractive:!0},Xe.createElement(Qe.Box,null,Xe.createElement($e,{"aria-label":e,size:`tiny`,onClick:handleClearFilters,sx:t},Xe.createElement(Ze.BrushBigIcon,{fontSize:`tiny`}))))},$e=(0,Qe.styled)(Qe.IconButton)(({theme:e})=>({"&.Mui-disabled":{pointerEvents:`auto`,"&:hover":{color:e.palette.action.disabled}}})),E=__toESM(globalThis.React),D=globalThis.elementorV2.ui,et=globalThis.wp.i18n,tt={unused:(0,et.__)(`Unused`,`elementor`),empty:(0,et.__)(`Empty`,`elementor`),onThisPage:(0,et.__)(`On this page`,`elementor`)},FilterList=()=>{let{filters:{filters:e,setFilters:t}}=useSearchAndFilters(),n=useFilteredCssClassUsage(),handleOnClick=n=>{t(e=>({...e,[n]:!e[n]})),trackGlobalClasses({event:`classManagerFilterUsed`,action:e[n]?`remove`:`apply`,type:n,trigger:`menu`})};return E.createElement(D.MenuList,null,E.createElement(D.MenuItem,{onClick:()=>handleOnClick(`unused`)},E.createElement(LabeledCheckbox,{label:tt.unused,checked:e.unused,suffix:E.createElement(D.Chip,{size:`tiny`,sx:{ml:`auto`},label:n.unused.length})})),E.createElement(D.MenuItem,{onClick:()=>handleOnClick(`empty`)},E.createElement(LabeledCheckbox,{label:tt.empty,checked:e.empty,suffix:E.createElement(D.Chip,{size:`tiny`,sx:{ml:`auto`},label:n.empty.length})})),E.createElement(D.MenuItem,{onClick:()=>handleOnClick(`onThisPage`)},E.createElement(LabeledCheckbox,{label:tt.onThisPage,checked:e.onThisPage,suffix:E.createElement(D.Chip,{size:`tiny`,sx:{ml:`auto`},label:n.onThisPage.length})})))},LabeledCheckbox=({label:e,suffix:t,checked:n})=>E.createElement(D.Stack,{direction:`row`,alignItems:`center`,gap:.5,flex:1},E.createElement(D.Checkbox,{size:`small`,checked:n,sx:{padding:0,color:`text.tertiary`,"&.Mui-checked":{color:`text.tertiary`}}}),E.createElement(D.Typography,{variant:`caption`,sx:{color:`text.secondary`}},e),t),ActiveFilters=()=>{let{filters:{filters:e,setFilters:t}}=useSearchAndFilters(),handleRemove=e=>{t(t=>({...t,[e]:!1})),trackGlobalClasses({event:`classManagerFilterUsed`,action:`remove`,type:e,trigger:`header`})},n=Object.keys(e).filter(t=>e[t]),r=n.length>0;return qe.createElement(Je.Stack,{direction:`row`,alignItems:`center`,justifyContent:`space-between`},qe.createElement(Je.Stack,{direction:`row`,gap:.5,alignItems:`center`,flexWrap:`wrap`},n.map(e=>qe.createElement(Je.Chip,{key:e,label:tt[e],onDelete:()=>handleRemove(e),sx:nt,size:`tiny`}))),r&&qe.createElement(ClearIconButton,{trigger:`header`,tooltipText:(0,Ye.__)(`Clear Filters`,`elementor`),sx:{margin:`0 0 auto auto`}}))},nt={"& .MuiChip-deleteIcon":{display:`none`,transition:`opacity 0.2s`},"&:hover .MuiChip-deleteIcon":{display:`block`}},O=__toESM(globalThis.React),rt=globalThis.React,it=globalThis.elementorV2.editorUi,at=globalThis.elementorV2.icons,k=globalThis.elementorV2.ui,ot=globalThis.wp.i18n,CssClassFilter=()=>{let{filters:{filters:e}}=useSearchAndFilters(),t=(0,k.usePopupState)({variant:`popover`,disableAutoFocus:!0});(0,rt.useEffect)(()=>{t.isOpen&&trackGlobalClasses({event:`classManagerFiltersOpened`})},[t.isOpen]);let n=Object.values(e).some(e=>e);return O.createElement(O.Fragment,null,O.createElement(k.Tooltip,{title:(0,ot.__)(`Filters`,`elementor`),placement:`top`},O.createElement(k.ToggleButton,{value:`filter`,size:`tiny`,selected:t.isOpen,...(0,k.bindToggle)(t)},O.createElement(at.FilterIcon,{fontSize:`tiny`}))),O.createElement(k.Popover,{sx:{maxWidth:`344px`},anchorOrigin:{vertical:`top`,horizontal:`right`},transformOrigin:{vertical:`top`,horizontal:-21},...(0,k.bindPopover)(t)},O.createElement(it.PopoverHeader,{actions:n?[O.createElement(ClearIconButton,{trigger:`menu`,key:`clear-all-button`,tooltipText:(0,ot.__)(`Clear all`,`elementor`)})]:[],onClose:t.close,title:(0,ot.__)(`Filters`,`elementor`),icon:O.createElement(at.FilterIcon,{fontSize:`tiny`})}),O.createElement(k.Divider,{sx:{borderWidth:`1px 0 0 0`}}),O.createElement(it.PopoverBody,{width:344,height:125},O.createElement(FilterList,null))))},st=__toESM(globalThis.React),ct=globalThis.elementorV2.icons,lt=globalThis.elementorV2.ui,ut=globalThis.wp.i18n,ClassManagerSearch=()=>{let{search:{inputValue:e,handleChange:t}}=useSearchAndFilters();return st.createElement(lt.Stack,{direction:`row`,gap:.5,sx:{width:`100%`}},st.createElement(lt.Box,{sx:{flexGrow:1}},st.createElement(lt.TextField,{role:`search`,fullWidth:!0,size:`tiny`,value:e,onFocus:()=>{trackGlobalClasses({event:`classManagerSearched`})},placeholder:(0,ut.__)(`Search`,`elementor`),onChange:e=>t(e.target.value),InputProps:{startAdornment:st.createElement(lt.InputAdornment,{position:`start`},st.createElement(ct.SearchIcon,{fontSize:`tiny`}))}})))},A=__toESM(globalThis.React),dt=globalThis.React,ft=globalThis.elementorV2.editorCurrentUser,pt=globalThis.elementorV2.editorUi,mt=globalThis.elementorV2.ui,ht=globalThis.wp.i18n,gt=`global-class-manager`,ClassManagerIntroduction=()=>{let[e,t]=(0,ft.useSuppressedMessage)(gt),[n,r]=(0,dt.useState)(!e);return A.createElement(pt.IntroductionModal,{open:n,title:(0,ht.__)(`Class Manager`,`elementor`),handleClose:e=>{e||t(),r(!1)}},A.createElement(mt.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(mt.Box,{p:3},A.createElement(mt.Typography,{variant:`body2`},(0,ht.__)(`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(mt.Typography,{variant:`body2`},(0,ht.__)(`Remember, when editing an item within a specific class, any changes you make will apply across all elements in that class.`,`elementor`))),_t=globalThis.elementorV2.store,vt=!1,deleteClass=e=>{trackGlobalClasses({event:`classDeleted`,classId:e,runAction:()=>{(0,_t.__dispatch)(x.actions.delete(e)),vt=!0}})},onDelete=async()=>{vt=!1},hasDeletedItems=()=>vt,yt=__toESM(globalThis.React),bt=globalThis.elementorV2.icons,FlippedColorSwatchIcon=({sx:e,...t})=>yt.createElement(bt.ColorSwatchIcon,{sx:{transform:`rotate(90deg)`,...e},...t}),j=__toESM(globalThis.React),xt=globalThis.React,St=globalThis.elementorV2.store,Ct=globalThis.elementorV2.ui,wt=c(),Tt=globalThis.wp.i18n,Et=globalThis.elementorV2.store,useOrderedClasses=()=>(0,Et.__useSelector)(de),M=__toESM(globalThis.React),Dt=globalThis.React,Ot=globalThis.elementorV2.editorStylesRepository,N=globalThis.elementorV2.editorUi,kt=globalThis.elementorV2.icons,P=globalThis.elementorV2.ui,At=globalThis.wp.i18n,F=__toESM(globalThis.React),jt=globalThis.elementorV2.editorDocuments,Mt=globalThis.elementorV2.editorUi,I=globalThis.elementorV2.icons,L=globalThis.elementorV2.ui,R=globalThis.wp.i18n,Nt={total:0,content:[]},useCssClassUsageByID=e=>{let{data:t,...n}=useCssClassUsage(),r=t?.[e]??Nt;return{...n,data:r}},Pt={"wp-post":{label:(0,R.__)(`Post`,`elementor`),icon:F.createElement(I.PostTypeIcon,{fontSize:`inherit`})},"wp-page":{label:(0,R.__)(`Page`,`elementor`),icon:F.createElement(I.PagesIcon,{fontSize:`inherit`})},popup:{label:(0,R.__)(`Popup`,`elementor`),icon:F.createElement(I.PopupTemplateIcon,{fontSize:`inherit`})},header:{label:(0,R.__)(`Header`,`elementor`),icon:F.createElement(I.HeaderTemplateIcon,{fontSize:`inherit`})},footer:{label:(0,R.__)(`Footer`,`elementor`),icon:F.createElement(I.FooterTemplateIcon,{fontSize:`inherit`})}},CssClassUsagePopover=({cssClassID:e,onClose:t})=>{let{data:n}=useCssClassUsageByID(e),r=(0,jt.__useOpenDocumentInNewTab)(),i=n?.content.map(({title:e,elements:t,pageId:n,type:r})=>({type:`item`,value:n,label:e,secondaryText:t.length.toString(),docType:r}))??[],handleSelect=t=>{r(+t),trackGlobalClasses({event:`classUsageLocate`,classId:e})};return F.createElement(F.Fragment,null,F.createElement(Mt.PopoverHeader,{icon:F.createElement(I.CurrentLocationIcon,{fontSize:`tiny`}),title:F.createElement(L.Stack,{flexDirection:`row`,gap:1,alignItems:`center`},F.createElement(L.Box,{"aria-label":`header-title`},(0,R.__)(`Locator`,`elementor`)),F.createElement(L.Box,null,F.createElement(L.Chip,{sx:{lineHeight:1},size:`tiny`,label:n.total}))),onClose:t}),F.createElement(L.Divider,null),F.createElement(Mt.PopoverBody,{width:300},F.createElement(Mt.PopoverMenuList,{onSelect:handleSelect,items:i,onClose:()=>{},menuListTemplate:Ft,menuItemContentTemplate:e=>F.createElement(L.Stack,{flexDirection:`row`,flex:1,alignItems:`center`},F.createElement(L.Box,{display:`flex`,sx:{pr:1}},F.createElement(L.Tooltip,{disableInteractive:!0,title:Pt?.[e.docType]?.label??e.docType,placement:`top`},F.createElement(L.Icon,{fontSize:`small`},Pt?.[e.docType]?.icon||F.createElement(I.PagesIcon,{fontSize:`inherit`})))),F.createElement(L.Box,{sx:{pr:.5,maxWidth:`173px`},display:`flex`},F.createElement(Mt.EllipsisWithTooltip,{title:e.label,as:L.Typography,variant:`caption`,maxWidth:`173px`,sx:{lineHeight:1}})),F.createElement(I.ExternalLinkIcon,{className:`hover-only-icon`,fontSize:`tiny`}),F.createElement(L.Chip,{sx:{ml:`auto`},size:`tiny`,label:e.secondaryText}))})))},Ft=(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`})),z=__toESM(globalThis.React),It=globalThis.elementorV2.editorUi,Lt=globalThis.elementorV2.icons,B=globalThis.elementorV2.ui,Rt=globalThis.wp.i18n,CssClassUsageTrigger=({id:e,onClick:t})=>{let{data:{total:n},isLoading:r}=useCssClassUsageByID(e),i=(0,B.usePopupState)({variant:`popover`,popupId:`css-class-usage-popover`});if(r)return null;let a=n===0?InfoAlertMessage:TooltipWrapper,handleMouseEnter=()=>{trackGlobalClasses({event:`classUsageHovered`,classId:e,usage:n})},handleClick=r=>{n!==0&&((0,B.bindTrigger)(i).onClick(r),t(e),trackGlobalClasses({event:`classUsageClicked`,classId:e}))};return z.createElement(z.Fragment,null,z.createElement(B.Box,{position:`relative`,onMouseEnter:handleMouseEnter},z.createElement(a,{total:n},z.createElement(zt,{disabled:n===0,size:`tiny`,...(0,B.bindTrigger)(i),onClick:handleClick},z.createElement(Lt.CurrentLocationIcon,{fontSize:`tiny`})))),z.createElement(B.Box,null,z.createElement(B.Popover,{anchorOrigin:{vertical:`center`,horizontal:`right`},transformOrigin:{vertical:15,horizontal:-50},...(0,B.bindPopover)(i),onClose:()=>{(0,B.bindPopover)(i).onClose(),t(``)}},z.createElement(CssClassUsagePopover,{onClose:i.close,"aria-label":`css-class-usage-popover`,cssClassID:e}))))},zt=(0,B.styled)(B.IconButton)(({theme:e})=>({"&.Mui-disabled":{pointerEvents:`auto`,"&:hover":{color:e.palette.action.disabled}},height:`22px`,width:`22px`})),TooltipWrapper=({children:e,total:t})=>z.createElement(B.Tooltip,{disableInteractive:!0,placement:`top`,title:`${(0,Rt.__)(`Show {{number}} {{locations}}`,`elementor`).replace(`{{number}}`,t.toString()).replace(`{{locations}}`,t===1?(0,Rt.__)(`location`,`elementor`):(0,Rt.__)(`locations`,`elementor`))}`},z.createElement(`span`,null,e)),InfoAlertMessage=({children:e})=>z.createElement(B.Infotip,{disableInteractive:!0,placement:`top`,color:`secondary`,content:z.createElement(It.InfoAlert,{sx:{mt:1}},(0,Rt.__)(`This class isn’t being used yet.`,`elementor`))},z.createElement(`span`,null,e)),V=__toESM(globalThis.React),Bt=globalThis.React,Vt=globalThis.elementorV2.editorUi,Ht=globalThis.elementorV2.ui,Ut=globalThis.wp.i18n,Wt=(0,Bt.createContext)(null),DeleteConfirmationProvider=({children:e})=>{let[t,n]=(0,Bt.useState)(null),openDialog2=e=>{n(e)},closeDialog2=()=>{n(null)};return V.createElement(Wt.Provider,{value:{openDialog:openDialog2,closeDialog:closeDialog2,dialogProps:t}},e,!!t&&V.createElement(DeleteClassDialog,{...t}))},DeleteClassDialog=({label:e,id:t})=>{let{closeDialog:n}=useDeleteConfirmation(),{data:{total:r,content:i}}=useCssClassUsageByID(t),handleConfirm=()=>{n(),deleteClass(t)},a=r&&i.length?(0,Ut.__)(`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`,r.toString()).replace(`%2`,i.length.toString()):(0,Ut.__)(`Will permanently remove it from your project and may affect the design across all elements using it. This action cannot be undone.`,`elementor`);return V.createElement(Vt.ConfirmationDialog,{open:!0,onClose:n},V.createElement(Vt.ConfirmationDialog.Title,null,(0,Ut.__)(`Delete this class?`,`elementor`)),V.createElement(Vt.ConfirmationDialog.Content,null,V.createElement(Vt.ConfirmationDialog.ContentText,null,(0,Ut.__)(`Deleting`,`elementor`),V.createElement(Ht.Typography,{variant:`subtitle2`,component:`span`},`\xA0`,e,`\xA0`),a)),V.createElement(Vt.ConfirmationDialog.Actions,{onClose:n,onConfirm:handleConfirm}))},useDeleteConfirmation=()=>{let e=(0,Bt.useContext)(Wt);if(!e)throw Error(`useDeleteConfirmation must be used within a DeleteConfirmationProvider`);return e},Gt=__toESM(globalThis.React),Kt=globalThis.elementorV2.icons,qt=globalThis.elementorV2.ui,SortableProvider=e=>Gt.createElement(qt.UnstableSortableProvider,{restrictAxis:!0,variant:`static`,dragPlaceholderStyle:{visibility:`hidden`},...e}),SortableTrigger=e=>Gt.createElement(Jt,{...e,role:`button`,className:`class-item-sortable-trigger`,"aria-label":`sort`},Gt.createElement(Kt.GripVerticalIcon,{fontSize:`tiny`})),SortableItem=({children:e,id:t,style:n,...r})=>Gt.createElement(qt.UnstableSortableItem,{...r,id:t,render:({itemProps:t,isDragged:r,triggerProps:i,itemStyle:a,triggerStyle:o,dropIndicationStyle:s,showDropIndication:c,isDragOverlay:l,isDragPlaceholder:u})=>Gt.createElement(qt.Box,{...t,style:{...a,...l?null:n},component:`li`,role:`listitem`,sx:{backgroundColor:l?`background.paper`:void 0}},e({itemProps:t,isDragged:r,triggerProps:i,itemStyle:a,triggerStyle:o,isDragPlaceholder:u}),c&&Gt.createElement(Yt,{style:s}))}),Jt=(0,qt.styled)(`div`)(({theme:e})=>({position:`absolute`,left:0,top:`50%`,transform:`translate( -${e.spacing(1.5)}, -50% )`,color:e.palette.action.active})),Yt=(0,qt.styled)(qt.Box)` | |
| 5 | 5 | width: 100%; |
| 6 | 6 | height: 1px; |
| 7 | 7 | background-color: ${({theme:e})=>e.palette.text.primary}; |
| 8 | 8 | `,ClassItem=({id:e,label:t,renameClass:n,selected:r,disabled:i,sortableTriggerProps:a,showSortIndicator:o,syncToV3:s,onToggleSync:c})=>{let l=(0,Dt.useRef)(null),{ref:u,openEditMode:d,isEditing:f,error:p,getProps:m}=(0,N.useEditable)({value:t,onSubmit:n,validation:validateLabel}),[h,ee]=(0,Dt.useState)(``),{openDialog:te}=useDeleteConfirmation(),g=(0,P.usePopupState)({variant:`popover`,disableAutoFocus:!0}),_=(h===e||r||g.isOpen)&&!i;return M.createElement(M.Fragment,null,M.createElement(P.Stack,{p:0},M.createElement(N.WarningInfotip,{open:!!p,text:p??``,placement:`bottom`,width:l.current?.getBoundingClientRect().width,offset:[0,-15]},M.createElement(Xt,{ref:l,dense:!0,disableGutters:!0,showSortIndicator:o,showActions:_||f,shape:`rounded`,onDoubleClick:d,selected:_,disabled:i,focusVisibleClassName:`visible-class-item`},M.createElement(SortableTrigger,{...a}),M.createElement(Zt,{isActive:f,isError:!!p},f?M.createElement(N.EditableField,{ref:u,as:P.Typography,variant:`caption`,...m()}):M.createElement(N.EllipsisWithTooltip,{title:t,as:P.Typography,variant:`caption`})),M.createElement(P.Box,{className:`class-item-locator`},M.createElement(CssClassUsageTrigger,{id:e,onClick:ee})),M.createElement(P.Tooltip,{placement:`top`,className:`class-item-more-actions`,title:(0,At.__)(`More actions`,`elementor`)},M.createElement(P.IconButton,{size:`tiny`,...(0,P.bindTrigger)(g),"aria-label":`More actions`},M.createElement(kt.DotsVerticalIcon,{fontSize:`tiny`})))))),M.createElement(P.Menu,{...(0,P.bindMenu)(g),anchorOrigin:{vertical:`bottom`,horizontal:`right`},transformOrigin:{vertical:`top`,horizontal:`right`}},M.createElement(N.MenuListItem,{sx:{minWidth:`160px`},onClick:()=>{g.close(),d()}},M.createElement(P.Typography,{variant:`caption`,sx:{color:`text.primary`}},(0,At.__)(`Rename`,`elementor`))),c&&M.createElement(N.MenuListItem,{onClick:()=>{g.close(),c(e,!s)}},M.createElement(P.Stack,{direction:`row`,alignItems:`center`,gap:1},s?M.createElement(kt.RefreshOffIcon,{fontSize:`tiny`}):M.createElement(kt.RefreshIcon,{fontSize:`tiny`}),M.createElement(P.Typography,{variant:`caption`,sx:{color:`text.primary`}},s?(0,At.__)(`Stop syncing to Global Fonts`,`elementor`):(0,At.__)(`Sync to Global Fonts`,`elementor`)))),M.createElement(N.MenuListItem,{onClick:()=>{g.close(),te({id:e,label:t})}},M.createElement(P.Typography,{variant:`caption`,sx:{color:`error.light`}},(0,At.__)(`Delete`,`elementor`)))))},Xt=(0,P.styled)(P.ListItemButton,{shouldForwardProp:e=>![`showActions`,`showSortIndicator`].includes(e)})(({showActions:e,showSortIndicator:t})=>` |