@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/CHANGELOG.md +24 -0
- package/dist/index.d.mts +6 -3
- package/dist/index.d.ts +6 -3
- package/dist/index.js +497 -304
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +452 -252
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
- package/src/components/repeater.tsx +84 -28
- package/src/components/sortable.tsx +108 -0
- package/src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-repeat.tsx +1 -1
- package/src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-size.tsx +8 -2
- package/src/controls/font-family-control.tsx +2 -2
- package/src/controls/gap-control.tsx +1 -1
- package/src/controls/image-control.tsx +1 -1
- package/src/controls/image-media-control.tsx +1 -1
- package/src/controls/link-control.tsx +2 -13
- package/src/controls/linked-dimensions-control.tsx +108 -88
- package/src/controls/size-control.tsx +91 -26
- package/src/controls/svg-media-control.tsx +2 -2
- package/src/index.ts +1 -0
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
|
|
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.__)("
|
|
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(
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
const
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
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:
|
|
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(
|
|
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
|
|
645
|
+
var React22 = __toESM(require("react"));
|
|
599
646
|
var import_editor_props9 = require("@elementor/editor-props");
|
|
600
|
-
var
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
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
|
-
|
|
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
|
-
|
|
651
|
-
|
|
652
|
-
if (
|
|
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
|
-
|
|
661
|
-
|
|
662
|
-
{
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
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,
|
|
689
|
-
const popoverProps = (0,
|
|
690
|
-
return /* @__PURE__ */
|
|
691
|
-
|
|
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,
|
|
871
|
+
...(0, import_ui17.bindTrigger)(popoverState),
|
|
699
872
|
startIcon,
|
|
700
|
-
actions: /* @__PURE__ */
|
|
701
|
-
|
|
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__ */
|
|
708
|
-
), /* @__PURE__ */
|
|
709
|
-
|
|
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__ */
|
|
716
|
-
), /* @__PURE__ */
|
|
717
|
-
|
|
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__ */
|
|
724
|
-
))
|
|
896
|
+
/* @__PURE__ */ React21.createElement(import_icons3.XIcon, { fontSize: SIZE })
|
|
897
|
+
)),
|
|
898
|
+
sx: { backgroundColor: "background.paper" }
|
|
725
899
|
}
|
|
726
|
-
), /* @__PURE__ */
|
|
727
|
-
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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
|
|
843
|
-
var
|
|
844
|
-
var StyledToggleButtonGroup = (0,
|
|
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,
|
|
1030
|
+
const isRtl = "rtl" === (0, import_ui19.useTheme)().direction;
|
|
857
1031
|
const handleChange = (_, newValue) => {
|
|
858
1032
|
onChange(newValue);
|
|
859
1033
|
};
|
|
860
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
873
|
-
|
|
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__ */
|
|
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__ */
|
|
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
|
|
1083
|
+
var React25 = __toESM(require("react"));
|
|
910
1084
|
var import_editor_props11 = require("@elementor/editor-props");
|
|
911
|
-
var
|
|
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__ */
|
|
932
|
-
|
|
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
|
|
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
|
|
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,
|
|
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__ */
|
|
1005
|
-
|
|
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,
|
|
1184
|
+
...(0, import_ui21.bindToggle)(popupState),
|
|
1011
1185
|
selected: popupState.isOpen
|
|
1012
1186
|
},
|
|
1013
1187
|
icon
|
|
1014
|
-
)))), /* @__PURE__ */
|
|
1015
|
-
|
|
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,
|
|
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__ */
|
|
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__ */
|
|
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
|
|
1212
|
+
var React27 = __toESM(require("react"));
|
|
1039
1213
|
var import_editor_props13 = require("@elementor/editor-props");
|
|
1040
|
-
var
|
|
1041
|
-
var
|
|
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(
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
const
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
}
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
})
|
|
1102
|
-
|
|
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__ */
|
|
1293
|
+
return /* @__PURE__ */ React27.createElement(SizeControl, { startIcon, extendedValues });
|
|
1105
1294
|
}
|
|
1106
|
-
return /* @__PURE__ */
|
|
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
|
|
1300
|
+
var React28 = __toESM(require("react"));
|
|
1112
1301
|
var import_editor_props14 = require("@elementor/editor-props");
|
|
1113
|
-
var
|
|
1114
|
-
var
|
|
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,
|
|
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__ */
|
|
1166
|
-
|
|
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__ */
|
|
1171
|
-
...(0,
|
|
1359
|
+
endIcon: /* @__PURE__ */ React28.createElement(import_icons5.ChevronDownIcon, { fontSize: "tiny" }),
|
|
1360
|
+
...(0, import_ui23.bindTrigger)(popoverState),
|
|
1172
1361
|
fullWidth: true
|
|
1173
1362
|
}
|
|
1174
|
-
), /* @__PURE__ */
|
|
1175
|
-
|
|
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,
|
|
1369
|
+
...(0, import_ui23.bindPopover)(popoverState),
|
|
1181
1370
|
onClose: handleClose
|
|
1182
1371
|
},
|
|
1183
|
-
/* @__PURE__ */
|
|
1184
|
-
|
|
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__ */
|
|
1381
|
+
startAdornment: /* @__PURE__ */ React28.createElement(import_ui23.InputAdornment, { position: "start" }, /* @__PURE__ */ React28.createElement(import_icons5.SearchIcon, { fontSize: SIZE2 }))
|
|
1193
1382
|
}
|
|
1194
1383
|
}
|
|
1195
|
-
)), /* @__PURE__ */
|
|
1196
|
-
|
|
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__ */
|
|
1204
|
-
|
|
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__ */
|
|
1219
|
-
|
|
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
|
|
1421
|
+
var React29 = __toESM(require("react"));
|
|
1233
1422
|
var import_editor_props15 = require("@elementor/editor-props");
|
|
1234
|
-
var
|
|
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__ */
|
|
1239
|
-
|
|
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
|
|
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
|
|
1444
|
+
var import_icons7 = require("@elementor/icons");
|
|
1256
1445
|
var import_session = require("@elementor/session");
|
|
1257
|
-
var
|
|
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
|
|
1451
|
+
var React30 = __toESM(require("react"));
|
|
1262
1452
|
var import_react10 = require("react");
|
|
1263
|
-
var
|
|
1264
|
-
var
|
|
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__ */
|
|
1282
|
-
|
|
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__ */
|
|
1300
|
-
renderInput: (params) => /* @__PURE__ */
|
|
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__ */
|
|
1324
|
-
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
1425
|
-
|
|
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__ */
|
|
1434
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1643
|
+
))), /* @__PURE__ */ React31.createElement(PropKeyProvider, { bind: "isTargetBlank" }, /* @__PURE__ */ React31.createElement(SwitchControl, null))))));
|
|
1454
1644
|
});
|
|
1455
1645
|
var ToggleIconControl = ({ enabled, onIconClick, label }) => {
|
|
1456
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
1685
|
+
var React32 = __toESM(require("react"));
|
|
1505
1686
|
var import_editor_props17 = require("@elementor/editor-props");
|
|
1506
|
-
var
|
|
1507
|
-
var
|
|
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
|
|
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 ?
|
|
1529
|
-
return /* @__PURE__ */
|
|
1530
|
-
|
|
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__ */
|
|
1540
|
-
)), /* @__PURE__ */
|
|
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__ */
|
|
1725
|
+
return /* @__PURE__ */ React32.createElement(SizeControl, null);
|
|
1545
1726
|
}
|
|
1546
|
-
return /* @__PURE__ */
|
|
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
|
|
1731
|
+
var React33 = __toESM(require("react"));
|
|
1551
1732
|
var import_editor_props18 = require("@elementor/editor-props");
|
|
1552
|
-
var
|
|
1553
|
-
var
|
|
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,
|
|
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,
|
|
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__ */
|
|
1599
|
-
|
|
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__ */
|
|
1607
|
-
|
|
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__ */
|
|
1616
|
-
|
|
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__ */
|
|
1625
|
-
|
|
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__ */
|
|
1811
|
+
startIcon: /* @__PURE__ */ React33.createElement(import_icons9.UploadIcon, null),
|
|
1631
1812
|
onClick: () => open({ mode: "upload" })
|
|
1632
1813
|
},
|
|
1633
|
-
(0, import_i18n12.__)("Upload
|
|
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
|
|
1820
|
+
var React39 = __toESM(require("react"));
|
|
1640
1821
|
var import_editor_props23 = require("@elementor/editor-props");
|
|
1641
|
-
var
|
|
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
|
|
1826
|
+
var React38 = __toESM(require("react"));
|
|
1646
1827
|
var import_editor_props22 = require("@elementor/editor-props");
|
|
1647
|
-
var
|
|
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
|
|
1657
|
-
var
|
|
1658
|
-
var
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
1860
|
+
var React35 = __toESM(require("react"));
|
|
1680
1861
|
var import_editor_props19 = require("@elementor/editor-props");
|
|
1681
|
-
var
|
|
1682
|
-
var
|
|
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__ */
|
|
1709
|
-
|
|
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__ */
|
|
1717
|
-
)))), isCustom ? /* @__PURE__ */
|
|
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
|
|
1722
|
-
var
|
|
1723
|
-
var
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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-
|
|
1747
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
1937
|
+
var React37 = __toESM(require("react"));
|
|
1757
1938
|
var import_editor_props20 = require("@elementor/editor-props");
|
|
1758
|
-
var
|
|
1759
|
-
var
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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,
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
2106
|
+
return /* @__PURE__ */ React38.createElement(ItemIconImage, { value });
|
|
1914
2107
|
case "background-color-overlay":
|
|
1915
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
2123
|
+
return /* @__PURE__ */ React38.createElement(ItemLabelImage, { value });
|
|
1931
2124
|
case "background-color-overlay":
|
|
1932
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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 = {
|