@elementor/editor-editing-panel 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +29 -0
- package/dist/index.js +657 -486
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +613 -433
- package/dist/index.mjs.map +1 -1
- package/package.json +12 -11
- package/src/components/style-sections/border-section/border-radius-field.tsx +4 -4
- package/src/components/style-sections/border-section/border-width-field.tsx +4 -4
- package/src/components/style-sections/layout-section/align-items-field.tsx +40 -60
- package/src/components/style-sections/layout-section/align-self-child-field.tsx +72 -0
- package/src/components/style-sections/layout-section/flex-direction-field.tsx +2 -2
- package/src/components/style-sections/layout-section/flex-order-field.tsx +14 -8
- package/src/components/style-sections/layout-section/flex-size-field.tsx +164 -0
- package/src/components/style-sections/layout-section/justify-content-field.tsx +51 -78
- package/src/components/style-sections/layout-section/layout-section.tsx +7 -2
- package/src/components/style-sections/layout-section/utils/rotated-icon.tsx +52 -0
- package/src/components/style-sections/layout-section/wrap-field.tsx +1 -1
- package/src/components/style-sections/position-section/position-section.tsx +3 -3
- package/src/components/style-sections/typography-section/line-height-field.tsx +21 -0
- package/src/components/style-sections/typography-section/text-style-field.tsx +31 -8
- package/src/components/style-sections/typography-section/typography-section.tsx +3 -1
- package/src/controls-registry/controls-registry.tsx +4 -0
- package/src/dynamics/components/dynamic-selection-control.tsx +8 -5
- package/src/dynamics/components/dynamic-selection.tsx +10 -8
- package/src/dynamics/dynamic-control.tsx +9 -11
- package/src/dynamics/utils.ts +20 -3
package/dist/index.js
CHANGED
|
@@ -31,10 +31,10 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
31
31
|
var src_exports = {};
|
|
32
32
|
__export(src_exports, {
|
|
33
33
|
replaceControl: () => replaceControl,
|
|
34
|
-
useBoundProp: () =>
|
|
34
|
+
useBoundProp: () => import_editor_controls46.useBoundProp
|
|
35
35
|
});
|
|
36
36
|
module.exports = __toCommonJS(src_exports);
|
|
37
|
-
var
|
|
37
|
+
var import_editor_controls46 = require("@elementor/editor-controls");
|
|
38
38
|
|
|
39
39
|
// src/control-replacement.tsx
|
|
40
40
|
var import_editor_controls = require("@elementor/editor-controls");
|
|
@@ -46,7 +46,7 @@ var import_editor_panels3 = require("@elementor/editor-panels");
|
|
|
46
46
|
var import_editor_v1_adapters3 = require("@elementor/editor-v1-adapters");
|
|
47
47
|
|
|
48
48
|
// src/hooks/use-close-editor-panel.ts
|
|
49
|
-
var
|
|
49
|
+
var import_react15 = require("react");
|
|
50
50
|
var import_editor_elements8 = require("@elementor/editor-elements");
|
|
51
51
|
var import_editor_v1_adapters = require("@elementor/editor-v1-adapters");
|
|
52
52
|
|
|
@@ -54,12 +54,12 @@ var import_editor_v1_adapters = require("@elementor/editor-v1-adapters");
|
|
|
54
54
|
var import_editor_panels2 = require("@elementor/editor-panels");
|
|
55
55
|
|
|
56
56
|
// src/components/editing-panel.tsx
|
|
57
|
-
var
|
|
58
|
-
var
|
|
57
|
+
var React58 = __toESM(require("react"));
|
|
58
|
+
var import_editor_controls41 = require("@elementor/editor-controls");
|
|
59
59
|
var import_editor_elements6 = require("@elementor/editor-elements");
|
|
60
60
|
var import_editor_panels = require("@elementor/editor-panels");
|
|
61
|
-
var
|
|
62
|
-
var
|
|
61
|
+
var import_ui50 = require("@elementor/ui");
|
|
62
|
+
var import_i18n38 = require("@wordpress/i18n");
|
|
63
63
|
|
|
64
64
|
// src/contexts/element-context.tsx
|
|
65
65
|
var React = __toESM(require("react"));
|
|
@@ -130,10 +130,10 @@ function EditorPanelErrorFallback() {
|
|
|
130
130
|
}
|
|
131
131
|
|
|
132
132
|
// src/components/editing-panel-tabs.tsx
|
|
133
|
-
var
|
|
134
|
-
var
|
|
135
|
-
var
|
|
136
|
-
var
|
|
133
|
+
var React57 = __toESM(require("react"));
|
|
134
|
+
var import_react14 = require("react");
|
|
135
|
+
var import_ui49 = require("@elementor/ui");
|
|
136
|
+
var import_i18n37 = require("@wordpress/i18n");
|
|
137
137
|
|
|
138
138
|
// src/components/settings-tab.tsx
|
|
139
139
|
var React9 = __toESM(require("react"));
|
|
@@ -150,7 +150,9 @@ var controlTypes = {
|
|
|
150
150
|
text: { component: import_editor_controls2.TextControl, layout: "two-columns" },
|
|
151
151
|
textarea: { component: import_editor_controls2.TextAreaControl, layout: "full" },
|
|
152
152
|
size: { component: import_editor_controls2.SizeControl, layout: "two-columns" },
|
|
153
|
-
select: { component: import_editor_controls2.SelectControl, layout: "two-columns" }
|
|
153
|
+
select: { component: import_editor_controls2.SelectControl, layout: "two-columns" },
|
|
154
|
+
link: { component: import_editor_controls2.LinkControl, layout: "full" },
|
|
155
|
+
url: { component: import_editor_controls2.UrlControl, layout: "full" }
|
|
154
156
|
};
|
|
155
157
|
var getControlByType = (type) => controlTypes[type]?.component;
|
|
156
158
|
var getLayoutByType = (type) => controlTypes[type].layout;
|
|
@@ -283,13 +285,13 @@ var Control2 = ({ control }) => {
|
|
|
283
285
|
};
|
|
284
286
|
|
|
285
287
|
// src/components/style-tab.tsx
|
|
286
|
-
var
|
|
287
|
-
var
|
|
288
|
+
var React56 = __toESM(require("react"));
|
|
289
|
+
var import_react13 = require("react");
|
|
288
290
|
var import_editor_elements5 = require("@elementor/editor-elements");
|
|
289
291
|
var import_editor_responsive = require("@elementor/editor-responsive");
|
|
290
292
|
var import_editor_styles = require("@elementor/editor-styles");
|
|
291
|
-
var
|
|
292
|
-
var
|
|
293
|
+
var import_ui48 = require("@elementor/ui");
|
|
294
|
+
var import_i18n36 = require("@wordpress/i18n");
|
|
293
295
|
|
|
294
296
|
// src/contexts/classes-prop-context.tsx
|
|
295
297
|
var React10 = __toESM(require("react"));
|
|
@@ -382,7 +384,7 @@ var createActionOption = (groupLabel, action, inputValue) => ({
|
|
|
382
384
|
var MultiCombobox = ({
|
|
383
385
|
actions = {},
|
|
384
386
|
selected,
|
|
385
|
-
options:
|
|
387
|
+
options: options10,
|
|
386
388
|
optionsLabel,
|
|
387
389
|
onSelect,
|
|
388
390
|
onCreate,
|
|
@@ -406,7 +408,7 @@ var MultiCombobox = ({
|
|
|
406
408
|
disableClearable: true,
|
|
407
409
|
handleHomeEndKeys: true,
|
|
408
410
|
value: selected,
|
|
409
|
-
options:
|
|
411
|
+
options: options10,
|
|
410
412
|
renderGroup,
|
|
411
413
|
renderInput: (params) => /* @__PURE__ */ React12.createElement(import_ui8.TextField, { ...params }),
|
|
412
414
|
getLimitTagsText: (more) => /* @__PURE__ */ React12.createElement(import_ui8.Chip, { size: "tiny", variant: "standard", label: `+${more}`, clickable: true }),
|
|
@@ -420,7 +422,7 @@ var MultiCombobox = ({
|
|
|
420
422
|
return actionProps.onChange(action);
|
|
421
423
|
}
|
|
422
424
|
const selectedValues = selectedOrTypedValue.filter((v) => typeof v !== "string");
|
|
423
|
-
const fixedValues =
|
|
425
|
+
const fixedValues = options10.filter((option) => option.fixed);
|
|
424
426
|
optionProps.onChange([.../* @__PURE__ */ new Set([...fixedValues, ...selectedValues])]);
|
|
425
427
|
},
|
|
426
428
|
getOptionLabel: (option) => {
|
|
@@ -461,19 +463,19 @@ var GroupItems = (0, import_ui8.styled)("ul")`
|
|
|
461
463
|
var ID = "elementor-css-class-selector";
|
|
462
464
|
var TAGS_LIMIT = 8;
|
|
463
465
|
function CssClassSelector() {
|
|
464
|
-
const
|
|
466
|
+
const options10 = useOptions();
|
|
465
467
|
const { id: activeId, setId: setActiveId } = useStyle();
|
|
466
468
|
const [appliedIds] = useAppliedClassesIds();
|
|
467
469
|
const handleApply = useHandleApply();
|
|
468
470
|
const handleActivate = ({ value }) => setActiveId(value);
|
|
469
|
-
const active =
|
|
470
|
-
const applied = appliedIds.map((id) =>
|
|
471
|
+
const active = options10.find((option) => option.value === activeId) || null;
|
|
472
|
+
const applied = appliedIds.map((id) => options10.find((option) => option.value === id)).filter((option) => !!option);
|
|
471
473
|
return /* @__PURE__ */ React13.createElement(import_ui9.Stack, { gap: 1, p: 2 }, /* @__PURE__ */ React13.createElement(import_ui9.Typography, { component: "label", variant: "caption", htmlFor: ID }, (0, import_i18n.__)("CSS Classes", "elementor")), /* @__PURE__ */ React13.createElement(
|
|
472
474
|
MultiCombobox,
|
|
473
475
|
{
|
|
474
476
|
id: ID,
|
|
475
477
|
size: "tiny",
|
|
476
|
-
options:
|
|
478
|
+
options: options10,
|
|
477
479
|
selected: applied,
|
|
478
480
|
onSelect: handleApply,
|
|
479
481
|
limitTags: TAGS_LIMIT,
|
|
@@ -670,6 +672,7 @@ var BorderStyleField = () => {
|
|
|
670
672
|
// src/components/style-sections/border-section/border-width-field.tsx
|
|
671
673
|
var React20 = __toESM(require("react"));
|
|
672
674
|
var import_editor_controls11 = require("@elementor/editor-controls");
|
|
675
|
+
var import_editor_props2 = require("@elementor/editor-props");
|
|
673
676
|
var import_icons4 = require("@elementor/icons");
|
|
674
677
|
var import_i18n5 = require("@wordpress/i18n");
|
|
675
678
|
var edges = [
|
|
@@ -698,10 +701,10 @@ var BorderWidthField = () => {
|
|
|
698
701
|
return /* @__PURE__ */ React20.createElement(StylesField, { bind: "border-width" }, /* @__PURE__ */ React20.createElement(
|
|
699
702
|
import_editor_controls11.EqualUnequalSizesControl,
|
|
700
703
|
{
|
|
704
|
+
items: edges,
|
|
701
705
|
label: (0, import_i18n5.__)("Border Width", "elementor"),
|
|
702
706
|
icon: /* @__PURE__ */ React20.createElement(import_icons4.SideAllIcon, { fontSize: "tiny" }),
|
|
703
|
-
|
|
704
|
-
multiSizeType: "border-width"
|
|
707
|
+
multiSizePropTypeUtil: import_editor_props2.borderWidthPropTypeUtil
|
|
705
708
|
}
|
|
706
709
|
));
|
|
707
710
|
};
|
|
@@ -746,6 +749,7 @@ var BorderField = () => {
|
|
|
746
749
|
// src/components/style-sections/border-section/border-radius-field.tsx
|
|
747
750
|
var React22 = __toESM(require("react"));
|
|
748
751
|
var import_editor_controls12 = require("@elementor/editor-controls");
|
|
752
|
+
var import_editor_props3 = require("@elementor/editor-props");
|
|
749
753
|
var import_icons5 = require("@elementor/icons");
|
|
750
754
|
var import_i18n7 = require("@wordpress/i18n");
|
|
751
755
|
var corners = [
|
|
@@ -774,10 +778,10 @@ var BorderRadiusField = () => {
|
|
|
774
778
|
return /* @__PURE__ */ React22.createElement(StylesField, { bind: "border-radius" }, /* @__PURE__ */ React22.createElement(
|
|
775
779
|
import_editor_controls12.EqualUnequalSizesControl,
|
|
776
780
|
{
|
|
781
|
+
items: corners,
|
|
777
782
|
label: (0, import_i18n7.__)("Border Radius", "elementor"),
|
|
778
783
|
icon: /* @__PURE__ */ React22.createElement(import_icons5.BorderCornersIcon, { fontSize: "tiny" }),
|
|
779
|
-
|
|
780
|
-
multiSizeType: "border-radius"
|
|
784
|
+
multiSizePropTypeUtil: import_editor_props3.borderRadiusPropTypeUtil
|
|
781
785
|
}
|
|
782
786
|
));
|
|
783
787
|
};
|
|
@@ -794,16 +798,16 @@ var EffectsSection = () => {
|
|
|
794
798
|
};
|
|
795
799
|
|
|
796
800
|
// src/components/style-sections/layout-section/layout-section.tsx
|
|
797
|
-
var
|
|
798
|
-
var
|
|
799
|
-
var
|
|
800
|
-
var
|
|
801
|
+
var React34 = __toESM(require("react"));
|
|
802
|
+
var import_editor_controls22 = require("@elementor/editor-controls");
|
|
803
|
+
var import_ui27 = require("@elementor/ui");
|
|
804
|
+
var import_i18n16 = require("@wordpress/i18n");
|
|
801
805
|
|
|
802
806
|
// src/components/style-sections/layout-section/align-items-field.tsx
|
|
803
|
-
var
|
|
807
|
+
var React26 = __toESM(require("react"));
|
|
804
808
|
var import_editor_controls14 = require("@elementor/editor-controls");
|
|
805
809
|
var import_icons6 = require("@elementor/icons");
|
|
806
|
-
var
|
|
810
|
+
var import_ui19 = require("@elementor/ui");
|
|
807
811
|
var import_i18n8 = require("@wordpress/i18n");
|
|
808
812
|
|
|
809
813
|
// src/hooks/use-direction.ts
|
|
@@ -814,175 +818,241 @@ function useDirection() {
|
|
|
814
818
|
return { isSiteRtl, isUiRtl };
|
|
815
819
|
}
|
|
816
820
|
|
|
821
|
+
// src/components/style-sections/layout-section/utils/rotated-icon.tsx
|
|
822
|
+
var React25 = __toESM(require("react"));
|
|
823
|
+
var import_react7 = require("react");
|
|
824
|
+
var import_ui18 = require("@elementor/ui");
|
|
825
|
+
var CLOCKWISE_ANGLES = {
|
|
826
|
+
row: 0,
|
|
827
|
+
column: 90,
|
|
828
|
+
"row-reverse": 180,
|
|
829
|
+
"column-reverse": 270
|
|
830
|
+
};
|
|
831
|
+
var COUNTER_CLOCKWISE_ANGLES = {
|
|
832
|
+
row: 0,
|
|
833
|
+
column: -90,
|
|
834
|
+
"row-reverse": -180,
|
|
835
|
+
"column-reverse": -270
|
|
836
|
+
};
|
|
837
|
+
var RotatedIcon = ({ icon: Icon, size, isClockwise = true, offset = 0 }) => {
|
|
838
|
+
const rotate = (0, import_react7.useRef)(useGetTargetAngle(isClockwise, offset));
|
|
839
|
+
rotate.current = useGetTargetAngle(isClockwise, offset, rotate);
|
|
840
|
+
return /* @__PURE__ */ React25.createElement(Icon, { fontSize: size, sx: { transition: ".3s", rotate: `${rotate.current}deg` } });
|
|
841
|
+
};
|
|
842
|
+
var useGetTargetAngle = (isClockwise, offset, existingRef) => {
|
|
843
|
+
const [direction] = useStylesField("flex-direction");
|
|
844
|
+
const isRtl = "rtl" === (0, import_ui18.useTheme)().direction;
|
|
845
|
+
const rotationMultiplier = isRtl ? -1 : 1;
|
|
846
|
+
const angleMap = isClockwise ? CLOCKWISE_ANGLES : COUNTER_CLOCKWISE_ANGLES;
|
|
847
|
+
const currentAngle = existingRef ? existingRef.current * rotationMultiplier : angleMap[direction?.value || "row"] + offset;
|
|
848
|
+
const targetAngle = angleMap[direction?.value || "row"] + offset;
|
|
849
|
+
const diffToTargetAngle = (targetAngle - currentAngle + 360) % 360;
|
|
850
|
+
const formattedDiff = (diffToTargetAngle + 180) % 360 - 180;
|
|
851
|
+
return (currentAngle + formattedDiff) * rotationMultiplier;
|
|
852
|
+
};
|
|
853
|
+
|
|
817
854
|
// src/components/style-sections/layout-section/align-items-field.tsx
|
|
855
|
+
var StartIcon = (0, import_ui19.withDirection)(import_icons6.LayoutAlignLeftIcon);
|
|
856
|
+
var EndIcon = (0, import_ui19.withDirection)(import_icons6.LayoutAlignRightIcon);
|
|
857
|
+
var iconProps = {
|
|
858
|
+
isClockwise: false,
|
|
859
|
+
offset: 90
|
|
860
|
+
};
|
|
861
|
+
var options = [
|
|
862
|
+
{
|
|
863
|
+
value: "start",
|
|
864
|
+
label: (0, import_i18n8.__)("Start", "elementor"),
|
|
865
|
+
renderContent: ({ size }) => /* @__PURE__ */ React26.createElement(RotatedIcon, { icon: StartIcon, size, ...iconProps }),
|
|
866
|
+
showTooltip: true
|
|
867
|
+
},
|
|
868
|
+
{
|
|
869
|
+
value: "center",
|
|
870
|
+
label: (0, import_i18n8.__)("Center", "elementor"),
|
|
871
|
+
renderContent: ({ size }) => /* @__PURE__ */ React26.createElement(RotatedIcon, { icon: import_icons6.LayoutAlignCenterIcon, size, ...iconProps }),
|
|
872
|
+
showTooltip: true
|
|
873
|
+
},
|
|
874
|
+
{
|
|
875
|
+
value: "end",
|
|
876
|
+
label: (0, import_i18n8.__)("End", "elementor"),
|
|
877
|
+
renderContent: ({ size }) => /* @__PURE__ */ React26.createElement(RotatedIcon, { icon: EndIcon, size, ...iconProps }),
|
|
878
|
+
showTooltip: true
|
|
879
|
+
},
|
|
880
|
+
{
|
|
881
|
+
value: "stretch",
|
|
882
|
+
label: (0, import_i18n8.__)("Stretch", "elementor"),
|
|
883
|
+
renderContent: ({ size }) => /* @__PURE__ */ React26.createElement(RotatedIcon, { icon: import_icons6.LayoutDistributeVerticalIcon, size, ...iconProps }),
|
|
884
|
+
showTooltip: true
|
|
885
|
+
}
|
|
886
|
+
];
|
|
818
887
|
var AlignItemsField = () => {
|
|
819
|
-
const
|
|
820
|
-
return /* @__PURE__ */
|
|
888
|
+
const { isSiteRtl } = useDirection();
|
|
889
|
+
return /* @__PURE__ */ React26.createElement(import_ui19.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React26.createElement(import_ui19.ThemeProvider, null, /* @__PURE__ */ React26.createElement(StylesField, { bind: "align-items" }, /* @__PURE__ */ React26.createElement(import_ui19.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React26.createElement(import_ui19.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React26.createElement(import_editor_controls14.ControlLabel, null, (0, import_i18n8.__)("Align items", "elementor"))), /* @__PURE__ */ React26.createElement(import_ui19.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React26.createElement(import_editor_controls14.ToggleControl, { options }))))));
|
|
821
890
|
};
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
renderContent: ({ size }) => /* @__PURE__ */ React25.createElement(RotatedIcon, { icon: import_icons6.LayoutAlignCenterIcon, size }),
|
|
835
|
-
showTooltip: true
|
|
836
|
-
},
|
|
837
|
-
{
|
|
838
|
-
value: "end",
|
|
839
|
-
label: (0, import_i18n8.__)("End", "elementor"),
|
|
840
|
-
renderContent: ({ size }) => /* @__PURE__ */ React25.createElement(RotatedIcon, { icon: EndIcon, size }),
|
|
841
|
-
showTooltip: true
|
|
842
|
-
},
|
|
843
|
-
{
|
|
844
|
-
value: "justify",
|
|
845
|
-
label: (0, import_i18n8.__)("Justify", "elementor"),
|
|
846
|
-
renderContent: ({ size }) => /* @__PURE__ */ React25.createElement(RotatedIcon, { icon: import_icons6.LayoutDistributeVerticalIcon, size }),
|
|
847
|
-
showTooltip: true
|
|
848
|
-
}
|
|
849
|
-
];
|
|
891
|
+
|
|
892
|
+
// src/components/style-sections/layout-section/align-self-child-field.tsx
|
|
893
|
+
var React27 = __toESM(require("react"));
|
|
894
|
+
var import_editor_controls15 = require("@elementor/editor-controls");
|
|
895
|
+
var import_icons7 = require("@elementor/icons");
|
|
896
|
+
var import_ui20 = require("@elementor/ui");
|
|
897
|
+
var import_i18n9 = require("@wordpress/i18n");
|
|
898
|
+
var StartIcon2 = (0, import_ui20.withDirection)(import_icons7.LayoutAlignLeftIcon);
|
|
899
|
+
var EndIcon2 = (0, import_ui20.withDirection)(import_icons7.LayoutAlignRightIcon);
|
|
900
|
+
var iconProps2 = {
|
|
901
|
+
isClockwise: false,
|
|
902
|
+
offset: 90
|
|
850
903
|
};
|
|
851
|
-
var
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
{
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
904
|
+
var options2 = [
|
|
905
|
+
{
|
|
906
|
+
value: "start",
|
|
907
|
+
label: (0, import_i18n9.__)("Start", "elementor"),
|
|
908
|
+
renderContent: ({ size }) => /* @__PURE__ */ React27.createElement(RotatedIcon, { icon: StartIcon2, size, ...iconProps2 }),
|
|
909
|
+
showTooltip: true
|
|
910
|
+
},
|
|
911
|
+
{
|
|
912
|
+
value: "center",
|
|
913
|
+
label: (0, import_i18n9.__)("Center", "elementor"),
|
|
914
|
+
renderContent: ({ size }) => /* @__PURE__ */ React27.createElement(RotatedIcon, { icon: import_icons7.LayoutAlignCenterIcon, size, ...iconProps2 }),
|
|
915
|
+
showTooltip: true
|
|
916
|
+
},
|
|
917
|
+
{
|
|
918
|
+
value: "end",
|
|
919
|
+
label: (0, import_i18n9.__)("End", "elementor"),
|
|
920
|
+
renderContent: ({ size }) => /* @__PURE__ */ React27.createElement(RotatedIcon, { icon: EndIcon2, size, ...iconProps2 }),
|
|
921
|
+
showTooltip: true
|
|
922
|
+
},
|
|
923
|
+
{
|
|
924
|
+
value: "stretch",
|
|
925
|
+
label: (0, import_i18n9.__)("Stretch", "elementor"),
|
|
926
|
+
renderContent: ({ size }) => /* @__PURE__ */ React27.createElement(RotatedIcon, { icon: import_icons7.LayoutDistributeVerticalIcon, size, ...iconProps2 }),
|
|
927
|
+
showTooltip: true
|
|
928
|
+
}
|
|
929
|
+
];
|
|
930
|
+
var AlignSelfChild = () => {
|
|
931
|
+
const { isSiteRtl } = useDirection();
|
|
932
|
+
return /* @__PURE__ */ React27.createElement(import_ui20.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React27.createElement(import_ui20.ThemeProvider, null, /* @__PURE__ */ React27.createElement(StylesField, { bind: "align-self" }, /* @__PURE__ */ React27.createElement(import_ui20.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React27.createElement(import_ui20.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React27.createElement(import_editor_controls15.ControlLabel, null, (0, import_i18n9.__)("Align self", "elementor"))), /* @__PURE__ */ React27.createElement(import_ui20.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React27.createElement(import_editor_controls15.ToggleControl, { options: options2 }))))));
|
|
866
933
|
};
|
|
867
934
|
|
|
868
935
|
// src/components/style-sections/layout-section/display-field.tsx
|
|
869
|
-
var
|
|
870
|
-
var
|
|
871
|
-
var
|
|
872
|
-
var
|
|
936
|
+
var React28 = __toESM(require("react"));
|
|
937
|
+
var import_editor_controls16 = require("@elementor/editor-controls");
|
|
938
|
+
var import_ui21 = require("@elementor/ui");
|
|
939
|
+
var import_i18n10 = require("@wordpress/i18n");
|
|
873
940
|
var DisplayField = () => {
|
|
874
|
-
const
|
|
941
|
+
const options10 = [
|
|
875
942
|
{
|
|
876
943
|
value: "block",
|
|
877
|
-
renderContent: () => (0,
|
|
878
|
-
label: (0,
|
|
944
|
+
renderContent: () => (0, import_i18n10.__)("Block", "elementor"),
|
|
945
|
+
label: (0, import_i18n10.__)("Block", "elementor")
|
|
879
946
|
},
|
|
880
947
|
{
|
|
881
948
|
value: "flex",
|
|
882
|
-
renderContent: () => (0,
|
|
883
|
-
label: (0,
|
|
949
|
+
renderContent: () => (0, import_i18n10.__)("Flex", "elementor"),
|
|
950
|
+
label: (0, import_i18n10.__)("Flex", "elementor")
|
|
884
951
|
}
|
|
885
952
|
];
|
|
886
|
-
return /* @__PURE__ */
|
|
953
|
+
return /* @__PURE__ */ React28.createElement(StylesField, { bind: "display" }, /* @__PURE__ */ React28.createElement(import_ui21.Stack, { gap: 1 }, /* @__PURE__ */ React28.createElement(import_editor_controls16.ControlLabel, null, (0, import_i18n10.__)("Display", "elementor")), /* @__PURE__ */ React28.createElement(import_editor_controls16.ToggleControl, { options: options10, fullWidth: true })));
|
|
887
954
|
};
|
|
888
955
|
|
|
889
956
|
// src/components/style-sections/layout-section/flex-direction-field.tsx
|
|
890
|
-
var
|
|
891
|
-
var
|
|
892
|
-
var
|
|
893
|
-
var
|
|
894
|
-
var
|
|
895
|
-
var
|
|
957
|
+
var React29 = __toESM(require("react"));
|
|
958
|
+
var import_editor_controls17 = require("@elementor/editor-controls");
|
|
959
|
+
var import_icons8 = require("@elementor/icons");
|
|
960
|
+
var import_ui22 = require("@elementor/ui");
|
|
961
|
+
var import_i18n11 = require("@wordpress/i18n");
|
|
962
|
+
var options3 = [
|
|
896
963
|
{
|
|
897
964
|
value: "row",
|
|
898
|
-
label: (0,
|
|
965
|
+
label: (0, import_i18n11.__)("Row", "elementor"),
|
|
899
966
|
renderContent: ({ size }) => {
|
|
900
|
-
const
|
|
901
|
-
return /* @__PURE__ */
|
|
967
|
+
const StartIcon4 = (0, import_ui22.withDirection)(import_icons8.ArrowRightIcon);
|
|
968
|
+
return /* @__PURE__ */ React29.createElement(StartIcon4, { fontSize: size });
|
|
902
969
|
},
|
|
903
970
|
showTooltip: true
|
|
904
971
|
},
|
|
905
972
|
{
|
|
906
973
|
value: "column",
|
|
907
|
-
label: (0,
|
|
908
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
974
|
+
label: (0, import_i18n11.__)("Column", "elementor"),
|
|
975
|
+
renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(import_icons8.ArrowDownSmallIcon, { fontSize: size }),
|
|
909
976
|
showTooltip: true
|
|
910
977
|
},
|
|
911
978
|
{
|
|
912
979
|
value: "row-reverse",
|
|
913
|
-
label: (0,
|
|
980
|
+
label: (0, import_i18n11.__)("Reversed row", "elementor"),
|
|
914
981
|
renderContent: ({ size }) => {
|
|
915
|
-
const
|
|
916
|
-
return /* @__PURE__ */
|
|
982
|
+
const EndIcon4 = (0, import_ui22.withDirection)(import_icons8.ArrowLeftIcon);
|
|
983
|
+
return /* @__PURE__ */ React29.createElement(EndIcon4, { fontSize: size });
|
|
917
984
|
},
|
|
918
985
|
showTooltip: true
|
|
919
986
|
},
|
|
920
987
|
{
|
|
921
988
|
value: "column-reverse",
|
|
922
|
-
label: (0,
|
|
923
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
989
|
+
label: (0, import_i18n11.__)("Reversed column", "elementor"),
|
|
990
|
+
renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(import_icons8.ArrowUpSmallIcon, { fontSize: size }),
|
|
924
991
|
showTooltip: true
|
|
925
992
|
}
|
|
926
993
|
];
|
|
927
994
|
var FlexDirectionField = () => {
|
|
928
995
|
const { isSiteRtl } = useDirection();
|
|
929
|
-
return /* @__PURE__ */
|
|
996
|
+
return /* @__PURE__ */ React29.createElement(import_ui22.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React29.createElement(import_ui22.ThemeProvider, null, /* @__PURE__ */ React29.createElement(StylesField, { bind: "flex-direction" }, /* @__PURE__ */ React29.createElement(import_ui22.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React29.createElement(import_ui22.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React29.createElement(import_editor_controls17.ControlLabel, null, (0, import_i18n11.__)("Direction", "elementor"))), /* @__PURE__ */ React29.createElement(import_ui22.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React29.createElement(import_editor_controls17.ToggleControl, { options: options3 }))))));
|
|
930
997
|
};
|
|
931
998
|
|
|
932
999
|
// src/components/style-sections/layout-section/flex-order-field.tsx
|
|
933
|
-
var
|
|
934
|
-
var
|
|
935
|
-
var
|
|
936
|
-
var
|
|
937
|
-
var
|
|
938
|
-
var
|
|
1000
|
+
var React30 = __toESM(require("react"));
|
|
1001
|
+
var import_react8 = require("react");
|
|
1002
|
+
var import_editor_controls18 = require("@elementor/editor-controls");
|
|
1003
|
+
var import_icons9 = require("@elementor/icons");
|
|
1004
|
+
var import_ui23 = require("@elementor/ui");
|
|
1005
|
+
var import_i18n12 = require("@wordpress/i18n");
|
|
939
1006
|
var FIRST_DEFAULT_VALUE = -99999;
|
|
940
1007
|
var LAST_DEFAULT_VALUE = 99999;
|
|
941
1008
|
var FIRST = "first";
|
|
942
1009
|
var LAST = "last";
|
|
943
1010
|
var CUSTOM = "custom";
|
|
1011
|
+
var orderValueMap = {
|
|
1012
|
+
[FIRST]: FIRST_DEFAULT_VALUE,
|
|
1013
|
+
[LAST]: LAST_DEFAULT_VALUE
|
|
1014
|
+
};
|
|
944
1015
|
var items = [
|
|
945
1016
|
{
|
|
946
1017
|
value: FIRST,
|
|
947
|
-
label: (0,
|
|
948
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1018
|
+
label: (0, import_i18n12.__)("First", "elementor"),
|
|
1019
|
+
renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(import_icons9.ArrowUpSmallIcon, { fontSize: size }),
|
|
949
1020
|
showTooltip: true
|
|
950
1021
|
},
|
|
951
1022
|
{
|
|
952
1023
|
value: LAST,
|
|
953
|
-
label: (0,
|
|
954
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1024
|
+
label: (0, import_i18n12.__)("Last", "elementor"),
|
|
1025
|
+
renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(import_icons9.ArrowDownSmallIcon, { fontSize: size }),
|
|
955
1026
|
showTooltip: true
|
|
956
1027
|
},
|
|
957
1028
|
{
|
|
958
1029
|
value: CUSTOM,
|
|
959
|
-
label: (0,
|
|
960
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1030
|
+
label: (0, import_i18n12.__)("Custom", "elementor"),
|
|
1031
|
+
renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(import_icons9.PencilIcon, { fontSize: size }),
|
|
961
1032
|
showTooltip: true
|
|
962
1033
|
}
|
|
963
1034
|
];
|
|
964
1035
|
var FlexOrderField = () => {
|
|
965
1036
|
const { isSiteRtl } = useDirection(), [order, setOrder] = useStylesField("order");
|
|
966
|
-
const [groupControlValue, setGroupControlValue] = (0,
|
|
1037
|
+
const [groupControlValue, setGroupControlValue] = (0, import_react8.useState)(getGroupControlValue(order?.value || null));
|
|
967
1038
|
const handleToggleButtonChange = (group) => {
|
|
968
1039
|
setGroupControlValue(group);
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
};
|
|
974
|
-
setOrder(group ? orderValueMap[group] : null);
|
|
1040
|
+
if (!group || group === CUSTOM) {
|
|
1041
|
+
setOrder(null);
|
|
1042
|
+
return;
|
|
1043
|
+
}
|
|
1044
|
+
setOrder({ $$type: "number", value: orderValueMap[group] });
|
|
975
1045
|
};
|
|
976
|
-
return /* @__PURE__ */
|
|
977
|
-
|
|
1046
|
+
return /* @__PURE__ */ React30.createElement(import_ui23.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React30.createElement(import_ui23.ThemeProvider, null, /* @__PURE__ */ React30.createElement(import_ui23.Stack, { gap: 2 }, /* @__PURE__ */ React30.createElement(import_ui23.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React30.createElement(import_ui23.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React30.createElement(import_editor_controls18.ControlLabel, null, (0, import_i18n12.__)("Order", "elementor"))), /* @__PURE__ */ React30.createElement(import_ui23.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React30.createElement(
|
|
1047
|
+
import_editor_controls18.ControlToggleButtonGroup,
|
|
978
1048
|
{
|
|
979
1049
|
items,
|
|
980
1050
|
value: groupControlValue,
|
|
981
1051
|
onChange: handleToggleButtonChange,
|
|
982
1052
|
exclusive: true
|
|
983
1053
|
}
|
|
984
|
-
))), CUSTOM === groupControlValue && /* @__PURE__ */
|
|
985
|
-
|
|
1054
|
+
))), CUSTOM === groupControlValue && /* @__PURE__ */ React30.createElement(StylesField, { bind: "order" }, /* @__PURE__ */ React30.createElement(import_ui23.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React30.createElement(import_ui23.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React30.createElement(import_editor_controls18.ControlLabel, null, (0, import_i18n12.__)("Custom order", "elementor"))), /* @__PURE__ */ React30.createElement(import_ui23.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React30.createElement(
|
|
1055
|
+
import_editor_controls18.NumberControl,
|
|
986
1056
|
{
|
|
987
1057
|
min: FIRST_DEFAULT_VALUE + 1,
|
|
988
1058
|
max: LAST_DEFAULT_VALUE - 1,
|
|
@@ -1000,139 +1070,204 @@ var getGroupControlValue = (order) => {
|
|
|
1000
1070
|
return 0 === order || order ? CUSTOM : null;
|
|
1001
1071
|
};
|
|
1002
1072
|
|
|
1003
|
-
// src/components/style-sections/layout-section/
|
|
1004
|
-
var
|
|
1005
|
-
var
|
|
1006
|
-
var
|
|
1007
|
-
var
|
|
1008
|
-
var
|
|
1009
|
-
var
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
value: "space-around",
|
|
1042
|
-
label: (0, import_i18n12.__)("Space around", "elementor"),
|
|
1043
|
-
renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon2, { icon: import_icons9.JustifySpaceAroundVerticalIcon, size }),
|
|
1044
|
-
showTooltip: true
|
|
1045
|
-
},
|
|
1046
|
-
{
|
|
1047
|
-
value: "space-evenly",
|
|
1048
|
-
label: (0, import_i18n12.__)("Space evenly", "elementor"),
|
|
1049
|
-
renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon2, { icon: import_icons9.JustifyDistributeVerticalIcon, size }),
|
|
1050
|
-
showTooltip: true
|
|
1073
|
+
// src/components/style-sections/layout-section/flex-size-field.tsx
|
|
1074
|
+
var React31 = __toESM(require("react"));
|
|
1075
|
+
var import_editor_controls19 = require("@elementor/editor-controls");
|
|
1076
|
+
var import_icons10 = require("@elementor/icons");
|
|
1077
|
+
var import_ui24 = require("@elementor/ui");
|
|
1078
|
+
var import_i18n13 = require("@wordpress/i18n");
|
|
1079
|
+
var DEFAULT = 1;
|
|
1080
|
+
var items2 = [
|
|
1081
|
+
{
|
|
1082
|
+
value: "flex-grow",
|
|
1083
|
+
label: (0, import_i18n13.__)("Grow", "elementor"),
|
|
1084
|
+
renderContent: ({ size }) => /* @__PURE__ */ React31.createElement(import_icons10.ExpandIcon, { fontSize: size }),
|
|
1085
|
+
showTooltip: true
|
|
1086
|
+
},
|
|
1087
|
+
{
|
|
1088
|
+
value: "flex-shrink",
|
|
1089
|
+
label: (0, import_i18n13.__)("Shrink", "elementor"),
|
|
1090
|
+
renderContent: ({ size }) => /* @__PURE__ */ React31.createElement(import_icons10.ShrinkIcon, { fontSize: size }),
|
|
1091
|
+
showTooltip: true
|
|
1092
|
+
},
|
|
1093
|
+
{
|
|
1094
|
+
value: "custom",
|
|
1095
|
+
label: (0, import_i18n13.__)("Custom", "elementor"),
|
|
1096
|
+
renderContent: ({ size }) => /* @__PURE__ */ React31.createElement(import_icons10.PencilIcon, { fontSize: size }),
|
|
1097
|
+
showTooltip: true
|
|
1098
|
+
}
|
|
1099
|
+
];
|
|
1100
|
+
var FlexSizeField = () => {
|
|
1101
|
+
const { isSiteRtl } = useDirection(), [growField, setGrowField] = useStylesField("flex-grow"), [shrinkField, setShrinkField] = useStylesField("flex-shrink"), [basisField, setBasisField] = useStylesField("flex-basis");
|
|
1102
|
+
const grow = growField?.value || null, shrink = shrinkField?.value || null, basis = basisField?.value || null;
|
|
1103
|
+
const currentGroup = React31.useMemo(() => getActiveGroup({ grow, shrink, basis }), [grow, shrink, basis]), [activeGroup, setActiveGroup] = React31.useState(currentGroup);
|
|
1104
|
+
const onChangeGroup = (group = null) => {
|
|
1105
|
+
setActiveGroup(group);
|
|
1106
|
+
setBasisField(null);
|
|
1107
|
+
if (!group || group === "custom") {
|
|
1108
|
+
setGrowField(null);
|
|
1109
|
+
setShrinkField(null);
|
|
1110
|
+
return;
|
|
1051
1111
|
}
|
|
1052
|
-
|
|
1053
|
-
};
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
"row-reverse": 90,
|
|
1060
|
-
"column-reverse": 180
|
|
1112
|
+
if (group === "flex-grow") {
|
|
1113
|
+
setGrowField({ $$type: "number", value: DEFAULT });
|
|
1114
|
+
setShrinkField(null);
|
|
1115
|
+
return;
|
|
1116
|
+
}
|
|
1117
|
+
setGrowField(null);
|
|
1118
|
+
setShrinkField({ $$type: "number", value: DEFAULT });
|
|
1061
1119
|
};
|
|
1062
|
-
return /* @__PURE__ */
|
|
1063
|
-
|
|
1120
|
+
return /* @__PURE__ */ React31.createElement(import_ui24.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React31.createElement(import_ui24.ThemeProvider, null, /* @__PURE__ */ React31.createElement(import_ui24.Stack, { gap: 2 }, /* @__PURE__ */ React31.createElement(import_ui24.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React31.createElement(import_editor_controls19.ControlLabel, null, (0, import_i18n13.__)("Size", "elementor"))), /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React31.createElement(
|
|
1121
|
+
import_editor_controls19.ControlToggleButtonGroup,
|
|
1064
1122
|
{
|
|
1065
|
-
|
|
1066
|
-
|
|
1123
|
+
value: activeGroup,
|
|
1124
|
+
onChange: onChangeGroup,
|
|
1125
|
+
items: items2,
|
|
1126
|
+
exclusive: true
|
|
1067
1127
|
}
|
|
1068
|
-
);
|
|
1128
|
+
))), "custom" === activeGroup && /* @__PURE__ */ React31.createElement(FlexCustomField, null))));
|
|
1129
|
+
};
|
|
1130
|
+
var FlexCustomField = () => /* @__PURE__ */ React31.createElement(React31.Fragment, null, /* @__PURE__ */ React31.createElement(StylesField, { bind: "flex-grow" }, /* @__PURE__ */ React31.createElement(import_ui24.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React31.createElement(import_editor_controls19.ControlLabel, null, (0, import_i18n13.__)("Grow", "elementor"))), /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React31.createElement(import_editor_controls19.NumberControl, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React31.createElement(StylesField, { bind: "flex-shrink" }, /* @__PURE__ */ React31.createElement(import_ui24.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React31.createElement(import_editor_controls19.ControlLabel, null, (0, import_i18n13.__)("Shrink", "elementor"))), /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React31.createElement(import_editor_controls19.NumberControl, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React31.createElement(StylesField, { bind: "flex-basis" }, /* @__PURE__ */ React31.createElement(import_ui24.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React31.createElement(import_editor_controls19.ControlLabel, null, (0, import_i18n13.__)("Basis", "elementor"))), /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React31.createElement(import_editor_controls19.SizeControl, null)))));
|
|
1131
|
+
var getActiveGroup = ({
|
|
1132
|
+
grow,
|
|
1133
|
+
shrink,
|
|
1134
|
+
basis
|
|
1135
|
+
}) => {
|
|
1136
|
+
if (null === grow && null === shrink && !basis) {
|
|
1137
|
+
return null;
|
|
1138
|
+
}
|
|
1139
|
+
if (shrink && grow || basis) {
|
|
1140
|
+
return "custom";
|
|
1141
|
+
}
|
|
1142
|
+
if (grow === DEFAULT) {
|
|
1143
|
+
return "flex-grow";
|
|
1144
|
+
}
|
|
1145
|
+
if (shrink === DEFAULT) {
|
|
1146
|
+
return "flex-shrink";
|
|
1147
|
+
}
|
|
1148
|
+
return "custom";
|
|
1149
|
+
};
|
|
1150
|
+
|
|
1151
|
+
// src/components/style-sections/layout-section/justify-content-field.tsx
|
|
1152
|
+
var React32 = __toESM(require("react"));
|
|
1153
|
+
var import_editor_controls20 = require("@elementor/editor-controls");
|
|
1154
|
+
var import_icons11 = require("@elementor/icons");
|
|
1155
|
+
var import_ui25 = require("@elementor/ui");
|
|
1156
|
+
var import_i18n14 = require("@wordpress/i18n");
|
|
1157
|
+
var StartIcon3 = (0, import_ui25.withDirection)(import_icons11.JustifyTopIcon);
|
|
1158
|
+
var EndIcon3 = (0, import_ui25.withDirection)(import_icons11.JustifyBottomIcon);
|
|
1159
|
+
var iconProps3 = {
|
|
1160
|
+
isClockwise: true,
|
|
1161
|
+
offset: -90
|
|
1162
|
+
};
|
|
1163
|
+
var options4 = [
|
|
1164
|
+
{
|
|
1165
|
+
value: "start",
|
|
1166
|
+
label: (0, import_i18n14.__)("Start", "elementor"),
|
|
1167
|
+
renderContent: ({ size }) => /* @__PURE__ */ React32.createElement(RotatedIcon, { icon: StartIcon3, size, ...iconProps3 }),
|
|
1168
|
+
showTooltip: true
|
|
1169
|
+
},
|
|
1170
|
+
{
|
|
1171
|
+
value: "center",
|
|
1172
|
+
label: (0, import_i18n14.__)("Center", "elementor"),
|
|
1173
|
+
renderContent: ({ size }) => /* @__PURE__ */ React32.createElement(RotatedIcon, { icon: import_icons11.JustifyCenterIcon, size, ...iconProps3 }),
|
|
1174
|
+
showTooltip: true
|
|
1175
|
+
},
|
|
1176
|
+
{
|
|
1177
|
+
value: "end",
|
|
1178
|
+
label: (0, import_i18n14.__)("End", "elementor"),
|
|
1179
|
+
renderContent: ({ size }) => /* @__PURE__ */ React32.createElement(RotatedIcon, { icon: EndIcon3, size, ...iconProps3 }),
|
|
1180
|
+
showTooltip: true
|
|
1181
|
+
},
|
|
1182
|
+
{
|
|
1183
|
+
value: "space-between",
|
|
1184
|
+
label: (0, import_i18n14.__)("Space between", "elementor"),
|
|
1185
|
+
renderContent: ({ size }) => /* @__PURE__ */ React32.createElement(RotatedIcon, { icon: import_icons11.JustifySpaceBetweenVerticalIcon, size, ...iconProps3 }),
|
|
1186
|
+
showTooltip: true
|
|
1187
|
+
},
|
|
1188
|
+
{
|
|
1189
|
+
value: "space-around",
|
|
1190
|
+
label: (0, import_i18n14.__)("Space around", "elementor"),
|
|
1191
|
+
renderContent: ({ size }) => /* @__PURE__ */ React32.createElement(RotatedIcon, { icon: import_icons11.JustifySpaceAroundVerticalIcon, size, ...iconProps3 }),
|
|
1192
|
+
showTooltip: true
|
|
1193
|
+
},
|
|
1194
|
+
{
|
|
1195
|
+
value: "space-evenly",
|
|
1196
|
+
label: (0, import_i18n14.__)("Space evenly", "elementor"),
|
|
1197
|
+
renderContent: ({ size }) => /* @__PURE__ */ React32.createElement(RotatedIcon, { icon: import_icons11.JustifyDistributeVerticalIcon, size, ...iconProps3 }),
|
|
1198
|
+
showTooltip: true
|
|
1199
|
+
}
|
|
1200
|
+
];
|
|
1201
|
+
var JustifyContentField = () => {
|
|
1202
|
+
const { isSiteRtl } = useDirection();
|
|
1203
|
+
return /* @__PURE__ */ React32.createElement(import_ui25.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React32.createElement(import_ui25.ThemeProvider, null, /* @__PURE__ */ React32.createElement(StylesField, { bind: "justify-content" }, /* @__PURE__ */ React32.createElement(import_ui25.Stack, { gap: 1 }, /* @__PURE__ */ React32.createElement(import_editor_controls20.ControlLabel, null, (0, import_i18n14.__)("Justify content", "elementor")), /* @__PURE__ */ React32.createElement(import_editor_controls20.ToggleControl, { options: options4, fullWidth: true })))));
|
|
1069
1204
|
};
|
|
1070
1205
|
|
|
1071
1206
|
// src/components/style-sections/layout-section/wrap-field.tsx
|
|
1072
|
-
var
|
|
1073
|
-
var
|
|
1074
|
-
var
|
|
1075
|
-
var
|
|
1076
|
-
var
|
|
1077
|
-
var
|
|
1207
|
+
var React33 = __toESM(require("react"));
|
|
1208
|
+
var import_editor_controls21 = require("@elementor/editor-controls");
|
|
1209
|
+
var import_icons12 = require("@elementor/icons");
|
|
1210
|
+
var import_ui26 = require("@elementor/ui");
|
|
1211
|
+
var import_i18n15 = require("@wordpress/i18n");
|
|
1212
|
+
var options5 = [
|
|
1078
1213
|
{
|
|
1079
1214
|
value: "nowrap",
|
|
1080
|
-
label: (0,
|
|
1081
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1215
|
+
label: (0, import_i18n15.__)("No wrap", "elementor"),
|
|
1216
|
+
renderContent: ({ size }) => /* @__PURE__ */ React33.createElement(import_icons12.ArrowRightIcon, { fontSize: size }),
|
|
1082
1217
|
showTooltip: true
|
|
1083
1218
|
},
|
|
1084
1219
|
{
|
|
1085
1220
|
value: "wrap",
|
|
1086
|
-
label: (0,
|
|
1087
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1221
|
+
label: (0, import_i18n15.__)("Wrap", "elementor"),
|
|
1222
|
+
renderContent: ({ size }) => /* @__PURE__ */ React33.createElement(import_icons12.ArrowBackIcon, { fontSize: size }),
|
|
1088
1223
|
showTooltip: true
|
|
1089
1224
|
},
|
|
1090
1225
|
{
|
|
1091
1226
|
value: "wrap-reverse",
|
|
1092
|
-
label: (0,
|
|
1093
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1227
|
+
label: (0, import_i18n15.__)("Reversed wrap", "elementor"),
|
|
1228
|
+
renderContent: ({ size }) => /* @__PURE__ */ React33.createElement(import_icons12.ArrowForwardIcon, { fontSize: size }),
|
|
1094
1229
|
showTooltip: true
|
|
1095
1230
|
}
|
|
1096
1231
|
];
|
|
1097
1232
|
var WrapField = () => {
|
|
1098
1233
|
const { isSiteRtl } = useDirection();
|
|
1099
|
-
return /* @__PURE__ */
|
|
1234
|
+
return /* @__PURE__ */ React33.createElement(import_ui26.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React33.createElement(import_ui26.ThemeProvider, null, /* @__PURE__ */ React33.createElement(StylesField, { bind: "flex-wrap" }, /* @__PURE__ */ React33.createElement(import_ui26.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React33.createElement(import_ui26.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React33.createElement(import_editor_controls21.ControlLabel, null, (0, import_i18n15.__)("Wrap", "elementor"))), /* @__PURE__ */ React33.createElement(import_ui26.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React33.createElement(import_editor_controls21.ToggleControl, { options: options5 }))))));
|
|
1100
1235
|
};
|
|
1101
1236
|
|
|
1102
1237
|
// src/components/style-sections/layout-section/layout-section.tsx
|
|
1103
1238
|
var LayoutSection = () => {
|
|
1104
1239
|
const [display] = useStylesField("display");
|
|
1105
|
-
return /* @__PURE__ */
|
|
1240
|
+
return /* @__PURE__ */ React34.createElement(import_ui27.Stack, { gap: 2 }, /* @__PURE__ */ React34.createElement(DisplayField, null), "flex" === display?.value && /* @__PURE__ */ React34.createElement(FlexFields, null));
|
|
1106
1241
|
};
|
|
1107
|
-
var FlexFields = () => /* @__PURE__ */
|
|
1242
|
+
var FlexFields = () => /* @__PURE__ */ React34.createElement(React34.Fragment, null, /* @__PURE__ */ React34.createElement(FlexDirectionField, null), /* @__PURE__ */ React34.createElement(JustifyContentField, null), /* @__PURE__ */ React34.createElement(AlignItemsField, null), /* @__PURE__ */ React34.createElement(import_ui27.Divider, null), /* @__PURE__ */ React34.createElement(WrapField, null), /* @__PURE__ */ React34.createElement(import_ui27.Divider, null), /* @__PURE__ */ React34.createElement(import_editor_controls22.ControlLabel, null, (0, import_i18n16.__)("Flex child", "elementor")), /* @__PURE__ */ React34.createElement(AlignSelfChild, null), /* @__PURE__ */ React34.createElement(FlexOrderField, null), /* @__PURE__ */ React34.createElement(FlexSizeField, null));
|
|
1108
1243
|
|
|
1109
1244
|
// src/components/style-sections/position-section/position-section.tsx
|
|
1110
|
-
var
|
|
1111
|
-
var
|
|
1112
|
-
var
|
|
1245
|
+
var React38 = __toESM(require("react"));
|
|
1246
|
+
var import_react11 = require("react");
|
|
1247
|
+
var import_ui31 = require("@elementor/ui");
|
|
1113
1248
|
|
|
1114
1249
|
// src/hooks/use-style-prop-history.ts
|
|
1115
|
-
var
|
|
1250
|
+
var import_react10 = require("react");
|
|
1116
1251
|
var import_editor_elements4 = require("@elementor/editor-elements");
|
|
1117
1252
|
|
|
1118
1253
|
// src/hooks/use-prop-value-history.ts
|
|
1119
|
-
var
|
|
1254
|
+
var import_react9 = require("react");
|
|
1120
1255
|
var import_utils2 = require("@elementor/utils");
|
|
1121
1256
|
var PROPS_VALUES_HISTORY_PREFIX = "elementor/editor-editing-panel/prop-value-history";
|
|
1122
1257
|
var usePropValueHistory = () => {
|
|
1123
1258
|
const { element } = useElement();
|
|
1124
1259
|
const elementKey = `${PROPS_VALUES_HISTORY_PREFIX}/${element.id}`;
|
|
1125
|
-
const getElementPropsHistory = (0,
|
|
1260
|
+
const getElementPropsHistory = (0, import_react9.useCallback)(() => {
|
|
1126
1261
|
return (0, import_utils2.getSessionStorageItem)(elementKey);
|
|
1127
1262
|
}, [elementKey]);
|
|
1128
|
-
const getPropValue = (0,
|
|
1263
|
+
const getPropValue = (0, import_react9.useCallback)(
|
|
1129
1264
|
(propKey) => {
|
|
1130
1265
|
const elementPropValues = getElementPropsHistory();
|
|
1131
1266
|
return elementPropValues?.[propKey] ?? null;
|
|
1132
1267
|
},
|
|
1133
1268
|
[getElementPropsHistory]
|
|
1134
1269
|
);
|
|
1135
|
-
const setPropValue = (0,
|
|
1270
|
+
const setPropValue = (0, import_react9.useCallback)(
|
|
1136
1271
|
(propKey, propValue) => {
|
|
1137
1272
|
const elementPropValues = getElementPropsHistory();
|
|
1138
1273
|
const updatedElementPropValues = { ...elementPropValues, [propKey]: propValue };
|
|
@@ -1140,7 +1275,7 @@ var usePropValueHistory = () => {
|
|
|
1140
1275
|
},
|
|
1141
1276
|
[getElementPropsHistory, elementKey]
|
|
1142
1277
|
);
|
|
1143
|
-
const removeProp = (0,
|
|
1278
|
+
const removeProp = (0, import_react9.useCallback)(
|
|
1144
1279
|
(propKey) => {
|
|
1145
1280
|
const elementPropValues = getElementPropsHistory();
|
|
1146
1281
|
const updatedElementPropValues = Object.fromEntries(
|
|
@@ -1150,7 +1285,7 @@ var usePropValueHistory = () => {
|
|
|
1150
1285
|
},
|
|
1151
1286
|
[getElementPropsHistory, elementKey]
|
|
1152
1287
|
);
|
|
1153
|
-
return (0,
|
|
1288
|
+
return (0, import_react9.useMemo)(() => ({ getPropValue, setPropValue, removeProp }), [getPropValue, removeProp, setPropValue]);
|
|
1154
1289
|
};
|
|
1155
1290
|
|
|
1156
1291
|
// src/hooks/use-style-prop-history.ts
|
|
@@ -1161,7 +1296,7 @@ var useStylePropsHistory = (props) => {
|
|
|
1161
1296
|
const styleDef = (0, import_editor_elements4.getElementStyles)(element.id)?.[styleDefID];
|
|
1162
1297
|
const styleVariant = styleDef ? (0, import_editor_elements4.getVariantByMeta)(styleDef, meta) : null;
|
|
1163
1298
|
const styleVariantPath = `${styleDefID}-${styleVariant?.meta.breakpoint}-${styleVariant?.meta.state}`;
|
|
1164
|
-
const saveStylePropsHistory = (0,
|
|
1299
|
+
const saveStylePropsHistory = (0, import_react10.useCallback)(() => {
|
|
1165
1300
|
props.forEach((propKey) => {
|
|
1166
1301
|
const propValue = styleVariant?.props[propKey];
|
|
1167
1302
|
if (propValue) {
|
|
@@ -1170,7 +1305,7 @@ var useStylePropsHistory = (props) => {
|
|
|
1170
1305
|
}
|
|
1171
1306
|
});
|
|
1172
1307
|
}, [props, setPropValue, styleVariant?.props, styleVariantPath]);
|
|
1173
|
-
const updateStylePropsFromHistory = (0,
|
|
1308
|
+
const updateStylePropsFromHistory = (0, import_react10.useCallback)(() => {
|
|
1174
1309
|
const propValuesFromHistory = props.reduce((allProps, currentPropKey) => {
|
|
1175
1310
|
const propPath = `${styleVariantPath}-${currentPropKey}`;
|
|
1176
1311
|
const propHistory = getPropValue(propPath);
|
|
@@ -1190,7 +1325,7 @@ var useStylePropsHistory = (props) => {
|
|
|
1190
1325
|
});
|
|
1191
1326
|
}
|
|
1192
1327
|
}, [element.id, getPropValue, meta, props, removeProp, styleDefID, styleVariantPath]);
|
|
1193
|
-
const clearCurrentStyleProps = (0,
|
|
1328
|
+
const clearCurrentStyleProps = (0, import_react10.useCallback)(() => {
|
|
1194
1329
|
const resetValues = props.reduce(
|
|
1195
1330
|
(allProps, currentPropKey) => ({
|
|
1196
1331
|
...allProps,
|
|
@@ -1206,53 +1341,53 @@ var useStylePropsHistory = (props) => {
|
|
|
1206
1341
|
bind: "classes"
|
|
1207
1342
|
});
|
|
1208
1343
|
}, [element.id, meta, props, styleDefID]);
|
|
1209
|
-
return (0,
|
|
1344
|
+
return (0, import_react10.useMemo)(
|
|
1210
1345
|
() => ({ saveStylePropsHistory, updateStylePropsFromHistory, clearCurrentStyleProps }),
|
|
1211
1346
|
[saveStylePropsHistory, updateStylePropsFromHistory, clearCurrentStyleProps]
|
|
1212
1347
|
);
|
|
1213
1348
|
};
|
|
1214
1349
|
|
|
1215
1350
|
// src/components/style-sections/position-section/dimensions-field.tsx
|
|
1216
|
-
var
|
|
1217
|
-
var
|
|
1218
|
-
var
|
|
1219
|
-
var
|
|
1220
|
-
var
|
|
1351
|
+
var React35 = __toESM(require("react"));
|
|
1352
|
+
var import_editor_controls23 = require("@elementor/editor-controls");
|
|
1353
|
+
var import_icons13 = require("@elementor/icons");
|
|
1354
|
+
var import_ui28 = require("@elementor/ui");
|
|
1355
|
+
var import_i18n17 = require("@wordpress/i18n");
|
|
1221
1356
|
var sideIcons = {
|
|
1222
|
-
left: /* @__PURE__ */
|
|
1223
|
-
right: /* @__PURE__ */
|
|
1224
|
-
top: /* @__PURE__ */
|
|
1225
|
-
bottom: /* @__PURE__ */
|
|
1357
|
+
left: /* @__PURE__ */ React35.createElement(import_icons13.SideLeftIcon, { fontSize: "tiny" }),
|
|
1358
|
+
right: /* @__PURE__ */ React35.createElement(import_icons13.SideRightIcon, { fontSize: "tiny" }),
|
|
1359
|
+
top: /* @__PURE__ */ React35.createElement(import_icons13.SideTopIcon, { fontSize: "tiny" }),
|
|
1360
|
+
bottom: /* @__PURE__ */ React35.createElement(import_icons13.SideBottomIcon, { fontSize: "tiny" })
|
|
1226
1361
|
};
|
|
1227
1362
|
var DimensionsField = () => {
|
|
1228
|
-
return /* @__PURE__ */
|
|
1363
|
+
return /* @__PURE__ */ React35.createElement(React35.Fragment, null, /* @__PURE__ */ React35.createElement(import_ui28.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React35.createElement(DimensionField, { side: "top", label: (0, import_i18n17.__)("Top", "elementor") }), /* @__PURE__ */ React35.createElement(DimensionField, { side: "right", label: (0, import_i18n17.__)("Right", "elementor") })), /* @__PURE__ */ React35.createElement(import_ui28.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React35.createElement(DimensionField, { side: "bottom", label: (0, import_i18n17.__)("Bottom", "elementor") }), /* @__PURE__ */ React35.createElement(DimensionField, { side: "left", label: (0, import_i18n17.__)("Left", "elementor") })));
|
|
1229
1364
|
};
|
|
1230
1365
|
var DimensionField = ({ side, label }) => {
|
|
1231
|
-
return /* @__PURE__ */
|
|
1366
|
+
return /* @__PURE__ */ React35.createElement(import_ui28.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React35.createElement(import_ui28.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React35.createElement(import_editor_controls23.ControlLabel, null, label)), /* @__PURE__ */ React35.createElement(import_ui28.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React35.createElement(StylesField, { bind: side }, /* @__PURE__ */ React35.createElement(import_editor_controls23.SizeControl, { startIcon: sideIcons[side] }))));
|
|
1232
1367
|
};
|
|
1233
1368
|
|
|
1234
1369
|
// src/components/style-sections/position-section/position-field.tsx
|
|
1235
|
-
var
|
|
1236
|
-
var
|
|
1237
|
-
var
|
|
1238
|
-
var
|
|
1370
|
+
var React36 = __toESM(require("react"));
|
|
1371
|
+
var import_editor_controls24 = require("@elementor/editor-controls");
|
|
1372
|
+
var import_ui29 = require("@elementor/ui");
|
|
1373
|
+
var import_i18n18 = require("@wordpress/i18n");
|
|
1239
1374
|
var positionOptions = [
|
|
1240
|
-
{ label: (0,
|
|
1241
|
-
{ label: (0,
|
|
1242
|
-
{ label: (0,
|
|
1243
|
-
{ label: (0,
|
|
1375
|
+
{ label: (0, import_i18n18.__)("Static", "elementor"), value: "static" },
|
|
1376
|
+
{ label: (0, import_i18n18.__)("Relative", "elementor"), value: "relative" },
|
|
1377
|
+
{ label: (0, import_i18n18.__)("Absolute", "elementor"), value: "absolute" },
|
|
1378
|
+
{ label: (0, import_i18n18.__)("Fixed", "elementor"), value: "fixed" }
|
|
1244
1379
|
];
|
|
1245
1380
|
var PositionField = () => {
|
|
1246
|
-
return /* @__PURE__ */
|
|
1381
|
+
return /* @__PURE__ */ React36.createElement(StylesField, { bind: "position" }, /* @__PURE__ */ React36.createElement(import_ui29.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React36.createElement(import_ui29.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React36.createElement(import_editor_controls24.ControlLabel, null, (0, import_i18n18.__)("Position", "elementor"))), /* @__PURE__ */ React36.createElement(import_ui29.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React36.createElement(import_editor_controls24.SelectControl, { options: positionOptions }))));
|
|
1247
1382
|
};
|
|
1248
1383
|
|
|
1249
1384
|
// src/components/style-sections/position-section/z-index-field.tsx
|
|
1250
|
-
var
|
|
1251
|
-
var
|
|
1252
|
-
var
|
|
1253
|
-
var
|
|
1385
|
+
var React37 = __toESM(require("react"));
|
|
1386
|
+
var import_editor_controls25 = require("@elementor/editor-controls");
|
|
1387
|
+
var import_ui30 = require("@elementor/ui");
|
|
1388
|
+
var import_i18n19 = require("@wordpress/i18n");
|
|
1254
1389
|
var ZIndexField = () => {
|
|
1255
|
-
return /* @__PURE__ */
|
|
1390
|
+
return /* @__PURE__ */ React37.createElement(StylesField, { bind: "z-index" }, /* @__PURE__ */ React37.createElement(import_ui30.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React37.createElement(import_ui30.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(import_editor_controls25.ControlLabel, null, (0, import_i18n19.__)("Z-Index", "elementor"))), /* @__PURE__ */ React37.createElement(import_ui30.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(import_editor_controls25.NumberControl, null))));
|
|
1256
1391
|
};
|
|
1257
1392
|
|
|
1258
1393
|
// src/components/style-sections/position-section/position-section.tsx
|
|
@@ -1260,12 +1395,12 @@ var dimensionsPropKeys = ["top", "bottom", "left", "right"];
|
|
|
1260
1395
|
var PositionSection = () => {
|
|
1261
1396
|
const [positionValue] = useStylesField("position");
|
|
1262
1397
|
usePositionChangeHandler();
|
|
1263
|
-
const isNotStatic = positionValue && positionValue !== "static";
|
|
1264
|
-
return /* @__PURE__ */
|
|
1398
|
+
const isNotStatic = positionValue && positionValue?.value !== "static";
|
|
1399
|
+
return /* @__PURE__ */ React38.createElement(import_ui31.Stack, { gap: 1.5 }, /* @__PURE__ */ React38.createElement(PositionField, null), isNotStatic ? /* @__PURE__ */ React38.createElement(React38.Fragment, null, /* @__PURE__ */ React38.createElement(DimensionsField, null), /* @__PURE__ */ React38.createElement(ZIndexField, null)) : null);
|
|
1265
1400
|
};
|
|
1266
1401
|
var usePositionChangeHandler = () => {
|
|
1267
1402
|
const dimensionsHistory = useStylePropsHistory(dimensionsPropKeys);
|
|
1268
|
-
const onPositionChange = (0,
|
|
1403
|
+
const onPositionChange = (0, import_react11.useCallback)(
|
|
1269
1404
|
(newPositionValue, previousPosition) => {
|
|
1270
1405
|
if (!dimensionsHistory) {
|
|
1271
1406
|
return;
|
|
@@ -1286,91 +1421,91 @@ var usePositionChangeHandler = () => {
|
|
|
1286
1421
|
};
|
|
1287
1422
|
|
|
1288
1423
|
// src/components/style-sections/size-section/size-section.tsx
|
|
1289
|
-
var
|
|
1290
|
-
var
|
|
1291
|
-
var
|
|
1292
|
-
var
|
|
1424
|
+
var React40 = __toESM(require("react"));
|
|
1425
|
+
var import_editor_controls27 = require("@elementor/editor-controls");
|
|
1426
|
+
var import_ui33 = require("@elementor/ui");
|
|
1427
|
+
var import_i18n21 = require("@wordpress/i18n");
|
|
1293
1428
|
|
|
1294
1429
|
// src/components/style-sections/size-section/overflow-field.tsx
|
|
1295
|
-
var
|
|
1296
|
-
var
|
|
1297
|
-
var
|
|
1298
|
-
var
|
|
1299
|
-
var
|
|
1300
|
-
var
|
|
1430
|
+
var React39 = __toESM(require("react"));
|
|
1431
|
+
var import_editor_controls26 = require("@elementor/editor-controls");
|
|
1432
|
+
var import_icons14 = require("@elementor/icons");
|
|
1433
|
+
var import_ui32 = require("@elementor/ui");
|
|
1434
|
+
var import_i18n20 = require("@wordpress/i18n");
|
|
1435
|
+
var options6 = [
|
|
1301
1436
|
{
|
|
1302
1437
|
value: "visible",
|
|
1303
|
-
label: (0,
|
|
1304
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1438
|
+
label: (0, import_i18n20.__)("Visible", "elementor"),
|
|
1439
|
+
renderContent: ({ size }) => /* @__PURE__ */ React39.createElement(import_icons14.EyeIcon, { fontSize: size }),
|
|
1305
1440
|
showTooltip: true
|
|
1306
1441
|
},
|
|
1307
1442
|
{
|
|
1308
1443
|
value: "hidden",
|
|
1309
|
-
label: (0,
|
|
1310
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1444
|
+
label: (0, import_i18n20.__)("Hidden", "elementor"),
|
|
1445
|
+
renderContent: ({ size }) => /* @__PURE__ */ React39.createElement(import_icons14.EyeOffIcon, { fontSize: size }),
|
|
1311
1446
|
showTooltip: true
|
|
1312
1447
|
},
|
|
1313
1448
|
{
|
|
1314
1449
|
value: "auto",
|
|
1315
|
-
label: (0,
|
|
1316
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1450
|
+
label: (0, import_i18n20.__)("Auto", "elementor"),
|
|
1451
|
+
renderContent: ({ size }) => /* @__PURE__ */ React39.createElement(import_icons14.ExpandBottomIcon, { fontSize: size }),
|
|
1317
1452
|
showTooltip: true
|
|
1318
1453
|
}
|
|
1319
1454
|
];
|
|
1320
1455
|
var OverflowField = () => {
|
|
1321
|
-
return /* @__PURE__ */
|
|
1456
|
+
return /* @__PURE__ */ React39.createElement(StylesField, { bind: "overflow" }, /* @__PURE__ */ React39.createElement(import_ui32.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React39.createElement(import_ui32.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React39.createElement(import_editor_controls26.ControlLabel, null, (0, import_i18n20.__)("Overflow", "elementor"))), /* @__PURE__ */ React39.createElement(import_ui32.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React39.createElement(import_editor_controls26.ToggleControl, { options: options6 }))));
|
|
1322
1457
|
};
|
|
1323
1458
|
|
|
1324
1459
|
// src/components/style-sections/size-section/size-section.tsx
|
|
1325
1460
|
var SizeSection = () => {
|
|
1326
|
-
return /* @__PURE__ */
|
|
1461
|
+
return /* @__PURE__ */ React40.createElement(import_ui33.Stack, { gap: 1.5 }, /* @__PURE__ */ React40.createElement(import_ui33.Grid, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React40.createElement(import_ui33.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(SizeField, { bind: "width", label: (0, import_i18n21.__)("Width", "elementor") })), /* @__PURE__ */ React40.createElement(import_ui33.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(SizeField, { bind: "height", label: (0, import_i18n21.__)("Height", "elementor") }))), /* @__PURE__ */ React40.createElement(import_ui33.Grid, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React40.createElement(import_ui33.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(SizeField, { bind: "min-width", label: (0, import_i18n21.__)("Min. Width", "elementor") })), /* @__PURE__ */ React40.createElement(import_ui33.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(SizeField, { bind: "min-height", label: (0, import_i18n21.__)("Min. Height", "elementor") }))), /* @__PURE__ */ React40.createElement(import_ui33.Grid, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React40.createElement(import_ui33.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(SizeField, { bind: "max-width", label: (0, import_i18n21.__)("Max. Width", "elementor") })), /* @__PURE__ */ React40.createElement(import_ui33.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(SizeField, { bind: "max-height", label: (0, import_i18n21.__)("Max. Height", "elementor") }))), /* @__PURE__ */ React40.createElement(import_ui33.Divider, null), /* @__PURE__ */ React40.createElement(import_ui33.Stack, null, /* @__PURE__ */ React40.createElement(OverflowField, null)));
|
|
1327
1462
|
};
|
|
1328
1463
|
var SizeField = ({ label, bind }) => {
|
|
1329
|
-
return /* @__PURE__ */
|
|
1464
|
+
return /* @__PURE__ */ React40.createElement(StylesField, { bind }, /* @__PURE__ */ React40.createElement(import_ui33.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React40.createElement(import_ui33.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React40.createElement(import_editor_controls27.ControlLabel, null, label)), /* @__PURE__ */ React40.createElement(import_ui33.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React40.createElement(import_editor_controls27.SizeControl, null))));
|
|
1330
1465
|
};
|
|
1331
1466
|
|
|
1332
1467
|
// src/components/style-sections/spacing-section/spacing-section.tsx
|
|
1333
|
-
var
|
|
1334
|
-
var
|
|
1335
|
-
var
|
|
1336
|
-
var
|
|
1468
|
+
var React41 = __toESM(require("react"));
|
|
1469
|
+
var import_editor_controls28 = require("@elementor/editor-controls");
|
|
1470
|
+
var import_ui34 = require("@elementor/ui");
|
|
1471
|
+
var import_i18n22 = require("@wordpress/i18n");
|
|
1337
1472
|
var SpacingSection = () => {
|
|
1338
|
-
return /* @__PURE__ */
|
|
1473
|
+
return /* @__PURE__ */ React41.createElement(import_ui34.Stack, { gap: 1.5 }, /* @__PURE__ */ React41.createElement(StylesField, { bind: "padding" }, /* @__PURE__ */ React41.createElement(import_editor_controls28.LinkedDimensionsControl, { label: (0, import_i18n22.__)("Padding", "elementor") })), /* @__PURE__ */ React41.createElement(import_ui34.Divider, null), /* @__PURE__ */ React41.createElement(StylesField, { bind: "margin" }, /* @__PURE__ */ React41.createElement(import_editor_controls28.LinkedDimensionsControl, { label: (0, import_i18n22.__)("Margin", "elementor") })));
|
|
1339
1474
|
};
|
|
1340
1475
|
|
|
1341
1476
|
// src/components/style-sections/typography-section/typography-section.tsx
|
|
1342
|
-
var
|
|
1343
|
-
var
|
|
1477
|
+
var React55 = __toESM(require("react"));
|
|
1478
|
+
var import_ui47 = require("@elementor/ui");
|
|
1344
1479
|
|
|
1345
1480
|
// src/components/collapsible-content.tsx
|
|
1346
|
-
var
|
|
1347
|
-
var
|
|
1348
|
-
var
|
|
1349
|
-
var
|
|
1481
|
+
var React42 = __toESM(require("react"));
|
|
1482
|
+
var import_react12 = require("react");
|
|
1483
|
+
var import_ui35 = require("@elementor/ui");
|
|
1484
|
+
var import_i18n23 = require("@wordpress/i18n");
|
|
1350
1485
|
var CollapsibleContent = ({ children, defaultOpen = false }) => {
|
|
1351
|
-
const [open, setOpen] = (0,
|
|
1486
|
+
const [open, setOpen] = (0, import_react12.useState)(defaultOpen);
|
|
1352
1487
|
const handleToggle = () => {
|
|
1353
1488
|
setOpen((prevOpen) => !prevOpen);
|
|
1354
1489
|
};
|
|
1355
|
-
return /* @__PURE__ */
|
|
1356
|
-
|
|
1490
|
+
return /* @__PURE__ */ React42.createElement(import_ui35.Stack, { sx: { py: 0.5 } }, /* @__PURE__ */ React42.createElement(
|
|
1491
|
+
import_ui35.Button,
|
|
1357
1492
|
{
|
|
1358
1493
|
fullWidth: true,
|
|
1359
1494
|
size: "small",
|
|
1360
1495
|
color: "secondary",
|
|
1361
1496
|
variant: "outlined",
|
|
1362
1497
|
onClick: handleToggle,
|
|
1363
|
-
endIcon: /* @__PURE__ */
|
|
1498
|
+
endIcon: /* @__PURE__ */ React42.createElement(CollapseIcon, { open })
|
|
1364
1499
|
},
|
|
1365
|
-
open ? (0,
|
|
1366
|
-
), /* @__PURE__ */
|
|
1500
|
+
open ? (0, import_i18n23.__)("Show less", "elementor") : (0, import_i18n23.__)("Show more", "elementor")
|
|
1501
|
+
), /* @__PURE__ */ React42.createElement(import_ui35.Collapse, { in: open, timeout: "auto", unmountOnExit: true }, children));
|
|
1367
1502
|
};
|
|
1368
1503
|
|
|
1369
1504
|
// src/components/style-sections/typography-section/font-family-field.tsx
|
|
1370
|
-
var
|
|
1371
|
-
var
|
|
1372
|
-
var
|
|
1373
|
-
var
|
|
1505
|
+
var React43 = __toESM(require("react"));
|
|
1506
|
+
var import_editor_controls29 = require("@elementor/editor-controls");
|
|
1507
|
+
var import_ui36 = require("@elementor/ui");
|
|
1508
|
+
var import_i18n24 = require("@wordpress/i18n");
|
|
1374
1509
|
|
|
1375
1510
|
// src/sync/get-elementor-config.ts
|
|
1376
1511
|
var getElementorConfig = () => {
|
|
@@ -1384,118 +1519,127 @@ var FontFamilyField = () => {
|
|
|
1384
1519
|
if (!fontFamilies) {
|
|
1385
1520
|
return null;
|
|
1386
1521
|
}
|
|
1387
|
-
return /* @__PURE__ */
|
|
1522
|
+
return /* @__PURE__ */ React43.createElement(StylesField, { bind: "font-family" }, /* @__PURE__ */ React43.createElement(import_ui36.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React43.createElement(import_ui36.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React43.createElement(import_editor_controls29.ControlLabel, null, (0, import_i18n24.__)("Font Family", "elementor"))), /* @__PURE__ */ React43.createElement(import_ui36.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React43.createElement(import_editor_controls29.FontFamilyControl, { fontFamilies }))));
|
|
1388
1523
|
};
|
|
1389
1524
|
var getFontFamilies = () => {
|
|
1390
1525
|
const { controls } = getElementorConfig();
|
|
1391
|
-
const
|
|
1392
|
-
if (!
|
|
1526
|
+
const options10 = controls?.font?.options;
|
|
1527
|
+
if (!options10) {
|
|
1393
1528
|
return null;
|
|
1394
1529
|
}
|
|
1395
|
-
return
|
|
1530
|
+
return options10;
|
|
1396
1531
|
};
|
|
1397
1532
|
|
|
1398
1533
|
// src/components/style-sections/typography-section/font-size-field.tsx
|
|
1399
|
-
var
|
|
1400
|
-
var
|
|
1401
|
-
var
|
|
1402
|
-
var
|
|
1534
|
+
var React44 = __toESM(require("react"));
|
|
1535
|
+
var import_editor_controls30 = require("@elementor/editor-controls");
|
|
1536
|
+
var import_ui37 = require("@elementor/ui");
|
|
1537
|
+
var import_i18n25 = require("@wordpress/i18n");
|
|
1403
1538
|
var FontSizeField = () => {
|
|
1404
|
-
return /* @__PURE__ */
|
|
1539
|
+
return /* @__PURE__ */ React44.createElement(StylesField, { bind: "font-size" }, /* @__PURE__ */ React44.createElement(import_ui37.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React44.createElement(import_ui37.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React44.createElement(import_editor_controls30.ControlLabel, null, (0, import_i18n25.__)("Font Size", "elementor"))), /* @__PURE__ */ React44.createElement(import_ui37.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React44.createElement(import_editor_controls30.SizeControl, null))));
|
|
1405
1540
|
};
|
|
1406
1541
|
|
|
1407
1542
|
// src/components/style-sections/typography-section/font-weight-field.tsx
|
|
1408
|
-
var
|
|
1409
|
-
var
|
|
1410
|
-
var
|
|
1411
|
-
var
|
|
1543
|
+
var React45 = __toESM(require("react"));
|
|
1544
|
+
var import_editor_controls31 = require("@elementor/editor-controls");
|
|
1545
|
+
var import_ui38 = require("@elementor/ui");
|
|
1546
|
+
var import_i18n26 = require("@wordpress/i18n");
|
|
1412
1547
|
var fontWeightOptions = [
|
|
1413
|
-
{ label: (0,
|
|
1414
|
-
{ label: (0,
|
|
1415
|
-
{ label: (0,
|
|
1416
|
-
{ label: (0,
|
|
1417
|
-
{ label: (0,
|
|
1548
|
+
{ label: (0, import_i18n26.__)("Light - 400", "elementor"), value: "400" },
|
|
1549
|
+
{ label: (0, import_i18n26.__)("Regular - 500", "elementor"), value: "500" },
|
|
1550
|
+
{ label: (0, import_i18n26.__)("Semi Bold - 600", "elementor"), value: "600" },
|
|
1551
|
+
{ label: (0, import_i18n26.__)("Bold - 700", "elementor"), value: "700" },
|
|
1552
|
+
{ label: (0, import_i18n26.__)("Black - 900", "elementor"), value: "900" }
|
|
1418
1553
|
];
|
|
1419
1554
|
var FontWeightField = () => {
|
|
1420
|
-
return /* @__PURE__ */
|
|
1555
|
+
return /* @__PURE__ */ React45.createElement(StylesField, { bind: "font-weight" }, /* @__PURE__ */ React45.createElement(import_ui38.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React45.createElement(import_ui38.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React45.createElement(import_editor_controls31.ControlLabel, null, (0, import_i18n26.__)("Font Weight", "elementor"))), /* @__PURE__ */ React45.createElement(import_ui38.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React45.createElement(import_editor_controls31.SelectControl, { options: fontWeightOptions }))));
|
|
1421
1556
|
};
|
|
1422
1557
|
|
|
1423
1558
|
// src/components/style-sections/typography-section/letter-spacing-field.tsx
|
|
1424
|
-
var
|
|
1425
|
-
var
|
|
1426
|
-
var
|
|
1427
|
-
var
|
|
1559
|
+
var React46 = __toESM(require("react"));
|
|
1560
|
+
var import_editor_controls32 = require("@elementor/editor-controls");
|
|
1561
|
+
var import_ui39 = require("@elementor/ui");
|
|
1562
|
+
var import_i18n27 = require("@wordpress/i18n");
|
|
1428
1563
|
var LetterSpacingField = () => {
|
|
1429
|
-
return /* @__PURE__ */
|
|
1564
|
+
return /* @__PURE__ */ React46.createElement(StylesField, { bind: "letter-spacing" }, /* @__PURE__ */ React46.createElement(import_ui39.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React46.createElement(import_ui39.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React46.createElement(import_editor_controls32.ControlLabel, null, (0, import_i18n27.__)("Letter Spacing", "elementor"))), /* @__PURE__ */ React46.createElement(import_ui39.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React46.createElement(import_editor_controls32.SizeControl, null))));
|
|
1565
|
+
};
|
|
1566
|
+
|
|
1567
|
+
// src/components/style-sections/typography-section/line-height-field.tsx
|
|
1568
|
+
var React47 = __toESM(require("react"));
|
|
1569
|
+
var import_editor_controls33 = require("@elementor/editor-controls");
|
|
1570
|
+
var import_ui40 = require("@elementor/ui");
|
|
1571
|
+
var import_i18n28 = require("@wordpress/i18n");
|
|
1572
|
+
var LineHeightField = () => {
|
|
1573
|
+
return /* @__PURE__ */ React47.createElement(StylesField, { bind: "line-height" }, /* @__PURE__ */ React47.createElement(import_ui40.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React47.createElement(import_ui40.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(import_editor_controls33.ControlLabel, null, (0, import_i18n28.__)("Line Height", "elementor"))), /* @__PURE__ */ React47.createElement(import_ui40.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(import_editor_controls33.SizeControl, null))));
|
|
1430
1574
|
};
|
|
1431
1575
|
|
|
1432
1576
|
// src/components/style-sections/typography-section/text-alignment-field.tsx
|
|
1433
|
-
var
|
|
1434
|
-
var
|
|
1435
|
-
var
|
|
1436
|
-
var
|
|
1437
|
-
var
|
|
1438
|
-
var
|
|
1577
|
+
var React48 = __toESM(require("react"));
|
|
1578
|
+
var import_editor_controls34 = require("@elementor/editor-controls");
|
|
1579
|
+
var import_icons15 = require("@elementor/icons");
|
|
1580
|
+
var import_ui41 = require("@elementor/ui");
|
|
1581
|
+
var import_i18n29 = require("@wordpress/i18n");
|
|
1582
|
+
var options7 = [
|
|
1439
1583
|
{
|
|
1440
1584
|
value: "left",
|
|
1441
|
-
label: (0,
|
|
1442
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1585
|
+
label: (0, import_i18n29.__)("Left", "elementor"),
|
|
1586
|
+
renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(import_icons15.AlignLeftIcon, { fontSize: size })
|
|
1443
1587
|
},
|
|
1444
1588
|
{
|
|
1445
1589
|
value: "center",
|
|
1446
|
-
label: (0,
|
|
1447
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1590
|
+
label: (0, import_i18n29.__)("Center", "elementor"),
|
|
1591
|
+
renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(import_icons15.AlignCenterIcon, { fontSize: size })
|
|
1448
1592
|
},
|
|
1449
1593
|
{
|
|
1450
1594
|
value: "right",
|
|
1451
|
-
label: (0,
|
|
1452
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1595
|
+
label: (0, import_i18n29.__)("Right", "elementor"),
|
|
1596
|
+
renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(import_icons15.AlignRightIcon, { fontSize: size })
|
|
1453
1597
|
},
|
|
1454
1598
|
{
|
|
1455
1599
|
value: "justify",
|
|
1456
|
-
label: (0,
|
|
1457
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1600
|
+
label: (0, import_i18n29.__)("Justify", "elementor"),
|
|
1601
|
+
renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(import_icons15.AlignJustifiedIcon, { fontSize: size })
|
|
1458
1602
|
}
|
|
1459
1603
|
];
|
|
1460
1604
|
var TextAlignmentField = () => {
|
|
1461
|
-
return /* @__PURE__ */
|
|
1605
|
+
return /* @__PURE__ */ React48.createElement(StylesField, { bind: "text-align" }, /* @__PURE__ */ React48.createElement(import_ui41.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React48.createElement(import_ui41.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React48.createElement(import_editor_controls34.ControlLabel, null, (0, import_i18n29.__)("Alignment", "elementor"))), /* @__PURE__ */ React48.createElement(import_ui41.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React48.createElement(import_editor_controls34.ToggleControl, { options: options7 }))));
|
|
1462
1606
|
};
|
|
1463
1607
|
|
|
1464
1608
|
// src/components/style-sections/typography-section/text-color-field.tsx
|
|
1465
|
-
var
|
|
1466
|
-
var
|
|
1467
|
-
var
|
|
1468
|
-
var
|
|
1609
|
+
var React49 = __toESM(require("react"));
|
|
1610
|
+
var import_editor_controls35 = require("@elementor/editor-controls");
|
|
1611
|
+
var import_ui42 = require("@elementor/ui");
|
|
1612
|
+
var import_i18n30 = require("@wordpress/i18n");
|
|
1469
1613
|
var TextColorField = () => {
|
|
1470
|
-
return /* @__PURE__ */
|
|
1614
|
+
return /* @__PURE__ */ React49.createElement(StylesField, { bind: "color" }, /* @__PURE__ */ React49.createElement(import_ui42.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React49.createElement(import_ui42.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(import_editor_controls35.ControlLabel, null, (0, import_i18n30.__)("Text Color", "elementor"))), /* @__PURE__ */ React49.createElement(import_ui42.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(import_editor_controls35.ColorControl, null))));
|
|
1471
1615
|
};
|
|
1472
1616
|
|
|
1473
1617
|
// src/components/style-sections/typography-section/text-direction-field.tsx
|
|
1474
|
-
var
|
|
1475
|
-
var
|
|
1476
|
-
var
|
|
1477
|
-
var
|
|
1478
|
-
var
|
|
1479
|
-
var
|
|
1618
|
+
var React50 = __toESM(require("react"));
|
|
1619
|
+
var import_editor_controls36 = require("@elementor/editor-controls");
|
|
1620
|
+
var import_icons16 = require("@elementor/icons");
|
|
1621
|
+
var import_ui43 = require("@elementor/ui");
|
|
1622
|
+
var import_i18n31 = require("@wordpress/i18n");
|
|
1623
|
+
var options8 = [
|
|
1480
1624
|
{
|
|
1481
1625
|
value: "ltr",
|
|
1482
|
-
label: (0,
|
|
1483
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1626
|
+
label: (0, import_i18n31.__)("Left to Right", "elementor"),
|
|
1627
|
+
renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(import_icons16.TextDirectionLtrIcon, { fontSize: size })
|
|
1484
1628
|
},
|
|
1485
1629
|
{
|
|
1486
1630
|
value: "rtl",
|
|
1487
|
-
label: (0,
|
|
1488
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1631
|
+
label: (0, import_i18n31.__)("Right to Left", "elementor"),
|
|
1632
|
+
renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(import_icons16.TextDirectionRtlIcon, { fontSize: size })
|
|
1489
1633
|
}
|
|
1490
1634
|
];
|
|
1491
1635
|
var TextDirectionField = () => {
|
|
1492
|
-
return /* @__PURE__ */
|
|
1636
|
+
return /* @__PURE__ */ React50.createElement(StylesField, { bind: "direction" }, /* @__PURE__ */ React50.createElement(import_ui43.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React50.createElement(import_ui43.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React50.createElement(import_editor_controls36.ControlLabel, null, (0, import_i18n31.__)("Direction", "elementor"))), /* @__PURE__ */ React50.createElement(import_ui43.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React50.createElement(import_editor_controls36.ToggleControl, { options: options8 }))));
|
|
1493
1637
|
};
|
|
1494
1638
|
|
|
1495
1639
|
// src/components/style-sections/typography-section/text-stroke-field.tsx
|
|
1496
|
-
var
|
|
1497
|
-
var
|
|
1498
|
-
var
|
|
1640
|
+
var React51 = __toESM(require("react"));
|
|
1641
|
+
var import_editor_controls37 = require("@elementor/editor-controls");
|
|
1642
|
+
var import_i18n32 = require("@wordpress/i18n");
|
|
1499
1643
|
var initTextStroke = {
|
|
1500
1644
|
$$type: "stroke",
|
|
1501
1645
|
value: {
|
|
@@ -1521,56 +1665,74 @@ var TextStrokeField = () => {
|
|
|
1521
1665
|
setTextStroke(null);
|
|
1522
1666
|
};
|
|
1523
1667
|
const hasTextStroke = Boolean(textStroke);
|
|
1524
|
-
return /* @__PURE__ */
|
|
1668
|
+
return /* @__PURE__ */ React51.createElement(
|
|
1525
1669
|
AddOrRemoveContent,
|
|
1526
1670
|
{
|
|
1527
|
-
label: (0,
|
|
1671
|
+
label: (0, import_i18n32.__)("Text Stroke", "elementor"),
|
|
1528
1672
|
isAdded: hasTextStroke,
|
|
1529
1673
|
onAdd: addTextStroke,
|
|
1530
1674
|
onRemove: removeTextStroke
|
|
1531
1675
|
},
|
|
1532
|
-
/* @__PURE__ */
|
|
1676
|
+
/* @__PURE__ */ React51.createElement(StylesField, { bind: "-webkit-text-stroke" }, /* @__PURE__ */ React51.createElement(import_editor_controls37.StrokeControl, null))
|
|
1533
1677
|
);
|
|
1534
1678
|
};
|
|
1535
1679
|
|
|
1536
1680
|
// src/components/style-sections/typography-section/text-style-field.tsx
|
|
1537
|
-
var
|
|
1538
|
-
var
|
|
1539
|
-
var
|
|
1540
|
-
var
|
|
1541
|
-
var
|
|
1681
|
+
var React52 = __toESM(require("react"));
|
|
1682
|
+
var import_editor_controls38 = require("@elementor/editor-controls");
|
|
1683
|
+
var import_icons17 = require("@elementor/icons");
|
|
1684
|
+
var import_ui44 = require("@elementor/ui");
|
|
1685
|
+
var import_i18n33 = require("@wordpress/i18n");
|
|
1542
1686
|
var buttonSize = "tiny";
|
|
1543
1687
|
var TextStyleField = () => {
|
|
1544
1688
|
const [fontStyle, setFontStyle] = useStylesField("font-style");
|
|
1545
1689
|
const [textDecoration, setTextDecoration] = useStylesField("text-decoration");
|
|
1546
|
-
const formats = [fontStyle, ...(textDecoration || "").split(" ")];
|
|
1547
|
-
|
|
1690
|
+
const formats = [fontStyle?.value, ...(textDecoration?.value || "").split(" ")];
|
|
1691
|
+
const handleSetFontStyle = (newValue) => {
|
|
1692
|
+
if (newValue === null) {
|
|
1693
|
+
return setFontStyle(null);
|
|
1694
|
+
}
|
|
1695
|
+
setFontStyle({
|
|
1696
|
+
$$type: "string",
|
|
1697
|
+
value: newValue
|
|
1698
|
+
});
|
|
1699
|
+
};
|
|
1700
|
+
const handleSetTextDecoration = (newValue) => {
|
|
1701
|
+
if (newValue === null) {
|
|
1702
|
+
return setTextDecoration(null);
|
|
1703
|
+
}
|
|
1704
|
+
setTextDecoration({
|
|
1705
|
+
$$type: "string",
|
|
1706
|
+
value: newValue
|
|
1707
|
+
});
|
|
1708
|
+
};
|
|
1709
|
+
return /* @__PURE__ */ React52.createElement(import_ui44.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React52.createElement(import_ui44.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React52.createElement(import_editor_controls38.ControlLabel, null, (0, import_i18n33.__)("Style", "elementor"))), /* @__PURE__ */ React52.createElement(import_ui44.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React52.createElement(import_ui44.ToggleButtonGroup, { value: formats }, /* @__PURE__ */ React52.createElement(
|
|
1548
1710
|
ToggleButton,
|
|
1549
1711
|
{
|
|
1550
1712
|
value: "italic",
|
|
1551
|
-
onChange: (v) =>
|
|
1713
|
+
onChange: (v) => handleSetFontStyle(fontStyle?.value === v ? null : v),
|
|
1552
1714
|
"aria-label": "italic",
|
|
1553
1715
|
sx: { marginLeft: "auto" }
|
|
1554
1716
|
},
|
|
1555
|
-
/* @__PURE__ */
|
|
1556
|
-
), /* @__PURE__ */
|
|
1717
|
+
/* @__PURE__ */ React52.createElement(import_icons17.ItalicIcon, { fontSize: buttonSize })
|
|
1718
|
+
), /* @__PURE__ */ React52.createElement(
|
|
1557
1719
|
ShorthandControl,
|
|
1558
1720
|
{
|
|
1559
1721
|
value: "line-through",
|
|
1560
|
-
currentValues: textDecoration || "",
|
|
1561
|
-
updateValues:
|
|
1722
|
+
currentValues: textDecoration?.value || "",
|
|
1723
|
+
updateValues: handleSetTextDecoration,
|
|
1562
1724
|
"aria-label": "line-through"
|
|
1563
1725
|
},
|
|
1564
|
-
/* @__PURE__ */
|
|
1565
|
-
), /* @__PURE__ */
|
|
1726
|
+
/* @__PURE__ */ React52.createElement(import_icons17.StrikethroughIcon, { fontSize: buttonSize })
|
|
1727
|
+
), /* @__PURE__ */ React52.createElement(
|
|
1566
1728
|
ShorthandControl,
|
|
1567
1729
|
{
|
|
1568
1730
|
value: "underline",
|
|
1569
|
-
currentValues: textDecoration || "",
|
|
1570
|
-
updateValues:
|
|
1731
|
+
currentValues: textDecoration?.value || "",
|
|
1732
|
+
updateValues: handleSetTextDecoration,
|
|
1571
1733
|
"aria-label": "underline"
|
|
1572
1734
|
},
|
|
1573
|
-
/* @__PURE__ */
|
|
1735
|
+
/* @__PURE__ */ React52.createElement(import_icons17.UnderlineIcon, { fontSize: buttonSize })
|
|
1574
1736
|
))));
|
|
1575
1737
|
};
|
|
1576
1738
|
var ShorthandControl = ({
|
|
@@ -1589,52 +1751,52 @@ var ShorthandControl = ({
|
|
|
1589
1751
|
updateValues([...valuesArr, newValue].join(" "));
|
|
1590
1752
|
}
|
|
1591
1753
|
};
|
|
1592
|
-
return /* @__PURE__ */
|
|
1754
|
+
return /* @__PURE__ */ React52.createElement(ToggleButton, { value, onChange: toggleValue, selected, "aria-label": ariaLabel }, children);
|
|
1593
1755
|
};
|
|
1594
1756
|
var ToggleButton = ({ onChange, ...props }) => {
|
|
1595
1757
|
const handleChange = (_e, newValue) => {
|
|
1596
1758
|
onChange(newValue);
|
|
1597
1759
|
};
|
|
1598
|
-
return /* @__PURE__ */
|
|
1760
|
+
return /* @__PURE__ */ React52.createElement(import_ui44.ToggleButton, { ...props, onChange: handleChange, size: buttonSize });
|
|
1599
1761
|
};
|
|
1600
1762
|
|
|
1601
1763
|
// src/components/style-sections/typography-section/transform-field.tsx
|
|
1602
|
-
var
|
|
1603
|
-
var
|
|
1604
|
-
var
|
|
1605
|
-
var
|
|
1606
|
-
var
|
|
1607
|
-
var
|
|
1764
|
+
var React53 = __toESM(require("react"));
|
|
1765
|
+
var import_editor_controls39 = require("@elementor/editor-controls");
|
|
1766
|
+
var import_icons18 = require("@elementor/icons");
|
|
1767
|
+
var import_ui45 = require("@elementor/ui");
|
|
1768
|
+
var import_i18n34 = require("@wordpress/i18n");
|
|
1769
|
+
var options9 = [
|
|
1608
1770
|
{
|
|
1609
1771
|
value: "capitalize",
|
|
1610
|
-
label: (0,
|
|
1611
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1772
|
+
label: (0, import_i18n34.__)("Capitalize", "elementor"),
|
|
1773
|
+
renderContent: ({ size }) => /* @__PURE__ */ React53.createElement(import_icons18.LetterCaseIcon, { fontSize: size })
|
|
1612
1774
|
},
|
|
1613
1775
|
{
|
|
1614
1776
|
value: "uppercase",
|
|
1615
|
-
label: (0,
|
|
1616
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1777
|
+
label: (0, import_i18n34.__)("Uppercase", "elementor"),
|
|
1778
|
+
renderContent: ({ size }) => /* @__PURE__ */ React53.createElement(import_icons18.LetterCaseUpperIcon, { fontSize: size })
|
|
1617
1779
|
},
|
|
1618
1780
|
{
|
|
1619
1781
|
value: "lowercase",
|
|
1620
|
-
label: (0,
|
|
1621
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1782
|
+
label: (0, import_i18n34.__)("Lowercase", "elementor"),
|
|
1783
|
+
renderContent: ({ size }) => /* @__PURE__ */ React53.createElement(import_icons18.LetterCaseLowerIcon, { fontSize: size })
|
|
1622
1784
|
}
|
|
1623
1785
|
];
|
|
1624
|
-
var TransformField = () => /* @__PURE__ */
|
|
1786
|
+
var TransformField = () => /* @__PURE__ */ React53.createElement(StylesField, { bind: "text-transform" }, /* @__PURE__ */ React53.createElement(import_ui45.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React53.createElement(import_ui45.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React53.createElement(import_editor_controls39.ControlLabel, null, (0, import_i18n34.__)("Transform", "elementor"))), /* @__PURE__ */ React53.createElement(import_ui45.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React53.createElement(import_editor_controls39.ToggleControl, { options: options9 }))));
|
|
1625
1787
|
|
|
1626
1788
|
// src/components/style-sections/typography-section/word-spacing-field.tsx
|
|
1627
|
-
var
|
|
1628
|
-
var
|
|
1629
|
-
var
|
|
1630
|
-
var
|
|
1789
|
+
var React54 = __toESM(require("react"));
|
|
1790
|
+
var import_editor_controls40 = require("@elementor/editor-controls");
|
|
1791
|
+
var import_ui46 = require("@elementor/ui");
|
|
1792
|
+
var import_i18n35 = require("@wordpress/i18n");
|
|
1631
1793
|
var WordSpacingField = () => {
|
|
1632
|
-
return /* @__PURE__ */
|
|
1794
|
+
return /* @__PURE__ */ React54.createElement(StylesField, { bind: "word-spacing" }, /* @__PURE__ */ React54.createElement(import_ui46.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React54.createElement(import_ui46.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(import_editor_controls40.ControlLabel, null, (0, import_i18n35.__)("Word Spacing", "elementor"))), /* @__PURE__ */ React54.createElement(import_ui46.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(import_editor_controls40.SizeControl, null))));
|
|
1633
1795
|
};
|
|
1634
1796
|
|
|
1635
1797
|
// src/components/style-sections/typography-section/typography-section.tsx
|
|
1636
1798
|
var TypographySection = () => {
|
|
1637
|
-
return /* @__PURE__ */
|
|
1799
|
+
return /* @__PURE__ */ React55.createElement(import_ui47.Stack, { gap: 1.5 }, /* @__PURE__ */ React55.createElement(FontFamilyField, null), /* @__PURE__ */ React55.createElement(FontWeightField, null), /* @__PURE__ */ React55.createElement(FontSizeField, null), /* @__PURE__ */ React55.createElement(import_ui47.Divider, null), /* @__PURE__ */ React55.createElement(TextAlignmentField, null), /* @__PURE__ */ React55.createElement(TextColorField, null), /* @__PURE__ */ React55.createElement(CollapsibleContent, null, /* @__PURE__ */ React55.createElement(import_ui47.Stack, { gap: 1.5, sx: { pt: 1.5 } }, /* @__PURE__ */ React55.createElement(LineHeightField, null), /* @__PURE__ */ React55.createElement(LetterSpacingField, null), /* @__PURE__ */ React55.createElement(WordSpacingField, null), /* @__PURE__ */ React55.createElement(import_ui47.Divider, null), /* @__PURE__ */ React55.createElement(TextStyleField, null), /* @__PURE__ */ React55.createElement(TransformField, null), /* @__PURE__ */ React55.createElement(TextDirectionField, null), /* @__PURE__ */ React55.createElement(TextStrokeField, null))));
|
|
1638
1800
|
};
|
|
1639
1801
|
|
|
1640
1802
|
// src/components/style-tab.tsx
|
|
@@ -1643,10 +1805,10 @@ var StyleTab = () => {
|
|
|
1643
1805
|
const currentClassesProp = useCurrentClassesProp();
|
|
1644
1806
|
const [activeStyleDefId, setActiveStyleDefId] = useActiveStyleDefId(currentClassesProp);
|
|
1645
1807
|
const breakpoint = (0, import_editor_responsive.useActiveBreakpoint)();
|
|
1646
|
-
return /* @__PURE__ */
|
|
1808
|
+
return /* @__PURE__ */ React56.createElement(ClassesPropProvider, { prop: currentClassesProp }, /* @__PURE__ */ React56.createElement(StyleProvider, { meta: { breakpoint, state: null }, id: activeStyleDefId, setId: setActiveStyleDefId }, /* @__PURE__ */ React56.createElement(CssClassSelector, null), /* @__PURE__ */ React56.createElement(import_ui48.Divider, null), /* @__PURE__ */ React56.createElement(SectionsList, null, /* @__PURE__ */ React56.createElement(Section, { title: (0, import_i18n36.__)("Layout", "elementor") }, /* @__PURE__ */ React56.createElement(LayoutSection, null)), /* @__PURE__ */ React56.createElement(Section, { title: (0, import_i18n36.__)("Spacing", "elementor") }, /* @__PURE__ */ React56.createElement(SpacingSection, null)), /* @__PURE__ */ React56.createElement(Section, { title: (0, import_i18n36.__)("Size", "elementor") }, /* @__PURE__ */ React56.createElement(SizeSection, null)), /* @__PURE__ */ React56.createElement(Section, { title: (0, import_i18n36.__)("Position", "elementor") }, /* @__PURE__ */ React56.createElement(PositionSection, null)), /* @__PURE__ */ React56.createElement(Section, { title: (0, import_i18n36.__)("Typography", "elementor") }, /* @__PURE__ */ React56.createElement(TypographySection, null)), /* @__PURE__ */ React56.createElement(Section, { title: (0, import_i18n36.__)("Background", "elementor") }, /* @__PURE__ */ React56.createElement(BackgroundSection, null)), /* @__PURE__ */ React56.createElement(Section, { title: (0, import_i18n36.__)("Border", "elementor") }, /* @__PURE__ */ React56.createElement(BorderSection, null)), /* @__PURE__ */ React56.createElement(Section, { title: (0, import_i18n36.__)("Effects", "elementor") }, /* @__PURE__ */ React56.createElement(EffectsSection, null)))));
|
|
1647
1809
|
};
|
|
1648
1810
|
function useActiveStyleDefId(currentClassesProp) {
|
|
1649
|
-
const [activeStyledDefId, setActiveStyledDefId] = (0,
|
|
1811
|
+
const [activeStyledDefId, setActiveStyledDefId] = (0, import_react13.useState)(null);
|
|
1650
1812
|
const fallback = useFirstElementStyleDef(currentClassesProp);
|
|
1651
1813
|
const newId = useGeneratedId();
|
|
1652
1814
|
return [activeStyledDefId || fallback?.id || newId, setActiveStyledDefId];
|
|
@@ -1676,11 +1838,11 @@ function useCurrentClassesProp() {
|
|
|
1676
1838
|
// src/components/editing-panel-tabs.tsx
|
|
1677
1839
|
var EditingPanelTabs = () => {
|
|
1678
1840
|
const { element } = useElement();
|
|
1679
|
-
const { getTabProps, getTabPanelProps, getTabsProps } = (0,
|
|
1841
|
+
const { getTabProps, getTabPanelProps, getTabsProps } = (0, import_ui49.useTabs)("settings");
|
|
1680
1842
|
return (
|
|
1681
1843
|
// When switching between elements, the local states should be reset. We are using key to rerender the tabs.
|
|
1682
1844
|
// Reference: https://react.dev/learn/preserving-and-resetting-state#resetting-a-form-with-a-key
|
|
1683
|
-
/* @__PURE__ */
|
|
1845
|
+
/* @__PURE__ */ React57.createElement(import_react14.Fragment, { key: element.id }, /* @__PURE__ */ React57.createElement(import_ui49.Stack, { direction: "column", sx: { width: "100%" } }, /* @__PURE__ */ React57.createElement(import_ui49.Tabs, { variant: "fullWidth", indicatorColor: "secondary", textColor: "inherit", ...getTabsProps() }, /* @__PURE__ */ React57.createElement(import_ui49.Tab, { label: (0, import_i18n37.__)("General", "elementor"), ...getTabProps("settings") }), /* @__PURE__ */ React57.createElement(import_ui49.Tab, { label: (0, import_i18n37.__)("Style", "elementor"), ...getTabProps("style") })), /* @__PURE__ */ React57.createElement(import_ui49.Divider, null), /* @__PURE__ */ React57.createElement(import_ui49.TabPanel, { ...getTabPanelProps("settings"), disablePadding: true }, /* @__PURE__ */ React57.createElement(SettingsTab, null)), /* @__PURE__ */ React57.createElement(import_ui49.TabPanel, { ...getTabPanelProps("style"), disablePadding: true }, /* @__PURE__ */ React57.createElement(StyleTab, null))))
|
|
1684
1846
|
);
|
|
1685
1847
|
};
|
|
1686
1848
|
|
|
@@ -1693,8 +1855,8 @@ var EditingPanel = () => {
|
|
|
1693
1855
|
if (!element || !elementType) {
|
|
1694
1856
|
return null;
|
|
1695
1857
|
}
|
|
1696
|
-
const panelTitle = (0,
|
|
1697
|
-
return /* @__PURE__ */
|
|
1858
|
+
const panelTitle = (0, import_i18n38.__)("Edit %s", "elementor").replace("%s", elementType.title);
|
|
1859
|
+
return /* @__PURE__ */ React58.createElement(import_ui50.ErrorBoundary, { fallback: /* @__PURE__ */ React58.createElement(EditorPanelErrorFallback, null) }, /* @__PURE__ */ React58.createElement(import_editor_panels.Panel, null, /* @__PURE__ */ React58.createElement(import_editor_panels.PanelHeader, null, /* @__PURE__ */ React58.createElement(import_editor_panels.PanelHeaderTitle, null, panelTitle)), /* @__PURE__ */ React58.createElement(import_editor_panels.PanelBody, null, /* @__PURE__ */ React58.createElement(import_editor_controls41.ControlActionsProvider, { items: menuItems }, /* @__PURE__ */ React58.createElement(import_editor_controls41.ControlReplacementProvider, { ...controlReplacement }, /* @__PURE__ */ React58.createElement(ElementProvider, { element, elementType }, /* @__PURE__ */ React58.createElement(EditingPanelTabs, null)))))));
|
|
1698
1860
|
};
|
|
1699
1861
|
|
|
1700
1862
|
// src/panel.ts
|
|
@@ -1717,7 +1879,7 @@ var isAtomicWidgetSelected = () => {
|
|
|
1717
1879
|
// src/hooks/use-close-editor-panel.ts
|
|
1718
1880
|
var useCloseEditorPanel = () => {
|
|
1719
1881
|
const { close } = usePanelActions();
|
|
1720
|
-
return (0,
|
|
1882
|
+
return (0, import_react15.useEffect)(() => {
|
|
1721
1883
|
return (0, import_editor_v1_adapters.__privateListenTo)((0, import_editor_v1_adapters.commandStartEvent)("document/elements/delete"), (e) => {
|
|
1722
1884
|
const selectedElement = (0, import_editor_elements8.getSelectedElements)()[0];
|
|
1723
1885
|
const { container: deletedContainer } = e?.args;
|
|
@@ -1730,11 +1892,11 @@ var useCloseEditorPanel = () => {
|
|
|
1730
1892
|
};
|
|
1731
1893
|
|
|
1732
1894
|
// src/hooks/use-open-editor-panel.ts
|
|
1733
|
-
var
|
|
1895
|
+
var import_react16 = require("react");
|
|
1734
1896
|
var import_editor_v1_adapters2 = require("@elementor/editor-v1-adapters");
|
|
1735
1897
|
var useOpenEditorPanel = () => {
|
|
1736
1898
|
const { open } = usePanelActions();
|
|
1737
|
-
(0,
|
|
1899
|
+
(0, import_react16.useEffect)(() => {
|
|
1738
1900
|
return (0, import_editor_v1_adapters2.__privateListenTo)((0, import_editor_v1_adapters2.commandStartEvent)("panel/editor/open"), () => {
|
|
1739
1901
|
if (isAtomicWidgetSelected()) {
|
|
1740
1902
|
open();
|
|
@@ -1751,22 +1913,23 @@ var EditingPanelHooks = () => {
|
|
|
1751
1913
|
};
|
|
1752
1914
|
|
|
1753
1915
|
// src/dynamics/components/dynamic-selection-control.tsx
|
|
1754
|
-
var
|
|
1755
|
-
var
|
|
1756
|
-
var
|
|
1757
|
-
var
|
|
1758
|
-
var
|
|
1759
|
-
var
|
|
1916
|
+
var React61 = __toESM(require("react"));
|
|
1917
|
+
var import_react20 = require("react");
|
|
1918
|
+
var import_editor_controls44 = require("@elementor/editor-controls");
|
|
1919
|
+
var import_icons20 = require("@elementor/icons");
|
|
1920
|
+
var import_ui52 = require("@elementor/ui");
|
|
1921
|
+
var import_i18n40 = require("@wordpress/i18n");
|
|
1760
1922
|
|
|
1761
1923
|
// src/dynamics/dynamic-control.tsx
|
|
1762
|
-
var
|
|
1763
|
-
var
|
|
1924
|
+
var React59 = __toESM(require("react"));
|
|
1925
|
+
var import_editor_controls42 = require("@elementor/editor-controls");
|
|
1926
|
+
var import_editor_props5 = require("@elementor/editor-props");
|
|
1764
1927
|
|
|
1765
1928
|
// src/dynamics/hooks/use-dynamic-tag.ts
|
|
1766
|
-
var
|
|
1929
|
+
var import_react18 = require("react");
|
|
1767
1930
|
|
|
1768
1931
|
// src/dynamics/hooks/use-prop-dynamic-tags.ts
|
|
1769
|
-
var
|
|
1932
|
+
var import_react17 = require("react");
|
|
1770
1933
|
|
|
1771
1934
|
// src/dynamics/sync/get-elementor-config.ts
|
|
1772
1935
|
var getElementorConfig2 = () => {
|
|
@@ -1787,7 +1950,8 @@ var getAtomicDynamicTags = () => {
|
|
|
1787
1950
|
};
|
|
1788
1951
|
|
|
1789
1952
|
// src/dynamics/utils.ts
|
|
1790
|
-
var
|
|
1953
|
+
var import_editor_props4 = require("@elementor/editor-props");
|
|
1954
|
+
var import_schema = require("@elementor/schema");
|
|
1791
1955
|
var DYNAMIC_PROP_TYPE_KEY = "dynamic";
|
|
1792
1956
|
var isDynamicPropType = (prop) => prop.key === DYNAMIC_PROP_TYPE_KEY;
|
|
1793
1957
|
var getDynamicPropType = (propType) => {
|
|
@@ -1795,11 +1959,18 @@ var getDynamicPropType = (propType) => {
|
|
|
1795
1959
|
return dynamicPropType && isDynamicPropType(dynamicPropType) ? dynamicPropType : null;
|
|
1796
1960
|
};
|
|
1797
1961
|
var isDynamicPropValue = (prop) => {
|
|
1798
|
-
return (0,
|
|
1962
|
+
return (0, import_editor_props4.isTransformable)(prop) && prop.$$type === DYNAMIC_PROP_TYPE_KEY;
|
|
1799
1963
|
};
|
|
1800
1964
|
var supportsDynamic = (propType) => {
|
|
1801
1965
|
return !!getDynamicPropType(propType);
|
|
1802
1966
|
};
|
|
1967
|
+
var dynamicPropTypeUtil = (0, import_editor_props4.createPropUtils)(
|
|
1968
|
+
DYNAMIC_PROP_TYPE_KEY,
|
|
1969
|
+
import_schema.z.strictObject({
|
|
1970
|
+
name: import_schema.z.string(),
|
|
1971
|
+
settings: import_schema.z.record(import_schema.z.any()).optional()
|
|
1972
|
+
})
|
|
1973
|
+
);
|
|
1803
1974
|
|
|
1804
1975
|
// src/dynamics/hooks/use-prop-dynamic-tags.ts
|
|
1805
1976
|
var usePropDynamicTags = (propName) => {
|
|
@@ -1810,7 +1981,7 @@ var usePropDynamicTags = (propName) => {
|
|
|
1810
1981
|
const propDynamicType = getDynamicPropType(propType);
|
|
1811
1982
|
categories = propDynamicType?.settings.categories || [];
|
|
1812
1983
|
}
|
|
1813
|
-
return (0,
|
|
1984
|
+
return (0, import_react17.useMemo)(() => getDynamicTagsByCategories(categories), [categories.join()]);
|
|
1814
1985
|
};
|
|
1815
1986
|
var getDynamicTagsByCategories = (categories) => {
|
|
1816
1987
|
const dynamicTags = getAtomicDynamicTags();
|
|
@@ -1826,13 +1997,13 @@ var getDynamicTagsByCategories = (categories) => {
|
|
|
1826
1997
|
// src/dynamics/hooks/use-dynamic-tag.ts
|
|
1827
1998
|
var useDynamicTag = (propName, tagName) => {
|
|
1828
1999
|
const dynamicTags = usePropDynamicTags(propName);
|
|
1829
|
-
return (0,
|
|
2000
|
+
return (0, import_react18.useMemo)(() => dynamicTags.find((tag) => tag.name === tagName) ?? null, [dynamicTags, tagName]);
|
|
1830
2001
|
};
|
|
1831
2002
|
|
|
1832
2003
|
// src/dynamics/dynamic-control.tsx
|
|
1833
2004
|
var DynamicControl = ({ bind, children }) => {
|
|
1834
|
-
const { value, setValue, bind: propName } = (0,
|
|
1835
|
-
const { name = "", settings } = value
|
|
2005
|
+
const { value, setValue, bind: propName } = (0, import_editor_controls42.useBoundProp)(dynamicPropTypeUtil);
|
|
2006
|
+
const { name = "", settings } = value ?? {};
|
|
1836
2007
|
const dynamicTag = useDynamicTag(propName, name);
|
|
1837
2008
|
if (!dynamicTag) {
|
|
1838
2009
|
throw new Error(`Dynamic tag ${name} not found`);
|
|
@@ -1841,60 +2012,59 @@ var DynamicControl = ({ bind, children }) => {
|
|
|
1841
2012
|
const dynamicValue = settings?.[bind] ?? defaultValue;
|
|
1842
2013
|
const setDynamicValue = (newValue) => {
|
|
1843
2014
|
setValue({
|
|
1844
|
-
|
|
1845
|
-
|
|
1846
|
-
|
|
1847
|
-
|
|
1848
|
-
|
|
1849
|
-
[bind]: newValue
|
|
1850
|
-
}
|
|
2015
|
+
name,
|
|
2016
|
+
settings: {
|
|
2017
|
+
...settings,
|
|
2018
|
+
// The value inside the dynamic is not a transformable value, so we need to store the whole object.
|
|
2019
|
+
[bind]: (0, import_editor_props5.isTransformable)(newValue) ? newValue.value : newValue
|
|
1851
2020
|
}
|
|
1852
2021
|
});
|
|
1853
2022
|
};
|
|
1854
|
-
return /* @__PURE__ */
|
|
2023
|
+
return /* @__PURE__ */ React59.createElement(import_editor_controls42.BoundPropProvider, { setValue: setDynamicValue, value: dynamicValue, bind }, children);
|
|
1855
2024
|
};
|
|
1856
2025
|
|
|
1857
2026
|
// src/dynamics/components/dynamic-selection.tsx
|
|
1858
|
-
var
|
|
1859
|
-
var
|
|
1860
|
-
var
|
|
1861
|
-
var
|
|
1862
|
-
var
|
|
1863
|
-
var
|
|
2027
|
+
var React60 = __toESM(require("react"));
|
|
2028
|
+
var import_react19 = require("react");
|
|
2029
|
+
var import_editor_controls43 = require("@elementor/editor-controls");
|
|
2030
|
+
var import_icons19 = require("@elementor/icons");
|
|
2031
|
+
var import_ui51 = require("@elementor/ui");
|
|
2032
|
+
var import_i18n39 = require("@wordpress/i18n");
|
|
1864
2033
|
var SIZE3 = "tiny";
|
|
1865
2034
|
var DynamicSelection = ({ onSelect }) => {
|
|
1866
|
-
const [searchValue, setSearchValue] = (0,
|
|
2035
|
+
const [searchValue, setSearchValue] = (0, import_react19.useState)("");
|
|
1867
2036
|
const { groups: dynamicGroups } = getAtomicDynamicTags() || {};
|
|
1868
|
-
const {
|
|
2037
|
+
const { value: anyValue } = (0, import_editor_controls43.useBoundProp)();
|
|
2038
|
+
const { bind, value: dynamicvalue, setValue } = (0, import_editor_controls43.useBoundProp)(dynamicPropTypeUtil);
|
|
1869
2039
|
const { setPropValue: updatePropValueHistory } = usePropValueHistory();
|
|
1870
|
-
const isCurrentValueDynamic =
|
|
1871
|
-
const
|
|
2040
|
+
const isCurrentValueDynamic = !!dynamicvalue;
|
|
2041
|
+
const options10 = useFilteredOptions(bind, searchValue);
|
|
1872
2042
|
const handleSearch = (event) => {
|
|
1873
2043
|
setSearchValue(event.target.value);
|
|
1874
2044
|
};
|
|
1875
2045
|
const handleSetDynamicTag = (value) => {
|
|
1876
2046
|
if (!isCurrentValueDynamic) {
|
|
1877
|
-
updatePropValueHistory(bind,
|
|
2047
|
+
updatePropValueHistory(bind, anyValue);
|
|
1878
2048
|
}
|
|
1879
|
-
setValue({
|
|
2049
|
+
setValue({ name: value, settings: {} });
|
|
1880
2050
|
onSelect?.();
|
|
1881
2051
|
};
|
|
1882
|
-
return /* @__PURE__ */
|
|
1883
|
-
|
|
2052
|
+
return /* @__PURE__ */ React60.createElement(import_ui51.Stack, null, /* @__PURE__ */ React60.createElement(import_ui51.Box, { px: 1.5, pb: 1 }, /* @__PURE__ */ React60.createElement(
|
|
2053
|
+
import_ui51.TextField,
|
|
1884
2054
|
{
|
|
1885
2055
|
fullWidth: true,
|
|
1886
2056
|
size: SIZE3,
|
|
1887
2057
|
value: searchValue,
|
|
1888
2058
|
onChange: handleSearch,
|
|
1889
|
-
placeholder: (0,
|
|
2059
|
+
placeholder: (0, import_i18n39.__)("Search dynamic tag", "elementor"),
|
|
1890
2060
|
InputProps: {
|
|
1891
|
-
startAdornment: /* @__PURE__ */
|
|
2061
|
+
startAdornment: /* @__PURE__ */ React60.createElement(import_ui51.InputAdornment, { position: "start" }, /* @__PURE__ */ React60.createElement(import_icons19.SearchIcon, { fontSize: SIZE3 }))
|
|
1892
2062
|
}
|
|
1893
2063
|
}
|
|
1894
|
-
)), /* @__PURE__ */
|
|
1895
|
-
const isSelected = isCurrentValueDynamic && value ===
|
|
1896
|
-
return /* @__PURE__ */
|
|
1897
|
-
|
|
2064
|
+
)), /* @__PURE__ */ React60.createElement(import_ui51.Divider, null), /* @__PURE__ */ React60.createElement(import_ui51.Box, { sx: { overflowY: "auto", height: 260, width: 220 } }, options10.length > 0 ? /* @__PURE__ */ React60.createElement(import_ui51.MenuList, { role: "listbox", tabIndex: 0 }, options10.map(([category, items3], index) => /* @__PURE__ */ React60.createElement(import_react19.Fragment, { key: index }, /* @__PURE__ */ React60.createElement(import_ui51.ListSubheader, { sx: { typography: "caption", color: "text.tertiary" } }, dynamicGroups?.[category]?.title || category), items3.map(({ value, label: tagLabel }) => {
|
|
2065
|
+
const isSelected = isCurrentValueDynamic && value === dynamicvalue?.name;
|
|
2066
|
+
return /* @__PURE__ */ React60.createElement(
|
|
2067
|
+
import_ui51.MenuItem,
|
|
1898
2068
|
{
|
|
1899
2069
|
key: value,
|
|
1900
2070
|
selected: isSelected,
|
|
@@ -1904,20 +2074,20 @@ var DynamicSelection = ({ onSelect }) => {
|
|
|
1904
2074
|
},
|
|
1905
2075
|
tagLabel
|
|
1906
2076
|
);
|
|
1907
|
-
})))) : /* @__PURE__ */
|
|
1908
|
-
|
|
2077
|
+
})))) : /* @__PURE__ */ React60.createElement(import_ui51.Stack, { alignItems: "center", p: 2.5, gap: 1.5 }, /* @__PURE__ */ React60.createElement(import_icons19.PhotoIcon, { fontSize: "large" }), /* @__PURE__ */ React60.createElement(import_ui51.Typography, { align: "center", variant: "caption", color: "text.secondary" }, (0, import_i18n39.__)("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React60.createElement("br", null), "\u201C", searchValue, "\u201D."), /* @__PURE__ */ React60.createElement(import_ui51.Typography, { align: "center", variant: "caption", color: "text.secondary" }, /* @__PURE__ */ React60.createElement(
|
|
2078
|
+
import_ui51.Link,
|
|
1909
2079
|
{
|
|
1910
2080
|
color: "secondary",
|
|
1911
2081
|
variant: "caption",
|
|
1912
2082
|
component: "button",
|
|
1913
2083
|
onClick: () => setSearchValue("")
|
|
1914
2084
|
},
|
|
1915
|
-
(0,
|
|
1916
|
-
), "\xA0", (0,
|
|
2085
|
+
(0, import_i18n39.__)("Clear the filters", "elementor")
|
|
2086
|
+
), "\xA0", (0, import_i18n39.__)("and try again.", "elementor")))));
|
|
1917
2087
|
};
|
|
1918
2088
|
var useFilteredOptions = (bind, searchValue) => {
|
|
1919
2089
|
const dynamicTags = usePropDynamicTags(bind);
|
|
1920
|
-
const
|
|
2090
|
+
const options10 = dynamicTags.reduce((categories, { name, label, group }) => {
|
|
1921
2091
|
const isVisible = label.toLowerCase().includes(searchValue.trim().toLowerCase());
|
|
1922
2092
|
if (!isVisible) {
|
|
1923
2093
|
return categories;
|
|
@@ -1928,89 +2098,90 @@ var useFilteredOptions = (bind, searchValue) => {
|
|
|
1928
2098
|
categories.get(group)?.push({ label, value: name });
|
|
1929
2099
|
return categories;
|
|
1930
2100
|
}, /* @__PURE__ */ new Map());
|
|
1931
|
-
return [...
|
|
2101
|
+
return [...options10];
|
|
1932
2102
|
};
|
|
1933
2103
|
|
|
1934
2104
|
// src/dynamics/components/dynamic-selection-control.tsx
|
|
1935
2105
|
var SIZE4 = "tiny";
|
|
1936
2106
|
var DynamicSelectionControl = () => {
|
|
1937
|
-
const {
|
|
2107
|
+
const { setValue: setAnyValue } = (0, import_editor_controls44.useBoundProp)();
|
|
2108
|
+
const { bind, value } = (0, import_editor_controls44.useBoundProp)(dynamicPropTypeUtil);
|
|
1938
2109
|
const { getPropValue: getPropValueFromHistory } = usePropValueHistory();
|
|
1939
|
-
const { name: tagName = "" } = value
|
|
1940
|
-
const selectionPopoverId = (0,
|
|
1941
|
-
const selectionPopoverState = (0,
|
|
2110
|
+
const { name: tagName = "" } = value;
|
|
2111
|
+
const selectionPopoverId = (0, import_react20.useId)();
|
|
2112
|
+
const selectionPopoverState = (0, import_ui52.usePopupState)({ variant: "popover", popupId: selectionPopoverId });
|
|
1942
2113
|
const dynamicTag = useDynamicTag(bind, tagName);
|
|
1943
2114
|
const removeDynamicTag = () => {
|
|
1944
2115
|
const propValue = getPropValueFromHistory(bind);
|
|
1945
|
-
|
|
2116
|
+
setAnyValue(propValue ?? null);
|
|
1946
2117
|
};
|
|
1947
2118
|
if (!dynamicTag) {
|
|
1948
2119
|
throw new Error(`Dynamic tag ${tagName} not found`);
|
|
1949
2120
|
}
|
|
1950
|
-
return /* @__PURE__ */
|
|
1951
|
-
|
|
2121
|
+
return /* @__PURE__ */ React61.createElement(import_ui52.Box, null, /* @__PURE__ */ React61.createElement(
|
|
2122
|
+
import_ui52.UnstableTag,
|
|
1952
2123
|
{
|
|
1953
2124
|
fullWidth: true,
|
|
1954
2125
|
showActionsOnHover: true,
|
|
1955
2126
|
label: dynamicTag.label,
|
|
1956
|
-
startIcon: /* @__PURE__ */
|
|
1957
|
-
...(0,
|
|
1958
|
-
actions: /* @__PURE__ */
|
|
1959
|
-
|
|
2127
|
+
startIcon: /* @__PURE__ */ React61.createElement(import_icons20.DatabaseIcon, { fontSize: SIZE4 }),
|
|
2128
|
+
...(0, import_ui52.bindTrigger)(selectionPopoverState),
|
|
2129
|
+
actions: /* @__PURE__ */ React61.createElement(React61.Fragment, null, /* @__PURE__ */ React61.createElement(DynamicSettingsPopover, { dynamicTag }), /* @__PURE__ */ React61.createElement(
|
|
2130
|
+
import_ui52.IconButton,
|
|
1960
2131
|
{
|
|
1961
2132
|
size: SIZE4,
|
|
1962
2133
|
onClick: removeDynamicTag,
|
|
1963
|
-
"aria-label": (0,
|
|
2134
|
+
"aria-label": (0, import_i18n40.__)("Remove dynamic value", "elementor")
|
|
1964
2135
|
},
|
|
1965
|
-
/* @__PURE__ */
|
|
2136
|
+
/* @__PURE__ */ React61.createElement(import_icons20.XIcon, { fontSize: SIZE4 })
|
|
1966
2137
|
))
|
|
1967
2138
|
}
|
|
1968
|
-
), /* @__PURE__ */
|
|
1969
|
-
|
|
2139
|
+
), /* @__PURE__ */ React61.createElement(
|
|
2140
|
+
import_ui52.Popover,
|
|
1970
2141
|
{
|
|
1971
2142
|
disablePortal: true,
|
|
1972
2143
|
disableScrollLock: true,
|
|
1973
2144
|
anchorOrigin: { vertical: "bottom", horizontal: "left" },
|
|
1974
|
-
...(0,
|
|
2145
|
+
...(0, import_ui52.bindPopover)(selectionPopoverState)
|
|
1975
2146
|
},
|
|
1976
|
-
/* @__PURE__ */
|
|
2147
|
+
/* @__PURE__ */ React61.createElement(import_ui52.Stack, null, /* @__PURE__ */ React61.createElement(import_ui52.Stack, { direction: "row", alignItems: "center", pl: 1.5, pr: 0.5, py: 1.5 }, /* @__PURE__ */ React61.createElement(import_icons20.DatabaseIcon, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React61.createElement(import_ui52.Typography, { variant: "subtitle2" }, (0, import_i18n40.__)("Dynamic Tags", "elementor")), /* @__PURE__ */ React61.createElement(import_ui52.IconButton, { size: SIZE4, sx: { ml: "auto" }, onClick: selectionPopoverState.close }, /* @__PURE__ */ React61.createElement(import_icons20.XIcon, { fontSize: SIZE4 }))), /* @__PURE__ */ React61.createElement(DynamicSelection, { onSelect: selectionPopoverState.close }))
|
|
1977
2148
|
));
|
|
1978
2149
|
};
|
|
1979
2150
|
var DynamicSettingsPopover = ({ dynamicTag }) => {
|
|
1980
|
-
const popupId = (0,
|
|
1981
|
-
const settingsPopupState = (0,
|
|
2151
|
+
const popupId = (0, import_react20.useId)();
|
|
2152
|
+
const settingsPopupState = (0, import_ui52.usePopupState)({ variant: "popover", popupId });
|
|
1982
2153
|
const hasDynamicSettings = !!dynamicTag.atomic_controls.length;
|
|
1983
2154
|
if (!hasDynamicSettings) {
|
|
1984
2155
|
return null;
|
|
1985
2156
|
}
|
|
1986
|
-
return /* @__PURE__ */
|
|
1987
|
-
|
|
2157
|
+
return /* @__PURE__ */ React61.createElement(React61.Fragment, null, /* @__PURE__ */ React61.createElement(
|
|
2158
|
+
import_ui52.IconButton,
|
|
1988
2159
|
{
|
|
1989
2160
|
size: SIZE4,
|
|
1990
|
-
...(0,
|
|
1991
|
-
"aria-label": (0,
|
|
2161
|
+
...(0, import_ui52.bindTrigger)(settingsPopupState),
|
|
2162
|
+
"aria-label": (0, import_i18n40.__)("Settings", "elementor")
|
|
1992
2163
|
},
|
|
1993
|
-
/* @__PURE__ */
|
|
1994
|
-
), /* @__PURE__ */
|
|
1995
|
-
|
|
2164
|
+
/* @__PURE__ */ React61.createElement(import_icons20.SettingsIcon, { fontSize: SIZE4 })
|
|
2165
|
+
), /* @__PURE__ */ React61.createElement(
|
|
2166
|
+
import_ui52.Popover,
|
|
1996
2167
|
{
|
|
1997
2168
|
disableScrollLock: true,
|
|
1998
2169
|
anchorOrigin: { vertical: "bottom", horizontal: "center" },
|
|
1999
|
-
...(0,
|
|
2170
|
+
...(0, import_ui52.bindPopover)(settingsPopupState)
|
|
2000
2171
|
},
|
|
2001
|
-
/* @__PURE__ */
|
|
2172
|
+
/* @__PURE__ */ React61.createElement(import_ui52.Paper, { component: import_ui52.Stack, sx: { minHeight: "300px", width: "220px" } }, /* @__PURE__ */ React61.createElement(import_ui52.Stack, { direction: "row", alignItems: "center", px: 1.5, pt: 2, pb: 1 }, /* @__PURE__ */ React61.createElement(import_icons20.DatabaseIcon, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React61.createElement(import_ui52.Typography, { variant: "subtitle2" }, dynamicTag.label), /* @__PURE__ */ React61.createElement(import_ui52.IconButton, { sx: { ml: "auto" }, size: SIZE4, onClick: settingsPopupState.close }, /* @__PURE__ */ React61.createElement(import_icons20.XIcon, { fontSize: SIZE4 }))), /* @__PURE__ */ React61.createElement(DynamicSettings, { controls: dynamicTag.atomic_controls }))
|
|
2002
2173
|
));
|
|
2003
2174
|
};
|
|
2004
2175
|
var DynamicSettings = ({ controls }) => {
|
|
2005
2176
|
const tabs = controls.filter(({ type }) => type === "section");
|
|
2006
|
-
const { getTabsProps, getTabProps, getTabPanelProps } = (0,
|
|
2177
|
+
const { getTabsProps, getTabProps, getTabPanelProps } = (0, import_ui52.useTabs)(0);
|
|
2007
2178
|
if (!tabs.length) {
|
|
2008
2179
|
return null;
|
|
2009
2180
|
}
|
|
2010
|
-
return /* @__PURE__ */
|
|
2011
|
-
return /* @__PURE__ */
|
|
2181
|
+
return /* @__PURE__ */ React61.createElement(React61.Fragment, null, /* @__PURE__ */ React61.createElement(import_ui52.Tabs, { indicatorColor: "secondary", textColor: "secondary", ...getTabsProps() }, tabs.map(({ value }, index) => /* @__PURE__ */ React61.createElement(import_ui52.Tab, { key: index, label: value.label, sx: { px: 1, py: 0.5 }, ...getTabProps(index) }))), /* @__PURE__ */ React61.createElement(import_ui52.Divider, null), tabs.map(({ value }, index) => {
|
|
2182
|
+
return /* @__PURE__ */ React61.createElement(import_ui52.TabPanel, { key: index, sx: { flexGrow: 1 }, ...getTabPanelProps(index) }, /* @__PURE__ */ React61.createElement(import_ui52.Stack, { gap: 1, px: 2 }, value.items.map((item) => {
|
|
2012
2183
|
if (item.type === "control") {
|
|
2013
|
-
return /* @__PURE__ */
|
|
2184
|
+
return /* @__PURE__ */ React61.createElement(Control3, { key: item.value.bind, control: item.value });
|
|
2014
2185
|
}
|
|
2015
2186
|
return null;
|
|
2016
2187
|
})));
|
|
@@ -2020,24 +2191,24 @@ var Control3 = ({ control }) => {
|
|
|
2020
2191
|
if (!getControlByType(control.type)) {
|
|
2021
2192
|
return null;
|
|
2022
2193
|
}
|
|
2023
|
-
return /* @__PURE__ */
|
|
2194
|
+
return /* @__PURE__ */ React61.createElement(DynamicControl, { bind: control.bind }, control.label ? /* @__PURE__ */ React61.createElement(import_editor_controls44.ControlLabel, null, control.label) : null, /* @__PURE__ */ React61.createElement(Control, { type: control.type, props: control.props }));
|
|
2024
2195
|
};
|
|
2025
2196
|
|
|
2026
2197
|
// src/dynamics/hooks/use-prop-dynamic-action.tsx
|
|
2027
|
-
var
|
|
2028
|
-
var
|
|
2029
|
-
var
|
|
2030
|
-
var
|
|
2198
|
+
var React62 = __toESM(require("react"));
|
|
2199
|
+
var import_editor_controls45 = require("@elementor/editor-controls");
|
|
2200
|
+
var import_icons21 = require("@elementor/icons");
|
|
2201
|
+
var import_i18n41 = require("@wordpress/i18n");
|
|
2031
2202
|
var usePropDynamicAction = () => {
|
|
2032
|
-
const { bind } = (0,
|
|
2203
|
+
const { bind } = (0, import_editor_controls45.useBoundProp)();
|
|
2033
2204
|
const { elementType } = useElement();
|
|
2034
2205
|
const propType = elementType.propsSchema[bind];
|
|
2035
2206
|
const visible = !!propType && supportsDynamic(propType);
|
|
2036
2207
|
return {
|
|
2037
2208
|
visible,
|
|
2038
|
-
icon:
|
|
2039
|
-
title: (0,
|
|
2040
|
-
popoverContent: ({ closePopover }) => /* @__PURE__ */
|
|
2209
|
+
icon: import_icons21.DatabaseIcon,
|
|
2210
|
+
title: (0, import_i18n41.__)("Dynamic Tags", "elementor"),
|
|
2211
|
+
popoverContent: ({ closePopover }) => /* @__PURE__ */ React62.createElement(DynamicSelection, { onSelect: closePopover })
|
|
2041
2212
|
};
|
|
2042
2213
|
};
|
|
2043
2214
|
|