@elementor/editor-controls 0.30.1 → 0.32.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/dist/index.mjs CHANGED
@@ -433,6 +433,7 @@ var TextAreaControl = createControl(({ placeholder }) => {
433
433
 
434
434
  // src/controls/size-control.tsx
435
435
  import * as React14 from "react";
436
+ import { useRef } from "react";
436
437
  import { sizePropTypeUtil, stringPropTypeUtil as stringPropTypeUtil4 } from "@elementor/editor-props";
437
438
  import { InputAdornment as InputAdornment2 } from "@elementor/ui";
438
439
 
@@ -449,6 +450,7 @@ var TextFieldInnerSelection = forwardRef(
449
450
  onChange,
450
451
  onBlur,
451
452
  onKeyDown,
453
+ onKeyUp,
452
454
  endAdornment,
453
455
  startAdornment
454
456
  }, ref) => {
@@ -462,6 +464,7 @@ var TextFieldInnerSelection = forwardRef(
462
464
  value,
463
465
  onChange,
464
466
  onKeyDown,
467
+ onKeyUp,
465
468
  onBlur,
466
469
  placeholder,
467
470
  InputProps: {
@@ -605,6 +608,21 @@ var SizeInput = ({
605
608
  size,
606
609
  unit
607
610
  }) => {
611
+ const unitInputBufferRef = useRef("");
612
+ const handleKeyUp = (event) => {
613
+ const { key } = event;
614
+ if (!/^[a-zA-Z%]$/.test(key)) {
615
+ return;
616
+ }
617
+ event.preventDefault();
618
+ const newChar = key.toLowerCase();
619
+ const updatedBuffer = (unitInputBufferRef.current + newChar).slice(-3);
620
+ unitInputBufferRef.current = updatedBuffer;
621
+ const matchedUnit = units2.find((u) => u.includes(updatedBuffer)) || units2.find((u) => u.startsWith(newChar)) || units2.find((u) => u.includes(newChar));
622
+ if (matchedUnit) {
623
+ handleUnitChange(matchedUnit);
624
+ }
625
+ };
608
626
  return /* @__PURE__ */ React14.createElement(ControlActions, null, /* @__PURE__ */ React14.createElement(
609
627
  TextFieldInnerSelection,
610
628
  {
@@ -621,12 +639,16 @@ var SizeInput = ({
621
639
  type: "number",
622
640
  value: Number.isNaN(size) ? "" : size,
623
641
  onChange: handleSizeChange,
624
- onBlur,
642
+ onBlur: (event) => {
643
+ unitInputBufferRef.current = "";
644
+ onBlur?.(event);
645
+ },
625
646
  onKeyDown: (event) => {
626
647
  if (RESTRICTED_INPUT_KEYS.includes(event.key)) {
627
648
  event.preventDefault();
628
649
  }
629
- }
650
+ },
651
+ onKeyUp: handleKeyUp
630
652
  }
631
653
  ));
632
654
  };
@@ -646,13 +668,38 @@ var SectionContent = ({ gap = 2, sx, children }) => /* @__PURE__ */ React15.crea
646
668
  import * as React16 from "react";
647
669
  import { colorPropTypeUtil } from "@elementor/editor-props";
648
670
  import { UnstableColorField } from "@elementor/ui";
649
- var ColorControl = createControl(({ propTypeUtil = colorPropTypeUtil, ...props }) => {
650
- const { value, setValue } = useBoundProp(propTypeUtil);
651
- const handleChange = (selectedColor) => {
652
- setValue(selectedColor || null);
653
- };
654
- return /* @__PURE__ */ React16.createElement(ControlActions, null, /* @__PURE__ */ React16.createElement(UnstableColorField, { size: "tiny", ...props, value: value ?? "", onChange: handleChange, fullWidth: true }));
655
- });
671
+ var ColorControl = createControl(
672
+ ({ propTypeUtil = colorPropTypeUtil, anchorEl, slotProps = {}, ...props }) => {
673
+ const { value, setValue } = useBoundProp(propTypeUtil);
674
+ const handleChange = (selectedColor) => {
675
+ setValue(selectedColor || null);
676
+ };
677
+ return /* @__PURE__ */ React16.createElement(ControlActions, null, /* @__PURE__ */ React16.createElement(
678
+ UnstableColorField,
679
+ {
680
+ size: "tiny",
681
+ fullWidth: true,
682
+ value: value ?? "",
683
+ onChange: handleChange,
684
+ ...props,
685
+ slotProps: {
686
+ ...slotProps,
687
+ colorPicker: {
688
+ anchorEl,
689
+ anchorOrigin: {
690
+ vertical: "top",
691
+ horizontal: "right"
692
+ },
693
+ transformOrigin: {
694
+ vertical: "top",
695
+ horizontal: -10
696
+ }
697
+ }
698
+ }
699
+ }
700
+ ));
701
+ }
702
+ );
656
703
 
657
704
  // src/controls/stroke-control.tsx
658
705
  var units = ["px", "em", "rem"];
@@ -1013,24 +1060,7 @@ var ItemContent = ({ anchorEl, bind }) => {
1013
1060
  };
1014
1061
  var Content = ({ anchorEl }) => {
1015
1062
  const { propType, value, setValue } = useBoundProp(shadowPropTypeUtil);
1016
- return /* @__PURE__ */ React24.createElement(PropProvider, { propType, value, setValue }, /* @__PURE__ */ React24.createElement(PopoverContent, { p: 1.5 }, /* @__PURE__ */ React24.createElement(PopoverGridContainer, null, /* @__PURE__ */ React24.createElement(Control2, { bind: "color", label: __5("Color", "elementor") }, /* @__PURE__ */ React24.createElement(
1017
- ColorControl,
1018
- {
1019
- slotProps: {
1020
- colorPicker: {
1021
- anchorEl,
1022
- anchorOrigin: {
1023
- vertical: "top",
1024
- horizontal: "right"
1025
- },
1026
- transformOrigin: {
1027
- vertical: "top",
1028
- horizontal: -10
1029
- }
1030
- }
1031
- }
1032
- }
1033
- )), /* @__PURE__ */ React24.createElement(Control2, { bind: "position", label: __5("Position", "elementor"), sx: { overflow: "hidden" } }, /* @__PURE__ */ React24.createElement(
1063
+ return /* @__PURE__ */ React24.createElement(PropProvider, { propType, value, setValue }, /* @__PURE__ */ React24.createElement(PopoverContent, { p: 1.5 }, /* @__PURE__ */ React24.createElement(PopoverGridContainer, null, /* @__PURE__ */ React24.createElement(Control2, { bind: "color", label: __5("Color", "elementor") }, /* @__PURE__ */ React24.createElement(ColorControl, { anchorEl })), /* @__PURE__ */ React24.createElement(Control2, { bind: "position", label: __5("Position", "elementor"), sx: { overflow: "hidden" } }, /* @__PURE__ */ React24.createElement(
1034
1064
  SelectControl,
1035
1065
  {
1036
1066
  options: [
@@ -1094,7 +1124,7 @@ import { stringPropTypeUtil as stringPropTypeUtil5 } from "@elementor/editor-pro
1094
1124
 
1095
1125
  // src/components/control-toggle-button-group.tsx
1096
1126
  import * as React26 from "react";
1097
- import { useEffect as useEffect3, useMemo, useRef, useState as useState4 } from "react";
1127
+ import { useEffect as useEffect3, useMemo, useRef as useRef2, useState as useState4 } from "react";
1098
1128
  import { ChevronDownIcon } from "@elementor/icons";
1099
1129
  import {
1100
1130
  ListItemText,
@@ -1201,7 +1231,7 @@ var SplitButtonGroup = ({
1201
1231
  }) => {
1202
1232
  const previewButton = usePreviewButton(items, value);
1203
1233
  const [isMenuOpen, setIsMenuOpen] = useState4(false);
1204
- const menuButtonRef = useRef(null);
1234
+ const menuButtonRef = useRef2(null);
1205
1235
  const onMenuToggle = (ev) => {
1206
1236
  setIsMenuOpen((prev) => !prev);
1207
1237
  ev.preventDefault();
@@ -1371,7 +1401,7 @@ var NumberControl = createControl(
1371
1401
 
1372
1402
  // src/controls/equal-unequal-sizes-control.tsx
1373
1403
  import * as React30 from "react";
1374
- import { useId as useId2, useRef as useRef2 } from "react";
1404
+ import { useId as useId2, useRef as useRef3 } from "react";
1375
1405
  import { sizePropTypeUtil as sizePropTypeUtil2 } from "@elementor/editor-props";
1376
1406
  import { bindPopover as bindPopover2, bindToggle, Grid as Grid5, Popover as Popover2, Stack as Stack7, ToggleButton as ToggleButton2, Tooltip as Tooltip3, usePopupState as usePopupState3 } from "@elementor/ui";
1377
1407
  import { __ as __6 } from "@wordpress/i18n";
@@ -1402,7 +1432,7 @@ function EqualUnequalSizesControl({
1402
1432
  multiSizePropTypeUtil
1403
1433
  }) {
1404
1434
  const popupId = useId2();
1405
- const controlRef = useRef2(null);
1435
+ const controlRef = useRef3(null);
1406
1436
  const popupState = usePopupState3({ variant: "popover", popupId });
1407
1437
  const {
1408
1438
  propType: multiSizePropType,
@@ -1567,7 +1597,7 @@ var Control3 = ({
1567
1597
 
1568
1598
  // src/controls/font-family-control/font-family-control.tsx
1569
1599
  import * as React32 from "react";
1570
- import { useEffect as useEffect4, useRef as useRef3, useState as useState5 } from "react";
1600
+ import { useEffect as useEffect4, useRef as useRef4, useState as useState5 } from "react";
1571
1601
  import { stringPropTypeUtil as stringPropTypeUtil6 } from "@elementor/editor-props";
1572
1602
  import { ChevronDownIcon as ChevronDownIcon2, SearchIcon, TextIcon, XIcon as XIcon2 } from "@elementor/icons";
1573
1603
  import {
@@ -1702,7 +1732,7 @@ var FontFamilyControl = createControl(({ fontFamilies }) => {
1702
1732
  var LIST_ITEM_HEIGHT = 36;
1703
1733
  var LIST_ITEMS_BUFFER = 6;
1704
1734
  var FontList = ({ fontListItems, setFontFamily, handleClose, fontFamily }) => {
1705
- const containerRef = useRef3(null);
1735
+ const containerRef = useRef4(null);
1706
1736
  const selectedItem = fontListItems.find((item) => item.value === fontFamily);
1707
1737
  const debouncedVirtualizeChange = useDebounce(({ getVirtualIndexes }) => {
1708
1738
  getVirtualIndexes().forEach((index) => {
@@ -2018,7 +2048,7 @@ var LinkControl = createControl((props) => {
2018
2048
  setValue(linkSessionValue.value);
2019
2049
  }
2020
2050
  setLinkSessionValue({
2021
- value: newState ? value : linkSessionValue?.value,
2051
+ value: linkSessionValue?.value,
2022
2052
  meta: { isEnabled: newState }
2023
2053
  });
2024
2054
  };
@@ -2217,18 +2247,106 @@ var Control4 = ({ bind, isLinked }) => {
2217
2247
  return /* @__PURE__ */ React36.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React36.createElement(SizeControl, null));
2218
2248
  };
2219
2249
 
2250
+ // src/controls/aspect-ratio-control.tsx
2251
+ import * as React37 from "react";
2252
+ import { useState as useState7 } from "react";
2253
+ import { stringPropTypeUtil as stringPropTypeUtil8 } from "@elementor/editor-props";
2254
+ import { MenuListItem as MenuListItem3 } from "@elementor/editor-ui";
2255
+ import { Grid as Grid9, Select as Select2, Stack as Stack12, TextField as TextField8 } from "@elementor/ui";
2256
+ import { __ as __11 } from "@wordpress/i18n";
2257
+ var RATIO_OPTIONS = [
2258
+ { label: __11("Auto", "elementor"), value: "auto" },
2259
+ { label: "1/1", value: "1/1" },
2260
+ { label: "4/3", value: "4/3" },
2261
+ { label: "3/4", value: "3/4" },
2262
+ { label: "16/9", value: "16/9" },
2263
+ { label: "9/16", value: "9/16" },
2264
+ { label: "3/2", value: "3/2" },
2265
+ { label: "2/3", value: "2/3" }
2266
+ ];
2267
+ var CUSTOM_RATIO = "custom";
2268
+ var AspectRatioControl = createControl(({ label }) => {
2269
+ const { value: aspectRatioValue, setValue: setAspectRatioValue } = useBoundProp(stringPropTypeUtil8);
2270
+ const isCustomSelected = aspectRatioValue && !RATIO_OPTIONS.some((option) => option.value === aspectRatioValue);
2271
+ const [initialWidth, initialHeight] = isCustomSelected ? aspectRatioValue.split("/") : ["", ""];
2272
+ const [isCustom, setIsCustom] = useState7(isCustomSelected);
2273
+ const [customWidth, setCustomWidth] = useState7(initialWidth);
2274
+ const [customHeight, setCustomHeight] = useState7(initialHeight);
2275
+ const [selectedValue, setSelectedValue] = useState7(
2276
+ isCustomSelected ? CUSTOM_RATIO : aspectRatioValue || ""
2277
+ );
2278
+ const handleSelectChange = (event) => {
2279
+ const newValue = event.target.value;
2280
+ const isCustomRatio = newValue === CUSTOM_RATIO;
2281
+ setIsCustom(isCustomRatio);
2282
+ setSelectedValue(newValue);
2283
+ if (isCustomRatio) {
2284
+ return;
2285
+ }
2286
+ setAspectRatioValue(newValue);
2287
+ };
2288
+ const handleCustomWidthChange = (event) => {
2289
+ const newWidth = event.target.value;
2290
+ setCustomWidth(newWidth);
2291
+ if (newWidth && customHeight) {
2292
+ setAspectRatioValue(`${newWidth}/${customHeight}`);
2293
+ }
2294
+ };
2295
+ const handleCustomHeightChange = (event) => {
2296
+ const newHeight = event.target.value;
2297
+ setCustomHeight(newHeight);
2298
+ if (customWidth && newHeight) {
2299
+ setAspectRatioValue(`${customWidth}/${newHeight}`);
2300
+ }
2301
+ };
2302
+ return /* @__PURE__ */ React37.createElement(Stack12, { direction: "column", gap: 2 }, /* @__PURE__ */ React37.createElement(Grid9, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React37.createElement(Grid9, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(ControlLabel, null, label)), /* @__PURE__ */ React37.createElement(Grid9, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(
2303
+ Select2,
2304
+ {
2305
+ sx: { overflow: "hidden" },
2306
+ displayEmpty: true,
2307
+ size: "tiny",
2308
+ value: selectedValue,
2309
+ onChange: handleSelectChange,
2310
+ fullWidth: true
2311
+ },
2312
+ [...RATIO_OPTIONS, { label: __11("Custom", "elementor"), value: CUSTOM_RATIO }].map(
2313
+ ({ label: optionLabel, ...props }) => /* @__PURE__ */ React37.createElement(MenuListItem3, { key: props.value, ...props, value: props.value ?? "" }, optionLabel)
2314
+ )
2315
+ ))), isCustom && /* @__PURE__ */ React37.createElement(Grid9, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React37.createElement(Grid9, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(
2316
+ TextField8,
2317
+ {
2318
+ size: "tiny",
2319
+ type: "number",
2320
+ fullWidth: true,
2321
+ value: customWidth,
2322
+ onChange: handleCustomWidthChange,
2323
+ placeholder: __11("Width", "elementor")
2324
+ }
2325
+ )), /* @__PURE__ */ React37.createElement(Grid9, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(
2326
+ TextField8,
2327
+ {
2328
+ size: "tiny",
2329
+ type: "number",
2330
+ fullWidth: true,
2331
+ value: customHeight,
2332
+ onChange: handleCustomHeightChange,
2333
+ placeholder: __11("Height", "elementor")
2334
+ }
2335
+ ))));
2336
+ });
2337
+
2220
2338
  // src/controls/svg-media-control.tsx
2221
- import * as React38 from "react";
2222
- import { useState as useState8 } from "react";
2339
+ import * as React39 from "react";
2340
+ import { useState as useState9 } from "react";
2223
2341
  import { imageSrcPropTypeUtil as imageSrcPropTypeUtil2 } from "@elementor/editor-props";
2224
2342
  import { UploadIcon as UploadIcon2 } from "@elementor/icons";
2225
- import { Button as Button4, Card as Card2, CardMedia as CardMedia2, CardOverlay as CardOverlay2, CircularProgress as CircularProgress3, Stack as Stack12, styled as styled5 } from "@elementor/ui";
2343
+ import { Button as Button4, Card as Card2, CardMedia as CardMedia2, CardOverlay as CardOverlay2, CircularProgress as CircularProgress3, Stack as Stack13, styled as styled5 } from "@elementor/ui";
2226
2344
  import { useWpMediaAttachment as useWpMediaAttachment2, useWpMediaFrame as useWpMediaFrame2 } from "@elementor/wp-media";
2227
- import { __ as __12 } from "@wordpress/i18n";
2345
+ import { __ as __13 } from "@wordpress/i18n";
2228
2346
 
2229
2347
  // src/components/enable-unfiltered-modal.tsx
2230
- import * as React37 from "react";
2231
- import { useState as useState7 } from "react";
2348
+ import * as React38 from "react";
2349
+ import { useState as useState8 } from "react";
2232
2350
  import { useCurrentUserCapabilities } from "@elementor/editor-current-user";
2233
2351
  import {
2234
2352
  Button as Button3,
@@ -2241,19 +2359,19 @@ import {
2241
2359
  DialogTitle,
2242
2360
  Divider as Divider3
2243
2361
  } from "@elementor/ui";
2244
- import { __ as __11 } from "@wordpress/i18n";
2245
- var ADMIN_TITLE_TEXT = __11("Enable Unfiltered Uploads", "elementor");
2246
- var ADMIN_CONTENT_TEXT = __11(
2362
+ import { __ as __12 } from "@wordpress/i18n";
2363
+ var ADMIN_TITLE_TEXT = __12("Enable Unfiltered Uploads", "elementor");
2364
+ var ADMIN_CONTENT_TEXT = __12(
2247
2365
  "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.",
2248
2366
  "elementor"
2249
2367
  );
2250
- var NON_ADMIN_TITLE_TEXT = __11("Sorry, you can't upload that file yet", "elementor");
2251
- var NON_ADMIN_CONTENT_TEXT = __11(
2368
+ var NON_ADMIN_TITLE_TEXT = __12("Sorry, you can't upload that file yet", "elementor");
2369
+ var NON_ADMIN_CONTENT_TEXT = __12(
2252
2370
  "This is because this file type may pose a security risk. To upload them anyway, ask the site administrator to enable unfiltered file uploads.",
2253
2371
  "elementor"
2254
2372
  );
2255
- var ADMIN_FAILED_CONTENT_TEXT_PT1 = __11("Failed to enable unfiltered files upload.", "elementor");
2256
- var ADMIN_FAILED_CONTENT_TEXT_PT2 = __11(
2373
+ var ADMIN_FAILED_CONTENT_TEXT_PT1 = __12("Failed to enable unfiltered files upload.", "elementor");
2374
+ var ADMIN_FAILED_CONTENT_TEXT_PT2 = __12(
2257
2375
  "You can try again, if the problem persists, please contact support.",
2258
2376
  "elementor"
2259
2377
  );
@@ -2261,7 +2379,7 @@ var WAIT_FOR_CLOSE_TIMEOUT_MS = 300;
2261
2379
  var EnableUnfilteredModal = (props) => {
2262
2380
  const { mutateAsync, isPending } = useUpdateUnfilteredFilesUpload();
2263
2381
  const { canUser } = useCurrentUserCapabilities();
2264
- const [isError, setIsError] = useState7(false);
2382
+ const [isError, setIsError] = useState8(false);
2265
2383
  const canManageOptions = canUser("manage_options");
2266
2384
  const onClose = (enabled) => {
2267
2385
  props.onClose(enabled);
@@ -2280,9 +2398,9 @@ var EnableUnfilteredModal = (props) => {
2280
2398
  }
2281
2399
  };
2282
2400
  const dialogProps = { ...props, isPending, handleEnable, isError, onClose };
2283
- return canManageOptions ? /* @__PURE__ */ React37.createElement(AdminDialog, { ...dialogProps }) : /* @__PURE__ */ React37.createElement(NonAdminDialog, { ...dialogProps });
2401
+ return canManageOptions ? /* @__PURE__ */ React38.createElement(AdminDialog, { ...dialogProps }) : /* @__PURE__ */ React38.createElement(NonAdminDialog, { ...dialogProps });
2284
2402
  };
2285
- var AdminDialog = ({ open, onClose, handleEnable, isPending, isError }) => /* @__PURE__ */ React37.createElement(Dialog, { open, maxWidth: "sm", onClose: () => onClose(false) }, /* @__PURE__ */ React37.createElement(DialogHeader, { logo: false }, /* @__PURE__ */ React37.createElement(DialogTitle, null, ADMIN_TITLE_TEXT)), /* @__PURE__ */ React37.createElement(Divider3, null), /* @__PURE__ */ React37.createElement(DialogContent, null, /* @__PURE__ */ React37.createElement(DialogContentText, null, isError ? /* @__PURE__ */ React37.createElement(React37.Fragment, null, ADMIN_FAILED_CONTENT_TEXT_PT1, " ", /* @__PURE__ */ React37.createElement("br", null), " ", ADMIN_FAILED_CONTENT_TEXT_PT2) : ADMIN_CONTENT_TEXT)), /* @__PURE__ */ React37.createElement(DialogActions, null, /* @__PURE__ */ React37.createElement(Button3, { size: "medium", color: "secondary", onClick: () => onClose(false) }, __11("Cancel", "elementor")), /* @__PURE__ */ React37.createElement(
2403
+ var AdminDialog = ({ open, onClose, handleEnable, isPending, isError }) => /* @__PURE__ */ React38.createElement(Dialog, { open, maxWidth: "sm", onClose: () => onClose(false) }, /* @__PURE__ */ React38.createElement(DialogHeader, { logo: false }, /* @__PURE__ */ React38.createElement(DialogTitle, null, ADMIN_TITLE_TEXT)), /* @__PURE__ */ React38.createElement(Divider3, null), /* @__PURE__ */ React38.createElement(DialogContent, null, /* @__PURE__ */ React38.createElement(DialogContentText, null, isError ? /* @__PURE__ */ React38.createElement(React38.Fragment, null, ADMIN_FAILED_CONTENT_TEXT_PT1, " ", /* @__PURE__ */ React38.createElement("br", null), " ", ADMIN_FAILED_CONTENT_TEXT_PT2) : ADMIN_CONTENT_TEXT)), /* @__PURE__ */ React38.createElement(DialogActions, null, /* @__PURE__ */ React38.createElement(Button3, { size: "medium", color: "secondary", onClick: () => onClose(false) }, __12("Cancel", "elementor")), /* @__PURE__ */ React38.createElement(
2286
2404
  Button3,
2287
2405
  {
2288
2406
  size: "medium",
@@ -2291,9 +2409,9 @@ var AdminDialog = ({ open, onClose, handleEnable, isPending, isError }) => /* @_
2291
2409
  color: "primary",
2292
2410
  disabled: isPending
2293
2411
  },
2294
- isPending ? /* @__PURE__ */ React37.createElement(CircularProgress2, { size: 24 }) : __11("Enable", "elementor")
2412
+ isPending ? /* @__PURE__ */ React38.createElement(CircularProgress2, { size: 24 }) : __12("Enable", "elementor")
2295
2413
  )));
2296
- var NonAdminDialog = ({ open, onClose }) => /* @__PURE__ */ React37.createElement(Dialog, { open, maxWidth: "sm", onClose: () => onClose(false) }, /* @__PURE__ */ React37.createElement(DialogHeader, { logo: false }, /* @__PURE__ */ React37.createElement(DialogTitle, null, NON_ADMIN_TITLE_TEXT)), /* @__PURE__ */ React37.createElement(Divider3, null), /* @__PURE__ */ React37.createElement(DialogContent, null, /* @__PURE__ */ React37.createElement(DialogContentText, null, NON_ADMIN_CONTENT_TEXT)), /* @__PURE__ */ React37.createElement(DialogActions, null, /* @__PURE__ */ React37.createElement(Button3, { size: "medium", onClick: () => onClose(false), variant: "contained", color: "primary" }, __11("Got it", "elementor"))));
2414
+ var NonAdminDialog = ({ open, onClose }) => /* @__PURE__ */ React38.createElement(Dialog, { open, maxWidth: "sm", onClose: () => onClose(false) }, /* @__PURE__ */ React38.createElement(DialogHeader, { logo: false }, /* @__PURE__ */ React38.createElement(DialogTitle, null, NON_ADMIN_TITLE_TEXT)), /* @__PURE__ */ React38.createElement(Divider3, null), /* @__PURE__ */ React38.createElement(DialogContent, null, /* @__PURE__ */ React38.createElement(DialogContentText, null, NON_ADMIN_CONTENT_TEXT)), /* @__PURE__ */ React38.createElement(DialogActions, null, /* @__PURE__ */ React38.createElement(Button3, { size: "medium", onClick: () => onClose(false), variant: "contained", color: "primary" }, __12("Got it", "elementor"))));
2297
2415
 
2298
2416
  // src/controls/svg-media-control.tsx
2299
2417
  var TILE_SIZE = 8;
@@ -2309,7 +2427,7 @@ var StyledCard = styled5(Card2)`
2309
2427
  ${TILE_SIZE / 2}px ${TILE_SIZE / 2}px;
2310
2428
  border: none;
2311
2429
  `;
2312
- var StyledCardMediaContainer = styled5(Stack12)`
2430
+ var StyledCardMediaContainer = styled5(Stack13)`
2313
2431
  position: relative;
2314
2432
  height: 140px;
2315
2433
  object-fit: contain;
@@ -2326,7 +2444,7 @@ var SvgMediaControl = createControl(() => {
2326
2444
  const { data: attachment, isFetching } = useWpMediaAttachment2(id?.value || null);
2327
2445
  const src = attachment?.url ?? url?.value ?? null;
2328
2446
  const { data: allowSvgUpload } = useUnfilteredFilesUpload();
2329
- const [unfilteredModalOpenState, setUnfilteredModalOpenState] = useState8(false);
2447
+ const [unfilteredModalOpenState, setUnfilteredModalOpenState] = useState9(false);
2330
2448
  const { open } = useWpMediaFrame2({
2331
2449
  mediaTypes: ["svg"],
2332
2450
  multiple: false,
@@ -2354,15 +2472,15 @@ var SvgMediaControl = createControl(() => {
2354
2472
  open(openOptions);
2355
2473
  }
2356
2474
  };
2357
- return /* @__PURE__ */ React38.createElement(Stack12, { gap: 1 }, /* @__PURE__ */ React38.createElement(EnableUnfilteredModal, { open: unfilteredModalOpenState, onClose: onCloseUnfilteredModal }), /* @__PURE__ */ React38.createElement(ControlFormLabel, null, " ", __12("SVG", "elementor"), " "), /* @__PURE__ */ React38.createElement(ControlActions, null, /* @__PURE__ */ React38.createElement(StyledCard, { variant: "outlined" }, /* @__PURE__ */ React38.createElement(StyledCardMediaContainer, null, isFetching ? /* @__PURE__ */ React38.createElement(CircularProgress3, { role: "progressbar" }) : /* @__PURE__ */ React38.createElement(
2475
+ return /* @__PURE__ */ React39.createElement(Stack13, { gap: 1 }, /* @__PURE__ */ React39.createElement(EnableUnfilteredModal, { open: unfilteredModalOpenState, onClose: onCloseUnfilteredModal }), /* @__PURE__ */ React39.createElement(ControlFormLabel, null, " ", __13("SVG", "elementor"), " "), /* @__PURE__ */ React39.createElement(ControlActions, null, /* @__PURE__ */ React39.createElement(StyledCard, { variant: "outlined" }, /* @__PURE__ */ React39.createElement(StyledCardMediaContainer, null, isFetching ? /* @__PURE__ */ React39.createElement(CircularProgress3, { role: "progressbar" }) : /* @__PURE__ */ React39.createElement(
2358
2476
  CardMedia2,
2359
2477
  {
2360
2478
  component: "img",
2361
2479
  image: src,
2362
- alt: __12("Preview SVG", "elementor"),
2480
+ alt: __13("Preview SVG", "elementor"),
2363
2481
  sx: { maxHeight: "140px", width: "50px" }
2364
2482
  }
2365
- )), /* @__PURE__ */ React38.createElement(
2483
+ )), /* @__PURE__ */ React39.createElement(
2366
2484
  CardOverlay2,
2367
2485
  {
2368
2486
  sx: {
@@ -2371,7 +2489,7 @@ var SvgMediaControl = createControl(() => {
2371
2489
  }
2372
2490
  }
2373
2491
  },
2374
- /* @__PURE__ */ React38.createElement(Stack12, { gap: 1 }, /* @__PURE__ */ React38.createElement(
2492
+ /* @__PURE__ */ React39.createElement(Stack13, { gap: 1 }, /* @__PURE__ */ React39.createElement(
2375
2493
  Button4,
2376
2494
  {
2377
2495
  size: "tiny",
@@ -2379,52 +2497,53 @@ var SvgMediaControl = createControl(() => {
2379
2497
  variant: "outlined",
2380
2498
  onClick: () => handleClick(MODE_BROWSE)
2381
2499
  },
2382
- __12("Select SVG", "elementor")
2383
- ), /* @__PURE__ */ React38.createElement(
2500
+ __13("Select SVG", "elementor")
2501
+ ), /* @__PURE__ */ React39.createElement(
2384
2502
  Button4,
2385
2503
  {
2386
2504
  size: "tiny",
2387
2505
  variant: "text",
2388
2506
  color: "inherit",
2389
- startIcon: /* @__PURE__ */ React38.createElement(UploadIcon2, null),
2507
+ startIcon: /* @__PURE__ */ React39.createElement(UploadIcon2, null),
2390
2508
  onClick: () => handleClick(MODE_UPLOAD)
2391
2509
  },
2392
- __12("Upload", "elementor")
2510
+ __13("Upload", "elementor")
2393
2511
  ))
2394
2512
  ))));
2395
2513
  });
2396
2514
 
2397
2515
  // src/controls/background-control/background-control.tsx
2398
- import * as React45 from "react";
2516
+ import * as React46 from "react";
2399
2517
  import { backgroundPropTypeUtil } from "@elementor/editor-props";
2400
- import { Grid as Grid14 } from "@elementor/ui";
2401
- import { __ as __18 } from "@wordpress/i18n";
2518
+ import { isExperimentActive } from "@elementor/editor-v1-adapters";
2519
+ import { Grid as Grid15 } from "@elementor/ui";
2520
+ import { __ as __19 } from "@wordpress/i18n";
2402
2521
 
2403
2522
  // src/controls/background-control/background-overlay/background-overlay-repeater-control.tsx
2404
- import * as React44 from "react";
2523
+ import * as React45 from "react";
2405
2524
  import {
2406
2525
  backgroundColorOverlayPropTypeUtil as backgroundColorOverlayPropTypeUtil2,
2407
2526
  backgroundImageOverlayPropTypeUtil as backgroundImageOverlayPropTypeUtil2,
2408
2527
  backgroundOverlayPropTypeUtil,
2409
2528
  colorPropTypeUtil as colorPropTypeUtil3
2410
2529
  } from "@elementor/editor-props";
2411
- import { Box as Box5, CardMedia as CardMedia3, Grid as Grid13, styled as styled6, Tab, TabPanel, Tabs, UnstableColorIndicator as UnstableColorIndicator2 } from "@elementor/ui";
2530
+ import { Box as Box5, CardMedia as CardMedia3, Grid as Grid14, styled as styled6, Tab, TabPanel, Tabs, UnstableColorIndicator as UnstableColorIndicator2 } from "@elementor/ui";
2412
2531
  import { useWpMediaAttachment as useWpMediaAttachment3 } from "@elementor/wp-media";
2413
- import { __ as __17 } from "@wordpress/i18n";
2532
+ import { __ as __18 } from "@wordpress/i18n";
2414
2533
 
2415
2534
  // src/env.ts
2416
2535
  import { parseEnv } from "@elementor/env";
2417
2536
  var { env } = parseEnv("@elementor/editor-controls");
2418
2537
 
2419
2538
  // src/controls/background-control/background-gradient-color-control.tsx
2420
- import * as React39 from "react";
2539
+ import * as React40 from "react";
2421
2540
  import {
2422
2541
  backgroundGradientOverlayPropTypeUtil,
2423
2542
  colorPropTypeUtil as colorPropTypeUtil2,
2424
2543
  colorStopPropTypeUtil,
2425
2544
  gradientColorStopPropTypeUtil,
2426
2545
  numberPropTypeUtil as numberPropTypeUtil3,
2427
- stringPropTypeUtil as stringPropTypeUtil8
2546
+ stringPropTypeUtil as stringPropTypeUtil9
2428
2547
  } from "@elementor/editor-props";
2429
2548
  import { UnstableGradientBox } from "@elementor/ui";
2430
2549
  var BackgroundGradientColorControl = createControl(() => {
@@ -2432,13 +2551,13 @@ var BackgroundGradientColorControl = createControl(() => {
2432
2551
  const handleChange = (newValue) => {
2433
2552
  const transformedValue = createTransformableValue(newValue);
2434
2553
  if (transformedValue.positions) {
2435
- transformedValue.positions = stringPropTypeUtil8.create(newValue.positions.join(" "));
2554
+ transformedValue.positions = stringPropTypeUtil9.create(newValue.positions.join(" "));
2436
2555
  }
2437
2556
  setValue(transformedValue);
2438
2557
  };
2439
2558
  const createTransformableValue = (newValue) => ({
2440
2559
  ...newValue,
2441
- type: stringPropTypeUtil8.create(newValue.type),
2560
+ type: stringPropTypeUtil9.create(newValue.type),
2442
2561
  angle: numberPropTypeUtil3.create(newValue.angle),
2443
2562
  stops: gradientColorStopPropTypeUtil.create(
2444
2563
  newValue.stops.map(
@@ -2464,7 +2583,7 @@ var BackgroundGradientColorControl = createControl(() => {
2464
2583
  positions: positions?.value.split(" ")
2465
2584
  };
2466
2585
  };
2467
- return /* @__PURE__ */ React39.createElement(ControlActions, null, /* @__PURE__ */ React39.createElement(
2586
+ return /* @__PURE__ */ React40.createElement(ControlActions, null, /* @__PURE__ */ React40.createElement(
2468
2587
  UnstableGradientBox,
2469
2588
  {
2470
2589
  sx: { width: "auto", padding: 1.5 },
@@ -2474,7 +2593,7 @@ var BackgroundGradientColorControl = createControl(() => {
2474
2593
  ));
2475
2594
  });
2476
2595
  var initialBackgroundGradientOverlay = backgroundGradientOverlayPropTypeUtil.create({
2477
- type: stringPropTypeUtil8.create("linear"),
2596
+ type: stringPropTypeUtil9.create("linear"),
2478
2597
  angle: numberPropTypeUtil3.create(180),
2479
2598
  stops: gradientColorStopPropTypeUtil.create([
2480
2599
  colorStopPropTypeUtil.create({
@@ -2489,50 +2608,50 @@ var initialBackgroundGradientOverlay = backgroundGradientOverlayPropTypeUtil.cre
2489
2608
  });
2490
2609
 
2491
2610
  // src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-attachment.tsx
2492
- import * as React40 from "react";
2611
+ import * as React41 from "react";
2493
2612
  import { PinIcon, PinnedOffIcon } from "@elementor/icons";
2494
- import { Grid as Grid9 } from "@elementor/ui";
2495
- import { __ as __13 } from "@wordpress/i18n";
2613
+ import { Grid as Grid10 } from "@elementor/ui";
2614
+ import { __ as __14 } from "@wordpress/i18n";
2496
2615
  var attachmentControlOptions = [
2497
2616
  {
2498
2617
  value: "fixed",
2499
- label: __13("Fixed", "elementor"),
2500
- renderContent: ({ size }) => /* @__PURE__ */ React40.createElement(PinIcon, { fontSize: size }),
2618
+ label: __14("Fixed", "elementor"),
2619
+ renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(PinIcon, { fontSize: size }),
2501
2620
  showTooltip: true
2502
2621
  },
2503
2622
  {
2504
2623
  value: "scroll",
2505
- label: __13("Scroll", "elementor"),
2506
- renderContent: ({ size }) => /* @__PURE__ */ React40.createElement(PinnedOffIcon, { fontSize: size }),
2624
+ label: __14("Scroll", "elementor"),
2625
+ renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(PinnedOffIcon, { fontSize: size }),
2507
2626
  showTooltip: true
2508
2627
  }
2509
2628
  ];
2510
2629
  var BackgroundImageOverlayAttachment = () => {
2511
- return /* @__PURE__ */ React40.createElement(PopoverGridContainer, null, /* @__PURE__ */ React40.createElement(Grid9, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(ControlFormLabel, null, __13("Attachment", "elementor"))), /* @__PURE__ */ React40.createElement(Grid9, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end", overflow: "hidden" } }, /* @__PURE__ */ React40.createElement(ToggleControl, { options: attachmentControlOptions })));
2630
+ return /* @__PURE__ */ React41.createElement(PopoverGridContainer, null, /* @__PURE__ */ React41.createElement(Grid10, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(ControlFormLabel, null, __14("Attachment", "elementor"))), /* @__PURE__ */ React41.createElement(Grid10, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end", overflow: "hidden" } }, /* @__PURE__ */ React41.createElement(ToggleControl, { options: attachmentControlOptions })));
2512
2631
  };
2513
2632
 
2514
2633
  // src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-position.tsx
2515
- import * as React41 from "react";
2516
- import { backgroundImagePositionOffsetPropTypeUtil, stringPropTypeUtil as stringPropTypeUtil9 } from "@elementor/editor-props";
2517
- import { MenuListItem as MenuListItem3 } from "@elementor/editor-ui";
2634
+ import * as React42 from "react";
2635
+ import { backgroundImagePositionOffsetPropTypeUtil, stringPropTypeUtil as stringPropTypeUtil10 } from "@elementor/editor-props";
2636
+ import { MenuListItem as MenuListItem4 } from "@elementor/editor-ui";
2518
2637
  import { LetterXIcon, LetterYIcon } from "@elementor/icons";
2519
- import { Grid as Grid10, Select as Select2 } from "@elementor/ui";
2520
- import { __ as __14 } from "@wordpress/i18n";
2638
+ import { Grid as Grid11, Select as Select3 } from "@elementor/ui";
2639
+ import { __ as __15 } from "@wordpress/i18n";
2521
2640
  var backgroundPositionOptions = [
2522
- { label: __14("Center center", "elementor"), value: "center center" },
2523
- { label: __14("Center left", "elementor"), value: "center left" },
2524
- { label: __14("Center right", "elementor"), value: "center right" },
2525
- { label: __14("Top center", "elementor"), value: "top center" },
2526
- { label: __14("Top left", "elementor"), value: "top left" },
2527
- { label: __14("Top right", "elementor"), value: "top right" },
2528
- { label: __14("Bottom center", "elementor"), value: "bottom center" },
2529
- { label: __14("Bottom left", "elementor"), value: "bottom left" },
2530
- { label: __14("Bottom right", "elementor"), value: "bottom right" },
2531
- { label: __14("Custom", "elementor"), value: "custom" }
2641
+ { label: __15("Center center", "elementor"), value: "center center" },
2642
+ { label: __15("Center left", "elementor"), value: "center left" },
2643
+ { label: __15("Center right", "elementor"), value: "center right" },
2644
+ { label: __15("Top center", "elementor"), value: "top center" },
2645
+ { label: __15("Top left", "elementor"), value: "top left" },
2646
+ { label: __15("Top right", "elementor"), value: "top right" },
2647
+ { label: __15("Bottom center", "elementor"), value: "bottom center" },
2648
+ { label: __15("Bottom left", "elementor"), value: "bottom left" },
2649
+ { label: __15("Bottom right", "elementor"), value: "bottom right" },
2650
+ { label: __15("Custom", "elementor"), value: "custom" }
2532
2651
  ];
2533
2652
  var BackgroundImageOverlayPosition = () => {
2534
2653
  const backgroundImageOffsetContext = useBoundProp(backgroundImagePositionOffsetPropTypeUtil);
2535
- const stringPropContext = useBoundProp(stringPropTypeUtil9);
2654
+ const stringPropContext = useBoundProp(stringPropTypeUtil10);
2536
2655
  const isCustom = !!backgroundImageOffsetContext.value;
2537
2656
  const handlePositionChange = (event) => {
2538
2657
  const value = event.target.value || null;
@@ -2542,56 +2661,56 @@ var BackgroundImageOverlayPosition = () => {
2542
2661
  stringPropContext.setValue(value);
2543
2662
  }
2544
2663
  };
2545
- return /* @__PURE__ */ React41.createElement(Grid10, { container: true, spacing: 1.5 }, /* @__PURE__ */ React41.createElement(Grid10, { item: true, xs: 12 }, /* @__PURE__ */ React41.createElement(PopoverGridContainer, null, /* @__PURE__ */ React41.createElement(Grid10, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(ControlFormLabel, null, __14("Position", "elementor"))), /* @__PURE__ */ React41.createElement(Grid10, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end", overflow: "hidden" } }, /* @__PURE__ */ React41.createElement(
2546
- Select2,
2664
+ return /* @__PURE__ */ React42.createElement(Grid11, { container: true, spacing: 1.5 }, /* @__PURE__ */ React42.createElement(Grid11, { item: true, xs: 12 }, /* @__PURE__ */ React42.createElement(PopoverGridContainer, null, /* @__PURE__ */ React42.createElement(Grid11, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(ControlFormLabel, null, __15("Position", "elementor"))), /* @__PURE__ */ React42.createElement(Grid11, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end", overflow: "hidden" } }, /* @__PURE__ */ React42.createElement(
2665
+ Select3,
2547
2666
  {
2548
2667
  size: "tiny",
2549
2668
  value: (backgroundImageOffsetContext.value ? "custom" : stringPropContext.value) ?? "",
2550
2669
  onChange: handlePositionChange,
2551
2670
  fullWidth: true
2552
2671
  },
2553
- backgroundPositionOptions.map(({ label, value }) => /* @__PURE__ */ React41.createElement(MenuListItem3, { key: value, value: value ?? "" }, label))
2554
- )))), isCustom ? /* @__PURE__ */ React41.createElement(PropProvider, { ...backgroundImageOffsetContext }, /* @__PURE__ */ React41.createElement(Grid10, { item: true, xs: 12 }, /* @__PURE__ */ React41.createElement(Grid10, { container: true, spacing: 1.5 }, /* @__PURE__ */ React41.createElement(Grid10, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(PropKeyProvider, { bind: "x" }, /* @__PURE__ */ React41.createElement(SizeControl, { startIcon: /* @__PURE__ */ React41.createElement(LetterXIcon, { fontSize: "tiny" }) }))), /* @__PURE__ */ React41.createElement(Grid10, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(PropKeyProvider, { bind: "y" }, /* @__PURE__ */ React41.createElement(SizeControl, { startIcon: /* @__PURE__ */ React41.createElement(LetterYIcon, { fontSize: "tiny" }) })))))) : null);
2672
+ backgroundPositionOptions.map(({ label, value }) => /* @__PURE__ */ React42.createElement(MenuListItem4, { key: value, value: value ?? "" }, label))
2673
+ )))), isCustom ? /* @__PURE__ */ React42.createElement(PropProvider, { ...backgroundImageOffsetContext }, /* @__PURE__ */ React42.createElement(Grid11, { item: true, xs: 12 }, /* @__PURE__ */ React42.createElement(Grid11, { container: true, spacing: 1.5 }, /* @__PURE__ */ React42.createElement(Grid11, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(PropKeyProvider, { bind: "x" }, /* @__PURE__ */ React42.createElement(SizeControl, { startIcon: /* @__PURE__ */ React42.createElement(LetterXIcon, { fontSize: "tiny" }) }))), /* @__PURE__ */ React42.createElement(Grid11, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(PropKeyProvider, { bind: "y" }, /* @__PURE__ */ React42.createElement(SizeControl, { startIcon: /* @__PURE__ */ React42.createElement(LetterYIcon, { fontSize: "tiny" }) })))))) : null);
2555
2674
  };
2556
2675
 
2557
2676
  // src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-repeat.tsx
2558
- import * as React42 from "react";
2677
+ import * as React43 from "react";
2559
2678
  import { DotsHorizontalIcon, DotsVerticalIcon, GridDotsIcon, XIcon as XIcon4 } from "@elementor/icons";
2560
- import { Grid as Grid11 } from "@elementor/ui";
2561
- import { __ as __15 } from "@wordpress/i18n";
2679
+ import { Grid as Grid12 } from "@elementor/ui";
2680
+ import { __ as __16 } from "@wordpress/i18n";
2562
2681
  var repeatControlOptions = [
2563
2682
  {
2564
2683
  value: "repeat",
2565
- label: __15("Repeat", "elementor"),
2566
- renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(GridDotsIcon, { fontSize: size }),
2684
+ label: __16("Repeat", "elementor"),
2685
+ renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(GridDotsIcon, { fontSize: size }),
2567
2686
  showTooltip: true
2568
2687
  },
2569
2688
  {
2570
2689
  value: "repeat-x",
2571
- label: __15("Repeat-x", "elementor"),
2572
- renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(DotsHorizontalIcon, { fontSize: size }),
2690
+ label: __16("Repeat-x", "elementor"),
2691
+ renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(DotsHorizontalIcon, { fontSize: size }),
2573
2692
  showTooltip: true
2574
2693
  },
2575
2694
  {
2576
2695
  value: "repeat-y",
2577
- label: __15("Repeat-y", "elementor"),
2578
- renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(DotsVerticalIcon, { fontSize: size }),
2696
+ label: __16("Repeat-y", "elementor"),
2697
+ renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(DotsVerticalIcon, { fontSize: size }),
2579
2698
  showTooltip: true
2580
2699
  },
2581
2700
  {
2582
2701
  value: "no-repeat",
2583
- label: __15("No-repeat", "elementor"),
2584
- renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(XIcon4, { fontSize: size }),
2702
+ label: __16("No-repeat", "elementor"),
2703
+ renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(XIcon4, { fontSize: size }),
2585
2704
  showTooltip: true
2586
2705
  }
2587
2706
  ];
2588
2707
  var BackgroundImageOverlayRepeat = () => {
2589
- return /* @__PURE__ */ React42.createElement(PopoverGridContainer, null, /* @__PURE__ */ React42.createElement(Grid11, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(ControlFormLabel, null, __15("Repeat", "elementor"))), /* @__PURE__ */ React42.createElement(Grid11, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React42.createElement(ToggleControl, { options: repeatControlOptions })));
2708
+ return /* @__PURE__ */ React43.createElement(PopoverGridContainer, null, /* @__PURE__ */ React43.createElement(Grid12, { item: true, xs: 6 }, /* @__PURE__ */ React43.createElement(ControlFormLabel, null, __16("Repeat", "elementor"))), /* @__PURE__ */ React43.createElement(Grid12, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React43.createElement(ToggleControl, { options: repeatControlOptions })));
2590
2709
  };
2591
2710
 
2592
2711
  // src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-size.tsx
2593
- import * as React43 from "react";
2594
- import { backgroundImageSizeScalePropTypeUtil, stringPropTypeUtil as stringPropTypeUtil10 } from "@elementor/editor-props";
2712
+ import * as React44 from "react";
2713
+ import { backgroundImageSizeScalePropTypeUtil, stringPropTypeUtil as stringPropTypeUtil11 } from "@elementor/editor-props";
2595
2714
  import {
2596
2715
  ArrowBarBothIcon,
2597
2716
  ArrowsMaximizeIcon,
@@ -2600,37 +2719,37 @@ import {
2600
2719
  LetterAIcon,
2601
2720
  PencilIcon
2602
2721
  } from "@elementor/icons";
2603
- import { Grid as Grid12 } from "@elementor/ui";
2604
- import { __ as __16 } from "@wordpress/i18n";
2722
+ import { Grid as Grid13 } from "@elementor/ui";
2723
+ import { __ as __17 } from "@wordpress/i18n";
2605
2724
  var sizeControlOptions = [
2606
2725
  {
2607
2726
  value: "auto",
2608
- label: __16("Auto", "elementor"),
2609
- renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(LetterAIcon, { fontSize: size }),
2727
+ label: __17("Auto", "elementor"),
2728
+ renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(LetterAIcon, { fontSize: size }),
2610
2729
  showTooltip: true
2611
2730
  },
2612
2731
  {
2613
2732
  value: "cover",
2614
- label: __16("Cover", "elementor"),
2615
- renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(ArrowsMaximizeIcon, { fontSize: size }),
2733
+ label: __17("Cover", "elementor"),
2734
+ renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(ArrowsMaximizeIcon, { fontSize: size }),
2616
2735
  showTooltip: true
2617
2736
  },
2618
2737
  {
2619
2738
  value: "contain",
2620
- label: __16("Contain", "elementor"),
2621
- renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(ArrowBarBothIcon, { fontSize: size }),
2739
+ label: __17("Contain", "elementor"),
2740
+ renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(ArrowBarBothIcon, { fontSize: size }),
2622
2741
  showTooltip: true
2623
2742
  },
2624
2743
  {
2625
2744
  value: "custom",
2626
- label: __16("Custom", "elementor"),
2627
- renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(PencilIcon, { fontSize: size }),
2745
+ label: __17("Custom", "elementor"),
2746
+ renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(PencilIcon, { fontSize: size }),
2628
2747
  showTooltip: true
2629
2748
  }
2630
2749
  ];
2631
2750
  var BackgroundImageOverlaySize = () => {
2632
2751
  const backgroundImageScaleContext = useBoundProp(backgroundImageSizeScalePropTypeUtil);
2633
- const stringPropContext = useBoundProp(stringPropTypeUtil10);
2752
+ const stringPropContext = useBoundProp(stringPropTypeUtil11);
2634
2753
  const isCustom = !!backgroundImageScaleContext.value;
2635
2754
  const handleSizeChange = (size) => {
2636
2755
  if (size === "custom") {
@@ -2639,7 +2758,7 @@ var BackgroundImageOverlaySize = () => {
2639
2758
  stringPropContext.setValue(size);
2640
2759
  }
2641
2760
  };
2642
- return /* @__PURE__ */ React43.createElement(Grid12, { container: true, spacing: 1.5 }, /* @__PURE__ */ React43.createElement(Grid12, { item: true, xs: 12 }, /* @__PURE__ */ React43.createElement(PopoverGridContainer, null, /* @__PURE__ */ React43.createElement(Grid12, { item: true, xs: 6 }, /* @__PURE__ */ React43.createElement(ControlFormLabel, null, __16("Size", "elementor"))), /* @__PURE__ */ React43.createElement(Grid12, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React43.createElement(
2761
+ return /* @__PURE__ */ React44.createElement(Grid13, { container: true, spacing: 1.5 }, /* @__PURE__ */ React44.createElement(Grid13, { item: true, xs: 12 }, /* @__PURE__ */ React44.createElement(PopoverGridContainer, null, /* @__PURE__ */ React44.createElement(Grid13, { item: true, xs: 6 }, /* @__PURE__ */ React44.createElement(ControlFormLabel, null, __17("Size", "elementor"))), /* @__PURE__ */ React44.createElement(Grid13, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React44.createElement(
2643
2762
  ControlToggleButtonGroup,
2644
2763
  {
2645
2764
  exclusive: true,
@@ -2647,23 +2766,23 @@ var BackgroundImageOverlaySize = () => {
2647
2766
  value: backgroundImageScaleContext.value ? "custom" : stringPropContext.value,
2648
2767
  onChange: handleSizeChange
2649
2768
  }
2650
- )))), isCustom ? /* @__PURE__ */ React43.createElement(PropProvider, { ...backgroundImageScaleContext }, /* @__PURE__ */ React43.createElement(Grid12, { item: true, xs: 12 }, /* @__PURE__ */ React43.createElement(PopoverGridContainer, null, /* @__PURE__ */ React43.createElement(Grid12, { item: true, xs: 6 }, /* @__PURE__ */ React43.createElement(PropKeyProvider, { bind: "width" }, /* @__PURE__ */ React43.createElement(
2769
+ )))), isCustom ? /* @__PURE__ */ React44.createElement(PropProvider, { ...backgroundImageScaleContext }, /* @__PURE__ */ React44.createElement(Grid13, { item: true, xs: 12 }, /* @__PURE__ */ React44.createElement(PopoverGridContainer, null, /* @__PURE__ */ React44.createElement(Grid13, { item: true, xs: 6 }, /* @__PURE__ */ React44.createElement(PropKeyProvider, { bind: "width" }, /* @__PURE__ */ React44.createElement(
2651
2770
  SizeControl,
2652
2771
  {
2653
- startIcon: /* @__PURE__ */ React43.createElement(ArrowsMoveHorizontalIcon, { fontSize: "tiny" }),
2772
+ startIcon: /* @__PURE__ */ React44.createElement(ArrowsMoveHorizontalIcon, { fontSize: "tiny" }),
2654
2773
  extendedValues: ["auto"]
2655
2774
  }
2656
- ))), /* @__PURE__ */ React43.createElement(Grid12, { item: true, xs: 6 }, /* @__PURE__ */ React43.createElement(PropKeyProvider, { bind: "height" }, /* @__PURE__ */ React43.createElement(
2775
+ ))), /* @__PURE__ */ React44.createElement(Grid13, { item: true, xs: 6 }, /* @__PURE__ */ React44.createElement(PropKeyProvider, { bind: "height" }, /* @__PURE__ */ React44.createElement(
2657
2776
  SizeControl,
2658
2777
  {
2659
- startIcon: /* @__PURE__ */ React43.createElement(ArrowsMoveVerticalIcon, { fontSize: "tiny" }),
2778
+ startIcon: /* @__PURE__ */ React44.createElement(ArrowsMoveVerticalIcon, { fontSize: "tiny" }),
2660
2779
  extendedValues: ["auto"]
2661
2780
  }
2662
2781
  )))))) : null);
2663
2782
  };
2664
2783
 
2665
2784
  // src/controls/background-control/background-overlay/use-background-tabs-history.ts
2666
- import { useRef as useRef4 } from "react";
2785
+ import { useRef as useRef5 } from "react";
2667
2786
  import {
2668
2787
  backgroundColorOverlayPropTypeUtil,
2669
2788
  backgroundGradientOverlayPropTypeUtil as backgroundGradientOverlayPropTypeUtil2,
@@ -2688,7 +2807,7 @@ var useBackgroundTabsHistory = ({
2688
2807
  return "image";
2689
2808
  };
2690
2809
  const { getTabsProps, getTabProps, getTabPanelProps } = useTabs(getCurrentOverlayType());
2691
- const valuesHistory = useRef4({
2810
+ const valuesHistory = useRef5({
2692
2811
  image: initialBackgroundImageOverlay,
2693
2812
  color: initialBackgroundColorOverlay2,
2694
2813
  gradient: initialBackgroundGradientOverlay2
@@ -2756,20 +2875,20 @@ var getInitialBackgroundOverlay = () => ({
2756
2875
  }
2757
2876
  });
2758
2877
  var backgroundResolutionOptions = [
2759
- { label: __17("Thumbnail - 150 x 150", "elementor"), value: "thumbnail" },
2760
- { label: __17("Medium - 300 x 300", "elementor"), value: "medium" },
2761
- { label: __17("Large 1024 x 1024", "elementor"), value: "large" },
2762
- { label: __17("Full", "elementor"), value: "full" }
2878
+ { label: __18("Thumbnail - 150 x 150", "elementor"), value: "thumbnail" },
2879
+ { label: __18("Medium - 300 x 300", "elementor"), value: "medium" },
2880
+ { label: __18("Large 1024 x 1024", "elementor"), value: "large" },
2881
+ { label: __18("Full", "elementor"), value: "full" }
2763
2882
  ];
2764
2883
  var BackgroundOverlayRepeaterControl = createControl(() => {
2765
2884
  const { propType, value: overlayValues, setValue } = useBoundProp(backgroundOverlayPropTypeUtil);
2766
- return /* @__PURE__ */ React44.createElement(PropProvider, { propType, value: overlayValues, setValue }, /* @__PURE__ */ React44.createElement(
2885
+ return /* @__PURE__ */ React45.createElement(PropProvider, { propType, value: overlayValues, setValue }, /* @__PURE__ */ React45.createElement(
2767
2886
  Repeater,
2768
2887
  {
2769
2888
  openOnAdd: true,
2770
2889
  values: overlayValues ?? [],
2771
2890
  setValues: setValue,
2772
- label: __17("Overlay", "elementor"),
2891
+ label: __18("Overlay", "elementor"),
2773
2892
  itemSettings: {
2774
2893
  Icon: ItemIcon2,
2775
2894
  Label: ItemLabel2,
@@ -2779,36 +2898,36 @@ var BackgroundOverlayRepeaterControl = createControl(() => {
2779
2898
  }
2780
2899
  ));
2781
2900
  });
2782
- var ItemContent2 = ({ bind }) => {
2783
- return /* @__PURE__ */ React44.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React44.createElement(Content2, null));
2901
+ var ItemContent2 = ({ anchorEl = null, bind }) => {
2902
+ return /* @__PURE__ */ React45.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React45.createElement(Content2, { anchorEl }));
2784
2903
  };
2785
- var Content2 = () => {
2904
+ var Content2 = ({ anchorEl }) => {
2786
2905
  const { getTabsProps, getTabProps, getTabPanelProps } = useBackgroundTabsHistory({
2787
2906
  image: getInitialBackgroundOverlay().value,
2788
2907
  color: initialBackgroundColorOverlay.value,
2789
2908
  gradient: initialBackgroundGradientOverlay.value
2790
2909
  });
2791
- return /* @__PURE__ */ React44.createElement(Box5, { sx: { width: "100%" } }, /* @__PURE__ */ React44.createElement(Box5, { sx: { borderBottom: 1, borderColor: "divider" } }, /* @__PURE__ */ React44.createElement(
2910
+ return /* @__PURE__ */ React45.createElement(Box5, { sx: { width: "100%" } }, /* @__PURE__ */ React45.createElement(Box5, { sx: { borderBottom: 1, borderColor: "divider" } }, /* @__PURE__ */ React45.createElement(
2792
2911
  Tabs,
2793
2912
  {
2794
2913
  size: "small",
2795
2914
  variant: "fullWidth",
2796
2915
  ...getTabsProps(),
2797
- "aria-label": __17("Background Overlay", "elementor")
2916
+ "aria-label": __18("Background Overlay", "elementor")
2798
2917
  },
2799
- /* @__PURE__ */ React44.createElement(Tab, { label: __17("Image", "elementor"), ...getTabProps("image") }),
2800
- /* @__PURE__ */ React44.createElement(Tab, { label: __17("Gradient", "elementor"), ...getTabProps("gradient") }),
2801
- /* @__PURE__ */ React44.createElement(Tab, { label: __17("Color", "elementor"), ...getTabProps("color") })
2802
- )), /* @__PURE__ */ React44.createElement(TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps("image") }, /* @__PURE__ */ React44.createElement(PopoverContent, null, /* @__PURE__ */ React44.createElement(ImageOverlayContent, null))), /* @__PURE__ */ React44.createElement(TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps("gradient") }, /* @__PURE__ */ React44.createElement(BackgroundGradientColorControl, null)), /* @__PURE__ */ React44.createElement(TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps("color") }, /* @__PURE__ */ React44.createElement(PopoverContent, null, /* @__PURE__ */ React44.createElement(ColorOverlayContent, null))));
2918
+ /* @__PURE__ */ React45.createElement(Tab, { label: __18("Image", "elementor"), ...getTabProps("image") }),
2919
+ /* @__PURE__ */ React45.createElement(Tab, { label: __18("Gradient", "elementor"), ...getTabProps("gradient") }),
2920
+ /* @__PURE__ */ React45.createElement(Tab, { label: __18("Color", "elementor"), ...getTabProps("color") })
2921
+ )), /* @__PURE__ */ React45.createElement(TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps("image") }, /* @__PURE__ */ React45.createElement(PopoverContent, null, /* @__PURE__ */ React45.createElement(ImageOverlayContent, null))), /* @__PURE__ */ React45.createElement(TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps("gradient") }, /* @__PURE__ */ React45.createElement(BackgroundGradientColorControl, null)), /* @__PURE__ */ React45.createElement(TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps("color") }, /* @__PURE__ */ React45.createElement(PopoverContent, null, /* @__PURE__ */ React45.createElement(ColorOverlayContent, { anchorEl }))));
2803
2922
  };
2804
2923
  var ItemIcon2 = ({ value }) => {
2805
2924
  switch (value.$$type) {
2806
2925
  case "background-image-overlay":
2807
- return /* @__PURE__ */ React44.createElement(ItemIconImage, { value });
2926
+ return /* @__PURE__ */ React45.createElement(ItemIconImage, { value });
2808
2927
  case "background-color-overlay":
2809
- return /* @__PURE__ */ React44.createElement(ItemIconColor, { value });
2928
+ return /* @__PURE__ */ React45.createElement(ItemIconColor, { value });
2810
2929
  case "background-gradient-overlay":
2811
- return /* @__PURE__ */ React44.createElement(ItemIconGradient, { value });
2930
+ return /* @__PURE__ */ React45.createElement(ItemIconGradient, { value });
2812
2931
  default:
2813
2932
  return null;
2814
2933
  }
@@ -2821,11 +2940,11 @@ var extractColorFrom = (prop) => {
2821
2940
  };
2822
2941
  var ItemIconColor = ({ value: prop }) => {
2823
2942
  const color = extractColorFrom(prop);
2824
- return /* @__PURE__ */ React44.createElement(StyledUnstableColorIndicator, { size: "inherit", component: "span", value: color });
2943
+ return /* @__PURE__ */ React45.createElement(StyledUnstableColorIndicator, { size: "inherit", component: "span", value: color });
2825
2944
  };
2826
2945
  var ItemIconImage = ({ value }) => {
2827
2946
  const { imageUrl } = useImage(value);
2828
- return /* @__PURE__ */ React44.createElement(
2947
+ return /* @__PURE__ */ React45.createElement(
2829
2948
  CardMedia3,
2830
2949
  {
2831
2950
  image: imageUrl,
@@ -2840,47 +2959,47 @@ var ItemIconImage = ({ value }) => {
2840
2959
  };
2841
2960
  var ItemIconGradient = ({ value }) => {
2842
2961
  const gradient = getGradientValue(value);
2843
- return /* @__PURE__ */ React44.createElement(StyledUnstableColorIndicator, { size: "inherit", component: "span", value: gradient });
2962
+ return /* @__PURE__ */ React45.createElement(StyledUnstableColorIndicator, { size: "inherit", component: "span", value: gradient });
2844
2963
  };
2845
2964
  var ItemLabel2 = ({ value }) => {
2846
2965
  switch (value.$$type) {
2847
2966
  case "background-image-overlay":
2848
- return /* @__PURE__ */ React44.createElement(ItemLabelImage, { value });
2967
+ return /* @__PURE__ */ React45.createElement(ItemLabelImage, { value });
2849
2968
  case "background-color-overlay":
2850
- return /* @__PURE__ */ React44.createElement(ItemLabelColor, { value });
2969
+ return /* @__PURE__ */ React45.createElement(ItemLabelColor, { value });
2851
2970
  case "background-gradient-overlay":
2852
- return /* @__PURE__ */ React44.createElement(ItemLabelGradient, { value });
2971
+ return /* @__PURE__ */ React45.createElement(ItemLabelGradient, { value });
2853
2972
  default:
2854
2973
  return null;
2855
2974
  }
2856
2975
  };
2857
2976
  var ItemLabelColor = ({ value: prop }) => {
2858
2977
  const color = extractColorFrom(prop);
2859
- return /* @__PURE__ */ React44.createElement("span", null, color);
2978
+ return /* @__PURE__ */ React45.createElement("span", null, color);
2860
2979
  };
2861
2980
  var ItemLabelImage = ({ value }) => {
2862
2981
  const { imageTitle } = useImage(value);
2863
- return /* @__PURE__ */ React44.createElement("span", null, imageTitle);
2982
+ return /* @__PURE__ */ React45.createElement("span", null, imageTitle);
2864
2983
  };
2865
2984
  var ItemLabelGradient = ({ value }) => {
2866
2985
  if (value.value.type.value === "linear") {
2867
- return /* @__PURE__ */ React44.createElement("span", null, __17("Linear Gradient", "elementor"));
2986
+ return /* @__PURE__ */ React45.createElement("span", null, __18("Linear Gradient", "elementor"));
2868
2987
  }
2869
- return /* @__PURE__ */ React44.createElement("span", null, __17("Radial Gradient", "elementor"));
2988
+ return /* @__PURE__ */ React45.createElement("span", null, __18("Radial Gradient", "elementor"));
2870
2989
  };
2871
- var ColorOverlayContent = () => {
2990
+ var ColorOverlayContent = ({ anchorEl }) => {
2872
2991
  const propContext = useBoundProp(backgroundColorOverlayPropTypeUtil2);
2873
- return /* @__PURE__ */ React44.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React44.createElement(PropKeyProvider, { bind: "color" }, /* @__PURE__ */ React44.createElement(ColorControl, null)));
2992
+ return /* @__PURE__ */ React45.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React45.createElement(PropKeyProvider, { bind: "color" }, /* @__PURE__ */ React45.createElement(ColorControl, { anchorEl })));
2874
2993
  };
2875
2994
  var ImageOverlayContent = () => {
2876
2995
  const propContext = useBoundProp(backgroundImageOverlayPropTypeUtil2);
2877
- return /* @__PURE__ */ React44.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React44.createElement(PropKeyProvider, { bind: "image" }, /* @__PURE__ */ React44.createElement(Grid13, { container: true, spacing: 1, alignItems: "center" }, /* @__PURE__ */ React44.createElement(Grid13, { item: true, xs: 12 }, /* @__PURE__ */ React44.createElement(
2996
+ return /* @__PURE__ */ React45.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React45.createElement(PropKeyProvider, { bind: "image" }, /* @__PURE__ */ React45.createElement(Grid14, { container: true, spacing: 1, alignItems: "center" }, /* @__PURE__ */ React45.createElement(Grid14, { item: true, xs: 12 }, /* @__PURE__ */ React45.createElement(
2878
2997
  ImageControl,
2879
2998
  {
2880
- resolutionLabel: __17("Resolution", "elementor"),
2999
+ resolutionLabel: __18("Resolution", "elementor"),
2881
3000
  sizes: backgroundResolutionOptions
2882
3001
  }
2883
- )))), /* @__PURE__ */ React44.createElement(PropKeyProvider, { bind: "position" }, /* @__PURE__ */ React44.createElement(BackgroundImageOverlayPosition, null)), /* @__PURE__ */ React44.createElement(PropKeyProvider, { bind: "repeat" }, /* @__PURE__ */ React44.createElement(BackgroundImageOverlayRepeat, null)), /* @__PURE__ */ React44.createElement(PropKeyProvider, { bind: "size" }, /* @__PURE__ */ React44.createElement(BackgroundImageOverlaySize, null)), /* @__PURE__ */ React44.createElement(PropKeyProvider, { bind: "attachment" }, /* @__PURE__ */ React44.createElement(BackgroundImageOverlayAttachment, null)));
3002
+ )))), /* @__PURE__ */ React45.createElement(PropKeyProvider, { bind: "position" }, /* @__PURE__ */ React45.createElement(BackgroundImageOverlayPosition, null)), /* @__PURE__ */ React45.createElement(PropKeyProvider, { bind: "repeat" }, /* @__PURE__ */ React45.createElement(BackgroundImageOverlayRepeat, null)), /* @__PURE__ */ React45.createElement(PropKeyProvider, { bind: "size" }, /* @__PURE__ */ React45.createElement(BackgroundImageOverlaySize, null)), /* @__PURE__ */ React45.createElement(PropKeyProvider, { bind: "attachment" }, /* @__PURE__ */ React45.createElement(BackgroundImageOverlayAttachment, null)));
2884
3003
  };
2885
3004
  var StyledUnstableColorIndicator = styled6(UnstableColorIndicator2)(({ theme }) => ({
2886
3005
  borderRadius: `${theme.shape.borderRadius / 2}px`
@@ -2918,9 +3037,24 @@ var getGradientValue = (value) => {
2918
3037
  // src/controls/background-control/background-control.tsx
2919
3038
  var BackgroundControl = createControl(() => {
2920
3039
  const propContext = useBoundProp(backgroundPropTypeUtil);
2921
- return /* @__PURE__ */ React45.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React45.createElement(SectionContent, null, /* @__PURE__ */ React45.createElement(PropKeyProvider, { bind: "background-overlay" }, /* @__PURE__ */ React45.createElement(BackgroundOverlayRepeaterControl, null)), /* @__PURE__ */ React45.createElement(PropKeyProvider, { bind: "color" }, /* @__PURE__ */ React45.createElement(Grid14, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React45.createElement(Grid14, { item: true, xs: 6 }, /* @__PURE__ */ React45.createElement(ControlFormLabel, null, __18("Color", "elementor"))), /* @__PURE__ */ React45.createElement(Grid14, { item: true, xs: 6 }, /* @__PURE__ */ React45.createElement(ColorControl, null))))));
3040
+ const isUsingNestedProps = isExperimentActive("e_v_3_30");
3041
+ const colorLabel = __19("Color", "elementor");
3042
+ return /* @__PURE__ */ React46.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React46.createElement(SectionContent, null, /* @__PURE__ */ React46.createElement(PropKeyProvider, { bind: "background-overlay" }, /* @__PURE__ */ React46.createElement(BackgroundOverlayRepeaterControl, null)), /* @__PURE__ */ React46.createElement(PropKeyProvider, { bind: "color" }, /* @__PURE__ */ React46.createElement(Grid15, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React46.createElement(Grid15, { item: true, xs: 6 }, isUsingNestedProps ? /* @__PURE__ */ React46.createElement(ControlLabel, null, colorLabel) : /* @__PURE__ */ React46.createElement(ControlFormLabel, null, colorLabel)), /* @__PURE__ */ React46.createElement(Grid15, { item: true, xs: 6 }, /* @__PURE__ */ React46.createElement(ColorControl, null))))));
3043
+ });
3044
+
3045
+ // src/controls/switch-control.tsx
3046
+ import * as React47 from "react";
3047
+ import { booleanPropTypeUtil as booleanPropTypeUtil2 } from "@elementor/editor-props";
3048
+ import { Switch as Switch2 } from "@elementor/ui";
3049
+ var SwitchControl2 = createControl(() => {
3050
+ const { value, setValue } = useBoundProp(booleanPropTypeUtil2);
3051
+ const handleChange = (event) => {
3052
+ setValue(event.target.checked);
3053
+ };
3054
+ return /* @__PURE__ */ React47.createElement("div", { style: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React47.createElement(Switch2, { checked: !!value, onChange: handleChange, size: "small" }));
2922
3055
  });
2923
3056
  export {
3057
+ AspectRatioControl,
2924
3058
  BackgroundControl,
2925
3059
  BoxShadowRepeaterControl,
2926
3060
  ColorControl,
@@ -2943,6 +3077,7 @@ export {
2943
3077
  SizeControl,
2944
3078
  StrokeControl,
2945
3079
  SvgMediaControl,
3080
+ SwitchControl2 as SwitchControl,
2946
3081
  TextAreaControl,
2947
3082
  TextControl,
2948
3083
  ToggleControl,