PluginProbe
Elementor Website Builder – more than just a page builder / 4.1.0-beta1
Elementor Website Builder – more than just a page builder v4.1.0-beta1
4.3.3 4.3.2 4.3.1 4.3.0 4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 All 456 releases
← All changes | assets/js/packages/editor-global-classes/editor-global-classes.js +4 -6475 4.2.0-dev2 → 4.1.0-beta1 View file →
@@ -1,6478 +1,7 @@
1 -/******/ (function() { // webpackBootstrap
2 -/******/ "use strict";
3 -/******/ var __webpack_modules__ = ({
4 -
5 -/***/ "./packages/node_modules/@tanstack/react-virtual/dist/esm/index.js":
6 -/*!*************************************************************************!*\
7 - !*** ./packages/node_modules/@tanstack/react-virtual/dist/esm/index.js ***!
8 - \*************************************************************************/
9 -/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
10 -
11 -__webpack_require__.r(__webpack_exports__);
12 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
13 -/* harmony export */ Virtualizer: function() { return /* reexport safe */ _tanstack_virtual_core__WEBPACK_IMPORTED_MODULE_2__.Virtualizer; },
14 -/* harmony export */ approxEqual: function() { return /* reexport safe */ _tanstack_virtual_core__WEBPACK_IMPORTED_MODULE_2__.approxEqual; },
15 -/* harmony export */ debounce: function() { return /* reexport safe */ _tanstack_virtual_core__WEBPACK_IMPORTED_MODULE_2__.debounce; },
16 -/* harmony export */ defaultKeyExtractor: function() { return /* reexport safe */ _tanstack_virtual_core__WEBPACK_IMPORTED_MODULE_2__.defaultKeyExtractor; },
17 -/* harmony export */ defaultRangeExtractor: function() { return /* reexport safe */ _tanstack_virtual_core__WEBPACK_IMPORTED_MODULE_2__.defaultRangeExtractor; },
18 -/* harmony export */ elementScroll: function() { return /* reexport safe */ _tanstack_virtual_core__WEBPACK_IMPORTED_MODULE_2__.elementScroll; },
19 -/* harmony export */ measureElement: function() { return /* reexport safe */ _tanstack_virtual_core__WEBPACK_IMPORTED_MODULE_2__.measureElement; },
20 -/* harmony export */ memo: function() { return /* reexport safe */ _tanstack_virtual_core__WEBPACK_IMPORTED_MODULE_2__.memo; },
21 -/* harmony export */ notUndefined: function() { return /* reexport safe */ _tanstack_virtual_core__WEBPACK_IMPORTED_MODULE_2__.notUndefined; },
22 -/* harmony export */ observeElementOffset: function() { return /* reexport safe */ _tanstack_virtual_core__WEBPACK_IMPORTED_MODULE_2__.observeElementOffset; },
23 -/* harmony export */ observeElementRect: function() { return /* reexport safe */ _tanstack_virtual_core__WEBPACK_IMPORTED_MODULE_2__.observeElementRect; },
24 -/* harmony export */ observeWindowOffset: function() { return /* reexport safe */ _tanstack_virtual_core__WEBPACK_IMPORTED_MODULE_2__.observeWindowOffset; },
25 -/* harmony export */ observeWindowRect: function() { return /* reexport safe */ _tanstack_virtual_core__WEBPACK_IMPORTED_MODULE_2__.observeWindowRect; },
26 -/* harmony export */ useVirtualizer: function() { return /* binding */ useVirtualizer; },
27 -/* harmony export */ useWindowVirtualizer: function() { return /* binding */ useWindowVirtualizer; },
28 -/* harmony export */ windowScroll: function() { return /* reexport safe */ _tanstack_virtual_core__WEBPACK_IMPORTED_MODULE_2__.windowScroll; }
29 -/* harmony export */ });
30 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
31 -/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ "react-dom");
32 -/* harmony import */ var _tanstack_virtual_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @tanstack/virtual-core */ "./packages/node_modules/@tanstack/virtual-core/dist/esm/index.js");
33 -
34 -
35 -
36 -
37 -const useIsomorphicLayoutEffect = typeof document !== "undefined" ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_0__.useEffect;
38 -function useVirtualizerBase({
39 - useFlushSync = true,
40 - ...options
41 -}) {
42 - const rerender = react__WEBPACK_IMPORTED_MODULE_0__.useReducer(() => ({}), {})[1];
43 - const resolvedOptions = {
44 - ...options,
45 - onChange: (instance2, sync) => {
46 - var _a;
47 - if (useFlushSync && sync) {
48 - (0,react_dom__WEBPACK_IMPORTED_MODULE_1__.flushSync)(rerender);
49 - } else {
50 - rerender();
51 - }
52 - (_a = options.onChange) == null ? void 0 : _a.call(options, instance2, sync);
53 - }
54 - };
55 - const [instance] = react__WEBPACK_IMPORTED_MODULE_0__.useState(
56 - () => new _tanstack_virtual_core__WEBPACK_IMPORTED_MODULE_2__.Virtualizer(resolvedOptions)
57 - );
58 - instance.setOptions(resolvedOptions);
59 - useIsomorphicLayoutEffect(() => {
60 - return instance._didMount();
61 - }, []);
62 - useIsomorphicLayoutEffect(() => {
63 - return instance._willUpdate();
64 - });
65 - return instance;
66 -}
67 -function useVirtualizer(options) {
68 - return useVirtualizerBase({
69 - observeElementRect: _tanstack_virtual_core__WEBPACK_IMPORTED_MODULE_2__.observeElementRect,
70 - observeElementOffset: _tanstack_virtual_core__WEBPACK_IMPORTED_MODULE_2__.observeElementOffset,
71 - scrollToFn: _tanstack_virtual_core__WEBPACK_IMPORTED_MODULE_2__.elementScroll,
72 - ...options
73 - });
74 -}
75 -function useWindowVirtualizer(options) {
76 - return useVirtualizerBase({
77 - getScrollElement: () => typeof document !== "undefined" ? window : null,
78 - observeElementRect: _tanstack_virtual_core__WEBPACK_IMPORTED_MODULE_2__.observeWindowRect,
79 - observeElementOffset: _tanstack_virtual_core__WEBPACK_IMPORTED_MODULE_2__.observeWindowOffset,
80 - scrollToFn: _tanstack_virtual_core__WEBPACK_IMPORTED_MODULE_2__.windowScroll,
81 - initialOffset: () => typeof document !== "undefined" ? window.scrollY : 0,
82 - ...options
83 - });
84 -}
85 -
86 -//# sourceMappingURL=index.js.map
87 -
88 -
89 -/***/ }),
90 -
91 -/***/ "./packages/node_modules/@tanstack/virtual-core/dist/esm/index.js":
92 -/*!************************************************************************!*\
93 - !*** ./packages/node_modules/@tanstack/virtual-core/dist/esm/index.js ***!
94 - \************************************************************************/
95 -/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
96 -
97 -__webpack_require__.r(__webpack_exports__);
98 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
99 -/* harmony export */ Virtualizer: function() { return /* binding */ Virtualizer; },
100 -/* harmony export */ approxEqual: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_0__.approxEqual; },
101 -/* harmony export */ debounce: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_0__.debounce; },
102 -/* harmony export */ defaultKeyExtractor: function() { return /* binding */ defaultKeyExtractor; },
103 -/* harmony export */ defaultRangeExtractor: function() { return /* binding */ defaultRangeExtractor; },
104 -/* harmony export */ elementScroll: function() { return /* binding */ elementScroll; },
105 -/* harmony export */ measureElement: function() { return /* binding */ measureElement; },
106 -/* harmony export */ memo: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_0__.memo; },
107 -/* harmony export */ notUndefined: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_0__.notUndefined; },
108 -/* harmony export */ observeElementOffset: function() { return /* binding */ observeElementOffset; },
109 -/* harmony export */ observeElementRect: function() { return /* binding */ observeElementRect; },
110 -/* harmony export */ observeWindowOffset: function() { return /* binding */ observeWindowOffset; },
111 -/* harmony export */ observeWindowRect: function() { return /* binding */ observeWindowRect; },
112 -/* harmony export */ windowScroll: function() { return /* binding */ windowScroll; }
113 -/* harmony export */ });
114 -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.js */ "./packages/node_modules/@tanstack/virtual-core/dist/esm/utils.js");
115 -
116 -const getRect = (element) => {
117 - const { offsetWidth, offsetHeight } = element;
118 - return { width: offsetWidth, height: offsetHeight };
119 -};
120 -const defaultKeyExtractor = (index) => index;
121 -const defaultRangeExtractor = (range) => {
122 - const start = Math.max(range.startIndex - range.overscan, 0);
123 - const end = Math.min(range.endIndex + range.overscan, range.count - 1);
124 - const arr = [];
125 - for (let i = start; i <= end; i++) {
126 - arr.push(i);
127 - }
128 - return arr;
129 -};
130 -const observeElementRect = (instance, cb) => {
131 - const element = instance.scrollElement;
132 - if (!element) {
133 - return;
134 - }
135 - const targetWindow = instance.targetWindow;
136 - if (!targetWindow) {
137 - return;
138 - }
139 - const handler = (rect) => {
140 - const { width, height } = rect;
141 - cb({ width: Math.round(width), height: Math.round(height) });
142 - };
143 - handler(getRect(element));
144 - if (!targetWindow.ResizeObserver) {
145 - return () => {
146 - };
147 - }
148 - const observer = new targetWindow.ResizeObserver((entries) => {
149 - const run = () => {
150 - const entry = entries[0];
151 - if (entry == null ? void 0 : entry.borderBoxSize) {
152 - const box = entry.borderBoxSize[0];
153 - if (box) {
154 - handler({ width: box.inlineSize, height: box.blockSize });
155 - return;
156 - }
157 - }
158 - handler(getRect(element));
159 - };
160 - instance.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();
161 - });
162 - observer.observe(element, { box: "border-box" });
163 - return () => {
164 - observer.unobserve(element);
165 - };
166 -};
167 -const addEventListenerOptions = {
168 - passive: true
169 -};
170 -const observeWindowRect = (instance, cb) => {
171 - const element = instance.scrollElement;
172 - if (!element) {
173 - return;
174 - }
175 - const handler = () => {
176 - cb({ width: element.innerWidth, height: element.innerHeight });
177 - };
178 - handler();
179 - element.addEventListener("resize", handler, addEventListenerOptions);
180 - return () => {
181 - element.removeEventListener("resize", handler);
182 - };
183 -};
184 -const supportsScrollend = typeof window == "undefined" ? true : "onscrollend" in window;
185 -const observeElementOffset = (instance, cb) => {
186 - const element = instance.scrollElement;
187 - if (!element) {
188 - return;
189 - }
190 - const targetWindow = instance.targetWindow;
191 - if (!targetWindow) {
192 - return;
193 - }
194 - let offset = 0;
195 - const fallback = instance.options.useScrollendEvent && supportsScrollend ? () => void 0 : (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.debounce)(
196 - targetWindow,
197 - () => {
198 - cb(offset, false);
199 - },
200 - instance.options.isScrollingResetDelay
201 - );
202 - const createHandler = (isScrolling) => () => {
203 - const { horizontal, isRtl } = instance.options;
204 - offset = horizontal ? element["scrollLeft"] * (isRtl && -1 || 1) : element["scrollTop"];
205 - fallback();
206 - cb(offset, isScrolling);
207 - };
208 - const handler = createHandler(true);
209 - const endHandler = createHandler(false);
210 - element.addEventListener("scroll", handler, addEventListenerOptions);
211 - const registerScrollendEvent = instance.options.useScrollendEvent && supportsScrollend;
212 - if (registerScrollendEvent) {
213 - element.addEventListener("scrollend", endHandler, addEventListenerOptions);
214 - }
215 - return () => {
216 - element.removeEventListener("scroll", handler);
217 - if (registerScrollendEvent) {
218 - element.removeEventListener("scrollend", endHandler);
219 - }
220 - };
221 -};
222 -const observeWindowOffset = (instance, cb) => {
223 - const element = instance.scrollElement;
224 - if (!element) {
225 - return;
226 - }
227 - const targetWindow = instance.targetWindow;
228 - if (!targetWindow) {
229 - return;
230 - }
231 - let offset = 0;
232 - const fallback = instance.options.useScrollendEvent && supportsScrollend ? () => void 0 : (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.debounce)(
233 - targetWindow,
234 - () => {
235 - cb(offset, false);
236 - },
237 - instance.options.isScrollingResetDelay
238 - );
239 - const createHandler = (isScrolling) => () => {
240 - offset = element[instance.options.horizontal ? "scrollX" : "scrollY"];
241 - fallback();
242 - cb(offset, isScrolling);
243 - };
244 - const handler = createHandler(true);
245 - const endHandler = createHandler(false);
246 - element.addEventListener("scroll", handler, addEventListenerOptions);
247 - const registerScrollendEvent = instance.options.useScrollendEvent && supportsScrollend;
248 - if (registerScrollendEvent) {
249 - element.addEventListener("scrollend", endHandler, addEventListenerOptions);
250 - }
251 - return () => {
252 - element.removeEventListener("scroll", handler);
253 - if (registerScrollendEvent) {
254 - element.removeEventListener("scrollend", endHandler);
255 - }
256 - };
257 -};
258 -const measureElement = (element, entry, instance) => {
259 - if (entry == null ? void 0 : entry.borderBoxSize) {
260 - const box = entry.borderBoxSize[0];
261 - if (box) {
262 - const size = Math.round(
263 - box[instance.options.horizontal ? "inlineSize" : "blockSize"]
264 - );
265 - return size;
266 - }
267 - }
268 - return element[instance.options.horizontal ? "offsetWidth" : "offsetHeight"];
269 -};
270 -const windowScroll = (offset, {
271 - adjustments = 0,
272 - behavior
273 -}, instance) => {
274 - var _a, _b;
275 - const toOffset = offset + adjustments;
276 - (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {
277 - [instance.options.horizontal ? "left" : "top"]: toOffset,
278 - behavior
279 - });
280 -};
281 -const elementScroll = (offset, {
282 - adjustments = 0,
283 - behavior
284 -}, instance) => {
285 - var _a, _b;
286 - const toOffset = offset + adjustments;
287 - (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {
288 - [instance.options.horizontal ? "left" : "top"]: toOffset,
289 - behavior
290 - });
291 -};
292 -class Virtualizer {
293 - constructor(opts) {
294 - this.unsubs = [];
295 - this.scrollElement = null;
296 - this.targetWindow = null;
297 - this.isScrolling = false;
298 - this.scrollState = null;
299 - this.measurementsCache = [];
300 - this.itemSizeCache = /* @__PURE__ */ new Map();
301 - this.laneAssignments = /* @__PURE__ */ new Map();
302 - this.pendingMeasuredCacheIndexes = [];
303 - this.prevLanes = void 0;
304 - this.lanesChangedFlag = false;
305 - this.lanesSettling = false;
306 - this.scrollRect = null;
307 - this.scrollOffset = null;
308 - this.scrollDirection = null;
309 - this.scrollAdjustments = 0;
310 - this.elementsCache = /* @__PURE__ */ new Map();
311 - this.now = () => {
312 - var _a, _b, _c;
313 - return ((_c = (_b = (_a = this.targetWindow) == null ? void 0 : _a.performance) == null ? void 0 : _b.now) == null ? void 0 : _c.call(_b)) ?? Date.now();
314 - };
315 - this.observer = /* @__PURE__ */ (() => {
316 - let _ro = null;
317 - const get = () => {
318 - if (_ro) {
319 - return _ro;
320 - }
321 - if (!this.targetWindow || !this.targetWindow.ResizeObserver) {
322 - return null;
323 - }
324 - return _ro = new this.targetWindow.ResizeObserver((entries) => {
325 - entries.forEach((entry) => {
326 - const run = () => {
327 - const node = entry.target;
328 - const index = this.indexFromElement(node);
329 - if (!node.isConnected) {
330 - this.observer.unobserve(node);
331 - return;
332 - }
333 - if (this.shouldMeasureDuringScroll(index)) {
334 - this.resizeItem(
335 - index,
336 - this.options.measureElement(node, entry, this)
337 - );
338 - }
339 - };
340 - this.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();
341 - });
342 - });
343 - };
344 - return {
345 - disconnect: () => {
346 - var _a;
347 - (_a = get()) == null ? void 0 : _a.disconnect();
348 - _ro = null;
349 - },
350 - observe: (target) => {
351 - var _a;
352 - return (_a = get()) == null ? void 0 : _a.observe(target, { box: "border-box" });
353 - },
354 - unobserve: (target) => {
355 - var _a;
356 - return (_a = get()) == null ? void 0 : _a.unobserve(target);
357 - }
358 - };
359 - })();
360 - this.range = null;
361 - this.setOptions = (opts2) => {
362 - Object.entries(opts2).forEach(([key, value]) => {
363 - if (typeof value === "undefined") delete opts2[key];
364 - });
365 - this.options = {
366 - debug: false,
367 - initialOffset: 0,
368 - overscan: 1,
369 - paddingStart: 0,
370 - paddingEnd: 0,
371 - scrollPaddingStart: 0,
372 - scrollPaddingEnd: 0,
373 - horizontal: false,
374 - getItemKey: defaultKeyExtractor,
375 - rangeExtractor: defaultRangeExtractor,
376 - onChange: () => {
377 - },
378 - measureElement,
379 - initialRect: { width: 0, height: 0 },
380 - scrollMargin: 0,
381 - gap: 0,
382 - indexAttribute: "data-index",
383 - initialMeasurementsCache: [],
384 - lanes: 1,
385 - isScrollingResetDelay: 150,
386 - enabled: true,
387 - isRtl: false,
388 - useScrollendEvent: false,
389 - useAnimationFrameWithResizeObserver: false,
390 - laneAssignmentMode: "estimate",
391 - ...opts2
392 - };
393 - };
394 - this.notify = (sync) => {
395 - var _a, _b;
396 - (_b = (_a = this.options).onChange) == null ? void 0 : _b.call(_a, this, sync);
397 - };
398 - this.maybeNotify = (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.memo)(
399 - () => {
400 - this.calculateRange();
401 - return [
402 - this.isScrolling,
403 - this.range ? this.range.startIndex : null,
404 - this.range ? this.range.endIndex : null
405 - ];
406 - },
407 - (isScrolling) => {
408 - this.notify(isScrolling);
409 - },
410 - {
411 - key: true && "maybeNotify",
412 - debug: () => this.options.debug,
413 - initialDeps: [
414 - this.isScrolling,
415 - this.range ? this.range.startIndex : null,
416 - this.range ? this.range.endIndex : null
417 - ]
418 - }
419 - );
420 - this.cleanup = () => {
421 - this.unsubs.filter(Boolean).forEach((d) => d());
422 - this.unsubs = [];
423 - this.observer.disconnect();
424 - if (this.rafId != null && this.targetWindow) {
425 - this.targetWindow.cancelAnimationFrame(this.rafId);
426 - this.rafId = null;
427 - }
428 - this.scrollState = null;
429 - this.scrollElement = null;
430 - this.targetWindow = null;
431 - };
432 - this._didMount = () => {
433 - return () => {
434 - this.cleanup();
435 - };
436 - };
437 - this._willUpdate = () => {
438 - var _a;
439 - const scrollElement = this.options.enabled ? this.options.getScrollElement() : null;
440 - if (this.scrollElement !== scrollElement) {
441 - this.cleanup();
442 - if (!scrollElement) {
443 - this.maybeNotify();
444 - return;
445 - }
446 - this.scrollElement = scrollElement;
447 - if (this.scrollElement && "ownerDocument" in this.scrollElement) {
448 - this.targetWindow = this.scrollElement.ownerDocument.defaultView;
449 - } else {
450 - this.targetWindow = ((_a = this.scrollElement) == null ? void 0 : _a.window) ?? null;
451 - }
452 - this.elementsCache.forEach((cached) => {
453 - this.observer.observe(cached);
454 - });
455 - this.unsubs.push(
456 - this.options.observeElementRect(this, (rect) => {
457 - this.scrollRect = rect;
458 - this.maybeNotify();
459 - })
460 - );
461 - this.unsubs.push(
462 - this.options.observeElementOffset(this, (offset, isScrolling) => {
463 - this.scrollAdjustments = 0;
464 - this.scrollDirection = isScrolling ? this.getScrollOffset() < offset ? "forward" : "backward" : null;
465 - this.scrollOffset = offset;
466 - this.isScrolling = isScrolling;
467 - if (this.scrollState) {
468 - this.scheduleScrollReconcile();
469 - }
470 - this.maybeNotify();
471 - })
472 - );
473 - this._scrollToOffset(this.getScrollOffset(), {
474 - adjustments: void 0,
475 - behavior: void 0
476 - });
477 - }
478 - };
479 - this.rafId = null;
480 - this.getSize = () => {
481 - if (!this.options.enabled) {
482 - this.scrollRect = null;
483 - return 0;
484 - }
485 - this.scrollRect = this.scrollRect ?? this.options.initialRect;
486 - return this.scrollRect[this.options.horizontal ? "width" : "height"];
487 - };
488 - this.getScrollOffset = () => {
489 - if (!this.options.enabled) {
490 - this.scrollOffset = null;
491 - return 0;
492 - }
493 - this.scrollOffset = this.scrollOffset ?? (typeof this.options.initialOffset === "function" ? this.options.initialOffset() : this.options.initialOffset);
494 - return this.scrollOffset;
495 - };
496 - this.getFurthestMeasurement = (measurements, index) => {
497 - const furthestMeasurementsFound = /* @__PURE__ */ new Map();
498 - const furthestMeasurements = /* @__PURE__ */ new Map();
499 - for (let m = index - 1; m >= 0; m--) {
500 - const measurement = measurements[m];
501 - if (furthestMeasurementsFound.has(measurement.lane)) {
502 - continue;
503 - }
504 - const previousFurthestMeasurement = furthestMeasurements.get(
505 - measurement.lane
506 - );
507 - if (previousFurthestMeasurement == null || measurement.end > previousFurthestMeasurement.end) {
508 - furthestMeasurements.set(measurement.lane, measurement);
509 - } else if (measurement.end < previousFurthestMeasurement.end) {
510 - furthestMeasurementsFound.set(measurement.lane, true);
511 - }
512 - if (furthestMeasurementsFound.size === this.options.lanes) {
513 - break;
514 - }
515 - }
516 - return furthestMeasurements.size === this.options.lanes ? Array.from(furthestMeasurements.values()).sort((a, b) => {
517 - if (a.end === b.end) {
518 - return a.index - b.index;
519 - }
520 - return a.end - b.end;
521 - })[0] : void 0;
522 - };
523 - this.getMeasurementOptions = (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.memo)(
524 - () => [
525 - this.options.count,
526 - this.options.paddingStart,
527 - this.options.scrollMargin,
528 - this.options.getItemKey,
529 - this.options.enabled,
530 - this.options.lanes,
531 - this.options.laneAssignmentMode
532 - ],
533 - (count, paddingStart, scrollMargin, getItemKey, enabled, lanes, laneAssignmentMode) => {
534 - const lanesChanged = this.prevLanes !== void 0 && this.prevLanes !== lanes;
535 - if (lanesChanged) {
536 - this.lanesChangedFlag = true;
537 - }
538 - this.prevLanes = lanes;
539 - this.pendingMeasuredCacheIndexes = [];
540 - return {
541 - count,
542 - paddingStart,
543 - scrollMargin,
544 - getItemKey,
545 - enabled,
546 - lanes,
547 - laneAssignmentMode
548 - };
549 - },
550 - {
551 - key: false
552 - }
553 - );
554 - this.getMeasurements = (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.memo)(
555 - () => [this.getMeasurementOptions(), this.itemSizeCache],
556 - ({
557 - count,
558 - paddingStart,
559 - scrollMargin,
560 - getItemKey,
561 - enabled,
562 - lanes,
563 - laneAssignmentMode
564 - }, itemSizeCache) => {
565 - if (!enabled) {
566 - this.measurementsCache = [];
567 - this.itemSizeCache.clear();
568 - this.laneAssignments.clear();
569 - return [];
570 - }
571 - if (this.laneAssignments.size > count) {
572 - for (const index of this.laneAssignments.keys()) {
573 - if (index >= count) {
574 - this.laneAssignments.delete(index);
575 - }
576 - }
577 - }
578 - if (this.lanesChangedFlag) {
579 - this.lanesChangedFlag = false;
580 - this.lanesSettling = true;
581 - this.measurementsCache = [];
582 - this.itemSizeCache.clear();
583 - this.laneAssignments.clear();
584 - this.pendingMeasuredCacheIndexes = [];
585 - }
586 - if (this.measurementsCache.length === 0 && !this.lanesSettling) {
587 - this.measurementsCache = this.options.initialMeasurementsCache;
588 - this.measurementsCache.forEach((item) => {
589 - this.itemSizeCache.set(item.key, item.size);
590 - });
591 - }
592 - const min = this.lanesSettling ? 0 : this.pendingMeasuredCacheIndexes.length > 0 ? Math.min(...this.pendingMeasuredCacheIndexes) : 0;
593 - this.pendingMeasuredCacheIndexes = [];
594 - if (this.lanesSettling && this.measurementsCache.length === count) {
595 - this.lanesSettling = false;
596 - }
597 - const measurements = this.measurementsCache.slice(0, min);
598 - const laneLastIndex = new Array(lanes).fill(
599 - void 0
600 - );
601 - for (let m = 0; m < min; m++) {
602 - const item = measurements[m];
603 - if (item) {
604 - laneLastIndex[item.lane] = m;
605 - }
606 - }
607 - for (let i = min; i < count; i++) {
608 - const key = getItemKey(i);
609 - const cachedLane = this.laneAssignments.get(i);
610 - let lane;
611 - let start;
612 - const shouldCacheLane = laneAssignmentMode === "estimate" || itemSizeCache.has(key);
613 - if (cachedLane !== void 0 && this.options.lanes > 1) {
614 - lane = cachedLane;
615 - const prevIndex = laneLastIndex[lane];
616 - const prevInLane = prevIndex !== void 0 ? measurements[prevIndex] : void 0;
617 - start = prevInLane ? prevInLane.end + this.options.gap : paddingStart + scrollMargin;
618 - } else {
619 - const furthestMeasurement = this.options.lanes === 1 ? measurements[i - 1] : this.getFurthestMeasurement(measurements, i);
620 - start = furthestMeasurement ? furthestMeasurement.end + this.options.gap : paddingStart + scrollMargin;
621 - lane = furthestMeasurement ? furthestMeasurement.lane : i % this.options.lanes;
622 - if (this.options.lanes > 1 && shouldCacheLane) {
623 - this.laneAssignments.set(i, lane);
624 - }
625 - }
626 - const measuredSize = itemSizeCache.get(key);
627 - const size = typeof measuredSize === "number" ? measuredSize : this.options.estimateSize(i);
628 - const end = start + size;
629 - measurements[i] = {
630 - index: i,
631 - start,
632 - size,
633 - end,
634 - key,
635 - lane
636 - };
637 - laneLastIndex[lane] = i;
638 - }
639 - this.measurementsCache = measurements;
640 - return measurements;
641 - },
642 - {
643 - key: true && "getMeasurements",
644 - debug: () => this.options.debug
645 - }
646 - );
647 - this.calculateRange = (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.memo)(
648 - () => [
649 - this.getMeasurements(),
650 - this.getSize(),
651 - this.getScrollOffset(),
652 - this.options.lanes
653 - ],
654 - (measurements, outerSize, scrollOffset, lanes) => {
655 - return this.range = measurements.length > 0 && outerSize > 0 ? calculateRange({
656 - measurements,
657 - outerSize,
658 - scrollOffset,
659 - lanes
660 - }) : null;
661 - },
662 - {
663 - key: true && "calculateRange",
664 - debug: () => this.options.debug
665 - }
666 - );
667 - this.getVirtualIndexes = (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.memo)(
668 - () => {
669 - let startIndex = null;
670 - let endIndex = null;
671 - const range = this.calculateRange();
672 - if (range) {
673 - startIndex = range.startIndex;
674 - endIndex = range.endIndex;
675 - }
676 - this.maybeNotify.updateDeps([this.isScrolling, startIndex, endIndex]);
677 - return [
678 - this.options.rangeExtractor,
679 - this.options.overscan,
680 - this.options.count,
681 - startIndex,
682 - endIndex
683 - ];
684 - },
685 - (rangeExtractor, overscan, count, startIndex, endIndex) => {
686 - return startIndex === null || endIndex === null ? [] : rangeExtractor({
687 - startIndex,
688 - endIndex,
689 - overscan,
690 - count
691 - });
692 - },
693 - {
694 - key: true && "getVirtualIndexes",
695 - debug: () => this.options.debug
696 - }
697 - );
698 - this.indexFromElement = (node) => {
699 - const attributeName = this.options.indexAttribute;
700 - const indexStr = node.getAttribute(attributeName);
701 - if (!indexStr) {
702 - console.warn(
703 - `Missing attribute name '${attributeName}={index}' on measured element.`
704 - );
705 - return -1;
706 - }
707 - return parseInt(indexStr, 10);
708 - };
709 - this.shouldMeasureDuringScroll = (index) => {
710 - var _a;
711 - if (!this.scrollState || this.scrollState.behavior !== "smooth") {
712 - return true;
713 - }
714 - const scrollIndex = this.scrollState.index ?? ((_a = this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)) == null ? void 0 : _a.index);
715 - if (scrollIndex !== void 0 && this.range) {
716 - const bufferSize = Math.max(
717 - this.options.overscan,
718 - Math.ceil((this.range.endIndex - this.range.startIndex) / 2)
719 - );
720 - const minIndex = Math.max(0, scrollIndex - bufferSize);
721 - const maxIndex = Math.min(
722 - this.options.count - 1,
723 - scrollIndex + bufferSize
724 - );
725 - return index >= minIndex && index <= maxIndex;
726 - }
727 - return true;
728 - };
729 - this.measureElement = (node) => {
730 - if (!node) {
731 - this.elementsCache.forEach((cached, key2) => {
732 - if (!cached.isConnected) {
733 - this.observer.unobserve(cached);
734 - this.elementsCache.delete(key2);
735 - }
736 - });
737 - return;
738 - }
739 - const index = this.indexFromElement(node);
740 - const key = this.options.getItemKey(index);
741 - const prevNode = this.elementsCache.get(key);
742 - if (prevNode !== node) {
743 - if (prevNode) {
744 - this.observer.unobserve(prevNode);
745 - }
746 - this.observer.observe(node);
747 - this.elementsCache.set(key, node);
748 - }
749 - if ((!this.isScrolling || this.scrollState) && this.shouldMeasureDuringScroll(index)) {
750 - this.resizeItem(index, this.options.measureElement(node, void 0, this));
751 - }
752 - };
753 - this.resizeItem = (index, size) => {
754 - var _a;
755 - const item = this.measurementsCache[index];
756 - if (!item) return;
757 - const itemSize = this.itemSizeCache.get(item.key) ?? item.size;
758 - const delta = size - itemSize;
759 - if (delta !== 0) {
760 - if (((_a = this.scrollState) == null ? void 0 : _a.behavior) !== "smooth" && (this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(item, delta, this) : item.start < this.getScrollOffset() + this.scrollAdjustments)) {
761 - if ( true && this.options.debug) {
762 - console.info("correction", delta);
763 - }
764 - this._scrollToOffset(this.getScrollOffset(), {
765 - adjustments: this.scrollAdjustments += delta,
766 - behavior: void 0
767 - });
768 - }
769 - this.pendingMeasuredCacheIndexes.push(item.index);
770 - this.itemSizeCache = new Map(this.itemSizeCache.set(item.key, size));
771 - this.notify(false);
772 - }
773 - };
774 - this.getVirtualItems = (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.memo)(
775 - () => [this.getVirtualIndexes(), this.getMeasurements()],
776 - (indexes, measurements) => {
777 - const virtualItems = [];
778 - for (let k = 0, len = indexes.length; k < len; k++) {
779 - const i = indexes[k];
780 - const measurement = measurements[i];
781 - virtualItems.push(measurement);
782 - }
783 - return virtualItems;
784 - },
785 - {
786 - key: true && "getVirtualItems",
787 - debug: () => this.options.debug
788 - }
789 - );
790 - this.getVirtualItemForOffset = (offset) => {
791 - const measurements = this.getMeasurements();
792 - if (measurements.length === 0) {
793 - return void 0;
794 - }
795 - return (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.notUndefined)(
796 - measurements[findNearestBinarySearch(
797 - 0,
798 - measurements.length - 1,
799 - (index) => (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.notUndefined)(measurements[index]).start,
800 - offset
801 - )]
802 - );
803 - };
804 - this.getMaxScrollOffset = () => {
805 - if (!this.scrollElement) return 0;
806 - if ("scrollHeight" in this.scrollElement) {
807 - return this.options.horizontal ? this.scrollElement.scrollWidth - this.scrollElement.clientWidth : this.scrollElement.scrollHeight - this.scrollElement.clientHeight;
808 - } else {
809 - const doc = this.scrollElement.document.documentElement;
810 - return this.options.horizontal ? doc.scrollWidth - this.scrollElement.innerWidth : doc.scrollHeight - this.scrollElement.innerHeight;
811 - }
812 - };
813 - this.getOffsetForAlignment = (toOffset, align, itemSize = 0) => {
814 - if (!this.scrollElement) return 0;
815 - const size = this.getSize();
816 - const scrollOffset = this.getScrollOffset();
817 - if (align === "auto") {
818 - align = toOffset >= scrollOffset + size ? "end" : "start";
819 - }
820 - if (align === "center") {
821 - toOffset += (itemSize - size) / 2;
822 - } else if (align === "end") {
823 - toOffset -= size;
824 - }
825 - const maxOffset = this.getMaxScrollOffset();
826 - return Math.max(Math.min(maxOffset, toOffset), 0);
827 - };
828 - this.getOffsetForIndex = (index, align = "auto") => {
829 - index = Math.max(0, Math.min(index, this.options.count - 1));
830 - const size = this.getSize();
831 - const scrollOffset = this.getScrollOffset();
832 - const item = this.measurementsCache[index];
833 - if (!item) return;
834 - if (align === "auto") {
835 - if (item.end >= scrollOffset + size - this.options.scrollPaddingEnd) {
836 - align = "end";
837 - } else if (item.start <= scrollOffset + this.options.scrollPaddingStart) {
838 - align = "start";
839 - } else {
840 - return [scrollOffset, align];
841 - }
842 - }
843 - if (align === "end" && index === this.options.count - 1) {
844 - return [this.getMaxScrollOffset(), align];
845 - }
846 - const toOffset = align === "end" ? item.end + this.options.scrollPaddingEnd : item.start - this.options.scrollPaddingStart;
847 - return [
848 - this.getOffsetForAlignment(toOffset, align, item.size),
849 - align
850 - ];
851 - };
852 - this.scrollToOffset = (toOffset, { align = "start", behavior = "auto" } = {}) => {
853 - const offset = this.getOffsetForAlignment(toOffset, align);
854 - const now = this.now();
855 - this.scrollState = {
856 - index: null,
857 - align,
858 - behavior,
859 - startedAt: now,
860 - lastTargetOffset: offset,
861 - stableFrames: 0
862 - };
863 - this._scrollToOffset(offset, { adjustments: void 0, behavior });
864 - this.scheduleScrollReconcile();
865 - };
866 - this.scrollToIndex = (index, {
867 - align: initialAlign = "auto",
868 - behavior = "auto"
869 - } = {}) => {
870 - index = Math.max(0, Math.min(index, this.options.count - 1));
871 - const offsetInfo = this.getOffsetForIndex(index, initialAlign);
872 - if (!offsetInfo) {
873 - return;
874 - }
875 - const [offset, align] = offsetInfo;
876 - const now = this.now();
877 - this.scrollState = {
878 - index,
879 - align,
880 - behavior,
881 - startedAt: now,
882 - lastTargetOffset: offset,
883 - stableFrames: 0
884 - };
885 - this._scrollToOffset(offset, { adjustments: void 0, behavior });
886 - this.scheduleScrollReconcile();
887 - };
888 - this.scrollBy = (delta, { behavior = "auto" } = {}) => {
889 - const offset = this.getScrollOffset() + delta;
890 - const now = this.now();
891 - this.scrollState = {
892 - index: null,
893 - align: "start",
894 - behavior,
895 - startedAt: now,
896 - lastTargetOffset: offset,
897 - stableFrames: 0
898 - };
899 - this._scrollToOffset(offset, { adjustments: void 0, behavior });
900 - this.scheduleScrollReconcile();
901 - };
902 - this.getTotalSize = () => {
903 - var _a;
904 - const measurements = this.getMeasurements();
905 - let end;
906 - if (measurements.length === 0) {
907 - end = this.options.paddingStart;
908 - } else if (this.options.lanes === 1) {
909 - end = ((_a = measurements[measurements.length - 1]) == null ? void 0 : _a.end) ?? 0;
910 - } else {
911 - const endByLane = Array(this.options.lanes).fill(null);
912 - let endIndex = measurements.length - 1;
913 - while (endIndex >= 0 && endByLane.some((val) => val === null)) {
914 - const item = measurements[endIndex];
915 - if (endByLane[item.lane] === null) {
916 - endByLane[item.lane] = item.end;
917 - }
918 - endIndex--;
919 - }
920 - end = Math.max(...endByLane.filter((val) => val !== null));
921 - }
922 - return Math.max(
923 - end - this.options.scrollMargin + this.options.paddingEnd,
924 - 0
925 - );
926 - };
927 - this._scrollToOffset = (offset, {
928 - adjustments,
929 - behavior
930 - }) => {
931 - this.options.scrollToFn(offset, { behavior, adjustments }, this);
932 - };
933 - this.measure = () => {
934 - this.itemSizeCache = /* @__PURE__ */ new Map();
935 - this.laneAssignments = /* @__PURE__ */ new Map();
936 - this.notify(false);
937 - };
938 - this.setOptions(opts);
939 - }
940 - scheduleScrollReconcile() {
941 - if (!this.targetWindow) {
942 - this.scrollState = null;
943 - return;
944 - }
945 - if (this.rafId != null) return;
946 - this.rafId = this.targetWindow.requestAnimationFrame(() => {
947 - this.rafId = null;
948 - this.reconcileScroll();
949 - });
950 - }
951 - reconcileScroll() {
952 - if (!this.scrollState) return;
953 - const el = this.scrollElement;
954 - if (!el) return;
955 - const MAX_RECONCILE_MS = 5e3;
956 - if (this.now() - this.scrollState.startedAt > MAX_RECONCILE_MS) {
957 - this.scrollState = null;
958 - return;
959 - }
960 - const offsetInfo = this.scrollState.index != null ? this.getOffsetForIndex(this.scrollState.index, this.scrollState.align) : void 0;
961 - const targetOffset = offsetInfo ? offsetInfo[0] : this.scrollState.lastTargetOffset;
962 - const STABLE_FRAMES = 1;
963 - const targetChanged = targetOffset !== this.scrollState.lastTargetOffset;
964 - if (!targetChanged && (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.approxEqual)(targetOffset, this.getScrollOffset())) {
965 - this.scrollState.stableFrames++;
966 - if (this.scrollState.stableFrames >= STABLE_FRAMES) {
967 - this.scrollState = null;
968 - return;
969 - }
970 - } else {
971 - this.scrollState.stableFrames = 0;
972 - if (targetChanged) {
973 - this.scrollState.lastTargetOffset = targetOffset;
974 - this.scrollState.behavior = "auto";
975 - this._scrollToOffset(targetOffset, {
976 - adjustments: void 0,
977 - behavior: "auto"
978 - });
979 - }
980 - }
981 - this.scheduleScrollReconcile();
982 - }
983 -}
984 -const findNearestBinarySearch = (low, high, getCurrentValue, value) => {
985 - while (low <= high) {
986 - const middle = (low + high) / 2 | 0;
987 - const currentValue = getCurrentValue(middle);
988 - if (currentValue < value) {
989 - low = middle + 1;
990 - } else if (currentValue > value) {
991 - high = middle - 1;
992 - } else {
993 - return middle;
994 - }
995 - }
996 - if (low > 0) {
997 - return low - 1;
998 - } else {
999 - return 0;
1000 - }
1001 -};
1002 -function calculateRange({
1003 - measurements,
1004 - outerSize,
1005 - scrollOffset,
1006 - lanes
1007 -}) {
1008 - const lastIndex = measurements.length - 1;
1009 - const getOffset = (index) => measurements[index].start;
1010 - if (measurements.length <= lanes) {
1011 - return {
1012 - startIndex: 0,
1013 - endIndex: lastIndex
1014 - };
1015 - }
1016 - let startIndex = findNearestBinarySearch(
1017 - 0,
1018 - lastIndex,
1019 - getOffset,
1020 - scrollOffset
1021 - );
1022 - let endIndex = startIndex;
1023 - if (lanes === 1) {
1024 - while (endIndex < lastIndex && measurements[endIndex].end < scrollOffset + outerSize) {
1025 - endIndex++;
1026 - }
1027 - } else if (lanes > 1) {
1028 - const endPerLane = Array(lanes).fill(0);
1029 - while (endIndex < lastIndex && endPerLane.some((pos) => pos < scrollOffset + outerSize)) {
1030 - const item = measurements[endIndex];
1031 - endPerLane[item.lane] = item.end;
1032 - endIndex++;
1033 - }
1034 - const startPerLane = Array(lanes).fill(scrollOffset + outerSize);
1035 - while (startIndex >= 0 && startPerLane.some((pos) => pos >= scrollOffset)) {
1036 - const item = measurements[startIndex];
1037 - startPerLane[item.lane] = item.start;
1038 - startIndex--;
1039 - }
1040 - startIndex = Math.max(0, startIndex - startIndex % lanes);
1041 - endIndex = Math.min(lastIndex, endIndex + (lanes - 1 - endIndex % lanes));
1042 - }
1043 - return { startIndex, endIndex };
1044 -}
1045 -
1046 -//# sourceMappingURL=index.js.map
1047 -
1048 -
1049 -/***/ }),
1050 -
1051 -/***/ "./packages/node_modules/@tanstack/virtual-core/dist/esm/utils.js":
1052 -/*!************************************************************************!*\
1053 - !*** ./packages/node_modules/@tanstack/virtual-core/dist/esm/utils.js ***!
1054 - \************************************************************************/
1055 -/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
1056 -
1057 -__webpack_require__.r(__webpack_exports__);
1058 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1059 -/* harmony export */ approxEqual: function() { return /* binding */ approxEqual; },
1060 -/* harmony export */ debounce: function() { return /* binding */ debounce; },
1061 -/* harmony export */ memo: function() { return /* binding */ memo; },
1062 -/* harmony export */ notUndefined: function() { return /* binding */ notUndefined; }
1063 -/* harmony export */ });
1064 -function memo(getDeps, fn, opts) {
1065 - let deps = opts.initialDeps ?? [];
1066 - let result;
1067 - let isInitial = true;
1068 - function memoizedFunction() {
1069 - var _a, _b, _c;
1070 - let depTime;
1071 - if (opts.key && ((_a = opts.debug) == null ? void 0 : _a.call(opts))) depTime = Date.now();
1072 - const newDeps = getDeps();
1073 - const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);
1074 - if (!depsChanged) {
1075 - return result;
1076 - }
1077 - deps = newDeps;
1078 - let resultTime;
1079 - if (opts.key && ((_b = opts.debug) == null ? void 0 : _b.call(opts))) resultTime = Date.now();
1080 - result = fn(...newDeps);
1081 - if (opts.key && ((_c = opts.debug) == null ? void 0 : _c.call(opts))) {
1082 - const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;
1083 - const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;
1084 - const resultFpsPercentage = resultEndTime / 16;
1085 - const pad = (str, num) => {
1086 - str = String(str);
1087 - while (str.length < num) {
1088 - str = " " + str;
1089 - }
1090 - return str;
1091 - };
1092 - console.info(
1093 - `%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`,
1094 - `
1095 - font-size: .6rem;
1096 - font-weight: bold;
1097 - color: hsl(${Math.max(
1098 - 0,
1099 - Math.min(120 - 120 * resultFpsPercentage, 120)
1100 - )}deg 100% 31%);`,
1101 - opts == null ? void 0 : opts.key
1102 - );
1103 - }
1104 - if ((opts == null ? void 0 : opts.onChange) && !(isInitial && opts.skipInitialOnChange)) {
1105 - opts.onChange(result);
1106 - }
1107 - isInitial = false;
1108 - return result;
1109 - }
1110 - memoizedFunction.updateDeps = (newDeps) => {
1111 - deps = newDeps;
1112 - };
1113 - return memoizedFunction;
1114 -}
1115 -function notUndefined(value, msg) {
1116 - if (value === void 0) {
1117 - throw new Error(`Unexpected undefined${msg ? `: ${msg}` : ""}`);
1118 - } else {
1119 - return value;
1120 - }
1121 -}
1122 -const approxEqual = (a, b) => Math.abs(a - b) < 1.01;
1123 -const debounce = (targetWindow, fn, ms) => {
1124 - let timeoutId;
1125 - return function(...args) {
1126 - targetWindow.clearTimeout(timeoutId);
1127 - timeoutId = targetWindow.setTimeout(() => fn.apply(this, args), ms);
1128 - };
1129 -};
1130 -
1131 -//# sourceMappingURL=utils.js.map
1132 -
1133 -
1134 -/***/ }),
1135 -
1136 -/***/ "./packages/packages/core/editor-global-classes/service/css-class-usage-service.ts":
1137 -/*!*****************************************************************************************!*\
1138 - !*** ./packages/packages/core/editor-global-classes/service/css-class-usage-service.ts ***!
1139 - \*****************************************************************************************/
1140 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1141 -
1142 -__webpack_require__.r(__webpack_exports__);
1143 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1144 -/* harmony export */ fetchCssClassUsage: function() { return /* binding */ fetchCssClassUsage; }
1145 -/* harmony export */ });
1146 -/* harmony import */ var _src_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../src/api */ "./packages/packages/core/editor-global-classes/src/api.ts");
1147 -/* harmony import */ var _src_components_css_class_usage_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../src/components/css-class-usage/utils */ "./packages/packages/core/editor-global-classes/src/components/css-class-usage/utils.ts");
1148 -
1149 -
1150 -const fetchCssClassUsage = async () => {
1151 - const response = await _src_api__WEBPACK_IMPORTED_MODULE_0__.apiClient.usage();
1152 - return (0,_src_components_css_class_usage_utils__WEBPACK_IMPORTED_MODULE_1__.transformData)(response?.data?.data || {});
1153 -};
1154 -
1155 -/***/ }),
1156 -
1157 -/***/ "./packages/packages/core/editor-global-classes/src/api.ts":
1158 -/*!*****************************************************************!*\
1159 - !*** ./packages/packages/core/editor-global-classes/src/api.ts ***!
1160 - \*****************************************************************/
1161 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1162 -
1163 -__webpack_require__.r(__webpack_exports__);
1164 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1165 -/* harmony export */ API_ERROR_CODES: function() { return /* binding */ API_ERROR_CODES; },
1166 -/* harmony export */ apiClient: function() { return /* binding */ apiClient; }
1167 -/* harmony export */ });
1168 -/* harmony import */ var _elementor_http_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/http-client */ "@elementor/http-client");
1169 -/* harmony import */ var _elementor_http_client__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_http_client__WEBPACK_IMPORTED_MODULE_0__);
1170 -
1171 -const RESOURCE_URL = '/global-classes';
1172 -const BASE_URL = 'elementor/v1';
1173 -const RESOURCE_USAGE_URL = `${RESOURCE_URL}/usage`;
1174 -const RESOURCE_POST_URL = `${RESOURCE_URL}/post`;
1175 -const RESOURCE_STYLES_URL = `${RESOURCE_URL}/styles`;
1176 -function saveGlobalClasses(context, payload) {
1177 - return (0,_elementor_http_client__WEBPACK_IMPORTED_MODULE_0__.httpService)().put(`${BASE_URL}${RESOURCE_URL}`, payload, {
1178 - params: {
1179 - context
1180 - }
1181 - });
1182 -}
1183 -const apiClient = {
1184 - usage: () => (0,_elementor_http_client__WEBPACK_IMPORTED_MODULE_0__.httpService)().get(`${BASE_URL}${RESOURCE_USAGE_URL}`),
1185 - all: (context = 'preview') => (0,_elementor_http_client__WEBPACK_IMPORTED_MODULE_0__.httpService)().get(`${BASE_URL}${RESOURCE_URL}`, {
1186 - params: {
1187 - context
1188 - }
1189 - }),
1190 - getStylesForPost: (postId, context = 'preview') => (0,_elementor_http_client__WEBPACK_IMPORTED_MODULE_0__.httpService)().get(`${BASE_URL}${RESOURCE_POST_URL}`, {
1191 - params: {
1192 - context,
1193 - post_id: postId
1194 - }
1195 - }),
1196 - getStylesByIds: (ids, context = 'preview') => (0,_elementor_http_client__WEBPACK_IMPORTED_MODULE_0__.httpService)().get(`${BASE_URL}${RESOURCE_STYLES_URL}`, {
1197 - params: {
1198 - context,
1199 - ids: ids.join(',')
1200 - }
1201 - }),
1202 - publish: payload => saveGlobalClasses('frontend', payload),
1203 - saveDraft: payload => saveGlobalClasses('preview', payload)
1204 -};
1205 -const API_ERROR_CODES = {
1206 - DUPLICATED_LABEL: 'DUPLICATED_LABEL'
1207 -};
1208 -
1209 -/***/ }),
1210 -
1211 -/***/ "./packages/packages/core/editor-global-classes/src/capabilities.ts":
1212 -/*!**************************************************************************!*\
1213 - !*** ./packages/packages/core/editor-global-classes/src/capabilities.ts ***!
1214 - \**************************************************************************/
1215 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1216 -
1217 -__webpack_require__.r(__webpack_exports__);
1218 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1219 -/* harmony export */ UPDATE_CLASS_CAPABILITY_KEY: function() { return /* binding */ UPDATE_CLASS_CAPABILITY_KEY; },
1220 -/* harmony export */ getCapabilities: function() { return /* binding */ getCapabilities; }
1221 -/* harmony export */ });
1222 -/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters");
1223 -/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__);
1224 -
1225 -const EXPERIMENT_KEY = 'global_classes_should_enforce_capabilities';
1226 -const UPDATE_CLASS_CAPABILITY_KEY = 'elementor_global_classes_update_class';
1227 -const getCapabilities = () => {
1228 - const shouldEnforceCapabilities = (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.isExperimentActive)(EXPERIMENT_KEY);
1229 - if (shouldEnforceCapabilities) {
1230 - return {
1231 - update: UPDATE_CLASS_CAPABILITY_KEY,
1232 - create: UPDATE_CLASS_CAPABILITY_KEY,
1233 - delete: UPDATE_CLASS_CAPABILITY_KEY,
1234 - updateProps: UPDATE_CLASS_CAPABILITY_KEY
1235 - };
1236 - }
1237 -};
1238 -
1239 -/***/ }),
1240 -
1241 -/***/ "./packages/packages/core/editor-global-classes/src/components/class-manager/class-item.tsx":
1242 -/*!**************************************************************************************************!*\
1243 - !*** ./packages/packages/core/editor-global-classes/src/components/class-manager/class-item.tsx ***!
1244 - \**************************************************************************************************/
1245 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1246 -
1247 -__webpack_require__.r(__webpack_exports__);
1248 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1249 -/* harmony export */ ClassItem: function() { return /* binding */ ClassItem; }
1250 -/* harmony export */ });
1251 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1252 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1253 -/* harmony import */ var _elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-styles-repository */ "@elementor/editor-styles-repository");
1254 -/* harmony import */ var _elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_1__);
1255 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/editor-ui */ "@elementor/editor-ui");
1256 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__);
1257 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
1258 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_elementor_icons__WEBPACK_IMPORTED_MODULE_3__);
1259 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1260 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__);
1261 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1262 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__);
1263 -/* harmony import */ var _css_class_usage_components__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../css-class-usage/components */ "./packages/packages/core/editor-global-classes/src/components/css-class-usage/components/index.ts");
1264 -/* harmony import */ var _delete_confirmation_dialog__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./delete-confirmation-dialog */ "./packages/packages/core/editor-global-classes/src/components/class-manager/delete-confirmation-dialog.tsx");
1265 -/* harmony import */ var _sortable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./sortable */ "./packages/packages/core/editor-global-classes/src/components/class-manager/sortable.tsx");
1266 -function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
1267 -
1268 -
1269 -
1270 -
1271 -
1272 -
1273 -
1274 -
1275 -
1276 -
1277 -const ClassItem = ({
1278 - id,
1279 - label,
1280 - renameClass,
1281 - selected,
1282 - disabled,
1283 - sortableTriggerProps,
1284 - showSortIndicator,
1285 - syncToV3,
1286 - onToggleSync
1287 -}) => {
1288 - const itemRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
1289 - const {
1290 - ref: editableRef,
1291 - openEditMode,
1292 - isEditing,
1293 - error,
1294 - getProps: getEditableProps
1295 - } = (0,_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__.useEditable)({
1296 - value: label,
1297 - onSubmit: renameClass,
1298 - validation: validateLabel
1299 - });
1300 - const [selectedCssUsage, setSelectedCssUsage] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)('');
1301 - const {
1302 - openDialog
1303 - } = (0,_delete_confirmation_dialog__WEBPACK_IMPORTED_MODULE_7__.useDeleteConfirmation)();
1304 - const popupState = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.usePopupState)({
1305 - variant: 'popover',
1306 - disableAutoFocus: true
1307 - });
1308 - const isSelected = (selectedCssUsage === id || selected || popupState.isOpen) && !disabled;
1309 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Stack, {
1310 - p: 0
1311 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__.WarningInfotip, {
1312 - open: Boolean(error),
1313 - text: error ?? '',
1314 - placement: "bottom",
1315 - width: itemRef.current?.getBoundingClientRect().width,
1316 - offset: [0, -15]
1317 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(StyledListItemButton, {
1318 - ref: itemRef,
1319 - dense: true,
1320 - disableGutters: true,
1321 - showSortIndicator: showSortIndicator,
1322 - showActions: isSelected || isEditing,
1323 - shape: "rounded",
1324 - onDoubleClick: openEditMode,
1325 - selected: isSelected,
1326 - disabled: disabled,
1327 - focusVisibleClassName: "visible-class-item"
1328 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_sortable__WEBPACK_IMPORTED_MODULE_8__.SortableTrigger, sortableTriggerProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(Indicator, {
1329 - isActive: isEditing,
1330 - isError: !!error
1331 - }, isEditing ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__.EditableField, _extends({
1332 - ref: editableRef,
1333 - as: _elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Typography,
1334 - variant: "caption"
1335 - }, getEditableProps())) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__.EllipsisWithTooltip, {
1336 - title: label,
1337 - as: _elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Typography,
1338 - variant: "caption"
1339 - })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Box, {
1340 - className: 'class-item-locator'
1341 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_css_class_usage_components__WEBPACK_IMPORTED_MODULE_6__.CssClassUsageTrigger, {
1342 - id: id,
1343 - onClick: setSelectedCssUsage
1344 - })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Tooltip, {
1345 - placement: "top",
1346 - className: 'class-item-more-actions',
1347 - title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('More actions', 'elementor')
1348 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.IconButton, _extends({
1349 - size: "tiny"
1350 - }, (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.bindTrigger)(popupState), {
1351 - "aria-label": "More actions"
1352 - }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_3__.DotsVerticalIcon, {
1353 - fontSize: "tiny"
1354 - })))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Menu, _extends({}, (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.bindMenu)(popupState), {
1355 - anchorOrigin: {
1356 - vertical: 'bottom',
1357 - horizontal: 'right'
1358 - },
1359 - transformOrigin: {
1360 - vertical: 'top',
1361 - horizontal: 'right'
1362 - }
1363 - }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__.MenuListItem, {
1364 - sx: {
1365 - minWidth: '160px'
1366 - },
1367 - onClick: () => {
1368 - popupState.close();
1369 - openEditMode();
1370 - }
1371 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Typography, {
1372 - variant: "caption",
1373 - sx: {
1374 - color: 'text.primary'
1375 - }
1376 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Rename', 'elementor'))), onToggleSync && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__.MenuListItem, {
1377 - onClick: () => {
1378 - popupState.close();
1379 - onToggleSync(id, !syncToV3);
1380 - }
1381 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Stack, {
1382 - direction: "row",
1383 - alignItems: "center",
1384 - gap: 1
1385 - }, syncToV3 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_3__.RefreshOffIcon, {
1386 - fontSize: "tiny"
1387 - }) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_3__.RefreshIcon, {
1388 - fontSize: "tiny"
1389 - }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Typography, {
1390 - variant: "caption",
1391 - sx: {
1392 - color: 'text.primary'
1393 - }
1394 - }, syncToV3 ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Stop syncing to Global Fonts', 'elementor') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Sync to Global Fonts', 'elementor')))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__.MenuListItem, {
1395 - onClick: () => {
1396 - popupState.close();
1397 - openDialog({
1398 - id,
1399 - label
1400 - });
1401 - }
1402 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Typography, {
1403 - variant: "caption",
1404 - sx: {
1405 - color: 'error.light'
1406 - }
1407 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Delete', 'elementor')))));
1408 -};
1409 -const StyledListItemButton = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.styled)(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.ListItemButton, {
1410 - shouldForwardProp: prop => !['showActions', 'showSortIndicator'].includes(prop)
1411 -})(({
1412 - showActions,
1413 - showSortIndicator
1414 -}) => `
1415 - min-height: 36px;
1416 -
1417 - &.visible-class-item {
1418 - box-shadow: none !important;
1419 - }
1420 -
1421 - .class-item-locator {
1422 - visibility: hidden;
1423 - }
1424 -
1425 - .class-item-sortable-trigger {
1426 - visibility: ${showSortIndicator && showActions ? 'visible' : 'hidden'};
1427 - }
1428 -
1429 - &:hover:not(:disabled) {
1430 - .class-item-locator {
1431 - visibility: visible;
1432 - }
1433 -
1434 - .class-item-sortable-trigger {
1435 - visibility: ${showSortIndicator ? 'visible' : 'hidden'};
1436 - }
1437 - }
1438 - `);
1439 -const Indicator = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.styled)(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Box, {
1440 - shouldForwardProp: prop => !['isActive', 'isError'].includes(prop)
1441 -})(({
1442 - theme,
1443 - isActive,
1444 - isError
1445 -}) => ({
1446 - display: 'flex',
1447 - width: '100%',
1448 - flexGrow: 1,
1449 - borderRadius: theme.spacing(0.5),
1450 - border: getIndicatorBorder({
1451 - isActive,
1452 - isError,
1453 - theme
1454 - }),
1455 - padding: `0 ${theme.spacing(1)}`,
1456 - marginLeft: isActive ? theme.spacing(1) : 0,
1457 - minWidth: 0
1458 -}));
1459 -const getIndicatorBorder = ({
1460 - isActive,
1461 - isError,
1462 - theme
1463 -}) => {
1464 - if (isError) {
1465 - return `2px solid ${theme.palette.error.main}`;
1466 - }
1467 - if (isActive) {
1468 - return `2px solid ${theme.palette.secondary.main}`;
1469 - }
1470 - return 'none';
1471 -};
1472 -const validateLabel = newLabel => {
1473 - const result = (0,_elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_1__.validateStyleLabel)(newLabel, 'rename');
1474 - if (result.isValid) {
1475 - return null;
1476 - }
1477 - return result.errorMessage;
1478 -};
1479 -
1480 -/***/ }),
1481 -
1482 -/***/ "./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-button.tsx":
1483 -/*!************************************************************************************************************!*\
1484 - !*** ./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-button.tsx ***!
1485 - \************************************************************************************************************/
1486 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1487 -
1488 -__webpack_require__.r(__webpack_exports__);
1489 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1490 -/* harmony export */ ClassManagerButton: function() { return /* binding */ ClassManagerButton; }
1491 -/* harmony export */ });
1492 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1493 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1494 -/* harmony import */ var _elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-styles-repository */ "@elementor/editor-styles-repository");
1495 -/* harmony import */ var _elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_1__);
1496 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1497 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__);
1498 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1499 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__);
1500 -/* harmony import */ var _global_classes_styles_provider__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../global-classes-styles-provider */ "./packages/packages/core/editor-global-classes/src/global-classes-styles-provider.ts");
1501 -/* harmony import */ var _hooks_use_prefetch_css_class_usage__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../hooks/use-prefetch-css-class-usage */ "./packages/packages/core/editor-global-classes/src/hooks/use-prefetch-css-class-usage.ts");
1502 -/* harmony import */ var _utils_tracking__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../utils/tracking */ "./packages/packages/core/editor-global-classes/src/utils/tracking.ts");
1503 -/* harmony import */ var _flipped_color_swatch_icon__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./flipped-color-swatch-icon */ "./packages/packages/core/editor-global-classes/src/components/class-manager/flipped-color-swatch-icon.tsx");
1504 -
1505 -
1506 -
1507 -
1508 -
1509 -
1510 -
1511 -
1512 -const EVENT_TOGGLE_DESIGN_SYSTEM = 'elementor/toggle-design-system';
1513 -const ClassManagerButton = () => {
1514 - const {
1515 - prefetchClassesUsage
1516 - } = (0,_hooks_use_prefetch_css_class_usage__WEBPACK_IMPORTED_MODULE_5__.usePrefetchCssClassUsage)();
1517 - const {
1518 - userCan
1519 - } = (0,_elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_1__.useUserStylesCapability)();
1520 - const isUserAllowedToUpdateClass = userCan(_global_classes_styles_provider__WEBPACK_IMPORTED_MODULE_4__.globalClassesStylesProvider.getKey()).update;
1521 - if (!isUserAllowedToUpdateClass) {
1522 - return null;
1523 - }
1524 - const handleOpenPanel = () => {
1525 - window.dispatchEvent(new CustomEvent(EVENT_TOGGLE_DESIGN_SYSTEM, {
1526 - detail: {
1527 - tab: 'classes'
1528 - }
1529 - }));
1530 - (0,_utils_tracking__WEBPACK_IMPORTED_MODULE_6__.trackGlobalClasses)({
1531 - event: 'classManagerOpened',
1532 - source: 'style-panel'
1533 - });
1534 - prefetchClassesUsage();
1535 - };
1536 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Tooltip, {
1537 - title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Class Manager', 'elementor'),
1538 - placement: "top"
1539 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.IconButton, {
1540 - size: "tiny",
1541 - onClick: handleOpenPanel,
1542 - sx: {
1543 - marginInlineEnd: -0.75
1544 - }
1545 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_flipped_color_swatch_icon__WEBPACK_IMPORTED_MODULE_7__.FlippedColorSwatchIcon, {
1546 - fontSize: "tiny"
1547 - })));
1548 -};
1549 -
1550 -/***/ }),
1551 -
1552 -/***/ "./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-introduction.tsx":
1553 -/*!******************************************************************************************************************!*\
1554 - !*** ./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-introduction.tsx ***!
1555 - \******************************************************************************************************************/
1556 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1557 -
1558 -__webpack_require__.r(__webpack_exports__);
1559 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1560 -/* harmony export */ ClassManagerIntroduction: function() { return /* binding */ ClassManagerIntroduction; }
1561 -/* harmony export */ });
1562 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1563 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1564 -/* harmony import */ var _elementor_editor_current_user__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-current-user */ "@elementor/editor-current-user");
1565 -/* harmony import */ var _elementor_editor_current_user__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_current_user__WEBPACK_IMPORTED_MODULE_1__);
1566 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/editor-ui */ "@elementor/editor-ui");
1567 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__);
1568 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1569 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__);
1570 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1571 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__);
1572 -
1573 -
1574 -
1575 -
1576 -
1577 -
1578 -const MESSAGE_KEY = 'global-class-manager';
1579 -const ClassManagerIntroduction = () => {
1580 - const [isMessageSuppressed, suppressMessage] = (0,_elementor_editor_current_user__WEBPACK_IMPORTED_MODULE_1__.useSuppressedMessage)(MESSAGE_KEY);
1581 - const [shouldShowIntroduction, setShouldShowIntroduction] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(!isMessageSuppressed);
1582 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__.IntroductionModal, {
1583 - open: shouldShowIntroduction,
1584 - title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Class Manager', 'elementor'),
1585 - handleClose: shouldShowAgain => {
1586 - if (!shouldShowAgain) {
1587 - suppressMessage();
1588 - }
1589 - setShouldShowIntroduction(false);
1590 - }
1591 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Image, {
1592 - sx: {
1593 - width: '100%',
1594 - aspectRatio: '16 / 9'
1595 - },
1596 - src: 'https://assets.elementor.com/packages/v1/images/class-manager-intro.svg',
1597 - alt: ''
1598 - }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(IntroductionContent, null));
1599 -};
1600 -const IntroductionContent = () => {
1601 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Box, {
1602 - p: 3
1603 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Typography, {
1604 - variant: 'body2'
1605 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("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')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("br", null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Typography, {
1606 - variant: 'body2'
1607 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Remember, when editing an item within a specific class, any changes you make will apply across all elements in that class.', 'elementor')));
1608 -};
1609 -
1610 -/***/ }),
1611 -
1612 -/***/ "./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-panel.tsx":
1613 -/*!***********************************************************************************************************!*\
1614 - !*** ./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-panel.tsx ***!
1615 - \***********************************************************************************************************/
1616 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1617 -
1618 -__webpack_require__.r(__webpack_exports__);
1619 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1620 -/* harmony export */ ClassManagerPanelEmbedded: function() { return /* binding */ ClassManagerPanelEmbedded; }
1621 -/* harmony export */ });
1622 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1623 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1624 -/* harmony import */ var _elementor_editor_current_user__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-current-user */ "@elementor/editor-current-user");
1625 -/* harmony import */ var _elementor_editor_current_user__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_current_user__WEBPACK_IMPORTED_MODULE_1__);
1626 -/* harmony import */ var _elementor_editor_documents__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/editor-documents */ "@elementor/editor-documents");
1627 -/* harmony import */ var _elementor_editor_documents__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_2__);
1628 -/* harmony import */ var _elementor_editor_panels__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @elementor/editor-panels */ "@elementor/editor-panels");
1629 -/* harmony import */ var _elementor_editor_panels__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_panels__WEBPACK_IMPORTED_MODULE_3__);
1630 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @elementor/editor-ui */ "@elementor/editor-ui");
1631 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_4__);
1632 -/* harmony import */ var _elementor_query__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @elementor/query */ "@elementor/query");
1633 -/* harmony import */ var _elementor_query__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_elementor_query__WEBPACK_IMPORTED_MODULE_5__);
1634 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @elementor/store */ "@elementor/store");
1635 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_elementor_store__WEBPACK_IMPORTED_MODULE_6__);
1636 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1637 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_7__);
1638 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1639 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_8__);
1640 -/* harmony import */ var _hooks_use_classes_order__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../hooks/use-classes-order */ "./packages/packages/core/editor-global-classes/src/hooks/use-classes-order.ts");
1641 -/* harmony import */ var _hooks_use_dirty_state__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../hooks/use-dirty-state */ "./packages/packages/core/editor-global-classes/src/hooks/use-dirty-state.ts");
1642 -/* harmony import */ var _hooks_use_filters__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../hooks/use-filters */ "./packages/packages/core/editor-global-classes/src/hooks/use-filters.ts");
1643 -/* harmony import */ var _save_global_classes__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../save-global-classes */ "./packages/packages/core/editor-global-classes/src/save-global-classes.tsx");
1644 -/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../store */ "./packages/packages/core/editor-global-classes/src/store.ts");
1645 -/* harmony import */ var _utils_tracking__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../utils/tracking */ "./packages/packages/core/editor-global-classes/src/utils/tracking.ts");
1646 -/* harmony import */ var _search_and_filter_components_filter_active_filters__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../search-and-filter/components/filter/active-filters */ "./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/active-filters.tsx");
1647 -/* harmony import */ var _search_and_filter_components_filter_css_class_filter__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../search-and-filter/components/filter/css-class-filter */ "./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/css-class-filter.tsx");
1648 -/* harmony import */ var _search_and_filter_components_search_class_manager_search__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../search-and-filter/components/search/class-manager-search */ "./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/search/class-manager-search.tsx");
1649 -/* harmony import */ var _search_and_filter_context__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../search-and-filter/context */ "./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx");
1650 -/* harmony import */ var _class_manager_introduction__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./class-manager-introduction */ "./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-introduction.tsx");
1651 -/* harmony import */ var _delete_class__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./delete-class */ "./packages/packages/core/editor-global-classes/src/components/class-manager/delete-class.ts");
1652 -/* harmony import */ var _flipped_color_swatch_icon__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./flipped-color-swatch-icon */ "./packages/packages/core/editor-global-classes/src/components/class-manager/flipped-color-swatch-icon.tsx");
1653 -/* harmony import */ var _global_classes_list__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./global-classes-list */ "./packages/packages/core/editor-global-classes/src/components/class-manager/global-classes-list.tsx");
1654 -/* harmony import */ var _panel_interactions__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./panel-interactions */ "./packages/packages/core/editor-global-classes/src/components/class-manager/panel-interactions.ts");
1655 -/* harmony import */ var _start_sync_to_v3_modal__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./start-sync-to-v3-modal */ "./packages/packages/core/editor-global-classes/src/components/class-manager/start-sync-to-v3-modal.tsx");
1656 -
1657 -
1658 -
1659 -
1660 -
1661 -
1662 -
1663 -
1664 -
1665 -
1666 -
1667 -
1668 -
1669 -
1670 -
1671 -
1672 -
1673 -
1674 -
1675 -
1676 -
1677 -
1678 -
1679 -
1680 -
1681 -
1682 -const STOP_SYNC_MESSAGE_KEY = 'stop-sync-class';
1683 -function ClassManagerPanelEmbedded({
1684 - onRequestClose,
1685 - onExposeCloseAttempt,
1686 - isActive
1687 -}) {
1688 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(ClassManagerPanelContent, {
1689 - onRequestClose: onRequestClose,
1690 - onExposeCloseAttempt: onExposeCloseAttempt,
1691 - isActive: isActive
1692 - });
1693 -}
1694 -function ClassManagerPanelContent({
1695 - onRequestClose,
1696 - onExposeCloseAttempt,
1697 - isActive = true
1698 -}) {
1699 - const isDirty = (0,_hooks_use_dirty_state__WEBPACK_IMPORTED_MODULE_10__.useDirtyState)();
1700 - const {
1701 - open: openSaveChangesDialog,
1702 - close: closeSaveChangesDialog,
1703 - isOpen: isSaveChangesDialogOpen
1704 - } = (0,_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_4__.useDialog)();
1705 - const [stopSyncConfirmation, setStopSyncConfirmation] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
1706 - const [startSyncConfirmation, setStartSyncConfirmation] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
1707 - const [isStopSyncSuppressed] = (0,_elementor_editor_current_user__WEBPACK_IMPORTED_MODULE_1__.useSuppressedMessage)(STOP_SYNC_MESSAGE_KEY);
1708 - const [scrollElement, setScrollElement] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
1709 - const {
1710 - mutateAsync: publish,
1711 - isPending: isPublishing
1712 - } = usePublish();
1713 - const resetAndClosePanel = () => {
1714 - (0,_elementor_store__WEBPACK_IMPORTED_MODULE_6__.__dispatch)(_store__WEBPACK_IMPORTED_MODULE_13__.slice.actions.resetToInitialState({
1715 - context: 'frontend'
1716 - }));
1717 - closeSaveChangesDialog();
1718 - };
1719 - const handleClosePanel = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
1720 - if (isDirty) {
1721 - openSaveChangesDialog();
1722 - return;
1723 - }
1724 - void onRequestClose();
1725 - }, [isDirty, openSaveChangesDialog, onRequestClose]);
1726 - (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
1727 - if (!onExposeCloseAttempt) {
1728 - return;
1729 - }
1730 - onExposeCloseAttempt(() => handleClosePanel());
1731 - return () => onExposeCloseAttempt(null);
1732 - }, [onExposeCloseAttempt, handleClosePanel]);
1733 - (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
1734 - (0,_panel_interactions__WEBPACK_IMPORTED_MODULE_23__.blockPanelInteractions)();
1735 - return () => {
1736 - (0,_panel_interactions__WEBPACK_IMPORTED_MODULE_23__.unblockPanelInteractions)();
1737 - };
1738 - }, []);
1739 - const handleStopSync = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(classId => {
1740 - (0,_elementor_store__WEBPACK_IMPORTED_MODULE_6__.__dispatch)(_store__WEBPACK_IMPORTED_MODULE_13__.slice.actions.update({
1741 - style: {
1742 - id: classId,
1743 - sync_to_v3: false
1744 - }
1745 - }));
1746 - (0,_utils_tracking__WEBPACK_IMPORTED_MODULE_14__.trackGlobalClasses)({
1747 - event: 'classSyncToV3',
1748 - classId,
1749 - action: 'unsync'
1750 - });
1751 - setStopSyncConfirmation(null);
1752 - }, []);
1753 - const handleStartSync = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(classId => {
1754 - (0,_elementor_store__WEBPACK_IMPORTED_MODULE_6__.__dispatch)(_store__WEBPACK_IMPORTED_MODULE_13__.slice.actions.update({
1755 - style: {
1756 - id: classId,
1757 - sync_to_v3: true
1758 - }
1759 - }));
1760 - (0,_utils_tracking__WEBPACK_IMPORTED_MODULE_14__.trackGlobalClasses)({
1761 - event: 'classSyncToV3',
1762 - classId,
1763 - action: 'sync'
1764 - });
1765 - setStartSyncConfirmation(null);
1766 - }, []);
1767 - const handleStopSyncRequest = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(classId => {
1768 - if (!isStopSyncSuppressed) {
1769 - setStopSyncConfirmation(classId);
1770 - } else {
1771 - handleStopSync(classId);
1772 - }
1773 - }, [isStopSyncSuppressed, handleStopSync]);
1774 - usePreventUnload();
1775 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_7__.ErrorBoundary, {
1776 - fallback: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(ErrorBoundaryFallback, null)
1777 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_search_and_filter_context__WEBPACK_IMPORTED_MODULE_18__.SearchAndFilterProvider, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_7__.Stack, {
1778 - direction: "column",
1779 - sx: {
1780 - height: '100%',
1781 - width: '100%',
1782 - flex: 1,
1783 - minHeight: 0,
1784 - overflow: 'hidden'
1785 - }
1786 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_7__.Box, {
1787 - px: 2,
1788 - pb: 1
1789 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_7__.Stack, {
1790 - direction: "row",
1791 - alignItems: "center",
1792 - justifyContent: "space-between",
1793 - gap: 0.5,
1794 - sx: {
1795 - pb: 0.5
1796 - }
1797 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_7__.Box, {
1798 - sx: {
1799 - flexGrow: 1,
1800 - minWidth: 0
1801 - }
1802 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_search_and_filter_components_search_class_manager_search__WEBPACK_IMPORTED_MODULE_17__.ClassManagerSearch, null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_search_and_filter_components_filter_css_class_filter__WEBPACK_IMPORTED_MODULE_16__.CssClassFilter, null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(TotalCssClassCounter, null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_search_and_filter_components_filter_active_filters__WEBPACK_IMPORTED_MODULE_15__.ActiveFilters, null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_7__.Divider, null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_7__.Box, {
1803 - ref: setScrollElement,
1804 - px: 2,
1805 - sx: {
1806 - flexGrow: 1,
1807 - overflowY: 'auto',
1808 - minHeight: 0
1809 - }
1810 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_global_classes_list__WEBPACK_IMPORTED_MODULE_22__.GlobalClassesList, {
1811 - disabled: isPublishing,
1812 - scrollElement: scrollElement,
1813 - onStopSyncRequest: handleStopSyncRequest,
1814 - onStartSyncRequest: classId => setStartSyncConfirmation(classId)
1815 - })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_panels__WEBPACK_IMPORTED_MODULE_3__.PanelFooter, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_7__.Button, {
1816 - fullWidth: true,
1817 - size: "small",
1818 - color: "global",
1819 - variant: "contained",
1820 - onClick: publish,
1821 - disabled: !isDirty,
1822 - loading: isPublishing
1823 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_8__.__)('Save changes', 'elementor')))))), isActive && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_class_manager_introduction__WEBPACK_IMPORTED_MODULE_19__.ClassManagerIntroduction, null), startSyncConfirmation && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_start_sync_to_v3_modal__WEBPACK_IMPORTED_MODULE_24__.StartSyncToV3Modal, {
1824 - externalOpen: true,
1825 - classId: startSyncConfirmation,
1826 - onExternalClose: () => setStartSyncConfirmation(null),
1827 - onConfirm: () => handleStartSync(startSyncConfirmation)
1828 - }), stopSyncConfirmation && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(StopSyncConfirmationDialog, {
1829 - open: true,
1830 - onClose: () => setStopSyncConfirmation(null),
1831 - onConfirm: () => handleStopSync(stopSyncConfirmation)
1832 - }), isSaveChangesDialogOpen && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_4__.SaveChangesDialog, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_7__.DialogHeader, {
1833 - onClose: closeSaveChangesDialog,
1834 - logo: false
1835 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_4__.SaveChangesDialog.Title, null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_8__.__)('You have unsaved changes', 'elementor'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_4__.SaveChangesDialog.Content, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_4__.SaveChangesDialog.ContentText, null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_8__.__)('You have unsaved changes in the Class Manager.', 'elementor')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_4__.SaveChangesDialog.ContentText, null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_8__.__)('To avoid losing your updates, save your changes before leaving.', 'elementor'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_4__.SaveChangesDialog.Actions, {
1836 - actions: {
1837 - discard: {
1838 - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_8__.__)('Discard', 'elementor'),
1839 - action: () => {
1840 - resetAndClosePanel();
1841 - }
1842 - },
1843 - confirm: {
1844 - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_8__.__)('Save & Continue', 'elementor'),
1845 - action: async () => {
1846 - await publish();
1847 - closeSaveChangesDialog();
1848 - void onRequestClose();
1849 - }
1850 - }
1851 - }
1852 - })));
1853 -}
1854 -const ErrorBoundaryFallback = () => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_7__.Box, {
1855 - role: "alert",
1856 - sx: {
1857 - minHeight: '100%',
1858 - p: 2
1859 - }
1860 -}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_7__.Alert, {
1861 - severity: "error",
1862 - sx: {
1863 - mb: 2,
1864 - maxWidth: 400,
1865 - textAlign: 'center'
1866 - }
1867 -}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("strong", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_8__.__)('Something went wrong', 'elementor'))));
1868 -const usePreventUnload = () => {
1869 - const isDirty = (0,_hooks_use_dirty_state__WEBPACK_IMPORTED_MODULE_10__.useDirtyState)();
1870 - (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
1871 - const handleBeforeUnload = event => {
1872 - if (isDirty) {
1873 - event.preventDefault();
1874 - }
1875 - };
1876 - window.addEventListener('beforeunload', handleBeforeUnload);
1877 - return () => {
1878 - window.removeEventListener('beforeunload', handleBeforeUnload);
1879 - };
1880 - }, [isDirty]);
1881 -};
1882 -const usePublish = () => {
1883 - return (0,_elementor_query__WEBPACK_IMPORTED_MODULE_5__.useMutation)({
1884 - mutationFn: () => (0,_save_global_classes__WEBPACK_IMPORTED_MODULE_12__.saveGlobalClasses)({
1885 - context: 'frontend'
1886 - }),
1887 - onSuccess: async () => {
1888 - (0,_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_2__.setDocumentModifiedStatus)(false);
1889 - if ((0,_delete_class__WEBPACK_IMPORTED_MODULE_20__.hasDeletedItems)()) {
1890 - await (0,_delete_class__WEBPACK_IMPORTED_MODULE_20__.onDelete)();
1891 - }
1892 - }
1893 - });
1894 -};
1895 -const TotalCssClassCounter = () => {
1896 - const filters = (0,_hooks_use_filters__WEBPACK_IMPORTED_MODULE_11__.useFilters)();
1897 - const cssClasses = (0,_hooks_use_classes_order__WEBPACK_IMPORTED_MODULE_9__.useClassesOrder)();
1898 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_7__.Chip, {
1899 - size: 'small',
1900 - label: filters ? `${filters.length} / ${cssClasses?.length}` : cssClasses?.length
1901 - });
1902 -};
1903 -const StopSyncConfirmationDialog = ({
1904 - open,
1905 - onClose,
1906 - onConfirm
1907 -}) => {
1908 - const [, suppressStopSyncMessage] = (0,_elementor_editor_current_user__WEBPACK_IMPORTED_MODULE_1__.useSuppressedMessage)(STOP_SYNC_MESSAGE_KEY);
1909 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_4__.ConfirmationDialog, {
1910 - open: open,
1911 - onClose: onClose
1912 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_4__.ConfirmationDialog.Title, {
1913 - icon: _flipped_color_swatch_icon__WEBPACK_IMPORTED_MODULE_21__.FlippedColorSwatchIcon,
1914 - iconColor: "primary"
1915 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_8__.__)('Un-sync typography class', 'elementor')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_4__.ConfirmationDialog.Content, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_4__.ConfirmationDialog.ContentText, null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_8__.__)("You're about to stop syncing a typography class to Global Fonts.", 'elementor')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_4__.ConfirmationDialog.ContentText, {
1916 - sx: {
1917 - mt: 1
1918 - }
1919 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_8__.__)("Note that if it's being used anywhere, the affected elements will inherit the default typography.", 'elementor'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_4__.ConfirmationDialog.Actions, {
1920 - onClose: onClose,
1921 - onConfirm: onConfirm,
1922 - cancelLabel: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_8__.__)('Cancel', 'elementor'),
1923 - confirmLabel: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_8__.__)('Got it', 'elementor'),
1924 - color: "primary",
1925 - onSuppressMessage: suppressStopSyncMessage,
1926 - suppressLabel: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_8__.__)("Don't show again", 'elementor')
1927 - }));
1928 -};
1929 -
1930 -/***/ }),
1931 -
1932 -/***/ "./packages/packages/core/editor-global-classes/src/components/class-manager/delete-class.ts":
1933 -/*!***************************************************************************************************!*\
1934 - !*** ./packages/packages/core/editor-global-classes/src/components/class-manager/delete-class.ts ***!
1935 - \***************************************************************************************************/
1936 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1937 -
1938 -__webpack_require__.r(__webpack_exports__);
1939 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1940 -/* harmony export */ deleteClass: function() { return /* binding */ deleteClass; },
1941 -/* harmony export */ hasDeletedItems: function() { return /* binding */ hasDeletedItems; },
1942 -/* harmony export */ onDelete: function() { return /* binding */ onDelete; }
1943 -/* harmony export */ });
1944 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/store */ "@elementor/store");
1945 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_store__WEBPACK_IMPORTED_MODULE_0__);
1946 -/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../store */ "./packages/packages/core/editor-global-classes/src/store.ts");
1947 -/* harmony import */ var _utils_tracking__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/tracking */ "./packages/packages/core/editor-global-classes/src/utils/tracking.ts");
1948 -
1949 -
1950 -
1951 -let isDeleted = false;
1952 -const deleteClass = id => {
1953 - (0,_utils_tracking__WEBPACK_IMPORTED_MODULE_2__.trackGlobalClasses)({
1954 - event: 'classDeleted',
1955 - classId: id,
1956 - runAction: () => {
1957 - (0,_elementor_store__WEBPACK_IMPORTED_MODULE_0__.__dispatch)(_store__WEBPACK_IMPORTED_MODULE_1__.slice.actions.delete(id));
1958 - isDeleted = true;
1959 - }
1960 - });
1961 -};
1962 -const onDelete = async () => {
1963 - isDeleted = false;
1964 -};
1965 -const hasDeletedItems = () => isDeleted;
1966 -
1967 -/***/ }),
1968 -
1969 -/***/ "./packages/packages/core/editor-global-classes/src/components/class-manager/delete-confirmation-dialog.tsx":
1970 -/*!******************************************************************************************************************!*\
1971 - !*** ./packages/packages/core/editor-global-classes/src/components/class-manager/delete-confirmation-dialog.tsx ***!
1972 - \******************************************************************************************************************/
1973 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1974 -
1975 -__webpack_require__.r(__webpack_exports__);
1976 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1977 -/* harmony export */ DeleteConfirmationProvider: function() { return /* binding */ DeleteConfirmationProvider; },
1978 -/* harmony export */ useDeleteConfirmation: function() { return /* binding */ useDeleteConfirmation; }
1979 -/* harmony export */ });
1980 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1981 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1982 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-ui */ "@elementor/editor-ui");
1983 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__);
1984 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1985 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__);
1986 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1987 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__);
1988 -/* harmony import */ var _hooks_use_css_class_usage_by_id__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../hooks/use-css-class-usage-by-id */ "./packages/packages/core/editor-global-classes/src/hooks/use-css-class-usage-by-id.ts");
1989 -/* harmony import */ var _delete_class__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./delete-class */ "./packages/packages/core/editor-global-classes/src/components/class-manager/delete-class.ts");
1990 -
1991 -
1992 -
1993 -
1994 -
1995 -
1996 -
1997 -const context = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(null);
1998 -const DeleteConfirmationProvider = ({
1999 - children
2000 -}) => {
2001 - const [dialogProps, setDialogProps] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
2002 - const openDialog = props => {
2003 - setDialogProps(props);
2004 - };
2005 - const closeDialog = () => {
2006 - setDialogProps(null);
2007 - };
2008 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(context.Provider, {
2009 - value: {
2010 - openDialog,
2011 - closeDialog,
2012 - dialogProps
2013 - }
2014 - }, children, !!dialogProps && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(DeleteClassDialog, dialogProps));
2015 -};
2016 -const DeleteClassDialog = ({
2017 - label,
2018 - id
2019 -}) => {
2020 - const {
2021 - closeDialog
2022 - } = useDeleteConfirmation();
2023 - const {
2024 - data: {
2025 - total,
2026 - content
2027 - }
2028 - } = (0,_hooks_use_css_class_usage_by_id__WEBPACK_IMPORTED_MODULE_4__.useCssClassUsageByID)(id);
2029 - const handleConfirm = () => {
2030 - closeDialog();
2031 - (0,_delete_class__WEBPACK_IMPORTED_MODULE_5__.deleteClass)(id);
2032 - };
2033 -
2034 - // translators: %1: total usage count, %2: number of pages
2035 - const text = total && content.length ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('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', total.toString()).replace('%2', content.length.toString()) : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Will permanently remove it from your project and may affect the design across all elements using it. This action cannot be undone.', 'elementor');
2036 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__.ConfirmationDialog, {
2037 - open: true,
2038 - onClose: closeDialog
2039 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__.ConfirmationDialog.Title, null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Delete this class?', 'elementor')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__.ConfirmationDialog.Content, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__.ConfirmationDialog.ContentText, null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Deleting', 'elementor'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Typography, {
2040 - variant: "subtitle2",
2041 - component: "span"
2042 - }, "\xA0", label, "\xA0"), text)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__.ConfirmationDialog.Actions, {
2043 - onClose: closeDialog,
2044 - onConfirm: handleConfirm
2045 - }));
2046 -};
2047 -const useDeleteConfirmation = () => {
2048 - const contextValue = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(context);
2049 - if (!contextValue) {
2050 - throw new Error('useDeleteConfirmation must be used within a DeleteConfirmationProvider');
2051 - }
2052 - return contextValue;
2053 -};
2054 -
2055 -/***/ }),
2056 -
2057 -/***/ "./packages/packages/core/editor-global-classes/src/components/class-manager/duplicate-label-dialog.tsx":
2058 -/*!**************************************************************************************************************!*\
2059 - !*** ./packages/packages/core/editor-global-classes/src/components/class-manager/duplicate-label-dialog.tsx ***!
2060 - \**************************************************************************************************************/
2061 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2062 -
2063 -__webpack_require__.r(__webpack_exports__);
2064 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2065 -/* harmony export */ DuplicateLabelDialog: function() { return /* binding */ DuplicateLabelDialog; }
2066 -/* harmony export */ });
2067 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2068 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2069 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-ui */ "@elementor/editor-ui");
2070 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__);
2071 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
2072 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_icons__WEBPACK_IMPORTED_MODULE_2__);
2073 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2074 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__);
2075 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2076 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__);
2077 -
2078 -
2079 -
2080 -
2081 -
2082 -const DUP_PREFIX = 'DUP_';
2083 -const DuplicateLabelDialog = ({
2084 - modifiedLabels,
2085 - onApprove
2086 -}) => {
2087 - const handleButtonClick = () => {
2088 - localStorage.setItem('elementor-global-classes-search', DUP_PREFIX);
2089 - onApprove?.();
2090 - (0,_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__.closeDialog)();
2091 - };
2092 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.DialogHeader, {
2093 - logo: false
2094 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Box, {
2095 - display: "flex",
2096 - alignItems: "center",
2097 - gap: 1
2098 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Icon, {
2099 - color: "secondary"
2100 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_2__.InfoCircleFilledIcon, {
2101 - fontSize: "medium"
2102 - })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Typography, {
2103 - variant: "subtitle1"
2104 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("We've published your page and updated class names.", 'elementor')))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.DialogContent, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Stack, {
2105 - spacing: 2,
2106 - direction: "column"
2107 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Typography, {
2108 - variant: "body2"
2109 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Some new classes used the same names as existing ones. To prevent conflicts, we added the prefix', 'elementor'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("strong", null, " ", DUP_PREFIX)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Box, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Box, {
2110 - sx: {
2111 - width: '100%',
2112 - display: 'flex',
2113 - gap: 2,
2114 - alignItems: 'flex-start'
2115 - }
2116 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Typography, {
2117 - variant: "subtitle2",
2118 - sx: {
2119 - fontWeight: 'bold',
2120 - flex: 1,
2121 - flexShrink: 1,
2122 - flexGrow: 1,
2123 - minWidth: 0
2124 - }
2125 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Before', 'elementor')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Typography, {
2126 - variant: "subtitle2",
2127 - sx: {
2128 - minWidth: '200px',
2129 - fontWeight: 'bold',
2130 - flexShrink: 0,
2131 - flexGrow: 0,
2132 - width: '200px',
2133 - maxWidth: '200px'
2134 - }
2135 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('After', 'elementor'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Divider, {
2136 - sx: {
2137 - mt: 0.5,
2138 - mb: 0.5
2139 - }
2140 - }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Stack, {
2141 - direction: "column",
2142 - gap: 0.5,
2143 - sx: {
2144 - pb: 2
2145 - }
2146 - }, Object.values(modifiedLabels).map(({
2147 - original,
2148 - modified
2149 - }, index) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Box, {
2150 - key: index,
2151 - sx: {
2152 - width: '100%',
2153 - display: 'flex',
2154 - gap: 2,
2155 - alignItems: 'flex-start'
2156 - }
2157 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Box, {
2158 - sx: {
2159 - flex: 1,
2160 - flexShrink: 1,
2161 - flexGrow: 1,
2162 - minWidth: 0
2163 - }
2164 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__.EllipsisWithTooltip, {
2165 - title: original
2166 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Typography, {
2167 - variant: "body2",
2168 - sx: {
2169 - color: 'text.secondary'
2170 - }
2171 - }, original))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Box, {
2172 - sx: {
2173 - minWidth: '200px',
2174 - flexShrink: 0,
2175 - flexGrow: 0,
2176 - width: '200px',
2177 - maxWidth: '200px'
2178 - }
2179 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__.EllipsisWithTooltip, {
2180 - title: modified
2181 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Typography, {
2182 - variant: "body2",
2183 - sx: {
2184 - color: 'text.primary'
2185 - }
2186 - }, modified)))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Box, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Alert, {
2187 - severity: "info",
2188 - size: "small",
2189 - color: "secondary"
2190 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("strong", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Your designs and classes are safe.', 'elementor')), (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Only the prefixes were added. Find them in Class Manager by searching', 'elementor'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("strong", null, DUP_PREFIX)))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.DialogActions, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Button, {
2191 - color: "secondary",
2192 - variant: "text",
2193 - onClick: handleButtonClick
2194 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Go to Class Manager', 'elementor')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Button, {
2195 - color: "secondary",
2196 - variant: "contained",
2197 - onClick: _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__.closeDialog
2198 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Done', 'elementor'))));
2199 -};
2200 -
2201 -/***/ }),
2202 -
2203 -/***/ "./packages/packages/core/editor-global-classes/src/components/class-manager/flipped-color-swatch-icon.tsx":
2204 -/*!*****************************************************************************************************************!*\
2205 - !*** ./packages/packages/core/editor-global-classes/src/components/class-manager/flipped-color-swatch-icon.tsx ***!
2206 - \*****************************************************************************************************************/
2207 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2208 -
2209 -__webpack_require__.r(__webpack_exports__);
2210 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2211 -/* harmony export */ FlippedColorSwatchIcon: function() { return /* binding */ FlippedColorSwatchIcon; }
2212 -/* harmony export */ });
2213 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2214 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2215 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
2216 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_icons__WEBPACK_IMPORTED_MODULE_1__);
2217 -function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2218 -
2219 -
2220 -const FlippedColorSwatchIcon = ({
2221 - sx,
2222 - ...props
2223 -}) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_1__.ColorSwatchIcon, _extends({
2224 - sx: {
2225 - transform: 'rotate(90deg)',
2226 - ...sx
2227 - }
2228 -}, props));
2229 -
2230 -/***/ }),
2231 -
2232 -/***/ "./packages/packages/core/editor-global-classes/src/components/class-manager/global-classes-list.tsx":
2233 -/*!***********************************************************************************************************!*\
2234 - !*** ./packages/packages/core/editor-global-classes/src/components/class-manager/global-classes-list.tsx ***!
2235 - \***********************************************************************************************************/
2236 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2237 -
2238 -__webpack_require__.r(__webpack_exports__);
2239 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2240 -/* harmony export */ GlobalClassesList: function() { return /* binding */ GlobalClassesList; }
2241 -/* harmony export */ });
2242 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2243 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2244 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/store */ "@elementor/store");
2245 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_store__WEBPACK_IMPORTED_MODULE_1__);
2246 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2247 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__);
2248 -/* harmony import */ var _tanstack_react_virtual__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @tanstack/react-virtual */ "./packages/node_modules/@tanstack/react-virtual/dist/esm/index.js");
2249 -/* harmony import */ var _tanstack_react_virtual__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @tanstack/react-virtual */ "./packages/node_modules/@tanstack/virtual-core/dist/esm/index.js");
2250 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2251 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__);
2252 -/* harmony import */ var _hooks_use_classes_order__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../hooks/use-classes-order */ "./packages/packages/core/editor-global-classes/src/hooks/use-classes-order.ts");
2253 -/* harmony import */ var _hooks_use_filters__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../hooks/use-filters */ "./packages/packages/core/editor-global-classes/src/hooks/use-filters.ts");
2254 -/* harmony import */ var _hooks_use_ordered_classes__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../hooks/use-ordered-classes */ "./packages/packages/core/editor-global-classes/src/hooks/use-ordered-classes.ts");
2255 -/* harmony import */ var _load_existing_classes__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../load-existing-classes */ "./packages/packages/core/editor-global-classes/src/load-existing-classes.ts");
2256 -/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../store */ "./packages/packages/core/editor-global-classes/src/store.ts");
2257 -/* harmony import */ var _utils_tracking__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../utils/tracking */ "./packages/packages/core/editor-global-classes/src/utils/tracking.ts");
2258 -/* harmony import */ var _search_and_filter_context__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../search-and-filter/context */ "./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx");
2259 -/* harmony import */ var _class_item__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./class-item */ "./packages/packages/core/editor-global-classes/src/components/class-manager/class-item.tsx");
2260 -/* harmony import */ var _delete_confirmation_dialog__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./delete-confirmation-dialog */ "./packages/packages/core/editor-global-classes/src/components/class-manager/delete-confirmation-dialog.tsx");
2261 -/* harmony import */ var _flipped_color_swatch_icon__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./flipped-color-swatch-icon */ "./packages/packages/core/editor-global-classes/src/components/class-manager/flipped-color-swatch-icon.tsx");
2262 -/* harmony import */ var _not_found__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./not-found */ "./packages/packages/core/editor-global-classes/src/components/class-manager/not-found.tsx");
2263 -/* harmony import */ var _sortable__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./sortable */ "./packages/packages/core/editor-global-classes/src/components/class-manager/sortable.tsx");
2264 -
2265 -
2266 -
2267 -
2268 -
2269 -
2270 -
2271 -
2272 -
2273 -
2274 -
2275 -
2276 -
2277 -
2278 -
2279 -
2280 -
2281 -
2282 -const ROW_HEIGHT = 40;
2283 -const OVERSCAN = 6;
2284 -const GlobalClassesList = ({
2285 - disabled,
2286 - scrollElement,
2287 - onStopSyncRequest,
2288 - onStartSyncRequest
2289 -}) => {
2290 - const {
2291 - search: {
2292 - debouncedValue: searchValue
2293 - }
2294 - } = (0,_search_and_filter_context__WEBPACK_IMPORTED_MODULE_12__.useSearchAndFilters)();
2295 - const cssClasses = (0,_hooks_use_ordered_classes__WEBPACK_IMPORTED_MODULE_8__.useOrderedClasses)();
2296 - const dispatch = (0,_elementor_store__WEBPACK_IMPORTED_MODULE_1__.__useDispatch)();
2297 - const filters = (0,_hooks_use_filters__WEBPACK_IMPORTED_MODULE_7__.useFilters)();
2298 - const [draggedItemId, setDraggedItemId] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
2299 - const [loading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({});
2300 - const addLoadingClass = classId => setLoading(prev => ({
2301 - ...prev,
2302 - [classId]: true
2303 - }));
2304 - const removeLoadingClass = classId => setLoading(prev => {
2305 - const {
2306 - [classId]: _,
2307 - ...rest
2308 - } = prev;
2309 - return rest;
2310 - });
2311 - const draggedItemLabel = cssClasses.find(cssClass => cssClass.id === draggedItemId)?.label ?? '';
2312 - const [classesOrder, reorderClasses] = useReorder(draggedItemId, setDraggedItemId, draggedItemLabel ?? '');
2313 - const filteredCssClasses = useFilteredCssClasses();
2314 - const virtualizer = (0,_tanstack_react_virtual__WEBPACK_IMPORTED_MODULE_3__.useVirtualizer)({
2315 - count: filteredCssClasses.length,
2316 - getScrollElement: () => scrollElement ?? null,
2317 - estimateSize: () => ROW_HEIGHT,
2318 - overscan: OVERSCAN,
2319 - getItemKey: index => filteredCssClasses[index].id,
2320 - // Keep the actively dragged row mounted even when scrolled out of view.
2321 - // SortableItem unregisters its render on unmount, which would make the
2322 - // DragOverlay clone disappear mid-drag.
2323 - rangeExtractor: range => {
2324 - const indices = new Set((0,_tanstack_react_virtual__WEBPACK_IMPORTED_MODULE_4__.defaultRangeExtractor)(range));
2325 - if (draggedItemId) {
2326 - const draggedItemIndex = filteredCssClasses.findIndex(cssClass => cssClass.id === draggedItemId);
2327 - if (draggedItemIndex >= 0) {
2328 - indices.add(draggedItemIndex);
2329 - }
2330 - }
2331 - return [...indices].sort((a, b) => a - b);
2332 - }
2333 - });
2334 - (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
2335 - const handler = event => {
2336 - if (event.key === 'z' && (event.ctrlKey || event.metaKey)) {
2337 - event.stopImmediatePropagation();
2338 - event.preventDefault();
2339 - if (event.shiftKey) {
2340 - dispatch(_store__WEBPACK_IMPORTED_MODULE_10__.slice.actions.redo());
2341 - return;
2342 - }
2343 - dispatch(_store__WEBPACK_IMPORTED_MODULE_10__.slice.actions.undo());
2344 - }
2345 - };
2346 - window.addEventListener('keydown', handler, {
2347 - capture: true
2348 - });
2349 - return () => window.removeEventListener('keydown', handler);
2350 - }, [dispatch]);
2351 - if (!cssClasses?.length) {
2352 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(EmptyState, null);
2353 - }
2354 - const notFoundType = (0,_not_found__WEBPACK_IMPORTED_MODULE_16__.getNotFoundType)(searchValue, filters, filteredCssClasses);
2355 - if (notFoundType) {
2356 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_not_found__WEBPACK_IMPORTED_MODULE_16__.NotFound, {
2357 - notFoundType: notFoundType
2358 - });
2359 - }
2360 - const isFiltersApplied = filters?.length || searchValue;
2361 - const allowSorting = filteredCssClasses.length > 1 && !isFiltersApplied;
2362 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_delete_confirmation_dialog__WEBPACK_IMPORTED_MODULE_14__.DeleteConfirmationProvider, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.List, {
2363 - sx: {
2364 - position: 'relative',
2365 - display: 'block',
2366 - height: virtualizer.getTotalSize(),
2367 - padding: 0
2368 - }
2369 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_sortable__WEBPACK_IMPORTED_MODULE_17__.SortableProvider, {
2370 - value: classesOrder,
2371 - onChange: reorderClasses,
2372 - onDragStart: event => setDraggedItemId(event.active.id),
2373 - onDragEnd: () => setDraggedItemId(null),
2374 - onDragCancel: () => setDraggedItemId(null),
2375 - disableDragOverlay: !allowSorting
2376 - }, virtualizer.getVirtualItems().map(virtualRow => {
2377 - const cssClass = filteredCssClasses[virtualRow.index];
2378 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_sortable__WEBPACK_IMPORTED_MODULE_17__.SortableItem, {
2379 - key: virtualRow.key,
2380 - id: cssClass.id,
2381 - style: {
2382 - position: 'absolute',
2383 - top: virtualRow.start,
2384 - left: 0,
2385 - width: '100%'
2386 - }
2387 - }, ({
2388 - isDragged,
2389 - isDragPlaceholder,
2390 - triggerProps,
2391 - triggerStyle
2392 - }) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_class_item__WEBPACK_IMPORTED_MODULE_13__.ClassItem, {
2393 - id: cssClass.id,
2394 - label: cssClass.label,
2395 - renameClass: async newLabel => {
2396 - addLoadingClass(cssClass.id);
2397 - try {
2398 - (0,_utils_tracking__WEBPACK_IMPORTED_MODULE_11__.trackGlobalClasses)({
2399 - event: 'classRenamed',
2400 - classId: cssClass.id,
2401 - oldValue: cssClass.label,
2402 - newValue: newLabel,
2403 - source: 'class-manager'
2404 - });
2405 - void (await (0,_load_existing_classes__WEBPACK_IMPORTED_MODULE_9__.loadExistingClasses)([cssClass.id]));
2406 - dispatch(_store__WEBPACK_IMPORTED_MODULE_10__.slice.actions.update({
2407 - style: {
2408 - id: cssClass.id,
2409 - label: newLabel
2410 - }
2411 - }));
2412 - } finally {
2413 - removeLoadingClass(cssClass.id);
2414 - }
2415 - },
2416 - selected: isDragged,
2417 - disabled: disabled || isDragPlaceholder || loading[cssClass.id],
2418 - sortableTriggerProps: {
2419 - ...triggerProps,
2420 - style: triggerStyle
2421 - },
2422 - showSortIndicator: allowSorting,
2423 - syncToV3: cssClass.sync_to_v3,
2424 - onToggleSync: (id, newValue) => {
2425 - if (!newValue && onStopSyncRequest) {
2426 - onStopSyncRequest(id);
2427 - } else if (newValue && onStartSyncRequest) {
2428 - onStartSyncRequest(id);
2429 - } else {
2430 - dispatch(_store__WEBPACK_IMPORTED_MODULE_10__.slice.actions.update({
2431 - style: {
2432 - id,
2433 - sync_to_v3: newValue
2434 - }
2435 - }));
2436 - }
2437 - }
2438 - }));
2439 - }))));
2440 -};
2441 -const EmptyState = () => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Stack, {
2442 - alignItems: "center",
2443 - gap: 1.5,
2444 - pt: 10,
2445 - px: 0.5,
2446 - maxWidth: "260px",
2447 - margin: "auto"
2448 -}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_flipped_color_swatch_icon__WEBPACK_IMPORTED_MODULE_15__.FlippedColorSwatchIcon, {
2449 - fontSize: "large"
2450 -}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(StyledHeader, {
2451 - variant: "subtitle2",
2452 - component: "h2",
2453 - color: "text.secondary"
2454 -}, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('There are no global classes yet.', 'elementor')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Typography, {
2455 - align: "center",
2456 - variant: "caption",
2457 - color: "text.secondary"
2458 -}, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('CSS classes created in the editor panel will appear here. Once they are available, you can arrange their hierarchy, rename them, or delete them as needed.', 'elementor')));
2459 -
2460 -// Override panel reset styles.
2461 -const StyledHeader = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.styled)(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Typography)(({
2462 - theme,
2463 - variant
2464 -}) => ({
2465 - '&.MuiTypography-root': {
2466 - ...theme.typography[variant]
2467 - }
2468 -}));
2469 -const useReorder = (draggedItemId, setDraggedItemId, draggedItemLabel) => {
2470 - const dispatch = (0,_elementor_store__WEBPACK_IMPORTED_MODULE_1__.__useDispatch)();
2471 - const order = (0,_hooks_use_classes_order__WEBPACK_IMPORTED_MODULE_6__.useClassesOrder)();
2472 - const reorder = newIds => {
2473 - dispatch(_store__WEBPACK_IMPORTED_MODULE_10__.slice.actions.setOrder(newIds));
2474 - if (draggedItemId) {
2475 - (0,_utils_tracking__WEBPACK_IMPORTED_MODULE_11__.trackGlobalClasses)({
2476 - event: 'classManagerReorder',
2477 - classId: draggedItemId,
2478 - classTitle: draggedItemLabel
2479 - });
2480 - setDraggedItemId(null);
2481 - }
2482 - };
2483 - return [order, reorder];
2484 -};
2485 -const useFilteredCssClasses = () => {
2486 - const cssClasses = (0,_hooks_use_ordered_classes__WEBPACK_IMPORTED_MODULE_8__.useOrderedClasses)();
2487 - const {
2488 - search: {
2489 - debouncedValue: searchValue
2490 - }
2491 - } = (0,_search_and_filter_context__WEBPACK_IMPORTED_MODULE_12__.useSearchAndFilters)();
2492 - const filters = (0,_hooks_use_filters__WEBPACK_IMPORTED_MODULE_7__.useFilters)();
2493 - const lowercaseLabels = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => cssClasses.map(cssClass => ({
2494 - ...cssClass,
2495 - lowerLabel: cssClass.label.toLowerCase()
2496 - })), [cssClasses]);
2497 - const filteredClasses = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {
2498 - const normalizedSearch = searchValue.replace(/[^a-zA-Z0-9_-]/g, '').toLowerCase();
2499 - if (normalizedSearch.length > 1) {
2500 - return lowercaseLabels.filter(cssClass => cssClass.lowerLabel.includes(normalizedSearch));
2501 - }
2502 - return cssClasses;
2503 - }, [searchValue, cssClasses, lowercaseLabels]);
2504 - return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {
2505 - if (filters && filters.length > 0) {
2506 - return filteredClasses.filter(cssClass => filters.includes(cssClass.id));
2507 - }
2508 - return filteredClasses;
2509 - }, [filteredClasses, filters]);
2510 -};
2511 -
2512 -/***/ }),
2513 -
2514 -/***/ "./packages/packages/core/editor-global-classes/src/components/class-manager/not-found.tsx":
2515 -/*!*************************************************************************************************!*\
2516 - !*** ./packages/packages/core/editor-global-classes/src/components/class-manager/not-found.tsx ***!
2517 - \*************************************************************************************************/
2518 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2519 -
2520 -__webpack_require__.r(__webpack_exports__);
2521 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2522 -/* harmony export */ NotFound: function() { return /* binding */ NotFound; },
2523 -/* harmony export */ NotFoundLayout: function() { return /* binding */ NotFoundLayout; },
2524 -/* harmony export */ getNotFoundType: function() { return /* binding */ getNotFoundType; }
2525 -/* harmony export */ });
2526 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2527 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2528 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
2529 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_icons__WEBPACK_IMPORTED_MODULE_1__);
2530 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2531 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__);
2532 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2533 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__);
2534 -/* harmony import */ var _search_and_filter_context__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../search-and-filter/context */ "./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx");
2535 -function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2536 -
2537 -
2538 -
2539 -
2540 -
2541 -const getNotFoundType = (searchValue, filters, filteredClasses) => {
2542 - const searchNotFound = filteredClasses.length <= 0 && searchValue.length > 1;
2543 - const filterNotFound = filters && filters.length === 0;
2544 - const filterAndSearchNotFound = searchNotFound && filterNotFound;
2545 - if (filterAndSearchNotFound) {
2546 - return 'filterAndSearch';
2547 - }
2548 - if (searchNotFound) {
2549 - return 'search';
2550 - }
2551 - if (filterNotFound) {
2552 - return 'filter';
2553 - }
2554 - return undefined;
2555 -};
2556 -const notFound = {
2557 - filterAndSearch: {
2558 - mainText: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Sorry, nothing matched.', 'elementor'),
2559 - sceneryText: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Try something else.', 'elementor'),
2560 - icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_1__.PhotoIcon, {
2561 - color: "inherit",
2562 - fontSize: "large"
2563 - })
2564 - },
2565 - search: {
2566 - mainText: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Sorry, nothing matched', 'elementor'),
2567 - sceneryText: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Clear your input and try something else.', 'elementor'),
2568 - icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_1__.PhotoIcon, {
2569 - color: "inherit",
2570 - fontSize: "large"
2571 - })
2572 - },
2573 - filter: {
2574 - mainText: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Sorry, nothing matched that search.', 'elementor'),
2575 - sceneryText: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Clear the filters and try something else.', 'elementor'),
2576 - icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_1__.ColorSwatchIcon, {
2577 - color: "inherit",
2578 - fontSize: "large"
2579 - })
2580 - }
2581 -};
2582 -const NotFound = ({
2583 - notFoundType
2584 -}) => {
2585 - const {
2586 - search: {
2587 - onClearSearch,
2588 - inputValue
2589 - },
2590 - filters: {
2591 - onClearFilter
2592 - }
2593 - } = (0,_search_and_filter_context__WEBPACK_IMPORTED_MODULE_4__.useSearchAndFilters)();
2594 - switch (notFoundType) {
2595 - case 'filter':
2596 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(NotFoundLayout, _extends({}, notFound.filter, {
2597 - onClear: onClearFilter
2598 - }));
2599 - case 'search':
2600 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(NotFoundLayout, _extends({}, notFound.search, {
2601 - searchValue: inputValue,
2602 - onClear: onClearSearch
2603 - }));
2604 - case 'filterAndSearch':
2605 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(NotFoundLayout, _extends({}, notFound.filterAndSearch, {
2606 - onClear: () => {
2607 - onClearFilter();
2608 - onClearSearch();
2609 - }
2610 - }));
2611 - }
2612 -};
2613 -const NotFoundLayout = ({
2614 - onClear,
2615 - searchValue,
2616 - mainText,
2617 - sceneryText,
2618 - icon
2619 -}) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Stack, {
2620 - color: 'text.secondary',
2621 - pt: 5,
2622 - alignItems: "center",
2623 - gap: 1,
2624 - overflow: 'hidden',
2625 - justifySelf: 'center'
2626 -}, icon, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Box, {
2627 - sx: {
2628 - width: '100%'
2629 - }
2630 -}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Typography, {
2631 - align: "center",
2632 - variant: "subtitle2",
2633 - color: "inherit"
2634 -}, mainText), searchValue && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Typography, {
2635 - variant: "subtitle2",
2636 - color: "inherit",
2637 - sx: {
2638 - display: 'flex',
2639 - width: '100%',
2640 - justifyContent: 'center'
2641 - }
2642 -}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", null, "\u201C"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", {
2643 - style: {
2644 - maxWidth: '80%',
2645 - overflow: 'hidden',
2646 - textOverflow: 'ellipsis'
2647 - }
2648 -}, searchValue), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", null, "\u201D."))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Typography, {
2649 - align: "center",
2650 - variant: "caption",
2651 - color: "inherit"
2652 -}, sceneryText), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Typography, {
2653 - align: "center",
2654 - variant: "caption",
2655 - color: "inherit"
2656 -}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Link, {
2657 - color: "secondary",
2658 - variant: "caption",
2659 - component: "button",
2660 - onClick: onClear
2661 -}, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Clear & try again', 'elementor'))));
2662 -
2663 -/***/ }),
2664 -
2665 -/***/ "./packages/packages/core/editor-global-classes/src/components/class-manager/panel-interactions.ts":
2666 -/*!*********************************************************************************************************!*\
2667 - !*** ./packages/packages/core/editor-global-classes/src/components/class-manager/panel-interactions.ts ***!
2668 - \*********************************************************************************************************/
2669 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2670 -
2671 -__webpack_require__.r(__webpack_exports__);
2672 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2673 -/* harmony export */ blockPanelInteractions: function() { return /* binding */ blockPanelInteractions; },
2674 -/* harmony export */ unblockPanelInteractions: function() { return /* binding */ unblockPanelInteractions; }
2675 -/* harmony export */ });
2676 -function blockPanelInteractions() {
2677 - const extendedWindow = window;
2678 - extendedWindow.$e?.components?.get?.('panel')?.blockUserInteractions?.();
2679 -}
2680 -function unblockPanelInteractions() {
2681 - const extendedWindow = window;
2682 - extendedWindow.$e?.components?.get?.('panel')?.unblockUserInteractions?.();
2683 -}
2684 -
2685 -/***/ }),
2686 -
2687 -/***/ "./packages/packages/core/editor-global-classes/src/components/class-manager/sortable.tsx":
2688 -/*!************************************************************************************************!*\
2689 - !*** ./packages/packages/core/editor-global-classes/src/components/class-manager/sortable.tsx ***!
2690 - \************************************************************************************************/
2691 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2692 -
2693 -__webpack_require__.r(__webpack_exports__);
2694 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2695 -/* harmony export */ SortableItem: function() { return /* binding */ SortableItem; },
2696 -/* harmony export */ SortableProvider: function() { return /* binding */ SortableProvider; },
2697 -/* harmony export */ SortableTrigger: function() { return /* binding */ SortableTrigger; }
2698 -/* harmony export */ });
2699 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2700 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2701 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
2702 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_icons__WEBPACK_IMPORTED_MODULE_1__);
2703 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2704 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__);
2705 -function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2706 -
2707 -
2708 -
2709 -const SortableProvider = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.UnstableSortableProvider, _extends({
2710 - restrictAxis: true,
2711 - variant: "static",
2712 - dragPlaceholderStyle: {
2713 - visibility: 'hidden'
2714 - }
2715 -}, props));
2716 -const SortableTrigger = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(StyledSortableTrigger, _extends({}, props, {
2717 - role: "button",
2718 - className: "class-item-sortable-trigger",
2719 - "aria-label": "sort"
2720 -}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_1__.GripVerticalIcon, {
2721 - fontSize: "tiny"
2722 -}));
2723 -const SortableItem = ({
2724 - children,
2725 - id,
2726 - style,
2727 - ...props
2728 -}) => {
2729 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.UnstableSortableItem, _extends({}, props, {
2730 - id: id,
2731 - render: ({
2732 - itemProps,
2733 - isDragged,
2734 - triggerProps,
2735 - itemStyle,
2736 - triggerStyle,
2737 - dropIndicationStyle,
2738 - showDropIndication,
2739 - isDragOverlay,
2740 - isDragPlaceholder
2741 - }) => {
2742 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Box, _extends({}, itemProps, {
2743 - style: {
2744 - ...itemStyle,
2745 - ...(!isDragOverlay ? style : null)
2746 - },
2747 - component: 'li',
2748 - role: "listitem",
2749 - sx: {
2750 - backgroundColor: isDragOverlay ? 'background.paper' : undefined
2751 - }
2752 - }), children({
2753 - itemProps,
2754 - isDragged,
2755 - triggerProps,
2756 - itemStyle,
2757 - triggerStyle,
2758 - isDragPlaceholder
2759 - }), showDropIndication && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(SortableItemIndicator, {
2760 - style: dropIndicationStyle
2761 - }));
2762 - }
2763 - }));
2764 -};
2765 -const StyledSortableTrigger = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.styled)('div')(({
2766 - theme
2767 -}) => ({
2768 - position: 'absolute',
2769 - left: 0,
2770 - top: '50%',
2771 - transform: `translate( -${theme.spacing(1.5)}, -50% )`,
2772 - color: theme.palette.action.active
2773 -}));
2774 -const SortableItemIndicator = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.styled)((0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Box))`
1 +/*! For license information please see editor-global-classes.js.LICENSE.txt */
2 +!function(){"use strict";var e={"./packages/node_modules/@tanstack/react-virtual/dist/esm/index.js":function(e,t,s){s.r(t),s.d(t,{Virtualizer:function(){return r.Virtualizer},approxEqual:function(){return r.approxEqual},debounce:function(){return r.debounce},defaultKeyExtractor:function(){return r.defaultKeyExtractor},defaultRangeExtractor:function(){return r.defaultRangeExtractor},elementScroll:function(){return r.elementScroll},measureElement:function(){return r.measureElement},memo:function(){return r.memo},notUndefined:function(){return r.notUndefined},observeElementOffset:function(){return r.observeElementOffset},observeElementRect:function(){return r.observeElementRect},observeWindowOffset:function(){return r.observeWindowOffset},observeWindowRect:function(){return r.observeWindowRect},useVirtualizer:function(){return useVirtualizer},useWindowVirtualizer:function(){return useWindowVirtualizer},windowScroll:function(){return r.windowScroll}});var a=s("react"),n=s("react-dom"),r=s("./packages/node_modules/@tanstack/virtual-core/dist/esm/index.js");const o="undefined"!=typeof document?a.useLayoutEffect:a.useEffect;function useVirtualizerBase({useFlushSync:e=!0,...t}){const s=a.useReducer(()=>({}),{})[1],l={...t,onChange:(a,r)=>{var o;e&&r?(0,n.flushSync)(s):s(),null==(o=t.onChange)||o.call(t,a,r)}},[i]=a.useState(()=>new r.Virtualizer(l));return i.setOptions(l),o(()=>i._didMount(),[]),o(()=>i._willUpdate()),i}function useVirtualizer(e){return useVirtualizerBase({observeElementRect:r.observeElementRect,observeElementOffset:r.observeElementOffset,scrollToFn:r.elementScroll,...e})}function useWindowVirtualizer(e){return useVirtualizerBase({getScrollElement:()=>"undefined"!=typeof document?window:null,observeElementRect:r.observeWindowRect,observeElementOffset:r.observeWindowOffset,scrollToFn:r.windowScroll,initialOffset:()=>"undefined"!=typeof document?window.scrollY:0,...e})}},"./packages/node_modules/@tanstack/virtual-core/dist/esm/index.js":function(e,t,s){s.r(t),s.d(t,{Virtualizer:function(){return Virtualizer},approxEqual:function(){return a.approxEqual},debounce:function(){return a.debounce},defaultKeyExtractor:function(){return defaultKeyExtractor},defaultRangeExtractor:function(){return defaultRangeExtractor},elementScroll:function(){return elementScroll},measureElement:function(){return measureElement},memo:function(){return a.memo},notUndefined:function(){return a.notUndefined},observeElementOffset:function(){return observeElementOffset},observeElementRect:function(){return observeElementRect},observeWindowOffset:function(){return observeWindowOffset},observeWindowRect:function(){return observeWindowRect},windowScroll:function(){return windowScroll}});var a=s("./packages/node_modules/@tanstack/virtual-core/dist/esm/utils.js");const getRect=e=>{const{offsetWidth:t,offsetHeight:s}=e;return{width:t,height:s}},defaultKeyExtractor=e=>e,defaultRangeExtractor=e=>{const t=Math.max(e.startIndex-e.overscan,0),s=Math.min(e.endIndex+e.overscan,e.count-1),a=[];for(let e=t;e<=s;e++)a.push(e);return a},observeElementRect=(e,t)=>{const s=e.scrollElement;if(!s)return;const a=e.targetWindow;if(!a)return;const handler=e=>{const{width:s,height:a}=e;t({width:Math.round(s),height:Math.round(a)})};if(handler(getRect(s)),!a.ResizeObserver)return()=>{};const n=new a.ResizeObserver(t=>{const run=()=>{const e=t[0];if(null==e?void 0:e.borderBoxSize){const t=e.borderBoxSize[0];if(t)return void handler({width:t.inlineSize,height:t.blockSize})}handler(getRect(s))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(run):run()});return n.observe(s,{box:"border-box"}),()=>{n.unobserve(s)}},n={passive:!0},observeWindowRect=(e,t)=>{const s=e.scrollElement;if(!s)return;const handler=()=>{t({width:s.innerWidth,height:s.innerHeight})};return handler(),s.addEventListener("resize",handler,n),()=>{s.removeEventListener("resize",handler)}},r="undefined"==typeof window||"onscrollend"in window,observeElementOffset=(e,t)=>{const s=e.scrollElement;if(!s)return;const o=e.targetWindow;if(!o)return;let l=0;const i=e.options.useScrollendEvent&&r?()=>{}:(0,a.debounce)(o,()=>{t(l,!1)},e.options.isScrollingResetDelay),createHandler=a=>()=>{const{horizontal:n,isRtl:r}=e.options;l=n?s.scrollLeft*(r?-1:1):s.scrollTop,i(),t(l,a)},c=createHandler(!0),d=createHandler(!1);s.addEventListener("scroll",c,n);const u=e.options.useScrollendEvent&&r;return u&&s.addEventListener("scrollend",d,n),()=>{s.removeEventListener("scroll",c),u&&s.removeEventListener("scrollend",d)}},observeWindowOffset=(e,t)=>{const s=e.scrollElement;if(!s)return;const o=e.targetWindow;if(!o)return;let l=0;const i=e.options.useScrollendEvent&&r?()=>{}:(0,a.debounce)(o,()=>{t(l,!1)},e.options.isScrollingResetDelay),createHandler=a=>()=>{l=s[e.options.horizontal?"scrollX":"scrollY"],i(),t(l,a)},c=createHandler(!0),d=createHandler(!1);s.addEventListener("scroll",c,n);const u=e.options.useScrollendEvent&&r;return u&&s.addEventListener("scrollend",d,n),()=>{s.removeEventListener("scroll",c),u&&s.removeEventListener("scrollend",d)}},measureElement=(e,t,s)=>{if(null==t?void 0:t.borderBoxSize){const e=t.borderBoxSize[0];if(e){return Math.round(e[s.options.horizontal?"inlineSize":"blockSize"])}}return e[s.options.horizontal?"offsetWidth":"offsetHeight"]},windowScroll=(e,{adjustments:t=0,behavior:s},a)=>{var n,r;const o=e+t;null==(r=null==(n=a.scrollElement)?void 0:n.scrollTo)||r.call(n,{[a.options.horizontal?"left":"top"]:o,behavior:s})},elementScroll=(e,{adjustments:t=0,behavior:s},a)=>{var n,r;const o=e+t;null==(r=null==(n=a.scrollElement)?void 0:n.scrollTo)||r.call(n,{[a.options.horizontal?"left":"top"]:o,behavior:s})};class Virtualizer{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this.itemSizeCache=new Map,this.laneAssignments=new Map,this.pendingMeasuredCacheIndexes=[],this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.now=()=>{var e,t,s;return(null==(s=null==(t=null==(e=this.targetWindow)?void 0:e.performance)?void 0:t.now)?void 0:s.call(t))??Date.now()},this.observer=(()=>{let e=null;const get=()=>e||(this.targetWindow&&this.targetWindow.ResizeObserver?e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{const run=()=>{const t=e.target,s=this.indexFromElement(t);t.isConnected?this.shouldMeasureDuringScroll(s)&&this.resizeItem(s,this.options.measureElement(t,e,this)):this.observer.unobserve(t)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(run):run()})}):null);return{disconnect:()=>{var t;null==(t=get())||t.disconnect(),e=null},observe:e=>{var t;return null==(t=get())?void 0:t.observe(e,{box:"border-box"})},unobserve:e=>{var t;return null==(t=get())?void 0:t.unobserve(e)}}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([t,s])=>{void 0===s&&delete e[t]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:defaultKeyExtractor,rangeExtractor:defaultRangeExtractor,onChange:()=>{},measureElement:measureElement,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:"estimate",...e}},this.notify=e=>{var t,s;null==(s=(t=this.options).onChange)||s.call(t,this,e)},this.maybeNotify=(0,a.memo)(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:"maybeNotify",debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),null!=this.rafId&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var e;const t=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==t){if(this.cleanup(),!t)return void this.maybeNotify();this.scrollElement=t,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=(null==(e=this.scrollElement)?void 0:e.window)??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{this.scrollAdjustments=0,this.scrollDirection=t?this.getScrollOffset()<e?"forward":"backward":null,this.scrollOffset=e,this.isScrolling=t,this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??("function"==typeof this.options.initialOffset?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{const s=new Map,a=new Map;for(let n=t-1;n>=0;n--){const t=e[n];if(s.has(t.lane))continue;const r=a.get(t.lane);if(null==r||t.end>r.end?a.set(t.lane,t):t.end<r.end&&s.set(t.lane,!0),s.size===this.options.lanes)break}return a.size===this.options.lanes?Array.from(a.values()).sort((e,t)=>e.end===t.end?e.index-t.index:e.end-t.end)[0]:void 0},this.getMeasurementOptions=(0,a.memo)(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode],(e,t,s,a,n,r,o)=>(void 0!==this.prevLanes&&this.prevLanes!==r&&(this.lanesChangedFlag=!0),this.prevLanes=r,this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:t,scrollMargin:s,getItemKey:a,enabled:n,lanes:r,laneAssignmentMode:o}),{key:!1}),this.getMeasurements=(0,a.memo)(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:t,scrollMargin:s,getItemKey:a,enabled:n,lanes:r,laneAssignmentMode:o},l)=>{if(!n)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>e)for(const t of this.laneAssignments.keys())t>=e&&this.laneAssignments.delete(t);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMeasuredCacheIndexes=[]),0!==this.measurementsCache.length||this.lanesSettling||(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));const i=this.lanesSettling?0:this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[],this.lanesSettling&&this.measurementsCache.length===e&&(this.lanesSettling=!1);const c=this.measurementsCache.slice(0,i),d=new Array(r).fill(void 0);for(let e=0;e<i;e++){const t=c[e];t&&(d[t.lane]=e)}for(let n=i;n<e;n++){const e=a(n),r=this.laneAssignments.get(n);let i,u;const p="estimate"===o||l.has(e);if(void 0!==r&&this.options.lanes>1){i=r;const e=d[i],a=void 0!==e?c[e]:void 0;u=a?a.end+this.options.gap:t+s}else{const e=1===this.options.lanes?c[n-1]:this.getFurthestMeasurement(c,n);u=e?e.end+this.options.gap:t+s,i=e?e.lane:n%this.options.lanes,this.options.lanes>1&&p&&this.laneAssignments.set(n,i)}const g=l.get(e),m="number"==typeof g?g:this.options.estimateSize(n),h=u+m;c[n]={index:n,start:u,size:m,end:h,key:e,lane:i},d[i]=n}return this.measurementsCache=c,c},{key:"getMeasurements",debug:()=>this.options.debug}),this.calculateRange=(0,a.memo)(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,s,a)=>this.range=e.length>0&&t>0?function calculateRange({measurements:e,outerSize:t,scrollOffset:s,lanes:a}){const n=e.length-1,getOffset=t=>e[t].start;if(e.length<=a)return{startIndex:0,endIndex:n};let r=findNearestBinarySearch(0,n,getOffset,s),o=r;if(1===a)for(;o<n&&e[o].end<s+t;)o++;else if(a>1){const l=Array(a).fill(0);for(;o<n&&l.some(e=>e<s+t);){const t=e[o];l[t.lane]=t.end,o++}const i=Array(a).fill(s+t);for(;r>=0&&i.some(e=>e>=s);){const t=e[r];i[t.lane]=t.start,r--}r=Math.max(0,r-r%a),o=Math.min(n,o+(a-1-o%a))}return{startIndex:r,endIndex:o}}({measurements:e,outerSize:t,scrollOffset:s,lanes:a}):null,{key:"calculateRange",debug:()=>this.options.debug}),this.getVirtualIndexes=(0,a.memo)(()=>{let e=null,t=null;const s=this.calculateRange();return s&&(e=s.startIndex,t=s.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,s,a,n)=>null===a||null===n?[]:e({startIndex:a,endIndex:n,overscan:t,count:s}),{key:"getVirtualIndexes",debug:()=>this.options.debug}),this.indexFromElement=e=>{const t=this.options.indexAttribute,s=e.getAttribute(t);return s?parseInt(s,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=e=>{var t;if(!this.scrollState||"smooth"!==this.scrollState.behavior)return!0;const s=this.scrollState.index??(null==(t=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))?void 0:t.index);if(void 0!==s&&this.range){const t=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),a=Math.max(0,s-t),n=Math.min(this.options.count-1,s+t);return e>=a&&e<=n}return!0},this.measureElement=e=>{if(!e)return void this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))});const t=this.indexFromElement(e),s=this.options.getItemKey(t),a=this.elementsCache.get(s);a!==e&&(a&&this.observer.unobserve(a),this.observer.observe(e),this.elementsCache.set(s,e)),this.isScrolling&&!this.scrollState||!this.shouldMeasureDuringScroll(t)||this.resizeItem(t,this.options.measureElement(e,void 0,this))},this.resizeItem=(e,t)=>{var s;const a=this.measurementsCache[e];if(!a)return;const n=t-(this.itemSizeCache.get(a.key)??a.size);0!==n&&("smooth"!==(null==(s=this.scrollState)?void 0:s.behavior)&&(void 0!==this.shouldAdjustScrollPositionOnItemSizeChange?this.shouldAdjustScrollPositionOnItemSizeChange(a,n,this):a.start<this.getScrollOffset()+this.scrollAdjustments)&&(this.options.debug&&console.info("correction",n),this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=n,behavior:void 0})),this.pendingMeasuredCacheIndexes.push(a.index),this.itemSizeCache=new Map(this.itemSizeCache.set(a.key,t)),this.notify(!1))},this.getVirtualItems=(0,a.memo)(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{const s=[];for(let a=0,n=e.length;a<n;a++){const n=t[e[a]];s.push(n)}return s},{key:"getVirtualItems",debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{const t=this.getMeasurements();if(0!==t.length)return(0,a.notUndefined)(t[findNearestBinarySearch(0,t.length-1,e=>(0,a.notUndefined)(t[e]).start,e)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{const e=this.scrollElement.document.documentElement;return this.options.horizontal?e.scrollWidth-this.scrollElement.innerWidth:e.scrollHeight-this.scrollElement.innerHeight}},this.getOffsetForAlignment=(e,t,s=0)=>{if(!this.scrollElement)return 0;const a=this.getSize(),n=this.getScrollOffset();"auto"===t&&(t=e>=n+a?"end":"start"),"center"===t?e+=(s-a)/2:"end"===t&&(e-=a);const r=this.getMaxScrollOffset();return Math.max(Math.min(r,e),0)},this.getOffsetForIndex=(e,t="auto")=>{e=Math.max(0,Math.min(e,this.options.count-1));const s=this.getSize(),a=this.getScrollOffset(),n=this.measurementsCache[e];if(!n)return;if("auto"===t)if(n.end>=a+s-this.options.scrollPaddingEnd)t="end";else{if(!(n.start<=a+this.options.scrollPaddingStart))return[a,t];t="start"}if("end"===t&&e===this.options.count-1)return[this.getMaxScrollOffset(),t];const r="end"===t?n.end+this.options.scrollPaddingEnd:n.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(r,t,n.size),t]},this.scrollToOffset=(e,{align:t="start",behavior:s="auto"}={})=>{const a=this.getOffsetForAlignment(e,t),n=this.now();this.scrollState={index:null,align:t,behavior:s,startedAt:n,lastTargetOffset:a,stableFrames:0},this._scrollToOffset(a,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollToIndex=(e,{align:t="auto",behavior:s="auto"}={})=>{e=Math.max(0,Math.min(e,this.options.count-1));const a=this.getOffsetForIndex(e,t);if(!a)return;const[n,r]=a,o=this.now();this.scrollState={index:e,align:r,behavior:s,startedAt:o,lastTargetOffset:n,stableFrames:0},this._scrollToOffset(n,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollBy=(e,{behavior:t="auto"}={})=>{const s=this.getScrollOffset()+e,a=this.now();this.scrollState={index:null,align:"start",behavior:t,startedAt:a,lastTargetOffset:s,stableFrames:0},this._scrollToOffset(s,{adjustments:void 0,behavior:t}),this.scheduleScrollReconcile()},this.getTotalSize=()=>{var e;const t=this.getMeasurements();let s;if(0===t.length)s=this.options.paddingStart;else if(1===this.options.lanes)s=(null==(e=t[t.length-1])?void 0:e.end)??0;else{const e=Array(this.options.lanes).fill(null);let a=t.length-1;for(;a>=0&&e.some(e=>null===e);){const s=t[a];null===e[s.lane]&&(e[s.lane]=s.end),a--}s=Math.max(...e.filter(e=>null!==e))}return Math.max(s-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:t,behavior:s})=>{this.options.scrollToFn(e,{behavior:s,adjustments:t},this)},this.measure=()=>{this.itemSizeCache=new Map,this.laneAssignments=new Map,this.notify(!1)},this.setOptions(e)}scheduleScrollReconcile(){this.targetWindow?null==this.rafId&&(this.rafId=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()})):this.scrollState=null}reconcileScroll(){if(!this.scrollState)return;if(!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3)return void(this.scrollState=null);const e=null!=this.scrollState.index?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,t=e?e[0]:this.scrollState.lastTargetOffset,s=t!==this.scrollState.lastTargetOffset;if(!s&&(0,a.approxEqual)(t,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=1)return void(this.scrollState=null)}else this.scrollState.stableFrames=0,s&&(this.scrollState.lastTargetOffset=t,this.scrollState.behavior="auto",this._scrollToOffset(t,{adjustments:void 0,behavior:"auto"}));this.scheduleScrollReconcile()}}const findNearestBinarySearch=(e,t,s,a)=>{for(;e<=t;){const n=(e+t)/2|0,r=s(n);if(r<a)e=n+1;else{if(!(r>a))return n;t=n-1}}return e>0?e-1:0}},"./packages/node_modules/@tanstack/virtual-core/dist/esm/utils.js":function(e,t,s){function memo(e,t,s){let a,n=s.initialDeps??[],r=!0;function memoizedFunction(){var o,l,i;let c;s.key&&(null==(o=s.debug)?void 0:o.call(s))&&(c=Date.now());const d=e();if(!(d.length!==n.length||d.some((e,t)=>n[t]!==e)))return a;let u;if(n=d,s.key&&(null==(l=s.debug)?void 0:l.call(s))&&(u=Date.now()),a=t(...d),s.key&&(null==(i=s.debug)?void 0:i.call(s))){const e=Math.round(100*(Date.now()-c))/100,t=Math.round(100*(Date.now()-u))/100,a=t/16,pad=(e,t)=>{for(e=String(e);e.length<t;)e=" "+e;return e};console.info(`%c⏱ ${pad(t,5)} /${pad(e,5)} ms`,`\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(0,Math.min(120-120*a,120))}deg 100% 31%);`,null==s?void 0:s.key)}return!(null==s?void 0:s.onChange)||r&&s.skipInitialOnChange||s.onChange(a),r=!1,a}return memoizedFunction.updateDeps=e=>{n=e},memoizedFunction}function notUndefined(e,t){if(void 0===e)throw new Error("Unexpected undefined"+(t?`: ${t}`:""));return e}s.r(t),s.d(t,{approxEqual:function(){return approxEqual},debounce:function(){return debounce},memo:function(){return memo},notUndefined:function(){return notUndefined}});const approxEqual=(e,t)=>Math.abs(e-t)<1.01,debounce=(e,t,s)=>{let a;return function(...n){e.clearTimeout(a),a=e.setTimeout(()=>t.apply(this,n),s)}}},"./packages/packages/core/editor-global-classes/service/css-class-usage-service.ts":function(e,t,s){s.r(t),s.d(t,{fetchCssClassUsage:function(){return fetchCssClassUsage}});var a=s("./packages/packages/core/editor-global-classes/src/api.ts"),n=s("./packages/packages/core/editor-global-classes/src/components/css-class-usage/utils.ts");const fetchCssClassUsage=async()=>{const e=await a.apiClient.usage();return(0,n.transformData)(e?.data?.data||{})}},"./packages/packages/core/editor-global-classes/src/api.ts":function(e,t,s){s.r(t),s.d(t,{API_ERROR_CODES:function(){return d},apiClient:function(){return c}});var a=s("@elementor/http-client");const n="/global-classes",r="elementor/v1",o=`${n}/usage`,l=`${n}/post`,i=`${n}/styles`;function saveGlobalClasses(e,t){return(0,a.httpService)().put(`${r}${n}`,t,{params:{context:e}})}const c={usage:()=>(0,a.httpService)().get(`${r}${o}`),all:(e="preview")=>(0,a.httpService)().get(`${r}${n}`,{params:{context:e}}),getStylesForPost:(e,t="preview")=>(0,a.httpService)().get(`${r}${l}`,{params:{context:t,post_id:e}}),getStylesByIds:(e,t="preview")=>(0,a.httpService)().get(`${r}${i}`,{params:{context:t,ids:e.join(",")}}),publish:e=>saveGlobalClasses("frontend",e),saveDraft:e=>saveGlobalClasses("preview",e)},d={DUPLICATED_LABEL:"DUPLICATED_LABEL"}},"./packages/packages/core/editor-global-classes/src/capabilities.ts":function(e,t,s){s.r(t),s.d(t,{UPDATE_CLASS_CAPABILITY_KEY:function(){return n},getCapabilities:function(){return getCapabilities}});var a=s("@elementor/editor-v1-adapters");const n="elementor_global_classes_update_class",getCapabilities=()=>{if((0,a.isExperimentActive)("global_classes_should_enforce_capabilities"))return{update:n,create:n,delete:n,updateProps:n}}},"./packages/packages/core/editor-global-classes/src/components/class-manager/class-item.tsx":function(e,t,s){s.r(t),s.d(t,{ClassItem:function(){return ClassItem}});var a=s("react"),n=s("@elementor/editor-styles-repository"),r=s("@elementor/editor-ui"),o=s("@elementor/icons"),l=s("@elementor/ui"),i=s("@wordpress/i18n"),c=s("./packages/packages/core/editor-global-classes/src/components/css-class-usage/components/index.ts"),d=s("./packages/packages/core/editor-global-classes/src/components/class-manager/delete-confirmation-dialog.tsx"),u=s("./packages/packages/core/editor-global-classes/src/components/class-manager/sortable.tsx");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var a in s)({}).hasOwnProperty.call(s,a)&&(e[a]=s[a])}return e},_extends.apply(null,arguments)}const ClassItem=({id:e,label:t,renameClass:s,selected:n,disabled:m,sortableTriggerProps:h,showSortIndicator:f,syncToV3:b,onToggleSync:y})=>{const v=(0,a.useRef)(null),{ref:k,openEditMode:C,isEditing:_,error:E,getProps:x}=(0,r.useEditable)({value:t,onSubmit:s,validation:validateLabel}),[S,w]=(0,a.useState)(""),{openDialog:I}=(0,d.useDeleteConfirmation)(),D=(0,l.usePopupState)({variant:"popover",disableAutoFocus:!0}),P=(S===e||n||D.isOpen)&&!m;return a.createElement(a.Fragment,null,a.createElement(l.Stack,{p:0},a.createElement(r.WarningInfotip,{open:Boolean(E),text:E??"",placement:"bottom",width:v.current?.getBoundingClientRect().width,offset:[0,-15]},a.createElement(p,{ref:v,dense:!0,disableGutters:!0,showSortIndicator:f,showActions:P||_,shape:"rounded",onDoubleClick:C,selected:P,disabled:m,focusVisibleClassName:"visible-class-item"},a.createElement(u.SortableTrigger,h),a.createElement(g,{isActive:_,isError:!!E},_?a.createElement(r.EditableField,_extends({ref:k,as:l.Typography,variant:"caption"},x())):a.createElement(r.EllipsisWithTooltip,{title:t,as:l.Typography,variant:"caption"})),a.createElement(l.Box,{className:"class-item-locator"},a.createElement(c.CssClassUsageTrigger,{id:e,onClick:w})),a.createElement(l.Tooltip,{placement:"top",className:"class-item-more-actions",title:(0,i.__)("More actions","elementor")},a.createElement(l.IconButton,_extends({size:"tiny"},(0,l.bindTrigger)(D),{"aria-label":"More actions"}),a.createElement(o.DotsVerticalIcon,{fontSize:"tiny"})))))),a.createElement(l.Menu,_extends({},(0,l.bindMenu)(D),{anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"}}),a.createElement(r.MenuListItem,{sx:{minWidth:"160px"},onClick:()=>{D.close(),C()}},a.createElement(l.Typography,{variant:"caption",sx:{color:"text.primary"}},(0,i.__)("Rename","elementor"))),y&&a.createElement(r.MenuListItem,{onClick:()=>{D.close(),y(e,!b)}},a.createElement(l.Stack,{direction:"row",alignItems:"center",gap:1},b?a.createElement(o.RefreshOffIcon,{fontSize:"tiny"}):a.createElement(o.RefreshIcon,{fontSize:"tiny"}),a.createElement(l.Typography,{variant:"caption",sx:{color:"text.primary"}},b?(0,i.__)("Stop syncing to Global Fonts","elementor"):(0,i.__)("Sync to Global Fonts","elementor")))),a.createElement(r.MenuListItem,{onClick:()=>{D.close(),I({id:e,label:t})}},a.createElement(l.Typography,{variant:"caption",sx:{color:"error.light"}},(0,i.__)("Delete","elementor")))))},p=(0,l.styled)(l.ListItemButton,{shouldForwardProp:e=>!["showActions","showSortIndicator"].includes(e)})(({showActions:e,showSortIndicator:t})=>`\n min-height: 36px;\n\n &.visible-class-item {\n box-shadow: none !important;\n }\n\n .class-item-locator {\n visibility: hidden;\n }\n\n .class-item-sortable-trigger {\n visibility: ${t&&e?"visible":"hidden"};\n }\n\n &:hover:not(:disabled) {\n .class-item-locator {\n visibility: visible;\n }\n\n .class-item-sortable-trigger {\n visibility: ${t?"visible":"hidden"};\n }\n }\n `),g=(0,l.styled)(l.Box,{shouldForwardProp:e=>!["isActive","isError"].includes(e)})(({theme:e,isActive:t,isError:s})=>({display:"flex",width:"100%",flexGrow:1,borderRadius:e.spacing(.5),border:getIndicatorBorder({isActive:t,isError:s,theme:e}),padding:`0 ${e.spacing(1)}`,marginLeft:t?e.spacing(1):0,minWidth:0})),getIndicatorBorder=({isActive:e,isError:t,theme:s})=>t?`2px solid ${s.palette.error.main}`:e?`2px solid ${s.palette.secondary.main}`:"none",validateLabel=e=>{const t=(0,n.validateStyleLabel)(e,"rename");return t.isValid?null:t.errorMessage}},"./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-button.tsx":function(e,t,s){s.r(t),s.d(t,{ClassManagerButton:function(){return ClassManagerButton}});var a=s("react"),n=s("@elementor/editor-documents"),r=s("@elementor/editor-styles-repository"),o=s("@elementor/editor-ui"),l=s("@elementor/editor-v1-adapters"),i=s("@elementor/ui"),c=s("@wordpress/i18n"),d=s("./packages/packages/core/editor-global-classes/src/global-classes-styles-provider.ts"),u=s("./packages/packages/core/editor-global-classes/src/hooks/use-prefetch-css-class-usage.ts"),p=s("./packages/packages/core/editor-global-classes/src/utils/tracking.ts"),g=s("./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-panel.tsx"),m=s("./packages/packages/core/editor-global-classes/src/components/class-manager/flipped-color-swatch-icon.tsx");const trackGlobalClassesButton=()=>{(0,p.trackGlobalClasses)({event:"classManagerOpened",source:"style-panel"})},ClassManagerButton=()=>{const e=(0,n.__useActiveDocument)(),{open:t}=(0,g.usePanelActions)(),{save:s}=(0,n.__useActiveDocumentActions)(),{open:p,close:h,isOpen:f}=(0,o.useDialog)(),{prefetchClassesUsage:b}=(0,u.usePrefetchCssClassUsage)(),{userCan:y}=(0,r.useUserStylesCapability)();if(!y(d.globalClassesStylesProvider.getKey()).update)return null;const toggleClassesManagerPanel=()=>{(0,l.isExperimentActive)("e_editor_design_system_panel")?window.dispatchEvent(new CustomEvent("elementor/toggle-design-system",{detail:{tab:"classes"}})):t()};return a.createElement(a.Fragment,null,a.createElement(i.Tooltip,{title:(0,c.__)("Class Manager","elementor"),placement:"top"},a.createElement(i.IconButton,{size:"tiny",onClick:()=>{e?.isDirty?p():(toggleClassesManagerPanel(),trackGlobalClassesButton(),b())},sx:{marginInlineEnd:-.75}},a.createElement(m.FlippedColorSwatchIcon,{fontSize:"tiny"}))),f&&a.createElement(o.SaveChangesDialog,null,a.createElement(o.SaveChangesDialog.Title,null,(0,c.__)("You have unsaved changes","elementor")),a.createElement(o.SaveChangesDialog.Content,null,a.createElement(o.SaveChangesDialog.ContentText,{sx:{mb:2}},(0,c.__)("To open the Class Manager, save your page first. You can't continue without saving.","elementor"))),a.createElement(o.SaveChangesDialog.Actions,{actions:{cancel:{label:(0,c.__)("Stay here","elementor"),action:h},confirm:{label:(0,c.__)("Save & Continue","elementor"),action:async()=>{await s(),h(),toggleClassesManagerPanel(),trackGlobalClassesButton(),b()}}}})))}},"./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-introduction.tsx":function(e,t,s){s.r(t),s.d(t,{ClassManagerIntroduction:function(){return ClassManagerIntroduction}});var a=s("react"),n=s("@elementor/editor-current-user"),r=s("@elementor/editor-ui"),o=s("@elementor/ui"),l=s("@wordpress/i18n");const ClassManagerIntroduction=()=>{const[e,t]=(0,n.useSuppressedMessage)("global-class-manager"),[s,i]=(0,a.useState)(!e);return a.createElement(r.IntroductionModal,{open:s,title:(0,l.__)("Class Manager","elementor"),handleClose:e=>{e||t(),i(!1)}},a.createElement(o.Image,{sx:{width:"100%",aspectRatio:"16 / 9"},src:"https://assets.elementor.com/packages/v1/images/class-manager-intro.svg",alt:""}),a.createElement(IntroductionContent,null))},IntroductionContent=()=>a.createElement(o.Box,{p:3},a.createElement(o.Typography,{variant:"body2"},(0,l.__)("The Class Manager lets you see all the classes you've created, plus adjust their priority, rename them, and delete unused classes to keep your CSS structured.","elementor")),a.createElement("br",null),a.createElement(o.Typography,{variant:"body2"},(0,l.__)("Remember, when editing an item within a specific class, any changes you make will apply across all elements in that class.","elementor")))},"./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-panel.tsx":function(e,t,s){s.r(t),s.d(t,{ClassManagerPanel:function(){return ClassManagerPanel},ClassManagerPanelEmbedded:function(){return ClassManagerPanelEmbedded},panel:function(){return A},usePanelActions:function(){return M}});var a=s("react"),n=s("@elementor/editor-current-user"),r=s("@elementor/editor-documents"),o=s("@elementor/editor-panels"),l=s("@elementor/editor-ui"),i=s("@elementor/editor-v1-adapters"),c=s("@elementor/icons"),d=s("@elementor/query"),u=s("@elementor/store"),p=s("@elementor/ui"),g=s("@wordpress/i18n"),m=s("./packages/packages/core/editor-global-classes/src/hooks/use-classes-order.ts"),h=s("./packages/packages/core/editor-global-classes/src/hooks/use-dirty-state.ts"),f=s("./packages/packages/core/editor-global-classes/src/hooks/use-filters.ts"),b=s("./packages/packages/core/editor-global-classes/src/save-global-classes.tsx"),y=s("./packages/packages/core/editor-global-classes/src/store.ts"),v=s("./packages/packages/core/editor-global-classes/src/utils/tracking.ts"),k=s("./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/active-filters.tsx"),C=s("./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/css-class-filter.tsx"),_=s("./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/search/class-manager-search.tsx"),E=s("./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx"),x=s("./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-introduction.tsx"),S=s("./packages/packages/core/editor-global-classes/src/components/class-manager/delete-class.ts"),w=s("./packages/packages/core/editor-global-classes/src/components/class-manager/flipped-color-swatch-icon.tsx"),I=s("./packages/packages/core/editor-global-classes/src/components/class-manager/global-classes-list.tsx"),D=s("./packages/packages/core/editor-global-classes/src/components/class-manager/panel-interactions.ts"),P=s("./packages/packages/core/editor-global-classes/src/components/class-manager/start-sync-to-v3-modal.tsx");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var a in s)({}).hasOwnProperty.call(s,a)&&(e[a]=s[a])}return e},_extends.apply(null,arguments)}const O="stop-sync-class",T="global-classes-manager";function ClassManagerPanelEmbedded({onRequestClose:e,onExposeCloseAttempt:t}){return a.createElement(ClassManagerPanelRoot,{embedded:!0,onRequestClose:e,onExposeCloseAttempt:t})}function ClassManagerPanel(){return a.createElement(ClassManagerPanelRoot,null)}const{panel:A,usePanelActions:M}=(0,o.__createPanel)({id:T,component:ClassManagerPanel,allowedEditModes:["edit",T],onOpen:()=>{(0,i.changeEditMode)(T),(0,D.blockPanelInteractions)()},onClose:async()=>{(0,i.changeEditMode)("edit"),await(0,r.reloadCurrentDocument)(),(0,D.unblockPanelInteractions)()},isOpenPreviousElement:!0});function ClassManagerPanelRoot({embedded:e=!1,onRequestClose:t,onExposeCloseAttempt:s}={}){const r=(0,h.useDirtyState)(),{close:i}=M(),c=(0,a.useMemo)(()=>e?t??(async()=>{}):i,[e,t,i]),{open:d,close:m,isOpen:f}=(0,l.useDialog)(),[b,S]=(0,a.useState)(null),[T,A]=(0,a.useState)(null),[L]=(0,n.useSuppressedMessage)(O),[z,F]=(0,a.useState)(null),{mutateAsync:R,isPending:G}=usePublish(),U=(0,a.useCallback)(()=>{r?d():c()},[r,d,c]);(0,a.useEffect)(()=>{if(e&&s)return s(()=>U()),()=>s(null)},[e,s,U]),(0,a.useEffect)(()=>{if(e)return(0,D.blockPanelInteractions)(),()=>{(0,D.unblockPanelInteractions)()}},[e]);const B=(0,a.useCallback)(e=>{(0,u.__dispatch)(y.slice.actions.update({style:{id:e,sync_to_v3:!1}})),(0,v.trackGlobalClasses)({event:"classSyncToV3",classId:e,action:"unsync"}),S(null)},[]),V=(0,a.useCallback)(e=>{(0,u.__dispatch)(y.slice.actions.update({style:{id:e,sync_to_v3:!0}})),(0,v.trackGlobalClasses)({event:"classSyncToV3",classId:e,action:"sync"}),A(null)},[]),j=(0,a.useCallback)(e=>{L?B(e):S(e)},[L,B]);usePreventUnload();const W=a.createElement(p.Box,{px:2,pb:1},a.createElement(p.Stack,{direction:"row",alignItems:"center",justifyContent:"space-between",gap:.5,sx:{pb:.5}},a.createElement(p.Box,{sx:e?{flexGrow:1,minWidth:0}:{flexGrow:1}},a.createElement(_.ClassManagerSearch,null)),a.createElement(C.CssClassFilter,null),e&&a.createElement(TotalCssClassCounter,null)),a.createElement(k.ActiveFilters,null)),q=a.createElement(p.Box,{ref:F,px:2,sx:{flexGrow:1,overflowY:"auto",...e?{minHeight:0}:{}}},a.createElement(I.GlobalClassesList,{disabled:G,scrollElement:z,onStopSyncRequest:j,onStartSyncRequest:e=>A(e)})),$=a.createElement(o.PanelFooter,null,a.createElement(p.Button,{fullWidth:!0,size:"small",color:"global",variant:"contained",onClick:R,disabled:!r,loading:G},(0,g.__)("Save changes","elementor"))),N=a.createElement(a.Fragment,null,T&&a.createElement(P.StartSyncToV3Modal,{externalOpen:!0,classId:T,onExternalClose:()=>A(null),onConfirm:()=>V(T)}),b&&a.createElement(StopSyncConfirmationDialog,{open:!0,onClose:()=>S(null),onConfirm:()=>B(b)}),f&&a.createElement(l.SaveChangesDialog,null,a.createElement(p.DialogHeader,{onClose:m,logo:!1},a.createElement(l.SaveChangesDialog.Title,null,(0,g.__)("You have unsaved changes","elementor"))),a.createElement(l.SaveChangesDialog.Content,null,a.createElement(l.SaveChangesDialog.ContentText,null,(0,g.__)("You have unsaved changes in the Class Manager.","elementor")),a.createElement(l.SaveChangesDialog.ContentText,null,(0,g.__)("To avoid losing your updates, save your changes before leaving.","elementor"))),a.createElement(l.SaveChangesDialog.Actions,{actions:{discard:{label:(0,g.__)("Discard","elementor"),action:()=>{(0,u.__dispatch)(y.slice.actions.resetToInitialState({context:"frontend"})),m()}},confirm:{label:(0,g.__)("Save & Continue","elementor"),action:async()=>{await R(),m(),c()}}}}))),H=e?a.createElement(p.Stack,{direction:"column",sx:{height:"100%",width:"100%",flex:1,minHeight:0,overflow:"hidden"}},W,a.createElement(p.Divider,null),q,$):a.createElement(o.Panel,null,a.createElement(o.PanelHeader,null,a.createElement(p.Stack,{p:1,pl:2,width:"100%",direction:"row",alignItems:"center"},a.createElement(p.Stack,{width:"100%",direction:"row",gap:1},a.createElement(o.PanelHeaderTitle,{sx:{display:"flex",alignItems:"center",gap:.5}},a.createElement(w.FlippedColorSwatchIcon,{fontSize:"inherit"}),(0,g.__)("Class Manager","elementor")),a.createElement(TotalCssClassCounter,null)),a.createElement(ClassPanelCloseButton,{disabled:G,onClose:()=>{r?d():i()}}))),a.createElement(o.PanelBody,{sx:{display:"flex",flexDirection:"column",height:"100%"}},W,a.createElement(p.Divider,null),q),$),Y=a.createElement(a.Fragment,null,a.createElement(p.ErrorBoundary,{fallback:a.createElement(ErrorBoundaryFallback,null)},a.createElement(E.SearchAndFilterProvider,null,H)),a.createElement(x.ClassManagerIntroduction,null),N);return e?Y:a.createElement(l.ThemeProvider,null,Y)}const ClassPanelCloseButton=({onClose:e,sx:t,...s})=>a.createElement(p.IconButton,_extends({size:"small",color:"secondary",onClick:e,"aria-label":"Close",sx:{marginLeft:"auto",...t}},s),a.createElement(c.XIcon,{fontSize:"small"})),ErrorBoundaryFallback=()=>a.createElement(p.Box,{role:"alert",sx:{minHeight:"100%",p:2}},a.createElement(p.Alert,{severity:"error",sx:{mb:2,maxWidth:400,textAlign:"center"}},a.createElement("strong",null,(0,g.__)("Something went wrong","elementor")))),usePreventUnload=()=>{const e=(0,h.useDirtyState)();(0,a.useEffect)(()=>{const handleBeforeUnload=t=>{e&&t.preventDefault()};return window.addEventListener("beforeunload",handleBeforeUnload),()=>{window.removeEventListener("beforeunload",handleBeforeUnload)}},[e])},usePublish=()=>(0,d.useMutation)({mutationFn:()=>(0,b.saveGlobalClasses)({context:"frontend"}),onSuccess:async()=>{(0,r.setDocumentModifiedStatus)(!1),(0,S.hasDeletedItems)()&&await(0,S.onDelete)()}}),TotalCssClassCounter=()=>{const e=(0,f.useFilters)(),t=(0,m.useClassesOrder)();return a.createElement(p.Chip,{size:"small",label:e?`${e.length} / ${t?.length}`:t?.length})},StopSyncConfirmationDialog=({open:e,onClose:t,onConfirm:s})=>{const[,r]=(0,n.useSuppressedMessage)(O);return a.createElement(l.ConfirmationDialog,{open:e,onClose:t},a.createElement(l.ConfirmationDialog.Title,{icon:w.FlippedColorSwatchIcon,iconColor:"primary"},(0,g.__)("Un-sync typography class","elementor")),a.createElement(l.ConfirmationDialog.Content,null,a.createElement(l.ConfirmationDialog.ContentText,null,(0,g.__)("You're about to stop syncing a typography class to Global Fonts.","elementor")),a.createElement(l.ConfirmationDialog.ContentText,{sx:{mt:1}},(0,g.__)("Note that if it's being used anywhere, the affected elements will inherit the default typography.","elementor"))),a.createElement(l.ConfirmationDialog.Actions,{onClose:t,onConfirm:s,cancelLabel:(0,g.__)("Cancel","elementor"),confirmLabel:(0,g.__)("Got it","elementor"),color:"primary",onSuppressMessage:r,suppressLabel:(0,g.__)("Don't show again","elementor")}))}},"./packages/packages/core/editor-global-classes/src/components/class-manager/delete-class.ts":function(e,t,s){s.r(t),s.d(t,{deleteClass:function(){return deleteClass},hasDeletedItems:function(){return hasDeletedItems},onDelete:function(){return onDelete}});var a=s("@elementor/store"),n=s("./packages/packages/core/editor-global-classes/src/store.ts"),r=s("./packages/packages/core/editor-global-classes/src/utils/tracking.ts");let o=!1;const deleteClass=e=>{(0,r.trackGlobalClasses)({event:"classDeleted",classId:e,runAction:()=>{(0,a.__dispatch)(n.slice.actions.delete(e)),o=!0}})},onDelete=async()=>{o=!1},hasDeletedItems=()=>o},"./packages/packages/core/editor-global-classes/src/components/class-manager/delete-confirmation-dialog.tsx":function(e,t,s){s.r(t),s.d(t,{DeleteConfirmationProvider:function(){return DeleteConfirmationProvider},useDeleteConfirmation:function(){return useDeleteConfirmation}});var a=s("react"),n=s("@elementor/editor-ui"),r=s("@elementor/ui"),o=s("@wordpress/i18n"),l=s("./packages/packages/core/editor-global-classes/src/hooks/use-css-class-usage-by-id.ts"),i=s("./packages/packages/core/editor-global-classes/src/components/class-manager/delete-class.ts");const c=(0,a.createContext)(null),DeleteConfirmationProvider=({children:e})=>{const[t,s]=(0,a.useState)(null);return a.createElement(c.Provider,{value:{openDialog:e=>{s(e)},closeDialog:()=>{s(null)},dialogProps:t}},e,!!t&&a.createElement(DeleteClassDialog,t))},DeleteClassDialog=({label:e,id:t})=>{const{closeDialog:s}=useDeleteConfirmation(),{data:{total:c,content:d}}=(0,l.useCssClassUsageByID)(t),u=c&&d.length?(0,o.__)("Will permanently remove it from your project and may affect the design across all elements using it. Used %1 times across %2 pages. This action cannot be undone.","elementor").replace("%1",c.toString()).replace("%2",d.length.toString()):(0,o.__)("Will permanently remove it from your project and may affect the design across all elements using it. This action cannot be undone.","elementor");return a.createElement(n.ConfirmationDialog,{open:!0,onClose:s},a.createElement(n.ConfirmationDialog.Title,null,(0,o.__)("Delete this class?","elementor")),a.createElement(n.ConfirmationDialog.Content,null,a.createElement(n.ConfirmationDialog.ContentText,null,(0,o.__)("Deleting","elementor"),a.createElement(r.Typography,{variant:"subtitle2",component:"span"}," ",e," "),u)),a.createElement(n.ConfirmationDialog.Actions,{onClose:s,onConfirm:()=>{s(),(0,i.deleteClass)(t)}}))},useDeleteConfirmation=()=>{const e=(0,a.useContext)(c);if(!e)throw new Error("useDeleteConfirmation must be used within a DeleteConfirmationProvider");return e}},"./packages/packages/core/editor-global-classes/src/components/class-manager/duplicate-label-dialog.tsx":function(e,t,s){s.r(t),s.d(t,{DuplicateLabelDialog:function(){return DuplicateLabelDialog}});var a=s("react"),n=s("@elementor/editor-ui"),r=s("@elementor/icons"),o=s("@elementor/ui"),l=s("@wordpress/i18n");const i="DUP_",DuplicateLabelDialog=({modifiedLabels:e,onApprove:t})=>a.createElement(a.Fragment,null,a.createElement(o.DialogHeader,{logo:!1},a.createElement(o.Box,{display:"flex",alignItems:"center",gap:1},a.createElement(o.Icon,{color:"secondary"},a.createElement(r.InfoCircleFilledIcon,{fontSize:"medium"})),a.createElement(o.Typography,{variant:"subtitle1"},(0,l.__)("We've published your page and updated class names.","elementor")))),a.createElement(o.DialogContent,null,a.createElement(o.Stack,{spacing:2,direction:"column"},a.createElement(o.Typography,{variant:"body2"},(0,l.__)("Some new classes used the same names as existing ones. To prevent conflicts, we added the prefix","elementor"),a.createElement("strong",null," ",i)),a.createElement(o.Box,null,a.createElement(o.Box,{sx:{width:"100%",display:"flex",gap:2,alignItems:"flex-start"}},a.createElement(o.Typography,{variant:"subtitle2",sx:{fontWeight:"bold",flex:1,flexShrink:1,flexGrow:1,minWidth:0}},(0,l.__)("Before","elementor")),a.createElement(o.Typography,{variant:"subtitle2",sx:{minWidth:"200px",fontWeight:"bold",flexShrink:0,flexGrow:0,width:"200px",maxWidth:"200px"}},(0,l.__)("After","elementor"))),a.createElement(o.Divider,{sx:{mt:.5,mb:.5}}),a.createElement(o.Stack,{direction:"column",gap:.5,sx:{pb:2}},Object.values(e).map(({original:e,modified:t},s)=>a.createElement(o.Box,{key:s,sx:{width:"100%",display:"flex",gap:2,alignItems:"flex-start"}},a.createElement(o.Box,{sx:{flex:1,flexShrink:1,flexGrow:1,minWidth:0}},a.createElement(n.EllipsisWithTooltip,{title:e},a.createElement(o.Typography,{variant:"body2",sx:{color:"text.secondary"}},e))),a.createElement(o.Box,{sx:{minWidth:"200px",flexShrink:0,flexGrow:0,width:"200px",maxWidth:"200px"}},a.createElement(n.EllipsisWithTooltip,{title:t},a.createElement(o.Typography,{variant:"body2",sx:{color:"text.primary"}},t)))))),a.createElement(o.Box,null,a.createElement(o.Alert,{severity:"info",size:"small",color:"secondary"},a.createElement("strong",null,(0,l.__)("Your designs and classes are safe.","elementor")),(0,l.__)("Only the prefixes were added. Find them in Class Manager by searching","elementor"),a.createElement("strong",null,i)))))),a.createElement(o.DialogActions,null,a.createElement(o.Button,{color:"secondary",variant:"text",onClick:()=>{localStorage.setItem("elementor-global-classes-search",i),t?.(),(0,n.closeDialog)()}},(0,l.__)("Go to Class Manager","elementor")),a.createElement(o.Button,{color:"secondary",variant:"contained",onClick:n.closeDialog},(0,l.__)("Done","elementor"))))},"./packages/packages/core/editor-global-classes/src/components/class-manager/flipped-color-swatch-icon.tsx":function(e,t,s){s.r(t),s.d(t,{FlippedColorSwatchIcon:function(){return FlippedColorSwatchIcon}});var a=s("react"),n=s("@elementor/icons");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var a in s)({}).hasOwnProperty.call(s,a)&&(e[a]=s[a])}return e},_extends.apply(null,arguments)}const FlippedColorSwatchIcon=({sx:e,...t})=>a.createElement(n.ColorSwatchIcon,_extends({sx:{transform:"rotate(90deg)",...e}},t))},"./packages/packages/core/editor-global-classes/src/components/class-manager/global-classes-list.tsx":function(e,t,s){s.r(t),s.d(t,{GlobalClassesList:function(){return GlobalClassesList}});var a=s("react"),n=s("@elementor/store"),r=s("@elementor/ui"),o=s("./packages/node_modules/@tanstack/react-virtual/dist/esm/index.js"),l=s("./packages/node_modules/@tanstack/virtual-core/dist/esm/index.js"),i=s("@wordpress/i18n"),c=s("./packages/packages/core/editor-global-classes/src/hooks/use-classes-order.ts"),d=s("./packages/packages/core/editor-global-classes/src/hooks/use-filters.ts"),u=s("./packages/packages/core/editor-global-classes/src/hooks/use-ordered-classes.ts"),p=s("./packages/packages/core/editor-global-classes/src/store.ts"),g=s("./packages/packages/core/editor-global-classes/src/utils/tracking.ts"),m=s("./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx"),h=s("./packages/packages/core/editor-global-classes/src/components/class-manager/class-item.tsx"),f=s("./packages/packages/core/editor-global-classes/src/components/class-manager/delete-confirmation-dialog.tsx"),b=s("./packages/packages/core/editor-global-classes/src/components/class-manager/flipped-color-swatch-icon.tsx"),y=s("./packages/packages/core/editor-global-classes/src/components/class-manager/not-found.tsx"),v=s("./packages/packages/core/editor-global-classes/src/components/class-manager/sortable.tsx");const GlobalClassesList=({disabled:e,scrollElement:t,onStopSyncRequest:s,onStartSyncRequest:i})=>{const{search:{debouncedValue:c}}=(0,m.useSearchAndFilters)(),b=(0,u.useOrderedClasses)(),k=(0,n.__useDispatch)(),C=(0,d.useFilters)(),[_,E]=(0,a.useState)(null),x=b.find(e=>e.id===_)?.label??"",[S,w]=useReorder(_,E,x??""),I=useFilteredCssClasses(),D=(0,o.useVirtualizer)({count:I.length,getScrollElement:()=>t??null,estimateSize:()=>40,overscan:6,getItemKey:e=>I[e].id,rangeExtractor:e=>{const t=new Set((0,l.defaultRangeExtractor)(e));if(_){const e=I.findIndex(e=>e.id===_);e>=0&&t.add(e)}return[...t].sort((e,t)=>e-t)}});if((0,a.useEffect)(()=>{const handler=e=>{if("z"===e.key&&(e.ctrlKey||e.metaKey)){if(e.stopImmediatePropagation(),e.preventDefault(),e.shiftKey)return void k(p.slice.actions.redo());k(p.slice.actions.undo())}};return window.addEventListener("keydown",handler,{capture:!0}),()=>window.removeEventListener("keydown",handler)},[k]),!b?.length)return a.createElement(EmptyState,null);const P=(0,y.getNotFoundType)(c,C,I);if(P)return a.createElement(y.NotFound,{notFoundType:P});const O=C?.length||c,T=I.length>1&&!O;return a.createElement(f.DeleteConfirmationProvider,null,a.createElement(r.List,{sx:{position:"relative",display:"block",height:D.getTotalSize(),padding:0}},a.createElement(v.SortableProvider,{value:S,onChange:w,onDragStart:e=>E(e.active.id),onDragEnd:()=>E(null),onDragCancel:()=>E(null),disableDragOverlay:!T},D.getVirtualItems().map(t=>{const n=I[t.index];return a.createElement(v.SortableItem,{key:t.key,id:n.id,style:{position:"absolute",top:t.start,left:0,width:"100%"}},({isDragged:t,isDragPlaceholder:r,triggerProps:o,triggerStyle:l})=>a.createElement(h.ClassItem,{id:n.id,label:n.label,renameClass:e=>{(0,g.trackGlobalClasses)({event:"classRenamed",classId:n.id,oldValue:n.label,newValue:e,source:"class-manager"}),k(p.slice.actions.update({style:{id:n.id,label:e}}))},selected:t,disabled:e||r,sortableTriggerProps:{...o,style:l},showSortIndicator:T,syncToV3:n.sync_to_v3,onToggleSync:(e,t)=>{!t&&s?s(e):t&&i?i(e):k(p.slice.actions.update({style:{id:e,sync_to_v3:t}}))}}))}))))},EmptyState=()=>a.createElement(r.Stack,{alignItems:"center",gap:1.5,pt:10,px:.5,maxWidth:"260px",margin:"auto"},a.createElement(b.FlippedColorSwatchIcon,{fontSize:"large"}),a.createElement(k,{variant:"subtitle2",component:"h2",color:"text.secondary"},(0,i.__)("There are no global classes yet.","elementor")),a.createElement(r.Typography,{align:"center",variant:"caption",color:"text.secondary"},(0,i.__)("CSS classes created in the editor panel will appear here. Once they are available, you can arrange their hierarchy, rename them, or delete them as needed.","elementor"))),k=(0,r.styled)(r.Typography)(({theme:e,variant:t})=>({"&.MuiTypography-root":{...e.typography[t]}})),useReorder=(e,t,s)=>{const a=(0,n.__useDispatch)();return[(0,c.useClassesOrder)(),n=>{a(p.slice.actions.setOrder(n)),e&&((0,g.trackGlobalClasses)({event:"classManagerReorder",classId:e,classTitle:s}),t(null))}]},useFilteredCssClasses=()=>{const e=(0,u.useOrderedClasses)(),{search:{debouncedValue:t}}=(0,m.useSearchAndFilters)(),s=(0,d.useFilters)(),n=(0,a.useMemo)(()=>e.map(e=>({...e,lowerLabel:e.label.toLowerCase()})),[e]),r=(0,a.useMemo)(()=>t.length>1?n.filter(e=>e.lowerLabel.includes(t.toLowerCase())):e,[t,e,n]);return(0,a.useMemo)(()=>s&&s.length>0?r.filter(e=>s.includes(e.id)):r,[r,s])}},"./packages/packages/core/editor-global-classes/src/components/class-manager/not-found.tsx":function(e,t,s){s.r(t),s.d(t,{NotFound:function(){return NotFound},NotFoundLayout:function(){return NotFoundLayout},getNotFoundType:function(){return getNotFoundType}});var a=s("react"),n=s("@elementor/icons"),r=s("@elementor/ui"),o=s("@wordpress/i18n"),l=s("./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var a in s)({}).hasOwnProperty.call(s,a)&&(e[a]=s[a])}return e},_extends.apply(null,arguments)}const getNotFoundType=(e,t,s)=>{const a=s.length<=0&&e.length>1,n=t&&0===t.length;return a&&n?"filterAndSearch":a?"search":n?"filter":void 0},i={filterAndSearch:{mainText:(0,o.__)("Sorry, nothing matched.","elementor"),sceneryText:(0,o.__)("Try something else.","elementor"),icon:a.createElement(n.PhotoIcon,{color:"inherit",fontSize:"large"})},search:{mainText:(0,o.__)("Sorry, nothing matched","elementor"),sceneryText:(0,o.__)("Clear your input and try something else.","elementor"),icon:a.createElement(n.PhotoIcon,{color:"inherit",fontSize:"large"})},filter:{mainText:(0,o.__)("Sorry, nothing matched that search.","elementor"),sceneryText:(0,o.__)("Clear the filters and try something else.","elementor"),icon:a.createElement(n.ColorSwatchIcon,{color:"inherit",fontSize:"large"})}},NotFound=({notFoundType:e})=>{const{search:{onClearSearch:t,inputValue:s},filters:{onClearFilter:n}}=(0,l.useSearchAndFilters)();switch(e){case"filter":return a.createElement(NotFoundLayout,_extends({},i.filter,{onClear:n}));case"search":return a.createElement(NotFoundLayout,_extends({},i.search,{searchValue:s,onClear:t}));case"filterAndSearch":return a.createElement(NotFoundLayout,_extends({},i.filterAndSearch,{onClear:()=>{n(),t()}}))}},NotFoundLayout=({onClear:e,searchValue:t,mainText:s,sceneryText:n,icon:l})=>a.createElement(r.Stack,{color:"text.secondary",pt:5,alignItems:"center",gap:1,overflow:"hidden",justifySelf:"center"},l,a.createElement(r.Box,{sx:{width:"100%"}},a.createElement(r.Typography,{align:"center",variant:"subtitle2",color:"inherit"},s),t&&a.createElement(r.Typography,{variant:"subtitle2",color:"inherit",sx:{display:"flex",width:"100%",justifyContent:"center"}},a.createElement("span",null,"“"),a.createElement("span",{style:{maxWidth:"80%",overflow:"hidden",textOverflow:"ellipsis"}},t),a.createElement("span",null,"”."))),a.createElement(r.Typography,{align:"center",variant:"caption",color:"inherit"},n),a.createElement(r.Typography,{align:"center",variant:"caption",color:"inherit"},a.createElement(r.Link,{color:"secondary",variant:"caption",component:"button",onClick:e},(0,o.__)("Clear & try again","elementor"))))},"./packages/packages/core/editor-global-classes/src/components/class-manager/panel-interactions.ts":function(e,t,s){function blockPanelInteractions(){const e=window;e.$e?.components?.get?.("panel")?.blockUserInteractions?.()}function unblockPanelInteractions(){const e=window;e.$e?.components?.get?.("panel")?.unblockUserInteractions?.()}s.r(t),s.d(t,{blockPanelInteractions:function(){return blockPanelInteractions},unblockPanelInteractions:function(){return unblockPanelInteractions}})},"./packages/packages/core/editor-global-classes/src/components/class-manager/sortable.tsx":function(e,t,s){s.r(t),s.d(t,{SortableItem:function(){return SortableItem},SortableProvider:function(){return SortableProvider},SortableTrigger:function(){return SortableTrigger}});var a=s("react"),n=s("@elementor/icons"),r=s("@elementor/ui");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var a in s)({}).hasOwnProperty.call(s,a)&&(e[a]=s[a])}return e},_extends.apply(null,arguments)}const SortableProvider=e=>a.createElement(r.UnstableSortableProvider,_extends({restrictAxis:!0,variant:"static",dragPlaceholderStyle:{visibility:"hidden"}},e)),SortableTrigger=e=>a.createElement(o,_extends({},e,{role:"button",className:"class-item-sortable-trigger","aria-label":"sort"}),a.createElement(n.GripVerticalIcon,{fontSize:"tiny"})),SortableItem=({children:e,id:t,style:s,...n})=>a.createElement(r.UnstableSortableItem,_extends({},n,{id:t,render:({itemProps:t,isDragged:n,triggerProps:o,itemStyle:i,triggerStyle:c,dropIndicationStyle:d,showDropIndication:u,isDragOverlay:p,isDragPlaceholder:g})=>a.createElement(r.Box,_extends({},t,{style:{...i,...p?null:s},component:"li",role:"listitem",sx:{backgroundColor:p?"background.paper":void 0}}),e({itemProps:t,isDragged:n,triggerProps:o,itemStyle:i,triggerStyle:c,isDragPlaceholder:g}),u&&a.createElement(l,{style:d}))})),o=(0,r.styled)("div")(({theme:e})=>({position:"absolute",left:0,top:"50%",transform:`translate( -${e.spacing(1.5)}, -50% )`,color:e.palette.action.active})),l=(0,r.styled)(r.Box)`
2775 3 width: 100%;
2776 4 height: 1px;
2777 - background-color: ${({
2778 - theme
2779 -}) => theme.palette.text.primary};
2780 -`;
2781 -
2782 -/***/ }),
2783 -
2784 -/***/ "./packages/packages/core/editor-global-classes/src/components/class-manager/start-sync-to-v3-modal.tsx":
2785 -/*!**************************************************************************************************************!*\
2786 - !*** ./packages/packages/core/editor-global-classes/src/components/class-manager/start-sync-to-v3-modal.tsx ***!
2787 - \**************************************************************************************************************/
2788 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2789 -
2790 -__webpack_require__.r(__webpack_exports__);
2791 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2792 -/* harmony export */ StartSyncToV3Modal: function() { return /* binding */ StartSyncToV3Modal; }
2793 -/* harmony export */ });
2794 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2795 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2796 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2797 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__);
2798 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2799 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__);
2800 -/* harmony import */ var _utils_tracking__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils/tracking */ "./packages/packages/core/editor-global-classes/src/utils/tracking.ts");
2801 -
2802 -
2803 -
2804 -
2805 -
2806 -const IMAGE_URL = 'https://assets.elementor.com/packages/v1/images/class-manager-sync-modal.png';
2807 -const StartSyncToV3Modal = ({
2808 - externalOpen,
2809 - classId,
2810 - onExternalClose,
2811 - onConfirm
2812 -} = {}) => {
2813 - const [shouldShowAgain, setShouldShowAgain] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true);
2814 - const hasTrackedExposure = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);
2815 - (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
2816 - if (externalOpen && classId && !hasTrackedExposure.current) {
2817 - hasTrackedExposure.current = true;
2818 - (0,_utils_tracking__WEBPACK_IMPORTED_MODULE_3__.trackGlobalClasses)({
2819 - event: 'classSyncToV3PopupShown',
2820 - classId
2821 - });
2822 - }
2823 - if (!externalOpen) {
2824 - hasTrackedExposure.current = false;
2825 - }
2826 - }, [externalOpen, classId]);
2827 - const handleClose = () => {
2828 - if (classId) {
2829 - (0,_utils_tracking__WEBPACK_IMPORTED_MODULE_3__.trackGlobalClasses)({
2830 - event: 'classSyncToV3PopupClick',
2831 - classId,
2832 - action: 'cancel'
2833 - });
2834 - }
2835 - onExternalClose?.();
2836 - };
2837 - const handleConfirm = () => {
2838 - if (classId) {
2839 - (0,_utils_tracking__WEBPACK_IMPORTED_MODULE_3__.trackGlobalClasses)({
2840 - event: 'classSyncToV3PopupClick',
2841 - classId,
2842 - action: 'sync'
2843 - });
2844 - }
2845 - onConfirm?.();
2846 - onExternalClose?.();
2847 - };
2848 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Dialog, {
2849 - open: !!externalOpen,
2850 - onClose: handleClose,
2851 - maxWidth: "sm",
2852 - fullWidth: true
2853 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.DialogContent, {
2854 - sx: {
2855 - p: 0
2856 - }
2857 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Box, {
2858 - component: "img",
2859 - src: IMAGE_URL,
2860 - alt: "",
2861 - sx: {
2862 - width: '100%',
2863 - display: 'block'
2864 - }
2865 - }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Box, {
2866 - sx: {
2867 - px: 3,
2868 - pt: 4,
2869 - pb: 1
2870 - }
2871 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Typography, {
2872 - variant: "h6"
2873 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Sync class to Global Fonts', 'elementor')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Typography, {
2874 - variant: "body2",
2875 - color: "secondary",
2876 - sx: {
2877 - mb: 2,
2878 - pt: 1
2879 - }
2880 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Only typography settings supported in Global Fonts will be applied, including: font family, responsive font sizes, weight, text transform, decoration, line height, letter spacing, and word spacing. Changes made in the class will automatically apply to Global Fonts.', 'elementor')))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.DialogActions, {
2881 - sx: {
2882 - justifyContent: 'space-between',
2883 - px: 3,
2884 - pb: 2
2885 - }
2886 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.FormControlLabel, {
2887 - control: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Checkbox, {
2888 - checked: !shouldShowAgain,
2889 - onChange: e => setShouldShowAgain(!e.target.checked)
2890 - }),
2891 - label: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Typography, {
2892 - variant: "body2",
2893 - color: "secondary"
2894 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("Don't show again", 'elementor'))
2895 - }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Box, {
2896 - sx: {
2897 - display: 'flex',
2898 - gap: 1
2899 - }
2900 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Button, {
2901 - onClick: handleClose,
2902 - color: "secondary",
2903 - size: "small"
2904 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Cancel', 'elementor')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Button, {
2905 - onClick: handleConfirm,
2906 - variant: "contained",
2907 - size: "small"
2908 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Sync to Global Fonts', 'elementor')))));
2909 -};
2910 -
2911 -/***/ }),
2912 -
2913 -/***/ "./packages/packages/core/editor-global-classes/src/components/convert-local-class-to-global-class.tsx":
2914 -/*!*************************************************************************************************************!*\
2915 - !*** ./packages/packages/core/editor-global-classes/src/components/convert-local-class-to-global-class.tsx ***!
2916 - \*************************************************************************************************************/
2917 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2918 -
2919 -__webpack_require__.r(__webpack_exports__);
2920 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2921 -/* harmony export */ ConvertLocalClassToGlobalClass: function() { return /* binding */ ConvertLocalClassToGlobalClass; }
2922 -/* harmony export */ });
2923 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2924 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2925 -/* harmony import */ var _elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-styles-repository */ "@elementor/editor-styles-repository");
2926 -/* harmony import */ var _elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_1__);
2927 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/editor-ui */ "@elementor/editor-ui");
2928 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__);
2929 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2930 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__);
2931 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2932 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__);
2933 -/* harmony import */ var _global_classes_styles_provider__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../global-classes-styles-provider */ "./packages/packages/core/editor-global-classes/src/global-classes-styles-provider.ts");
2934 -/* harmony import */ var _utils_tracking__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/tracking */ "./packages/packages/core/editor-global-classes/src/utils/tracking.ts");
2935 -
2936 -
2937 -
2938 -
2939 -
2940 -
2941 -
2942 -const ConvertLocalClassToGlobalClass = props => {
2943 - const localStyleData = props.styleDef;
2944 - const handleConversion = () => {
2945 - const newClassName = createClassName(`converted-class-`);
2946 - if (!localStyleData) {
2947 - throw new Error('Style definition is required for converting local class to global class.');
2948 - }
2949 - const newId = _global_classes_styles_provider__WEBPACK_IMPORTED_MODULE_5__.globalClassesStylesProvider.actions.create?.(newClassName, localStyleData.variants);
2950 - if (newId) {
2951 - props.successCallback(newId);
2952 - (0,_utils_tracking__WEBPACK_IMPORTED_MODULE_6__.trackGlobalClasses)({
2953 - classId: newId,
2954 - event: 'classCreated',
2955 - source: 'converted',
2956 - classTitle: newClassName
2957 - });
2958 - }
2959 - };
2960 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__.MenuListItem, {
2961 - disabled: !props.canConvert,
2962 - onClick: handleConversion,
2963 - dense: true,
2964 - sx: {
2965 - '&.Mui-focusVisible': {
2966 - border: 'none',
2967 - boxShadow: 'none !important',
2968 - backgroundColor: 'transparent'
2969 - }
2970 - }
2971 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Convert to global class', 'elementor')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Divider, null));
2972 -};
2973 -function createClassName(prefix) {
2974 - let i = 1;
2975 - let newClassName = `${prefix}${i}`;
2976 - while (!(0,_elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_1__.validateStyleLabel)(newClassName, 'create').isValid) {
2977 - newClassName = `${prefix}${++i}`;
2978 - }
2979 - return newClassName;
2980 -}
2981 -
2982 -/***/ }),
2983 -
2984 -/***/ "./packages/packages/core/editor-global-classes/src/components/css-class-usage/components/css-class-usage-popover.tsx":
2985 -/*!****************************************************************************************************************************!*\
2986 - !*** ./packages/packages/core/editor-global-classes/src/components/css-class-usage/components/css-class-usage-popover.tsx ***!
2987 - \****************************************************************************************************************************/
2988 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2989 -
2990 -__webpack_require__.r(__webpack_exports__);
2991 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2992 -/* harmony export */ CssClassUsagePopover: function() { return /* binding */ CssClassUsagePopover; }
2993 -/* harmony export */ });
2994 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2995 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2996 -/* harmony import */ var _elementor_editor_documents__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-documents */ "@elementor/editor-documents");
2997 -/* harmony import */ var _elementor_editor_documents__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_1__);
2998 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/editor-ui */ "@elementor/editor-ui");
2999 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__);
3000 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
3001 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_elementor_icons__WEBPACK_IMPORTED_MODULE_3__);
3002 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3003 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__);
3004 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3005 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__);
3006 -/* harmony import */ var _hooks_use_css_class_usage_by_id__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../hooks/use-css-class-usage-by-id */ "./packages/packages/core/editor-global-classes/src/hooks/use-css-class-usage-by-id.ts");
3007 -/* harmony import */ var _utils_tracking__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../utils/tracking */ "./packages/packages/core/editor-global-classes/src/utils/tracking.ts");
3008 -
3009 -
3010 -
3011 -
3012 -
3013 -
3014 -
3015 -
3016 -const iconMapper = {
3017 - 'wp-post': {
3018 - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Post', 'elementor'),
3019 - icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_3__.PostTypeIcon, {
3020 - fontSize: 'inherit'
3021 - })
3022 - },
3023 - 'wp-page': {
3024 - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Page', 'elementor'),
3025 - icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_3__.PagesIcon, {
3026 - fontSize: 'inherit'
3027 - })
3028 - },
3029 - popup: {
3030 - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Popup', 'elementor'),
3031 - icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_3__.PopupTemplateIcon, {
3032 - fontSize: 'inherit'
3033 - })
3034 - },
3035 - header: {
3036 - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Header', 'elementor'),
3037 - icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_3__.HeaderTemplateIcon, {
3038 - fontSize: 'inherit'
3039 - })
3040 - },
3041 - footer: {
3042 - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Footer', 'elementor'),
3043 - icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_3__.FooterTemplateIcon, {
3044 - fontSize: 'inherit'
3045 - })
3046 - }
3047 -};
3048 -const CssClassUsagePopover = ({
3049 - cssClassID,
3050 - onClose
3051 -}) => {
3052 - const {
3053 - data: classUsage
3054 - } = (0,_hooks_use_css_class_usage_by_id__WEBPACK_IMPORTED_MODULE_6__.useCssClassUsageByID)(cssClassID);
3055 - const onNavigate = (0,_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_1__.__useOpenDocumentInNewTab)();
3056 - const cssClassUsageRecords = classUsage?.content.map(({
3057 - title,
3058 - elements,
3059 - pageId,
3060 - type
3061 - }) => ({
3062 - type: 'item',
3063 - value: pageId,
3064 - label: title,
3065 - secondaryText: elements.length.toString(),
3066 - docType: type
3067 - })) ?? [];
3068 - const handleSelect = value => {
3069 - onNavigate(+value);
3070 - (0,_utils_tracking__WEBPACK_IMPORTED_MODULE_7__.trackGlobalClasses)({
3071 - event: 'classUsageLocate',
3072 - classId: cssClassID
3073 - });
3074 - };
3075 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__.PopoverHeader, {
3076 - icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_3__.CurrentLocationIcon, {
3077 - fontSize: 'tiny'
3078 - }),
3079 - title: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Stack, {
3080 - flexDirection: 'row',
3081 - gap: 1,
3082 - alignItems: 'center'
3083 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Box, {
3084 - "aria-label": 'header-title'
3085 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Locator', 'elementor')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Box, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Chip, {
3086 - sx: {
3087 - lineHeight: 1
3088 - },
3089 - size: 'tiny',
3090 - label: classUsage.total
3091 - }))),
3092 - onClose: onClose
3093 - }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Divider, null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__.PopoverBody, {
3094 - width: 300
3095 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__.PopoverMenuList, {
3096 - onSelect: handleSelect,
3097 - items: cssClassUsageRecords,
3098 - onClose: () => {},
3099 - menuListTemplate: StyledCssClassUsageItem,
3100 - menuItemContentTemplate: cssClassUsageRecord => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Stack, {
3101 - flexDirection: 'row',
3102 - flex: 1,
3103 - alignItems: 'center'
3104 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Box, {
3105 - display: 'flex',
3106 - sx: {
3107 - pr: 1
3108 - }
3109 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Tooltip, {
3110 - disableInteractive: true,
3111 - title: iconMapper?.[cssClassUsageRecord.docType]?.label ?? cssClassUsageRecord.docType,
3112 - placement: "top"
3113 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Icon, {
3114 - fontSize: 'small'
3115 - }, iconMapper?.[cssClassUsageRecord.docType]?.icon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_3__.PagesIcon, {
3116 - fontSize: 'inherit'
3117 - })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Box, {
3118 - sx: {
3119 - pr: 0.5,
3120 - maxWidth: '173px'
3121 - },
3122 - display: 'flex'
3123 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__.EllipsisWithTooltip, {
3124 - title: cssClassUsageRecord.label,
3125 - as: _elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Typography,
3126 - variant: "caption",
3127 - maxWidth: "173px",
3128 - sx: {
3129 - lineHeight: 1
3130 - }
3131 - })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_3__.ExternalLinkIcon, {
3132 - className: 'hover-only-icon',
3133 - fontSize: 'tiny'
3134 - }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Chip, {
3135 - sx: {
3136 - ml: 'auto'
3137 - },
3138 - size: 'tiny',
3139 - label: cssClassUsageRecord.secondaryText
3140 - }))
3141 - })));
3142 -};
3143 -const StyledCssClassUsageItem = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.styled)(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.MenuList)(({
3144 - theme
3145 -}) => ({
3146 - '& > li': {
3147 - display: 'flex',
3148 - cursor: 'pointer',
3149 - height: 32,
3150 - width: '100%'
3151 - },
3152 - '& > [role="option"]': {
3153 - ...theme.typography.caption,
3154 - lineHeight: 'inherit',
3155 - padding: theme.spacing(0.5, 1, 0.5, 2),
3156 - textOverflow: 'ellipsis',
3157 - position: 'absolute',
3158 - top: 0,
3159 - left: 0,
3160 - opacity: 1,
3161 - '.hover-only-icon': {
3162 - color: theme.palette.text.disabled,
3163 - opacity: 0
3164 - },
3165 - '&:hover': {
3166 - borderRadius: theme.spacing(0.5),
3167 - backgroundColor: theme.palette.action.hover,
3168 - '.hover-only-icon': {
3169 - color: theme.palette.text.disabled,
3170 - opacity: 1
3171 - }
3172 - }
3173 - },
3174 - width: '100%',
3175 - position: 'relative'
3176 -}));
3177 -
3178 -/***/ }),
3179 -
3180 -/***/ "./packages/packages/core/editor-global-classes/src/components/css-class-usage/components/css-class-usage-trigger.tsx":
3181 -/*!****************************************************************************************************************************!*\
3182 - !*** ./packages/packages/core/editor-global-classes/src/components/css-class-usage/components/css-class-usage-trigger.tsx ***!
3183 - \****************************************************************************************************************************/
3184 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3185 -
3186 -__webpack_require__.r(__webpack_exports__);
3187 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3188 -/* harmony export */ CssClassUsageTrigger: function() { return /* binding */ CssClassUsageTrigger; }
3189 -/* harmony export */ });
3190 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
3191 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
3192 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-ui */ "@elementor/editor-ui");
3193 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__);
3194 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
3195 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_icons__WEBPACK_IMPORTED_MODULE_2__);
3196 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3197 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__);
3198 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3199 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__);
3200 -/* harmony import */ var _hooks_use_css_class_usage_by_id__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../hooks/use-css-class-usage-by-id */ "./packages/packages/core/editor-global-classes/src/hooks/use-css-class-usage-by-id.ts");
3201 -/* harmony import */ var _utils_tracking__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../utils/tracking */ "./packages/packages/core/editor-global-classes/src/utils/tracking.ts");
3202 -/* harmony import */ var _css_class_usage_popover__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./css-class-usage-popover */ "./packages/packages/core/editor-global-classes/src/components/css-class-usage/components/css-class-usage-popover.tsx");
3203 -function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
3204 -
3205 -
3206 -
3207 -
3208 -
3209 -
3210 -
3211 -
3212 -const CssClassUsageTrigger = ({
3213 - id,
3214 - onClick
3215 -}) => {
3216 - const {
3217 - data: {
3218 - total
3219 - },
3220 - isLoading
3221 - } = (0,_hooks_use_css_class_usage_by_id__WEBPACK_IMPORTED_MODULE_5__.useCssClassUsageByID)(id);
3222 - const cssClassUsagePopover = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.usePopupState)({
3223 - variant: 'popover',
3224 - popupId: 'css-class-usage-popover'
3225 - });
3226 - if (isLoading) {
3227 - return null;
3228 - }
3229 - const WrapperComponent = total !== 0 ? TooltipWrapper : InfoAlertMessage;
3230 - const handleMouseEnter = () => {
3231 - (0,_utils_tracking__WEBPACK_IMPORTED_MODULE_6__.trackGlobalClasses)({
3232 - event: 'classUsageHovered',
3233 - classId: id,
3234 - usage: total
3235 - });
3236 - };
3237 - const handleClick = e => {
3238 - if (total !== 0) {
3239 - (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.bindTrigger)(cssClassUsagePopover).onClick(e);
3240 - onClick(id);
3241 - (0,_utils_tracking__WEBPACK_IMPORTED_MODULE_6__.trackGlobalClasses)({
3242 - event: 'classUsageClicked',
3243 - classId: id
3244 - });
3245 - }
3246 - };
3247 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Box, {
3248 - position: 'relative',
3249 - onMouseEnter: handleMouseEnter
3250 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(WrapperComponent, {
3251 - total: total
3252 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(CustomIconButton, _extends({
3253 - disabled: total === 0,
3254 - size: 'tiny'
3255 - }, (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.bindTrigger)(cssClassUsagePopover), {
3256 - onClick: handleClick
3257 - }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_2__.CurrentLocationIcon, {
3258 - fontSize: 'tiny'
3259 - })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Box, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Popover, _extends({
3260 - anchorOrigin: {
3261 - vertical: 'center',
3262 - horizontal: 'right'
3263 - },
3264 - transformOrigin: {
3265 - vertical: 15,
3266 - horizontal: -50
3267 - }
3268 - }, (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.bindPopover)(cssClassUsagePopover), {
3269 - onClose: () => {
3270 - (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.bindPopover)(cssClassUsagePopover).onClose();
3271 - onClick('');
3272 - }
3273 - }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_css_class_usage_popover__WEBPACK_IMPORTED_MODULE_7__.CssClassUsagePopover, {
3274 - onClose: cssClassUsagePopover.close,
3275 - "aria-label": "css-class-usage-popover",
3276 - cssClassID: id
3277 - }))));
3278 -};
3279 -const CustomIconButton = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.styled)(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.IconButton)(({
3280 - theme
3281 -}) => ({
3282 - '&.Mui-disabled': {
3283 - pointerEvents: 'auto',
3284 - // Enable hover
3285 - '&:hover': {
3286 - color: theme.palette.action.disabled // optional
3287 - }
3288 - },
3289 - height: '22px',
3290 - width: '22px'
3291 -}));
3292 -const TooltipWrapper = ({
3293 - children,
3294 - total
3295 -}) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Tooltip, {
3296 - disableInteractive: true,
3297 - placement: 'top',
3298 - title: `${(0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Show {{number}} {{locations}}', 'elementor').replace('{{number}}', total.toString()).replace('{{locations}}', total === 1 ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('location', 'elementor') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('locations', 'elementor'))}`
3299 -}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", null, children));
3300 -const InfoAlertMessage = ({
3301 - children
3302 -}) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Infotip, {
3303 - disableInteractive: true,
3304 - placement: 'top',
3305 - color: 'secondary',
3306 - content: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__.InfoAlert, {
3307 - sx: {
3308 - mt: 1
3309 - }
3310 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('This class isn’t being used yet.', 'elementor'))
3311 -}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", null, children));
3312 -
3313 -/***/ }),
3314 -
3315 -/***/ "./packages/packages/core/editor-global-classes/src/components/css-class-usage/components/index.ts":
3316 -/*!*********************************************************************************************************!*\
3317 - !*** ./packages/packages/core/editor-global-classes/src/components/css-class-usage/components/index.ts ***!
3318 - \*********************************************************************************************************/
3319 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3320 -
3321 -__webpack_require__.r(__webpack_exports__);
3322 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3323 -/* harmony export */ CssClassUsagePopover: function() { return /* reexport safe */ _css_class_usage_popover__WEBPACK_IMPORTED_MODULE_0__.CssClassUsagePopover; },
3324 -/* harmony export */ CssClassUsageTrigger: function() { return /* reexport safe */ _css_class_usage_trigger__WEBPACK_IMPORTED_MODULE_1__.CssClassUsageTrigger; }
3325 -/* harmony export */ });
3326 -/* harmony import */ var _css_class_usage_popover__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./css-class-usage-popover */ "./packages/packages/core/editor-global-classes/src/components/css-class-usage/components/css-class-usage-popover.tsx");
3327 -/* harmony import */ var _css_class_usage_trigger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./css-class-usage-trigger */ "./packages/packages/core/editor-global-classes/src/components/css-class-usage/components/css-class-usage-trigger.tsx");
3328 -
3329 -
3330 -
3331 -/***/ }),
3332 -
3333 -/***/ "./packages/packages/core/editor-global-classes/src/components/css-class-usage/types.ts":
3334 -/*!**********************************************************************************************!*\
3335 - !*** ./packages/packages/core/editor-global-classes/src/components/css-class-usage/types.ts ***!
3336 - \**********************************************************************************************/
3337 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3338 -
3339 -__webpack_require__.r(__webpack_exports__);
3340 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3341 -/* harmony export */ QUERY_KEY: function() { return /* binding */ QUERY_KEY; }
3342 -/* harmony export */ });
3343 -const QUERY_KEY = 'css-classes-usage';
3344 -
3345 -/***/ }),
3346 -
3347 -/***/ "./packages/packages/core/editor-global-classes/src/components/css-class-usage/utils.ts":
3348 -/*!**********************************************************************************************!*\
3349 - !*** ./packages/packages/core/editor-global-classes/src/components/css-class-usage/utils.ts ***!
3350 - \**********************************************************************************************/
3351 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3352 -
3353 -__webpack_require__.r(__webpack_exports__);
3354 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3355 -/* harmony export */ transformData: function() { return /* binding */ transformData; }
3356 -/* harmony export */ });
3357 -const transformData = data => Object.entries(data).reduce((acc, [key, value]) => {
3358 - acc[key] = {
3359 - content: value || [],
3360 - total: value.reduce((total, val) => total + (val?.total || 0), 0)
3361 - };
3362 - return acc;
3363 -}, {});
3364 -
3365 -/***/ }),
3366 -
3367 -/***/ "./packages/packages/core/editor-global-classes/src/components/global-styles-import-listener.tsx":
3368 -/*!*******************************************************************************************************!*\
3369 - !*** ./packages/packages/core/editor-global-classes/src/components/global-styles-import-listener.tsx ***!
3370 - \*******************************************************************************************************/
3371 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3372 -
3373 -__webpack_require__.r(__webpack_exports__);
3374 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3375 -/* harmony export */ GlobalStylesImportListener: function() { return /* binding */ GlobalStylesImportListener; }
3376 -/* harmony export */ });
3377 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
3378 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
3379 -/* harmony import */ var _elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-canvas */ "@elementor/editor-canvas");
3380 -/* harmony import */ var _elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_1__);
3381 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/store */ "@elementor/store");
3382 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_store__WEBPACK_IMPORTED_MODULE_2__);
3383 -/* harmony import */ var _load_document_classes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../load-document-classes */ "./packages/packages/core/editor-global-classes/src/load-document-classes.ts");
3384 -/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../store */ "./packages/packages/core/editor-global-classes/src/store.ts");
3385 -/* harmony import */ var _utils_create_labels_for_classes__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/create-labels-for-classes */ "./packages/packages/core/editor-global-classes/src/utils/create-labels-for-classes.ts");
3386 -
3387 -
3388 -
3389 -
3390 -
3391 -
3392 -function GlobalStylesImportListener() {
3393 - const dispatch = (0,_elementor_store__WEBPACK_IMPORTED_MODULE_2__.__useDispatch)();
3394 - (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
3395 - const handleGlobalStylesImported = async event => {
3396 - const customEvent = event;
3397 - const globalClasses = customEvent.detail?.global_classes;
3398 - if (!globalClasses?.added_items_order || !globalClasses?.added_items || globalClasses?.added_items_order?.length === 0) {
3399 - (0,_load_document_classes__WEBPACK_IMPORTED_MODULE_3__.loadCurrentDocumentClasses)();
3400 - return;
3401 - }
3402 - dispatch(_store__WEBPACK_IMPORTED_MODULE_4__.slice.actions.updateAfterTemplateImport({
3403 - addedItems: globalClasses.added_items,
3404 - addedIdsOrder: globalClasses.added_items_order,
3405 - addedClassLabels: (0,_utils_create_labels_for_classes__WEBPACK_IMPORTED_MODULE_5__.createLabelsForClasses)(Object.values(globalClasses.added_items))
3406 - }));
3407 - };
3408 - window.addEventListener(_elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_1__.GLOBAL_STYLES_IMPORTED_EVENT, handleGlobalStylesImported);
3409 - return () => {
3410 - window.removeEventListener(_elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_1__.GLOBAL_STYLES_IMPORTED_EVENT, handleGlobalStylesImported);
3411 - };
3412 - }, [dispatch]);
3413 - return null;
3414 -}
3415 -
3416 -/***/ }),
3417 -
3418 -/***/ "./packages/packages/core/editor-global-classes/src/components/populate-store.tsx":
3419 -/*!****************************************************************************************!*\
3420 - !*** ./packages/packages/core/editor-global-classes/src/components/populate-store.tsx ***!
3421 - \****************************************************************************************/
3422 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3423 -
3424 -__webpack_require__.r(__webpack_exports__);
3425 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3426 -/* harmony export */ PopulateStore: function() { return /* binding */ PopulateStore; }
3427 -/* harmony export */ });
3428 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
3429 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
3430 -/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters");
3431 -/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1__);
3432 -/* harmony import */ var _load_document_classes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../load-document-classes */ "./packages/packages/core/editor-global-classes/src/load-document-classes.ts");
3433 -
3434 -
3435 -
3436 -function PopulateStore() {
3437 - (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
3438 - // TODO - we run it early to have the labels mapping prior to the canvas rendering
3439 - // but in fact we need a way to re-render any dependant twig-templated widgets/elements once we get the initial data
3440 - // in case the canvas rendering has occurred prior to the resolving of this fetch
3441 - (0,_load_document_classes__WEBPACK_IMPORTED_MODULE_2__.loadCurrentDocumentClasses)();
3442 - (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1__.registerDataHook)('after', 'editor/documents/attach-preview', async () => {
3443 - await (0,_load_document_classes__WEBPACK_IMPORTED_MODULE_2__.loadCurrentDocumentClasses)();
3444 - });
3445 - }, []);
3446 - return null;
3447 -}
3448 -
3449 -/***/ }),
3450 -
3451 -/***/ "./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/active-filters.tsx":
3452 -/*!****************************************************************************************************************************!*\
3453 - !*** ./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/active-filters.tsx ***!
3454 - \****************************************************************************************************************************/
3455 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3456 -
3457 -__webpack_require__.r(__webpack_exports__);
3458 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3459 -/* harmony export */ ActiveFilters: function() { return /* binding */ ActiveFilters; }
3460 -/* harmony export */ });
3461 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
3462 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
3463 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3464 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__);
3465 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3466 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__);
3467 -/* harmony import */ var _utils_tracking__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../utils/tracking */ "./packages/packages/core/editor-global-classes/src/utils/tracking.ts");
3468 -/* harmony import */ var _context__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../context */ "./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx");
3469 -/* harmony import */ var _clear_icon_button__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./clear-icon-button */ "./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/clear-icon-button.tsx");
3470 -/* harmony import */ var _filter_list__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./filter-list */ "./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/filter-list.tsx");
3471 -
3472 -
3473 -
3474 -
3475 -
3476 -
3477 -
3478 -const ActiveFilters = () => {
3479 - const {
3480 - filters: {
3481 - filters,
3482 - setFilters
3483 - }
3484 - } = (0,_context__WEBPACK_IMPORTED_MODULE_4__.useSearchAndFilters)();
3485 - const handleRemove = key => {
3486 - setFilters(prev => ({
3487 - ...prev,
3488 - [key]: false
3489 - }));
3490 - (0,_utils_tracking__WEBPACK_IMPORTED_MODULE_3__.trackGlobalClasses)({
3491 - event: 'classManagerFilterUsed',
3492 - action: 'remove',
3493 - type: key,
3494 - trigger: 'header'
3495 - });
3496 - };
3497 - const activeKeys = Object.keys(filters).filter(key => filters[key]);
3498 - const showClearIcon = activeKeys.length > 0;
3499 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Stack, {
3500 - direction: "row",
3501 - alignItems: "center",
3502 - justifyContent: "space-between"
3503 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Stack, {
3504 - direction: "row",
3505 - gap: 0.5,
3506 - alignItems: "center",
3507 - flexWrap: "wrap"
3508 - }, activeKeys.map(key => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Chip, {
3509 - key: key,
3510 - label: _filter_list__WEBPACK_IMPORTED_MODULE_6__.filterConfig[key],
3511 - onDelete: () => handleRemove(key),
3512 - sx: chipSx,
3513 - size: "tiny"
3514 - }))), showClearIcon && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_clear_icon_button__WEBPACK_IMPORTED_MODULE_5__.ClearIconButton, {
3515 - trigger: "header",
3516 - tooltipText: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Clear Filters', 'elementor'),
3517 - sx: {
3518 - margin: '0 0 auto auto'
3519 - }
3520 - }));
3521 -};
3522 -const chipSx = {
3523 - '& .MuiChip-deleteIcon': {
3524 - display: 'none',
3525 - transition: 'opacity 0.2s'
3526 - },
3527 - '&:hover .MuiChip-deleteIcon': {
3528 - display: 'block'
3529 - }
3530 -};
3531 -
3532 -/***/ }),
3533 -
3534 -/***/ "./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/clear-icon-button.tsx":
3535 -/*!*******************************************************************************************************************************!*\
3536 - !*** ./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/clear-icon-button.tsx ***!
3537 - \*******************************************************************************************************************************/
3538 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3539 -
3540 -__webpack_require__.r(__webpack_exports__);
3541 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3542 -/* harmony export */ ClearIconButton: function() { return /* binding */ ClearIconButton; }
3543 -/* harmony export */ });
3544 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
3545 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
3546 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
3547 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_icons__WEBPACK_IMPORTED_MODULE_1__);
3548 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3549 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__);
3550 -/* harmony import */ var _utils_tracking__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../utils/tracking */ "./packages/packages/core/editor-global-classes/src/utils/tracking.ts");
3551 -/* harmony import */ var _context__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../context */ "./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx");
3552 -
3553 -
3554 -
3555 -
3556 -
3557 -const ClearIconButton = ({
3558 - tooltipText,
3559 - sx,
3560 - trigger
3561 -}) => {
3562 - const {
3563 - filters: {
3564 - onClearFilter
3565 - }
3566 - } = (0,_context__WEBPACK_IMPORTED_MODULE_4__.useSearchAndFilters)();
3567 - const handleClearFilters = () => {
3568 - onClearFilter(trigger);
3569 - (0,_utils_tracking__WEBPACK_IMPORTED_MODULE_3__.trackGlobalClasses)({
3570 - event: 'classManagerFilterCleared',
3571 - trigger
3572 - });
3573 - };
3574 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Tooltip, {
3575 - title: tooltipText,
3576 - placement: "top",
3577 - disableInteractive: true
3578 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Box, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(CustomIconButton, {
3579 - "aria-label": tooltipText,
3580 - size: "tiny",
3581 - onClick: handleClearFilters,
3582 - sx: sx
3583 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_1__.BrushBigIcon, {
3584 - fontSize: "tiny"
3585 - }))));
3586 -};
3587 -const CustomIconButton = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.styled)(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.IconButton)(({
3588 - theme
3589 -}) => ({
3590 - '&.Mui-disabled': {
3591 - pointerEvents: 'auto',
3592 - '&:hover': {
3593 - color: theme.palette.action.disabled
3594 - }
3595 - }
3596 -}));
3597 -
3598 -/***/ }),
3599 -
3600 -/***/ "./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/css-class-filter.tsx":
3601 -/*!******************************************************************************************************************************!*\
3602 - !*** ./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/css-class-filter.tsx ***!
3603 - \******************************************************************************************************************************/
3604 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3605 -
3606 -__webpack_require__.r(__webpack_exports__);
3607 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3608 -/* harmony export */ CssClassFilter: function() { return /* binding */ CssClassFilter; }
3609 -/* harmony export */ });
3610 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
3611 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
3612 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-ui */ "@elementor/editor-ui");
3613 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__);
3614 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
3615 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_icons__WEBPACK_IMPORTED_MODULE_2__);
3616 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3617 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__);
3618 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3619 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__);
3620 -/* harmony import */ var _utils_tracking__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../utils/tracking */ "./packages/packages/core/editor-global-classes/src/utils/tracking.ts");
3621 -/* harmony import */ var _context__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../context */ "./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx");
3622 -/* harmony import */ var _clear_icon_button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./clear-icon-button */ "./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/clear-icon-button.tsx");
3623 -/* harmony import */ var _filter_list__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./filter-list */ "./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/filter-list.tsx");
3624 -function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
3625 -
3626 -
3627 -
3628 -
3629 -
3630 -
3631 -
3632 -
3633 -
3634 -
3635 -const CssClassFilter = () => {
3636 - const {
3637 - filters: {
3638 - filters
3639 - }
3640 - } = (0,_context__WEBPACK_IMPORTED_MODULE_6__.useSearchAndFilters)();
3641 - const popupState = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.usePopupState)({
3642 - variant: 'popover',
3643 - disableAutoFocus: true
3644 - });
3645 - (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
3646 - if (popupState.isOpen) {
3647 - (0,_utils_tracking__WEBPACK_IMPORTED_MODULE_5__.trackGlobalClasses)({
3648 - event: 'classManagerFiltersOpened'
3649 - });
3650 - }
3651 - }, [popupState.isOpen]);
3652 - const showCleanIcon = Object.values(filters).some(value => value);
3653 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Tooltip, {
3654 - title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Filters', 'elementor'),
3655 - placement: "top"
3656 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.ToggleButton, _extends({
3657 - value: "filter",
3658 - size: 'tiny',
3659 - selected: popupState.isOpen
3660 - }, (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.bindToggle)(popupState)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_2__.FilterIcon, {
3661 - fontSize: "tiny"
3662 - }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Popover, _extends({
3663 - sx: {
3664 - maxWidth: '344px'
3665 - },
3666 - anchorOrigin: {
3667 - vertical: 'top',
3668 - horizontal: 'right'
3669 - },
3670 - transformOrigin: {
3671 - vertical: 'top',
3672 - horizontal: -21
3673 - }
3674 - }, (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.bindPopover)(popupState)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__.PopoverHeader, {
3675 - actions: showCleanIcon ? [/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_clear_icon_button__WEBPACK_IMPORTED_MODULE_7__.ClearIconButton, {
3676 - trigger: "menu",
3677 - key: "clear-all-button",
3678 - tooltipText: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Clear all', 'elementor')
3679 - })] : [],
3680 - onClose: popupState.close,
3681 - title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Filters', 'elementor'),
3682 - icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_2__.FilterIcon, {
3683 - fontSize: 'tiny'
3684 - })
3685 - }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Divider, {
3686 - sx: {
3687 - borderWidth: '1px 0 0 0'
3688 - }
3689 - }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__.PopoverBody, {
3690 - width: 344,
3691 - height: 125
3692 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_filter_list__WEBPACK_IMPORTED_MODULE_8__.FilterList, null))));
3693 -};
3694 -
3695 -/***/ }),
3696 -
3697 -/***/ "./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/filter-list.tsx":
3698 -/*!*************************************************************************************************************************!*\
3699 - !*** ./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/filter-list.tsx ***!
3700 - \*************************************************************************************************************************/
3701 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3702 -
3703 -__webpack_require__.r(__webpack_exports__);
3704 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3705 -/* harmony export */ FilterList: function() { return /* binding */ FilterList; },
3706 -/* harmony export */ filterConfig: function() { return /* binding */ filterConfig; }
3707 -/* harmony export */ });
3708 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
3709 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
3710 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3711 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__);
3712 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3713 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__);
3714 -/* harmony import */ var _hooks_use_filtered_css_class_usage__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../hooks/use-filtered-css-class-usage */ "./packages/packages/core/editor-global-classes/src/hooks/use-filtered-css-class-usage.tsx");
3715 -/* harmony import */ var _utils_tracking__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../utils/tracking */ "./packages/packages/core/editor-global-classes/src/utils/tracking.ts");
3716 -/* harmony import */ var _context__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../context */ "./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx");
3717 -
3718 -
3719 -
3720 -
3721 -
3722 -
3723 -const filterConfig = {
3724 - unused: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Unused', 'elementor'),
3725 - empty: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Empty', 'elementor'),
3726 - onThisPage: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('On this page', 'elementor')
3727 -};
3728 -const FilterList = () => {
3729 - const {
3730 - filters: {
3731 - filters,
3732 - setFilters
3733 - }
3734 - } = (0,_context__WEBPACK_IMPORTED_MODULE_5__.useSearchAndFilters)();
3735 - const filteredCssClass = (0,_hooks_use_filtered_css_class_usage__WEBPACK_IMPORTED_MODULE_3__.useFilteredCssClassUsage)();
3736 - const handleOnClick = value => {
3737 - setFilters(prev => ({
3738 - ...prev,
3739 - [value]: !prev[value]
3740 - }));
3741 - (0,_utils_tracking__WEBPACK_IMPORTED_MODULE_4__.trackGlobalClasses)({
3742 - event: 'classManagerFilterUsed',
3743 - action: filters[value] ? 'remove' : 'apply',
3744 - type: value,
3745 - trigger: 'menu'
3746 - });
3747 - };
3748 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.MenuList, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.MenuItem, {
3749 - onClick: () => handleOnClick('unused')
3750 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(LabeledCheckbox, {
3751 - label: filterConfig.unused,
3752 - checked: filters.unused,
3753 - suffix: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Chip, {
3754 - size: 'tiny',
3755 - sx: {
3756 - ml: 'auto'
3757 - },
3758 - label: filteredCssClass.unused.length
3759 - })
3760 - })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.MenuItem, {
3761 - onClick: () => handleOnClick('empty')
3762 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(LabeledCheckbox, {
3763 - label: filterConfig.empty,
3764 - checked: filters.empty,
3765 - suffix: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Chip, {
3766 - size: 'tiny',
3767 - sx: {
3768 - ml: 'auto'
3769 - },
3770 - label: filteredCssClass.empty.length
3771 - })
3772 - })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.MenuItem, {
3773 - onClick: () => handleOnClick('onThisPage')
3774 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(LabeledCheckbox, {
3775 - label: filterConfig.onThisPage,
3776 - checked: filters.onThisPage,
3777 - suffix: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Chip, {
3778 - size: 'tiny',
3779 - sx: {
3780 - ml: 'auto'
3781 - },
3782 - label: filteredCssClass.onThisPage.length
3783 - })
3784 - })));
3785 -};
3786 -const LabeledCheckbox = ({
3787 - label,
3788 - suffix,
3789 - checked
3790 -}) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Stack, {
3791 - direction: "row",
3792 - alignItems: "center",
3793 - gap: 0.5,
3794 - flex: 1
3795 -}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Checkbox, {
3796 - size: 'small',
3797 - checked: checked,
3798 - sx: {
3799 - padding: 0,
3800 - color: 'text.tertiary',
3801 - '&.Mui-checked': {
3802 - color: 'text.tertiary'
3803 - }
3804 - }
3805 -}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Typography, {
3806 - variant: "caption",
3807 - sx: {
3808 - color: 'text.secondary'
3809 - }
3810 -}, label), suffix);
3811 -
3812 -/***/ }),
3813 -
3814 -/***/ "./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/search/class-manager-search.tsx":
3815 -/*!**********************************************************************************************************************************!*\
3816 - !*** ./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/search/class-manager-search.tsx ***!
3817 - \**********************************************************************************************************************************/
3818 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3819 -
3820 -__webpack_require__.r(__webpack_exports__);
3821 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3822 -/* harmony export */ ClassManagerSearch: function() { return /* binding */ ClassManagerSearch; }
3823 -/* harmony export */ });
3824 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
3825 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
3826 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
3827 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_icons__WEBPACK_IMPORTED_MODULE_1__);
3828 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3829 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__);
3830 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3831 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__);
3832 -/* harmony import */ var _utils_tracking__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../utils/tracking */ "./packages/packages/core/editor-global-classes/src/utils/tracking.ts");
3833 -/* harmony import */ var _context__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../context */ "./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx");
3834 -
3835 -
3836 -
3837 -
3838 -
3839 -
3840 -const ClassManagerSearch = () => {
3841 - const {
3842 - search: {
3843 - inputValue,
3844 - handleChange
3845 - }
3846 - } = (0,_context__WEBPACK_IMPORTED_MODULE_5__.useSearchAndFilters)();
3847 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Stack, {
3848 - direction: "row",
3849 - gap: 0.5,
3850 - sx: {
3851 - width: '100%'
3852 - }
3853 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Box, {
3854 - sx: {
3855 - flexGrow: 1
3856 - }
3857 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.TextField, {
3858 - role: 'search',
3859 - fullWidth: true,
3860 - size: 'tiny',
3861 - value: inputValue,
3862 - onFocus: () => {
3863 - (0,_utils_tracking__WEBPACK_IMPORTED_MODULE_4__.trackGlobalClasses)({
3864 - event: 'classManagerSearched'
3865 - });
3866 - },
3867 - placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Search', 'elementor'),
3868 - onChange: e => handleChange(e.target.value),
3869 - InputProps: {
3870 - startAdornment: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.InputAdornment, {
3871 - position: "start"
3872 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_1__.SearchIcon, {
3873 - fontSize: 'tiny'
3874 - }))
3875 - }
3876 - })));
3877 -};
3878 -
3879 -/***/ }),
3880 -
3881 -/***/ "./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx":
3882 -/*!***************************************************************************************************!*\
3883 - !*** ./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx ***!
3884 - \***************************************************************************************************/
3885 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3886 -
3887 -__webpack_require__.r(__webpack_exports__);
3888 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3889 -/* harmony export */ SearchAndFilterProvider: function() { return /* binding */ SearchAndFilterProvider; },
3890 -/* harmony export */ useSearchAndFilters: function() { return /* binding */ useSearchAndFilters; }
3891 -/* harmony export */ });
3892 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
3893 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
3894 -/* harmony import */ var _elementor_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/utils */ "@elementor/utils");
3895 -/* harmony import */ var _elementor_utils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_utils__WEBPACK_IMPORTED_MODULE_1__);
3896 -
3897 -
3898 -
3899 -const SearchAndFilterContext = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(undefined);
3900 -const INIT_CHECKED_FILTERS = {
3901 - empty: false,
3902 - onThisPage: false,
3903 - unused: false
3904 -};
3905 -const SearchAndFilterProvider = ({
3906 - children
3907 -}) => {
3908 - const [filters, setFilters] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(INIT_CHECKED_FILTERS);
3909 - const getInitialSearchValue = () => {
3910 - const storedValue = localStorage.getItem('elementor-global-classes-search');
3911 - if (storedValue) {
3912 - localStorage.removeItem('elementor-global-classes-search');
3913 - return storedValue;
3914 - }
3915 - return '';
3916 - };
3917 - const {
3918 - debouncedValue,
3919 - inputValue,
3920 - handleChange
3921 - } = (0,_elementor_utils__WEBPACK_IMPORTED_MODULE_1__.useDebounceState)({
3922 - delay: 300,
3923 - initialValue: getInitialSearchValue()
3924 - });
3925 - const onClearSearch = () => {
3926 - handleChange('');
3927 - };
3928 - const onClearFilter = () => {
3929 - setFilters(INIT_CHECKED_FILTERS);
3930 - };
3931 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(SearchAndFilterContext.Provider, {
3932 - value: {
3933 - search: {
3934 - debouncedValue,
3935 - inputValue,
3936 - handleChange,
3937 - onClearSearch
3938 - },
3939 - filters: {
3940 - filters,
3941 - setFilters,
3942 - onClearFilter
3943 - }
3944 - }
3945 - }, children);
3946 -};
3947 -const useSearchAndFilters = () => {
3948 - const context = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(SearchAndFilterContext);
3949 - if (!context) {
3950 - throw new Error('useSearchContext must be used within a SearchContextProvider');
3951 - }
3952 - return context;
3953 -};
3954 -
3955 -/***/ }),
3956 -
3957 -/***/ "./packages/packages/core/editor-global-classes/src/errors.ts":
3958 -/*!********************************************************************!*\
3959 - !*** ./packages/packages/core/editor-global-classes/src/errors.ts ***!
3960 - \********************************************************************/
3961 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3962 -
3963 -__webpack_require__.r(__webpack_exports__);
3964 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3965 -/* harmony export */ GlobalClassLabelAlreadyExistsError: function() { return /* binding */ GlobalClassLabelAlreadyExistsError; },
3966 -/* harmony export */ GlobalClassNotFoundError: function() { return /* binding */ GlobalClassNotFoundError; },
3967 -/* harmony export */ GlobalClassTrackingError: function() { return /* binding */ GlobalClassTrackingError; }
3968 -/* harmony export */ });
3969 -/* harmony import */ var _elementor_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/utils */ "@elementor/utils");
3970 -/* harmony import */ var _elementor_utils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_utils__WEBPACK_IMPORTED_MODULE_0__);
3971 -
3972 -const GlobalClassNotFoundError = (0,_elementor_utils__WEBPACK_IMPORTED_MODULE_0__.createError)({
3973 - code: 'global_class_not_found',
3974 - message: 'Global class not found.'
3975 -});
3976 -const GlobalClassLabelAlreadyExistsError = (0,_elementor_utils__WEBPACK_IMPORTED_MODULE_0__.createError)({
3977 - code: 'global_class_label_already_exists',
3978 - message: 'Class with this name already exists.'
3979 -});
3980 -const GlobalClassTrackingError = (0,_elementor_utils__WEBPACK_IMPORTED_MODULE_0__.createError)({
3981 - code: 'global_class_tracking_error',
3982 - message: 'Error tracking global classes event.'
3983 -});
3984 -
3985 -/***/ }),
3986 -
3987 -/***/ "./packages/packages/core/editor-global-classes/src/global-classes-styles-provider.ts":
3988 -/*!********************************************************************************************!*\
3989 - !*** ./packages/packages/core/editor-global-classes/src/global-classes-styles-provider.ts ***!
3990 - \********************************************************************************************/
3991 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3992 -
3993 -__webpack_require__.r(__webpack_exports__);
3994 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3995 -/* harmony export */ GLOBAL_CLASSES_PROVIDER_KEY: function() { return /* binding */ GLOBAL_CLASSES_PROVIDER_KEY; },
3996 -/* harmony export */ globalClassesStylesProvider: function() { return /* binding */ globalClassesStylesProvider; }
3997 -/* harmony export */ });
3998 -/* harmony import */ var _elementor_editor_styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-styles */ "@elementor/editor-styles");
3999 -/* harmony import */ var _elementor_editor_styles__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_styles__WEBPACK_IMPORTED_MODULE_0__);
4000 -/* harmony import */ var _elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-styles-repository */ "@elementor/editor-styles-repository");
4001 -/* harmony import */ var _elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_1__);
4002 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/store */ "@elementor/store");
4003 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_store__WEBPACK_IMPORTED_MODULE_2__);
4004 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
4005 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__);
4006 -/* harmony import */ var _capabilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./capabilities */ "./packages/packages/core/editor-global-classes/src/capabilities.ts");
4007 -/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./errors */ "./packages/packages/core/editor-global-classes/src/errors.ts");
4008 -/* harmony import */ var _load_existing_classes__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./load-existing-classes */ "./packages/packages/core/editor-global-classes/src/load-existing-classes.ts");
4009 -/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./store */ "./packages/packages/core/editor-global-classes/src/store.ts");
4010 -/* harmony import */ var _utils_tracking__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils/tracking */ "./packages/packages/core/editor-global-classes/src/utils/tracking.ts");
4011 -
4012 -
4013 -
4014 -
4015 -
4016 -
4017 -
4018 -
4019 -
4020 -const MAX_CLASSES = 1000;
4021 -const GLOBAL_CLASSES_PROVIDER_KEY = 'global-classes';
4022 -const PREGENERATED_LINK_PATTERN = /^global-([0-9]+-)?(preview|frontend)-[a-zA-Z_-]+-css$/;
4023 -const globalClassesStylesProvider = (0,_elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_1__.createStylesProvider)({
4024 - key: GLOBAL_CLASSES_PROVIDER_KEY,
4025 - priority: 30,
4026 - limit: MAX_CLASSES,
4027 - isPregeneratedLink: ({
4028 - id
4029 - }) => PREGENERATED_LINK_PATTERN.test(id),
4030 - labels: {
4031 - singular: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('class', 'elementor'),
4032 - plural: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('classes', 'elementor')
4033 - },
4034 - subscribe: cb => subscribeWithStates(cb),
4035 - capabilities: (0,_capabilities__WEBPACK_IMPORTED_MODULE_4__.getCapabilities)(),
4036 - actions: {
4037 - all: () => (0,_store__WEBPACK_IMPORTED_MODULE_7__.selectOrderedClasses)((0,_elementor_store__WEBPACK_IMPORTED_MODULE_2__.__getState)()),
4038 - get: id => {
4039 - const state = (0,_elementor_store__WEBPACK_IMPORTED_MODULE_2__.__getState)();
4040 - const isFetched = (0,_store__WEBPACK_IMPORTED_MODULE_7__.selectIsClassFetched)(state, id);
4041 - const style = (0,_store__WEBPACK_IMPORTED_MODULE_7__.selectClass)(state, id);
4042 -
4043 - // the isFetched flag is based on the existence of the style in the initial data
4044 - // so if the style is created during the same session - it won't be stored as part of the initial data
4045 - if (isFetched || style) {
4046 - return style;
4047 - }
4048 - (0,_load_existing_classes__WEBPACK_IMPORTED_MODULE_6__.loadExistingClasses)([id]);
4049 - const label = (0,_store__WEBPACK_IMPORTED_MODULE_7__.selectClassLabels)(state)[id] ?? id;
4050 - return (0,_store__WEBPACK_IMPORTED_MODULE_7__.placeholderDefinition)(id, label);
4051 - },
4052 - resolveCssName: id => {
4053 - const state = (0,_elementor_store__WEBPACK_IMPORTED_MODULE_2__.__getState)();
4054 - const loaded = (0,_store__WEBPACK_IMPORTED_MODULE_7__.selectClass)(state, id);
4055 - if (loaded) {
4056 - return loaded.label;
4057 - }
4058 - const fromIndex = (0,_store__WEBPACK_IMPORTED_MODULE_7__.selectClassLabels)(state)[id];
4059 - return fromIndex ?? id;
4060 - },
4061 - create: (label, variants = [], id) => {
4062 - const existingClasses = Object.entries((0,_store__WEBPACK_IMPORTED_MODULE_7__.selectClassLabels)((0,_elementor_store__WEBPACK_IMPORTED_MODULE_2__.__getState)()));
4063 - const existingLabels = existingClasses.map(([, classLabel]) => classLabel);
4064 - if (existingLabels.includes(label)) {
4065 - throw new _errors__WEBPACK_IMPORTED_MODULE_5__.GlobalClassLabelAlreadyExistsError({
4066 - context: {
4067 - label
4068 - }
4069 - });
4070 - }
4071 - const existingIds = existingClasses.map(([existingId]) => existingId);
4072 - if (!id) {
4073 - id = (0,_elementor_editor_styles__WEBPACK_IMPORTED_MODULE_0__.generateId)('g-', existingIds);
4074 - }
4075 - (0,_elementor_store__WEBPACK_IMPORTED_MODULE_2__.__dispatch)(_store__WEBPACK_IMPORTED_MODULE_7__.slice.actions.add({
4076 - id,
4077 - type: 'class',
4078 - label,
4079 - variants
4080 - }));
4081 - return id;
4082 - },
4083 - update: payload => {
4084 - (0,_elementor_store__WEBPACK_IMPORTED_MODULE_2__.__dispatch)(_store__WEBPACK_IMPORTED_MODULE_7__.slice.actions.update({
4085 - style: payload
4086 - }));
4087 - },
4088 - delete: id => {
4089 - (0,_elementor_store__WEBPACK_IMPORTED_MODULE_2__.__dispatch)(_store__WEBPACK_IMPORTED_MODULE_7__.slice.actions.delete(id));
4090 - },
4091 - updateProps: args => {
4092 - (0,_elementor_store__WEBPACK_IMPORTED_MODULE_2__.__dispatch)(_store__WEBPACK_IMPORTED_MODULE_7__.slice.actions.updateProps({
4093 - id: args.id,
4094 - meta: args.meta,
4095 - props: args.props,
4096 - mode: args.mode
4097 - }));
4098 - },
4099 - updateCustomCss: args => {
4100 - (0,_elementor_store__WEBPACK_IMPORTED_MODULE_2__.__dispatch)(_store__WEBPACK_IMPORTED_MODULE_7__.slice.actions.updateProps({
4101 - id: args.id,
4102 - meta: args.meta,
4103 - custom_css: args.custom_css,
4104 - props: {}
4105 - }));
4106 - },
4107 - tracking: data => {
4108 - (0,_utils_tracking__WEBPACK_IMPORTED_MODULE_8__.trackGlobalClasses)(data).catch(error => {
4109 - throw new _errors__WEBPACK_IMPORTED_MODULE_5__.GlobalClassTrackingError({
4110 - cause: error
4111 - });
4112 - });
4113 - }
4114 - }
4115 -});
4116 -const subscribeWithStates = cb => {
4117 - let previousState = (0,_store__WEBPACK_IMPORTED_MODULE_7__.selectData)((0,_elementor_store__WEBPACK_IMPORTED_MODULE_2__.__getState)());
4118 - return (0,_elementor_store__WEBPACK_IMPORTED_MODULE_2__.__subscribeWithSelector)(state => (0,_store__WEBPACK_IMPORTED_MODULE_7__.selectData)(state), currentState => {
4119 - cb(previousState.items, currentState.items);
4120 - previousState = currentState;
4121 - });
4122 -};
4123 -
4124 -/***/ }),
4125 -
4126 -/***/ "./packages/packages/core/editor-global-classes/src/hooks/use-classes-order.ts":
4127 -/*!*************************************************************************************!*\
4128 - !*** ./packages/packages/core/editor-global-classes/src/hooks/use-classes-order.ts ***!
4129 - \*************************************************************************************/
4130 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4131 -
4132 -__webpack_require__.r(__webpack_exports__);
4133 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4134 -/* harmony export */ useClassesOrder: function() { return /* binding */ useClassesOrder; }
4135 -/* harmony export */ });
4136 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/store */ "@elementor/store");
4137 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_store__WEBPACK_IMPORTED_MODULE_0__);
4138 -/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../store */ "./packages/packages/core/editor-global-classes/src/store.ts");
4139 -
4140 -
4141 -const useClassesOrder = () => {
4142 - return (0,_elementor_store__WEBPACK_IMPORTED_MODULE_0__.__useSelector)(_store__WEBPACK_IMPORTED_MODULE_1__.selectOrder);
4143 -};
4144 -
4145 -/***/ }),
4146 -
4147 -/***/ "./packages/packages/core/editor-global-classes/src/hooks/use-css-class-usage-by-id.ts":
4148 -/*!*********************************************************************************************!*\
4149 - !*** ./packages/packages/core/editor-global-classes/src/hooks/use-css-class-usage-by-id.ts ***!
4150 - \*********************************************************************************************/
4151 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4152 -
4153 -__webpack_require__.r(__webpack_exports__);
4154 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4155 -/* harmony export */ useCssClassUsageByID: function() { return /* binding */ useCssClassUsageByID; }
4156 -/* harmony export */ });
4157 -/* harmony import */ var _use_css_class_usage__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./use-css-class-usage */ "./packages/packages/core/editor-global-classes/src/hooks/use-css-class-usage.ts");
4158 -
4159 -const EMPTY_CLASS_USAGE = {
4160 - total: 0,
4161 - content: []
4162 -};
4163 -const useCssClassUsageByID = id => {
4164 - const {
4165 - data,
4166 - ...rest
4167 - } = (0,_use_css_class_usage__WEBPACK_IMPORTED_MODULE_0__.useCssClassUsage)();
4168 - const classData = data?.[id] ?? EMPTY_CLASS_USAGE;
4169 - return {
4170 - ...rest,
4171 - data: classData
4172 - };
4173 -};
4174 -
4175 -/***/ }),
4176 -
4177 -/***/ "./packages/packages/core/editor-global-classes/src/hooks/use-css-class-usage.ts":
4178 -/*!***************************************************************************************!*\
4179 - !*** ./packages/packages/core/editor-global-classes/src/hooks/use-css-class-usage.ts ***!
4180 - \***************************************************************************************/
4181 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4182 -
4183 -__webpack_require__.r(__webpack_exports__);
4184 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4185 -/* harmony export */ useCssClassUsage: function() { return /* binding */ useCssClassUsage; }
4186 -/* harmony export */ });
4187 -/* harmony import */ var _elementor_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/query */ "@elementor/query");
4188 -/* harmony import */ var _elementor_query__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_query__WEBPACK_IMPORTED_MODULE_0__);
4189 -/* harmony import */ var _service_css_class_usage_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../service/css-class-usage-service */ "./packages/packages/core/editor-global-classes/service/css-class-usage-service.ts");
4190 -/* harmony import */ var _components_css_class_usage_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../components/css-class-usage/types */ "./packages/packages/core/editor-global-classes/src/components/css-class-usage/types.ts");
4191 -
4192 -
4193 -
4194 -const useCssClassUsage = () => {
4195 - return (0,_elementor_query__WEBPACK_IMPORTED_MODULE_0__.useQuery)({
4196 - queryKey: [_components_css_class_usage_types__WEBPACK_IMPORTED_MODULE_2__.QUERY_KEY],
4197 - queryFn: _service_css_class_usage_service__WEBPACK_IMPORTED_MODULE_1__.fetchCssClassUsage,
4198 - refetchOnMount: false,
4199 - refetchOnWindowFocus: true
4200 - });
4201 -};
4202 -
4203 -/***/ }),
4204 -
4205 -/***/ "./packages/packages/core/editor-global-classes/src/hooks/use-dirty-state.ts":
4206 -/*!***********************************************************************************!*\
4207 - !*** ./packages/packages/core/editor-global-classes/src/hooks/use-dirty-state.ts ***!
4208 - \***********************************************************************************/
4209 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4210 -
4211 -__webpack_require__.r(__webpack_exports__);
4212 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4213 -/* harmony export */ useDirtyState: function() { return /* binding */ useDirtyState; }
4214 -/* harmony export */ });
4215 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/store */ "@elementor/store");
4216 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_store__WEBPACK_IMPORTED_MODULE_0__);
4217 -/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../store */ "./packages/packages/core/editor-global-classes/src/store.ts");
4218 -
4219 -
4220 -const useDirtyState = () => {
4221 - return (0,_elementor_store__WEBPACK_IMPORTED_MODULE_0__.__useSelector)(_store__WEBPACK_IMPORTED_MODULE_1__.selectIsDirty);
4222 -};
4223 -
4224 -/***/ }),
4225 -
4226 -/***/ "./packages/packages/core/editor-global-classes/src/hooks/use-empty-css-class.ts":
4227 -/*!***************************************************************************************!*\
4228 - !*** ./packages/packages/core/editor-global-classes/src/hooks/use-empty-css-class.ts ***!
4229 - \***************************************************************************************/
4230 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4231 -
4232 -__webpack_require__.r(__webpack_exports__);
4233 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4234 -/* harmony export */ useAllCssClassesIDs: function() { return /* binding */ useAllCssClassesIDs; },
4235 -/* harmony export */ useEmptyCssClass: function() { return /* binding */ useEmptyCssClass; }
4236 -/* harmony export */ });
4237 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/store */ "@elementor/store");
4238 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_store__WEBPACK_IMPORTED_MODULE_0__);
4239 -/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../store */ "./packages/packages/core/editor-global-classes/src/store.ts");
4240 -
4241 -
4242 -const useEmptyCssClass = () => {
4243 - return (0,_elementor_store__WEBPACK_IMPORTED_MODULE_0__.__useSelector)(_store__WEBPACK_IMPORTED_MODULE_1__.selectEmptyCssClass);
4244 -};
4245 -const useAllCssClassesIDs = () => {
4246 - const cssClasses = (0,_elementor_store__WEBPACK_IMPORTED_MODULE_0__.__useSelector)(_store__WEBPACK_IMPORTED_MODULE_1__.selectGlobalClasses);
4247 - return Object.keys(cssClasses);
4248 -};
4249 -
4250 -/***/ }),
4251 -
4252 -/***/ "./packages/packages/core/editor-global-classes/src/hooks/use-filtered-css-class-usage.tsx":
4253 -/*!*************************************************************************************************!*\
4254 - !*** ./packages/packages/core/editor-global-classes/src/hooks/use-filtered-css-class-usage.tsx ***!
4255 - \*************************************************************************************************/
4256 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4257 -
4258 -__webpack_require__.r(__webpack_exports__);
4259 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4260 -/* harmony export */ useFilteredCssClassUsage: function() { return /* binding */ useFilteredCssClassUsage; }
4261 -/* harmony export */ });
4262 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
4263 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
4264 -/* harmony import */ var _elementor_editor_documents__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-documents */ "@elementor/editor-documents");
4265 -/* harmony import */ var _elementor_editor_documents__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_1__);
4266 -/* harmony import */ var _use_css_class_usage__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./use-css-class-usage */ "./packages/packages/core/editor-global-classes/src/hooks/use-css-class-usage.ts");
4267 -/* harmony import */ var _use_empty_css_class__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./use-empty-css-class */ "./packages/packages/core/editor-global-classes/src/hooks/use-empty-css-class.ts");
4268 -
4269 -
4270 -
4271 -
4272 -const findCssClassKeysByPageID = (data, pageId) => {
4273 - const result = [];
4274 - for (const key in data) {
4275 - data[key].content.forEach(content => {
4276 - if (+content.pageId === pageId) {
4277 - result.push(key);
4278 - }
4279 - });
4280 - }
4281 - return result;
4282 -};
4283 -const getUnusedClasses = (usedCssClass, potentialUnused) => {
4284 - const set = new Set(usedCssClass);
4285 - return potentialUnused.filter(cssClass => !set.has(cssClass));
4286 -};
4287 -const EMPTY_FILTERED_CSS_CLASS_RESPONSE = {
4288 - empty: [],
4289 - onThisPage: [],
4290 - unused: []
4291 -};
4292 -const useFilteredCssClassUsage = () => {
4293 - const document = (0,_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_1__.__useActiveDocument)();
4294 - const emptyCssClasses = (0,_use_empty_css_class__WEBPACK_IMPORTED_MODULE_3__.useEmptyCssClass)();
4295 - const {
4296 - data,
4297 - isLoading
4298 - } = (0,_use_css_class_usage__WEBPACK_IMPORTED_MODULE_2__.useCssClassUsage)();
4299 - const listOfCssClasses = (0,_use_empty_css_class__WEBPACK_IMPORTED_MODULE_3__.useAllCssClassesIDs)();
4300 - const emptyCssClassesIDs = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => emptyCssClasses.map(({
4301 - id
4302 - }) => id), [emptyCssClasses]);
4303 - const onThisPage = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {
4304 - if (!data || !document) {
4305 - return [];
4306 - }
4307 - return findCssClassKeysByPageID(data, document.id);
4308 - }, [data, document]);
4309 - const unused = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {
4310 - if (!data) {
4311 - return [];
4312 - }
4313 - return getUnusedClasses(Object.keys(data), listOfCssClasses);
4314 - }, [data, listOfCssClasses]);
4315 - if (isLoading || !data || !document) {
4316 - return EMPTY_FILTERED_CSS_CLASS_RESPONSE;
4317 - }
4318 - return {
4319 - onThisPage,
4320 - unused,
4321 - empty: emptyCssClassesIDs
4322 - };
4323 -};
4324 -
4325 -/***/ }),
4326 -
4327 -/***/ "./packages/packages/core/editor-global-classes/src/hooks/use-filters.ts":
4328 -/*!*******************************************************************************!*\
4329 - !*** ./packages/packages/core/editor-global-classes/src/hooks/use-filters.ts ***!
4330 - \*******************************************************************************/
4331 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4332 -
4333 -__webpack_require__.r(__webpack_exports__);
4334 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4335 -/* harmony export */ useFilters: function() { return /* binding */ useFilters; }
4336 -/* harmony export */ });
4337 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
4338 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
4339 -/* harmony import */ var _components_search_and_filter_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/search-and-filter/context */ "./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx");
4340 -/* harmony import */ var _use_filtered_css_class_usage__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./use-filtered-css-class-usage */ "./packages/packages/core/editor-global-classes/src/hooks/use-filtered-css-class-usage.tsx");
4341 -
4342 -
4343 -
4344 -const useFilters = () => {
4345 - const {
4346 - filters: {
4347 - filters
4348 - }
4349 - } = (0,_components_search_and_filter_context__WEBPACK_IMPORTED_MODULE_1__.useSearchAndFilters)();
4350 - const allFilters = (0,_use_filtered_css_class_usage__WEBPACK_IMPORTED_MODULE_2__.useFilteredCssClassUsage)();
4351 - return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {
4352 - const activeEntries = Object.entries(filters).filter(([, isActive]) => isActive);
4353 - if (activeEntries.length === 0) {
4354 - return null;
4355 - }
4356 - return activeEntries.reduce((acc, [key], index) => {
4357 - const current = allFilters[key] || [];
4358 - if (index === 0) {
4359 - return current;
4360 - }
4361 - return acc.filter(val => current.includes(val));
4362 - }, []);
4363 - }, [filters, allFilters]);
4364 -};
4365 -
4366 -/***/ }),
4367 -
4368 -/***/ "./packages/packages/core/editor-global-classes/src/hooks/use-ordered-classes.ts":
4369 -/*!***************************************************************************************!*\
4370 - !*** ./packages/packages/core/editor-global-classes/src/hooks/use-ordered-classes.ts ***!
4371 - \***************************************************************************************/
4372 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4373 -
4374 -__webpack_require__.r(__webpack_exports__);
4375 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4376 -/* harmony export */ useOrderedClasses: function() { return /* binding */ useOrderedClasses; }
4377 -/* harmony export */ });
4378 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/store */ "@elementor/store");
4379 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_store__WEBPACK_IMPORTED_MODULE_0__);
4380 -/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../store */ "./packages/packages/core/editor-global-classes/src/store.ts");
4381 -
4382 -
4383 -const useOrderedClasses = () => {
4384 - return (0,_elementor_store__WEBPACK_IMPORTED_MODULE_0__.__useSelector)(_store__WEBPACK_IMPORTED_MODULE_1__.selectOrderedClasses);
4385 -};
4386 -
4387 -/***/ }),
4388 -
4389 -/***/ "./packages/packages/core/editor-global-classes/src/hooks/use-prefetch-css-class-usage.ts":
4390 -/*!************************************************************************************************!*\
4391 - !*** ./packages/packages/core/editor-global-classes/src/hooks/use-prefetch-css-class-usage.ts ***!
4392 - \************************************************************************************************/
4393 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4394 -
4395 -__webpack_require__.r(__webpack_exports__);
4396 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4397 -/* harmony export */ PrefetchCssClassUsage: function() { return /* binding */ PrefetchCssClassUsage; },
4398 -/* harmony export */ usePrefetchCssClassUsage: function() { return /* binding */ usePrefetchCssClassUsage; }
4399 -/* harmony export */ });
4400 -/* harmony import */ var _elementor_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/query */ "@elementor/query");
4401 -/* harmony import */ var _elementor_query__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_query__WEBPACK_IMPORTED_MODULE_0__);
4402 -/* harmony import */ var _service_css_class_usage_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../service/css-class-usage-service */ "./packages/packages/core/editor-global-classes/service/css-class-usage-service.ts");
4403 -/* harmony import */ var _components_css_class_usage_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../components/css-class-usage/types */ "./packages/packages/core/editor-global-classes/src/components/css-class-usage/types.ts");
4404 -
4405 -
4406 -
4407 -function usePrefetchCssClassUsage() {
4408 - const queryClient = (0,_elementor_query__WEBPACK_IMPORTED_MODULE_0__.useQueryClient)();
4409 - const prefetchClassesUsage = () => queryClient.prefetchQuery({
4410 - queryKey: [_components_css_class_usage_types__WEBPACK_IMPORTED_MODULE_2__.QUERY_KEY],
4411 - queryFn: _service_css_class_usage_service__WEBPACK_IMPORTED_MODULE_1__.fetchCssClassUsage
4412 - });
4413 - return {
4414 - prefetchClassesUsage
4415 - };
4416 -}
4417 -const PrefetchCssClassUsage = () => {
4418 - const {
4419 - prefetchClassesUsage
4420 - } = usePrefetchCssClassUsage();
4421 - prefetchClassesUsage();
4422 - return null;
4423 -};
4424 -
4425 -/***/ }),
4426 -
4427 -/***/ "./packages/packages/core/editor-global-classes/src/init.ts":
4428 -/*!******************************************************************!*\
4429 - !*** ./packages/packages/core/editor-global-classes/src/init.ts ***!
4430 - \******************************************************************/
4431 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4432 -
4433 -__webpack_require__.r(__webpack_exports__);
4434 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4435 -/* harmony export */ init: function() { return /* binding */ init; }
4436 -/* harmony export */ });
4437 -/* harmony import */ var _elementor_editor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor */ "@elementor/editor");
4438 -/* harmony import */ var _elementor_editor__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor__WEBPACK_IMPORTED_MODULE_0__);
4439 -/* harmony import */ var _elementor_editor_editing_panel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-editing-panel */ "@elementor/editor-editing-panel");
4440 -/* harmony import */ var _elementor_editor_editing_panel__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_editing_panel__WEBPACK_IMPORTED_MODULE_1__);
4441 -/* harmony import */ var _elementor_editor_embedded_documents_manager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/editor-embedded-documents-manager */ "@elementor/editor-embedded-documents-manager");
4442 -/* harmony import */ var _elementor_editor_embedded_documents_manager__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_embedded_documents_manager__WEBPACK_IMPORTED_MODULE_2__);
4443 -/* harmony import */ var _elementor_editor_mcp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @elementor/editor-mcp */ "@elementor/editor-mcp");
4444 -/* harmony import */ var _elementor_editor_mcp__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_mcp__WEBPACK_IMPORTED_MODULE_3__);
4445 -/* harmony import */ var _elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @elementor/editor-styles-repository */ "@elementor/editor-styles-repository");
4446 -/* harmony import */ var _elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_4__);
4447 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @elementor/store */ "@elementor/store");
4448 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_elementor_store__WEBPACK_IMPORTED_MODULE_5__);
4449 -/* harmony import */ var _components_class_manager_class_manager_button__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./components/class-manager/class-manager-button */ "./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-button.tsx");
4450 -/* harmony import */ var _components_convert_local_class_to_global_class__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./components/convert-local-class-to-global-class */ "./packages/packages/core/editor-global-classes/src/components/convert-local-class-to-global-class.tsx");
4451 -/* harmony import */ var _components_global_styles_import_listener__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./components/global-styles-import-listener */ "./packages/packages/core/editor-global-classes/src/components/global-styles-import-listener.tsx");
4452 -/* harmony import */ var _components_populate_store__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./components/populate-store */ "./packages/packages/core/editor-global-classes/src/components/populate-store.tsx");
4453 -/* harmony import */ var _global_classes_styles_provider__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./global-classes-styles-provider */ "./packages/packages/core/editor-global-classes/src/global-classes-styles-provider.ts");
4454 -/* harmony import */ var _hooks_use_prefetch_css_class_usage__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./hooks/use-prefetch-css-class-usage */ "./packages/packages/core/editor-global-classes/src/hooks/use-prefetch-css-class-usage.ts");
4455 -/* harmony import */ var _load_document_classes__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./load-document-classes */ "./packages/packages/core/editor-global-classes/src/load-document-classes.ts");
4456 -/* harmony import */ var _mcp_integration__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./mcp-integration */ "./packages/packages/core/editor-global-classes/src/mcp-integration/index.ts");
4457 -/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./store */ "./packages/packages/core/editor-global-classes/src/store.ts");
4458 -/* harmony import */ var _sync_with_document__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./sync-with-document */ "./packages/packages/core/editor-global-classes/src/sync-with-document.tsx");
4459 -
4460 -
4461 -
4462 -
4463 -
4464 -
4465 -
4466 -
4467 -
4468 -
4469 -
4470 -
4471 -
4472 -
4473 -
4474 -
4475 -function init() {
4476 - (0,_elementor_store__WEBPACK_IMPORTED_MODULE_5__.__registerSlice)(_store__WEBPACK_IMPORTED_MODULE_14__.slice);
4477 - _elementor_editor_embedded_documents_manager__WEBPACK_IMPORTED_MODULE_2__.embeddedDocumentsManager.onDocumentLoad(documentId => {
4478 - void (0,_load_document_classes__WEBPACK_IMPORTED_MODULE_12__.addDocumentClasses)(documentId);
4479 - });
4480 - _elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_4__.stylesRepository.register(_global_classes_styles_provider__WEBPACK_IMPORTED_MODULE_10__.globalClassesStylesProvider);
4481 - (0,_elementor_editor__WEBPACK_IMPORTED_MODULE_0__.injectIntoLogic)({
4482 - id: 'global-classes-populate-store',
4483 - component: _components_populate_store__WEBPACK_IMPORTED_MODULE_9__.PopulateStore
4484 - });
4485 - (0,_elementor_editor__WEBPACK_IMPORTED_MODULE_0__.injectIntoLogic)({
4486 - id: 'global-classes-sync-with-document',
4487 - component: _sync_with_document__WEBPACK_IMPORTED_MODULE_15__.SyncWithDocumentSave
4488 - });
4489 - (0,_elementor_editor__WEBPACK_IMPORTED_MODULE_0__.injectIntoLogic)({
4490 - id: 'global-classes-import-listener',
4491 - component: _components_global_styles_import_listener__WEBPACK_IMPORTED_MODULE_8__.GlobalStylesImportListener
4492 - });
4493 - (0,_elementor_editor__WEBPACK_IMPORTED_MODULE_0__.injectIntoLogic)({
4494 - id: 'global-classes-prefetch-css-class-usage',
4495 - component: _hooks_use_prefetch_css_class_usage__WEBPACK_IMPORTED_MODULE_11__.PrefetchCssClassUsage
4496 - });
4497 - (0,_elementor_editor_editing_panel__WEBPACK_IMPORTED_MODULE_1__.injectIntoCssClassConvert)({
4498 - id: 'global-classes-convert-from-local-class',
4499 - component: _components_convert_local_class_to_global_class__WEBPACK_IMPORTED_MODULE_7__.ConvertLocalClassToGlobalClass
4500 - });
4501 - (0,_elementor_editor_editing_panel__WEBPACK_IMPORTED_MODULE_1__.injectIntoClassSelectorActions)({
4502 - id: 'global-classes-manager-button',
4503 - component: _components_class_manager_class_manager_button__WEBPACK_IMPORTED_MODULE_6__.ClassManagerButton
4504 - });
4505 - (0,_elementor_editor_editing_panel__WEBPACK_IMPORTED_MODULE_1__.registerStyleProviderToColors)(_global_classes_styles_provider__WEBPACK_IMPORTED_MODULE_10__.GLOBAL_CLASSES_PROVIDER_KEY, {
4506 - name: 'global',
4507 - getThemeColor: theme => theme.palette.global.dark
4508 - });
4509 - (0,_mcp_integration__WEBPACK_IMPORTED_MODULE_13__.initMcpIntegration)((0,_elementor_editor_mcp__WEBPACK_IMPORTED_MODULE_3__.getMCPByDomain)('classes', {
4510 - instructions: 'MCP server for management of Elementor global classes',
4511 - docs: `Everything related to V4 ( Atomic ) global classes.
4512 -# Global classes
4513 -- Create/update/delete global classes
4514 -- Get list of global classes
4515 -- Get details of a global class
4516 -`
4517 - }), (0,_elementor_editor_mcp__WEBPACK_IMPORTED_MODULE_3__.getMCPByDomain)('canvas'));
4518 -}
4519 -
4520 -/***/ }),
4521 -
4522 -/***/ "./packages/packages/core/editor-global-classes/src/load-document-classes.ts":
4523 -/*!***********************************************************************************!*\
4524 - !*** ./packages/packages/core/editor-global-classes/src/load-document-classes.ts ***!
4525 - \***********************************************************************************/
4526 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4527 -
4528 -__webpack_require__.r(__webpack_exports__);
4529 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4530 -/* harmony export */ addDocumentClasses: function() { return /* binding */ addDocumentClasses; },
4531 -/* harmony export */ loadCurrentDocumentClasses: function() { return /* binding */ loadCurrentDocumentClasses; },
4532 -/* harmony export */ styleDefinitionsMapWithoutNull: function() { return /* binding */ styleDefinitionsMapWithoutNull; }
4533 -/* harmony export */ });
4534 -/* harmony import */ var _elementor_editor_documents__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-documents */ "@elementor/editor-documents");
4535 -/* harmony import */ var _elementor_editor_documents__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_0__);
4536 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/store */ "@elementor/store");
4537 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_store__WEBPACK_IMPORTED_MODULE_1__);
4538 -/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./api */ "./packages/packages/core/editor-global-classes/src/api.ts");
4539 -/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./store */ "./packages/packages/core/editor-global-classes/src/store.ts");
4540 -/* harmony import */ var _utils_create_labels_for_classes__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils/create-labels-for-classes */ "./packages/packages/core/editor-global-classes/src/utils/create-labels-for-classes.ts");
4541 -
4542 -
4543 -
4544 -
4545 -
4546 -function styleDefinitionsMapWithoutNull(map) {
4547 - return Object.fromEntries(Object.entries(map).filter(entry => entry[1] !== null));
4548 -}
4549 -function resetGlobalClassesState(globalOrder, classLabels) {
4550 - (0,_elementor_store__WEBPACK_IMPORTED_MODULE_1__.__dispatch)(_store__WEBPACK_IMPORTED_MODULE_3__.slice.actions.load({
4551 - preview: {
4552 - items: {},
4553 - order: globalOrder
4554 - },
4555 - frontend: {
4556 - items: {},
4557 - order: globalOrder
4558 - },
4559 - classLabels
4560 - }));
4561 -}
4562 -async function loadCurrentDocumentClasses() {
4563 - const [previewIndexRes, frontendIndexRes] = await Promise.all([_api__WEBPACK_IMPORTED_MODULE_2__.apiClient.all('preview'), _api__WEBPACK_IMPORTED_MODULE_2__.apiClient.all('frontend')]);
4564 - const previewIndex = previewIndexRes.data.data;
4565 - const frontendIndex = frontendIndexRes.data.data;
4566 - const classLabels = (0,_utils_create_labels_for_classes__WEBPACK_IMPORTED_MODULE_4__.createLabelsForClasses)(previewIndex);
4567 - const previewOrder = previewIndex.map(e => e.id);
4568 - const frontendOrder = frontendIndex.map(e => e.id);
4569 -
4570 - // This is intended to establish the baseline with current labels and order
4571 - // without it we won't be able to properly resolve the styles' class names
4572 - resetGlobalClassesState(previewOrder, classLabels);
4573 - const postId = (0,_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_0__.getCurrentDocument)()?.id;
4574 - if (!postId) {
4575 - return;
4576 - }
4577 - const [previewPostRes, frontendPostRes] = await Promise.all([_api__WEBPACK_IMPORTED_MODULE_2__.apiClient.getStylesForPost(postId, 'preview'), _api__WEBPACK_IMPORTED_MODULE_2__.apiClient.getStylesForPost(postId, 'frontend')]);
4578 - const previewItems = styleDefinitionsMapWithoutNull(previewPostRes.data.data);
4579 - const frontendItems = styleDefinitionsMapWithoutNull(frontendPostRes.data.data);
4580 - (0,_elementor_store__WEBPACK_IMPORTED_MODULE_1__.__dispatch)(_store__WEBPACK_IMPORTED_MODULE_3__.slice.actions.load({
4581 - preview: {
4582 - items: previewItems,
4583 - order: previewOrder
4584 - },
4585 - frontend: {
4586 - items: frontendItems,
4587 - order: frontendOrder
4588 - },
4589 - classLabels
4590 - }));
4591 -}
4592 -async function addDocumentClasses(documentId) {
4593 - const [previewPostRes, frontendPostRes] = await Promise.all([_api__WEBPACK_IMPORTED_MODULE_2__.apiClient.getStylesForPost(documentId, 'preview'), _api__WEBPACK_IMPORTED_MODULE_2__.apiClient.getStylesForPost(documentId, 'frontend')]);
4594 - const previewItems = styleDefinitionsMapWithoutNull(previewPostRes.data.data);
4595 - const frontendItems = styleDefinitionsMapWithoutNull(frontendPostRes.data.data);
4596 - (0,_elementor_store__WEBPACK_IMPORTED_MODULE_1__.__dispatch)(_store__WEBPACK_IMPORTED_MODULE_3__.slice.actions.mergeExistingClasses({
4597 - preview: previewItems,
4598 - frontend: frontendItems
4599 - }));
4600 -}
4601 -
4602 -/***/ }),
4603 -
4604 -/***/ "./packages/packages/core/editor-global-classes/src/load-existing-classes.ts":
4605 -/*!***********************************************************************************!*\
4606 - !*** ./packages/packages/core/editor-global-classes/src/load-existing-classes.ts ***!
4607 - \***********************************************************************************/
4608 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4609 -
4610 -__webpack_require__.r(__webpack_exports__);
4611 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4612 -/* harmony export */ loadExistingClasses: function() { return /* binding */ loadExistingClasses; }
4613 -/* harmony export */ });
4614 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/store */ "@elementor/store");
4615 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_store__WEBPACK_IMPORTED_MODULE_0__);
4616 -/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./api */ "./packages/packages/core/editor-global-classes/src/api.ts");
4617 -/* harmony import */ var _load_document_classes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./load-document-classes */ "./packages/packages/core/editor-global-classes/src/load-document-classes.ts");
4618 -/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./store */ "./packages/packages/core/editor-global-classes/src/store.ts");
4619 -
4620 -
4621 -
4622 -
4623 -let pendingLoad = null;
4624 -const pendingIds = new Set();
4625 -async function loadExistingClasses(classIds) {
4626 - const existingClasses = (0,_store__WEBPACK_IMPORTED_MODULE_3__.selectGlobalClasses)((0,_elementor_store__WEBPACK_IMPORTED_MODULE_0__.__getState)());
4627 - const missingIds = classIds.filter(id => !(id in existingClasses));
4628 - if (missingIds.length === 0) {
4629 - return;
4630 - }
4631 - missingIds.forEach(id => pendingIds.add(id));
4632 - if (pendingLoad) {
4633 - await pendingLoad;
4634 - return loadExistingClasses(classIds);
4635 - }
4636 - pendingLoad = fetchAndMergeClasses();
4637 - try {
4638 - await pendingLoad;
4639 - } finally {
4640 - pendingLoad = null;
4641 - }
4642 -}
4643 -async function fetchAndMergeClasses() {
4644 - const idsToFetch = Array.from(pendingIds);
4645 - pendingIds.clear();
4646 - if (idsToFetch.length === 0) {
4647 - return;
4648 - }
4649 - const [previewResponse, frontendResponse] = await Promise.all([_api__WEBPACK_IMPORTED_MODULE_1__.apiClient.getStylesByIds(idsToFetch, 'preview'), _api__WEBPACK_IMPORTED_MODULE_1__.apiClient.getStylesByIds(idsToFetch, 'frontend')]);
4650 - const previewItems = (0,_load_document_classes__WEBPACK_IMPORTED_MODULE_2__.styleDefinitionsMapWithoutNull)(previewResponse.data.data);
4651 - const frontendItems = (0,_load_document_classes__WEBPACK_IMPORTED_MODULE_2__.styleDefinitionsMapWithoutNull)(frontendResponse.data.data);
4652 - (0,_elementor_store__WEBPACK_IMPORTED_MODULE_0__.__dispatch)(_store__WEBPACK_IMPORTED_MODULE_3__.slice.actions.mergeExistingClasses({
4653 - preview: previewItems,
4654 - frontend: frontendItems
4655 - }));
4656 -}
4657 -
4658 -/***/ }),
4659 -
4660 -/***/ "./packages/packages/core/editor-global-classes/src/mcp-integration/apply-global-class-guide-prompt.ts":
4661 -/*!*************************************************************************************************************!*\
4662 - !*** ./packages/packages/core/editor-global-classes/src/mcp-integration/apply-global-class-guide-prompt.ts ***!
4663 - \*************************************************************************************************************/
4664 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4665 -
4666 -__webpack_require__.r(__webpack_exports__);
4667 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4668 -/* harmony export */ APPLY_GLOBAL_CLASS_GUIDE_URI: function() { return /* binding */ APPLY_GLOBAL_CLASS_GUIDE_URI; },
4669 -/* harmony export */ generateApplyGlobalClassGuidePrompt: function() { return /* binding */ generateApplyGlobalClassGuidePrompt; }
4670 -/* harmony export */ });
4671 -/* harmony import */ var _elementor_editor_mcp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-mcp */ "@elementor/editor-mcp");
4672 -/* harmony import */ var _elementor_editor_mcp__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_mcp__WEBPACK_IMPORTED_MODULE_0__);
4673 -
4674 -const APPLY_GLOBAL_CLASS_GUIDE_URI = 'elementor://global-classes/tools/apply-global-class-guide';
4675 -const generateApplyGlobalClassGuidePrompt = () => {
4676 - const prompt = (0,_elementor_editor_mcp__WEBPACK_IMPORTED_MODULE_0__.toolPrompts)('apply-global-class');
4677 - prompt.description('Apply a global class to an element, enabling consistent styling through your design system.');
4678 - prompt.instruction(`## When to use this tool:
4679 -**ALWAYS use this IMMEDIATELY AFTER building compositions** to apply the global classes you created beforehand:
4680 -- After using "build-compositions" tool, apply semantic classes to the created elements
4681 -- When applying consistent typography styles (heading-primary, text-body, etc.)
4682 -- When applying theme colors or brand styles (bg-brand, button-cta, etc.)
4683 -- When ensuring spacing consistency (spacing-section-large, etc.)
4684 -
4685 -**DO NOT use this tool** for:
4686 -- Elements that don't share styles with other elements (use inline styles instead)
4687 -- Layout-specific properties (those should remain inline in stylesConfig)`);
4688 - prompt.instruction(`## Prerequisites:
4689 -- **REQUIRED**: Get the list of available global classes from 'elementor://global-classes' resource
4690 -- **REQUIRED**: Get element IDs from the composition XML returned by "build-compositions" tool
4691 -- Ensure you have the most up-to-date list of classes applied to the element to avoid duplicates
4692 -- Make sure you have the correct class ID that you want to apply`);
4693 - prompt.instruction(`## Best Practices:
4694 -1. Apply multiple classes to a single element if needed (typography + color + spacing)
4695 -2. After applying, the tool will remind you to remove duplicate inline styles from elementConfig
4696 -3. Classes should describe purpose, not implementation (e.g., "heading-primary" not "big-red-text")`);
4697 - return prompt.prompt();
4698 -};
4699 -
4700 -/***/ }),
4701 -
4702 -/***/ "./packages/packages/core/editor-global-classes/src/mcp-integration/classes-resource.ts":
4703 -/*!**********************************************************************************************!*\
4704 - !*** ./packages/packages/core/editor-global-classes/src/mcp-integration/classes-resource.ts ***!
4705 - \**********************************************************************************************/
4706 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4707 -
4708 -__webpack_require__.r(__webpack_exports__);
4709 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4710 -/* harmony export */ GLOBAL_CLASSES_URI: function() { return /* binding */ GLOBAL_CLASSES_URI; },
4711 -/* harmony export */ initClassesResource: function() { return /* binding */ initClassesResource; }
4712 -/* harmony export */ });
4713 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/store */ "@elementor/store");
4714 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_store__WEBPACK_IMPORTED_MODULE_0__);
4715 -/* harmony import */ var _global_classes_styles_provider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../global-classes-styles-provider */ "./packages/packages/core/editor-global-classes/src/global-classes-styles-provider.ts");
4716 -/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../store */ "./packages/packages/core/editor-global-classes/src/store.ts");
4717 -
4718 -
4719 -
4720 -const GLOBAL_CLASSES_URI = 'elementor://global-classes';
4721 -const STORAGE_KEY = 'elementor-global-classes';
4722 -const updateLocalStorageCache = () => {
4723 - const classes = (0,_store__WEBPACK_IMPORTED_MODULE_2__.selectOrderedClasses)((0,_elementor_store__WEBPACK_IMPORTED_MODULE_0__.__getState)());
4724 - localStorage.setItem(STORAGE_KEY, JSON.stringify(classes));
4725 -};
4726 -const initClassesResource = (classesMcpEntry, canvasMcpEntry) => {
4727 - [canvasMcpEntry, classesMcpEntry].forEach(entry => {
4728 - const {
4729 - sendResourceUpdated,
4730 - resource,
4731 - waitForReady
4732 - } = entry;
4733 - resource('global-classes', GLOBAL_CLASSES_URI, {
4734 - description: 'Global classes list.'
4735 - }, async () => {
4736 - return {
4737 - contents: [{
4738 - uri: GLOBAL_CLASSES_URI,
4739 - text: localStorage[STORAGE_KEY] ?? '[]'
4740 - }]
4741 - };
4742 - });
4743 - waitForReady().then(() => {
4744 - updateLocalStorageCache();
4745 - _global_classes_styles_provider__WEBPACK_IMPORTED_MODULE_1__.globalClassesStylesProvider.subscribe(() => {
4746 - updateLocalStorageCache();
4747 - sendResourceUpdated({
4748 - uri: GLOBAL_CLASSES_URI
4749 - });
4750 - });
4751 - });
4752 - });
4753 -};
4754 -
4755 -/***/ }),
4756 -
4757 -/***/ "./packages/packages/core/editor-global-classes/src/mcp-integration/index.ts":
4758 -/*!***********************************************************************************!*\
4759 - !*** ./packages/packages/core/editor-global-classes/src/mcp-integration/index.ts ***!
4760 - \***********************************************************************************/
4761 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4762 -
4763 -__webpack_require__.r(__webpack_exports__);
4764 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4765 -/* harmony export */ initMcpIntegration: function() { return /* binding */ initMcpIntegration; }
4766 -/* harmony export */ });
4767 -/* harmony import */ var _classes_resource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./classes-resource */ "./packages/packages/core/editor-global-classes/src/mcp-integration/classes-resource.ts");
4768 -/* harmony import */ var _mcp_apply_unapply_global_classes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mcp-apply-unapply-global-classes */ "./packages/packages/core/editor-global-classes/src/mcp-integration/mcp-apply-unapply-global-classes.ts");
4769 -/* harmony import */ var _mcp_get_global_class_usages__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mcp-get-global-class-usages */ "./packages/packages/core/editor-global-classes/src/mcp-integration/mcp-get-global-class-usages.ts");
4770 -/* harmony import */ var _mcp_manage_global_classes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./mcp-manage-global-classes */ "./packages/packages/core/editor-global-classes/src/mcp-integration/mcp-manage-global-classes.ts");
4771 -
4772 -
4773 -
4774 -
4775 -const initMcpIntegration = (reg, canvasMcpEntry) => {
4776 - (0,_mcp_apply_unapply_global_classes__WEBPACK_IMPORTED_MODULE_1__["default"])(reg);
4777 - (0,_mcp_get_global_class_usages__WEBPACK_IMPORTED_MODULE_2__["default"])(reg);
4778 - (0,_mcp_manage_global_classes__WEBPACK_IMPORTED_MODULE_3__.initManageGlobalClasses)(reg);
4779 - (0,_classes_resource__WEBPACK_IMPORTED_MODULE_0__.initClassesResource)(reg, canvasMcpEntry);
4780 -};
4781 -
4782 -/***/ }),
4783 -
4784 -/***/ "./packages/packages/core/editor-global-classes/src/mcp-integration/mcp-apply-unapply-global-classes.ts":
4785 -/*!**************************************************************************************************************!*\
4786 - !*** ./packages/packages/core/editor-global-classes/src/mcp-integration/mcp-apply-unapply-global-classes.ts ***!
4787 - \**************************************************************************************************************/
4788 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4789 -
4790 -__webpack_require__.r(__webpack_exports__);
4791 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4792 -/* harmony export */ "default": function() { return /* binding */ initMcpApplyUnapplyGlobalClasses; }
4793 -/* harmony export */ });
4794 -/* harmony import */ var _elementor_editor_editing_panel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-editing-panel */ "@elementor/editor-editing-panel");
4795 -/* harmony import */ var _elementor_editor_editing_panel__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_editing_panel__WEBPACK_IMPORTED_MODULE_0__);
4796 -/* harmony import */ var _elementor_schema__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/schema */ "@elementor/schema");
4797 -/* harmony import */ var _elementor_schema__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_schema__WEBPACK_IMPORTED_MODULE_1__);
4798 -/* harmony import */ var _global_classes_styles_provider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../global-classes-styles-provider */ "./packages/packages/core/editor-global-classes/src/global-classes-styles-provider.ts");
4799 -/* harmony import */ var _apply_global_class_guide_prompt__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./apply-global-class-guide-prompt */ "./packages/packages/core/editor-global-classes/src/mcp-integration/apply-global-class-guide-prompt.ts");
4800 -/* harmony import */ var _classes_resource__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./classes-resource */ "./packages/packages/core/editor-global-classes/src/mcp-integration/classes-resource.ts");
4801 -
4802 -
4803 -
4804 -
4805 -
4806 -function initMcpApplyUnapplyGlobalClasses(server) {
4807 - const {
4808 - addTool,
4809 - resource
4810 - } = server;
4811 - const applyGlobalClassGuideText = (0,_apply_global_class_guide_prompt__WEBPACK_IMPORTED_MODULE_3__.generateApplyGlobalClassGuidePrompt)();
4812 - resource('apply-global-class-guide', _apply_global_class_guide_prompt__WEBPACK_IMPORTED_MODULE_3__.APPLY_GLOBAL_CLASS_GUIDE_URI, {
4813 - description: 'Workflow, prerequisites, and best practices for apply-global-class',
4814 - mimeType: 'text/plain',
4815 - title: 'Apply global class tool guide'
4816 - }, async uri => ({
4817 - contents: [{
4818 - mimeType: 'text/plain',
4819 - text: applyGlobalClassGuideText,
4820 - uri: uri.href
4821 - }]
4822 - }));
4823 - addTool({
4824 - schema: {
4825 - classId: _elementor_schema__WEBPACK_IMPORTED_MODULE_1__.z.string().describe('The ID of the class to apply'),
4826 - elementId: _elementor_schema__WEBPACK_IMPORTED_MODULE_1__.z.string().describe('The ID of the element to which the class will be applied')
4827 - },
4828 - outputSchema: {
4829 - result: _elementor_schema__WEBPACK_IMPORTED_MODULE_1__.z.string().describe('Result message indicating the success of the apply operation'),
4830 - llm_instructions: _elementor_schema__WEBPACK_IMPORTED_MODULE_1__.z.string().describe('Instructions what to do next, Important to follow these instructions!')
4831 - },
4832 - name: 'apply-global-class',
4833 - description: `Apply a global class to an element for shared design-system styling. Read the full guide at [${_apply_global_class_guide_prompt__WEBPACK_IMPORTED_MODULE_3__.APPLY_GLOBAL_CLASS_GUIDE_URI}].`,
4834 - requiredResources: [{
4835 - description: 'Apply global class tool guide',
4836 - uri: _apply_global_class_guide_prompt__WEBPACK_IMPORTED_MODULE_3__.APPLY_GLOBAL_CLASS_GUIDE_URI
4837 - }, {
4838 - description: 'Global classes list',
4839 - uri: _classes_resource__WEBPACK_IMPORTED_MODULE_4__.GLOBAL_CLASSES_URI
4840 - }],
4841 - handler: async params => {
4842 - const {
4843 - classId,
4844 - elementId
4845 - } = params;
4846 - const appliedClasses = (0,_elementor_editor_editing_panel__WEBPACK_IMPORTED_MODULE_0__.doGetAppliedClasses)(elementId);
4847 - (0,_elementor_editor_editing_panel__WEBPACK_IMPORTED_MODULE_0__.doApplyClasses)(elementId, [...appliedClasses, classId]);
4848 - _global_classes_styles_provider__WEBPACK_IMPORTED_MODULE_2__.globalClassesStylesProvider.actions.tracking?.({
4849 - event: 'classApplied',
4850 - executedBy: 'mcp_tool',
4851 - classId
4852 - });
4853 - return {
4854 - llm_instructions: 'Please check the element configuration, find inline styles duplicated by the applied global class, and remove them',
4855 - result: `Class ${classId} applied to element ${elementId} successfully.`
4856 - };
4857 - }
4858 - });
4859 - addTool({
4860 - name: 'unapply-global-class',
4861 - schema: {
4862 - classId: _elementor_schema__WEBPACK_IMPORTED_MODULE_1__.z.string().describe('The ID of the class to unapply'),
4863 - elementId: _elementor_schema__WEBPACK_IMPORTED_MODULE_1__.z.string().describe('The ID of the element from which the class will be unapplied')
4864 - },
4865 - outputSchema: {
4866 - result: _elementor_schema__WEBPACK_IMPORTED_MODULE_1__.z.string().describe('Result message indicating the success of the unapply operation')
4867 - },
4868 - description: `Unapply a global class from an element by class ID. Resolve class names to IDs via [${_classes_resource__WEBPACK_IMPORTED_MODULE_4__.GLOBAL_CLASSES_URI}].`,
4869 - requiredResources: [{
4870 - description: 'Global classes list',
4871 - uri: _classes_resource__WEBPACK_IMPORTED_MODULE_4__.GLOBAL_CLASSES_URI
4872 - }],
4873 - handler: async params => {
4874 - const {
4875 - classId,
4876 - elementId
4877 - } = params;
4878 - const ok = (0,_elementor_editor_editing_panel__WEBPACK_IMPORTED_MODULE_0__.doUnapplyClass)(elementId, classId);
4879 - if (!ok) {
4880 - throw new Error(`Class ${classId} is not applied to element ${elementId}, cannot unapply it.`);
4881 - }
4882 - return {
4883 - result: `Class ${classId} unapplied from element ${elementId} successfully.`
4884 - };
4885 - }
4886 - });
4887 -}
4888 -
4889 -/***/ }),
4890 -
4891 -/***/ "./packages/packages/core/editor-global-classes/src/mcp-integration/mcp-get-global-class-usages.ts":
4892 -/*!*********************************************************************************************************!*\
4893 - !*** ./packages/packages/core/editor-global-classes/src/mcp-integration/mcp-get-global-class-usages.ts ***!
4894 - \*********************************************************************************************************/
4895 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4896 -
4897 -__webpack_require__.r(__webpack_exports__);
4898 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4899 -/* harmony export */ "default": function() { return /* binding */ initMcpApplyGetGlobalClassUsages; }
4900 -/* harmony export */ });
4901 -/* harmony import */ var _elementor_schema__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/schema */ "@elementor/schema");
4902 -/* harmony import */ var _elementor_schema__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_schema__WEBPACK_IMPORTED_MODULE_0__);
4903 -/* harmony import */ var _service_css_class_usage_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../service/css-class-usage-service */ "./packages/packages/core/editor-global-classes/service/css-class-usage-service.ts");
4904 -/* harmony import */ var _classes_resource__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./classes-resource */ "./packages/packages/core/editor-global-classes/src/mcp-integration/classes-resource.ts");
4905 -
4906 -
4907 -
4908 -function initMcpApplyGetGlobalClassUsages(reg) {
4909 - const {
4910 - addTool
4911 - } = reg;
4912 - const globalClassesUsageSchema = {
4913 - usages: _elementor_schema__WEBPACK_IMPORTED_MODULE_0__.z.array(_elementor_schema__WEBPACK_IMPORTED_MODULE_0__.z.object({
4914 - classId: _elementor_schema__WEBPACK_IMPORTED_MODULE_0__.z.string().describe('The ID of the class, not visible to the user. To retrieve the name of the class, use the "list-global-classes" tool'),
4915 - usages: _elementor_schema__WEBPACK_IMPORTED_MODULE_0__.z.array(_elementor_schema__WEBPACK_IMPORTED_MODULE_0__.z.object({
4916 - pageId: _elementor_schema__WEBPACK_IMPORTED_MODULE_0__.z.string().describe('The ID of the page where the class is used'),
4917 - title: _elementor_schema__WEBPACK_IMPORTED_MODULE_0__.z.string().describe('The title of the page where the class is used'),
4918 - total: _elementor_schema__WEBPACK_IMPORTED_MODULE_0__.z.number().describe('The number of times the class is used on this page'),
4919 - elements: _elementor_schema__WEBPACK_IMPORTED_MODULE_0__.z.array(_elementor_schema__WEBPACK_IMPORTED_MODULE_0__.z.string()).describe('List of element IDs using this class on the page')
4920 - }))
4921 - }))
4922 - };
4923 - addTool({
4924 - name: 'get-global-class-usages',
4925 - description: `Retrieve usages of global classes across all Elementor pages. Heavy operation — scans every page in the site.
4926 -
4927 -## When to use:
4928 -- Before deleting or radically changing a class — to understand cross-page side effects and decide whether to consult the user.
4929 -- To identify unused global classes for cleanup.
4930 -
4931 -## When NOT to use:
4932 -- To list global classes themselves — use the global-classes resource instead (this tool returns usages, not the class list).`,
4933 - requiredResources: [{
4934 - description: 'Global classes list',
4935 - uri: _classes_resource__WEBPACK_IMPORTED_MODULE_2__.GLOBAL_CLASSES_URI
4936 - }],
4937 - outputSchema: globalClassesUsageSchema,
4938 - handler: async () => {
4939 - const data = await (0,_service_css_class_usage_service__WEBPACK_IMPORTED_MODULE_1__.fetchCssClassUsage)();
4940 - const result = {
4941 - usages: []
4942 - };
4943 - Object.entries(data).forEach(([classId, usageDetails]) => {
4944 - const newEntry = {
4945 - classId,
4946 - usages: []
4947 - };
4948 - if (typeof usageDetails !== 'number') {
4949 - const {
4950 - content
4951 - } = usageDetails;
4952 - content.forEach(detail => {
4953 - newEntry.usages.push({
4954 - pageId: String(detail.pageId),
4955 - title: detail.title,
4956 - total: detail.total,
4957 - elements: detail.elements
4958 - });
4959 - });
4960 - result.usages.push(newEntry);
4961 - }
4962 - });
4963 - return result;
4964 - }
4965 - });
4966 -}
4967 -
4968 -/***/ }),
4969 -
4970 -/***/ "./packages/packages/core/editor-global-classes/src/mcp-integration/mcp-manage-global-classes.ts":
4971 -/*!*******************************************************************************************************!*\
4972 - !*** ./packages/packages/core/editor-global-classes/src/mcp-integration/mcp-manage-global-classes.ts ***!
4973 - \*******************************************************************************************************/
4974 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4975 -
4976 -__webpack_require__.r(__webpack_exports__);
4977 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4978 -/* harmony export */ initManageGlobalClasses: function() { return /* binding */ initManageGlobalClasses; }
4979 -/* harmony export */ });
4980 -/* harmony import */ var _elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-canvas */ "@elementor/editor-canvas");
4981 -/* harmony import */ var _elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_0__);
4982 -/* harmony import */ var _elementor_editor_mcp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-mcp */ "@elementor/editor-mcp");
4983 -/* harmony import */ var _elementor_editor_mcp__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_mcp__WEBPACK_IMPORTED_MODULE_1__);
4984 -/* harmony import */ var _elementor_schema__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/schema */ "@elementor/schema");
4985 -/* harmony import */ var _elementor_schema__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_schema__WEBPACK_IMPORTED_MODULE_2__);
4986 -/* harmony import */ var _global_classes_styles_provider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../global-classes-styles-provider */ "./packages/packages/core/editor-global-classes/src/global-classes-styles-provider.ts");
4987 -/* harmony import */ var _load_existing_classes__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../load-existing-classes */ "./packages/packages/core/editor-global-classes/src/load-existing-classes.ts");
4988 -/* harmony import */ var _save_global_classes__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../save-global-classes */ "./packages/packages/core/editor-global-classes/src/save-global-classes.tsx");
4989 -/* harmony import */ var _classes_resource__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./classes-resource */ "./packages/packages/core/editor-global-classes/src/mcp-integration/classes-resource.ts");
4990 -
4991 -
4992 -
4993 -
4994 -
4995 -
4996 -
4997 -const schema = {
4998 - action: _elementor_schema__WEBPACK_IMPORTED_MODULE_2__.z.enum(['create', 'modify', 'delete']).describe('Operation to perform'),
4999 - classId: _elementor_schema__WEBPACK_IMPORTED_MODULE_2__.z.string().optional().describe('Global class ID (required for modify). Get from elementor://global-classes resource.'),
5000 - globalClassName: _elementor_schema__WEBPACK_IMPORTED_MODULE_2__.z.string().optional().describe('Global class name (required for create)'),
5001 - style: _elementor_schema__WEBPACK_IMPORTED_MODULE_2__.z.object({
5002 - default: _elementor_schema__WEBPACK_IMPORTED_MODULE_2__.z.string().describe('Plaintext CSS for the default state. MUST be non-empty — blank strings are rejected.'),
5003 - hover: _elementor_schema__WEBPACK_IMPORTED_MODULE_2__.z.string().describe('Plaintext CSS for the :hover state. optional').optional(),
5004 - focus: _elementor_schema__WEBPACK_IMPORTED_MODULE_2__.z.string().describe('Plaintext CSS for the :focus state. optional').optional(),
5005 - active: _elementor_schema__WEBPACK_IMPORTED_MODULE_2__.z.string().describe('Plaintext CSS for the :active state. optional').optional()
5006 - }).describe('Plaintext CSS per pseudo-state. All states are converted in one bulk request; unconvertible declarations are stored as custom CSS.'),
5007 - breakpoint: _elementor_schema__WEBPACK_IMPORTED_MODULE_2__.z.nullable(_elementor_schema__WEBPACK_IMPORTED_MODULE_2__.z.string().describe('Responsive breakpoint name for styles. Defaults to desktop (null).')).default(null).describe('Responsive breakpoint name for styles. Defaults to desktop (null).')
5008 -};
5009 -const outputSchema = {
5010 - status: _elementor_schema__WEBPACK_IMPORTED_MODULE_2__.z.enum(['ok', 'error']).describe('Operation status'),
5011 - classId: _elementor_schema__WEBPACK_IMPORTED_MODULE_2__.z.string().optional().describe('Class ID (returned on create success)'),
5012 - message: _elementor_schema__WEBPACK_IMPORTED_MODULE_2__.z.string().optional().describe('Error details if status is error')
5013 -};
5014 -const handler = async input => {
5015 - const {
5016 - action,
5017 - classId: rawClassId,
5018 - globalClassName,
5019 - style: rawStyle,
5020 - breakpoint
5021 - } = input;
5022 - let classId = rawClassId;
5023 - if (action === 'create' && !globalClassName) {
5024 - return {
5025 - status: 'error',
5026 - message: 'Create requires globalClassName'
5027 - };
5028 - }
5029 - if (action === 'modify' && !classId) {
5030 - return {
5031 - status: 'error',
5032 - message: 'Modify requires classId'
5033 - };
5034 - }
5035 - if (action === 'delete' && !classId) {
5036 - return {
5037 - status: 'error',
5038 - message: 'Delete requires classId'
5039 - };
5040 - }
5041 - const {
5042 - create,
5043 - update,
5044 - delete: deleteClass
5045 - } = _global_classes_styles_provider__WEBPACK_IMPORTED_MODULE_3__.globalClassesStylesProvider.actions;
5046 - if (!create || !update || !deleteClass) {
5047 - return {
5048 - status: 'error',
5049 - message: 'Required actions not available'
5050 - };
5051 - }
5052 - const styleBlocks = collectNonEmptyStyleBlocks(rawStyle);
5053 - if (action !== 'delete' && Object.keys(styleBlocks).length === 0) {
5054 - throw new Error('Style must not be empty. Provide plaintext CSS per state.\n\nExample: style.default = "display: flex; flex-direction: column; gap: 1rem;"');
5055 - }
5056 - let convertedByState = {};
5057 - if (action !== 'delete') {
5058 - const conversionResults = await (0,_elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_0__.convertStyleBlocksToAtomic)(styleBlocks);
5059 - convertedByState = Object.fromEntries(Object.entries(conversionResults).map(([state, {
5060 - props,
5061 - customCss
5062 - }]) => [state, {
5063 - props: props,
5064 - customCss: toStoredCustomCss(customCss)
5065 - }]));
5066 - }
5067 - const breakpointValue = breakpoint ?? 'desktop';
5068 - let result = {
5069 - status: 'error',
5070 - classId: '',
5071 - message: 'unknown error'
5072 - };
5073 - try {
5074 - if (action === 'delete') {
5075 - const deleted = await attemptDelete({
5076 - classId,
5077 - stylesProvider: _global_classes_styles_provider__WEBPACK_IMPORTED_MODULE_3__.globalClassesStylesProvider
5078 - });
5079 - if (deleted) {
5080 - return {
5081 - status: 'ok',
5082 - message: `deleted global class with ID ${classId}`
5083 - };
5084 - }
5085 - throw new Error('error deleting class');
5086 - }
5087 - let currentAction = action;
5088 - for await (const [state, {
5089 - props,
5090 - customCss
5091 - }] of Object.entries(convertedByState)) {
5092 - switch (currentAction) {
5093 - case 'create':
5094 - const newClassId = await attemptCreate({
5095 - props,
5096 - customCss,
5097 - className: globalClassName,
5098 - stylesProvider: _global_classes_styles_provider__WEBPACK_IMPORTED_MODULE_3__.globalClassesStylesProvider,
5099 - breakpoint: breakpointValue,
5100 - state: state
5101 - });
5102 - if (newClassId && currentAction === 'create') {
5103 - currentAction = 'modify';
5104 - classId = newClassId;
5105 - result = {
5106 - status: 'ok',
5107 - message: `created global class with ID ${newClassId}`
5108 - };
5109 - _global_classes_styles_provider__WEBPACK_IMPORTED_MODULE_3__.globalClassesStylesProvider.actions.tracking?.({
5110 - event: 'classCreated',
5111 - executedBy: 'mcp_tool',
5112 - classId: newClassId
5113 - });
5114 - (0,_elementor_editor_mcp__WEBPACK_IMPORTED_MODULE_1__.dispatchMcpStylesAppliedEvent)({
5115 - styleValue: props
5116 - });
5117 - } else {
5118 - throw new Error('error creating class');
5119 - }
5120 - break;
5121 - case 'modify':
5122 - const updated = await attemptUpdate({
5123 - classId,
5124 - props,
5125 - customCss,
5126 - stylesProvider: _global_classes_styles_provider__WEBPACK_IMPORTED_MODULE_3__.globalClassesStylesProvider,
5127 - breakpoint: breakpointValue,
5128 - state: state
5129 - });
5130 - if (updated) {
5131 - result = {
5132 - status: 'ok',
5133 - classId
5134 - };
5135 - (0,_elementor_editor_mcp__WEBPACK_IMPORTED_MODULE_1__.dispatchMcpStylesAppliedEvent)({
5136 - styleValue: props
5137 - });
5138 - } else {
5139 - throw new Error('error modifying class');
5140 - }
5141 - break;
5142 - default:
5143 - throw new Error(`Unsupported action ${action}`);
5144 - }
5145 - }
5146 - } catch (error) {
5147 - return {
5148 - status: 'error',
5149 - message: `${action} failed: ${error.message || 'Unknown error'}`
5150 - };
5151 - }
5152 - return result;
5153 -};
5154 -const initManageGlobalClasses = reg => {
5155 - const {
5156 - addTool
5157 - } = reg;
5158 - addTool({
5159 - name: 'manage-global-classes',
5160 - requiredResources: [{
5161 - uri: _classes_resource__WEBPACK_IMPORTED_MODULE_6__.GLOBAL_CLASSES_URI,
5162 - description: 'Global classes list'
5163 - }, {
5164 - uri: _elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_0__.BREAKPOINTS_SCHEMA_FULL_URI,
5165 - description: 'Breakpoints list'
5166 - }],
5167 - description: `Create or modify global classes for reusable design-system styling. Class names must reflect purpose (e.g. heading-primary, button-cta). Create classes BEFORE applying them. Do NOT create classes for one-off styles.
5168 -
5169 -IMPORTANT: style must contain plaintext CSS rules per state — never pass empty strings.
5170 -CSS is converted server-side in one bulk request; any declaration that cannot be converted is stored as the class custom CSS.
5171 -
5172 -Example — creating a flex column class:
5173 -style.default = "display: flex; flex-direction: column; gap: 1rem;"
5174 -
5175 -Example — hover state:
5176 -style.hover = "opacity: 0.85;"`,
5177 - schema,
5178 - outputSchema,
5179 - handler
5180 - });
5181 -};
5182 -async function attemptCreate(opts) {
5183 - const {
5184 - props,
5185 - customCss,
5186 - breakpoint,
5187 - className,
5188 - stylesProvider,
5189 - state
5190 - } = opts;
5191 - const {
5192 - create,
5193 - delete: deleteClass
5194 - } = stylesProvider.actions;
5195 - if (!className) {
5196 - throw new Error('Global class name is a required for creation');
5197 - }
5198 - if (!create || !deleteClass) {
5199 - throw new Error('User is unable to create global classes');
5200 - }
5201 - const newClassId = create(className, [{
5202 - meta: {
5203 - breakpoint,
5204 - state: state === 'default' ? null : state
5205 - },
5206 - custom_css: customCss,
5207 - props
5208 - }]);
5209 - try {
5210 - await (0,_save_global_classes__WEBPACK_IMPORTED_MODULE_5__.saveGlobalClasses)({
5211 - context: 'frontend'
5212 - });
5213 - return newClassId;
5214 - } catch {
5215 - deleteClass(newClassId);
5216 - throw new Error('error creating class');
5217 - }
5218 -}
5219 -async function attemptUpdate(opts) {
5220 - const {
5221 - props,
5222 - customCss,
5223 - breakpoint,
5224 - classId,
5225 - stylesProvider,
5226 - state
5227 - } = opts;
5228 - const {
5229 - updateProps,
5230 - update
5231 - } = stylesProvider.actions;
5232 - if (!classId) {
5233 - throw new Error('Class ID is required for modification');
5234 - }
5235 - if (!updateProps || !update) {
5236 - throw new Error('User is unable to update global classes');
5237 - }
5238 - await (0,_load_existing_classes__WEBPACK_IMPORTED_MODULE_4__.loadExistingClasses)([classId]);
5239 - const snapshot = structuredClone(stylesProvider.actions.all());
5240 - try {
5241 - updateProps({
5242 - id: classId,
5243 - props,
5244 - custom_css: customCss,
5245 - meta: {
5246 - breakpoint,
5247 - state: state === 'default' ? null : state
5248 - }
5249 - });
5250 - await (0,_save_global_classes__WEBPACK_IMPORTED_MODULE_5__.saveGlobalClasses)({
5251 - context: 'frontend'
5252 - });
5253 - return true;
5254 - } catch {
5255 - snapshot.forEach(style => {
5256 - update({
5257 - id: style.id,
5258 - variants: style.variants
5259 - });
5260 - });
5261 - await (0,_save_global_classes__WEBPACK_IMPORTED_MODULE_5__.saveGlobalClasses)({
5262 - context: 'frontend'
5263 - });
5264 - throw new Error('error updating class');
5265 - }
5266 -}
5267 -async function attemptDelete(opts) {
5268 - const {
5269 - classId,
5270 - stylesProvider
5271 - } = opts;
5272 - const {
5273 - delete: deleteClass,
5274 - create
5275 - } = stylesProvider.actions;
5276 - if (!classId) {
5277 - throw new Error('Class ID is required for deletion');
5278 - }
5279 - if (!deleteClass || !create) {
5280 - throw new Error('User is unable to delete global classes');
5281 - }
5282 - const snapshot = structuredClone(stylesProvider.actions.all());
5283 - const targetClass = snapshot.find(style => style.id === classId);
5284 - if (!targetClass) {
5285 - throw new Error(`Class with ID "${classId}" not found`);
5286 - }
5287 - deleteClass(classId);
5288 - await (0,_save_global_classes__WEBPACK_IMPORTED_MODULE_5__.saveGlobalClasses)({
5289 - context: 'frontend'
5290 - });
5291 - return true;
5292 -}
5293 -function collectNonEmptyStyleBlocks(style) {
5294 - const blocks = {};
5295 - Object.entries(style).forEach(([state, cssText]) => {
5296 - if (cssText?.trim()) {
5297 - blocks[state] = cssText.trim();
5298 - }
5299 - });
5300 - return blocks;
5301 -}
5302 -function toStoredCustomCss(customCss) {
5303 - if (!customCss?.trim()) {
5304 - return null;
5305 - }
5306 - return {
5307 - raw: btoa(customCss)
5308 - };
5309 -}
5310 -
5311 -/***/ }),
5312 -
5313 -/***/ "./packages/packages/core/editor-global-classes/src/save-global-classes.tsx":
5314 -/*!**********************************************************************************!*\
5315 - !*** ./packages/packages/core/editor-global-classes/src/save-global-classes.tsx ***!
5316 - \**********************************************************************************/
5317 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5318 -
5319 -__webpack_require__.r(__webpack_exports__);
5320 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5321 -/* harmony export */ saveGlobalClasses: function() { return /* binding */ saveGlobalClasses; }
5322 -/* harmony export */ });
5323 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
5324 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
5325 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-ui */ "@elementor/editor-ui");
5326 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__);
5327 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/store */ "@elementor/store");
5328 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_store__WEBPACK_IMPORTED_MODULE_2__);
5329 -/* harmony import */ var _elementor_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @elementor/utils */ "@elementor/utils");
5330 -/* harmony import */ var _elementor_utils__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_elementor_utils__WEBPACK_IMPORTED_MODULE_3__);
5331 -/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./api */ "./packages/packages/core/editor-global-classes/src/api.ts");
5332 -/* harmony import */ var _components_class_manager_duplicate_label_dialog__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/class-manager/duplicate-label-dialog */ "./packages/packages/core/editor-global-classes/src/components/class-manager/duplicate-label-dialog.tsx");
5333 -/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./store */ "./packages/packages/core/editor-global-classes/src/store.ts");
5334 -/* harmony import */ var _utils_tracking__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/tracking */ "./packages/packages/core/editor-global-classes/src/utils/tracking.ts");
5335 -
5336 -
5337 -
5338 -
5339 -
5340 -
5341 -
5342 -
5343 -async function saveGlobalClasses({
5344 - context,
5345 - onApprove
5346 -}) {
5347 - const state = (0,_store__WEBPACK_IMPORTED_MODULE_6__.selectData)((0,_elementor_store__WEBPACK_IMPORTED_MODULE_2__.__getState)());
5348 - const apiAction = context === 'preview' ? _api__WEBPACK_IMPORTED_MODULE_4__.apiClient.saveDraft : _api__WEBPACK_IMPORTED_MODULE_4__.apiClient.publish;
5349 - const currentContext = context === 'preview' ? _store__WEBPACK_IMPORTED_MODULE_6__.selectPreviewInitialData : _store__WEBPACK_IMPORTED_MODULE_6__.selectFrontendInitialData;
5350 - const changes = calculateChanges(state, currentContext((0,_elementor_store__WEBPACK_IMPORTED_MODULE_2__.__getState)()));
5351 - const touchedIds = [...changes.added, ...changes.modified];
5352 - const touchedItems = Object.fromEntries(touchedIds.map(id => [id, state.items[id]]).filter(([, v]) => v));
5353 - const response = await apiAction({
5354 - items: touchedItems,
5355 - order: state.order,
5356 - changes
5357 - });
5358 - (0,_elementor_store__WEBPACK_IMPORTED_MODULE_2__.__dispatch)(_store__WEBPACK_IMPORTED_MODULE_6__.slice.actions.reset({
5359 - context
5360 - }));
5361 - window.dispatchEvent(new CustomEvent('classes:updated', {
5362 - detail: {
5363 - context
5364 - }
5365 - }));
5366 - if (response?.data?.data?.code === _api__WEBPACK_IMPORTED_MODULE_4__.API_ERROR_CODES.DUPLICATED_LABEL) {
5367 - (0,_elementor_store__WEBPACK_IMPORTED_MODULE_2__.__dispatch)(_store__WEBPACK_IMPORTED_MODULE_6__.slice.actions.updateMultiple(response.data.data.modifiedLabels));
5368 - (0,_utils_tracking__WEBPACK_IMPORTED_MODULE_7__.trackGlobalClasses)({
5369 - event: 'classPublishConflict',
5370 - numOfConflicts: Object.keys(response.data.data.modifiedLabels).length
5371 - });
5372 - (0,_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__.openDialog)({
5373 - component: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_components_class_manager_duplicate_label_dialog__WEBPACK_IMPORTED_MODULE_5__.DuplicateLabelDialog, {
5374 - modifiedLabels: response.data.data.modifiedLabels || [],
5375 - onApprove: onApprove
5376 - })
5377 - });
5378 - }
5379 -}
5380 -function calculateChanges(state, initialData) {
5381 - const stateIds = Object.keys(state.items);
5382 - const initialDataIds = Object.keys(initialData.items);
5383 - const {
5384 - order: stateOrder
5385 - } = state;
5386 - const {
5387 - order: initialDataOrder
5388 - } = initialData;
5389 - const stateOrderIdSet = new Set(stateOrder);
5390 - const deleted = initialDataOrder.filter(id => !stateOrderIdSet.has(id));
5391 - const order = stateOrder.join(';') !== initialDataOrder.join(';');
5392 - return {
5393 - added: stateIds.filter(id => !initialDataIds.includes(id)),
5394 - deleted,
5395 - modified: stateIds.filter(id => {
5396 - return id in initialData.items && (0,_elementor_utils__WEBPACK_IMPORTED_MODULE_3__.hash)(state.items[id]) !== (0,_elementor_utils__WEBPACK_IMPORTED_MODULE_3__.hash)(initialData.items[id]);
5397 - }),
5398 - order
5399 - };
5400 -}
5401 -
5402 -/***/ }),
5403 -
5404 -/***/ "./packages/packages/core/editor-global-classes/src/store.ts":
5405 -/*!*******************************************************************!*\
5406 - !*** ./packages/packages/core/editor-global-classes/src/store.ts ***!
5407 - \*******************************************************************/
5408 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5409 -
5410 -__webpack_require__.r(__webpack_exports__);
5411 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5412 -/* harmony export */ placeholderDefinition: function() { return /* binding */ placeholderDefinition; },
5413 -/* harmony export */ selectClass: function() { return /* binding */ selectClass; },
5414 -/* harmony export */ selectClassLabels: function() { return /* binding */ selectClassLabels; },
5415 -/* harmony export */ selectData: function() { return /* binding */ selectData; },
5416 -/* harmony export */ selectEmptyCssClass: function() { return /* binding */ selectEmptyCssClass; },
5417 -/* harmony export */ selectFrontendInitialData: function() { return /* binding */ selectFrontendInitialData; },
5418 -/* harmony export */ selectGlobalClasses: function() { return /* binding */ selectGlobalClasses; },
5419 -/* harmony export */ selectIsClassFetched: function() { return /* binding */ selectIsClassFetched; },
5420 -/* harmony export */ selectIsDirty: function() { return /* binding */ selectIsDirty; },
5421 -/* harmony export */ selectOrder: function() { return /* binding */ selectOrder; },
5422 -/* harmony export */ selectOrderedClasses: function() { return /* binding */ selectOrderedClasses; },
5423 -/* harmony export */ selectPreviewInitialData: function() { return /* binding */ selectPreviewInitialData; },
5424 -/* harmony export */ slice: function() { return /* binding */ slice; }
5425 -/* harmony export */ });
5426 -/* harmony import */ var _elementor_editor_styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-styles */ "@elementor/editor-styles");
5427 -/* harmony import */ var _elementor_editor_styles__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_styles__WEBPACK_IMPORTED_MODULE_0__);
5428 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/store */ "@elementor/store");
5429 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_store__WEBPACK_IMPORTED_MODULE_1__);
5430 -/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./errors */ "./packages/packages/core/editor-global-classes/src/errors.ts");
5431 -/* harmony import */ var _utils_snapshot_history__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/snapshot-history */ "./packages/packages/core/editor-global-classes/src/utils/snapshot-history.ts");
5432 -
5433 -
5434 -
5435 -
5436 -const localHistory = _utils_snapshot_history__WEBPACK_IMPORTED_MODULE_3__.SnapshotHistory.get('global-classes');
5437 -const initialState = {
5438 - data: {
5439 - items: {},
5440 - order: []
5441 - },
5442 - classLabels: {},
5443 - initialData: {
5444 - frontend: {
5445 - items: {},
5446 - order: []
5447 - },
5448 - preview: {
5449 - items: {},
5450 - order: []
5451 - }
5452 - },
5453 - isDirty: false
5454 -};
5455 -// Slice
5456 -const SLICE_NAME = 'globalClasses';
5457 -const slice = (0,_elementor_store__WEBPACK_IMPORTED_MODULE_1__.__createSlice)({
5458 - name: SLICE_NAME,
5459 - initialState,
5460 - reducers: {
5461 - load(state, {
5462 - payload: {
5463 - frontend,
5464 - preview,
5465 - classLabels
5466 - }
5467 - }) {
5468 - state.initialData.frontend = frontend;
5469 - state.initialData.preview = preview;
5470 - state.data = preview;
5471 - state.classLabels = classLabels;
5472 - state.isDirty = false;
5473 - },
5474 - add(state, {
5475 - payload
5476 - }) {
5477 - localHistory.next(state.data);
5478 - state.data.items[payload.id] = payload;
5479 - state.data.order.unshift(payload.id);
5480 - state.classLabels[payload.id] = payload.label;
5481 - state.isDirty = true;
5482 - },
5483 - delete(state, {
5484 - payload
5485 - }) {
5486 - localHistory.next(state.data);
5487 - state.data.items = Object.fromEntries(Object.entries(state.data.items).filter(([id]) => id !== payload));
5488 - state.data.order = state.data.order.filter(id => id !== payload);
5489 - // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
5490 - delete state.classLabels[payload];
5491 - state.isDirty = true;
5492 - },
5493 - setOrder(state, {
5494 - payload
5495 - }) {
5496 - localHistory.next(state.data);
5497 - state.data.order = payload;
5498 - state.isDirty = true;
5499 - },
5500 - update(state, {
5501 - payload
5502 - }) {
5503 - localHistory.next(state.data);
5504 - const style = state.data.items[payload.style.id];
5505 - const mergedData = {
5506 - ...style,
5507 - ...payload.style
5508 - };
5509 - state.data.items[payload.style.id] = mergedData;
5510 - state.isDirty = true;
5511 - },
5512 - updateMultiple(state, {
5513 - payload
5514 - }) {
5515 - localHistory.next(state.data);
5516 - Object.entries(payload).forEach(([id, {
5517 - modified
5518 - }]) => {
5519 - state.data.items[id].label = modified;
5520 - state.classLabels[id] = modified;
5521 - });
5522 - state.isDirty = false;
5523 - },
5524 - updateProps(state, {
5525 - payload
5526 - }) {
5527 - const style = state.data.items[payload.id];
5528 - if (!style) {
5529 - throw new _errors__WEBPACK_IMPORTED_MODULE_2__.GlobalClassNotFoundError({
5530 - context: {
5531 - styleId: payload.id
5532 - }
5533 - });
5534 - }
5535 - localHistory.next(state.data);
5536 - const variant = (0,_elementor_editor_styles__WEBPACK_IMPORTED_MODULE_0__.getVariantByMeta)(style, payload.meta);
5537 - let customCss = ('custom_css' in payload ? payload.custom_css : variant?.custom_css) ?? null;
5538 - customCss = customCss?.raw ? customCss : null;
5539 - if (variant) {
5540 - const payloadProps = JSON.parse(JSON.stringify(payload.props));
5541 - const mode = payload.mode ?? 'merge';
5542 - if (mode === 'replace') {
5543 - variant.props = payloadProps;
5544 - } else {
5545 - const variantProps = JSON.parse(JSON.stringify(variant.props));
5546 - variant.props = mergeProps(variantProps, payloadProps);
5547 - }
5548 - variant.custom_css = customCss;
5549 - style.variants = getNonEmptyVariants(style);
5550 - } else {
5551 - style.variants.push({
5552 - meta: payload.meta,
5553 - props: payload.props,
5554 - custom_css: customCss
5555 - });
5556 - }
5557 - state.isDirty = true;
5558 - },
5559 - reset(state, {
5560 - payload: {
5561 - context
5562 - }
5563 - }) {
5564 - if (context === 'frontend') {
5565 - localHistory.reset();
5566 - state.initialData.frontend = state.data;
5567 - state.isDirty = false;
5568 - }
5569 - state.initialData.preview = state.data;
5570 - },
5571 - undo(state) {
5572 - if (localHistory.isLast()) {
5573 - localHistory.next(state.data); // store current before undo
5574 - }
5575 - const data = localHistory.prev();
5576 - if (data) {
5577 - state.data = data;
5578 - state.isDirty = true;
5579 - } else {
5580 - state.data = state.initialData.preview;
5581 - }
5582 - },
5583 - resetToInitialState(state, {
5584 - payload: {
5585 - context
5586 - }
5587 - }) {
5588 - localHistory.reset();
5589 - state.data = state.initialData[context];
5590 - state.isDirty = false;
5591 - },
5592 - redo(state) {
5593 - const data = localHistory.next();
5594 - if (localHistory.isLast()) {
5595 - localHistory.prev();
5596 - }
5597 - if (data) {
5598 - state.data = data;
5599 - state.isDirty = true;
5600 - }
5601 - },
5602 - mergeExistingClasses(state, {
5603 - payload: {
5604 - preview,
5605 - frontend
5606 - }
5607 - }) {
5608 - Object.entries(preview).forEach(([id, previewClassData]) => {
5609 - const frontendClassData = frontend[id];
5610 - if (previewClassData === null || previewClassData === undefined) {
5611 - return;
5612 - }
5613 - if (!(id in state.data.items)) {
5614 - state.data.items[id] = previewClassData;
5615 - }
5616 - if (!(id in state.initialData.frontend.items)) {
5617 - state.initialData.frontend.items[id] = frontendClassData;
5618 - }
5619 - if (!(id in state.initialData.preview.items)) {
5620 - state.initialData.preview.items[id] = previewClassData;
5621 - }
5622 - if (!(id in state.classLabels)) {
5623 - state.classLabels[id] = previewClassData.label;
5624 - }
5625 - });
5626 - },
5627 - setOrderWithoutHistory(state, {
5628 - payload
5629 - }) {
5630 - state.data.order = payload;
5631 - },
5632 - updateAfterTemplateImport(state, {
5633 - payload
5634 - }) {
5635 - // Update initial data
5636 - state.initialData.frontend.items = {
5637 - ...state.initialData.frontend.items,
5638 - ...payload.addedItems
5639 - };
5640 - state.initialData.frontend.order = [...state.initialData.frontend.order, ...payload.addedIdsOrder];
5641 - state.initialData.preview.items = {
5642 - ...state.initialData.preview.items,
5643 - ...payload.addedItems
5644 - };
5645 - state.initialData.preview.order = [...state.initialData.preview.order, ...payload.addedIdsOrder];
5646 -
5647 - // Update current data
5648 - state.data.items = {
5649 - ...state.data.items,
5650 - ...payload.addedItems
5651 - };
5652 - state.data.order = [...state.data.order, ...payload.addedIdsOrder];
5653 -
5654 - // Update class labels
5655 - state.classLabels = {
5656 - ...state.classLabels,
5657 - ...payload.addedClassLabels
5658 - };
5659 - }
5660 - }
5661 -});
5662 -const mergeProps = (current, updates) => {
5663 - // edge case, the server returns an array instead of an object when empty props because of PHP array / object conversion
5664 - const props = Array.isArray(current) ? {} : current;
5665 - Object.entries(updates).forEach(([key, value]) => {
5666 - if (value === null || value === undefined) {
5667 - // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
5668 - delete props[key];
5669 - } else {
5670 - props[key] = value;
5671 - }
5672 - });
5673 - return props;
5674 -};
5675 -const getNonEmptyVariants = style => {
5676 - return style.variants.filter(({
5677 - props,
5678 - custom_css: customCss
5679 - }) => Object.keys(props).length || customCss?.raw);
5680 -};
5681 -const placeholderDefinition = (id, label) => ({
5682 - id,
5683 - type: 'class',
5684 - label,
5685 - variants: []
5686 -});
5687 -
5688 -// Selectors
5689 -const selectData = state => state[SLICE_NAME].data;
5690 -const selectClassLabels = state => state[SLICE_NAME].classLabels;
5691 -const selectFrontendInitialData = state => state[SLICE_NAME].initialData.frontend;
5692 -const selectPreviewInitialData = state => state[SLICE_NAME].initialData.preview;
5693 -const selectOrder = (0,_elementor_store__WEBPACK_IMPORTED_MODULE_1__.__createSelector)(selectData, ({
5694 - order
5695 -}) => order);
5696 -const selectGlobalClasses = (0,_elementor_store__WEBPACK_IMPORTED_MODULE_1__.__createSelector)(selectData, ({
5697 - items
5698 -}) => items);
5699 -const selectIsDirty = state => state[SLICE_NAME].isDirty;
5700 -const selectOrderedClasses = (0,_elementor_store__WEBPACK_IMPORTED_MODULE_1__.__createSelector)(selectData, selectClassLabels, ({
5701 - items,
5702 - order
5703 -}, classLabels) => order.map(id => {
5704 - const loaded = items[id];
5705 - if (loaded) {
5706 - return loaded;
5707 - }
5708 - const label = classLabels[id];
5709 - return label !== undefined ? placeholderDefinition(id, label) : null;
5710 -}).filter(s => s !== null));
5711 -const selectClass = (state, id) => state[SLICE_NAME].data.items[id] ?? null;
5712 -const selectEmptyCssClass = (0,_elementor_store__WEBPACK_IMPORTED_MODULE_1__.__createSelector)(selectData, ({
5713 - items
5714 -}) => Object.values(items).filter(cssClass => (cssClass.variants?.length ?? 0) === 0));
5715 -const selectIsClassFetched = (state, id) => !!state[SLICE_NAME].initialData.preview.items[id] || !!state[SLICE_NAME].initialData.frontend.items[id] || false;
5716 -
5717 -/***/ }),
5718 -
5719 -/***/ "./packages/packages/core/editor-global-classes/src/sync-with-document-save.ts":
5720 -/*!*************************************************************************************!*\
5721 - !*** ./packages/packages/core/editor-global-classes/src/sync-with-document-save.ts ***!
5722 - \*************************************************************************************/
5723 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5724 -
5725 -__webpack_require__.r(__webpack_exports__);
5726 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5727 -/* harmony export */ syncWithDocumentSave: function() { return /* binding */ syncWithDocumentSave; }
5728 -/* harmony export */ });
5729 -/* harmony import */ var _elementor_editor_current_user__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-current-user */ "@elementor/editor-current-user");
5730 -/* harmony import */ var _elementor_editor_current_user__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_current_user__WEBPACK_IMPORTED_MODULE_0__);
5731 -/* harmony import */ var _elementor_editor_documents__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-documents */ "@elementor/editor-documents");
5732 -/* harmony import */ var _elementor_editor_documents__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_1__);
5733 -/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters");
5734 -/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_2__);
5735 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @elementor/store */ "@elementor/store");
5736 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_elementor_store__WEBPACK_IMPORTED_MODULE_3__);
5737 -/* harmony import */ var _capabilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./capabilities */ "./packages/packages/core/editor-global-classes/src/capabilities.ts");
5738 -/* harmony import */ var _save_global_classes__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./save-global-classes */ "./packages/packages/core/editor-global-classes/src/save-global-classes.tsx");
5739 -/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./store */ "./packages/packages/core/editor-global-classes/src/store.ts");
5740 -
5741 -
5742 -
5743 -
5744 -
5745 -
5746 -
5747 -let pendingSave = null;
5748 -function syncWithDocumentSave(panelActions) {
5749 - const unsubscribe = syncDirtyState();
5750 - bindSaveAction(panelActions);
5751 - bindBeforeSaveTemplateAction();
5752 - return unsubscribe;
5753 -}
5754 -function syncDirtyState() {
5755 - return (0,_elementor_store__WEBPACK_IMPORTED_MODULE_3__.__subscribeWithSelector)(_store__WEBPACK_IMPORTED_MODULE_6__.selectIsDirty, () => {
5756 - if (!isDirty()) {
5757 - return;
5758 - }
5759 - (0,_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_1__.setDocumentModifiedStatus)(true);
5760 - });
5761 -}
5762 -function triggerSave(panelActions, context = 'preview') {
5763 - const user = (0,_elementor_editor_current_user__WEBPACK_IMPORTED_MODULE_0__.getCurrentUser)();
5764 - const canEdit = user?.capabilities.includes(_capabilities__WEBPACK_IMPORTED_MODULE_4__.UPDATE_CLASS_CAPABILITY_KEY);
5765 - if (!canEdit) {
5766 - return null;
5767 - }
5768 - if (pendingSave) {
5769 - return pendingSave;
5770 - }
5771 - const promise = (0,_save_global_classes__WEBPACK_IMPORTED_MODULE_5__.saveGlobalClasses)({
5772 - context,
5773 - onApprove: panelActions?.open
5774 - });
5775 - pendingSave = promise;
5776 - promise.finally(() => {
5777 - pendingSave = null;
5778 - });
5779 - return promise;
5780 -}
5781 -function bindSaveAction(panelActions) {
5782 - (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_2__.registerDataHook)('dependency', 'document/save/save', args => {
5783 - triggerSave(panelActions, args.status === 'publish' ? 'frontend' : 'preview');
5784 - return true;
5785 - });
5786 -}
5787 -function bindBeforeSaveTemplateAction() {
5788 - window.addEventListener('elementor/global-styles/before-save', event => {
5789 - if (!pendingSave && isDirty()) {
5790 - triggerSave();
5791 - }
5792 - if (pendingSave) {
5793 - event.detail.promises.push(pendingSave);
5794 - }
5795 - });
5796 -}
5797 -function isDirty() {
5798 - return (0,_store__WEBPACK_IMPORTED_MODULE_6__.selectIsDirty)((0,_elementor_store__WEBPACK_IMPORTED_MODULE_3__.__getState)());
5799 -}
5800 -
5801 -/***/ }),
5802 -
5803 -/***/ "./packages/packages/core/editor-global-classes/src/sync-with-document.tsx":
5804 -/*!*********************************************************************************!*\
5805 - !*** ./packages/packages/core/editor-global-classes/src/sync-with-document.tsx ***!
5806 - \*********************************************************************************/
5807 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5808 -
5809 -__webpack_require__.r(__webpack_exports__);
5810 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5811 -/* harmony export */ SyncWithDocumentSave: function() { return /* binding */ SyncWithDocumentSave; }
5812 -/* harmony export */ });
5813 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
5814 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
5815 -/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters");
5816 -/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1__);
5817 -/* harmony import */ var _sync_with_document_save__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./sync-with-document-save */ "./packages/packages/core/editor-global-classes/src/sync-with-document-save.ts");
5818 -
5819 -
5820 -
5821 -function SyncWithDocumentSave() {
5822 - (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
5823 - const unsubscribe = (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1__.__privateListenTo)((0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1__.v1ReadyEvent)(), () => {
5824 - const open = () => {
5825 - window.dispatchEvent(new CustomEvent('elementor/open-global-classes-manager'));
5826 - };
5827 - (0,_sync_with_document_save__WEBPACK_IMPORTED_MODULE_2__.syncWithDocumentSave)({
5828 - open
5829 - });
5830 - });
5831 - return unsubscribe;
5832 - }, []);
5833 - return null;
5834 -}
5835 -
5836 -/***/ }),
5837 -
5838 -/***/ "./packages/packages/core/editor-global-classes/src/utils/create-labels-for-classes.ts":
5839 -/*!*********************************************************************************************!*\
5840 - !*** ./packages/packages/core/editor-global-classes/src/utils/create-labels-for-classes.ts ***!
5841 - \*********************************************************************************************/
5842 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5843 -
5844 -__webpack_require__.r(__webpack_exports__);
5845 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5846 -/* harmony export */ createLabelsForClasses: function() { return /* binding */ createLabelsForClasses; }
5847 -/* harmony export */ });
5848 -function createLabelsForClasses(entries) {
5849 - return Object.fromEntries(entries.map(e => [e.id, e.label]));
5850 -}
5851 -
5852 -/***/ }),
5853 -
5854 -/***/ "./packages/packages/core/editor-global-classes/src/utils/snapshot-history.ts":
5855 -/*!************************************************************************************!*\
5856 - !*** ./packages/packages/core/editor-global-classes/src/utils/snapshot-history.ts ***!
5857 - \************************************************************************************/
5858 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5859 -
5860 -__webpack_require__.r(__webpack_exports__);
5861 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5862 -/* harmony export */ SnapshotHistory: function() { return /* binding */ SnapshotHistory; }
5863 -/* harmony export */ });
5864 -function createLink({
5865 - value,
5866 - next,
5867 - prev
5868 -}) {
5869 - return {
5870 - value,
5871 - prev: prev || null,
5872 - next: next || null
5873 - };
5874 -}
5875 -class SnapshotHistory {
5876 - static registry = {};
5877 - static get(namespace) {
5878 - if (!SnapshotHistory.registry[namespace]) {
5879 - SnapshotHistory.registry[namespace] = new SnapshotHistory(namespace);
5880 - }
5881 - return SnapshotHistory.registry[namespace];
5882 - }
5883 - first = null;
5884 - current = null;
5885 - constructor(namespace) {
5886 - this.namespace = namespace;
5887 - }
5888 - transform(item) {
5889 - return JSON.parse(JSON.stringify(item));
5890 - }
5891 - reset() {
5892 - this.first = this.current = null;
5893 - }
5894 - prev() {
5895 - if (!this.current || this.current === this.first) {
5896 - return null;
5897 - }
5898 - this.current = this.current.prev;
5899 - return this.current?.value || null;
5900 - }
5901 - isLast() {
5902 - return !this.current || !this.current.next;
5903 - }
5904 - next(value) {
5905 - if (value) {
5906 - if (!this.current) {
5907 - this.first = createLink({
5908 - value: this.transform(value)
5909 - });
5910 - this.current = this.first;
5911 - return this.current.value;
5912 - }
5913 - const nextLink = createLink({
5914 - value: this.transform(value),
5915 - prev: this.current
5916 - });
5917 - this.current.next = nextLink;
5918 - this.current = nextLink;
5919 - return this.current.value;
5920 - }
5921 -
5922 - // No value skip to next without setting any
5923 - if (!this.current || !this.current.next) {
5924 - return null;
5925 - }
5926 - this.current = this.current.next;
5927 - return this.current.value;
5928 - }
5929 -}
5930 -
5931 -/***/ }),
5932 -
5933 -/***/ "./packages/packages/core/editor-global-classes/src/utils/tracking.ts":
5934 -/*!****************************************************************************!*\
5935 - !*** ./packages/packages/core/editor-global-classes/src/utils/tracking.ts ***!
5936 - \****************************************************************************/
5937 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5938 -
5939 -__webpack_require__.r(__webpack_exports__);
5940 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5941 -/* harmony export */ trackGlobalClasses: function() { return /* binding */ trackGlobalClasses; }
5942 -/* harmony export */ });
5943 -/* harmony import */ var _elementor_events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/events */ "@elementor/events");
5944 -/* harmony import */ var _elementor_events__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_events__WEBPACK_IMPORTED_MODULE_0__);
5945 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/store */ "@elementor/store");
5946 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_store__WEBPACK_IMPORTED_MODULE_1__);
5947 -/* harmony import */ var _service_css_class_usage_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../service/css-class-usage-service */ "./packages/packages/core/editor-global-classes/service/css-class-usage-service.ts");
5948 -/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../errors */ "./packages/packages/core/editor-global-classes/src/errors.ts");
5949 -/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../store */ "./packages/packages/core/editor-global-classes/src/store.ts");
5950 -
5951 -
5952 -
5953 -
5954 -
5955 -const trackGlobalClasses = async payload => {
5956 - const {
5957 - runAction
5958 - } = payload;
5959 - const data = await getSanitizedData(payload);
5960 - if (data) {
5961 - track(data);
5962 - if (data.event === 'classCreated' && 'classId' in data) {
5963 - fireClassApplied(data.classId);
5964 - }
5965 - }
5966 - runAction?.();
5967 -};
5968 -const fireClassApplied = async classId => {
5969 - const appliedInfo = await getAppliedInfo(classId);
5970 - track({
5971 - event: 'classApplied',
5972 - classId,
5973 - ...appliedInfo,
5974 - totalInstancesAfterApply: 1
5975 - });
5976 -};
5977 -const getSanitizedData = async payload => {
5978 - switch (payload.event) {
5979 - case 'classApplied':
5980 - if ('classId' in payload && payload.classId) {
5981 - const appliedInfo = await getAppliedInfo(payload.classId);
5982 - return {
5983 - ...payload,
5984 - ...appliedInfo
5985 - };
5986 - }
5987 - break;
5988 - case 'classRemoved':
5989 - if ('classId' in payload && payload.classId) {
5990 - const deleteInfo = getRemovedInfo(payload.classId);
5991 - return {
5992 - ...payload,
5993 - ...deleteInfo
5994 - };
5995 - }
5996 - break;
5997 - case 'classDeleted':
5998 - if ('classId' in payload && payload.classId) {
5999 - const deleteInfo = await trackDeleteClass(payload.classId);
6000 - return {
6001 - ...payload,
6002 - ...deleteInfo
6003 - };
6004 - }
6005 - break;
6006 - case 'classCreated':
6007 - if ('source' in payload && payload.source !== 'created') {
6008 - if ('classId' in payload && payload.classId) {
6009 - return {
6010 - ...payload,
6011 - classTitle: getCssClass(payload.classId).label
6012 - };
6013 - }
6014 - }
6015 - return payload;
6016 - case 'classStateClicked':
6017 - if ('classId' in payload && payload.classId) {
6018 - return {
6019 - ...payload,
6020 - classTitle: getCssClass(payload.classId).label
6021 - };
6022 - }
6023 - break;
6024 - case 'classSyncToV3PopupShown':
6025 - return {
6026 - ...payload,
6027 - interaction_type: 'popup_shown',
6028 - target_type: 'popup',
6029 - target_name: 'sync_to_v3_popup',
6030 - interaction_result: 'popup_viewed',
6031 - target_location: 'widget_panel',
6032 - location_l1: 'class_manager'
6033 - };
6034 - case 'classSyncToV3':
6035 - {
6036 - const classLabel = getCssClass(payload.classId).label;
6037 - const isSync = payload.action === 'sync';
6038 - return {
6039 - ...payload,
6040 - interaction_type: 'click',
6041 - target_type: classLabel,
6042 - target_name: isSync ? 'sync_to_v3' : 'unsync_to_v3',
6043 - interaction_result: isSync ? 'class_is_synced_to_V3' : 'class_is_unsynced_from_V3',
6044 - target_location: 'widget_panel',
6045 - location_l1: 'class_manager',
6046 - interaction_description: isSync ? `user_synced_${classLabel}_to_v3` : `user_unsync_${classLabel}_from_v3`
6047 - };
6048 - }
6049 - case 'classSyncToV3PopupClick':
6050 - {
6051 - const isSyncAction = payload.action === 'sync';
6052 - return {
6053 - ...payload,
6054 - interaction_type: 'click',
6055 - target_type: 'button',
6056 - target_name: isSyncAction ? 'sync_to_v3' : 'cancel',
6057 - interaction_result: isSyncAction ? 'class_is_synced' : 'cancel',
6058 - target_location: 'sync_to_v3_popup'
6059 - };
6060 - }
6061 - default:
6062 - return payload;
6063 - }
6064 -};
6065 -const track = data => {
6066 - const {
6067 - dispatchEvent,
6068 - config
6069 - } = (0,_elementor_events__WEBPACK_IMPORTED_MODULE_0__.getMixpanel)();
6070 - if (!config?.names?.global_classes?.[data.event]) {
6071 - // eslint-disable-next-line no-console
6072 - console.error('Global class tracking event not found', {
6073 - event: data.event
6074 - });
6075 - return;
6076 - }
6077 - const name = config.names.global_classes[data.event];
6078 - const {
6079 - event,
6080 - ...eventData
6081 - } = data;
6082 - try {
6083 - dispatchEvent?.(name, {
6084 - event,
6085 - ...eventData
6086 - });
6087 - } catch (error) {
6088 - throw new _errors__WEBPACK_IMPORTED_MODULE_3__.GlobalClassTrackingError({
6089 - cause: error
6090 - });
6091 - }
6092 -};
6093 -const extractCssClassData = classId => {
6094 - const cssClass = getCssClass(classId);
6095 - const classTitle = cssClass.label;
6096 - return {
6097 - classTitle
6098 - };
6099 -};
6100 -const getCssClass = classId => {
6101 - const state = (0,_elementor_store__WEBPACK_IMPORTED_MODULE_1__.__getState)();
6102 - const cssClass = (0,_store__WEBPACK_IMPORTED_MODULE_4__.selectClass)(state, classId);
6103 - if (cssClass) {
6104 - return cssClass;
6105 - }
6106 - const label = (0,_store__WEBPACK_IMPORTED_MODULE_4__.selectClassLabels)(state)[classId];
6107 - if (label !== undefined) {
6108 - return (0,_store__WEBPACK_IMPORTED_MODULE_4__.placeholderDefinition)(classId, label);
6109 - }
6110 - throw new Error(`CSS class with ID ${classId} not found`);
6111 -};
6112 -const trackDeleteClass = async classId => {
6113 - const classTitle = getCssClass(classId).label;
6114 - const totalInstances = await getTotalInstancesByCssClassID(classId);
6115 - return {
6116 - totalInstances,
6117 - classTitle
6118 - };
6119 -};
6120 -const getTotalInstancesByCssClassID = async classId => {
6121 - const cssClassUsage = await (0,_service_css_class_usage_service__WEBPACK_IMPORTED_MODULE_2__.fetchCssClassUsage)();
6122 - return cssClassUsage[classId]?.total ?? 1;
6123 -};
6124 -const getAppliedInfo = async classId => {
6125 - const {
6126 - classTitle
6127 - } = extractCssClassData(classId);
6128 - const totalInstancesAfterApply = (await getTotalInstancesByCssClassID(classId)) + 1;
6129 - return {
6130 - classTitle,
6131 - totalInstancesAfterApply
6132 - };
6133 -};
6134 -const getRemovedInfo = classId => {
6135 - const {
6136 - classTitle
6137 - } = extractCssClassData(classId);
6138 - return {
6139 - classTitle
6140 - };
6141 -};
6142 -
6143 -/***/ }),
6144 -
6145 -/***/ "@elementor/editor":
6146 -/*!*****************************************!*\
6147 - !*** external ["elementorV2","editor"] ***!
6148 - \*****************************************/
6149 -/***/ (function(module) {
6150 -
6151 -module.exports = window["elementorV2"]["editor"];
6152 -
6153 -/***/ }),
6154 -
6155 -/***/ "@elementor/editor-canvas":
6156 -/*!***********************************************!*\
6157 - !*** external ["elementorV2","editorCanvas"] ***!
6158 - \***********************************************/
6159 -/***/ (function(module) {
6160 -
6161 -module.exports = window["elementorV2"]["editorCanvas"];
6162 -
6163 -/***/ }),
6164 -
6165 -/***/ "@elementor/editor-current-user":
6166 -/*!****************************************************!*\
6167 - !*** external ["elementorV2","editorCurrentUser"] ***!
6168 - \****************************************************/
6169 -/***/ (function(module) {
6170 -
6171 -module.exports = window["elementorV2"]["editorCurrentUser"];
6172 -
6173 -/***/ }),
6174 -
6175 -/***/ "@elementor/editor-documents":
6176 -/*!**************************************************!*\
6177 - !*** external ["elementorV2","editorDocuments"] ***!
6178 - \**************************************************/
6179 -/***/ (function(module) {
6180 -
6181 -module.exports = window["elementorV2"]["editorDocuments"];
6182 -
6183 -/***/ }),
6184 -
6185 -/***/ "@elementor/editor-editing-panel":
6186 -/*!*****************************************************!*\
6187 - !*** external ["elementorV2","editorEditingPanel"] ***!
6188 - \*****************************************************/
6189 -/***/ (function(module) {
6190 -
6191 -module.exports = window["elementorV2"]["editorEditingPanel"];
6192 -
6193 -/***/ }),
6194 -
6195 -/***/ "@elementor/editor-embedded-documents-manager":
6196 -/*!*****************************************************************!*\
6197 - !*** external ["elementorV2","editorEmbeddedDocumentsManager"] ***!
6198 - \*****************************************************************/
6199 -/***/ (function(module) {
6200 -
6201 -module.exports = window["elementorV2"]["editorEmbeddedDocumentsManager"];
6202 -
6203 -/***/ }),
6204 -
6205 -/***/ "@elementor/editor-mcp":
6206 -/*!********************************************!*\
6207 - !*** external ["elementorV2","editorMcp"] ***!
6208 - \********************************************/
6209 -/***/ (function(module) {
6210 -
6211 -module.exports = window["elementorV2"]["editorMcp"];
6212 -
6213 -/***/ }),
6214 -
6215 -/***/ "@elementor/editor-panels":
6216 -/*!***********************************************!*\
6217 - !*** external ["elementorV2","editorPanels"] ***!
6218 - \***********************************************/
6219 -/***/ (function(module) {
6220 -
6221 -module.exports = window["elementorV2"]["editorPanels"];
6222 -
6223 -/***/ }),
6224 -
6225 -/***/ "@elementor/editor-styles":
6226 -/*!***********************************************!*\
6227 - !*** external ["elementorV2","editorStyles"] ***!
6228 - \***********************************************/
6229 -/***/ (function(module) {
6230 -
6231 -module.exports = window["elementorV2"]["editorStyles"];
6232 -
6233 -/***/ }),
6234 -
6235 -/***/ "@elementor/editor-styles-repository":
6236 -/*!*********************************************************!*\
6237 - !*** external ["elementorV2","editorStylesRepository"] ***!
6238 - \*********************************************************/
6239 -/***/ (function(module) {
6240 -
6241 -module.exports = window["elementorV2"]["editorStylesRepository"];
6242 -
6243 -/***/ }),
6244 -
6245 -/***/ "@elementor/editor-ui":
6246 -/*!*******************************************!*\
6247 - !*** external ["elementorV2","editorUi"] ***!
6248 - \*******************************************/
6249 -/***/ (function(module) {
6250 -
6251 -module.exports = window["elementorV2"]["editorUi"];
6252 -
6253 -/***/ }),
6254 -
6255 -/***/ "@elementor/editor-v1-adapters":
6256 -/*!***************************************************!*\
6257 - !*** external ["elementorV2","editorV1Adapters"] ***!
6258 - \***************************************************/
6259 -/***/ (function(module) {
6260 -
6261 -module.exports = window["elementorV2"]["editorV1Adapters"];
6262 -
6263 -/***/ }),
6264 -
6265 -/***/ "@elementor/events":
6266 -/*!*****************************************!*\
6267 - !*** external ["elementorV2","events"] ***!
6268 - \*****************************************/
6269 -/***/ (function(module) {
6270 -
6271 -module.exports = window["elementorV2"]["events"];
6272 -
6273 -/***/ }),
6274 -
6275 -/***/ "@elementor/http-client":
6276 -/*!*********************************************!*\
6277 - !*** external ["elementorV2","httpClient"] ***!
6278 - \*********************************************/
6279 -/***/ (function(module) {
6280 -
6281 -module.exports = window["elementorV2"]["httpClient"];
6282 -
6283 -/***/ }),
6284 -
6285 -/***/ "@elementor/icons":
6286 -/*!****************************************!*\
6287 - !*** external ["elementorV2","icons"] ***!
6288 - \****************************************/
6289 -/***/ (function(module) {
6290 -
6291 -module.exports = window["elementorV2"]["icons"];
6292 -
6293 -/***/ }),
6294 -
6295 -/***/ "@elementor/query":
6296 -/*!****************************************!*\
6297 - !*** external ["elementorV2","query"] ***!
6298 - \****************************************/
6299 -/***/ (function(module) {
6300 -
6301 -module.exports = window["elementorV2"]["query"];
6302 -
6303 -/***/ }),
6304 -
6305 -/***/ "@elementor/schema":
6306 -/*!*****************************************!*\
6307 - !*** external ["elementorV2","schema"] ***!
6308 - \*****************************************/
6309 -/***/ (function(module) {
6310 -
6311 -module.exports = window["elementorV2"]["schema"];
6312 -
6313 -/***/ }),
6314 -
6315 -/***/ "@elementor/store":
6316 -/*!****************************************!*\
6317 - !*** external ["elementorV2","store"] ***!
6318 - \****************************************/
6319 -/***/ (function(module) {
6320 -
6321 -module.exports = window["elementorV2"]["store"];
6322 -
6323 -/***/ }),
6324 -
6325 -/***/ "@elementor/ui":
6326 -/*!*************************************!*\
6327 - !*** external ["elementorV2","ui"] ***!
6328 - \*************************************/
6329 -/***/ (function(module) {
6330 -
6331 -module.exports = window["elementorV2"]["ui"];
6332 -
6333 -/***/ }),
6334 -
6335 -/***/ "@elementor/utils":
6336 -/*!****************************************!*\
6337 - !*** external ["elementorV2","utils"] ***!
6338 - \****************************************/
6339 -/***/ (function(module) {
6340 -
6341 -module.exports = window["elementorV2"]["utils"];
6342 -
6343 -/***/ }),
6344 -
6345 -/***/ "@wordpress/i18n":
6346 -/*!******************************!*\
6347 - !*** external ["wp","i18n"] ***!
6348 - \******************************/
6349 -/***/ (function(module) {
6350 -
6351 -module.exports = window["wp"]["i18n"];
6352 -
6353 -/***/ }),
6354 -
6355 -/***/ "react":
6356 -/*!**************************!*\
6357 - !*** external ["React"] ***!
6358 - \**************************/
6359 -/***/ (function(module) {
6360 -
6361 -module.exports = window["React"];
6362 -
6363 -/***/ }),
6364 -
6365 -/***/ "react-dom":
6366 -/*!*****************************!*\
6367 - !*** external ["ReactDOM"] ***!
6368 - \*****************************/
6369 -/***/ (function(module) {
6370 -
6371 -module.exports = window["ReactDOM"];
6372 -
6373 -/***/ })
6374 -
6375 -/******/ });
6376 -/************************************************************************/
6377 -/******/ // The module cache
6378 -/******/ var __webpack_module_cache__ = {};
6379 -/******/
6380 -/******/ // The require function
6381 -/******/ function __webpack_require__(moduleId) {
6382 -/******/ // Check if module is in cache
6383 -/******/ var cachedModule = __webpack_module_cache__[moduleId];
6384 -/******/ if (cachedModule !== undefined) {
6385 -/******/ return cachedModule.exports;
6386 -/******/ }
6387 -/******/ // Create a new module (and put it into the cache)
6388 -/******/ var module = __webpack_module_cache__[moduleId] = {
6389 -/******/ // no module.id needed
6390 -/******/ // no module.loaded needed
6391 -/******/ exports: {}
6392 -/******/ };
6393 -/******/
6394 -/******/ // Execute the module function
6395 -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
6396 -/******/
6397 -/******/ // Return the exports of the module
6398 -/******/ return module.exports;
6399 -/******/ }
6400 -/******/
6401 -/************************************************************************/
6402 -/******/ /* webpack/runtime/compat get default export */
6403 -/******/ !function() {
6404 -/******/ // getDefaultExport function for compatibility with non-harmony modules
6405 -/******/ __webpack_require__.n = function(module) {
6406 -/******/ var getter = module && module.__esModule ?
6407 -/******/ function() { return module['default']; } :
6408 -/******/ function() { return module; };
6409 -/******/ __webpack_require__.d(getter, { a: getter });
6410 -/******/ return getter;
6411 -/******/ };
6412 -/******/ }();
6413 -/******/
6414 -/******/ /* webpack/runtime/define property getters */
6415 -/******/ !function() {
6416 -/******/ // define getter functions for harmony exports
6417 -/******/ __webpack_require__.d = function(exports, definition) {
6418 -/******/ for(var key in definition) {
6419 -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
6420 -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
6421 -/******/ }
6422 -/******/ }
6423 -/******/ };
6424 -/******/ }();
6425 -/******/
6426 -/******/ /* webpack/runtime/hasOwnProperty shorthand */
6427 -/******/ !function() {
6428 -/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
6429 -/******/ }();
6430 -/******/
6431 -/******/ /* webpack/runtime/make namespace object */
6432 -/******/ !function() {
6433 -/******/ // define __esModule on exports
6434 -/******/ __webpack_require__.r = function(exports) {
6435 -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
6436 -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
6437 -/******/ }
6438 -/******/ Object.defineProperty(exports, '__esModule', { value: true });
6439 -/******/ };
6440 -/******/ }();
6441 -/******/
6442 -/************************************************************************/
6443 -var __webpack_exports__ = {};
6444 -// This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk.
6445 -!function() {
6446 -/*!*******************************************************************!*\
6447 - !*** ./packages/packages/core/editor-global-classes/src/index.ts ***!
6448 - \*******************************************************************/
6449 -__webpack_require__.r(__webpack_exports__);
6450 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6451 -/* harmony export */ ClassManagerPanelEmbedded: function() { return /* reexport safe */ _components_class_manager_class_manager_panel__WEBPACK_IMPORTED_MODULE_0__.ClassManagerPanelEmbedded; },
6452 -/* harmony export */ GLOBAL_CLASSES_URI: function() { return /* reexport safe */ _mcp_integration_classes_resource__WEBPACK_IMPORTED_MODULE_1__.GLOBAL_CLASSES_URI; },
6453 -/* harmony export */ addDocumentClasses: function() { return /* reexport safe */ _load_document_classes__WEBPACK_IMPORTED_MODULE_4__.addDocumentClasses; },
6454 -/* harmony export */ createLabelsForClasses: function() { return /* reexport safe */ _utils_create_labels_for_classes__WEBPACK_IMPORTED_MODULE_5__.createLabelsForClasses; },
6455 -/* harmony export */ init: function() { return /* reexport safe */ _init__WEBPACK_IMPORTED_MODULE_2__.init; },
6456 -/* harmony export */ loadExistingClasses: function() { return /* reexport safe */ _load_existing_classes__WEBPACK_IMPORTED_MODULE_3__.loadExistingClasses; },
6457 -/* harmony export */ trackGlobalClasses: function() { return /* reexport safe */ _utils_tracking__WEBPACK_IMPORTED_MODULE_6__.trackGlobalClasses; }
6458 -/* harmony export */ });
6459 -/* harmony import */ var _components_class_manager_class_manager_panel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./components/class-manager/class-manager-panel */ "./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-panel.tsx");
6460 -/* harmony import */ var _mcp_integration_classes_resource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mcp-integration/classes-resource */ "./packages/packages/core/editor-global-classes/src/mcp-integration/classes-resource.ts");
6461 -/* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./init */ "./packages/packages/core/editor-global-classes/src/init.ts");
6462 -/* harmony import */ var _load_existing_classes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./load-existing-classes */ "./packages/packages/core/editor-global-classes/src/load-existing-classes.ts");
6463 -/* harmony import */ var _load_document_classes__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./load-document-classes */ "./packages/packages/core/editor-global-classes/src/load-document-classes.ts");
6464 -/* harmony import */ var _utils_create_labels_for_classes__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/create-labels-for-classes */ "./packages/packages/core/editor-global-classes/src/utils/create-labels-for-classes.ts");
6465 -/* harmony import */ var _utils_tracking__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/tracking */ "./packages/packages/core/editor-global-classes/src/utils/tracking.ts");
6466 -
6467 -
6468 -
6469 -
6470 -
6471 -
6472 -
6473 -}();
6474 -(window.elementorV2 = window.elementorV2 || {}).editorGlobalClasses = __webpack_exports__;
6475 -/******/ })()
6476 -;
6477 -window.elementorV2.editorGlobalClasses?.init?.();
5 + background-color: ${({theme:e})=>e.palette.text.primary};
6 +`},"./packages/packages/core/editor-global-classes/src/components/class-manager/start-sync-to-v3-modal.tsx":function(e,t,s){s.r(t),s.d(t,{StartSyncToV3Modal:function(){return StartSyncToV3Modal}});var a=s("react"),n=s("@elementor/ui"),r=s("@wordpress/i18n"),o=s("./packages/packages/core/editor-global-classes/src/utils/tracking.ts");const StartSyncToV3Modal=({externalOpen:e,classId:t,onExternalClose:s,onConfirm:l}={})=>{const[i,c]=(0,a.useState)(!0),d=(0,a.useRef)(!1);(0,a.useEffect)(()=>{e&&t&&!d.current&&(d.current=!0,(0,o.trackGlobalClasses)({event:"classSyncToV3PopupShown",classId:t})),e||(d.current=!1)},[e,t]);const handleClose=()=>{t&&(0,o.trackGlobalClasses)({event:"classSyncToV3PopupClick",classId:t,action:"cancel"}),s?.()};return a.createElement(n.Dialog,{open:!!e,onClose:handleClose,maxWidth:"sm",fullWidth:!0},a.createElement(n.DialogContent,{sx:{p:0}},a.createElement(n.Box,{component:"img",src:"https://assets.elementor.com/packages/v1/images/class-manager-sync-modal.png",alt:"",sx:{width:"100%",display:"block"}}),a.createElement(n.Box,{sx:{px:3,pt:4,pb:1}},a.createElement(n.Typography,{variant:"h6"},(0,r.__)("Sync class to Global Fonts","elementor")),a.createElement(n.Typography,{variant:"body2",color:"secondary",sx:{mb:2,pt:1}},(0,r.__)("Only typography settings supported in Global Fonts will be applied, including: font family, responsive font sizes, weight, text transform, decoration, line height, letter spacing, and word spacing. Changes made in the class will automatically apply to Global Fonts.","elementor")))),a.createElement(n.DialogActions,{sx:{justifyContent:"space-between",px:3,pb:2}},a.createElement(n.FormControlLabel,{control:a.createElement(n.Checkbox,{checked:!i,onChange:e=>c(!e.target.checked)}),label:a.createElement(n.Typography,{variant:"body2",color:"secondary"},(0,r.__)("Don't show again","elementor"))}),a.createElement(n.Box,{sx:{display:"flex",gap:1}},a.createElement(n.Button,{onClick:handleClose,color:"secondary",size:"small"},(0,r.__)("Cancel","elementor")),a.createElement(n.Button,{onClick:()=>{t&&(0,o.trackGlobalClasses)({event:"classSyncToV3PopupClick",classId:t,action:"sync"}),l?.(),s?.()},variant:"contained",size:"small"},(0,r.__)("Sync to Global Fonts","elementor")))))}},"./packages/packages/core/editor-global-classes/src/components/convert-local-class-to-global-class.tsx":function(e,t,s){s.r(t),s.d(t,{ConvertLocalClassToGlobalClass:function(){return ConvertLocalClassToGlobalClass}});var a=s("react"),n=s("@elementor/editor-styles-repository"),r=s("@elementor/editor-ui"),o=s("@elementor/ui"),l=s("@wordpress/i18n"),i=s("./packages/packages/core/editor-global-classes/src/global-classes-styles-provider.ts"),c=s("./packages/packages/core/editor-global-classes/src/utils/tracking.ts");const ConvertLocalClassToGlobalClass=e=>{const t=e.styleDef;return a.createElement(a.Fragment,null,a.createElement(r.MenuListItem,{disabled:!e.canConvert,onClick:()=>{const s=function createClassName(e){let t=1,s=`${e}${t}`;for(;!(0,n.validateStyleLabel)(s,"create").isValid;)s=`${e}${++t}`;return s}("converted-class-");if(!t)throw new Error("Style definition is required for converting local class to global class.");const a=i.globalClassesStylesProvider.actions.create?.(s,t.variants);a&&(e.successCallback(a),(0,c.trackGlobalClasses)({classId:a,event:"classCreated",source:"converted",classTitle:s}))},dense:!0,sx:{"&.Mui-focusVisible":{border:"none",boxShadow:"none !important",backgroundColor:"transparent"}}},(0,l.__)("Convert to global class","elementor")),a.createElement(o.Divider,null))}},"./packages/packages/core/editor-global-classes/src/components/css-class-usage/components/css-class-usage-popover.tsx":function(e,t,s){s.r(t),s.d(t,{CssClassUsagePopover:function(){return CssClassUsagePopover}});var a=s("react"),n=s("@elementor/editor-documents"),r=s("@elementor/editor-ui"),o=s("@elementor/icons"),l=s("@elementor/ui"),i=s("@wordpress/i18n"),c=s("./packages/packages/core/editor-global-classes/src/hooks/use-css-class-usage-by-id.ts"),d=s("./packages/packages/core/editor-global-classes/src/utils/tracking.ts");const u={"wp-post":{label:(0,i.__)("Post","elementor"),icon:a.createElement(o.PostTypeIcon,{fontSize:"inherit"})},"wp-page":{label:(0,i.__)("Page","elementor"),icon:a.createElement(o.PagesIcon,{fontSize:"inherit"})},popup:{label:(0,i.__)("Popup","elementor"),icon:a.createElement(o.PopupTemplateIcon,{fontSize:"inherit"})},header:{label:(0,i.__)("Header","elementor"),icon:a.createElement(o.HeaderTemplateIcon,{fontSize:"inherit"})},footer:{label:(0,i.__)("Footer","elementor"),icon:a.createElement(o.FooterTemplateIcon,{fontSize:"inherit"})}},CssClassUsagePopover=({cssClassID:e,onClose:t})=>{const{data:s}=(0,c.useCssClassUsageByID)(e),g=(0,n.__useOpenDocumentInNewTab)(),m=s?.content.map(({title:e,elements:t,pageId:s,type:a})=>({type:"item",value:s,label:e,secondaryText:t.length.toString(),docType:a}))??[];return a.createElement(a.Fragment,null,a.createElement(r.PopoverHeader,{icon:a.createElement(o.CurrentLocationIcon,{fontSize:"tiny"}),title:a.createElement(l.Stack,{flexDirection:"row",gap:1,alignItems:"center"},a.createElement(l.Box,{"aria-label":"header-title"},(0,i.__)("Locator","elementor")),a.createElement(l.Box,null,a.createElement(l.Chip,{sx:{lineHeight:1},size:"tiny",label:s.total}))),onClose:t}),a.createElement(l.Divider,null),a.createElement(r.PopoverBody,{width:300},a.createElement(r.PopoverMenuList,{onSelect:t=>{g(+t),(0,d.trackGlobalClasses)({event:"classUsageLocate",classId:e})},items:m,onClose:()=>{},menuListTemplate:p,menuItemContentTemplate:e=>a.createElement(l.Stack,{flexDirection:"row",flex:1,alignItems:"center"},a.createElement(l.Box,{display:"flex",sx:{pr:1}},a.createElement(l.Tooltip,{disableInteractive:!0,title:u?.[e.docType]?.label??e.docType,placement:"top"},a.createElement(l.Icon,{fontSize:"small"},u?.[e.docType]?.icon||a.createElement(o.PagesIcon,{fontSize:"inherit"})))),a.createElement(l.Box,{sx:{pr:.5,maxWidth:"173px"},display:"flex"},a.createElement(r.EllipsisWithTooltip,{title:e.label,as:l.Typography,variant:"caption",maxWidth:"173px",sx:{lineHeight:1}})),a.createElement(o.ExternalLinkIcon,{className:"hover-only-icon",fontSize:"tiny"}),a.createElement(l.Chip,{sx:{ml:"auto"},size:"tiny",label:e.secondaryText}))})))},p=(0,l.styled)(l.MenuList)(({theme:e})=>({"& > li":{display:"flex",cursor:"pointer",height:32,width:"100%"},'& > [role="option"]':{...e.typography.caption,lineHeight:"inherit",padding:e.spacing(.5,1,.5,2),textOverflow:"ellipsis",position:"absolute",top:0,left:0,opacity:1,".hover-only-icon":{color:e.palette.text.disabled,opacity:0},"&:hover":{borderRadius:e.spacing(.5),backgroundColor:e.palette.action.hover,".hover-only-icon":{color:e.palette.text.disabled,opacity:1}}},width:"100%",position:"relative"}))},"./packages/packages/core/editor-global-classes/src/components/css-class-usage/components/css-class-usage-trigger.tsx":function(e,t,s){s.r(t),s.d(t,{CssClassUsageTrigger:function(){return CssClassUsageTrigger}});var a=s("react"),n=s("@elementor/editor-ui"),r=s("@elementor/icons"),o=s("@elementor/ui"),l=s("@wordpress/i18n"),i=s("./packages/packages/core/editor-global-classes/src/hooks/use-css-class-usage-by-id.ts"),c=s("./packages/packages/core/editor-global-classes/src/utils/tracking.ts"),d=s("./packages/packages/core/editor-global-classes/src/components/css-class-usage/components/css-class-usage-popover.tsx");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var a in s)({}).hasOwnProperty.call(s,a)&&(e[a]=s[a])}return e},_extends.apply(null,arguments)}const CssClassUsageTrigger=({id:e,onClick:t})=>{const{data:{total:s},isLoading:n}=(0,i.useCssClassUsageByID)(e),l=(0,o.usePopupState)({variant:"popover",popupId:"css-class-usage-popover"});if(n)return null;const p=0!==s?TooltipWrapper:InfoAlertMessage;return a.createElement(a.Fragment,null,a.createElement(o.Box,{position:"relative",onMouseEnter:()=>{(0,c.trackGlobalClasses)({event:"classUsageHovered",classId:e,usage:s})}},a.createElement(p,{total:s},a.createElement(u,_extends({disabled:0===s,size:"tiny"},(0,o.bindTrigger)(l),{onClick:a=>{0!==s&&((0,o.bindTrigger)(l).onClick(a),t(e),(0,c.trackGlobalClasses)({event:"classUsageClicked",classId:e}))}}),a.createElement(r.CurrentLocationIcon,{fontSize:"tiny"})))),a.createElement(o.Box,null,a.createElement(o.Popover,_extends({anchorOrigin:{vertical:"center",horizontal:"right"},transformOrigin:{vertical:15,horizontal:-50}},(0,o.bindPopover)(l),{onClose:()=>{(0,o.bindPopover)(l).onClose(),t("")}}),a.createElement(d.CssClassUsagePopover,{onClose:l.close,"aria-label":"css-class-usage-popover",cssClassID:e}))))},u=(0,o.styled)(o.IconButton)(({theme:e})=>({"&.Mui-disabled":{pointerEvents:"auto","&:hover":{color:e.palette.action.disabled}},height:"22px",width:"22px"})),TooltipWrapper=({children:e,total:t})=>a.createElement(o.Tooltip,{disableInteractive:!0,placement:"top",title:`${(0,l.__)("Show {{number}} {{locations}}","elementor").replace("{{number}}",t.toString()).replace("{{locations}}",1===t?(0,l.__)("location","elementor"):(0,l.__)("locations","elementor"))}`},a.createElement("span",null,e)),InfoAlertMessage=({children:e})=>a.createElement(o.Infotip,{disableInteractive:!0,placement:"top",color:"secondary",content:a.createElement(n.InfoAlert,{sx:{mt:1}},(0,l.__)("This class isn’t being used yet.","elementor"))},a.createElement("span",null,e))},"./packages/packages/core/editor-global-classes/src/components/css-class-usage/components/index.ts":function(e,t,s){s.r(t),s.d(t,{CssClassUsagePopover:function(){return a.CssClassUsagePopover},CssClassUsageTrigger:function(){return n.CssClassUsageTrigger}});var a=s("./packages/packages/core/editor-global-classes/src/components/css-class-usage/components/css-class-usage-popover.tsx"),n=s("./packages/packages/core/editor-global-classes/src/components/css-class-usage/components/css-class-usage-trigger.tsx")},"./packages/packages/core/editor-global-classes/src/components/css-class-usage/types.ts":function(e,t,s){s.r(t),s.d(t,{QUERY_KEY:function(){return a}});const a="css-classes-usage"},"./packages/packages/core/editor-global-classes/src/components/css-class-usage/utils.ts":function(e,t,s){s.r(t),s.d(t,{transformData:function(){return transformData}});const transformData=e=>Object.entries(e).reduce((e,[t,s])=>(e[t]={content:s||[],total:s.reduce((e,t)=>e+(t?.total||0),0)},e),{})},"./packages/packages/core/editor-global-classes/src/components/global-styles-import-listener.tsx":function(e,t,s){s.r(t),s.d(t,{GlobalStylesImportListener:function(){return GlobalStylesImportListener}});var a=s("react"),n=s("@elementor/editor-canvas"),r=s("@elementor/store"),o=s("./packages/packages/core/editor-global-classes/src/load-document-classes.ts");function GlobalStylesImportListener(){const e=(0,r.__useDispatch)();return(0,a.useEffect)(()=>{const handleGlobalStylesImported=()=>{(0,o.loadCurrentDocumentClasses)()};return window.addEventListener(n.GLOBAL_STYLES_IMPORTED_EVENT,handleGlobalStylesImported),()=>{window.removeEventListener(n.GLOBAL_STYLES_IMPORTED_EVENT,handleGlobalStylesImported)}},[e]),null}},"./packages/packages/core/editor-global-classes/src/components/open-panel-from-url.tsx":function(e,t,s){s.r(t),s.d(t,{OpenPanelFromUrl:function(){return OpenPanelFromUrl}});var a=s("react"),n=s("@elementor/editor-v1-adapters"),r=s("./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-panel.tsx");const o="active-panel",l="global-classes-manager",i="panel/elements";function OpenPanelFromUrl(){const{open:e}=(0,r.usePanelActions)(),t=(0,a.useRef)(!1);return(0,a.useEffect)(()=>{if(new URLSearchParams(window.location.search).get(o)!==l)return;return(0,n.__privateListenTo)((0,n.routeOpenEvent)(i),()=>{t.current||(t.current=!0,requestAnimationFrame(()=>{e()}))})},[e]),null}},"./packages/packages/core/editor-global-classes/src/components/populate-store.tsx":function(e,t,s){s.r(t),s.d(t,{PopulateStore:function(){return PopulateStore}});var a=s("react"),n=s("@elementor/editor-v1-adapters"),r=s("./packages/packages/core/editor-global-classes/src/load-document-classes.ts");function PopulateStore(){return(0,a.useEffect)(()=>{(0,r.loadCurrentDocumentClasses)(),(0,n.registerDataHook)("after","editor/documents/attach-preview",async()=>{await(0,r.loadCurrentDocumentClasses)()})},[]),null}},"./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/active-filters.tsx":function(e,t,s){s.r(t),s.d(t,{ActiveFilters:function(){return ActiveFilters}});var a=s("react"),n=s("@elementor/ui"),r=s("@wordpress/i18n"),o=s("./packages/packages/core/editor-global-classes/src/utils/tracking.ts"),l=s("./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx"),i=s("./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/clear-icon-button.tsx"),c=s("./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/filter-list.tsx");const ActiveFilters=()=>{const{filters:{filters:e,setFilters:t}}=(0,l.useSearchAndFilters)(),s=Object.keys(e).filter(t=>e[t]),u=s.length>0;return a.createElement(n.Stack,{direction:"row",alignItems:"center",justifyContent:"space-between"},a.createElement(n.Stack,{direction:"row",gap:.5,alignItems:"center",flexWrap:"wrap"},s.map(e=>a.createElement(n.Chip,{key:e,label:c.filterConfig[e],onDelete:()=>(e=>{t(t=>({...t,[e]:!1})),(0,o.trackGlobalClasses)({event:"classManagerFilterUsed",action:"remove",type:e,trigger:"header"})})(e),sx:d,size:"tiny"}))),u&&a.createElement(i.ClearIconButton,{trigger:"header",tooltipText:(0,r.__)("Clear Filters","elementor"),sx:{margin:"0 0 auto auto"}}))},d={"& .MuiChip-deleteIcon":{display:"none",transition:"opacity 0.2s"},"&:hover .MuiChip-deleteIcon":{display:"block"}}},"./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/clear-icon-button.tsx":function(e,t,s){s.r(t),s.d(t,{ClearIconButton:function(){return ClearIconButton}});var a=s("react"),n=s("@elementor/icons"),r=s("@elementor/ui"),o=s("./packages/packages/core/editor-global-classes/src/utils/tracking.ts"),l=s("./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx");const ClearIconButton=({tooltipText:e,sx:t,trigger:s})=>{const{filters:{onClearFilter:c}}=(0,l.useSearchAndFilters)();return a.createElement(r.Tooltip,{title:e,placement:"top",disableInteractive:!0},a.createElement(r.Box,null,a.createElement(i,{"aria-label":e,size:"tiny",onClick:()=>{c(s),(0,o.trackGlobalClasses)({event:"classManagerFilterCleared",trigger:s})},sx:t},a.createElement(n.BrushBigIcon,{fontSize:"tiny"}))))},i=(0,r.styled)(r.IconButton)(({theme:e})=>({"&.Mui-disabled":{pointerEvents:"auto","&:hover":{color:e.palette.action.disabled}}}))},"./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/css-class-filter.tsx":function(e,t,s){s.r(t),s.d(t,{CssClassFilter:function(){return CssClassFilter}});var a=s("react"),n=s("@elementor/editor-ui"),r=s("@elementor/icons"),o=s("@elementor/ui"),l=s("@wordpress/i18n"),i=s("./packages/packages/core/editor-global-classes/src/utils/tracking.ts"),c=s("./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx"),d=s("./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/clear-icon-button.tsx"),u=s("./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/filter-list.tsx");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var a in s)({}).hasOwnProperty.call(s,a)&&(e[a]=s[a])}return e},_extends.apply(null,arguments)}const CssClassFilter=()=>{const{filters:{filters:e}}=(0,c.useSearchAndFilters)(),t=(0,o.usePopupState)({variant:"popover",disableAutoFocus:!0});(0,a.useEffect)(()=>{t.isOpen&&(0,i.trackGlobalClasses)({event:"classManagerFiltersOpened"})},[t.isOpen]);const s=Object.values(e).some(e=>e);return a.createElement(a.Fragment,null,a.createElement(o.Tooltip,{title:(0,l.__)("Filters","elementor"),placement:"top"},a.createElement(o.ToggleButton,_extends({value:"filter",size:"tiny",selected:t.isOpen},(0,o.bindToggle)(t)),a.createElement(r.FilterIcon,{fontSize:"tiny"}))),a.createElement(o.Popover,_extends({sx:{maxWidth:"344px"},anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:-21}},(0,o.bindPopover)(t)),a.createElement(n.PopoverHeader,{actions:s?[a.createElement(d.ClearIconButton,{trigger:"menu",key:"clear-all-button",tooltipText:(0,l.__)("Clear all","elementor")})]:[],onClose:t.close,title:(0,l.__)("Filters","elementor"),icon:a.createElement(r.FilterIcon,{fontSize:"tiny"})}),a.createElement(o.Divider,{sx:{borderWidth:"1px 0 0 0"}}),a.createElement(n.PopoverBody,{width:344,height:125},a.createElement(u.FilterList,null))))}},"./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/filter/filter-list.tsx":function(e,t,s){s.r(t),s.d(t,{FilterList:function(){return FilterList},filterConfig:function(){return c}});var a=s("react"),n=s("@elementor/ui"),r=s("@wordpress/i18n"),o=s("./packages/packages/core/editor-global-classes/src/hooks/use-filtered-css-class-usage.tsx"),l=s("./packages/packages/core/editor-global-classes/src/utils/tracking.ts"),i=s("./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx");const c={unused:(0,r.__)("Unused","elementor"),empty:(0,r.__)("Empty","elementor"),onThisPage:(0,r.__)("On this page","elementor")},FilterList=()=>{const{filters:{filters:e,setFilters:t}}=(0,i.useSearchAndFilters)(),s=(0,o.useFilteredCssClassUsage)(),handleOnClick=s=>{t(e=>({...e,[s]:!e[s]})),(0,l.trackGlobalClasses)({event:"classManagerFilterUsed",action:e[s]?"remove":"apply",type:s,trigger:"menu"})};return a.createElement(n.MenuList,null,a.createElement(n.MenuItem,{onClick:()=>handleOnClick("unused")},a.createElement(LabeledCheckbox,{label:c.unused,checked:e.unused,suffix:a.createElement(n.Chip,{size:"tiny",sx:{ml:"auto"},label:s.unused.length})})),a.createElement(n.MenuItem,{onClick:()=>handleOnClick("empty")},a.createElement(LabeledCheckbox,{label:c.empty,checked:e.empty,suffix:a.createElement(n.Chip,{size:"tiny",sx:{ml:"auto"},label:s.empty.length})})),a.createElement(n.MenuItem,{onClick:()=>handleOnClick("onThisPage")},a.createElement(LabeledCheckbox,{label:c.onThisPage,checked:e.onThisPage,suffix:a.createElement(n.Chip,{size:"tiny",sx:{ml:"auto"},label:s.onThisPage.length})})))},LabeledCheckbox=({label:e,suffix:t,checked:s})=>a.createElement(n.Stack,{direction:"row",alignItems:"center",gap:.5,flex:1},a.createElement(n.Checkbox,{size:"small",checked:s,sx:{padding:0,color:"text.tertiary","&.Mui-checked":{color:"text.tertiary"}}}),a.createElement(n.Typography,{variant:"caption",sx:{color:"text.secondary"}},e),t)},"./packages/packages/core/editor-global-classes/src/components/search-and-filter/components/search/class-manager-search.tsx":function(e,t,s){s.r(t),s.d(t,{ClassManagerSearch:function(){return ClassManagerSearch}});var a=s("react"),n=s("@elementor/icons"),r=s("@elementor/ui"),o=s("@wordpress/i18n"),l=s("./packages/packages/core/editor-global-classes/src/utils/tracking.ts"),i=s("./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx");const ClassManagerSearch=()=>{const{search:{inputValue:e,handleChange:t}}=(0,i.useSearchAndFilters)();return a.createElement(r.Stack,{direction:"row",gap:.5,sx:{width:"100%"}},a.createElement(r.Box,{sx:{flexGrow:1}},a.createElement(r.TextField,{role:"search",fullWidth:!0,size:"tiny",value:e,onFocus:()=>{(0,l.trackGlobalClasses)({event:"classManagerSearched"})},placeholder:(0,o.__)("Search","elementor"),onChange:e=>t(e.target.value),InputProps:{startAdornment:a.createElement(r.InputAdornment,{position:"start"},a.createElement(n.SearchIcon,{fontSize:"tiny"}))}})))}},"./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx":function(e,t,s){s.r(t),s.d(t,{SearchAndFilterProvider:function(){return SearchAndFilterProvider},useSearchAndFilters:function(){return useSearchAndFilters}});var a=s("react"),n=s("@elementor/utils");const r=(0,a.createContext)(void 0),o={empty:!1,onThisPage:!1,unused:!1},SearchAndFilterProvider=({children:e})=>{const[t,s]=(0,a.useState)(o),{debouncedValue:l,inputValue:i,handleChange:c}=(0,n.useDebounceState)({delay:300,initialValue:(()=>{const e=localStorage.getItem("elementor-global-classes-search");return e?(localStorage.removeItem("elementor-global-classes-search"),e):""})()});return a.createElement(r.Provider,{value:{search:{debouncedValue:l,inputValue:i,handleChange:c,onClearSearch:()=>{c("")}},filters:{filters:t,setFilters:s,onClearFilter:()=>{s(o)}}}},e)},useSearchAndFilters=()=>{const e=(0,a.useContext)(r);if(!e)throw new Error("useSearchContext must be used within a SearchContextProvider");return e}},"./packages/packages/core/editor-global-classes/src/errors.ts":function(e,t,s){s.r(t),s.d(t,{GlobalClassLabelAlreadyExistsError:function(){return r},GlobalClassNotFoundError:function(){return n},GlobalClassTrackingError:function(){return o}});var a=s("@elementor/utils");const n=(0,a.createError)({code:"global_class_not_found",message:"Global class not found."}),r=(0,a.createError)({code:"global_class_label_already_exists",message:"Class with this name already exists."}),o=(0,a.createError)({code:"global_class_tracking_error",message:"Error tracking global classes event."})},"./packages/packages/core/editor-global-classes/src/global-classes-styles-provider.ts":function(e,t,s){s.r(t),s.d(t,{GLOBAL_CLASSES_PROVIDER_KEY:function(){return p},globalClassesStylesProvider:function(){return m}});var a=s("@elementor/editor-styles"),n=s("@elementor/editor-styles-repository"),r=s("@elementor/store"),o=s("@wordpress/i18n"),l=s("./packages/packages/core/editor-global-classes/src/capabilities.ts"),i=s("./packages/packages/core/editor-global-classes/src/errors.ts"),c=s("./packages/packages/core/editor-global-classes/src/load-existing-classes.ts"),d=s("./packages/packages/core/editor-global-classes/src/store.ts"),u=s("./packages/packages/core/editor-global-classes/src/utils/tracking.ts");const p="global-classes",g=/^global-([0-9]+-)?(preview|frontend)-[a-zA-Z_-]+-css$/,m=(0,n.createStylesProvider)({key:p,priority:30,limit:5e3,isPregeneratedLink:({id:e})=>g.test(e),labels:{singular:(0,o.__)("class","elementor"),plural:(0,o.__)("classes","elementor")},subscribe:e=>subscribeWithStates(e),capabilities:(0,l.getCapabilities)(),actions:{all:()=>(0,d.selectOrderedClasses)((0,r.__getState)()),get:e=>{const t=(0,r.__getState)(),s=(0,d.selectIsClassFetched)(t,e),a=(0,d.selectClass)(t,e);if(s||a)return a;(0,c.loadExistingClasses)([e]);const n=(0,d.selectClassLabels)(t)[e]??e;return(0,d.placeholderDefinition)(e,n)},resolveCssName:e=>{const t=(0,r.__getState)(),s=(0,d.selectClass)(t,e);if(s)return s.label;return(0,d.selectClassLabels)(t)[e]??e},create:(e,t=[],s)=>{const n=Object.entries((0,d.selectClassLabels)((0,r.__getState)()));if(n.map(([,e])=>e).includes(e))throw new i.GlobalClassLabelAlreadyExistsError({context:{label:e}});const o=n.map(([e])=>e);return s||(s=(0,a.generateId)("g-",o)),(0,r.__dispatch)(d.slice.actions.add({id:s,type:"class",label:e,variants:t})),s},update:e=>{(0,r.__dispatch)(d.slice.actions.update({style:e}))},delete:e=>{(0,r.__dispatch)(d.slice.actions.delete(e))},updateProps:e=>{(0,r.__dispatch)(d.slice.actions.updateProps({id:e.id,meta:e.meta,props:e.props,mode:e.mode}))},updateCustomCss:e=>{(0,r.__dispatch)(d.slice.actions.updateProps({id:e.id,meta:e.meta,custom_css:e.custom_css,props:{}}))},tracking:e=>{(0,u.trackGlobalClasses)(e).catch(e=>{throw new i.GlobalClassTrackingError({cause:e})})}}}),subscribeWithStates=e=>{let t=(0,d.selectData)((0,r.__getState)());return(0,r.__subscribeWithSelector)(e=>(0,d.selectData)(e),s=>{e(t.items,s.items),t=s})}},"./packages/packages/core/editor-global-classes/src/hooks/use-classes-order.ts":function(e,t,s){s.r(t),s.d(t,{useClassesOrder:function(){return useClassesOrder}});var a=s("@elementor/store"),n=s("./packages/packages/core/editor-global-classes/src/store.ts");const useClassesOrder=()=>(0,a.__useSelector)(n.selectOrder)},"./packages/packages/core/editor-global-classes/src/hooks/use-css-class-usage-by-id.ts":function(e,t,s){s.r(t),s.d(t,{useCssClassUsageByID:function(){return useCssClassUsageByID}});var a=s("./packages/packages/core/editor-global-classes/src/hooks/use-css-class-usage.ts");const n={total:0,content:[]},useCssClassUsageByID=e=>{const{data:t,...s}=(0,a.useCssClassUsage)();return{...s,data:t?.[e]??n}}},"./packages/packages/core/editor-global-classes/src/hooks/use-css-class-usage.ts":function(e,t,s){s.r(t),s.d(t,{useCssClassUsage:function(){return useCssClassUsage}});var a=s("@elementor/query"),n=s("./packages/packages/core/editor-global-classes/service/css-class-usage-service.ts"),r=s("./packages/packages/core/editor-global-classes/src/components/css-class-usage/types.ts");const useCssClassUsage=()=>(0,a.useQuery)({queryKey:[r.QUERY_KEY],queryFn:n.fetchCssClassUsage,refetchOnMount:!1,refetchOnWindowFocus:!0})},"./packages/packages/core/editor-global-classes/src/hooks/use-dirty-state.ts":function(e,t,s){s.r(t),s.d(t,{useDirtyState:function(){return useDirtyState}});var a=s("@elementor/store"),n=s("./packages/packages/core/editor-global-classes/src/store.ts");const useDirtyState=()=>(0,a.__useSelector)(n.selectIsDirty)},"./packages/packages/core/editor-global-classes/src/hooks/use-empty-css-class.ts":function(e,t,s){s.r(t),s.d(t,{useAllCssClassesIDs:function(){return useAllCssClassesIDs},useEmptyCssClass:function(){return useEmptyCssClass}});var a=s("@elementor/store"),n=s("./packages/packages/core/editor-global-classes/src/store.ts");const useEmptyCssClass=()=>(0,a.__useSelector)(n.selectEmptyCssClass),useAllCssClassesIDs=()=>{const e=(0,a.__useSelector)(n.selectGlobalClasses);return Object.keys(e)}},"./packages/packages/core/editor-global-classes/src/hooks/use-filtered-css-class-usage.tsx":function(e,t,s){s.r(t),s.d(t,{useFilteredCssClassUsage:function(){return useFilteredCssClassUsage}});var a=s("react"),n=s("@elementor/editor-documents"),r=s("./packages/packages/core/editor-global-classes/src/hooks/use-css-class-usage.ts"),o=s("./packages/packages/core/editor-global-classes/src/hooks/use-empty-css-class.ts");const l={empty:[],onThisPage:[],unused:[]},useFilteredCssClassUsage=()=>{const e=(0,n.__useActiveDocument)(),t=(0,o.useEmptyCssClass)(),{data:s,isLoading:i}=(0,r.useCssClassUsage)(),c=(0,o.useAllCssClassesIDs)(),d=(0,a.useMemo)(()=>t.map(({id:e})=>e),[t]),u=(0,a.useMemo)(()=>s&&e?((e,t)=>{const s=[];for(const a in e)e[a].content.forEach(e=>{+e.pageId===t&&s.push(a)});return s})(s,e.id):[],[s,e]),p=(0,a.useMemo)(()=>s?((e,t)=>{const s=new Set(e);return t.filter(e=>!s.has(e))})(Object.keys(s),c):[],[s,c]);return!i&&s&&e?{onThisPage:u,unused:p,empty:d}:l}},"./packages/packages/core/editor-global-classes/src/hooks/use-filters.ts":function(e,t,s){s.r(t),s.d(t,{useFilters:function(){return useFilters}});var a=s("react"),n=s("./packages/packages/core/editor-global-classes/src/components/search-and-filter/context.tsx"),r=s("./packages/packages/core/editor-global-classes/src/hooks/use-filtered-css-class-usage.tsx");const useFilters=()=>{const{filters:{filters:e}}=(0,n.useSearchAndFilters)(),t=(0,r.useFilteredCssClassUsage)();return(0,a.useMemo)(()=>{const s=Object.entries(e).filter(([,e])=>e);return 0===s.length?null:s.reduce((e,[s],a)=>{const n=t[s]||[];return 0===a?n:e.filter(e=>n.includes(e))},[])},[e,t])}},"./packages/packages/core/editor-global-classes/src/hooks/use-ordered-classes.ts":function(e,t,s){s.r(t),s.d(t,{useOrderedClasses:function(){return useOrderedClasses}});var a=s("@elementor/store"),n=s("./packages/packages/core/editor-global-classes/src/store.ts");const useOrderedClasses=()=>(0,a.__useSelector)(n.selectOrderedClasses)},"./packages/packages/core/editor-global-classes/src/hooks/use-prefetch-css-class-usage.ts":function(e,t,s){s.r(t),s.d(t,{PrefetchCssClassUsage:function(){return PrefetchCssClassUsage},usePrefetchCssClassUsage:function(){return usePrefetchCssClassUsage}});var a=s("@elementor/query"),n=s("./packages/packages/core/editor-global-classes/service/css-class-usage-service.ts"),r=s("./packages/packages/core/editor-global-classes/src/components/css-class-usage/types.ts");function usePrefetchCssClassUsage(){const e=(0,a.useQueryClient)();return{prefetchClassesUsage:()=>e.prefetchQuery({queryKey:[r.QUERY_KEY],queryFn:n.fetchCssClassUsage})}}const PrefetchCssClassUsage=()=>{const{prefetchClassesUsage:e}=usePrefetchCssClassUsage();return e(),null}},"./packages/packages/core/editor-global-classes/src/init.ts":function(e,t,s){s.r(t),s.d(t,{init:function(){return init}});var a=s("@elementor/editor"),n=s("@elementor/editor-editing-panel"),r=s("@elementor/editor-mcp"),o=s("@elementor/editor-panels"),l=s("@elementor/editor-styles-repository"),i=s("@elementor/editor-v1-adapters"),c=s("@elementor/store"),d=s("./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-button.tsx"),u=s("./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-panel.tsx"),p=s("./packages/packages/core/editor-global-classes/src/components/convert-local-class-to-global-class.tsx"),g=s("./packages/packages/core/editor-global-classes/src/components/global-styles-import-listener.tsx"),m=s("./packages/packages/core/editor-global-classes/src/components/open-panel-from-url.tsx"),h=s("./packages/packages/core/editor-global-classes/src/components/populate-store.tsx"),f=s("./packages/packages/core/editor-global-classes/src/global-classes-styles-provider.ts"),b=s("./packages/packages/core/editor-global-classes/src/hooks/use-prefetch-css-class-usage.ts"),y=s("./packages/packages/core/editor-global-classes/src/mcp-integration/index.ts"),v=s("./packages/packages/core/editor-global-classes/src/store.ts"),k=s("./packages/packages/core/editor-global-classes/src/sync-with-document.tsx");function init(){(0,c.__registerSlice)(v.slice),(0,i.isExperimentActive)("e_editor_design_system_panel")||(0,o.__registerPanel)(u.panel),l.stylesRepository.register(f.globalClassesStylesProvider),(0,a.injectIntoLogic)({id:"global-classes-populate-store",component:h.PopulateStore}),(0,a.injectIntoLogic)({id:"global-classes-sync-with-document",component:k.SyncWithDocumentSave}),(0,a.injectIntoLogic)({id:"global-classes-import-listener",component:g.GlobalStylesImportListener}),(0,a.injectIntoLogic)({id:"global-classes-prefetch-css-class-usage",component:b.PrefetchCssClassUsage}),(0,i.isExperimentActive)("e_editor_design_system_panel")||(0,a.injectIntoLogic)({id:"global-classes-open-panel-from-url",component:m.OpenPanelFromUrl}),(0,n.injectIntoCssClassConvert)({id:"global-classes-convert-from-local-class",component:p.ConvertLocalClassToGlobalClass}),(0,n.injectIntoClassSelectorActions)({id:"global-classes-manager-button",component:d.ClassManagerButton}),(0,n.registerStyleProviderToColors)(f.GLOBAL_CLASSES_PROVIDER_KEY,{name:"global",getThemeColor:e=>e.palette.global.dark}),(0,y.initMcpIntegration)((0,r.getMCPByDomain)("classes",{instructions:"MCP server for management of Elementor global classes",docs:"Everything related to V4 ( Atomic ) global classes.\n# Global classes\n- Create/update/delete global classes\n- Get list of global classes\n- Get details of a global class\n"}),(0,r.getMCPByDomain)("canvas"))}},"./packages/packages/core/editor-global-classes/src/load-document-classes.ts":function(e,t,s){s.r(t),s.d(t,{addDocumentClasses:function(){return addDocumentClasses},loadCurrentDocumentClasses:function(){return loadCurrentDocumentClasses},styleDefinitionsMapWithoutNull:function(){return styleDefinitionsMapWithoutNull}});var a=s("@elementor/editor-documents"),n=s("@elementor/store"),r=s("./packages/packages/core/editor-global-classes/src/api.ts"),o=s("./packages/packages/core/editor-global-classes/src/store.ts"),l=s("./packages/packages/core/editor-global-classes/src/utils/create-labels-for-classes.ts");function styleDefinitionsMapWithoutNull(e){return Object.fromEntries(Object.entries(e).filter(e=>null!==e[1]))}async function loadCurrentDocumentClasses(){const e=(await r.apiClient.all("preview")).data.data,t=(0,l.createLabelsForClasses)(e),s=e.map(e=>e.id);!function resetGlobalClassesState(e,t){(0,n.__dispatch)(o.slice.actions.load({preview:{items:{},order:e},frontend:{items:{},order:e},classLabels:t}))}(s,t);const i=(0,a.getCurrentDocument)()?.id;if(!i)return;const[c,d]=await Promise.all([r.apiClient.getStylesForPost(i,"preview"),r.apiClient.getStylesForPost(i,"frontend")]),u=styleDefinitionsMapWithoutNull(c.data.data),p=styleDefinitionsMapWithoutNull(d.data.data);(0,n.__dispatch)(o.slice.actions.load({preview:{items:u,order:s},frontend:{items:p,order:s},classLabels:t}))}async function addDocumentClasses(e){const[t,s]=await Promise.all([r.apiClient.getStylesForPost(e,"preview"),r.apiClient.getStylesForPost(e,"frontend")]),a=styleDefinitionsMapWithoutNull(t.data.data),l=styleDefinitionsMapWithoutNull(s.data.data);(0,n.__dispatch)(o.slice.actions.mergeExistingClasses({preview:a,frontend:l}))}},"./packages/packages/core/editor-global-classes/src/load-existing-classes.ts":function(e,t,s){s.r(t),s.d(t,{loadExistingClasses:function(){return loadExistingClasses}});var a=s("@elementor/store"),n=s("./packages/packages/core/editor-global-classes/src/api.ts"),r=s("./packages/packages/core/editor-global-classes/src/load-document-classes.ts"),o=s("./packages/packages/core/editor-global-classes/src/store.ts");let l=null;const i=new Set;async function loadExistingClasses(e){const t=(0,o.selectGlobalClasses)((0,a.__getState)()),s=e.filter(e=>!(e in t));if(0!==s.length){if(s.forEach(e=>i.add(e)),l)return await l,loadExistingClasses(e);l=async function fetchAndMergeClasses(){const e=Array.from(i);if(i.clear(),0===e.length)return;const t=await n.apiClient.getStylesByIds(e,"preview"),s=await n.apiClient.getStylesByIds(e,"frontend"),l=(0,r.styleDefinitionsMapWithoutNull)(t.data.data),c=(0,r.styleDefinitionsMapWithoutNull)(s.data.data);(0,a.__dispatch)(o.slice.actions.mergeExistingClasses({preview:l,frontend:c}))}();try{await l}finally{l=null}}}},"./packages/packages/core/editor-global-classes/src/mcp-integration/apply-global-class-guide-prompt.ts":function(e,t,s){s.r(t),s.d(t,{APPLY_GLOBAL_CLASS_GUIDE_URI:function(){return n},generateApplyGlobalClassGuidePrompt:function(){return generateApplyGlobalClassGuidePrompt}});var a=s("@elementor/editor-mcp");const n="elementor://global-classes/tools/apply-global-class-guide",generateApplyGlobalClassGuidePrompt=()=>{const e=(0,a.toolPrompts)("apply-global-class");return e.description("Apply a global class to an element, enabling consistent styling through your design system."),e.instruction('## When to use this tool:\n**ALWAYS use this IMMEDIATELY AFTER building compositions** to apply the global classes you created beforehand:\n- After using "build-compositions" tool, apply semantic classes to the created elements\n- When applying consistent typography styles (heading-primary, text-body, etc.)\n- When applying theme colors or brand styles (bg-brand, button-cta, etc.)\n- When ensuring spacing consistency (spacing-section-large, etc.)\n\n**DO NOT use this tool** for:\n- Elements that don\'t share styles with other elements (use inline styles instead)\n- Layout-specific properties (those should remain inline in stylesConfig)'),e.instruction("## Prerequisites:\n- **REQUIRED**: Get the list of available global classes from 'elementor://global-classes' resource\n- **REQUIRED**: Get element IDs from the composition XML returned by \"build-compositions\" tool\n- Ensure you have the most up-to-date list of classes applied to the element to avoid duplicates\n- Make sure you have the correct class ID that you want to apply"),e.instruction('## Best Practices:\n1. Apply multiple classes to a single element if needed (typography + color + spacing)\n2. After applying, the tool will remind you to remove duplicate inline styles from elementConfig\n3. Classes should describe purpose, not implementation (e.g., "heading-primary" not "big-red-text")'),e.prompt()}},"./packages/packages/core/editor-global-classes/src/mcp-integration/classes-resource.ts":function(e,t,s){s.r(t),s.d(t,{GLOBAL_CLASSES_URI:function(){return o},initClassesResource:function(){return initClassesResource}});var a=s("@elementor/store"),n=s("./packages/packages/core/editor-global-classes/src/global-classes-styles-provider.ts"),r=s("./packages/packages/core/editor-global-classes/src/store.ts");const o="elementor://global-classes",l="elementor-global-classes",updateLocalStorageCache=()=>{const e=(0,r.selectOrderedClasses)((0,a.__getState)());localStorage.setItem(l,JSON.stringify(e))},initClassesResource=(e,t)=>{[t,e].forEach(e=>{const{sendResourceUpdated:t,resource:s,waitForReady:a}=e;s("global-classes",o,{description:"Global classes list."},async()=>({contents:[{uri:o,text:localStorage[l]??"[]"}]})),a().then(()=>{updateLocalStorageCache(),n.globalClassesStylesProvider.subscribe(()=>{updateLocalStorageCache(),t({uri:o})})})})}},"./packages/packages/core/editor-global-classes/src/mcp-integration/index.ts":function(e,t,s){s.r(t),s.d(t,{initMcpIntegration:function(){return initMcpIntegration}});var a=s("./packages/packages/core/editor-global-classes/src/mcp-integration/classes-resource.ts"),n=s("./packages/packages/core/editor-global-classes/src/mcp-integration/mcp-apply-unapply-global-classes.ts"),r=s("./packages/packages/core/editor-global-classes/src/mcp-integration/mcp-get-global-class-usages.ts"),o=s("./packages/packages/core/editor-global-classes/src/mcp-integration/mcp-manage-global-classes.ts");const initMcpIntegration=(e,t)=>{(0,n.default)(e),(0,r.default)(e),(0,o.initManageGlobalClasses)(e),(0,a.initClassesResource)(e,t)}},"./packages/packages/core/editor-global-classes/src/mcp-integration/mcp-apply-unapply-global-classes.ts":function(e,t,s){s.r(t),s.d(t,{default:function(){return initMcpApplyUnapplyGlobalClasses}});var a=s("@elementor/editor-editing-panel"),n=s("@elementor/schema"),r=s("./packages/packages/core/editor-global-classes/src/mcp-integration/apply-global-class-guide-prompt.ts"),o=s("./packages/packages/core/editor-global-classes/src/mcp-integration/classes-resource.ts");function initMcpApplyUnapplyGlobalClasses(e){const{addTool:t,resource:s}=e,l=(0,r.generateApplyGlobalClassGuidePrompt)();s("apply-global-class-guide",r.APPLY_GLOBAL_CLASS_GUIDE_URI,{description:"Workflow, prerequisites, and best practices for apply-global-class",mimeType:"text/plain",title:"Apply global class tool guide"},async e=>({contents:[{mimeType:"text/plain",text:l,uri:e.href}]})),t({schema:{classId:n.z.string().describe("The ID of the class to apply"),elementId:n.z.string().describe("The ID of the element to which the class will be applied")},outputSchema:{result:n.z.string().describe("Result message indicating the success of the apply operation"),llm_instructions:n.z.string().describe("Instructions what to do next, Important to follow these instructions!")},name:"apply-global-class",modelPreferences:{intelligencePriority:.7,speedPriority:.8},description:`Apply a global class to an element for shared design-system styling. Read the full guide at [${r.APPLY_GLOBAL_CLASS_GUIDE_URI}].`,requiredResources:[{description:"Apply global class tool guide",uri:r.APPLY_GLOBAL_CLASS_GUIDE_URI},{description:"Global classes list",uri:o.GLOBAL_CLASSES_URI}],handler:async e=>{const{classId:t,elementId:s}=e,n=(0,a.doGetAppliedClasses)(s);return(0,a.doApplyClasses)(s,[...n,t]),{llm_instructions:"Please check the element-configuration, find DUPLICATES in the style schema that are in the class, and remove them",result:`Class ${t} applied to element ${s} successfully.`}}}),t({name:"unapply-global-class",schema:{classId:n.z.string().describe("The ID of the class to unapply"),elementId:n.z.string().describe("The ID of the element from which the class will be unapplied")},outputSchema:{result:n.z.string().describe("Result message indicating the success of the unapply operation")},modelPreferences:{intelligencePriority:.7,speedPriority:.8},description:`Unapply a global class from an element by class ID. Resolve class names to IDs via [${o.GLOBAL_CLASSES_URI}].`,requiredResources:[{description:"Global classes list",uri:o.GLOBAL_CLASSES_URI}],handler:async e=>{const{classId:t,elementId:s}=e;if(!(0,a.doUnapplyClass)(s,t))throw new Error(`Class ${t} is not applied to element ${s}, cannot unapply it.`);return{result:`Class ${t} unapplied from element ${s} successfully.`}}})}},"./packages/packages/core/editor-global-classes/src/mcp-integration/mcp-get-global-class-usages.ts":function(e,t,s){s.r(t),s.d(t,{default:function(){return initMcpApplyGetGlobalClassUsages}});var a=s("@elementor/schema"),n=s("./packages/packages/core/editor-global-classes/service/css-class-usage-service.ts"),r=s("./packages/packages/core/editor-global-classes/src/mcp-integration/classes-resource.ts");function initMcpApplyGetGlobalClassUsages(e){const{addTool:t}=e,s={usages:a.z.array(a.z.object({classId:a.z.string().describe('The ID of the class, not visible to the user. To retrieve the name of the class, use the "list-global-classes" tool'),usages:a.z.array(a.z.object({pageId:a.z.string().describe("The ID of the page where the class is used"),title:a.z.string().describe("The title of the page where the class is used"),total:a.z.number().describe("The number of times the class is used on this page"),elements:a.z.array(a.z.string()).describe("List of element IDs using this class on the page")}))}))};t({name:"get-global-class-usages",modelPreferences:{intelligencePriority:.6,speedPriority:.8},description:"Retrieve usages of global classes across all Elementor pages. Heavy operation — scans every page in the site.\n\n## When to use:\n- Before deleting or radically changing a class — to understand cross-page side effects and decide whether to consult the user.\n- To identify unused global classes for cleanup.\n\n## When NOT to use:\n- To list global classes themselves — use the global-classes resource instead (this tool returns usages, not the class list).",requiredResources:[{description:"Global classes list",uri:r.GLOBAL_CLASSES_URI}],outputSchema:s,handler:async()=>{const e=await(0,n.fetchCssClassUsage)(),t={usages:[]};return Object.entries(e).forEach(([e,s])=>{const a={classId:e,usages:[]};if("number"!=typeof s){const{content:e}=s;e.forEach(e=>{a.usages.push({pageId:String(e.pageId),title:e.title,total:e.total,elements:e.elements})}),t.usages.push(a)}}),t}})}},"./packages/packages/core/editor-global-classes/src/mcp-integration/mcp-manage-global-classes.ts":function(e,t,s){s.r(t),s.d(t,{initManageGlobalClasses:function(){return initManageGlobalClasses}});var a=s("@elementor/editor-canvas"),n=s("@elementor/editor-props"),r=s("@elementor/editor-styles"),o=s("@elementor/schema"),l=s("./packages/packages/core/editor-global-classes/src/global-classes-styles-provider.ts"),i=s("./packages/packages/core/editor-global-classes/src/save-global-classes.tsx"),c=s("./packages/packages/core/editor-global-classes/src/mcp-integration/classes-resource.ts");const d={action:o.z.enum(["create","modify","delete"]).describe("Operation to perform"),classId:o.z.string().optional().describe("Global class ID (required for modify). Get from elementor://global-classes resource."),globalClassName:o.z.string().optional().describe("Global class name (required for create)"),props:o.z.object({default:o.z.record(o.z.any()).describe('key-value of style-schema PropValues. Available properties at dynamic resource "elementor://styles/schema/{property-name}"'),hover:o.z.record(o.z.any()).describe("key-value of style-schema PropValues, for :hover css state. optional").optional(),focus:o.z.record(o.z.any()).describe("key-value of style-schema PropValues, for :focus css state. optional").optional(),active:o.z.record(o.z.any()).describe("key-value of style-schema PropValues, for :active css state. optional").optional()}),breakpoint:o.z.nullable(o.z.string().describe("Responsive breakpoint name for styles. Defaults to desktop (null).")).default(null).describe("Responsive breakpoint name for styles. Defaults to desktop (null).")},u={status:o.z.enum(["ok","error"]).describe("Operation status"),classId:o.z.string().optional().describe("Class ID (returned on create success)"),message:o.z.string().optional().describe("Error details if status is error")},handler=async e=>{const{action:t,classId:s,globalClassName:a,props:o,breakpoint:i}=e,c=o;let d=s;if("create"===t&&!a)return{status:"error",message:"Create requires globalClassName"};if("modify"===t&&!d)return{status:"error",message:"Modify requires classId"};if("delete"===t&&!d)return{status:"error",message:"Delete requires classId"};const{create:u,update:p,delete:g}=l.globalClassesStylesProvider.actions;if(!u||!p||!g)return{status:"error",message:"Required actions not available"};const m=[],h=(0,r.getStylesSchema)(),f=Object.keys(h);if(Object.values(c).forEach(e=>{Object.keys(e).forEach(t=>{const s=h[t];if(!s)return void m.push(`Property "${t}" does not exist in styles schema.`);const{valid:a,jsonSchema:r}=n.Schema.validatePropValue(s,e[t]);a||m.push(`- Property "${t}" has invalid value\n Expected schema: ${r}\n`)})}),m.length>0)return{status:"error",message:`Validation errors:\n${m.join("\n")}\nAvailable Properties: ${f.join(", ")}\nUpdate your input and try again.`};const b=window.elementorV2.editorVariables.Utils;Object.values(c).forEach(e=>{Object.keys(e).forEach(t=>{e[t]=n.Schema.adjustLlmPropValueSchema(e[t],{transformers:b.globalVariablesLLMResolvers})})});const y=i??"desktop";let v={status:"error",classId:"",message:"unknown error"};try{let e=t;for await(const[s,n]of Object.entries(c))switch(e){case"create":const r=await attemptCreate({props:n,className:a,stylesProvider:l.globalClassesStylesProvider,breakpoint:y,state:s});r&&"create"===e&&(e="modify",d=r),v=r?{status:"ok",message:`created global class with ID ${r}`}:{status:"error",message:"error creating class"};break;case"modify":v=await attemptUpdate({classId:d,props:n,stylesProvider:l.globalClassesStylesProvider,breakpoint:y,state:s})?{status:"ok",classId:d}:{status:"error",message:"error modifying class"};break;case"delete":v=await attemptDelete({classId:d,stylesProvider:l.globalClassesStylesProvider})?{status:"ok",message:`deleted global class with ID ${d}`}:{status:"error",message:"error deleting class"};break;default:throw new Error(`Unsupported action ${t}`)}}catch(e){return{status:"error",message:`${t} failed: ${e.message||"Unknown error"}`}}return v},initManageGlobalClasses=e=>{const{addTool:t}=e;t({name:"manage-global-classes",requiredResources:[{uri:c.GLOBAL_CLASSES_URI,description:"Global classes list"},{uri:a.STYLE_SCHEMA_URI,description:"Style schema resources"},{uri:a.BREAKPOINTS_SCHEMA_URI,description:"Breakpoints list"}],modelPreferences:{intelligencePriority:.85,speedPriority:.6},description:"Create or modify global classes for reusable design-system styling. Class names must reflect purpose (e.g. heading-primary, button-cta). Create classes BEFORE compositions. Do NOT create classes for one-off styles or layout-specific properties.",schema:d,outputSchema:u,handler:handler})};async function attemptCreate(e){const{props:t,breakpoint:s,className:a,stylesProvider:n,state:r}=e,{create:o,delete:l}=n.actions;if(!a)throw new Error("Global class name is a required for creation");if(!o||!l)throw new Error("User is unable to create global classes");const c=o(a,[{meta:{breakpoint:s,state:"default"===r?null:r},custom_css:null,props:t}]);try{return await(0,i.saveGlobalClasses)({context:"frontend"}),c}catch{return l(c),null}}async function attemptUpdate(e){const{props:t,breakpoint:s,classId:a,stylesProvider:n,state:r}=e,{updateProps:o,update:l}=n.actions;if(!a)throw new Error("Class ID is required for modification");if(!o||!l)throw new Error("User is unable to update global classes");const c=structuredClone(n.actions.all());try{return o({id:a,props:t,meta:{breakpoint:s,state:r}}),await(0,i.saveGlobalClasses)({context:"frontend"}),!0}catch{return c.forEach(e=>{l({id:e.id,variants:e.variants})}),await(0,i.saveGlobalClasses)({context:"frontend"}),!1}}async function attemptDelete(e){const{classId:t,stylesProvider:s}=e,{delete:a,create:n}=s.actions;if(!t)throw new Error("Class ID is required for deletion");if(!a||!n)throw new Error("User is unable to delete global classes");if(!structuredClone(s.actions.all()).find(e=>e.id===t))throw new Error(`Class with ID "${t}" not found`);try{return a(t),await(0,i.saveGlobalClasses)({context:"frontend"}),!0}catch{return!1}}},"./packages/packages/core/editor-global-classes/src/save-global-classes.tsx":function(e,t,s){s.r(t),s.d(t,{saveGlobalClasses:function(){return saveGlobalClasses}});var a=s("react"),n=s("@elementor/editor-ui"),r=s("@elementor/store"),o=s("@elementor/utils"),l=s("./packages/packages/core/editor-global-classes/src/api.ts"),i=s("./packages/packages/core/editor-global-classes/src/components/class-manager/duplicate-label-dialog.tsx"),c=s("./packages/packages/core/editor-global-classes/src/store.ts"),d=s("./packages/packages/core/editor-global-classes/src/utils/tracking.ts");async function saveGlobalClasses({context:e,onApprove:t}){const s=(0,c.selectData)((0,r.__getState)()),u="preview"===e?l.apiClient.saveDraft:l.apiClient.publish,p="preview"===e?c.selectPreviewInitialData:c.selectFrontendInitialData,g=function calculateChanges(e,t){const s=Object.keys(e.items),a=Object.keys(t.items),{order:n}=e,{order:r}=t,l=new Set(n),i=r.filter(e=>!l.has(e)),c=n.join(";")!==r.join(";");return{added:s.filter(e=>!a.includes(e)),deleted:i,modified:s.filter(s=>s in t.items&&(0,o.hash)(e.items[s])!==(0,o.hash)(t.items[s])),order:c}}(s,p((0,r.__getState)())),m=[...g.added,...g.modified],h=Object.fromEntries(m.map(e=>[e,s.items[e]]).filter(([,e])=>e)),f=await u({items:h,order:s.order,changes:g});(0,r.__dispatch)(c.slice.actions.reset({context:e})),window.dispatchEvent(new CustomEvent("classes:updated",{detail:{context:e}})),f?.data?.data?.code===l.API_ERROR_CODES.DUPLICATED_LABEL&&((0,r.__dispatch)(c.slice.actions.updateMultiple(f.data.data.modifiedLabels)),(0,d.trackGlobalClasses)({event:"classPublishConflict",numOfConflicts:Object.keys(f.data.data.modifiedLabels).length}),(0,n.openDialog)({component:a.createElement(i.DuplicateLabelDialog,{modifiedLabels:f.data.data.modifiedLabels||[],onApprove:t})}))}},"./packages/packages/core/editor-global-classes/src/store.ts":function(e,t,s){s.r(t),s.d(t,{placeholderDefinition:function(){return placeholderDefinition},selectClass:function(){return selectClass},selectClassLabels:function(){return selectClassLabels},selectData:function(){return selectData},selectEmptyCssClass:function(){return p},selectFrontendInitialData:function(){return selectFrontendInitialData},selectGlobalClasses:function(){return d},selectIsClassFetched:function(){return selectIsClassFetched},selectIsDirty:function(){return selectIsDirty},selectOrder:function(){return c},selectOrderedClasses:function(){return u},selectPreviewInitialData:function(){return selectPreviewInitialData},slice:function(){return i}});var a=s("@elementor/editor-styles"),n=s("@elementor/store"),r=s("./packages/packages/core/editor-global-classes/src/errors.ts");const o=s("./packages/packages/core/editor-global-classes/src/utils/snapshot-history.ts").SnapshotHistory.get("global-classes"),l="globalClasses",i=(0,n.__createSlice)({name:l,initialState:{data:{items:{},order:[]},classLabels:{},initialData:{frontend:{items:{},order:[]},preview:{items:{},order:[]}},isDirty:!1},reducers:{load(e,{payload:{frontend:t,preview:s,classLabels:a}}){e.initialData.frontend=t,e.initialData.preview=s,e.data=s,e.classLabels=a,e.isDirty=!1},add(e,{payload:t}){o.next(e.data),e.data.items[t.id]=t,e.data.order.unshift(t.id),e.classLabels[t.id]=t.label,e.isDirty=!0},delete(e,{payload:t}){o.next(e.data),e.data.items=Object.fromEntries(Object.entries(e.data.items).filter(([e])=>e!==t)),e.data.order=e.data.order.filter(e=>e!==t),delete e.classLabels[t],e.isDirty=!0},setOrder(e,{payload:t}){o.next(e.data),e.data.order=t,e.isDirty=!0},update(e,{payload:t}){o.next(e.data);const s={...e.data.items[t.style.id],...t.style};e.data.items[t.style.id]=s,e.isDirty=!0},updateMultiple(e,{payload:t}){o.next(e.data),Object.entries(t).forEach(([t,{modified:s}])=>{e.data.items[t].label=s,e.classLabels[t]=s}),e.isDirty=!1},updateProps(e,{payload:t}){const s=e.data.items[t.id];if(!s)throw new r.GlobalClassNotFoundError({context:{styleId:t.id}});o.next(e.data);const n=(0,a.getVariantByMeta)(s,t.meta);let l=("custom_css"in t?t.custom_css:n?.custom_css)??null;if(l=l?.raw?l:null,n){const e=JSON.parse(JSON.stringify(t.props));if("replace"===(t.mode??"merge"))n.props=e;else{const t=JSON.parse(JSON.stringify(n.props));n.props=mergeProps(t,e)}n.custom_css=l,s.variants=getNonEmptyVariants(s)}else s.variants.push({meta:t.meta,props:t.props,custom_css:l});e.isDirty=!0},reset(e,{payload:{context:t}}){"frontend"===t&&(o.reset(),e.initialData.frontend=e.data,e.isDirty=!1),e.initialData.preview=e.data},undo(e){o.isLast()&&o.next(e.data);const t=o.prev();t?(e.data=t,e.isDirty=!0):e.data=e.initialData.preview},resetToInitialState(e,{payload:{context:t}}){o.reset(),e.data=e.initialData[t],e.isDirty=!1},redo(e){const t=o.next();o.isLast()&&o.prev(),t&&(e.data=t,e.isDirty=!0)},mergeExistingClasses(e,{payload:{preview:t,frontend:s}}){Object.entries(t).forEach(([t,a])=>{const n=s[t];null!=a&&(t in e.data.items||(e.data.items[t]=a),t in e.initialData.frontend.items||(e.initialData.frontend.items[t]=n),t in e.initialData.preview.items||(e.initialData.preview.items[t]=a),t in e.classLabels||(e.classLabels[t]=a.label))})}}}),mergeProps=(e,t)=>{const s=Array.isArray(e)?{}:e;return Object.entries(t).forEach(([e,t])=>{null==t?delete s[e]:s[e]=t}),s},getNonEmptyVariants=e=>e.variants.filter(({props:e,custom_css:t})=>Object.keys(e).length||t?.raw),placeholderDefinition=(e,t)=>({id:e,type:"class",label:t,variants:[]}),selectData=e=>e[l].data,selectClassLabels=e=>e[l].classLabels,selectFrontendInitialData=e=>e[l].initialData.frontend,selectPreviewInitialData=e=>e[l].initialData.preview,c=(0,n.__createSelector)(selectData,({order:e})=>e),d=(0,n.__createSelector)(selectData,({items:e})=>e),selectIsDirty=e=>e[l].isDirty,u=(0,n.__createSelector)(selectData,selectClassLabels,({items:e,order:t},s)=>t.map(t=>{const a=e[t];if(a)return a;const n=s[t];return void 0!==n?placeholderDefinition(t,n):null}).filter(e=>null!==e)),selectClass=(e,t)=>e[l].data.items[t]??null,p=(0,n.__createSelector)(selectData,({items:e})=>Object.values(e).filter(e=>0===e.variants.length)),selectIsClassFetched=(e,t)=>!!e[l].initialData.preview.items[t]||!!e[l].initialData.frontend.items[t]||!1},"./packages/packages/core/editor-global-classes/src/sync-with-document-save.ts":function(e,t,s){s.r(t),s.d(t,{syncWithDocumentSave:function(){return syncWithDocumentSave}});var a=s("@elementor/editor-current-user"),n=s("@elementor/editor-documents"),r=s("@elementor/editor-v1-adapters"),o=s("@elementor/store"),l=s("./packages/packages/core/editor-global-classes/src/capabilities.ts"),i=s("./packages/packages/core/editor-global-classes/src/save-global-classes.tsx"),c=s("./packages/packages/core/editor-global-classes/src/store.ts");let d=null;function syncWithDocumentSave(e){const t=function syncDirtyState(){return(0,o.__subscribeWithSelector)(c.selectIsDirty,()=>{isDirty()&&(0,n.setDocumentModifiedStatus)(!0)})}();return function bindSaveAction(e){(0,r.registerDataHook)("dependency","document/save/save",t=>(triggerSave(e,"publish"===t.status?"frontend":"preview"),!0))}(e),function bindBeforeSaveTemplateAction(){window.addEventListener("elementor/global-styles/before-save",e=>{!d&&isDirty()&&triggerSave(),d&&e.detail.promises.push(d)})}(),t}function triggerSave(e,t="preview"){const s=(0,a.getCurrentUser)(),n=s?.capabilities.includes(l.UPDATE_CLASS_CAPABILITY_KEY);if(!n)return null;if(d)return d;const r=(0,i.saveGlobalClasses)({context:t,onApprove:e?.open});return d=r,r.finally(()=>{d=null}),r}function isDirty(){return(0,c.selectIsDirty)((0,o.__getState)())}},"./packages/packages/core/editor-global-classes/src/sync-with-document.tsx":function(e,t,s){s.r(t),s.d(t,{SyncWithDocumentSave:function(){return SyncWithDocumentSave}});var a=s("react"),n=s("@elementor/editor-v1-adapters"),r=s("./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-panel.tsx"),o=s("./packages/packages/core/editor-global-classes/src/sync-with-document-save.ts");function SyncWithDocumentSave(){const{open:e}=(0,r.usePanelActions)();return(0,a.useEffect)(()=>(0,n.__privateListenTo)((0,n.v1ReadyEvent)(),()=>{const t=(0,n.isExperimentActive)("e_editor_design_system_panel")?()=>{window.dispatchEvent(new CustomEvent("elementor/open-global-classes-manager"))}:e;(0,o.syncWithDocumentSave)({open:t})}),[]),null}},"./packages/packages/core/editor-global-classes/src/utils/create-labels-for-classes.ts":function(e,t,s){function createLabelsForClasses(e){return Object.fromEntries(e.map(e=>[e.id,e.label]))}s.r(t),s.d(t,{createLabelsForClasses:function(){return createLabelsForClasses}})},"./packages/packages/core/editor-global-classes/src/utils/snapshot-history.ts":function(e,t,s){function createLink({value:e,next:t,prev:s}){return{value:e,prev:s||null,next:t||null}}s.r(t),s.d(t,{SnapshotHistory:function(){return SnapshotHistory}});class SnapshotHistory{static registry={};static get(e){return SnapshotHistory.registry[e]||(SnapshotHistory.registry[e]=new SnapshotHistory(e)),SnapshotHistory.registry[e]}first=null;current=null;constructor(e){this.namespace=e}transform(e){return JSON.parse(JSON.stringify(e))}reset(){this.first=this.current=null}prev(){return this.current&&this.current!==this.first?(this.current=this.current.prev,this.current?.value||null):null}isLast(){return!this.current||!this.current.next}next(e){if(e){if(!this.current)return this.first=createLink({value:this.transform(e)}),this.current=this.first,this.current.value;const t=createLink({value:this.transform(e),prev:this.current});return this.current.next=t,this.current=t,this.current.value}return this.current&&this.current.next?(this.current=this.current.next,this.current.value):null}}},"./packages/packages/core/editor-global-classes/src/utils/tracking.ts":function(e,t,s){s.r(t),s.d(t,{trackGlobalClasses:function(){return trackGlobalClasses}});var a=s("@elementor/events"),n=s("@elementor/store"),r=s("./packages/packages/core/editor-global-classes/service/css-class-usage-service.ts"),o=s("./packages/packages/core/editor-global-classes/src/errors.ts"),l=s("./packages/packages/core/editor-global-classes/src/store.ts");const trackGlobalClasses=async e=>{const{runAction:t}=e,s=await getSanitizedData(e);s&&(track(s),"classCreated"===s.event&&"classId"in s&&fireClassApplied(s.classId)),t?.()},fireClassApplied=async e=>{const t=await getAppliedInfo(e);track({event:"classApplied",classId:e,...t,totalInstancesAfterApply:1})},getSanitizedData=async e=>{switch(e.event){case"classApplied":if("classId"in e&&e.classId){const t=await getAppliedInfo(e.classId);return{...e,...t}}break;case"classRemoved":if("classId"in e&&e.classId){const t=getRemovedInfo(e.classId);return{...e,...t}}break;case"classDeleted":if("classId"in e&&e.classId){const t=await trackDeleteClass(e.classId);return{...e,...t}}break;case"classCreated":return"source"in e&&"created"!==e.source&&"classId"in e&&e.classId?{...e,classTitle:getCssClass(e.classId).label}:e;case"classStateClicked":if("classId"in e&&e.classId)return{...e,classTitle:getCssClass(e.classId).label};break;case"classSyncToV3PopupShown":return{...e,interaction_type:"popup_shown",target_type:"popup",target_name:"sync_to_v3_popup",interaction_result:"popup_viewed",target_location:"widget_panel",location_l1:"class_manager"};case"classSyncToV3":{const t=getCssClass(e.classId).label,s="sync"===e.action;return{...e,interaction_type:"click",target_type:t,target_name:s?"sync_to_v3":"unsync_to_v3",interaction_result:s?"class_is_synced_to_V3":"class_is_unsynced_from_V3",target_location:"widget_panel",location_l1:"class_manager",interaction_description:s?`user_synced_${t}_to_v3`:`user_unsync_${t}_from_v3`}}case"classSyncToV3PopupClick":{const t="sync"===e.action;return{...e,interaction_type:"click",target_type:"button",target_name:t?"sync_to_v3":"cancel",interaction_result:t?"class_is_synced":"cancel",target_location:"sync_to_v3_popup"}}default:return e}},track=e=>{const{dispatchEvent:t,config:s}=(0,a.getMixpanel)();if(!s?.names?.global_classes?.[e.event])return void console.error("Global class tracking event not found",{event:e.event});const n=s.names.global_classes[e.event],{event:r,...l}=e;try{t?.(n,{event:r,...l})}catch(e){throw new o.GlobalClassTrackingError({cause:e})}},extractCssClassData=e=>({classTitle:getCssClass(e).label}),getCssClass=e=>{const t=(0,n.__getState)(),s=(0,l.selectClass)(t,e);if(s)return s;const a=(0,l.selectClassLabels)(t)[e];if(void 0!==a)return(0,l.placeholderDefinition)(e,a);throw new Error(`CSS class with ID ${e} not found`)},trackDeleteClass=async e=>{const t=getCssClass(e).label;return{totalInstances:await getTotalInstancesByCssClassID(e),classTitle:t}},getTotalInstancesByCssClassID=async e=>{const t=await(0,r.fetchCssClassUsage)();return t[e]?.total??1},getAppliedInfo=async e=>{const{classTitle:t}=extractCssClassData(e);return{classTitle:t,totalInstancesAfterApply:await getTotalInstancesByCssClassID(e)+1}},getRemovedInfo=e=>{const{classTitle:t}=extractCssClassData(e);return{classTitle:t}}},"@elementor/editor":function(e){e.exports=window.elementorV2.editor},"@elementor/editor-canvas":function(e){e.exports=window.elementorV2.editorCanvas},"@elementor/editor-current-user":function(e){e.exports=window.elementorV2.editorCurrentUser},"@elementor/editor-documents":function(e){e.exports=window.elementorV2.editorDocuments},"@elementor/editor-editing-panel":function(e){e.exports=window.elementorV2.editorEditingPanel},"@elementor/editor-mcp":function(e){e.exports=window.elementorV2.editorMcp},"@elementor/editor-panels":function(e){e.exports=window.elementorV2.editorPanels},"@elementor/editor-props":function(e){e.exports=window.elementorV2.editorProps},"@elementor/editor-styles":function(e){e.exports=window.elementorV2.editorStyles},"@elementor/editor-styles-repository":function(e){e.exports=window.elementorV2.editorStylesRepository},"@elementor/editor-ui":function(e){e.exports=window.elementorV2.editorUi},"@elementor/editor-v1-adapters":function(e){e.exports=window.elementorV2.editorV1Adapters},"@elementor/events":function(e){e.exports=window.elementorV2.events},"@elementor/http-client":function(e){e.exports=window.elementorV2.httpClient},"@elementor/icons":function(e){e.exports=window.elementorV2.icons},"@elementor/query":function(e){e.exports=window.elementorV2.query},"@elementor/schema":function(e){e.exports=window.elementorV2.schema},"@elementor/store":function(e){e.exports=window.elementorV2.store},"@elementor/ui":function(e){e.exports=window.elementorV2.ui},"@elementor/utils":function(e){e.exports=window.elementorV2.utils},"@wordpress/i18n":function(e){e.exports=window.wp.i18n},react:function(e){e.exports=window.React},"react-dom":function(e){e.exports=window.ReactDOM}},t={};function __webpack_require__(s){var a=t[s];if(void 0!==a)return a.exports;var n=t[s]={exports:{}};return e[s](n,n.exports,__webpack_require__),n.exports}__webpack_require__.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=function(e,t){for(var s in t)__webpack_require__.o(t,s)&&!__webpack_require__.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},__webpack_require__.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},__webpack_require__.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var s={};!function(){__webpack_require__.r(s),__webpack_require__.d(s,{ClassManagerPanelEmbedded:function(){return e.ClassManagerPanelEmbedded},GLOBAL_CLASSES_URI:function(){return t.GLOBAL_CLASSES_URI},addDocumentClasses:function(){return r.addDocumentClasses},createLabelsForClasses:function(){return o.createLabelsForClasses},init:function(){return a.init},loadExistingClasses:function(){return n.loadExistingClasses}});var e=__webpack_require__("./packages/packages/core/editor-global-classes/src/components/class-manager/class-manager-panel.tsx"),t=__webpack_require__("./packages/packages/core/editor-global-classes/src/mcp-integration/classes-resource.ts"),a=__webpack_require__("./packages/packages/core/editor-global-classes/src/init.ts"),n=__webpack_require__("./packages/packages/core/editor-global-classes/src/load-existing-classes.ts"),r=__webpack_require__("./packages/packages/core/editor-global-classes/src/load-document-classes.ts"),o=__webpack_require__("./packages/packages/core/editor-global-classes/src/utils/create-labels-for-classes.ts")}(),(window.elementorV2=window.elementorV2||{}).editorGlobalClasses=s}(),window.elementorV2.editorGlobalClasses?.init?.();
6478 7 //# sourceMappingURL=editor-global-classes.js.map