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