@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.
Files changed (26) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/index.js +657 -486
  3. package/dist/index.js.map +1 -1
  4. package/dist/index.mjs +613 -433
  5. package/dist/index.mjs.map +1 -1
  6. package/package.json +12 -11
  7. package/src/components/style-sections/border-section/border-radius-field.tsx +4 -4
  8. package/src/components/style-sections/border-section/border-width-field.tsx +4 -4
  9. package/src/components/style-sections/layout-section/align-items-field.tsx +40 -60
  10. package/src/components/style-sections/layout-section/align-self-child-field.tsx +72 -0
  11. package/src/components/style-sections/layout-section/flex-direction-field.tsx +2 -2
  12. package/src/components/style-sections/layout-section/flex-order-field.tsx +14 -8
  13. package/src/components/style-sections/layout-section/flex-size-field.tsx +164 -0
  14. package/src/components/style-sections/layout-section/justify-content-field.tsx +51 -78
  15. package/src/components/style-sections/layout-section/layout-section.tsx +7 -2
  16. package/src/components/style-sections/layout-section/utils/rotated-icon.tsx +52 -0
  17. package/src/components/style-sections/layout-section/wrap-field.tsx +1 -1
  18. package/src/components/style-sections/position-section/position-section.tsx +3 -3
  19. package/src/components/style-sections/typography-section/line-height-field.tsx +21 -0
  20. package/src/components/style-sections/typography-section/text-style-field.tsx +31 -8
  21. package/src/components/style-sections/typography-section/typography-section.tsx +3 -1
  22. package/src/controls-registry/controls-registry.tsx +4 -0
  23. package/src/dynamics/components/dynamic-selection-control.tsx +8 -5
  24. package/src/dynamics/components/dynamic-selection.tsx +10 -8
  25. package/src/dynamics/dynamic-control.tsx +9 -11
  26. 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: () => import_editor_controls43.useBoundProp
34
+ useBoundProp: () => import_editor_controls46.useBoundProp
35
35
  });
36
36
  module.exports = __toCommonJS(src_exports);
