PluginProbe
Elementor Website Builder – more than just a page builder / 3.35.0-dev2
Elementor Website Builder – more than just a page builder v3.35.0-dev2
4.3.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-variables/editor-variables.js +2 -7162 4.2.0-beta1 → 3.35.0-dev2 View file →
@@ -1,7163 +1,3 @@
1 -/******/ (function() { // webpackBootstrap
2 -/******/ "use strict";
3 -/******/ var __webpack_modules__ = ({
4 -
5 -/***/ "./packages/packages/core/editor-variables/src/api.ts":
6 -/*!************************************************************!*\
7 - !*** ./packages/packages/core/editor-variables/src/api.ts ***!
8 - \************************************************************/
9 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
10 -
11 -__webpack_require__.r(__webpack_exports__);
12 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
13 -/* harmony export */ apiClient: function() { return /* binding */ apiClient; }
14 -/* harmony export */ });
15 -/* harmony import */ var _elementor_http_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/http-client */ "@elementor/http-client");
16 -/* harmony import */ var _elementor_http_client__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_http_client__WEBPACK_IMPORTED_MODULE_0__);
17 -
18 -const BASE_PATH = 'elementor/v1/variables';
19 -const apiClient = {
20 - list: () => {
21 - return (0,_elementor_http_client__WEBPACK_IMPORTED_MODULE_0__.httpService)().get(BASE_PATH + '/list');
22 - },
23 - create: (type, label, value) => {
24 - return (0,_elementor_http_client__WEBPACK_IMPORTED_MODULE_0__.httpService)().post(BASE_PATH + '/create', {
25 - type,
26 - label,
27 - value
28 - });
29 - },
30 - update: (id, label, value, type) => {
31 - return (0,_elementor_http_client__WEBPACK_IMPORTED_MODULE_0__.httpService)().put(BASE_PATH + '/update', {
32 - id,
33 - label,
34 - value,
35 - type
36 - });
37 - },
38 - delete: id => {
39 - return (0,_elementor_http_client__WEBPACK_IMPORTED_MODULE_0__.httpService)().post(BASE_PATH + '/delete', {
40 - id
41 - });
42 - },
43 - restore: (id, label, value, type) => {
44 - const payload = {
45 - id
46 - };
47 - if (label) {
48 - payload.label = label;
49 - }
50 - if (value) {
51 - payload.value = value;
52 - }
53 - if (type) {
54 - payload.type = type;
55 - }
56 - return (0,_elementor_http_client__WEBPACK_IMPORTED_MODULE_0__.httpService)().post(BASE_PATH + '/restore', payload);
57 - },
58 - batch: payload => {
59 - return (0,_elementor_http_client__WEBPACK_IMPORTED_MODULE_0__.httpService)().post(BASE_PATH + '/batch', payload);
60 - }
61 -};
62 -
63 -/***/ }),
64 -
65 -/***/ "./packages/packages/core/editor-variables/src/batch-operations.ts":
66 -/*!*************************************************************************!*\
67 - !*** ./packages/packages/core/editor-variables/src/batch-operations.ts ***!
68 - \*************************************************************************/
69 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
70 -
71 -__webpack_require__.r(__webpack_exports__);
72 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
73 -/* harmony export */ buildOperationsArray: function() { return /* binding */ buildOperationsArray; },
74 -/* harmony export */ generateTempId: function() { return /* binding */ generateTempId; },
75 -/* harmony export */ isTempId: function() { return /* binding */ isTempId; }
76 -/* harmony export */ });
77 -const generateTempId = () => {
78 - const timestamp = Date.now().toString(36);
79 - const random = Math.random().toString(36).substring(2, 8);
80 - return `tmp-${timestamp}-${random}`;
81 -};
82 -const isTempId = id => {
83 - return id.startsWith('tmp-');
84 -};
85 -const buildOperationsArray = (originalVariables, currentVariables, deletedVariables) => {
86 - const operations = [];
87 - Object.entries(currentVariables).forEach(([id, variable]) => {
88 - if (isTempId(id)) {
89 - operations.push({
90 - type: 'create',
91 - variable: {
92 - ...variable,
93 - id
94 - }
95 - });
96 - } else if (originalVariables[id]) {
97 - const original = originalVariables[id];
98 - const syncChanged = original.sync_to_v3 !== variable.sync_to_v3;
99 - if (original.deleted && !variable.deleted) {
100 - operations.push({
101 - type: 'restore',
102 - id,
103 - ...(original.label !== variable.label && {
104 - label: variable.label
105 - }),
106 - ...(original.value !== variable.value && {
107 - value: variable.value
108 - })
109 - });
110 - } else if (!variable.deleted && (original.label !== variable.label || original.value !== variable.value || original.order !== variable.order || original.type !== variable.type || syncChanged)) {
111 - operations.push({
112 - type: 'update',
113 - id,
114 - variable: {
115 - ...(original.label !== variable.label && {
116 - label: variable.label
117 - }),
118 - ...(original.value !== variable.value && {
119 - value: variable.value
120 - }),
121 - ...(original.order !== variable.order && {
122 - order: variable.order
123 - }),
124 - ...(original.type !== variable.type && {
125 - type: variable.type
126 - }),
127 - ...(syncChanged && {
128 - sync_to_v3: variable.sync_to_v3
129 - })
130 - }
131 - });
132 - }
133 - }
134 - });
135 - deletedVariables.forEach(id => {
136 - operations.push({
137 - type: 'delete',
138 - id
139 - });
140 - });
141 - return operations.filter(op => {
142 - const id = op.id || op.variable?.id;
143 - return id && !(isTempId(id) && currentVariables[id]?.deleted);
144 - });
145 -};
146 -
147 -/***/ }),
148 -
149 -/***/ "./packages/packages/core/editor-variables/src/components/fields/color-field.tsx":
150 -/*!***************************************************************************************!*\
151 - !*** ./packages/packages/core/editor-variables/src/components/fields/color-field.tsx ***!
152 - \***************************************************************************************/
153 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
154 -
155 -__webpack_require__.r(__webpack_exports__);
156 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
157 -/* harmony export */ ColorField: function() { return /* binding */ ColorField; }
158 -/* harmony export */ });
159 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
160 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
161 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
162 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__);
163 -/* harmony import */ var _context_variable_selection_popover_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../context/variable-selection-popover.context */ "./packages/packages/core/editor-variables/src/context/variable-selection-popover.context.tsx");
164 -/* harmony import */ var _utils_validations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils/validations */ "./packages/packages/core/editor-variables/src/utils/validations.ts");
165 -
166 -
167 -
168 -
169 -
170 -const ColorField = ({
171 - value,
172 - onChange,
173 - onValidationChange
174 -}) => {
175 - const [color, setColor] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(value);
176 - const [errorMessage, setErrorMessage] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)('');
177 - const defaultRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
178 - const anchorRef = (0,_context_variable_selection_popover_context__WEBPACK_IMPORTED_MODULE_2__.usePopoverContentRef)() ?? defaultRef.current;
179 - const handleChange = newValue => {
180 - setColor(newValue);
181 - const errorMsg = (0,_utils_validations__WEBPACK_IMPORTED_MODULE_3__.validateValue)(newValue);
182 - setErrorMessage(errorMsg);
183 - onValidationChange?.(errorMsg);
184 - onChange(errorMsg ? '' : newValue);
185 - };
186 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.UnstableColorField, {
187 - id: "color-variable-field",
188 - size: "tiny",
189 - fullWidth: true,
190 - value: color,
191 - onChange: handleChange,
192 - error: errorMessage || undefined,
193 - slotProps: {
194 - colorPicker: {
195 - anchorEl: anchorRef,
196 - anchorOrigin: {
197 - vertical: 'top',
198 - horizontal: 'right'
199 - },
200 - transformOrigin: {
201 - vertical: 'top',
202 - horizontal: -10
203 - },
204 - slotProps: {
205 - colorIndicator: {
206 - size: 'inherit',
207 - sx: {
208 - borderRadius: 0.5
209 - }
210 - }
211 - }
212 - }
213 - }
214 - });
215 -};
216 -
217 -/***/ }),
218 -
219 -/***/ "./packages/packages/core/editor-variables/src/components/fields/font-field.tsx":
220 -/*!**************************************************************************************!*\
221 - !*** ./packages/packages/core/editor-variables/src/components/fields/font-field.tsx ***!
222 - \**************************************************************************************/
223 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
224 -
225 -__webpack_require__.r(__webpack_exports__);
226 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
227 -/* harmony export */ FontField: function() { return /* binding */ FontField; }
228 -/* harmony export */ });
229 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
230 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
231 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-controls */ "@elementor/editor-controls");
232 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__);
233 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/editor-ui */ "@elementor/editor-ui");
234 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__);
235 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
236 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_elementor_icons__WEBPACK_IMPORTED_MODULE_3__);
237 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
238 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__);
239 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
240 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__);
241 -/* harmony import */ var _context_variable_selection_popover_context__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../context/variable-selection-popover.context */ "./packages/packages/core/editor-variables/src/context/variable-selection-popover.context.tsx");
242 -/* harmony import */ var _utils_validations__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../utils/validations */ "./packages/packages/core/editor-variables/src/utils/validations.ts");
243 -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); }
244 -
245 -
246 -
247 -
248 -
249 -
250 -
251 -
252 -
253 -const FontField = ({
254 - value,
255 - onChange,
256 - onValidationChange
257 -}) => {
258 - const [fontFamily, setFontFamily] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(value);
259 - const defaultRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
260 - const anchorRef = (0,_context_variable_selection_popover_context__WEBPACK_IMPORTED_MODULE_6__.usePopoverContentRef)() ?? defaultRef.current;
261 - const fontPopoverState = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.usePopupState)({
262 - variant: 'popover'
263 - });
264 - const fontFamilies = (0,_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__.useFontFamilies)();
265 - const sectionWidth = (0,_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__.useSectionWidth)();
266 - const mapFontSubs = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {
267 - return fontFamilies.map(({
268 - label,
269 - fonts
270 - }) => ({
271 - label,
272 - items: fonts
273 - }));
274 - }, [fontFamilies]);
275 - const handleChange = newValue => {
276 - setFontFamily(newValue);
277 - const errorMsg = (0,_utils_validations__WEBPACK_IMPORTED_MODULE_7__.validateValue)(newValue);
278 - onValidationChange?.(errorMsg);
279 - onChange(errorMsg ? '' : newValue);
280 - };
281 - const handleFontFamilyChange = newFontFamily => {
282 - handleChange(newFontFamily);
283 - fontPopoverState.close();
284 - };
285 - const id = (0,react__WEBPACK_IMPORTED_MODULE_0__.useId)();
286 - 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__.UnstableTag, _extends({
287 - id: id,
288 - variant: "outlined",
289 - label: fontFamily,
290 - endIcon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_3__.ChevronDownIcon, {
291 - fontSize: "tiny"
292 - })
293 - }, (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.bindTrigger)(fontPopoverState), {
294 - fullWidth: true
295 - })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Popover, _extends({
296 - disablePortal: true,
297 - disableScrollLock: true,
298 - anchorEl: anchorRef,
299 - anchorOrigin: {
300 - vertical: 'top',
301 - horizontal: 'right'
302 - },
303 - transformOrigin: {
304 - vertical: 'top',
305 - horizontal: -28
306 - }
307 - }, (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.bindPopover)(fontPopoverState)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__.ItemSelector, {
308 - id: "font-family-variables-selector",
309 - itemsList: mapFontSubs,
310 - selectedItem: fontFamily,
311 - onItemChange: handleFontFamilyChange,
312 - onClose: fontPopoverState.close,
313 - sectionWidth: sectionWidth,
314 - title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Font family', 'elementor'),
315 - itemStyle: item => ({
316 - fontFamily: item.value
317 - }),
318 - onDebounce: _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__.enqueueFont,
319 - icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_3__.TextIcon
320 - })));
321 -};
322 -
323 -/***/ }),
324 -
325 -/***/ "./packages/packages/core/editor-variables/src/components/fields/label-field.tsx":
326 -/*!***************************************************************************************!*\
327 - !*** ./packages/packages/core/editor-variables/src/components/fields/label-field.tsx ***!
328 - \***************************************************************************************/
329 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
330 -
331 -__webpack_require__.r(__webpack_exports__);
332 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
333 -/* harmony export */ LabelField: function() { return /* binding */ LabelField; },
334 -/* harmony export */ useLabelError: function() { return /* binding */ useLabelError; }
335 -/* harmony export */ });
336 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
337 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
338 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-ui */ "@elementor/editor-ui");
339 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__);
340 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
341 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__);
342 -/* harmony import */ var _utils_validations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils/validations */ "./packages/packages/core/editor-variables/src/utils/validations.ts");
343 -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); }
344 -
345 -
346 -
347 -
348 -
349 -function isLabelEqual(a, b) {
350 - return a.trim().toLowerCase() === b.trim().toLowerCase();
351 -}
352 -const useLabelError = initialError => {
353 - const [error, setError] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(initialError ?? {
354 - value: '',
355 - message: ''
356 - });
357 - return {
358 - labelFieldError: error,
359 - setLabelFieldError: setError
360 - };
361 -};
362 -const LabelField = ({
363 - value,
364 - error,
365 - onChange,
366 - id,
367 - onErrorChange,
368 - size = 'tiny',
369 - focusOnShow = false,
370 - selectOnShow = false,
371 - showWarningInfotip = false,
372 - variables,
373 - onKeyDown
374 -}) => {
375 - const [label, setLabel] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(value);
376 - const [errorMessage, setErrorMessage] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)('');
377 - const fieldRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
378 - const handleChange = newValue => {
379 - setLabel(newValue);
380 - const errorMsg = (0,_utils_validations__WEBPACK_IMPORTED_MODULE_3__.validateLabel)(newValue, variables);
381 - setErrorMessage(errorMsg);
382 - onErrorChange?.(errorMsg);
383 - onChange(isLabelEqual(newValue, error?.value ?? '') || errorMsg ? '' : newValue);
384 - };
385 - let errorMsg = errorMessage;
386 - if (isLabelEqual(label, error?.value ?? '') && error?.message) {
387 - errorMsg = error.message;
388 - }
389 - const hintMsg = !errorMsg ? (0,_utils_validations__WEBPACK_IMPORTED_MODULE_3__.labelHint)(label) : '';
390 - const textField = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.TextField, {
391 - ref: fieldRef,
392 - id: id,
393 - size: size,
394 - fullWidth: true,
395 - value: label,
396 - error: !!errorMsg,
397 - onChange: e => handleChange(e.target.value),
398 - inputProps: {
399 - maxLength: _utils_validations__WEBPACK_IMPORTED_MODULE_3__.VARIABLE_LABEL_MAX_LENGTH,
400 - ...(selectOnShow && {
401 - onFocus: e => e.target.select()
402 - }),
403 - 'aria-label': 'Name',
404 - onKeyDown
405 - }
406 - // eslint-disable-next-line jsx-a11y/no-autofocus
407 - ,
408 - autoFocus: focusOnShow
409 - });
410 - if (showWarningInfotip) {
411 - const tooltipWidth = Math.max(240, fieldRef.current?.getBoundingClientRect().width ?? 240);
412 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__.WarningInfotip, _extends({
413 - open: Boolean(errorMsg || hintMsg),
414 - text: errorMsg || hintMsg,
415 - placement: "bottom-start",
416 - width: tooltipWidth,
417 - offset: [0, -15]
418 - }, hintMsg && {
419 - hasError: false
420 - }), textField);
421 - }
422 - return textField;
423 -};
424 -
425 -/***/ }),
426 -
427 -/***/ "./packages/packages/core/editor-variables/src/components/global-styles-import-listener.tsx":
428 -/*!**************************************************************************************************!*\
429 - !*** ./packages/packages/core/editor-variables/src/components/global-styles-import-listener.tsx ***!
430 - \**************************************************************************************************/
431 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
432 -
433 -__webpack_require__.r(__webpack_exports__);
434 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
435 -/* harmony export */ GlobalStylesImportListener: function() { return /* binding */ GlobalStylesImportListener; }
436 -/* harmony export */ });
437 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
438 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
439 -/* harmony import */ var _elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-canvas */ "@elementor/editor-canvas");
440 -/* harmony import */ var _elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_1__);
441 -/* harmony import */ var _service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../service */ "./packages/packages/core/editor-variables/src/service.ts");
442 -
443 -
444 -
445 -function GlobalStylesImportListener() {
446 - (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
447 - const handleGlobalStylesImported = () => {
448 - _service__WEBPACK_IMPORTED_MODULE_2__.service.load();
449 - };
450 - window.addEventListener(_elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_1__.GLOBAL_STYLES_IMPORTED_EVENT, handleGlobalStylesImported);
451 - return () => {
452 - window.removeEventListener(_elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_1__.GLOBAL_STYLES_IMPORTED_EVENT, handleGlobalStylesImported);
453 - };
454 - }, []);
455 - return null;
456 -}
457 -
458 -/***/ }),
459 -
460 -/***/ "./packages/packages/core/editor-variables/src/components/ui/color-indicator.tsx":
461 -/*!***************************************************************************************!*\
462 - !*** ./packages/packages/core/editor-variables/src/components/ui/color-indicator.tsx ***!
463 - \***************************************************************************************/
464 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
465 -
466 -__webpack_require__.r(__webpack_exports__);
467 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
468 -/* harmony export */ ColorIndicator: function() { return /* binding */ ColorIndicator; }
469 -/* harmony export */ });
470 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
471 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_0__);
472 -
473 -const ColorIndicator = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_0__.styled)(_elementor_ui__WEBPACK_IMPORTED_MODULE_0__.UnstableColorIndicator)(({
474 - theme
475 -}) => ({
476 - borderRadius: `${theme.shape.borderRadius / 2}px`,
477 - marginRight: theme.spacing(0.25)
478 -}));
479 -
480 -/***/ }),
481 -
482 -/***/ "./packages/packages/core/editor-variables/src/components/ui/delete-confirmation-dialog.tsx":
483 -/*!**************************************************************************************************!*\
484 - !*** ./packages/packages/core/editor-variables/src/components/ui/delete-confirmation-dialog.tsx ***!
485 - \**************************************************************************************************/
486 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
487 -
488 -__webpack_require__.r(__webpack_exports__);
489 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
490 -/* harmony export */ DeleteConfirmationDialog: function() { return /* binding */ DeleteConfirmationDialog; }
491 -/* harmony export */ });
492 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
493 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
494 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-ui */ "@elementor/editor-ui");
495 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__);
496 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
497 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__);
498 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
499 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__);
500 -
501 -
502 -
503 -
504 -const DeleteConfirmationDialog = ({
505 - open,
506 - label,
507 - closeDialog,
508 - onConfirm
509 -}) => {
510 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__.ConfirmationDialog, {
511 - open: open,
512 - onClose: closeDialog
513 - }, /*#__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 variable?', '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__.__)('All elements using', 'elementor'), "\xA0", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Typography, {
514 - variant: "subtitle2",
515 - component: "span",
516 - sx: {
517 - lineBreak: 'anywhere'
518 - }
519 - }, label), "\xA0", (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('will keep their current values, but the variable itself will be removed.', 'elementor'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__.ConfirmationDialog.Actions, {
520 - onClose: closeDialog,
521 - onConfirm: onConfirm
522 - }));
523 -};
524 -
525 -/***/ }),
526 -
527 -/***/ "./packages/packages/core/editor-variables/src/components/ui/deleted-variable-alert.tsx":
528 -/*!**********************************************************************************************!*\
529 - !*** ./packages/packages/core/editor-variables/src/components/ui/deleted-variable-alert.tsx ***!
530 - \**********************************************************************************************/
531 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
532 -
533 -__webpack_require__.r(__webpack_exports__);
534 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
535 -/* harmony export */ DeletedVariableAlert: function() { return /* binding */ DeletedVariableAlert; }
536 -/* harmony export */ });
537 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
538 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
539 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
540 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__);
541 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
542 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__);
543 -
544 -
545 -
546 -const DeletedVariableAlert = ({
547 - onClose,
548 - onUnlink,
549 - onRestore,
550 - label
551 -}) => {
552 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.ClickAwayListener, {
553 - onClickAway: onClose
554 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Alert, {
555 - variant: "standard",
556 - severity: "warning",
557 - onClose: onClose,
558 - action: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, onUnlink && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.AlertAction, {
559 - variant: "contained",
560 - onClick: onUnlink
561 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Unlink', 'elementor')), onRestore && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.AlertAction, {
562 - variant: "outlined",
563 - onClick: onRestore
564 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Restore', 'elementor'))),
565 - sx: {
566 - maxWidth: 300
567 - }
568 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.AlertTitle, null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Deleted variable', 'elementor')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Typography, {
569 - variant: "body2",
570 - color: "textPrimary"
571 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('The variable', 'elementor'), "\xA0'", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Typography, {
572 - variant: "body2",
573 - component: "span",
574 - sx: {
575 - lineBreak: 'anywhere'
576 - }
577 - }, label), "'\xA0", (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('has been deleted, but it is still referenced in this location. You may restore the variable or unlink it to assign a different value.', 'elementor'))));
578 -};
579 -
580 -/***/ }),
581 -
582 -/***/ "./packages/packages/core/editor-variables/src/components/ui/edit-confirmation-dialog.tsx":
583 -/*!************************************************************************************************!*\
584 - !*** ./packages/packages/core/editor-variables/src/components/ui/edit-confirmation-dialog.tsx ***!
585 - \************************************************************************************************/
586 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
587 -
588 -__webpack_require__.r(__webpack_exports__);
589 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
590 -/* harmony export */ EDIT_CONFIRMATION_DIALOG_ID: function() { return /* binding */ EDIT_CONFIRMATION_DIALOG_ID; },
591 -/* harmony export */ EditConfirmationDialog: function() { return /* binding */ EditConfirmationDialog; }
592 -/* harmony export */ });
593 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
594 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
595 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
596 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_icons__WEBPACK_IMPORTED_MODULE_1__);
597 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
598 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__);
599 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
600 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__);
601 -
602 -
603 -
604 -
605 -
606 -const EDIT_CONFIRMATION_DIALOG_ID = 'edit-confirmation-dialog';
607 -const EditConfirmationDialog = ({
608 - closeDialog,
609 - onConfirm,
610 - onSuppressMessage
611 -}) => {
612 - const [dontShowAgain, setDontShowAgain] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
613 - const handleSave = () => {
614 - if (dontShowAgain) {
615 - onSuppressMessage?.();
616 - }
617 - onConfirm?.();
618 - };
619 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Dialog, {
620 - open: true,
621 - onClose: closeDialog,
622 - maxWidth: "xs"
623 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.DialogTitle, {
624 - display: "flex",
625 - alignItems: "center",
626 - gap: 1
627 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_1__.AlertTriangleFilledIcon, {
628 - color: "secondary"
629 - }), (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Changes to variables go live right away.', 'elementor')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.DialogContent, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.DialogContentText, {
630 - variant: "body2",
631 - color: "textPrimary"
632 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)("Don't worry - all other changes you make will wait until you publish your site.", 'elementor'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.DialogActions, {
633 - sx: {
634 - justifyContent: 'space-between',
635 - alignItems: 'center'
636 - }
637 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.FormControlLabel, {
638 - control: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Checkbox, {
639 - checked: dontShowAgain,
640 - onChange: event => setDontShowAgain(event.target.checked),
641 - size: "small"
642 - }),
643 - label: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Typography, {
644 - variant: "body2"
645 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)("Don't show me again", 'elementor'))
646 - }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Button, {
647 - color: "secondary",
648 - onClick: closeDialog
649 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Keep editing', 'elementor')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Button, {
650 - variant: "contained",
651 - color: "secondary",
652 - onClick: handleSave,
653 - sx: {
654 - ml: 1
655 - }
656 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Save', 'elementor')))));
657 -};
658 -
659 -/***/ }),
660 -
661 -/***/ "./packages/packages/core/editor-variables/src/components/ui/empty-state.tsx":
662 -/*!***********************************************************************************!*\
663 - !*** ./packages/packages/core/editor-variables/src/components/ui/empty-state.tsx ***!
664 - \***********************************************************************************/
665 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
666 -
667 -__webpack_require__.r(__webpack_exports__);
668 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
669 -/* harmony export */ EmptyState: function() { return /* binding */ EmptyState; }
670 -/* harmony export */ });
671 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
672 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
673 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
674 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__);
675 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
676 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__);
677 -/* harmony import */ var _hooks_use_permissions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../hooks/use-permissions */ "./packages/packages/core/editor-variables/src/hooks/use-permissions.ts");
678 -
679 -
680 -
681 -
682 -const EmptyState = ({
683 - icon,
684 - title,
685 - message,
686 - onAdd,
687 - children
688 -}) => {
689 - const canAdd = (0,_hooks_use_permissions__WEBPACK_IMPORTED_MODULE_3__.usePermissions)().canAdd();
690 - const displayTitle = canAdd ? title : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('There are no variables', 'elementor');
691 - const displayMessage = canAdd ? message : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('With your current role, you can only connect and detach variables.', 'elementor');
692 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(Content, {
693 - title: displayTitle,
694 - message: displayMessage,
695 - icon: icon
696 - }, children || onAdd && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Button, {
697 - variant: "outlined",
698 - color: "secondary",
699 - size: "small",
700 - onClick: onAdd
701 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Create a variable', 'elementor')));
702 -};
703 -function Content({
704 - title,
705 - message,
706 - icon,
707 - children
708 -}) {
709 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Stack, {
710 - gap: 1,
711 - alignItems: "center",
712 - justifyContent: "flex-start",
713 - height: "100%",
714 - color: "text.secondary",
715 - sx: {
716 - p: 2.5,
717 - pt: 8,
718 - pb: 5.5
719 - }
720 - }, icon, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Typography, {
721 - align: "center",
722 - variant: "subtitle2"
723 - }, title), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Typography, {
724 - align: "center",
725 - variant: "caption",
726 - maxWidth: "180px"
727 - }, message), children);
728 -}
729 -
730 -/***/ }),
731 -
732 -/***/ "./packages/packages/core/editor-variables/src/components/ui/form-field.tsx":
733 -/*!**********************************************************************************!*\
734 - !*** ./packages/packages/core/editor-variables/src/components/ui/form-field.tsx ***!
735 - \**********************************************************************************/
736 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
737 -
738 -__webpack_require__.r(__webpack_exports__);
739 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
740 -/* harmony export */ FormField: function() { return /* binding */ FormField; }
741 -/* harmony export */ });
742 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
743 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
744 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
745 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__);
746 -
747 -
748 -const FormField = ({
749 - id,
750 - label,
751 - errorMsg,
752 - noticeMsg,
753 - children
754 -}) => {
755 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Grid, {
756 - container: true,
757 - gap: 0.75,
758 - alignItems: "center"
759 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Grid, {
760 - item: true,
761 - xs: 12
762 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.FormLabel, {
763 - htmlFor: id,
764 - size: "tiny"
765 - }, label)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Grid, {
766 - item: true,
767 - xs: 12
768 - }, children, errorMsg && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.FormHelperText, {
769 - error: true
770 - }, errorMsg), noticeMsg && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.FormHelperText, null, noticeMsg)));
771 -};
772 -
773 -/***/ }),
774 -
775 -/***/ "./packages/packages/core/editor-variables/src/components/ui/menu-item-content.tsx":
776 -/*!*****************************************************************************************!*\
777 - !*** ./packages/packages/core/editor-variables/src/components/ui/menu-item-content.tsx ***!
778 - \*****************************************************************************************/
779 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
780 -
781 -__webpack_require__.r(__webpack_exports__);
782 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
783 -/* harmony export */ MenuItemContent: function() { return /* binding */ MenuItemContent; }
784 -/* harmony export */ });
785 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
786 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
787 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-ui */ "@elementor/editor-ui");
788 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__);
789 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
790 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_icons__WEBPACK_IMPORTED_MODULE_2__);
791 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
792 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__);
793 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
794 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__);
795 -
796 -
797 -
798 -
799 -
800 -const SIZE = 'tiny';
801 -const EDIT_LABEL = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Edit variable', 'elementor');
802 -const MenuItemContent = ({
803 - item,
804 - disabled = false
805 -}) => {
806 - const onEdit = item.onEdit;
807 - 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__.ListItemIcon, {
808 - sx: {
809 - color: disabled ? 'text.disabled' : 'inherit'
810 - }
811 - }, item.icon), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Box, {
812 - sx: {
813 - flex: 1,
814 - minWidth: 0,
815 - display: 'flex',
816 - alignItems: 'center',
817 - gap: 1
818 - }
819 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__.EllipsisWithTooltip, {
820 - title: item.label || item.value,
821 - as: _elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Typography,
822 - variant: "caption",
823 - color: disabled ? 'text.disabled' : 'text.primary',
824 - sx: {
825 - marginTop: '1px',
826 - lineHeight: '2'
827 - },
828 - maxWidth: "50%"
829 - }), item.secondaryText && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__.EllipsisWithTooltip, {
830 - title: item.secondaryText,
831 - as: _elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Typography,
832 - variant: "caption",
833 - color: disabled ? 'text.disabled' : 'text.tertiary',
834 - sx: {
835 - marginTop: '1px',
836 - lineHeight: '1'
837 - },
838 - maxWidth: "50%"
839 - })), !!onEdit && !disabled && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Tooltip, {
840 - placement: "top",
841 - title: EDIT_LABEL
842 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.IconButton, {
843 - sx: {
844 - mx: 1,
845 - opacity: '0'
846 - },
847 - onClick: e => {
848 - e.stopPropagation();
849 - onEdit(item.value);
850 - },
851 - "aria-label": EDIT_LABEL
852 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_2__.EditIcon, {
853 - color: "action",
854 - fontSize: SIZE
855 - }))));
856 -};
857 -
858 -/***/ }),
859 -
860 -/***/ "./packages/packages/core/editor-variables/src/components/ui/mismatch-variable-alert.tsx":
861 -/*!***********************************************************************************************!*\
862 - !*** ./packages/packages/core/editor-variables/src/components/ui/mismatch-variable-alert.tsx ***!
863 - \***********************************************************************************************/
864 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
865 -
866 -__webpack_require__.r(__webpack_exports__);
867 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
868 -/* harmony export */ MismatchVariableAlert: function() { return /* binding */ MismatchVariableAlert; }
869 -/* harmony export */ });
870 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
871 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
872 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
873 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__);
874 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
875 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__);
876 -
877 -
878 -
879 -const i18n = {
880 - title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Variable has changed', 'elementor'),
881 - message: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)(`This variable is no longer compatible with this property. You can clear it or select a different one.`, 'elementor'),
882 - buttons: {
883 - clear: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Clear', 'elementor'),
884 - select: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Select variable', 'elementor')
885 - }
886 -};
887 -const MismatchVariableAlert = ({
888 - onClose,
889 - onClear,
890 - triggerSelect
891 -}) => {
892 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.ClickAwayListener, {
893 - onClickAway: onClose
894 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Alert, {
895 - variant: "standard",
896 - severity: "warning",
897 - onClose: onClose,
898 - action: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, onClear && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.AlertAction, {
899 - variant: "contained",
900 - onClick: onClear
901 - }, i18n.buttons.clear), triggerSelect && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.AlertAction, {
902 - variant: "outlined",
903 - onClick: triggerSelect
904 - }, i18n.buttons.select)),
905 - sx: {
906 - maxWidth: 300
907 - }
908 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.AlertTitle, null, i18n.title), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Typography, {
909 - variant: "body2",
910 - color: "textPrimary"
911 - }, i18n.message)));
912 -};
913 -
914 -/***/ }),
915 -
916 -/***/ "./packages/packages/core/editor-variables/src/components/ui/missing-variable-alert.tsx":
917 -/*!**********************************************************************************************!*\
918 - !*** ./packages/packages/core/editor-variables/src/components/ui/missing-variable-alert.tsx ***!
919 - \**********************************************************************************************/
920 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
921 -
922 -__webpack_require__.r(__webpack_exports__);
923 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
924 -/* harmony export */ MissingVariableAlert: function() { return /* binding */ MissingVariableAlert; }
925 -/* harmony export */ });
926 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
927 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
928 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
929 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__);
930 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
931 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__);
932 -
933 -
934 -
935 -const MissingVariableAlert = ({
936 - onClose,
937 - onClear
938 -}) => {
939 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.ClickAwayListener, {
940 - onClickAway: onClose
941 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Alert, {
942 - variant: "standard",
943 - severity: "warning",
944 - onClose: onClose,
945 - action: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, onClear && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.AlertAction, {
946 - variant: "contained",
947 - onClick: onClear
948 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Clear', 'elementor'))),
949 - sx: {
950 - maxWidth: 300
951 - }
952 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.AlertTitle, null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('This variable is missing', 'elementor')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Typography, {
953 - variant: "body2",
954 - color: "textPrimary"
955 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('It may have been deleted. Try clearing this field and select a different value or variable.', 'elementor'))));
956 -};
957 -
958 -/***/ }),
959 -
960 -/***/ "./packages/packages/core/editor-variables/src/components/ui/no-search-results.tsx":
961 -/*!*****************************************************************************************!*\
962 - !*** ./packages/packages/core/editor-variables/src/components/ui/no-search-results.tsx ***!
963 - \*****************************************************************************************/
964 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
965 -
966 -__webpack_require__.r(__webpack_exports__);
967 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
968 -/* harmony export */ NoSearchResults: function() { return /* binding */ NoSearchResults; }
969 -/* harmony export */ });
970 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
971 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
972 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
973 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__);
974 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
975 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__);
976 -
977 -
978 -
979 -const NoSearchResults = ({
980 - searchValue,
981 - onClear,
982 - icon
983 -}) => {
984 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Stack, {
985 - gap: 1,
986 - alignItems: "center",
987 - justifyContent: "center",
988 - p: 2.5,
989 - color: "text.secondary",
990 - sx: {
991 - pb: 3.5,
992 - pt: 8
993 - }
994 - }, icon, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Typography, {
995 - align: "center",
996 - variant: "subtitle2"
997 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Sorry, nothing matched', 'elementor'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("br", null), "\u201C", searchValue, "\u201D."), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Typography, {
998 - align: "center",
999 - variant: "caption",
1000 - sx: {
1001 - display: 'flex',
1002 - flexDirection: 'column'
1003 - }
1004 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Try something else.', 'elementor'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Link, {
1005 - color: "text.secondary",
1006 - variant: "caption",
1007 - component: "button",
1008 - onClick: onClear
1009 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Clear & try again', 'elementor'))));
1010 -};
1011 -
1012 -/***/ }),
1013 -
1014 -/***/ "./packages/packages/core/editor-variables/src/components/ui/styled-menu-list.tsx":
1015 -/*!****************************************************************************************!*\
1016 - !*** ./packages/packages/core/editor-variables/src/components/ui/styled-menu-list.tsx ***!
1017 - \****************************************************************************************/
1018 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1019 -
1020 -__webpack_require__.r(__webpack_exports__);
1021 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1022 -/* harmony export */ VariablesStyledMenuList: function() { return /* binding */ VariablesStyledMenuList; }
1023 -/* harmony export */ });
1024 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1025 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_0__);
1026 -
1027 -const VariablesStyledMenuList = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_0__.styled)(_elementor_ui__WEBPACK_IMPORTED_MODULE_0__.MenuList)(({
1028 - theme,
1029 - disabled
1030 -}) => ({
1031 - '& > li': {
1032 - height: 32,
1033 - width: '100%',
1034 - display: 'flex',
1035 - alignItems: 'center'
1036 - },
1037 - '& > [role="option"]': {
1038 - ...theme.typography.caption,
1039 - lineHeight: 'inherit',
1040 - padding: theme.spacing(0.5, 1, 0.5, 2),
1041 - ...(!disabled && {
1042 - '&:hover, &:focus': {
1043 - backgroundColor: theme.palette.action.hover
1044 - },
1045 - cursor: 'pointer'
1046 - }),
1047 - '&[aria-selected="true"]': {
1048 - backgroundColor: theme.palette.action.selected
1049 - },
1050 - textOverflow: 'ellipsis',
1051 - position: 'absolute',
1052 - top: 0,
1053 - left: 0,
1054 - '&:hover .MuiIconButton-root, .MuiIconButton-root:focus': {
1055 - opacity: 1
1056 - }
1057 - },
1058 - width: '100%',
1059 - position: 'relative'
1060 -}));
1061 -
1062 -/***/ }),
1063 -
1064 -/***/ "./packages/packages/core/editor-variables/src/components/ui/tags/assigned-tag.tsx":
1065 -/*!*****************************************************************************************!*\
1066 - !*** ./packages/packages/core/editor-variables/src/components/ui/tags/assigned-tag.tsx ***!
1067 - \*****************************************************************************************/
1068 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1069 -
1070 -__webpack_require__.r(__webpack_exports__);
1071 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1072 -/* harmony export */ AssignedTag: function() { return /* binding */ AssignedTag; },
1073 -/* harmony export */ SIZE: function() { return /* binding */ SIZE; }
1074 -/* harmony export */ });
1075 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1076 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1077 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
1078 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_icons__WEBPACK_IMPORTED_MODULE_1__);
1079 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1080 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__);
1081 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1082 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__);
1083 -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); }
1084 -
1085 -
1086 -
1087 -
1088 -const SIZE = 'tiny';
1089 -const UNLINK_LABEL = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Unlink variable', 'elementor');
1090 -const AssignedTag = ({
1091 - startIcon,
1092 - label,
1093 - onUnlink,
1094 - ...props
1095 -}) => {
1096 - const actions = [];
1097 - if (onUnlink) {
1098 - actions.push(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Tooltip, {
1099 - key: "unlink",
1100 - title: UNLINK_LABEL,
1101 - placement: "bottom"
1102 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.IconButton, {
1103 - size: SIZE,
1104 - onClick: onUnlink,
1105 - "aria-label": UNLINK_LABEL
1106 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_1__.DetachIcon, {
1107 - fontSize: SIZE
1108 - }))));
1109 - }
1110 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Tooltip, {
1111 - title: label,
1112 - placement: "top"
1113 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.UnstableTag, _extends({
1114 - fullWidth: true,
1115 - showActionsOnHover: true,
1116 - startIcon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Stack, {
1117 - gap: 0.5,
1118 - direction: "row",
1119 - alignItems: "center"
1120 - }, startIcon),
1121 - label: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Box, {
1122 - sx: {
1123 - display: 'inline-grid',
1124 - minWidth: 0
1125 - }
1126 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Typography, {
1127 - sx: {
1128 - lineHeight: 1.34
1129 - },
1130 - variant: "caption",
1131 - noWrap: true
1132 - }, label)),
1133 - actions: actions
1134 - }, props)));
1135 -};
1136 -
1137 -/***/ }),
1138 -
1139 -/***/ "./packages/packages/core/editor-variables/src/components/ui/tags/warning-variable-tag.tsx":
1140 -/*!*************************************************************************************************!*\
1141 - !*** ./packages/packages/core/editor-variables/src/components/ui/tags/warning-variable-tag.tsx ***!
1142 - \*************************************************************************************************/
1143 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1144 -
1145 -__webpack_require__.r(__webpack_exports__);
1146 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1147 -/* harmony export */ WarningVariableTag: function() { return /* binding */ WarningVariableTag; }
1148 -/* harmony export */ });
1149 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1150 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1151 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
1152 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_icons__WEBPACK_IMPORTED_MODULE_1__);
1153 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1154 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__);
1155 -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); }
1156 -
1157 -
1158 -
1159 -const WarningVariableTag = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(({
1160 - label,
1161 - suffix,
1162 - onClick,
1163 - icon,
1164 - ...props
1165 -}, ref) => {
1166 - const displayText = suffix ? `${label} (${suffix})` : label;
1167 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Chip, _extends({
1168 - ref: ref,
1169 - size: "tiny",
1170 - color: "warning",
1171 - shape: "rounded",
1172 - variant: "standard",
1173 - onClick: onClick,
1174 - icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_1__.AlertTriangleFilledIcon, null),
1175 - label: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Tooltip, {
1176 - title: displayText,
1177 - placement: "top"
1178 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Box, {
1179 - sx: {
1180 - display: 'inline-grid',
1181 - minWidth: 0
1182 - }
1183 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Typography, {
1184 - variant: "caption",
1185 - noWrap: true,
1186 - sx: {
1187 - lineHeight: 1.34
1188 - }
1189 - }, displayText))),
1190 - sx: {
1191 - height: theme => theme.spacing(3.5),
1192 - borderRadius: theme => theme.spacing(1),
1193 - justifyContent: 'flex-start',
1194 - width: '100%'
1195 - }
1196 - }, props));
1197 -});
1198 -WarningVariableTag.displayName = 'WarningVariableTag';
1199 -
1200 -/***/ }),
1201 -
1202 -/***/ "./packages/packages/core/editor-variables/src/components/ui/variable-promotion-chip.tsx":
1203 -/*!***********************************************************************************************!*\
1204 - !*** ./packages/packages/core/editor-variables/src/components/ui/variable-promotion-chip.tsx ***!
1205 - \***********************************************************************************************/
1206 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1207 -
1208 -__webpack_require__.r(__webpack_exports__);
1209 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1210 -/* harmony export */ VariablePromotionChip: function() { return /* binding */ VariablePromotionChip; }
1211 -/* harmony export */ });
1212 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1213 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1214 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-controls */ "@elementor/editor-controls");
1215 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__);
1216 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/editor-ui */ "@elementor/editor-ui");
1217 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__);
1218 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1219 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__);
1220 -/* harmony import */ var _elementor_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @elementor/utils */ "@elementor/utils");
1221 -/* harmony import */ var _elementor_utils__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_elementor_utils__WEBPACK_IMPORTED_MODULE_4__);
1222 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1223 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__);
1224 -
1225 -
1226 -
1227 -
1228 -
1229 -
1230 -
1231 -const VariablePromotionChip = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(({
1232 - variableType,
1233 - upgradeUrl,
1234 - trackingData
1235 -}, ref) => {
1236 - const [isOpen, setIsOpen] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
1237 - (0,_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__.useCanvasClickHandler)(isOpen, () => setIsOpen(false));
1238 - const toggle = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
1239 - setIsOpen(prev => {
1240 - if (!prev) {
1241 - (0,_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__.trackViewPromotion)(trackingData);
1242 - }
1243 - return !prev;
1244 - });
1245 - }, [trackingData]);
1246 - (0,react__WEBPACK_IMPORTED_MODULE_0__.useImperativeHandle)(ref, () => ({
1247 - toggle
1248 - }), [toggle]);
1249 - const title = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.sprintf)(/* translators: %s: Variable Type. */
1250 - (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('%s variables', 'elementor'), (0,_elementor_utils__WEBPACK_IMPORTED_MODULE_4__.capitalize)(variableType));
1251 - const content = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.sprintf)(/* translators: %s: Variable Type. */
1252 - (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Upgrade to continue creating and editing %s variables.', 'elementor'), variableType);
1253 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__.PromotionPopover, {
1254 - open: isOpen,
1255 - title: title,
1256 - content: content,
1257 - ctaText: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Upgrade now', 'elementor'),
1258 - ctaUrl: upgradeUrl,
1259 - onClose: e => {
1260 - e.stopPropagation();
1261 - setIsOpen(false);
1262 - },
1263 - onCtaClick: () => (0,_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__.trackUpgradePromotionClick)(trackingData)
1264 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Box, {
1265 - onClick: e => {
1266 - e.stopPropagation();
1267 - toggle();
1268 - },
1269 - sx: {
1270 - cursor: 'pointer',
1271 - display: 'inline-flex'
1272 - }
1273 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__.PromotionChip, null)));
1274 -});
1275 -
1276 -/***/ }),
1277 -
1278 -/***/ "./packages/packages/core/editor-variables/src/components/ui/variable/assigned-variable.tsx":
1279 -/*!**************************************************************************************************!*\
1280 - !*** ./packages/packages/core/editor-variables/src/components/ui/variable/assigned-variable.tsx ***!
1281 - \**************************************************************************************************/
1282 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1283 -
1284 -__webpack_require__.r(__webpack_exports__);
1285 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1286 -/* harmony export */ AssignedVariable: function() { return /* binding */ AssignedVariable; }
1287 -/* harmony export */ });
1288 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1289 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1290 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-controls */ "@elementor/editor-controls");
1291 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__);
1292 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
1293 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_icons__WEBPACK_IMPORTED_MODULE_2__);
1294 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1295 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__);
1296 -/* harmony import */ var _utils_unlink_variable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../utils/unlink-variable */ "./packages/packages/core/editor-variables/src/utils/unlink-variable.ts");
1297 -/* harmony import */ var _variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../variables-registry/variable-type-registry */ "./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");
1298 -/* harmony import */ var _variable_selection_popover__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../variable-selection-popover */ "./packages/packages/core/editor-variables/src/components/variable-selection-popover.tsx");
1299 -/* harmony import */ var _tags_assigned_tag__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../tags/assigned-tag */ "./packages/packages/core/editor-variables/src/components/ui/tags/assigned-tag.tsx");
1300 -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); }
1301 -
1302 -
1303 -
1304 -
1305 -
1306 -
1307 -
1308 -
1309 -
1310 -const AssignedVariable = ({
1311 - variable,
1312 - propTypeKey
1313 -}) => {
1314 - const {
1315 - startIcon,
1316 - propTypeUtil
1317 - } = (0,_variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_5__.getVariableType)(propTypeKey);
1318 - const {
1319 - setValue
1320 - } = (0,_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__.useBoundProp)();
1321 - const anchorRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
1322 - const popupId = (0,react__WEBPACK_IMPORTED_MODULE_0__.useId)();
1323 - const popupState = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.usePopupState)({
1324 - variant: 'popover',
1325 - popupId: `elementor-variables-list-${popupId}`
1326 - });
1327 - const unlinkVariable = (0,_utils_unlink_variable__WEBPACK_IMPORTED_MODULE_4__.createUnlinkHandler)(variable, propTypeKey, setValue);
1328 - const StartIcon = startIcon || (() => null);
1329 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Box, {
1330 - ref: anchorRef
1331 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_tags_assigned_tag__WEBPACK_IMPORTED_MODULE_7__.AssignedTag, _extends({
1332 - label: variable.label,
1333 - startIcon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_2__.ColorFilterIcon, {
1334 - fontSize: _tags_assigned_tag__WEBPACK_IMPORTED_MODULE_7__.SIZE
1335 - }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(StartIcon, {
1336 - value: variable.value
1337 - })),
1338 - onUnlink: unlinkVariable
1339 - }, (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.bindTrigger)(popupState))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Popover, _extends({
1340 - disableScrollLock: true,
1341 - anchorEl: anchorRef.current,
1342 - anchorOrigin: {
1343 - vertical: 'bottom',
1344 - horizontal: 'right'
1345 - },
1346 - transformOrigin: {
1347 - vertical: 'top',
1348 - horizontal: 'right'
1349 - },
1350 - PaperProps: {
1351 - sx: {
1352 - my: 1
1353 - }
1354 - }
1355 - }, (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.bindPopover)(popupState)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_variable_selection_popover__WEBPACK_IMPORTED_MODULE_6__.VariableSelectionPopover, {
1356 - selectedVariable: variable,
1357 - closePopover: popupState.close,
1358 - propTypeKey: propTypeUtil.key
1359 - })));
1360 -};
1361 -
1362 -/***/ }),
1363 -
1364 -/***/ "./packages/packages/core/editor-variables/src/components/ui/variable/deleted-variable.tsx":
1365 -/*!*************************************************************************************************!*\
1366 - !*** ./packages/packages/core/editor-variables/src/components/ui/variable/deleted-variable.tsx ***!
1367 - \*************************************************************************************************/
1368 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1369 -
1370 -__webpack_require__.r(__webpack_exports__);
1371 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1372 -/* harmony export */ DeletedVariable: function() { return /* binding */ DeletedVariable; }
1373 -/* harmony export */ });
1374 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1375 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1376 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-controls */ "@elementor/editor-controls");
1377 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__);
1378 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1379 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__);
1380 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1381 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__);
1382 -/* harmony import */ var _context_variable_type_context__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../context/variable-type-context */ "./packages/packages/core/editor-variables/src/context/variable-type-context.tsx");
1383 -/* harmony import */ var _hooks_use_permissions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../hooks/use-permissions */ "./packages/packages/core/editor-variables/src/hooks/use-permissions.ts");
1384 -/* harmony import */ var _hooks_use_prop_variables__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../hooks/use-prop-variables */ "./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts");
1385 -/* harmony import */ var _hooks_use_variable_bound_prop__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../hooks/use-variable-bound-prop */ "./packages/packages/core/editor-variables/src/hooks/use-variable-bound-prop.ts");
1386 -/* harmony import */ var _utils_unlink_variable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../utils/unlink-variable */ "./packages/packages/core/editor-variables/src/utils/unlink-variable.ts");
1387 -/* harmony import */ var _variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../variables-registry/variable-type-registry */ "./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");
1388 -/* harmony import */ var _variable_restore__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../variable-restore */ "./packages/packages/core/editor-variables/src/components/variable-restore.tsx");
1389 -/* harmony import */ var _deleted_variable_alert__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../deleted-variable-alert */ "./packages/packages/core/editor-variables/src/components/ui/deleted-variable-alert.tsx");
1390 -/* harmony import */ var _tags_warning_variable_tag__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../tags/warning-variable-tag */ "./packages/packages/core/editor-variables/src/components/ui/tags/warning-variable-tag.tsx");
1391 -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); }
1392 -
1393 -
1394 -
1395 -
1396 -
1397 -
1398 -
1399 -
1400 -
1401 -
1402 -
1403 -
1404 -
1405 -
1406 -const DeletedVariable = ({
1407 - variable,
1408 - propTypeKey
1409 -}) => {
1410 - const {
1411 - propTypeUtil
1412 - } = (0,_variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_9__.getVariableType)(propTypeKey);
1413 - const boundProp = (0,_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__.useBoundProp)();
1414 - const userPermissions = (0,_hooks_use_permissions__WEBPACK_IMPORTED_MODULE_5__.usePermissions)();
1415 - const [showInfotip, setShowInfotip] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
1416 - const toggleInfotip = () => setShowInfotip(prev => !prev);
1417 - const closeInfotip = () => setShowInfotip(false);
1418 - const deletedChipAnchorRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
1419 - const popupId = (0,react__WEBPACK_IMPORTED_MODULE_0__.useId)();
1420 - const popupState = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.usePopupState)({
1421 - variant: 'popover',
1422 - popupId: `elementor-variables-restore-${popupId}`
1423 - });
1424 - const handlers = {};
1425 - if (userPermissions.canUnlink()) {
1426 - handlers.onUnlink = (0,_utils_unlink_variable__WEBPACK_IMPORTED_MODULE_8__.createUnlinkHandler)(variable, propTypeKey, boundProp.setValue);
1427 - }
1428 - if (userPermissions.canRestore()) {
1429 - handlers.onRestore = () => {
1430 - if (!variable.key) {
1431 - return;
1432 - }
1433 - (0,_hooks_use_prop_variables__WEBPACK_IMPORTED_MODULE_6__.restoreVariable)(variable.key).then(id => {
1434 - (0,_hooks_use_variable_bound_prop__WEBPACK_IMPORTED_MODULE_7__.resolveBoundPropAndSetValue)(propTypeUtil.create(id), boundProp);
1435 - closeInfotip();
1436 - }).catch(() => {
1437 - closeInfotip();
1438 - popupState.setAnchorEl(deletedChipAnchorRef.current);
1439 - popupState.open();
1440 - });
1441 - };
1442 - }
1443 - const handleRestoreWithOverrides = () => {
1444 - popupState.close();
1445 - };
1446 - 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_2__.Box, {
1447 - ref: deletedChipAnchorRef
1448 - }, showInfotip && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Backdrop, {
1449 - open: true,
1450 - onClick: closeInfotip,
1451 - invisible: true
1452 - }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Infotip, {
1453 - color: "warning",
1454 - placement: "right-start",
1455 - open: showInfotip,
1456 - disableHoverListener: true,
1457 - onClose: closeInfotip,
1458 - content: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_deleted_variable_alert__WEBPACK_IMPORTED_MODULE_11__.DeletedVariableAlert, {
1459 - onClose: closeInfotip,
1460 - onUnlink: handlers.onUnlink,
1461 - onRestore: handlers.onRestore,
1462 - label: variable.label
1463 - }),
1464 - slotProps: {
1465 - popper: {
1466 - modifiers: [{
1467 - name: 'offset',
1468 - options: {
1469 - offset: [0, 24]
1470 - }
1471 - }]
1472 - }
1473 - }
1474 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_tags_warning_variable_tag__WEBPACK_IMPORTED_MODULE_12__.WarningVariableTag, {
1475 - label: variable.label,
1476 - onClick: toggleInfotip,
1477 - suffix: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('deleted', 'elementor')
1478 - })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Popover, _extends({
1479 - disableScrollLock: true,
1480 - anchorOrigin: {
1481 - vertical: 'bottom',
1482 - horizontal: 'right'
1483 - },
1484 - transformOrigin: {
1485 - vertical: 'top',
1486 - horizontal: 'right'
1487 - },
1488 - PaperProps: {
1489 - sx: {
1490 - my: 1
1491 - }
1492 - }
1493 - }, (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.bindPopover)(popupState)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_context_variable_type_context__WEBPACK_IMPORTED_MODULE_4__.VariableTypeProvider, {
1494 - propTypeKey: propTypeKey
1495 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_variable_restore__WEBPACK_IMPORTED_MODULE_10__.VariableRestore, {
1496 - variableId: variable.key ?? '',
1497 - onClose: popupState.close,
1498 - onSubmit: handleRestoreWithOverrides
1499 - })))));
1500 -};
1501 -
1502 -/***/ }),
1503 -
1504 -/***/ "./packages/packages/core/editor-variables/src/components/ui/variable/mismatch-variable.tsx":
1505 -/*!**************************************************************************************************!*\
1506 - !*** ./packages/packages/core/editor-variables/src/components/ui/variable/mismatch-variable.tsx ***!
1507 - \**************************************************************************************************/
1508 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1509 -
1510 -__webpack_require__.r(__webpack_exports__);
1511 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1512 -/* harmony export */ MismatchVariable: function() { return /* binding */ MismatchVariable; }
1513 -/* harmony export */ });
1514 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1515 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1516 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-controls */ "@elementor/editor-controls");
1517 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__);
1518 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1519 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__);
1520 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1521 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__);
1522 -/* harmony import */ var _variable_selection_popover__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../variable-selection-popover */ "./packages/packages/core/editor-variables/src/components/variable-selection-popover.tsx");
1523 -/* harmony import */ var _mismatch_variable_alert__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../mismatch-variable-alert */ "./packages/packages/core/editor-variables/src/components/ui/mismatch-variable-alert.tsx");
1524 -/* harmony import */ var _tags_warning_variable_tag__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../tags/warning-variable-tag */ "./packages/packages/core/editor-variables/src/components/ui/tags/warning-variable-tag.tsx");
1525 -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); }
1526 -
1527 -
1528 -
1529 -
1530 -
1531 -
1532 -
1533 -
1534 -const MismatchVariable = ({
1535 - variable
1536 -}) => {
1537 - const {
1538 - setValue,
1539 - value
1540 - } = (0,_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__.useBoundProp)();
1541 - const anchorRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
1542 - const popupId = (0,react__WEBPACK_IMPORTED_MODULE_0__.useId)();
1543 - const popupState = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.usePopupState)({
1544 - variant: 'popover',
1545 - popupId: `elementor-variables-list-${popupId}`
1546 - });
1547 - const [infotipVisible, setInfotipVisible] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
1548 - const toggleInfotip = () => setInfotipVisible(prev => !prev);
1549 - const closeInfotip = () => setInfotipVisible(false);
1550 - const triggerSelect = () => {
1551 - closeInfotip();
1552 - popupState.setAnchorEl(anchorRef.current);
1553 - popupState.open();
1554 - };
1555 - const clearValue = () => {
1556 - closeInfotip();
1557 - setValue(null);
1558 - };
1559 - const showClearButton = !!value;
1560 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Box, {
1561 - ref: anchorRef
1562 - }, infotipVisible && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Backdrop, {
1563 - open: true,
1564 - onClick: closeInfotip,
1565 - invisible: true
1566 - }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Infotip, {
1567 - color: "warning",
1568 - placement: "right-start",
1569 - open: infotipVisible,
1570 - disableHoverListener: true,
1571 - onClose: closeInfotip,
1572 - content: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_mismatch_variable_alert__WEBPACK_IMPORTED_MODULE_5__.MismatchVariableAlert, {
1573 - onClose: closeInfotip,
1574 - onClear: showClearButton ? clearValue : undefined,
1575 - triggerSelect: triggerSelect
1576 - }),
1577 - slotProps: {
1578 - popper: {
1579 - modifiers: [{
1580 - name: 'offset',
1581 - options: {
1582 - offset: [0, 24]
1583 - }
1584 - }]
1585 - }
1586 - }
1587 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_tags_warning_variable_tag__WEBPACK_IMPORTED_MODULE_6__.WarningVariableTag, {
1588 - label: variable.label,
1589 - onClick: toggleInfotip,
1590 - suffix: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('changed', 'elementor')
1591 - })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Popover, _extends({
1592 - disableScrollLock: true,
1593 - anchorEl: anchorRef.current,
1594 - anchorOrigin: {
1595 - vertical: 'bottom',
1596 - horizontal: 'right'
1597 - },
1598 - transformOrigin: {
1599 - vertical: 'top',
1600 - horizontal: 'right'
1601 - },
1602 - PaperProps: {
1603 - sx: {
1604 - my: 1
1605 - }
1606 - }
1607 - }, (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.bindPopover)(popupState)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_variable_selection_popover__WEBPACK_IMPORTED_MODULE_4__.VariableSelectionPopover, {
1608 - selectedVariable: variable,
1609 - closePopover: popupState.close,
1610 - propTypeKey: variable.type
1611 - })));
1612 -};
1613 -
1614 -/***/ }),
1615 -
1616 -/***/ "./packages/packages/core/editor-variables/src/components/ui/variable/missing-variable.tsx":
1617 -/*!*************************************************************************************************!*\
1618 - !*** ./packages/packages/core/editor-variables/src/components/ui/variable/missing-variable.tsx ***!
1619 - \*************************************************************************************************/
1620 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1621 -
1622 -__webpack_require__.r(__webpack_exports__);
1623 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1624 -/* harmony export */ MissingVariable: function() { return /* binding */ MissingVariable; }
1625 -/* harmony export */ });
1626 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1627 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1628 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-controls */ "@elementor/editor-controls");
1629 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__);
1630 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1631 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__);
1632 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1633 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__);
1634 -/* harmony import */ var _missing_variable_alert__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../missing-variable-alert */ "./packages/packages/core/editor-variables/src/components/ui/missing-variable-alert.tsx");
1635 -/* harmony import */ var _tags_warning_variable_tag__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../tags/warning-variable-tag */ "./packages/packages/core/editor-variables/src/components/ui/tags/warning-variable-tag.tsx");
1636 -
1637 -
1638 -
1639 -
1640 -
1641 -
1642 -
1643 -const MissingVariable = () => {
1644 - const {
1645 - setValue
1646 - } = (0,_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__.useBoundProp)();
1647 - const [infotipVisible, setInfotipVisible] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
1648 - const toggleInfotip = () => setInfotipVisible(prev => !prev);
1649 - const closeInfotip = () => setInfotipVisible(false);
1650 - const clearValue = () => setValue(null);
1651 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, infotipVisible && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Backdrop, {
1652 - open: true,
1653 - onClick: closeInfotip,
1654 - invisible: true
1655 - }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Infotip, {
1656 - color: "warning",
1657 - placement: "right-start",
1658 - open: infotipVisible,
1659 - disableHoverListener: true,
1660 - onClose: closeInfotip,
1661 - content: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_missing_variable_alert__WEBPACK_IMPORTED_MODULE_4__.MissingVariableAlert, {
1662 - onClose: closeInfotip,
1663 - onClear: clearValue
1664 - }),
1665 - slotProps: {
1666 - popper: {
1667 - modifiers: [{
1668 - name: 'offset',
1669 - options: {
1670 - offset: [0, 24]
1671 - }
1672 - }]
1673 - }
1674 - }
1675 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_tags_warning_variable_tag__WEBPACK_IMPORTED_MODULE_5__.WarningVariableTag, {
1676 - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Missing variable', 'elementor'),
1677 - onClick: toggleInfotip
1678 - })));
1679 -};
1680 -
1681 -/***/ }),
1682 -
1683 -/***/ "./packages/packages/core/editor-variables/src/components/variable-creation.tsx":
1684 -/*!**************************************************************************************!*\
1685 - !*** ./packages/packages/core/editor-variables/src/components/variable-creation.tsx ***!
1686 - \**************************************************************************************/
1687 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1688 -
1689 -__webpack_require__.r(__webpack_exports__);
1690 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1691 -/* harmony export */ VariableCreation: function() { return /* binding */ VariableCreation; }
1692 -/* harmony export */ });
1693 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1694 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1695 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-controls */ "@elementor/editor-controls");
1696 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__);
1697 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/editor-ui */ "@elementor/editor-ui");
1698 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__);
1699 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
1700 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_elementor_icons__WEBPACK_IMPORTED_MODULE_3__);
1701 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1702 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__);
1703 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1704 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__);
1705 -/* harmony import */ var _context_variable_type_context__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../context/variable-type-context */ "./packages/packages/core/editor-variables/src/context/variable-type-context.tsx");
1706 -/* harmony import */ var _hooks_use_initial_value__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../hooks/use-initial-value */ "./packages/packages/core/editor-variables/src/hooks/use-initial-value.ts");
1707 -/* harmony import */ var _hooks_use_prop_variables__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../hooks/use-prop-variables */ "./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts");
1708 -/* harmony import */ var _hooks_use_variable_bound_prop__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../hooks/use-variable-bound-prop */ "./packages/packages/core/editor-variables/src/hooks/use-variable-bound-prop.ts");
1709 -/* harmony import */ var _utils_tracking__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/tracking */ "./packages/packages/core/editor-variables/src/utils/tracking.ts");
1710 -/* harmony import */ var _utils_validations__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../utils/validations */ "./packages/packages/core/editor-variables/src/utils/validations.ts");
1711 -/* harmony import */ var _fields_label_field__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./fields/label-field */ "./packages/packages/core/editor-variables/src/components/fields/label-field.tsx");
1712 -/* harmony import */ var _ui_form_field__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./ui/form-field */ "./packages/packages/core/editor-variables/src/components/ui/form-field.tsx");
1713 -
1714 -
1715 -
1716 -
1717 -
1718 -
1719 -
1720 -
1721 -
1722 -
1723 -
1724 -
1725 -
1726 -
1727 -
1728 -const SIZE = 'tiny';
1729 -const VariableCreation = ({
1730 - onGoBack,
1731 - onClose
1732 -}) => {
1733 - const {
1734 - icon: VariableIcon,
1735 - valueField: ValueField,
1736 - variableType,
1737 - propTypeUtil
1738 - } = (0,_context_variable_type_context__WEBPACK_IMPORTED_MODULE_6__.useVariableType)();
1739 - const {
1740 - setVariableValue: setVariable,
1741 - path
1742 - } = (0,_hooks_use_variable_bound_prop__WEBPACK_IMPORTED_MODULE_9__.useVariableBoundProp)();
1743 - const {
1744 - propType
1745 - } = (0,_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__.useBoundProp)();
1746 - const initialValue = (0,_hooks_use_initial_value__WEBPACK_IMPORTED_MODULE_7__.useInitialValue)();
1747 - const [value, setValue] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(initialValue);
1748 - const [label, setLabel] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)('');
1749 - const [errorMessage, setErrorMessage] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)('');
1750 - const [valueFieldError, setValueFieldError] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)('');
1751 - const [propTypeKey, setPropTypeKey] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(propTypeUtil.key);
1752 - const {
1753 - labelFieldError,
1754 - setLabelFieldError
1755 - } = (0,_fields_label_field__WEBPACK_IMPORTED_MODULE_12__.useLabelError)();
1756 - const resetFields = () => {
1757 - setValue('');
1758 - setLabel('');
1759 - setErrorMessage('');
1760 - setValueFieldError('');
1761 - };
1762 - const closePopover = () => {
1763 - resetFields();
1764 - onClose();
1765 - };
1766 - const handleCreateAndTrack = () => {
1767 - (0,_hooks_use_prop_variables__WEBPACK_IMPORTED_MODULE_8__.createVariable)({
1768 - value,
1769 - label,
1770 - type: propTypeKey
1771 - }).then(key => {
1772 - setVariable(key);
1773 - closePopover();
1774 - }).catch(error => {
1775 - const mappedError = (0,_utils_validations__WEBPACK_IMPORTED_MODULE_11__.mapServerError)(error);
1776 - if (mappedError && 'label' === mappedError.field) {
1777 - setLabel('');
1778 - setLabelFieldError({
1779 - value: label,
1780 - message: mappedError.message
1781 - });
1782 - return;
1783 - }
1784 - setErrorMessage(_utils_validations__WEBPACK_IMPORTED_MODULE_11__.ERROR_MESSAGES.UNEXPECTED_ERROR);
1785 - });
1786 - (0,_utils_tracking__WEBPACK_IMPORTED_MODULE_10__.trackVariableEvent)({
1787 - varType: variableType,
1788 - controlPath: path.join('.'),
1789 - action: 'save'
1790 - });
1791 - };
1792 - const hasEmptyFields = () => {
1793 - if ('' === label.trim()) {
1794 - return true;
1795 - }
1796 - if ('string' === typeof value) {
1797 - return '' === value.trim();
1798 - }
1799 - return false === Boolean(value);
1800 - };
1801 - const hasErrors = () => {
1802 - return !!errorMessage;
1803 - };
1804 - const isSubmitDisabled = hasEmptyFields() || hasErrors();
1805 - const handleKeyDown = event => {
1806 - if (event.key === 'Enter' && !isSubmitDisabled) {
1807 - event.preventDefault();
1808 - handleCreateAndTrack();
1809 - }
1810 - };
1811 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__.SectionPopoverBody, {
1812 - height: "auto"
1813 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__.PopoverHeader, {
1814 - icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, onGoBack && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.IconButton, {
1815 - size: SIZE,
1816 - "aria-label": (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Go Back', 'elementor'),
1817 - onClick: onGoBack
1818 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_3__.ArrowLeftIcon, {
1819 - fontSize: SIZE
1820 - })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(VariableIcon, {
1821 - fontSize: SIZE
1822 - })),
1823 - title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Create variable', 'elementor'),
1824 - onClose: closePopover
1825 - }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Divider, null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__.PopoverContent, {
1826 - p: 2
1827 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui_form_field__WEBPACK_IMPORTED_MODULE_13__.FormField, {
1828 - id: "variable-label",
1829 - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Name', 'elementor'),
1830 - errorMsg: labelFieldError?.message,
1831 - noticeMsg: (0,_utils_validations__WEBPACK_IMPORTED_MODULE_11__.labelHint)(label)
1832 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_fields_label_field__WEBPACK_IMPORTED_MODULE_12__.LabelField, {
1833 - id: "variable-label",
1834 - value: label,
1835 - error: labelFieldError,
1836 - onChange: newValue => {
1837 - setLabel(newValue);
1838 - setErrorMessage('');
1839 - },
1840 - onErrorChange: errorMsg => {
1841 - setLabelFieldError({
1842 - value: '',
1843 - message: errorMsg
1844 - });
1845 - },
1846 - onKeyDown: handleKeyDown,
1847 - focusOnShow: true
1848 - })), ValueField && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui_form_field__WEBPACK_IMPORTED_MODULE_13__.FormField, {
1849 - errorMsg: valueFieldError,
1850 - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Value', 'elementor')
1851 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Typography, {
1852 - variant: "h5",
1853 - id: "variable-value-wrapper"
1854 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(ValueField, {
1855 - value: value,
1856 - onPropTypeKeyChange: key => setPropTypeKey(key),
1857 - onChange: newValue => {
1858 - setValue(newValue);
1859 - setErrorMessage('');
1860 - setValueFieldError('');
1861 - },
1862 - onValidationChange: setValueFieldError,
1863 - propType: propType,
1864 - onKeyDown: handleKeyDown
1865 - }))), errorMessage && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.FormHelperText, {
1866 - error: true
1867 - }, errorMessage)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.CardActions, {
1868 - sx: {
1869 - pt: 0.5,
1870 - pb: 1
1871 - }
1872 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Button, {
1873 - id: "create-variable-button",
1874 - size: "small",
1875 - variant: "contained",
1876 - disabled: isSubmitDisabled,
1877 - onClick: handleCreateAndTrack
1878 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Create', 'elementor'))));
1879 -};
1880 -
1881 -/***/ }),
1882 -
1883 -/***/ "./packages/packages/core/editor-variables/src/components/variable-edit.tsx":
1884 -/*!**********************************************************************************!*\
1885 - !*** ./packages/packages/core/editor-variables/src/components/variable-edit.tsx ***!
1886 - \**********************************************************************************/
1887 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1888 -
1889 -__webpack_require__.r(__webpack_exports__);
1890 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1891 -/* harmony export */ VariableEdit: function() { return /* binding */ VariableEdit; }
1892 -/* harmony export */ });
1893 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1894 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1895 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-controls */ "@elementor/editor-controls");
1896 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__);
1897 -/* harmony import */ var _elementor_editor_current_user__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/editor-current-user */ "@elementor/editor-current-user");
1898 -/* harmony import */ var _elementor_editor_current_user__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_current_user__WEBPACK_IMPORTED_MODULE_2__);
1899 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @elementor/editor-ui */ "@elementor/editor-ui");
1900 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_3__);
1901 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
1902 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_elementor_icons__WEBPACK_IMPORTED_MODULE_4__);
1903 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1904 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_5__);
1905 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1906 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__);
1907 -/* harmony import */ var _context_variable_type_context__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../context/variable-type-context */ "./packages/packages/core/editor-variables/src/context/variable-type-context.tsx");
1908 -/* harmony import */ var _hooks_use_permissions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../hooks/use-permissions */ "./packages/packages/core/editor-variables/src/hooks/use-permissions.ts");
1909 -/* harmony import */ var _hooks_use_prop_variables__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../hooks/use-prop-variables */ "./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts");
1910 -/* harmony import */ var _hooks_use_variable_bound_prop__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../hooks/use-variable-bound-prop */ "./packages/packages/core/editor-variables/src/hooks/use-variable-bound-prop.ts");
1911 -/* harmony import */ var _style_variables_repository__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../style-variables-repository */ "./packages/packages/core/editor-variables/src/style-variables-repository.ts");
1912 -/* harmony import */ var _utils_validations__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utils/validations */ "./packages/packages/core/editor-variables/src/utils/validations.ts");
1913 -/* harmony import */ var _fields_label_field__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./fields/label-field */ "./packages/packages/core/editor-variables/src/components/fields/label-field.tsx");
1914 -/* harmony import */ var _ui_delete_confirmation_dialog__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./ui/delete-confirmation-dialog */ "./packages/packages/core/editor-variables/src/components/ui/delete-confirmation-dialog.tsx");
1915 -/* harmony import */ var _ui_edit_confirmation_dialog__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./ui/edit-confirmation-dialog */ "./packages/packages/core/editor-variables/src/components/ui/edit-confirmation-dialog.tsx");
1916 -/* harmony import */ var _ui_form_field__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./ui/form-field */ "./packages/packages/core/editor-variables/src/components/ui/form-field.tsx");
1917 -
1918 -
1919 -
1920 -
1921 -
1922 -
1923 -
1924 -
1925 -
1926 -
1927 -
1928 -
1929 -
1930 -
1931 -
1932 -
1933 -
1934 -
1935 -const SIZE = 'tiny';
1936 -const DELETE_LABEL = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Delete variable', 'elementor');
1937 -const VariableEdit = ({
1938 - onClose,
1939 - onGoBack,
1940 - onSubmit,
1941 - editId
1942 -}) => {
1943 - const {
1944 - icon: VariableIcon,
1945 - valueField: ValueField,
1946 - variableType,
1947 - propTypeUtil
1948 - } = (0,_context_variable_type_context__WEBPACK_IMPORTED_MODULE_7__.useVariableType)();
1949 - const {
1950 - setVariableValue: notifyBoundPropChange,
1951 - variableId
1952 - } = (0,_hooks_use_variable_bound_prop__WEBPACK_IMPORTED_MODULE_10__.useVariableBoundProp)();
1953 - const {
1954 - propType
1955 - } = (0,_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__.useBoundProp)();
1956 - const [isMessageSuppressed, suppressMessage] = (0,_elementor_editor_current_user__WEBPACK_IMPORTED_MODULE_2__.useSuppressedMessage)(_ui_edit_confirmation_dialog__WEBPACK_IMPORTED_MODULE_15__.EDIT_CONFIRMATION_DIALOG_ID);
1957 - const [deleteConfirmation, setDeleteConfirmation] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
1958 - const [editConfirmation, setEditConfirmation] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
1959 - const [errorMessage, setErrorMessage] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)('');
1960 - const [valueFieldError, setValueFieldError] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)('');
1961 - const {
1962 - labelFieldError,
1963 - setLabelFieldError
1964 - } = (0,_fields_label_field__WEBPACK_IMPORTED_MODULE_13__.useLabelError)();
1965 - const variable = (0,_hooks_use_prop_variables__WEBPACK_IMPORTED_MODULE_9__.useVariable)(editId);
1966 - const [propTypeKey, setPropTypeKey] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(variable?.type ?? propTypeUtil.key);
1967 - if (!variable) {
1968 - throw new Error(`Global ${variableType} variable not found`);
1969 - }
1970 - const userPermissions = (0,_hooks_use_permissions__WEBPACK_IMPORTED_MODULE_8__.usePermissions)();
1971 - const [value, setValue] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(() => variable.value);
1972 - const [label, setLabel] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(() => variable.label);
1973 - (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
1974 - _style_variables_repository__WEBPACK_IMPORTED_MODULE_11__.styleVariablesRepository.update({
1975 - [editId]: {
1976 - ...variable,
1977 - value
1978 - }
1979 - });
1980 - return () => {
1981 - _style_variables_repository__WEBPACK_IMPORTED_MODULE_11__.styleVariablesRepository.update({
1982 - [editId]: {
1983 - ...variable
1984 - }
1985 - });
1986 - };
1987 - }, [editId, value, variable]);
1988 - const handleUpdate = () => {
1989 - if (isMessageSuppressed) {
1990 - handleSaveVariable();
1991 - } else {
1992 - setEditConfirmation(true);
1993 - }
1994 - };
1995 - const handleSaveVariable = () => {
1996 - const typeChanged = propTypeKey !== variable.type;
1997 - const updatePayload = typeChanged ? {
1998 - value,
1999 - label,
2000 - type: propTypeKey
2001 - } : {
2002 - value,
2003 - label
2004 - };
2005 - (0,_hooks_use_prop_variables__WEBPACK_IMPORTED_MODULE_9__.updateVariable)(editId, updatePayload).then(() => {
2006 - maybeTriggerBoundPropChange();
2007 - onSubmit?.();
2008 - }).catch(error => {
2009 - const mappedError = (0,_utils_validations__WEBPACK_IMPORTED_MODULE_12__.mapServerError)(error);
2010 - if (mappedError && 'label' === mappedError.field) {
2011 - setLabel('');
2012 - setLabelFieldError({
2013 - value: label,
2014 - message: mappedError.message
2015 - });
2016 - return;
2017 - }
2018 - setErrorMessage(_utils_validations__WEBPACK_IMPORTED_MODULE_12__.ERROR_MESSAGES.UNEXPECTED_ERROR);
2019 - });
2020 - };
2021 - const handleDelete = () => {
2022 - (0,_hooks_use_prop_variables__WEBPACK_IMPORTED_MODULE_9__.deleteVariable)(editId).then(() => {
2023 - maybeTriggerBoundPropChange();
2024 - onSubmit?.();
2025 - });
2026 - };
2027 - const maybeTriggerBoundPropChange = () => {
2028 - if (editId === variableId) {
2029 - notifyBoundPropChange(editId);
2030 - }
2031 - };
2032 - const handleDeleteConfirmation = () => {
2033 - setDeleteConfirmation(true);
2034 - };
2035 - const closeDeleteDialog = () => () => {
2036 - setDeleteConfirmation(false);
2037 - };
2038 - const closeEditDialog = () => () => {
2039 - setEditConfirmation(false);
2040 - };
2041 - const actions = [];
2042 - if (userPermissions.canDelete()) {
2043 - actions.push(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_5__.Tooltip, {
2044 - key: "delete",
2045 - placement: "top",
2046 - title: DELETE_LABEL
2047 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_5__.IconButton, {
2048 - size: SIZE,
2049 - onClick: handleDeleteConfirmation,
2050 - "aria-label": DELETE_LABEL
2051 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_4__.TrashIcon, {
2052 - fontSize: SIZE
2053 - }))));
2054 - }
2055 - const hasEmptyFields = () => {
2056 - if ('' === label.trim()) {
2057 - return true;
2058 - }
2059 - if ('string' === typeof value) {
2060 - return '' === value.trim();
2061 - }
2062 - return false === Boolean(value);
2063 - };
2064 - const noValueChanged = () => {
2065 - return value === variable.value && label === variable.label;
2066 - };
2067 - const hasErrors = () => {
2068 - return !!errorMessage;
2069 - };
2070 - const isSubmitDisabled = noValueChanged() || hasEmptyFields() || hasErrors();
2071 - const handleKeyDown = event => {
2072 - if (event.key === 'Enter' && !isSubmitDisabled) {
2073 - event.preventDefault();
2074 - handleUpdate();
2075 - }
2076 - };
2077 - 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_3__.SectionPopoverBody, {
2078 - height: "auto"
2079 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_3__.PopoverHeader, {
2080 - title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Edit variable', 'elementor'),
2081 - onClose: onClose,
2082 - icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, onGoBack && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_5__.IconButton, {
2083 - size: SIZE,
2084 - "aria-label": (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Go Back', 'elementor'),
2085 - onClick: onGoBack
2086 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_4__.ArrowLeftIcon, {
2087 - fontSize: SIZE
2088 - })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(VariableIcon, {
2089 - fontSize: SIZE
2090 - })),
2091 - actions: actions
2092 - }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_5__.Divider, null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__.PopoverContent, {
2093 - p: 2
2094 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui_form_field__WEBPACK_IMPORTED_MODULE_16__.FormField, {
2095 - id: "variable-label",
2096 - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Name', 'elementor'),
2097 - errorMsg: labelFieldError?.message,
2098 - noticeMsg: (0,_utils_validations__WEBPACK_IMPORTED_MODULE_12__.labelHint)(label)
2099 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_fields_label_field__WEBPACK_IMPORTED_MODULE_13__.LabelField, {
2100 - id: "variable-label",
2101 - value: label,
2102 - error: labelFieldError,
2103 - onChange: newValue => {
2104 - setLabel(newValue);
2105 - setErrorMessage('');
2106 - },
2107 - onErrorChange: errorMsg => {
2108 - setLabelFieldError({
2109 - value: '',
2110 - message: errorMsg
2111 - });
2112 - },
2113 - onKeyDown: handleKeyDown,
2114 - focusOnShow: true
2115 - })), ValueField && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui_form_field__WEBPACK_IMPORTED_MODULE_16__.FormField, {
2116 - errorMsg: valueFieldError,
2117 - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Value', 'elementor')
2118 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_5__.Typography, {
2119 - variant: "h5"
2120 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(ValueField, {
2121 - propTypeKey: variable.type,
2122 - onPropTypeKeyChange: key => setPropTypeKey(key),
2123 - value: value,
2124 - onChange: newValue => {
2125 - setValue(newValue);
2126 - setErrorMessage('');
2127 - setValueFieldError('');
2128 - },
2129 - onKeyDown: handleKeyDown,
2130 - onValidationChange: setValueFieldError,
2131 - propType: propType
2132 - }))), errorMessage && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_5__.FormHelperText, {
2133 - error: true
2134 - }, errorMessage)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_5__.CardActions, {
2135 - sx: {
2136 - pt: 0.5,
2137 - pb: 1
2138 - }
2139 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_5__.Button, {
2140 - size: "small",
2141 - variant: "contained",
2142 - disabled: isSubmitDisabled,
2143 - onClick: handleUpdate
2144 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Save', 'elementor')))), deleteConfirmation && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui_delete_confirmation_dialog__WEBPACK_IMPORTED_MODULE_14__.DeleteConfirmationDialog, {
2145 - open: true,
2146 - label: label,
2147 - onConfirm: handleDelete,
2148 - closeDialog: closeDeleteDialog()
2149 - }), editConfirmation && !isMessageSuppressed && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui_edit_confirmation_dialog__WEBPACK_IMPORTED_MODULE_15__.EditConfirmationDialog, {
2150 - closeDialog: closeEditDialog(),
2151 - onConfirm: handleSaveVariable,
2152 - onSuppressMessage: suppressMessage
2153 - }));
2154 -};
2155 -
2156 -/***/ }),
2157 -
2158 -/***/ "./packages/packages/core/editor-variables/src/components/variable-restore.tsx":
2159 -/*!*************************************************************************************!*\
2160 - !*** ./packages/packages/core/editor-variables/src/components/variable-restore.tsx ***!
2161 - \*************************************************************************************/
2162 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2163 -
2164 -__webpack_require__.r(__webpack_exports__);
2165 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2166 -/* harmony export */ VariableRestore: function() { return /* binding */ VariableRestore; }
2167 -/* harmony export */ });
2168 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2169 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2170 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-controls */ "@elementor/editor-controls");
2171 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__);
2172 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/editor-ui */ "@elementor/editor-ui");
2173 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__);
2174 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2175 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__);
2176 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2177 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__);
2178 -/* harmony import */ var _context_variable_selection_popover_context__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../context/variable-selection-popover.context */ "./packages/packages/core/editor-variables/src/context/variable-selection-popover.context.tsx");
2179 -/* harmony import */ var _context_variable_type_context__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../context/variable-type-context */ "./packages/packages/core/editor-variables/src/context/variable-type-context.tsx");
2180 -/* harmony import */ var _hooks_use_prop_variables__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../hooks/use-prop-variables */ "./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts");
2181 -/* harmony import */ var _hooks_use_variable_bound_prop__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../hooks/use-variable-bound-prop */ "./packages/packages/core/editor-variables/src/hooks/use-variable-bound-prop.ts");
2182 -/* harmony import */ var _utils_validations__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/validations */ "./packages/packages/core/editor-variables/src/utils/validations.ts");
2183 -/* harmony import */ var _fields_label_field__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./fields/label-field */ "./packages/packages/core/editor-variables/src/components/fields/label-field.tsx");
2184 -/* harmony import */ var _ui_form_field__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./ui/form-field */ "./packages/packages/core/editor-variables/src/components/ui/form-field.tsx");
2185 -
2186 -
2187 -
2188 -
2189 -
2190 -
2191 -
2192 -
2193 -
2194 -
2195 -
2196 -
2197 -
2198 -const SIZE = 'tiny';
2199 -const VariableRestore = ({
2200 - variableId,
2201 - onClose,
2202 - onSubmit
2203 -}) => {
2204 - const {
2205 - icon: VariableIcon,
2206 - valueField: ValueField,
2207 - variableType,
2208 - propTypeUtil
2209 - } = (0,_context_variable_type_context__WEBPACK_IMPORTED_MODULE_6__.useVariableType)();
2210 - const {
2211 - setVariableValue: notifyBoundPropChange
2212 - } = (0,_hooks_use_variable_bound_prop__WEBPACK_IMPORTED_MODULE_8__.useVariableBoundProp)();
2213 - const {
2214 - propType
2215 - } = (0,_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__.useBoundProp)();
2216 - const variable = (0,_hooks_use_prop_variables__WEBPACK_IMPORTED_MODULE_7__.useVariable)(variableId);
2217 - if (!variable) {
2218 - throw new Error(`Global ${variableType} variable not found`);
2219 - }
2220 - const [errorMessage, setErrorMessage] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)('');
2221 - const [valueFieldError, setValueFieldError] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)('');
2222 - const [label, setLabel] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(variable.label);
2223 - const [value, setValue] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(variable.value);
2224 - const [propTypeKey, setPropTypeKey] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(variable?.type ?? propTypeUtil.key);
2225 - const {
2226 - labelFieldError,
2227 - setLabelFieldError
2228 - } = (0,_fields_label_field__WEBPACK_IMPORTED_MODULE_10__.useLabelError)({
2229 - value: variable.label,
2230 - message: _utils_validations__WEBPACK_IMPORTED_MODULE_9__.ERROR_MESSAGES.DUPLICATED_LABEL
2231 - });
2232 - const handleRestore = () => {
2233 - const typeChanged = propTypeKey !== variable.type;
2234 - const restorePromise = typeChanged ? (0,_hooks_use_prop_variables__WEBPACK_IMPORTED_MODULE_7__.restoreVariable)(variableId, label, value, propTypeKey) : (0,_hooks_use_prop_variables__WEBPACK_IMPORTED_MODULE_7__.restoreVariable)(variableId, label, value);
2235 - restorePromise.then(() => {
2236 - notifyBoundPropChange(variableId);
2237 - onSubmit?.();
2238 - }).catch(error => {
2239 - const mappedError = (0,_utils_validations__WEBPACK_IMPORTED_MODULE_9__.mapServerError)(error);
2240 - if (mappedError && 'label' === mappedError.field) {
2241 - setLabel('');
2242 - setLabelFieldError({
2243 - value: label,
2244 - message: mappedError.message
2245 - });
2246 - return;
2247 - }
2248 - setErrorMessage(_utils_validations__WEBPACK_IMPORTED_MODULE_9__.ERROR_MESSAGES.UNEXPECTED_ERROR);
2249 - });
2250 - };
2251 - const hasEmptyFields = () => {
2252 - if ('' === label.trim()) {
2253 - return true;
2254 - }
2255 - if ('string' === typeof value) {
2256 - return '' === value.trim();
2257 - }
2258 - return false === Boolean(value);
2259 - };
2260 - const noValueChanged = () => {
2261 - return value === variable.value && label === variable.label;
2262 - };
2263 - const hasErrors = () => {
2264 - return !!errorMessage;
2265 - };
2266 - const isSubmitDisabled = noValueChanged() || hasEmptyFields() || hasErrors();
2267 - const handleKeyDown = event => {
2268 - if (event.key === 'Enter' && !isSubmitDisabled) {
2269 - event.preventDefault();
2270 - handleRestore();
2271 - }
2272 - };
2273 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_context_variable_selection_popover_context__WEBPACK_IMPORTED_MODULE_5__.PopoverContentRefContextProvider, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__.SectionPopoverBody, {
2274 - height: "auto"
2275 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__.PopoverHeader, {
2276 - icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(VariableIcon, {
2277 - fontSize: SIZE
2278 - }),
2279 - title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Restore variable', 'elementor'),
2280 - onClose: onClose
2281 - }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Divider, null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__.PopoverContent, {
2282 - p: 2
2283 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui_form_field__WEBPACK_IMPORTED_MODULE_11__.FormField, {
2284 - id: "variable-label",
2285 - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Name', 'elementor'),
2286 - errorMsg: labelFieldError?.message,
2287 - noticeMsg: (0,_utils_validations__WEBPACK_IMPORTED_MODULE_9__.labelHint)(label)
2288 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_fields_label_field__WEBPACK_IMPORTED_MODULE_10__.LabelField, {
2289 - id: "variable-label",
2290 - value: label,
2291 - error: labelFieldError,
2292 - onChange: newValue => {
2293 - setLabel(newValue);
2294 - setErrorMessage('');
2295 - },
2296 - onErrorChange: errorMsg => {
2297 - setLabelFieldError({
2298 - value: '',
2299 - message: errorMsg
2300 - });
2301 - },
2302 - onKeyDown: handleKeyDown,
2303 - focusOnShow: true
2304 - })), ValueField && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui_form_field__WEBPACK_IMPORTED_MODULE_11__.FormField, {
2305 - errorMsg: valueFieldError,
2306 - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Value', 'elementor')
2307 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Typography, {
2308 - variant: "h5"
2309 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(ValueField, {
2310 - propTypeKey: propTypeKey,
2311 - onPropTypeKeyChange: key => setPropTypeKey(key),
2312 - value: value,
2313 - onChange: newValue => {
2314 - setValue(newValue);
2315 - setErrorMessage('');
2316 - setValueFieldError('');
2317 - },
2318 - onValidationChange: setValueFieldError,
2319 - propType: propType,
2320 - onKeyDown: handleKeyDown
2321 - }))), errorMessage && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.FormHelperText, {
2322 - error: true
2323 - }, errorMessage)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.CardActions, {
2324 - sx: {
2325 - pt: 0.5,
2326 - pb: 1
2327 - }
2328 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Button, {
2329 - size: "small",
2330 - variant: "contained",
2331 - disabled: isSubmitDisabled,
2332 - onClick: handleRestore
2333 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Restore', 'elementor')))));
2334 -};
2335 -
2336 -/***/ }),
2337 -
2338 -/***/ "./packages/packages/core/editor-variables/src/components/variable-selection-popover.tsx":
2339 -/*!***********************************************************************************************!*\
2340 - !*** ./packages/packages/core/editor-variables/src/components/variable-selection-popover.tsx ***!
2341 - \***********************************************************************************************/
2342 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2343 -
2344 -__webpack_require__.r(__webpack_exports__);
2345 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2346 -/* harmony export */ VariableSelectionPopover: function() { return /* binding */ VariableSelectionPopover; }
2347 -/* harmony export */ });
2348 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2349 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2350 -/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters");
2351 -/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1__);
2352 -/* harmony import */ var _context_variable_selection_popover_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../context/variable-selection-popover.context */ "./packages/packages/core/editor-variables/src/context/variable-selection-popover.context.tsx");
2353 -/* harmony import */ var _context_variable_type_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../context/variable-type-context */ "./packages/packages/core/editor-variables/src/context/variable-type-context.tsx");
2354 -/* harmony import */ var _hooks_use_permissions__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../hooks/use-permissions */ "./packages/packages/core/editor-variables/src/hooks/use-permissions.ts");
2355 -/* harmony import */ var _hooks_use_quota_permissions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../hooks/use-quota-permissions */ "./packages/packages/core/editor-variables/src/hooks/use-quota-permissions.ts");
2356 -/* harmony import */ var _variable_creation__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./variable-creation */ "./packages/packages/core/editor-variables/src/components/variable-creation.tsx");
2357 -/* harmony import */ var _variable_edit__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./variable-edit */ "./packages/packages/core/editor-variables/src/components/variable-edit.tsx");
2358 -/* harmony import */ var _variables_selection__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./variables-selection */ "./packages/packages/core/editor-variables/src/components/variables-selection.tsx");
2359 -
2360 -
2361 -
2362 -
2363 -
2364 -
2365 -
2366 -
2367 -
2368 -
2369 -const VIEW_LIST = 'list';
2370 -const VIEW_ADD = 'add';
2371 -const VIEW_EDIT = 'edit';
2372 -const VariableSelectionPopover = ({
2373 - closePopover,
2374 - propTypeKey,
2375 - selectedVariable
2376 -}) => {
2377 - const [currentView, setCurrentView] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(VIEW_LIST);
2378 - const [editId, setEditId] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)('');
2379 - const onSettingsAvailable = (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1__.isExperimentActive)('e_variables_manager') ? () => {
2380 - window.dispatchEvent(new CustomEvent('elementor/toggle-design-system', {
2381 - detail: {
2382 - tab: 'variables'
2383 - }
2384 - }));
2385 - } : undefined;
2386 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_context_variable_type_context__WEBPACK_IMPORTED_MODULE_3__.VariableTypeProvider, {
2387 - propTypeKey: propTypeKey
2388 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_context_variable_selection_popover_context__WEBPACK_IMPORTED_MODULE_2__.PopoverContentRefContextProvider, null, RenderView({
2389 - propTypeKey,
2390 - currentView,
2391 - selectedVariable,
2392 - editId,
2393 - setEditId,
2394 - setCurrentView,
2395 - closePopover,
2396 - onSettings: onSettingsAvailable
2397 - })));
2398 -};
2399 -function RenderView(props) {
2400 - const userPermissions = (0,_hooks_use_permissions__WEBPACK_IMPORTED_MODULE_4__.usePermissions)();
2401 - const userQuotaPermissions = (0,_hooks_use_quota_permissions__WEBPACK_IMPORTED_MODULE_5__.useQuotaPermissions)(props.propTypeKey);
2402 - const handlers = {
2403 - onClose: () => {
2404 - props.closePopover();
2405 - },
2406 - onGoBack: () => {
2407 - props.setCurrentView(VIEW_LIST);
2408 - }
2409 - };
2410 - if (userPermissions.canAdd()) {
2411 - handlers.onAdd = () => {
2412 - props.setCurrentView(VIEW_ADD);
2413 - };
2414 - }
2415 - if (userPermissions.canEdit()) {
2416 - handlers.onEdit = key => {
2417 - props.setEditId(key);
2418 - props.setCurrentView(VIEW_EDIT);
2419 - };
2420 - }
2421 - if (userPermissions.canManageSettings() && props.onSettings) {
2422 - handlers.onSettings = () => {
2423 - props.closePopover();
2424 - props.onSettings?.();
2425 - };
2426 - }
2427 - const handleSubmitOnEdit = () => {
2428 - if (props?.selectedVariable?.key === props.editId) {
2429 - handlers.onClose();
2430 - } else {
2431 - handlers.onGoBack?.();
2432 - }
2433 - };
2434 - if (VIEW_LIST === props.currentView) {
2435 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_variables_selection__WEBPACK_IMPORTED_MODULE_8__.VariablesSelection, {
2436 - closePopover: handlers.onClose,
2437 - onAdd: handlers.onAdd,
2438 - onEdit: handlers.onEdit,
2439 - onSettings: handlers.onSettings,
2440 - disabled: !userQuotaPermissions.canAdd()
2441 - });
2442 - }
2443 - if (VIEW_ADD === props.currentView) {
2444 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_variable_creation__WEBPACK_IMPORTED_MODULE_6__.VariableCreation, {
2445 - onGoBack: handlers.onGoBack,
2446 - onClose: handlers.onClose
2447 - });
2448 - }
2449 - if (VIEW_EDIT === props.currentView) {
2450 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_variable_edit__WEBPACK_IMPORTED_MODULE_7__.VariableEdit, {
2451 - editId: props.editId,
2452 - onGoBack: handlers.onGoBack,
2453 - onClose: handlers.onClose,
2454 - onSubmit: handleSubmitOnEdit
2455 - });
2456 - }
2457 - return null;
2458 -}
2459 -
2460 -/***/ }),
2461 -
2462 -/***/ "./packages/packages/core/editor-variables/src/components/variables-manager/hooks/use-auto-edit.ts":
2463 -/*!*********************************************************************************************************!*\
2464 - !*** ./packages/packages/core/editor-variables/src/components/variables-manager/hooks/use-auto-edit.ts ***!
2465 - \*********************************************************************************************************/
2466 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2467 -
2468 -__webpack_require__.r(__webpack_exports__);
2469 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2470 -/* harmony export */ useAutoEdit: function() { return /* binding */ useAutoEdit; }
2471 -/* harmony export */ });
2472 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2473 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2474 -
2475 -const useAutoEdit = () => {
2476 - const [autoEditVariableId, setAutoEditVariableId] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(undefined);
2477 - const startAutoEdit = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(variableId => {
2478 - setAutoEditVariableId(variableId);
2479 - }, []);
2480 - const handleAutoEditComplete = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
2481 - setTimeout(() => {
2482 - setAutoEditVariableId(undefined);
2483 - }, 100);
2484 - }, []);
2485 - return {
2486 - autoEditVariableId,
2487 - startAutoEdit,
2488 - handleAutoEditComplete
2489 - };
2490 -};
2491 -
2492 -/***/ }),
2493 -
2494 -/***/ "./packages/packages/core/editor-variables/src/components/variables-manager/hooks/use-error-navigation.ts":
2495 -/*!****************************************************************************************************************!*\
2496 - !*** ./packages/packages/core/editor-variables/src/components/variables-manager/hooks/use-error-navigation.ts ***!
2497 - \****************************************************************************************************************/
2498 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2499 -
2500 -__webpack_require__.r(__webpack_exports__);
2501 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2502 -/* harmony export */ useErrorNavigation: function() { return /* binding */ useErrorNavigation; }
2503 -/* harmony export */ });
2504 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2505 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2506 -
2507 -const useErrorNavigation = () => {
2508 - const currentIndexRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0);
2509 - const createNavigationCallback = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((ids, onNavigate, onComplete) => {
2510 - return () => {
2511 - if (!ids?.length) {
2512 - return;
2513 - }
2514 - const currentIndex = currentIndexRef.current;
2515 - const currentId = ids[currentIndex];
2516 - if (currentId) {
2517 - onNavigate(currentId);
2518 - const nextIndex = currentIndex + 1;
2519 - if (nextIndex >= ids.length) {
2520 - onComplete();
2521 - currentIndexRef.current = 0;
2522 - } else {
2523 - currentIndexRef.current = nextIndex;
2524 - }
2525 - }
2526 - };
2527 - }, []);
2528 - const resetNavigation = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
2529 - currentIndexRef.current = 0;
2530 - }, []);
2531 - return {
2532 - createNavigationCallback,
2533 - resetNavigation
2534 - };
2535 -};
2536 -
2537 -/***/ }),
2538 -
2539 -/***/ "./packages/packages/core/editor-variables/src/components/variables-manager/hooks/use-variables-manager-state.ts":
2540 -/*!***********************************************************************************************************************!*\
2541 - !*** ./packages/packages/core/editor-variables/src/components/variables-manager/hooks/use-variables-manager-state.ts ***!
2542 - \***********************************************************************************************************************/
2543 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2544 -
2545 -__webpack_require__.r(__webpack_exports__);
2546 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2547 -/* harmony export */ useVariablesManagerState: function() { return /* binding */ useVariablesManagerState; }
2548 -/* harmony export */ });
2549 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2550 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2551 -/* harmony import */ var _batch_operations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../batch-operations */ "./packages/packages/core/editor-variables/src/batch-operations.ts");
2552 -/* harmony import */ var _hooks_use_prop_variables__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../hooks/use-prop-variables */ "./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts");
2553 -/* harmony import */ var _service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../service */ "./packages/packages/core/editor-variables/src/service.ts");
2554 -/* harmony import */ var _storage__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../storage */ "./packages/packages/core/editor-variables/src/storage.ts");
2555 -/* harmony import */ var _utils_duplicate_label__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../utils/duplicate-label */ "./packages/packages/core/editor-variables/src/utils/duplicate-label.ts");
2556 -/* harmony import */ var _utils_filter_by_search__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../utils/filter-by-search */ "./packages/packages/core/editor-variables/src/utils/filter-by-search.ts");
2557 -/* harmony import */ var _utils_variables_to_list__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../utils/variables-to-list */ "./packages/packages/core/editor-variables/src/utils/variables-to-list.ts");
2558 -/* harmony import */ var _variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../variables-registry/variable-type-registry */ "./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");
2559 -
2560 -
2561 -
2562 -
2563 -
2564 -
2565 -
2566 -
2567 -
2568 -const useVariablesManagerState = () => {
2569 - const [variables, setVariables] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(() => (0,_hooks_use_prop_variables__WEBPACK_IMPORTED_MODULE_2__.getVariables)(false));
2570 - const [deletedVariables, setDeletedVariables] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]);
2571 - const [isSaveDisabled, setIsSaveDisabled] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
2572 - const [isDirty, setIsDirty] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
2573 - const [isSaving, setIsSaving] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
2574 - const [searchValue, setSearchValue] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)('');
2575 - (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
2576 - const handleStorageUpdated = () => {
2577 - setVariables((0,_hooks_use_prop_variables__WEBPACK_IMPORTED_MODULE_2__.getVariables)(false));
2578 - setDeletedVariables([]);
2579 - setIsDirty(false);
2580 - };
2581 - window.addEventListener(_storage__WEBPACK_IMPORTED_MODULE_4__.STORAGE_UPDATED_EVENT, handleStorageUpdated);
2582 - return () => {
2583 - window.removeEventListener(_storage__WEBPACK_IMPORTED_MODULE_4__.STORAGE_UPDATED_EVENT, handleStorageUpdated);
2584 - };
2585 - }, []);
2586 - const handleOnChange = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(newVariables => {
2587 - const hasChanges = Object.entries(newVariables).some(([id, newVar]) => {
2588 - const existingVar = variables[id];
2589 - if (!existingVar) {
2590 - return true;
2591 - }
2592 - return existingVar.label !== newVar.label || existingVar.value !== newVar.value || existingVar.order !== newVar.order || existingVar.type !== newVar.type || (existingVar.sync_to_v3 ?? false) !== (newVar.sync_to_v3 ?? false);
2593 - });
2594 - if (hasChanges) {
2595 - setVariables({
2596 - ...variables,
2597 - ...newVariables
2598 - });
2599 - setIsDirty(true);
2600 - }
2601 - }, [variables]);
2602 - const createVariable = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((type, defaultName, defaultValue) => {
2603 - const newId = (0,_batch_operations__WEBPACK_IMPORTED_MODULE_1__.generateTempId)();
2604 - const newVariable = {
2605 - id: newId,
2606 - label: defaultName.trim(),
2607 - value: defaultValue.trim(),
2608 - type
2609 - };
2610 - setVariables(prev => ({
2611 - ...prev,
2612 - [newId]: newVariable
2613 - }));
2614 - setIsDirty(true);
2615 - return newId;
2616 - }, []);
2617 - const duplicateVariable = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(sourceId => {
2618 - const newId = (0,_batch_operations__WEBPACK_IMPORTED_MODULE_1__.generateTempId)();
2619 - setVariables(prev => {
2620 - const source = prev[sourceId];
2621 - if (!source || source.deleted) {
2622 - return prev;
2623 - }
2624 - const existingLabels = Object.values(prev).filter(v => !v.deleted).map(v => v.label);
2625 - return {
2626 - ...prev,
2627 - [newId]: {
2628 - label: (0,_utils_duplicate_label__WEBPACK_IMPORTED_MODULE_5__.generateDuplicateLabel)(source.label, existingLabels),
2629 - value: source.value,
2630 - type: source.type
2631 - }
2632 - };
2633 - });
2634 - setIsDirty(true);
2635 - return newId;
2636 - }, []);
2637 - const handleDeleteVariable = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(itemId => {
2638 - setDeletedVariables(prev => [...prev, itemId]);
2639 - setVariables(prev => ({
2640 - ...prev,
2641 - [itemId]: {
2642 - ...prev[itemId],
2643 - deleted: true
2644 - }
2645 - }));
2646 - setIsDirty(true);
2647 - }, []);
2648 - const handleStartSync = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(itemId => {
2649 - setVariables(prev => ({
2650 - ...prev,
2651 - [itemId]: {
2652 - ...prev[itemId],
2653 - sync_to_v3: true
2654 - }
2655 - }));
2656 - setIsDirty(true);
2657 - }, []);
2658 - const handleStopSync = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(itemId => {
2659 - setVariables(prev => ({
2660 - ...prev,
2661 - [itemId]: {
2662 - ...prev[itemId],
2663 - sync_to_v3: false
2664 - }
2665 - }));
2666 - setIsDirty(true);
2667 - }, []);
2668 - const handleSearch = searchTerm => {
2669 - setSearchValue(searchTerm);
2670 - };
2671 - const handleSave = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async () => {
2672 - const originalVariables = (0,_hooks_use_prop_variables__WEBPACK_IMPORTED_MODULE_2__.getVariables)(false);
2673 - setIsSaving(true);
2674 - const result = await _service__WEBPACK_IMPORTED_MODULE_3__.service.batchSave(originalVariables, variables, deletedVariables);
2675 - if (result.success) {
2676 - await _service__WEBPACK_IMPORTED_MODULE_3__.service.load();
2677 - const updatedVariables = _service__WEBPACK_IMPORTED_MODULE_3__.service.variables();
2678 - setVariables(updatedVariables);
2679 - setDeletedVariables([]);
2680 - setIsDirty(false);
2681 - }
2682 - return {
2683 - success: result.success
2684 - };
2685 - }, [variables, deletedVariables]);
2686 - const filteredVariables = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
2687 - const list = (0,_utils_variables_to_list__WEBPACK_IMPORTED_MODULE_7__.variablesToList)(variables).filter(v => !v.deleted);
2688 - const typeFiltered = (0,_utils_variables_to_list__WEBPACK_IMPORTED_MODULE_7__.applySelectionFilters)(list, (0,_variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_8__.getVariableTypes)());
2689 - const searchFiltered = (0,_utils_filter_by_search__WEBPACK_IMPORTED_MODULE_6__.filterBySearch)(typeFiltered, searchValue);
2690 - return Object.fromEntries(searchFiltered.map(({
2691 - key,
2692 - ...rest
2693 - }) => [key, rest]));
2694 - }, [variables, searchValue]);
2695 - return {
2696 - variables: filteredVariables(),
2697 - deletedVariables,
2698 - isDirty,
2699 - isSaveDisabled,
2700 - handleOnChange,
2701 - createVariable,
2702 - duplicateVariable,
2703 - handleDeleteVariable,
2704 - handleStartSync,
2705 - handleStopSync,
2706 - handleSave,
2707 - isSaving,
2708 - handleSearch,
2709 - searchValue,
2710 - setIsSaving,
2711 - setIsSaveDisabled
2712 - };
2713 -};
2714 -
2715 -/***/ }),
2716 -
2717 -/***/ "./packages/packages/core/editor-variables/src/components/variables-manager/ui/variable-edit-menu.tsx":
2718 -/*!************************************************************************************************************!*\
2719 - !*** ./packages/packages/core/editor-variables/src/components/variables-manager/ui/variable-edit-menu.tsx ***!
2720 - \************************************************************************************************************/
2721 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2722 -
2723 -__webpack_require__.r(__webpack_exports__);
2724 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2725 -/* harmony export */ VariableEditMenu: function() { return /* binding */ VariableEditMenu; }
2726 -/* harmony export */ });
2727 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2728 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2729 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
2730 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_icons__WEBPACK_IMPORTED_MODULE_1__);
2731 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2732 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__);
2733 -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); }
2734 -
2735 -
2736 -
2737 -
2738 -const VariableEditMenu = ({
2739 - menuActions,
2740 - disabled,
2741 - itemId
2742 -}) => {
2743 - const menuState = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.usePopupState)({
2744 - variant: 'popover'
2745 - });
2746 - const triggerProps = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.bindTrigger)(menuState);
2747 - 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_2__.IconButton, _extends({}, triggerProps, {
2748 - disabled: disabled,
2749 - size: "tiny",
2750 - onClick: e => {
2751 - e.stopPropagation();
2752 - triggerProps.onClick?.(e);
2753 - }
2754 - }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_1__.DotsVerticalIcon, {
2755 - fontSize: "tiny"
2756 - })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Menu, _extends({
2757 - disablePortal: true,
2758 - MenuListProps: {
2759 - dense: true
2760 - },
2761 - PaperProps: {
2762 - elevation: 6
2763 - }
2764 - }, (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.bindMenu)(menuState), {
2765 - anchorEl: menuState.anchorEl,
2766 - anchorOrigin: {
2767 - vertical: 'bottom',
2768 - horizontal: 'right'
2769 - },
2770 - transformOrigin: {
2771 - vertical: 'top',
2772 - horizontal: 'right'
2773 - },
2774 - open: menuState.isOpen,
2775 - onClose: menuState.close
2776 - }), menuActions.map(action => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.MenuItem, {
2777 - key: action.name,
2778 - onClick: e => {
2779 - e.stopPropagation();
2780 - action.onClick?.(itemId);
2781 - menuState.close();
2782 - },
2783 - sx: {
2784 - color: action.color,
2785 - gap: 1
2786 - }
2787 - }, action.icon && /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(action.icon, {
2788 - fontSize: 'inherit'
2789 - }), ' ', action.name))));
2790 -};
2791 -
2792 -/***/ }),
2793 -
2794 -/***/ "./packages/packages/core/editor-variables/src/components/variables-manager/ui/variable-table-cell.tsx":
2795 -/*!*************************************************************************************************************!*\
2796 - !*** ./packages/packages/core/editor-variables/src/components/variables-manager/ui/variable-table-cell.tsx ***!
2797 - \*************************************************************************************************************/
2798 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2799 -
2800 -__webpack_require__.r(__webpack_exports__);
2801 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2802 -/* harmony export */ VariableTableCell: function() { return /* binding */ VariableTableCell; }
2803 -/* harmony export */ });
2804 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2805 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2806 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2807 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__);
2808 -
2809 -
2810 -const VariableTableCell = ({
2811 - children,
2812 - isHeader,
2813 - width,
2814 - maxWidth,
2815 - align,
2816 - noPadding,
2817 - sx
2818 -}) => {
2819 - const baseSx = {
2820 - maxWidth: maxWidth ?? 150,
2821 - cursor: 'initial',
2822 - typography: 'caption',
2823 - ...(isHeader && {
2824 - color: 'text.primary',
2825 - fontWeight: 'bold'
2826 - }),
2827 - ...(isHeader && !noPadding && {
2828 - padding: '10px 16px'
2829 - }),
2830 - ...(width && {
2831 - width
2832 - }),
2833 - ...sx
2834 - };
2835 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.TableCell, {
2836 - size: "small",
2837 - padding: noPadding ? 'none' : undefined,
2838 - align: align,
2839 - sx: baseSx
2840 - }, children);
2841 -};
2842 -
2843 -/***/ }),
2844 -
2845 -/***/ "./packages/packages/core/editor-variables/src/components/variables-manager/ui/variable-table-row.tsx":
2846 -/*!************************************************************************************************************!*\
2847 - !*** ./packages/packages/core/editor-variables/src/components/variables-manager/ui/variable-table-row.tsx ***!
2848 - \************************************************************************************************************/
2849 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2850 -
2851 -__webpack_require__.r(__webpack_exports__);
2852 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2853 -/* harmony export */ VariableRow: function() { return /* binding */ VariableRow; }
2854 -/* harmony export */ });
2855 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2856 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2857 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-ui */ "@elementor/editor-ui");
2858 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__);
2859 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
2860 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_icons__WEBPACK_IMPORTED_MODULE_2__);
2861 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2862 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__);
2863 -/* harmony import */ var _hooks_use_quota_permissions__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../hooks/use-quota-permissions */ "./packages/packages/core/editor-variables/src/hooks/use-quota-permissions.ts");
2864 -/* harmony import */ var _fields_label_field__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../fields/label-field */ "./packages/packages/core/editor-variables/src/components/fields/label-field.tsx");
2865 -/* harmony import */ var _ui_variable_promotion_chip__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../ui/variable-promotion-chip */ "./packages/packages/core/editor-variables/src/components/ui/variable-promotion-chip.tsx");
2866 -/* harmony import */ var _variable_editable_cell__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../variable-editable-cell */ "./packages/packages/core/editor-variables/src/components/variables-manager/variable-editable-cell.tsx");
2867 -/* harmony import */ var _variable_edit_menu__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./variable-edit-menu */ "./packages/packages/core/editor-variables/src/components/variables-manager/ui/variable-edit-menu.tsx");
2868 -/* harmony import */ var _variable_table_cell__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./variable-table-cell */ "./packages/packages/core/editor-variables/src/components/variables-manager/ui/variable-table-cell.tsx");
2869 -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); }
2870 -
2871 -
2872 -
2873 -
2874 -
2875 -
2876 -
2877 -
2878 -
2879 -
2880 -
2881 -const TRACKING_DATA = {
2882 - target_name: 'variables_manager',
2883 - target_location: 'variables_manager'
2884 -};
2885 -const VariableRow = props => {
2886 - const {
2887 - row,
2888 - variables,
2889 - handleOnChange,
2890 - autoEditVariableId,
2891 - onAutoEditComplete,
2892 - onFieldError,
2893 - menuActions,
2894 - handleRowRef,
2895 - itemProps,
2896 - showDropIndication,
2897 - triggerProps,
2898 - itemStyle,
2899 - triggerStyle,
2900 - isDragged,
2901 - dropPosition,
2902 - setTriggerRef,
2903 - isSorting
2904 - } = props;
2905 - const promotionRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
2906 - const isDisabled = !(0,_hooks_use_quota_permissions__WEBPACK_IMPORTED_MODULE_4__.useQuotaPermissions)(row.type).canEdit();
2907 - const showIndicationBefore = showDropIndication && dropPosition === 'before';
2908 - const showIndicationAfter = showDropIndication && dropPosition === 'after';
2909 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.TableRow, _extends({}, itemProps, {
2910 - ref: itemProps.ref,
2911 - selected: isDragged,
2912 - sx: {
2913 - ...(isDisabled && {
2914 - '& td, & th': {
2915 - color: 'text.disabled'
2916 - }
2917 - }),
2918 - ...(showIndicationBefore && {
2919 - '& td, & th': {
2920 - borderTop: '2px solid',
2921 - borderTopColor: 'primary.main'
2922 - }
2923 - }),
2924 - ...(showIndicationAfter && {
2925 - '& td, & th': {
2926 - borderBottom: '2px solid',
2927 - borderBottomColor: 'primary.main'
2928 - }
2929 - }),
2930 - '&:hover, &:focus-within': {
2931 - backgroundColor: 'action.hover',
2932 - '& [role="toolbar"], & [draggable]': {
2933 - opacity: 1
2934 - }
2935 - },
2936 - '& [role="toolbar"], & [draggable]': {
2937 - opacity: 0
2938 - }
2939 - },
2940 - style: {
2941 - ...itemStyle,
2942 - ...triggerStyle
2943 - },
2944 - onClick: () => {
2945 - if (isDisabled) {
2946 - promotionRef.current?.toggle();
2947 - }
2948 - }
2949 - }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_variable_table_cell__WEBPACK_IMPORTED_MODULE_9__.VariableTableCell, {
2950 - noPadding: true,
2951 - width: 10,
2952 - maxWidth: 10
2953 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.IconButton, _extends({
2954 - size: "small",
2955 - ref: setTriggerRef
2956 - }, triggerProps, {
2957 - disabled: isSorting,
2958 - draggable: true
2959 - }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_2__.GripVerticalIcon, {
2960 - fontSize: "inherit"
2961 - }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_variable_table_cell__WEBPACK_IMPORTED_MODULE_9__.VariableTableCell, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_variable_editable_cell__WEBPACK_IMPORTED_MODULE_7__.VariableEditableCell, {
2962 - initialValue: row.name,
2963 - onChange: value => {
2964 - if (value !== row.name && !isDisabled) {
2965 - handleOnChange({
2966 - ...variables,
2967 - [row.id]: {
2968 - ...variables[row.id],
2969 - label: value
2970 - }
2971 - });
2972 - }
2973 - },
2974 - prefixElement: /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(row.icon, {
2975 - fontSize: 'inherit',
2976 - color: isDisabled ? 'disabled' : 'inherit'
2977 - }),
2978 - editableElement: ({
2979 - value,
2980 - onChange,
2981 - onValidationChange,
2982 - error
2983 - }) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_fields_label_field__WEBPACK_IMPORTED_MODULE_5__.LabelField, {
2984 - id: 'variable-label-' + row.id,
2985 - size: "tiny",
2986 - value: value,
2987 - onChange: onChange,
2988 - onErrorChange: errorMsg => {
2989 - onValidationChange?.(errorMsg);
2990 - onFieldError?.(!!errorMsg);
2991 - },
2992 - error: error,
2993 - focusOnShow: true,
2994 - selectOnShow: autoEditVariableId === row.id,
2995 - showWarningInfotip: true,
2996 - variables: variables
2997 - }),
2998 - autoEdit: autoEditVariableId === row.id && !isDisabled,
2999 - onRowRef: handleRowRef(row.id),
3000 - onAutoEditComplete: autoEditVariableId === row.id ? onAutoEditComplete : undefined,
3001 - fieldType: "label",
3002 - disabled: isDisabled
3003 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__.EllipsisWithTooltip, {
3004 - title: row.name,
3005 - sx: {
3006 - border: '4px solid transparent'
3007 - }
3008 - }, row.name))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_variable_table_cell__WEBPACK_IMPORTED_MODULE_9__.VariableTableCell, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_variable_editable_cell__WEBPACK_IMPORTED_MODULE_7__.VariableEditableCell, {
3009 - initialValue: row.value,
3010 - onChange: value => {
3011 - if (value !== row.value && !isDisabled) {
3012 - handleOnChange({
3013 - ...variables,
3014 - [row.id]: {
3015 - ...variables[row.id],
3016 - value
3017 - }
3018 - });
3019 - }
3020 - },
3021 - editableElement: ({
3022 - value,
3023 - onChange,
3024 - onValidationChange,
3025 - error
3026 - }) => row.valueField?.({
3027 - value,
3028 - onChange,
3029 - onPropTypeKeyChange: type => {
3030 - if (!isDisabled && type !== row.type) {
3031 - handleOnChange({
3032 - ...variables,
3033 - [row.id]: {
3034 - ...variables[row.id],
3035 - type
3036 - }
3037 - });
3038 - }
3039 - },
3040 - propTypeKey: row.type,
3041 - onValidationChange: errorMsg => {
3042 - onValidationChange?.(errorMsg);
3043 - onFieldError?.(!!errorMsg);
3044 - },
3045 - error
3046 - }) ?? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null),
3047 - onRowRef: handleRowRef(row.id),
3048 - gap: 0.25,
3049 - fieldType: "value",
3050 - disabled: isDisabled
3051 - }, row.startIcon && row.startIcon({
3052 - value: row.value
3053 - }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_1__.EllipsisWithTooltip, {
3054 - title: row.value,
3055 - sx: {
3056 - border: '4px solid transparent',
3057 - lineHeight: '1',
3058 - pt: 0.25
3059 - }
3060 - }, row.value))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_variable_table_cell__WEBPACK_IMPORTED_MODULE_9__.VariableTableCell, {
3061 - align: "right",
3062 - noPadding: true,
3063 - width: 16,
3064 - maxWidth: 16,
3065 - sx: {
3066 - paddingInlineEnd: 1
3067 - }
3068 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_3__.Stack, {
3069 - role: "toolbar",
3070 - direction: "row",
3071 - justifyContent: "flex-end",
3072 - alignItems: "center"
3073 - }, isDisabled && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui_variable_promotion_chip__WEBPACK_IMPORTED_MODULE_6__.VariablePromotionChip, {
3074 - variableType: row.variableType,
3075 - upgradeUrl: `https://go.elementor.com/renew-license-manager-${row.variableType}-variable`,
3076 - ref: promotionRef,
3077 - trackingData: TRACKING_DATA
3078 - }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_variable_edit_menu__WEBPACK_IMPORTED_MODULE_8__.VariableEditMenu, {
3079 - menuActions: menuActions(row.id),
3080 - disabled: isSorting,
3081 - itemId: row.id
3082 - }))));
3083 -};
3084 -
3085 -/***/ }),
3086 -
3087 -/***/ "./packages/packages/core/editor-variables/src/components/variables-manager/variable-editable-cell.tsx":
3088 -/*!*************************************************************************************************************!*\
3089 - !*** ./packages/packages/core/editor-variables/src/components/variables-manager/variable-editable-cell.tsx ***!
3090 - \*************************************************************************************************************/
3091 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3092 -
3093 -__webpack_require__.r(__webpack_exports__);
3094 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3095 -/* harmony export */ VariableEditableCell: function() { return /* binding */ VariableEditableCell; }
3096 -/* harmony export */ });
3097 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
3098 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
3099 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3100 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__);
3101 -/* harmony import */ var _fields_label_field__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../fields/label-field */ "./packages/packages/core/editor-variables/src/components/fields/label-field.tsx");
3102 -
3103 -
3104 -
3105 -
3106 -const VariableEditableCell = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(({
3107 - initialValue,
3108 - children,
3109 - editableElement,
3110 - onChange,
3111 - prefixElement,
3112 - autoEdit = false,
3113 - onRowRef,
3114 - onAutoEditComplete,
3115 - gap = 1,
3116 - fieldType,
3117 - disabled = false
3118 -}) => {
3119 - const [value, setValue] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(initialValue);
3120 - const [isEditing, setIsEditing] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
3121 - const {
3122 - labelFieldError,
3123 - setLabelFieldError
3124 - } = (0,_fields_label_field__WEBPACK_IMPORTED_MODULE_2__.useLabelError)();
3125 - const [valueFieldError, setValueFieldError] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)('');
3126 - const rowRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
3127 - const handleSave = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
3128 - const hasError = fieldType === 'label' && labelFieldError?.message || fieldType === 'value' && valueFieldError;
3129 - if (!hasError) {
3130 - onChange(value);
3131 - }
3132 - setIsEditing(false);
3133 - }, [value, onChange, fieldType, labelFieldError, valueFieldError]);
3134 - (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
3135 - onRowRef?.(rowRef?.current);
3136 - }, [onRowRef]);
3137 - (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
3138 - if (autoEdit && !isEditing && !disabled) {
3139 - setIsEditing(true);
3140 - onAutoEditComplete?.();
3141 - }
3142 - }, [autoEdit, isEditing, onAutoEditComplete, disabled]);
3143 - const handleDoubleClick = () => {
3144 - if (disabled) {
3145 - return;
3146 - }
3147 - setIsEditing(true);
3148 - };
3149 - const handleKeyDown = event => {
3150 - if (disabled) {
3151 - return;
3152 - }
3153 - if (event.key === 'Enter') {
3154 - handleSave();
3155 - } else if (event.key === 'Escape') {
3156 - setIsEditing(false);
3157 - }
3158 - if (event.key === ' ' && !isEditing) {
3159 - event.preventDefault();
3160 - setIsEditing(true);
3161 - }
3162 - };
3163 - const handleChange = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(newValue => {
3164 - setValue(newValue);
3165 - }, []);
3166 - const handleValidationChange = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(errorMsg => {
3167 - if (fieldType === 'label') {
3168 - setLabelFieldError({
3169 - value,
3170 - message: errorMsg
3171 - });
3172 - } else {
3173 - setValueFieldError(errorMsg);
3174 - }
3175 - }, [fieldType, value, setLabelFieldError, setValueFieldError]);
3176 - let currentError;
3177 - if (fieldType === 'label') {
3178 - currentError = labelFieldError;
3179 - } else if (fieldType === 'value') {
3180 - currentError = {
3181 - value,
3182 - message: valueFieldError
3183 - };
3184 - }
3185 - const editableContent = editableElement({
3186 - value,
3187 - onChange: handleChange,
3188 - onValidationChange: handleValidationChange,
3189 - error: currentError
3190 - });
3191 - if (isEditing) {
3192 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.ClickAwayListener, {
3193 - onClickAway: handleSave
3194 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Stack, {
3195 - ref: rowRef,
3196 - direction: "row",
3197 - alignItems: "center",
3198 - gap: gap,
3199 - onDoubleClick: handleDoubleClick,
3200 - onKeyDown: handleKeyDown,
3201 - tabIndex: 0,
3202 - role: "button",
3203 - "aria-label": "Double click or press Space to edit"
3204 - }, prefixElement, editableContent));
3205 - }
3206 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Stack, {
3207 - ref: rowRef,
3208 - direction: "row",
3209 - alignItems: "center",
3210 - gap: gap,
3211 - onDoubleClick: handleDoubleClick,
3212 - onKeyDown: handleKeyDown,
3213 - tabIndex: disabled ? -1 : 0,
3214 - role: "button",
3215 - "aria-label": disabled ? '' : 'Double click or press Space to edit'
3216 - }, prefixElement, children);
3217 -});
3218 -
3219 -/***/ }),
3220 -
3221 -/***/ "./packages/packages/core/editor-variables/src/components/variables-manager/variables-manager-create-menu.tsx":
3222 -/*!********************************************************************************************************************!*\
3223 - !*** ./packages/packages/core/editor-variables/src/components/variables-manager/variables-manager-create-menu.tsx ***!
3224 - \********************************************************************************************************************/
3225 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3226 -
3227 -__webpack_require__.r(__webpack_exports__);
3228 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3229 -/* harmony export */ SIZE: function() { return /* binding */ SIZE; },
3230 -/* harmony export */ VariableManagerCreateMenu: function() { return /* binding */ VariableManagerCreateMenu; },
3231 -/* harmony export */ getDefaultName: function() { return /* binding */ getDefaultName; }
3232 -/* harmony export */ });
3233 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
3234 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
3235 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
3236 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_icons__WEBPACK_IMPORTED_MODULE_1__);
3237 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3238 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__);
3239 -/* harmony import */ var _elementor_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @elementor/utils */ "@elementor/utils");
3240 -/* harmony import */ var _elementor_utils__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_elementor_utils__WEBPACK_IMPORTED_MODULE_3__);
3241 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3242 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__);
3243 -/* harmony import */ var _hooks_use_quota_permissions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../hooks/use-quota-permissions */ "./packages/packages/core/editor-variables/src/hooks/use-quota-permissions.ts");
3244 -/* harmony import */ var _utils_tracking__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../utils/tracking */ "./packages/packages/core/editor-variables/src/utils/tracking.ts");
3245 -/* harmony import */ var _variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../variables-registry/variable-type-registry */ "./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");
3246 -/* harmony import */ var _ui_variable_promotion_chip__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../ui/variable-promotion-chip */ "./packages/packages/core/editor-variables/src/components/ui/variable-promotion-chip.tsx");
3247 -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); }
3248 -
3249 -
3250 -
3251 -
3252 -
3253 -
3254 -
3255 -
3256 -
3257 -
3258 -const TRACKING_DATA = {
3259 - target_name: 'variables_manager',
3260 - target_location: 'variables_manager',
3261 - location_l1: 'create variable menu'
3262 -};
3263 -const SIZE = 'tiny';
3264 -const VariableManagerCreateMenu = ({
3265 - variables,
3266 - onCreate,
3267 - menuState,
3268 - outlinedTrigger = false
3269 -}) => {
3270 - const buttonRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
3271 - const variableTypes = (0,_variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_7__.getVariableTypes)();
3272 - const menuOptionConfigs = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => Object.entries(variableTypes).filter(([, variable]) => !!variable.defaultValue).map(([key, variable]) => ({
3273 - key,
3274 - propTypeKey: variable.propTypeUtil.key,
3275 - variableType: variable.variableType,
3276 - defaultValue: variable.defaultValue || '',
3277 - icon: variable.icon
3278 - })), [variableTypes]);
3279 - 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_2__.IconButton, _extends({}, (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.bindTrigger)(menuState), {
3280 - ref: buttonRef,
3281 - size: SIZE,
3282 - variant: outlinedTrigger ? 'outlined' : undefined,
3283 - "aria-label": (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Add variable', 'elementor')
3284 - }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_1__.PlusIcon, {
3285 - fontSize: SIZE
3286 - })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Menu, _extends({
3287 - disablePortal: true,
3288 - MenuListProps: {
3289 - dense: true
3290 - },
3291 - PaperProps: {
3292 - elevation: 6
3293 - }
3294 - }, (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.bindMenu)(menuState), {
3295 - anchorEl: buttonRef.current,
3296 - anchorOrigin: {
3297 - vertical: 'bottom',
3298 - horizontal: 'right'
3299 - },
3300 - transformOrigin: {
3301 - vertical: 'top',
3302 - horizontal: 'right'
3303 - },
3304 - "data-testid": "variable-manager-create-menu"
3305 - }), menuOptionConfigs.map(config => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(MenuOption, {
3306 - key: config.key,
3307 - config: config,
3308 - variables: variables,
3309 - onCreate: onCreate,
3310 - onClose: menuState.close
3311 - }))));
3312 -};
3313 -const MenuOption = ({
3314 - config,
3315 - variables,
3316 - onCreate,
3317 - onClose
3318 -}) => {
3319 - const promotionRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
3320 - const userQuotaPermissions = (0,_hooks_use_quota_permissions__WEBPACK_IMPORTED_MODULE_5__.useQuotaPermissions)(config.propTypeKey);
3321 - const displayName = (0,_elementor_utils__WEBPACK_IMPORTED_MODULE_3__.capitalize)(config.variableType);
3322 - const isDisabled = !userQuotaPermissions.canAdd();
3323 - const handleClick = () => {
3324 - if (isDisabled) {
3325 - promotionRef.current?.toggle();
3326 - return;
3327 - }
3328 - const defaultName = getDefaultName(variables, config.variableType);
3329 - onCreate(config.key, defaultName, config.defaultValue);
3330 - (0,_utils_tracking__WEBPACK_IMPORTED_MODULE_6__.trackVariablesManagerEvent)({
3331 - action: 'add',
3332 - varType: config.variableType
3333 - });
3334 - onClose();
3335 - };
3336 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.MenuItem, {
3337 - onClick: handleClick,
3338 - sx: {
3339 - gap: 1.5,
3340 - cursor: 'pointer'
3341 - }
3342 - }, /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(config.icon, {
3343 - fontSize: SIZE,
3344 - color: isDisabled ? 'disabled' : 'action'
3345 - }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Typography, {
3346 - variant: "caption",
3347 - color: isDisabled ? 'text.disabled' : 'text.primary'
3348 - }, displayName), isDisabled && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui_variable_promotion_chip__WEBPACK_IMPORTED_MODULE_8__.VariablePromotionChip, {
3349 - variableType: config.variableType,
3350 - upgradeUrl: `https://go.elementor.com/go-pro-manager-${config.variableType}-variable/`,
3351 - ref: promotionRef,
3352 - trackingData: TRACKING_DATA
3353 - }));
3354 -};
3355 -const getDefaultName = (variables, baseName) => {
3356 - const pattern = new RegExp(`^${baseName}-(\\d+)$`, 'i');
3357 - const takenNumbers = new Set();
3358 - Object.values(variables).forEach(variable => {
3359 - const match = variable.label.match(pattern);
3360 - if (match) {
3361 - takenNumbers.add(parseInt(match[1], 10));
3362 - }
3363 - });
3364 - let counter = 1;
3365 - while (takenNumbers.has(counter)) {
3366 - counter++;
3367 - }
3368 - return `${baseName}-${counter}`;
3369 -};
3370 -
3371 -/***/ }),
3372 -
3373 -/***/ "./packages/packages/core/editor-variables/src/components/variables-manager/variables-manager-panel.tsx":
3374 -/*!**************************************************************************************************************!*\
3375 - !*** ./packages/packages/core/editor-variables/src/components/variables-manager/variables-manager-panel.tsx ***!
3376 - \**************************************************************************************************************/
3377 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3378 -
3379 -__webpack_require__.r(__webpack_exports__);
3380 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3381 -/* harmony export */ VariablesManagerPanelEmbedded: function() { return /* binding */ VariablesManagerPanelEmbedded; }
3382 -/* harmony export */ });
3383 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
3384 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
3385 -/* harmony import */ var _elementor_editor_current_user__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-current-user */ "@elementor/editor-current-user");
3386 -/* harmony import */ var _elementor_editor_current_user__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_current_user__WEBPACK_IMPORTED_MODULE_1__);
3387 -/* harmony import */ var _elementor_editor_panels__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/editor-panels */ "@elementor/editor-panels");
3388 -/* harmony import */ var _elementor_editor_panels__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_panels__WEBPACK_IMPORTED_MODULE_2__);
3389 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @elementor/editor-ui */ "@elementor/editor-ui");
3390 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_3__);
3391 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
3392 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_elementor_icons__WEBPACK_IMPORTED_MODULE_4__);
3393 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3394 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_5__);
3395 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3396 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__);
3397 -/* harmony import */ var _utils_tracking__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../utils/tracking */ "./packages/packages/core/editor-variables/src/utils/tracking.ts");
3398 -/* harmony import */ var _utils_validations__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../utils/validations */ "./packages/packages/core/editor-variables/src/utils/validations.ts");
3399 -/* harmony import */ var _variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../variables-registry/variable-type-registry */ "./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");
3400 -/* harmony import */ var _ui_delete_confirmation_dialog__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../ui/delete-confirmation-dialog */ "./packages/packages/core/editor-variables/src/components/ui/delete-confirmation-dialog.tsx");
3401 -/* harmony import */ var _ui_empty_state__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../ui/empty-state */ "./packages/packages/core/editor-variables/src/components/ui/empty-state.tsx");
3402 -/* harmony import */ var _ui_no_search_results__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../ui/no-search-results */ "./packages/packages/core/editor-variables/src/components/ui/no-search-results.tsx");
3403 -/* harmony import */ var _hooks_use_auto_edit__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./hooks/use-auto-edit */ "./packages/packages/core/editor-variables/src/components/variables-manager/hooks/use-auto-edit.ts");
3404 -/* harmony import */ var _hooks_use_error_navigation__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./hooks/use-error-navigation */ "./packages/packages/core/editor-variables/src/components/variables-manager/hooks/use-error-navigation.ts");
3405 -/* harmony import */ var _hooks_use_variables_manager_state__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./hooks/use-variables-manager-state */ "./packages/packages/core/editor-variables/src/components/variables-manager/hooks/use-variables-manager-state.ts");
3406 -/* harmony import */ var _variables_manager_create_menu__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./variables-manager-create-menu */ "./packages/packages/core/editor-variables/src/components/variables-manager/variables-manager-create-menu.tsx");
3407 -/* harmony import */ var _variables_manager_table__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./variables-manager-table */ "./packages/packages/core/editor-variables/src/components/variables-manager/variables-manager-table.tsx");
3408 -
3409 -
3410 -
3411 -
3412 -
3413 -
3414 -
3415 -
3416 -
3417 -
3418 -
3419 -
3420 -
3421 -
3422 -
3423 -
3424 -
3425 -
3426 -
3427 -const STOP_SYNC_MESSAGE_KEY = 'stop-sync-variable';
3428 -function VariablesManagerPanelEmbedded({
3429 - onRequestClose,
3430 - onExposeCloseAttempt
3431 -}) {
3432 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(VariablesManagerPanelContent, {
3433 - onRequestClose: onRequestClose,
3434 - onExposeCloseAttempt: onExposeCloseAttempt
3435 - });
3436 -}
3437 -function VariablesManagerPanelContent({
3438 - onRequestClose,
3439 - onExposeCloseAttempt
3440 -}) {
3441 - const {
3442 - open: openSaveChangesDialog,
3443 - close: closeSaveChangesDialog,
3444 - isOpen: isSaveChangesDialogOpen
3445 - } = (0,_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_3__.useDialog)();
3446 - const [isStopSyncSuppressed] = (0,_elementor_editor_current_user__WEBPACK_IMPORTED_MODULE_1__.useSuppressedMessage)(STOP_SYNC_MESSAGE_KEY);
3447 - const createMenuState = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_5__.usePopupState)({
3448 - variant: 'popover'
3449 - });
3450 - const {
3451 - variables,
3452 - isDirty,
3453 - searchValue,
3454 - isSaveDisabled,
3455 - handleOnChange,
3456 - createVariable,
3457 - duplicateVariable,
3458 - handleDeleteVariable,
3459 - handleStartSync: startSyncFromState,
3460 - handleStopSync: stopSyncFromState,
3461 - handleSave,
3462 - isSaving,
3463 - handleSearch,
3464 - setIsSaving,
3465 - setIsSaveDisabled
3466 - } = (0,_hooks_use_variables_manager_state__WEBPACK_IMPORTED_MODULE_15__.useVariablesManagerState)();
3467 - const {
3468 - autoEditVariableId,
3469 - startAutoEdit,
3470 - handleAutoEditComplete
3471 - } = (0,_hooks_use_auto_edit__WEBPACK_IMPORTED_MODULE_13__.useAutoEdit)();
3472 - const {
3473 - createNavigationCallback,
3474 - resetNavigation
3475 - } = (0,_hooks_use_error_navigation__WEBPACK_IMPORTED_MODULE_14__.useErrorNavigation)();
3476 - const [deleteConfirmation, setDeleteConfirmation] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
3477 - const [stopSyncConfirmation, setStopSyncConfirmation] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
3478 - const [serverError, setServerError] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
3479 - usePreventUnload(isDirty);
3480 - const handleClosePanel = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
3481 - if (isDirty) {
3482 - openSaveChangesDialog();
3483 - return;
3484 - }
3485 - void onRequestClose();
3486 - }, [isDirty, openSaveChangesDialog, onRequestClose]);
3487 - (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
3488 - if (!onExposeCloseAttempt) {
3489 - return;
3490 - }
3491 - onExposeCloseAttempt(() => handleClosePanel());
3492 - return () => onExposeCloseAttempt(null);
3493 - }, [onExposeCloseAttempt, handleClosePanel]);
3494 - const handleCreateVariable = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((type, defaultName, defaultValue) => {
3495 - const newId = createVariable(type, defaultName, defaultValue);
3496 - if (newId) {
3497 - startAutoEdit(newId);
3498 - }
3499 - }, [createVariable, startAutoEdit]);
3500 - const handleSaveClick = async () => {
3501 - try {
3502 - setServerError(null);
3503 - resetNavigation();
3504 - const result = await handleSave();
3505 - (0,_utils_tracking__WEBPACK_IMPORTED_MODULE_7__.trackVariablesManagerEvent)({
3506 - action: 'saveChanges'
3507 - });
3508 - return result;
3509 - } catch (error) {
3510 - const mappedError = (0,_utils_validations__WEBPACK_IMPORTED_MODULE_8__.mapServerError)(error);
3511 - const duplicatedIds = mappedError?.action?.data?.duplicatedIds;
3512 - if (mappedError && 'label' === mappedError.field) {
3513 - if (duplicatedIds && mappedError.action) {
3514 - mappedError.action.callback = createNavigationCallback(duplicatedIds, startAutoEdit, () => {
3515 - setIsSaveDisabled(false);
3516 - });
3517 - }
3518 - setServerError(mappedError);
3519 - setIsSaveDisabled(true);
3520 - resetNavigation();
3521 - }
3522 - return {
3523 - success: false,
3524 - error: mappedError
3525 - };
3526 - } finally {
3527 - setIsSaving(false);
3528 - }
3529 - };
3530 - const handleDeleteVariableWithConfirmation = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(itemId => {
3531 - handleDeleteVariable(itemId);
3532 - setDeleteConfirmation(null);
3533 - }, [handleDeleteVariable]);
3534 - const commitStopSync = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(itemId => {
3535 - stopSyncFromState(itemId);
3536 - const variable = variables[itemId];
3537 - if (variable) {
3538 - (0,_utils_tracking__WEBPACK_IMPORTED_MODULE_7__.trackVariableSyncToV3)({
3539 - variableLabel: variable.label,
3540 - action: 'unsync'
3541 - });
3542 - }
3543 - }, [stopSyncFromState, variables]);
3544 - const handleStartSync = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(itemId => {
3545 - startSyncFromState(itemId);
3546 - const variable = variables[itemId];
3547 - if (variable) {
3548 - (0,_utils_tracking__WEBPACK_IMPORTED_MODULE_7__.trackVariableSyncToV3)({
3549 - variableLabel: variable.label,
3550 - action: 'sync'
3551 - });
3552 - }
3553 - }, [startSyncFromState, variables]);
3554 - const handleStopSync = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(itemId => {
3555 - if (!isStopSyncSuppressed) {
3556 - setStopSyncConfirmation(itemId);
3557 - } else {
3558 - commitStopSync(itemId);
3559 - }
3560 - }, [isStopSyncSuppressed, commitStopSync]);
3561 - const buildMenuActions = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(variableId => {
3562 - const variable = variables[variableId];
3563 - if (!variable) {
3564 - return [];
3565 - }
3566 - const typeActions = (0,_variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_9__.getMenuActionsForVariable)(variable.type, {
3567 - variable,
3568 - variableId,
3569 - handlers: {
3570 - onStartSync: handleStartSync,
3571 - onStopSync: handleStopSync
3572 - }
3573 - });
3574 - const duplicateAction = {
3575 - name: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Duplicate', 'elementor'),
3576 - icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_4__.CopyIcon,
3577 - color: 'text.primary',
3578 - onClick: itemId => {
3579 - const newId = duplicateVariable(itemId);
3580 - startAutoEdit(newId);
3581 - const variableTypeOptions = (0,_variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_9__.getVariableType)(variable.type);
3582 - (0,_utils_tracking__WEBPACK_IMPORTED_MODULE_7__.trackVariablesManagerEvent)({
3583 - action: 'duplicate',
3584 - varType: variableTypeOptions?.variableType
3585 - });
3586 - }
3587 - };
3588 - const deleteAction = {
3589 - name: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Delete', 'elementor'),
3590 - icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_4__.TrashIcon,
3591 - color: 'error.main',
3592 - onClick: itemId => {
3593 - const v = variables[itemId];
3594 - if (v) {
3595 - setDeleteConfirmation({
3596 - id: itemId,
3597 - label: v.label
3598 - });
3599 - const variableTypeOptions = (0,_variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_9__.getVariableType)(v.type);
3600 - (0,_utils_tracking__WEBPACK_IMPORTED_MODULE_7__.trackVariablesManagerEvent)({
3601 - action: 'delete',
3602 - varType: variableTypeOptions?.variableType
3603 - });
3604 - }
3605 - }
3606 - };
3607 - return [...typeActions, duplicateAction, deleteAction];
3608 - }, [variables, handleStartSync, handleStopSync, duplicateVariable, startAutoEdit]);
3609 - const hasVariables = Object.keys(variables).length > 0;
3610 - 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_5__.Stack, {
3611 - direction: "column",
3612 - sx: {
3613 - height: '100%',
3614 - width: '100%',
3615 - flex: 1,
3616 - minHeight: 0,
3617 - overflow: 'hidden'
3618 - }
3619 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_5__.Stack, {
3620 - direction: "row",
3621 - alignItems: "center",
3622 - spacing: 1,
3623 - width: "100%",
3624 - sx: {
3625 - flexShrink: 0,
3626 - px: 2,
3627 - pb: 1
3628 - }
3629 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_3__.SearchField, {
3630 - placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Search', 'elementor'),
3631 - value: searchValue,
3632 - onSearch: handleSearch,
3633 - sx: {
3634 - flex: 1,
3635 - minWidth: 0,
3636 - px: 0,
3637 - py: 0,
3638 - display: 'flex',
3639 - alignItems: 'center',
3640 - alignSelf: 'stretch'
3641 - }
3642 - }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_5__.Box, {
3643 - sx: {
3644 - display: 'flex',
3645 - flexShrink: 0,
3646 - alignItems: 'center'
3647 - }
3648 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_variables_manager_create_menu__WEBPACK_IMPORTED_MODULE_16__.VariableManagerCreateMenu, {
3649 - outlinedTrigger: true,
3650 - onCreate: handleCreateVariable,
3651 - variables: variables,
3652 - menuState: createMenuState
3653 - }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_5__.Divider, {
3654 - sx: {
3655 - width: '100%'
3656 - }
3657 - }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_panels__WEBPACK_IMPORTED_MODULE_2__.PanelBody, {
3658 - sx: {
3659 - display: 'flex',
3660 - flexDirection: 'column',
3661 - flex: 1,
3662 - minHeight: 0
3663 - }
3664 - }, hasVariables && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_variables_manager_table__WEBPACK_IMPORTED_MODULE_17__.VariablesManagerTable, {
3665 - menuActions: buildMenuActions,
3666 - variables: variables,
3667 - onChange: handleOnChange,
3668 - autoEditVariableId: autoEditVariableId,
3669 - onAutoEditComplete: handleAutoEditComplete,
3670 - onFieldError: setIsSaveDisabled
3671 - }), !hasVariables && searchValue && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui_no_search_results__WEBPACK_IMPORTED_MODULE_12__.NoSearchResults, {
3672 - searchValue: searchValue,
3673 - onClear: () => handleSearch(''),
3674 - icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_4__.ColorFilterIcon, {
3675 - fontSize: "large"
3676 - })
3677 - }), !hasVariables && !searchValue && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui_empty_state__WEBPACK_IMPORTED_MODULE_11__.EmptyState, {
3678 - title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Create your first variable', 'elementor'),
3679 - message: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Variables are saved attributes that you can apply anywhere on your site.', 'elementor'),
3680 - icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_4__.ColorFilterIcon, {
3681 - fontSize: "large"
3682 - }),
3683 - onAdd: createMenuState.open
3684 - })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_panels__WEBPACK_IMPORTED_MODULE_2__.PanelFooter, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_5__.Infotip, {
3685 - placement: "right",
3686 - open: !!serverError,
3687 - content: serverError ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_5__.Alert, {
3688 - severity: serverError.severity ?? 'error',
3689 - action: serverError.action?.label ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_5__.AlertAction, {
3690 - onClick: serverError.action.callback
3691 - }, serverError.action.label) : undefined,
3692 - onClose: !serverError.action?.label ? () => {
3693 - setServerError(null);
3694 - setIsSaveDisabled(false);
3695 - } : undefined,
3696 - icon: serverError.IconComponent ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(serverError.IconComponent, null) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_4__.AlertTriangleFilledIcon, null)
3697 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_5__.AlertTitle, null, serverError.message), serverError.action?.message) : null,
3698 - arrow: false,
3699 - slotProps: {
3700 - popper: {
3701 - modifiers: [{
3702 - name: 'offset',
3703 - options: {
3704 - offset: [-10, 10]
3705 - }
3706 - }]
3707 - }
3708 - }
3709 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_5__.Button, {
3710 - fullWidth: true,
3711 - size: "small",
3712 - color: "global",
3713 - variant: "contained",
3714 - disabled: isSaveDisabled || !isDirty || isSaving,
3715 - onClick: handleSaveClick,
3716 - loading: isSaving
3717 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Save changes', 'elementor'))))), deleteConfirmation && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui_delete_confirmation_dialog__WEBPACK_IMPORTED_MODULE_10__.DeleteConfirmationDialog, {
3718 - open: true,
3719 - label: deleteConfirmation.label,
3720 - onConfirm: () => handleDeleteVariableWithConfirmation(deleteConfirmation.id),
3721 - closeDialog: () => setDeleteConfirmation(null)
3722 - }), stopSyncConfirmation && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(StopSyncConfirmationDialog, {
3723 - open: true,
3724 - onClose: () => setStopSyncConfirmation(null),
3725 - onConfirm: () => {
3726 - commitStopSync(stopSyncConfirmation);
3727 - setStopSyncConfirmation(null);
3728 - }
3729 - }), isSaveChangesDialogOpen && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_3__.SaveChangesDialog, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_3__.SaveChangesDialog.Title, {
3730 - onClose: closeSaveChangesDialog
3731 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('You have unsaved changes', 'elementor')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_3__.SaveChangesDialog.Content, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_3__.SaveChangesDialog.ContentText, null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('You have unsaved changes in the Variables Manager.', 'elementor')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_3__.SaveChangesDialog.ContentText, null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('To avoid losing your updates, save your changes before leaving.', 'elementor'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_3__.SaveChangesDialog.Actions, {
3732 - actions: {
3733 - discard: {
3734 - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Discard', 'elementor'),
3735 - action: () => {
3736 - closeSaveChangesDialog();
3737 - void onRequestClose();
3738 - }
3739 - },
3740 - confirm: {
3741 - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Save', 'elementor'),
3742 - action: async () => {
3743 - const result = await handleSaveClick();
3744 - closeSaveChangesDialog();
3745 - if (result?.success) {
3746 - void onRequestClose();
3747 - }
3748 - }
3749 - }
3750 - }
3751 - })));
3752 -}
3753 -const usePreventUnload = isDirty => {
3754 - (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
3755 - const handleBeforeUnload = event => {
3756 - if (isDirty) {
3757 - event.preventDefault();
3758 - }
3759 - };
3760 - window.addEventListener('beforeunload', handleBeforeUnload);
3761 - return () => {
3762 - window.removeEventListener('beforeunload', handleBeforeUnload);
3763 - };
3764 - }, [isDirty]);
3765 -};
3766 -const StopSyncConfirmationDialog = ({
3767 - open,
3768 - onClose,
3769 - onConfirm
3770 -}) => {
3771 - const [, suppressStopSyncMessage] = (0,_elementor_editor_current_user__WEBPACK_IMPORTED_MODULE_1__.useSuppressedMessage)(STOP_SYNC_MESSAGE_KEY);
3772 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_3__.ConfirmationDialog, {
3773 - open: open,
3774 - onClose: onClose
3775 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_3__.ConfirmationDialog.Title, {
3776 - icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_4__.ColorFilterIcon,
3777 - iconColor: "primary"
3778 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Stop syncing variable color', 'elementor')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_3__.ConfirmationDialog.Content, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_3__.ConfirmationDialog.ContentText, null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('This will disconnect the variable color from Global Colors. Existing uses on your site will automatically switch to a default color.', 'elementor'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_3__.ConfirmationDialog.Actions, {
3779 - onClose: onClose,
3780 - onConfirm: onConfirm,
3781 - cancelLabel: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Cancel', 'elementor'),
3782 - confirmLabel: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Got it', 'elementor'),
3783 - color: "primary",
3784 - onSuppressMessage: suppressStopSyncMessage,
3785 - suppressLabel: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)("Don't show again", 'elementor')
3786 - }));
3787 -};
3788 -
3789 -/***/ }),
3790 -
3791 -/***/ "./packages/packages/core/editor-variables/src/components/variables-manager/variables-manager-table.tsx":
3792 -/*!**************************************************************************************************************!*\
3793 - !*** ./packages/packages/core/editor-variables/src/components/variables-manager/variables-manager-table.tsx ***!
3794 - \**************************************************************************************************************/
3795 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3796 -
3797 -__webpack_require__.r(__webpack_exports__);
3798 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3799 -/* harmony export */ VariablesManagerTable: function() { return /* binding */ VariablesManagerTable; }
3800 -/* harmony export */ });
3801 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
3802 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
3803 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3804 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__);
3805 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3806 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__);
3807 -/* harmony import */ var _variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../variables-registry/variable-type-registry */ "./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");
3808 -/* harmony import */ var _ui_variable_table_cell__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ui/variable-table-cell */ "./packages/packages/core/editor-variables/src/components/variables-manager/ui/variable-table-cell.tsx");
3809 -/* harmony import */ var _ui_variable_table_row__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ui/variable-table-row */ "./packages/packages/core/editor-variables/src/components/variables-manager/ui/variable-table-row.tsx");
3810 -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); }
3811 -
3812 -
3813 -
3814 -
3815 -
3816 -
3817 -
3818 -const VariablesManagerTable = ({
3819 - menuActions,
3820 - variables,
3821 - onChange: handleOnChange,
3822 - autoEditVariableId,
3823 - onAutoEditComplete,
3824 - onFieldError
3825 -}) => {
3826 - const tableContainerRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
3827 - const variableRowRefs = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(new Map());
3828 - (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
3829 - if (autoEditVariableId && tableContainerRef.current) {
3830 - const rowElement = variableRowRefs.current.get(autoEditVariableId);
3831 - if (rowElement) {
3832 - setTimeout(() => {
3833 - rowElement.scrollIntoView({
3834 - behavior: 'smooth',
3835 - block: 'center',
3836 - inline: 'nearest'
3837 - });
3838 - }, 100);
3839 - }
3840 - }
3841 - }, [autoEditVariableId]);
3842 - const handleRowRef = id => ref => {
3843 - if (ref) {
3844 - variableRowRefs.current.set(id, ref);
3845 - } else {
3846 - variableRowRefs.current.delete(id);
3847 - }
3848 - };
3849 - const ids = Object.keys(variables).sort(sortVariablesOrder(variables));
3850 - const rows = ids.map(id => {
3851 - const variable = variables[id];
3852 - const variableType = (0,_variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_3__.getVariableType)(variable.type);
3853 - if (!variableType) {
3854 - return null;
3855 - }
3856 - return {
3857 - id,
3858 - type: variable.type,
3859 - name: variable.label,
3860 - value: variable.value,
3861 - ...variableType
3862 - };
3863 - }).filter(Boolean);
3864 - const tableSX = {
3865 - minWidth: 250,
3866 - tableLayout: 'fixed'
3867 - };
3868 - const handleReorder = newIds => {
3869 - const updatedVariables = {
3870 - ...variables
3871 - };
3872 - newIds.forEach((id, index) => {
3873 - const current = updatedVariables[id];
3874 - if (!current) {
3875 - return;
3876 - }
3877 - updatedVariables[id] = Object.assign({}, current, {
3878 - order: index + 1
3879 - });
3880 - });
3881 - handleOnChange(updatedVariables);
3882 - };
3883 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.TableContainer, {
3884 - ref: tableContainerRef,
3885 - sx: {
3886 - overflow: 'initial'
3887 - }
3888 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Table, {
3889 - sx: tableSX,
3890 - "aria-label": "Variables manager list with drag and drop reordering",
3891 - stickyHeader: true
3892 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.TableHead, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.TableRow, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui_variable_table_cell__WEBPACK_IMPORTED_MODULE_4__.VariableTableCell, {
3893 - isHeader: true,
3894 - noPadding: true,
3895 - width: 10,
3896 - maxWidth: 10
3897 - }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui_variable_table_cell__WEBPACK_IMPORTED_MODULE_4__.VariableTableCell, {
3898 - isHeader: true
3899 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Name', 'elementor')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui_variable_table_cell__WEBPACK_IMPORTED_MODULE_4__.VariableTableCell, {
3900 - isHeader: true
3901 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Value', 'elementor')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui_variable_table_cell__WEBPACK_IMPORTED_MODULE_4__.VariableTableCell, {
3902 - isHeader: true,
3903 - noPadding: true,
3904 - width: 16,
3905 - maxWidth: 16
3906 - }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.TableBody, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.UnstableSortableProvider, {
3907 - value: ids,
3908 - onChange: handleReorder,
3909 - variant: "static",
3910 - restrictAxis: true,
3911 - dragOverlay: ({
3912 - children: dragOverlayChildren,
3913 - ...dragOverlayProps
3914 - }) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Table, _extends({
3915 - sx: tableSX
3916 - }, dragOverlayProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.TableBody, null, dragOverlayChildren))
3917 - }, rows.map(row => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.UnstableSortableItem, {
3918 - key: row.id,
3919 - id: row.id,
3920 - render: props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui_variable_table_row__WEBPACK_IMPORTED_MODULE_5__.VariableRow, _extends({}, props, {
3921 - row: row,
3922 - variables: variables,
3923 - handleOnChange: handleOnChange,
3924 - autoEditVariableId: autoEditVariableId,
3925 - onAutoEditComplete: onAutoEditComplete,
3926 - onFieldError: onFieldError,
3927 - menuActions: menuActions,
3928 - handleRowRef: handleRowRef
3929 - }))
3930 - }))))));
3931 -};
3932 -function sortVariablesOrder(variables) {
3933 - return (a, b) => {
3934 - const orderA = variables[a]?.order ?? Number.MAX_SAFE_INTEGER;
3935 - const orderB = variables[b]?.order ?? Number.MAX_SAFE_INTEGER;
3936 - return orderA - orderB;
3937 - };
3938 -}
3939 -
3940 -/***/ }),
3941 -
3942 -/***/ "./packages/packages/core/editor-variables/src/components/variables-repeater-item-slot.tsx":
3943 -/*!*************************************************************************************************!*\
3944 - !*** ./packages/packages/core/editor-variables/src/components/variables-repeater-item-slot.tsx ***!
3945 - \*************************************************************************************************/
3946 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3947 -
3948 -__webpack_require__.r(__webpack_exports__);
3949 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3950 -/* harmony export */ BackgroundRepeaterColorIndicator: function() { return /* binding */ BackgroundRepeaterColorIndicator; },
3951 -/* harmony export */ BackgroundRepeaterLabel: function() { return /* binding */ BackgroundRepeaterLabel; },
3952 -/* harmony export */ BoxShadowRepeaterColorIndicator: function() { return /* binding */ BoxShadowRepeaterColorIndicator; },
3953 -/* harmony export */ BoxShadowRepeaterLabel: function() { return /* binding */ BoxShadowRepeaterLabel; },
3954 -/* harmony export */ FilterDropShadowIconIndicator: function() { return /* binding */ FilterDropShadowIconIndicator; },
3955 -/* harmony export */ FilterDropShadowRepeaterLabel: function() { return /* binding */ FilterDropShadowRepeaterLabel; },
3956 -/* harmony export */ FilterSingleSizeRepeaterLabel: function() { return /* binding */ FilterSingleSizeRepeaterLabel; },
3957 -/* harmony export */ TransformRepeaterLabel: function() { return /* binding */ TransformRepeaterLabel; },
3958 -/* harmony export */ TransitionsSizeVariableLabel: function() { return /* binding */ TransitionsSizeVariableLabel; }
3959 -/* harmony export */ });
3960 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
3961 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
3962 -/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-props */ "@elementor/editor-props");
3963 -/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_props__WEBPACK_IMPORTED_MODULE_1__);
3964 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3965 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__);
3966 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3967 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__);
3968 -/* harmony import */ var _hooks_use_prop_variables__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../hooks/use-prop-variables */ "./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts");
3969 -/* harmony import */ var _utils_size_value__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/size-value */ "./packages/packages/core/editor-variables/src/utils/size-value.ts");
3970 -/* harmony import */ var _ui_color_indicator__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ui/color-indicator */ "./packages/packages/core/editor-variables/src/components/ui/color-indicator.tsx");
3971 -
3972 -
3973 -
3974 -
3975 -
3976 -
3977 -
3978 -const useColorVariable = value => {
3979 - const variableId = value?.value?.color?.value;
3980 - return (0,_hooks_use_prop_variables__WEBPACK_IMPORTED_MODULE_4__.getVariable)(variableId || '');
3981 -};
3982 -const BackgroundRepeaterColorIndicator = ({
3983 - value
3984 -}) => {
3985 - const colorVariable = useColorVariable(value);
3986 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui_color_indicator__WEBPACK_IMPORTED_MODULE_6__.ColorIndicator, {
3987 - component: "span",
3988 - size: "inherit",
3989 - value: colorVariable?.value
3990 - });
3991 -};
3992 -const BackgroundRepeaterLabel = ({
3993 - value
3994 -}) => {
3995 - const colorVariable = useColorVariable(value);
3996 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Box, {
3997 - component: "span"
3998 - }, colorVariable?.label);
3999 -};
4000 -const BoxShadowRepeaterColorIndicator = ({
4001 - value
4002 -}) => {
4003 - const colorVariable = useColorVariable(value);
4004 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui_color_indicator__WEBPACK_IMPORTED_MODULE_6__.ColorIndicator, {
4005 - component: "span",
4006 - size: "inherit",
4007 - value: colorVariable?.value
4008 - });
4009 -};
4010 -const FilterDropShadowIconIndicator = ({
4011 - value
4012 -}) => {
4013 - const {
4014 - args
4015 - } = _elementor_editor_props__WEBPACK_IMPORTED_MODULE_1__.cssFilterFunctionPropUtil.extract(value) || {};
4016 - const {
4017 - color
4018 - } = _elementor_editor_props__WEBPACK_IMPORTED_MODULE_1__.dropShadowFilterPropTypeUtil.extract(args) || {};
4019 - const colorVariable = (0,_hooks_use_prop_variables__WEBPACK_IMPORTED_MODULE_4__.getVariable)(color?.value || '');
4020 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui_color_indicator__WEBPACK_IMPORTED_MODULE_6__.ColorIndicator, {
4021 - component: "span",
4022 - size: "inherit",
4023 - value: colorVariable?.value
4024 - });
4025 -};
4026 -const FilterSingleSizeRepeaterLabel = ({
4027 - value
4028 -}) => {
4029 - const cssFilterFunction = _elementor_editor_props__WEBPACK_IMPORTED_MODULE_1__.cssFilterFunctionPropUtil.extract(value);
4030 - if (_elementor_editor_props__WEBPACK_IMPORTED_MODULE_1__.dropShadowFilterPropTypeUtil.isValid(cssFilterFunction?.args)) {
4031 - return null;
4032 - }
4033 - const args = cssFilterFunction?.args;
4034 - const func = cssFilterFunction?.func?.value ?? '';
4035 - const rendered = (0,_utils_size_value__WEBPACK_IMPORTED_MODULE_5__.sizeValue)(args?.value?.size);
4036 - 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_2__.Box, {
4037 - component: "span",
4038 - style: {
4039 - textTransform: 'capitalize'
4040 - }
4041 - }, `${func}: `), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Box, {
4042 - component: "span"
4043 - }, rendered));
4044 -};
4045 -const FilterDropShadowRepeaterLabel = ({
4046 - value
4047 -}) => {
4048 - const {
4049 - args
4050 - } = _elementor_editor_props__WEBPACK_IMPORTED_MODULE_1__.cssFilterFunctionPropUtil.extract(value) || {};
4051 - const {
4052 - xAxis,
4053 - yAxis,
4054 - blur
4055 - } = _elementor_editor_props__WEBPACK_IMPORTED_MODULE_1__.dropShadowFilterPropTypeUtil.extract(args) || {};
4056 - const labels = [];
4057 - for (const val of [xAxis, yAxis, blur]) {
4058 - const rendered = (0,_utils_size_value__WEBPACK_IMPORTED_MODULE_5__.sizeValue)(val);
4059 - if (rendered) {
4060 - labels.push(rendered);
4061 - }
4062 - }
4063 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Box, {
4064 - component: "span"
4065 - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Drop shadow:', 'elementor'), " ", labels.join(' '));
4066 -};
4067 -const BoxShadowRepeaterLabel = ({
4068 - value
4069 -}) => {
4070 - const {
4071 - position,
4072 - hOffset,
4073 - vOffset,
4074 - blur,
4075 - spread
4076 - } = _elementor_editor_props__WEBPACK_IMPORTED_MODULE_1__.shadowPropTypeUtil.extract(value) || {};
4077 - const labels = [];
4078 - for (const val of [hOffset, vOffset, blur, spread]) {
4079 - const rendered = (0,_utils_size_value__WEBPACK_IMPORTED_MODULE_5__.sizeValue)(val);
4080 - if (rendered) {
4081 - labels.push(rendered);
4082 - }
4083 - }
4084 - const positionLabel = position?.value || 'outset';
4085 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Box, {
4086 - component: "span",
4087 - style: {
4088 - textTransform: 'capitalize'
4089 - }
4090 - }, positionLabel, ": ", labels.join(' '));
4091 -};
4092 -const TransformRepeaterLabel = ({
4093 - value
4094 -}) => {
4095 - const labels = [];
4096 - if (_elementor_editor_props__WEBPACK_IMPORTED_MODULE_1__.moveTransformPropTypeUtil.isValid(value)) {
4097 - labels.push((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Move:', 'elementor'));
4098 - const {
4099 - x,
4100 - y,
4101 - z
4102 - } = _elementor_editor_props__WEBPACK_IMPORTED_MODULE_1__.moveTransformPropTypeUtil.extract(value) || {};
4103 - for (const val of [x, y, z]) {
4104 - const rendered = (0,_utils_size_value__WEBPACK_IMPORTED_MODULE_5__.sizeValue)(val);
4105 - if (rendered) {
4106 - labels.push(rendered);
4107 - }
4108 - }
4109 - }
4110 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Box, {
4111 - component: "span"
4112 - }, labels.join(' '));
4113 -};
4114 -const TransitionsSizeVariableLabel = ({
4115 - value: prop
4116 -}) => {
4117 - let label = '';
4118 - const variableId = prop?.value?.size?.value || '';
4119 - const variable = (0,_hooks_use_prop_variables__WEBPACK_IMPORTED_MODULE_4__.getVariable)(variableId);
4120 - if (variable && _elementor_editor_props__WEBPACK_IMPORTED_MODULE_1__.selectionSizePropTypeUtil.isValid(prop)) {
4121 - const selection = prop.value?.selection?.value?.key?.value;
4122 - if (selection) {
4123 - label += `${selection}: `;
4124 - }
4125 - label += variable?.value;
4126 - }
4127 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Box, {
4128 - component: "span"
4129 - }, label);
4130 -};
4131 -
4132 -/***/ }),
4133 -
4134 -/***/ "./packages/packages/core/editor-variables/src/components/variables-selection.tsx":
4135 -/*!****************************************************************************************!*\
4136 - !*** ./packages/packages/core/editor-variables/src/components/variables-selection.tsx ***!
4137 - \****************************************************************************************/
4138 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4139 -
4140 -__webpack_require__.r(__webpack_exports__);
4141 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4142 -/* harmony export */ VariablesSelection: function() { return /* binding */ VariablesSelection; }
4143 -/* harmony export */ });
4144 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
4145 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
4146 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-controls */ "@elementor/editor-controls");
4147 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__);
4148 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/editor-ui */ "@elementor/editor-ui");
4149 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__);
4150 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
4151 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_elementor_icons__WEBPACK_IMPORTED_MODULE_3__);
4152 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4153 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__);
4154 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
4155 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__);
4156 -/* harmony import */ var _context_variable_type_context__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../context/variable-type-context */ "./packages/packages/core/editor-variables/src/context/variable-type-context.tsx");
4157 -/* harmony import */ var _hooks_use_prop_variables__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../hooks/use-prop-variables */ "./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts");
4158 -/* harmony import */ var _hooks_use_variable_bound_prop__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../hooks/use-variable-bound-prop */ "./packages/packages/core/editor-variables/src/hooks/use-variable-bound-prop.ts");
4159 -/* harmony import */ var _utils_tracking__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/tracking */ "./packages/packages/core/editor-variables/src/utils/tracking.ts");
4160 -/* harmony import */ var _ui_empty_state__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./ui/empty-state */ "./packages/packages/core/editor-variables/src/components/ui/empty-state.tsx");
4161 -/* harmony import */ var _ui_menu_item_content__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./ui/menu-item-content */ "./packages/packages/core/editor-variables/src/components/ui/menu-item-content.tsx");
4162 -/* harmony import */ var _ui_no_search_results__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./ui/no-search-results */ "./packages/packages/core/editor-variables/src/components/ui/no-search-results.tsx");
4163 -/* harmony import */ var _ui_styled_menu_list__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./ui/styled-menu-list */ "./packages/packages/core/editor-variables/src/components/ui/styled-menu-list.tsx");
4164 -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); }
4165 -
4166 -
4167 -
4168 -
4169 -
4170 -
4171 -
4172 -
4173 -
4174 -
4175 -
4176 -
4177 -
4178 -
4179 -
4180 -
4181 -const SIZE = 'tiny';
4182 -const CREATE_LABEL = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Create variable', 'elementor');
4183 -const MANAGER_LABEL = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Variables Manager', 'elementor');
4184 -const getProUpgradeUrl = variableType => `https://go.elementor.com/renew-license-panel-${variableType}-variable`;
4185 -const VariablesSelection = ({
4186 - closePopover,
4187 - onAdd,
4188 - onEdit,
4189 - onSettings,
4190 - disabled = false
4191 -}) => {
4192 - const {
4193 - icon: VariableIcon,
4194 - startIcon,
4195 - variableType,
4196 - propTypeUtil,
4197 - emptyState
4198 - } = (0,_context_variable_type_context__WEBPACK_IMPORTED_MODULE_6__.useVariableType)();
4199 - const {
4200 - value: variable,
4201 - setValue: setVariable,
4202 - path
4203 - } = (0,_hooks_use_variable_bound_prop__WEBPACK_IMPORTED_MODULE_8__.useVariableBoundProp)();
4204 - const [searchValue, setSearchValue] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)('');
4205 - const {
4206 - list: variables,
4207 - hasMatches: hasSearchResults,
4208 - isSourceNotEmpty: hasVariables,
4209 - hasNoCompatibleVariables
4210 - } = (0,_hooks_use_prop_variables__WEBPACK_IMPORTED_MODULE_7__.useFilteredVariables)(searchValue, propTypeUtil.key);
4211 - const handleSetVariable = key => {
4212 - setVariable(key);
4213 - (0,_utils_tracking__WEBPACK_IMPORTED_MODULE_9__.trackVariableEvent)({
4214 - varType: variableType,
4215 - controlPath: path.join('.'),
4216 - action: 'connect'
4217 - });
4218 - closePopover();
4219 - };
4220 - const onAddAndTrack = () => {
4221 - onAdd?.();
4222 - (0,_utils_tracking__WEBPACK_IMPORTED_MODULE_9__.trackVariableEvent)({
4223 - varType: variableType,
4224 - controlPath: path.join('.'),
4225 - action: 'add'
4226 - });
4227 - };
4228 - const actions = [];
4229 - if (onAdd) {
4230 - actions.push(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Tooltip, {
4231 - key: "add",
4232 - placement: "top",
4233 - title: CREATE_LABEL
4234 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.IconButton, {
4235 - id: "add-variable-button",
4236 - size: SIZE,
4237 - onClick: onAddAndTrack,
4238 - "aria-label": CREATE_LABEL,
4239 - disabled: disabled
4240 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_3__.PlusIcon, {
4241 - fontSize: SIZE
4242 - })))));
4243 - }
4244 - if (onSettings) {
4245 - const handleOpenManager = () => {
4246 - onSettings();
4247 - (0,_utils_tracking__WEBPACK_IMPORTED_MODULE_9__.trackVariablesManagerEvent)({
4248 - action: 'openManager',
4249 - source: 'vars-popover',
4250 - varType: variableType,
4251 - controlPath: path.join('.')
4252 - });
4253 - };
4254 - actions.push(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Tooltip, {
4255 - key: "settings",
4256 - placement: "top",
4257 - title: MANAGER_LABEL
4258 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.IconButton, {
4259 - id: "variables-manager-button",
4260 - size: SIZE,
4261 - onClick: handleOpenManager,
4262 - "aria-label": MANAGER_LABEL
4263 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_3__.SettingsIcon, {
4264 - fontSize: SIZE
4265 - }))));
4266 - }
4267 - const StartIcon = startIcon || (() => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(VariableIcon, {
4268 - fontSize: SIZE
4269 - }));
4270 - const items = variables.map(({
4271 - value,
4272 - label,
4273 - key
4274 - }) => ({
4275 - type: 'item',
4276 - value: key,
4277 - label,
4278 - icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(StartIcon, {
4279 - value: value
4280 - }),
4281 - secondaryText: value,
4282 - onEdit: onEdit ? () => onEdit?.(key) : undefined
4283 - }));
4284 - const handleSearch = search => {
4285 - setSearchValue(search);
4286 - };
4287 - const handleClearSearch = () => {
4288 - setSearchValue('');
4289 - };
4290 - (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
4291 - if (disabled) {
4292 - (0,_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__.trackViewPromotion)({
4293 - target_name: 'variables_popover',
4294 - target_location: 'widget_panel',
4295 - location_l1: 'variables_list'
4296 - });
4297 - }
4298 - }, [disabled]);
4299 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__.SectionPopoverBody, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__.PopoverHeader, {
4300 - title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Variables', 'elementor'),
4301 - icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_3__.ColorFilterIcon, {
4302 - fontSize: SIZE
4303 - }),
4304 - onClose: closePopover,
4305 - actions: actions
4306 - }), hasVariables && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__.SearchField, {
4307 - value: searchValue,
4308 - onSearch: handleSearch,
4309 - placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Search', 'elementor')
4310 - }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Divider, null), hasVariables && hasSearchResults && /*#__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__.PopoverMenuList, {
4311 - items: items,
4312 - onSelect: disabled ? () => {} : handleSetVariable,
4313 - onClose: () => {},
4314 - selectedValue: variable,
4315 - "data-testid": `${variableType}-variables-list`,
4316 - menuListTemplate: props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui_styled_menu_list__WEBPACK_IMPORTED_MODULE_13__.VariablesStyledMenuList, _extends({}, props, {
4317 - disabled: disabled
4318 - })),
4319 - menuItemContentTemplate: item => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui_menu_item_content__WEBPACK_IMPORTED_MODULE_11__.MenuItemContent, {
4320 - item: item,
4321 - disabled: disabled
4322 - })
4323 - }), disabled && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_2__.PromotionAlert, {
4324 - message: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.sprintf)(/* translators: %s: Variable Type. */
4325 - (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Upgrade to continue creating and editing %s variables.', 'elementor'), variableType),
4326 - upgradeUrl: getProUpgradeUrl(variableType),
4327 - onCtaClick: () => (0,_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__.trackUpgradePromotionClick)({
4328 - target_name: 'variables_popover',
4329 - location_l1: 'variables_list'
4330 - })
4331 - })), !hasSearchResults && hasVariables && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui_no_search_results__WEBPACK_IMPORTED_MODULE_12__.NoSearchResults, {
4332 - searchValue: searchValue,
4333 - onClear: handleClearSearch,
4334 - icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(VariableIcon, {
4335 - fontSize: "large"
4336 - })
4337 - }), disabled && !hasVariables && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui_empty_state__WEBPACK_IMPORTED_MODULE_10__.EmptyState, {
4338 - title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.sprintf)(/* translators: %s: Variable Type. */
4339 - (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('No %s variables yet', 'elementor'), variableType),
4340 - message: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.sprintf)(/* translators: %s: Variable Type. */
4341 - (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Upgrade to create %s variables and maintain consistent element sizing.', 'elementor'), variableType),
4342 - icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(VariableIcon, {
4343 - fontSize: "large"
4344 - })
4345 - }, emptyState), !hasVariables && !hasNoCompatibleVariables && !disabled && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui_empty_state__WEBPACK_IMPORTED_MODULE_10__.EmptyState, {
4346 - title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.sprintf)(/* translators: %s: Variable Type. */
4347 - (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Create your first %s variable', 'elementor'), variableType),
4348 - message: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Variables are saved attributes that you can apply anywhere on your site.', 'elementor'),
4349 - icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(VariableIcon, {
4350 - fontSize: "large"
4351 - }),
4352 - onAdd: onAdd
4353 - }), hasNoCompatibleVariables && !disabled && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui_empty_state__WEBPACK_IMPORTED_MODULE_10__.EmptyState, {
4354 - title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('No compatible variables', 'elementor'),
4355 - message: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Looks like none of your variables work with this control. Create a new variable to use it here.', 'elementor'),
4356 - icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(VariableIcon, {
4357 - fontSize: "large"
4358 - }),
4359 - onAdd: onAdd
4360 - }));
4361 -};
4362 -
4363 -/***/ }),
4364 -
4365 -/***/ "./packages/packages/core/editor-variables/src/context/variable-selection-popover.context.tsx":
4366 -/*!****************************************************************************************************!*\
4367 - !*** ./packages/packages/core/editor-variables/src/context/variable-selection-popover.context.tsx ***!
4368 - \****************************************************************************************************/
4369 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4370 -
4371 -__webpack_require__.r(__webpack_exports__);
4372 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4373 -/* harmony export */ PopoverContentRefContextProvider: function() { return /* binding */ PopoverContentRefContextProvider; },
4374 -/* harmony export */ usePopoverContentRef: function() { return /* binding */ usePopoverContentRef; }
4375 -/* harmony export */ });
4376 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
4377 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
4378 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4379 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__);
4380 -
4381 -
4382 -
4383 -const PopoverContentRefContext = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(null);
4384 -const PopoverContentRefContextProvider = ({
4385 - children
4386 -}) => {
4387 - const [anchorRef, setAnchorRef] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
4388 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(PopoverContentRefContext.Provider, {
4389 - value: anchorRef
4390 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Box, {
4391 - ref: setAnchorRef
4392 - }, children));
4393 -};
4394 -const usePopoverContentRef = () => {
4395 - return (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(PopoverContentRefContext);
4396 -};
4397 -
4398 -/***/ }),
4399 -
4400 -/***/ "./packages/packages/core/editor-variables/src/context/variable-type-context.tsx":
4401 -/*!***************************************************************************************!*\
4402 - !*** ./packages/packages/core/editor-variables/src/context/variable-type-context.tsx ***!
4403 - \***************************************************************************************/
4404 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4405 -
4406 -__webpack_require__.r(__webpack_exports__);
4407 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4408 -/* harmony export */ VariableTypeProvider: function() { return /* binding */ VariableTypeProvider; },
4409 -/* harmony export */ useVariableType: function() { return /* binding */ useVariableType; }
4410 -/* harmony export */ });
4411 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
4412 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
4413 -/* harmony import */ var _variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../variables-registry/variable-type-registry */ "./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");
4414 -
4415 -
4416 -
4417 -const VariableTypeContext = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(null);
4418 -function VariableTypeProvider({
4419 - children,
4420 - propTypeKey
4421 -}) {
4422 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(VariableTypeContext.Provider, {
4423 - value: propTypeKey
4424 - }, children);
4425 -}
4426 -function useVariableType() {
4427 - const context = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(VariableTypeContext);
4428 - if (context === null) {
4429 - throw new Error('useVariableType must be used within a VariableTypeProvider');
4430 - }
4431 - return (0,_variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_1__.getVariableType)(context);
4432 -}
4433 -
4434 -/***/ }),
4435 -
4436 -/***/ "./packages/packages/core/editor-variables/src/controls/variable-control.tsx":
4437 -/*!***********************************************************************************!*\
4438 - !*** ./packages/packages/core/editor-variables/src/controls/variable-control.tsx ***!
4439 - \***********************************************************************************/
4440 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4441 -
4442 -__webpack_require__.r(__webpack_exports__);
4443 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4444 -/* harmony export */ VariableControl: function() { return /* binding */ VariableControl; }
4445 -/* harmony export */ });
4446 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
4447 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
4448 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-controls */ "@elementor/editor-controls");
4449 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__);
4450 -/* harmony import */ var _components_ui_variable_assigned_variable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../components/ui/variable/assigned-variable */ "./packages/packages/core/editor-variables/src/components/ui/variable/assigned-variable.tsx");
4451 -/* harmony import */ var _components_ui_variable_deleted_variable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../components/ui/variable/deleted-variable */ "./packages/packages/core/editor-variables/src/components/ui/variable/deleted-variable.tsx");
4452 -/* harmony import */ var _components_ui_variable_mismatch_variable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../components/ui/variable/mismatch-variable */ "./packages/packages/core/editor-variables/src/components/ui/variable/mismatch-variable.tsx");
4453 -/* harmony import */ var _components_ui_variable_missing_variable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../components/ui/variable/missing-variable */ "./packages/packages/core/editor-variables/src/components/ui/variable/missing-variable.tsx");
4454 -/* harmony import */ var _hooks_use_prop_variables__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../hooks/use-prop-variables */ "./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts");
4455 -/* harmony import */ var _variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../variables-registry/variable-type-registry */ "./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");
4456 -
4457 -
4458 -
4459 -
4460 -
4461 -
4462 -
4463 -
4464 -const VariableControl = () => {
4465 - const boundProp = (0,_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__.useBoundProp)();
4466 - const boundPropValue = boundProp.value ?? boundProp.placeholder;
4467 - const assignedVariable = (0,_hooks_use_prop_variables__WEBPACK_IMPORTED_MODULE_6__.useVariable)(boundPropValue?.value);
4468 - if (!assignedVariable) {
4469 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_components_ui_variable_missing_variable__WEBPACK_IMPORTED_MODULE_5__.MissingVariable, null);
4470 - }
4471 - const {
4472 - $$type: propTypeKey
4473 - } = boundPropValue;
4474 - if (assignedVariable?.deleted) {
4475 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_components_ui_variable_deleted_variable__WEBPACK_IMPORTED_MODULE_3__.DeletedVariable, {
4476 - variable: assignedVariable,
4477 - propTypeKey: propTypeKey
4478 - });
4479 - }
4480 - const {
4481 - isCompatible
4482 - } = (0,_variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_7__.getVariableType)(assignedVariable.type);
4483 - if (isCompatible && !isCompatible(boundProp?.propType, assignedVariable)) {
4484 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_components_ui_variable_mismatch_variable__WEBPACK_IMPORTED_MODULE_4__.MismatchVariable, {
4485 - variable: assignedVariable
4486 - });
4487 - }
4488 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_components_ui_variable_assigned_variable__WEBPACK_IMPORTED_MODULE_2__.AssignedVariable, {
4489 - variable: assignedVariable,
4490 - propTypeKey: propTypeKey
4491 - });
4492 -};
4493 -
4494 -/***/ }),
4495 -
4496 -/***/ "./packages/packages/core/editor-variables/src/create-style-variables-repository.ts":
4497 -/*!******************************************************************************************!*\
4498 - !*** ./packages/packages/core/editor-variables/src/create-style-variables-repository.ts ***!
4499 - \******************************************************************************************/
4500 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4501 -
4502 -__webpack_require__.r(__webpack_exports__);
4503 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4504 -/* harmony export */ createStyleVariablesRepository: function() { return /* binding */ createStyleVariablesRepository; }
4505 -/* harmony export */ });
4506 -/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters");
4507 -/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__);
4508 -/* harmony import */ var _prop_types_font_variable_prop_type__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./prop-types/font-variable-prop-type */ "./packages/packages/core/editor-variables/src/prop-types/font-variable-prop-type.ts");
4509 -
4510 -
4511 -const createStyleVariablesRepository = () => {
4512 - const variables = {};
4513 - let subscription;
4514 - const subscribe = cb => {
4515 - subscription = cb;
4516 - return () => {
4517 - subscription = () => {};
4518 - };
4519 - };
4520 - const notify = () => {
4521 - if (typeof subscription === 'function') {
4522 - subscription({
4523 - ...variables
4524 - });
4525 - }
4526 - };
4527 - const shouldUpdate = (key, maybeUpdated) => {
4528 - if (!(key in variables)) {
4529 - return true;
4530 - }
4531 - if (variables[key].label !== maybeUpdated.label) {
4532 - return true;
4533 - }
4534 - if (variables[key].value !== maybeUpdated.value) {
4535 - return true;
4536 - }
4537 - if (!variables[key]?.deleted && maybeUpdated?.deleted) {
4538 - return true;
4539 - }
4540 - if (variables[key]?.deleted && !maybeUpdated?.deleted) {
4541 - return true;
4542 - }
4543 - return false;
4544 - };
4545 - const applyUpdates = updatedVars => {
4546 - let hasChanges = false;
4547 - for (const [key, variable] of Object.entries(updatedVars)) {
4548 - if (shouldUpdate(key, variable)) {
4549 - variables[key] = variable;
4550 - if (variable.type === _prop_types_font_variable_prop_type__WEBPACK_IMPORTED_MODULE_1__.fontVariablePropTypeUtil.key) {
4551 - fontEnqueue(variable.value);
4552 - }
4553 - hasChanges = true;
4554 - }
4555 - }
4556 - return hasChanges;
4557 - };
4558 - const fontEnqueue = value => {
4559 - if (!value) {
4560 - return;
4561 - }
4562 - try {
4563 - (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.enqueueFont)(value);
4564 - } catch {
4565 - // This prevents font enqueueing failures from breaking variable updates
4566 - }
4567 - };
4568 - const update = updatedVars => {
4569 - if (applyUpdates(updatedVars)) {
4570 - notify();
4571 - }
4572 - };
4573 - return {
4574 - subscribe,
4575 - update
4576 - };
4577 -};
4578 -
4579 -/***/ }),
4580 -
4581 -/***/ "./packages/packages/core/editor-variables/src/hooks/use-initial-value.ts":
4582 -/*!********************************************************************************!*\
4583 - !*** ./packages/packages/core/editor-variables/src/hooks/use-initial-value.ts ***!
4584 - \********************************************************************************/
4585 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4586 -
4587 -__webpack_require__.r(__webpack_exports__);
4588 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4589 -/* harmony export */ useInitialValue: function() { return /* binding */ useInitialValue; }
4590 -/* harmony export */ });
4591 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-controls */ "@elementor/editor-controls");
4592 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_0__);
4593 -/* harmony import */ var _variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../variables-registry/variable-type-registry */ "./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");
4594 -/* harmony import */ var _use_prop_variables__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./use-prop-variables */ "./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts");
4595 -
4596 -
4597 -
4598 -const useInitialValue = () => {
4599 - const {
4600 - value: initial
4601 - } = (0,_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_0__.useBoundProp)();
4602 - const hasAssignedVariable = (0,_variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_1__.hasVariableType)(initial?.$$type) && Boolean(initial?.value);
4603 - const variable = (0,_use_prop_variables__WEBPACK_IMPORTED_MODULE_2__.useVariable)(hasAssignedVariable ? initial.value : '');
4604 - if (hasAssignedVariable) {
4605 - return variable ? variable.value : '';
4606 - }
4607 - return initial?.value ?? '';
4608 -};
4609 -
4610 -/***/ }),
4611 -
4612 -/***/ "./packages/packages/core/editor-variables/src/hooks/use-permissions.ts":
4613 -/*!******************************************************************************!*\
4614 - !*** ./packages/packages/core/editor-variables/src/hooks/use-permissions.ts ***!
4615 - \******************************************************************************/
4616 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4617 -
4618 -__webpack_require__.r(__webpack_exports__);
4619 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4620 -/* harmony export */ usePermissions: function() { return /* binding */ usePermissions; }
4621 -/* harmony export */ });
4622 -/* harmony import */ var _elementor_editor_current_user__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-current-user */ "@elementor/editor-current-user");
4623 -/* harmony import */ var _elementor_editor_current_user__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_current_user__WEBPACK_IMPORTED_MODULE_0__);
4624 -
4625 -const usePermissions = () => {
4626 - const {
4627 - canUser,
4628 - isAdmin
4629 - } = (0,_elementor_editor_current_user__WEBPACK_IMPORTED_MODULE_0__.useCurrentUserCapabilities)();
4630 - return {
4631 - canAssign: () => canUser('edit_posts'),
4632 - canUnlink: () => canUser('edit_posts'),
4633 - canAdd: () => isAdmin,
4634 - canDelete: () => isAdmin,
4635 - canEdit: () => isAdmin,
4636 - canRestore: () => isAdmin,
4637 - canManageSettings: () => isAdmin
4638 - };
4639 -};
4640 -
4641 -/***/ }),
4642 -
4643 -/***/ "./packages/packages/core/editor-variables/src/hooks/use-prop-variable-action.tsx":
4644 -/*!****************************************************************************************!*\
4645 - !*** ./packages/packages/core/editor-variables/src/hooks/use-prop-variable-action.tsx ***!
4646 - \****************************************************************************************/
4647 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4648 -
4649 -__webpack_require__.r(__webpack_exports__);
4650 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4651 -/* harmony export */ usePropVariableAction: function() { return /* binding */ usePropVariableAction; }
4652 -/* harmony export */ });
4653 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
4654 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
4655 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-controls */ "@elementor/editor-controls");
4656 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__);
4657 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
4658 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_icons__WEBPACK_IMPORTED_MODULE_2__);
4659 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
4660 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__);
4661 -/* harmony import */ var _components_variable_selection_popover__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../components/variable-selection-popover */ "./packages/packages/core/editor-variables/src/components/variable-selection-popover.tsx");
4662 -/* harmony import */ var _utils_tracking__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/tracking */ "./packages/packages/core/editor-variables/src/utils/tracking.ts");
4663 -/* harmony import */ var _variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../variables-registry/variable-type-registry */ "./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");
4664 -
4665 -
4666 -
4667 -
4668 -
4669 -
4670 -
4671 -const usePropVariableAction = () => {
4672 - const {
4673 - propType,
4674 - path
4675 - } = (0,_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__.useBoundProp)();
4676 - const variable = resolveVariableFromPropType(propType);
4677 - return {
4678 - visible: Boolean(variable),
4679 - icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_2__.ColorFilterIcon,
4680 - title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Variables', 'elementor'),
4681 - content: ({
4682 - close: closePopover
4683 - }) => {
4684 - if (!variable) {
4685 - return null;
4686 - }
4687 - trackOpenVariablePopover(path, variable.variableType);
4688 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_components_variable_selection_popover__WEBPACK_IMPORTED_MODULE_4__.VariableSelectionPopover, {
4689 - closePopover: closePopover,
4690 - propTypeKey: variable.propTypeUtil.key
4691 - });
4692 - }
4693 - };
4694 -};
4695 -const resolveVariableFromPropType = propType => {
4696 - if (propType.kind !== 'union') {
4697 - return undefined;
4698 - }
4699 - for (const key of Object.keys(propType.prop_types)) {
4700 - const variable = (0,_variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_6__.getVariableType)(key);
4701 - if (variable) {
4702 - return variable;
4703 - }
4704 - }
4705 - return undefined;
4706 -};
4707 -const trackOpenVariablePopover = (path, variableType) => {
4708 - (0,_utils_tracking__WEBPACK_IMPORTED_MODULE_5__.trackVariableEvent)({
4709 - varType: variableType,
4710 - controlPath: path.join('.'),
4711 - action: 'open'
4712 - });
4713 -};
4714 -
4715 -/***/ }),
4716 -
4717 -/***/ "./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts":
4718 -/*!*********************************************************************************!*\
4719 - !*** ./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts ***!
4720 - \*********************************************************************************/
4721 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4722 -
4723 -__webpack_require__.r(__webpack_exports__);
4724 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4725 -/* harmony export */ createVariable: function() { return /* binding */ createVariable; },
4726 -/* harmony export */ deleteVariable: function() { return /* binding */ deleteVariable; },
4727 -/* harmony export */ getVariable: function() { return /* binding */ getVariable; },
4728 -/* harmony export */ getVariables: function() { return /* binding */ getVariables; },
4729 -/* harmony export */ hasVariable: function() { return /* binding */ hasVariable; },
4730 -/* harmony export */ restoreVariable: function() { return /* binding */ restoreVariable; },
4731 -/* harmony export */ updateVariable: function() { return /* binding */ updateVariable; },
4732 -/* harmony export */ useFilteredVariables: function() { return /* binding */ useFilteredVariables; },
4733 -/* harmony export */ useVariable: function() { return /* binding */ useVariable; }
4734 -/* harmony export */ });
4735 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
4736 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
4737 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-controls */ "@elementor/editor-controls");
4738 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__);
4739 -/* harmony import */ var _context_variable_type_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../context/variable-type-context */ "./packages/packages/core/editor-variables/src/context/variable-type-context.tsx");
4740 -/* harmony import */ var _service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../service */ "./packages/packages/core/editor-variables/src/service.ts");
4741 -/* harmony import */ var _utils_filter_by_search__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/filter-by-search */ "./packages/packages/core/editor-variables/src/utils/filter-by-search.ts");
4742 -/* harmony import */ var _utils_variables_to_list__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/variables-to-list */ "./packages/packages/core/editor-variables/src/utils/variables-to-list.ts");
4743 -/* harmony import */ var _variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../variables-registry/variable-type-registry */ "./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");
4744 -
4745 -
4746 -
4747 -
4748 -
4749 -
4750 -
4751 -const getVariables = (includeDeleted = true) => {
4752 - const variables = _service__WEBPACK_IMPORTED_MODULE_3__.service.variables();
4753 - if (includeDeleted) {
4754 - return variables;
4755 - }
4756 - return Object.fromEntries(Object.entries(variables).filter(([, variable]) => !variable.deleted));
4757 -};
4758 -const hasVariable = key => {
4759 - return getVariables()[key] !== undefined;
4760 -};
4761 -
4762 -/**
4763 - * @param key
4764 - * @deprecated Use getVariable instead
4765 - */
4766 -const useVariable = key => {
4767 - return getVariable(key);
4768 -};
4769 -function getVariable(key) {
4770 - const variables = getVariables();
4771 - if (!variables?.[key]) {
4772 - return null;
4773 - }
4774 - return {
4775 - ...variables[key],
4776 - key
4777 - };
4778 -}
4779 -const useFilteredVariables = (searchValue, propTypeKey) => {
4780 - const baseVariables = usePropVariables(propTypeKey);
4781 - const typeFilteredVariables = useVariableSelectionFilter(baseVariables);
4782 - const searchFilteredVariables = (0,_utils_filter_by_search__WEBPACK_IMPORTED_MODULE_4__.filterBySearch)(typeFilteredVariables, searchValue);
4783 - const sortedVariables = searchFilteredVariables.sort((a, b) => {
4784 - const orderA = a.order ?? Number.MAX_SAFE_INTEGER;
4785 - const orderB = b.order ?? Number.MAX_SAFE_INTEGER;
4786 - return orderA - orderB;
4787 - });
4788 - return {
4789 - list: sortedVariables,
4790 - hasMatches: searchFilteredVariables.length > 0,
4791 - isSourceNotEmpty: typeFilteredVariables.length > 0,
4792 - hasNoCompatibleVariables: baseVariables.length > 0 && typeFilteredVariables.length === 0
4793 - };
4794 -};
4795 -const useVariableSelectionFilter = variables => {
4796 - const {
4797 - selectionFilter
4798 - } = (0,_context_variable_type_context__WEBPACK_IMPORTED_MODULE_2__.useVariableType)();
4799 - const {
4800 - propType
4801 - } = (0,_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__.useBoundProp)();
4802 - return selectionFilter ? selectionFilter(variables, propType) : variables;
4803 -};
4804 -const usePropVariables = propKey => {
4805 - return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => normalizeVariables(propKey), [propKey]);
4806 -};
4807 -const getMatchingTypes = propKey => {
4808 - const matchingTypes = [];
4809 - const allTypes = (0,_variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_6__.getVariableTypes)();
4810 - const variableType = (0,_variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_6__.getVariableType)(propKey);
4811 - Object.entries(allTypes).forEach(([key, typeOptions]) => {
4812 - if (variableType.variableType === typeOptions.variableType) {
4813 - matchingTypes.push(key);
4814 - }
4815 - });
4816 - return matchingTypes;
4817 -};
4818 -const normalizeVariables = propKey => {
4819 - const variables = getVariables(false);
4820 - const matchingTypes = getMatchingTypes(propKey);
4821 - return (0,_utils_variables_to_list__WEBPACK_IMPORTED_MODULE_5__.variablesToList)(variables).filter(variable => matchingTypes.includes(variable.type)).map(_utils_variables_to_list__WEBPACK_IMPORTED_MODULE_5__.toNormalizedVariable);
4822 -};
4823 -const extractId = ({
4824 - id
4825 -}) => id;
4826 -const createVariable = newVariable => {
4827 - return _service__WEBPACK_IMPORTED_MODULE_3__.service.create(newVariable).then(extractId);
4828 -};
4829 -const updateVariable = (updateId, {
4830 - value,
4831 - label,
4832 - type
4833 -}) => {
4834 - return _service__WEBPACK_IMPORTED_MODULE_3__.service.update(updateId, {
4835 - value,
4836 - label,
4837 - type
4838 - }).then(extractId);
4839 -};
4840 -const deleteVariable = deleteId => {
4841 - return _service__WEBPACK_IMPORTED_MODULE_3__.service.delete(deleteId).then(extractId);
4842 -};
4843 -const restoreVariable = (restoreId, label, value, type) => {
4844 - return _service__WEBPACK_IMPORTED_MODULE_3__.service.restore(restoreId, label, value, type).then(extractId);
4845 -};
4846 -
4847 -/***/ }),
4848 -
4849 -/***/ "./packages/packages/core/editor-variables/src/hooks/use-quota-permissions.ts":
4850 -/*!************************************************************************************!*\
4851 - !*** ./packages/packages/core/editor-variables/src/hooks/use-quota-permissions.ts ***!
4852 - \************************************************************************************/
4853 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4854 -
4855 -__webpack_require__.r(__webpack_exports__);
4856 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4857 -/* harmony export */ useQuotaPermissions: function() { return /* binding */ useQuotaPermissions; }
4858 -/* harmony export */ });
4859 -const useQuotaPermissions = variableType => {
4860 - const quotaConfig = {
4861 - ...(window.ElementorVariablesQuotaConfig ?? {}),
4862 - ...(window.ElementorVariablesQuotaConfigExtended ?? {})
4863 - };
4864 -
4865 - // BC: Remove when 4.01 is released
4866 - const hasLegacySupport = quotaConfig[variableType] === undefined && window.elementorPro;
4867 - const limit = quotaConfig[variableType] || 0;
4868 - const hasPermission = hasLegacySupport || limit > 0;
4869 - return {
4870 - canAdd: () => hasPermission,
4871 - canEdit: () => hasPermission
4872 - };
4873 -};
4874 -
4875 -/***/ }),
4876 -
4877 -/***/ "./packages/packages/core/editor-variables/src/hooks/use-variable-bound-prop.ts":
4878 -/*!**************************************************************************************!*\
4879 - !*** ./packages/packages/core/editor-variables/src/hooks/use-variable-bound-prop.ts ***!
4880 - \**************************************************************************************/
4881 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4882 -
4883 -__webpack_require__.r(__webpack_exports__);
4884 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4885 -/* harmony export */ resolveBoundPropAndSetValue: function() { return /* binding */ resolveBoundPropAndSetValue; },
4886 -/* harmony export */ useVariableBoundProp: function() { return /* binding */ useVariableBoundProp; }
4887 -/* harmony export */ });
4888 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-controls */ "@elementor/editor-controls");
4889 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_0__);
4890 -/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-props */ "@elementor/editor-props");
4891 -/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_props__WEBPACK_IMPORTED_MODULE_1__);
4892 -/* harmony import */ var _context_variable_type_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../context/variable-type-context */ "./packages/packages/core/editor-variables/src/context/variable-type-context.tsx");
4893 -
4894 -
4895 -
4896 -const useVariableBoundProp = () => {
4897 - const {
4898 - propTypeUtil
4899 - } = (0,_context_variable_type_context__WEBPACK_IMPORTED_MODULE_2__.useVariableType)();
4900 - const boundProp = (0,_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_0__.useBoundProp)(propTypeUtil);
4901 - return {
4902 - ...boundProp,
4903 - setVariableValue: value => resolveBoundPropAndSetValue(value, boundProp),
4904 - variableId: boundProp.value ?? boundProp.placeholder
4905 - };
4906 -};
4907 -const resolveBoundPropAndSetValue = (value, boundProp) => {
4908 - const propValue = unwrapValue(boundProp.value);
4909 - const placeholder = unwrapValue(boundProp.placeholder);
4910 - const newValue = unwrapValue(value);
4911 - if (!propValue && placeholder === newValue) {
4912 - return boundProp.setValue(null);
4913 - }
4914 - return boundProp.setValue(value);
4915 -};
4916 -const unwrapValue = input => {
4917 - if ((0,_elementor_editor_props__WEBPACK_IMPORTED_MODULE_1__.isTransformable)(input)) {
4918 - return input.value;
4919 - }
4920 - return input;
4921 -};
4922 -
4923 -/***/ }),
4924 -
4925 -/***/ "./packages/packages/core/editor-variables/src/init.ts":
4926 -/*!*************************************************************!*\
4927 - !*** ./packages/packages/core/editor-variables/src/init.ts ***!
4928 - \*************************************************************/
4929 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4930 -
4931 -__webpack_require__.r(__webpack_exports__);
4932 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4933 -/* harmony export */ init: function() { return /* binding */ init; }
4934 -/* harmony export */ });
4935 -/* harmony import */ var _elementor_editor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor */ "@elementor/editor");
4936 -/* harmony import */ var _elementor_editor__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor__WEBPACK_IMPORTED_MODULE_0__);
4937 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-controls */ "@elementor/editor-controls");
4938 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__);
4939 -/* harmony import */ var _elementor_editor_mcp__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/editor-mcp */ "@elementor/editor-mcp");
4940 -/* harmony import */ var _elementor_editor_mcp__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_mcp__WEBPACK_IMPORTED_MODULE_2__);
4941 -/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @elementor/editor-props */ "@elementor/editor-props");
4942 -/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_props__WEBPACK_IMPORTED_MODULE_3__);
4943 -/* harmony import */ var _elementor_menus__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @elementor/menus */ "@elementor/menus");
4944 -/* harmony import */ var _elementor_menus__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_elementor_menus__WEBPACK_IMPORTED_MODULE_4__);
4945 -/* harmony import */ var _components_global_styles_import_listener__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/global-styles-import-listener */ "./packages/packages/core/editor-variables/src/components/global-styles-import-listener.tsx");
4946 -/* harmony import */ var _controls_variable_control__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./controls/variable-control */ "./packages/packages/core/editor-variables/src/controls/variable-control.tsx");
4947 -/* harmony import */ var _hooks_use_prop_variable_action__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./hooks/use-prop-variable-action */ "./packages/packages/core/editor-variables/src/hooks/use-prop-variable-action.tsx");
4948 -/* harmony import */ var _mcp__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./mcp */ "./packages/packages/core/editor-variables/src/mcp/index.ts");
4949 -/* harmony import */ var _register_variable_types__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./register-variable-types */ "./packages/packages/core/editor-variables/src/register-variable-types.tsx");
4950 -/* harmony import */ var _renderers_style_variables_renderer__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./renderers/style-variables-renderer */ "./packages/packages/core/editor-variables/src/renderers/style-variables-renderer.tsx");
4951 -/* harmony import */ var _repeater_injections__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./repeater-injections */ "./packages/packages/core/editor-variables/src/repeater-injections.ts");
4952 -/* harmony import */ var _service__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./service */ "./packages/packages/core/editor-variables/src/service.ts");
4953 -/* harmony import */ var _variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./variables-registry/variable-type-registry */ "./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");
4954 -
4955 -
4956 -
4957 -
4958 -
4959 -
4960 -
4961 -
4962 -
4963 -
4964 -
4965 -
4966 -
4967 -
4968 -const {
4969 - registerPopoverAction
4970 -} = _elementor_menus__WEBPACK_IMPORTED_MODULE_4__.controlActionsMenu;
4971 -function init() {
4972 - (0,_register_variable_types__WEBPACK_IMPORTED_MODULE_9__.registerVariableTypes)();
4973 - (0,_repeater_injections__WEBPACK_IMPORTED_MODULE_11__.registerRepeaterInjections)();
4974 - (0,_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__.registerControlReplacement)({
4975 - component: _controls_variable_control__WEBPACK_IMPORTED_MODULE_6__.VariableControl,
4976 - condition: ({
4977 - value,
4978 - placeholder
4979 - }) => {
4980 - if (hasVariableAssigned(value)) {
4981 - return true;
4982 - }
4983 - if (value) {
4984 - return false;
4985 - }
4986 - return hasVariableAssigned(placeholder);
4987 - }
4988 - });
4989 - registerPopoverAction({
4990 - id: 'variables',
4991 - priority: 40,
4992 - useProps: _hooks_use_prop_variable_action__WEBPACK_IMPORTED_MODULE_7__.usePropVariableAction
4993 - });
4994 - _service__WEBPACK_IMPORTED_MODULE_12__.service.init();
4995 - const variablesMcpRegistry = (0,_elementor_editor_mcp__WEBPACK_IMPORTED_MODULE_2__.getMCPByDomain)('variables', {
4996 - instructions: `Everything related to V4 ( Atomic ) variables.
4997 -# Global variables
4998 -- Create/update/delete global variables
4999 -- Get list of global variables
5000 -- Get details of a global variable
5001 -`
5002 - });
5003 - (0,_mcp__WEBPACK_IMPORTED_MODULE_8__.initMcp)(variablesMcpRegistry, (0,_elementor_editor_mcp__WEBPACK_IMPORTED_MODULE_2__.getMCPByDomain)('canvas'));
5004 - (0,_elementor_editor__WEBPACK_IMPORTED_MODULE_0__.injectIntoTop)({
5005 - id: 'canvas-style-variables-render',
5006 - component: _renderers_style_variables_renderer__WEBPACK_IMPORTED_MODULE_10__.StyleVariablesRenderer
5007 - });
5008 - (0,_elementor_editor__WEBPACK_IMPORTED_MODULE_0__.injectIntoLogic)({
5009 - id: 'variables-import-listener',
5010 - component: _components_global_styles_import_listener__WEBPACK_IMPORTED_MODULE_5__.GlobalStylesImportListener
5011 - });
5012 -}
5013 -function hasVariableAssigned(value) {
5014 - if ((0,_elementor_editor_props__WEBPACK_IMPORTED_MODULE_3__.isTransformable)(value)) {
5015 - return (0,_variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_13__.hasVariableType)(value.$$type);
5016 - }
5017 - return false;
5018 -}
5019 -
5020 -/***/ }),
5021 -
5022 -/***/ "./packages/packages/core/editor-variables/src/mcp/index.ts":
5023 -/*!******************************************************************!*\
5024 - !*** ./packages/packages/core/editor-variables/src/mcp/index.ts ***!
5025 - \******************************************************************/
5026 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5027 -
5028 -__webpack_require__.r(__webpack_exports__);
5029 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5030 -/* harmony export */ initMcp: function() { return /* binding */ initMcp; }
5031 -/* harmony export */ });
5032 -/* harmony import */ var _manage_variable_tool__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./manage-variable-tool */ "./packages/packages/core/editor-variables/src/mcp/manage-variable-tool.ts");
5033 -/* harmony import */ var _variables_resource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./variables-resource */ "./packages/packages/core/editor-variables/src/mcp/variables-resource.ts");
5034 -
5035 -
5036 -function initMcp(reg, canvasMcpEntry) {
5037 - window.addEventListener('elementor/init', () => {
5038 - (0,_manage_variable_tool__WEBPACK_IMPORTED_MODULE_0__.initManageVariableTool)(reg);
5039 - (0,_variables_resource__WEBPACK_IMPORTED_MODULE_1__.initVariablesResource)(reg, canvasMcpEntry);
5040 - }, {
5041 - once: true
5042 - });
5043 -}
5044 -
5045 -/***/ }),
5046 -
5047 -/***/ "./packages/packages/core/editor-variables/src/mcp/manage-variable-tool.ts":
5048 -/*!*********************************************************************************!*\
5049 - !*** ./packages/packages/core/editor-variables/src/mcp/manage-variable-tool.ts ***!
5050 - \*********************************************************************************/
5051 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5052 -
5053 -__webpack_require__.r(__webpack_exports__);
5054 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5055 -/* harmony export */ initManageVariableTool: function() { return /* binding */ initManageVariableTool; }
5056 -/* harmony export */ });
5057 -/* harmony import */ var _elementor_schema__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/schema */ "@elementor/schema");
5058 -/* harmony import */ var _elementor_schema__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_schema__WEBPACK_IMPORTED_MODULE_0__);
5059 -/* harmony import */ var _elementor_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/utils */ "@elementor/utils");
5060 -/* harmony import */ var _elementor_utils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_utils__WEBPACK_IMPORTED_MODULE_1__);
5061 -/* harmony import */ var _service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../service */ "./packages/packages/core/editor-variables/src/service.ts");
5062 -/* harmony import */ var _sync_get_font_configs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../sync/get-font-configs */ "./packages/packages/core/editor-variables/src/sync/get-font-configs.ts");
5063 -/* harmony import */ var _utils_validations__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/validations */ "./packages/packages/core/editor-variables/src/utils/validations.ts");
5064 -/* harmony import */ var _variable_tool_prompt__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./variable-tool-prompt */ "./packages/packages/core/editor-variables/src/mcp/variable-tool-prompt.ts");
5065 -/* harmony import */ var _variables_resource__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./variables-resource */ "./packages/packages/core/editor-variables/src/mcp/variables-resource.ts");
5066 -
5067 -
5068 -
5069 -
5070 -
5071 -
5072 -
5073 -const VARIABLE_TYPES = {
5074 - COLOR: 'global-color-variable',
5075 - FONT: 'global-font-variable',
5076 - SIZE: 'global-size-variable',
5077 - CUSTOM_SIZE: 'global-custom-size-variable'
5078 -};
5079 -const LENGTH_UNIT_PATTERN = /^(auto|\d+(\.\d+)?(px|rem|em|vh|vw|%|ch|s|ms))$/i;
5080 -const COLOR_PATTERN = /^(#[0-9a-f]{3,8}|rgba?\(|hsl)/i;
5081 -function validateValueForType(type, value) {
5082 - if (type === VARIABLE_TYPES.FONT && LENGTH_UNIT_PATTERN.test(value.trim())) {
5083 - return `Font variable value must be a font family name (e.g. "Roboto"), not a size value like "${value}". Use "global-size-variable" or "global-custom-size-variable" for spacing/size values.`;
5084 - }
5085 - if (type === VARIABLE_TYPES.COLOR && !COLOR_PATTERN.test(value.trim())) {
5086 - return `Color variable value should be a CSS color (e.g. "#FF0000"), got "${value}".`;
5087 - }
5088 - if (type === VARIABLE_TYPES.SIZE && !LENGTH_UNIT_PATTERN.test(value.trim())) {
5089 - return `Size variable value should include a CSS unit (e.g. "16px") or be "auto", got "${value}".`;
5090 - }
5091 - if (type === VARIABLE_TYPES.FONT && !isFontAvailable(value)) {
5092 - return `Font "${value}" is not supported in WordPress. Please choose one of the available font families.`;
5093 - }
5094 - return null;
5095 -}
5096 -function isFontAvailable(font) {
5097 - const fonts = (0,_sync_get_font_configs__WEBPACK_IMPORTED_MODULE_3__.getFontConfigs)();
5098 - const key = font.trim();
5099 - return !!fonts?.[key];
5100 -}
5101 -const initManageVariableTool = reg => {
5102 - const {
5103 - addTool,
5104 - resource
5105 - } = reg;
5106 - const RUNTIME_ALLOWED_VARIABLE_TYPES = (0,_elementor_utils__WEBPACK_IMPORTED_MODULE_1__.isProActive)() ? [VARIABLE_TYPES.COLOR, VARIABLE_TYPES.FONT, VARIABLE_TYPES.SIZE, VARIABLE_TYPES.CUSTOM_SIZE] : [VARIABLE_TYPES.COLOR, VARIABLE_TYPES.FONT];
5107 - resource('manage-global-variable-guide', _variable_tool_prompt__WEBPACK_IMPORTED_MODULE_5__.MANAGE_VARIABLES_GUIDE_URI, {
5108 - title: 'Manage Global Variable Guide',
5109 - description: 'Detailed guide for using the manage-global-variable tool',
5110 - mimeType: 'text/plain'
5111 - }, async uri => ({
5112 - contents: [{
5113 - uri: uri.href,
5114 - mimeType: 'text/plain',
5115 - text: (0,_variable_tool_prompt__WEBPACK_IMPORTED_MODULE_5__.generateVariablesPrompt)()
5116 - }]
5117 - }));
5118 - addTool({
5119 - name: 'manage-global-variable',
5120 - description: 'Manage V4 global variables (color, font, size, custom-size). Read the guide resource before use. font = font-famliy, size = measured unit, custom-size = calculated values',
5121 - schema: {
5122 - action: _elementor_schema__WEBPACK_IMPORTED_MODULE_0__.z.enum(['create', 'update', 'delete']),
5123 - id: _elementor_schema__WEBPACK_IMPORTED_MODULE_0__.z.string().optional().describe('Variable id — required for update/delete. Get from the global-variables resource.'),
5124 - type: _elementor_schema__WEBPACK_IMPORTED_MODULE_0__.z.enum(RUNTIME_ALLOWED_VARIABLE_TYPES),
5125 - label: _elementor_schema__WEBPACK_IMPORTED_MODULE_0__.z.string().describe('Variable label (lowercase, dash-separated) — required for create/update.'),
5126 - value: _elementor_schema__WEBPACK_IMPORTED_MODULE_0__.z.string().optional().describe('Plain CSS value — required for create/update. Color: hex/rgba/hsl. Font: family name only. Size: value with unit e.g. "16px", or "auto" (Pro). Do NOT pass JSON.')
5127 - },
5128 - outputSchema: {
5129 - status: _elementor_schema__WEBPACK_IMPORTED_MODULE_0__.z.enum(['ok']).describe('Operation status'),
5130 - message: _elementor_schema__WEBPACK_IMPORTED_MODULE_0__.z.string().optional().describe('Error details if status is error')
5131 - },
5132 - requiredResources: [{
5133 - uri: _variable_tool_prompt__WEBPACK_IMPORTED_MODULE_5__.MANAGE_VARIABLES_GUIDE_URI,
5134 - description: 'Full guide for variable types, naming rules, and usage'
5135 - }, {
5136 - uri: _variables_resource__WEBPACK_IMPORTED_MODULE_6__.GLOBAL_VARIABLES_URI,
5137 - description: 'Current global variables — check before creating to avoid duplicates'
5138 - }],
5139 - isDestructive: true,
5140 - handler: async params => {
5141 - const operations = getServiceActions(_service__WEBPACK_IMPORTED_MODULE_2__.service);
5142 - const op = operations[params.action];
5143 - if (op) {
5144 - await op(params);
5145 - return {
5146 - status: 'ok'
5147 - };
5148 - }
5149 - throw new Error(`Unknown action ${params.action}`);
5150 - }
5151 - });
5152 -};
5153 -function getServiceActions(svc) {
5154 - return {
5155 - create({
5156 - type,
5157 - label,
5158 - value
5159 - }) {
5160 - if (!type || !label || !value) {
5161 - throw new Error('Create requires type, label, and value');
5162 - }
5163 - if ((type === VARIABLE_TYPES.SIZE || type === VARIABLE_TYPES.CUSTOM_SIZE) && !(0,_elementor_utils__WEBPACK_IMPORTED_MODULE_1__.isProActive)()) {
5164 - throw new Error('Creating size variables requires Elementor Pro.');
5165 - }
5166 - const labelError = (0,_utils_validations__WEBPACK_IMPORTED_MODULE_4__.validateLabel)(label);
5167 - if (labelError) {
5168 - throw new Error(labelError);
5169 - }
5170 - const valueError = validateValueForType(type, value);
5171 - if (valueError) {
5172 - throw new Error(valueError);
5173 - }
5174 - return svc.create({
5175 - type,
5176 - label,
5177 - value
5178 - });
5179 - },
5180 - update({
5181 - id,
5182 - label,
5183 - value
5184 - }) {
5185 - if (!id || !label || !value) {
5186 - throw new Error('Update requires id, label, and value');
5187 - }
5188 - const labelError = (0,_utils_validations__WEBPACK_IMPORTED_MODULE_4__.validateLabel)(label);
5189 - if (labelError) {
5190 - throw new Error(labelError);
5191 - }
5192 - const existingVariable = svc.variables()[id];
5193 - if (existingVariable) {
5194 - const valueError = validateValueForType(existingVariable.type, value);
5195 - if (valueError) {
5196 - throw new Error(valueError);
5197 - }
5198 - }
5199 - return svc.update(id, {
5200 - label,
5201 - value
5202 - });
5203 - },
5204 - delete({
5205 - id
5206 - }) {
5207 - if (!id) {
5208 - throw new Error('delete requires id');
5209 - }
5210 - return svc.delete(id);
5211 - }
5212 - };
5213 -}
5214 -
5215 -/***/ }),
5216 -
5217 -/***/ "./packages/packages/core/editor-variables/src/mcp/variable-tool-prompt.ts":
5218 -/*!*********************************************************************************!*\
5219 - !*** ./packages/packages/core/editor-variables/src/mcp/variable-tool-prompt.ts ***!
5220 - \*********************************************************************************/
5221 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5222 -
5223 -__webpack_require__.r(__webpack_exports__);
5224 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5225 -/* harmony export */ MANAGE_VARIABLES_GUIDE_URI: function() { return /* binding */ MANAGE_VARIABLES_GUIDE_URI; },
5226 -/* harmony export */ generateVariablesPrompt: function() { return /* binding */ generateVariablesPrompt; }
5227 -/* harmony export */ });
5228 -/* harmony import */ var _elementor_editor_mcp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-mcp */ "@elementor/editor-mcp");
5229 -/* harmony import */ var _elementor_editor_mcp__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_mcp__WEBPACK_IMPORTED_MODULE_0__);
5230 -/* harmony import */ var _elementor_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/utils */ "@elementor/utils");
5231 -/* harmony import */ var _elementor_utils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_utils__WEBPACK_IMPORTED_MODULE_1__);
5232 -
5233 -
5234 -const MANAGE_VARIABLES_GUIDE_URI = 'elementor://variables/tools/manage-global-variable-guide';
5235 -const generateVariablesPrompt = () => {
5236 - const prompt = (0,_elementor_editor_mcp__WEBPACK_IMPORTED_MODULE_0__.toolPrompts)('manage-global-variable');
5237 - const proIsActive = (0,_elementor_utils__WEBPACK_IMPORTED_MODULE_1__.isProActive)();
5238 - const sizeVariableSection = proIsActive ? `- **global-size-variable** — A simple CSS length with a unit (Elementor Pro). Use this for fixed spacing, font sizes, or layout values. Example: \`16px\`, \`1.5rem\`, \`2em\`, \`10vh\`
5239 -- **global-custom-size-variable** — Any CSS size expression that goes beyond a simple number + unit (Elementor Pro). Use this when the value is a CSS function, a keyword, or a combination of units that \`global-size-variable\` cannot represent. Example: \`auto\`, \`clamp(1rem, 2vw, 2rem)\`, \`calc(100% - 32px)\`, \`min(50vw, 600px)\`, \`300ms\`, \`2ch\`. When in doubt: if the value contains a function call or a keyword, use \`global-custom-size-variable\`.` : `- ~~global-size-variable~~ — requires Elementor Pro (not available on this site)
5240 -- ~~global-custom-size-variable~~ — requires Elementor Pro (not available on this site)`;
5241 - prompt.description(`
5242 -# Purpose
5243 -Create, update, or delete V4 global CSS variables. These are distinct from legacy v3 globals and map 1:1 to \`--css-var: VALUE\`.
5244 -
5245 -# Available Types
5246 -- **global-color-variable** — CSS color value. Example: \`#FF0000\`, \`rgba(255,0,0,1)\`, \`hsl(0,100%,50%)\`
5247 -- **global-font-variable** — Font family name ONLY — NOT a size or px value. Example: \`Roboto\`, \`Open Sans\`. NEVER pass px/rem here.
5248 -${sizeVariableSection}
5249 -
5250 -# Naming Rules
5251 -- Labels must be **lowercase**, using only letters (a-z), numbers, digits (0-9), dashes (-), or underscores (_)
5252 -- No spaces, no special characters
5253 -- Example: "Headline Primary" → \`headline-primary\`
5254 -- Labels must be unique — always check [elementor://global-variables] first
5255 -
5256 -# Value Rules
5257 -- Provide a **plain CSS value** only — do NOT pass JSON, legacy-globals object structures, or variable references
5258 -- Values are inserted as-is: \`--css-var: <value>\`
5259 -- NEVER store a px/rem value inside a \`global-font-variable\` — use \`global-size-variable\` (Pro) instead
5260 -
5261 -# Operations
5262 -- **create** — requires \`type\`, \`label\`, \`value\`. Label must be unique.
5263 -- **update** — requires \`id\`, \`label\`, \`value\`. Get \`id\` from [elementor://global-variables]. When renaming: keep existing value. When changing value: keep exact existing label.
5264 -- **delete** — requires \`id\`. DESTRUCTIVE — always confirm with user before executing.
5265 -`);
5266 - prompt.parameter('action', '"create", "update", or "delete".');
5267 - prompt.parameter('type', 'Variable type. Required for create. See Available Types above.');
5268 - prompt.parameter('label', 'Variable name (lowercase, dash-separated). Required for create/update.');
5269 - prompt.parameter('value', 'Plain CSS value matching the variable type. Required for create/update. Do NOT pass JSON.');
5270 - prompt.parameter('id', 'Variable ID. Required for update/delete. Obtain from [elementor://global-variables].');
5271 - prompt.example(`
5272 -Create a brand color:
5273 -{ "action": "create", "type": "global-color-variable", "label": "brand-primary", "value": "#1A73E8" }
5274 -
5275 -Create a heading font:
5276 -{ "action": "create", "type": "global-font-variable", "label": "font-heading", "value": "Playfair Display" }
5277 -
5278 -Create a simple spacing size:
5279 -{ "action": "create", "type": "global-size-variable", "label": "spacing-md", "value": "16px" }
5280 -
5281 -Create a fluid/responsive size using a CSS function (use global-custom-size-variable, NOT global-size-variable):
5282 -{ "action": "create", "type": "global-custom-size-variable", "label": "spacing-fluid", "value": "clamp(1rem, 2vw, 2rem)" }
5283 -
5284 -Create a size that is a keyword:
5285 -{ "action": "create", "type": "global-custom-size-variable", "label": "width-auto", "value": "auto" }
5286 -
5287 -Create a size using calc():
5288 -{ "action": "create", "type": "global-custom-size-variable", "label": "sidebar-width", "value": "calc(100% - 32px)" }
5289 -
5290 -Update a variable's value (keep exact label):
5291 -{ "action": "update", "id": "abc123", "label": "brand-primary", "value": "#0D47A1" }
5292 -
5293 -Rename a variable (keep existing value):
5294 -{ "action": "update", "id": "abc123", "label": "brand-secondary", "value": "#1A73E8" }
5295 -
5296 -Delete a variable:
5297 -{ "action": "delete", "id": "abc123" }
5298 -`);
5299 - prompt.instruction('Always read [elementor://global-variables] before creating to check existing variables and avoid duplicate labels.');
5300 - return prompt.prompt();
5301 -};
5302 -
5303 -/***/ }),
5304 -
5305 -/***/ "./packages/packages/core/editor-variables/src/mcp/variables-resource.ts":
5306 -/*!*******************************************************************************!*\
5307 - !*** ./packages/packages/core/editor-variables/src/mcp/variables-resource.ts ***!
5308 - \*******************************************************************************/
5309 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5310 -
5311 -__webpack_require__.r(__webpack_exports__);
5312 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5313 -/* harmony export */ GLOBAL_VARIABLES_URI: function() { return /* binding */ GLOBAL_VARIABLES_URI; },
5314 -/* harmony export */ initVariablesResource: function() { return /* binding */ initVariablesResource; }
5315 -/* harmony export */ });
5316 -/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters");
5317 -/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__);
5318 -/* harmony import */ var _service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../service */ "./packages/packages/core/editor-variables/src/service.ts");
5319 -/* harmony import */ var _storage__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../storage */ "./packages/packages/core/editor-variables/src/storage.ts");
5320 -
5321 -
5322 -
5323 -const GLOBAL_VARIABLES_URI = 'elementor://global-variables';
5324 -const buildGlobalVariablesPayload = async () => {
5325 - const merged = {};
5326 - Object.entries(_service__WEBPACK_IMPORTED_MODULE_1__.service.variables()).forEach(([id, variable]) => {
5327 - if (!variable.deleted) {
5328 - merged[id] = {
5329 - ...variable,
5330 - version: 'v4'
5331 - };
5332 - }
5333 - });
5334 - return merged;
5335 -};
5336 -const initVariablesResource = (variablesMcpEntry, canvasMcpEntry) => {
5337 - [canvasMcpEntry, variablesMcpEntry].forEach(entry => {
5338 - const {
5339 - resource,
5340 - sendResourceUpdated
5341 - } = entry;
5342 - const notifyGlobalVariablesUpdated = () => {
5343 - sendResourceUpdated({
5344 - uri: GLOBAL_VARIABLES_URI
5345 - });
5346 - };
5347 - resource('global-variables', GLOBAL_VARIABLES_URI, {
5348 - description: 'Global variables available (v4)'
5349 - }, async () => {
5350 - const variables = await buildGlobalVariablesPayload();
5351 - return {
5352 - contents: [{
5353 - uri: GLOBAL_VARIABLES_URI,
5354 - mimeType: 'application/json',
5355 - text: JSON.stringify(variables)
5356 - }]
5357 - };
5358 - });
5359 - window.addEventListener(_storage__WEBPACK_IMPORTED_MODULE_2__.STORAGE_UPDATED_EVENT, notifyGlobalVariablesUpdated);
5360 - (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.__privateListenTo)((0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.commandEndEvent)('document/save/update'), notifyGlobalVariablesUpdated);
5361 - });
5362 -};
5363 -
5364 -/***/ }),
5365 -
5366 -/***/ "./packages/packages/core/editor-variables/src/prop-types/color-variable-prop-type.ts":
5367 -/*!********************************************************************************************!*\
5368 - !*** ./packages/packages/core/editor-variables/src/prop-types/color-variable-prop-type.ts ***!
5369 - \********************************************************************************************/
5370 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5371 -
5372 -__webpack_require__.r(__webpack_exports__);
5373 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5374 -/* harmony export */ colorVariablePropTypeUtil: function() { return /* binding */ colorVariablePropTypeUtil; }
5375 -/* harmony export */ });
5376 -/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-props */ "@elementor/editor-props");
5377 -/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_props__WEBPACK_IMPORTED_MODULE_0__);
5378 -/* harmony import */ var _elementor_schema__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/schema */ "@elementor/schema");
5379 -/* harmony import */ var _elementor_schema__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_schema__WEBPACK_IMPORTED_MODULE_1__);
5380 -
5381 -
5382 -const colorVariablePropTypeUtil = (0,_elementor_editor_props__WEBPACK_IMPORTED_MODULE_0__.createPropUtils)('global-color-variable', _elementor_schema__WEBPACK_IMPORTED_MODULE_1__.z.string());
5383 -
5384 -/***/ }),
5385 -
5386 -/***/ "./packages/packages/core/editor-variables/src/prop-types/custom-size-variable-prop-type.ts":
5387 -/*!**************************************************************************************************!*\
5388 - !*** ./packages/packages/core/editor-variables/src/prop-types/custom-size-variable-prop-type.ts ***!
5389 - \**************************************************************************************************/
5390 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5391 -
5392 -__webpack_require__.r(__webpack_exports__);
5393 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5394 -/* harmony export */ customSizeVariablePropTypeUtil: function() { return /* binding */ customSizeVariablePropTypeUtil; }
5395 -/* harmony export */ });
5396 -/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-props */ "@elementor/editor-props");
5397 -/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_props__WEBPACK_IMPORTED_MODULE_0__);
5398 -/* harmony import */ var _elementor_schema__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/schema */ "@elementor/schema");
5399 -/* harmony import */ var _elementor_schema__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_schema__WEBPACK_IMPORTED_MODULE_1__);
5400 -
5401 -
5402 -const customSizeVariablePropTypeUtil = (0,_elementor_editor_props__WEBPACK_IMPORTED_MODULE_0__.createPropUtils)('global-custom-size-variable', _elementor_schema__WEBPACK_IMPORTED_MODULE_1__.z.string());
5403 -
5404 -/***/ }),
5405 -
5406 -/***/ "./packages/packages/core/editor-variables/src/prop-types/font-variable-prop-type.ts":
5407 -/*!*******************************************************************************************!*\
5408 - !*** ./packages/packages/core/editor-variables/src/prop-types/font-variable-prop-type.ts ***!
5409 - \*******************************************************************************************/
5410 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5411 -
5412 -__webpack_require__.r(__webpack_exports__);
5413 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5414 -/* harmony export */ fontVariablePropTypeUtil: function() { return /* binding */ fontVariablePropTypeUtil; }
5415 -/* harmony export */ });
5416 -/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-props */ "@elementor/editor-props");
5417 -/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_props__WEBPACK_IMPORTED_MODULE_0__);
5418 -/* harmony import */ var _elementor_schema__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/schema */ "@elementor/schema");
5419 -/* harmony import */ var _elementor_schema__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_schema__WEBPACK_IMPORTED_MODULE_1__);
5420 -
5421 -
5422 -const fontVariablePropTypeUtil = (0,_elementor_editor_props__WEBPACK_IMPORTED_MODULE_0__.createPropUtils)('global-font-variable', _elementor_schema__WEBPACK_IMPORTED_MODULE_1__.z.string());
5423 -
5424 -/***/ }),
5425 -
5426 -/***/ "./packages/packages/core/editor-variables/src/prop-types/index.ts":
5427 -/*!*************************************************************************!*\
5428 - !*** ./packages/packages/core/editor-variables/src/prop-types/index.ts ***!
5429 - \*************************************************************************/
5430 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5431 -
5432 -__webpack_require__.r(__webpack_exports__);
5433 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5434 -/* harmony export */ colorVariablePropTypeUtil: function() { return /* reexport safe */ _color_variable_prop_type__WEBPACK_IMPORTED_MODULE_0__.colorVariablePropTypeUtil; },
5435 -/* harmony export */ customSizeVariablePropTypeUtil: function() { return /* reexport safe */ _custom_size_variable_prop_type__WEBPACK_IMPORTED_MODULE_1__.customSizeVariablePropTypeUtil; },
5436 -/* harmony export */ fontVariablePropTypeUtil: function() { return /* reexport safe */ _font_variable_prop_type__WEBPACK_IMPORTED_MODULE_2__.fontVariablePropTypeUtil; },
5437 -/* harmony export */ sizeVariablePropTypeUtil: function() { return /* reexport safe */ _size_variable_prop_type__WEBPACK_IMPORTED_MODULE_3__.sizeVariablePropTypeUtil; }
5438 -/* harmony export */ });
5439 -/* harmony import */ var _color_variable_prop_type__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./color-variable-prop-type */ "./packages/packages/core/editor-variables/src/prop-types/color-variable-prop-type.ts");
5440 -/* harmony import */ var _custom_size_variable_prop_type__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./custom-size-variable-prop-type */ "./packages/packages/core/editor-variables/src/prop-types/custom-size-variable-prop-type.ts");
5441 -/* harmony import */ var _font_variable_prop_type__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./font-variable-prop-type */ "./packages/packages/core/editor-variables/src/prop-types/font-variable-prop-type.ts");
5442 -/* harmony import */ var _size_variable_prop_type__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./size-variable-prop-type */ "./packages/packages/core/editor-variables/src/prop-types/size-variable-prop-type.ts");
5443 -
5444 -
5445 -
5446 -
5447 -
5448 -/***/ }),
5449 -
5450 -/***/ "./packages/packages/core/editor-variables/src/prop-types/size-variable-prop-type.ts":
5451 -/*!*******************************************************************************************!*\
5452 - !*** ./packages/packages/core/editor-variables/src/prop-types/size-variable-prop-type.ts ***!
5453 - \*******************************************************************************************/
5454 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5455 -
5456 -__webpack_require__.r(__webpack_exports__);
5457 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5458 -/* harmony export */ sizeVariablePropTypeUtil: function() { return /* binding */ sizeVariablePropTypeUtil; }
5459 -/* harmony export */ });
5460 -/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-props */ "@elementor/editor-props");
5461 -/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_props__WEBPACK_IMPORTED_MODULE_0__);
5462 -/* harmony import */ var _elementor_schema__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/schema */ "@elementor/schema");
5463 -/* harmony import */ var _elementor_schema__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_schema__WEBPACK_IMPORTED_MODULE_1__);
5464 -
5465 -
5466 -const sizeVariablePropTypeUtil = (0,_elementor_editor_props__WEBPACK_IMPORTED_MODULE_0__.createPropUtils)('global-size-variable', _elementor_schema__WEBPACK_IMPORTED_MODULE_1__.z.string());
5467 -
5468 -/***/ }),
5469 -
5470 -/***/ "./packages/packages/core/editor-variables/src/register-variable-types.tsx":
5471 -/*!*********************************************************************************!*\
5472 - !*** ./packages/packages/core/editor-variables/src/register-variable-types.tsx ***!
5473 - \*********************************************************************************/
5474 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5475 -
5476 -__webpack_require__.r(__webpack_exports__);
5477 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5478 -/* harmony export */ registerVariableTypes: function() { return /* binding */ registerVariableTypes; }
5479 -/* harmony export */ });
5480 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
5481 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
5482 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-controls */ "@elementor/editor-controls");
5483 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__);
5484 -/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/editor-props */ "@elementor/editor-props");
5485 -/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_props__WEBPACK_IMPORTED_MODULE_2__);
5486 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @elementor/editor-ui */ "@elementor/editor-ui");
5487 -/* harmony import */ var _elementor_editor_ui__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_3__);
5488 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
5489 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_elementor_icons__WEBPACK_IMPORTED_MODULE_4__);
5490 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5491 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__);
5492 -/* harmony import */ var _components_fields_color_field__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./components/fields/color-field */ "./packages/packages/core/editor-variables/src/components/fields/color-field.tsx");
5493 -/* harmony import */ var _components_fields_font_field__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./components/fields/font-field */ "./packages/packages/core/editor-variables/src/components/fields/font-field.tsx");
5494 -/* harmony import */ var _components_ui_color_indicator__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./components/ui/color-indicator */ "./packages/packages/core/editor-variables/src/components/ui/color-indicator.tsx");
5495 -/* harmony import */ var _prop_types_color_variable_prop_type__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./prop-types/color-variable-prop-type */ "./packages/packages/core/editor-variables/src/prop-types/color-variable-prop-type.ts");
5496 -/* harmony import */ var _prop_types_font_variable_prop_type__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./prop-types/font-variable-prop-type */ "./packages/packages/core/editor-variables/src/prop-types/font-variable-prop-type.ts");
5497 -/* harmony import */ var _prop_types_size_variable_prop_type__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./prop-types/size-variable-prop-type */ "./packages/packages/core/editor-variables/src/prop-types/size-variable-prop-type.ts");
5498 -/* harmony import */ var _transformers_empty_transformer__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./transformers/empty-transformer */ "./packages/packages/core/editor-variables/src/transformers/empty-transformer.tsx");
5499 -/* harmony import */ var _variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./variables-registry/variable-type-registry */ "./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");
5500 -
5501 -
5502 -
5503 -
5504 -
5505 -
5506 -
5507 -
5508 -
5509 -
5510 -
5511 -
5512 -
5513 -
5514 -function registerVariableTypes() {
5515 - (0,_variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_13__.registerVariableType)({
5516 - key: _prop_types_color_variable_prop_type__WEBPACK_IMPORTED_MODULE_9__.colorVariablePropTypeUtil.key,
5517 - valueField: _components_fields_color_field__WEBPACK_IMPORTED_MODULE_6__.ColorField,
5518 - icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_4__.BrushIcon,
5519 - propTypeUtil: _prop_types_color_variable_prop_type__WEBPACK_IMPORTED_MODULE_9__.colorVariablePropTypeUtil,
5520 - fallbackPropTypeUtil: _elementor_editor_props__WEBPACK_IMPORTED_MODULE_2__.colorPropTypeUtil,
5521 - variableType: 'color',
5522 - startIcon: ({
5523 - value
5524 - }) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_components_ui_color_indicator__WEBPACK_IMPORTED_MODULE_8__.ColorIndicator, {
5525 - size: "inherit",
5526 - component: "span",
5527 - value: value
5528 - }),
5529 - defaultValue: '#ffffff',
5530 - menuActionsFactory: ({
5531 - variable,
5532 - variableId,
5533 - handlers
5534 - }) => {
5535 - const actions = [];
5536 - if (variable.sync_to_v3) {
5537 - actions.push({
5538 - name: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Stop syncing to Global Colors', 'elementor'),
5539 - icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_4__.RefreshOffIcon,
5540 - color: 'text.primary',
5541 - onClick: () => handlers.onStopSync(variableId)
5542 - });
5543 - } else {
5544 - actions.push({
5545 - name: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Sync to Global Colors', 'elementor'),
5546 - icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_4__.RefreshIcon,
5547 - color: 'text.primary',
5548 - onClick: () => handlers.onStartSync(variableId)
5549 - });
5550 - }
5551 - return actions;
5552 - }
5553 - });
5554 - (0,_variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_13__.registerVariableType)({
5555 - key: _prop_types_font_variable_prop_type__WEBPACK_IMPORTED_MODULE_10__.fontVariablePropTypeUtil.key,
5556 - valueField: _components_fields_font_field__WEBPACK_IMPORTED_MODULE_7__.FontField,
5557 - icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_4__.TextIcon,
5558 - propTypeUtil: _prop_types_font_variable_prop_type__WEBPACK_IMPORTED_MODULE_10__.fontVariablePropTypeUtil,
5559 - fallbackPropTypeUtil: _elementor_editor_props__WEBPACK_IMPORTED_MODULE_2__.stringPropTypeUtil,
5560 - variableType: 'font',
5561 - defaultValue: 'Roboto'
5562 - });
5563 - const sizePromotions = {
5564 - isActive: false,
5565 - icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_4__.ExpandDiagonalIcon,
5566 - propTypeUtil: _prop_types_size_variable_prop_type__WEBPACK_IMPORTED_MODULE_11__.sizeVariablePropTypeUtil,
5567 - fallbackPropTypeUtil: _elementor_editor_props__WEBPACK_IMPORTED_MODULE_2__.sizePropTypeUtil,
5568 - styleTransformer: _transformers_empty_transformer__WEBPACK_IMPORTED_MODULE_12__.EmptyTransformer,
5569 - variableType: 'size',
5570 - selectionFilter: () => [],
5571 - emptyState: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_ui__WEBPACK_IMPORTED_MODULE_3__.CtaButton, {
5572 - size: "small",
5573 - href: 'https://go.elementor.com/go-pro-panel-size-variable/',
5574 - onClick: () => (0,_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__.trackUpgradePromotionClick)({
5575 - target_name: 'variables_popover',
5576 - location_l1: 'variables_list'
5577 - })
5578 - })
5579 - };
5580 - (0,_variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_13__.registerVariableType)({
5581 - ...sizePromotions,
5582 - key: _prop_types_size_variable_prop_type__WEBPACK_IMPORTED_MODULE_11__.sizeVariablePropTypeUtil.key,
5583 - defaultValue: '0px'
5584 - });
5585 - (0,_variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_13__.registerVariableType)({
5586 - ...sizePromotions,
5587 - key: 'global-custom-size-variable'
5588 - });
5589 -}
5590 -
5591 -/***/ }),
5592 -
5593 -/***/ "./packages/packages/core/editor-variables/src/renderers/style-variables-renderer.tsx":
5594 -/*!********************************************************************************************!*\
5595 - !*** ./packages/packages/core/editor-variables/src/renderers/style-variables-renderer.tsx ***!
5596 - \********************************************************************************************/
5597 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5598 -
5599 -__webpack_require__.r(__webpack_exports__);
5600 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5601 -/* harmony export */ StyleVariablesRenderer: function() { return /* binding */ StyleVariablesRenderer; }
5602 -/* harmony export */ });
5603 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
5604 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
5605 -/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters");
5606 -/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1__);
5607 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5608 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__);
5609 -/* harmony import */ var _style_variables_repository__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../style-variables-repository */ "./packages/packages/core/editor-variables/src/style-variables-repository.ts");
5610 -
5611 -
5612 -
5613 -
5614 -
5615 -const VARIABLES_WRAPPER = ':root';
5616 -function StyleVariablesRenderer() {
5617 - const container = usePortalContainer();
5618 - const styleVariables = useStyleVariables();
5619 - const hasVariables = Object.keys(styleVariables).length > 0;
5620 - if (!container || !hasVariables) {
5621 - return null;
5622 - }
5623 - const cssVariables = convertToCssVariables(styleVariables);
5624 - const wrappedCss = `${VARIABLES_WRAPPER}{${cssVariables}}`;
5625 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Portal, {
5626 - container: container
5627 - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("style", {
5628 - "data-e-style-id": "e-variables",
5629 - key: wrappedCss
5630 - }, wrappedCss));
5631 -}
5632 -function usePortalContainer() {
5633 - return (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1__.__privateUseListenTo)((0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1__.commandEndEvent)('editor/documents/attach-preview'), () => (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1__.getCanvasIframeDocument)()?.head);
5634 -}
5635 -function useStyleVariables() {
5636 - const [variables, setVariables] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({});
5637 - (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
5638 - const unsubscribe = _style_variables_repository__WEBPACK_IMPORTED_MODULE_3__.styleVariablesRepository.subscribe(setVariables);
5639 - return () => {
5640 - unsubscribe();
5641 - };
5642 - }, []);
5643 - return variables;
5644 -}
5645 -function cssVariableDeclaration(key, variable) {
5646 - const variableName = variable?.deleted ? key : variable.label;
5647 - const value = variable.value;
5648 - return `--${variableName}:${value};`;
5649 -}
5650 -function convertToCssVariables(variables) {
5651 - const listOfVariables = Object.entries(variables);
5652 - return listOfVariables.map(([key, variable]) => cssVariableDeclaration(key, variable)).join('');
5653 -}
5654 -
5655 -/***/ }),
5656 -
5657 -/***/ "./packages/packages/core/editor-variables/src/repeater-injections.ts":
5658 -/*!****************************************************************************!*\
5659 - !*** ./packages/packages/core/editor-variables/src/repeater-injections.ts ***!
5660 - \****************************************************************************/
5661 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5662 -
5663 -__webpack_require__.r(__webpack_exports__);
5664 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5665 -/* harmony export */ registerRepeaterInjections: function() { return /* binding */ registerRepeaterInjections; }
5666 -/* harmony export */ });
5667 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-controls */ "@elementor/editor-controls");
5668 -/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_0__);
5669 -/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-props */ "@elementor/editor-props");
5670 -/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_props__WEBPACK_IMPORTED_MODULE_1__);
5671 -/* harmony import */ var _components_variables_repeater_item_slot__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./components/variables-repeater-item-slot */ "./packages/packages/core/editor-variables/src/components/variables-repeater-item-slot.tsx");
5672 -/* harmony import */ var _prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./prop-types */ "./packages/packages/core/editor-variables/src/prop-types/index.ts");
5673 -
5674 -
5675 -
5676 -
5677 -function registerRepeaterInjections() {
5678 - backgroundOverlayRepeaterInjections();
5679 - boxShadowRepeaterInjections();
5680 - transitionsRepeaterInjections();
5681 - transformRepeaterInjections();
5682 - filterRepeaterInjections();
5683 -}
5684 -function backgroundOverlayRepeaterInjections() {
5685 - (0,_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_0__.injectIntoRepeaterItemIcon)({
5686 - id: 'background-color-variables-icon',
5687 - component: _components_variables_repeater_item_slot__WEBPACK_IMPORTED_MODULE_2__.BackgroundRepeaterColorIndicator,
5688 - condition: ({
5689 - value
5690 - }) => {
5691 - return hasAssignedColorVariable(_elementor_editor_props__WEBPACK_IMPORTED_MODULE_1__.backgroundColorOverlayPropTypeUtil.extract(value)?.color);
5692 - }
5693 - });
5694 - (0,_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_0__.injectIntoRepeaterItemLabel)({
5695 - id: 'background-color-variables-label',
5696 - component: _components_variables_repeater_item_slot__WEBPACK_IMPORTED_MODULE_2__.BackgroundRepeaterLabel,
5697 - condition: ({
5698 - value
5699 - }) => {
5700 - return hasAssignedColorVariable(_elementor_editor_props__WEBPACK_IMPORTED_MODULE_1__.backgroundColorOverlayPropTypeUtil.extract(value)?.color);
5701 - }
5702 - });
5703 -}
5704 -function boxShadowRepeaterInjections() {
5705 - (0,_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_0__.injectIntoRepeaterItemIcon)({
5706 - id: 'box-shadow-color-variables-icon',
5707 - component: _components_variables_repeater_item_slot__WEBPACK_IMPORTED_MODULE_2__.BoxShadowRepeaterColorIndicator,
5708 - condition: ({
5709 - value
5710 - }) => {
5711 - const {
5712 - color
5713 - } = _elementor_editor_props__WEBPACK_IMPORTED_MODULE_1__.shadowPropTypeUtil.extract(value) || {};
5714 - return hasAssignedColorVariable(color);
5715 - }
5716 - });
5717 - (0,_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_0__.injectIntoRepeaterItemLabel)({
5718 - id: 'color-variables-box-shadow-label',
5719 - component: _components_variables_repeater_item_slot__WEBPACK_IMPORTED_MODULE_2__.BoxShadowRepeaterLabel,
5720 - condition: ({
5721 - value
5722 - }) => {
5723 - const {
5724 - hOffset,
5725 - vOffset,
5726 - blur,
5727 - spread
5728 - } = _elementor_editor_props__WEBPACK_IMPORTED_MODULE_1__.shadowPropTypeUtil.extract(value) || {};
5729 - return hasAssignedSizeVariable(hOffset) || hasAssignedSizeVariable(vOffset) || hasAssignedSizeVariable(blur) || hasAssignedSizeVariable(spread);
5730 - }
5731 - });
5732 -}
5733 -function transformRepeaterInjections() {
5734 - (0,_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_0__.injectIntoRepeaterItemLabel)({
5735 - id: 'transform-size-variables-label',
5736 - component: _components_variables_repeater_item_slot__WEBPACK_IMPORTED_MODULE_2__.TransformRepeaterLabel,
5737 - condition: ({
5738 - value
5739 - }) => {
5740 - if (_elementor_editor_props__WEBPACK_IMPORTED_MODULE_1__.moveTransformPropTypeUtil.isValid(value)) {
5741 - const {
5742 - x: xAxis,
5743 - y: yAxis,
5744 - z: zAxis
5745 - } = _elementor_editor_props__WEBPACK_IMPORTED_MODULE_1__.moveTransformPropTypeUtil.extract(value) || {};
5746 - return hasAssignedSizeVariable(xAxis) || hasAssignedSizeVariable(yAxis) || hasAssignedSizeVariable(zAxis);
5747 - }
5748 - return false;
5749 - }
5750 - });
5751 -}
5752 -function transitionsRepeaterInjections() {
5753 - (0,_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_0__.injectIntoRepeaterItemLabel)({
5754 - id: 'transition-size-variables-label',
5755 - component: _components_variables_repeater_item_slot__WEBPACK_IMPORTED_MODULE_2__.TransitionsSizeVariableLabel,
5756 - condition: ({
5757 - value
5758 - }) => {
5759 - return hasAssignedSizeVariable(_elementor_editor_props__WEBPACK_IMPORTED_MODULE_1__.selectionSizePropTypeUtil.extract(value)?.size);
5760 - }
5761 - });
5762 -}
5763 -function filterRepeaterInjections() {
5764 - (0,_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_0__.injectIntoRepeaterItemIcon)({
5765 - id: 'filters-color-variables-icon',
5766 - component: _components_variables_repeater_item_slot__WEBPACK_IMPORTED_MODULE_2__.FilterDropShadowIconIndicator,
5767 - condition: ({
5768 - value
5769 - }) => {
5770 - if (!_elementor_editor_props__WEBPACK_IMPORTED_MODULE_1__.cssFilterFunctionPropUtil.isValid(value)) {
5771 - return false;
5772 - }
5773 - const args = _elementor_editor_props__WEBPACK_IMPORTED_MODULE_1__.cssFilterFunctionPropUtil.extract(value)?.args;
5774 - if (_elementor_editor_props__WEBPACK_IMPORTED_MODULE_1__.dropShadowFilterPropTypeUtil.isValid(args)) {
5775 - return hasAssignedColorVariable(_elementor_editor_props__WEBPACK_IMPORTED_MODULE_1__.dropShadowFilterPropTypeUtil.extract(args)?.color);
5776 - }
5777 - return false;
5778 - }
5779 - });
5780 - (0,_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_0__.injectIntoRepeaterItemLabel)({
5781 - id: 'filters-drop-shadow-size-variables-label',
5782 - component: _components_variables_repeater_item_slot__WEBPACK_IMPORTED_MODULE_2__.FilterDropShadowRepeaterLabel,
5783 - condition: ({
5784 - value
5785 - }) => {
5786 - if (!_elementor_editor_props__WEBPACK_IMPORTED_MODULE_1__.cssFilterFunctionPropUtil.isValid(value)) {
5787 - return false;
5788 - }
5789 - const args = _elementor_editor_props__WEBPACK_IMPORTED_MODULE_1__.cssFilterFunctionPropUtil.extract(value)?.args;
5790 - if (_elementor_editor_props__WEBPACK_IMPORTED_MODULE_1__.dropShadowFilterPropTypeUtil.isValid(args)) {
5791 - const {
5792 - xAxis,
5793 - yAxis,
5794 - blur
5795 - } = _elementor_editor_props__WEBPACK_IMPORTED_MODULE_1__.dropShadowFilterPropTypeUtil.extract(args) || {};
5796 - return hasAssignedSizeVariable(xAxis) || hasAssignedSizeVariable(yAxis) || hasAssignedSizeVariable(blur);
5797 - }
5798 - return false;
5799 - }
5800 - });
5801 - (0,_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_0__.injectIntoRepeaterItemLabel)({
5802 - id: 'filters-size-variables-label',
5803 - component: _components_variables_repeater_item_slot__WEBPACK_IMPORTED_MODULE_2__.FilterSingleSizeRepeaterLabel,
5804 - condition: ({
5805 - value
5806 - }) => {
5807 - if (!_elementor_editor_props__WEBPACK_IMPORTED_MODULE_1__.cssFilterFunctionPropUtil.isValid(value)) {
5808 - return false;
5809 - }
5810 - const args = _elementor_editor_props__WEBPACK_IMPORTED_MODULE_1__.cssFilterFunctionPropUtil.extract(value)?.args;
5811 - return hasAssignedSizeVariable(args?.value?.size);
5812 - }
5813 - });
5814 -}
5815 -function hasAssignedSizeVariable(value) {
5816 - if (_prop_types__WEBPACK_IMPORTED_MODULE_3__.sizeVariablePropTypeUtil.isValid(value)) {
5817 - return true;
5818 - }
5819 - if (_prop_types__WEBPACK_IMPORTED_MODULE_3__.customSizeVariablePropTypeUtil.isValid(value)) {
5820 - return true;
5821 - }
5822 - return false;
5823 -}
5824 -function hasAssignedColorVariable(value) {
5825 - return !!_prop_types__WEBPACK_IMPORTED_MODULE_3__.colorVariablePropTypeUtil.isValid(value);
5826 -}
5827 -
5828 -/***/ }),
5829 -
5830 -/***/ "./packages/packages/core/editor-variables/src/service.ts":
5831 -/*!****************************************************************!*\
5832 - !*** ./packages/packages/core/editor-variables/src/service.ts ***!
5833 - \****************************************************************/
5834 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5835 -
5836 -__webpack_require__.r(__webpack_exports__);
5837 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5838 -/* harmony export */ service: function() { return /* binding */ service; }
5839 -/* harmony export */ });
5840 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5841 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
5842 -/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./api */ "./packages/packages/core/editor-variables/src/api.ts");
5843 -/* harmony import */ var _batch_operations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./batch-operations */ "./packages/packages/core/editor-variables/src/batch-operations.ts");
5844 -/* harmony import */ var _storage__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./storage */ "./packages/packages/core/editor-variables/src/storage.ts");
5845 -/* harmony import */ var _style_variables_repository__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./style-variables-repository */ "./packages/packages/core/editor-variables/src/style-variables-repository.ts");
5846 -
5847 -
5848 -
5849 -
5850 -
5851 -const storage = new _storage__WEBPACK_IMPORTED_MODULE_3__.Storage();
5852 -const service = {
5853 - variables: () => {
5854 - return storage.load();
5855 - },
5856 - findIdByLabel(needle) {
5857 - const variableId = Object.entries(this.variables()).find(([, variable]) => variable.label === needle);
5858 - if (!variableId) {
5859 - throw new Error(`Variable with label ${needle} not found`);
5860 - }
5861 - return variableId[0];
5862 - },
5863 - findVariableByLabel(needle) {
5864 - return Object.values(this.variables()).find(variable => variable.label === needle) || null;
5865 - },
5866 - getWatermark: () => {
5867 - return storage.state.watermark;
5868 - },
5869 - init: () => {
5870 - return service.load();
5871 - },
5872 - load: () => {
5873 - return _api__WEBPACK_IMPORTED_MODULE_1__.apiClient.list().then(response => {
5874 - const {
5875 - success,
5876 - data: payload
5877 - } = response.data;
5878 - if (!success) {
5879 - throw new Error('Unexpected response from server');
5880 - }
5881 - return payload;
5882 - }).then(data => {
5883 - const {
5884 - variables,
5885 - watermark
5886 - } = data;
5887 - storage.fill(variables, watermark);
5888 - _style_variables_repository__WEBPACK_IMPORTED_MODULE_4__.styleVariablesRepository.update(variables);
5889 - return variables;
5890 - });
5891 - },
5892 - create: ({
5893 - type,
5894 - label,
5895 - value
5896 - }) => {
5897 - return _api__WEBPACK_IMPORTED_MODULE_1__.apiClient.create(type, label, value).then(response => {
5898 - const {
5899 - success,
5900 - data: payload
5901 - } = response.data;
5902 - if (!success) {
5903 - const errorMessage = payload?.message || (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Unexpected response from server', 'elementor');
5904 - throw new Error(errorMessage);
5905 - }
5906 - return payload;
5907 - }).then(data => {
5908 - const {
5909 - variable,
5910 - watermark
5911 - } = data;
5912 - handleWatermark(_storage__WEBPACK_IMPORTED_MODULE_3__.OP_RW, watermark);
5913 - const {
5914 - id: variableId,
5915 - ...createdVariable
5916 - } = variable;
5917 - storage.add(variableId, createdVariable);
5918 - _style_variables_repository__WEBPACK_IMPORTED_MODULE_4__.styleVariablesRepository.update({
5919 - [variableId]: createdVariable
5920 - });
5921 - return {
5922 - id: variableId,
5923 - variable: createdVariable
5924 - };
5925 - });
5926 - },
5927 - update: (id, {
5928 - label,
5929 - value,
5930 - type
5931 - }) => {
5932 - return _api__WEBPACK_IMPORTED_MODULE_1__.apiClient.update(id, label, value, type).then(response => {
5933 - const {
5934 - success,
5935 - data: payload
5936 - } = response.data;
5937 - if (!success) {
5938 - const errorMessage = payload?.message || (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Unexpected response from server', 'elementor');
5939 - throw new Error(errorMessage);
5940 - }
5941 - return payload;
5942 - }).then(data => {
5943 - const {
5944 - variable,
5945 - watermark
5946 - } = data;
5947 - handleWatermark(_storage__WEBPACK_IMPORTED_MODULE_3__.OP_RW, watermark);
5948 - const {
5949 - id: variableId,
5950 - ...updatedVariable
5951 - } = variable;
5952 - storage.update(variableId, updatedVariable);
5953 - _style_variables_repository__WEBPACK_IMPORTED_MODULE_4__.styleVariablesRepository.update({
5954 - [variableId]: updatedVariable
5955 - });
5956 - return {
5957 - id: variableId,
5958 - variable: updatedVariable
5959 - };
5960 - });
5961 - },
5962 - delete: id => {
5963 - return _api__WEBPACK_IMPORTED_MODULE_1__.apiClient.delete(id).then(response => {
5964 - const {
5965 - success,
5966 - data: payload
5967 - } = response.data;
5968 - if (!success) {
5969 - throw new Error('Unexpected response from server');
5970 - }
5971 - return payload;
5972 - }).then(data => {
5973 - const {
5974 - variable,
5975 - watermark
5976 - } = data;
5977 - handleWatermark(_storage__WEBPACK_IMPORTED_MODULE_3__.OP_RW, watermark);
5978 - const {
5979 - id: variableId,
5980 - ...deletedVariable
5981 - } = variable;
5982 - storage.update(variableId, deletedVariable);
5983 - _style_variables_repository__WEBPACK_IMPORTED_MODULE_4__.styleVariablesRepository.update({
5984 - [variableId]: deletedVariable
5985 - });
5986 - return {
5987 - id: variableId,
5988 - variable: deletedVariable
5989 - };
5990 - });
5991 - },
5992 - restore: (id, label, value, type) => {
5993 - return _api__WEBPACK_IMPORTED_MODULE_1__.apiClient.restore(id, label, value, type).then(response => {
5994 - const {
5995 - success,
5996 - data: payload
5997 - } = response.data;
5998 - if (!success) {
5999 - throw new Error('Unexpected response from server');
6000 - }
6001 - return payload;
6002 - }).then(data => {
6003 - const {
6004 - variable,
6005 - watermark
6006 - } = data;
6007 - handleWatermark(_storage__WEBPACK_IMPORTED_MODULE_3__.OP_RW, watermark);
6008 - const {
6009 - id: variableId,
6010 - ...restoredVariable
6011 - } = variable;
6012 - storage.update(variableId, restoredVariable);
6013 - _style_variables_repository__WEBPACK_IMPORTED_MODULE_4__.styleVariablesRepository.update({
6014 - [variableId]: restoredVariable
6015 - });
6016 - return {
6017 - id: variableId,
6018 - variable: restoredVariable
6019 - };
6020 - });
6021 - },
6022 - batchSave: (originalVariables, currentVariables, deletedVariables) => {
6023 - const operations = (0,_batch_operations__WEBPACK_IMPORTED_MODULE_2__.buildOperationsArray)(originalVariables, currentVariables, deletedVariables);
6024 - const batchPayload = {
6025 - operations,
6026 - watermark: storage.state.watermark
6027 - };
6028 - if (operations.length === 0) {
6029 - return Promise.resolve({
6030 - success: true,
6031 - watermark: storage.state.watermark,
6032 - operations: 0
6033 - });
6034 - }
6035 - return _api__WEBPACK_IMPORTED_MODULE_1__.apiClient.batch(batchPayload).then(response => {
6036 - const {
6037 - success,
6038 - data: payload
6039 - } = response.data;
6040 - if (!success) {
6041 - throw new Error('Unexpected response from server');
6042 - }
6043 - return payload;
6044 - }).then(data => {
6045 - const {
6046 - results,
6047 - watermark
6048 - } = data;
6049 - handleWatermark(_storage__WEBPACK_IMPORTED_MODULE_3__.OP_RW, watermark);
6050 - if (results) {
6051 - results.forEach(result => {
6052 - const variableId = result.id;
6053 - if (result.variable) {
6054 - if (result.type === 'create') {
6055 - storage.add(variableId, result.variable);
6056 - } else {
6057 - storage.update(variableId, result.variable);
6058 - }
6059 - _style_variables_repository__WEBPACK_IMPORTED_MODULE_4__.styleVariablesRepository.update({
6060 - [variableId]: result.variable
6061 - });
6062 - }
6063 - });
6064 - }
6065 - return {
6066 - success: true,
6067 - watermark,
6068 - operations: operations.length
6069 - };
6070 - });
6071 - }
6072 -};
6073 -const handleWatermark = (operation, newWatermark) => {
6074 - if (storage.watermarkDiff(operation, newWatermark)) {
6075 - setTimeout(() => service.load(), 500);
6076 - }
6077 - storage.watermark(newWatermark);
6078 -};
6079 -
6080 -/***/ }),
6081 -
6082 -/***/ "./packages/packages/core/editor-variables/src/storage.ts":
6083 -/*!****************************************************************!*\
6084 - !*** ./packages/packages/core/editor-variables/src/storage.ts ***!
6085 - \****************************************************************/
6086 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6087 -
6088 -__webpack_require__.r(__webpack_exports__);
6089 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6090 -/* harmony export */ OP_RW: function() { return /* binding */ OP_RW; },
6091 -/* harmony export */ STORAGE_UPDATED_EVENT: function() { return /* binding */ STORAGE_UPDATED_EVENT; },
6092 -/* harmony export */ Storage: function() { return /* binding */ Storage; }
6093 -/* harmony export */ });
6094 -const STORAGE_KEY = 'elementor-global-variables';
6095 -const STORAGE_WATERMARK_KEY = 'elementor-global-variables-watermark';
6096 -const STORAGE_UPDATED_EVENT = 'variables:updated';
6097 -const OP_RW = 'RW';
6098 -const OP_RO = 'RO';
6099 -class Storage {
6100 - notifyChange() {
6101 - window.dispatchEvent(new Event(STORAGE_UPDATED_EVENT));
6102 - }
6103 - constructor() {
6104 - this.state = {
6105 - watermark: -1,
6106 - variables: {}
6107 - };
6108 - }
6109 - load() {
6110 - this.state.watermark = parseInt(localStorage.getItem(STORAGE_WATERMARK_KEY) || '-1');
6111 - this.state.variables = JSON.parse(localStorage.getItem(STORAGE_KEY) || '{}');
6112 - return this.state.variables;
6113 - }
6114 - fill(variables, watermark) {
6115 - this.state.variables = {};
6116 - if (variables && Object.keys(variables).length) {
6117 - this.state.variables = variables;
6118 - }
6119 - this.state.watermark = watermark;
6120 - localStorage.setItem(STORAGE_WATERMARK_KEY, this.state.watermark.toString());
6121 - localStorage.setItem(STORAGE_KEY, JSON.stringify(this.state.variables));
6122 - this.notifyChange();
6123 - }
6124 - add(id, variable) {
6125 - this.load();
6126 - this.state.variables[id] = variable;
6127 - localStorage.setItem(STORAGE_KEY, JSON.stringify(this.state.variables));
6128 - this.notifyChange();
6129 - }
6130 - update(id, variable) {
6131 - this.load();
6132 - this.state.variables[id] = variable;
6133 - localStorage.setItem(STORAGE_KEY, JSON.stringify(this.state.variables));
6134 - this.notifyChange();
6135 - }
6136 - watermark(watermark) {
6137 - this.state.watermark = watermark;
6138 - localStorage.setItem(STORAGE_WATERMARK_KEY, this.state.watermark.toString());
6139 - }
6140 - watermarkDiff(operation, newWatermark) {
6141 - const diff = newWatermark - this.state.watermark;
6142 - if (OP_RW === operation) {
6143 - return 1 !== diff;
6144 - }
6145 - if (OP_RO === operation) {
6146 - return 0 !== diff;
6147 - }
6148 - return false;
6149 - }
6150 -}
6151 -
6152 -/***/ }),
6153 -
6154 -/***/ "./packages/packages/core/editor-variables/src/style-variables-repository.ts":
6155 -/*!***********************************************************************************!*\
6156 - !*** ./packages/packages/core/editor-variables/src/style-variables-repository.ts ***!
6157 - \***********************************************************************************/
6158 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6159 -
6160 -__webpack_require__.r(__webpack_exports__);
6161 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6162 -/* harmony export */ styleVariablesRepository: function() { return /* binding */ styleVariablesRepository; }
6163 -/* harmony export */ });
6164 -/* harmony import */ var _create_style_variables_repository__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./create-style-variables-repository */ "./packages/packages/core/editor-variables/src/create-style-variables-repository.ts");
6165 -
6166 -const styleVariablesRepository = (0,_create_style_variables_repository__WEBPACK_IMPORTED_MODULE_0__.createStyleVariablesRepository)();
6167 -
6168 -/***/ }),
6169 -
6170 -/***/ "./packages/packages/core/editor-variables/src/sync/get-font-configs.ts":
6171 -/*!******************************************************************************!*\
6172 - !*** ./packages/packages/core/editor-variables/src/sync/get-font-configs.ts ***!
6173 - \******************************************************************************/
6174 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6175 -
6176 -__webpack_require__.r(__webpack_exports__);
6177 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6178 -/* harmony export */ getFontConfigs: function() { return /* binding */ getFontConfigs; }
6179 -/* harmony export */ });
6180 -const getFontConfigs = () => {
6181 - return window.elementor?.config?.controls?.font?.options ?? {};
6182 -};
6183 -
6184 -/***/ }),
6185 -
6186 -/***/ "./packages/packages/core/editor-variables/src/transformers/empty-transformer.tsx":
6187 -/*!****************************************************************************************!*\
6188 - !*** ./packages/packages/core/editor-variables/src/transformers/empty-transformer.tsx ***!
6189 - \****************************************************************************************/
6190 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6191 -
6192 -__webpack_require__.r(__webpack_exports__);
6193 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6194 -/* harmony export */ EmptyTransformer: function() { return /* binding */ EmptyTransformer; }
6195 -/* harmony export */ });
6196 -/* harmony import */ var _elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-canvas */ "@elementor/editor-canvas");
6197 -/* harmony import */ var _elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_0__);
6198 -
6199 -
6200 -// eslint-disable-next-line @typescript-eslint/no-unused-vars
6201 -const EmptyTransformer = (0,_elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_0__.createTransformer)(_value => {
6202 - return null;
6203 -});
6204 -
6205 -/***/ }),
6206 -
6207 -/***/ "./packages/packages/core/editor-variables/src/transformers/inheritance-transformer.tsx":
6208 -/*!**********************************************************************************************!*\
6209 - !*** ./packages/packages/core/editor-variables/src/transformers/inheritance-transformer.tsx ***!
6210 - \**********************************************************************************************/
6211 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6212 -
6213 -__webpack_require__.r(__webpack_exports__);
6214 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6215 -/* harmony export */ inheritanceTransformer: function() { return /* binding */ inheritanceTransformer; }
6216 -/* harmony export */ });
6217 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
6218 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
6219 -/* harmony import */ var _elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-canvas */ "@elementor/editor-canvas");
6220 -/* harmony import */ var _elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_1__);
6221 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
6222 -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__);
6223 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
6224 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__);
6225 -/* harmony import */ var _components_ui_color_indicator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../components/ui/color-indicator */ "./packages/packages/core/editor-variables/src/components/ui/color-indicator.tsx");
6226 -/* harmony import */ var _prop_types_color_variable_prop_type__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../prop-types/color-variable-prop-type */ "./packages/packages/core/editor-variables/src/prop-types/color-variable-prop-type.ts");
6227 -/* harmony import */ var _service__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../service */ "./packages/packages/core/editor-variables/src/service.ts");
6228 -/* harmony import */ var _utils_resolve_css_variable__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/resolve-css-variable */ "./packages/packages/core/editor-variables/src/transformers/utils/resolve-css-variable.ts");
6229 -
6230 -
6231 -
6232 -
6233 -
6234 -
6235 -
6236 -
6237 -const inheritanceTransformer = (0,_elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_1__.createTransformer)(id => {
6238 - const variables = _service__WEBPACK_IMPORTED_MODULE_6__.service.variables();
6239 - const variable = variables[id];
6240 - if (!variable) {
6241 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Missing variable', 'elementor'));
6242 - }
6243 - const showColorIndicator = variable.type === _prop_types_color_variable_prop_type__WEBPACK_IMPORTED_MODULE_5__.colorVariablePropTypeUtil.key;
6244 - const css = (0,_utils_resolve_css_variable__WEBPACK_IMPORTED_MODULE_7__.resolveCssVariable)(id, variable);
6245 - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Stack, {
6246 - direction: "row",
6247 - spacing: 0.5,
6248 - sx: {
6249 - paddingInline: '1px'
6250 - },
6251 - alignItems: "center"
6252 - }, showColorIndicator && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_components_ui_color_indicator__WEBPACK_IMPORTED_MODULE_4__.ColorIndicator, {
6253 - size: "inherit",
6254 - value: variable.value
6255 - }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Typography, {
6256 - variant: "caption",
6257 - overflow: "hidden",
6258 - whiteSpace: "nowrap",
6259 - textOverflow: "ellipsis"
6260 - }, css));
6261 -});
6262 -
6263 -/***/ }),
6264 -
6265 -/***/ "./packages/packages/core/editor-variables/src/transformers/utils/resolve-css-variable.ts":
6266 -/*!************************************************************************************************!*\
6267 - !*** ./packages/packages/core/editor-variables/src/transformers/utils/resolve-css-variable.ts ***!
6268 - \************************************************************************************************/
6269 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6270 -
6271 -__webpack_require__.r(__webpack_exports__);
6272 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6273 -/* harmony export */ resolveCssVariable: function() { return /* binding */ resolveCssVariable; }
6274 -/* harmony export */ });
6275 -const resolveCssVariable = (id, variable) => {
6276 - let name = id;
6277 - let fallbackValue = '';
6278 - if (variable) {
6279 - fallbackValue = variable.value;
6280 - }
6281 - if (variable && !variable.deleted) {
6282 - name = variable.label;
6283 - }
6284 - if (!name.trim()) {
6285 - return null;
6286 - }
6287 - const validCssVariableName = `--${name}`;
6288 - if (!fallbackValue.trim()) {
6289 - return `var(${validCssVariableName})`;
6290 - }
6291 - return `var(${validCssVariableName}, ${fallbackValue})`;
6292 -};
6293 -
6294 -/***/ }),
6295 -
6296 -/***/ "./packages/packages/core/editor-variables/src/transformers/variable-transformer.ts":
6297 -/*!******************************************************************************************!*\
6298 - !*** ./packages/packages/core/editor-variables/src/transformers/variable-transformer.ts ***!
6299 - \******************************************************************************************/
6300 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6301 -
6302 -__webpack_require__.r(__webpack_exports__);
6303 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6304 -/* harmony export */ variableTransformer: function() { return /* binding */ variableTransformer; }
6305 -/* harmony export */ });
6306 -/* harmony import */ var _elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-canvas */ "@elementor/editor-canvas");
6307 -/* harmony import */ var _elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_0__);
6308 -/* harmony import */ var _service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../service */ "./packages/packages/core/editor-variables/src/service.ts");
6309 -/* harmony import */ var _utils_resolve_css_variable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/resolve-css-variable */ "./packages/packages/core/editor-variables/src/transformers/utils/resolve-css-variable.ts");
6310 -
6311 -
6312 -
6313 -const variableTransformer = (0,_elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_0__.createTransformer)((idOrLabel, {
6314 - key
6315 -}) => {
6316 - const variables = _service__WEBPACK_IMPORTED_MODULE_1__.service.variables();
6317 - const targetVariable = variables[idOrLabel] || _service__WEBPACK_IMPORTED_MODULE_1__.service.findVariableByLabel(idOrLabel);
6318 - if (!targetVariable) {
6319 - return null;
6320 - }
6321 - if ((0,_elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_0__.isGridTrackProperty)(key)) {
6322 - const count = parseInt((targetVariable.value ?? '').trim(), 10);
6323 - return (0,_elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_0__.formatGridTrackRepeat)(count);
6324 - }
6325 - const id = _service__WEBPACK_IMPORTED_MODULE_1__.service.findIdByLabel(targetVariable.label);
6326 - return (0,_utils_resolve_css_variable__WEBPACK_IMPORTED_MODULE_2__.resolveCssVariable)(id, targetVariable);
6327 -});
6328 -
6329 -/***/ }),
6330 -
6331 -/***/ "./packages/packages/core/editor-variables/src/utils/duplicate-label.ts":
6332 -/*!******************************************************************************!*\
6333 - !*** ./packages/packages/core/editor-variables/src/utils/duplicate-label.ts ***!
6334 - \******************************************************************************/
6335 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6336 -
6337 -__webpack_require__.r(__webpack_exports__);
6338 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6339 -/* harmony export */ COPY_SUFFIX: function() { return /* binding */ COPY_SUFFIX; },
6340 -/* harmony export */ generateDuplicateLabel: function() { return /* binding */ generateDuplicateLabel; }
6341 -/* harmony export */ });
6342 -/* harmony import */ var _validations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validations */ "./packages/packages/core/editor-variables/src/utils/validations.ts");
6343 -
6344 -const COPY_SUFFIX = '-Copy';
6345 -const trimToFit = (base, suffix) => {
6346 - const combined = base + suffix;
6347 - if (combined.length <= _validations__WEBPACK_IMPORTED_MODULE_0__.VARIABLE_LABEL_MAX_LENGTH) {
6348 - return combined;
6349 - }
6350 - return base.slice(0, _validations__WEBPACK_IMPORTED_MODULE_0__.VARIABLE_LABEL_MAX_LENGTH - suffix.length) + suffix;
6351 -};
6352 -const generateDuplicateLabel = (originalLabel, existingLabels) => {
6353 - const labelsSet = new Set(existingLabels);
6354 - const firstCandidate = trimToFit(originalLabel, COPY_SUFFIX);
6355 - if (!labelsSet.has(firstCandidate)) {
6356 - return firstCandidate;
6357 - }
6358 - for (let i = 2; i <= labelsSet.size + 1; i++) {
6359 - const candidate = trimToFit(originalLabel, `${COPY_SUFFIX}-${i}`);
6360 - if (!labelsSet.has(candidate)) {
6361 - return candidate;
6362 - }
6363 - }
6364 - return firstCandidate;
6365 -};
6366 -
6367 -/***/ }),
6368 -
6369 -/***/ "./packages/packages/core/editor-variables/src/utils/filter-by-search.ts":
6370 -/*!*******************************************************************************!*\
6371 - !*** ./packages/packages/core/editor-variables/src/utils/filter-by-search.ts ***!
6372 - \*******************************************************************************/
6373 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6374 -
6375 -__webpack_require__.r(__webpack_exports__);
6376 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6377 -/* harmony export */ filterBySearch: function() { return /* binding */ filterBySearch; }
6378 -/* harmony export */ });
6379 -function filterBySearch(variables, searchValue) {
6380 - const lowerSearchValue = searchValue.toLowerCase();
6381 - return variables.filter(variable => variable.label.toLowerCase().includes(lowerSearchValue));
6382 -}
6383 -
6384 -/***/ }),
6385 -
6386 -/***/ "./packages/packages/core/editor-variables/src/utils/llm-propvalue-label-resolver.ts":
6387 -/*!*******************************************************************************************!*\
6388 - !*** ./packages/packages/core/editor-variables/src/utils/llm-propvalue-label-resolver.ts ***!
6389 - \*******************************************************************************************/
6390 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6391 -
6392 -__webpack_require__.r(__webpack_exports__);
6393 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6394 -/* harmony export */ globalVariablesLLMResolvers: function() { return /* binding */ globalVariablesLLMResolvers; }
6395 -/* harmony export */ });
6396 -/* harmony import */ var _service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../service */ "./packages/packages/core/editor-variables/src/service.ts");
6397 -
6398 -const defaultResolver = key => value => {
6399 - const idOrLabel = String(value);
6400 - return {
6401 - $$type: key,
6402 - value: _service__WEBPACK_IMPORTED_MODULE_0__.service.variables()[idOrLabel] ? idOrLabel : _service__WEBPACK_IMPORTED_MODULE_0__.service.findIdByLabel(idOrLabel)
6403 - };
6404 -};
6405 -const globalVariablesLLMResolvers = {
6406 - 'global-color-variable': defaultResolver('global-color-variable'),
6407 - 'global-font-variable': defaultResolver('global-font-variable'),
6408 - 'global-size-variable': defaultResolver('global-size-variable')
6409 -};
6410 -
6411 -/***/ }),
6412 -
6413 -/***/ "./packages/packages/core/editor-variables/src/utils/size-value.ts":
6414 -/*!*************************************************************************!*\
6415 - !*** ./packages/packages/core/editor-variables/src/utils/size-value.ts ***!
6416 - \*************************************************************************/
6417 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6418 -
6419 -__webpack_require__.r(__webpack_exports__);
6420 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6421 -/* harmony export */ sizeValue: function() { return /* binding */ sizeValue; }
6422 -/* harmony export */ });
6423 -/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-props */ "@elementor/editor-props");
6424 -/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_props__WEBPACK_IMPORTED_MODULE_0__);
6425 -/* harmony import */ var _hooks_use_prop_variables__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../hooks/use-prop-variables */ "./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts");
6426 -/* harmony import */ var _prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../prop-types */ "./packages/packages/core/editor-variables/src/prop-types/index.ts");
6427 -
6428 -
6429 -
6430 -const DEFAULT_UNIT = 'px';
6431 -const CUSTOM_SIZE_LABEL = 'fx';
6432 -function sizeValue(value) {
6433 - if (_prop_types__WEBPACK_IMPORTED_MODULE_2__.sizeVariablePropTypeUtil.isValid(value) || _prop_types__WEBPACK_IMPORTED_MODULE_2__.customSizeVariablePropTypeUtil.isValid(value)) {
6434 - const variable = (0,_hooks_use_prop_variables__WEBPACK_IMPORTED_MODULE_1__.getVariable)(value?.value);
6435 - return variable?.value;
6436 - }
6437 - if (_elementor_editor_props__WEBPACK_IMPORTED_MODULE_0__.sizePropTypeUtil.isValid(value)) {
6438 - const {
6439 - size,
6440 - unit
6441 - } = value.value;
6442 - if ('custom' !== unit) {
6443 - return `${size ?? 0}${unit ?? DEFAULT_UNIT}`;
6444 - }
6445 - if (!size) {
6446 - return CUSTOM_SIZE_LABEL;
6447 - }
6448 - return size;
6449 - }
6450 - return '';
6451 -}
6452 -
6453 -/***/ }),
6454 -
6455 -/***/ "./packages/packages/core/editor-variables/src/utils/tracking.ts":
6456 -/*!***********************************************************************!*\
6457 - !*** ./packages/packages/core/editor-variables/src/utils/tracking.ts ***!
6458 - \***********************************************************************/
6459 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6460 -
6461 -__webpack_require__.r(__webpack_exports__);
6462 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6463 -/* harmony export */ trackVariableEvent: function() { return /* binding */ trackVariableEvent; },
6464 -/* harmony export */ trackVariableSyncToV3: function() { return /* binding */ trackVariableSyncToV3; },
6465 -/* harmony export */ trackVariablesManagerEvent: function() { return /* binding */ trackVariablesManagerEvent; }
6466 -/* harmony export */ });
6467 -/* harmony import */ var _elementor_events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/events */ "@elementor/events");
6468 -/* harmony import */ var _elementor_events__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_events__WEBPACK_IMPORTED_MODULE_0__);
6469 -
6470 -const trackVariableEvent = ({
6471 - varType,
6472 - controlPath,
6473 - action
6474 -}) => {
6475 - const {
6476 - dispatchEvent,
6477 - config
6478 - } = (0,_elementor_events__WEBPACK_IMPORTED_MODULE_0__.getMixpanel)();
6479 - if (!config?.names?.variables?.[action]) {
6480 - return;
6481 - }
6482 - const name = config.names.variables[action];
6483 - dispatchEvent?.(name, {
6484 - location: config?.locations?.variables || '',
6485 - secondaryLocation: config?.secondaryLocations?.variablesPopover || '',
6486 - trigger: config?.triggers?.click || '',
6487 - var_type: varType,
6488 - control_path: controlPath,
6489 - action_type: name
6490 - });
6491 -};
6492 -const trackVariablesManagerEvent = ({
6493 - action,
6494 - source,
6495 - varType,
6496 - controlPath
6497 -}) => {
6498 - const {
6499 - dispatchEvent,
6500 - config
6501 - } = (0,_elementor_events__WEBPACK_IMPORTED_MODULE_0__.getMixpanel)();
6502 - if (!config?.names?.variables?.[action]) {
6503 - return;
6504 - }
6505 - const name = config.names.variables[action];
6506 - const eventData = {
6507 - location: config?.locations?.variablesManager || '',
6508 - trigger: config?.triggers?.click || '',
6509 - action_type: name
6510 - };
6511 - if (source) {
6512 - eventData.source = source;
6513 - }
6514 - if (varType) {
6515 - eventData.var_type = varType;
6516 - }
6517 - if (controlPath) {
6518 - eventData.style_control_path = controlPath;
6519 - }
6520 - dispatchEvent?.(name, eventData);
6521 -};
6522 -const trackVariableSyncToV3 = ({
6523 - variableLabel,
6524 - action
6525 -}) => {
6526 - try {
6527 - const {
6528 - dispatchEvent,
6529 - config
6530 - } = (0,_elementor_events__WEBPACK_IMPORTED_MODULE_0__.getMixpanel)();
6531 - if (!config?.names?.variables?.variableSyncToV3) {
6532 - return;
6533 - }
6534 - const name = config.names.variables.variableSyncToV3;
6535 - const isSync = action === 'sync';
6536 - dispatchEvent?.(name, {
6537 - interaction_type: 'click',
6538 - target_type: variableLabel,
6539 - target_name: isSync ? 'sync_to_v3' : 'unsync_to_v3',
6540 - interaction_result: isSync ? 'var_is_synced_to_V3' : 'var_is_unsynced_from_V3',
6541 - target_location: 'widget_panel',
6542 - location_l1: 'var_manager',
6543 - interaction_description: isSync ? `user_synced_${variableLabel}_to_v3` : `user_unsync_${variableLabel}_from_v3`
6544 - });
6545 - } catch {}
6546 -};
6547 -
6548 -/***/ }),
6549 -
6550 -/***/ "./packages/packages/core/editor-variables/src/utils/unlink-variable.ts":
6551 -/*!******************************************************************************!*\
6552 - !*** ./packages/packages/core/editor-variables/src/utils/unlink-variable.ts ***!
6553 - \******************************************************************************/
6554 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6555 -
6556 -__webpack_require__.r(__webpack_exports__);
6557 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6558 -/* harmony export */ createUnlinkHandler: function() { return /* binding */ createUnlinkHandler; },
6559 -/* harmony export */ transformValueBeforeUnlink: function() { return /* binding */ transformValueBeforeUnlink; }
6560 -/* harmony export */ });
6561 -/* harmony import */ var _variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../variables-registry/variable-type-registry */ "./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");
6562 -
6563 -function transformValueBeforeUnlink(variable, propTypeKey) {
6564 - const {
6565 - valueTransformer
6566 - } = (0,_variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_0__.getVariableType)(propTypeKey);
6567 - if (valueTransformer) {
6568 - return valueTransformer(variable.value, variable.type);
6569 - }
6570 - return variable.value;
6571 -}
6572 -function createUnlinkHandler(variable, propTypeKey, setValue) {
6573 - return () => {
6574 - const {
6575 - fallbackPropTypeUtil
6576 - } = (0,_variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_0__.getVariableType)(propTypeKey);
6577 - const transformedValue = transformValueBeforeUnlink(variable, propTypeKey);
6578 - setValue(fallbackPropTypeUtil.create(transformedValue));
6579 - };
6580 -}
6581 -
6582 -/***/ }),
6583 -
6584 -/***/ "./packages/packages/core/editor-variables/src/utils/validations.ts":
6585 -/*!**************************************************************************!*\
6586 - !*** ./packages/packages/core/editor-variables/src/utils/validations.ts ***!
6587 - \**************************************************************************/
6588 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6589 -
6590 -__webpack_require__.r(__webpack_exports__);
6591 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6592 -/* harmony export */ ERROR_MESSAGES: function() { return /* binding */ ERROR_MESSAGES; },
6593 -/* harmony export */ VARIABLE_LABEL_MAX_LENGTH: function() { return /* binding */ VARIABLE_LABEL_MAX_LENGTH; },
6594 -/* harmony export */ labelHint: function() { return /* binding */ labelHint; },
6595 -/* harmony export */ mapServerError: function() { return /* binding */ mapServerError; },
6596 -/* harmony export */ validateLabel: function() { return /* binding */ validateLabel; },
6597 -/* harmony export */ validateValue: function() { return /* binding */ validateValue; }
6598 -/* harmony export */ });
6599 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
6600 -/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_icons__WEBPACK_IMPORTED_MODULE_0__);
6601 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
6602 -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
6603 -
6604 -
6605 -const ERROR_MESSAGES = {
6606 - MISSING_VARIABLE_NAME: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Give your variable a name.', 'elementor'),
6607 - MISSING_VARIABLE_VALUE: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Add a value to complete your variable.', 'elementor'),
6608 - INVALID_CHARACTERS: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Use letters, numbers, dashes (-), or underscores (_) for the name.', 'elementor'),
6609 - NO_NON_SPECIAL_CHARACTER: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Names have to include at least one non-special character.', 'elementor'),
6610 - VARIABLE_LABEL_MAX_LENGTH: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Keep names up to 50 characters.', 'elementor'),
6611 - DUPLICATED_LABEL: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('This variable name already exists. Please choose a unique name.', 'elementor'),
6612 - UNEXPECTED_ERROR: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('There was a glitch. Try saving your variable again.', 'elementor'),
6613 - BATCH: {
6614 - DUPLICATED_LABELS: (count, name) =>
6615 - // eslint-disable-next-line @wordpress/i18n-translator-comments
6616 - (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.sprintf)((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('We found %1$d duplicated %2$s.', 'elementor'), count, name),
6617 - UNEXPECTED_ERROR: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('There was a glitch.', 'elementor'),
6618 - DUPLICATED_LABEL_ACTION: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Take me there', 'elementor'),
6619 - DUPLICATED_LABEL_ACTION_MESSAGE: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Please rename the variables.', 'elementor'),
6620 - UNEXPECTED_ERROR_ACTION_MESSAGE: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Try saving your variables again.', 'elementor')
6621 - }
6622 -};
6623 -const VARIABLE_LABEL_MAX_LENGTH = 50;
6624 -const mapServerError = error => {
6625 - if (error?.response?.data?.code === 'duplicated_label') {
6626 - return {
6627 - field: 'label',
6628 - message: ERROR_MESSAGES.DUPLICATED_LABEL
6629 - };
6630 - }
6631 - if (error?.response?.data?.code === 'batch_duplicated_label') {
6632 - const errorData = error?.response?.data?.data ?? {};
6633 - const count = Object.keys(errorData).length;
6634 - const name = count === 1 ? 'name' : 'names';
6635 - const duplicatedIds = Object.keys(errorData);
6636 - return {
6637 - field: 'label',
6638 - message: ERROR_MESSAGES.BATCH.DUPLICATED_LABELS(count, name),
6639 - severity: 'error',
6640 - IconComponent: _elementor_icons__WEBPACK_IMPORTED_MODULE_0__.AlertTriangleFilledIcon,
6641 - action: {
6642 - label: ERROR_MESSAGES.BATCH.DUPLICATED_LABEL_ACTION,
6643 - message: ERROR_MESSAGES.BATCH.DUPLICATED_LABEL_ACTION_MESSAGE,
6644 - data: {
6645 - duplicatedIds
6646 - }
6647 - }
6648 - };
6649 - }
6650 - if (error?.response?.data?.code === 'batch_operation_failed') {
6651 - return {
6652 - field: 'label',
6653 - message: ERROR_MESSAGES.BATCH.UNEXPECTED_ERROR,
6654 - severity: 'secondary',
6655 - IconComponent: _elementor_icons__WEBPACK_IMPORTED_MODULE_0__.InfoCircleFilledIcon,
6656 - action: {
6657 - message: ERROR_MESSAGES.BATCH.UNEXPECTED_ERROR_ACTION_MESSAGE
6658 - }
6659 - };
6660 - }
6661 - return undefined;
6662 -};
6663 -const validateLabel = (name, variables) => {
6664 - if (!name.trim()) {
6665 - return ERROR_MESSAGES.MISSING_VARIABLE_NAME;
6666 - }
6667 - const allowedChars = /^[a-zA-Z0-9_-]+$/;
6668 - if (!allowedChars.test(name)) {
6669 - return ERROR_MESSAGES.INVALID_CHARACTERS;
6670 - }
6671 - const hasAlphanumeric = /[a-zA-Z0-9]/;
6672 - if (!hasAlphanumeric.test(name)) {
6673 - return ERROR_MESSAGES.NO_NON_SPECIAL_CHARACTER;
6674 - }
6675 - if (VARIABLE_LABEL_MAX_LENGTH < name.length) {
6676 - return ERROR_MESSAGES.VARIABLE_LABEL_MAX_LENGTH;
6677 - }
6678 - if (Object.values(variables ?? {}).some(variable => variable.label === name)) {
6679 - return ERROR_MESSAGES.DUPLICATED_LABEL;
6680 - }
6681 - return '';
6682 -};
6683 -const labelHint = name => {
6684 - const hintThreshold = VARIABLE_LABEL_MAX_LENGTH * 0.8 - 1;
6685 - if (hintThreshold < name.length) {
6686 - return ERROR_MESSAGES.VARIABLE_LABEL_MAX_LENGTH;
6687 - }
6688 - return '';
6689 -};
6690 -const validateValue = value => {
6691 - if (!value.trim()) {
6692 - return ERROR_MESSAGES.MISSING_VARIABLE_VALUE;
6693 - }
6694 - return '';
6695 -};
6696 -
6697 -/***/ }),
6698 -
6699 -/***/ "./packages/packages/core/editor-variables/src/utils/variables-to-list.ts":
6700 -/*!********************************************************************************!*\
6701 - !*** ./packages/packages/core/editor-variables/src/utils/variables-to-list.ts ***!
6702 - \********************************************************************************/
6703 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6704 -
6705 -__webpack_require__.r(__webpack_exports__);
6706 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6707 -/* harmony export */ applySelectionFilters: function() { return /* binding */ applySelectionFilters; },
6708 -/* harmony export */ toNormalizedVariable: function() { return /* binding */ toNormalizedVariable; },
6709 -/* harmony export */ variablesToList: function() { return /* binding */ variablesToList; }
6710 -/* harmony export */ });
6711 -const variablesToList = variables => {
6712 - return Object.entries(variables).map(([key, variable]) => ({
6713 - key,
6714 - ...variable
6715 - }));
6716 -};
6717 -const toNormalizedVariable = ({
6718 - key,
6719 - label,
6720 - value,
6721 - order,
6722 - sync_to_v3: syncToV3
6723 -}) => ({
6724 - key,
6725 - label,
6726 - value,
6727 - order,
6728 - sync_to_v3: syncToV3
6729 -});
6730 -const applySelectionFilters = (variables, variableTypes) => {
6731 - const grouped = {};
6732 - variables.forEach(item => (grouped[item.type] ??= []).push(item));
6733 - return Object.entries(grouped).flatMap(([type, vars]) => {
6734 - const filter = variableTypes[type]?.selectionFilter;
6735 - const normalized = vars.map(toNormalizedVariable);
6736 - return (filter?.(normalized) ?? normalized).map(v => ({
6737 - ...v,
6738 - type
6739 - }));
6740 - });
6741 -};
6742 -
6743 -/***/ }),
6744 -
6745 -/***/ "./packages/packages/core/editor-variables/src/variables-registry/create-variable-type-registry.ts":
6746 -/*!*********************************************************************************************************!*\
6747 - !*** ./packages/packages/core/editor-variables/src/variables-registry/create-variable-type-registry.ts ***!
6748 - \*********************************************************************************************************/
6749 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6750 -
6751 -__webpack_require__.r(__webpack_exports__);
6752 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6753 -/* harmony export */ createVariableTypeRegistry: function() { return /* binding */ createVariableTypeRegistry; }
6754 -/* harmony export */ });
6755 -/* harmony import */ var _elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-canvas */ "@elementor/editor-canvas");
6756 -/* harmony import */ var _elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_0__);
6757 -/* harmony import */ var _transformers_inheritance_transformer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../transformers/inheritance-transformer */ "./packages/packages/core/editor-variables/src/transformers/inheritance-transformer.tsx");
6758 -/* harmony import */ var _transformers_variable_transformer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../transformers/variable-transformer */ "./packages/packages/core/editor-variables/src/transformers/variable-transformer.ts");
6759 -
6760 -
6761 -
6762 -function createVariableTypeRegistry() {
6763 - const variableTypes = {};
6764 - const registerVariableType = ({
6765 - key,
6766 - icon,
6767 - startIcon,
6768 - valueField,
6769 - propTypeUtil,
6770 - variableType,
6771 - defaultValue,
6772 - selectionFilter,
6773 - valueTransformer,
6774 - styleTransformer,
6775 - fallbackPropTypeUtil,
6776 - isCompatible,
6777 - emptyState,
6778 - isActive = true,
6779 - menuActionsFactory
6780 - }) => {
6781 - const variableTypeKey = key ?? propTypeUtil.key;
6782 - if (!isCompatible) {
6783 - isCompatible = (propType, variable) => {
6784 - if ('union' === propType.kind) {
6785 - if (variable.type in propType.prop_types) {
6786 - return true;
6787 - }
6788 - }
6789 - return false;
6790 - };
6791 - }
6792 - variableTypes[variableTypeKey] = {
6793 - icon,
6794 - startIcon,
6795 - valueField,
6796 - propTypeUtil,
6797 - variableType,
6798 - defaultValue,
6799 - selectionFilter,
6800 - valueTransformer,
6801 - fallbackPropTypeUtil,
6802 - isCompatible,
6803 - emptyState,
6804 - isActive,
6805 - menuActionsFactory
6806 - };
6807 - registerTransformer(propTypeUtil.key, styleTransformer);
6808 - registerInheritanceTransformer(propTypeUtil.key);
6809 - };
6810 - const registerTransformer = (key, transformer) => {
6811 - _elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_0__.styleTransformersRegistry.register(key, transformer ?? _transformers_variable_transformer__WEBPACK_IMPORTED_MODULE_2__.variableTransformer);
6812 - };
6813 - const registerInheritanceTransformer = key => {
6814 - _elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_0__.stylesInheritanceTransformersRegistry.register(key, _transformers_inheritance_transformer__WEBPACK_IMPORTED_MODULE_1__.inheritanceTransformer);
6815 - };
6816 - const getVariableType = key => {
6817 - return variableTypes[key];
6818 - };
6819 - const getVariableTypes = () => {
6820 - return variableTypes;
6821 - };
6822 - const hasVariableType = key => {
6823 - return key in variableTypes && !!variableTypes[key].isActive;
6824 - };
6825 - return {
6826 - registerVariableType,
6827 - getVariableType,
6828 - getVariableTypes,
6829 - hasVariableType
6830 - };
6831 -}
6832 -
6833 -/***/ }),
6834 -
6835 -/***/ "./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts":
6836 -/*!**************************************************************************************************!*\
6837 - !*** ./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts ***!
6838 - \**************************************************************************************************/
6839 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6840 -
6841 -__webpack_require__.r(__webpack_exports__);
6842 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6843 -/* harmony export */ getMenuActionsForVariable: function() { return /* binding */ getMenuActionsForVariable; },
6844 -/* harmony export */ getVariableType: function() { return /* binding */ getVariableType; },
6845 -/* harmony export */ getVariableTypes: function() { return /* binding */ getVariableTypes; },
6846 -/* harmony export */ hasVariableType: function() { return /* binding */ hasVariableType; },
6847 -/* harmony export */ registerVariableType: function() { return /* binding */ registerVariableType; }
6848 -/* harmony export */ });
6849 -/* harmony import */ var _create_variable_type_registry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./create-variable-type-registry */ "./packages/packages/core/editor-variables/src/variables-registry/create-variable-type-registry.ts");
6850 -
6851 -const {
6852 - registerVariableType,
6853 - getVariableType,
6854 - getVariableTypes,
6855 - hasVariableType
6856 -} = (0,_create_variable_type_registry__WEBPACK_IMPORTED_MODULE_0__.createVariableTypeRegistry)();
6857 -function getMenuActionsForVariable(variableType, context) {
6858 - const typeOptions = getVariableType(variableType);
6859 - if (typeOptions?.menuActionsFactory) {
6860 - return typeOptions.menuActionsFactory(context);
6861 - }
6862 - return [];
6863 -}
6864 -
6865 -/***/ }),
6866 -
6867 -/***/ "@elementor/editor":
6868 -/*!*****************************************!*\
6869 - !*** external ["elementorV2","editor"] ***!
6870 - \*****************************************/
6871 -/***/ (function(module) {
6872 -
6873 -module.exports = window["elementorV2"]["editor"];
6874 -
6875 -/***/ }),
6876 -
6877 -/***/ "@elementor/editor-canvas":
6878 -/*!***********************************************!*\
6879 - !*** external ["elementorV2","editorCanvas"] ***!
6880 - \***********************************************/
6881 -/***/ (function(module) {
6882 -
6883 -module.exports = window["elementorV2"]["editorCanvas"];
6884 -
6885 -/***/ }),
6886 -
6887 -/***/ "@elementor/editor-controls":
6888 -/*!*************************************************!*\
6889 - !*** external ["elementorV2","editorControls"] ***!
6890 - \*************************************************/
6891 -/***/ (function(module) {
6892 -
6893 -module.exports = window["elementorV2"]["editorControls"];
6894 -
6895 -/***/ }),
6896 -
6897 -/***/ "@elementor/editor-current-user":
6898 -/*!****************************************************!*\
6899 - !*** external ["elementorV2","editorCurrentUser"] ***!
6900 - \****************************************************/
6901 -/***/ (function(module) {
6902 -
6903 -module.exports = window["elementorV2"]["editorCurrentUser"];
6904 -
6905 -/***/ }),
6906 -
6907 -/***/ "@elementor/editor-mcp":
6908 -/*!********************************************!*\
6909 - !*** external ["elementorV2","editorMcp"] ***!
6910 - \********************************************/
6911 -/***/ (function(module) {
6912 -
6913 -module.exports = window["elementorV2"]["editorMcp"];
6914 -
6915 -/***/ }),
6916 -
6917 -/***/ "@elementor/editor-panels":
6918 -/*!***********************************************!*\
6919 - !*** external ["elementorV2","editorPanels"] ***!
6920 - \***********************************************/
6921 -/***/ (function(module) {
6922 -
6923 -module.exports = window["elementorV2"]["editorPanels"];
6924 -
6925 -/***/ }),
6926 -
6927 -/***/ "@elementor/editor-props":
6928 -/*!**********************************************!*\
6929 - !*** external ["elementorV2","editorProps"] ***!
6930 - \**********************************************/
6931 -/***/ (function(module) {
6932 -
6933 -module.exports = window["elementorV2"]["editorProps"];
6934 -
6935 -/***/ }),
6936 -
6937 -/***/ "@elementor/editor-ui":
6938 -/*!*******************************************!*\
6939 - !*** external ["elementorV2","editorUi"] ***!
6940 - \*******************************************/
6941 -/***/ (function(module) {
6942 -
6943 -module.exports = window["elementorV2"]["editorUi"];
6944 -
6945 -/***/ }),
6946 -
6947 -/***/ "@elementor/editor-v1-adapters":
6948 -/*!***************************************************!*\
6949 - !*** external ["elementorV2","editorV1Adapters"] ***!
6950 - \***************************************************/
6951 -/***/ (function(module) {
6952 -
6953 -module.exports = window["elementorV2"]["editorV1Adapters"];
6954 -
6955 -/***/ }),
6956 -
6957 -/***/ "@elementor/events":
6958 -/*!*****************************************!*\
6959 - !*** external ["elementorV2","events"] ***!
6960 - \*****************************************/
6961 -/***/ (function(module) {
6962 -
6963 -module.exports = window["elementorV2"]["events"];
6964 -
6965 -/***/ }),
6966 -
6967 -/***/ "@elementor/http-client":
6968 -/*!*********************************************!*\
6969 - !*** external ["elementorV2","httpClient"] ***!
6970 - \*********************************************/
6971 -/***/ (function(module) {
6972 -
6973 -module.exports = window["elementorV2"]["httpClient"];
6974 -
6975 -/***/ }),
6976 -
6977 -/***/ "@elementor/icons":
6978 -/*!****************************************!*\
6979 - !*** external ["elementorV2","icons"] ***!
6980 - \****************************************/
6981 -/***/ (function(module) {
6982 -
6983 -module.exports = window["elementorV2"]["icons"];
6984 -
6985 -/***/ }),
6986 -
6987 -/***/ "@elementor/menus":
6988 -/*!****************************************!*\
6989 - !*** external ["elementorV2","menus"] ***!
6990 - \****************************************/
6991 -/***/ (function(module) {
6992 -
6993 -module.exports = window["elementorV2"]["menus"];
6994 -
6995 -/***/ }),
6996 -
6997 -/***/ "@elementor/schema":
6998 -/*!*****************************************!*\
6999 - !*** external ["elementorV2","schema"] ***!
7000 - \*****************************************/
7001 -/***/ (function(module) {
7002 -
7003 -module.exports = window["elementorV2"]["schema"];
7004 -
7005 -/***/ }),
7006 -
7007 -/***/ "@elementor/ui":
7008 -/*!*************************************!*\
7009 - !*** external ["elementorV2","ui"] ***!
7010 - \*************************************/
7011 -/***/ (function(module) {
7012 -
7013 -module.exports = window["elementorV2"]["ui"];
7014 -
7015 -/***/ }),
7016 -
7017 -/***/ "@elementor/utils":
7018 -/*!****************************************!*\
7019 - !*** external ["elementorV2","utils"] ***!
7020 - \****************************************/
7021 -/***/ (function(module) {
7022 -
7023 -module.exports = window["elementorV2"]["utils"];
7024 -
7025 -/***/ }),
7026 -
7027 -/***/ "@wordpress/i18n":
7028 -/*!******************************!*\
7029 - !*** external ["wp","i18n"] ***!
7030 - \******************************/
7031 -/***/ (function(module) {
7032 -
7033 -module.exports = window["wp"]["i18n"];
7034 -
7035 -/***/ }),
7036 -
7037 -/***/ "react":
7038 -/*!**************************!*\
7039 - !*** external ["React"] ***!
7040 - \**************************/
7041 -/***/ (function(module) {
7042 -
7043 -module.exports = window["React"];
7044 -
7045 -/***/ })
7046 -
7047 -/******/ });
7048 -/************************************************************************/
7049 -/******/ // The module cache
7050 -/******/ var __webpack_module_cache__ = {};
7051 -/******/
7052 -/******/ // The require function
7053 -/******/ function __webpack_require__(moduleId) {
7054 -/******/ // Check if module is in cache
7055 -/******/ var cachedModule = __webpack_module_cache__[moduleId];
7056 -/******/ if (cachedModule !== undefined) {
7057 -/******/ return cachedModule.exports;
7058 -/******/ }
7059 -/******/ // Create a new module (and put it into the cache)
7060 -/******/ var module = __webpack_module_cache__[moduleId] = {
7061 -/******/ // no module.id needed
7062 -/******/ // no module.loaded needed
7063 -/******/ exports: {}
7064 -/******/ };
7065 -/******/
7066 -/******/ // Execute the module function
7067 -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
7068 -/******/
7069 -/******/ // Return the exports of the module
7070 -/******/ return module.exports;
7071 -/******/ }
7072 -/******/
7073 -/************************************************************************/
7074 -/******/ /* webpack/runtime/compat get default export */
7075 -/******/ !function() {
7076 -/******/ // getDefaultExport function for compatibility with non-harmony modules
7077 -/******/ __webpack_require__.n = function(module) {
7078 -/******/ var getter = module && module.__esModule ?
7079 -/******/ function() { return module['default']; } :
7080 -/******/ function() { return module; };
7081 -/******/ __webpack_require__.d(getter, { a: getter });
7082 -/******/ return getter;
7083 -/******/ };
7084 -/******/ }();
7085 -/******/
7086 -/******/ /* webpack/runtime/define property getters */
7087 -/******/ !function() {
7088 -/******/ // define getter functions for harmony exports
7089 -/******/ __webpack_require__.d = function(exports, definition) {
7090 -/******/ for(var key in definition) {
7091 -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
7092 -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
7093 -/******/ }
7094 -/******/ }
7095 -/******/ };
7096 -/******/ }();
7097 -/******/
7098 -/******/ /* webpack/runtime/hasOwnProperty shorthand */
7099 -/******/ !function() {
7100 -/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
7101 -/******/ }();
7102 -/******/
7103 -/******/ /* webpack/runtime/make namespace object */
7104 -/******/ !function() {
7105 -/******/ // define __esModule on exports
7106 -/******/ __webpack_require__.r = function(exports) {
7107 -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
7108 -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
7109 -/******/ }
7110 -/******/ Object.defineProperty(exports, '__esModule', { value: true });
7111 -/******/ };
7112 -/******/ }();
7113 -/******/
7114 -/************************************************************************/
7115 -var __webpack_exports__ = {};
7116 -// This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk.
7117 -!function() {
7118 -/*!**************************************************************!*\
7119 - !*** ./packages/packages/core/editor-variables/src/index.ts ***!
7120 - \**************************************************************/
7121 -__webpack_require__.r(__webpack_exports__);
7122 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7123 -/* harmony export */ GLOBAL_VARIABLES_URI: function() { return /* reexport safe */ _mcp_variables_resource__WEBPACK_IMPORTED_MODULE_2__.GLOBAL_VARIABLES_URI; },
7124 -/* harmony export */ Utils: function() { return /* binding */ Utils; },
7125 -/* harmony export */ VariablesManagerPanelEmbedded: function() { return /* reexport safe */ _components_variables_manager_variables_manager_panel__WEBPACK_IMPORTED_MODULE_0__.VariablesManagerPanelEmbedded; },
7126 -/* harmony export */ getMenuActionsForVariable: function() { return /* reexport safe */ _variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_6__.getMenuActionsForVariable; },
7127 -/* harmony export */ hasVariable: function() { return /* reexport safe */ _hooks_use_prop_variables__WEBPACK_IMPORTED_MODULE_7__.hasVariable; },
7128 -/* harmony export */ init: function() { return /* reexport safe */ _init__WEBPACK_IMPORTED_MODULE_1__.init; },
7129 -/* harmony export */ registerVariableType: function() { return /* reexport safe */ _variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_6__.registerVariableType; },
7130 -/* harmony export */ registerVariableTypes: function() { return /* reexport safe */ _register_variable_types__WEBPACK_IMPORTED_MODULE_4__.registerVariableTypes; },
7131 -/* harmony export */ service: function() { return /* reexport safe */ _service__WEBPACK_IMPORTED_MODULE_5__.service; },
7132 -/* harmony export */ sizeVariablePropTypeUtil: function() { return /* reexport safe */ _prop_types_size_variable_prop_type__WEBPACK_IMPORTED_MODULE_3__.sizeVariablePropTypeUtil; },
7133 -/* harmony export */ trackVariablesManagerEvent: function() { return /* reexport safe */ _utils_tracking__WEBPACK_IMPORTED_MODULE_8__.trackVariablesManagerEvent; }
7134 -/* harmony export */ });
7135 -/* harmony import */ var _components_variables_manager_variables_manager_panel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./components/variables-manager/variables-manager-panel */ "./packages/packages/core/editor-variables/src/components/variables-manager/variables-manager-panel.tsx");
7136 -/* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./init */ "./packages/packages/core/editor-variables/src/init.ts");
7137 -/* harmony import */ var _mcp_variables_resource__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mcp/variables-resource */ "./packages/packages/core/editor-variables/src/mcp/variables-resource.ts");
7138 -/* harmony import */ var _prop_types_size_variable_prop_type__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./prop-types/size-variable-prop-type */ "./packages/packages/core/editor-variables/src/prop-types/size-variable-prop-type.ts");
7139 -/* harmony import */ var _register_variable_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./register-variable-types */ "./packages/packages/core/editor-variables/src/register-variable-types.tsx");
7140 -/* harmony import */ var _service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./service */ "./packages/packages/core/editor-variables/src/service.ts");
7141 -/* harmony import */ var _variables_registry_variable_type_registry__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./variables-registry/variable-type-registry */ "./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");
7142 -/* harmony import */ var _hooks_use_prop_variables__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./hooks/use-prop-variables */ "./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts");
7143 -/* harmony import */ var _utils_tracking__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils/tracking */ "./packages/packages/core/editor-variables/src/utils/tracking.ts");
7144 -/* harmony import */ var _utils_llm_propvalue_label_resolver__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./utils/llm-propvalue-label-resolver */ "./packages/packages/core/editor-variables/src/utils/llm-propvalue-label-resolver.ts");
7145 -
7146 -
7147 -
7148 -
7149 -
7150 -
7151 -
7152 -
7153 -
7154 -
7155 -const Utils = {
7156 - globalVariablesLLMResolvers: _utils_llm_propvalue_label_resolver__WEBPACK_IMPORTED_MODULE_9__.globalVariablesLLMResolvers
7157 -};
7158 -}();
7159 -(window.elementorV2 = window.elementorV2 || {}).editorVariables = __webpack_exports__;
7160 -/******/ })()
7161 -;
7162 -window.elementorV2.editorVariables?.init?.();
1 +/*! For license information please see editor-variables.js.LICENSE.txt */
2 +!function(){"use strict";var e={"./packages/packages/core/editor-variables/src/api.ts":function(e,a,r){r.r(a),r.d(a,{apiClient:function(){return o}});var t=r("@elementor/http-client");const n="elementor/v1/variables",o={list:()=>(0,t.httpService)().get(n+"/list"),create:(e,a,r)=>(0,t.httpService)().post(n+"/create",{type:e,label:a,value:r}),update:(e,a,r,o)=>(0,t.httpService)().put(n+"/update",{id:e,label:a,value:r,type:o}),delete:e=>(0,t.httpService)().post(n+"/delete",{id:e}),restore:(e,a,r,o)=>{const i={id:e};return a&&(i.label=a),r&&(i.value=r),o&&(i.type=o),(0,t.httpService)().post(n+"/restore",i)},batch:e=>(0,t.httpService)().post(n+"/batch",e)}},"./packages/packages/core/editor-variables/src/batch-operations.ts":function(e,a,r){r.r(a),r.d(a,{buildOperationsArray:function(){return buildOperationsArray},generateTempId:function(){return generateTempId},isTempId:function(){return isTempId}});const generateTempId=()=>`tmp-${Date.now().toString(36)}-${Math.random().toString(36).substring(2,8)}`,isTempId=e=>e.startsWith("tmp-"),buildOperationsArray=(e,a)=>{const r=[];return Object.entries(a).forEach(([a,t])=>{if(isTempId(a))r.push({type:"create",variable:{...t,id:a}});else if(e[a]){const n=e[a];n.deleted&&!t.deleted?r.push({type:"restore",id:a,...n.label!==t.label&&{label:t.label},...n.value!==t.value&&{value:t.value}}):t.deleted||n.label===t.label&&n.value===t.value&&n.order===t.order||r.push({type:"update",id:a,variable:{...n.label!==t.label&&{label:t.label},...n.value!==t.value&&{value:t.value},...n.order!==t.order&&{order:t.order}}})}}),Object.entries(e).forEach(([e,t])=>{if(isTempId(e)||t.deleted)return;const n=a[e];n&&!n.deleted||r.push({type:"delete",id:e})}),r.filter(e=>{const r=e.id||e.variable?.id;return r&&!(isTempId(r)&&a[r]?.deleted)})}},"./packages/packages/core/editor-variables/src/components/fields/color-field.tsx":function(e,a,r){r.r(a),r.d(a,{ColorField:function(){return ColorField}});var t=r("react"),n=r("@elementor/ui"),o=r("./packages/packages/core/editor-variables/src/context/variable-selection-popover.context.tsx"),i=r("./packages/packages/core/editor-variables/src/utils/validations.ts");const ColorField=({value:e,onChange:a,onValidationChange:r})=>{const[s,l]=(0,t.useState)(e),[c,p]=(0,t.useState)(""),u=(0,t.useRef)(null),d=(0,o.usePopoverContentRef)()??u.current;return t.createElement(n.UnstableColorField,{id:"color-variable-field",size:"tiny",fullWidth:!0,value:s,onChange:e=>{l(e);const t=(0,i.validateValue)(e);p(t),r?.(t),a(t?"":e)},error:c||void 0,slotProps:{colorPicker:{anchorEl:d,anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:-10},slotProps:{colorIndicator:{size:"inherit",sx:{borderRadius:.5}}}}}})}},"./packages/packages/core/editor-variables/src/components/fields/font-field.tsx":function(e,a,r){r.r(a),r.d(a,{FontField:function(){return FontField}});var t=r("react"),n=r("@elementor/editor-controls"),o=r("@elementor/editor-editing-panel"),i=r("@elementor/icons"),s=r("@elementor/ui"),l=r("@wordpress/i18n"),c=r("./packages/packages/core/editor-variables/src/context/variable-selection-popover.context.tsx"),p=r("./packages/packages/core/editor-variables/src/utils/validations.ts");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var r=arguments[a];for(var t in r)({}).hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},_extends.apply(null,arguments)}const FontField=({value:e,onChange:a,onValidationChange:r})=>{const[u,d]=(0,t.useState)(e),b=(0,t.useRef)(null),g=(0,c.usePopoverContentRef)()??b.current,m=(0,s.usePopupState)({variant:"popover"}),v=(0,o.useFontFamilies)(),k=(0,o.useSectionWidth)(),f=t.useMemo(()=>v.map(({label:e,fonts:a})=>({label:e,items:a})),[v]),y=(0,t.useId)();return t.createElement(t.Fragment,null,t.createElement(s.UnstableTag,_extends({id:y,variant:"outlined",label:u,endIcon:t.createElement(i.ChevronDownIcon,{fontSize:"tiny"})},(0,s.bindTrigger)(m),{fullWidth:!0})),t.createElement(s.Popover,_extends({disablePortal:!0,disableScrollLock:!0,anchorEl:g,anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:-28}},(0,s.bindPopover)(m)),t.createElement(n.ItemSelector,{id:"font-family-variables-selector",itemsList:f,selectedItem:u,onItemChange:e=>{(e=>{d(e);const t=(0,p.validateValue)(e);r?.(t),a(t?"":e)})(e),m.close()},onClose:m.close,sectionWidth:k,title:(0,l.__)("Font family","elementor"),itemStyle:e=>({fontFamily:e.value}),onDebounce:n.enqueueFont,icon:i.TextIcon})))}},"./packages/packages/core/editor-variables/src/components/fields/label-field.tsx":function(e,a,r){r.r(a),r.d(a,{LabelField:function(){return LabelField},useLabelError:function(){return useLabelError}});var t=r("react"),n=r("@elementor/editor-ui"),o=r("@elementor/ui"),i=r("./packages/packages/core/editor-variables/src/utils/validations.ts");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var r=arguments[a];for(var t in r)({}).hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},_extends.apply(null,arguments)}function isLabelEqual(e,a){return e.trim().toLowerCase()===a.trim().toLowerCase()}const useLabelError=e=>{const[a,r]=(0,t.useState)(e??{value:"",message:""});return{labelFieldError:a,setLabelFieldError:r}},LabelField=({value:e,error:a,onChange:r,id:s,onErrorChange:l,size:c="tiny",focusOnShow:p=!1,selectOnShow:u=!1,showWarningInfotip:d=!1,variables:b,onKeyDown:g})=>{const[m,v]=(0,t.useState)(e),[k,f]=(0,t.useState)(""),y=(0,t.useRef)(null);let h=k;isLabelEqual(m,a?.value??"")&&a?.message&&(h=a.message);const E=h?"":(0,i.labelHint)(m),_=t.createElement(o.TextField,{ref:y,id:s,size:c,fullWidth:!0,value:m,error:!!h,onChange:e=>(e=>{v(e);const t=(0,i.validateLabel)(e,b);f(t),l?.(t),r(isLabelEqual(e,a?.value??"")||t?"":e)})(e.target.value),inputProps:{maxLength:i.VARIABLE_LABEL_MAX_LENGTH,...u&&{onFocus:e=>e.target.select()},"aria-label":"Name",onKeyDown:g},autoFocus:p});if(d){const e=Math.max(240,y.current?.getBoundingClientRect().width??240);return t.createElement(n.WarningInfotip,_extends({open:Boolean(h||E),text:h||E,placement:"bottom-start",width:e,offset:[0,-15]},E&&{hasError:!1}),_)}return _}},"./packages/packages/core/editor-variables/src/components/ui/color-indicator.tsx":function(e,a,r){r.r(a),r.d(a,{ColorIndicator:function(){return n}});var t=r("@elementor/ui");const n=(0,t.styled)(t.UnstableColorIndicator)(({theme:e})=>({borderRadius:e.shape.borderRadius/2+"px",marginRight:e.spacing(.25)}))},"./packages/packages/core/editor-variables/src/components/ui/delete-confirmation-dialog.tsx":function(e,a,r){r.r(a),r.d(a,{DeleteConfirmationDialog:function(){return DeleteConfirmationDialog}});var t=r("react"),n=r("@elementor/editor-ui"),o=r("@elementor/ui"),i=r("@wordpress/i18n");const DeleteConfirmationDialog=({open:e,label:a,closeDialog:r,onConfirm:s})=>t.createElement(n.ConfirmationDialog,{open:e,onClose:r},t.createElement(n.ConfirmationDialog.Title,null,(0,i.__)("Delete this variable?","elementor")),t.createElement(n.ConfirmationDialog.Content,null,t.createElement(n.ConfirmationDialog.ContentText,null,(0,i.__)("All elements using","elementor")," ",t.createElement(o.Typography,{variant:"subtitle2",component:"span",sx:{lineBreak:"anywhere"}},a)," ",(0,i.__)("will keep their current values, but the variable itself will be removed.","elementor"))),t.createElement(n.ConfirmationDialog.Actions,{onClose:r,onConfirm:s}))},"./packages/packages/core/editor-variables/src/components/ui/deleted-variable-alert.tsx":function(e,a,r){r.r(a),r.d(a,{DeletedVariableAlert:function(){return DeletedVariableAlert}});var t=r("react"),n=r("@elementor/ui"),o=r("@wordpress/i18n");const DeletedVariableAlert=({onClose:e,onUnlink:a,onRestore:r,label:i})=>t.createElement(n.ClickAwayListener,{onClickAway:e},t.createElement(n.Alert,{variant:"standard",severity:"warning",onClose:e,action:t.createElement(t.Fragment,null,a&&t.createElement(n.AlertAction,{variant:"contained",onClick:a},(0,o.__)("Unlink","elementor")),r&&t.createElement(n.AlertAction,{variant:"outlined",onClick:r},(0,o.__)("Restore","elementor"))),sx:{maxWidth:300}},t.createElement(n.AlertTitle,null,(0,o.__)("Deleted variable","elementor")),t.createElement(n.Typography,{variant:"body2",color:"textPrimary"},(0,o.__)("The variable","elementor")," '",t.createElement(n.Typography,{variant:"body2",component:"span",sx:{lineBreak:"anywhere"}},i),"' ",(0,o.__)("has been deleted, but it is still referenced in this location. You may restore the variable or unlink it to assign a different value.","elementor"))))},"./packages/packages/core/editor-variables/src/components/ui/edit-confirmation-dialog.tsx":function(e,a,r){r.r(a),r.d(a,{EDIT_CONFIRMATION_DIALOG_ID:function(){return s},EditConfirmationDialog:function(){return EditConfirmationDialog}});var t=r("react"),n=r("@elementor/icons"),o=r("@elementor/ui"),i=r("@wordpress/i18n");const s="edit-confirmation-dialog",EditConfirmationDialog=({closeDialog:e,onConfirm:a,onSuppressMessage:r})=>{const[s,l]=(0,t.useState)(!1);return t.createElement(o.Dialog,{open:!0,onClose:e,maxWidth:"xs"},t.createElement(o.DialogTitle,{display:"flex",alignItems:"center",gap:1},t.createElement(n.AlertTriangleFilledIcon,{color:"secondary"}),(0,i.__)("Changes to variables go live right away.","elementor")),t.createElement(o.DialogContent,null,t.createElement(o.DialogContentText,{variant:"body2",color:"textPrimary"},(0,i.__)("Don't worry - all other changes you make will wait until you publish your site.","elementor"))),t.createElement(o.DialogActions,{sx:{justifyContent:"space-between",alignItems:"center"}},t.createElement(o.FormControlLabel,{control:t.createElement(o.Checkbox,{checked:s,onChange:e=>l(e.target.checked),size:"small"}),label:t.createElement(o.Typography,{variant:"body2"},(0,i.__)("Don't show me again","elementor"))}),t.createElement("div",null,t.createElement(o.Button,{color:"secondary",onClick:e},(0,i.__)("Keep editing","elementor")),t.createElement(o.Button,{variant:"contained",color:"secondary",onClick:()=>{s&&r?.(),a?.()},sx:{ml:1}},(0,i.__)("Save","elementor")))))}},"./packages/packages/core/editor-variables/src/components/ui/empty-state.tsx":function(e,a,r){r.r(a),r.d(a,{EmptyState:function(){return EmptyState}});var t=r("react"),n=r("@elementor/ui"),o=r("@wordpress/i18n"),i=r("./packages/packages/core/editor-variables/src/hooks/use-permissions.ts");const EmptyState=({icon:e,title:a,message:r,onAdd:s,children:l})=>{const c=(0,i.usePermissions)().canAdd(),p=c?a:(0,o.__)("There are no variables","elementor"),u=c?r:(0,o.__)("With your current role, you can only connect and detach variables.","elementor");return t.createElement(Content,{title:p,message:u,icon:e},l||s&&t.createElement(n.Button,{variant:"outlined",color:"secondary",size:"small",onClick:s},(0,o.__)("Create a variable","elementor")))};function Content({title:e,message:a,icon:r,children:o}){return t.createElement(n.Stack,{gap:1,alignItems:"center",justifyContent:"flex-start",height:"100%",color:"text.secondary",sx:{p:2.5,pt:8,pb:5.5}},r,t.createElement(n.Typography,{align:"center",variant:"subtitle2"},e),t.createElement(n.Typography,{align:"center",variant:"caption",maxWidth:"180px"},a),o)}},"./packages/packages/core/editor-variables/src/components/ui/form-field.tsx":function(e,a,r){r.r(a),r.d(a,{FormField:function(){return FormField}});var t=r("react"),n=r("@elementor/ui");const FormField=({id:e,label:a,errorMsg:r,noticeMsg:o,children:i})=>t.createElement(n.Grid,{container:!0,gap:.75,alignItems:"center"},t.createElement(n.Grid,{item:!0,xs:12},t.createElement(n.FormLabel,{htmlFor:e,size:"tiny"},a)),t.createElement(n.Grid,{item:!0,xs:12},i,r&&t.createElement(n.FormHelperText,{error:!0},r),o&&t.createElement(n.FormHelperText,null,o)))},"./packages/packages/core/editor-variables/src/components/ui/menu-item-content.tsx":function(e,a,r){r.r(a),r.d(a,{MenuItemContent:function(){return MenuItemContent}});var t=r("react"),n=r("@elementor/editor-ui"),o=r("@elementor/icons"),i=r("@elementor/ui"),s=r("@wordpress/i18n");const l=(0,s.__)("Edit variable","elementor"),MenuItemContent=({item:e})=>{const a=e.onEdit;return t.createElement(t.Fragment,null,t.createElement(i.ListItemIcon,null,e.icon),t.createElement(i.Box,{sx:{flex:1,minWidth:0,display:"flex",alignItems:"center",gap:1}},t.createElement(n.EllipsisWithTooltip,{title:e.label||e.value,as:i.Typography,variant:"caption",color:"text.primary",sx:{marginTop:"1px",lineHeight:"2"},maxWidth:"50%"}),e.secondaryText&&t.createElement(n.EllipsisWithTooltip,{title:e.secondaryText,as:i.Typography,variant:"caption",color:"text.tertiary",sx:{marginTop:"1px",lineHeight:"1"},maxWidth:"50%"})),!!a&&t.createElement(i.Tooltip,{placement:"top",title:l},t.createElement(i.IconButton,{sx:{mx:1,opacity:"0"},onClick:r=>{r.stopPropagation(),a(e.value)},"aria-label":l},t.createElement(o.EditIcon,{color:"action",fontSize:"tiny"}))))}},"./packages/packages/core/editor-variables/src/components/ui/mismatch-variable-alert.tsx":function(e,a,r){r.r(a),r.d(a,{MismatchVariableAlert:function(){return MismatchVariableAlert}});var t=r("react"),n=r("@elementor/ui"),o=r("@wordpress/i18n");const i={title:(0,o.__)("Variable has changed","elementor"),message:(0,o.__)("This variable is no longer compatible with this property. You can clear it or select a different one.","elementor"),buttons:{clear:(0,o.__)("Clear","elementor"),select:(0,o.__)("Select variable","elementor")}},MismatchVariableAlert=({onClose:e,onClear:a,triggerSelect:r})=>t.createElement(n.ClickAwayListener,{onClickAway:e},t.createElement(n.Alert,{variant:"standard",severity:"warning",onClose:e,action:t.createElement(t.Fragment,null,a&&t.createElement(n.AlertAction,{variant:"contained",onClick:a},i.buttons.clear),r&&t.createElement(n.AlertAction,{variant:"outlined",onClick:r},i.buttons.select)),sx:{maxWidth:300}},t.createElement(n.AlertTitle,null,i.title),t.createElement(n.Typography,{variant:"body2",color:"textPrimary"},i.message)))},"./packages/packages/core/editor-variables/src/components/ui/missing-variable-alert.tsx":function(e,a,r){r.r(a),r.d(a,{MissingVariableAlert:function(){return MissingVariableAlert}});var t=r("react"),n=r("@elementor/ui"),o=r("@wordpress/i18n");const MissingVariableAlert=({onClose:e,onClear:a})=>t.createElement(n.ClickAwayListener,{onClickAway:e},t.createElement(n.Alert,{variant:"standard",severity:"warning",onClose:e,action:t.createElement(t.Fragment,null,a&&t.createElement(n.AlertAction,{variant:"contained",onClick:a},(0,o.__)("Clear","elementor"))),sx:{maxWidth:300}},t.createElement(n.AlertTitle,null,(0,o.__)("This variable is missing","elementor")),t.createElement(n.Typography,{variant:"body2",color:"textPrimary"},(0,o.__)("It may have been deleted. Try clearing this field and select a different value or variable.","elementor"))))},"./packages/packages/core/editor-variables/src/components/ui/no-search-results.tsx":function(e,a,r){r.r(a),r.d(a,{NoSearchResults:function(){return NoSearchResults}});var t=r("react"),n=r("@elementor/ui"),o=r("@wordpress/i18n");const NoSearchResults=({searchValue:e,onClear:a,icon:r})=>t.createElement(n.Stack,{gap:1,alignItems:"center",justifyContent:"center",p:2.5,color:"text.secondary",sx:{pb:3.5,pt:8}},r,t.createElement(n.Typography,{align:"center",variant:"subtitle2"},(0,o.__)("Sorry, nothing matched","elementor"),t.createElement("br",null),"“",e,"”."),t.createElement(n.Typography,{align:"center",variant:"caption",sx:{display:"flex",flexDirection:"column"}},(0,o.__)("Try something else.","elementor"),t.createElement(n.Link,{color:"text.secondary",variant:"caption",component:"button",onClick:a},(0,o.__)("Clear & try again","elementor"))))},"./packages/packages/core/editor-variables/src/components/ui/styled-menu-list.tsx":function(e,a,r){r.r(a),r.d(a,{VariablesStyledMenuList:function(){return n}});var t=r("@elementor/ui");const n=(0,t.styled)(t.MenuList)(({theme:e})=>({"& > li":{height:32,width:"100%",display:"flex",alignItems:"center"},'& > [role="option"]':{...e.typography.caption,lineHeight:"inherit",padding:e.spacing(.5,1,.5,2),"&:hover, &:focus":{backgroundColor:e.palette.action.hover},'&[aria-selected="true"]':{backgroundColor:e.palette.action.selected},cursor:"pointer",textOverflow:"ellipsis",position:"absolute",top:0,left:0,"&:hover .MuiIconButton-root, .MuiIconButton-root:focus":{opacity:1}},width:"100%",position:"relative"}))},"./packages/packages/core/editor-variables/src/components/ui/tags/assigned-tag.tsx":function(e,a,r){r.r(a),r.d(a,{AssignedTag:function(){return AssignedTag},SIZE:function(){return s}});var t=r("react"),n=r("@elementor/icons"),o=r("@elementor/ui"),i=r("@wordpress/i18n");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var r=arguments[a];for(var t in r)({}).hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},_extends.apply(null,arguments)}const s="tiny",l=(0,i.__)("Unlink variable","elementor"),AssignedTag=({startIcon:e,label:a,onUnlink:r,...i})=>{const c=[];return r&&c.push(t.createElement(o.Tooltip,{key:"unlink",title:l,placement:"bottom"},t.createElement(o.IconButton,{size:s,onClick:r,"aria-label":l},t.createElement(n.DetachIcon,{fontSize:s})))),t.createElement(o.Tooltip,{title:a,placement:"top"},t.createElement(o.UnstableTag,_extends({fullWidth:!0,showActionsOnHover:!0,startIcon:t.createElement(o.Stack,{gap:.5,direction:"row",alignItems:"center"},e),label:t.createElement(o.Box,{sx:{display:"inline-grid",minWidth:0}},t.createElement(o.Typography,{sx:{lineHeight:1.34},variant:"caption",noWrap:!0},a)),actions:c},i)))}},"./packages/packages/core/editor-variables/src/components/ui/tags/warning-variable-tag.tsx":function(e,a,r){r.r(a),r.d(a,{WarningVariableTag:function(){return i}});var t=r("react"),n=r("@elementor/icons"),o=r("@elementor/ui");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var r=arguments[a];for(var t in r)({}).hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},_extends.apply(null,arguments)}const i=t.forwardRef(({label:e,suffix:a,onClick:r,icon:i,...s},l)=>{const c=a?`${e} (${a})`:e;return t.createElement(o.Chip,_extends({ref:l,size:"tiny",color:"warning",shape:"rounded",variant:"standard",onClick:r,icon:t.createElement(n.AlertTriangleFilledIcon,null),label:t.createElement(o.Tooltip,{title:c,placement:"top"},t.createElement(o.Box,{sx:{display:"inline-grid",minWidth:0}},t.createElement(o.Typography,{variant:"caption",noWrap:!0,sx:{lineHeight:1.34}},c))),sx:{height:e=>e.spacing(3.5),borderRadius:e=>e.spacing(1),justifyContent:"flex-start",width:"100%"}},s))});i.displayName="WarningVariableTag"},"./packages/packages/core/editor-variables/src/components/ui/variable/assigned-variable.tsx":function(e,a,r){r.r(a),r.d(a,{AssignedVariable:function(){return AssignedVariable}});var t=r("react"),n=r("@elementor/editor-controls"),o=r("@elementor/icons"),i=r("@elementor/ui"),s=r("./packages/packages/core/editor-variables/src/utils/unlink-variable.ts"),l=r("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts"),c=r("./packages/packages/core/editor-variables/src/components/variable-selection-popover.tsx"),p=r("./packages/packages/core/editor-variables/src/components/ui/tags/assigned-tag.tsx");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var r=arguments[a];for(var t in r)({}).hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},_extends.apply(null,arguments)}const AssignedVariable=({variable:e,propTypeKey:a})=>{const{startIcon:r,propTypeUtil:u}=(0,l.getVariableType)(a),{setValue:d}=(0,n.useBoundProp)(),b=(0,t.useRef)(null),g=(0,t.useId)(),m=(0,i.usePopupState)({variant:"popover",popupId:`elementor-variables-list-${g}`}),v=(0,s.createUnlinkHandler)(e,a,d),k=r||(()=>null);return t.createElement(i.Box,{ref:b},t.createElement(p.AssignedTag,_extends({label:e.label,startIcon:t.createElement(t.Fragment,null,t.createElement(o.ColorFilterIcon,{fontSize:p.SIZE}),t.createElement(k,{value:e.value})),onUnlink:v},(0,i.bindTrigger)(m))),t.createElement(i.Popover,_extends({disableScrollLock:!0,anchorEl:b.current,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},PaperProps:{sx:{my:1}}},(0,i.bindPopover)(m)),t.createElement(c.VariableSelectionPopover,{selectedVariable:e,closePopover:m.close,propTypeKey:u.key})))}},"./packages/packages/core/editor-variables/src/components/ui/variable/deleted-variable.tsx":function(e,a,r){r.r(a),r.d(a,{DeletedVariable:function(){return DeletedVariable}});var t=r("react"),n=r("@elementor/editor-controls"),o=r("@elementor/ui"),i=r("@wordpress/i18n"),s=r("./packages/packages/core/editor-variables/src/context/variable-type-context.tsx"),l=r("./packages/packages/core/editor-variables/src/hooks/use-permissions.ts"),c=r("./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts"),p=r("./packages/packages/core/editor-variables/src/hooks/use-variable-bound-prop.ts"),u=r("./packages/packages/core/editor-variables/src/utils/unlink-variable.ts"),d=r("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts"),b=r("./packages/packages/core/editor-variables/src/components/variable-restore.tsx"),g=r("./packages/packages/core/editor-variables/src/components/ui/deleted-variable-alert.tsx"),m=r("./packages/packages/core/editor-variables/src/components/ui/tags/warning-variable-tag.tsx");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var r=arguments[a];for(var t in r)({}).hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},_extends.apply(null,arguments)}const DeletedVariable=({variable:e,propTypeKey:a})=>{const{propTypeUtil:r}=(0,d.getVariableType)(a),v=(0,n.useBoundProp)(),k=(0,l.usePermissions)(),[f,y]=(0,t.useState)(!1),closeInfotip=()=>y(!1),h=(0,t.useRef)(null),E=(0,t.useId)(),_=(0,o.usePopupState)({variant:"popover",popupId:`elementor-variables-restore-${E}`}),C={};k.canUnlink()&&(C.onUnlink=(0,u.createUnlinkHandler)(e,a,v.setValue)),k.canRestore()&&(C.onRestore=()=>{e.key&&(0,c.restoreVariable)(e.key).then(e=>{(0,p.resolveBoundPropAndSetValue)(r.create(e),v),closeInfotip()}).catch(()=>{closeInfotip(),_.setAnchorEl(h.current),_.open()})});return t.createElement(t.Fragment,null,t.createElement(o.Box,{ref:h},f&&t.createElement(o.Backdrop,{open:!0,onClick:closeInfotip,invisible:!0}),t.createElement(o.Infotip,{color:"warning",placement:"right-start",open:f,disableHoverListener:!0,onClose:closeInfotip,content:t.createElement(g.DeletedVariableAlert,{onClose:closeInfotip,onUnlink:C.onUnlink,onRestore:C.onRestore,label:e.label}),slotProps:{popper:{modifiers:[{name:"offset",options:{offset:[0,24]}}]}}},t.createElement(m.WarningVariableTag,{label:e.label,onClick:()=>y(e=>!e),suffix:(0,i.__)("deleted","elementor")})),t.createElement(o.Popover,_extends({disableScrollLock:!0,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},PaperProps:{sx:{my:1}}},(0,o.bindPopover)(_)),t.createElement(s.VariableTypeProvider,{propTypeKey:a},t.createElement(b.VariableRestore,{variableId:e.key??"",onClose:_.close,onSubmit:()=>{_.close()}})))))}},"./packages/packages/core/editor-variables/src/components/ui/variable/mismatch-variable.tsx":function(e,a,r){r.r(a),r.d(a,{MismatchVariable:function(){return MismatchVariable}});var t=r("react"),n=r("@elementor/editor-controls"),o=r("@elementor/ui"),i=r("@wordpress/i18n"),s=r("./packages/packages/core/editor-variables/src/components/variable-selection-popover.tsx"),l=r("./packages/packages/core/editor-variables/src/components/ui/mismatch-variable-alert.tsx"),c=r("./packages/packages/core/editor-variables/src/components/ui/tags/warning-variable-tag.tsx");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var r=arguments[a];for(var t in r)({}).hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},_extends.apply(null,arguments)}const MismatchVariable=({variable:e})=>{const{setValue:a,value:r}=(0,n.useBoundProp)(),p=(0,t.useRef)(null),u=(0,t.useId)(),d=(0,o.usePopupState)({variant:"popover",popupId:`elementor-variables-list-${u}`}),[b,g]=(0,t.useState)(!1),closeInfotip=()=>g(!1),m=!!r;return t.createElement(o.Box,{ref:p},b&&t.createElement(o.Backdrop,{open:!0,onClick:closeInfotip,invisible:!0}),t.createElement(o.Infotip,{color:"warning",placement:"right-start",open:b,disableHoverListener:!0,onClose:closeInfotip,content:t.createElement(l.MismatchVariableAlert,{onClose:closeInfotip,onClear:m?()=>{closeInfotip(),a(null)}:void 0,triggerSelect:()=>{closeInfotip(),d.setAnchorEl(p.current),d.open()}}),slotProps:{popper:{modifiers:[{name:"offset",options:{offset:[0,24]}}]}}},t.createElement(c.WarningVariableTag,{label:e.label,onClick:()=>g(e=>!e),suffix:(0,i.__)("changed","elementor")})),t.createElement(o.Popover,_extends({disableScrollLock:!0,anchorEl:p.current,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},PaperProps:{sx:{my:1}}},(0,o.bindPopover)(d)),t.createElement(s.VariableSelectionPopover,{selectedVariable:e,closePopover:d.close,propTypeKey:e.type})))}},"./packages/packages/core/editor-variables/src/components/ui/variable/missing-variable.tsx":function(e,a,r){r.r(a),r.d(a,{MissingVariable:function(){return MissingVariable}});var t=r("react"),n=r("@elementor/editor-controls"),o=r("@elementor/ui"),i=r("@wordpress/i18n"),s=r("./packages/packages/core/editor-variables/src/components/ui/missing-variable-alert.tsx"),l=r("./packages/packages/core/editor-variables/src/components/ui/tags/warning-variable-tag.tsx");const MissingVariable=()=>{const{setValue:e}=(0,n.useBoundProp)(),[a,r]=(0,t.useState)(!1),closeInfotip=()=>r(!1);return t.createElement(t.Fragment,null,a&&t.createElement(o.Backdrop,{open:!0,onClick:closeInfotip,invisible:!0}),t.createElement(o.Infotip,{color:"warning",placement:"right-start",open:a,disableHoverListener:!0,onClose:closeInfotip,content:t.createElement(s.MissingVariableAlert,{onClose:closeInfotip,onClear:()=>e(null)}),slotProps:{popper:{modifiers:[{name:"offset",options:{offset:[0,24]}}]}}},t.createElement(l.WarningVariableTag,{label:(0,i.__)("Missing variable","elementor"),onClick:()=>r(e=>!e)})))}},"./packages/packages/core/editor-variables/src/components/variable-creation.tsx":function(e,a,r){r.r(a),r.d(a,{VariableCreation:function(){return VariableCreation}});var t=r("react"),n=r("@elementor/editor-controls"),o=r("@elementor/editor-editing-panel"),i=r("@elementor/editor-ui"),s=r("@elementor/icons"),l=r("@elementor/ui"),c=r("@wordpress/i18n"),p=r("./packages/packages/core/editor-variables/src/context/variable-type-context.tsx"),u=r("./packages/packages/core/editor-variables/src/hooks/use-initial-value.ts"),d=r("./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts"),b=r("./packages/packages/core/editor-variables/src/hooks/use-variable-bound-prop.ts"),g=r("./packages/packages/core/editor-variables/src/utils/tracking.ts"),m=r("./packages/packages/core/editor-variables/src/utils/validations.ts"),v=r("./packages/packages/core/editor-variables/src/components/fields/label-field.tsx"),k=r("./packages/packages/core/editor-variables/src/components/ui/form-field.tsx");const f="tiny",VariableCreation=({onGoBack:e,onClose:a})=>{const{icon:r,valueField:y,variableType:h,propTypeUtil:E}=(0,p.useVariableType)(),{setVariableValue:_,path:C}=(0,b.useVariableBoundProp)(),{propType:x}=(0,n.useBoundProp)(),T=(0,u.useInitialValue)(),[V,w]=(0,t.useState)(T),[S,P]=(0,t.useState)(""),[I,A]=(0,t.useState)(""),[R,L]=(0,t.useState)(""),[B,O]=(0,t.useState)(E.key),{labelFieldError:D,setLabelFieldError:M}=(0,v.useLabelError)(),closePopover=()=>{w(""),P(""),A(""),L(""),a()},handleCreateAndTrack=()=>{(0,d.createVariable)({value:V,label:S,type:B}).then(e=>{_(e),closePopover()}).catch(e=>{const a=(0,m.mapServerError)(e);if(a&&"label"===a.field)return P(""),void M({value:S,message:a.message});A(m.ERROR_MESSAGES.UNEXPECTED_ERROR)}),(0,g.trackVariableEvent)({varType:h,controlPath:C.join("."),action:"save"})},U=""===S.trim()||("string"==typeof V?""===V.trim():!1===Boolean(V))||!!I,handleKeyDown=e=>{"Enter"!==e.key||U||(e.preventDefault(),handleCreateAndTrack())};return t.createElement(o.PopoverBody,{height:"auto"},t.createElement(i.PopoverHeader,{icon:t.createElement(t.Fragment,null,e&&t.createElement(l.IconButton,{size:f,"aria-label":(0,c.__)("Go Back","elementor"),onClick:e},t.createElement(s.ArrowLeftIcon,{fontSize:f})),t.createElement(r,{fontSize:f})),title:(0,c.__)("Create variable","elementor"),onClose:closePopover}),t.createElement(l.Divider,null),t.createElement(n.PopoverContent,{p:2},t.createElement(k.FormField,{id:"variable-label",label:(0,c.__)("Name","elementor"),errorMsg:D?.message,noticeMsg:(0,m.labelHint)(S)},t.createElement(v.LabelField,{id:"variable-label",value:S,error:D,onChange:e=>{P(e),A("")},onErrorChange:e=>{M({value:S,message:e})},onKeyDown:handleKeyDown})),y&&t.createElement(k.FormField,{errorMsg:R,label:(0,c.__)("Value","elementor")},t.createElement(l.Typography,{variant:"h5",id:"variable-value-wrapper"},t.createElement(y,{value:V,onPropTypeKeyChange:e=>O(e),onChange:e=>{w(e),A(""),L("")},onValidationChange:L,propType:x,onKeyDown:handleKeyDown}))),I&&t.createElement(l.FormHelperText,{error:!0},I)),t.createElement(l.CardActions,{sx:{pt:.5,pb:1}},t.createElement(l.Button,{id:"create-variable-button",size:"small",variant:"contained",disabled:U,onClick:handleCreateAndTrack},(0,c.__)("Create","elementor"))))}},"./packages/packages/core/editor-variables/src/components/variable-edit.tsx":function(e,a,r){r.r(a),r.d(a,{VariableEdit:function(){return VariableEdit}});var t=r("react"),n=r("@elementor/editor-controls"),o=r("@elementor/editor-current-user"),i=r("@elementor/editor-editing-panel"),s=r("@elementor/editor-ui"),l=r("@elementor/icons"),c=r("@elementor/ui"),p=r("@wordpress/i18n"),u=r("./packages/packages/core/editor-variables/src/context/variable-type-context.tsx"),d=r("./packages/packages/core/editor-variables/src/hooks/use-permissions.ts"),b=r("./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts"),g=r("./packages/packages/core/editor-variables/src/hooks/use-variable-bound-prop.ts"),m=r("./packages/packages/core/editor-variables/src/style-variables-repository.ts"),v=r("./packages/packages/core/editor-variables/src/utils/validations.ts"),k=r("./packages/packages/core/editor-variables/src/components/fields/label-field.tsx"),f=r("./packages/packages/core/editor-variables/src/components/ui/delete-confirmation-dialog.tsx"),y=r("./packages/packages/core/editor-variables/src/components/ui/edit-confirmation-dialog.tsx"),h=r("./packages/packages/core/editor-variables/src/components/ui/form-field.tsx");const E="tiny",_=(0,p.__)("Delete variable","elementor"),VariableEdit=({onClose:e,onGoBack:a,onSubmit:r,editId:C})=>{const{icon:x,valueField:T,variableType:V,propTypeUtil:w}=(0,u.useVariableType)(),{setVariableValue:S,variableId:P}=(0,g.useVariableBoundProp)(),{propType:I}=(0,n.useBoundProp)(),[A,R]=(0,o.useSuppressedMessage)(y.EDIT_CONFIRMATION_DIALOG_ID),[L,B]=(0,t.useState)(!1),[O,D]=(0,t.useState)(!1),[M,U]=(0,t.useState)(""),[F,z]=(0,t.useState)(""),{labelFieldError:N,setLabelFieldError:j}=(0,k.useLabelError)(),H=(0,b.useVariable)(C),[W,G]=(0,t.useState)(H?.type??w.key);if(!H)throw new Error(`Global ${V} variable not found`);const q=(0,d.usePermissions)(),[$,K]=(0,t.useState)(()=>H.value),[X,Z]=(0,t.useState)(()=>H.label);(0,t.useEffect)(()=>(m.styleVariablesRepository.update({[C]:{...H,value:$}}),()=>{m.styleVariablesRepository.update({[C]:{...H}})}),[C,$,H]);const handleUpdate=()=>{A?handleSaveVariable():D(!0)},handleSaveVariable=()=>{const e=W!==H.type?{value:$,label:X,type:W}:{value:$,label:X};(0,b.updateVariable)(C,e).then(()=>{maybeTriggerBoundPropChange(),r?.()}).catch(e=>{const a=(0,v.mapServerError)(e);if(a&&"label"===a.field)return Z(""),void j({value:X,message:a.message});U(v.ERROR_MESSAGES.UNEXPECTED_ERROR)})},maybeTriggerBoundPropChange=()=>{C===P&&S(C)},handleDeleteConfirmation=()=>{B(!0)},J=[];q.canDelete()&&J.push(t.createElement(c.Tooltip,{key:"delete",placement:"top",title:_},t.createElement(c.IconButton,{size:E,onClick:handleDeleteConfirmation,"aria-label":_},t.createElement(l.TrashIcon,{fontSize:E}))));const Q=$===H.value&&X===H.label||""===X.trim()||("string"==typeof $?""===$.trim():!1===Boolean($))||!!M,handleKeyDown=e=>{"Enter"!==e.key||Q||(e.preventDefault(),handleUpdate())};return t.createElement(t.Fragment,null,t.createElement(i.PopoverBody,{height:"auto"},t.createElement(s.PopoverHeader,{title:(0,p.__)("Edit variable","elementor"),onClose:e,icon:t.createElement(t.Fragment,null,a&&t.createElement(c.IconButton,{size:E,"aria-label":(0,p.__)("Go Back","elementor"),onClick:a},t.createElement(l.ArrowLeftIcon,{fontSize:E})),t.createElement(x,{fontSize:E})),actions:J}),t.createElement(c.Divider,null),t.createElement(n.PopoverContent,{p:2},t.createElement(h.FormField,{id:"variable-label",label:(0,p.__)("Name","elementor"),errorMsg:N?.message,noticeMsg:(0,v.labelHint)(X)},t.createElement(k.LabelField,{id:"variable-label",value:X,error:N,onChange:e=>{Z(e),U("")},onErrorChange:e=>{j({value:X,message:e})},onKeyDown:handleKeyDown})),T&&t.createElement(h.FormField,{errorMsg:F,label:(0,p.__)("Value","elementor")},t.createElement(c.Typography,{variant:"h5"},t.createElement(T,{propTypeKey:H.type,onPropTypeKeyChange:e=>G(e),value:$,onChange:e=>{K(e),U(""),z("")},onKeyDown:handleKeyDown,onValidationChange:z,propType:I}))),M&&t.createElement(c.FormHelperText,{error:!0},M)),t.createElement(c.CardActions,{sx:{pt:.5,pb:1}},t.createElement(c.Button,{size:"small",variant:"contained",disabled:Q,onClick:handleUpdate},(0,p.__)("Save","elementor")))),L&&t.createElement(f.DeleteConfirmationDialog,{open:!0,label:X,onConfirm:()=>{(0,b.deleteVariable)(C).then(()=>{maybeTriggerBoundPropChange(),r?.()})},closeDialog:()=>{B(!1)}}),O&&!A&&t.createElement(y.EditConfirmationDialog,{closeDialog:()=>{D(!1)},onConfirm:handleSaveVariable,onSuppressMessage:R}))}},"./packages/packages/core/editor-variables/src/components/variable-restore.tsx":function(e,a,r){r.r(a),r.d(a,{VariableRestore:function(){return VariableRestore}});var t=r("react"),n=r("@elementor/editor-controls"),o=r("@elementor/editor-editing-panel"),i=r("@elementor/editor-ui"),s=r("@elementor/ui"),l=r("@wordpress/i18n"),c=r("./packages/packages/core/editor-variables/src/context/variable-selection-popover.context.tsx"),p=r("./packages/packages/core/editor-variables/src/context/variable-type-context.tsx"),u=r("./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts"),d=r("./packages/packages/core/editor-variables/src/hooks/use-variable-bound-prop.ts"),b=r("./packages/packages/core/editor-variables/src/utils/validations.ts"),g=r("./packages/packages/core/editor-variables/src/components/fields/label-field.tsx"),m=r("./packages/packages/core/editor-variables/src/components/ui/form-field.tsx");const VariableRestore=({variableId:e,onClose:a,onSubmit:r})=>{const{icon:v,valueField:k,variableType:f,propTypeUtil:y}=(0,p.useVariableType)(),{setVariableValue:h}=(0,d.useVariableBoundProp)(),{propType:E}=(0,n.useBoundProp)(),_=(0,u.useVariable)(e);if(!_)throw new Error(`Global ${f} variable not found`);const[C,x]=(0,t.useState)(""),[T,V]=(0,t.useState)(""),[w,S]=(0,t.useState)(_.label),[P,I]=(0,t.useState)(_.value),[A,R]=(0,t.useState)(_?.type??y.key),{labelFieldError:L,setLabelFieldError:B}=(0,g.useLabelError)({value:_.label,message:b.ERROR_MESSAGES.DUPLICATED_LABEL}),handleRestore=()=>{(A!==_.type?(0,u.restoreVariable)(e,w,P,A):(0,u.restoreVariable)(e,w,P)).then(()=>{h(e),r?.()}).catch(e=>{const a=(0,b.mapServerError)(e);if(a&&"label"===a.field)return S(""),void B({value:w,message:a.message});x(b.ERROR_MESSAGES.UNEXPECTED_ERROR)})},O=P===_.value&&w===_.label||""===w.trim()||("string"==typeof P?""===P.trim():!1===Boolean(P))||!!C,handleKeyDown=e=>{"Enter"!==e.key||O||(e.preventDefault(),handleRestore())};return t.createElement(c.PopoverContentRefContextProvider,null,t.createElement(o.PopoverBody,{height:"auto"},t.createElement(i.PopoverHeader,{icon:t.createElement(v,{fontSize:"tiny"}),title:(0,l.__)("Restore variable","elementor"),onClose:a}),t.createElement(s.Divider,null),t.createElement(n.PopoverContent,{p:2},t.createElement(m.FormField,{id:"variable-label",label:(0,l.__)("Name","elementor"),errorMsg:L?.message,noticeMsg:(0,b.labelHint)(w)},t.createElement(g.LabelField,{id:"variable-label",value:w,error:L,onChange:e=>{S(e),x("")},onErrorChange:e=>{B({value:w,message:e})},onKeyDown:handleKeyDown})),k&&t.createElement(m.FormField,{errorMsg:T,label:(0,l.__)("Value","elementor")},t.createElement(s.Typography,{variant:"h5"},t.createElement(k,{propTypeKey:A,onPropTypeKeyChange:e=>R(e),value:P,onChange:e=>{I(e),x(""),V("")},onValidationChange:V,propType:E,onKeyDown:handleKeyDown}))),C&&t.createElement(s.FormHelperText,{error:!0},C)),t.createElement(s.CardActions,{sx:{pt:.5,pb:1}},t.createElement(s.Button,{size:"small",variant:"contained",disabled:O,onClick:handleRestore},(0,l.__)("Restore","elementor")))))}},"./packages/packages/core/editor-variables/src/components/variable-selection-popover.tsx":function(e,a,r){r.r(a),r.d(a,{VariableSelectionPopover:function(){return VariableSelectionPopover}});var t=r("react"),n=r("@elementor/editor-v1-adapters"),o=r("./packages/packages/core/editor-variables/src/context/variable-selection-popover.context.tsx"),i=r("./packages/packages/core/editor-variables/src/context/variable-type-context.tsx"),s=r("./packages/packages/core/editor-variables/src/hooks/use-permissions.ts"),l=r("./packages/packages/core/editor-variables/src/hooks/use-quota-permissions.ts"),c=r("./packages/packages/core/editor-variables/src/components/variable-creation.tsx"),p=r("./packages/packages/core/editor-variables/src/components/variable-edit.tsx"),u=r("./packages/packages/core/editor-variables/src/components/variables-manager/variables-manager-panel.tsx"),d=r("./packages/packages/core/editor-variables/src/components/variables-selection.tsx");const b="list",g="add",m="edit",VariableSelectionPopover=({closePopover:e,propTypeKey:a,selectedVariable:r})=>{const[v,k]=(0,t.useState)(b),[f,y]=(0,t.useState)(""),{open:h}=(0,u.usePanelActions)(),E=(0,n.isExperimentActive)("e_variables_manager")?()=>{h()}:void 0;return t.createElement(i.VariableTypeProvider,{propTypeKey:a},t.createElement(o.PopoverContentRefContextProvider,null,function RenderView(e){const a=(0,s.usePermissions)(),r=(0,l.useQuotaPermissions)(e.propTypeKey),n={onClose:()=>{e.closePopover()},onGoBack:()=>{e.setCurrentView(b)}};a.canAdd()&&(n.onAdd=()=>{e.setCurrentView(g)});a.canEdit()&&(n.onEdit=a=>{e.setEditId(a),e.setCurrentView(m)});a.canManageSettings()&&e.onSettings&&(n.onSettings=()=>{e.closePopover(),e.onSettings?.()});const handleSubmitOnEdit=()=>{e?.selectedVariable?.key===e.editId?n.onClose():n.onGoBack?.()};if(b===e.currentView)return t.createElement(d.VariablesSelection,{closePopover:n.onClose,onAdd:n.onAdd,onEdit:n.onEdit,onSettings:n.onSettings,disabled:!r.canAdd()});if(g===e.currentView)return t.createElement(c.VariableCreation,{onGoBack:n.onGoBack,onClose:n.onClose});if(m===e.currentView)return t.createElement(p.VariableEdit,{editId:e.editId,onGoBack:n.onGoBack,onClose:n.onClose,onSubmit:handleSubmitOnEdit});return null}({propTypeKey:a,currentView:v,selectedVariable:r,editId:f,setEditId:y,setCurrentView:k,closePopover:e,onSettings:E})))}},"./packages/packages/core/editor-variables/src/components/variables-manager/hooks/use-auto-edit.ts":function(e,a,r){r.r(a),r.d(a,{useAutoEdit:function(){return useAutoEdit}});var t=r("react");const useAutoEdit=()=>{const[e,a]=(0,t.useState)(void 0);return{autoEditVariableId:e,startAutoEdit:(0,t.useCallback)(e=>{a(e)},[]),handleAutoEditComplete:(0,t.useCallback)(()=>{setTimeout(()=>{a(void 0)},100)},[])}}},"./packages/packages/core/editor-variables/src/components/variables-manager/hooks/use-error-navigation.ts":function(e,a,r){r.r(a),r.d(a,{useErrorNavigation:function(){return useErrorNavigation}});var t=r("react");const useErrorNavigation=()=>{const e=(0,t.useRef)(0);return{createNavigationCallback:(0,t.useCallback)((a,r,t)=>()=>{if(!a?.length)return;const n=e.current,o=a[n];if(o){r(o);const i=n+1;i>=a.length?(t(),e.current=0):e.current=i}},[]),resetNavigation:(0,t.useCallback)(()=>{e.current=0},[])}}},"./packages/packages/core/editor-variables/src/components/variables-manager/hooks/use-variables-manager-state.ts":function(e,a,r){r.r(a),r.d(a,{useVariablesManagerState:function(){return useVariablesManagerState}});var t=r("react"),n=r("./packages/packages/core/editor-variables/src/batch-operations.ts"),o=r("./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts"),i=r("./packages/packages/core/editor-variables/src/service.ts"),s=r("./packages/packages/core/editor-variables/src/utils/filter-by-search.ts"),l=r("./packages/packages/core/editor-variables/src/utils/variables-to-list.ts"),c=r("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");const useVariablesManagerState=()=>{const[e,a]=(0,t.useState)(()=>(0,o.getVariables)(!1)),[r,p]=(0,t.useState)([]),[u,d]=(0,t.useState)(!1),[b,g]=(0,t.useState)(!1),[m,v]=(0,t.useState)(!1),[k,f]=(0,t.useState)(""),y=(0,t.useCallback)(r=>{a({...e,...r}),g(!0)},[e]),h=(0,t.useCallback)((e,r,t)=>{const o=(0,n.generateTempId)(),i={id:o,label:r.trim(),value:t.trim(),type:e};return a(e=>({...e,[o]:i})),g(!0),o},[]),E=(0,t.useCallback)(e=>{p(a=>[...a,e]),a(a=>({...a,[e]:{...a[e],deleted:!0}})),g(!0)},[]),_=(0,t.useCallback)(async()=>{const r=(0,o.getVariables)(!1);v(!0);const t=await i.service.batchSave(r,e);if(t.success){await i.service.load();const e=i.service.variables();a(e),p([]),g(!1)}return{success:t.success}},[e]);return{variables:(0,t.useCallback)(()=>{const a=(0,l.variablesToList)(e).filter(e=>!e.deleted),r=(0,l.applySelectionFilters)(a,(0,c.getVariableTypes)()),t=(0,s.filterBySearch)(r,k);return Object.fromEntries(t.map(({key:e,...a})=>[e,a]))},[e,k])(),deletedVariables:r,isDirty:b,isSaveDisabled:u,handleOnChange:y,createVariable:h,handleDeleteVariable:E,handleSave:_,isSaving:m,handleSearch:e=>{f(e)},searchValue:k,setIsSaving:v,setIsSaveDisabled:d}}},"./packages/packages/core/editor-variables/src/components/variables-manager/ui/variable-edit-menu.tsx":function(e,a,r){r.r(a),r.d(a,{VariableEditMenu:function(){return VariableEditMenu}});var t=r("react"),n=r("@elementor/icons"),o=r("@elementor/ui");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var r=arguments[a];for(var t in r)({}).hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},_extends.apply(null,arguments)}const VariableEditMenu=({menuActions:e,disabled:a,itemId:r})=>{const i=(0,o.usePopupState)({variant:"popover"});return t.createElement(t.Fragment,null,t.createElement(o.IconButton,_extends({},(0,o.bindTrigger)(i),{disabled:a,size:"tiny"}),t.createElement(n.DotsVerticalIcon,{fontSize:"tiny"})),t.createElement(o.Menu,_extends({disablePortal:!0,MenuListProps:{dense:!0},PaperProps:{elevation:6}},(0,o.bindMenu)(i),{anchorEl:i.anchorEl,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},open:i.isOpen,onClose:i.close}),e.map(e=>t.createElement(o.MenuItem,{key:e.name,onClick:()=>{e.onClick?.(r),i.close()},sx:{color:e.color,gap:1}},e.icon&&(0,t.createElement)(e.icon,{fontSize:"inherit"})," ",e.name))))}},"./packages/packages/core/editor-variables/src/components/variables-manager/ui/variable-table-cell.tsx":function(e,a,r){r.r(a),r.d(a,{VariableTableCell:function(){return VariableTableCell}});var t=r("react"),n=r("@elementor/ui");const VariableTableCell=({children:e,isHeader:a,width:r,maxWidth:o,align:i,noPadding:s,sx:l})=>{const c={maxWidth:o??150,cursor:"initial",typography:"caption",...a&&{color:"text.primary",fontWeight:"bold"},...a&&!s&&{padding:"10px 16px"},...r&&{width:r},...l};return t.createElement(n.TableCell,{size:"small",padding:s?"none":void 0,align:i,sx:c},e)}},"./packages/packages/core/editor-variables/src/components/variables-manager/variable-editable-cell.tsx":function(e,a,r){r.r(a),r.d(a,{VariableEditableCell:function(){return i}});var t=r("react"),n=r("@elementor/ui"),o=r("./packages/packages/core/editor-variables/src/components/fields/label-field.tsx");const i=t.memo(({initialValue:e,children:a,editableElement:r,onChange:i,prefixElement:s,autoEdit:l=!1,onRowRef:c,onAutoEditComplete:p,gap:u=1,fieldType:d})=>{const[b,g]=(0,t.useState)(e),[m,v]=(0,t.useState)(!1),{labelFieldError:k,setLabelFieldError:f}=(0,o.useLabelError)(),[y,h]=(0,t.useState)(""),E=(0,t.useRef)(null),_=(0,t.useCallback)(()=>{"label"===d&&k?.message||"value"===d&&y||i(b),v(!1)},[b,i,d,k,y]);(0,t.useEffect)(()=>{c?.(E?.current)},[c]),(0,t.useEffect)(()=>{l&&!m&&(v(!0),p?.())},[l,m,p]);const handleDoubleClick=()=>{v(!0)},handleKeyDown=e=>{"Enter"===e.key?_():"Escape"===e.key&&v(!1)," "!==e.key||m||(e.preventDefault(),v(!0))},C=(0,t.useCallback)(e=>{g(e)},[]),x=(0,t.useCallback)(e=>{"label"===d?f({value:b,message:e}):h(e)},[d,b,f,h]);let T;"label"===d?T=k:"value"===d&&(T={value:b,message:y});const V=r({value:b,onChange:C,onValidationChange:x,error:T});return m?t.createElement(n.ClickAwayListener,{onClickAway:_},t.createElement(n.Stack,{ref:E,direction:"row",alignItems:"center",gap:u,onDoubleClick:handleDoubleClick,onKeyDown:handleKeyDown,tabIndex:0,role:"button","aria-label":"Double click or press Space to edit"},s,V)):t.createElement(n.Stack,{ref:E,direction:"row",alignItems:"center",gap:u,onDoubleClick:handleDoubleClick,onKeyDown:handleKeyDown,tabIndex:0,role:"button","aria-label":"Double click or press Space to edit"},s,a)})},"./packages/packages/core/editor-variables/src/components/variables-manager/variables-manager-create-menu.tsx":function(e,a,r){r.r(a),r.d(a,{SIZE:function(){return d},VariableManagerCreateMenu:function(){return VariableManagerCreateMenu}});var t=r("react"),n=r("@elementor/editor-ui"),o=r("@elementor/icons"),i=r("@elementor/ui"),s=r("@elementor/utils"),l=r("@wordpress/i18n"),c=r("./packages/packages/core/editor-variables/src/hooks/use-quota-permissions.ts"),p=r("./packages/packages/core/editor-variables/src/utils/tracking.ts"),u=r("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var r=arguments[a];for(var t in r)({}).hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},_extends.apply(null,arguments)}const d="tiny",VariableManagerCreateMenu=({variables:e,onCreate:a,disabled:r,menuState:n})=>{const s=(0,t.useRef)(null),c=(0,u.getVariableTypes)(),p=(0,t.useMemo)(()=>Object.entries(c).filter(([,e])=>!!e.defaultValue).map(([e,a])=>({key:e,propTypeKey:a.propTypeUtil.key,variableType:a.variableType,defaultValue:a.defaultValue||"",icon:a.icon})),[c]);return t.createElement(t.Fragment,null,t.createElement(i.IconButton,_extends({},(0,i.bindTrigger)(n),{ref:s,disabled:r,size:d,"aria-label":(0,l.__)("Add variable","elementor")}),t.createElement(o.PlusIcon,{fontSize:d})),t.createElement(i.Menu,_extends({disablePortal:!0,MenuListProps:{dense:!0},PaperProps:{elevation:6}},(0,i.bindMenu)(n),{anchorEl:s.current,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},"data-testid":"variable-manager-create-menu"}),p.map(r=>t.createElement(MenuOption,{key:r.key,config:r,variables:e,onCreate:a,onClose:n.close}))))},MenuOption=({config:e,variables:a,onCreate:r,onClose:o})=>{const[u,b]=(0,t.useState)(!1),g=(0,c.useQuotaPermissions)(e.propTypeKey),m=(0,s.capitalize)(e.variableType),v=!g.canAdd(),k=(0,l.sprintf)((0,l.__)("%s variables","elementor"),(0,s.capitalize)(e.variableType)),f=(0,l.sprintf)((0,l.__)("Upgrade to continue creating and editing %s variables.","elementor"),e.variableType);return t.createElement(i.MenuItem,{onClick:()=>{if(v)return void(u||b(!0));const t=getDefaultName(a,e.key,e.variableType);r(e.key,t,e.defaultValue),(0,p.trackVariablesManagerEvent)({action:"add",varType:e.variableType}),o()},sx:{gap:1.5,cursor:"pointer"}},(0,t.createElement)(e.icon,{fontSize:d,color:v?"disabled":"action"}),t.createElement(i.Typography,{variant:"caption",color:v?"text.disabled":"text.primary"},m),v&&t.createElement(n.PromotionPopover,{open:u,title:k,content:f,ctaText:(0,l.__)("Upgrade now","elementor"),ctaUrl:`https://go.elementor.com/go-pro-manager-${e.variableType}-variable/`,onClose:()=>{b(!1)}},t.createElement(n.PromotionChip,null)))},getDefaultName=(e,a,r)=>{const t=Object.values(e).filter(e=>e.type===a).map(e=>e.label);let n=1,o=`${r}-${n}`;for(;t.includes(o);)n++,o=`${r}-${n}`;return o}},"./packages/packages/core/editor-variables/src/components/variables-manager/variables-manager-panel.tsx":function(e,a,r){r.r(a),r.d(a,{VariablesManagerPanel:function(){return VariablesManagerPanel},panel:function(){return _},usePanelActions:function(){return C}});var t=r("react"),n=r("@elementor/editor-panels"),o=r("@elementor/editor-ui"),i=r("@elementor/editor-v1-adapters"),s=r("@elementor/icons"),l=r("@elementor/ui"),c=r("@wordpress/i18n"),p=r("./packages/packages/core/editor-variables/src/utils/tracking.ts"),u=r("./packages/packages/core/editor-variables/src/utils/validations.ts"),d=r("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts"),b=r("./packages/packages/core/editor-variables/src/components/ui/delete-confirmation-dialog.tsx"),g=r("./packages/packages/core/editor-variables/src/components/ui/empty-state.tsx"),m=r("./packages/packages/core/editor-variables/src/components/ui/no-search-results.tsx"),v=r("./packages/packages/core/editor-variables/src/components/variables-manager/hooks/use-auto-edit.ts"),k=r("./packages/packages/core/editor-variables/src/components/variables-manager/hooks/use-error-navigation.ts"),f=r("./packages/packages/core/editor-variables/src/components/variables-manager/hooks/use-variables-manager-state.ts"),y=r("./packages/packages/core/editor-variables/src/components/variables-manager/variables-manager-create-menu.tsx"),h=r("./packages/packages/core/editor-variables/src/components/variables-manager/variables-manager-table.tsx");const E="variables-manager",{panel:_,usePanelActions:C}=(0,n.__createPanel)({id:E,component:VariablesManagerPanel,allowedEditModes:["edit",E],onOpen:()=>{(0,i.changeEditMode)(E)},onClose:()=>{(0,i.changeEditMode)("edit")},isOpenPreviousElement:!0});function VariablesManagerPanel(){const{close:e}=C(),{open:a,close:r,isOpen:i}=(0,o.useDialog)(),E=(0,l.usePopupState)({variant:"popover"}),{variables:_,isDirty:x,searchValue:T,isSaveDisabled:V,handleOnChange:w,createVariable:S,handleDeleteVariable:P,handleSave:I,isSaving:A,handleSearch:R,setIsSaving:L,setIsSaveDisabled:B}=(0,f.useVariablesManagerState)(),{autoEditVariableId:O,startAutoEdit:D,handleAutoEditComplete:M}=(0,v.useAutoEdit)(),{createNavigationCallback:U,resetNavigation:F}=(0,k.useErrorNavigation)(),[z,N]=(0,t.useState)(null),[j,H]=(0,t.useState)(null);usePreventUnload(x);const W=(0,t.useCallback)((e,a,r)=>{const t=S(e,a,r);t&&D(t)},[S,D]),handleSaveClick=async()=>{try{H(null),F();const e=await I();return(0,p.trackVariablesManagerEvent)({action:"saveChanges"}),e}catch(e){const a=(0,u.mapServerError)(e),r=a?.action?.data?.duplicatedIds;return a&&"label"===a.field&&(r&&a.action&&(a.action.callback=U(r,D,()=>{B(!1)})),H(a),B(!0),F()),{success:!1,error:a}}finally{L(!1)}},G=(0,t.useCallback)(e=>{P(e),N(null)},[P]),q=[{name:(0,c.__)("Delete","elementor"),icon:s.TrashIcon,color:"error.main",onClick:e=>{const a=_[e];if(a){N({id:e,label:a.label});const r=(0,d.getVariableType)(a.type);(0,p.trackVariablesManagerEvent)({action:"delete",varType:r?.variableType})}}}],$=Object.keys(_).length>0;return t.createElement(o.ThemeProvider,null,t.createElement(n.Panel,null,t.createElement(n.PanelHeader,{sx:{height:"unset"}},t.createElement(l.Stack,{width:"100%",direction:"column",alignItems:"center"},t.createElement(l.Stack,{p:1,pl:2,width:"100%",direction:"row",alignItems:"center"},t.createElement(l.Stack,{width:"100%",direction:"row",gap:1},t.createElement(n.PanelHeaderTitle,{sx:{display:"flex",alignItems:"center",gap:.5}},t.createElement(s.ColorFilterIcon,{fontSize:"inherit"}),(0,c.__)("Variables Manager","elementor"))),t.createElement(l.Stack,{direction:"row",gap:.5,alignItems:"center"},t.createElement(y.VariableManagerCreateMenu,{onCreate:W,variables:_,menuState:E}),t.createElement(l.CloseButton,{"aria-label":"Close",slotProps:{icon:{fontSize:y.SIZE}},onClick:()=>{x?a():e()}}))),t.createElement(l.Stack,{width:"100%",direction:"row",gap:1},t.createElement(o.SearchField,{sx:{display:"flex",flex:1},placeholder:(0,c.__)("Search","elementor"),value:T,onSearch:R})),t.createElement(l.Divider,{sx:{width:"100%"}}))),t.createElement(n.PanelBody,{sx:{display:"flex",flexDirection:"column",height:"100%"}},$&&t.createElement(h.VariablesManagerTable,{menuActions:q,variables:_,onChange:w,autoEditVariableId:O,onAutoEditComplete:M,onFieldError:B}),!$&&T&&t.createElement(m.NoSearchResults,{searchValue:T,onClear:()=>R(""),icon:t.createElement(s.ColorFilterIcon,{fontSize:"large"})}),!$&&!T&&t.createElement(g.EmptyState,{title:(0,c.__)("Create your first variable","elementor"),message:(0,c.__)("Variables are saved attributes that you can apply anywhere on your site.","elementor"),icon:t.createElement(s.ColorFilterIcon,{fontSize:"large"}),onAdd:E.open})),t.createElement(n.PanelFooter,null,t.createElement(l.Infotip,{placement:"right",open:!!j,content:j?t.createElement(l.Alert,{severity:j.severity??"error",action:j.action?.label?t.createElement(l.AlertAction,{onClick:j.action.callback},j.action.label):void 0,onClose:j.action?.label?void 0:()=>{H(null),B(!1)},icon:j.IconComponent?t.createElement(j.IconComponent,null):t.createElement(s.AlertTriangleFilledIcon,null)},t.createElement(l.AlertTitle,null,j.message),j.action?.message):null,arrow:!1,slotProps:{popper:{modifiers:[{name:"offset",options:{offset:[-10,10]}}]}}},t.createElement(l.Button,{fullWidth:!0,size:"small",color:"global",variant:"contained",disabled:V||!x||A,onClick:handleSaveClick,loading:A},(0,c.__)("Save changes","elementor"))))),z&&t.createElement(b.DeleteConfirmationDialog,{open:!0,label:z.label,onConfirm:()=>G(z.id),closeDialog:()=>N(null)}),i&&t.createElement(o.SaveChangesDialog,null,t.createElement(o.SaveChangesDialog.Title,{onClose:r},(0,c.__)("You have unsaved changes","elementor")),t.createElement(o.SaveChangesDialog.Content,null,t.createElement(o.SaveChangesDialog.ContentText,null,(0,c.__)("To avoid losing your updates, save your changes before leaving.","elementor"))),t.createElement(o.SaveChangesDialog.Actions,{actions:{discard:{label:(0,c.__)("Discard","elementor"),action:()=>{r(),e()}},confirm:{label:(0,c.__)("Save","elementor"),action:async()=>{const a=await handleSaveClick();r(),a?.success&&e()}}}})))}const usePreventUnload=e=>{(0,t.useEffect)(()=>{const handleBeforeUnload=a=>{e&&a.preventDefault()};return window.addEventListener("beforeunload",handleBeforeUnload),()=>{window.removeEventListener("beforeunload",handleBeforeUnload)}},[e])}},"./packages/packages/core/editor-variables/src/components/variables-manager/variables-manager-table.tsx":function(e,a,r){r.r(a),r.d(a,{VariablesManagerTable:function(){return VariablesManagerTable}});var t=r("react"),n=r("@elementor/editor-ui"),o=r("@elementor/icons"),i=r("@elementor/ui"),s=r("@wordpress/i18n"),l=r("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts"),c=r("./packages/packages/core/editor-variables/src/components/fields/label-field.tsx"),p=r("./packages/packages/core/editor-variables/src/components/variables-manager/ui/variable-edit-menu.tsx"),u=r("./packages/packages/core/editor-variables/src/components/variables-manager/ui/variable-table-cell.tsx"),d=r("./packages/packages/core/editor-variables/src/components/variables-manager/variable-editable-cell.tsx");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var r=arguments[a];for(var t in r)({}).hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},_extends.apply(null,arguments)}const VariablesManagerTable=({menuActions:e,variables:a,onChange:r,autoEditVariableId:b,onAutoEditComplete:g,onFieldError:m})=>{const v=(0,t.useRef)(null),k=(0,t.useRef)(new Map);(0,t.useEffect)(()=>{if(b&&v.current){const e=k.current.get(b);e&&setTimeout(()=>{e.scrollIntoView({behavior:"smooth",block:"center",inline:"nearest"})},100)}},[b]);const handleRowRef=e=>a=>{a?k.current.set(e,a):k.current.delete(e)},f=Object.keys(a).sort(function sortVariablesOrder(e){return(a,r)=>(e[a]?.order??Number.MAX_SAFE_INTEGER)-(e[r]?.order??Number.MAX_SAFE_INTEGER)}(a)),y=f.map(e=>{const r=a[e],t=(0,l.getVariableType)(r.type);return t?{id:e,type:r.type,name:r.label,value:r.value,...t}:null}).filter(Boolean),h={minWidth:250,tableLayout:"fixed"};return t.createElement(i.TableContainer,{ref:v,sx:{overflow:"initial"}},t.createElement(i.Table,{sx:h,"aria-label":"Variables manager list with drag and drop reordering",stickyHeader:!0},t.createElement(i.TableHead,null,t.createElement(i.TableRow,null,t.createElement(u.VariableTableCell,{isHeader:!0,noPadding:!0,width:10,maxWidth:10}),t.createElement(u.VariableTableCell,{isHeader:!0},(0,s.__)("Name","elementor")),t.createElement(u.VariableTableCell,{isHeader:!0},(0,s.__)("Value","elementor")),t.createElement(u.VariableTableCell,{isHeader:!0,noPadding:!0,width:16,maxWidth:16}))),t.createElement(i.TableBody,null,t.createElement(i.UnstableSortableProvider,{value:f,onChange:e=>{const t={...a};e.forEach((e,a)=>{const r=t[e];r&&(t[e]=Object.assign({},r,{order:a+1}))}),r(t)},variant:"static",restrictAxis:!0,dragOverlay:({children:e,...a})=>t.createElement(i.Table,_extends({sx:h},a),t.createElement(i.TableBody,null,e))},y.map(s=>t.createElement(i.UnstableSortableItem,{key:s.id,id:s.id,render:({itemProps:l,showDropIndication:v,triggerProps:k,itemStyle:f,triggerStyle:y,isDragged:h,dropPosition:E,setTriggerRef:_,isSorting:C})=>{const x=v&&"before"===E,T=v&&"after"===E;return t.createElement(i.TableRow,_extends({},l,{ref:l.ref,selected:h,sx:{...x&&{"& td, & th":{borderTop:"2px solid",borderTopColor:"primary.main"}},...T&&{"& td, & th":{borderBottom:"2px solid",borderBottomColor:"primary.main"}},'& [role="toolbar"], & [draggable]':{opacity:0},"&:hover, &:focus-within":{backgroundColor:"action.hover",'& [role="toolbar"], & [draggable]':{opacity:1}}},style:{...f,...y}}),t.createElement(u.VariableTableCell,{noPadding:!0,width:10,maxWidth:10},t.createElement(i.IconButton,_extends({size:"small",ref:_},k,{disabled:C,draggable:!0}),t.createElement(o.GripVerticalIcon,{fontSize:"inherit"}))),t.createElement(u.VariableTableCell,null,t.createElement(d.VariableEditableCell,{initialValue:s.name,onChange:e=>{e!==s.name&&r({...a,[s.id]:{...a[s.id],label:e}})},prefixElement:(0,t.createElement)(s.icon,{fontSize:"inherit"}),editableElement:({value:e,onChange:r,onValidationChange:n,error:o})=>t.createElement(c.LabelField,{id:"variable-label-"+s.id,size:"tiny",value:e,onChange:r,onErrorChange:e=>{n?.(e),m?.(!!e)},error:o,focusOnShow:!0,selectOnShow:b===s.id,showWarningInfotip:!0,variables:a}),autoEdit:b===s.id,onRowRef:handleRowRef(s.id),onAutoEditComplete:b===s.id?g:void 0,fieldType:"label"},t.createElement(n.EllipsisWithTooltip,{title:s.name,sx:{border:"4px solid transparent"}},s.name))),t.createElement(u.VariableTableCell,null,t.createElement(d.VariableEditableCell,{initialValue:s.value,onChange:e=>{e!==s.value&&r({...a,[s.id]:{...a[s.id],value:e}})},editableElement:({value:e,onChange:n,onValidationChange:o,error:i})=>s.valueField?.({value:e,onChange:n,onPropTypeKeyChange:e=>{r({...a,[s.id]:{...a[s.id],type:e}})},propTypeKey:s.type,onValidationChange:e=>{o?.(e),m?.(!!e)},error:i})??t.createElement(t.Fragment,null),onRowRef:handleRowRef(s.id),gap:.25,fieldType:"value"},s.startIcon&&s.startIcon({value:s.value}),t.createElement(n.EllipsisWithTooltip,{title:s.value,sx:{border:"4px solid transparent",lineHeight:"1",pt:.25}},s.value))),t.createElement(u.VariableTableCell,{align:"right",noPadding:!0,width:16,maxWidth:16,sx:{paddingInlineEnd:1}},t.createElement(i.Stack,{role:"toolbar",direction:"row",justifyContent:"flex-end"},t.createElement(p.VariableEditMenu,{menuActions:e,disabled:C,itemId:s.id}))))}}))))))}},"./packages/packages/core/editor-variables/src/components/variables-repeater-item-slot.tsx":function(e,a,r){r.r(a),r.d(a,{BackgroundRepeaterColorIndicator:function(){return BackgroundRepeaterColorIndicator},BackgroundRepeaterLabel:function(){return BackgroundRepeaterLabel},BoxShadowRepeaterColorIndicator:function(){return BoxShadowRepeaterColorIndicator}});var t=r("react"),n=r("./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts"),o=r("./packages/packages/core/editor-variables/src/components/ui/color-indicator.tsx");const useColorVariable=e=>{const a=e?.value?.color?.value;return(0,n.useVariable)(a||"")},BackgroundRepeaterColorIndicator=({value:e})=>{const a=useColorVariable(e);return t.createElement(o.ColorIndicator,{component:"span",size:"inherit",value:a?.value})},BackgroundRepeaterLabel=({value:e})=>{const a=useColorVariable(e);return t.createElement("span",null,a?.label)},BoxShadowRepeaterColorIndicator=({value:e})=>{const a=useColorVariable(e);return t.createElement(o.ColorIndicator,{component:"span",size:"inherit",value:a?.value})}},"./packages/packages/core/editor-variables/src/components/variables-selection.tsx":function(e,a,r){r.r(a),r.d(a,{VariablesSelection:function(){return VariablesSelection}});var t=r("react"),n=r("@elementor/editor-editing-panel"),o=r("@elementor/editor-ui"),i=r("@elementor/icons"),s=r("@elementor/ui"),l=r("@wordpress/i18n"),c=r("./packages/packages/core/editor-variables/src/context/variable-type-context.tsx"),p=r("./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts"),u=r("./packages/packages/core/editor-variables/src/hooks/use-variable-bound-prop.ts"),d=r("./packages/packages/core/editor-variables/src/utils/tracking.ts"),b=r("./packages/packages/core/editor-variables/src/components/ui/empty-state.tsx"),g=r("./packages/packages/core/editor-variables/src/components/ui/menu-item-content.tsx"),m=r("./packages/packages/core/editor-variables/src/components/ui/no-search-results.tsx"),v=r("./packages/packages/core/editor-variables/src/components/ui/styled-menu-list.tsx");const k="tiny",f=(0,l.__)("Create variable","elementor"),y=(0,l.__)("Variables Manager","elementor"),VariablesSelection=({closePopover:e,onAdd:a,onEdit:r,onSettings:h,disabled:E=!1})=>{const{icon:_,startIcon:C,variableType:x,propTypeUtil:T,emptyState:V}=(0,c.useVariableType)(),{value:w,setValue:S,path:P}=(0,u.useVariableBoundProp)(),[I,A]=(0,t.useState)(""),{list:R,hasMatches:L,isSourceNotEmpty:B,hasNoCompatibleVariables:O}=(0,p.useFilteredVariables)(I,T.key),onAddAndTrack=()=>{a?.(),(0,d.trackVariableEvent)({varType:x,controlPath:P.join("."),action:"add"})},D=[];if(a&&D.push(t.createElement(s.Tooltip,{key:"add",placement:"top",title:f},t.createElement("span",null,t.createElement(s.IconButton,{id:"add-variable-button",size:k,onClick:onAddAndTrack,"aria-label":f,disabled:E},t.createElement(i.PlusIcon,{fontSize:k}))))),h){const handleOpenManager=()=>{h(),(0,d.trackVariablesManagerEvent)({action:"openManager",varType:x,controlPath:P.join(".")})};D.push(t.createElement(s.Tooltip,{key:"settings",placement:"top",title:y},t.createElement(s.IconButton,{id:"variables-manager-button",size:k,onClick:handleOpenManager,"aria-label":y},t.createElement(i.SettingsIcon,{fontSize:k}))))}const M=C||(()=>t.createElement(_,{fontSize:k})),U=R.map(({value:e,label:a,key:n})=>({type:"item",value:n,label:a,icon:t.createElement(M,{value:e}),secondaryText:e,onEdit:r?()=>r?.(n):void 0}));return t.createElement(n.PopoverBody,null,t.createElement(o.PopoverHeader,{title:(0,l.__)("Variables","elementor"),icon:t.createElement(i.ColorFilterIcon,{fontSize:k}),onClose:e,actions:D}),B&&t.createElement(o.SearchField,{value:I,onSearch:e=>{A(e)},placeholder:(0,l.__)("Search","elementor")}),t.createElement(s.Divider,null),B&&L&&t.createElement(o.PopoverMenuList,{items:U,onSelect:a=>{S(a),(0,d.trackVariableEvent)({varType:x,controlPath:P.join("."),action:"connect"}),e()},onClose:()=>{},selectedValue:w,"data-testid":`${x}-variables-list`,menuListTemplate:v.VariablesStyledMenuList,menuItemContentTemplate:e=>t.createElement(g.MenuItemContent,{item:e})}),!L&&B&&t.createElement(m.NoSearchResults,{searchValue:I,onClear:()=>{A("")},icon:t.createElement(_,{fontSize:"large"})}),E&&t.createElement(b.EmptyState,{title:(0,l.sprintf)((0,l.__)("No %s variables yet","elementor"),x),message:(0,l.sprintf)((0,l.__)("Upgrade to create %s variables and maintain consistent element sizing.","elementor"),x),icon:t.createElement(_,{fontSize:"large"})},V),!B&&!O&&!E&&t.createElement(b.EmptyState,{title:(0,l.sprintf)((0,l.__)("Create your first %s variable","elementor"),x),message:(0,l.__)("Variables are saved attributes that you can apply anywhere on your site.","elementor"),icon:t.createElement(_,{fontSize:"large"}),onAdd:a}),O&&!E&&t.createElement(b.EmptyState,{title:(0,l.__)("No compatible variables","elementor"),message:(0,l.__)("Looks like none of your variables work with this control. Create a new variable to use it here.","elementor"),icon:t.createElement(_,{fontSize:"large"}),onAdd:a}))}},"./packages/packages/core/editor-variables/src/context/variable-selection-popover.context.tsx":function(e,a,r){r.r(a),r.d(a,{PopoverContentRefContextProvider:function(){return PopoverContentRefContextProvider},usePopoverContentRef:function(){return usePopoverContentRef}});var t=r("react"),n=r("@elementor/ui");const o=(0,t.createContext)(null),PopoverContentRefContextProvider=({children:e})=>{const[a,r]=(0,t.useState)(null);return t.createElement(o.Provider,{value:a},t.createElement(n.Box,{ref:r},e))},usePopoverContentRef=()=>(0,t.useContext)(o)},"./packages/packages/core/editor-variables/src/context/variable-type-context.tsx":function(e,a,r){r.r(a),r.d(a,{VariableTypeProvider:function(){return VariableTypeProvider},useVariableType:function(){return useVariableType}});var t=r("react"),n=r("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");const o=(0,t.createContext)(null);function VariableTypeProvider({children:e,propTypeKey:a}){return t.createElement(o.Provider,{value:a},e)}function useVariableType(){const e=(0,t.useContext)(o);if(null===e)throw new Error("useVariableType must be used within a VariableTypeProvider");return(0,n.getVariableType)(e)}},"./packages/packages/core/editor-variables/src/controls/variable-control.tsx":function(e,a,r){r.r(a),r.d(a,{VariableControl:function(){return VariableControl}});var t=r("react"),n=r("@elementor/editor-controls"),o=r("./packages/packages/core/editor-variables/src/components/ui/variable/assigned-variable.tsx"),i=r("./packages/packages/core/editor-variables/src/components/ui/variable/deleted-variable.tsx"),s=r("./packages/packages/core/editor-variables/src/components/ui/variable/mismatch-variable.tsx"),l=r("./packages/packages/core/editor-variables/src/components/ui/variable/missing-variable.tsx"),c=r("./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts"),p=r("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");const VariableControl=()=>{const e=(0,n.useBoundProp)(),a=e.value??e.placeholder,r=(0,c.useVariable)(a?.value);if(!r)return t.createElement(l.MissingVariable,null);const{$$type:u}=a;if(r?.deleted)return t.createElement(i.DeletedVariable,{variable:r,propTypeKey:u});const{isCompatible:d}=(0,p.getVariableType)(r.type);return d&&!d(e?.propType,r)?t.createElement(s.MismatchVariable,{variable:r}):t.createElement(o.AssignedVariable,{variable:r,propTypeKey:u})}},"./packages/packages/core/editor-variables/src/create-style-variables-repository.ts":function(e,a,r){r.r(a),r.d(a,{createStyleVariablesRepository:function(){return createStyleVariablesRepository}});var t=r("./packages/packages/core/editor-variables/src/prop-types/font-variable-prop-type.ts"),n=r("./packages/packages/core/editor-variables/src/sync/enqueue-font.ts");const createStyleVariablesRepository=()=>{const e={};let a;const shouldUpdate=(a,r)=>!(a in e)||(e[a].label!==r.label||(e[a].value!==r.value||(!(e[a]?.deleted||!r?.deleted)||!(!e[a]?.deleted||r?.deleted)))),fontEnqueue=e=>{if(e)try{(0,n.enqueueFont)(e)}catch{}};return{subscribe:e=>(a=e,()=>{a=()=>{}}),update:r=>{(a=>{let r=!1;for(const[n,o]of Object.entries(a))shouldUpdate(n,o)&&(e[n]=o,o.type===t.fontVariablePropTypeUtil.key&&fontEnqueue(o.value),r=!0);return r})(r)&&"function"==typeof a&&a({...e})}}}},"./packages/packages/core/editor-variables/src/hooks/use-initial-value.ts":function(e,a,r){r.r(a),r.d(a,{useInitialValue:function(){return useInitialValue}});var t=r("@elementor/editor-controls"),n=r("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts"),o=r("./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts");const useInitialValue=()=>{const{value:e}=(0,t.useBoundProp)(),a=(0,n.hasVariableType)(e?.$$type)&&Boolean(e?.value),r=(0,o.useVariable)(a?e.value:"");return a?r?r.value:"":e?.value??""}},"./packages/packages/core/editor-variables/src/hooks/use-permissions.ts":function(e,a,r){r.r(a),r.d(a,{usePermissions:function(){return usePermissions}});var t=r("@elementor/editor-current-user");const usePermissions=()=>{const{canUser:e,isAdmin:a}=(0,t.useCurrentUserCapabilities)();return{canAssign:()=>e("edit_posts"),canUnlink:()=>e("edit_posts"),canAdd:()=>a,canDelete:()=>a,canEdit:()=>a,canRestore:()=>a,canManageSettings:()=>a}}},"./packages/packages/core/editor-variables/src/hooks/use-prop-variable-action.tsx":function(e,a,r){r.r(a),r.d(a,{usePropVariableAction:function(){return usePropVariableAction}});var t=r("react"),n=r("@elementor/editor-editing-panel"),o=r("@elementor/icons"),i=r("@wordpress/i18n"),s=r("./packages/packages/core/editor-variables/src/components/variable-selection-popover.tsx"),l=r("./packages/packages/core/editor-variables/src/utils/tracking.ts"),c=r("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");const usePropVariableAction=()=>{const{propType:e,path:a}=(0,n.useBoundProp)(),r=resolveVariableFromPropType(e);return{visible:Boolean(r),icon:o.ColorFilterIcon,title:(0,i.__)("Variables","elementor"),content:({close:e})=>r?(trackOpenVariablePopover(a,r.variableType),t.createElement(s.VariableSelectionPopover,{closePopover:e,propTypeKey:r.propTypeUtil.key})):null}},resolveVariableFromPropType=e=>{if("union"===e.kind)for(const a of Object.keys(e.prop_types)){const e=(0,c.getVariableType)(a);if(e)return e}},trackOpenVariablePopover=(e,a)=>{(0,l.trackVariableEvent)({varType:a,controlPath:e.join("."),action:"open"})}},"./packages/packages/core/editor-variables/src/hooks/use-prop-variables.ts":function(e,a,r){r.r(a),r.d(a,{createVariable:function(){return createVariable},deleteVariable:function(){return deleteVariable},getVariables:function(){return getVariables},restoreVariable:function(){return restoreVariable},updateVariable:function(){return updateVariable},useFilteredVariables:function(){return useFilteredVariables},useVariable:function(){return useVariable}});var t=r("react"),n=r("@elementor/editor-controls"),o=r("./packages/packages/core/editor-variables/src/context/variable-type-context.tsx"),i=r("./packages/packages/core/editor-variables/src/service.ts"),s=r("./packages/packages/core/editor-variables/src/utils/filter-by-search.ts"),l=r("./packages/packages/core/editor-variables/src/utils/variables-to-list.ts"),c=r("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");const getVariables=(e=!0)=>{const a=i.service.variables();return e?a:Object.fromEntries(Object.entries(a).filter(([,e])=>!e.deleted))},useVariable=e=>{const a=getVariables();return a?.[e]?{...a[e],key:e}:null},useFilteredVariables=(e,a)=>{const r=usePropVariables(a),t=useVariableSelectionFilter(r),n=(0,s.filterBySearch)(t,e);return{list:n.sort((e,a)=>(e.order??Number.MAX_SAFE_INTEGER)-(a.order??Number.MAX_SAFE_INTEGER)),hasMatches:n.length>0,isSourceNotEmpty:t.length>0,hasNoCompatibleVariables:r.length>0&&0===t.length}},useVariableSelectionFilter=e=>{const{selectionFilter:a}=(0,o.useVariableType)(),{propType:r}=(0,n.useBoundProp)();return a?a(e,r):e},usePropVariables=e=>(0,t.useMemo)(()=>normalizeVariables(e),[e]),normalizeVariables=e=>{const a=getVariables(!1),r=(e=>{const a=[],r=(0,c.getVariableTypes)(),t=(0,c.getVariableType)(e);return Object.entries(r).forEach(([e,r])=>{t.variableType===r.variableType&&a.push(e)}),a})(e);return(0,l.variablesToList)(a).filter(e=>r.includes(e.type)).map(l.toNormalizedVariable)},extractId=({id:e})=>e,createVariable=e=>i.service.create(e).then(extractId),updateVariable=(e,{value:a,label:r,type:t})=>i.service.update(e,{value:a,label:r,type:t}).then(extractId),deleteVariable=e=>i.service.delete(e).then(extractId),restoreVariable=(e,a,r,t)=>i.service.restore(e,a,r,t).then(extractId)},"./packages/packages/core/editor-variables/src/hooks/use-quota-permissions.ts":function(e,a,r){r.r(a),r.d(a,{useQuotaPermissions:function(){return useQuotaPermissions}});var t=r("./packages/packages/core/editor-variables/src/sync/license-info.ts");const useQuotaPermissions=e=>{const a=((window.ElementorVariablesQuotaConfig||{})[e]||0)>0;return{canAdd:()=>a||(0,t.getLicenseInfo)().hasPro,canEdit:()=>a||(0,t.getLicenseInfo)().hasPro}}},"./packages/packages/core/editor-variables/src/hooks/use-variable-bound-prop.ts":function(e,a,r){r.r(a),r.d(a,{resolveBoundPropAndSetValue:function(){return resolveBoundPropAndSetValue},useVariableBoundProp:function(){return useVariableBoundProp}});var t=r("@elementor/editor-controls"),n=r("@elementor/editor-props"),o=r("./packages/packages/core/editor-variables/src/context/variable-type-context.tsx");const useVariableBoundProp=()=>{const{propTypeUtil:e}=(0,o.useVariableType)(),a=(0,t.useBoundProp)(e);return{...a,setVariableValue:e=>resolveBoundPropAndSetValue(e,a),variableId:a.value??a.placeholder}},resolveBoundPropAndSetValue=(e,a)=>{const r=unwrapValue(a.value),t=unwrapValue(a.placeholder),n=unwrapValue(e);return r||t!==n?a.setValue(e):a.setValue(null)},unwrapValue=e=>(0,n.isTransformable)(e)?e.value:e},"./packages/packages/core/editor-variables/src/init.ts":function(e,a,r){r.r(a),r.d(a,{init:function(){return init}});var t=r("@elementor/editor"),n=r("@elementor/editor-editing-panel"),o=r("@elementor/editor-panels"),i=r("@elementor/editor-props"),s=r("./packages/packages/core/editor-variables/src/components/variables-manager/variables-manager-panel.tsx"),l=r("./packages/packages/core/editor-variables/src/controls/variable-control.tsx"),c=r("./packages/packages/core/editor-variables/src/hooks/use-prop-variable-action.tsx"),p=r("./packages/packages/core/editor-variables/src/mcp/index.ts"),u=r("./packages/packages/core/editor-variables/src/register-variable-types.tsx"),d=r("./packages/packages/core/editor-variables/src/renderers/style-variables-renderer.tsx"),b=r("./packages/packages/core/editor-variables/src/repeater-injections.ts"),g=r("./packages/packages/core/editor-variables/src/service.ts"),m=r("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");const{registerPopoverAction:v}=n.controlActionsMenu;function init(){(0,u.registerVariableTypes)(),(0,b.registerRepeaterInjections)(),(0,n.registerControlReplacement)({component:l.VariableControl,condition:({value:e,placeholder:a})=>!!hasVariableAssigned(e)||!e&&hasVariableAssigned(a)}),v({id:"variables",useProps:c.usePropVariableAction}),g.service.init().then(()=>{(0,p.initMcp)()}),(0,t.injectIntoTop)({id:"canvas-style-variables-render",component:d.StyleVariablesRenderer}),(0,o.__registerPanel)(s.panel)}function hasVariableAssigned(e){return!!(0,i.isTransformable)(e)&&(0,m.hasVariableType)(e.$$type)}},"./packages/packages/core/editor-variables/src/mcp/index.ts":function(e,a,r){r.r(a),r.d(a,{initMcp:function(){return initMcp}});var t=r("./packages/packages/core/editor-variables/src/mcp/manage-variable-tool.ts"),n=r("./packages/packages/core/editor-variables/src/mcp/variables-resource.ts");function initMcp(){(0,t.initManageVariableTool)(),(0,n.initVariablesResource)()}},"./packages/packages/core/editor-variables/src/mcp/manage-variable-tool.ts":function(e,a,r){r.r(a),r.d(a,{initManageVariableTool:function(){return initManageVariableTool}});var t=r("@elementor/editor-mcp"),n=r("@elementor/schema"),o=r("./packages/packages/core/editor-variables/src/service.ts"),i=r("./packages/packages/core/editor-variables/src/mcp/variables-resource.ts");const initManageVariableTool=()=>{(0,t.getMCPByDomain)("variables").addTool({name:"manage-global-variable",schema:{action:n.z.enum(["create","update","delete"]).describe("Operation to perform"),id:n.z.string().optional().describe("Variable id (required for update/delete). Get from list-global-variables."),type:n.z.string().optional().describe('Variable type: "global-color-variable" or "global-font-variable" (required for create)'),label:n.z.string().optional().describe("Variable label (required for create/update)"),value:n.z.string().optional().describe("Variable value (required for create/update)")},outputSchema:{status:n.z.enum(["ok"]).describe("Operation status"),message:n.z.string().optional().describe("Error details if status is error")},modelPreferences:{intelligencePriority:.75,speedPriority:.75},requiredResources:[{uri:i.GLOBAL_VARIABLES_URI,description:"Global variables"}],description:'Manages global variables (create/update/delete). Existing variables available in resources.\nCREATE: requires type, label, value. Ensure label is unique.\nUPDATE: requires id, label, value. When renaming: keep existing value. When updating value: keep exact label.\nDELETE: requires id. DESTRUCTIVE - confirm with user first.\n\n# NAMING - IMPORTANT\nthe variables names should ALWAYS be lowercased and dashed spaced. example: "Headline Primary" should be "headline-primary"\n',handler:async e=>{const a=function getServiceActions(e){return{create({type:a,label:r,value:t}){if(!a||!r||!t)throw new Error("Create requires type, label, and value");return e.create({type:a,label:r,value:t})},update({id:a,label:r,value:t}){if(!a||!r||!t)throw new Error("Update requires id, label, and value");return e.update(a,{label:r,value:t})},delete({id:a}){if(!a)throw new Error("delete requires id");return e.delete(a)}}}(o.service)[e.action];if(a)return await a(e),{status:"ok"};throw new Error(`Unknown action ${e.action}`)},isDestructive:!0})}},"./packages/packages/core/editor-variables/src/mcp/variables-resource.ts":function(e,a,r){r.r(a),r.d(a,{GLOBAL_VARIABLES_URI:function(){return o},initVariablesResource:function(){return initVariablesResource}});var t=r("@elementor/editor-mcp"),n=r("./packages/packages/core/editor-variables/src/service.ts");const o="elementor://global-variables",initVariablesResource=()=>{[(0,t.getMCPByDomain)("canvas"),(0,t.getMCPByDomain)("variables")].forEach(e=>{const{mcpServer:a}=e;a.resource("global-variables",o,{description:"List of Global variables. Defined as a key-value store (ID as key, global-variable object as value)"},async()=>{const e={};return Object.entries(n.service.variables()).forEach(([a,r])=>{r.deleted||(e[a]=r)}),{contents:[{uri:o,text:JSON.stringify(e)}]}}),window.addEventListener("variables:updated",()=>{a.server.sendResourceUpdated({uri:o,contents:[{uri:o,text:localStorage["elementor-global-variables"]}]})})})}},"./packages/packages/core/editor-variables/src/prop-types/color-variable-prop-type.ts":function(e,a,r){r.r(a),r.d(a,{colorVariablePropTypeUtil:function(){return o}});var t=r("@elementor/editor-props"),n=r("@elementor/schema");const o=(0,t.createPropUtils)("global-color-variable",n.z.string())},"./packages/packages/core/editor-variables/src/prop-types/font-variable-prop-type.ts":function(e,a,r){r.r(a),r.d(a,{fontVariablePropTypeUtil:function(){return o}});var t=r("@elementor/editor-props"),n=r("@elementor/schema");const o=(0,t.createPropUtils)("global-font-variable",n.z.string())},"./packages/packages/core/editor-variables/src/prop-types/size-variable-prop-type.ts":function(e,a,r){r.r(a),r.d(a,{sizeVariablePropTypeUtil:function(){return o}});var t=r("@elementor/editor-props"),n=r("@elementor/schema");const o=(0,t.createPropUtils)("global-size-variable",n.z.string())},"./packages/packages/core/editor-variables/src/register-variable-types.tsx":function(e,a,r){r.r(a),r.d(a,{registerVariableTypes:function(){return registerVariableTypes}});var t=r("react"),n=r("@elementor/editor-props"),o=r("@elementor/editor-ui"),i=r("@elementor/icons"),s=r("./packages/packages/core/editor-variables/src/components/fields/color-field.tsx"),l=r("./packages/packages/core/editor-variables/src/components/fields/font-field.tsx"),c=r("./packages/packages/core/editor-variables/src/components/ui/color-indicator.tsx"),p=r("./packages/packages/core/editor-variables/src/prop-types/color-variable-prop-type.ts"),u=r("./packages/packages/core/editor-variables/src/prop-types/font-variable-prop-type.ts"),d=r("./packages/packages/core/editor-variables/src/prop-types/size-variable-prop-type.ts"),b=r("./packages/packages/core/editor-variables/src/transformers/empty-transformer.tsx"),g=r("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");function registerVariableTypes(){(0,g.registerVariableType)({key:p.colorVariablePropTypeUtil.key,valueField:s.ColorField,icon:i.BrushIcon,propTypeUtil:p.colorVariablePropTypeUtil,fallbackPropTypeUtil:n.colorPropTypeUtil,variableType:"color",startIcon:({value:e})=>t.createElement(c.ColorIndicator,{size:"inherit",component:"span",value:e}),defaultValue:"#ffffff"}),(0,g.registerVariableType)({key:u.fontVariablePropTypeUtil.key,valueField:l.FontField,icon:i.TextIcon,propTypeUtil:u.fontVariablePropTypeUtil,fallbackPropTypeUtil:n.stringPropTypeUtil,variableType:"font",defaultValue:"Roboto"});const e={isActive:!1,icon:i.ExpandDiagonalIcon,propTypeUtil:d.sizeVariablePropTypeUtil,fallbackPropTypeUtil:n.sizePropTypeUtil,styleTransformer:b.EmptyTransformer,variableType:"size",selectionFilter:()=>[],emptyState:t.createElement(o.CtaButton,{size:"small",href:"https://go.elementor.com/go-pro-panel-size-variable/"})};(0,g.registerVariableType)({...e,key:d.sizeVariablePropTypeUtil.key,defaultValue:"0px"}),(0,g.registerVariableType)({...e,key:"global-custom-size-variable"})}},"./packages/packages/core/editor-variables/src/renderers/style-variables-renderer.tsx":function(e,a,r){r.r(a),r.d(a,{StyleVariablesRenderer:function(){return StyleVariablesRenderer}});var t=r("react"),n=r("@elementor/editor-v1-adapters"),o=r("@elementor/ui"),i=r("./packages/packages/core/editor-variables/src/style-variables-repository.ts");const s="body";function StyleVariablesRenderer(){const e=function usePortalContainer(){return(0,n.__privateUseListenTo)((0,n.commandEndEvent)("editor/documents/attach-preview"),()=>(0,n.getCanvasIframeDocument)()?.head)}(),a=function useStyleVariables(){const[e,a]=(0,t.useState)({});return(0,t.useEffect)(()=>{const e=i.styleVariablesRepository.subscribe(a);return()=>{e()}},[]),e}(),r=Object.keys(a).length>0;if(!e||!r)return null;const l=function convertToCssVariables(e){return Object.entries(e).map(([e,a])=>function cssVariableDeclaration(e,a){const r=a?.deleted?e:a.label,t=a.value;return`--${r}:${t};`}(e,a)).join("")}(a),c=`${s}{${l}}`;return t.createElement(o.Portal,{container:e},t.createElement("style",{"data-e-style-id":"e-variables",key:c},c))}},"./packages/packages/core/editor-variables/src/repeater-injections.ts":function(e,a,r){r.r(a),r.d(a,{registerRepeaterInjections:function(){return registerRepeaterInjections}});var t=r("@elementor/editor-controls"),n=r("@elementor/editor-props"),o=r("./packages/packages/core/editor-variables/src/components/variables-repeater-item-slot.tsx"),i=r("./packages/packages/core/editor-variables/src/prop-types/color-variable-prop-type.ts");function registerRepeaterInjections(){(0,t.injectIntoRepeaterItemIcon)({id:"color-variables-background-icon",component:o.BackgroundRepeaterColorIndicator,condition:({value:e})=>hasAssignedColorVariable(n.backgroundColorOverlayPropTypeUtil.extract(e)?.color)}),(0,t.injectIntoRepeaterItemIcon)({id:"color-variables-icon",component:o.BoxShadowRepeaterColorIndicator,condition:({value:e})=>hasAssignedColorVariable(n.shadowPropTypeUtil.extract(e)?.color)}),(0,t.injectIntoRepeaterItemLabel)({id:"color-variables-label",component:o.BackgroundRepeaterLabel,condition:({value:e})=>hasAssignedColorVariable(n.backgroundColorOverlayPropTypeUtil.extract(e)?.color)})}const hasAssignedColorVariable=e=>!!i.colorVariablePropTypeUtil.isValid(e)},"./packages/packages/core/editor-variables/src/service.ts":function(e,a,r){r.r(a),r.d(a,{service:function(){return c}});var t=r("@wordpress/i18n"),n=r("./packages/packages/core/editor-variables/src/api.ts"),o=r("./packages/packages/core/editor-variables/src/batch-operations.ts"),i=r("./packages/packages/core/editor-variables/src/storage.ts"),s=r("./packages/packages/core/editor-variables/src/style-variables-repository.ts");const l=new i.Storage,c={variables:()=>l.load(),findIdByLabel(e){const a=Object.entries(this.variables()).find(([,a])=>a.label===e);if(!a)throw new Error(`Variable with label ${e} not found`);return a[0]},findVariableByLabel(e){return Object.values(this.variables()).find(a=>a.label===e)||null},getWatermark:()=>l.state.watermark,init:()=>c.load(),load:()=>n.apiClient.list().then(e=>{const{success:a,data:r}=e.data;if(!a)throw new Error("Unexpected response from server");return r}).then(e=>{const{variables:a,watermark:r}=e;return l.fill(a,r),s.styleVariablesRepository.update(a),a}),create:({type:e,label:a,value:r})=>n.apiClient.create(e,a,r).then(e=>{const{success:a,data:r}=e.data;if(!a){const e=r?.message||(0,t.__)("Unexpected response from server","elementor");throw new Error(e)}return r}).then(e=>{const{variable:a,watermark:r}=e;handleWatermark(i.OP_RW,r);const{id:t,...n}=a;return l.add(t,n),s.styleVariablesRepository.update({[t]:n}),{id:t,variable:n}}),update:(e,{label:a,value:r,type:o})=>n.apiClient.update(e,a,r,o).then(e=>{const{success:a,data:r}=e.data;if(!a){const e=r?.message||(0,t.__)("Unexpected response from server","elementor");throw new Error(e)}return r}).then(e=>{const{variable:a,watermark:r}=e;handleWatermark(i.OP_RW,r);const{id:t,...n}=a;return l.update(t,n),s.styleVariablesRepository.update({[t]:n}),{id:t,variable:n}}),delete:e=>n.apiClient.delete(e).then(e=>{const{success:a,data:r}=e.data;if(!a)throw new Error("Unexpected response from server");return r}).then(e=>{const{variable:a,watermark:r}=e;handleWatermark(i.OP_RW,r);const{id:t,...n}=a;return l.update(t,n),s.styleVariablesRepository.update({[t]:n}),{id:t,variable:n}}),restore:(e,a,r,t)=>n.apiClient.restore(e,a,r,t).then(e=>{const{success:a,data:r}=e.data;if(!a)throw new Error("Unexpected response from server");return r}).then(e=>{const{variable:a,watermark:r}=e;handleWatermark(i.OP_RW,r);const{id:t,...n}=a;return l.update(t,n),s.styleVariablesRepository.update({[t]:n}),{id:t,variable:n}}),batchSave:(e,a)=>{const r=(0,o.buildOperationsArray)(e,a),t={operations:r,watermark:l.state.watermark};return 0===r.length?Promise.resolve({success:!0,watermark:l.state.watermark,operations:0}):n.apiClient.batch(t).then(e=>{const{success:a,data:r}=e.data;if(!a)throw new Error("Unexpected response from server");return r}).then(e=>{const{results:a,watermark:t}=e;return handleWatermark(i.OP_RW,t),a&&a.forEach(e=>{if(e.variable){const{id:a,...r}=e.variable;"create"===e.type?l.add(a,r):l.update(a,r),s.styleVariablesRepository.update({[a]:r})}}),{success:!0,watermark:t,operations:r.length}})}},handleWatermark=(e,a)=>{l.watermarkDiff(e,a)&&setTimeout(()=>c.load(),500),l.watermark(a)}},"./packages/packages/core/editor-variables/src/storage.ts":function(e,a,r){r.r(a),r.d(a,{OP_RW:function(){return o},Storage:function(){return Storage}});const t="elementor-global-variables",n="elementor-global-variables-watermark",o="RW";class Storage{notifyChange(){window.dispatchEvent(new Event("variables:updated"))}constructor(){this.state={watermark:-1,variables:{}}}load(){return this.state.watermark=parseInt(localStorage.getItem(n)||"-1"),this.state.variables=JSON.parse(localStorage.getItem(t)||"{}"),this.state.variables}fill(e,a){this.state.variables={},e&&Object.keys(e).length&&(this.state.variables=e),this.state.watermark=a,localStorage.setItem(n,this.state.watermark.toString()),localStorage.setItem(t,JSON.stringify(this.state.variables)),this.notifyChange()}add(e,a){this.load(),this.state.variables[e]=a,localStorage.setItem(t,JSON.stringify(this.state.variables)),this.notifyChange()}update(e,a){this.load(),this.state.variables[e]=a,localStorage.setItem(t,JSON.stringify(this.state.variables)),this.notifyChange()}watermark(e){this.state.watermark=e,localStorage.setItem(n,this.state.watermark.toString())}watermarkDiff(e,a){const r=a-this.state.watermark;return o===e?1!==r:"RO"===e&&0!==r}}},"./packages/packages/core/editor-variables/src/style-variables-repository.ts":function(e,a,r){r.r(a),r.d(a,{styleVariablesRepository:function(){return t}});const t=(0,r("./packages/packages/core/editor-variables/src/create-style-variables-repository.ts").createStyleVariablesRepository)()},"./packages/packages/core/editor-variables/src/sync/enqueue-font.ts":function(e,a,r){r.r(a),r.d(a,{enqueueFont:function(){return enqueueFont}});const enqueueFont=(e,a="preview")=>{const r=window;return r.elementor?.helpers?.enqueueFont?.(e,a)??null}},"./packages/packages/core/editor-variables/src/sync/license-info.ts":function(e,a,r){function getLicenseInfo(){return{hasPro:!!window.elementorPro}}r.r(a),r.d(a,{getLicenseInfo:function(){return getLicenseInfo}})},"./packages/packages/core/editor-variables/src/transformers/empty-transformer.tsx":function(e,a,r){r.r(a),r.d(a,{EmptyTransformer:function(){return n}});var t=r("@elementor/editor-canvas");const n=(0,t.createTransformer)(e=>null)},"./packages/packages/core/editor-variables/src/transformers/inheritance-transformer.tsx":function(e,a,r){r.r(a),r.d(a,{inheritanceTransformer:function(){return u}});var t=r("react"),n=r("@elementor/editor-canvas"),o=r("@elementor/ui"),i=r("@wordpress/i18n"),s=r("./packages/packages/core/editor-variables/src/components/ui/color-indicator.tsx"),l=r("./packages/packages/core/editor-variables/src/prop-types/color-variable-prop-type.ts"),c=r("./packages/packages/core/editor-variables/src/service.ts"),p=r("./packages/packages/core/editor-variables/src/transformers/utils/resolve-css-variable.ts");const u=(0,n.createTransformer)(e=>{const a=c.service.variables()[e];if(!a)return t.createElement("span",null,(0,i.__)("Missing variable","elementor"));const r=a.type===l.colorVariablePropTypeUtil.key,n=(0,p.resolveCssVariable)(e,a);return t.createElement(o.Stack,{direction:"row",spacing:.5,sx:{paddingInline:"1px"},alignItems:"center"},r&&t.createElement(s.ColorIndicator,{size:"inherit",value:a.value}),t.createElement(o.Typography,{variant:"caption",overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"},n))})},"./packages/packages/core/editor-variables/src/transformers/utils/resolve-css-variable.ts":function(e,a,r){r.r(a),r.d(a,{resolveCssVariable:function(){return resolveCssVariable}});const resolveCssVariable=(e,a)=>{let r=e,t="";if(a&&(t=a.value),a&&!a.deleted&&(r=a.label),!r.trim())return null;const n=`--${r}`;return t.trim()?`var(${n}, ${t})`:`var(${n})`}},"./packages/packages/core/editor-variables/src/transformers/variable-transformer.ts":function(e,a,r){r.r(a),r.d(a,{variableTransformer:function(){return i}});var t=r("@elementor/editor-canvas"),n=r("./packages/packages/core/editor-variables/src/service.ts"),o=r("./packages/packages/core/editor-variables/src/transformers/utils/resolve-css-variable.ts");const i=(0,t.createTransformer)(e=>{const a=n.service.variables()[e]||n.service.findVariableByLabel(e);if(!a)return null;const r=n.service.findIdByLabel(a.label);return(0,o.resolveCssVariable)(r,a)})},"./packages/packages/core/editor-variables/src/utils/filter-by-search.ts":function(e,a,r){function filterBySearch(e,a){const r=a.toLowerCase();return e.filter(e=>e.label.toLowerCase().includes(r))}r.r(a),r.d(a,{filterBySearch:function(){return filterBySearch}})},"./packages/packages/core/editor-variables/src/utils/llm-propvalue-label-resolver.ts":function(e,a,r){r.r(a),r.d(a,{globalVariablesLLMResolvers:function(){return n}});var t=r("./packages/packages/core/editor-variables/src/service.ts");const defaultResolver=e=>a=>{const r=String(a);return{$$type:e,value:t.service.variables()[r]?r:t.service.findIdByLabel(r)}},n={"global-color-variable":defaultResolver("global-color-variable"),"global-font-variable":defaultResolver("global-font-variable"),"global-size-variable":defaultResolver("global-size-variable")}},"./packages/packages/core/editor-variables/src/utils/tracking.ts":function(e,a,r){r.r(a),r.d(a,{trackVariableEvent:function(){return trackVariableEvent},trackVariablesManagerEvent:function(){return trackVariablesManagerEvent}});var t=r("@elementor/mixpanel");const trackVariableEvent=({varType:e,controlPath:a,action:r})=>{const{dispatchEvent:n,config:o}=(0,t.getMixpanel)();if(!o?.names?.variables?.[r])return;const i=o.names.variables[r];n?.(i,{location:o?.locations?.variables||"",secondaryLocation:o?.secondaryLocations?.variablesPopover||"",trigger:o?.triggers?.click||"",var_type:e,control_path:a,action_type:i})},trackVariablesManagerEvent=({action:e,varType:a,controlPath:r})=>{const{dispatchEvent:n,config:o}=(0,t.getMixpanel)();if(!o?.names?.variables?.[e])return;const i=o.names.variables[e],s={location:o?.locations?.variablesManager||"",trigger:o?.triggers?.click||"",action_type:i};a&&(s.var_type=a),r&&(s.style_control_path=r),n?.(i,s)}},"./packages/packages/core/editor-variables/src/utils/unlink-variable.ts":function(e,a,r){r.r(a),r.d(a,{createUnlinkHandler:function(){return createUnlinkHandler},transformValueBeforeUnlink:function(){return transformValueBeforeUnlink}});var t=r("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");function transformValueBeforeUnlink(e,a){const{valueTransformer:r}=(0,t.getVariableType)(a);return r?r(e.value,e.type):e.value}function createUnlinkHandler(e,a,r){return()=>{const{fallbackPropTypeUtil:n}=(0,t.getVariableType)(a),o=transformValueBeforeUnlink(e,a);r(n.create(o))}}},"./packages/packages/core/editor-variables/src/utils/validations.ts":function(e,a,r){r.r(a),r.d(a,{ERROR_MESSAGES:function(){return o},VARIABLE_LABEL_MAX_LENGTH:function(){return i},labelHint:function(){return labelHint},mapServerError:function(){return mapServerError},validateLabel:function(){return validateLabel},validateValue:function(){return validateValue}});var t=r("@elementor/icons"),n=r("@wordpress/i18n");const o={MISSING_VARIABLE_NAME:(0,n.__)("Give your variable a name.","elementor"),MISSING_VARIABLE_VALUE:(0,n.__)("Add a value to complete your variable.","elementor"),INVALID_CHARACTERS:(0,n.__)("Use letters, numbers, dashes (-), or underscores (_) for the name.","elementor"),NO_NON_SPECIAL_CHARACTER:(0,n.__)("Names have to include at least one non-special character.","elementor"),VARIABLE_LABEL_MAX_LENGTH:(0,n.__)("Keep names up to 50 characters.","elementor"),DUPLICATED_LABEL:(0,n.__)("This variable name already exists. Please choose a unique name.","elementor"),UNEXPECTED_ERROR:(0,n.__)("There was a glitch. Try saving your variable again.","elementor"),BATCH:{DUPLICATED_LABELS:(e,a)=>(0,n.sprintf)((0,n.__)("We found %1$d duplicated %2$s.","elementor"),e,a),UNEXPECTED_ERROR:(0,n.__)("There was a glitch.","elementor"),DUPLICATED_LABEL_ACTION:(0,n.__)("Take me there","elementor"),DUPLICATED_LABEL_ACTION_MESSAGE:(0,n.__)("Please rename the variables.","elementor"),UNEXPECTED_ERROR_ACTION_MESSAGE:(0,n.__)("Try saving your variables again.","elementor")}},i=50,mapServerError=e=>{if("duplicated_label"===e?.response?.data?.code)return{field:"label",message:o.DUPLICATED_LABEL};if("batch_duplicated_label"===e?.response?.data?.code){const a=e?.response?.data?.data??{},r=Object.keys(a).length,n=1===r?"name":"names",i=Object.keys(a);return{field:"label",message:o.BATCH.DUPLICATED_LABELS(r,n),severity:"error",IconComponent:t.AlertTriangleFilledIcon,action:{label:o.BATCH.DUPLICATED_LABEL_ACTION,message:o.BATCH.DUPLICATED_LABEL_ACTION_MESSAGE,data:{duplicatedIds:i}}}}return"batch_operation_failed"===e?.response?.data?.code?{field:"label",message:o.BATCH.UNEXPECTED_ERROR,severity:"secondary",IconComponent:t.InfoCircleFilledIcon,action:{message:o.BATCH.UNEXPECTED_ERROR_ACTION_MESSAGE}}:void 0},validateLabel=(e,a)=>{if(!e.trim())return o.MISSING_VARIABLE_NAME;if(!/^[a-zA-Z0-9_-]+$/.test(e))return o.INVALID_CHARACTERS;return/[a-zA-Z0-9]/.test(e)?i<e.length?o.VARIABLE_LABEL_MAX_LENGTH:Object.values(a??{}).some(a=>a.label===e)?o.DUPLICATED_LABEL:"":o.NO_NON_SPECIAL_CHARACTER},labelHint=e=>.8*i-1<e.length?o.VARIABLE_LABEL_MAX_LENGTH:"",validateValue=e=>e.trim()?"":o.MISSING_VARIABLE_VALUE},"./packages/packages/core/editor-variables/src/utils/variables-to-list.ts":function(e,a,r){r.r(a),r.d(a,{applySelectionFilters:function(){return applySelectionFilters},toNormalizedVariable:function(){return toNormalizedVariable},variablesToList:function(){return variablesToList}});const variablesToList=e=>Object.entries(e).map(([e,a])=>({key:e,...a})),toNormalizedVariable=({key:e,label:a,value:r,order:t})=>({key:e,label:a,value:r,order:t}),applySelectionFilters=(e,a)=>{const r={};return e.forEach(e=>(r[e.type]??=[]).push(e)),Object.entries(r).flatMap(([e,r])=>{const t=a[e]?.selectionFilter,n=r.map(toNormalizedVariable);return(t?.(n)??n).map(a=>({...a,type:e}))})}},"./packages/packages/core/editor-variables/src/variables-registry/create-variable-type-registry.ts":function(e,a,r){r.r(a),r.d(a,{createVariableTypeRegistry:function(){return createVariableTypeRegistry}});var t=r("@elementor/editor-canvas"),n=r("@elementor/editor-editing-panel"),o=r("./packages/packages/core/editor-variables/src/transformers/inheritance-transformer.tsx"),i=r("./packages/packages/core/editor-variables/src/transformers/variable-transformer.ts");function createVariableTypeRegistry(){const e={},registerTransformer=(e,a)=>{t.styleTransformersRegistry.register(e,a??i.variableTransformer)},registerInheritanceTransformer=e=>{n.stylesInheritanceTransformersRegistry.register(e,o.inheritanceTransformer)};return{registerVariableType:({key:a,icon:r,startIcon:t,valueField:n,propTypeUtil:o,variableType:i,defaultValue:s,selectionFilter:l,valueTransformer:c,styleTransformer:p,fallbackPropTypeUtil:u,isCompatible:d,emptyState:b,isActive:g=!0})=>{const m=a??o.key;d||(d=(e,a)=>"union"===e.kind&&a.type in e.prop_types),e[m]={icon:r,startIcon:t,valueField:n,propTypeUtil:o,variableType:i,defaultValue:s,selectionFilter:l,valueTransformer:c,fallbackPropTypeUtil:u,isCompatible:d,emptyState:b,isActive:g},registerTransformer(o.key,p),registerInheritanceTransformer(o.key)},getVariableType:a=>e[a],getVariableTypes:()=>e,hasVariableType:a=>a in e&&!!e[a].isActive}}},"./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts":function(e,a,r){r.r(a),r.d(a,{getVariableType:function(){return o},getVariableTypes:function(){return i},hasVariableType:function(){return s},registerVariableType:function(){return n}});var t=r("./packages/packages/core/editor-variables/src/variables-registry/create-variable-type-registry.ts");const{registerVariableType:n,getVariableType:o,getVariableTypes:i,hasVariableType:s}=(0,t.createVariableTypeRegistry)()},"@elementor/editor":function(e){e.exports=window.elementorV2.editor},"@elementor/editor-canvas":function(e){e.exports=window.elementorV2.editorCanvas},"@elementor/editor-controls":function(e){e.exports=window.elementorV2.editorControls},"@elementor/editor-current-user":function(e){e.exports=window.elementorV2.editorCurrentUser},"@elementor/editor-editing-panel":function(e){e.exports=window.elementorV2.editorEditingPanel},"@elementor/editor-mcp":function(e){e.exports=window.elementorV2.editorMcp},"@elementor/editor-panels":function(e){e.exports=window.elementorV2.editorPanels},"@elementor/editor-props":function(e){e.exports=window.elementorV2.editorProps},"@elementor/editor-ui":function(e){e.exports=window.elementorV2.editorUi},"@elementor/editor-v1-adapters":function(e){e.exports=window.elementorV2.editorV1Adapters},"@elementor/http-client":function(e){e.exports=window.elementorV2.httpClient},"@elementor/icons":function(e){e.exports=window.elementorV2.icons},"@elementor/mixpanel":function(e){e.exports=window.elementorV2.mixpanel},"@elementor/schema":function(e){e.exports=window.elementorV2.schema},"@elementor/ui":function(e){e.exports=window.elementorV2.ui},"@elementor/utils":function(e){e.exports=window.elementorV2.utils},"@wordpress/i18n":function(e){e.exports=window.wp.i18n},react:function(e){e.exports=window.React}},a={};function __webpack_require__(r){var t=a[r];if(void 0!==t)return t.exports;var n=a[r]={exports:{}};return e[r](n,n.exports,__webpack_require__),n.exports}__webpack_require__.n=function(e){var a=e&&e.__esModule?function(){return e.default}:function(){return e};return __webpack_require__.d(a,{a:a}),a},__webpack_require__.d=function(e,a){for(var r in a)__webpack_require__.o(a,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:a[r]})},__webpack_require__.o=function(e,a){return Object.prototype.hasOwnProperty.call(e,a)},__webpack_require__.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};!function(){__webpack_require__.r(r),__webpack_require__.d(r,{GLOBAL_VARIABLES_URI:function(){return a.GLOBAL_VARIABLES_URI},Utils:function(){return s},init:function(){return e.init},registerVariableType:function(){return i.registerVariableType},registerVariableTypes:function(){return n.registerVariableTypes},service:function(){return o.service},sizeVariablePropTypeUtil:function(){return t.sizeVariablePropTypeUtil}});var e=__webpack_require__("./packages/packages/core/editor-variables/src/init.ts"),a=__webpack_require__("./packages/packages/core/editor-variables/src/mcp/variables-resource.ts"),t=__webpack_require__("./packages/packages/core/editor-variables/src/prop-types/size-variable-prop-type.ts"),n=__webpack_require__("./packages/packages/core/editor-variables/src/register-variable-types.tsx"),o=__webpack_require__("./packages/packages/core/editor-variables/src/service.ts"),i=__webpack_require__("./packages/packages/core/editor-variables/src/variables-registry/variable-type-registry.ts");const s={globalVariablesLLMResolvers:__webpack_require__("./packages/packages/core/editor-variables/src/utils/llm-propvalue-label-resolver.ts").globalVariablesLLMResolvers}}(),(window.elementorV2=window.elementorV2||{}).editorVariables=r}(),window.elementorV2.editorVariables?.init?.();
7163 3 //# sourceMappingURL=editor-variables.js.map