@elementor/editor-controls 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/dist/index.d.mts +7 -3
- package/dist/index.d.ts +7 -3
- package/dist/index.js +645 -415
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +570 -341
- package/dist/index.mjs.map +1 -1
- package/package.json +7 -7
- package/src/bound-prop-context/prop-context.tsx +3 -3
- package/src/bound-prop-context/prop-key-context.tsx +1 -0
- package/src/bound-prop-context/use-bound-prop.ts +5 -1
- package/src/components/text-field-popover.tsx +19 -18
- package/src/controls/background-control/background-overlay/background-overlay-repeater-control.tsx +3 -15
- package/src/controls/box-shadow-repeater-control.tsx +1 -1
- package/src/controls/equal-unequal-sizes-control.tsx +1 -1
- package/src/controls/font-family-control/font-family-control.tsx +14 -2
- package/src/controls/image-control.tsx +45 -16
- package/src/controls/link-control.tsx +25 -20
- package/src/controls/linked-dimensions-control.tsx +1 -1
- package/src/controls/repeatable-control.tsx +77 -17
- package/src/controls/select-control.tsx +22 -2
- package/src/controls/switch-control.tsx +9 -1
- package/src/controls/transform-control/functions/axis-row.tsx +32 -0
- package/src/controls/transform-control/functions/move.tsx +44 -0
- package/src/controls/transform-control/transform-content.tsx +36 -0
- package/src/controls/transform-control/transform-icon.tsx +12 -0
- package/src/controls/transform-control/transform-label.tsx +27 -0
- package/src/controls/transform-control/transform-repeater-control.tsx +42 -0
- package/src/hooks/use-repeatable-control-context.ts +6 -1
- package/src/index.ts +1 -0
package/dist/index.mjs
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// src/controls/image-control.tsx
|
|
2
|
-
import * as
|
|
2
|
+
import * as React10 from "react";
|
|
3
3
|
import { imagePropTypeUtil } from "@elementor/editor-props";
|
|
4
|
-
import { Stack as Stack2 } from "@elementor/ui";
|
|
4
|
+
import { Grid, Stack as Stack2 } from "@elementor/ui";
|
|
5
|
+
import { __ as __2 } from "@wordpress/i18n";
|
|
5
6
|
|
|
6
7
|
// src/bound-prop-context/prop-context.tsx
|
|
7
8
|
import * as React from "react";
|
|
@@ -30,7 +31,7 @@ var PropProvider = ({
|
|
|
30
31
|
setValue,
|
|
31
32
|
propType,
|
|
32
33
|
placeholder,
|
|
33
|
-
|
|
34
|
+
isDisabled
|
|
34
35
|
}) => {
|
|
35
36
|
return /* @__PURE__ */ React.createElement(
|
|
36
37
|
PropContext.Provider,
|
|
@@ -40,7 +41,7 @@ var PropProvider = ({
|
|
|
40
41
|
propType,
|
|
41
42
|
setValue,
|
|
42
43
|
placeholder,
|
|
43
|
-
|
|
44
|
+
isDisabled
|
|
44
45
|
}
|
|
45
46
|
},
|
|
46
47
|
children
|
|
@@ -130,8 +131,9 @@ import { useState } from "react";
|
|
|
130
131
|
function useBoundProp(propTypeUtil) {
|
|
131
132
|
const propKeyContext = usePropKeyContext();
|
|
132
133
|
const { isValid, validate, restoreValue } = useValidation(propKeyContext.propType);
|
|
134
|
+
const disabled = propKeyContext.isDisabled?.(propKeyContext.propType);
|
|
133
135
|
if (!propTypeUtil) {
|
|
134
|
-
return propKeyContext;
|
|
136
|
+
return { ...propKeyContext, disabled };
|
|
135
137
|
}
|
|
136
138
|
function setValue(value2, options, meta) {
|
|
137
139
|
if (!validate(value2)) {
|
|
@@ -151,7 +153,8 @@ function useBoundProp(propTypeUtil) {
|
|
|
151
153
|
setValue,
|
|
152
154
|
value: isValid ? value : null,
|
|
153
155
|
restoreValue,
|
|
154
|
-
placeholder
|
|
156
|
+
placeholder,
|
|
157
|
+
disabled
|
|
155
158
|
};
|
|
156
159
|
}
|
|
157
160
|
var useValidation = (propType) => {
|
|
@@ -183,16 +186,23 @@ var resolveUnionPropType = (propType, key) => {
|
|
|
183
186
|
return resolvedPropType;
|
|
184
187
|
};
|
|
185
188
|
|
|
189
|
+
// src/components/control-form-label.tsx
|
|
190
|
+
import * as React3 from "react";
|
|
191
|
+
import { FormLabel } from "@elementor/ui";
|
|
192
|
+
var ControlFormLabel = (props) => {
|
|
193
|
+
return /* @__PURE__ */ React3.createElement(FormLabel, { size: "tiny", ...props });
|
|
194
|
+
};
|
|
195
|
+
|
|
186
196
|
// src/create-control.tsx
|
|
187
|
-
import * as
|
|
197
|
+
import * as React5 from "react";
|
|
188
198
|
import { ErrorBoundary } from "@elementor/ui";
|
|
189
199
|
|
|
190
200
|
// src/control-replacements.tsx
|
|
191
|
-
import * as
|
|
201
|
+
import * as React4 from "react";
|
|
192
202
|
import { createContext as createContext3, useContext as useContext3 } from "react";
|
|
193
203
|
var ControlReplacementContext = createContext3([]);
|
|
194
204
|
var ControlReplacementsProvider = ({ replacements, children }) => {
|
|
195
|
-
return /* @__PURE__ */
|
|
205
|
+
return /* @__PURE__ */ React4.createElement(ControlReplacementContext.Provider, { value: replacements }, children);
|
|
196
206
|
};
|
|
197
207
|
var useControlReplacement = (OriginalComponent) => {
|
|
198
208
|
const { value } = useBoundProp();
|
|
@@ -220,7 +230,7 @@ var brandSymbol = Symbol("control");
|
|
|
220
230
|
function createControl(Control5) {
|
|
221
231
|
return (props) => {
|
|
222
232
|
const Component = useControlReplacement(Control5);
|
|
223
|
-
return /* @__PURE__ */
|
|
233
|
+
return /* @__PURE__ */ React5.createElement(ErrorBoundary, { fallback: null }, /* @__PURE__ */ React5.createElement(Component, { ...props }));
|
|
224
234
|
};
|
|
225
235
|
}
|
|
226
236
|
|
|
@@ -264,7 +274,7 @@ var formatResponse = (response) => {
|
|
|
264
274
|
};
|
|
265
275
|
|
|
266
276
|
// src/controls/image-media-control.tsx
|
|
267
|
-
import * as
|
|
277
|
+
import * as React8 from "react";
|
|
268
278
|
import { imageSrcPropTypeUtil } from "@elementor/editor-props";
|
|
269
279
|
import { UploadIcon } from "@elementor/icons";
|
|
270
280
|
import { Button, Card, CardMedia, CardOverlay, CircularProgress, Stack } from "@elementor/ui";
|
|
@@ -272,14 +282,14 @@ import { useWpMediaAttachment, useWpMediaFrame } from "@elementor/wp-media";
|
|
|
272
282
|
import { __ } from "@wordpress/i18n";
|
|
273
283
|
|
|
274
284
|
// src/control-actions/control-actions.tsx
|
|
275
|
-
import * as
|
|
285
|
+
import * as React7 from "react";
|
|
276
286
|
import { styled, UnstableFloatingActionBar } from "@elementor/ui";
|
|
277
287
|
|
|
278
288
|
// src/control-actions/control-actions-context.tsx
|
|
279
|
-
import * as
|
|
289
|
+
import * as React6 from "react";
|
|
280
290
|
import { createContext as createContext4, useContext as useContext4 } from "react";
|
|
281
291
|
var Context = createContext4(null);
|
|
282
|
-
var ControlActionsProvider = ({ children, items }) => /* @__PURE__ */
|
|
292
|
+
var ControlActionsProvider = ({ children, items }) => /* @__PURE__ */ React6.createElement(Context.Provider, { value: { items } }, children);
|
|
283
293
|
var useControlActions = () => {
|
|
284
294
|
const context = useContext4(Context);
|
|
285
295
|
if (!context) {
|
|
@@ -306,8 +316,8 @@ function ControlActions({ children }) {
|
|
|
306
316
|
if (items.length === 0 || disabled) {
|
|
307
317
|
return children;
|
|
308
318
|
}
|
|
309
|
-
const menuItems = items.map(({ MenuItem: MenuItem2, id }) => /* @__PURE__ */
|
|
310
|
-
return /* @__PURE__ */
|
|
319
|
+
const menuItems = items.map(({ MenuItem: MenuItem2, id }) => /* @__PURE__ */ React7.createElement(MenuItem2, { key: id }));
|
|
320
|
+
return /* @__PURE__ */ React7.createElement(FloatingBarContainer, null, /* @__PURE__ */ React7.createElement(UnstableFloatingActionBar, { actions: menuItems }, children));
|
|
311
321
|
}
|
|
312
322
|
|
|
313
323
|
// src/controls/image-media-control.tsx
|
|
@@ -330,7 +340,7 @@ var ImageMediaControl = createControl(({ mediaTypes = ["image"] }) => {
|
|
|
330
340
|
});
|
|
331
341
|
}
|
|
332
342
|
});
|
|
333
|
-
return /* @__PURE__ */
|
|
343
|
+
return /* @__PURE__ */ React8.createElement(ControlActions, null, /* @__PURE__ */ React8.createElement(Card, { variant: "outlined" }, /* @__PURE__ */ React8.createElement(CardMedia, { image: src, sx: { height: 150 } }, isFetching ? /* @__PURE__ */ React8.createElement(Stack, { justifyContent: "center", alignItems: "center", width: "100%", height: "100%" }, /* @__PURE__ */ React8.createElement(CircularProgress, null)) : /* @__PURE__ */ React8.createElement(React8.Fragment, null)), /* @__PURE__ */ React8.createElement(CardOverlay, null, /* @__PURE__ */ React8.createElement(Stack, { gap: 1 }, /* @__PURE__ */ React8.createElement(
|
|
334
344
|
Button,
|
|
335
345
|
{
|
|
336
346
|
size: "tiny",
|
|
@@ -339,13 +349,13 @@ var ImageMediaControl = createControl(({ mediaTypes = ["image"] }) => {
|
|
|
339
349
|
onClick: () => open({ mode: "browse" })
|
|
340
350
|
},
|
|
341
351
|
__("Select image", "elementor")
|
|
342
|
-
), /* @__PURE__ */
|
|
352
|
+
), /* @__PURE__ */ React8.createElement(
|
|
343
353
|
Button,
|
|
344
354
|
{
|
|
345
355
|
size: "tiny",
|
|
346
356
|
variant: "text",
|
|
347
357
|
color: "inherit",
|
|
348
|
-
startIcon: /* @__PURE__ */
|
|
358
|
+
startIcon: /* @__PURE__ */ React8.createElement(UploadIcon, null),
|
|
349
359
|
onClick: () => open({ mode: "upload" })
|
|
350
360
|
},
|
|
351
361
|
__("Upload", "elementor")
|
|
@@ -353,48 +363,79 @@ var ImageMediaControl = createControl(({ mediaTypes = ["image"] }) => {
|
|
|
353
363
|
});
|
|
354
364
|
|
|
355
365
|
// src/controls/select-control.tsx
|
|
356
|
-
import * as
|
|
366
|
+
import * as React9 from "react";
|
|
357
367
|
import { stringPropTypeUtil } from "@elementor/editor-props";
|
|
358
368
|
import { MenuListItem } from "@elementor/editor-ui";
|
|
359
|
-
import { Select } from "@elementor/ui";
|
|
369
|
+
import { Select, Typography } from "@elementor/ui";
|
|
360
370
|
var SelectControl = createControl(({ options, onChange }) => {
|
|
361
|
-
const { value, setValue, disabled } = useBoundProp(stringPropTypeUtil);
|
|
371
|
+
const { value, setValue, disabled, placeholder } = useBoundProp(stringPropTypeUtil);
|
|
362
372
|
const handleChange = (event) => {
|
|
363
373
|
const newValue = event.target.value || null;
|
|
364
374
|
onChange?.(newValue, value);
|
|
365
375
|
setValue(newValue);
|
|
366
376
|
};
|
|
367
|
-
return /* @__PURE__ */
|
|
377
|
+
return /* @__PURE__ */ React9.createElement(ControlActions, null, /* @__PURE__ */ React9.createElement(
|
|
368
378
|
Select,
|
|
369
379
|
{
|
|
370
380
|
sx: { overflow: "hidden" },
|
|
371
381
|
displayEmpty: true,
|
|
372
382
|
size: "tiny",
|
|
383
|
+
renderValue: (selectedValue) => {
|
|
384
|
+
const findOptionByValue = (searchValue) => options.find((opt) => opt.value === searchValue);
|
|
385
|
+
if (!selectedValue || selectedValue === "") {
|
|
386
|
+
if (placeholder) {
|
|
387
|
+
const placeholderOption = findOptionByValue(placeholder);
|
|
388
|
+
const displayText = placeholderOption?.label || placeholder;
|
|
389
|
+
return /* @__PURE__ */ React9.createElement(Typography, { component: "span", variant: "caption", color: "text.tertiary" }, displayText);
|
|
390
|
+
}
|
|
391
|
+
return "";
|
|
392
|
+
}
|
|
393
|
+
const option = findOptionByValue(selectedValue);
|
|
394
|
+
return option?.label || selectedValue;
|
|
395
|
+
},
|
|
373
396
|
value: value ?? "",
|
|
374
397
|
onChange: handleChange,
|
|
375
398
|
disabled,
|
|
376
399
|
fullWidth: true
|
|
377
400
|
},
|
|
378
|
-
options.map(({ label, ...props }) => /* @__PURE__ */
|
|
401
|
+
options.map(({ label, ...props }) => /* @__PURE__ */ React9.createElement(MenuListItem, { key: props.value, ...props, value: props.value ?? "" }, label))
|
|
379
402
|
));
|
|
380
403
|
});
|
|
381
404
|
|
|
382
405
|
// src/controls/image-control.tsx
|
|
383
406
|
var ImageControl = createControl(({ sizes, showMode = "all" }) => {
|
|
384
407
|
const propContext = useBoundProp(imagePropTypeUtil);
|
|
408
|
+
let componentToRender;
|
|
409
|
+
switch (showMode) {
|
|
410
|
+
case "media":
|
|
411
|
+
componentToRender = /* @__PURE__ */ React10.createElement(ImageSrcControl, null);
|
|
412
|
+
break;
|
|
413
|
+
case "sizes":
|
|
414
|
+
componentToRender = /* @__PURE__ */ React10.createElement(ImageSizeControl, { sizes });
|
|
415
|
+
break;
|
|
416
|
+
case "all":
|
|
417
|
+
default:
|
|
418
|
+
componentToRender = /* @__PURE__ */ React10.createElement(Stack2, { gap: 1.5 }, /* @__PURE__ */ React10.createElement(ControlFormLabel, null, __2("Image", "elementor")), /* @__PURE__ */ React10.createElement(ImageSrcControl, null), /* @__PURE__ */ React10.createElement(Grid, { container: true, gap: 1.5, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React10.createElement(Grid, { item: true, xs: 6 }, /* @__PURE__ */ React10.createElement(ControlFormLabel, null, __2("Resolution", "elementor"))), /* @__PURE__ */ React10.createElement(Grid, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React10.createElement(ImageSizeControl, { sizes }))));
|
|
419
|
+
}
|
|
420
|
+
return /* @__PURE__ */ React10.createElement(PropProvider, { ...propContext }, componentToRender);
|
|
421
|
+
});
|
|
422
|
+
var ImageSrcControl = () => {
|
|
385
423
|
const { data: allowSvgUpload } = useUnfilteredFilesUpload();
|
|
386
424
|
const mediaTypes = allowSvgUpload ? ["image", "svg"] : ["image"];
|
|
387
|
-
return /* @__PURE__ */
|
|
388
|
-
}
|
|
425
|
+
return /* @__PURE__ */ React10.createElement(PropKeyProvider, { bind: "src" }, /* @__PURE__ */ React10.createElement(ImageMediaControl, { mediaTypes }));
|
|
426
|
+
};
|
|
427
|
+
var ImageSizeControl = ({ sizes }) => {
|
|
428
|
+
return /* @__PURE__ */ React10.createElement(PropKeyProvider, { bind: "size" }, /* @__PURE__ */ React10.createElement(SelectControl, { options: sizes }));
|
|
429
|
+
};
|
|
389
430
|
|
|
390
431
|
// src/controls/text-control.tsx
|
|
391
|
-
import * as
|
|
432
|
+
import * as React11 from "react";
|
|
392
433
|
import { stringPropTypeUtil as stringPropTypeUtil2 } from "@elementor/editor-props";
|
|
393
434
|
import { TextField } from "@elementor/ui";
|
|
394
435
|
var TextControl = createControl(({ placeholder }) => {
|
|
395
436
|
const { value, setValue, disabled } = useBoundProp(stringPropTypeUtil2);
|
|
396
437
|
const handleChange = (event) => setValue(event.target.value);
|
|
397
|
-
return /* @__PURE__ */
|
|
438
|
+
return /* @__PURE__ */ React11.createElement(ControlActions, null, /* @__PURE__ */ React11.createElement(
|
|
398
439
|
TextField,
|
|
399
440
|
{
|
|
400
441
|
size: "tiny",
|
|
@@ -408,7 +449,7 @@ var TextControl = createControl(({ placeholder }) => {
|
|
|
408
449
|
});
|
|
409
450
|
|
|
410
451
|
// src/controls/text-area-control.tsx
|
|
411
|
-
import * as
|
|
452
|
+
import * as React12 from "react";
|
|
412
453
|
import { stringPropTypeUtil as stringPropTypeUtil3 } from "@elementor/editor-props";
|
|
413
454
|
import { TextField as TextField2 } from "@elementor/ui";
|
|
414
455
|
var TextAreaControl = createControl(({ placeholder }) => {
|
|
@@ -416,7 +457,7 @@ var TextAreaControl = createControl(({ placeholder }) => {
|
|
|
416
457
|
const handleChange = (event) => {
|
|
417
458
|
setValue(event.target.value);
|
|
418
459
|
};
|
|
419
|
-
return /* @__PURE__ */
|
|
460
|
+
return /* @__PURE__ */ React12.createElement(ControlActions, null, /* @__PURE__ */ React12.createElement(
|
|
420
461
|
TextField2,
|
|
421
462
|
{
|
|
422
463
|
size: "tiny",
|
|
@@ -432,14 +473,14 @@ var TextAreaControl = createControl(({ placeholder }) => {
|
|
|
432
473
|
});
|
|
433
474
|
|
|
434
475
|
// src/controls/size-control.tsx
|
|
435
|
-
import * as
|
|
476
|
+
import * as React16 from "react";
|
|
436
477
|
import { useEffect as useEffect2, useState as useState3 } from "react";
|
|
437
478
|
import { sizePropTypeUtil } from "@elementor/editor-props";
|
|
438
479
|
import { useActiveBreakpoint } from "@elementor/editor-responsive";
|
|
439
480
|
import { usePopupState as usePopupState2 } from "@elementor/ui";
|
|
440
481
|
|
|
441
482
|
// src/components/size-control/size-input.tsx
|
|
442
|
-
import * as
|
|
483
|
+
import * as React14 from "react";
|
|
443
484
|
import { useRef } from "react";
|
|
444
485
|
import { PencilIcon } from "@elementor/icons";
|
|
445
486
|
import { Box, InputAdornment as InputAdornment2 } from "@elementor/ui";
|
|
@@ -452,7 +493,7 @@ function isUnitExtendedOption(unit) {
|
|
|
452
493
|
}
|
|
453
494
|
|
|
454
495
|
// src/components/size-control/text-field-inner-selection.tsx
|
|
455
|
-
import * as
|
|
496
|
+
import * as React13 from "react";
|
|
456
497
|
import { forwardRef, useId } from "react";
|
|
457
498
|
import { MenuListItem as MenuListItem2 } from "@elementor/editor-ui";
|
|
458
499
|
import {
|
|
@@ -477,7 +518,7 @@ var TextFieldInnerSelection = forwardRef(
|
|
|
477
518
|
inputProps,
|
|
478
519
|
disabled
|
|
479
520
|
}, ref) => {
|
|
480
|
-
return /* @__PURE__ */
|
|
521
|
+
return /* @__PURE__ */ React13.createElement(
|
|
481
522
|
TextField3,
|
|
482
523
|
{
|
|
483
524
|
ref,
|
|
@@ -513,7 +554,7 @@ var SelectionEndAdornment = ({
|
|
|
513
554
|
onClick(options[index]);
|
|
514
555
|
popupState.close();
|
|
515
556
|
};
|
|
516
|
-
return /* @__PURE__ */
|
|
557
|
+
return /* @__PURE__ */ React13.createElement(InputAdornment, { position: "end" }, /* @__PURE__ */ React13.createElement(
|
|
517
558
|
Button2,
|
|
518
559
|
{
|
|
519
560
|
size: "small",
|
|
@@ -523,7 +564,7 @@ var SelectionEndAdornment = ({
|
|
|
523
564
|
...bindTrigger(popupState)
|
|
524
565
|
},
|
|
525
566
|
alternativeOptionLabels[value] ?? value
|
|
526
|
-
), /* @__PURE__ */
|
|
567
|
+
), /* @__PURE__ */ React13.createElement(Menu, { MenuListProps: { dense: true }, ...bindMenu(popupState) }, options.map((option, index) => /* @__PURE__ */ React13.createElement(
|
|
527
568
|
MenuListItem2,
|
|
528
569
|
{
|
|
529
570
|
key: option,
|
|
@@ -576,8 +617,8 @@ var SizeInput = ({
|
|
|
576
617
|
autoComplete: "off",
|
|
577
618
|
onClick,
|
|
578
619
|
onFocus,
|
|
579
|
-
startAdornment: startIcon ? /* @__PURE__ */
|
|
580
|
-
endAdornment: /* @__PURE__ */
|
|
620
|
+
startAdornment: startIcon ? /* @__PURE__ */ React14.createElement(InputAdornment2, { position: "start", disabled }, startIcon) : void 0,
|
|
621
|
+
endAdornment: /* @__PURE__ */ React14.createElement(
|
|
581
622
|
SelectionEndAdornment,
|
|
582
623
|
{
|
|
583
624
|
disabled,
|
|
@@ -585,7 +626,7 @@ var SizeInput = ({
|
|
|
585
626
|
onClick: handleUnitChange,
|
|
586
627
|
value: unit,
|
|
587
628
|
alternativeOptionLabels: {
|
|
588
|
-
custom: /* @__PURE__ */
|
|
629
|
+
custom: /* @__PURE__ */ React14.createElement(PencilIcon, { fontSize: "small" })
|
|
589
630
|
},
|
|
590
631
|
menuItemsAttributes: units2.includes("custom") ? {
|
|
591
632
|
custom: popupAttributes
|
|
@@ -593,7 +634,7 @@ var SizeInput = ({
|
|
|
593
634
|
}
|
|
594
635
|
)
|
|
595
636
|
};
|
|
596
|
-
return /* @__PURE__ */
|
|
637
|
+
return /* @__PURE__ */ React14.createElement(ControlActions, null, /* @__PURE__ */ React14.createElement(Box, null, /* @__PURE__ */ React14.createElement(
|
|
597
638
|
TextFieldInnerSelection,
|
|
598
639
|
{
|
|
599
640
|
disabled,
|
|
@@ -615,14 +656,23 @@ var SizeInput = ({
|
|
|
615
656
|
};
|
|
616
657
|
|
|
617
658
|
// src/components/text-field-popover.tsx
|
|
618
|
-
import * as
|
|
619
|
-
import { bindPopover,
|
|
659
|
+
import * as React15 from "react";
|
|
660
|
+
import { bindPopover, Popover, TextField as TextField4 } from "@elementor/ui";
|
|
620
661
|
var TextFieldPopover = (props) => {
|
|
621
662
|
const { popupState, restoreValue, anchorRef, value, onChange } = props;
|
|
622
|
-
return /* @__PURE__ */
|
|
663
|
+
return /* @__PURE__ */ React15.createElement(
|
|
623
664
|
Popover,
|
|
624
665
|
{
|
|
625
666
|
disablePortal: true,
|
|
667
|
+
slotProps: {
|
|
668
|
+
paper: {
|
|
669
|
+
sx: {
|
|
670
|
+
borderRadius: 2,
|
|
671
|
+
width: anchorRef.current?.offsetWidth + "px",
|
|
672
|
+
p: 1.5
|
|
673
|
+
}
|
|
674
|
+
}
|
|
675
|
+
},
|
|
626
676
|
...bindPopover(popupState),
|
|
627
677
|
anchorOrigin: { vertical: "bottom", horizontal: "center" },
|
|
628
678
|
transformOrigin: { vertical: "top", horizontal: "center" },
|
|
@@ -631,28 +681,18 @@ var TextFieldPopover = (props) => {
|
|
|
631
681
|
popupState.close();
|
|
632
682
|
}
|
|
633
683
|
},
|
|
634
|
-
/* @__PURE__ */
|
|
635
|
-
|
|
684
|
+
/* @__PURE__ */ React15.createElement(
|
|
685
|
+
TextField4,
|
|
636
686
|
{
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
TextField4,
|
|
645
|
-
{
|
|
646
|
-
value,
|
|
647
|
-
onChange,
|
|
648
|
-
size: "tiny",
|
|
649
|
-
type: "text",
|
|
650
|
-
fullWidth: true,
|
|
651
|
-
inputProps: {
|
|
652
|
-
autoFocus: true
|
|
653
|
-
}
|
|
687
|
+
value,
|
|
688
|
+
onChange,
|
|
689
|
+
size: "tiny",
|
|
690
|
+
type: "text",
|
|
691
|
+
fullWidth: true,
|
|
692
|
+
inputProps: {
|
|
693
|
+
autoFocus: true
|
|
654
694
|
}
|
|
655
|
-
|
|
695
|
+
}
|
|
656
696
|
)
|
|
657
697
|
);
|
|
658
698
|
};
|
|
@@ -785,7 +825,7 @@ var SizeControl = createControl((props) => {
|
|
|
785
825
|
setState(newState);
|
|
786
826
|
}
|
|
787
827
|
}, [activeBreakpoint]);
|
|
788
|
-
return /* @__PURE__ */
|
|
828
|
+
return /* @__PURE__ */ React16.createElement(React16.Fragment, null, /* @__PURE__ */ React16.createElement(
|
|
789
829
|
SizeInput,
|
|
790
830
|
{
|
|
791
831
|
disabled,
|
|
@@ -801,7 +841,7 @@ var SizeControl = createControl((props) => {
|
|
|
801
841
|
onClick: onInputClick,
|
|
802
842
|
popupState
|
|
803
843
|
}
|
|
804
|
-
), anchorRef?.current && /* @__PURE__ */
|
|
844
|
+
), anchorRef?.current && /* @__PURE__ */ React16.createElement(
|
|
805
845
|
TextFieldPopover,
|
|
806
846
|
{
|
|
807
847
|
popupState,
|
|
@@ -857,15 +897,8 @@ function areStatesEqual(state1, state2) {
|
|
|
857
897
|
import * as React19 from "react";
|
|
858
898
|
import { forwardRef as forwardRef2, useRef as useRef2 } from "react";
|
|
859
899
|
import { strokePropTypeUtil } from "@elementor/editor-props";
|
|
860
|
-
import { Grid } from "@elementor/ui";
|
|
861
|
-
import { __ as
|
|
862
|
-
|
|
863
|
-
// src/components/control-form-label.tsx
|
|
864
|
-
import * as React16 from "react";
|
|
865
|
-
import { FormLabel } from "@elementor/ui";
|
|
866
|
-
var ControlFormLabel = (props) => {
|
|
867
|
-
return /* @__PURE__ */ React16.createElement(FormLabel, { size: "tiny", ...props });
|
|
868
|
-
};
|
|
900
|
+
import { Grid as Grid2 } from "@elementor/ui";
|
|
901
|
+
import { __ as __3 } from "@wordpress/i18n";
|
|
869
902
|
|
|
870
903
|
// src/components/section-content.tsx
|
|
871
904
|
import * as React17 from "react";
|
|
@@ -915,16 +948,16 @@ var units = ["px", "em", "rem"];
|
|
|
915
948
|
var StrokeControl = createControl(() => {
|
|
916
949
|
const propContext = useBoundProp(strokePropTypeUtil);
|
|
917
950
|
const rowRef = useRef2(null);
|
|
918
|
-
return /* @__PURE__ */ React19.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React19.createElement(SectionContent, null, /* @__PURE__ */ React19.createElement(Control, { bind: "width", label:
|
|
951
|
+
return /* @__PURE__ */ React19.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React19.createElement(SectionContent, null, /* @__PURE__ */ React19.createElement(Control, { bind: "width", label: __3("Stroke width", "elementor"), ref: rowRef }, /* @__PURE__ */ React19.createElement(SizeControl, { units, anchorRef: rowRef })), /* @__PURE__ */ React19.createElement(Control, { bind: "color", label: __3("Stroke color", "elementor") }, /* @__PURE__ */ React19.createElement(ColorControl, null))));
|
|
919
952
|
});
|
|
920
|
-
var Control = forwardRef2(({ bind, label, children }, ref) => /* @__PURE__ */ React19.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React19.createElement(
|
|
953
|
+
var Control = forwardRef2(({ bind, label, children }, ref) => /* @__PURE__ */ React19.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React19.createElement(Grid2, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap", ref }, /* @__PURE__ */ React19.createElement(Grid2, { item: true, xs: 6 }, /* @__PURE__ */ React19.createElement(ControlFormLabel, null, label)), /* @__PURE__ */ React19.createElement(Grid2, { item: true, xs: 6 }, children))));
|
|
921
954
|
|
|
922
955
|
// src/controls/box-shadow-repeater-control.tsx
|
|
923
956
|
import * as React26 from "react";
|
|
924
957
|
import { useRef as useRef3 } from "react";
|
|
925
958
|
import { boxShadowPropTypeUtil, shadowPropTypeUtil } from "@elementor/editor-props";
|
|
926
|
-
import { FormLabel as FormLabel2, Grid as
|
|
927
|
-
import { __ as
|
|
959
|
+
import { FormLabel as FormLabel2, Grid as Grid4, UnstableColorIndicator } from "@elementor/ui";
|
|
960
|
+
import { __ as __5 } from "@wordpress/i18n";
|
|
928
961
|
|
|
929
962
|
// src/components/popover-content.tsx
|
|
930
963
|
import * as React20 from "react";
|
|
@@ -934,9 +967,9 @@ var PopoverContent = ({ gap = 1.5, children, ...props }) => /* @__PURE__ */ Reac
|
|
|
934
967
|
// src/components/popover-grid-container.tsx
|
|
935
968
|
import { forwardRef as forwardRef3 } from "react";
|
|
936
969
|
import * as React21 from "react";
|
|
937
|
-
import { Grid as
|
|
970
|
+
import { Grid as Grid3 } from "@elementor/ui";
|
|
938
971
|
var PopoverGridContainer = forwardRef3(
|
|
939
|
-
({ gap = 1.5, alignItems = "center", flexWrap = "nowrap", children }, ref) => /* @__PURE__ */ React21.createElement(
|
|
972
|
+
({ gap = 1.5, alignItems = "center", flexWrap = "nowrap", children }, ref) => /* @__PURE__ */ React21.createElement(Grid3, { container: true, gap, alignItems, flexWrap, ref }, children)
|
|
940
973
|
);
|
|
941
974
|
|
|
942
975
|
// src/components/repeater.tsx
|
|
@@ -951,11 +984,11 @@ import {
|
|
|
951
984
|
Popover as Popover2,
|
|
952
985
|
Stack as Stack5,
|
|
953
986
|
Tooltip,
|
|
954
|
-
Typography,
|
|
987
|
+
Typography as Typography2,
|
|
955
988
|
UnstableTag,
|
|
956
989
|
usePopupState as usePopupState3
|
|
957
990
|
} from "@elementor/ui";
|
|
958
|
-
import { __ as
|
|
991
|
+
import { __ as __4 } from "@wordpress/i18n";
|
|
959
992
|
|
|
960
993
|
// src/control-adornments/control-adornments.tsx
|
|
961
994
|
import * as React23 from "react";
|
|
@@ -1152,7 +1185,7 @@ var Repeater = ({
|
|
|
1152
1185
|
gap: 1,
|
|
1153
1186
|
sx: { marginInlineEnd: -0.75 }
|
|
1154
1187
|
},
|
|
1155
|
-
/* @__PURE__ */ React25.createElement(
|
|
1188
|
+
/* @__PURE__ */ React25.createElement(Typography2, { component: "label", variant: "caption", color: "text.secondary" }, label),
|
|
1156
1189
|
/* @__PURE__ */ React25.createElement(ControlAdornments, null),
|
|
1157
1190
|
/* @__PURE__ */ React25.createElement(
|
|
1158
1191
|
IconButton,
|
|
@@ -1161,7 +1194,7 @@ var Repeater = ({
|
|
|
1161
1194
|
sx: { ml: "auto" },
|
|
1162
1195
|
disabled,
|
|
1163
1196
|
onClick: addRepeaterItem,
|
|
1164
|
-
"aria-label":
|
|
1197
|
+
"aria-label": __4("Add item", "elementor")
|
|
1165
1198
|
},
|
|
1166
1199
|
/* @__PURE__ */ React25.createElement(PlusIcon, { fontSize: SIZE })
|
|
1167
1200
|
)
|
|
@@ -1205,9 +1238,9 @@ var RepeaterItem = ({
|
|
|
1205
1238
|
}) => {
|
|
1206
1239
|
const [anchorEl, setAnchorEl] = useState4(null);
|
|
1207
1240
|
const { popoverState, popoverProps, ref, setRef } = usePopover(openOnMount, onOpen);
|
|
1208
|
-
const duplicateLabel =
|
|
1209
|
-
const toggleLabel = propDisabled ?
|
|
1210
|
-
const removeLabel =
|
|
1241
|
+
const duplicateLabel = __4("Duplicate", "elementor");
|
|
1242
|
+
const toggleLabel = propDisabled ? __4("Show", "elementor") : __4("Hide", "elementor");
|
|
1243
|
+
const removeLabel = __4("Remove", "elementor");
|
|
1211
1244
|
return /* @__PURE__ */ React25.createElement(React25.Fragment, null, /* @__PURE__ */ React25.createElement(
|
|
1212
1245
|
UnstableTag,
|
|
1213
1246
|
{
|
|
@@ -1217,7 +1250,7 @@ var RepeaterItem = ({
|
|
|
1217
1250
|
fullWidth: true,
|
|
1218
1251
|
ref: setRef,
|
|
1219
1252
|
variant: "outlined",
|
|
1220
|
-
"aria-label":
|
|
1253
|
+
"aria-label": __4("Open item", "elementor"),
|
|
1221
1254
|
...bindTrigger2(popoverState),
|
|
1222
1255
|
startIcon,
|
|
1223
1256
|
actions: /* @__PURE__ */ React25.createElement(React25.Fragment, null, showDuplicate && /* @__PURE__ */ React25.createElement(Tooltip, { title: duplicateLabel, placement: "top" }, /* @__PURE__ */ React25.createElement(IconButton, { size: SIZE, onClick: duplicateItem, "aria-label": duplicateLabel }, /* @__PURE__ */ React25.createElement(CopyIcon, { fontSize: SIZE }))), showToggle && /* @__PURE__ */ React25.createElement(Tooltip, { title: toggleLabel, placement: "top" }, /* @__PURE__ */ React25.createElement(IconButton, { size: SIZE, onClick: toggleDisableItem, "aria-label": toggleLabel }, propDisabled ? /* @__PURE__ */ React25.createElement(EyeOffIcon, { fontSize: SIZE }) : /* @__PURE__ */ React25.createElement(EyeIcon, { fontSize: SIZE }))), /* @__PURE__ */ React25.createElement(Tooltip, { title: removeLabel, placement: "top" }, /* @__PURE__ */ React25.createElement(IconButton, { size: SIZE, onClick: removeItem, "aria-label": removeLabel }, /* @__PURE__ */ React25.createElement(XIcon, { fontSize: SIZE }))))
|
|
@@ -1260,14 +1293,14 @@ var usePopover = (openOnMount, onOpen) => {
|
|
|
1260
1293
|
// src/controls/box-shadow-repeater-control.tsx
|
|
1261
1294
|
var BoxShadowRepeaterControl = createControl(() => {
|
|
1262
1295
|
const { propType, value, setValue, disabled } = useBoundProp(boxShadowPropTypeUtil);
|
|
1263
|
-
return /* @__PURE__ */ React26.createElement(PropProvider, { propType, value, setValue, disabled }, /* @__PURE__ */ React26.createElement(
|
|
1296
|
+
return /* @__PURE__ */ React26.createElement(PropProvider, { propType, value, setValue, isDisabled: () => disabled }, /* @__PURE__ */ React26.createElement(
|
|
1264
1297
|
Repeater,
|
|
1265
1298
|
{
|
|
1266
1299
|
openOnAdd: true,
|
|
1267
1300
|
disabled,
|
|
1268
1301
|
values: value ?? [],
|
|
1269
1302
|
setValues: setValue,
|
|
1270
|
-
label:
|
|
1303
|
+
label: __5("Box shadow", "elementor"),
|
|
1271
1304
|
itemSettings: {
|
|
1272
1305
|
Icon: ItemIcon,
|
|
1273
1306
|
Label: ItemLabel,
|
|
@@ -1284,22 +1317,22 @@ var ItemContent = ({ anchorEl, bind }) => {
|
|
|
1284
1317
|
var Content = ({ anchorEl }) => {
|
|
1285
1318
|
const context = useBoundProp(shadowPropTypeUtil);
|
|
1286
1319
|
const rowRef = [useRef3(null), useRef3(null)];
|
|
1287
|
-
return /* @__PURE__ */ React26.createElement(PropProvider, { ...context }, /* @__PURE__ */ React26.createElement(PopoverContent, { p: 1.5 }, /* @__PURE__ */ React26.createElement(PopoverGridContainer, null, /* @__PURE__ */ React26.createElement(Control2, { bind: "color", label:
|
|
1320
|
+
return /* @__PURE__ */ React26.createElement(PropProvider, { ...context }, /* @__PURE__ */ React26.createElement(PopoverContent, { p: 1.5 }, /* @__PURE__ */ React26.createElement(PopoverGridContainer, null, /* @__PURE__ */ React26.createElement(Control2, { bind: "color", label: __5("Color", "elementor") }, /* @__PURE__ */ React26.createElement(ColorControl, { anchorEl })), /* @__PURE__ */ React26.createElement(Control2, { bind: "position", label: __5("Position", "elementor"), sx: { overflow: "hidden" } }, /* @__PURE__ */ React26.createElement(
|
|
1288
1321
|
SelectControl,
|
|
1289
1322
|
{
|
|
1290
1323
|
options: [
|
|
1291
|
-
{ label:
|
|
1292
|
-
{ label:
|
|
1324
|
+
{ label: __5("Inset", "elementor"), value: "inset" },
|
|
1325
|
+
{ label: __5("Outset", "elementor"), value: null }
|
|
1293
1326
|
]
|
|
1294
1327
|
}
|
|
1295
|
-
))), /* @__PURE__ */ React26.createElement(PopoverGridContainer, { ref: rowRef[0] }, /* @__PURE__ */ React26.createElement(Control2, { bind: "hOffset", label:
|
|
1328
|
+
))), /* @__PURE__ */ React26.createElement(PopoverGridContainer, { ref: rowRef[0] }, /* @__PURE__ */ React26.createElement(Control2, { bind: "hOffset", label: __5("Horizontal", "elementor") }, /* @__PURE__ */ React26.createElement(SizeControl, { anchorRef: rowRef[0] })), /* @__PURE__ */ React26.createElement(Control2, { bind: "vOffset", label: __5("Vertical", "elementor") }, /* @__PURE__ */ React26.createElement(SizeControl, { anchorRef: rowRef[0] }))), /* @__PURE__ */ React26.createElement(PopoverGridContainer, { ref: rowRef[1] }, /* @__PURE__ */ React26.createElement(Control2, { bind: "blur", label: __5("Blur", "elementor") }, /* @__PURE__ */ React26.createElement(SizeControl, { anchorRef: rowRef[1] })), /* @__PURE__ */ React26.createElement(Control2, { bind: "spread", label: __5("Spread", "elementor") }, /* @__PURE__ */ React26.createElement(SizeControl, { anchorRef: rowRef[1] })))));
|
|
1296
1329
|
};
|
|
1297
1330
|
var Control2 = ({
|
|
1298
1331
|
label,
|
|
1299
1332
|
bind,
|
|
1300
1333
|
children,
|
|
1301
1334
|
sx
|
|
1302
|
-
}) => /* @__PURE__ */ React26.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React26.createElement(
|
|
1335
|
+
}) => /* @__PURE__ */ React26.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React26.createElement(Grid4, { item: true, xs: 6, sx }, /* @__PURE__ */ React26.createElement(Grid4, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React26.createElement(Grid4, { item: true, xs: 12 }, /* @__PURE__ */ React26.createElement(FormLabel2, { size: "tiny" }, label)), /* @__PURE__ */ React26.createElement(Grid4, { item: true, xs: 12 }, children))));
|
|
1303
1336
|
var ItemLabel = ({ value }) => {
|
|
1304
1337
|
const { position, hOffset, vOffset, blur, spread } = value.value;
|
|
1305
1338
|
const { size: blurSize = "", unit: blurUnit = "" } = blur?.value || {};
|
|
@@ -1351,8 +1384,8 @@ import {
|
|
|
1351
1384
|
filterPropTypeUtil
|
|
1352
1385
|
} from "@elementor/editor-props";
|
|
1353
1386
|
import { MenuListItem as MenuListItem3 } from "@elementor/editor-ui";
|
|
1354
|
-
import { Box as Box3, Grid as
|
|
1355
|
-
import { __ as
|
|
1387
|
+
import { Box as Box3, Grid as Grid5, Select as Select2 } from "@elementor/ui";
|
|
1388
|
+
import { __ as __6 } from "@wordpress/i18n";
|
|
1356
1389
|
|
|
1357
1390
|
// src/components/control-label.tsx
|
|
1358
1391
|
import * as React27 from "react";
|
|
@@ -1366,15 +1399,15 @@ var DEFAULT_FILTER_KEY = "blur";
|
|
|
1366
1399
|
var filterConfig = {
|
|
1367
1400
|
blur: {
|
|
1368
1401
|
defaultValue: { $$type: "radius", radius: { $$type: "size", value: { size: 0, unit: "px" } } },
|
|
1369
|
-
name:
|
|
1370
|
-
valueName:
|
|
1402
|
+
name: __6("Blur", "elementor"),
|
|
1403
|
+
valueName: __6("Radius", "elementor"),
|
|
1371
1404
|
propType: blurFilterPropTypeUtil,
|
|
1372
1405
|
units: defaultUnits.filter((unit) => unit !== "%")
|
|
1373
1406
|
},
|
|
1374
1407
|
brightness: {
|
|
1375
1408
|
defaultValue: { $$type: "amount", amount: { $$type: "size", value: { size: 100, unit: "%" } } },
|
|
1376
|
-
name:
|
|
1377
|
-
valueName:
|
|
1409
|
+
name: __6("Brightness", "elementor"),
|
|
1410
|
+
valueName: __6("Amount", "elementor"),
|
|
1378
1411
|
propType: brightnessFilterPropTypeUtil,
|
|
1379
1412
|
units: ["%"]
|
|
1380
1413
|
}
|
|
@@ -1393,7 +1426,7 @@ var FilterRepeaterControl = createControl(() => {
|
|
|
1393
1426
|
disabled,
|
|
1394
1427
|
values: filterValues ?? [],
|
|
1395
1428
|
setValues: setValue,
|
|
1396
|
-
label:
|
|
1429
|
+
label: __6("Filter", "elementor"),
|
|
1397
1430
|
itemSettings: {
|
|
1398
1431
|
Icon: ItemIcon2,
|
|
1399
1432
|
Label: ItemLabel2,
|
|
@@ -1432,7 +1465,7 @@ var ItemContent2 = ({ bind }) => {
|
|
|
1432
1465
|
};
|
|
1433
1466
|
setValue(newFilterValues);
|
|
1434
1467
|
};
|
|
1435
|
-
return /* @__PURE__ */ React28.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React28.createElement(PopoverContent, { p: 1.5 }, /* @__PURE__ */ React28.createElement(PopoverGridContainer, null, /* @__PURE__ */ React28.createElement(
|
|
1468
|
+
return /* @__PURE__ */ React28.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React28.createElement(PopoverContent, { p: 1.5 }, /* @__PURE__ */ React28.createElement(PopoverGridContainer, null, /* @__PURE__ */ React28.createElement(Grid5, { item: true, xs: 6 }, /* @__PURE__ */ React28.createElement(ControlLabel, null, __6("Filter", "elementor"))), /* @__PURE__ */ React28.createElement(Grid5, { item: true, xs: 6 }, /* @__PURE__ */ React28.createElement(
|
|
1436
1469
|
Select2,
|
|
1437
1470
|
{
|
|
1438
1471
|
sx: { overflow: "hidden" },
|
|
@@ -1452,7 +1485,7 @@ var SingleSizeItemContent = ({ filterType }) => {
|
|
|
1452
1485
|
const { $$type } = defaultValue;
|
|
1453
1486
|
const context = useBoundProp(propType);
|
|
1454
1487
|
const rowRef = useRef4(null);
|
|
1455
|
-
return /* @__PURE__ */ React28.createElement(PropProvider, { ...context }, /* @__PURE__ */ React28.createElement(PropKeyProvider, { bind: $$type }, /* @__PURE__ */ React28.createElement(PopoverGridContainer, { ref: rowRef }, /* @__PURE__ */ React28.createElement(
|
|
1488
|
+
return /* @__PURE__ */ React28.createElement(PropProvider, { ...context }, /* @__PURE__ */ React28.createElement(PropKeyProvider, { bind: $$type }, /* @__PURE__ */ React28.createElement(PopoverGridContainer, { ref: rowRef }, /* @__PURE__ */ React28.createElement(Grid5, { item: true, xs: 6 }, /* @__PURE__ */ React28.createElement(ControlLabel, null, valueName)), /* @__PURE__ */ React28.createElement(Grid5, { item: true, xs: 6 }, /* @__PURE__ */ React28.createElement(SizeControl, { anchorRef: rowRef, units: units2 })))));
|
|
1456
1489
|
};
|
|
1457
1490
|
|
|
1458
1491
|
// src/controls/toggle-control.tsx
|
|
@@ -1470,7 +1503,7 @@ import {
|
|
|
1470
1503
|
styled as styled3,
|
|
1471
1504
|
ToggleButton,
|
|
1472
1505
|
ToggleButtonGroup,
|
|
1473
|
-
Typography as
|
|
1506
|
+
Typography as Typography3,
|
|
1474
1507
|
useTheme
|
|
1475
1508
|
} from "@elementor/ui";
|
|
1476
1509
|
|
|
@@ -1634,7 +1667,7 @@ var SplitButtonGroup = ({
|
|
|
1634
1667
|
selected: buttonValue === value,
|
|
1635
1668
|
onClick: () => onMenuItemClick(buttonValue)
|
|
1636
1669
|
},
|
|
1637
|
-
/* @__PURE__ */ React30.createElement(ListItemText, null, /* @__PURE__ */ React30.createElement(
|
|
1670
|
+
/* @__PURE__ */ React30.createElement(ListItemText, null, /* @__PURE__ */ React30.createElement(Typography3, { sx: { fontSize: "14px" } }, label))
|
|
1638
1671
|
))
|
|
1639
1672
|
));
|
|
1640
1673
|
};
|
|
@@ -1746,8 +1779,8 @@ import * as React33 from "react";
|
|
|
1746
1779
|
import { useId as useId2, useRef as useRef6 } from "react";
|
|
1747
1780
|
import { sizePropTypeUtil as sizePropTypeUtil2 } from "@elementor/editor-props";
|
|
1748
1781
|
import { isExperimentActive as isExperimentActive2 } from "@elementor/editor-v1-adapters";
|
|
1749
|
-
import { bindPopover as bindPopover3, bindToggle, Grid as
|
|
1750
|
-
import { __ as
|
|
1782
|
+
import { bindPopover as bindPopover3, bindToggle, Grid as Grid6, Popover as Popover3, Stack as Stack7, ToggleButton as ToggleButton2, Tooltip as Tooltip3, usePopupState as usePopupState4 } from "@elementor/ui";
|
|
1783
|
+
import { __ as __7 } from "@wordpress/i18n";
|
|
1751
1784
|
var isEqualSizes = (propValue, items) => {
|
|
1752
1785
|
const values = Object.values(propValue);
|
|
1753
1786
|
if (values.length !== items.length) {
|
|
@@ -1803,10 +1836,10 @@ function EqualUnequalSizesControl({
|
|
|
1803
1836
|
};
|
|
1804
1837
|
const isShowingGeneralIndicator = !isExperimentActive2("e_v_3_30") || !popupState.isOpen;
|
|
1805
1838
|
const isMixed = !!multiSizeValue;
|
|
1806
|
-
return /* @__PURE__ */ React33.createElement(React33.Fragment, null, /* @__PURE__ */ React33.createElement(
|
|
1839
|
+
return /* @__PURE__ */ React33.createElement(React33.Fragment, null, /* @__PURE__ */ React33.createElement(Grid6, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap", ref: rowRefs[0] }, /* @__PURE__ */ React33.createElement(Grid6, { item: true, xs: 6 }, !isShowingGeneralIndicator ? /* @__PURE__ */ React33.createElement(ControlFormLabel, null, label) : /* @__PURE__ */ React33.createElement(ControlLabel, null, label)), /* @__PURE__ */ React33.createElement(Grid6, { item: true, xs: 6 }, /* @__PURE__ */ React33.createElement(Stack7, { direction: "row", alignItems: "center", gap: 1 }, /* @__PURE__ */ React33.createElement(
|
|
1807
1840
|
SizeControl,
|
|
1808
1841
|
{
|
|
1809
|
-
placeholder: isMixed ?
|
|
1842
|
+
placeholder: isMixed ? __7("Mixed", "elementor") : void 0,
|
|
1810
1843
|
anchorRef: rowRefs[0]
|
|
1811
1844
|
}
|
|
1812
1845
|
), /* @__PURE__ */ React33.createElement(Tooltip3, { title: tooltipLabel, placement: "top" }, /* @__PURE__ */ React33.createElement(
|
|
@@ -1844,7 +1877,7 @@ function EqualUnequalSizesControl({
|
|
|
1844
1877
|
propType: multiSizePropType,
|
|
1845
1878
|
value: getMultiSizeValues(),
|
|
1846
1879
|
setValue: setNestedProp,
|
|
1847
|
-
|
|
1880
|
+
isDisabled: () => multiSizeDisabled
|
|
1848
1881
|
},
|
|
1849
1882
|
/* @__PURE__ */ React33.createElement(PopoverContent, { p: 1.5 }, /* @__PURE__ */ React33.createElement(PopoverGridContainer, { ref: rowRefs[1] }, /* @__PURE__ */ React33.createElement(MultiSizeValueControl, { item: items[0], rowRef: rowRefs[1] }), /* @__PURE__ */ React33.createElement(MultiSizeValueControl, { item: items[1], rowRef: rowRefs[1] })), /* @__PURE__ */ React33.createElement(PopoverGridContainer, { ref: rowRefs[2] }, /* @__PURE__ */ React33.createElement(MultiSizeValueControl, { item: items[2], rowRef: rowRefs[2] }), /* @__PURE__ */ React33.createElement(MultiSizeValueControl, { item: items[3], rowRef: rowRefs[2] })))
|
|
1850
1883
|
)
|
|
@@ -1852,7 +1885,7 @@ function EqualUnequalSizesControl({
|
|
|
1852
1885
|
}
|
|
1853
1886
|
var MultiSizeValueControl = ({ item, rowRef }) => {
|
|
1854
1887
|
const isUsingNestedProps = isExperimentActive2("e_v_3_30");
|
|
1855
|
-
return /* @__PURE__ */ React33.createElement(PropKeyProvider, { bind: item.bind }, /* @__PURE__ */ React33.createElement(
|
|
1888
|
+
return /* @__PURE__ */ React33.createElement(PropKeyProvider, { bind: item.bind }, /* @__PURE__ */ React33.createElement(Grid6, { item: true, xs: 6 }, /* @__PURE__ */ React33.createElement(Grid6, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React33.createElement(Grid6, { item: true, xs: 12 }, isUsingNestedProps ? /* @__PURE__ */ React33.createElement(ControlLabel, null, item.label) : /* @__PURE__ */ React33.createElement(ControlFormLabel, null, item.label)), /* @__PURE__ */ React33.createElement(Grid6, { item: true, xs: 12 }, /* @__PURE__ */ React33.createElement(SizeControl, { startIcon: item.icon, anchorRef: rowRef })))));
|
|
1856
1889
|
};
|
|
1857
1890
|
|
|
1858
1891
|
// src/controls/linked-dimensions-control.tsx
|
|
@@ -1861,8 +1894,8 @@ import { useRef as useRef7 } from "react";
|
|
|
1861
1894
|
import { dimensionsPropTypeUtil, sizePropTypeUtil as sizePropTypeUtil3 } from "@elementor/editor-props";
|
|
1862
1895
|
import { isExperimentActive as isExperimentActive3 } from "@elementor/editor-v1-adapters";
|
|
1863
1896
|
import { DetachIcon, LinkIcon, SideBottomIcon, SideLeftIcon, SideRightIcon, SideTopIcon } from "@elementor/icons";
|
|
1864
|
-
import { Grid as
|
|
1865
|
-
import { __ as
|
|
1897
|
+
import { Grid as Grid7, Stack as Stack8, ToggleButton as ToggleButton3, Tooltip as Tooltip4 } from "@elementor/ui";
|
|
1898
|
+
import { __ as __8 } from "@wordpress/i18n";
|
|
1866
1899
|
var LinkedDimensionsControl = createControl(
|
|
1867
1900
|
({
|
|
1868
1901
|
label,
|
|
@@ -1894,8 +1927,8 @@ var LinkedDimensionsControl = createControl(
|
|
|
1894
1927
|
};
|
|
1895
1928
|
const tooltipLabel = label.toLowerCase();
|
|
1896
1929
|
const LinkedIcon = isLinked ? LinkIcon : DetachIcon;
|
|
1897
|
-
const linkedLabel =
|
|
1898
|
-
const unlinkedLabel =
|
|
1930
|
+
const linkedLabel = __8("Link %s", "elementor").replace("%s", tooltipLabel);
|
|
1931
|
+
const unlinkedLabel = __8("Unlink %s", "elementor").replace("%s", tooltipLabel);
|
|
1899
1932
|
const disabled = sizeDisabled || dimensionsDisabled;
|
|
1900
1933
|
return /* @__PURE__ */ React34.createElement(
|
|
1901
1934
|
PropProvider,
|
|
@@ -1903,7 +1936,7 @@ var LinkedDimensionsControl = createControl(
|
|
|
1903
1936
|
propType,
|
|
1904
1937
|
value: dimensionsValue,
|
|
1905
1938
|
setValue: setDimensionsValue,
|
|
1906
|
-
disabled
|
|
1939
|
+
isDisabled: () => disabled
|
|
1907
1940
|
},
|
|
1908
1941
|
/* @__PURE__ */ React34.createElement(Stack8, { direction: "row", gap: 2, flexWrap: "nowrap" }, isUsingNestedProps ? /* @__PURE__ */ React34.createElement(ControlFormLabel, null, label) : /* @__PURE__ */ React34.createElement(ControlLabel, null, label), /* @__PURE__ */ React34.createElement(Tooltip4, { title: isLinked ? unlinkedLabel : linkedLabel, placement: "top" }, /* @__PURE__ */ React34.createElement(
|
|
1909
1942
|
ToggleButton3,
|
|
@@ -1918,7 +1951,7 @@ var LinkedDimensionsControl = createControl(
|
|
|
1918
1951
|
},
|
|
1919
1952
|
/* @__PURE__ */ React34.createElement(LinkedIcon, { fontSize: "tiny" })
|
|
1920
1953
|
))),
|
|
1921
|
-
getCssMarginProps(isSiteRtl).map((row, index) => /* @__PURE__ */ React34.createElement(Stack8, { direction: "row", gap: 2, flexWrap: "nowrap", key: index, ref: gridRowRefs[index] }, row.map(({ icon, ...props }) => /* @__PURE__ */ React34.createElement(
|
|
1954
|
+
getCssMarginProps(isSiteRtl).map((row, index) => /* @__PURE__ */ React34.createElement(Stack8, { direction: "row", gap: 2, flexWrap: "nowrap", key: index, ref: gridRowRefs[index] }, row.map(({ icon, ...props }) => /* @__PURE__ */ React34.createElement(Grid7, { container: true, gap: 0.75, alignItems: "center", key: props.bind }, /* @__PURE__ */ React34.createElement(Grid7, { item: true, xs: 12 }, /* @__PURE__ */ React34.createElement(Label, { ...props })), /* @__PURE__ */ React34.createElement(Grid7, { item: true, xs: 12 }, /* @__PURE__ */ React34.createElement(
|
|
1922
1955
|
Control3,
|
|
1923
1956
|
{
|
|
1924
1957
|
bind: props.bind,
|
|
@@ -1955,24 +1988,24 @@ function getCssMarginProps(isSiteRtl) {
|
|
|
1955
1988
|
[
|
|
1956
1989
|
{
|
|
1957
1990
|
bind: "block-start",
|
|
1958
|
-
label:
|
|
1991
|
+
label: __8("Top", "elementor"),
|
|
1959
1992
|
icon: /* @__PURE__ */ React34.createElement(SideTopIcon, { fontSize: "tiny" })
|
|
1960
1993
|
},
|
|
1961
1994
|
{
|
|
1962
1995
|
bind: "inline-end",
|
|
1963
|
-
label: isSiteRtl ?
|
|
1996
|
+
label: isSiteRtl ? __8("Left", "elementor") : __8("Right", "elementor"),
|
|
1964
1997
|
icon: isSiteRtl ? /* @__PURE__ */ React34.createElement(SideLeftIcon, { fontSize: "tiny" }) : /* @__PURE__ */ React34.createElement(SideRightIcon, { fontSize: "tiny" })
|
|
1965
1998
|
}
|
|
1966
1999
|
],
|
|
1967
2000
|
[
|
|
1968
2001
|
{
|
|
1969
2002
|
bind: "block-end",
|
|
1970
|
-
label:
|
|
2003
|
+
label: __8("Bottom", "elementor"),
|
|
1971
2004
|
icon: /* @__PURE__ */ React34.createElement(SideBottomIcon, { fontSize: "tiny" })
|
|
1972
2005
|
},
|
|
1973
2006
|
{
|
|
1974
2007
|
bind: "inline-start",
|
|
1975
|
-
label: isSiteRtl ?
|
|
2008
|
+
label: isSiteRtl ? __8("Right", "elementor") : __8("Left", "elementor"),
|
|
1976
2009
|
icon: isSiteRtl ? /* @__PURE__ */ React34.createElement(SideRightIcon, { fontSize: "tiny" }) : /* @__PURE__ */ React34.createElement(SideLeftIcon, { fontSize: "tiny" })
|
|
1977
2010
|
}
|
|
1978
2011
|
]
|
|
@@ -1990,9 +2023,9 @@ import * as React35 from "react";
|
|
|
1990
2023
|
import { useEffect as useEffect5, useState as useState6 } from "react";
|
|
1991
2024
|
import { PopoverHeader, PopoverMenuList, PopoverScrollableContent, PopoverSearch } from "@elementor/editor-ui";
|
|
1992
2025
|
import { TextIcon } from "@elementor/icons";
|
|
1993
|
-
import { Box as Box4, Divider as Divider2, Link, Stack as Stack9, Typography as
|
|
2026
|
+
import { Box as Box4, Divider as Divider2, Link, Stack as Stack9, Typography as Typography4 } from "@elementor/ui";
|
|
1994
2027
|
import { debounce } from "@elementor/utils";
|
|
1995
|
-
import { __ as
|
|
2028
|
+
import { __ as __9 } from "@wordpress/i18n";
|
|
1996
2029
|
|
|
1997
2030
|
// src/controls/font-family-control/enqueue-font.tsx
|
|
1998
2031
|
var enqueueFont = (fontFamily, context = "editor") => {
|
|
@@ -2037,7 +2070,7 @@ var FontFamilySelector = ({
|
|
|
2037
2070
|
return /* @__PURE__ */ React35.createElement(Stack9, null, /* @__PURE__ */ React35.createElement(
|
|
2038
2071
|
PopoverHeader,
|
|
2039
2072
|
{
|
|
2040
|
-
title:
|
|
2073
|
+
title: __9("Font Family", "elementor"),
|
|
2041
2074
|
onClose: handleClose,
|
|
2042
2075
|
icon: /* @__PURE__ */ React35.createElement(TextIcon, { fontSize: SIZE2 })
|
|
2043
2076
|
}
|
|
@@ -2046,7 +2079,7 @@ var FontFamilySelector = ({
|
|
|
2046
2079
|
{
|
|
2047
2080
|
value: searchValue,
|
|
2048
2081
|
onSearch: handleSearch,
|
|
2049
|
-
placeholder:
|
|
2082
|
+
placeholder: __9("Search", "elementor")
|
|
2050
2083
|
}
|
|
2051
2084
|
), /* @__PURE__ */ React35.createElement(Divider2, null), /* @__PURE__ */ React35.createElement(PopoverScrollableContent, { width: sectionWidth }, filteredFontFamilies.length > 0 ? /* @__PURE__ */ React35.createElement(
|
|
2052
2085
|
FontList,
|
|
@@ -2067,8 +2100,8 @@ var FontFamilySelector = ({
|
|
|
2067
2100
|
overflow: "hidden"
|
|
2068
2101
|
},
|
|
2069
2102
|
/* @__PURE__ */ React35.createElement(TextIcon, { fontSize: "large" }),
|
|
2070
|
-
/* @__PURE__ */ React35.createElement(Box4, { sx: { maxWidth: 160, overflow: "hidden" } }, /* @__PURE__ */ React35.createElement(
|
|
2071
|
-
|
|
2103
|
+
/* @__PURE__ */ React35.createElement(Box4, { sx: { maxWidth: 160, overflow: "hidden" } }, /* @__PURE__ */ React35.createElement(Typography4, { align: "center", variant: "subtitle2", color: "text.secondary" }, __9("Sorry, nothing matched", "elementor")), /* @__PURE__ */ React35.createElement(
|
|
2104
|
+
Typography4,
|
|
2072
2105
|
{
|
|
2073
2106
|
variant: "subtitle2",
|
|
2074
2107
|
color: "text.secondary",
|
|
@@ -2083,14 +2116,14 @@ var FontFamilySelector = ({
|
|
|
2083
2116
|
/* @__PURE__ */ React35.createElement("span", null, "\u201D.")
|
|
2084
2117
|
)),
|
|
2085
2118
|
/* @__PURE__ */ React35.createElement(
|
|
2086
|
-
|
|
2119
|
+
Typography4,
|
|
2087
2120
|
{
|
|
2088
2121
|
align: "center",
|
|
2089
2122
|
variant: "caption",
|
|
2090
2123
|
color: "text.secondary",
|
|
2091
2124
|
sx: { display: "flex", flexDirection: "column" }
|
|
2092
2125
|
},
|
|
2093
|
-
|
|
2126
|
+
__9("Try something else.", "elementor"),
|
|
2094
2127
|
/* @__PURE__ */ React35.createElement(
|
|
2095
2128
|
Link,
|
|
2096
2129
|
{
|
|
@@ -2099,7 +2132,7 @@ var FontFamilySelector = ({
|
|
|
2099
2132
|
component: "button",
|
|
2100
2133
|
onClick: () => setSearchValue("")
|
|
2101
2134
|
},
|
|
2102
|
-
|
|
2135
|
+
__9("Clear & try again", "elementor")
|
|
2103
2136
|
)
|
|
2104
2137
|
)
|
|
2105
2138
|
)));
|
|
@@ -2136,17 +2169,24 @@ var useDebounce = (fn, delay) => {
|
|
|
2136
2169
|
// src/controls/font-family-control/font-family-control.tsx
|
|
2137
2170
|
var SIZE3 = "tiny";
|
|
2138
2171
|
var FontFamilyControl = createControl(({ fontFamilies, sectionWidth }) => {
|
|
2139
|
-
const { value: fontFamily, setValue: setFontFamily, disabled } = useBoundProp(stringPropTypeUtil5);
|
|
2172
|
+
const { value: fontFamily, setValue: setFontFamily, disabled, placeholder } = useBoundProp(stringPropTypeUtil5);
|
|
2140
2173
|
const popoverState = usePopupState5({ variant: "popover" });
|
|
2174
|
+
const isShowingPlaceholder = !fontFamily && placeholder;
|
|
2141
2175
|
return /* @__PURE__ */ React36.createElement(React36.Fragment, null, /* @__PURE__ */ React36.createElement(ControlActions, null, /* @__PURE__ */ React36.createElement(
|
|
2142
2176
|
UnstableTag2,
|
|
2143
2177
|
{
|
|
2144
2178
|
variant: "outlined",
|
|
2145
|
-
label: fontFamily,
|
|
2179
|
+
label: fontFamily || placeholder,
|
|
2146
2180
|
endIcon: /* @__PURE__ */ React36.createElement(ChevronDownIcon2, { fontSize: SIZE3 }),
|
|
2147
2181
|
...bindTrigger3(popoverState),
|
|
2148
2182
|
fullWidth: true,
|
|
2149
|
-
disabled
|
|
2183
|
+
disabled,
|
|
2184
|
+
sx: isShowingPlaceholder ? {
|
|
2185
|
+
"& .MuiTag-label": {
|
|
2186
|
+
color: (theme) => theme.palette.text.tertiary
|
|
2187
|
+
},
|
|
2188
|
+
textTransform: "capitalize"
|
|
2189
|
+
} : void 0
|
|
2150
2190
|
}
|
|
2151
2191
|
)), /* @__PURE__ */ React36.createElement(
|
|
2152
2192
|
Popover4,
|
|
@@ -2192,23 +2232,24 @@ var UrlControl = createControl(({ placeholder }) => {
|
|
|
2192
2232
|
});
|
|
2193
2233
|
|
|
2194
2234
|
// src/controls/link-control.tsx
|
|
2195
|
-
import * as
|
|
2235
|
+
import * as React40 from "react";
|
|
2196
2236
|
import { useMemo as useMemo3, useState as useState7 } from "react";
|
|
2197
2237
|
import { getLinkInLinkRestriction, selectElement } from "@elementor/editor-elements";
|
|
2198
2238
|
import {
|
|
2199
|
-
booleanPropTypeUtil,
|
|
2239
|
+
booleanPropTypeUtil as booleanPropTypeUtil2,
|
|
2200
2240
|
linkPropTypeUtil,
|
|
2201
2241
|
numberPropTypeUtil as numberPropTypeUtil2,
|
|
2202
2242
|
stringPropTypeUtil as stringPropTypeUtil6,
|
|
2203
2243
|
urlPropTypeUtil as urlPropTypeUtil2
|
|
2204
2244
|
} from "@elementor/editor-props";
|
|
2205
2245
|
import { InfoTipCard } from "@elementor/editor-ui";
|
|
2246
|
+
import { isExperimentActive as isExperimentActive4 } from "@elementor/editor-v1-adapters";
|
|
2206
2247
|
import { httpService as httpService2 } from "@elementor/http-client";
|
|
2207
2248
|
import { AlertTriangleIcon, MinusIcon, PlusIcon as PlusIcon2 } from "@elementor/icons";
|
|
2208
2249
|
import { useSessionStorage } from "@elementor/session";
|
|
2209
|
-
import { Box as Box6, Collapse, Grid as
|
|
2250
|
+
import { Box as Box6, Collapse, Grid as Grid8, IconButton as IconButton3, Infotip, Stack as Stack10, Switch as Switch2 } from "@elementor/ui";
|
|
2210
2251
|
import { debounce as debounce2 } from "@elementor/utils";
|
|
2211
|
-
import { __ as
|
|
2252
|
+
import { __ as __10 } from "@wordpress/i18n";
|
|
2212
2253
|
|
|
2213
2254
|
// src/components/autocomplete.tsx
|
|
2214
2255
|
import * as React38 from "react";
|
|
@@ -2322,10 +2363,33 @@ function _factoryFilter(newValue, options, minInputLength) {
|
|
|
2322
2363
|
);
|
|
2323
2364
|
}
|
|
2324
2365
|
|
|
2366
|
+
// src/controls/switch-control.tsx
|
|
2367
|
+
import * as React39 from "react";
|
|
2368
|
+
import { booleanPropTypeUtil } from "@elementor/editor-props";
|
|
2369
|
+
import { Switch } from "@elementor/ui";
|
|
2370
|
+
var SwitchControl = createControl(() => {
|
|
2371
|
+
const { value, setValue, disabled } = useBoundProp(booleanPropTypeUtil);
|
|
2372
|
+
const handleChange = (event) => {
|
|
2373
|
+
setValue(event.target.checked);
|
|
2374
|
+
};
|
|
2375
|
+
return /* @__PURE__ */ React39.createElement("div", { style: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React39.createElement(
|
|
2376
|
+
Switch,
|
|
2377
|
+
{
|
|
2378
|
+
checked: !!value,
|
|
2379
|
+
onChange: handleChange,
|
|
2380
|
+
size: "small",
|
|
2381
|
+
disabled,
|
|
2382
|
+
inputProps: {
|
|
2383
|
+
...disabled ? { style: { opacity: 0 } } : {}
|
|
2384
|
+
}
|
|
2385
|
+
}
|
|
2386
|
+
));
|
|
2387
|
+
});
|
|
2388
|
+
|
|
2325
2389
|
// src/controls/link-control.tsx
|
|
2326
2390
|
var SIZE4 = "tiny";
|
|
2327
2391
|
var learnMoreButton = {
|
|
2328
|
-
label:
|
|
2392
|
+
label: __10("Learn More", "elementor"),
|
|
2329
2393
|
href: "https://go.elementor.com/element-link-inside-link-infotip"
|
|
2330
2394
|
};
|
|
2331
2395
|
var LinkControl = createControl((props) => {
|
|
@@ -2338,7 +2402,7 @@ var LinkControl = createControl((props) => {
|
|
|
2338
2402
|
placeholder,
|
|
2339
2403
|
minInputLength = 2,
|
|
2340
2404
|
context: { elementId },
|
|
2341
|
-
label =
|
|
2405
|
+
label = __10("Link", "elementor")
|
|
2342
2406
|
} = props || {};
|
|
2343
2407
|
const [linkInLinkRestriction, setLinkInLinkRestriction] = useState7(getLinkInLinkRestriction(elementId));
|
|
2344
2408
|
const [options, setOptions] = useState7(
|
|
@@ -2401,7 +2465,7 @@ var LinkControl = createControl((props) => {
|
|
|
2401
2465
|
),
|
|
2402
2466
|
[endpoint]
|
|
2403
2467
|
);
|
|
2404
|
-
return /* @__PURE__ */
|
|
2468
|
+
return /* @__PURE__ */ React40.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React40.createElement(Stack10, { gap: 1.5 }, /* @__PURE__ */ React40.createElement(
|
|
2405
2469
|
Stack10,
|
|
2406
2470
|
{
|
|
2407
2471
|
direction: "row",
|
|
@@ -2411,17 +2475,17 @@ var LinkControl = createControl((props) => {
|
|
|
2411
2475
|
marginInlineEnd: -0.75
|
|
2412
2476
|
}
|
|
2413
2477
|
},
|
|
2414
|
-
/* @__PURE__ */
|
|
2415
|
-
/* @__PURE__ */
|
|
2478
|
+
/* @__PURE__ */ React40.createElement(ControlFormLabel, null, label),
|
|
2479
|
+
/* @__PURE__ */ React40.createElement(ConditionalInfoTip, { isVisible: !isActive, linkInLinkRestriction }, /* @__PURE__ */ React40.createElement(
|
|
2416
2480
|
ToggleIconControl,
|
|
2417
2481
|
{
|
|
2418
2482
|
disabled: shouldDisableAddingLink,
|
|
2419
2483
|
active: isActive,
|
|
2420
2484
|
onIconClick: onEnabledChange,
|
|
2421
|
-
label:
|
|
2485
|
+
label: __10("Toggle link", "elementor")
|
|
2422
2486
|
}
|
|
2423
2487
|
))
|
|
2424
|
-
), /* @__PURE__ */
|
|
2488
|
+
), /* @__PURE__ */ React40.createElement(Collapse, { in: isActive, timeout: "auto", unmountOnExit: true }, /* @__PURE__ */ React40.createElement(Stack10, { gap: 1.5 }, /* @__PURE__ */ React40.createElement(PropKeyProvider, { bind: "destination" }, /* @__PURE__ */ React40.createElement(ControlActions, null, /* @__PURE__ */ React40.createElement(
|
|
2425
2489
|
Autocomplete,
|
|
2426
2490
|
{
|
|
2427
2491
|
options,
|
|
@@ -2432,22 +2496,31 @@ var LinkControl = createControl((props) => {
|
|
|
2432
2496
|
onTextChange,
|
|
2433
2497
|
minInputLength
|
|
2434
2498
|
}
|
|
2435
|
-
))), /* @__PURE__ */
|
|
2499
|
+
))), /* @__PURE__ */ React40.createElement(PropKeyProvider, { bind: "isTargetBlank" }, /* @__PURE__ */ React40.createElement(Grid8, { container: true, alignItems: "center", flexWrap: "nowrap", justifyContent: "space-between" }, /* @__PURE__ */ React40.createElement(Grid8, { item: true }, /* @__PURE__ */ React40.createElement(ControlFormLabel, null, __10("Open in a new tab", "elementor"))), /* @__PURE__ */ React40.createElement(Grid8, { item: true, sx: { marginInlineEnd: -1 } }, /* @__PURE__ */ React40.createElement(SwitchControlComponent, { disabled: propContext.disabled || !value }))))))));
|
|
2436
2500
|
});
|
|
2437
2501
|
var ToggleIconControl = ({ disabled, active, onIconClick, label }) => {
|
|
2438
|
-
return /* @__PURE__ */
|
|
2502
|
+
return /* @__PURE__ */ React40.createElement(IconButton3, { size: SIZE4, onClick: onIconClick, "aria-label": label, disabled }, active ? /* @__PURE__ */ React40.createElement(MinusIcon, { fontSize: SIZE4 }) : /* @__PURE__ */ React40.createElement(PlusIcon2, { fontSize: SIZE4 }));
|
|
2439
2503
|
};
|
|
2440
|
-
var
|
|
2441
|
-
const { value
|
|
2504
|
+
var SwitchControlComponent = ({ disabled }) => {
|
|
2505
|
+
const { value, setValue } = useBoundProp(booleanPropTypeUtil2);
|
|
2506
|
+
const isVersion331Active = isExperimentActive4("e_v_3_31");
|
|
2507
|
+
if (isVersion331Active) {
|
|
2508
|
+
return /* @__PURE__ */ React40.createElement(SwitchControl, null);
|
|
2509
|
+
}
|
|
2442
2510
|
const onClick = () => {
|
|
2443
2511
|
setValue(!value);
|
|
2444
2512
|
};
|
|
2445
|
-
|
|
2446
|
-
|
|
2447
|
-
|
|
2513
|
+
return /* @__PURE__ */ React40.createElement(
|
|
2514
|
+
Switch2,
|
|
2515
|
+
{
|
|
2516
|
+
checked: value ?? false,
|
|
2517
|
+
onClick,
|
|
2518
|
+
disabled,
|
|
2519
|
+
inputProps: {
|
|
2520
|
+
...disabled ? { style: { opacity: 0 } } : {}
|
|
2521
|
+
}
|
|
2448
2522
|
}
|
|
2449
|
-
|
|
2450
|
-
return /* @__PURE__ */ React39.createElement(Grid7, { container: true, alignItems: "center", flexWrap: "nowrap", justifyContent: "space-between" }, /* @__PURE__ */ React39.createElement(Grid7, { item: true }, /* @__PURE__ */ React39.createElement(ControlFormLabel, null, __9("Open in a new tab", "elementor"))), /* @__PURE__ */ React39.createElement(Grid7, { item: true, sx: { marginInlineEnd: -1 } }, /* @__PURE__ */ React39.createElement(Switch, { checked: value, onClick, disabled, inputProps })));
|
|
2523
|
+
);
|
|
2451
2524
|
};
|
|
2452
2525
|
async function fetchOptions(ajaxUrl, params) {
|
|
2453
2526
|
if (!params || !ajaxUrl) {
|
|
@@ -2484,38 +2557,38 @@ var ConditionalInfoTip = ({ linkInLinkRestriction, isVisible, children }) => {
|
|
|
2484
2557
|
selectElement(elementId);
|
|
2485
2558
|
}
|
|
2486
2559
|
};
|
|
2487
|
-
return shouldRestrict && isVisible ? /* @__PURE__ */
|
|
2560
|
+
return shouldRestrict && isVisible ? /* @__PURE__ */ React40.createElement(
|
|
2488
2561
|
Infotip,
|
|
2489
2562
|
{
|
|
2490
2563
|
placement: "right",
|
|
2491
|
-
content: /* @__PURE__ */
|
|
2564
|
+
content: /* @__PURE__ */ React40.createElement(
|
|
2492
2565
|
InfoTipCard,
|
|
2493
2566
|
{
|
|
2494
2567
|
content: INFOTIP_CONTENT[reason],
|
|
2495
|
-
svgIcon: /* @__PURE__ */
|
|
2568
|
+
svgIcon: /* @__PURE__ */ React40.createElement(AlertTriangleIcon, null),
|
|
2496
2569
|
learnMoreButton,
|
|
2497
2570
|
ctaButton: {
|
|
2498
|
-
label:
|
|
2571
|
+
label: __10("Take me there", "elementor"),
|
|
2499
2572
|
onClick: handleTakeMeClick
|
|
2500
2573
|
}
|
|
2501
2574
|
}
|
|
2502
2575
|
)
|
|
2503
2576
|
},
|
|
2504
|
-
/* @__PURE__ */
|
|
2505
|
-
) : /* @__PURE__ */
|
|
2577
|
+
/* @__PURE__ */ React40.createElement(Box6, null, children)
|
|
2578
|
+
) : /* @__PURE__ */ React40.createElement(React40.Fragment, null, children);
|
|
2506
2579
|
};
|
|
2507
2580
|
var INFOTIP_CONTENT = {
|
|
2508
|
-
descendant: /* @__PURE__ */
|
|
2509
|
-
ancestor: /* @__PURE__ */
|
|
2581
|
+
descendant: /* @__PURE__ */ React40.createElement(React40.Fragment, null, __10("To add a link to this container,", "elementor"), /* @__PURE__ */ React40.createElement("br", null), __10("first remove the link from the elements inside of it.", "elementor")),
|
|
2582
|
+
ancestor: /* @__PURE__ */ React40.createElement(React40.Fragment, null, __10("To add a link to this element,", "elementor"), /* @__PURE__ */ React40.createElement("br", null), __10("first remove the link from its parent container.", "elementor"))
|
|
2510
2583
|
};
|
|
2511
2584
|
|
|
2512
2585
|
// src/controls/gap-control.tsx
|
|
2513
|
-
import * as
|
|
2586
|
+
import * as React41 from "react";
|
|
2514
2587
|
import { useRef as useRef8 } from "react";
|
|
2515
2588
|
import { layoutDirectionPropTypeUtil, sizePropTypeUtil as sizePropTypeUtil4 } from "@elementor/editor-props";
|
|
2516
2589
|
import { DetachIcon as DetachIcon2, LinkIcon as LinkIcon2 } from "@elementor/icons";
|
|
2517
|
-
import { Grid as
|
|
2518
|
-
import { __ as
|
|
2590
|
+
import { Grid as Grid9, Stack as Stack11, ToggleButton as ToggleButton4, Tooltip as Tooltip5 } from "@elementor/ui";
|
|
2591
|
+
import { __ as __11 } from "@wordpress/i18n";
|
|
2519
2592
|
var GapControl = createControl(({ label }) => {
|
|
2520
2593
|
const {
|
|
2521
2594
|
value: directionValue,
|
|
@@ -2539,10 +2612,10 @@ var GapControl = createControl(({ label }) => {
|
|
|
2539
2612
|
};
|
|
2540
2613
|
const tooltipLabel = label.toLowerCase();
|
|
2541
2614
|
const LinkedIcon = isLinked ? LinkIcon2 : DetachIcon2;
|
|
2542
|
-
const linkedLabel =
|
|
2543
|
-
const unlinkedLabel =
|
|
2615
|
+
const linkedLabel = __11("Link %s", "elementor").replace("%s", tooltipLabel);
|
|
2616
|
+
const unlinkedLabel = __11("Unlink %s", "elementor").replace("%s", tooltipLabel);
|
|
2544
2617
|
const disabled = sizeDisabled || directionDisabled;
|
|
2545
|
-
return /* @__PURE__ */
|
|
2618
|
+
return /* @__PURE__ */ React41.createElement(PropProvider, { propType, value: directionValue, setValue: setDirectionValue }, /* @__PURE__ */ React41.createElement(Stack11, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React41.createElement(ControlLabel, null, label), /* @__PURE__ */ React41.createElement(Tooltip5, { title: isLinked ? unlinkedLabel : linkedLabel, placement: "top" }, /* @__PURE__ */ React41.createElement(
|
|
2546
2619
|
ToggleButton4,
|
|
2547
2620
|
{
|
|
2548
2621
|
"aria-label": isLinked ? unlinkedLabel : linkedLabel,
|
|
@@ -2553,8 +2626,8 @@ var GapControl = createControl(({ label }) => {
|
|
|
2553
2626
|
onChange: onLinkToggle,
|
|
2554
2627
|
disabled
|
|
2555
2628
|
},
|
|
2556
|
-
/* @__PURE__ */
|
|
2557
|
-
))), /* @__PURE__ */
|
|
2629
|
+
/* @__PURE__ */ React41.createElement(LinkedIcon, { fontSize: "tiny" })
|
|
2630
|
+
))), /* @__PURE__ */ React41.createElement(Stack11, { direction: "row", gap: 2, flexWrap: "nowrap", ref: stackRef }, /* @__PURE__ */ React41.createElement(Grid9, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React41.createElement(Grid9, { item: true, xs: 12 }, /* @__PURE__ */ React41.createElement(ControlFormLabel, null, __11("Column", "elementor"))), /* @__PURE__ */ React41.createElement(Grid9, { item: true, xs: 12 }, /* @__PURE__ */ React41.createElement(Control4, { bind: "column", isLinked, anchorRef: stackRef }))), /* @__PURE__ */ React41.createElement(Grid9, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React41.createElement(Grid9, { item: true, xs: 12 }, /* @__PURE__ */ React41.createElement(ControlFormLabel, null, __11("Row", "elementor"))), /* @__PURE__ */ React41.createElement(Grid9, { item: true, xs: 12 }, /* @__PURE__ */ React41.createElement(Control4, { bind: "row", isLinked, anchorRef: stackRef })))));
|
|
2558
2631
|
});
|
|
2559
2632
|
var Control4 = ({
|
|
2560
2633
|
bind,
|
|
@@ -2562,21 +2635,21 @@ var Control4 = ({
|
|
|
2562
2635
|
anchorRef
|
|
2563
2636
|
}) => {
|
|
2564
2637
|
if (isLinked) {
|
|
2565
|
-
return /* @__PURE__ */
|
|
2638
|
+
return /* @__PURE__ */ React41.createElement(SizeControl, { anchorRef });
|
|
2566
2639
|
}
|
|
2567
|
-
return /* @__PURE__ */
|
|
2640
|
+
return /* @__PURE__ */ React41.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React41.createElement(SizeControl, { anchorRef }));
|
|
2568
2641
|
};
|
|
2569
2642
|
|
|
2570
2643
|
// src/controls/aspect-ratio-control.tsx
|
|
2571
|
-
import * as
|
|
2644
|
+
import * as React42 from "react";
|
|
2572
2645
|
import { useEffect as useEffect6, useState as useState8 } from "react";
|
|
2573
2646
|
import { stringPropTypeUtil as stringPropTypeUtil7 } from "@elementor/editor-props";
|
|
2574
2647
|
import { MenuListItem as MenuListItem4 } from "@elementor/editor-ui";
|
|
2575
2648
|
import { ArrowsMoveHorizontalIcon, ArrowsMoveVerticalIcon } from "@elementor/icons";
|
|
2576
|
-
import { Grid as
|
|
2577
|
-
import { __ as
|
|
2649
|
+
import { Grid as Grid10, Select as Select3, Stack as Stack12, TextField as TextField8 } from "@elementor/ui";
|
|
2650
|
+
import { __ as __12 } from "@wordpress/i18n";
|
|
2578
2651
|
var RATIO_OPTIONS = [
|
|
2579
|
-
{ label:
|
|
2652
|
+
{ label: __12("Auto", "elementor"), value: "auto" },
|
|
2580
2653
|
{ label: "1/1", value: "1/1" },
|
|
2581
2654
|
{ label: "4/3", value: "4/3" },
|
|
2582
2655
|
{ label: "3/4", value: "3/4" },
|
|
@@ -2635,7 +2708,7 @@ var AspectRatioControl = createControl(({ label }) => {
|
|
|
2635
2708
|
setAspectRatioValue(`${customWidth}/${newHeight}`);
|
|
2636
2709
|
}
|
|
2637
2710
|
};
|
|
2638
|
-
return /* @__PURE__ */
|
|
2711
|
+
return /* @__PURE__ */ React42.createElement(ControlActions, null, /* @__PURE__ */ React42.createElement(Stack12, { direction: "column", gap: 2 }, /* @__PURE__ */ React42.createElement(Grid10, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React42.createElement(Grid10, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(ControlLabel, null, label)), /* @__PURE__ */ React42.createElement(Grid10, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(
|
|
2639
2712
|
Select3,
|
|
2640
2713
|
{
|
|
2641
2714
|
size: "tiny",
|
|
@@ -2646,10 +2719,10 @@ var AspectRatioControl = createControl(({ label }) => {
|
|
|
2646
2719
|
onChange: handleSelectChange,
|
|
2647
2720
|
fullWidth: true
|
|
2648
2721
|
},
|
|
2649
|
-
[...RATIO_OPTIONS, { label:
|
|
2650
|
-
({ label: optionLabel, ...props }) => /* @__PURE__ */
|
|
2722
|
+
[...RATIO_OPTIONS, { label: __12("Custom", "elementor"), value: CUSTOM_RATIO }].map(
|
|
2723
|
+
({ label: optionLabel, ...props }) => /* @__PURE__ */ React42.createElement(MenuListItem4, { key: props.value, ...props, value: props.value ?? "" }, optionLabel)
|
|
2651
2724
|
)
|
|
2652
|
-
))), isCustom && /* @__PURE__ */
|
|
2725
|
+
))), isCustom && /* @__PURE__ */ React42.createElement(Grid10, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React42.createElement(Grid10, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(
|
|
2653
2726
|
TextField8,
|
|
2654
2727
|
{
|
|
2655
2728
|
size: "tiny",
|
|
@@ -2659,10 +2732,10 @@ var AspectRatioControl = createControl(({ label }) => {
|
|
|
2659
2732
|
value: customWidth,
|
|
2660
2733
|
onChange: handleCustomWidthChange,
|
|
2661
2734
|
InputProps: {
|
|
2662
|
-
startAdornment: /* @__PURE__ */
|
|
2735
|
+
startAdornment: /* @__PURE__ */ React42.createElement(ArrowsMoveHorizontalIcon, { fontSize: "tiny" })
|
|
2663
2736
|
}
|
|
2664
2737
|
}
|
|
2665
|
-
)), /* @__PURE__ */
|
|
2738
|
+
)), /* @__PURE__ */ React42.createElement(Grid10, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(
|
|
2666
2739
|
TextField8,
|
|
2667
2740
|
{
|
|
2668
2741
|
size: "tiny",
|
|
@@ -2672,23 +2745,23 @@ var AspectRatioControl = createControl(({ label }) => {
|
|
|
2672
2745
|
value: customHeight,
|
|
2673
2746
|
onChange: handleCustomHeightChange,
|
|
2674
2747
|
InputProps: {
|
|
2675
|
-
startAdornment: /* @__PURE__ */
|
|
2748
|
+
startAdornment: /* @__PURE__ */ React42.createElement(ArrowsMoveVerticalIcon, { fontSize: "tiny" })
|
|
2676
2749
|
}
|
|
2677
2750
|
}
|
|
2678
2751
|
)))));
|
|
2679
2752
|
});
|
|
2680
2753
|
|
|
2681
2754
|
// src/controls/svg-media-control.tsx
|
|
2682
|
-
import * as
|
|
2755
|
+
import * as React44 from "react";
|
|
2683
2756
|
import { useState as useState10 } from "react";
|
|
2684
2757
|
import { imageSrcPropTypeUtil as imageSrcPropTypeUtil2 } from "@elementor/editor-props";
|
|
2685
2758
|
import { UploadIcon as UploadIcon2 } from "@elementor/icons";
|
|
2686
2759
|
import { Button as Button4, Card as Card2, CardMedia as CardMedia2, CardOverlay as CardOverlay2, CircularProgress as CircularProgress3, Stack as Stack13, styled as styled4 } from "@elementor/ui";
|
|
2687
2760
|
import { useWpMediaAttachment as useWpMediaAttachment2, useWpMediaFrame as useWpMediaFrame2 } from "@elementor/wp-media";
|
|
2688
|
-
import { __ as
|
|
2761
|
+
import { __ as __14 } from "@wordpress/i18n";
|
|
2689
2762
|
|
|
2690
2763
|
// src/components/enable-unfiltered-modal.tsx
|
|
2691
|
-
import * as
|
|
2764
|
+
import * as React43 from "react";
|
|
2692
2765
|
import { useState as useState9 } from "react";
|
|
2693
2766
|
import { useCurrentUserCapabilities } from "@elementor/editor-current-user";
|
|
2694
2767
|
import {
|
|
@@ -2702,19 +2775,19 @@ import {
|
|
|
2702
2775
|
DialogTitle,
|
|
2703
2776
|
Divider as Divider3
|
|
2704
2777
|
} from "@elementor/ui";
|
|
2705
|
-
import { __ as
|
|
2706
|
-
var ADMIN_TITLE_TEXT =
|
|
2707
|
-
var ADMIN_CONTENT_TEXT =
|
|
2778
|
+
import { __ as __13 } from "@wordpress/i18n";
|
|
2779
|
+
var ADMIN_TITLE_TEXT = __13("Enable Unfiltered Uploads", "elementor");
|
|
2780
|
+
var ADMIN_CONTENT_TEXT = __13(
|
|
2708
2781
|
"Before you enable unfiltered files upload, note that such files include a security risk. Elementor does run a process to remove possible malicious code, but there is still risk involved when using such files.",
|
|
2709
2782
|
"elementor"
|
|
2710
2783
|
);
|
|
2711
|
-
var NON_ADMIN_TITLE_TEXT =
|
|
2712
|
-
var NON_ADMIN_CONTENT_TEXT =
|
|
2784
|
+
var NON_ADMIN_TITLE_TEXT = __13("Sorry, you can't upload that file yet", "elementor");
|
|
2785
|
+
var NON_ADMIN_CONTENT_TEXT = __13(
|
|
2713
2786
|
"This is because this file type may pose a security risk. To upload them anyway, ask the site administrator to enable unfiltered file uploads.",
|
|
2714
2787
|
"elementor"
|
|
2715
2788
|
);
|
|
2716
|
-
var ADMIN_FAILED_CONTENT_TEXT_PT1 =
|
|
2717
|
-
var ADMIN_FAILED_CONTENT_TEXT_PT2 =
|
|
2789
|
+
var ADMIN_FAILED_CONTENT_TEXT_PT1 = __13("Failed to enable unfiltered files upload.", "elementor");
|
|
2790
|
+
var ADMIN_FAILED_CONTENT_TEXT_PT2 = __13(
|
|
2718
2791
|
"You can try again, if the problem persists, please contact support.",
|
|
2719
2792
|
"elementor"
|
|
2720
2793
|
);
|
|
@@ -2741,9 +2814,9 @@ var EnableUnfilteredModal = (props) => {
|
|
|
2741
2814
|
}
|
|
2742
2815
|
};
|
|
2743
2816
|
const dialogProps = { ...props, isPending, handleEnable, isError, onClose };
|
|
2744
|
-
return canManageOptions ? /* @__PURE__ */
|
|
2817
|
+
return canManageOptions ? /* @__PURE__ */ React43.createElement(AdminDialog, { ...dialogProps }) : /* @__PURE__ */ React43.createElement(NonAdminDialog, { ...dialogProps });
|
|
2745
2818
|
};
|
|
2746
|
-
var AdminDialog = ({ open, onClose, handleEnable, isPending, isError }) => /* @__PURE__ */
|
|
2819
|
+
var AdminDialog = ({ open, onClose, handleEnable, isPending, isError }) => /* @__PURE__ */ React43.createElement(Dialog, { open, maxWidth: "sm", onClose: () => onClose(false) }, /* @__PURE__ */ React43.createElement(DialogHeader, { logo: false }, /* @__PURE__ */ React43.createElement(DialogTitle, null, ADMIN_TITLE_TEXT)), /* @__PURE__ */ React43.createElement(Divider3, null), /* @__PURE__ */ React43.createElement(DialogContent, null, /* @__PURE__ */ React43.createElement(DialogContentText, null, isError ? /* @__PURE__ */ React43.createElement(React43.Fragment, null, ADMIN_FAILED_CONTENT_TEXT_PT1, " ", /* @__PURE__ */ React43.createElement("br", null), " ", ADMIN_FAILED_CONTENT_TEXT_PT2) : ADMIN_CONTENT_TEXT)), /* @__PURE__ */ React43.createElement(DialogActions, null, /* @__PURE__ */ React43.createElement(Button3, { size: "medium", color: "secondary", onClick: () => onClose(false) }, __13("Cancel", "elementor")), /* @__PURE__ */ React43.createElement(
|
|
2747
2820
|
Button3,
|
|
2748
2821
|
{
|
|
2749
2822
|
size: "medium",
|
|
@@ -2752,9 +2825,9 @@ var AdminDialog = ({ open, onClose, handleEnable, isPending, isError }) => /* @_
|
|
|
2752
2825
|
color: "primary",
|
|
2753
2826
|
disabled: isPending
|
|
2754
2827
|
},
|
|
2755
|
-
isPending ? /* @__PURE__ */
|
|
2828
|
+
isPending ? /* @__PURE__ */ React43.createElement(CircularProgress2, { size: 24 }) : __13("Enable", "elementor")
|
|
2756
2829
|
)));
|
|
2757
|
-
var NonAdminDialog = ({ open, onClose }) => /* @__PURE__ */
|
|
2830
|
+
var NonAdminDialog = ({ open, onClose }) => /* @__PURE__ */ React43.createElement(Dialog, { open, maxWidth: "sm", onClose: () => onClose(false) }, /* @__PURE__ */ React43.createElement(DialogHeader, { logo: false }, /* @__PURE__ */ React43.createElement(DialogTitle, null, NON_ADMIN_TITLE_TEXT)), /* @__PURE__ */ React43.createElement(Divider3, null), /* @__PURE__ */ React43.createElement(DialogContent, null, /* @__PURE__ */ React43.createElement(DialogContentText, null, NON_ADMIN_CONTENT_TEXT)), /* @__PURE__ */ React43.createElement(DialogActions, null, /* @__PURE__ */ React43.createElement(Button3, { size: "medium", onClick: () => onClose(false), variant: "contained", color: "primary" }, __13("Got it", "elementor"))));
|
|
2758
2831
|
|
|
2759
2832
|
// src/controls/svg-media-control.tsx
|
|
2760
2833
|
var TILE_SIZE = 8;
|
|
@@ -2815,15 +2888,15 @@ var SvgMediaControl = createControl(() => {
|
|
|
2815
2888
|
open(openOptions);
|
|
2816
2889
|
}
|
|
2817
2890
|
};
|
|
2818
|
-
return /* @__PURE__ */
|
|
2891
|
+
return /* @__PURE__ */ React44.createElement(Stack13, { gap: 1 }, /* @__PURE__ */ React44.createElement(EnableUnfilteredModal, { open: unfilteredModalOpenState, onClose: onCloseUnfilteredModal }), /* @__PURE__ */ React44.createElement(ControlActions, null, /* @__PURE__ */ React44.createElement(StyledCard, { variant: "outlined" }, /* @__PURE__ */ React44.createElement(StyledCardMediaContainer, null, isFetching ? /* @__PURE__ */ React44.createElement(CircularProgress3, { role: "progressbar" }) : /* @__PURE__ */ React44.createElement(
|
|
2819
2892
|
CardMedia2,
|
|
2820
2893
|
{
|
|
2821
2894
|
component: "img",
|
|
2822
2895
|
image: src,
|
|
2823
|
-
alt:
|
|
2896
|
+
alt: __14("Preview SVG", "elementor"),
|
|
2824
2897
|
sx: { maxHeight: "140px", width: "50px" }
|
|
2825
2898
|
}
|
|
2826
|
-
)), /* @__PURE__ */
|
|
2899
|
+
)), /* @__PURE__ */ React44.createElement(
|
|
2827
2900
|
CardOverlay2,
|
|
2828
2901
|
{
|
|
2829
2902
|
sx: {
|
|
@@ -2832,7 +2905,7 @@ var SvgMediaControl = createControl(() => {
|
|
|
2832
2905
|
}
|
|
2833
2906
|
}
|
|
2834
2907
|
},
|
|
2835
|
-
/* @__PURE__ */
|
|
2908
|
+
/* @__PURE__ */ React44.createElement(Stack13, { gap: 1 }, /* @__PURE__ */ React44.createElement(
|
|
2836
2909
|
Button4,
|
|
2837
2910
|
{
|
|
2838
2911
|
size: "tiny",
|
|
@@ -2840,46 +2913,46 @@ var SvgMediaControl = createControl(() => {
|
|
|
2840
2913
|
variant: "outlined",
|
|
2841
2914
|
onClick: () => handleClick(MODE_BROWSE)
|
|
2842
2915
|
},
|
|
2843
|
-
|
|
2844
|
-
), /* @__PURE__ */
|
|
2916
|
+
__14("Select SVG", "elementor")
|
|
2917
|
+
), /* @__PURE__ */ React44.createElement(
|
|
2845
2918
|
Button4,
|
|
2846
2919
|
{
|
|
2847
2920
|
size: "tiny",
|
|
2848
2921
|
variant: "text",
|
|
2849
2922
|
color: "inherit",
|
|
2850
|
-
startIcon: /* @__PURE__ */
|
|
2923
|
+
startIcon: /* @__PURE__ */ React44.createElement(UploadIcon2, null),
|
|
2851
2924
|
onClick: () => handleClick(MODE_UPLOAD)
|
|
2852
2925
|
},
|
|
2853
|
-
|
|
2926
|
+
__14("Upload", "elementor")
|
|
2854
2927
|
))
|
|
2855
2928
|
))));
|
|
2856
2929
|
});
|
|
2857
2930
|
|
|
2858
2931
|
// src/controls/background-control/background-control.tsx
|
|
2859
|
-
import * as
|
|
2932
|
+
import * as React51 from "react";
|
|
2860
2933
|
import { backgroundPropTypeUtil } from "@elementor/editor-props";
|
|
2861
|
-
import { isExperimentActive as
|
|
2934
|
+
import { isExperimentActive as isExperimentActive5 } from "@elementor/editor-v1-adapters";
|
|
2862
2935
|
import { Grid as Grid15 } from "@elementor/ui";
|
|
2863
|
-
import { __ as
|
|
2936
|
+
import { __ as __20 } from "@wordpress/i18n";
|
|
2864
2937
|
|
|
2865
2938
|
// src/controls/background-control/background-overlay/background-overlay-repeater-control.tsx
|
|
2866
|
-
import * as
|
|
2939
|
+
import * as React50 from "react";
|
|
2867
2940
|
import {
|
|
2868
2941
|
backgroundColorOverlayPropTypeUtil as backgroundColorOverlayPropTypeUtil2,
|
|
2869
2942
|
backgroundImageOverlayPropTypeUtil as backgroundImageOverlayPropTypeUtil2,
|
|
2870
2943
|
backgroundOverlayPropTypeUtil,
|
|
2871
2944
|
colorPropTypeUtil as colorPropTypeUtil3
|
|
2872
2945
|
} from "@elementor/editor-props";
|
|
2873
|
-
import { Box as Box7, CardMedia as CardMedia3,
|
|
2946
|
+
import { Box as Box7, CardMedia as CardMedia3, styled as styled5, Tab, TabPanel, Tabs, UnstableColorIndicator as UnstableColorIndicator2 } from "@elementor/ui";
|
|
2874
2947
|
import { useWpMediaAttachment as useWpMediaAttachment3 } from "@elementor/wp-media";
|
|
2875
|
-
import { __ as
|
|
2948
|
+
import { __ as __19 } from "@wordpress/i18n";
|
|
2876
2949
|
|
|
2877
2950
|
// src/env.ts
|
|
2878
2951
|
import { parseEnv } from "@elementor/env";
|
|
2879
2952
|
var { env } = parseEnv("@elementor/editor-controls");
|
|
2880
2953
|
|
|
2881
2954
|
// src/controls/background-control/background-gradient-color-control.tsx
|
|
2882
|
-
import * as
|
|
2955
|
+
import * as React45 from "react";
|
|
2883
2956
|
import {
|
|
2884
2957
|
backgroundGradientOverlayPropTypeUtil,
|
|
2885
2958
|
colorPropTypeUtil as colorPropTypeUtil2,
|
|
@@ -2926,7 +2999,7 @@ var BackgroundGradientColorControl = createControl(() => {
|
|
|
2926
2999
|
positions: positions?.value.split(" ")
|
|
2927
3000
|
};
|
|
2928
3001
|
};
|
|
2929
|
-
return /* @__PURE__ */
|
|
3002
|
+
return /* @__PURE__ */ React45.createElement(ControlActions, null, /* @__PURE__ */ React45.createElement(
|
|
2930
3003
|
UnstableGradientBox,
|
|
2931
3004
|
{
|
|
2932
3005
|
sx: { width: "auto", padding: 1.5 },
|
|
@@ -2951,47 +3024,47 @@ var initialBackgroundGradientOverlay = backgroundGradientOverlayPropTypeUtil.cre
|
|
|
2951
3024
|
});
|
|
2952
3025
|
|
|
2953
3026
|
// src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-attachment.tsx
|
|
2954
|
-
import * as
|
|
3027
|
+
import * as React46 from "react";
|
|
2955
3028
|
import { PinIcon, PinnedOffIcon } from "@elementor/icons";
|
|
2956
|
-
import { Grid as
|
|
2957
|
-
import { __ as
|
|
3029
|
+
import { Grid as Grid11 } from "@elementor/ui";
|
|
3030
|
+
import { __ as __15 } from "@wordpress/i18n";
|
|
2958
3031
|
var attachmentControlOptions = [
|
|
2959
3032
|
{
|
|
2960
3033
|
value: "fixed",
|
|
2961
|
-
label:
|
|
2962
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3034
|
+
label: __15("Fixed", "elementor"),
|
|
3035
|
+
renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(PinIcon, { fontSize: size }),
|
|
2963
3036
|
showTooltip: true
|
|
2964
3037
|
},
|
|
2965
3038
|
{
|
|
2966
3039
|
value: "scroll",
|
|
2967
|
-
label:
|
|
2968
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3040
|
+
label: __15("Scroll", "elementor"),
|
|
3041
|
+
renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(PinnedOffIcon, { fontSize: size }),
|
|
2969
3042
|
showTooltip: true
|
|
2970
3043
|
}
|
|
2971
3044
|
];
|
|
2972
3045
|
var BackgroundImageOverlayAttachment = () => {
|
|
2973
|
-
return /* @__PURE__ */
|
|
3046
|
+
return /* @__PURE__ */ React46.createElement(PopoverGridContainer, null, /* @__PURE__ */ React46.createElement(Grid11, { item: true, xs: 6 }, /* @__PURE__ */ React46.createElement(ControlFormLabel, null, __15("Attachment", "elementor"))), /* @__PURE__ */ React46.createElement(Grid11, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end", overflow: "hidden" } }, /* @__PURE__ */ React46.createElement(ToggleControl, { options: attachmentControlOptions })));
|
|
2974
3047
|
};
|
|
2975
3048
|
|
|
2976
3049
|
// src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-position.tsx
|
|
2977
|
-
import * as
|
|
3050
|
+
import * as React47 from "react";
|
|
2978
3051
|
import { useRef as useRef9 } from "react";
|
|
2979
3052
|
import { backgroundImagePositionOffsetPropTypeUtil, stringPropTypeUtil as stringPropTypeUtil9 } from "@elementor/editor-props";
|
|
2980
3053
|
import { MenuListItem as MenuListItem5 } from "@elementor/editor-ui";
|
|
2981
3054
|
import { LetterXIcon, LetterYIcon } from "@elementor/icons";
|
|
2982
|
-
import { Grid as
|
|
2983
|
-
import { __ as
|
|
3055
|
+
import { Grid as Grid12, Select as Select4 } from "@elementor/ui";
|
|
3056
|
+
import { __ as __16 } from "@wordpress/i18n";
|
|
2984
3057
|
var backgroundPositionOptions = [
|
|
2985
|
-
{ label:
|
|
2986
|
-
{ label:
|
|
2987
|
-
{ label:
|
|
2988
|
-
{ label:
|
|
2989
|
-
{ label:
|
|
2990
|
-
{ label:
|
|
2991
|
-
{ label:
|
|
2992
|
-
{ label:
|
|
2993
|
-
{ label:
|
|
2994
|
-
{ label:
|
|
3058
|
+
{ label: __16("Center center", "elementor"), value: "center center" },
|
|
3059
|
+
{ label: __16("Center left", "elementor"), value: "center left" },
|
|
3060
|
+
{ label: __16("Center right", "elementor"), value: "center right" },
|
|
3061
|
+
{ label: __16("Top center", "elementor"), value: "top center" },
|
|
3062
|
+
{ label: __16("Top left", "elementor"), value: "top left" },
|
|
3063
|
+
{ label: __16("Top right", "elementor"), value: "top right" },
|
|
3064
|
+
{ label: __16("Bottom center", "elementor"), value: "bottom center" },
|
|
3065
|
+
{ label: __16("Bottom left", "elementor"), value: "bottom left" },
|
|
3066
|
+
{ label: __16("Bottom right", "elementor"), value: "bottom right" },
|
|
3067
|
+
{ label: __16("Custom", "elementor"), value: "custom" }
|
|
2995
3068
|
];
|
|
2996
3069
|
var BackgroundImageOverlayPosition = () => {
|
|
2997
3070
|
const backgroundImageOffsetContext = useBoundProp(backgroundImagePositionOffsetPropTypeUtil);
|
|
@@ -3006,7 +3079,7 @@ var BackgroundImageOverlayPosition = () => {
|
|
|
3006
3079
|
stringPropContext.setValue(value);
|
|
3007
3080
|
}
|
|
3008
3081
|
};
|
|
3009
|
-
return /* @__PURE__ */
|
|
3082
|
+
return /* @__PURE__ */ React47.createElement(Grid12, { container: true, spacing: 1.5 }, /* @__PURE__ */ React47.createElement(Grid12, { item: true, xs: 12 }, /* @__PURE__ */ React47.createElement(PopoverGridContainer, null, /* @__PURE__ */ React47.createElement(Grid12, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(ControlFormLabel, null, __16("Position", "elementor"))), /* @__PURE__ */ React47.createElement(Grid12, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end", overflow: "hidden" } }, /* @__PURE__ */ React47.createElement(
|
|
3010
3083
|
Select4,
|
|
3011
3084
|
{
|
|
3012
3085
|
fullWidth: true,
|
|
@@ -3015,59 +3088,59 @@ var BackgroundImageOverlayPosition = () => {
|
|
|
3015
3088
|
disabled: stringPropContext.disabled,
|
|
3016
3089
|
value: (backgroundImageOffsetContext.value ? "custom" : stringPropContext.value) ?? ""
|
|
3017
3090
|
},
|
|
3018
|
-
backgroundPositionOptions.map(({ label, value }) => /* @__PURE__ */
|
|
3019
|
-
)))), isCustom ? /* @__PURE__ */
|
|
3091
|
+
backgroundPositionOptions.map(({ label, value }) => /* @__PURE__ */ React47.createElement(MenuListItem5, { key: value, value: value ?? "" }, label))
|
|
3092
|
+
)))), isCustom ? /* @__PURE__ */ React47.createElement(PropProvider, { ...backgroundImageOffsetContext }, /* @__PURE__ */ React47.createElement(Grid12, { item: true, xs: 12 }, /* @__PURE__ */ React47.createElement(Grid12, { container: true, spacing: 1.5, ref: rowRef }, /* @__PURE__ */ React47.createElement(Grid12, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(PropKeyProvider, { bind: "x" }, /* @__PURE__ */ React47.createElement(
|
|
3020
3093
|
SizeControl,
|
|
3021
3094
|
{
|
|
3022
|
-
startIcon: /* @__PURE__ */
|
|
3095
|
+
startIcon: /* @__PURE__ */ React47.createElement(LetterXIcon, { fontSize: "tiny" }),
|
|
3023
3096
|
anchorRef: rowRef
|
|
3024
3097
|
}
|
|
3025
|
-
))), /* @__PURE__ */
|
|
3098
|
+
))), /* @__PURE__ */ React47.createElement(Grid12, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(PropKeyProvider, { bind: "y" }, /* @__PURE__ */ React47.createElement(
|
|
3026
3099
|
SizeControl,
|
|
3027
3100
|
{
|
|
3028
|
-
startIcon: /* @__PURE__ */
|
|
3101
|
+
startIcon: /* @__PURE__ */ React47.createElement(LetterYIcon, { fontSize: "tiny" }),
|
|
3029
3102
|
anchorRef: rowRef
|
|
3030
3103
|
}
|
|
3031
3104
|
)))))) : null);
|
|
3032
3105
|
};
|
|
3033
3106
|
|
|
3034
3107
|
// src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-repeat.tsx
|
|
3035
|
-
import * as
|
|
3108
|
+
import * as React48 from "react";
|
|
3036
3109
|
import { DotsHorizontalIcon, DotsVerticalIcon, GridDotsIcon, XIcon as XIcon3 } from "@elementor/icons";
|
|
3037
|
-
import { Grid as
|
|
3038
|
-
import { __ as
|
|
3110
|
+
import { Grid as Grid13 } from "@elementor/ui";
|
|
3111
|
+
import { __ as __17 } from "@wordpress/i18n";
|
|
3039
3112
|
var repeatControlOptions = [
|
|
3040
3113
|
{
|
|
3041
3114
|
value: "repeat",
|
|
3042
|
-
label:
|
|
3043
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3115
|
+
label: __17("Repeat", "elementor"),
|
|
3116
|
+
renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(GridDotsIcon, { fontSize: size }),
|
|
3044
3117
|
showTooltip: true
|
|
3045
3118
|
},
|
|
3046
3119
|
{
|
|
3047
3120
|
value: "repeat-x",
|
|
3048
|
-
label:
|
|
3049
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3121
|
+
label: __17("Repeat-x", "elementor"),
|
|
3122
|
+
renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(DotsHorizontalIcon, { fontSize: size }),
|
|
3050
3123
|
showTooltip: true
|
|
3051
3124
|
},
|
|
3052
3125
|
{
|
|
3053
3126
|
value: "repeat-y",
|
|
3054
|
-
label:
|
|
3055
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3127
|
+
label: __17("Repeat-y", "elementor"),
|
|
3128
|
+
renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(DotsVerticalIcon, { fontSize: size }),
|
|
3056
3129
|
showTooltip: true
|
|
3057
3130
|
},
|
|
3058
3131
|
{
|
|
3059
3132
|
value: "no-repeat",
|
|
3060
|
-
label:
|
|
3061
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3133
|
+
label: __17("No-repeat", "elementor"),
|
|
3134
|
+
renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(XIcon3, { fontSize: size }),
|
|
3062
3135
|
showTooltip: true
|
|
3063
3136
|
}
|
|
3064
3137
|
];
|
|
3065
3138
|
var BackgroundImageOverlayRepeat = () => {
|
|
3066
|
-
return /* @__PURE__ */
|
|
3139
|
+
return /* @__PURE__ */ React48.createElement(PopoverGridContainer, null, /* @__PURE__ */ React48.createElement(Grid13, { item: true, xs: 6 }, /* @__PURE__ */ React48.createElement(ControlFormLabel, null, __17("Repeat", "elementor"))), /* @__PURE__ */ React48.createElement(Grid13, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React48.createElement(ToggleControl, { options: repeatControlOptions })));
|
|
3067
3140
|
};
|
|
3068
3141
|
|
|
3069
3142
|
// src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-size.tsx
|
|
3070
|
-
import * as
|
|
3143
|
+
import * as React49 from "react";
|
|
3071
3144
|
import { useRef as useRef10 } from "react";
|
|
3072
3145
|
import { backgroundImageSizeScalePropTypeUtil, stringPropTypeUtil as stringPropTypeUtil10 } from "@elementor/editor-props";
|
|
3073
3146
|
import {
|
|
@@ -3078,31 +3151,31 @@ import {
|
|
|
3078
3151
|
LetterAIcon,
|
|
3079
3152
|
PencilIcon as PencilIcon2
|
|
3080
3153
|
} from "@elementor/icons";
|
|
3081
|
-
import { Grid as
|
|
3082
|
-
import { __ as
|
|
3154
|
+
import { Grid as Grid14 } from "@elementor/ui";
|
|
3155
|
+
import { __ as __18 } from "@wordpress/i18n";
|
|
3083
3156
|
var sizeControlOptions = [
|
|
3084
3157
|
{
|
|
3085
3158
|
value: "auto",
|
|
3086
|
-
label:
|
|
3087
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3159
|
+
label: __18("Auto", "elementor"),
|
|
3160
|
+
renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(LetterAIcon, { fontSize: size }),
|
|
3088
3161
|
showTooltip: true
|
|
3089
3162
|
},
|
|
3090
3163
|
{
|
|
3091
3164
|
value: "cover",
|
|
3092
|
-
label:
|
|
3093
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3165
|
+
label: __18("Cover", "elementor"),
|
|
3166
|
+
renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(ArrowsMaximizeIcon, { fontSize: size }),
|
|
3094
3167
|
showTooltip: true
|
|
3095
3168
|
},
|
|
3096
3169
|
{
|
|
3097
3170
|
value: "contain",
|
|
3098
|
-
label:
|
|
3099
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3171
|
+
label: __18("Contain", "elementor"),
|
|
3172
|
+
renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(ArrowBarBothIcon, { fontSize: size }),
|
|
3100
3173
|
showTooltip: true
|
|
3101
3174
|
},
|
|
3102
3175
|
{
|
|
3103
3176
|
value: "custom",
|
|
3104
|
-
label:
|
|
3105
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3177
|
+
label: __18("Custom", "elementor"),
|
|
3178
|
+
renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(PencilIcon2, { fontSize: size }),
|
|
3106
3179
|
showTooltip: true
|
|
3107
3180
|
}
|
|
3108
3181
|
];
|
|
@@ -3118,7 +3191,7 @@ var BackgroundImageOverlaySize = () => {
|
|
|
3118
3191
|
stringPropContext.setValue(size);
|
|
3119
3192
|
}
|
|
3120
3193
|
};
|
|
3121
|
-
return /* @__PURE__ */
|
|
3194
|
+
return /* @__PURE__ */ React49.createElement(Grid14, { container: true, spacing: 1.5 }, /* @__PURE__ */ React49.createElement(Grid14, { item: true, xs: 12 }, /* @__PURE__ */ React49.createElement(PopoverGridContainer, null, /* @__PURE__ */ React49.createElement(Grid14, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(ControlFormLabel, null, __18("Size", "elementor"))), /* @__PURE__ */ React49.createElement(Grid14, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React49.createElement(
|
|
3122
3195
|
ControlToggleButtonGroup,
|
|
3123
3196
|
{
|
|
3124
3197
|
exclusive: true,
|
|
@@ -3127,17 +3200,17 @@ var BackgroundImageOverlaySize = () => {
|
|
|
3127
3200
|
disabled: stringPropContext.disabled,
|
|
3128
3201
|
value: backgroundImageScaleContext.value ? "custom" : stringPropContext.value
|
|
3129
3202
|
}
|
|
3130
|
-
)))), isCustom ? /* @__PURE__ */
|
|
3203
|
+
)))), isCustom ? /* @__PURE__ */ React49.createElement(PropProvider, { ...backgroundImageScaleContext }, /* @__PURE__ */ React49.createElement(Grid14, { item: true, xs: 12, ref: rowRef }, /* @__PURE__ */ React49.createElement(PopoverGridContainer, null, /* @__PURE__ */ React49.createElement(Grid14, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(PropKeyProvider, { bind: "width" }, /* @__PURE__ */ React49.createElement(
|
|
3131
3204
|
SizeControl,
|
|
3132
3205
|
{
|
|
3133
|
-
startIcon: /* @__PURE__ */
|
|
3206
|
+
startIcon: /* @__PURE__ */ React49.createElement(ArrowsMoveHorizontalIcon2, { fontSize: "tiny" }),
|
|
3134
3207
|
extendedOptions: ["auto"],
|
|
3135
3208
|
anchorRef: rowRef
|
|
3136
3209
|
}
|
|
3137
|
-
))), /* @__PURE__ */
|
|
3210
|
+
))), /* @__PURE__ */ React49.createElement(Grid14, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(PropKeyProvider, { bind: "height" }, /* @__PURE__ */ React49.createElement(
|
|
3138
3211
|
SizeControl,
|
|
3139
3212
|
{
|
|
3140
|
-
startIcon: /* @__PURE__ */
|
|
3213
|
+
startIcon: /* @__PURE__ */ React49.createElement(ArrowsMoveVerticalIcon2, { fontSize: "tiny" }),
|
|
3141
3214
|
extendedOptions: ["auto"],
|
|
3142
3215
|
anchorRef: rowRef
|
|
3143
3216
|
}
|
|
@@ -3238,21 +3311,21 @@ var getInitialBackgroundOverlay = () => ({
|
|
|
3238
3311
|
}
|
|
3239
3312
|
});
|
|
3240
3313
|
var backgroundResolutionOptions = [
|
|
3241
|
-
{ label:
|
|
3242
|
-
{ label:
|
|
3243
|
-
{ label:
|
|
3244
|
-
{ label:
|
|
3314
|
+
{ label: __19("Thumbnail - 150 x 150", "elementor"), value: "thumbnail" },
|
|
3315
|
+
{ label: __19("Medium - 300 x 300", "elementor"), value: "medium" },
|
|
3316
|
+
{ label: __19("Large 1024 x 1024", "elementor"), value: "large" },
|
|
3317
|
+
{ label: __19("Full", "elementor"), value: "full" }
|
|
3245
3318
|
];
|
|
3246
3319
|
var BackgroundOverlayRepeaterControl = createControl(() => {
|
|
3247
3320
|
const { propType, value: overlayValues, setValue, disabled } = useBoundProp(backgroundOverlayPropTypeUtil);
|
|
3248
|
-
return /* @__PURE__ */
|
|
3321
|
+
return /* @__PURE__ */ React50.createElement(PropProvider, { propType, value: overlayValues, setValue, isDisabled: () => disabled }, /* @__PURE__ */ React50.createElement(
|
|
3249
3322
|
Repeater,
|
|
3250
3323
|
{
|
|
3251
3324
|
openOnAdd: true,
|
|
3252
3325
|
disabled,
|
|
3253
3326
|
values: overlayValues ?? [],
|
|
3254
3327
|
setValues: setValue,
|
|
3255
|
-
label:
|
|
3328
|
+
label: __19("Overlay", "elementor"),
|
|
3256
3329
|
itemSettings: {
|
|
3257
3330
|
Icon: ItemIcon3,
|
|
3258
3331
|
Label: ItemLabel3,
|
|
@@ -3263,7 +3336,7 @@ var BackgroundOverlayRepeaterControl = createControl(() => {
|
|
|
3263
3336
|
));
|
|
3264
3337
|
});
|
|
3265
3338
|
var ItemContent3 = ({ anchorEl = null, bind }) => {
|
|
3266
|
-
return /* @__PURE__ */
|
|
3339
|
+
return /* @__PURE__ */ React50.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React50.createElement(Content3, { anchorEl }));
|
|
3267
3340
|
};
|
|
3268
3341
|
var Content3 = ({ anchorEl }) => {
|
|
3269
3342
|
const { getTabsProps, getTabProps, getTabPanelProps } = useBackgroundTabsHistory({
|
|
@@ -3271,27 +3344,27 @@ var Content3 = ({ anchorEl }) => {
|
|
|
3271
3344
|
color: initialBackgroundColorOverlay.value,
|
|
3272
3345
|
gradient: initialBackgroundGradientOverlay.value
|
|
3273
3346
|
});
|
|
3274
|
-
return /* @__PURE__ */
|
|
3347
|
+
return /* @__PURE__ */ React50.createElement(Box7, { sx: { width: "100%" } }, /* @__PURE__ */ React50.createElement(Box7, { sx: { borderBottom: 1, borderColor: "divider" } }, /* @__PURE__ */ React50.createElement(
|
|
3275
3348
|
Tabs,
|
|
3276
3349
|
{
|
|
3277
3350
|
size: "small",
|
|
3278
3351
|
variant: "fullWidth",
|
|
3279
3352
|
...getTabsProps(),
|
|
3280
|
-
"aria-label":
|
|
3353
|
+
"aria-label": __19("Background Overlay", "elementor")
|
|
3281
3354
|
},
|
|
3282
|
-
/* @__PURE__ */
|
|
3283
|
-
/* @__PURE__ */
|
|
3284
|
-
/* @__PURE__ */
|
|
3285
|
-
)), /* @__PURE__ */
|
|
3355
|
+
/* @__PURE__ */ React50.createElement(Tab, { label: __19("Image", "elementor"), ...getTabProps("image") }),
|
|
3356
|
+
/* @__PURE__ */ React50.createElement(Tab, { label: __19("Gradient", "elementor"), ...getTabProps("gradient") }),
|
|
3357
|
+
/* @__PURE__ */ React50.createElement(Tab, { label: __19("Color", "elementor"), ...getTabProps("color") })
|
|
3358
|
+
)), /* @__PURE__ */ React50.createElement(TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps("image") }, /* @__PURE__ */ React50.createElement(PopoverContent, null, /* @__PURE__ */ React50.createElement(ImageOverlayContent, null))), /* @__PURE__ */ React50.createElement(TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps("gradient") }, /* @__PURE__ */ React50.createElement(BackgroundGradientColorControl, null)), /* @__PURE__ */ React50.createElement(TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps("color") }, /* @__PURE__ */ React50.createElement(PopoverContent, null, /* @__PURE__ */ React50.createElement(ColorOverlayContent, { anchorEl }))));
|
|
3286
3359
|
};
|
|
3287
3360
|
var ItemIcon3 = ({ value }) => {
|
|
3288
3361
|
switch (value.$$type) {
|
|
3289
3362
|
case "background-image-overlay":
|
|
3290
|
-
return /* @__PURE__ */
|
|
3363
|
+
return /* @__PURE__ */ React50.createElement(ItemIconImage, { value });
|
|
3291
3364
|
case "background-color-overlay":
|
|
3292
|
-
return /* @__PURE__ */
|
|
3365
|
+
return /* @__PURE__ */ React50.createElement(ItemIconColor, { value });
|
|
3293
3366
|
case "background-gradient-overlay":
|
|
3294
|
-
return /* @__PURE__ */
|
|
3367
|
+
return /* @__PURE__ */ React50.createElement(ItemIconGradient, { value });
|
|
3295
3368
|
default:
|
|
3296
3369
|
return null;
|
|
3297
3370
|
}
|
|
@@ -3304,11 +3377,11 @@ var extractColorFrom = (prop) => {
|
|
|
3304
3377
|
};
|
|
3305
3378
|
var ItemIconColor = ({ value: prop }) => {
|
|
3306
3379
|
const color = extractColorFrom(prop);
|
|
3307
|
-
return /* @__PURE__ */
|
|
3380
|
+
return /* @__PURE__ */ React50.createElement(StyledUnstableColorIndicator, { size: "inherit", component: "span", value: color });
|
|
3308
3381
|
};
|
|
3309
3382
|
var ItemIconImage = ({ value }) => {
|
|
3310
3383
|
const { imageUrl } = useImage(value);
|
|
3311
|
-
return /* @__PURE__ */
|
|
3384
|
+
return /* @__PURE__ */ React50.createElement(
|
|
3312
3385
|
CardMedia3,
|
|
3313
3386
|
{
|
|
3314
3387
|
image: imageUrl,
|
|
@@ -3323,41 +3396,41 @@ var ItemIconImage = ({ value }) => {
|
|
|
3323
3396
|
};
|
|
3324
3397
|
var ItemIconGradient = ({ value }) => {
|
|
3325
3398
|
const gradient = getGradientValue(value);
|
|
3326
|
-
return /* @__PURE__ */
|
|
3399
|
+
return /* @__PURE__ */ React50.createElement(StyledUnstableColorIndicator, { size: "inherit", component: "span", value: gradient });
|
|
3327
3400
|
};
|
|
3328
3401
|
var ItemLabel3 = ({ value }) => {
|
|
3329
3402
|
switch (value.$$type) {
|
|
3330
3403
|
case "background-image-overlay":
|
|
3331
|
-
return /* @__PURE__ */
|
|
3404
|
+
return /* @__PURE__ */ React50.createElement(ItemLabelImage, { value });
|
|
3332
3405
|
case "background-color-overlay":
|
|
3333
|
-
return /* @__PURE__ */
|
|
3406
|
+
return /* @__PURE__ */ React50.createElement(ItemLabelColor, { value });
|
|
3334
3407
|
case "background-gradient-overlay":
|
|
3335
|
-
return /* @__PURE__ */
|
|
3408
|
+
return /* @__PURE__ */ React50.createElement(ItemLabelGradient, { value });
|
|
3336
3409
|
default:
|
|
3337
3410
|
return null;
|
|
3338
3411
|
}
|
|
3339
3412
|
};
|
|
3340
3413
|
var ItemLabelColor = ({ value: prop }) => {
|
|
3341
3414
|
const color = extractColorFrom(prop);
|
|
3342
|
-
return /* @__PURE__ */
|
|
3415
|
+
return /* @__PURE__ */ React50.createElement("span", null, color);
|
|
3343
3416
|
};
|
|
3344
3417
|
var ItemLabelImage = ({ value }) => {
|
|
3345
3418
|
const { imageTitle } = useImage(value);
|
|
3346
|
-
return /* @__PURE__ */
|
|
3419
|
+
return /* @__PURE__ */ React50.createElement("span", null, imageTitle);
|
|
3347
3420
|
};
|
|
3348
3421
|
var ItemLabelGradient = ({ value }) => {
|
|
3349
3422
|
if (value.value.type.value === "linear") {
|
|
3350
|
-
return /* @__PURE__ */
|
|
3423
|
+
return /* @__PURE__ */ React50.createElement("span", null, __19("Linear Gradient", "elementor"));
|
|
3351
3424
|
}
|
|
3352
|
-
return /* @__PURE__ */
|
|
3425
|
+
return /* @__PURE__ */ React50.createElement("span", null, __19("Radial Gradient", "elementor"));
|
|
3353
3426
|
};
|
|
3354
3427
|
var ColorOverlayContent = ({ anchorEl }) => {
|
|
3355
3428
|
const propContext = useBoundProp(backgroundColorOverlayPropTypeUtil2);
|
|
3356
|
-
return /* @__PURE__ */
|
|
3429
|
+
return /* @__PURE__ */ React50.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React50.createElement(PropKeyProvider, { bind: "color" }, /* @__PURE__ */ React50.createElement(ColorControl, { anchorEl })));
|
|
3357
3430
|
};
|
|
3358
3431
|
var ImageOverlayContent = () => {
|
|
3359
3432
|
const propContext = useBoundProp(backgroundImageOverlayPropTypeUtil2);
|
|
3360
|
-
return /* @__PURE__ */
|
|
3433
|
+
return /* @__PURE__ */ React50.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React50.createElement(PropKeyProvider, { bind: "image" }, /* @__PURE__ */ React50.createElement(ImageControl, { sizes: backgroundResolutionOptions })), /* @__PURE__ */ React50.createElement(PropKeyProvider, { bind: "position" }, /* @__PURE__ */ React50.createElement(BackgroundImageOverlayPosition, null)), /* @__PURE__ */ React50.createElement(PropKeyProvider, { bind: "repeat" }, /* @__PURE__ */ React50.createElement(BackgroundImageOverlayRepeat, null)), /* @__PURE__ */ React50.createElement(PropKeyProvider, { bind: "size" }, /* @__PURE__ */ React50.createElement(BackgroundImageOverlaySize, null)), /* @__PURE__ */ React50.createElement(PropKeyProvider, { bind: "attachment" }, /* @__PURE__ */ React50.createElement(BackgroundImageOverlayAttachment, null)));
|
|
3361
3434
|
};
|
|
3362
3435
|
var StyledUnstableColorIndicator = styled5(UnstableColorIndicator2)(({ theme }) => ({
|
|
3363
3436
|
borderRadius: `${theme.shape.borderRadius / 2}px`
|
|
@@ -3395,21 +3468,9 @@ var getGradientValue = (value) => {
|
|
|
3395
3468
|
// src/controls/background-control/background-control.tsx
|
|
3396
3469
|
var BackgroundControl = createControl(() => {
|
|
3397
3470
|
const propContext = useBoundProp(backgroundPropTypeUtil);
|
|
3398
|
-
const isUsingNestedProps =
|
|
3399
|
-
const colorLabel =
|
|
3400
|
-
return /* @__PURE__ */
|
|
3401
|
-
});
|
|
3402
|
-
|
|
3403
|
-
// src/controls/switch-control.tsx
|
|
3404
|
-
import * as React51 from "react";
|
|
3405
|
-
import { booleanPropTypeUtil as booleanPropTypeUtil2 } from "@elementor/editor-props";
|
|
3406
|
-
import { Switch as Switch2 } from "@elementor/ui";
|
|
3407
|
-
var SwitchControl2 = createControl(() => {
|
|
3408
|
-
const { value, setValue, disabled } = useBoundProp(booleanPropTypeUtil2);
|
|
3409
|
-
const handleChange = (event) => {
|
|
3410
|
-
setValue(event.target.checked);
|
|
3411
|
-
};
|
|
3412
|
-
return /* @__PURE__ */ React51.createElement("div", { style: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React51.createElement(Switch2, { checked: !!value, onChange: handleChange, size: "small", disabled }));
|
|
3471
|
+
const isUsingNestedProps = isExperimentActive5("e_v_3_30");
|
|
3472
|
+
const colorLabel = __20("Color", "elementor");
|
|
3473
|
+
return /* @__PURE__ */ React51.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React51.createElement(PropKeyProvider, { bind: "background-overlay" }, /* @__PURE__ */ React51.createElement(BackgroundOverlayRepeaterControl, null)), /* @__PURE__ */ React51.createElement(PropKeyProvider, { bind: "color" }, /* @__PURE__ */ React51.createElement(Grid15, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React51.createElement(Grid15, { item: true, xs: 6 }, isUsingNestedProps ? /* @__PURE__ */ React51.createElement(ControlLabel, null, colorLabel) : /* @__PURE__ */ React51.createElement(ControlFormLabel, null, colorLabel)), /* @__PURE__ */ React51.createElement(Grid15, { item: true, xs: 6 }, /* @__PURE__ */ React51.createElement(ColorControl, null)))));
|
|
3413
3474
|
});
|
|
3414
3475
|
|
|
3415
3476
|
// src/controls/repeatable-control.tsx
|
|
@@ -3448,16 +3509,16 @@ var RepeatableControl = createControl(
|
|
|
3448
3509
|
() => createArrayPropUtils(childPropTypeUtil.key, childPropTypeUtil.schema),
|
|
3449
3510
|
[childPropTypeUtil.key, childPropTypeUtil.schema]
|
|
3450
3511
|
);
|
|
3512
|
+
const contextValue = useMemo4(
|
|
3513
|
+
() => ({
|
|
3514
|
+
...childControlConfig,
|
|
3515
|
+
placeholder: placeholder || "",
|
|
3516
|
+
patternLabel: patternLabel || ""
|
|
3517
|
+
}),
|
|
3518
|
+
[childControlConfig, placeholder, patternLabel]
|
|
3519
|
+
);
|
|
3451
3520
|
const { propType, value, setValue } = useBoundProp(childArrayPropTypeUtil);
|
|
3452
|
-
|
|
3453
|
-
const pattern = patternLabel || "";
|
|
3454
|
-
const finalLabel = interpolate(pattern, itemValue.value);
|
|
3455
|
-
if (finalLabel) {
|
|
3456
|
-
return /* @__PURE__ */ React52.createElement("span", null, finalLabel);
|
|
3457
|
-
}
|
|
3458
|
-
return /* @__PURE__ */ React52.createElement(Box8, { component: "span", color: "text.tertiary" }, placeholder);
|
|
3459
|
-
};
|
|
3460
|
-
return /* @__PURE__ */ React52.createElement(PropProvider, { propType, value, setValue }, /* @__PURE__ */ React52.createElement(RepeatableControlContext.Provider, { value: childControlConfig }, /* @__PURE__ */ React52.createElement(
|
|
3521
|
+
return /* @__PURE__ */ React52.createElement(PropProvider, { propType, value, setValue }, /* @__PURE__ */ React52.createElement(RepeatableControlContext.Provider, { value: contextValue }, /* @__PURE__ */ React52.createElement(
|
|
3461
3522
|
Repeater,
|
|
3462
3523
|
{
|
|
3463
3524
|
openOnAdd: true,
|
|
@@ -3486,18 +3547,61 @@ var Content4 = () => {
|
|
|
3486
3547
|
return /* @__PURE__ */ React52.createElement(PopoverContent, { p: 1.5 }, /* @__PURE__ */ React52.createElement(PopoverGridContainer, null, /* @__PURE__ */ React52.createElement(ChildControl, { ...props })));
|
|
3487
3548
|
};
|
|
3488
3549
|
var interpolate = (template, data) => {
|
|
3489
|
-
if (
|
|
3490
|
-
return
|
|
3550
|
+
if (!data) {
|
|
3551
|
+
return template;
|
|
3491
3552
|
}
|
|
3492
3553
|
return new Function(...Object.keys(data), `return \`${template}\`;`)(...Object.values(data));
|
|
3493
3554
|
};
|
|
3555
|
+
var getNestedValue = (obj, path) => {
|
|
3556
|
+
return path.split(".").reduce((current, key) => current?.[key], obj);
|
|
3557
|
+
};
|
|
3558
|
+
var isEmptyValue = (val) => {
|
|
3559
|
+
if (typeof val === "string") {
|
|
3560
|
+
return val.trim() === "";
|
|
3561
|
+
}
|
|
3562
|
+
if (Number.isNaN(val)) {
|
|
3563
|
+
return true;
|
|
3564
|
+
}
|
|
3565
|
+
if (Array.isArray(val)) {
|
|
3566
|
+
return val.length === 0;
|
|
3567
|
+
}
|
|
3568
|
+
if (typeof val === "object" && val !== null && Object.keys(val).length === 0) {
|
|
3569
|
+
return true;
|
|
3570
|
+
}
|
|
3571
|
+
return false;
|
|
3572
|
+
};
|
|
3573
|
+
var shouldShowPlaceholder = (pattern, data) => {
|
|
3574
|
+
const propertyPaths = getAllProperties(pattern);
|
|
3575
|
+
const values = propertyPaths.map((path) => getNestedValue(data, path));
|
|
3576
|
+
if (values.length === 0) {
|
|
3577
|
+
return false;
|
|
3578
|
+
}
|
|
3579
|
+
if (values.some((value) => value === null || value === void 0)) {
|
|
3580
|
+
return true;
|
|
3581
|
+
}
|
|
3582
|
+
if (values.every(isEmptyValue)) {
|
|
3583
|
+
return true;
|
|
3584
|
+
}
|
|
3585
|
+
return false;
|
|
3586
|
+
};
|
|
3587
|
+
var ItemLabel4 = ({ value }) => {
|
|
3588
|
+
const { placeholder, patternLabel } = useRepeatableControlContext();
|
|
3589
|
+
const label = shouldShowPlaceholder(patternLabel, value) ? placeholder : interpolate(patternLabel, value);
|
|
3590
|
+
return /* @__PURE__ */ React52.createElement(Box8, { component: "span", color: "text.tertiary" }, label);
|
|
3591
|
+
};
|
|
3592
|
+
var getAllProperties = (pattern) => {
|
|
3593
|
+
const properties = pattern.match(/\$\{([^}]+)\}/g)?.map(
|
|
3594
|
+
(match) => match.slice(2, -1)
|
|
3595
|
+
) || [];
|
|
3596
|
+
return properties;
|
|
3597
|
+
};
|
|
3494
3598
|
|
|
3495
3599
|
// src/controls/key-value-control.tsx
|
|
3496
3600
|
import * as React53 from "react";
|
|
3497
3601
|
import { useMemo as useMemo5, useState as useState11 } from "react";
|
|
3498
3602
|
import { keyValuePropTypeUtil } from "@elementor/editor-props";
|
|
3499
3603
|
import { FormHelperText, FormLabel as FormLabel3, Grid as Grid16, TextField as TextField9 } from "@elementor/ui";
|
|
3500
|
-
import { __ as
|
|
3604
|
+
import { __ as __21 } from "@wordpress/i18n";
|
|
3501
3605
|
var KeyValueControl = createControl((props = {}) => {
|
|
3502
3606
|
const { value, setValue } = useBoundProp(keyValuePropTypeUtil);
|
|
3503
3607
|
const [keyError, setKeyError] = useState11(null);
|
|
@@ -3506,13 +3610,13 @@ var KeyValueControl = createControl((props = {}) => {
|
|
|
3506
3610
|
key: value?.key?.value || "",
|
|
3507
3611
|
value: value?.value?.value || ""
|
|
3508
3612
|
});
|
|
3509
|
-
const keyLabel = props.keyName ||
|
|
3510
|
-
const valueLabel = props.valueName ||
|
|
3613
|
+
const keyLabel = props.keyName || __21("Key", "elementor");
|
|
3614
|
+
const valueLabel = props.valueName || __21("Value", "elementor");
|
|
3511
3615
|
const [keyRegex, valueRegex, errMsg] = useMemo5(
|
|
3512
3616
|
() => [
|
|
3513
3617
|
props.regexKey ? new RegExp(props.regexKey) : void 0,
|
|
3514
3618
|
props.regexValue ? new RegExp(props.regexValue) : void 0,
|
|
3515
|
-
props.validationErrorMessage ||
|
|
3619
|
+
props.validationErrorMessage || __21("Invalid Format", "elementor")
|
|
3516
3620
|
],
|
|
3517
3621
|
[props.regexKey, props.regexValue, props.validationErrorMessage]
|
|
3518
3622
|
);
|
|
@@ -3584,30 +3688,30 @@ import * as React54 from "react";
|
|
|
3584
3688
|
import { useMemo as useMemo6 } from "react";
|
|
3585
3689
|
import { positionPropTypeUtil, stringPropTypeUtil as stringPropTypeUtil11 } from "@elementor/editor-props";
|
|
3586
3690
|
import { MenuListItem as MenuListItem6 } from "@elementor/editor-ui";
|
|
3587
|
-
import { isExperimentActive as
|
|
3691
|
+
import { isExperimentActive as isExperimentActive6 } from "@elementor/editor-v1-adapters";
|
|
3588
3692
|
import { LetterXIcon as LetterXIcon2, LetterYIcon as LetterYIcon2 } from "@elementor/icons";
|
|
3589
3693
|
import { Grid as Grid17, Select as Select5 } from "@elementor/ui";
|
|
3590
|
-
import { __ as
|
|
3694
|
+
import { __ as __22 } from "@wordpress/i18n";
|
|
3591
3695
|
var positionOptions = [
|
|
3592
|
-
{ label:
|
|
3593
|
-
{ label:
|
|
3594
|
-
{ label:
|
|
3595
|
-
{ label:
|
|
3596
|
-
{ label:
|
|
3597
|
-
{ label:
|
|
3598
|
-
{ label:
|
|
3599
|
-
{ label:
|
|
3600
|
-
{ label:
|
|
3696
|
+
{ label: __22("Center center", "elementor"), value: "center center" },
|
|
3697
|
+
{ label: __22("Center left", "elementor"), value: "center left" },
|
|
3698
|
+
{ label: __22("Center right", "elementor"), value: "center right" },
|
|
3699
|
+
{ label: __22("Top center", "elementor"), value: "top center" },
|
|
3700
|
+
{ label: __22("Top left", "elementor"), value: "top left" },
|
|
3701
|
+
{ label: __22("Top right", "elementor"), value: "top right" },
|
|
3702
|
+
{ label: __22("Bottom center", "elementor"), value: "bottom center" },
|
|
3703
|
+
{ label: __22("Bottom left", "elementor"), value: "bottom left" },
|
|
3704
|
+
{ label: __22("Bottom right", "elementor"), value: "bottom right" }
|
|
3601
3705
|
];
|
|
3602
3706
|
var PositionControl = () => {
|
|
3603
3707
|
const positionContext = useBoundProp(positionPropTypeUtil);
|
|
3604
3708
|
const stringPropContext = useBoundProp(stringPropTypeUtil11);
|
|
3605
|
-
const isVersion331Active =
|
|
3709
|
+
const isVersion331Active = isExperimentActive6("e_v_3_31");
|
|
3606
3710
|
const isCustom = !!positionContext.value && isVersion331Active;
|
|
3607
3711
|
const availablePositionOptions = useMemo6(() => {
|
|
3608
3712
|
const options = [...positionOptions];
|
|
3609
3713
|
if (isVersion331Active) {
|
|
3610
|
-
options.push({ label:
|
|
3714
|
+
options.push({ label: __22("Custom", "elementor"), value: "custom" });
|
|
3611
3715
|
}
|
|
3612
3716
|
return options;
|
|
3613
3717
|
}, [isVersion331Active]);
|
|
@@ -3619,7 +3723,7 @@ var PositionControl = () => {
|
|
|
3619
3723
|
stringPropContext.setValue(value);
|
|
3620
3724
|
}
|
|
3621
3725
|
};
|
|
3622
|
-
return /* @__PURE__ */ React54.createElement(Grid17, { container: true, spacing: 1.5 }, /* @__PURE__ */ React54.createElement(Grid17, { item: true, xs: 12 }, /* @__PURE__ */ React54.createElement(Grid17, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React54.createElement(Grid17, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(ControlFormLabel, null,
|
|
3726
|
+
return /* @__PURE__ */ React54.createElement(Grid17, { container: true, spacing: 1.5 }, /* @__PURE__ */ React54.createElement(Grid17, { item: true, xs: 12 }, /* @__PURE__ */ React54.createElement(Grid17, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React54.createElement(Grid17, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(ControlFormLabel, null, __22("Object position", "elementor"))), /* @__PURE__ */ React54.createElement(Grid17, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React54.createElement(
|
|
3623
3727
|
Select5,
|
|
3624
3728
|
{
|
|
3625
3729
|
size: "tiny",
|
|
@@ -3631,6 +3735,130 @@ var PositionControl = () => {
|
|
|
3631
3735
|
availablePositionOptions.map(({ label, value }) => /* @__PURE__ */ React54.createElement(MenuListItem6, { key: value, value: value ?? "" }, label))
|
|
3632
3736
|
)))), isCustom && /* @__PURE__ */ React54.createElement(PropProvider, { ...positionContext }, /* @__PURE__ */ React54.createElement(Grid17, { item: true, xs: 12 }, /* @__PURE__ */ React54.createElement(Grid17, { container: true, spacing: 1.5 }, /* @__PURE__ */ React54.createElement(Grid17, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(PropKeyProvider, { bind: "x" }, /* @__PURE__ */ React54.createElement(SizeControl, { startIcon: /* @__PURE__ */ React54.createElement(LetterXIcon2, { fontSize: "tiny" }) }))), /* @__PURE__ */ React54.createElement(Grid17, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(PropKeyProvider, { bind: "y" }, /* @__PURE__ */ React54.createElement(SizeControl, { startIcon: /* @__PURE__ */ React54.createElement(LetterYIcon2, { fontSize: "tiny" }) })))))));
|
|
3633
3737
|
};
|
|
3738
|
+
|
|
3739
|
+
// src/controls/transform-control/transform-repeater-control.tsx
|
|
3740
|
+
import * as React60 from "react";
|
|
3741
|
+
import { transformPropTypeUtil } from "@elementor/editor-props";
|
|
3742
|
+
import { __ as __26 } from "@wordpress/i18n";
|
|
3743
|
+
|
|
3744
|
+
// src/controls/transform-control/transform-content.tsx
|
|
3745
|
+
import * as React57 from "react";
|
|
3746
|
+
import { Box as Box9, Tab as Tab2, TabPanel as TabPanel2, Tabs as Tabs2, useTabs as useTabs2 } from "@elementor/ui";
|
|
3747
|
+
import { __ as __24 } from "@wordpress/i18n";
|
|
3748
|
+
|
|
3749
|
+
// src/controls/transform-control/functions/move.tsx
|
|
3750
|
+
import * as React56 from "react";
|
|
3751
|
+
import { useRef as useRef12 } from "react";
|
|
3752
|
+
import { moveTransformPropTypeUtil } from "@elementor/editor-props";
|
|
3753
|
+
import { ArrowDownLeftIcon, ArrowDownSmallIcon, ArrowRightIcon } from "@elementor/icons";
|
|
3754
|
+
import { Grid as Grid19 } from "@elementor/ui";
|
|
3755
|
+
import { __ as __23 } from "@wordpress/i18n";
|
|
3756
|
+
|
|
3757
|
+
// src/controls/transform-control/functions/axis-row.tsx
|
|
3758
|
+
import * as React55 from "react";
|
|
3759
|
+
import { Grid as Grid18 } from "@elementor/ui";
|
|
3760
|
+
var AxisRow = ({ label, bindValue, startIcon, anchorRef }) => {
|
|
3761
|
+
return /* @__PURE__ */ React55.createElement(Grid18, { item: true, xs: 12 }, /* @__PURE__ */ React55.createElement(PopoverGridContainer, { ref: anchorRef }, /* @__PURE__ */ React55.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(ControlLabel, null, label)), /* @__PURE__ */ React55.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(PropKeyProvider, { bind: bindValue }, /* @__PURE__ */ React55.createElement(SizeControl, { anchorRef, startIcon })))));
|
|
3762
|
+
};
|
|
3763
|
+
|
|
3764
|
+
// src/controls/transform-control/functions/move.tsx
|
|
3765
|
+
var moveAxisControls = [
|
|
3766
|
+
{
|
|
3767
|
+
label: __23("Move X", "elementor"),
|
|
3768
|
+
bindValue: "x",
|
|
3769
|
+
startIcon: /* @__PURE__ */ React56.createElement(ArrowRightIcon, { fontSize: "tiny" })
|
|
3770
|
+
},
|
|
3771
|
+
{
|
|
3772
|
+
label: __23("Move Y", "elementor"),
|
|
3773
|
+
bindValue: "y",
|
|
3774
|
+
startIcon: /* @__PURE__ */ React56.createElement(ArrowDownSmallIcon, { fontSize: "tiny" })
|
|
3775
|
+
},
|
|
3776
|
+
{
|
|
3777
|
+
label: __23("Move Z", "elementor"),
|
|
3778
|
+
bindValue: "z",
|
|
3779
|
+
startIcon: /* @__PURE__ */ React56.createElement(ArrowDownLeftIcon, { fontSize: "tiny" })
|
|
3780
|
+
}
|
|
3781
|
+
];
|
|
3782
|
+
var Move = () => {
|
|
3783
|
+
const context = useBoundProp(moveTransformPropTypeUtil);
|
|
3784
|
+
const rowRef = useRef12(null);
|
|
3785
|
+
return /* @__PURE__ */ React56.createElement(Grid19, { container: true, spacing: 1.5 }, /* @__PURE__ */ React56.createElement(PropProvider, { ...context }, /* @__PURE__ */ React56.createElement(PropKeyProvider, { bind: "transform-move" }, moveAxisControls.map((control) => /* @__PURE__ */ React56.createElement(AxisRow, { key: control.bindValue, ...control, anchorRef: rowRef })))));
|
|
3786
|
+
};
|
|
3787
|
+
|
|
3788
|
+
// src/controls/transform-control/transform-content.tsx
|
|
3789
|
+
var TransformContent = ({ bind }) => {
|
|
3790
|
+
const { getTabsProps, getTabProps, getTabPanelProps } = useTabs2("transform-move");
|
|
3791
|
+
return /* @__PURE__ */ React57.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React57.createElement(PopoverContent, null, /* @__PURE__ */ React57.createElement(Box9, { sx: { width: "100%" } }, /* @__PURE__ */ React57.createElement(Box9, { sx: { borderBottom: 1, borderColor: "divider" } }, /* @__PURE__ */ React57.createElement(
|
|
3792
|
+
Tabs2,
|
|
3793
|
+
{
|
|
3794
|
+
size: "small",
|
|
3795
|
+
variant: "fullWidth",
|
|
3796
|
+
...getTabsProps(),
|
|
3797
|
+
"aria-label": __24("Transform", "elementor")
|
|
3798
|
+
},
|
|
3799
|
+
/* @__PURE__ */ React57.createElement(Tab2, { label: __24("Move", "elementor"), ...getTabProps("transform-move") })
|
|
3800
|
+
)), /* @__PURE__ */ React57.createElement(TabPanel2, { sx: { p: 1.5 }, ...getTabPanelProps("transform-move") }, /* @__PURE__ */ React57.createElement(Move, null)))));
|
|
3801
|
+
};
|
|
3802
|
+
|
|
3803
|
+
// src/controls/transform-control/transform-icon.tsx
|
|
3804
|
+
import * as React58 from "react";
|
|
3805
|
+
import { ArrowsMaximizeIcon as ArrowsMaximizeIcon2 } from "@elementor/icons";
|
|
3806
|
+
var TransformIcon = ({ value }) => {
|
|
3807
|
+
switch (value.$$type) {
|
|
3808
|
+
case "transform-move":
|
|
3809
|
+
return /* @__PURE__ */ React58.createElement(ArrowsMaximizeIcon2, { fontSize: "tiny" });
|
|
3810
|
+
default:
|
|
3811
|
+
return null;
|
|
3812
|
+
}
|
|
3813
|
+
};
|
|
3814
|
+
|
|
3815
|
+
// src/controls/transform-control/transform-label.tsx
|
|
3816
|
+
import * as React59 from "react";
|
|
3817
|
+
import { Box as Box10 } from "@elementor/ui";
|
|
3818
|
+
import { __ as __25 } from "@wordpress/i18n";
|
|
3819
|
+
var transformMoveValue = (value) => Object.values(value).map((axis) => `${axis?.value.size}${axis?.value.unit}`).join(", ");
|
|
3820
|
+
var TransformLabel = (props) => {
|
|
3821
|
+
const { $$type, value } = props.value;
|
|
3822
|
+
switch ($$type) {
|
|
3823
|
+
case "transform-move":
|
|
3824
|
+
return /* @__PURE__ */ React59.createElement(Label2, { label: __25("Move", "elementor"), value: transformMoveValue(value) });
|
|
3825
|
+
default:
|
|
3826
|
+
return "";
|
|
3827
|
+
}
|
|
3828
|
+
};
|
|
3829
|
+
var Label2 = ({ label, value }) => {
|
|
3830
|
+
return /* @__PURE__ */ React59.createElement(Box10, { component: "span" }, label, ": ", value);
|
|
3831
|
+
};
|
|
3832
|
+
|
|
3833
|
+
// src/controls/transform-control/transform-repeater-control.tsx
|
|
3834
|
+
var initialTransformValue = {
|
|
3835
|
+
$$type: "transform-move",
|
|
3836
|
+
value: {
|
|
3837
|
+
x: { $$type: "size", value: { size: 0, unit: "px" } },
|
|
3838
|
+
y: { $$type: "size", value: { size: 0, unit: "px" } },
|
|
3839
|
+
z: { $$type: "size", value: { size: 0, unit: "px" } }
|
|
3840
|
+
}
|
|
3841
|
+
};
|
|
3842
|
+
var TransformRepeaterControl = createControl(() => {
|
|
3843
|
+
const { propType, value: transformValues, setValue, disabled } = useBoundProp(transformPropTypeUtil);
|
|
3844
|
+
return /* @__PURE__ */ React60.createElement(PropProvider, { propType, value: transformValues, setValue }, /* @__PURE__ */ React60.createElement(
|
|
3845
|
+
Repeater,
|
|
3846
|
+
{
|
|
3847
|
+
openOnAdd: true,
|
|
3848
|
+
disabled,
|
|
3849
|
+
values: transformValues ?? [],
|
|
3850
|
+
setValues: setValue,
|
|
3851
|
+
label: __26("Transform", "elementor"),
|
|
3852
|
+
showDuplicate: false,
|
|
3853
|
+
itemSettings: {
|
|
3854
|
+
Icon: TransformIcon,
|
|
3855
|
+
Label: TransformLabel,
|
|
3856
|
+
Content: TransformContent,
|
|
3857
|
+
initialValues: initialTransformValue
|
|
3858
|
+
}
|
|
3859
|
+
}
|
|
3860
|
+
));
|
|
3861
|
+
});
|
|
3634
3862
|
export {
|
|
3635
3863
|
AspectRatioControl,
|
|
3636
3864
|
BackgroundControl,
|
|
@@ -3661,10 +3889,11 @@ export {
|
|
|
3661
3889
|
SizeControl,
|
|
3662
3890
|
StrokeControl,
|
|
3663
3891
|
SvgMediaControl,
|
|
3664
|
-
|
|
3892
|
+
SwitchControl,
|
|
3665
3893
|
TextAreaControl,
|
|
3666
3894
|
TextControl,
|
|
3667
3895
|
ToggleControl,
|
|
3896
|
+
TransformRepeaterControl,
|
|
3668
3897
|
UrlControl,
|
|
3669
3898
|
createControlReplacementsRegistry,
|
|
3670
3899
|
injectIntoRepeaterItemIcon,
|