37
- var import_editor_controls43 = require("@elementor/editor-controls");
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 import_react14 = require("react");
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 React54 = __toESM(require("react"));
58
- var import_editor_controls38 = require("@elementor/editor-controls");
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 import_ui46 = require("@elementor/ui");
62
- var import_i18n35 = require("@wordpress/i18n");
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 React53 = __toESM(require("react"));
134
- var import_react13 = require("react");
135
- var import_ui45 = require("@elementor/ui");
136
- var import_i18n34 = require("@wordpress/i18n");
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 React52 = __toESM(require("react"));
287
- var import_react12 = require("react");
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 import_ui44 = require("@elementor/ui");
292
- var import_i18n33 = require("@wordpress/i18n");
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: options7,
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: options7,
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 = options7.filter((option) => option.fixed);
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 options7 = useOptions();
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 = options7.find((option) => option.value === activeId) || null;
470
- const applied = appliedIds.map((id) => options7.find((option) => option.value === id)).filter((option) => !!option);
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: options7,
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
- items: edges,
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
- items: corners,
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 React31 = __toESM(require("react"));
798
- var import_editor_controls20 = require("@elementor/editor-controls");
799
- var import_ui24 = require("@elementor/ui");
800
- var import_i18n14 = require("@wordpress/i18n");
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 React25 = __toESM(require("react"));
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 import_ui18 = require("@elementor/ui");
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 options7 = useOptions2(), { isSiteRtl } = useDirection();
820
- return /* @__PURE__ */ React25.createElement(import_ui18.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React25.createElement(import_ui18.ThemeProvider, null, /* @__PURE__ */ React25.createElement(StylesField, { bind: "align-items" }, /* @__PURE__ */ React25.createElement(import_ui18.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React25.createElement(import_ui18.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React25.createElement(import_editor_controls14.ControlLabel, null, (0, import_i18n8.__)("Align Items", "elementor"))), /* @__PURE__ */ React25.createElement(import_ui18.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React25.createElement(import_editor_controls14.ToggleControl, { options: options7 }))))));
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
- var useOptions2 = () => {
823
- const StartIcon = (0, import_ui18.withDirection)(import_icons6.LayoutAlignLeftIcon), EndIcon = (0, import_ui18.withDirection)(import_icons6.LayoutAlignRightIcon);
824
- return [
825
- {
826
- value: "start",
827
- label: (0, import_i18n8.__)("Start", "elementor"),
828
- renderContent: ({ size }) => /* @__PURE__ */ React25.createElement(RotatedIcon, { icon: StartIcon, size }),
829
- showTooltip: true
830
- },
831
- {
832
- value: "center",
833
- label: (0, import_i18n8.__)("Center", "elementor"),
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 RotatedIcon = ({ icon: Icon, size }) => {
852
- const [direction] = useStylesField("flex-direction"), isRtl = "rtl" === (0, import_ui18.useTheme)().direction, rotationMultiplier = isRtl ? -1 : 1;
853
- const rotationAngelMap = {
854
- row: 90,
855
- column: 0,
856
- "row-reverse": -90,
857
- "column-reverse": -180
858
- };
859
- return /* @__PURE__ */ React25.createElement(
860
- Icon,
861
- {
862
- fontSize: size,
863
- sx: { transition: ".3s", rotate: `${rotationAngelMap[direction || "row"] * rotationMultiplier}deg` }
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 React26 = __toESM(require("react"));
870
- var import_editor_controls15 = require("@elementor/editor-controls");
871
- var import_ui19 = require("@elementor/ui");
872
- var import_i18n9 = require("@wordpress/i18n");
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 options7 = [
941
+ const options10 = [
875
942
  {
876
943
  value: "block",
877
- renderContent: () => (0, import_i18n9.__)("Block", "elementor"),
878
- label: (0, import_i18n9.__)("Block", "elementor")
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, import_i18n9.__)("Flex", "elementor"),
883
- label: (0, import_i18n9.__)("Flex", "elementor")
949
+ renderContent: () => (0, import_i18n10.__)("Flex", "elementor"),
950
+ label: (0, import_i18n10.__)("Flex", "elementor")
884
951
  }
885
952
  ];
886
- return /* @__PURE__ */ React26.createElement(StylesField, { bind: "display" }, /* @__PURE__ */ React26.createElement(import_ui19.Stack, { gap: 1 }, /* @__PURE__ */ React26.createElement(import_editor_controls15.ControlLabel, null, (0, import_i18n9.__)("Display", "elementor")), /* @__PURE__ */ React26.createElement(import_editor_controls15.ToggleControl, { options: options7, fullWidth: true })));
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 React27 = __toESM(require("react"));
891
- var import_editor_controls16 = require("@elementor/editor-controls");
892
- var import_icons7 = require("@elementor/icons");
893
- var import_ui20 = require("@elementor/ui");
894
- var import_i18n10 = require("@wordpress/i18n");
895
- var options = [
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, import_i18n10.__)("Row", "elementor"),
965
+ label: (0, import_i18n11.__)("Row", "elementor"),
899
966
  renderContent: ({ size }) => {
900
- const StartIcon = (0, import_ui20.withDirection)(import_icons7.ArrowRightIcon);
901
- return /* @__PURE__ */ React27.createElement(StartIcon, { fontSize: size });
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, import_i18n10.__)("Column", "elementor"),
908
- renderContent: ({ size }) => /* @__PURE__ */ React27.createElement(import_icons7.ArrowDownSmallIcon, { fontSize: size }),
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, import_i18n10.__)("Row reverse", "elementor"),
980
+ label: (0, import_i18n11.__)("Reversed row", "elementor"),
914
981
  renderContent: ({ size }) => {
915
- const EndIcon = (0, import_ui20.withDirection)(import_icons7.ArrowLeftIcon);
916
- return /* @__PURE__ */ React27.createElement(EndIcon, { fontSize: size });
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, import_i18n10.__)("Column reverse", "elementor"),
923
- renderContent: ({ size }) => /* @__PURE__ */ React27.createElement(import_icons7.ArrowUpSmallIcon, { fontSize: size }),
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__ */ React27.createElement(import_ui20.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React27.createElement(import_ui20.ThemeProvider, null, /* @__PURE__ */ React27.createElement(StylesField, { bind: "flex-direction" }, /* @__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_controls16.ControlLabel, null, (0, import_i18n10.__)("Direction", "elementor"))), /* @__PURE__ */ React27.createElement(import_ui20.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React27.createElement(import_editor_controls16.ToggleControl, { options }))))));
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 React28 = __toESM(require("react"));
934
- var import_react7 = require("react");
935
- var import_editor_controls17 = require("@elementor/editor-controls");
936
- var import_icons8 = require("@elementor/icons");
937
- var import_ui21 = require("@elementor/ui");
938
- var import_i18n11 = require("@wordpress/i18n");
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, import_i18n11.__)("First", "elementor"),
948
- renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(import_icons8.ArrowUpSmallIcon, { fontSize: size }),
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, import_i18n11.__)("Last", "elementor"),
954
- renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(import_icons8.ArrowDownSmallIcon, { fontSize: size }),
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, import_i18n11.__)("Custom", "elementor"),
960
- renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(import_icons8.PencilIcon, { fontSize: size }),
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, import_react7.useState)(getGroupControlValue(order));
1037
+ const [groupControlValue, setGroupControlValue] = (0, import_react8.useState)(getGroupControlValue(order?.value || null));
967
1038
  const handleToggleButtonChange = (group) => {
968
1039
  setGroupControlValue(group);
969
- const orderValueMap = {
970
- [FIRST]: FIRST_DEFAULT_VALUE,
971
- [LAST]: LAST_DEFAULT_VALUE,
972
- [CUSTOM]: null
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__ */ React28.createElement(import_ui21.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React28.createElement(import_ui21.ThemeProvider, null, /* @__PURE__ */ React28.createElement(import_ui21.Stack, { gap: 2 }, /* @__PURE__ */ React28.createElement(import_ui21.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React28.createElement(import_ui21.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React28.createElement(import_editor_controls17.ControlLabel, null, (0, import_i18n11.__)("Order", "elementor"))), /* @__PURE__ */ React28.createElement(import_ui21.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React28.createElement(
977
- import_editor_controls17.ControlToggleButtonGroup,
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__ */ React28.createElement(StylesField, { bind: "order" }, /* @__PURE__ */ React28.createElement(import_ui21.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React28.createElement(import_ui21.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React28.createElement(import_editor_controls17.ControlLabel, null, (0, import_i18n11.__)("Custom order", "elementor"))), /* @__PURE__ */ React28.createElement(import_ui21.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React28.createElement(
985
- import_editor_controls17.NumberControl,
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/justify-content-field.tsx
1004
- var React29 = __toESM(require("react"));
1005
- var import_editor_controls18 = require("@elementor/editor-controls");
1006
- var import_icons9 = require("@elementor/icons");
1007
- var import_ui22 = require("@elementor/ui");
1008
- var import_i18n12 = require("@wordpress/i18n");
1009
- var JustifyContentField = () => {
1010
- const options7 = useOptions3(), { isSiteRtl } = useDirection();
1011
- return /* @__PURE__ */ React29.createElement(import_ui22.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React29.createElement(import_ui22.ThemeProvider, null, /* @__PURE__ */ React29.createElement(StylesField, { bind: "justify-content" }, /* @__PURE__ */ React29.createElement(import_ui22.Stack, { gap: 1 }, /* @__PURE__ */ React29.createElement(import_editor_controls18.ControlLabel, null, (0, import_i18n12.__)("Justify Content", "elementor")), /* @__PURE__ */ React29.createElement(import_editor_controls18.ToggleControl, { options: options7, fullWidth: true })))));
1012
- };
1013
- var useOptions3 = () => {
1014
- const StartIcon = (0, import_ui22.withDirection)(import_icons9.JustifyTopIcon), EndIcon = (0, import_ui22.withDirection)(import_icons9.JustifyBottomIcon);
1015
- return [
1016
- {
1017
- value: "start",
1018
- label: (0, import_i18n12.__)("Start", "elementor"),
1019
- renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon2, { icon: StartIcon, size }),
1020
- showTooltip: true
1021
- },
1022
- {
1023
- value: "center",
1024
- label: (0, import_i18n12.__)("Center", "elementor"),
1025
- renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon2, { icon: import_icons9.JustifyCenterIcon, size }),
1026
- showTooltip: true
1027
- },
1028
- {
1029
- value: "end",
1030
- label: (0, import_i18n12.__)("End", "elementor"),
1031
- renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon2, { icon: EndIcon, size }),
1032
- showTooltip: true
1033
- },
1034
- {
1035
- value: "space-between",
1036
- label: (0, import_i18n12.__)("Space between", "elementor"),
1037
- renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon2, { icon: import_icons9.JustifySpaceBetweenVerticalIcon, size }),
1038
- showTooltip: true
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
- var RotatedIcon2 = ({ icon: Icon, size }) => {
1055
- const [direction] = useStylesField("flex-direction"), isRtl = "rtl" === (0, import_ui22.useTheme)().direction, rotationMultiplier = isRtl ? -1 : 1;
1056
- const rotationAngelMap = {
1057
- row: -90,
1058
- column: 0,
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__ */ React29.createElement(
1063
- Icon,
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
- fontSize: size,
1066
- sx: { transition: ".3s", rotate: `${rotationAngelMap[direction || "row"] * rotationMultiplier}deg` }
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 React30 = __toESM(require("react"));
1073
- var import_editor_controls19 = require("@elementor/editor-controls");
1074
- var import_icons10 = require("@elementor/icons");
1075
- var import_ui23 = require("@elementor/ui");
1076
- var import_i18n13 = require("@wordpress/i18n");
1077
- var options2 = [
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, import_i18n13.__)("No wrap", "elementor"),
1081
- renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(import_icons10.ArrowRightIcon, { fontSize: size }),
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, import_i18n13.__)("Wrap", "elementor"),
1087
- renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(import_icons10.ArrowBackIcon, { fontSize: size }),
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, import_i18n13.__)("Wrap reverse", "elementor"),
1093
- renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(import_icons10.ArrowForwardIcon, { fontSize: size }),
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__ */ React30.createElement(import_ui23.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React30.createElement(import_ui23.ThemeProvider, null, /* @__PURE__ */ React30.createElement(StylesField, { bind: "flex-wrap" }, /* @__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_controls19.ControlLabel, null, (0, import_i18n13.__)("Wrap", "elementor"))), /* @__PURE__ */ React30.createElement(import_ui23.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React30.createElement(import_editor_controls19.ToggleControl, { options: options2 }))))));
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__ */ React31.createElement(import_ui24.Stack, { gap: 2 }, /* @__PURE__ */ React31.createElement(DisplayField, null), "flex" === display && /* @__PURE__ */ React31.createElement(FlexFields, null));
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__ */ React31.createElement(React31.Fragment, null, /* @__PURE__ */ React31.createElement(FlexDirectionField, null), /* @__PURE__ */ React31.createElement(JustifyContentField, null), /* @__PURE__ */ React31.createElement(AlignItemsField, null), /* @__PURE__ */ React31.createElement(import_ui24.Divider, null), /* @__PURE__ */ React31.createElement(WrapField, null), /* @__PURE__ */ React31.createElement(import_ui24.Divider, null), /* @__PURE__ */ React31.createElement(import_editor_controls20.ControlLabel, null, (0, import_i18n14.__)("Flex child", "elementor")), /* @__PURE__ */ React31.createElement(FlexOrderField, null));
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 React35 = __toESM(require("react"));
1111
- var import_react10 = require("react");
1112
- var import_ui28 = require("@elementor/ui");
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 import_react9 = require("react");
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 import_react8 = require("react");
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, import_react8.useCallback)(() => {
1260
+ const getElementPropsHistory = (0, import_react9.useCallback)(() => {
1126
1261
  return (0, import_utils2.getSessionStorageItem)(elementKey);
1127
1262
  }, [elementKey]);
1128
- const getPropValue = (0, import_react8.useCallback)(
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, import_react8.useCallback)(
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, import_react8.useCallback)(
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, import_react8.useMemo)(() => ({ getPropValue, setPropValue, removeProp }), [getPropValue, removeProp, setPropValue]);
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, import_react9.useCallback)(() => {
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, import_react9.useCallback)(() => {
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, import_react9.useCallback)(() => {
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, import_react9.useMemo)(
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 React32 = __toESM(require("react"));
1217
- var import_editor_controls21 = require("@elementor/editor-controls");
1218
- var import_icons11 = require("@elementor/icons");
1219
- var import_ui25 = require("@elementor/ui");
1220
- var import_i18n15 = require("@wordpress/i18n");
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__ */ React32.createElement(import_icons11.SideLeftIcon, { fontSize: "tiny" }),
1223
- right: /* @__PURE__ */ React32.createElement(import_icons11.SideRightIcon, { fontSize: "tiny" }),
1224
- top: /* @__PURE__ */ React32.createElement(import_icons11.SideTopIcon, { fontSize: "tiny" }),
1225
- bottom: /* @__PURE__ */ React32.createElement(import_icons11.SideBottomIcon, { fontSize: "tiny" })
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__ */ React32.createElement(React32.Fragment, null, /* @__PURE__ */ React32.createElement(import_ui25.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React32.createElement(DimensionField, { side: "top", label: (0, import_i18n15.__)("Top", "elementor") }), /* @__PURE__ */ React32.createElement(DimensionField, { side: "right", label: (0, import_i18n15.__)("Right", "elementor") })), /* @__PURE__ */ React32.createElement(import_ui25.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React32.createElement(DimensionField, { side: "bottom", label: (0, import_i18n15.__)("Bottom", "elementor") }), /* @__PURE__ */ React32.createElement(DimensionField, { side: "left", label: (0, import_i18n15.__)("Left", "elementor") })));
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__ */ React32.createElement(import_ui25.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React32.createElement(import_ui25.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React32.createElement(import_editor_controls21.ControlLabel, null, label)), /* @__PURE__ */ React32.createElement(import_ui25.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React32.createElement(StylesField, { bind: side }, /* @__PURE__ */ React32.createElement(import_editor_controls21.SizeControl, { startIcon: sideIcons[side] }))));
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 React33 = __toESM(require("react"));
1236
- var import_editor_controls22 = require("@elementor/editor-controls");
1237
- var import_ui26 = require("@elementor/ui");
1238
- var import_i18n16 = require("@wordpress/i18n");
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, import_i18n16.__)("Static", "elementor"), value: "static" },
1241
- { label: (0, import_i18n16.__)("Relative", "elementor"), value: "relative" },
1242
- { label: (0, import_i18n16.__)("Absolute", "elementor"), value: "absolute" },
1243
- { label: (0, import_i18n16.__)("Fixed", "elementor"), value: "fixed" }
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__ */ React33.createElement(StylesField, { bind: "position" }, /* @__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_controls22.ControlLabel, null, (0, import_i18n16.__)("Position", "elementor"))), /* @__PURE__ */ React33.createElement(import_ui26.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React33.createElement(import_editor_controls22.SelectControl, { options: positionOptions }))));
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 React34 = __toESM(require("react"));
1251
- var import_editor_controls23 = require("@elementor/editor-controls");
1252
- var import_ui27 = require("@elementor/ui");
1253
- var import_i18n17 = require("@wordpress/i18n");
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__ */ React34.createElement(StylesField, { bind: "z-index" }, /* @__PURE__ */ React34.createElement(import_ui27.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React34.createElement(import_ui27.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React34.createElement(import_editor_controls23.ControlLabel, null, (0, import_i18n17.__)("Z-Index", "elementor"))), /* @__PURE__ */ React34.createElement(import_ui27.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React34.createElement(import_editor_controls23.NumberControl, null))));
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__ */ React35.createElement(import_ui28.Stack, { gap: 1.5 }, /* @__PURE__ */ React35.createElement(PositionField, null), isNotStatic ? /* @__PURE__ */ React35.createElement(React35.Fragment, null, /* @__PURE__ */ React35.createElement(DimensionsField, null), /* @__PURE__ */ React35.createElement(ZIndexField, null)) : null);
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, import_react10.useCallback)(
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 React37 = __toESM(require("react"));
1290
- var import_editor_controls25 = require("@elementor/editor-controls");
1291
- var import_ui30 = require("@elementor/ui");
1292
- var import_i18n19 = require("@wordpress/i18n");
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 React36 = __toESM(require("react"));
1296
- var import_editor_controls24 = require("@elementor/editor-controls");
1297
- var import_icons12 = require("@elementor/icons");
1298
- var import_ui29 = require("@elementor/ui");
1299
- var import_i18n18 = require("@wordpress/i18n");
1300
- var options3 = [
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, import_i18n18.__)("Visible", "elementor"),
1304
- renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(import_icons12.EyeIcon, { fontSize: size }),
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, import_i18n18.__)("Hidden", "elementor"),
1310
- renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(import_icons12.EyeOffIcon, { fontSize: size }),
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, import_i18n18.__)("Auto", "elementor"),
1316
- renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(import_icons12.ExpandBottomIcon, { fontSize: size }),
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__ */ React36.createElement(StylesField, { bind: "overflow" }, /* @__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.__)("Overflow", "elementor"))), /* @__PURE__ */ React36.createElement(import_ui29.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React36.createElement(import_editor_controls24.ToggleControl, { options: options3 }))));
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__ */ React37.createElement(import_ui30.Stack, { gap: 1.5 }, /* @__PURE__ */ React37.createElement(import_ui30.Grid, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React37.createElement(import_ui30.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(SizeField, { bind: "width", label: (0, import_i18n19.__)("Width", "elementor") })), /* @__PURE__ */ React37.createElement(import_ui30.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(SizeField, { bind: "height", label: (0, import_i18n19.__)("Height", "elementor") }))), /* @__PURE__ */ React37.createElement(import_ui30.Grid, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React37.createElement(import_ui30.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(SizeField, { bind: "min-width", label: (0, import_i18n19.__)("Min. Width", "elementor") })), /* @__PURE__ */ React37.createElement(import_ui30.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(SizeField, { bind: "min-height", label: (0, import_i18n19.__)("Min. Height", "elementor") }))), /* @__PURE__ */ React37.createElement(import_ui30.Grid, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React37.createElement(import_ui30.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(SizeField, { bind: "max-width", label: (0, import_i18n19.__)("Max. Width", "elementor") })), /* @__PURE__ */ React37.createElement(import_ui30.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(SizeField, { bind: "max-height", label: (0, import_i18n19.__)("Max. Height", "elementor") }))), /* @__PURE__ */ React37.createElement(import_ui30.Divider, null), /* @__PURE__ */ React37.createElement(import_ui30.Stack, null, /* @__PURE__ */ React37.createElement(OverflowField, null)));
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__ */ React37.createElement(StylesField, { bind }, /* @__PURE__ */ React37.createElement(import_ui30.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React37.createElement(import_ui30.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React37.createElement(import_editor_controls25.ControlLabel, null, label)), /* @__PURE__ */ React37.createElement(import_ui30.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React37.createElement(import_editor_controls25.SizeControl, null))));
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 React38 = __toESM(require("react"));
1334
- var import_editor_controls26 = require("@elementor/editor-controls");
1335
- var import_ui31 = require("@elementor/ui");
1336
- var import_i18n20 = require("@wordpress/i18n");
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__ */ React38.createElement(import_ui31.Stack, { gap: 1.5 }, /* @__PURE__ */ React38.createElement(StylesField, { bind: "padding" }, /* @__PURE__ */ React38.createElement(import_editor_controls26.LinkedDimensionsControl, { label: (0, import_i18n20.__)("Padding", "elementor") })), /* @__PURE__ */ React38.createElement(import_ui31.Divider, null), /* @__PURE__ */ React38.createElement(StylesField, { bind: "margin" }, /* @__PURE__ */ React38.createElement(import_editor_controls26.LinkedDimensionsControl, { label: (0, import_i18n20.__)("Margin", "elementor") })));
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 React51 = __toESM(require("react"));
1343
- var import_ui43 = require("@elementor/ui");
1477
+ var React55 = __toESM(require("react"));
1478
+ var import_ui47 = require("@elementor/ui");
1344
1479
 
1345
1480
  // src/components/collapsible-content.tsx
1346
- var React39 = __toESM(require("react"));
1347
- var import_react11 = require("react");
1348
- var import_ui32 = require("@elementor/ui");
1349
- var import_i18n21 = require("@wordpress/i18n");
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, import_react11.useState)(defaultOpen);
1486
+ const [open, setOpen] = (0, import_react12.useState)(defaultOpen);
1352
1487
  const handleToggle = () => {
1353
1488
  setOpen((prevOpen) => !prevOpen);
1354
1489
  };
1355
- return /* @__PURE__ */ React39.createElement(import_ui32.Stack, { sx: { py: 0.5 } }, /* @__PURE__ */ React39.createElement(
1356
- import_ui32.Button,
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__ */ React39.createElement(CollapseIcon, { open })
1498
+ endIcon: /* @__PURE__ */ React42.createElement(CollapseIcon, { open })
1364
1499
  },
1365
- open ? (0, import_i18n21.__)("Show less", "elementor") : (0, import_i18n21.__)("Show more", "elementor")
1366
- ), /* @__PURE__ */ React39.createElement(import_ui32.Collapse, { in: open, timeout: "auto", unmountOnExit: true }, children));
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 React40 = __toESM(require("react"));
1371
- var import_editor_controls27 = require("@elementor/editor-controls");
1372
- var import_ui33 = require("@elementor/ui");
1373
- var import_i18n22 = require("@wordpress/i18n");
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__ */ React40.createElement(StylesField, { bind: "font-family" }, /* @__PURE__ */ React40.createElement(import_ui33.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React40.createElement(import_ui33.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(import_editor_controls27.ControlLabel, null, (0, import_i18n22.__)("Font Family", "elementor"))), /* @__PURE__ */ React40.createElement(import_ui33.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(import_editor_controls27.FontFamilyControl, { fontFamilies }))));
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 options7 = controls?.font?.options;
1392
- if (!options7) {
1526
+ const options10 = controls?.font?.options;
1527
+ if (!options10) {
1393
1528
  return null;
1394
1529
  }
1395
- return options7;
1530
+ return options10;
1396
1531
  };
1397
1532
 
1398
1533
  // src/components/style-sections/typography-section/font-size-field.tsx
1399
- var React41 = __toESM(require("react"));
1400
- var import_editor_controls28 = require("@elementor/editor-controls");
1401
- var import_ui34 = require("@elementor/ui");
1402
- var import_i18n23 = require("@wordpress/i18n");
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__ */ React41.createElement(StylesField, { bind: "font-size" }, /* @__PURE__ */ React41.createElement(import_ui34.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React41.createElement(import_ui34.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(import_editor_controls28.ControlLabel, null, (0, import_i18n23.__)("Font Size", "elementor"))), /* @__PURE__ */ React41.createElement(import_ui34.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(import_editor_controls28.SizeControl, null))));
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 React42 = __toESM(require("react"));
1409
- var import_editor_controls29 = require("@elementor/editor-controls");
1410
- var import_ui35 = require("@elementor/ui");
1411
- var import_i18n24 = require("@wordpress/i18n");
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, import_i18n24.__)("Light - 400", "elementor"), value: "400" },
1414
- { label: (0, import_i18n24.__)("Regular - 500", "elementor"), value: "500" },
1415
- { label: (0, import_i18n24.__)("Semi Bold - 600", "elementor"), value: "600" },
1416
- { label: (0, import_i18n24.__)("Bold - 700", "elementor"), value: "700" },
1417
- { label: (0, import_i18n24.__)("Black - 900", "elementor"), value: "900" }
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__ */ React42.createElement(StylesField, { bind: "font-weight" }, /* @__PURE__ */ React42.createElement(import_ui35.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React42.createElement(import_ui35.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(import_editor_controls29.ControlLabel, null, (0, import_i18n24.__)("Font Weight", "elementor"))), /* @__PURE__ */ React42.createElement(import_ui35.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(import_editor_controls29.SelectControl, { options: fontWeightOptions }))));
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 React43 = __toESM(require("react"));
1425
- var import_editor_controls30 = require("@elementor/editor-controls");
1426
- var import_ui36 = require("@elementor/ui");
1427
- var import_i18n25 = require("@wordpress/i18n");
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__ */ React43.createElement(StylesField, { bind: "letter-spacing" }, /* @__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_controls30.ControlLabel, null, (0, import_i18n25.__)("Letter Spacing", "elementor"))), /* @__PURE__ */ React43.createElement(import_ui36.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React43.createElement(import_editor_controls30.SizeControl, null))));
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 React44 = __toESM(require("react"));
1434
- var import_editor_controls31 = require("@elementor/editor-controls");
1435
- var import_icons13 = require("@elementor/icons");
1436
- var import_ui37 = require("@elementor/ui");
1437
- var import_i18n26 = require("@wordpress/i18n");
1438
- var options4 = [
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, import_i18n26.__)("Left", "elementor"),
1442
- renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(import_icons13.AlignLeftIcon, { fontSize: size })
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, import_i18n26.__)("Center", "elementor"),
1447
- renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(import_icons13.AlignCenterIcon, { fontSize: size })
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, import_i18n26.__)("Right", "elementor"),
1452
- renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(import_icons13.AlignRightIcon, { fontSize: size })
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, import_i18n26.__)("Justify", "elementor"),
1457
- renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(import_icons13.AlignJustifiedIcon, { fontSize: size })
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__ */ React44.createElement(StylesField, { bind: "text-align" }, /* @__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_controls31.ControlLabel, null, (0, import_i18n26.__)("Alignment", "elementor"))), /* @__PURE__ */ React44.createElement(import_ui37.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React44.createElement(import_editor_controls31.ToggleControl, { options: options4 }))));
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 React45 = __toESM(require("react"));
1466
- var import_editor_controls32 = require("@elementor/editor-controls");
1467
- var import_ui38 = require("@elementor/ui");
1468
- var import_i18n27 = require("@wordpress/i18n");
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__ */ React45.createElement(StylesField, { bind: "color" }, /* @__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_controls32.ControlLabel, null, (0, import_i18n27.__)("Text Color", "elementor"))), /* @__PURE__ */ React45.createElement(import_ui38.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React45.createElement(import_editor_controls32.ColorControl, null))));
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 React46 = __toESM(require("react"));
1475
- var import_editor_controls33 = require("@elementor/editor-controls");
1476
- var import_icons14 = require("@elementor/icons");
1477
- var import_ui39 = require("@elementor/ui");
1478
- var import_i18n28 = require("@wordpress/i18n");
1479
- var options5 = [
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, import_i18n28.__)("Left to Right", "elementor"),
1483
- renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(import_icons14.TextDirectionLtrIcon, { fontSize: size })
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, import_i18n28.__)("Right to Left", "elementor"),
1488
- renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(import_icons14.TextDirectionRtlIcon, { fontSize: size })
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__ */ React46.createElement(StylesField, { bind: "direction" }, /* @__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_controls33.ControlLabel, null, (0, import_i18n28.__)("Direction", "elementor"))), /* @__PURE__ */ React46.createElement(import_ui39.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React46.createElement(import_editor_controls33.ToggleControl, { options: options5 }))));
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 React47 = __toESM(require("react"));
1497
- var import_editor_controls34 = require("@elementor/editor-controls");
1498
- var import_i18n29 = require("@wordpress/i18n");
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__ */ React47.createElement(
1668
+ return /* @__PURE__ */ React51.createElement(
1525
1669
  AddOrRemoveContent,
1526
1670
  {
1527
- label: (0, import_i18n29.__)("Text Stroke", "elementor"),
1671
+ label: (0, import_i18n32.__)("Text Stroke", "elementor"),
1528
1672
  isAdded: hasTextStroke,
1529
1673
  onAdd: addTextStroke,
1530
1674
  onRemove: removeTextStroke
1531
1675
  },
1532
- /* @__PURE__ */ React47.createElement(StylesField, { bind: "-webkit-text-stroke" }, /* @__PURE__ */ React47.createElement(import_editor_controls34.StrokeControl, null))
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 React48 = __toESM(require("react"));
1538
- var import_editor_controls35 = require("@elementor/editor-controls");
1539
- var import_icons15 = require("@elementor/icons");
1540
- var import_ui40 = require("@elementor/ui");
1541
- var import_i18n30 = require("@wordpress/i18n");
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
- return /* @__PURE__ */ React48.createElement(import_ui40.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React48.createElement(import_ui40.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React48.createElement(import_editor_controls35.ControlLabel, null, (0, import_i18n30.__)("Style", "elementor"))), /* @__PURE__ */ React48.createElement(import_ui40.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React48.createElement(import_ui40.ToggleButtonGroup, { value: formats }, /* @__PURE__ */ React48.createElement(
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) => setFontStyle(fontStyle === v ? null : v),
1713
+ onChange: (v) => handleSetFontStyle(fontStyle?.value === v ? null : v),
1552
1714
  "aria-label": "italic",
1553
1715
  sx: { marginLeft: "auto" }
1554
1716
  },
1555
- /* @__PURE__ */ React48.createElement(import_icons15.ItalicIcon, { fontSize: buttonSize })
1556
- ), /* @__PURE__ */ React48.createElement(
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: setTextDecoration,
1722
+ currentValues: textDecoration?.value || "",
1723
+ updateValues: handleSetTextDecoration,
1562
1724
  "aria-label": "line-through"
1563
1725
  },
1564
- /* @__PURE__ */ React48.createElement(import_icons15.StrikethroughIcon, { fontSize: buttonSize })
1565
- ), /* @__PURE__ */ React48.createElement(
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: setTextDecoration,
1731
+ currentValues: textDecoration?.value || "",
1732
+ updateValues: handleSetTextDecoration,
1571
1733
  "aria-label": "underline"
1572
1734
  },
1573
- /* @__PURE__ */ React48.createElement(import_icons15.UnderlineIcon, { fontSize: buttonSize })
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__ */ React48.createElement(ToggleButton, { value, onChange: toggleValue, selected, "aria-label": ariaLabel }, children);
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__ */ React48.createElement(import_ui40.ToggleButton, { ...props, onChange: handleChange, size: buttonSize });
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 React49 = __toESM(require("react"));
1603
- var import_editor_controls36 = require("@elementor/editor-controls");
1604
- var import_icons16 = require("@elementor/icons");
1605
- var import_ui41 = require("@elementor/ui");
1606
- var import_i18n31 = require("@wordpress/i18n");
1607
- var options6 = [
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, import_i18n31.__)("Capitalize", "elementor"),
1611
- renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(import_icons16.LetterCaseIcon, { fontSize: size })
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, import_i18n31.__)("Uppercase", "elementor"),
1616
- renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(import_icons16.LetterCaseUpperIcon, { fontSize: size })
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, import_i18n31.__)("Lowercase", "elementor"),
1621
- renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(import_icons16.LetterCaseLowerIcon, { fontSize: size })
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__ */ React49.createElement(StylesField, { bind: "text-transform" }, /* @__PURE__ */ React49.createElement(import_ui41.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React49.createElement(import_ui41.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(import_editor_controls36.ControlLabel, null, (0, import_i18n31.__)("Transform", "elementor"))), /* @__PURE__ */ React49.createElement(import_ui41.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React49.createElement(import_editor_controls36.ToggleControl, { options: options6 }))));
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 React50 = __toESM(require("react"));
1628
- var import_editor_controls37 = require("@elementor/editor-controls");
1629
- var import_ui42 = require("@elementor/ui");
1630
- var import_i18n32 = require("@wordpress/i18n");
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__ */ React50.createElement(StylesField, { bind: "word-spacing" }, /* @__PURE__ */ React50.createElement(import_ui42.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React50.createElement(import_ui42.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React50.createElement(import_editor_controls37.ControlLabel, null, (0, import_i18n32.__)("Word Spacing", "elementor"))), /* @__PURE__ */ React50.createElement(import_ui42.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React50.createElement(import_editor_controls37.SizeControl, null))));
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__ */ React51.createElement(import_ui43.Stack, { gap: 1.5 }, /* @__PURE__ */ React51.createElement(FontFamilyField, null), /* @__PURE__ */ React51.createElement(FontWeightField, null), /* @__PURE__ */ React51.createElement(FontSizeField, null), /* @__PURE__ */ React51.createElement(import_ui43.Divider, null), /* @__PURE__ */ React51.createElement(TextColorField, null), /* @__PURE__ */ React51.createElement(CollapsibleContent, null, /* @__PURE__ */ React51.createElement(import_ui43.Stack, { gap: 1.5, sx: { pt: 1.5 } }, /* @__PURE__ */ React51.createElement(LetterSpacingField, null), /* @__PURE__ */ React51.createElement(WordSpacingField, null), /* @__PURE__ */ React51.createElement(import_ui43.Divider, null), /* @__PURE__ */ React51.createElement(TextAlignmentField, null), /* @__PURE__ */ React51.createElement(TextStyleField, null), /* @__PURE__ */ React51.createElement(TransformField, null), /* @__PURE__ */ React51.createElement(TextDirectionField, null), /* @__PURE__ */ React51.createElement(TextStrokeField, null))));
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__ */ React52.createElement(ClassesPropProvider, { prop: currentClassesProp }, /* @__PURE__ */ React52.createElement(StyleProvider, { meta: { breakpoint, state: null }, id: activeStyleDefId, setId: setActiveStyleDefId }, /* @__PURE__ */ React52.createElement(CssClassSelector, null), /* @__PURE__ */ React52.createElement(import_ui44.Divider, null), /* @__PURE__ */ React52.createElement(SectionsList, null, /* @__PURE__ */ React52.createElement(Section, { title: (0, import_i18n33.__)("Layout", "elementor") }, /* @__PURE__ */ React52.createElement(LayoutSection, null)), /* @__PURE__ */ React52.createElement(Section, { title: (0, import_i18n33.__)("Spacing", "elementor") }, /* @__PURE__ */ React52.createElement(SpacingSection, null)), /* @__PURE__ */ React52.createElement(Section, { title: (0, import_i18n33.__)("Size", "elementor") }, /* @__PURE__ */ React52.createElement(SizeSection, null)), /* @__PURE__ */ React52.createElement(Section, { title: (0, import_i18n33.__)("Position", "elementor") }, /* @__PURE__ */ React52.createElement(PositionSection, null)), /* @__PURE__ */ React52.createElement(Section, { title: (0, import_i18n33.__)("Typography", "elementor") }, /* @__PURE__ */ React52.createElement(TypographySection, null)), /* @__PURE__ */ React52.createElement(Section, { title: (0, import_i18n33.__)("Background", "elementor") }, /* @__PURE__ */ React52.createElement(BackgroundSection, null)), /* @__PURE__ */ React52.createElement(Section, { title: (0, import_i18n33.__)("Border", "elementor") }, /* @__PURE__ */ React52.createElement(BorderSection, null)), /* @__PURE__ */ React52.createElement(Section, { title: (0, import_i18n33.__)("Effects", "elementor") }, /* @__PURE__ */ React52.createElement(EffectsSection, null)))));
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, import_react12.useState)(null);
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, import_ui45.useTabs)("settings");
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__ */ React53.createElement(import_react13.Fragment, { key: element.id }, /* @__PURE__ */ React53.createElement(import_ui45.Stack, { direction: "column", sx: { width: "100%" } }, /* @__PURE__ */ React53.createElement(import_ui45.Tabs, { variant: "fullWidth", indicatorColor: "secondary", textColor: "inherit", ...getTabsProps() }, /* @__PURE__ */ React53.createElement(import_ui45.Tab, { label: (0, import_i18n34.__)("General", "elementor"), ...getTabProps("settings") }), /* @__PURE__ */ React53.createElement(import_ui45.Tab, { label: (0, import_i18n34.__)("Style", "elementor"), ...getTabProps("style") })), /* @__PURE__ */ React53.createElement(import_ui45.Divider, null), /* @__PURE__ */ React53.createElement(import_ui45.TabPanel, { ...getTabPanelProps("settings"), disablePadding: true }, /* @__PURE__ */ React53.createElement(SettingsTab, null)), /* @__PURE__ */ React53.createElement(import_ui45.TabPanel, { ...getTabPanelProps("style"), disablePadding: true }, /* @__PURE__ */ React53.createElement(StyleTab, null))))
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, import_i18n35.__)("Edit %s", "elementor").replace("%s", elementType.title);
1697
- return /* @__PURE__ */ React54.createElement(import_ui46.ErrorBoundary, { fallback: /* @__PURE__ */ React54.createElement(EditorPanelErrorFallback, null) }, /* @__PURE__ */ React54.createElement(import_editor_panels.Panel, null, /* @__PURE__ */ React54.createElement(import_editor_panels.PanelHeader, null, /* @__PURE__ */ React54.createElement(import_editor_panels.PanelHeaderTitle, null, panelTitle)), /* @__PURE__ */ React54.createElement(import_editor_panels.PanelBody, null, /* @__PURE__ */ React54.createElement(import_editor_controls38.ControlActionsProvider, { items: menuItems }, /* @__PURE__ */ React54.createElement(import_editor_controls38.ControlReplacementProvider, { ...controlReplacement }, /* @__PURE__ */ React54.createElement(ElementProvider, { element, elementType }, /* @__PURE__ */ React54.createElement(EditingPanelTabs, null)))))));
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, import_react14.useEffect)(() => {
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 import_react15 = require("react");
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, import_react15.useEffect)(() => {
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 React57 = __toESM(require("react"));
1755
- var import_react19 = require("react");
1756
- var import_editor_controls41 = require("@elementor/editor-controls");
1757
- var import_icons18 = require("@elementor/icons");
1758
- var import_ui48 = require("@elementor/ui");
1759
- var import_i18n37 = require("@wordpress/i18n");
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 React55 = __toESM(require("react"));
1763
- var import_editor_controls39 = require("@elementor/editor-controls");
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 import_react17 = require("react");
1929
+ var import_react18 = require("react");
1767
1930
 
1768
1931
  // src/dynamics/hooks/use-prop-dynamic-tags.ts
1769
- var import_react16 = require("react");
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 import_editor_props2 = require("@elementor/editor-props");
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, import_editor_props2.isTransformable)(prop) && prop.$$type === DYNAMIC_PROP_TYPE_KEY;
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, import_react16.useMemo)(() => getDynamicTagsByCategories(categories), [categories.join()]);
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, import_react17.useMemo)(() => dynamicTags.find((tag) => tag.name === tagName) ?? null, [dynamicTags, tagName]);
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, import_editor_controls39.useBoundProp)();
1835
- const { name = "", settings } = value?.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
- $$type: "dynamic",
1845
- value: {
1846
- name,
1847
- settings: {
1848
- ...settings,
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__ */ React55.createElement(import_editor_controls39.BoundPropProvider, { setValue: setDynamicValue, value: dynamicValue, bind }, children);
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 React56 = __toESM(require("react"));
1859
- var import_react18 = require("react");
1860
- var import_editor_controls40 = require("@elementor/editor-controls");
1861
- var import_icons17 = require("@elementor/icons");
1862
- var import_ui47 = require("@elementor/ui");
1863
- var import_i18n36 = require("@wordpress/i18n");
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, import_react18.useState)("");
2035
+ const [searchValue, setSearchValue] = (0, import_react19.useState)("");
1867
2036
  const { groups: dynamicGroups } = getAtomicDynamicTags() || {};
1868
- const { bind, value: currentValue, setValue } = (0, import_editor_controls40.useBoundProp)();
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 = isDynamicPropValue(currentValue);
1871
- const options7 = useFilteredOptions(bind, searchValue);
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, currentValue);
2047
+ updatePropValueHistory(bind, anyValue);
1878
2048
  }
