@elementor/editor-controls 0.12.1 → 0.14.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.js CHANGED
@@ -352,7 +352,7 @@ var ImageMediaControl = createControl((props) => {
352
352
  startIcon: /* @__PURE__ */ React8.createElement(import_icons.UploadIcon, null),
353
353
  onClick: () => open({ mode: "upload" })
354
354
  },
355
- (0, import_i18n.__)("Upload image", "elementor")
355
+ (0, import_i18n.__)("Upload", "elementor")
356
356
  )))));
357
357
  });
358
358
 
@@ -385,7 +385,7 @@ var SelectControl = createControl(({ options, onChange }) => {
385
385
  var ImageControl = createControl(
386
386
  ({ sizes, resolutionLabel = (0, import_i18n2.__)("Image resolution", "elementor") }) => {
387
387
  const propContext = useBoundProp(import_editor_props3.imagePropTypeUtil);
388
- return /* @__PURE__ */ React10.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React10.createElement(import_ui6.Stack, { gap: 1.5 }, /* @__PURE__ */ React10.createElement(PropKeyProvider, { bind: "src" }, /* @__PURE__ */ React10.createElement(ControlLabel, null, " ", (0, import_i18n2.__)("Choose image", "elementor"), " "), /* @__PURE__ */ React10.createElement(ImageMediaControl, null)), /* @__PURE__ */ React10.createElement(PropKeyProvider, { bind: "size" }, /* @__PURE__ */ React10.createElement(import_ui6.Grid, { container: true, gap: 1.5, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React10.createElement(import_ui6.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React10.createElement(ControlLabel, null, " ", resolutionLabel, " ")), /* @__PURE__ */ React10.createElement(import_ui6.Grid, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React10.createElement(SelectControl, { options: sizes }))))));
388
+ return /* @__PURE__ */ React10.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React10.createElement(import_ui6.Stack, { gap: 1.5 }, /* @__PURE__ */ React10.createElement(PropKeyProvider, { bind: "src" }, /* @__PURE__ */ React10.createElement(ControlLabel, null, " ", (0, import_i18n2.__)("Image", "elementor"), " "), /* @__PURE__ */ React10.createElement(ImageMediaControl, null)), /* @__PURE__ */ React10.createElement(PropKeyProvider, { bind: "size" }, /* @__PURE__ */ React10.createElement(import_ui6.Grid, { container: true, gap: 1.5, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React10.createElement(import_ui6.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React10.createElement(ControlLabel, null, " ", resolutionLabel, " ")), /* @__PURE__ */ React10.createElement(import_ui6.Grid, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React10.createElement(SelectControl, { options: sizes }))))));
389
389
  }
390
390
  );
391
391
 
@@ -522,27 +522,74 @@ var useSyncExternalState = ({
522
522
  var defaultUnits = ["px", "%", "em", "rem", "vw", "vh"];
523
523
  var defaultUnit = "px";
524
524
  var defaultSize = NaN;
525
- var SizeControl = createControl(({ units: units2 = defaultUnits, placeholder, startIcon }) => {
526
- const { value, setValue } = useBoundProp(import_editor_props6.sizePropTypeUtil);
527
- const [state, setState] = useSyncExternalState({
528
- external: value,
529
- setExternal: setValue,
530
- persistWhen: (controlValue) => !!controlValue?.size || controlValue?.size === 0,
531
- fallback: (controlValue) => ({ unit: controlValue?.unit || defaultUnit, size: defaultSize })
532
- });
533
- const handleUnitChange = (unit) => {
534
- setState((prev) => ({
535
- size: prev?.size ?? defaultSize,
536
- unit
537
- }));
538
- };
539
- const handleSizeChange = (event) => {
540
- const { value: size } = event.target;
541
- setState((prev) => ({
542
- ...prev,
543
- size: size || size === "0" ? parseFloat(size) : defaultSize
544
- }));
525
+ var SizeControl = createControl(
526
+ ({ units: units2 = defaultUnits, extendedValues = [], placeholder, startIcon }) => {
527
+ const { value: sizeValue, setValue: setSizeValue } = useBoundProp(import_editor_props6.sizePropTypeUtil);
528
+ const [state, setState] = useSyncExternalState({
529
+ external: sizeValue,
530
+ setExternal: setSizeValue,
531
+ persistWhen: (controlValue) => !!controlValue?.size || controlValue?.size === 0,
532
+ fallback: (controlValue) => ({ unit: controlValue?.unit || defaultUnit, size: defaultSize })
533
+ });
534
+ const handleUnitChange = (unit) => {
535
+ setState((prev) => ({
536
+ size: prev?.size ?? defaultSize,
537
+ unit
538
+ }));
539
+ };
540
+ const handleSizeChange = (event) => {
541
+ const { value: size } = event.target;
542
+ setState((prev) => ({
543
+ ...prev,
544
+ size: size || size === "0" ? parseFloat(size) : defaultSize
545
+ }));
546
+ };
547
+ const inputProps = {
548
+ size: state.size,
549
+ unit: state.unit,
550
+ placeholder,
551
+ startIcon,
552
+ units: units2,
553
+ extendedValues,
554
+ handleSizeChange,
555
+ handleUnitChange
556
+ };
557
+ if (extendedValues?.length) {
558
+ return /* @__PURE__ */ React14.createElement(ExtendedSizeInput, { ...inputProps });
559
+ }
560
+ return /* @__PURE__ */ React14.createElement(SizeInput, { ...inputProps });
561
+ }
562
+ );
563
+ var ExtendedSizeInput = (props) => {
564
+ const { value: stringValue, setValue: setStringValue } = useBoundProp(import_editor_props6.stringPropTypeUtil);
565
+ const { extendedValues = [] } = props;
566
+ const unit = stringValue ?? props.unit;
567
+ const handleUnitChange = (newUnit) => {
568
+ if (extendedValues.includes(newUnit)) {
569
+ setStringValue(newUnit);
570
+ } else {
571
+ props.handleUnitChange(newUnit);
572
+ }
545
573
  };
574
+ return /* @__PURE__ */ React14.createElement(
575
+ SizeInput,
576
+ {
577
+ ...props,
578
+ units: [...props.units, ...extendedValues],
579
+ handleUnitChange,
580
+ unit
581
+ }
582
+ );
583
+ };
584
+ var SizeInput = ({
585
+ units: units2,
586
+ handleUnitChange,
587
+ handleSizeChange,
588
+ placeholder,
589
+ startIcon,
590
+ size,
591
+ unit
592
+ }) => {
546
593
  return /* @__PURE__ */ React14.createElement(ControlActions, null, /* @__PURE__ */ React14.createElement(
547
594
  TextFieldInnerSelection,
548
595
  {
@@ -551,17 +598,17 @@ var SizeControl = createControl(({ units: units2 = defaultUnits, placeholder, st
551
598
  {
552
599
  options: units2,
553
600
  onClick: handleUnitChange,
554
- value: state?.unit ?? defaultUnit
601
+ value: unit ?? defaultUnit
555
602
  }
556
603
  ),
557
604
  placeholder,
558
605
  startAdornment: startIcon ? /* @__PURE__ */ React14.createElement(import_ui10.InputAdornment, { position: "start" }, startIcon) : void 0,
559
606
  type: "number",
560
- value: Number.isNaN(state?.size) ? "" : state?.size,
607
+ value: Number.isNaN(size) ? "" : size,
561
608
  onChange: handleSizeChange
562
609
  }
563
610
  ));
564
- });
611
+ };
565
612
 
566
613
  // src/controls/stroke-control.tsx
567
614
  var React17 = __toESM(require("react"));
@@ -595,9 +642,9 @@ var StrokeControl = createControl(() => {
595
642
  var Control = ({ bind, label, children }) => /* @__PURE__ */ React17.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React17.createElement(import_ui13.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React17.createElement(import_ui13.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React17.createElement(ControlLabel, null, label)), /* @__PURE__ */ React17.createElement(import_ui13.Grid, { item: true, xs: 6 }, children)));
596
643
 
597
644
  // src/controls/box-shadow-repeater-control.tsx
598
- var React21 = __toESM(require("react"));
645
+ var React22 = __toESM(require("react"));
599
646
  var import_editor_props9 = require("@elementor/editor-props");
600
- var import_ui17 = require("@elementor/ui");
647
+ var import_ui18 = require("@elementor/ui");
601
648
  var import_i18n5 = require("@wordpress/i18n");
602
649
 
603
650
  // src/components/popover-content.tsx
@@ -616,11 +663,99 @@ var PopoverGridContainer = ({
616
663
  }) => /* @__PURE__ */ React19.createElement(import_ui15.Grid, { container: true, gap, alignItems, flexWrap }, children);
617
664
 
618
665
  // src/components/repeater.tsx
619
- var React20 = __toESM(require("react"));
666
+ var React21 = __toESM(require("react"));
620
667
  var import_react7 = require("react");
668
+ var import_icons3 = require("@elementor/icons");
669
+ var import_ui17 = require("@elementor/ui");
670
+ var import_i18n4 = require("@wordpress/i18n");
671
+
672
+ // src/components/sortable.tsx
673
+ var React20 = __toESM(require("react"));
621
674
  var import_icons2 = require("@elementor/icons");
622
675
  var import_ui16 = require("@elementor/ui");
623
- var import_i18n4 = require("@wordpress/i18n");
676
+ var SortableProvider = (props) => {
677
+ return /* @__PURE__ */ React20.createElement(import_ui16.List, { sx: { p: 0, m: 0 } }, /* @__PURE__ */ React20.createElement(
678
+ import_ui16.UnstableSortableProvider,
679
+ {
680
+ restrictAxis: true,
681
+ disableDragOverlay: false,
682
+ variant: "static",
683
+ ...props
684
+ }
685
+ ));
686
+ };
687
+ var SortableItem = ({ id, children }) => {
688
+ return /* @__PURE__ */ React20.createElement(
689
+ import_ui16.UnstableSortableItem,
690
+ {
691
+ id,
692
+ render: ({
693
+ itemProps,
694
+ triggerProps,
695
+ itemStyle,
696
+ triggerStyle,
697
+ isDragOverlay,
698
+ showDropIndication,
699
+ dropIndicationStyle
700
+ }) => {
701
+ return /* @__PURE__ */ React20.createElement(
702
+ StyledListItem,
703
+ {
704
+ ...itemProps,
705
+ style: itemStyle,
706
+ sx: { backgroundColor: isDragOverlay ? "background.paper" : void 0 }
707
+ },
708
+ /* @__PURE__ */ React20.createElement(SortableTrigger, { ...triggerProps, style: triggerStyle }),
709
+ children,
710
+ showDropIndication && /* @__PURE__ */ React20.createElement(StyledDivider, { style: dropIndicationStyle })
711
+ );
712
+ }
713
+ }
714
+ );
715
+ };
716
+ var StyledListItem = (0, import_ui16.styled)(import_ui16.ListItem)`
717
+ position: relative;
718
+ margin-inline: 0px;
719
+ padding-inline: 0px;
720
+ padding-block: ${({ theme }) => theme.spacing(0.5)};
721
+
722
+ & .class-item-sortable-trigger {
723
+ color: ${({ theme }) => theme.palette.action.active};
724
+ height: 100%;
725
+ display: flex;
726
+ align-items: center;
727
+ visibility: hidden;
728
+ position: absolute;
729
+ top: 50%;
730
+ padding-inline-end: ${({ theme }) => theme.spacing(0.5)};
731
+ transform: translate( -75%, -50% );
732
+ }
733
+
734
+ &:hover {
735
+ & .class-item-sortable-trigger {
736
+ visibility: visible;
737
+ }
738
+ }
739
+ `;
740
+ var SortableTrigger = (props) => /* @__PURE__ */ React20.createElement("div", { ...props, role: "button", className: "class-item-sortable-trigger" }, /* @__PURE__ */ React20.createElement(import_icons2.GripVerticalIcon, { fontSize: "tiny" }));
741
+ var StyledDivider = (0, import_ui16.styled)(import_ui16.Divider)`
742
+ height: 0px;
743
+ border: none;
744
+ overflow: visible;
745
+
746
+ &:after {
747
+ --height: 2px;
748
+ content: '';
749
+ display: block;
750
+ width: 100%;
751
+ height: var( --height );
752
+ margin-block: calc( -1 * var( --height ) / 2 );
753
+ border-radius: ${({ theme }) => theme.spacing(0.5)};
754
+ background-color: ${({ theme }) => theme.palette.text.primary};
755
+ }
756
+ `;
757
+
758
+ // src/components/repeater.tsx
624
759
  var SIZE = "tiny";
625
760
  var Repeater = ({
626
761
  label,
@@ -629,27 +764,50 @@ var Repeater = ({
629
764
  values: repeaterValues = [],
630
765
  setValues: setRepeaterValues
631
766
  }) => {
767
+ const [items, setItems] = useSyncExternalState({
768
+ external: repeaterValues,
769
+ // @ts-expect-error - as long as persistWhen => true, value will never be null
770
+ setExternal: setRepeaterValues,
771
+ persistWhen: () => true
772
+ });
773
+ const [uniqueKeys, setUniqueKeys] = (0, import_react7.useState)(items.map((_, index) => index));
774
+ const generateNextKey = (source) => {
775
+ return 1 + Math.max(0, ...source);
776
+ };
632
777
  const addRepeaterItem = () => {
633
778
  const newItem = structuredClone(itemSettings.initialValues);
779
+ const newKey = generateNextKey(uniqueKeys);
634
780
  if (addToBottom) {
635
- return setRepeaterValues([...repeaterValues, newItem]);
781
+ setItems([...items, newItem]);
782
+ setUniqueKeys([...uniqueKeys, newKey]);
783
+ } else {
784
+ setItems([newItem, ...items]);
785
+ setUniqueKeys([newKey, ...uniqueKeys]);
636
786
  }
637
- setRepeaterValues([newItem, ...repeaterValues]);
638
787
  };
639
788
  const duplicateRepeaterItem = (index) => {
640
- setRepeaterValues([
641
- ...repeaterValues.slice(0, index),
642
- structuredClone(repeaterValues[index]),
643
- ...repeaterValues.slice(index)
644
- ]);
789
+ const newItem = structuredClone(items[index]);
790
+ const newKey = generateNextKey(uniqueKeys);
791
+ const atPosition = 1 + index;
792
+ setItems([...items.slice(0, atPosition), newItem, ...items.slice(atPosition)]);
793
+ setUniqueKeys([...uniqueKeys.slice(0, atPosition), newKey, ...uniqueKeys.slice(atPosition)]);
645
794
  };
646
795
  const removeRepeaterItem = (index) => {
647
- setRepeaterValues(repeaterValues.filter((_, i) => i !== index));
796
+ setUniqueKeys(
797
+ uniqueKeys.filter((_, pos) => {
798
+ return pos !== index;
799
+ })
800
+ );
801
+ setItems(
802
+ items.filter((_, pos) => {
803
+ return pos !== index;
804
+ })
805
+ );
648
806
  };
649
807
  const toggleDisableRepeaterItem = (index) => {
650
- setRepeaterValues(
651
- repeaterValues.map((value, i) => {
652
- if (i === index) {
808
+ setItems(
809
+ items.map((value, pos) => {
810
+ if (pos === index) {
653
811
  const { disabled, ...rest } = value;
654
812
  return { ...rest, ...disabled ? {} : { disabled: true } };
655
813
  }
@@ -657,20 +815,34 @@ var Repeater = ({
657
815
  })
658
816
  );
659
817
  };
660
- return /* @__PURE__ */ React20.createElement(SectionContent, null, /* @__PURE__ */ React20.createElement(import_ui16.Stack, { direction: "row", justifyContent: "space-between", alignItems: "center" }, /* @__PURE__ */ React20.createElement(import_ui16.Typography, { component: "label", variant: "caption", color: "text.secondary" }, label), /* @__PURE__ */ React20.createElement(import_ui16.IconButton, { size: SIZE, onClick: addRepeaterItem, "aria-label": (0, import_i18n4.__)("Add item", "elementor") }, /* @__PURE__ */ React20.createElement(import_icons2.PlusIcon, { fontSize: SIZE }))), /* @__PURE__ */ React20.createElement(import_ui16.Stack, { gap: 1, sx: { "&:empty": { display: "none" } } }, repeaterValues.map((value, index) => /* @__PURE__ */ React20.createElement(
661
- RepeaterItem,
662
- {
663
- key: index,
664
- bind: String(index),
665
- disabled: value.disabled,
666
- label: /* @__PURE__ */ React20.createElement(itemSettings.Label, { value }),
667
- startIcon: /* @__PURE__ */ React20.createElement(itemSettings.Icon, { value }),
668
- removeItem: () => removeRepeaterItem(index),
669
- duplicateItem: () => duplicateRepeaterItem(index),
670
- toggleDisableItem: () => toggleDisableRepeaterItem(index)
671
- },
672
- (props) => /* @__PURE__ */ React20.createElement(itemSettings.Content, { ...props, value, bind: String(index) })
673
- ))));
818
+ const onChangeOrder = (reorderedKeys) => {
819
+ setUniqueKeys(reorderedKeys);
820
+ setItems((prevItems) => {
821
+ return reorderedKeys.map((keyValue) => {
822
+ const index = uniqueKeys.indexOf(keyValue);
823
+ return prevItems[index];
824
+ });
825
+ });
826
+ };
827
+ return /* @__PURE__ */ React21.createElement(SectionContent, null, /* @__PURE__ */ React21.createElement(import_ui17.Stack, { direction: "row", justifyContent: "space-between", alignItems: "center" }, /* @__PURE__ */ React21.createElement(import_ui17.Typography, { component: "label", variant: "caption", color: "text.secondary" }, label), /* @__PURE__ */ React21.createElement(import_ui17.IconButton, { size: SIZE, onClick: addRepeaterItem, "aria-label": (0, import_i18n4.__)("Add item", "elementor") }, /* @__PURE__ */ React21.createElement(import_icons3.PlusIcon, { fontSize: SIZE }))), 0 < uniqueKeys.length && /* @__PURE__ */ React21.createElement(SortableProvider, { value: uniqueKeys, onChange: onChangeOrder }, uniqueKeys.map((key, index) => {
828
+ const value = items[index];
829
+ if (!value) {
830
+ return null;
831
+ }
832
+ return /* @__PURE__ */ React21.createElement(SortableItem, { id: key, key: `sortable-${key}` }, /* @__PURE__ */ React21.createElement(
833
+ RepeaterItem,
834
+ {
835
+ bind: String(index),
836
+ disabled: value?.disabled,
837
+ label: /* @__PURE__ */ React21.createElement(itemSettings.Label, { value }),
838
+ startIcon: /* @__PURE__ */ React21.createElement(itemSettings.Icon, { value }),
839
+ removeItem: () => removeRepeaterItem(index),
840
+ duplicateItem: () => duplicateRepeaterItem(index),
841
+ toggleDisableItem: () => toggleDisableRepeaterItem(index)
842
+ },
843
+ (props) => /* @__PURE__ */ React21.createElement(itemSettings.Content, { ...props, value, bind: String(index) })
844
+ ));
845
+ })));
674
846
  };
675
847
  var RepeaterItem = ({
676
848
  label,
@@ -685,46 +857,48 @@ var RepeaterItem = ({
685
857
  const popupId = `repeater-popup-${bind}`;
686
858
  const controlRef = (0, import_react7.useRef)(null);
687
859
  const [anchorEl, setAnchorEl] = (0, import_react7.useState)(null);
688
- const popoverState = (0, import_ui16.usePopupState)({ popupId, variant: "popover" });
689
- const popoverProps = (0, import_ui16.bindPopover)(popoverState);
690
- return /* @__PURE__ */ React20.createElement(React20.Fragment, null, /* @__PURE__ */ React20.createElement(
691
- import_ui16.UnstableTag,
860
+ const popoverState = (0, import_ui17.usePopupState)({ popupId, variant: "popover" });
861
+ const popoverProps = (0, import_ui17.bindPopover)(popoverState);
862
+ return /* @__PURE__ */ React21.createElement(React21.Fragment, null, /* @__PURE__ */ React21.createElement(
863
+ import_ui17.UnstableTag,
692
864
  {
693
865
  label,
694
866
  showActionsOnHover: true,
867
+ fullWidth: true,
695
868
  ref: controlRef,
696
869
  variant: "outlined",
697
870
  "aria-label": (0, import_i18n4.__)("Open item", "elementor"),
698
- ...(0, import_ui16.bindTrigger)(popoverState),
871
+ ...(0, import_ui17.bindTrigger)(popoverState),
699
872
  startIcon,
700
- actions: /* @__PURE__ */ React20.createElement(React20.Fragment, null, /* @__PURE__ */ React20.createElement(
701
- import_ui16.IconButton,
873
+ actions: /* @__PURE__ */ React21.createElement(React21.Fragment, null, /* @__PURE__ */ React21.createElement(
874
+ import_ui17.IconButton,
702
875
  {
703
876
  size: SIZE,
704
877
  onClick: duplicateItem,
705
878
  "aria-label": (0, import_i18n4.__)("Duplicate item", "elementor")
706
879
  },
707
- /* @__PURE__ */ React20.createElement(import_icons2.CopyIcon, { fontSize: SIZE })
708
- ), /* @__PURE__ */ React20.createElement(
709
- import_ui16.IconButton,
880
+ /* @__PURE__ */ React21.createElement(import_icons3.CopyIcon, { fontSize: SIZE })
881
+ ), /* @__PURE__ */ React21.createElement(
882
+ import_ui17.IconButton,
710
883
  {
711
884
  size: SIZE,
712
885
  onClick: toggleDisableItem,
713
886
  "aria-label": disabled ? (0, import_i18n4.__)("Enable item", "elementor") : (0, import_i18n4.__)("Disable item", "elementor")
714
887
  },
715
- disabled ? /* @__PURE__ */ React20.createElement(import_icons2.EyeOffIcon, { fontSize: SIZE }) : /* @__PURE__ */ React20.createElement(import_icons2.EyeIcon, { fontSize: SIZE })
716
- ), /* @__PURE__ */ React20.createElement(
717
- import_ui16.IconButton,
888
+ disabled ? /* @__PURE__ */ React21.createElement(import_icons3.EyeOffIcon, { fontSize: SIZE }) : /* @__PURE__ */ React21.createElement(import_icons3.EyeIcon, { fontSize: SIZE })
889
+ ), /* @__PURE__ */ React21.createElement(
890
+ import_ui17.IconButton,
718
891
  {
719
892
  size: SIZE,
720
893
  onClick: removeItem,
721
894
  "aria-label": (0, import_i18n4.__)("Remove item", "elementor")
722
895
  },
723
- /* @__PURE__ */ React20.createElement(import_icons2.XIcon, { fontSize: SIZE })
724
- ))
896
+ /* @__PURE__ */ React21.createElement(import_icons3.XIcon, { fontSize: SIZE })
897
+ )),
898
+ sx: { backgroundColor: "background.paper" }
725
899
  }
726
- ), /* @__PURE__ */ React20.createElement(
727
- import_ui16.Popover,
900
+ ), /* @__PURE__ */ React21.createElement(
901
+ import_ui17.Popover,
728
902
  {
729
903
  disablePortal: true,
730
904
  slotProps: {
@@ -736,14 +910,14 @@ var RepeaterItem = ({
736
910
  anchorOrigin: { vertical: "bottom", horizontal: "left" },
737
911
  ...popoverProps
738
912
  },
739
- /* @__PURE__ */ React20.createElement(import_ui16.Box, null, children({ anchorEl }))
913
+ /* @__PURE__ */ React21.createElement(import_ui17.Box, null, children({ anchorEl }))
740
914
  ));
741
915
  };
742
916
 
743
917
  // src/controls/box-shadow-repeater-control.tsx
744
918
  var BoxShadowRepeaterControl = createControl(() => {
745
919
  const { propType, value, setValue } = useBoundProp(import_editor_props9.boxShadowPropTypeUtil);
746
- return /* @__PURE__ */ React21.createElement(PropProvider, { propType, value, setValue }, /* @__PURE__ */ React21.createElement(
920
+ return /* @__PURE__ */ React22.createElement(PropProvider, { propType, value, setValue }, /* @__PURE__ */ React22.createElement(
747
921
  Repeater,
748
922
  {
749
923
  values: value ?? [],
@@ -758,13 +932,13 @@ var BoxShadowRepeaterControl = createControl(() => {
758
932
  }
759
933
  ));
760
934
  });
761
- var ItemIcon = ({ value }) => /* @__PURE__ */ React21.createElement(import_ui17.UnstableColorIndicator, { size: "inherit", component: "span", value: value.value.color.value });
935
+ var ItemIcon = ({ value }) => /* @__PURE__ */ React22.createElement(import_ui18.UnstableColorIndicator, { size: "inherit", component: "span", value: value.value.color.value });
762
936
  var ItemContent = ({ anchorEl, bind }) => {
763
- return /* @__PURE__ */ React21.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React21.createElement(Content, { anchorEl }));
937
+ return /* @__PURE__ */ React22.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React22.createElement(Content, { anchorEl }));
764
938
  };
765
939
  var Content = ({ anchorEl }) => {
766
940
  const { propType, value, setValue } = useBoundProp(import_editor_props9.shadowPropTypeUtil);
767
- return /* @__PURE__ */ React21.createElement(PropProvider, { propType, value, setValue }, /* @__PURE__ */ React21.createElement(PopoverContent, { p: 1.5 }, /* @__PURE__ */ React21.createElement(PopoverGridContainer, null, /* @__PURE__ */ React21.createElement(Control2, { bind: "color", label: (0, import_i18n5.__)("Color", "elementor") }, /* @__PURE__ */ React21.createElement(
941
+ return /* @__PURE__ */ React22.createElement(PropProvider, { propType, value, setValue }, /* @__PURE__ */ React22.createElement(PopoverContent, { p: 1.5 }, /* @__PURE__ */ React22.createElement(PopoverGridContainer, null, /* @__PURE__ */ React22.createElement(Control2, { bind: "color", label: (0, import_i18n5.__)("Color", "elementor") }, /* @__PURE__ */ React22.createElement(
768
942
  ColorControl,
769
943
  {
770
944
  slotProps: {
@@ -781,7 +955,7 @@ var Content = ({ anchorEl }) => {
781
955
  }
782
956
  }
783
957
  }
784
- )), /* @__PURE__ */ React21.createElement(Control2, { bind: "position", label: (0, import_i18n5.__)("Position", "elementor") }, /* @__PURE__ */ React21.createElement(
958
+ )), /* @__PURE__ */ React22.createElement(Control2, { bind: "position", label: (0, import_i18n5.__)("Position", "elementor") }, /* @__PURE__ */ React22.createElement(
785
959
  SelectControl,
786
960
  {
787
961
  options: [
@@ -789,9 +963,9 @@ var Content = ({ anchorEl }) => {
789
963
  { label: (0, import_i18n5.__)("Outset", "elementor"), value: null }
790
964
  ]
791
965
  }
792
- ))), /* @__PURE__ */ React21.createElement(PopoverGridContainer, null, /* @__PURE__ */ React21.createElement(Control2, { bind: "hOffset", label: (0, import_i18n5.__)("Horizontal", "elementor") }, /* @__PURE__ */ React21.createElement(SizeControl, null)), /* @__PURE__ */ React21.createElement(Control2, { bind: "vOffset", label: (0, import_i18n5.__)("Vertical", "elementor") }, /* @__PURE__ */ React21.createElement(SizeControl, null))), /* @__PURE__ */ React21.createElement(PopoverGridContainer, null, /* @__PURE__ */ React21.createElement(Control2, { bind: "blur", label: (0, import_i18n5.__)("Blur", "elementor") }, /* @__PURE__ */ React21.createElement(SizeControl, null)), /* @__PURE__ */ React21.createElement(Control2, { bind: "spread", label: (0, import_i18n5.__)("Spread", "elementor") }, /* @__PURE__ */ React21.createElement(SizeControl, null)))));
966
+ ))), /* @__PURE__ */ React22.createElement(PopoverGridContainer, null, /* @__PURE__ */ React22.createElement(Control2, { bind: "hOffset", label: (0, import_i18n5.__)("Horizontal", "elementor") }, /* @__PURE__ */ React22.createElement(SizeControl, null)), /* @__PURE__ */ React22.createElement(Control2, { bind: "vOffset", label: (0, import_i18n5.__)("Vertical", "elementor") }, /* @__PURE__ */ React22.createElement(SizeControl, null))), /* @__PURE__ */ React22.createElement(PopoverGridContainer, null, /* @__PURE__ */ React22.createElement(Control2, { bind: "blur", label: (0, import_i18n5.__)("Blur", "elementor") }, /* @__PURE__ */ React22.createElement(SizeControl, null)), /* @__PURE__ */ React22.createElement(Control2, { bind: "spread", label: (0, import_i18n5.__)("Spread", "elementor") }, /* @__PURE__ */ React22.createElement(SizeControl, null)))));
793
967
  };
794
- var Control2 = ({ label, bind, children }) => /* @__PURE__ */ React21.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React21.createElement(import_ui17.Grid, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React21.createElement(import_ui17.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React21.createElement(import_ui17.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React21.createElement(import_ui17.Typography, { component: "label", variant: "caption", color: "text.secondary" }, label)), /* @__PURE__ */ React21.createElement(import_ui17.Grid, { item: true, xs: 12 }, children))));
968
+ var Control2 = ({ label, bind, children }) => /* @__PURE__ */ React22.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React22.createElement(import_ui18.Grid, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React22.createElement(import_ui18.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React22.createElement(import_ui18.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React22.createElement(import_ui18.Typography, { component: "label", variant: "caption", color: "text.secondary" }, label)), /* @__PURE__ */ React22.createElement(import_ui18.Grid, { item: true, xs: 12 }, children))));
795
969
  var ItemLabel = ({ value }) => {
796
970
  const { position, hOffset, vOffset, blur, spread } = value.value;
797
971
  const { size: blurSize = "", unit: blurUnit = "" } = blur?.value || {};
@@ -805,7 +979,7 @@ var ItemLabel = ({ value }) => {
805
979
  blurSize + blurUnit,
806
980
  spreadSize + spreadUnit
807
981
  ].join(" ");
808
- return /* @__PURE__ */ React21.createElement("span", { style: { textTransform: "capitalize" } }, positionLabel, ": ", sizes);
982
+ return /* @__PURE__ */ React22.createElement("span", { style: { textTransform: "capitalize" } }, positionLabel, ": ", sizes);
809
983
  };
810
984
  var initialShadow = {
811
985
  $$type: "shadow",
@@ -835,13 +1009,13 @@ var initialShadow = {
835
1009
  };
836
1010
 
837
1011
  // src/controls/toggle-control.tsx
838
- var React23 = __toESM(require("react"));
1012
+ var React24 = __toESM(require("react"));
839
1013
  var import_editor_props10 = require("@elementor/editor-props");
840
1014
 
841
1015
  // src/components/control-toggle-button-group.tsx
842
- var React22 = __toESM(require("react"));
843
- var import_ui18 = require("@elementor/ui");
844
- var StyledToggleButtonGroup = (0, import_ui18.styled)(import_ui18.ToggleButtonGroup)`
1016
+ var React23 = __toESM(require("react"));
1017
+ var import_ui19 = require("@elementor/ui");
1018
+ var StyledToggleButtonGroup = (0, import_ui19.styled)(import_ui19.ToggleButtonGroup)`
845
1019
  ${({ justify }) => `justify-content: ${justify};`}
846
1020
  `;
847
1021
  var ControlToggleButtonGroup = ({
@@ -853,11 +1027,11 @@ var ControlToggleButtonGroup = ({
853
1027
  exclusive = false,
854
1028
  fullWidth = false
855
1029
  }) => {
856
- const isRtl = "rtl" === (0, import_ui18.useTheme)().direction;
1030
+ const isRtl = "rtl" === (0, import_ui19.useTheme)().direction;
857
1031
  const handleChange = (_, newValue) => {
858
1032
  onChange(newValue);
859
1033
  };
860
- return /* @__PURE__ */ React22.createElement(
1034
+ return /* @__PURE__ */ React23.createElement(
861
1035
  StyledToggleButtonGroup,
862
1036
  {
863
1037
  justify,
@@ -869,8 +1043,8 @@ var ControlToggleButtonGroup = ({
869
1043
  }
870
1044
  },
871
1045
  items.map(
872
- ({ label, value: buttonValue, renderContent: Content3, showTooltip }) => showTooltip ? /* @__PURE__ */ React22.createElement(import_ui18.Tooltip, { key: buttonValue, title: label, disableFocusListener: true, placement: "top" }, /* @__PURE__ */ React22.createElement(import_ui18.ToggleButton, { value: buttonValue, "aria-label": label, size, fullWidth }, /* @__PURE__ */ React22.createElement(Content3, { size }))) : /* @__PURE__ */ React22.createElement(
873
- import_ui18.ToggleButton,
1046
+ ({ label, value: buttonValue, renderContent: Content3, showTooltip }) => showTooltip ? /* @__PURE__ */ React23.createElement(import_ui19.Tooltip, { key: buttonValue, title: label, disableFocusListener: true, placement: "top" }, /* @__PURE__ */ React23.createElement(import_ui19.ToggleButton, { value: buttonValue, "aria-label": label, size, fullWidth }, /* @__PURE__ */ React23.createElement(Content3, { size }))) : /* @__PURE__ */ React23.createElement(
1047
+ import_ui19.ToggleButton,
874
1048
  {
875
1049
  key: buttonValue,
876
1050
  value: buttonValue,
@@ -878,7 +1052,7 @@ var ControlToggleButtonGroup = ({
878
1052
  size,
879
1053
  fullWidth
880
1054
  },
881
- /* @__PURE__ */ React22.createElement(Content3, { size })
1055
+ /* @__PURE__ */ React23.createElement(Content3, { size })
882
1056
  )
883
1057
  )
884
1058
  );
@@ -891,7 +1065,7 @@ var ToggleControl = createControl(
891
1065
  const handleToggle = (option) => {
892
1066
  setValue(option);
893
1067
  };
894
- return /* @__PURE__ */ React23.createElement(
1068
+ return /* @__PURE__ */ React24.createElement(
895
1069
  ControlToggleButtonGroup,
896
1070
  {
897
1071
  items: options,
@@ -906,9 +1080,9 @@ var ToggleControl = createControl(
906
1080
  );
907
1081
 
908
1082
  // src/controls/number-control.tsx
909
- var React24 = __toESM(require("react"));
1083
+ var React25 = __toESM(require("react"));
910
1084
  var import_editor_props11 = require("@elementor/editor-props");
911
- var import_ui19 = require("@elementor/ui");
1085
+ var import_ui20 = require("@elementor/ui");
912
1086
  var isEmptyOrNaN = (value) => value === null || value === void 0 || value === "" || Number.isNaN(Number(value));
913
1087
  var NumberControl = createControl(
914
1088
  ({
@@ -928,8 +1102,8 @@ var NumberControl = createControl(
928
1102
  const formattedValue = shouldForceInt ? +parseInt(eventValue) : Number(eventValue);
929
1103
  setValue(Math.min(Math.max(formattedValue, min), max));
930
1104
  };
931
- return /* @__PURE__ */ React24.createElement(ControlActions, null, /* @__PURE__ */ React24.createElement(
932
- import_ui19.TextField,
1105
+ return /* @__PURE__ */ React25.createElement(ControlActions, null, /* @__PURE__ */ React25.createElement(
1106
+ import_ui20.TextField,
933
1107
  {
934
1108
  size: "tiny",
935
1109
  type: "number",
@@ -944,10 +1118,10 @@ var NumberControl = createControl(
944
1118
  );
945
1119
 
946
1120
  // src/controls/equal-unequal-sizes-control.tsx
947
- var React25 = __toESM(require("react"));
1121
+ var React26 = __toESM(require("react"));
948
1122
  var import_react8 = require("react");
949
1123
  var import_editor_props12 = require("@elementor/editor-props");
950
- var import_ui20 = require("@elementor/ui");
1124
+ var import_ui21 = require("@elementor/ui");
951
1125
  var import_i18n6 = require("@wordpress/i18n");
952
1126
  var isEqualSizes = (propValue, items) => {
953
1127
  const values = Object.values(propValue);
@@ -967,7 +1141,7 @@ function EqualUnequalSizesControl({
967
1141
  }) {
968
1142
  const popupId = (0, import_react8.useId)();
969
1143
  const controlRef = (0, import_react8.useRef)(null);
970
- const popupState = (0, import_ui20.usePopupState)({ variant: "popover", popupId });
1144
+ const popupState = (0, import_ui21.usePopupState)({ variant: "popover", popupId });
971
1145
  const {
972
1146
  propType: multiSizePropType,
973
1147
  value: multiSizeValue,
@@ -1001,18 +1175,18 @@ function EqualUnequalSizesControl({
1001
1175
  return splitEqualValue() ?? null;
1002
1176
  };
1003
1177
  const isMixed = !!multiSizeValue;
1004
- return /* @__PURE__ */ React25.createElement(React25.Fragment, null, /* @__PURE__ */ React25.createElement(import_ui20.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap", ref: controlRef }, /* @__PURE__ */ React25.createElement(import_ui20.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React25.createElement(ControlLabel, null, label)), /* @__PURE__ */ React25.createElement(import_ui20.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React25.createElement(import_ui20.Stack, { direction: "row", alignItems: "center", gap: 1 }, /* @__PURE__ */ React25.createElement(SizeControl, { placeholder: isMixed ? (0, import_i18n6.__)("Mixed", "elementor") : void 0 }), /* @__PURE__ */ React25.createElement(
1005
- import_ui20.ToggleButton,
1178
+ return /* @__PURE__ */ React26.createElement(React26.Fragment, null, /* @__PURE__ */ React26.createElement(import_ui21.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap", ref: controlRef }, /* @__PURE__ */ React26.createElement(import_ui21.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React26.createElement(ControlLabel, null, label)), /* @__PURE__ */ React26.createElement(import_ui21.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React26.createElement(import_ui21.Stack, { direction: "row", alignItems: "center", gap: 1 }, /* @__PURE__ */ React26.createElement(SizeControl, { placeholder: isMixed ? (0, import_i18n6.__)("Mixed", "elementor") : void 0 }), /* @__PURE__ */ React26.createElement(
1179
+ import_ui21.ToggleButton,
1006
1180
  {
1007
1181
  size: "tiny",
1008
1182
  value: "check",
1009
1183
  sx: { marginLeft: "auto" },
1010
- ...(0, import_ui20.bindToggle)(popupState),
1184
+ ...(0, import_ui21.bindToggle)(popupState),
1011
1185
  selected: popupState.isOpen
1012
1186
  },
1013
1187
  icon
1014
- )))), /* @__PURE__ */ React25.createElement(
1015
- import_ui20.Popover,
1188
+ )))), /* @__PURE__ */ React26.createElement(
1189
+ import_ui21.Popover,
1016
1190
  {
1017
1191
  disablePortal: true,
1018
1192
  disableScrollLock: true,
@@ -1024,94 +1198,109 @@ function EqualUnequalSizesControl({
1024
1198
  vertical: "top",
1025
1199
  horizontal: "right"
1026
1200
  },
1027
- ...(0, import_ui20.bindPopover)(popupState),
1201
+ ...(0, import_ui21.bindPopover)(popupState),
1028
1202
  slotProps: {
1029
1203
  paper: { sx: { mt: 0.5, width: controlRef.current?.getBoundingClientRect().width } }
1030
1204
  }
1031
1205
  },
1032
- /* @__PURE__ */ React25.createElement(PropProvider, { propType: multiSizePropType, value: getMultiSizeValues(), setValue: setNestedProp }, /* @__PURE__ */ React25.createElement(PopoverContent, { p: 1.5 }, /* @__PURE__ */ React25.createElement(PopoverGridContainer, null, /* @__PURE__ */ React25.createElement(MultiSizeValueControl, { item: items[0] }), /* @__PURE__ */ React25.createElement(MultiSizeValueControl, { item: items[1] })), /* @__PURE__ */ React25.createElement(PopoverGridContainer, null, /* @__PURE__ */ React25.createElement(MultiSizeValueControl, { item: items[3] }), /* @__PURE__ */ React25.createElement(MultiSizeValueControl, { item: items[2] }))))
1206
+ /* @__PURE__ */ React26.createElement(PropProvider, { propType: multiSizePropType, value: getMultiSizeValues(), setValue: setNestedProp }, /* @__PURE__ */ React26.createElement(PopoverContent, { p: 1.5 }, /* @__PURE__ */ React26.createElement(PopoverGridContainer, null, /* @__PURE__ */ React26.createElement(MultiSizeValueControl, { item: items[0] }), /* @__PURE__ */ React26.createElement(MultiSizeValueControl, { item: items[1] })), /* @__PURE__ */ React26.createElement(PopoverGridContainer, null, /* @__PURE__ */ React26.createElement(MultiSizeValueControl, { item: items[3] }), /* @__PURE__ */ React26.createElement(MultiSizeValueControl, { item: items[2] }))))
1033
1207
  ));
1034
1208
  }
1035
- var MultiSizeValueControl = ({ item }) => /* @__PURE__ */ React25.createElement(PropKeyProvider, { bind: item.bind }, /* @__PURE__ */ React25.createElement(import_ui20.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React25.createElement(import_ui20.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React25.createElement(import_ui20.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React25.createElement(ControlLabel, null, item.label)), /* @__PURE__ */ React25.createElement(import_ui20.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React25.createElement(SizeControl, { startIcon: item.icon })))));
1209
+ var MultiSizeValueControl = ({ item }) => /* @__PURE__ */ React26.createElement(PropKeyProvider, { bind: item.bind }, /* @__PURE__ */ React26.createElement(import_ui21.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React26.createElement(import_ui21.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React26.createElement(import_ui21.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React26.createElement(ControlLabel, null, item.label)), /* @__PURE__ */ React26.createElement(import_ui21.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React26.createElement(SizeControl, { startIcon: item.icon })))));
1036
1210
 
1037
1211
  // src/controls/linked-dimensions-control.tsx
1038
- var React26 = __toESM(require("react"));
1212
+ var React27 = __toESM(require("react"));
1039
1213
  var import_editor_props13 = require("@elementor/editor-props");
1040
- var import_icons3 = require("@elementor/icons");
1041
- var import_ui21 = require("@elementor/ui");
1214
+ var import_icons4 = require("@elementor/icons");
1215
+ var import_ui22 = require("@elementor/ui");
1042
1216
  var import_i18n7 = require("@wordpress/i18n");
1043
- var LinkedDimensionsControl = createControl(({ label }) => {
1044
- const { value: dimensionsValue, setValue: setDimensionsValue, propType } = useBoundProp(import_editor_props13.dimensionsPropTypeUtil);
1045
- const { value: sizeValue, setValue: setSizeValue } = useBoundProp(import_editor_props13.sizePropTypeUtil);
1046
- const isLinked = !dimensionsValue && !sizeValue ? true : !!sizeValue;
1047
- const onLinkToggle = () => {
1048
- if (!isLinked) {
1049
- setSizeValue(dimensionsValue?.top?.value);
1050
- return;
1051
- }
1052
- const value = sizeValue ? import_editor_props13.sizePropTypeUtil.create(sizeValue) : null;
1053
- setDimensionsValue({
1054
- top: value,
1055
- right: value,
1056
- bottom: value,
1057
- left: value
1058
- });
1059
- };
1060
- const LinkedIcon = isLinked ? import_icons3.LinkIcon : import_icons3.DetachIcon;
1061
- return /* @__PURE__ */ React26.createElement(PropProvider, { propType, value: dimensionsValue, setValue: setDimensionsValue }, /* @__PURE__ */ React26.createElement(import_ui21.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React26.createElement(ControlLabel, null, label), /* @__PURE__ */ React26.createElement(
1062
- import_ui21.ToggleButton,
1063
- {
1064
- "aria-label": (0, import_i18n7.__)("Link inputs", "elementor"),
1065
- size: "tiny",
1066
- value: "check",
1067
- selected: isLinked,
1068
- sx: { marginLeft: "auto" },
1069
- onChange: onLinkToggle
1070
- },
1071
- /* @__PURE__ */ React26.createElement(LinkedIcon, { fontSize: "tiny" })
1072
- )), /* @__PURE__ */ React26.createElement(import_ui21.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React26.createElement(import_ui21.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React26.createElement(import_ui21.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React26.createElement(ControlLabel, null, (0, import_i18n7.__)("Top", "elementor"))), /* @__PURE__ */ React26.createElement(import_ui21.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React26.createElement(
1073
- Control3,
1074
- {
1075
- bind: "top",
1076
- startIcon: /* @__PURE__ */ React26.createElement(import_icons3.SideTopIcon, { fontSize: "tiny" }),
1077
- isLinked
1078
- }
1079
- ))), /* @__PURE__ */ React26.createElement(import_ui21.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React26.createElement(import_ui21.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React26.createElement(ControlLabel, null, (0, import_i18n7.__)("Right", "elementor"))), /* @__PURE__ */ React26.createElement(import_ui21.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React26.createElement(
1080
- Control3,
1081
- {
1082
- bind: "right",
1083
- startIcon: /* @__PURE__ */ React26.createElement(import_icons3.SideRightIcon, { fontSize: "tiny" }),
1084
- isLinked
1085
- }
1086
- )))), /* @__PURE__ */ React26.createElement(import_ui21.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React26.createElement(import_ui21.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React26.createElement(import_ui21.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React26.createElement(ControlLabel, null, (0, import_i18n7.__)("Bottom", "elementor"))), /* @__PURE__ */ React26.createElement(import_ui21.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React26.createElement(
1087
- Control3,
1088
- {
1089
- bind: "bottom",
1090
- startIcon: /* @__PURE__ */ React26.createElement(import_icons3.SideBottomIcon, { fontSize: "tiny" }),
1091
- isLinked
1092
- }
1093
- ))), /* @__PURE__ */ React26.createElement(import_ui21.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React26.createElement(import_ui21.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React26.createElement(ControlLabel, null, (0, import_i18n7.__)("Left", "elementor"))), /* @__PURE__ */ React26.createElement(import_ui21.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React26.createElement(
1094
- Control3,
1095
- {
1096
- bind: "left",
1097
- startIcon: /* @__PURE__ */ React26.createElement(import_icons3.SideLeftIcon, { fontSize: "tiny" }),
1098
- isLinked
1099
- }
1100
- )))));
1101
- });
1102
- var Control3 = ({ bind, startIcon, isLinked }) => {
1217
+ var LinkedDimensionsControl = createControl(
1218
+ ({ label, extendedValues }) => {
1219
+ const {
1220
+ value: dimensionsValue,
1221
+ setValue: setDimensionsValue,
1222
+ propType
1223
+ } = useBoundProp(import_editor_props13.dimensionsPropTypeUtil);
1224
+ const { value: sizeValue, setValue: setSizeValue } = useBoundProp(import_editor_props13.sizePropTypeUtil);
1225
+ const isLinked = !dimensionsValue && !sizeValue ? true : !!sizeValue;
1226
+ const onLinkToggle = () => {
1227
+ if (!isLinked) {
1228
+ setSizeValue(dimensionsValue?.top?.value);
1229
+ return;
1230
+ }
1231
+ const value = sizeValue ? import_editor_props13.sizePropTypeUtil.create(sizeValue) : null;
1232
+ setDimensionsValue({
1233
+ top: value,
1234
+ right: value,
1235
+ bottom: value,
1236
+ left: value
1237
+ });
1238
+ };
1239
+ const LinkedIcon = isLinked ? import_icons4.LinkIcon : import_icons4.DetachIcon;
1240
+ return /* @__PURE__ */ React27.createElement(PropProvider, { propType, value: dimensionsValue, setValue: setDimensionsValue }, /* @__PURE__ */ React27.createElement(import_ui22.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React27.createElement(ControlLabel, null, label), /* @__PURE__ */ React27.createElement(
1241
+ import_ui22.ToggleButton,
1242
+ {
1243
+ "aria-label": (0, import_i18n7.__)("Link Inputs", "elementor"),
1244
+ size: "tiny",
1245
+ value: "check",
1246
+ selected: isLinked,
1247
+ sx: { marginLeft: "auto" },
1248
+ onChange: onLinkToggle
1249
+ },
1250
+ /* @__PURE__ */ React27.createElement(LinkedIcon, { fontSize: "tiny" })
1251
+ )), /* @__PURE__ */ React27.createElement(import_ui22.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React27.createElement(import_ui22.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React27.createElement(import_ui22.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React27.createElement(ControlLabel, null, (0, import_i18n7.__)("Top", "elementor"))), /* @__PURE__ */ React27.createElement(import_ui22.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React27.createElement(
1252
+ Control3,
1253
+ {
1254
+ bind: "top",
1255
+ startIcon: /* @__PURE__ */ React27.createElement(import_icons4.SideTopIcon, { fontSize: "tiny" }),
1256
+ isLinked,
1257
+ extendedValues
1258
+ }
1259
+ ))), /* @__PURE__ */ React27.createElement(import_ui22.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React27.createElement(import_ui22.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React27.createElement(ControlLabel, null, (0, import_i18n7.__)("Right", "elementor"))), /* @__PURE__ */ React27.createElement(import_ui22.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React27.createElement(
1260
+ Control3,
1261
+ {
1262
+ bind: "right",
1263
+ startIcon: /* @__PURE__ */ React27.createElement(import_icons4.SideRightIcon, { fontSize: "tiny" }),
1264
+ isLinked,
1265
+ extendedValues
1266
+ }
1267
+ )))), /* @__PURE__ */ React27.createElement(import_ui22.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React27.createElement(import_ui22.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React27.createElement(import_ui22.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React27.createElement(ControlLabel, null, (0, import_i18n7.__)("Bottom", "elementor"))), /* @__PURE__ */ React27.createElement(import_ui22.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React27.createElement(
1268
+ Control3,
1269
+ {
1270
+ bind: "bottom",
1271
+ startIcon: /* @__PURE__ */ React27.createElement(import_icons4.SideBottomIcon, { fontSize: "tiny" }),
1272
+ isLinked,
1273
+ extendedValues
1274
+ }
1275
+ ))), /* @__PURE__ */ React27.createElement(import_ui22.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React27.createElement(import_ui22.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React27.createElement(ControlLabel, null, (0, import_i18n7.__)("Left", "elementor"))), /* @__PURE__ */ React27.createElement(import_ui22.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React27.createElement(
1276
+ Control3,
1277
+ {
1278
+ bind: "left",
1279
+ startIcon: /* @__PURE__ */ React27.createElement(import_icons4.SideLeftIcon, { fontSize: "tiny" }),
1280
+ isLinked,
1281
+ extendedValues
1282
+ }
1283
+ )))));
1284
+ }
1285
+ );
1286
+ var Control3 = ({
1287
+ bind,
1288
+ startIcon,
1289
+ isLinked,
1290
+ extendedValues
1291
+ }) => {
1103
1292
  if (isLinked) {
1104
- return /* @__PURE__ */ React26.createElement(SizeControl, { startIcon });
1293
+ return /* @__PURE__ */ React27.createElement(SizeControl, { startIcon, extendedValues });
1105
1294
  }
1106
- return /* @__PURE__ */ React26.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React26.createElement(SizeControl, { startIcon }));
1295
+ return /* @__PURE__ */ React27.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React27.createElement(SizeControl, { startIcon, extendedValues }));
1107
1296
  };
1108
1297
 
1109
1298
  // src/controls/font-family-control.tsx
1110
1299
  var import_react9 = require("react");
1111
- var React27 = __toESM(require("react"));
1300
+ var React28 = __toESM(require("react"));
1112
1301
  var import_editor_props14 = require("@elementor/editor-props");
1113
- var import_icons4 = require("@elementor/icons");
1114
- var import_ui22 = require("@elementor/ui");
1302
+ var import_icons5 = require("@elementor/icons");
1303
+ var import_ui23 = require("@elementor/ui");
1115
1304
  var import_i18n9 = require("@wordpress/i18n");
1116
1305
 
1117
1306
  // src/hooks/use-filtered-font-families.ts
@@ -1150,7 +1339,7 @@ var FontFamilyControl = createControl(({ fontFamilies }) => {
1150
1339
  const [searchValue, setSearchValue] = (0, import_react9.useState)("");
1151
1340
  const { value: fontFamily, setValue: setFontFamily } = useBoundProp(import_editor_props14.stringPropTypeUtil);
1152
1341
  const popupId = (0, import_react9.useId)();
1153
- const popoverState = (0, import_ui22.usePopupState)({ variant: "popover", popupId });
1342
+ const popoverState = (0, import_ui23.usePopupState)({ variant: "popover", popupId });
1154
1343
  const filteredFontFamilies = useFilteredFontFamilies(fontFamilies, searchValue);
1155
1344
  if (!filteredFontFamilies) {
1156
1345
  return null;
@@ -1162,46 +1351,46 @@ var FontFamilyControl = createControl(({ fontFamilies }) => {
1162
1351
  setSearchValue("");
1163
1352
  popoverState.close();
1164
1353
  };
1165
- return /* @__PURE__ */ React27.createElement(React27.Fragment, null, /* @__PURE__ */ React27.createElement(
1166
- import_ui22.UnstableTag,
1354
+ return /* @__PURE__ */ React28.createElement(React28.Fragment, null, /* @__PURE__ */ React28.createElement(
1355
+ import_ui23.UnstableTag,
1167
1356
  {
1168
1357
  variant: "outlined",
1169
1358
  label: fontFamily,
1170
- endIcon: /* @__PURE__ */ React27.createElement(import_icons4.ChevronDownIcon, { fontSize: "tiny" }),
1171
- ...(0, import_ui22.bindTrigger)(popoverState),
1359
+ endIcon: /* @__PURE__ */ React28.createElement(import_icons5.ChevronDownIcon, { fontSize: "tiny" }),
1360
+ ...(0, import_ui23.bindTrigger)(popoverState),
1172
1361
  fullWidth: true
1173
1362
  }
1174
- ), /* @__PURE__ */ React27.createElement(
1175
- import_ui22.Popover,
1363
+ ), /* @__PURE__ */ React28.createElement(
1364
+ import_ui23.Popover,
1176
1365
  {
1177
1366
  disablePortal: true,
1178
1367
  disableScrollLock: true,
1179
1368
  anchorOrigin: { vertical: "bottom", horizontal: "left" },
1180
- ...(0, import_ui22.bindPopover)(popoverState),
1369
+ ...(0, import_ui23.bindPopover)(popoverState),
1181
1370
  onClose: handleClose
1182
1371
  },
1183
- /* @__PURE__ */ React27.createElement(import_ui22.Stack, null, /* @__PURE__ */ React27.createElement(import_ui22.Stack, { direction: "row", alignItems: "center", pl: 1.5, pr: 0.5, py: 1.5 }, /* @__PURE__ */ React27.createElement(import_icons4.EditIcon, { fontSize: SIZE2, sx: { mr: 0.5 } }), /* @__PURE__ */ React27.createElement(import_ui22.Typography, { variant: "subtitle2" }, (0, import_i18n9.__)("Font Family", "elementor")), /* @__PURE__ */ React27.createElement(import_ui22.IconButton, { size: SIZE2, sx: { ml: "auto" }, onClick: handleClose }, /* @__PURE__ */ React27.createElement(import_icons4.XIcon, { fontSize: SIZE2 }))), /* @__PURE__ */ React27.createElement(import_ui22.Box, { px: 1.5, pb: 1 }, /* @__PURE__ */ React27.createElement(
1184
- import_ui22.TextField,
1372
+ /* @__PURE__ */ React28.createElement(import_ui23.Stack, null, /* @__PURE__ */ React28.createElement(import_ui23.Stack, { direction: "row", alignItems: "center", pl: 1.5, pr: 0.5, py: 1.5 }, /* @__PURE__ */ React28.createElement(import_icons5.EditIcon, { fontSize: SIZE2, sx: { mr: 0.5 } }), /* @__PURE__ */ React28.createElement(import_ui23.Typography, { variant: "subtitle2" }, (0, import_i18n9.__)("Font family", "elementor")), /* @__PURE__ */ React28.createElement(import_ui23.IconButton, { size: SIZE2, sx: { ml: "auto" }, onClick: handleClose }, /* @__PURE__ */ React28.createElement(import_icons5.XIcon, { fontSize: SIZE2 }))), /* @__PURE__ */ React28.createElement(import_ui23.Box, { px: 1.5, pb: 1 }, /* @__PURE__ */ React28.createElement(
1373
+ import_ui23.TextField,
1185
1374
  {
1186
1375
  fullWidth: true,
1187
1376
  size: SIZE2,
1188
1377
  value: searchValue,
1189
- placeholder: (0, import_i18n9.__)("Search", "elementor"),
1378
+ placeholder: (0, import_i18n9.__)("Search fonts\u2026", "elementor"),
1190
1379
  onChange: handleSearch,
1191
1380
  InputProps: {
1192
- startAdornment: /* @__PURE__ */ React27.createElement(import_ui22.InputAdornment, { position: "start" }, /* @__PURE__ */ React27.createElement(import_icons4.SearchIcon, { fontSize: SIZE2 }))
1381
+ startAdornment: /* @__PURE__ */ React28.createElement(import_ui23.InputAdornment, { position: "start" }, /* @__PURE__ */ React28.createElement(import_icons5.SearchIcon, { fontSize: SIZE2 }))
1193
1382
  }
1194
1383
  }
1195
- )), /* @__PURE__ */ React27.createElement(import_ui22.Divider, null), /* @__PURE__ */ React27.createElement(import_ui22.Box, { sx: { overflowY: "auto", height: 260, width: 220 } }, filteredFontFamilies.length > 0 ? /* @__PURE__ */ React27.createElement(import_ui22.MenuList, { role: "listbox", tabIndex: 0 }, filteredFontFamilies.map(([category, items], index) => /* @__PURE__ */ React27.createElement(import_react9.Fragment, { key: index }, /* @__PURE__ */ React27.createElement(
1196
- import_ui22.ListSubheader,
1384
+ )), /* @__PURE__ */ React28.createElement(import_ui23.Divider, null), /* @__PURE__ */ React28.createElement(import_ui23.Box, { sx: { overflowY: "auto", height: 260, width: 220 } }, filteredFontFamilies.length > 0 ? /* @__PURE__ */ React28.createElement(import_ui23.MenuList, { role: "listbox", tabIndex: 0 }, filteredFontFamilies.map(([category, items], index) => /* @__PURE__ */ React28.createElement(import_react9.Fragment, { key: index }, /* @__PURE__ */ React28.createElement(
1385
+ import_ui23.ListSubheader,
1197
1386
  {
1198
1387
  sx: { px: 1.5, typography: "caption", color: "text.tertiary" }
1199
1388
  },
1200
1389
  category
1201
1390
  ), items.map((item) => {
1202
1391
  const isSelected = item === fontFamily;
1203
- return /* @__PURE__ */ React27.createElement(
1204
- import_ui22.MenuItem,
1392
+ return /* @__PURE__ */ React28.createElement(
1393
+ import_ui23.MenuItem,
1205
1394
  {
1206
1395
  key: item,
1207
1396
  selected: isSelected,
@@ -1215,8 +1404,8 @@ var FontFamilyControl = createControl(({ fontFamilies }) => {
1215
1404
  },
1216
1405
  item
1217
1406
  );
1218
- })))) : /* @__PURE__ */ React27.createElement(import_ui22.Stack, { alignItems: "center", p: 2.5, gap: 1.5 }, /* @__PURE__ */ React27.createElement(import_icons4.PhotoIcon, { fontSize: "large" }), /* @__PURE__ */ React27.createElement(import_ui22.Typography, { align: "center", variant: "caption", color: "text.secondary" }, (0, import_i18n9.__)("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React27.createElement("br", null), "\u201C", searchValue, "\u201D."), /* @__PURE__ */ React27.createElement(import_ui22.Typography, { align: "center", variant: "caption", color: "text.secondary" }, /* @__PURE__ */ React27.createElement(
1219
- import_ui22.Link,
1407
+ })))) : /* @__PURE__ */ React28.createElement(import_ui23.Stack, { alignItems: "center", p: 2.5, gap: 1.5 }, /* @__PURE__ */ React28.createElement(import_icons5.PhotoIcon, { fontSize: "large" }), /* @__PURE__ */ React28.createElement(import_ui23.Typography, { align: "center", variant: "caption", color: "text.secondary" }, (0, import_i18n9.__)("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React28.createElement("br", null), "\u201C", searchValue, "\u201D."), /* @__PURE__ */ React28.createElement(import_ui23.Typography, { align: "center", variant: "caption", color: "text.secondary" }, /* @__PURE__ */ React28.createElement(
1408
+ import_ui23.Link,
1220
1409
  {
1221
1410
  color: "secondary",
1222
1411
  variant: "caption",
@@ -1229,14 +1418,14 @@ var FontFamilyControl = createControl(({ fontFamilies }) => {
1229
1418
  });
1230
1419
 
1231
1420
  // src/controls/url-control.tsx
1232
- var React28 = __toESM(require("react"));
1421
+ var React29 = __toESM(require("react"));
1233
1422
  var import_editor_props15 = require("@elementor/editor-props");
1234
- var import_ui23 = require("@elementor/ui");
1423
+ var import_ui24 = require("@elementor/ui");
1235
1424
  var UrlControl = createControl(({ placeholder }) => {
1236
1425
  const { value, setValue } = useBoundProp(import_editor_props15.urlPropTypeUtil);
1237
1426
  const handleChange = (event) => setValue(event.target.value);
1238
- return /* @__PURE__ */ React28.createElement(ControlActions, null, /* @__PURE__ */ React28.createElement(
1239
- import_ui23.TextField,
1427
+ return /* @__PURE__ */ React29.createElement(ControlActions, null, /* @__PURE__ */ React29.createElement(
1428
+ import_ui24.TextField,
1240
1429
  {
1241
1430
  size: "tiny",
1242
1431
  fullWidth: true,
@@ -1248,20 +1437,21 @@ var UrlControl = createControl(({ placeholder }) => {
1248
1437
  });
1249
1438
 
1250
1439
  // src/controls/link-control.tsx
1251
- var React30 = __toESM(require("react"));
1440
+ var React31 = __toESM(require("react"));
1252
1441
  var import_react11 = require("react");
1253
1442
  var import_editor_props16 = require("@elementor/editor-props");
1254
1443
  var import_http = require("@elementor/http");
1255
- var import_icons6 = require("@elementor/icons");
1444
+ var import_icons7 = require("@elementor/icons");
1256
1445
  var import_session = require("@elementor/session");
1257
- var import_ui25 = require("@elementor/ui");
1446
+ var import_ui26 = require("@elementor/ui");
1447
+ var import_utils2 = require("@elementor/utils");
1258
1448
  var import_i18n10 = require("@wordpress/i18n");
1259
1449
 
1260
1450
  // src/components/autocomplete.tsx
1261
- var React29 = __toESM(require("react"));
1451
+ var React30 = __toESM(require("react"));
1262
1452
  var import_react10 = require("react");
1263
- var import_icons5 = require("@elementor/icons");
1264
- var import_ui24 = require("@elementor/ui");
1453
+ var import_icons6 = require("@elementor/icons");
1454
+ var import_ui25 = require("@elementor/ui");
1265
1455
  var Autocomplete = (0, import_react10.forwardRef)((props, ref) => {
1266
1456
  const {
1267
1457
  options,
@@ -1278,8 +1468,8 @@ var Autocomplete = (0, import_react10.forwardRef)((props, ref) => {
1278
1468
  const muiWarningPreventer = allowCustomValues || !!value?.toString()?.length;
1279
1469
  const isOptionEqualToValue = muiWarningPreventer ? void 0 : () => true;
1280
1470
  const isValueFromOptions = typeof value === "number" && !!findMatchingOption(options, value);
1281
- return /* @__PURE__ */ React29.createElement(
1282
- import_ui24.Autocomplete,
1471
+ return /* @__PURE__ */ React30.createElement(
1472
+ import_ui25.Autocomplete,
1283
1473
  {
1284
1474
  ...restProps,
1285
1475
  ref,
@@ -1296,8 +1486,8 @@ var Autocomplete = (0, import_react10.forwardRef)((props, ref) => {
1296
1486
  groupBy: isCategorizedOptionPool(options) ? (optionId) => findMatchingOption(options, optionId)?.groupLabel || optionId : void 0,
1297
1487
  isOptionEqualToValue,
1298
1488
  filterOptions: () => optionKeys,
1299
- renderOption: (optionProps, optionId) => /* @__PURE__ */ React29.createElement(import_ui24.Box, { component: "li", ...optionProps, key: optionProps.id }, findMatchingOption(options, optionId)?.label ?? optionId),
1300
- renderInput: (params) => /* @__PURE__ */ React29.createElement(
1489
+ renderOption: (optionProps, optionId) => /* @__PURE__ */ React30.createElement(import_ui25.Box, { component: "li", ...optionProps, key: optionProps.id }, findMatchingOption(options, optionId)?.label ?? optionId),
1490
+ renderInput: (params) => /* @__PURE__ */ React30.createElement(
1301
1491
  TextInput,
1302
1492
  {
1303
1493
  params,
@@ -1320,8 +1510,8 @@ var TextInput = ({
1320
1510
  const onChange = (event) => {
1321
1511
  handleChange(event.target.value);
1322
1512
  };
1323
- return /* @__PURE__ */ React29.createElement(
1324
- import_ui24.TextField,
1513
+ return /* @__PURE__ */ React30.createElement(
1514
+ import_ui25.TextField,
1325
1515
  {
1326
1516
  ...params,
1327
1517
  placeholder,
@@ -1333,7 +1523,7 @@ var TextInput = ({
1333
1523
  },
1334
1524
  InputProps: {
1335
1525
  ...params.InputProps,
1336
- endAdornment: /* @__PURE__ */ React29.createElement(ClearButton, { params, allowClear, handleChange })
1526
+ endAdornment: /* @__PURE__ */ React30.createElement(ClearButton, { params, allowClear, handleChange })
1337
1527
  }
1338
1528
  }
1339
1529
  );
@@ -1342,7 +1532,7 @@ var ClearButton = ({
1342
1532
  allowClear,
1343
1533
  handleChange,
1344
1534
  params
1345
- }) => /* @__PURE__ */ React29.createElement(import_ui24.InputAdornment, { position: "end" }, allowClear && /* @__PURE__ */ React29.createElement(import_ui24.IconButton, { size: params.size, onClick: () => handleChange(null), sx: { cursor: "pointer" } }, /* @__PURE__ */ React29.createElement(import_icons5.XIcon, { fontSize: params.size })));
1535
+ }) => /* @__PURE__ */ React30.createElement(import_ui25.InputAdornment, { position: "end" }, allowClear && /* @__PURE__ */ React30.createElement(import_ui25.IconButton, { size: params.size, onClick: () => handleChange(null), sx: { cursor: "pointer" } }, /* @__PURE__ */ React30.createElement(import_icons6.XIcon, { fontSize: params.size })));
1346
1536
  function findMatchingOption(options, optionId = null) {
1347
1537
  const formattedOption = (optionId || "").toString();
1348
1538
  return options.find(({ id }) => formattedOption === id.toString());
@@ -1413,7 +1603,7 @@ var LinkControl = createControl((props) => {
1413
1603
  debounceFetch({ ...requestParams, term: newValue });
1414
1604
  };
1415
1605
  const debounceFetch = (0, import_react11.useMemo)(
1416
- () => debounce(
1606
+ () => (0, import_utils2.debounce)(
1417
1607
  (params) => fetchOptions(endpoint, params).then((newOptions) => {
1418
1608
  setOptions(formatOptions(newOptions));
1419
1609
  }),
@@ -1421,8 +1611,8 @@ var LinkControl = createControl((props) => {
1421
1611
  ),
1422
1612
  [endpoint]
1423
1613
  );
1424
- return /* @__PURE__ */ React30.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React30.createElement(import_ui25.Stack, { gap: 1.5 }, /* @__PURE__ */ React30.createElement(import_ui25.Divider, null), /* @__PURE__ */ React30.createElement(
1425
- import_ui25.Stack,
1614
+ return /* @__PURE__ */ React31.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React31.createElement(import_ui26.Stack, { gap: 1.5 }, /* @__PURE__ */ React31.createElement(import_ui26.Divider, null), /* @__PURE__ */ React31.createElement(
1615
+ import_ui26.Stack,
1426
1616
  {
1427
1617
  direction: "row",
1428
1618
  sx: {
@@ -1430,8 +1620,8 @@ var LinkControl = createControl((props) => {
1430
1620
  alignItems: "center"
1431
1621
  }
1432
1622
  },
1433
- /* @__PURE__ */ React30.createElement(ControlLabel, null, (0, import_i18n10.__)("Link", "elementor")),
1434
- /* @__PURE__ */ React30.createElement(
1623
+ /* @__PURE__ */ React31.createElement(ControlLabel, null, (0, import_i18n10.__)("Link", "elementor")),
1624
+ /* @__PURE__ */ React31.createElement(
1435
1625
  ToggleIconControl,
1436
1626
  {
1437
1627
  enabled: isEnabled,
@@ -1439,7 +1629,7 @@ var LinkControl = createControl((props) => {
1439
1629
  label: (0, import_i18n10.__)("Toggle link", "elementor")
1440
1630
  }
1441
1631
  )
1442
- ), /* @__PURE__ */ React30.createElement(import_ui25.Collapse, { in: isEnabled, timeout: "auto", unmountOnExit: true }, /* @__PURE__ */ React30.createElement(import_ui25.Stack, { gap: 1.5 }, /* @__PURE__ */ React30.createElement(PropKeyProvider, { bind: "destination" }, /* @__PURE__ */ React30.createElement(ControlActions, null, /* @__PURE__ */ React30.createElement(
1632
+ ), /* @__PURE__ */ React31.createElement(import_ui26.Collapse, { in: isEnabled, timeout: "auto", unmountOnExit: true }, /* @__PURE__ */ React31.createElement(import_ui26.Stack, { gap: 1.5 }, /* @__PURE__ */ React31.createElement(PropKeyProvider, { bind: "destination" }, /* @__PURE__ */ React31.createElement(ControlActions, null, /* @__PURE__ */ React31.createElement(
1443
1633
  Autocomplete,
1444
1634
  {
1445
1635
  options,
@@ -1450,17 +1640,17 @@ var LinkControl = createControl((props) => {
1450
1640
  onTextChange,
1451
1641
  minInputLength
1452
1642
  }
1453
- ))), /* @__PURE__ */ React30.createElement(PropKeyProvider, { bind: "isTargetBlank" }, /* @__PURE__ */ React30.createElement(SwitchControl, null))))));
1643
+ ))), /* @__PURE__ */ React31.createElement(PropKeyProvider, { bind: "isTargetBlank" }, /* @__PURE__ */ React31.createElement(SwitchControl, null))))));
1454
1644
  });
1455
1645
  var ToggleIconControl = ({ enabled, onIconClick, label }) => {
1456
- return /* @__PURE__ */ React30.createElement(import_ui25.IconButton, { size: SIZE3, onClick: onIconClick, "aria-label": label }, enabled ? /* @__PURE__ */ React30.createElement(import_icons6.MinusIcon, { fontSize: SIZE3 }) : /* @__PURE__ */ React30.createElement(import_icons6.PlusIcon, { fontSize: SIZE3 }));
1646
+ return /* @__PURE__ */ React31.createElement(import_ui26.IconButton, { size: SIZE3, onClick: onIconClick, "aria-label": label }, enabled ? /* @__PURE__ */ React31.createElement(import_icons7.MinusIcon, { fontSize: SIZE3 }) : /* @__PURE__ */ React31.createElement(import_icons7.PlusIcon, { fontSize: SIZE3 }));
1457
1647
  };
1458
1648
  var SwitchControl = () => {
1459
1649
  const { value = false, setValue } = useBoundProp(import_editor_props16.booleanPropTypeUtil);
1460
1650
  const onClick = () => {
1461
1651
  setValue(!value);
1462
1652
  };
1463
- return /* @__PURE__ */ React30.createElement(import_ui25.Grid, { container: true, alignItems: "center", flexWrap: "nowrap", justifyContent: "space-between" }, /* @__PURE__ */ React30.createElement(import_ui25.Grid, { item: true }, /* @__PURE__ */ React30.createElement(ControlLabel, null, (0, import_i18n10.__)("Open in new tab", "elementor"))), /* @__PURE__ */ React30.createElement(import_ui25.Grid, { item: true }, /* @__PURE__ */ React30.createElement(import_ui25.Switch, { checked: value, onClick })));
1653
+ return /* @__PURE__ */ React31.createElement(import_ui26.Grid, { container: true, alignItems: "center", flexWrap: "nowrap", justifyContent: "space-between" }, /* @__PURE__ */ React31.createElement(import_ui26.Grid, { item: true }, /* @__PURE__ */ React31.createElement(ControlLabel, null, (0, import_i18n10.__)("Open in a new tab", "elementor"))), /* @__PURE__ */ React31.createElement(import_ui26.Grid, { item: true }, /* @__PURE__ */ React31.createElement(import_ui26.Switch, { checked: value, onClick })));
1464
1654
  };
1465
1655
  async function fetchOptions(ajaxUrl, params) {
1466
1656
  if (!params || !ajaxUrl) {
@@ -1490,21 +1680,12 @@ function generateFirstLoadedOption(unionValue) {
1490
1680
  }
1491
1681
  ] : [];
1492
1682
  }
1493
- function debounce(fn, timeout) {
1494
- let timer;
1495
- return (...args) => {
1496
- clearTimeout(timer);
1497
- timer = setTimeout(() => {
1498
- fn(...args);
1499
- }, timeout);
1500
- };
1501
- }
1502
1683
 
1503
1684
  // src/controls/gap-control.tsx
1504
- var React31 = __toESM(require("react"));
1685
+ var React32 = __toESM(require("react"));
1505
1686
  var import_editor_props17 = require("@elementor/editor-props");
1506
- var import_icons7 = require("@elementor/icons");
1507
- var import_ui26 = require("@elementor/ui");
1687
+ var import_icons8 = require("@elementor/icons");
1688
+ var import_ui27 = require("@elementor/ui");
1508
1689
  var import_i18n11 = require("@wordpress/i18n");
1509
1690
  var GapControl = createControl(({ label }) => {
1510
1691
  const {
@@ -1516,7 +1697,7 @@ var GapControl = createControl(({ label }) => {
1516
1697
  const isLinked = !directionValue && !sizeValue ? true : !!sizeValue;
1517
1698
  const onLinkToggle = () => {
1518
1699
  if (!isLinked) {
1519
- setSizeValue(directionValue?.column.value);
1700
+ setSizeValue(directionValue?.column?.value);
1520
1701
  return;
1521
1702
  }
1522
1703
  const value = sizeValue ? import_editor_props17.sizePropTypeUtil.create(sizeValue) : null;
@@ -1525,9 +1706,9 @@ var GapControl = createControl(({ label }) => {
1525
1706
  column: value
1526
1707
  });
1527
1708
  };
1528
- const LinkedIcon = isLinked ? import_icons7.LinkIcon : import_icons7.DetachIcon;
1529
- return /* @__PURE__ */ React31.createElement(PropProvider, { propType, value: directionValue, setValue: setDirectionValue }, /* @__PURE__ */ React31.createElement(import_ui26.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React31.createElement(ControlLabel, null, label), /* @__PURE__ */ React31.createElement(
1530
- import_ui26.ToggleButton,
1709
+ const LinkedIcon = isLinked ? import_icons8.LinkIcon : import_icons8.DetachIcon;
1710
+ return /* @__PURE__ */ React32.createElement(PropProvider, { propType, value: directionValue, setValue: setDirectionValue }, /* @__PURE__ */ React32.createElement(import_ui27.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React32.createElement(ControlLabel, null, label), /* @__PURE__ */ React32.createElement(
1711
+ import_ui27.ToggleButton,
1531
1712
  {
1532
1713
  "aria-label": (0, import_i18n11.__)("Link inputs", "elementor"),
1533
1714
  size: "tiny",
@@ -1536,28 +1717,28 @@ var GapControl = createControl(({ label }) => {
1536
1717
  sx: { marginLeft: "auto" },
1537
1718
  onChange: onLinkToggle
1538
1719
  },
1539
- /* @__PURE__ */ React31.createElement(LinkedIcon, { fontSize: "tiny" })
1540
- )), /* @__PURE__ */ React31.createElement(import_ui26.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React31.createElement(import_ui26.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React31.createElement(import_ui26.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React31.createElement(ControlLabel, null, (0, import_i18n11.__)("Column", "elementor"))), /* @__PURE__ */ React31.createElement(import_ui26.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React31.createElement(Control4, { bind: "column", isLinked }))), /* @__PURE__ */ React31.createElement(import_ui26.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React31.createElement(import_ui26.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React31.createElement(ControlLabel, null, (0, import_i18n11.__)("Row", "elementor"))), /* @__PURE__ */ React31.createElement(import_ui26.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React31.createElement(Control4, { bind: "row", isLinked })))));
1720
+ /* @__PURE__ */ React32.createElement(LinkedIcon, { fontSize: "tiny" })
1721
+ )), /* @__PURE__ */ React32.createElement(import_ui27.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React32.createElement(import_ui27.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React32.createElement(import_ui27.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React32.createElement(ControlLabel, null, (0, import_i18n11.__)("Column", "elementor"))), /* @__PURE__ */ React32.createElement(import_ui27.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React32.createElement(Control4, { bind: "column", isLinked }))), /* @__PURE__ */ React32.createElement(import_ui27.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React32.createElement(import_ui27.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React32.createElement(ControlLabel, null, (0, import_i18n11.__)("Row", "elementor"))), /* @__PURE__ */ React32.createElement(import_ui27.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React32.createElement(Control4, { bind: "row", isLinked })))));
1541
1722
  });
1542
1723
  var Control4 = ({ bind, isLinked }) => {
1543
1724
  if (isLinked) {
1544
- return /* @__PURE__ */ React31.createElement(SizeControl, null);
1725
+ return /* @__PURE__ */ React32.createElement(SizeControl, null);
1545
1726
  }
1546
- return /* @__PURE__ */ React31.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React31.createElement(SizeControl, null));
1727
+ return /* @__PURE__ */ React32.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React32.createElement(SizeControl, null));
1547
1728
  };
1548
1729
 
1549
1730
  // src/controls/svg-media-control.tsx
1550
- var React32 = __toESM(require("react"));
1731
+ var React33 = __toESM(require("react"));
1551
1732
  var import_editor_props18 = require("@elementor/editor-props");
1552
- var import_icons8 = require("@elementor/icons");
1553
- var import_ui27 = require("@elementor/ui");
1733
+ var import_icons9 = require("@elementor/icons");
1734
+ var import_ui28 = require("@elementor/ui");
1554
1735
  var import_wp_media2 = require("@elementor/wp-media");
1555
1736
  var import_i18n12 = require("@wordpress/i18n");
1556
1737
  var TILE_SIZE = 8;
1557
1738
  var TILE_WHITE = "transparent";
1558
1739
  var TILE_BLACK = "#c1c1c1";
1559
1740
  var TILES_GRADIENT_FORMULA = `linear-gradient(45deg, ${TILE_BLACK} 25%, ${TILE_WHITE} 0, ${TILE_WHITE} 75%, ${TILE_BLACK} 0, ${TILE_BLACK})`;
1560
- var StyledCard = (0, import_ui27.styled)(import_ui27.Card)`
1741
+ var StyledCard = (0, import_ui28.styled)(import_ui28.Card)`
1561
1742
  background-color: white;
1562
1743
  background-image: ${TILES_GRADIENT_FORMULA}, ${TILES_GRADIENT_FORMULA};
1563
1744
  background-size: ${TILE_SIZE}px ${TILE_SIZE}px;
@@ -1566,7 +1747,7 @@ var StyledCard = (0, import_ui27.styled)(import_ui27.Card)`
1566
1747
  ${TILE_SIZE / 2}px ${TILE_SIZE / 2}px;
1567
1748
  border: none;
1568
1749
  `;
1569
- var StyledCardMediaContainer = (0, import_ui27.styled)(import_ui27.Stack)`
1750
+ var StyledCardMediaContainer = (0, import_ui28.styled)(import_ui28.Stack)`
1570
1751
  position: relative;
1571
1752
  height: 140px;
1572
1753
  object-fit: contain;
@@ -1595,16 +1776,16 @@ var SvgMediaControl = createControl(() => {
1595
1776
  });
1596
1777
  }
1597
1778
  });
1598
- return /* @__PURE__ */ React32.createElement(import_ui27.Stack, { gap: 1 }, /* @__PURE__ */ React32.createElement(ControlLabel, null, " ", (0, import_i18n12.__)("Choose SVG", "elementor"), " "), /* @__PURE__ */ React32.createElement(ControlActions, null, /* @__PURE__ */ React32.createElement(StyledCard, { variant: "outlined" }, /* @__PURE__ */ React32.createElement(StyledCardMediaContainer, null, isFetching ? /* @__PURE__ */ React32.createElement(import_ui27.CircularProgress, { role: "progressbar" }) : /* @__PURE__ */ React32.createElement(
1599
- import_ui27.CardMedia,
1779
+ return /* @__PURE__ */ React33.createElement(import_ui28.Stack, { gap: 1 }, /* @__PURE__ */ React33.createElement(ControlLabel, null, " ", (0, import_i18n12.__)("SVG", "elementor"), " "), /* @__PURE__ */ React33.createElement(ControlActions, null, /* @__PURE__ */ React33.createElement(StyledCard, { variant: "outlined" }, /* @__PURE__ */ React33.createElement(StyledCardMediaContainer, null, isFetching ? /* @__PURE__ */ React33.createElement(import_ui28.CircularProgress, { role: "progressbar" }) : /* @__PURE__ */ React33.createElement(
1780
+ import_ui28.CardMedia,
1600
1781
  {
1601
1782
  component: "img",
1602
1783
  image: src,
1603
1784
  alt: (0, import_i18n12.__)("Preview SVG", "elementor"),
1604
1785
  sx: { maxHeight: "140px", width: "50px" }
1605
1786
  }
1606
- )), /* @__PURE__ */ React32.createElement(
1607
- import_ui27.CardOverlay,
1787
+ )), /* @__PURE__ */ React33.createElement(
1788
+ import_ui28.CardOverlay,
1608
1789
  {
1609
1790
  sx: {
1610
1791
  "&:hover": {
@@ -1612,8 +1793,8 @@ var SvgMediaControl = createControl(() => {
1612
1793
  }
1613
1794
  }
1614
1795
  },
1615
- /* @__PURE__ */ React32.createElement(import_ui27.Stack, { gap: 1 }, /* @__PURE__ */ React32.createElement(
1616
- import_ui27.Button,
1796
+ /* @__PURE__ */ React33.createElement(import_ui28.Stack, { gap: 1 }, /* @__PURE__ */ React33.createElement(
1797
+ import_ui28.Button,
1617
1798
  {
1618
1799
  size: "tiny",
1619
1800
  color: "inherit",
@@ -1621,30 +1802,30 @@ var SvgMediaControl = createControl(() => {
1621
1802
  onClick: () => open({ mode: "browse" })
1622
1803
  },
1623
1804
  (0, import_i18n12.__)("Select SVG", "elementor")
1624
- ), /* @__PURE__ */ React32.createElement(
1625
- import_ui27.Button,
1805
+ ), /* @__PURE__ */ React33.createElement(
1806
+ import_ui28.Button,
1626
1807
  {
1627
1808
  size: "tiny",
1628
1809
  variant: "text",
1629
1810
  color: "inherit",
1630
- startIcon: /* @__PURE__ */ React32.createElement(import_icons8.UploadIcon, null),
1811
+ startIcon: /* @__PURE__ */ React33.createElement(import_icons9.UploadIcon, null),
1631
1812
  onClick: () => open({ mode: "upload" })
1632
1813
  },
1633
- (0, import_i18n12.__)("Upload SVG", "elementor")
1814
+ (0, import_i18n12.__)("Upload", "elementor")
1634
1815
  ))
1635
1816
  ))));
1636
1817
  });
1637
1818
 
1638
1819
  // src/controls/background-control/background-control.tsx
1639
- var React38 = __toESM(require("react"));
1820
+ var React39 = __toESM(require("react"));
1640
1821
  var import_editor_props23 = require("@elementor/editor-props");
1641
- var import_ui34 = require("@elementor/ui");
1822
+ var import_ui35 = require("@elementor/ui");
1642
1823
  var import_i18n18 = require("@wordpress/i18n");
1643
1824
 
1644
1825
  // src/controls/background-control/background-overlay/background-overlay-repeater-control.tsx
1645
- var React37 = __toESM(require("react"));
1826
+ var React38 = __toESM(require("react"));
1646
1827
  var import_editor_props22 = require("@elementor/editor-props");
1647
- var import_ui33 = require("@elementor/ui");
1828
+ var import_ui34 = require("@elementor/ui");
1648
1829
  var import_wp_media3 = require("@elementor/wp-media");
1649
1830
  var import_i18n17 = require("@wordpress/i18n");
1650
1831
 
@@ -1653,33 +1834,33 @@ var import_env = require("@elementor/env");
1653
1834
  var { env } = (0, import_env.parseEnv)("@elementor/editor-controls");
1654
1835
 
1655
1836
  // src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-attachment.tsx
1656
- var React33 = __toESM(require("react"));
1657
- var import_icons9 = require("@elementor/icons");
1658
- var import_ui28 = require("@elementor/ui");
1837
+ var React34 = __toESM(require("react"));
1838
+ var import_icons10 = require("@elementor/icons");
1839
+ var import_ui29 = require("@elementor/ui");
1659
1840
  var import_i18n13 = require("@wordpress/i18n");
1660
1841
  var attachmentControlOptions = [
1661
1842
  {
1662
1843
  value: "fixed",
1663
1844
  label: (0, import_i18n13.__)("Fixed", "elementor"),
1664
- renderContent: ({ size }) => /* @__PURE__ */ React33.createElement(import_icons9.PinIcon, { fontSize: size }),
1845
+ renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(import_icons10.PinIcon, { fontSize: size }),
1665
1846
  showTooltip: true
1666
1847
  },
1667
1848
  {
1668
1849
  value: "scroll",
1669
1850
  label: (0, import_i18n13.__)("Scroll", "elementor"),
1670
- renderContent: ({ size }) => /* @__PURE__ */ React33.createElement(import_icons9.PinnedOffIcon, { fontSize: size }),
1851
+ renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(import_icons10.PinnedOffIcon, { fontSize: size }),
1671
1852
  showTooltip: true
1672
1853
  }
1673
1854
  ];
1674
1855
  var BackgroundImageOverlayAttachment = () => {
1675
- return /* @__PURE__ */ React33.createElement(PopoverGridContainer, null, /* @__PURE__ */ React33.createElement(import_ui28.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React33.createElement(ControlLabel, null, (0, import_i18n13.__)("Attachment", "elementor"))), /* @__PURE__ */ React33.createElement(import_ui28.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end", overflow: "hidden" } }, /* @__PURE__ */ React33.createElement(ToggleControl, { options: attachmentControlOptions })));
1856
+ return /* @__PURE__ */ React34.createElement(PopoverGridContainer, null, /* @__PURE__ */ React34.createElement(import_ui29.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React34.createElement(ControlLabel, null, (0, import_i18n13.__)("Attachment", "elementor"))), /* @__PURE__ */ React34.createElement(import_ui29.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end", overflow: "hidden" } }, /* @__PURE__ */ React34.createElement(ToggleControl, { options: attachmentControlOptions })));
1676
1857
  };
1677
1858
 
1678
1859
  // src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-position.tsx
1679
- var React34 = __toESM(require("react"));
1860
+ var React35 = __toESM(require("react"));
1680
1861
  var import_editor_props19 = require("@elementor/editor-props");
1681
- var import_icons10 = require("@elementor/icons");
1682
- var import_ui29 = require("@elementor/ui");
1862
+ var import_icons11 = require("@elementor/icons");
1863
+ var import_ui30 = require("@elementor/ui");
1683
1864
  var import_i18n14 = require("@wordpress/i18n");
1684
1865
  var backgroundPositionOptions = [
1685
1866
  { label: (0, import_i18n14.__)("Center center", "elementor"), value: "center center" },
@@ -1705,82 +1886,82 @@ var BackgroundImageOverlayPosition = () => {
1705
1886
  stringPropContext.setValue(value);
1706
1887
  }
1707
1888
  };
1708
- return /* @__PURE__ */ React34.createElement(import_ui29.Grid, { container: true, spacing: 1.5 }, /* @__PURE__ */ React34.createElement(import_ui29.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React34.createElement(PopoverGridContainer, null, /* @__PURE__ */ React34.createElement(import_ui29.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React34.createElement(ControlLabel, null, (0, import_i18n14.__)("Position", "elementor"))), /* @__PURE__ */ React34.createElement(import_ui29.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end", overflow: "hidden" } }, /* @__PURE__ */ React34.createElement(
1709
- import_ui29.Select,
1889
+ return /* @__PURE__ */ React35.createElement(import_ui30.Grid, { container: true, spacing: 1.5 }, /* @__PURE__ */ React35.createElement(import_ui30.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React35.createElement(PopoverGridContainer, null, /* @__PURE__ */ React35.createElement(import_ui30.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React35.createElement(ControlLabel, null, (0, import_i18n14.__)("Position", "elementor"))), /* @__PURE__ */ React35.createElement(import_ui30.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end", overflow: "hidden" } }, /* @__PURE__ */ React35.createElement(
1890
+ import_ui30.Select,
1710
1891
  {
1711
1892
  size: "tiny",
1712
1893
  value: (backgroundImageOffsetContext.value ? "custom" : stringPropContext.value) ?? "",
1713
1894
  onChange: handlePositionChange,
1714
1895
  fullWidth: true
1715
1896
  },
1716
- backgroundPositionOptions.map(({ label, value }) => /* @__PURE__ */ React34.createElement(import_ui29.MenuItem, { key: value, value: value ?? "" }, label))
1717
- )))), isCustom ? /* @__PURE__ */ React34.createElement(PropProvider, { ...backgroundImageOffsetContext }, /* @__PURE__ */ React34.createElement(import_ui29.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React34.createElement(import_ui29.Grid, { container: true, spacing: 1.5 }, /* @__PURE__ */ React34.createElement(import_ui29.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React34.createElement(PropKeyProvider, { bind: "x" }, /* @__PURE__ */ React34.createElement(SizeControl, { startIcon: /* @__PURE__ */ React34.createElement(import_icons10.LetterXIcon, { fontSize: "tiny" }) }))), /* @__PURE__ */ React34.createElement(import_ui29.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React34.createElement(PropKeyProvider, { bind: "y" }, /* @__PURE__ */ React34.createElement(SizeControl, { startIcon: /* @__PURE__ */ React34.createElement(import_icons10.LetterYIcon, { fontSize: "tiny" }) })))))) : null);
1897
+ backgroundPositionOptions.map(({ label, value }) => /* @__PURE__ */ React35.createElement(import_ui30.MenuItem, { key: value, value: value ?? "" }, label))
1898
+ )))), isCustom ? /* @__PURE__ */ React35.createElement(PropProvider, { ...backgroundImageOffsetContext }, /* @__PURE__ */ React35.createElement(import_ui30.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React35.createElement(import_ui30.Grid, { container: true, spacing: 1.5 }, /* @__PURE__ */ React35.createElement(import_ui30.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React35.createElement(PropKeyProvider, { bind: "x" }, /* @__PURE__ */ React35.createElement(SizeControl, { startIcon: /* @__PURE__ */ React35.createElement(import_icons11.LetterXIcon, { fontSize: "tiny" }) }))), /* @__PURE__ */ React35.createElement(import_ui30.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React35.createElement(PropKeyProvider, { bind: "y" }, /* @__PURE__ */ React35.createElement(SizeControl, { startIcon: /* @__PURE__ */ React35.createElement(import_icons11.LetterYIcon, { fontSize: "tiny" }) })))))) : null);
1718
1899
  };
1719
1900
 
1720
1901
  // src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-repeat.tsx
1721
- var React35 = __toESM(require("react"));
1722
- var import_icons11 = require("@elementor/icons");
1723
- var import_ui30 = require("@elementor/ui");
1902
+ var React36 = __toESM(require("react"));
1903
+ var import_icons12 = require("@elementor/icons");
1904
+ var import_ui31 = require("@elementor/ui");
1724
1905
  var import_i18n15 = require("@wordpress/i18n");
1725
1906
  var repeatControlOptions = [
1726
1907
  {
1727
1908
  value: "repeat",
1728
1909
  label: (0, import_i18n15.__)("Repeat", "elementor"),
1729
- renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(import_icons11.GridDotsIcon, { fontSize: size }),
1910
+ renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(import_icons12.GridDotsIcon, { fontSize: size }),
1730
1911
  showTooltip: true
1731
1912
  },
1732
1913
  {
1733
1914
  value: "repeat-x",
1734
1915
  label: (0, import_i18n15.__)("Repeat-x", "elementor"),
1735
- renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(import_icons11.DotsHorizontalIcon, { fontSize: size }),
1916
+ renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(import_icons12.DotsHorizontalIcon, { fontSize: size }),
1736
1917
  showTooltip: true
1737
1918
  },
1738
1919
  {
1739
1920
  value: "repeat-y",
1740
1921
  label: (0, import_i18n15.__)("Repeat-y", "elementor"),
1741
- renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(import_icons11.DotsVerticalIcon, { fontSize: size }),
1922
+ renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(import_icons12.DotsVerticalIcon, { fontSize: size }),
1742
1923
  showTooltip: true
1743
1924
  },
1744
1925
  {
1745
1926
  value: "no-repeat",
1746
- label: (0, import_i18n15.__)("No-Repeat", "elementor"),
1747
- renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(import_icons11.XIcon, { fontSize: size }),
1927
+ label: (0, import_i18n15.__)("No-repeat", "elementor"),
1928
+ renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(import_icons12.XIcon, { fontSize: size }),
1748
1929
  showTooltip: true
1749
1930
  }
1750
1931
  ];
1751
1932
  var BackgroundImageOverlayRepeat = () => {
1752
- return /* @__PURE__ */ React35.createElement(PopoverGridContainer, null, /* @__PURE__ */ React35.createElement(import_ui30.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React35.createElement(ControlLabel, null, (0, import_i18n15.__)("Repeat", "elementor"))), /* @__PURE__ */ React35.createElement(import_ui30.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React35.createElement(ToggleControl, { options: repeatControlOptions })));
1933
+ return /* @__PURE__ */ React36.createElement(PopoverGridContainer, null, /* @__PURE__ */ React36.createElement(import_ui31.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React36.createElement(ControlLabel, null, (0, import_i18n15.__)("Repeat", "elementor"))), /* @__PURE__ */ React36.createElement(import_ui31.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React36.createElement(ToggleControl, { options: repeatControlOptions })));
1753
1934
  };
1754
1935
 
1755
1936
  // src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-size.tsx
1756
- var React36 = __toESM(require("react"));
1937
+ var React37 = __toESM(require("react"));
1757
1938
  var import_editor_props20 = require("@elementor/editor-props");
1758
- var import_icons12 = require("@elementor/icons");
1759
- var import_ui31 = require("@elementor/ui");
1939
+ var import_icons13 = require("@elementor/icons");
1940
+ var import_ui32 = require("@elementor/ui");
1760
1941
  var import_i18n16 = require("@wordpress/i18n");
1761
1942
  var sizeControlOptions = [
1762
1943
  {
1763
1944
  value: "auto",
1764
1945
  label: (0, import_i18n16.__)("Auto", "elementor"),
1765
- renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(import_icons12.LetterAIcon, { fontSize: size }),
1946
+ renderContent: ({ size }) => /* @__PURE__ */ React37.createElement(import_icons13.LetterAIcon, { fontSize: size }),
1766
1947
  showTooltip: true
1767
1948
  },
1768
1949
  {
1769
1950
  value: "cover",
1770
1951
  label: (0, import_i18n16.__)("Cover", "elementor"),
1771
- renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(import_icons12.ArrowsMaximizeIcon, { fontSize: size }),
1952
+ renderContent: ({ size }) => /* @__PURE__ */ React37.createElement(import_icons13.ArrowsMaximizeIcon, { fontSize: size }),
1772
1953
  showTooltip: true
1773
1954
  },
1774
1955
  {
1775
1956
  value: "contain",
1776
1957
  label: (0, import_i18n16.__)("Contain", "elementor"),
1777
- renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(import_icons12.ArrowBarBothIcon, { fontSize: size }),
1958
+ renderContent: ({ size }) => /* @__PURE__ */ React37.createElement(import_icons13.ArrowBarBothIcon, { fontSize: size }),
1778
1959
  showTooltip: true
1779
1960
  },
1780
1961
  {
1781
1962
  value: "custom",
1782
1963
  label: (0, import_i18n16.__)("Custom", "elementor"),
1783
- renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(import_icons12.PencilIcon, { fontSize: size }),
1964
+ renderContent: ({ size }) => /* @__PURE__ */ React37.createElement(import_icons13.PencilIcon, { fontSize: size }),
1784
1965
  showTooltip: true
1785
1966
  }
1786
1967
  ];
@@ -1795,7 +1976,7 @@ var BackgroundImageOverlaySize = () => {
1795
1976
  stringPropContext.setValue(size);
1796
1977
  }
1797
1978
  };
1798
- return /* @__PURE__ */ React36.createElement(import_ui31.Grid, { container: true, spacing: 1.5 }, /* @__PURE__ */ React36.createElement(import_ui31.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React36.createElement(PopoverGridContainer, null, /* @__PURE__ */ React36.createElement(import_ui31.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React36.createElement(ControlLabel, null, (0, import_i18n16.__)("Size", "elementor"))), /* @__PURE__ */ React36.createElement(import_ui31.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React36.createElement(
1979
+ return /* @__PURE__ */ React37.createElement(import_ui32.Grid, { container: true, spacing: 1.5 }, /* @__PURE__ */ React37.createElement(import_ui32.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React37.createElement(PopoverGridContainer, null, /* @__PURE__ */ React37.createElement(import_ui32.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(ControlLabel, null, (0, import_i18n16.__)("Size", "elementor"))), /* @__PURE__ */ React37.createElement(import_ui32.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React37.createElement(
1799
1980
  ControlToggleButtonGroup,
1800
1981
  {
1801
1982
  exclusive: true,
@@ -1803,20 +1984,32 @@ var BackgroundImageOverlaySize = () => {
1803
1984
  value: backgroundImageScaleContext.value ? "custom" : stringPropContext.value,
1804
1985
  onChange: handleSizeChange
1805
1986
  }
1806
- )))), isCustom ? /* @__PURE__ */ React36.createElement(PropProvider, { ...backgroundImageScaleContext }, /* @__PURE__ */ React36.createElement(import_ui31.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React36.createElement(PopoverGridContainer, null, /* @__PURE__ */ React36.createElement(import_ui31.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React36.createElement(PropKeyProvider, { bind: "width" }, /* @__PURE__ */ React36.createElement(SizeControl, { startIcon: /* @__PURE__ */ React36.createElement(import_icons12.ArrowsMoveHorizontalIcon, { fontSize: "tiny" }) }))), /* @__PURE__ */ React36.createElement(import_ui31.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React36.createElement(PropKeyProvider, { bind: "height" }, /* @__PURE__ */ React36.createElement(SizeControl, { startIcon: /* @__PURE__ */ React36.createElement(import_icons12.ArrowsMoveVerticalIcon, { fontSize: "tiny" }) })))))) : null);
1987
+ )))), isCustom ? /* @__PURE__ */ React37.createElement(PropProvider, { ...backgroundImageScaleContext }, /* @__PURE__ */ React37.createElement(import_ui32.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React37.createElement(PopoverGridContainer, null, /* @__PURE__ */ React37.createElement(import_ui32.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(PropKeyProvider, { bind: "width" }, /* @__PURE__ */ React37.createElement(
1988
+ SizeControl,
1989
+ {
1990
+ startIcon: /* @__PURE__ */ React37.createElement(import_icons13.ArrowsMoveHorizontalIcon, { fontSize: "tiny" }),
1991
+ extendedValues: ["auto"]
1992
+ }
1993
+ ))), /* @__PURE__ */ React37.createElement(import_ui32.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(PropKeyProvider, { bind: "height" }, /* @__PURE__ */ React37.createElement(
1994
+ SizeControl,
1995
+ {
1996
+ startIcon: /* @__PURE__ */ React37.createElement(import_icons13.ArrowsMoveVerticalIcon, { fontSize: "tiny" }),
1997
+ extendedValues: ["auto"]
1998
+ }
1999
+ )))))) : null);
1807
2000
  };
1808
2001
 
1809
2002
  // src/controls/background-control/background-overlay/use-background-tabs-history.ts
1810
2003
  var import_react12 = require("react");
1811
2004
  var import_editor_props21 = require("@elementor/editor-props");
1812
- var import_ui32 = require("@elementor/ui");
2005
+ var import_ui33 = require("@elementor/ui");
1813
2006
  var useBackgroundTabsHistory = ({
1814
2007
  color: initialBackgroundColorOverlay2,
1815
2008
  image: initialBackgroundImageOverlay
1816
2009
  }) => {
1817
2010
  const { value: imageValue, setValue: setImageValue } = useBoundProp(import_editor_props21.backgroundImageOverlayPropTypeUtil);
1818
2011
  const { value: colorValue, setValue: setColorValue } = useBoundProp(import_editor_props21.backgroundColorOverlayPropTypeUtil);
1819
- const { getTabsProps, getTabProps, getTabPanelProps } = (0, import_ui32.useTabs)(colorValue ? "color" : "image");
2012
+ const { getTabsProps, getTabProps, getTabPanelProps } = (0, import_ui33.useTabs)(colorValue ? "color" : "image");
1820
2013
  const valuesHistory = (0, import_react12.useRef)({
1821
2014
  image: initialBackgroundImageOverlay,
1822
2015
  color: initialBackgroundColorOverlay2
@@ -1882,7 +2075,7 @@ var backgroundResolutionOptions = [
1882
2075
  ];
1883
2076
  var BackgroundOverlayRepeaterControl = createControl(() => {
1884
2077
  const { propType, value: overlayValues, setValue } = useBoundProp(import_editor_props22.backgroundOverlayPropTypeUtil);
1885
- return /* @__PURE__ */ React37.createElement(PropProvider, { propType, value: overlayValues, setValue }, /* @__PURE__ */ React37.createElement(
2078
+ return /* @__PURE__ */ React38.createElement(PropProvider, { propType, value: overlayValues, setValue }, /* @__PURE__ */ React38.createElement(
1886
2079
  Repeater,
1887
2080
  {
1888
2081
  values: overlayValues ?? [],
@@ -1898,58 +2091,58 @@ var BackgroundOverlayRepeaterControl = createControl(() => {
1898
2091
  ));
1899
2092
  });
1900
2093
  var ItemContent2 = ({ bind }) => {
1901
- return /* @__PURE__ */ React37.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React37.createElement(Content2, null));
2094
+ return /* @__PURE__ */ React38.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React38.createElement(Content2, null));
1902
2095
  };
1903
2096
  var Content2 = () => {
1904
2097
  const { getTabsProps, getTabProps, getTabPanelProps } = useBackgroundTabsHistory({
1905
2098
  image: getInitialBackgroundOverlay().value,
1906
2099
  color: initialBackgroundColorOverlay.value
1907
2100
  });
1908
- return /* @__PURE__ */ React37.createElement(import_ui33.Box, { sx: { width: "100%" } }, /* @__PURE__ */ React37.createElement(import_ui33.Box, { sx: { borderBottom: 1, borderColor: "divider" } }, /* @__PURE__ */ React37.createElement(import_ui33.Tabs, { ...getTabsProps(), "aria-label": (0, import_i18n17.__)("Background Overlay", "elementor") }, /* @__PURE__ */ React37.createElement(import_ui33.Tab, { label: (0, import_i18n17.__)("Image", "elementor"), ...getTabProps("image") }), /* @__PURE__ */ React37.createElement(import_ui33.Tab, { label: (0, import_i18n17.__)("Color", "elementor"), ...getTabProps("color") }))), /* @__PURE__ */ React37.createElement(import_ui33.TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps("image") }, /* @__PURE__ */ React37.createElement(PopoverContent, null, /* @__PURE__ */ React37.createElement(ImageOverlayContent, null))), /* @__PURE__ */ React37.createElement(import_ui33.TabPanel, { ...getTabPanelProps("color"), sx: { p: 1.5 } }, /* @__PURE__ */ React37.createElement(import_ui33.Grid, { container: true, spacing: 1, alignItems: "center" }, /* @__PURE__ */ React37.createElement(import_ui33.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React37.createElement(ColorControl, { propTypeUtil: import_editor_props22.backgroundColorOverlayPropTypeUtil })))));
2101
+ return /* @__PURE__ */ React38.createElement(import_ui34.Box, { sx: { width: "100%" } }, /* @__PURE__ */ React38.createElement(import_ui34.Box, { sx: { borderBottom: 1, borderColor: "divider" } }, /* @__PURE__ */ React38.createElement(import_ui34.Tabs, { ...getTabsProps(), "aria-label": (0, import_i18n17.__)("Background Overlay", "elementor") }, /* @__PURE__ */ React38.createElement(import_ui34.Tab, { label: (0, import_i18n17.__)("Image", "elementor"), ...getTabProps("image") }), /* @__PURE__ */ React38.createElement(import_ui34.Tab, { label: (0, import_i18n17.__)("Color", "elementor"), ...getTabProps("color") }))), /* @__PURE__ */ React38.createElement(import_ui34.TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps("image") }, /* @__PURE__ */ React38.createElement(PopoverContent, null, /* @__PURE__ */ React38.createElement(ImageOverlayContent, null))), /* @__PURE__ */ React38.createElement(import_ui34.TabPanel, { ...getTabPanelProps("color"), sx: { p: 1.5 } }, /* @__PURE__ */ React38.createElement(import_ui34.Grid, { container: true, spacing: 1, alignItems: "center" }, /* @__PURE__ */ React38.createElement(import_ui34.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React38.createElement(ColorControl, { propTypeUtil: import_editor_props22.backgroundColorOverlayPropTypeUtil })))));
1909
2102
  };
1910
2103
  var ItemIcon2 = ({ value }) => {
1911
2104
  switch (value.$$type) {
1912
2105
  case "background-image-overlay":
1913
- return /* @__PURE__ */ React37.createElement(ItemIconImage, { value });
2106
+ return /* @__PURE__ */ React38.createElement(ItemIconImage, { value });
1914
2107
  case "background-color-overlay":
1915
- return /* @__PURE__ */ React37.createElement(ItemIconColor, { value });
2108
+ return /* @__PURE__ */ React38.createElement(ItemIconColor, { value });
1916
2109
  default:
1917
2110
  return null;
1918
2111
  }
1919
2112
  };
1920
2113
  var ItemIconColor = ({ value }) => {
1921
- return /* @__PURE__ */ React37.createElement(import_ui33.UnstableColorIndicator, { size: "inherit", component: "span", value: value.value });
2114
+ return /* @__PURE__ */ React38.createElement(import_ui34.UnstableColorIndicator, { size: "inherit", component: "span", value: value.value });
1922
2115
  };
1923
2116
  var ItemIconImage = ({ value }) => {
1924
2117
  const { imageUrl } = useImage(value);
1925
- return /* @__PURE__ */ React37.createElement(import_ui33.CardMedia, { image: imageUrl, sx: { height: 13, width: 13, borderRadius: "4px" } });
2118
+ return /* @__PURE__ */ React38.createElement(import_ui34.CardMedia, { image: imageUrl, sx: { height: 13, width: 13, borderRadius: "4px" } });
1926
2119
  };
1927
2120
  var ItemLabel2 = ({ value }) => {
1928
2121
  switch (value.$$type) {
1929
2122
  case "background-image-overlay":
1930
- return /* @__PURE__ */ React37.createElement(ItemLabelImage, { value });
2123
+ return /* @__PURE__ */ React38.createElement(ItemLabelImage, { value });
1931
2124
  case "background-color-overlay":
1932
- return /* @__PURE__ */ React37.createElement(ItemLabelColor, { value });
2125
+ return /* @__PURE__ */ React38.createElement(ItemLabelColor, { value });
1933
2126
  default:
1934
2127
  return null;
1935
2128
  }
1936
2129
  };
1937
2130
  var ItemLabelColor = ({ value }) => {
1938
- return /* @__PURE__ */ React37.createElement("span", null, value.value);
2131
+ return /* @__PURE__ */ React38.createElement("span", null, value.value);
1939
2132
  };
1940
2133
  var ItemLabelImage = ({ value }) => {
1941
2134
  const { imageTitle } = useImage(value);
1942
- return /* @__PURE__ */ React37.createElement("span", null, imageTitle);
2135
+ return /* @__PURE__ */ React38.createElement("span", null, imageTitle);
1943
2136
  };
1944
2137
  var ImageOverlayContent = () => {
1945
2138
  const propContext = useBoundProp(import_editor_props22.backgroundImageOverlayPropTypeUtil);
1946
- return /* @__PURE__ */ React37.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React37.createElement(PropKeyProvider, { bind: "image" }, /* @__PURE__ */ React37.createElement(import_ui33.Grid, { container: true, spacing: 1, alignItems: "center" }, /* @__PURE__ */ React37.createElement(import_ui33.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React37.createElement(
2139
+ return /* @__PURE__ */ React38.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React38.createElement(PropKeyProvider, { bind: "image" }, /* @__PURE__ */ React38.createElement(import_ui34.Grid, { container: true, spacing: 1, alignItems: "center" }, /* @__PURE__ */ React38.createElement(import_ui34.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React38.createElement(
1947
2140
  ImageControl,
1948
2141
  {
1949
2142
  resolutionLabel: (0, import_i18n17.__)("Resolution", "elementor"),
1950
2143
  sizes: backgroundResolutionOptions
1951
2144
  }
1952
- )))), /* @__PURE__ */ React37.createElement(PropKeyProvider, { bind: "position" }, /* @__PURE__ */ React37.createElement(BackgroundImageOverlayPosition, null)), /* @__PURE__ */ React37.createElement(PropKeyProvider, { bind: "repeat" }, /* @__PURE__ */ React37.createElement(BackgroundImageOverlayRepeat, null)), /* @__PURE__ */ React37.createElement(PropKeyProvider, { bind: "size" }, /* @__PURE__ */ React37.createElement(BackgroundImageOverlaySize, null)), /* @__PURE__ */ React37.createElement(PropKeyProvider, { bind: "attachment" }, /* @__PURE__ */ React37.createElement(BackgroundImageOverlayAttachment, null)));
2145
+ )))), /* @__PURE__ */ React38.createElement(PropKeyProvider, { bind: "position" }, /* @__PURE__ */ React38.createElement(BackgroundImageOverlayPosition, null)), /* @__PURE__ */ React38.createElement(PropKeyProvider, { bind: "repeat" }, /* @__PURE__ */ React38.createElement(BackgroundImageOverlayRepeat, null)), /* @__PURE__ */ React38.createElement(PropKeyProvider, { bind: "size" }, /* @__PURE__ */ React38.createElement(BackgroundImageOverlaySize, null)), /* @__PURE__ */ React38.createElement(PropKeyProvider, { bind: "attachment" }, /* @__PURE__ */ React38.createElement(BackgroundImageOverlayAttachment, null)));
1953
2146
  };
1954
2147
  var useImage = (image) => {
1955
2148
  let imageTitle, imageUrl = null;
@@ -1969,7 +2162,7 @@ var useImage = (image) => {
1969
2162
  // src/controls/background-control/background-control.tsx
1970
2163
  var BackgroundControl = createControl(() => {
1971
2164
  const propContext = useBoundProp(import_editor_props23.backgroundPropTypeUtil);
1972
- return /* @__PURE__ */ React38.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React38.createElement(SectionContent, null, /* @__PURE__ */ React38.createElement(PropKeyProvider, { bind: "background-overlay" }, /* @__PURE__ */ React38.createElement(BackgroundOverlayRepeaterControl, null)), /* @__PURE__ */ React38.createElement(PropKeyProvider, { bind: "color" }, /* @__PURE__ */ React38.createElement(import_ui34.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React38.createElement(import_ui34.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React38.createElement(ControlLabel, null, (0, import_i18n18.__)("Color", "elementor"))), /* @__PURE__ */ React38.createElement(import_ui34.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React38.createElement(ColorControl, null))))));
2165
+ return /* @__PURE__ */ React39.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React39.createElement(SectionContent, null, /* @__PURE__ */ React39.createElement(PropKeyProvider, { bind: "background-overlay" }, /* @__PURE__ */ React39.createElement(BackgroundOverlayRepeaterControl, null)), /* @__PURE__ */ React39.createElement(PropKeyProvider, { bind: "color" }, /* @__PURE__ */ React39.createElement(import_ui35.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React39.createElement(import_ui35.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React39.createElement(ControlLabel, null, (0, import_i18n18.__)("Color", "elementor"))), /* @__PURE__ */ React39.createElement(import_ui35.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React39.createElement(ColorControl, null))))));
1973
2166
  });
1974
2167
  // Annotate the CommonJS export names for ESM import in node:
1975
2168
  0 && (module.exports = {