1879
- setValue({ $$type: "dynamic", value: { name: value, settings: {} } });
2049
+ setValue({ name: value, settings: {} });
1880
2050
  onSelect?.();
1881
2051
  };
1882
- return /* @__PURE__ */ React56.createElement(import_ui47.Stack, null, /* @__PURE__ */ React56.createElement(import_ui47.Box, { px: 1.5, pb: 1 }, /* @__PURE__ */ React56.createElement(
1883
- import_ui47.TextField,
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, import_i18n36.__)("Search dynamic tag", "elementor"),
2059
+ placeholder: (0, import_i18n39.__)("Search dynamic tag", "elementor"),
1890
2060
  InputProps: {
1891
- startAdornment: /* @__PURE__ */ React56.createElement(import_ui47.InputAdornment, { position: "start" }, /* @__PURE__ */ React56.createElement(import_icons17.SearchIcon, { fontSize: SIZE3 }))
2061
+ startAdornment: /* @__PURE__ */ React60.createElement(import_ui51.InputAdornment, { position: "start" }, /* @__PURE__ */ React60.createElement(import_icons19.SearchIcon, { fontSize: SIZE3 }))
1892
2062
  }
1893
2063
  }
1894
- )), /* @__PURE__ */ React56.createElement(import_ui47.Divider, null), /* @__PURE__ */ React56.createElement(import_ui47.Box, { sx: { overflowY: "auto", height: 260, width: 220 } }, options7.length > 0 ? /* @__PURE__ */ React56.createElement(import_ui47.MenuList, { role: "listbox", tabIndex: 0 }, options7.map(([category, items2], index) => /* @__PURE__ */ React56.createElement(import_react18.Fragment, { key: index }, /* @__PURE__ */ React56.createElement(import_ui47.ListSubheader, { sx: { typography: "caption", color: "text.tertiary" } }, dynamicGroups?.[category]?.title || category), items2.map(({ value, label: tagLabel }) => {
1895
- const isSelected = isCurrentValueDynamic && value === currentValue?.value?.name;
1896
- return /* @__PURE__ */ React56.createElement(
1897
- import_ui47.MenuItem,
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__ */ React56.createElement(import_ui47.Stack, { alignItems: "center", p: 2.5, gap: 1.5 }, /* @__PURE__ */ React56.createElement(import_icons17.PhotoIcon, { fontSize: "large" }), /* @__PURE__ */ React56.createElement(import_ui47.Typography, { align: "center", variant: "caption", color: "text.secondary" }, (0, import_i18n36.__)("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React56.createElement("br", null), "\u201C", searchValue, "\u201D."), /* @__PURE__ */ React56.createElement(import_ui47.Typography, { align: "center", variant: "caption", color: "text.secondary" }, /* @__PURE__ */ React56.createElement(
1908
- import_ui47.Link,
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, import_i18n36.__)("Clear the filters", "elementor")
1916
- ), "\xA0", (0, import_i18n36.__)("and try again.", "elementor")))));
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 options7 = dynamicTags.reduce((categories, { name, label, group }) => {
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 [...options7];
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 { bind, value, setValue } = (0, import_editor_controls41.useBoundProp)();
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?.value || {};
1940
- const selectionPopoverId = (0, import_react19.useId)();
1941
- const selectionPopoverState = (0, import_ui48.usePopupState)({ variant: "popover", popupId: selectionPopoverId });
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
- setValue(propValue ?? null);
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__ */ React57.createElement(import_ui48.Box, null, /* @__PURE__ */ React57.createElement(
1951
- import_ui48.UnstableTag,
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__ */ React57.createElement(import_icons18.DatabaseIcon, { fontSize: SIZE4 }),
1957
- ...(0, import_ui48.bindTrigger)(selectionPopoverState),
1958
- actions: /* @__PURE__ */ React57.createElement(React57.Fragment, null, /* @__PURE__ */ React57.createElement(DynamicSettingsPopover, { dynamicTag }), /* @__PURE__ */ React57.createElement(
1959
- import_ui48.IconButton,
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, import_i18n37.__)("Remove dynamic value", "elementor")
2134
+ "aria-label": (0, import_i18n40.__)("Remove dynamic value", "elementor")
1964
2135
  },
1965
- /* @__PURE__ */ React57.createElement(import_icons18.XIcon, { fontSize: SIZE4 })
2136
+ /* @__PURE__ */ React61.createElement(import_icons20.XIcon, { fontSize: SIZE4 })
1966
2137
  ))
1967
2138
  }
1968
- ), /* @__PURE__ */ React57.createElement(
1969
- import_ui48.Popover,
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, import_ui48.bindPopover)(selectionPopoverState)
2145
+ ...(0, import_ui52.bindPopover)(selectionPopoverState)
1975
2146
  },
1976
- /* @__PURE__ */ React57.createElement(import_ui48.Stack, null, /* @__PURE__ */ React57.createElement(import_ui48.Stack, { direction: "row", alignItems: "center", pl: 1.5, pr: 0.5, py: 1.5 }, /* @__PURE__ */ React57.createElement(import_icons18.DatabaseIcon, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React57.createElement(import_ui48.Typography, { variant: "subtitle2" }, (0, import_i18n37.__)("Dynamic Tags", "elementor")), /* @__PURE__ */ React57.createElement(import_ui48.IconButton, { size: SIZE4, sx: { ml: "auto" }, onClick: selectionPopoverState.close }, /* @__PURE__ */ React57.createElement(import_icons18.XIcon, { fontSize: SIZE4 }))), /* @__PURE__ */ React57.createElement(DynamicSelection, { onSelect: selectionPopoverState.close }))
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, import_react19.useId)();
1981
- const settingsPopupState = (0, import_ui48.usePopupState)({ variant: "popover", popupId });
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__ */ React57.createElement(React57.Fragment, null, /* @__PURE__ */ React57.createElement(
1987
- import_ui48.IconButton,
2157
+ return /* @__PURE__ */ React61.createElement(React61.Fragment, null, /* @__PURE__ */ React61.createElement(
2158
+ import_ui52.IconButton,
1988
2159
  {
1989
2160
  size: SIZE4,
1990
- ...(0, import_ui48.bindTrigger)(settingsPopupState),
1991
- "aria-label": (0, import_i18n37.__)("Settings", "elementor")
2161
+ ...(0, import_ui52.bindTrigger)(settingsPopupState),
2162
+ "aria-label": (0, import_i18n40.__)("Settings", "elementor")
1992
2163
  },
1993
- /* @__PURE__ */ React57.createElement(import_icons18.SettingsIcon, { fontSize: SIZE4 })
1994
- ), /* @__PURE__ */ React57.createElement(
1995
- import_ui48.Popover,
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, import_ui48.bindPopover)(settingsPopupState)
2170
+ ...(0, import_ui52.bindPopover)(settingsPopupState)
2000
2171
  },
2001
- /* @__PURE__ */ React57.createElement(import_ui48.Paper, { component: import_ui48.Stack, sx: { minHeight: "300px", width: "220px" } }, /* @__PURE__ */ React57.createElement(import_ui48.Stack, { direction: "row", alignItems: "center", px: 1.5, pt: 2, pb: 1 }, /* @__PURE__ */ React57.createElement(import_icons18.DatabaseIcon, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React57.createElement(import_ui48.Typography, { variant: "subtitle2" }, dynamicTag.label), /* @__PURE__ */ React57.createElement(import_ui48.IconButton, { sx: { ml: "auto" }, size: SIZE4, onClick: settingsPopupState.close }, /* @__PURE__ */ React57.createElement(import_icons18.XIcon, { fontSize: SIZE4 }))), /* @__PURE__ */ React57.createElement(DynamicSettings, { controls: dynamicTag.atomic_controls }))
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, import_ui48.useTabs)(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__ */ React57.createElement(React57.Fragment, null, /* @__PURE__ */ React57.createElement(import_ui48.Tabs, { indicatorColor: "secondary", textColor: "secondary", ...getTabsProps() }, tabs.map(({ value }, index) => /* @__PURE__ */ React57.createElement(import_ui48.Tab, { key: index, label: value.label, sx: { px: 1, py: 0.5 }, ...getTabProps(index) }))), /* @__PURE__ */ React57.createElement(import_ui48.Divider, null), tabs.map(({ value }, index) => {
2011
- return /* @__PURE__ */ React57.createElement(import_ui48.TabPanel, { key: index, sx: { flexGrow: 1 }, ...getTabPanelProps(index) }, /* @__PURE__ */ React57.createElement(import_ui48.Stack, { gap: 1, px: 2 }, value.items.map((item) => {
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__ */ React57.createElement(Control3, { key: item.value.bind, control: item.value });
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__ */ React57.createElement(DynamicControl, { bind: control.bind }, control.label ? /* @__PURE__ */ React57.createElement(import_editor_controls41.ControlLabel, null, control.label) : null, /* @__PURE__ */ React57.createElement(Control, { type: control.type, props: control.props }));
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 React58 = __toESM(require("react"));
2028
- var import_editor_controls42 = require("@elementor/editor-controls");
2029
- var import_icons19 = require("@elementor/icons");
2030
- var import_i18n38 = require("@wordpress/i18n");
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, import_editor_controls42.useBoundProp)();
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: import_icons19.DatabaseIcon,
2039
- title: (0, import_i18n38.__)("Dynamic Tags", "elementor"),
2040
- popoverContent: ({ closePopover }) => /* @__PURE__ */ React58.createElement(DynamicSelection, { onSelect: closePopover })
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