@elementor/editor-editing-panel 1.45.0 → 1.47.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 (86) hide show
  1. package/CHANGELOG.md +90 -0
  2. package/dist/index.d.mts +22 -4
  3. package/dist/index.d.ts +22 -4
  4. package/dist/index.js +1187 -1051
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.mjs +1027 -893
  7. package/dist/index.mjs.map +1 -1
  8. package/package.json +18 -17
  9. package/src/components/css-classes/css-class-menu.tsx +6 -8
  10. package/src/components/css-classes/css-class-selector.tsx +17 -11
  11. package/src/components/popover-scrollable-content.tsx +12 -0
  12. package/src/components/section-content.tsx +6 -16
  13. package/src/components/section.tsx +8 -4
  14. package/src/components/settings-tab.tsx +30 -4
  15. package/src/components/style-indicator.tsx +19 -15
  16. package/src/components/style-sections/background-section/background-section.tsx +4 -1
  17. package/src/components/style-sections/border-section/border-color-field.tsx +10 -16
  18. package/src/components/style-sections/border-section/border-field.tsx +4 -6
  19. package/src/components/style-sections/border-section/border-radius-field.tsx +4 -2
  20. package/src/components/style-sections/border-section/border-style-field.tsx +11 -16
  21. package/src/components/style-sections/border-section/border-width-field.tsx +4 -2
  22. package/src/components/style-sections/effects-section/effects-section.tsx +22 -2
  23. package/src/components/style-sections/layout-section/align-content-field.tsx +11 -12
  24. package/src/components/style-sections/layout-section/align-items-field.tsx +8 -11
  25. package/src/components/style-sections/layout-section/align-self-child-field.tsx +11 -16
  26. package/src/components/style-sections/layout-section/display-field.tsx +6 -6
  27. package/src/components/style-sections/layout-section/flex-direction-field.tsx +11 -14
  28. package/src/components/style-sections/layout-section/flex-order-field.tsx +32 -37
  29. package/src/components/style-sections/layout-section/flex-size-field.tsx +35 -58
  30. package/src/components/style-sections/layout-section/gap-control-field.tsx +5 -6
  31. package/src/components/style-sections/layout-section/justify-content-field.tsx +11 -12
  32. package/src/components/style-sections/layout-section/layout-section.tsx +2 -2
  33. package/src/components/style-sections/layout-section/opacity-control-field.tsx +21 -0
  34. package/src/components/style-sections/layout-section/utils/rotated-icon.tsx +1 -1
  35. package/src/components/style-sections/layout-section/wrap-field.tsx +10 -14
  36. package/src/components/style-sections/position-section/dimensions-field.tsx +4 -4
  37. package/src/components/style-sections/position-section/offset-field.tsx +12 -14
  38. package/src/components/style-sections/position-section/position-field.tsx +7 -11
  39. package/src/components/style-sections/position-section/position-section.tsx +6 -6
  40. package/src/components/style-sections/position-section/z-index-field.tsx +7 -11
  41. package/src/components/style-sections/size-section/object-fit-field.tsx +7 -11
  42. package/src/components/style-sections/size-section/object-position-field.tsx +4 -23
  43. package/src/components/style-sections/size-section/overflow-field.tsx +7 -11
  44. package/src/components/style-sections/size-section/size-section.tsx +10 -8
  45. package/src/components/style-sections/spacing-section/spacing-section.tsx +7 -4
  46. package/src/components/style-sections/typography-section/column-count-field.tsx +7 -11
  47. package/src/components/style-sections/typography-section/column-gap-field.tsx +9 -13
  48. package/src/components/style-sections/typography-section/font-family-field.tsx +9 -11
  49. package/src/components/style-sections/typography-section/font-size-field.tsx +9 -13
  50. package/src/components/style-sections/typography-section/font-style-field.tsx +13 -13
  51. package/src/components/style-sections/typography-section/font-weight-field.tsx +7 -11
  52. package/src/components/style-sections/typography-section/letter-spacing-field.tsx +9 -13
  53. package/src/components/style-sections/typography-section/line-height-field.tsx +9 -13
  54. package/src/components/style-sections/typography-section/text-alignment-field.tsx +11 -14
  55. package/src/components/style-sections/typography-section/text-color-field.tsx +7 -11
  56. package/src/components/style-sections/typography-section/text-decoration-field.tsx +7 -11
  57. package/src/components/style-sections/typography-section/text-direction-field.tsx +7 -11
  58. package/src/components/style-sections/typography-section/text-stroke-field.tsx +8 -8
  59. package/src/components/style-sections/typography-section/transform-field.tsx +7 -11
  60. package/src/components/style-sections/typography-section/typography-section.tsx +4 -2
  61. package/src/components/style-sections/typography-section/word-spacing-field.tsx +9 -13
  62. package/src/components/styles-field-layout.tsx +50 -0
  63. package/src/contexts/section-context.tsx +14 -0
  64. package/src/controls-registry/control-type-container.tsx +6 -2
  65. package/src/controls-registry/controls-registry.tsx +30 -10
  66. package/src/controls-registry/settings-field.tsx +65 -6
  67. package/src/controls-registry/styles-field.tsx +11 -5
  68. package/src/dynamics/components/dynamic-selection-control.tsx +20 -22
  69. package/src/dynamics/components/dynamic-selection.tsx +64 -79
  70. package/src/dynamics/hooks/use-prop-dynamic-action.tsx +1 -1
  71. package/src/hooks/use-default-panel-settings.ts +4 -0
  72. package/src/hooks/use-styles-field.ts +9 -3
  73. package/src/hooks/use-styles-fields.ts +4 -4
  74. package/src/index.ts +5 -0
  75. package/src/popover-action.tsx +11 -6
  76. package/src/provider-colors-registry.ts +20 -0
  77. package/src/styles-inheritance/components/infotip/label-chip.tsx +4 -5
  78. package/src/styles-inheritance/components/styles-inheritance-indicator.tsx +36 -41
  79. package/src/styles-inheritance/components/styles-inheritance-infotip.tsx +10 -24
  80. package/src/styles-inheritance/components/styles-inheritance-section-indicators.tsx +29 -44
  81. package/src/styles-inheritance/hooks/use-normalized-inheritance-chain-items.tsx +1 -17
  82. package/src/styles-inheritance/types.ts +0 -2
  83. package/src/styles-inheritance/utils.ts +17 -1
  84. package/src/sync/experiments-flags.ts +1 -0
  85. package/src/utils/get-styles-provider-color.ts +28 -0
  86. package/src/components/popover-content.tsx +0 -15
package/dist/index.js CHANGED
@@ -30,27 +30,50 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  // src/index.ts
31
31
  var index_exports = {};
32
32
  __export(index_exports, {
33
+ EXPERIMENTAL_FEATURES: () => EXPERIMENTAL_FEATURES,
34
+ PopoverScrollableContent: () => PopoverScrollableContent,
33
35
  controlActionsMenu: () => controlActionsMenu,
34
36
  init: () => init3,
35
37
  injectIntoClassSelectorActions: () => injectIntoClassSelectorActions,
36
38
  registerControlReplacement: () => registerControlReplacement,
37
- useBoundProp: () => import_editor_controls59.useBoundProp,
39
+ registerStyleProviderToColors: () => registerStyleProviderToColors,
40
+ useBoundProp: () => import_editor_controls60.useBoundProp,
38
41
  useFontFamilies: () => useFontFamilies,
39
42
  usePanelActions: () => usePanelActions,
40
- usePanelStatus: () => usePanelStatus
43
+ usePanelStatus: () => usePanelStatus,
44
+ useSectionWidth: () => useSectionWidth
41
45
  });
42
46
  module.exports = __toCommonJS(index_exports);
43
- var import_editor_controls59 = require("@elementor/editor-controls");
47
+
48
+ // src/sync/experiments-flags.ts
49
+ var EXPERIMENTAL_FEATURES = {
50
+ V_3_30: "e_v_3_30",
51
+ V_3_31: "e_v_3_31"
52
+ };
53
+
54
+ // src/index.ts
55
+ var import_editor_controls60 = require("@elementor/editor-controls");
44
56
 
45
57
  // src/control-replacement.tsx
46
58
  var import_editor_controls = require("@elementor/editor-controls");
47
59
  var { registerControlReplacement, getControlReplacements } = (0, import_editor_controls.createControlReplacementsRegistry)();
48
60
 
61
+ // src/provider-colors-registry.ts
62
+ var DEFAULT_COLORS = {
63
+ name: "default",
64
+ getThemeColor: null
65
+ };
66
+ var providerColorsRegistry = /* @__PURE__ */ new Map();
67
+ var registerStyleProviderToColors = (provider, colors) => {
68
+ providerColorsRegistry.set(provider, colors);
69
+ };
70
+ var getStyleProviderColors = (provider) => providerColorsRegistry.get(provider) ?? DEFAULT_COLORS;
71
+
49
72
  // src/components/css-classes/css-class-selector.tsx
50
73
  var React8 = __toESM(require("react"));
51
74
  var import_react10 = require("react");
52
75
  var import_editor_elements2 = require("@elementor/editor-elements");
53
- var import_editor_styles_repository5 = require("@elementor/editor-styles-repository");
76
+ var import_editor_styles_repository6 = require("@elementor/editor-styles-repository");
54
77
  var import_editor_ui3 = require("@elementor/editor-ui");
55
78
  var import_icons2 = require("@elementor/icons");
56
79
  var import_locations = require("@elementor/locations");
@@ -139,6 +162,27 @@ function useIsStyle() {
139
162
  return !!(0, import_react3.useContext)(Context3);
140
163
  }
141
164
 
165
+ // src/utils/get-styles-provider-color.ts
166
+ var import_editor_styles_repository2 = require("@elementor/editor-styles-repository");
167
+ var getStylesProviderColorName = (provider) => {
168
+ if (!provider || provider === import_editor_styles_repository2.ELEMENTS_BASE_STYLES_PROVIDER_KEY) {
169
+ return "default";
170
+ }
171
+ if ((0, import_editor_styles_repository2.isElementsStylesProvider)(provider)) {
172
+ return "accent";
173
+ }
174
+ return getStyleProviderColors(provider).name;
175
+ };
176
+ var getStylesProviderThemeColor = (provider) => {
177
+ if (!provider || provider === import_editor_styles_repository2.ELEMENTS_BASE_STYLES_PROVIDER_KEY) {
178
+ return null;
179
+ }
180
+ if ((0, import_editor_styles_repository2.isElementsStylesProvider)(provider)) {
181
+ return (theme) => theme.palette.accent.main;
182
+ }
183
+ return getStyleProviderColors(provider).getThemeColor;
184
+ };
185
+
142
186
  // src/components/creatable-autocomplete/creatable-autocomplete.tsx
143
187
  var React4 = __toESM(require("react"));
144
188
  var import_react6 = require("react");
@@ -468,7 +512,7 @@ var StyledGroupItems = (0, import_ui2.styled)("ul")`
468
512
  // src/components/css-classes/css-class-item.tsx
469
513
  var React7 = __toESM(require("react"));
470
514
  var import_react9 = require("react");
471
- var import_editor_styles_repository4 = require("@elementor/editor-styles-repository");
515
+ var import_editor_styles_repository5 = require("@elementor/editor-styles-repository");
472
516
  var import_editor_ui2 = require("@elementor/editor-ui");
473
517
  var import_icons = require("@elementor/icons");
474
518
  var import_ui5 = require("@elementor/ui");
@@ -491,7 +535,7 @@ function CssClassProvider({ children, ...contextValue }) {
491
535
 
492
536
  // src/components/css-classes/css-class-menu.tsx
493
537
  var React6 = __toESM(require("react"));
494
- var import_editor_styles_repository3 = require("@elementor/editor-styles-repository");
538
+ var import_editor_styles_repository4 = require("@elementor/editor-styles-repository");
495
539
  var import_editor_ui = require("@elementor/editor-ui");
496
540
  var import_ui4 = require("@elementor/ui");
497
541
  var import_i18n2 = require("@wordpress/i18n");
@@ -499,22 +543,17 @@ var import_i18n2 = require("@wordpress/i18n");
499
543
  // src/components/style-indicator.tsx
500
544
  var import_ui3 = require("@elementor/ui");
501
545
  var StyleIndicator = (0, import_ui3.styled)("div", {
502
- shouldForwardProp: (prop) => prop !== "variant"
546
+ shouldForwardProp: (prop) => !["isOverridden", "getColor"].includes(prop)
503
547
  })`
504
548
  width: 5px;
505
549
  height: 5px;
506
550
  border-radius: 50%;
507
- background-color: ${({ theme, variant }) => {
508
- switch (variant) {
509
- case "overridden":
510
- return theme.palette.warning.light;
511
- case "global":
512
- return theme.palette.global.dark;
513
- case "local":
514
- return theme.palette.accent.main;
515
- default:
516
- return theme.palette.text.disabled;
551
+ background-color: ${({ theme, isOverridden, getColor }) => {
552
+ if (isOverridden) {
553
+ return theme.palette.warning.light;
517
554
  }
555
+ const providerColor = getColor?.(theme);
556
+ return providerColor ?? theme.palette.text.disabled;
518
557
  }};
519
558
  `;
520
559
 
@@ -523,16 +562,9 @@ var import_react8 = require("react");
523
562
  var import_editor_documents = require("@elementor/editor-documents");
524
563
  var import_editor_elements = require("@elementor/editor-elements");
525
564
  var import_editor_props = require("@elementor/editor-props");
526
- var import_editor_styles_repository2 = require("@elementor/editor-styles-repository");
565
+ var import_editor_styles_repository3 = require("@elementor/editor-styles-repository");
527
566
  var import_editor_v1_adapters = require("@elementor/editor-v1-adapters");
528
567
  var import_i18n = require("@wordpress/i18n");
529
-
530
- // src/sync/experiments-flags.ts
531
- var EXPERIMENTAL_FEATURES = {
532
- V_3_30: "e_v_3_30"
533
- };
534
-
535
- // src/components/css-classes/use-apply-and-unapply-class.ts
536
568
  function useApplyClass() {
537
569
  const { id: activeId, setId: setActiveId } = useStyle();
538
570
  const { element } = useElement();
@@ -606,7 +638,7 @@ function useUnapplyClass() {
606
638
  function useCreateAndApplyClass() {
607
639
  const { id: activeId, setId: setActiveId } = useStyle();
608
640
  const isVersion330Active = (0, import_editor_v1_adapters.isExperimentActive)(EXPERIMENTAL_FEATURES.V_3_30);
609
- const [provider, createAction] = (0, import_editor_styles_repository2.useGetStylesRepositoryCreateAction)() ?? [null, null];
641
+ const [provider, createAction] = (0, import_editor_styles_repository3.useGetStylesRepositoryCreateAction)() ?? [null, null];
610
642
  const deleteAction = provider?.actions.delete;
611
643
  const applyClass = useApply();
612
644
  const unapplyClass = useUnapply();
@@ -749,7 +781,7 @@ function CssClassMenu({ popupState, anchorEl, fixed }) {
749
781
  }
750
782
  function useModifiedStates(styleId) {
751
783
  const { meta } = useStyle();
752
- const styleDef = import_editor_styles_repository3.stylesRepository.all().find((style) => style.id === styleId);
784
+ const styleDef = import_editor_styles_repository4.stylesRepository.all().find((style) => style.id === styleId);
753
785
  return Object.fromEntries(
754
786
  styleDef?.variants.filter((variant) => meta.breakpoint === variant.meta.breakpoint).map((variant) => [variant.meta.state ?? "normal", true]) ?? []
755
787
  );
@@ -762,7 +794,7 @@ function getMenuItemsByProvider({
762
794
  if (!provider) {
763
795
  return [];
764
796
  }
765
- const providerInstance = import_editor_styles_repository3.stylesRepository.getProviderByKey(provider);
797
+ const providerInstance = import_editor_styles_repository4.stylesRepository.getProviderByKey(provider);
766
798
  const providerActions = providerInstance?.actions;
767
799
  const canUpdate = providerActions?.update;
768
800
  const canUnapply = !fixed;
@@ -789,10 +821,9 @@ function StateMenuItem({ state, closeMenu, ...props }) {
789
821
  const { id: styleId, provider } = useCssClass();
790
822
  const { id: activeId, setId: setActiveId, setMetaState: setActiveMetaState, meta } = useStyle();
791
823
  const { state: activeState } = meta;
792
- const { userCan } = (0, import_editor_styles_repository3.useUserStylesCapability)();
824
+ const { userCan } = (0, import_editor_styles_repository4.useUserStylesCapability)();
793
825
  const modifiedStates = useModifiedStates(styleId);
794
826
  const isUpdateAllowed = !state || userCan(provider ?? "").updateProps;
795
- const indicatorVariant = !provider || (0, import_editor_styles_repository3.isElementsStylesProvider)(provider) ? "local" : "global";
796
827
  const isStyled = modifiedStates[state ?? "normal"] ?? false;
797
828
  const disabled = !isUpdateAllowed && !isStyled;
798
829
  const isActive = styleId === activeId;
@@ -818,7 +849,13 @@ function StateMenuItem({ state, closeMenu, ...props }) {
818
849
  showInfoTip: disabled,
819
850
  content: (0, import_i18n2.__)("With your current role, you can only use existing states.", "elementor")
820
851
  },
821
- /* @__PURE__ */ React6.createElement(import_ui4.Stack, { gap: 0.75, direction: "row", alignItems: "center" }, isStyled && /* @__PURE__ */ React6.createElement(StyleIndicator, { "aria-label": (0, import_i18n2.__)("Has style", "elementor"), variant: indicatorVariant }), state ?? "normal")
852
+ /* @__PURE__ */ React6.createElement(import_ui4.Stack, { gap: 0.75, direction: "row", alignItems: "center" }, isStyled && /* @__PURE__ */ React6.createElement(
853
+ StyleIndicator,
854
+ {
855
+ "aria-label": (0, import_i18n2.__)("Has style", "elementor"),
856
+ getColor: getStylesProviderThemeColor(provider ?? "")
857
+ }
858
+ ), state ?? "normal")
822
859
  )
823
860
  );
824
861
  }
@@ -839,7 +876,7 @@ function UnapplyClassMenuItem({ closeMenu, ...props }) {
839
876
  }
840
877
  function RenameClassMenuItem({ closeMenu }) {
841
878
  const { handleRename, provider } = useCssClass();
842
- const { userCan } = (0, import_editor_styles_repository3.useUserStylesCapability)();
879
+ const { userCan } = (0, import_editor_styles_repository4.useUserStylesCapability)();
843
880
  if (!provider) {
844
881
  return null;
845
882
  }
@@ -876,7 +913,7 @@ function CssClassItem(props) {
876
913
  const popupState = (0, import_ui5.usePopupState)({ variant: "popover" });
877
914
  const [chipRef, setChipRef] = (0, import_react9.useState)(null);
878
915
  const { onDelete, ...chipGroupProps } = chipProps;
879
- const { userCan } = (0, import_editor_styles_repository4.useUserStylesCapability)();
916
+ const { userCan } = (0, import_editor_styles_repository5.useUserStylesCapability)();
880
917
  const {
881
918
  ref,
882
919
  isEditing,
@@ -890,7 +927,7 @@ function CssClassItem(props) {
890
927
  onError: setError
891
928
  });
892
929
  const color = error ? "error" : colorProp;
893
- const providerActions = provider ? import_editor_styles_repository4.stylesRepository.getProviderByKey(provider)?.actions : null;
930
+ const providerActions = provider ? import_editor_styles_repository5.stylesRepository.getProviderByKey(provider)?.actions : null;
894
931
  const allowRename = Boolean(providerActions?.update) && userCan(provider ?? "")?.update;
895
932
  const isShowingState = isActive && meta.state;
896
933
  return /* @__PURE__ */ React7.createElement(React7.Fragment, null, /* @__PURE__ */ React7.createElement(
@@ -957,7 +994,7 @@ function CssClassItem(props) {
957
994
  ), /* @__PURE__ */ React7.createElement(CssClassProvider, { ...classProps, handleRename: openEditMode }, /* @__PURE__ */ React7.createElement(CssClassMenu, { popupState, anchorEl: chipRef, fixed })));
958
995
  }
959
996
  var validateLabel = (newLabel) => {
960
- const result = (0, import_editor_styles_repository4.validateStyleLabel)(newLabel, "rename");
997
+ const result = (0, import_editor_styles_repository5.validateStyleLabel)(newLabel, "rename");
961
998
  if (result.isValid) {
962
999
  return null;
963
1000
  }
@@ -986,7 +1023,7 @@ function CssClassSelector() {
986
1023
  const appliedOptions = useAppliedOptions(options12);
987
1024
  const active = appliedOptions.find((option) => option.value === activeId) ?? EMPTY_OPTION;
988
1025
  const showPlaceholder = appliedOptions.every(({ fixed }) => fixed);
989
- const { userCan } = (0, import_editor_styles_repository5.useUserStylesCapability)();
1026
+ const { userCan } = (0, import_editor_styles_repository6.useUserStylesCapability)();
990
1027
  const canEdit = active.provider ? userCan(active.provider).updateProps : true;
991
1028
  return /* @__PURE__ */ React8.createElement(import_ui6.Stack, { p: 2 }, /* @__PURE__ */ React8.createElement(import_ui6.Stack, { direction: "row", gap: 1, alignItems: "center", justifyContent: "space-between" }, /* @__PURE__ */ React8.createElement(import_ui6.FormLabel, { htmlFor: ID, size: "small" }, (0, import_i18n4.__)("Classes", "elementor")), /* @__PURE__ */ React8.createElement(import_ui6.Stack, { direction: "row", gap: 1 }, /* @__PURE__ */ React8.createElement(ClassSelectorActionsSlot, null))), /* @__PURE__ */ React8.createElement(
992
1029
  import_editor_ui3.WarningInfotip,
@@ -1042,16 +1079,7 @@ function CssClassSelector() {
1042
1079
  })
1043
1080
  }
1044
1081
  )
1045
- ), !canEdit && /* @__PURE__ */ React8.createElement(
1046
- import_editor_ui3.InfoAlert,
1047
- {
1048
- content: (0, import_i18n4.__)(
1049
- "With your current role, you can use existing classes but can\u2019t modify them.",
1050
- "elementor"
1051
- ),
1052
- sx: { mt: 1 }
1053
- }
1054
- ));
1082
+ ), !canEdit && /* @__PURE__ */ React8.createElement(import_editor_ui3.InfoAlert, { sx: { mt: 1 } }, (0, import_i18n4.__)("With your current role, you can use existing classes but can\u2019t modify them.", "elementor")));
1055
1083
  }
1056
1084
  var EmptyState = ({ searchValue, onClear }) => /* @__PURE__ */ React8.createElement(import_ui6.Box, { sx: { py: 4 } }, /* @__PURE__ */ React8.createElement(
1057
1085
  import_ui6.Stack,
@@ -1071,7 +1099,7 @@ var updateClassByProvider = (provider, data) => {
1071
1099
  if (!provider) {
1072
1100
  return;
1073
1101
  }
1074
- const providerInstance = import_editor_styles_repository5.stylesRepository.getProviderByKey(provider);
1102
+ const providerInstance = import_editor_styles_repository6.stylesRepository.getProviderByKey(provider);
1075
1103
  if (!providerInstance) {
1076
1104
  return;
1077
1105
  }
@@ -1080,8 +1108,8 @@ var updateClassByProvider = (provider, data) => {
1080
1108
  function useOptions() {
1081
1109
  const { element } = useElement();
1082
1110
  const isProviderEditable = (provider) => !!provider.actions.updateProps;
1083
- return (0, import_editor_styles_repository5.useProviders)().filter(isProviderEditable).flatMap((provider) => {
1084
- const isElements = (0, import_editor_styles_repository5.isElementsStylesProvider)(provider.getKey());
1111
+ return (0, import_editor_styles_repository6.useProviders)().filter(isProviderEditable).flatMap((provider) => {
1112
+ const isElements = (0, import_editor_styles_repository6.isElementsStylesProvider)(provider.getKey());
1085
1113
  const styleDefs = provider.actions.all({ elementId: element.id });
1086
1114
  if (isElements && styleDefs.length === 0) {
1087
1115
  return [EMPTY_OPTION];
@@ -1091,7 +1119,7 @@ function useOptions() {
1091
1119
  label: styleDef.label,
1092
1120
  value: styleDef.id,
1093
1121
  fixed: isElements,
1094
- color: isElements ? "accent" : "global",
1122
+ color: getStylesProviderColorName(provider.getKey()),
1095
1123
  icon: isElements ? /* @__PURE__ */ React8.createElement(import_icons2.MapPinIcon, null) : null,
1096
1124
  provider: provider.getKey()
1097
1125
  };
@@ -1116,7 +1144,7 @@ function useCreateAction() {
1116
1144
  )
1117
1145
  };
1118
1146
  }
1119
- return (0, import_editor_styles_repository5.validateStyleLabel)(newClassLabel, event);
1147
+ return (0, import_editor_styles_repository6.validateStyleLabel)(newClassLabel, event);
1120
1148
  };
1121
1149
  const entityName = provider.labels.singular && provider.labels.plural ? provider.labels : void 0;
1122
1150
  return { create, validate, entityName };
@@ -1130,7 +1158,7 @@ function useAppliedOptions(options12) {
1130
1158
  const appliedIds = (0, import_editor_elements2.useElementSetting)(element.id, currentClassesProp)?.value || [];
1131
1159
  const appliedOptions = options12.filter((option) => option.value && appliedIds.includes(option.value));
1132
1160
  const hasElementsProviderStyleApplied = appliedOptions.some(
1133
- (option) => option.provider && (0, import_editor_styles_repository5.isElementsStylesProvider)(option.provider)
1161
+ (option) => option.provider && (0, import_editor_styles_repository6.isElementsStylesProvider)(option.provider)
1134
1162
  );
1135
1163
  if (!hasElementsProviderStyleApplied) {
1136
1164
  appliedOptions.unshift(EMPTY_OPTION);
@@ -1159,15 +1187,15 @@ function useHandleSelect() {
1159
1187
  var import_editor_panels2 = require("@elementor/editor-panels");
1160
1188
 
1161
1189
  // src/components/editing-panel.tsx
1162
- var React84 = __toESM(require("react"));
1163
- var import_editor_controls50 = require("@elementor/editor-controls");
1190
+ var React86 = __toESM(require("react"));
1191
+ var import_editor_controls51 = require("@elementor/editor-controls");
1164
1192
  var import_editor_elements8 = require("@elementor/editor-elements");
1165
1193
  var import_editor_panels = require("@elementor/editor-panels");
1166
1194
  var import_editor_ui5 = require("@elementor/editor-ui");
1167
1195
  var import_icons24 = require("@elementor/icons");
1168
1196
  var import_session5 = require("@elementor/session");
1169
- var import_ui69 = require("@elementor/ui");
1170
- var import_i18n55 = require("@wordpress/i18n");
1197
+ var import_ui45 = require("@elementor/ui");
1198
+ var import_i18n59 = require("@wordpress/i18n");
1171
1199
 
1172
1200
  // src/controls-actions.ts
1173
1201
  var import_menus = require("@elementor/menus");
@@ -1186,14 +1214,13 @@ function Action({ title, visible = true, icon: Icon, onClick }) {
1186
1214
  // src/popover-action.tsx
1187
1215
  var React10 = __toESM(require("react"));
1188
1216
  var import_react11 = require("react");
1189
- var import_editor_ui4 = require("@elementor/editor-ui");
1190
1217
  var import_ui8 = require("@elementor/ui");
1191
1218
  var SIZE2 = "tiny";
1192
1219
  function PopoverAction({
1193
1220
  title,
1194
1221
  visible = true,
1195
1222
  icon: Icon,
1196
- popoverContent: PopoverContent2
1223
+ content: PopoverContent
1197
1224
  }) {
1198
1225
  const id = (0, import_react11.useId)();
1199
1226
  const popupState = (0, import_ui8.usePopupState)({
@@ -1210,12 +1237,18 @@ function PopoverAction({
1210
1237
  disableScrollLock: true,
1211
1238
  anchorOrigin: {
1212
1239
  vertical: "bottom",
1213
- horizontal: "center"
1240
+ horizontal: "right"
1241
+ },
1242
+ transformOrigin: {
1243
+ vertical: "top",
1244
+ horizontal: "right"
1245
+ },
1246
+ PaperProps: {
1247
+ sx: { my: 2.5 }
1214
1248
  },
1215
1249
  ...(0, import_ui8.bindPopover)(popupState)
1216
1250
  },
1217
- /* @__PURE__ */ React10.createElement(import_editor_ui4.PopoverHeader, { title, onClose: popupState.close, icon: /* @__PURE__ */ React10.createElement(Icon, { fontSize: SIZE2 }) }),
1218
- /* @__PURE__ */ React10.createElement(PopoverContent2, { closePopover: popupState.close })
1251
+ /* @__PURE__ */ React10.createElement(PopoverContent, { close: popupState.close })
1219
1252
  ));
1220
1253
  }
1221
1254
 
@@ -1235,11 +1268,11 @@ function EditorPanelErrorFallback() {
1235
1268
  }
1236
1269
 
1237
1270
  // src/components/editing-panel-tabs.tsx
1238
- var React83 = __toESM(require("react"));
1239
- var import_react36 = require("react");
1240
- var import_editor_v1_adapters15 = require("@elementor/editor-v1-adapters");
1241
- var import_ui68 = require("@elementor/ui");
1242
- var import_i18n54 = require("@wordpress/i18n");
1271
+ var React85 = __toESM(require("react"));
1272
+ var import_react38 = require("react");
1273
+ var import_editor_v1_adapters18 = require("@elementor/editor-v1-adapters");
1274
+ var import_ui44 = require("@elementor/ui");
1275
+ var import_i18n58 = require("@wordpress/i18n");
1243
1276
 
1244
1277
  // src/contexts/scroll-context.tsx
1245
1278
  var React12 = __toESM(require("react"));
@@ -1297,6 +1330,10 @@ var defaultPanelSettingsContext = (0, import_react13.createContext)({
1297
1330
  "e-flexbox": {
1298
1331
  defaultSectionsExpanded: fallbackEditorSettings.defaultSectionsExpanded,
1299
1332
  defaultTab: "style"
1333
+ },
1334
+ "e-divider": {
1335
+ defaultSectionsExpanded: fallbackEditorSettings.defaultSectionsExpanded,
1336
+ defaultTab: "style"
1300
1337
  }
1301
1338
  });
1302
1339
  var useDefaultPanelSettings = () => {
@@ -1325,7 +1362,7 @@ var useStateByElement = (key, initialValue) => {
1325
1362
  // src/components/settings-tab.tsx
1326
1363
  var React19 = __toESM(require("react"));
1327
1364
  var import_editor_controls4 = require("@elementor/editor-controls");
1328
- var import_editor_v1_adapters4 = require("@elementor/editor-v1-adapters");
1365
+ var import_editor_v1_adapters5 = require("@elementor/editor-v1-adapters");
1329
1366
  var import_session2 = require("@elementor/session");
1330
1367
  var import_ui16 = require("@elementor/ui");
1331
1368
 
@@ -1334,19 +1371,23 @@ var React13 = __toESM(require("react"));
1334
1371
 
1335
1372
  // src/controls-registry/controls-registry.tsx
1336
1373
  var import_editor_controls2 = require("@elementor/editor-controls");
1374
+ var import_editor_props2 = require("@elementor/editor-props");
1337
1375
  var controlTypes = {
1338
- image: { component: import_editor_controls2.ImageControl, layout: "full" },
1339
- "svg-media": { component: import_editor_controls2.SvgMediaControl, layout: "full" },
1340
- text: { component: import_editor_controls2.TextControl, layout: "full" },
1341
- textarea: { component: import_editor_controls2.TextAreaControl, layout: "full" },
1342
- size: { component: import_editor_controls2.SizeControl, layout: "two-columns" },
1343
- select: { component: import_editor_controls2.SelectControl, layout: "two-columns" },
1344
- link: { component: import_editor_controls2.LinkControl, layout: "full" },
1345
- url: { component: import_editor_controls2.UrlControl, layout: "full" },
1346
- switch: { component: import_editor_controls2.SwitchControl, layout: "two-columns" }
1376
+ image: { component: import_editor_controls2.ImageControl, layout: "full", propTypeUtil: import_editor_props2.imagePropTypeUtil },
1377
+ "svg-media": { component: import_editor_controls2.SvgMediaControl, layout: "full", propTypeUtil: import_editor_props2.imageSrcPropTypeUtil },
1378
+ text: { component: import_editor_controls2.TextControl, layout: "full", propTypeUtil: import_editor_props2.stringPropTypeUtil },
1379
+ textarea: { component: import_editor_controls2.TextAreaControl, layout: "full", propTypeUtil: import_editor_props2.stringPropTypeUtil },
1380
+ size: { component: import_editor_controls2.SizeControl, layout: "two-columns", propTypeUtil: import_editor_props2.sizePropTypeUtil },
1381
+ select: { component: import_editor_controls2.SelectControl, layout: "two-columns", propTypeUtil: import_editor_props2.stringPropTypeUtil },
1382
+ link: { component: import_editor_controls2.LinkControl, layout: "custom", propTypeUtil: import_editor_props2.linkPropTypeUtil },
1383
+ url: { component: import_editor_controls2.UrlControl, layout: "full", propTypeUtil: import_editor_props2.stringPropTypeUtil },
1384
+ switch: { component: import_editor_controls2.SwitchControl, layout: "two-columns", propTypeUtil: import_editor_props2.booleanPropTypeUtil },
1385
+ repeatable: { component: import_editor_controls2.RepeatableControl, layout: "full", propTypeUtil: void 0 },
1386
+ "key-value": { component: import_editor_controls2.KeyValueControl, layout: "full", propTypeUtil: import_editor_props2.keyValuePropTypeUtil }
1347
1387
  };
1348
1388
  var getControl = (type) => controlTypes[type]?.component;
1349
1389
  var getDefaultLayout = (type) => controlTypes[type].layout;
1390
+ var getPropTypeUtil = (type) => controlTypes[type]?.propTypeUtil;
1350
1391
 
1351
1392
  // src/controls-registry/control.tsx
1352
1393
  var Control = ({ props, type }) => {
@@ -1364,6 +1405,9 @@ var Control = ({ props, type }) => {
1364
1405
  var React14 = __toESM(require("react"));
1365
1406
  var import_ui11 = require("@elementor/ui");
1366
1407
  var ControlTypeContainer = ({ children, layout }) => {
1408
+ if (layout === "custom") {
1409
+ return children;
1410
+ }
1367
1411
  return /* @__PURE__ */ React14.createElement(StyledContainer, { layout }, children);
1368
1412
  };
1369
1413
  var StyledContainer = (0, import_ui11.styled)(import_ui11.Box, {
@@ -1383,8 +1427,12 @@ var getGridLayout = (layout) => ({
1383
1427
 
1384
1428
  // src/controls-registry/settings-field.tsx
1385
1429
  var React15 = __toESM(require("react"));
1430
+ var import_react15 = require("react");
1386
1431
  var import_editor_controls3 = require("@elementor/editor-controls");
1432
+ var import_editor_documents2 = require("@elementor/editor-documents");
1387
1433
  var import_editor_elements3 = require("@elementor/editor-elements");
1434
+ var import_editor_v1_adapters3 = require("@elementor/editor-v1-adapters");
1435
+ var import_i18n5 = require("@wordpress/i18n");
1388
1436
 
1389
1437
  // src/controls-registry/create-top-level-object-type.ts
1390
1438
  var createTopLevelOjectType = ({ schema }) => {
@@ -1400,26 +1448,69 @@ var createTopLevelOjectType = ({ schema }) => {
1400
1448
  };
1401
1449
 
1402
1450
  // src/controls-registry/settings-field.tsx
1403
- var SettingsField = ({ bind, children }) => {
1451
+ var SettingsField = ({ bind, children, propDisplayName }) => {
1404
1452
  const { element, elementType } = useElement();
1405
1453
  const settingsValue = (0, import_editor_elements3.useElementSetting)(element.id, bind);
1406
1454
  const value = { [bind]: settingsValue };
1407
1455
  const propType = createTopLevelOjectType({ schema: elementType.propsSchema });
1456
+ const undoableUpdateElementProp = useUndoableUpdateElementProp({
1457
+ propKey: bind,
1458
+ elementId: element.id,
1459
+ propDisplayName
1460
+ });
1408
1461
  const setValue = (newValue) => {
1409
- (0, import_editor_elements3.updateElementSettings)({
1410
- id: element.id,
1411
- props: { ...newValue }
1412
- });
1462
+ const isVersion331Active = (0, import_editor_v1_adapters3.isExperimentActive)(EXPERIMENTAL_FEATURES.V_3_31);
1463
+ if (isVersion331Active) {
1464
+ undoableUpdateElementProp({ newValue });
1465
+ } else {
1466
+ (0, import_editor_elements3.updateElementSettings)({ id: element.id, props: newValue });
1467
+ }
1413
1468
  };
1414
1469
  return /* @__PURE__ */ React15.createElement(import_editor_controls3.PropProvider, { propType, value, setValue }, /* @__PURE__ */ React15.createElement(import_editor_controls3.PropKeyProvider, { bind }, children));
1415
1470
  };
1471
+ function useUndoableUpdateElementProp({
1472
+ propKey,
1473
+ elementId,
1474
+ propDisplayName
1475
+ }) {
1476
+ return (0, import_react15.useMemo)(() => {
1477
+ return (0, import_editor_v1_adapters3.undoable)(
1478
+ {
1479
+ do: ({ newValue }) => {
1480
+ const prevPropValue = (0, import_editor_elements3.getElementSetting)(elementId, propKey);
1481
+ (0, import_editor_elements3.updateElementSettings)({ id: elementId, props: { ...newValue }, withHistory: false });
1482
+ (0, import_editor_documents2.setDocumentModifiedStatus)(true);
1483
+ return { [propKey]: prevPropValue };
1484
+ },
1485
+ undo: ({}, prevProps) => {
1486
+ (0, import_editor_elements3.updateElementSettings)({ id: elementId, props: prevProps, withHistory: false });
1487
+ }
1488
+ },
1489
+ {
1490
+ title: (0, import_editor_elements3.getElementLabel)(elementId),
1491
+ // translators: %s is the name of the property that was edited.
1492
+ subtitle: (0, import_i18n5.__)("%s edited", "elementor").replace("%s", propDisplayName)
1493
+ }
1494
+ );
1495
+ }, [propKey, elementId, propDisplayName]);
1496
+ }
1416
1497
 
1417
1498
  // src/components/section.tsx
1418
1499
  var React17 = __toESM(require("react"));
1419
- var import_react16 = require("react");
1420
- var import_editor_v1_adapters3 = require("@elementor/editor-v1-adapters");
1500
+ var import_react18 = require("react");
1501
+ var import_editor_v1_adapters4 = require("@elementor/editor-v1-adapters");
1421
1502
  var import_ui14 = require("@elementor/ui");
1422
1503
 
1504
+ // src/contexts/section-context.tsx
1505
+ var import_react16 = require("react");
1506
+ var FALLBACK_SECTION_WIDTH = 320;
1507
+ var SectionRefContext = (0, import_react16.createContext)(null);
1508
+ var useSectionRef = () => (0, import_react16.useContext)(SectionRefContext);
1509
+ var useSectionWidth = () => {
1510
+ const sectionRef = useSectionRef();
1511
+ return sectionRef?.current?.offsetWidth ?? FALLBACK_SECTION_WIDTH;
1512
+ };
1513
+
1423
1514
  // src/components/collapse-icon.tsx
1424
1515
  var import_icons3 = require("@elementor/icons");
1425
1516
  var import_ui12 = require("@elementor/ui");
@@ -1434,9 +1525,9 @@ var CollapseIcon = (0, import_ui12.styled)(import_icons3.ChevronDownIcon, {
1434
1525
 
1435
1526
  // src/components/collapsible-content.tsx
1436
1527
  var React16 = __toESM(require("react"));
1437
- var import_react15 = require("react");
1528
+ var import_react17 = require("react");
1438
1529
  var import_ui13 = require("@elementor/ui");
1439
- var import_i18n5 = require("@wordpress/i18n");
1530
+ var import_i18n6 = require("@wordpress/i18n");
1440
1531
  var IndicatorsWrapper = (0, import_ui13.styled)("div")`
1441
1532
  position: absolute;
1442
1533
  top: 0;
@@ -1448,7 +1539,7 @@ var IndicatorsWrapper = (0, import_ui13.styled)("div")`
1448
1539
  justify-content: center;
1449
1540
  `;
1450
1541
  var CollapsibleContent = ({ children, defaultOpen = false, titleEnd = null }) => {
1451
- const [open, setOpen] = (0, import_react15.useState)(defaultOpen);
1542
+ const [open, setOpen] = (0, import_react17.useState)(defaultOpen);
1452
1543
  const handleToggle = () => {
1453
1544
  setOpen((prevOpen) => !prevOpen);
1454
1545
  };
@@ -1463,7 +1554,7 @@ var CollapsibleContent = ({ children, defaultOpen = false, titleEnd = null }) =>
1463
1554
  endIcon: /* @__PURE__ */ React16.createElement(CollapseIcon, { open }),
1464
1555
  sx: { my: 0.5 }
1465
1556
  },
1466
- open ? (0, import_i18n5.__)("Show less", "elementor") : (0, import_i18n5.__)("Show more", "elementor")
1557
+ open ? (0, import_i18n6.__)("Show less", "elementor") : (0, import_i18n6.__)("Show more", "elementor")
1467
1558
  ), titleEnd && /* @__PURE__ */ React16.createElement(IndicatorsWrapper, null, getCollapsibleValue(titleEnd, open))), /* @__PURE__ */ React16.createElement(import_ui13.Collapse, { in: open, timeout: "auto", unmountOnExit: true }, children));
1468
1559
  };
1469
1560
  function getCollapsibleValue(value, isOpen) {
@@ -1476,13 +1567,14 @@ function getCollapsibleValue(value, isOpen) {
1476
1567
  // src/components/section.tsx
1477
1568
  function Section({ title, children, defaultExpanded = false, titleEnd }) {
1478
1569
  const [isOpen, setIsOpen] = useStateByElement(title, !!defaultExpanded);
1570
+ const ref = (0, import_react18.useRef)(null);
1479
1571
  const handleClick = () => {
1480
1572
  setIsOpen(!isOpen);
1481
1573
  };
1482
- const id = (0, import_react16.useId)();
1574
+ const id = (0, import_react18.useId)();
1483
1575
  const labelId = `label-${id}`;
1484
1576
  const contentId = `content-${id}`;
1485
- const isUsingTitleEnd = (0, import_editor_v1_adapters3.isExperimentActive)(EXPERIMENTAL_FEATURES.V_3_30);
1577
+ const isUsingTitleEnd = (0, import_editor_v1_adapters4.isExperimentActive)(EXPERIMENTAL_FEATURES.V_3_30);
1486
1578
  return /* @__PURE__ */ React17.createElement(React17.Fragment, null, /* @__PURE__ */ React17.createElement(
1487
1579
  import_ui14.ListItemButton,
1488
1580
  {
@@ -1500,7 +1592,7 @@ function Section({ title, children, defaultExpanded = false, titleEnd }) {
1500
1592
  }
1501
1593
  ), isUsingTitleEnd ? getCollapsibleValue(titleEnd, isOpen) : null),
1502
1594
  /* @__PURE__ */ React17.createElement(CollapseIcon, { open: isOpen, color: "secondary", fontSize: "tiny" })
1503
- ), /* @__PURE__ */ React17.createElement(import_ui14.Collapse, { id: contentId, "aria-labelledby": labelId, in: isOpen, timeout: "auto", unmountOnExit: true }, /* @__PURE__ */ React17.createElement(import_ui14.Stack, { gap: 2.5, p: 2 }, children)), /* @__PURE__ */ React17.createElement(import_ui14.Divider, null));
1595
+ ), /* @__PURE__ */ React17.createElement(import_ui14.Collapse, { id: contentId, "aria-labelledby": labelId, in: isOpen, timeout: "auto", unmountOnExit: true }, /* @__PURE__ */ React17.createElement(SectionRefContext.Provider, { value: ref }, /* @__PURE__ */ React17.createElement(import_ui14.Stack, { ref, gap: 2.5, p: 2 }, children))), /* @__PURE__ */ React17.createElement(import_ui14.Divider, null));
1504
1596
  }
1505
1597
 
1506
1598
  // src/components/sections-list.tsx
@@ -1514,7 +1606,7 @@ function SectionsList(props) {
1514
1606
  var SettingsTab = () => {
1515
1607
  const { elementType, element } = useElement();
1516
1608
  const settingsDefault = useDefaultPanelSettings();
1517
- const isDefaultExpanded = (sectionId) => (0, import_editor_v1_adapters4.isExperimentActive)(EXPERIMENTAL_FEATURES.V_3_30) ? settingsDefault.defaultSectionsExpanded.settings?.includes(sectionId) : true;
1609
+ const isDefaultExpanded = (sectionId) => (0, import_editor_v1_adapters5.isExperimentActive)(EXPERIMENTAL_FEATURES.V_3_30) ? settingsDefault.defaultSectionsExpanded.settings?.includes(sectionId) : true;
1518
1610
  return /* @__PURE__ */ React19.createElement(import_session2.SessionStorageProvider, { prefix: element.id }, /* @__PURE__ */ React19.createElement(SectionsList, null, elementType.controls.map(({ type, value }, index) => {
1519
1611
  if (type === "control") {
1520
1612
  return /* @__PURE__ */ React19.createElement(Control2, { key: value.bind, control: value });
@@ -1543,46 +1635,73 @@ var Control2 = ({ control }) => {
1543
1635
  return null;
1544
1636
  }
1545
1637
  const layout = control.meta?.layout || getDefaultLayout(control.type);
1546
- return /* @__PURE__ */ React19.createElement(SettingsField, { bind: control.bind }, control.meta?.topDivider && /* @__PURE__ */ React19.createElement(import_ui16.Divider, null), /* @__PURE__ */ React19.createElement(ControlTypeContainer, { layout }, control.label ? /* @__PURE__ */ React19.createElement(import_editor_controls4.ControlFormLabel, null, control.label) : null, /* @__PURE__ */ React19.createElement(Control, { type: control.type, props: control.props })));
1638
+ const controlProps = populateChildControlProps(control.props);
1639
+ if (layout === "custom") {
1640
+ controlProps.label = control.label;
1641
+ }
1642
+ return /* @__PURE__ */ React19.createElement(SettingsField, { bind: control.bind, propDisplayName: control.label || control.bind }, control.meta?.topDivider && /* @__PURE__ */ React19.createElement(import_ui16.Divider, null), /* @__PURE__ */ React19.createElement(ControlTypeContainer, { layout }, control.label && layout !== "custom" ? /* @__PURE__ */ React19.createElement(import_editor_controls4.ControlFormLabel, null, control.label) : null, /* @__PURE__ */ React19.createElement(Control, { type: control.type, props: controlProps })));
1547
1643
  };
1644
+ function populateChildControlProps(props) {
1645
+ if (props.childControlType) {
1646
+ const childComponent = getControl(props.childControlType);
1647
+ const childPropType = getPropTypeUtil(props.childControlType);
1648
+ props = {
1649
+ ...props,
1650
+ childControlConfig: {
1651
+ component: childComponent,
1652
+ props: props.childControlProps || {},
1653
+ propTypeUtil: childPropType
1654
+ }
1655
+ };
1656
+ }
1657
+ return props;
1658
+ }
1548
1659
 
1549
1660
  // src/components/style-tab.tsx
1550
- var React82 = __toESM(require("react"));
1551
- var import_react35 = require("react");
1552
- var import_editor_props9 = require("@elementor/editor-props");
1661
+ var React84 = __toESM(require("react"));
1662
+ var import_react37 = require("react");
1663
+ var import_editor_props10 = require("@elementor/editor-props");
1553
1664
  var import_editor_responsive3 = require("@elementor/editor-responsive");
1554
1665
  var import_session4 = require("@elementor/session");
1555
- var import_ui67 = require("@elementor/ui");
1556
- var import_i18n53 = require("@wordpress/i18n");
1666
+ var import_ui43 = require("@elementor/ui");
1667
+ var import_i18n57 = require("@wordpress/i18n");
1557
1668
 
1558
1669
  // src/contexts/styles-inheritance-context.tsx
1559
1670
  var React20 = __toESM(require("react"));
1560
- var import_react18 = require("react");
1671
+ var import_react20 = require("react");
1561
1672
  var import_editor_elements4 = require("@elementor/editor-elements");
1562
- var import_editor_props4 = require("@elementor/editor-props");
1673
+ var import_editor_props5 = require("@elementor/editor-props");
1563
1674
  var import_editor_responsive = require("@elementor/editor-responsive");
1564
1675
  var import_editor_styles = require("@elementor/editor-styles");
1565
- var import_editor_styles_repository6 = require("@elementor/editor-styles-repository");
1676
+ var import_editor_styles_repository7 = require("@elementor/editor-styles-repository");
1566
1677
 
1567
1678
  // src/hooks/use-styles-rerender.ts
1568
- var import_react17 = require("react");
1679
+ var import_react19 = require("react");
1569
1680
  var useStylesRerender = () => {
1570
1681
  const { provider } = useStyle();
1571
- const [, reRender] = (0, import_react17.useReducer)((p) => !p, false);
1572
- (0, import_react17.useEffect)(() => provider?.subscribe(reRender), [provider]);
1682
+ const [, reRender] = (0, import_react19.useReducer)((p) => !p, false);
1683
+ (0, import_react19.useEffect)(() => provider?.subscribe(reRender), [provider]);
1573
1684
  };
1574
1685
 
1575
1686
  // src/styles-inheritance/create-styles-inheritance.ts
1576
- var import_editor_props3 = require("@elementor/editor-props");
1687
+ var import_editor_props4 = require("@elementor/editor-props");
1577
1688
 
1578
1689
  // src/styles-inheritance/create-snapshots-manager.ts
1579
- var import_editor_props2 = require("@elementor/editor-props");
1690
+ var import_editor_props3 = require("@elementor/editor-props");
1580
1691
 
1581
1692
  // src/styles-inheritance/utils.ts
1582
1693
  var DEFAULT_STATE = "normal";
1583
1694
  var DEFAULT_BREAKPOINT = "desktop";
1584
1695
  var getStateKey = (state) => state ?? DEFAULT_STATE;
1585
1696
  var getBreakpointKey = (breakpoint) => breakpoint ?? DEFAULT_BREAKPOINT;
1697
+ var getValueFromInheritanceChain = (inheritanceChain, styleId, meta) => inheritanceChain.find(
1698
+ ({
1699
+ style,
1700
+ variant: {
1701
+ meta: { breakpoint, state }
1702
+ }
1703
+ }) => style.id === styleId && breakpoint === meta.breakpoint && state === meta.state
1704
+ );
1586
1705
 
1587
1706
  // src/styles-inheritance/create-snapshots-manager.ts
1588
1707
  function createSnapshotsManager(getStylesByMeta, breakpointsRoot) {
@@ -1668,7 +1787,7 @@ function buildInitialSnapshotFromStyles(styles) {
1668
1787
  variant: { props }
1669
1788
  } = styleData;
1670
1789
  Object.entries(props).forEach(([key, value]) => {
1671
- const filteredValue = (0, import_editor_props2.filterEmptyValues)(value);
1790
+ const filteredValue = (0, import_editor_props3.filterEmptyValues)(value);
1672
1791
  if (filteredValue === null) {
1673
1792
  return;
1674
1793
  }
@@ -1714,7 +1833,7 @@ function createStylesInheritance(styleDefs, breakpointsRoot) {
1714
1833
  inheritanceChain = inheritanceChain.map(({ value: styleValue, ...rest }) => ({
1715
1834
  ...rest,
1716
1835
  value: getValueByPath(styleValue, nextFields, filterPropType)
1717
- })).filter(({ value: styleValue }) => !(0, import_editor_props3.isEmpty)(styleValue));
1836
+ })).filter(({ value: styleValue }) => !(0, import_editor_props4.isEmpty)(styleValue));
1718
1837
  }
1719
1838
  return inheritanceChain;
1720
1839
  }
@@ -1756,7 +1875,7 @@ function getValueByPath(value, path, filterPropType) {
1756
1875
  if (!currentScope) {
1757
1876
  return null;
1758
1877
  }
1759
- if ((0, import_editor_props3.isTransformable)(currentScope)) {
1878
+ if ((0, import_editor_props4.isTransformable)(currentScope)) {
1760
1879
  return currentScope.value?.[key] ?? null;
1761
1880
  }
1762
1881
  if (typeof currentScope === "object") {
@@ -1766,7 +1885,7 @@ function getValueByPath(value, path, filterPropType) {
1766
1885
  }, value);
1767
1886
  }
1768
1887
  function shouldUseOriginalValue(filterPropType, value) {
1769
- return !!filterPropType && (0, import_editor_props3.isTransformable)(value) && filterPropType.key !== value.$$type;
1888
+ return !!filterPropType && (0, import_editor_props4.isTransformable)(value) && filterPropType.key !== value.$$type;
1770
1889
  }
1771
1890
  var getFilterPropType = (propType, path) => {
1772
1891
  if (!propType || propType.kind !== "union") {
@@ -1787,7 +1906,7 @@ var getFilterPropType = (propType, path) => {
1787
1906
  };
1788
1907
 
1789
1908
  // src/contexts/styles-inheritance-context.tsx
1790
- var Context4 = (0, import_react18.createContext)(null);
1909
+ var Context4 = (0, import_react20.createContext)(null);
1791
1910
  function StyleInheritanceProvider({ children }) {
1792
1911
  const styleDefs = useAppliedStyles();
1793
1912
  const breakpointsTree = (0, import_editor_responsive.getBreakpointsTree)();
@@ -1795,7 +1914,7 @@ function StyleInheritanceProvider({ children }) {
1795
1914
  return /* @__PURE__ */ React20.createElement(Context4.Provider, { value: { getSnapshot, getInheritanceChain } }, children);
1796
1915
  }
1797
1916
  function useStylesInheritanceSnapshot() {
1798
- const context = (0, import_react18.useContext)(Context4);
1917
+ const context = (0, import_react20.useContext)(Context4);
1799
1918
  const { meta } = useStyle();
1800
1919
  if (!context) {
1801
1920
  throw new Error("useStylesInheritanceSnapshot must be used within a StyleInheritanceProvider");
@@ -1806,7 +1925,7 @@ function useStylesInheritanceSnapshot() {
1806
1925
  return context.getSnapshot(meta) ?? null;
1807
1926
  }
1808
1927
  function useStylesInheritanceChain(path) {
1809
- const context = (0, import_react18.useContext)(Context4);
1928
+ const context = (0, import_react20.useContext)(Context4);
1810
1929
  if (!context) {
1811
1930
  throw new Error("useStylesInheritanceChain must be used within a StyleInheritanceProvider");
1812
1931
  }
@@ -1824,8 +1943,8 @@ var useAppliedStyles = () => {
1824
1943
  const baseStyles = useBaseStyles();
1825
1944
  useStylesRerender();
1826
1945
  const classesProp = (0, import_editor_elements4.useElementSetting)(element.id, currentClassesProp);
1827
- const appliedStyles = import_editor_props4.classesPropTypeUtil.extract(classesProp) ?? [];
1828
- return import_editor_styles_repository6.stylesRepository.all().filter((style) => [...baseStyles, ...appliedStyles].includes(style.id));
1946
+ const appliedStyles = import_editor_props5.classesPropTypeUtil.extract(classesProp) ?? [];
1947
+ return import_editor_styles_repository7.stylesRepository.all().filter((style) => [...baseStyles, ...appliedStyles].includes(style.id));
1829
1948
  };
1830
1949
  var useBaseStyles = () => {
1831
1950
  const { elementType } = useElement();
@@ -1863,34 +1982,36 @@ function useActiveAndAppliedClassId(id, appliedClassesIds) {
1863
1982
  // src/components/style-sections/background-section/background-section.tsx
1864
1983
  var React29 = __toESM(require("react"));
1865
1984
  var import_editor_controls7 = require("@elementor/editor-controls");
1985
+ var import_i18n12 = require("@wordpress/i18n");
1866
1986
 
1867
1987
  // src/controls-registry/styles-field.tsx
1868
- var React28 = __toESM(require("react"));
1988
+ var React27 = __toESM(require("react"));
1869
1989
  var import_editor_controls6 = require("@elementor/editor-controls");
1870
1990
  var import_editor_styles3 = require("@elementor/editor-styles");
1991
+ var import_editor_v1_adapters9 = require("@elementor/editor-v1-adapters");
1871
1992
 
1872
1993
  // src/hooks/use-styles-fields.ts
1873
- var import_react19 = require("react");
1994
+ var import_react21 = require("react");
1874
1995
  var import_editor_elements6 = require("@elementor/editor-elements");
1875
1996
  var import_editor_styles2 = require("@elementor/editor-styles");
1876
- var import_editor_styles_repository7 = require("@elementor/editor-styles-repository");
1877
- var import_editor_v1_adapters5 = require("@elementor/editor-v1-adapters");
1878
- var import_i18n6 = require("@wordpress/i18n");
1997
+ var import_editor_styles_repository8 = require("@elementor/editor-styles-repository");
1998
+ var import_editor_v1_adapters6 = require("@elementor/editor-v1-adapters");
1999
+ var import_i18n7 = require("@wordpress/i18n");
1879
2000
  function useStylesFields(propNames) {
1880
2001
  const { element } = useElement();
1881
- const { id, meta, provider } = useStyle();
2002
+ const { id, meta, provider, canEdit } = useStyle();
1882
2003
  const classesProp = useClassesProp();
1883
2004
  const undoableUpdateStyle = useUndoableUpdateStyle();
1884
2005
  const undoableCreateElementStyle = useUndoableCreateElementStyle();
1885
2006
  useStylesRerender();
1886
- const value = getProps({
2007
+ const values = getProps({
1887
2008
  elementId: element.id,
1888
2009
  styleId: id,
1889
2010
  provider,
1890
2011
  meta,
1891
2012
  propNames
1892
2013
  });
1893
- const setValue = (props) => {
2014
+ const setValues = (props) => {
1894
2015
  if (id === null) {
1895
2016
  undoableCreateElementStyle({
1896
2017
  elementId: element.id,
@@ -1908,7 +2029,7 @@ function useStylesFields(propNames) {
1908
2029
  props
1909
2030
  });
1910
2031
  };
1911
- return [value, setValue];
2032
+ return { values, setValues, canEdit };
1912
2033
  }
1913
2034
  function getProps({ styleId, elementId, provider, meta, propNames }) {
1914
2035
  if (!provider || !styleId) {
@@ -1924,13 +2045,13 @@ function getProps({ styleId, elementId, provider, meta, propNames }) {
1924
2045
  );
1925
2046
  }
1926
2047
  function useUndoableCreateElementStyle() {
1927
- return (0, import_react19.useMemo)(() => {
1928
- return (0, import_editor_v1_adapters5.undoable)(
2048
+ return (0, import_react21.useMemo)(() => {
2049
+ return (0, import_editor_v1_adapters6.undoable)(
1929
2050
  {
1930
2051
  do: (payload) => {
1931
2052
  return (0, import_editor_elements6.createElementStyle)({
1932
2053
  ...payload,
1933
- label: import_editor_styles_repository7.ELEMENTS_STYLES_RESERVED_LABEL
2054
+ label: import_editor_styles_repository8.ELEMENTS_STYLES_RESERVED_LABEL
1934
2055
  });
1935
2056
  },
1936
2057
  undo: ({ elementId }, styleId) => {
@@ -1940,20 +2061,20 @@ function useUndoableCreateElementStyle() {
1940
2061
  return (0, import_editor_elements6.createElementStyle)({
1941
2062
  ...payload,
1942
2063
  styleId,
1943
- label: import_editor_styles_repository7.ELEMENTS_STYLES_RESERVED_LABEL
2064
+ label: import_editor_styles_repository8.ELEMENTS_STYLES_RESERVED_LABEL
1944
2065
  });
1945
2066
  }
1946
2067
  },
1947
2068
  {
1948
2069
  title: ({ elementId }) => (0, import_editor_elements6.getElementLabel)(elementId),
1949
- subtitle: (0, import_i18n6.__)("Style edited", "elementor")
2070
+ subtitle: (0, import_i18n7.__)("Style edited", "elementor")
1950
2071
  }
1951
2072
  );
1952
2073
  }, []);
1953
2074
  }
1954
2075
  function useUndoableUpdateStyle() {
1955
- return (0, import_react19.useMemo)(() => {
1956
- return (0, import_editor_v1_adapters5.undoable)(
2076
+ return (0, import_react21.useMemo)(() => {
2077
+ return (0, import_editor_v1_adapters6.undoable)(
1957
2078
  {
1958
2079
  do: ({ elementId, styleId, provider, meta, props }) => {
1959
2080
  if (!provider.actions.updateProps) {
@@ -1979,7 +2100,7 @@ function useUndoableUpdateStyle() {
1979
2100
  },
1980
2101
  {
1981
2102
  title: ({ elementId }) => (0, import_editor_elements6.getElementLabel)(elementId),
1982
- subtitle: (0, import_i18n6.__)("Style edited", "elementor")
2103
+ subtitle: (0, import_i18n7.__)("Style edited", "elementor")
1983
2104
  }
1984
2105
  );
1985
2106
  }, []);
@@ -1995,27 +2116,27 @@ function getCurrentProps(style, meta) {
1995
2116
 
1996
2117
  // src/hooks/use-styles-field.ts
1997
2118
  function useStylesField(propName) {
1998
- const [values, setValues] = useStylesFields([propName]);
2119
+ const { values, setValues, canEdit } = useStylesFields([propName]);
1999
2120
  const value = values?.[propName] ?? null;
2000
2121
  const setValue = (newValue) => {
2001
2122
  setValues({
2002
2123
  [propName]: newValue
2003
2124
  });
2004
2125
  };
2005
- return [value, setValue];
2126
+ return { value, setValue, canEdit };
2006
2127
  }
2007
2128
 
2008
2129
  // src/styles-inheritance/components/styles-inheritance-indicator.tsx
2009
- var React27 = __toESM(require("react"));
2130
+ var React26 = __toESM(require("react"));
2010
2131
  var import_editor_controls5 = require("@elementor/editor-controls");
2011
- var import_editor_props5 = require("@elementor/editor-props");
2012
- var import_editor_styles_repository10 = require("@elementor/editor-styles-repository");
2013
- var import_editor_v1_adapters7 = require("@elementor/editor-v1-adapters");
2014
- var import_ui24 = require("@elementor/ui");
2015
- var import_i18n10 = require("@wordpress/i18n");
2132
+ var import_editor_props6 = require("@elementor/editor-props");
2133
+ var import_editor_styles_repository11 = require("@elementor/editor-styles-repository");
2134
+ var import_editor_v1_adapters8 = require("@elementor/editor-v1-adapters");
2135
+ var import_ui23 = require("@elementor/ui");
2136
+ var import_i18n11 = require("@wordpress/i18n");
2016
2137
 
2017
2138
  // src/styles-inheritance/consts.ts
2018
- var import_editor_v1_adapters6 = require("@elementor/editor-v1-adapters");
2139
+ var import_editor_v1_adapters7 = require("@elementor/editor-v1-adapters");
2019
2140
  var excludePropTypeTransformers = /* @__PURE__ */ new Set([
2020
2141
  "background-color-overlay",
2021
2142
  "background-image-overlay",
@@ -2028,28 +2149,18 @@ var excludePropTypeTransformers = /* @__PURE__ */ new Set([
2028
2149
  "image",
2029
2150
  "background-overlay"
2030
2151
  ]);
2031
- var isUsingIndicatorPopover = () => (0, import_editor_v1_adapters6.isExperimentActive)("e_v_3_30");
2152
+ var isUsingIndicatorPopover = () => (0, import_editor_v1_adapters7.isExperimentActive)("e_v_3_30");
2032
2153
 
2033
2154
  // src/styles-inheritance/components/styles-inheritance-infotip.tsx
2034
- var React26 = __toESM(require("react"));
2035
- var import_react22 = require("react");
2155
+ var React25 = __toESM(require("react"));
2156
+ var import_react23 = require("react");
2036
2157
  var import_editor_canvas2 = require("@elementor/editor-canvas");
2037
- var import_ui23 = require("@elementor/ui");
2038
- var import_i18n9 = require("@wordpress/i18n");
2039
-
2040
- // src/components/section-content.tsx
2041
- var import_react20 = require("react");
2042
- var React21 = __toESM(require("react"));
2043
- var import_ui17 = require("@elementor/ui");
2044
- var SectionContentRefContext = (0, import_react20.createContext)(null);
2045
- var useSectionContentRef = () => (0, import_react20.useContext)(SectionContentRefContext);
2046
- var SectionContent = ({ gap = 2, sx, children }) => {
2047
- const ref = (0, import_react20.useRef)(null);
2048
- return /* @__PURE__ */ React21.createElement(SectionContentRefContext.Provider, { value: ref }, /* @__PURE__ */ React21.createElement(import_ui17.Stack, { gap, sx: { ...sx }, ref }, children));
2049
- };
2158
+ var import_editor_ui4 = require("@elementor/editor-ui");
2159
+ var import_ui22 = require("@elementor/ui");
2160
+ var import_i18n10 = require("@wordpress/i18n");
2050
2161
 
2051
2162
  // src/hooks/use-direction.ts
2052
- var import_ui18 = require("@elementor/ui");
2163
+ var import_ui17 = require("@elementor/ui");
2053
2164
 
2054
2165
  // src/sync/get-elementor-globals.ts
2055
2166
  var getElementorConfig = () => {
@@ -2063,26 +2174,26 @@ var getElementorFrontendConfig = () => {
2063
2174
 
2064
2175
  // src/hooks/use-direction.ts
2065
2176
  function useDirection() {
2066
- const theme = (0, import_ui18.useTheme)();
2177
+ const theme = (0, import_ui17.useTheme)();
2067
2178
  const isUiRtl = "rtl" === theme.direction, isSiteRtl = !!getElementorFrontendConfig()?.is_rtl;
2068
2179
  return { isSiteRtl, isUiRtl };
2069
2180
  }
2070
2181
 
2071
2182
  // src/styles-inheritance/hooks/use-normalized-inheritance-chain-items.tsx
2072
- var import_react21 = require("react");
2073
- var import_editor_styles_repository8 = require("@elementor/editor-styles-repository");
2074
- var import_i18n7 = require("@wordpress/i18n");
2183
+ var import_react22 = require("react");
2184
+ var import_editor_styles_repository9 = require("@elementor/editor-styles-repository");
2185
+ var import_i18n8 = require("@wordpress/i18n");
2075
2186
  var MAXIMUM_ITEMS = 2;
2076
2187
  var useNormalizedInheritanceChainItems = (inheritanceChain, bind, resolve) => {
2077
- const [items3, setItems] = (0, import_react21.useState)([]);
2078
- (0, import_react21.useEffect)(() => {
2188
+ const [items3, setItems] = (0, import_react22.useState)([]);
2189
+ (0, import_react22.useEffect)(() => {
2079
2190
  (async () => {
2080
2191
  const normalizedItems = await Promise.all(
2081
2192
  inheritanceChain.filter(({ style }) => style).map((item, index) => normalizeInheritanceItem(item, index, bind, resolve))
2082
2193
  );
2083
2194
  const validItems = normalizedItems.map((item) => ({
2084
2195
  ...item,
2085
- displayLabel: import_editor_styles_repository8.ELEMENTS_BASE_STYLES_PROVIDER_KEY !== item.provider ? item.displayLabel : (0, import_i18n7.__)("Base", "elementor")
2196
+ displayLabel: import_editor_styles_repository9.ELEMENTS_BASE_STYLES_PROVIDER_KEY !== item.provider ? item.displayLabel : (0, import_i18n8.__)("Base", "elementor")
2086
2197
  })).filter((item) => !item.value || item.displayLabel !== "").slice(0, MAXIMUM_ITEMS);
2087
2198
  setItems(validItems);
2088
2199
  })();
@@ -2103,8 +2214,7 @@ var normalizeInheritanceItem = async (item, index, bind, resolve) => {
2103
2214
  provider: item.provider || "",
2104
2215
  breakpoint: breakpoint ?? DEFAULT_BREAKPOINT2,
2105
2216
  displayLabel,
2106
- value: await getTransformedValue(item, bind, resolve),
2107
- chipColor: getChipColor(item)
2217
+ value: await getTransformedValue(item, bind, resolve)
2108
2218
  };
2109
2219
  };
2110
2220
  var getTransformedValue = async (item, bind, resolve) => {
@@ -2115,7 +2225,7 @@ var getTransformedValue = async (item, bind, resolve) => {
2115
2225
  }
2116
2226
  });
2117
2227
  const value = result?.[bind] ?? result;
2118
- if ((0, import_react21.isValidElement)(value)) {
2228
+ if ((0, import_react22.isValidElement)(value)) {
2119
2229
  return value;
2120
2230
  }
2121
2231
  if (typeof value === "object") {
@@ -2126,26 +2236,16 @@ var getTransformedValue = async (item, bind, resolve) => {
2126
2236
  return "";
2127
2237
  }
2128
2238
  };
2129
- var getChipColor = (item) => {
2130
- const { provider = "", style } = item;
2131
- if (provider === import_editor_styles_repository8.ELEMENTS_BASE_STYLES_PROVIDER_KEY) {
2132
- return "default";
2133
- }
2134
- if (style?.label === "local") {
2135
- return "accent";
2136
- }
2137
- return "global";
2138
- };
2139
2239
 
2140
2240
  // src/styles-inheritance/styles-inheritance-transformers-registry.tsx
2141
2241
  var import_editor_canvas = require("@elementor/editor-canvas");
2142
2242
  var stylesInheritanceTransformersRegistry = (0, import_editor_canvas.createTransformersRegistry)();
2143
2243
 
2144
2244
  // src/styles-inheritance/components/infotip/breakpoint-icon.tsx
2145
- var React22 = __toESM(require("react"));
2245
+ var React21 = __toESM(require("react"));
2146
2246
  var import_editor_responsive2 = require("@elementor/editor-responsive");
2147
2247
  var import_icons4 = require("@elementor/icons");
2148
- var import_ui19 = require("@elementor/ui");
2248
+ var import_ui18 = require("@elementor/ui");
2149
2249
  var SIZE3 = "tiny";
2150
2250
  var DEFAULT_BREAKPOINT3 = "desktop";
2151
2251
  var breakpointIconMap = {
@@ -2165,25 +2265,25 @@ var BreakpointIcon = ({ breakpoint }) => {
2165
2265
  return null;
2166
2266
  }
2167
2267
  const breakpointLabel = breakpoints.find((breakpointItem) => breakpointItem.id === currentBreakpoint)?.label;
2168
- return /* @__PURE__ */ React22.createElement(import_ui19.Tooltip, { title: breakpointLabel, placement: "top" }, /* @__PURE__ */ React22.createElement(IconComponent, { fontSize: SIZE3, sx: { mt: "2px" } }));
2268
+ return /* @__PURE__ */ React21.createElement(import_ui18.Tooltip, { title: breakpointLabel, placement: "top" }, /* @__PURE__ */ React21.createElement(IconComponent, { fontSize: SIZE3, sx: { mt: "2px" } }));
2169
2269
  };
2170
2270
 
2171
2271
  // src/styles-inheritance/components/infotip/label-chip.tsx
2172
- var React23 = __toESM(require("react"));
2173
- var import_editor_styles_repository9 = require("@elementor/editor-styles-repository");
2272
+ var React22 = __toESM(require("react"));
2273
+ var import_editor_styles_repository10 = require("@elementor/editor-styles-repository");
2174
2274
  var import_icons5 = require("@elementor/icons");
2175
- var import_ui20 = require("@elementor/ui");
2176
- var import_i18n8 = require("@wordpress/i18n");
2275
+ var import_ui19 = require("@elementor/ui");
2276
+ var import_i18n9 = require("@wordpress/i18n");
2177
2277
  var SIZE4 = "tiny";
2178
- var LabelChip = ({ displayLabel, provider, chipColor }) => {
2179
- const isBaseStyle = provider === import_editor_styles_repository9.ELEMENTS_BASE_STYLES_PROVIDER_KEY;
2180
- const chipIcon = isBaseStyle ? /* @__PURE__ */ React23.createElement(import_ui20.Tooltip, { title: (0, import_i18n8.__)("Inherited from base styles", "elementor"), placement: "top" }, /* @__PURE__ */ React23.createElement(import_icons5.InfoCircleIcon, { fontSize: SIZE4 })) : void 0;
2181
- return /* @__PURE__ */ React23.createElement(
2182
- import_ui20.Chip,
2278
+ var LabelChip = ({ displayLabel, provider }) => {
2279
+ const isBaseStyle = provider === import_editor_styles_repository10.ELEMENTS_BASE_STYLES_PROVIDER_KEY;
2280
+ const chipIcon = isBaseStyle ? /* @__PURE__ */ React22.createElement(import_ui19.Tooltip, { title: (0, import_i18n9.__)("Inherited from base styles", "elementor"), placement: "top" }, /* @__PURE__ */ React22.createElement(import_icons5.InfoCircleIcon, { fontSize: SIZE4 })) : void 0;
2281
+ return /* @__PURE__ */ React22.createElement(
2282
+ import_ui19.Chip,
2183
2283
  {
2184
2284
  label: displayLabel,
2185
2285
  size: SIZE4,
2186
- color: chipColor,
2286
+ color: getStylesProviderColorName(provider),
2187
2287
  variant: "standard",
2188
2288
  state: "enabled",
2189
2289
  icon: chipIcon,
@@ -2204,11 +2304,11 @@ var LabelChip = ({ displayLabel, provider, chipColor }) => {
2204
2304
  };
2205
2305
 
2206
2306
  // src/styles-inheritance/components/infotip/value-component.tsx
2207
- var React24 = __toESM(require("react"));
2208
- var import_ui21 = require("@elementor/ui");
2307
+ var React23 = __toESM(require("react"));
2308
+ var import_ui20 = require("@elementor/ui");
2209
2309
  var ValueComponent = ({ index, value }) => {
2210
- return /* @__PURE__ */ React24.createElement(
2211
- import_ui21.Typography,
2310
+ return /* @__PURE__ */ React23.createElement(
2311
+ import_ui20.Typography,
2212
2312
  {
2213
2313
  variant: "caption",
2214
2314
  color: "text.tertiary",
@@ -2225,38 +2325,37 @@ var ValueComponent = ({ index, value }) => {
2225
2325
  };
2226
2326
 
2227
2327
  // src/styles-inheritance/components/infotip/action-icons.tsx
2228
- var React25 = __toESM(require("react"));
2229
- var import_ui22 = require("@elementor/ui");
2230
- var ActionIcons = () => /* @__PURE__ */ React25.createElement(import_ui22.Box, { display: "flex", gap: 0.5, alignItems: "center" });
2328
+ var React24 = __toESM(require("react"));
2329
+ var import_ui21 = require("@elementor/ui");
2330
+ var ActionIcons = () => /* @__PURE__ */ React24.createElement(import_ui21.Box, { display: "flex", gap: 0.5, alignItems: "center" });
2231
2331
 
2232
2332
  // src/styles-inheritance/components/styles-inheritance-infotip.tsx
2233
- var SIZE5 = "tiny";
2333
+ var SECTION_PADDING_INLINE = 32;
2234
2334
  var StylesInheritanceInfotip = ({ inheritanceChain, propType, path, label, children }) => {
2235
- const [showInfotip, setShowInfotip] = (0, import_react22.useState)(false);
2335
+ const [showInfotip, setShowInfotip] = (0, import_react23.useState)(false);
2236
2336
  const toggleInfotip = () => setShowInfotip((prev) => !prev);
2237
2337
  const closeInfotip = () => setShowInfotip(false);
2238
2338
  const key = path.join(".");
2239
- const sectionContentRef = useSectionContentRef();
2240
- const sectionContentWidth = sectionContentRef?.current?.offsetWidth ?? 320;
2241
- const resolve = (0, import_react22.useMemo)(() => {
2339
+ const sectionWidth = useSectionWidth() + SECTION_PADDING_INLINE;
2340
+ const resolve = (0, import_react23.useMemo)(() => {
2242
2341
  return (0, import_editor_canvas2.createPropsResolver)({
2243
2342
  transformers: stylesInheritanceTransformersRegistry,
2244
2343
  schema: { [key]: propType }
2245
2344
  });
2246
2345
  }, [key, propType]);
2247
2346
  const items3 = useNormalizedInheritanceChainItems(inheritanceChain, key, resolve);
2248
- const infotipContent = /* @__PURE__ */ React26.createElement(import_ui23.ClickAwayListener, { onClickAway: closeInfotip }, /* @__PURE__ */ React26.createElement(
2249
- import_ui23.Card,
2347
+ const infotipContent = /* @__PURE__ */ React25.createElement(import_ui22.ClickAwayListener, { onClickAway: closeInfotip }, /* @__PURE__ */ React25.createElement(
2348
+ import_ui22.Card,
2250
2349
  {
2251
2350
  elevation: 0,
2252
2351
  sx: {
2253
- width: `${sectionContentWidth}px`,
2254
- maxWidth: 500,
2352
+ width: `${sectionWidth - SECTION_PADDING_INLINE}px`,
2353
+ maxWidth: 496,
2255
2354
  overflowX: "hidden"
2256
2355
  }
2257
2356
  },
2258
- /* @__PURE__ */ React26.createElement(
2259
- import_ui23.CardContent,
2357
+ /* @__PURE__ */ React25.createElement(
2358
+ import_ui22.CardContent,
2260
2359
  {
2261
2360
  sx: {
2262
2361
  display: "flex",
@@ -2268,49 +2367,35 @@ var StylesInheritanceInfotip = ({ inheritanceChain, propType, path, label, child
2268
2367
  }
2269
2368
  }
2270
2369
  },
2271
- /* @__PURE__ */ React26.createElement(import_ui23.Stack, { direction: "row", alignItems: "center", sx: { pl: 1.5, pr: 0.5, minHeight: 36, py: 0.5 } }, /* @__PURE__ */ React26.createElement(import_ui23.Typography, { variant: "subtitle2", color: "secondary", sx: { fontSize: 12, fontWeight: "500" } }, (0, import_i18n9.__)("Style origin", "elementor")), /* @__PURE__ */ React26.createElement(
2272
- import_ui23.CloseButton,
2273
- {
2274
- slotProps: { icon: { fontSize: SIZE5 } },
2275
- sx: { ml: "auto" },
2276
- onClick: closeInfotip
2277
- }
2278
- )),
2279
- /* @__PURE__ */ React26.createElement(
2280
- import_ui23.Stack,
2370
+ /* @__PURE__ */ React25.createElement(import_editor_ui4.PopoverHeader, { title: (0, import_i18n10.__)("Style origin", "elementor"), onClose: closeInfotip }),
2371
+ /* @__PURE__ */ React25.createElement(
2372
+ import_ui22.Stack,
2281
2373
  {
2282
2374
  gap: 1.5,
2283
2375
  sx: { pl: 2, pr: 1, pb: 2, overflowX: "hidden", overflowY: "auto" },
2284
2376
  role: "list"
2285
2377
  },
2286
2378
  items3.map((item, index) => {
2287
- return /* @__PURE__ */ React26.createElement(
2288
- import_ui23.Box,
2379
+ return /* @__PURE__ */ React25.createElement(
2380
+ import_ui22.Box,
2289
2381
  {
2290
2382
  key: item.id,
2291
2383
  display: "flex",
2292
2384
  gap: 0.5,
2293
2385
  role: "listitem",
2294
- "aria-label": (0, import_i18n9.__)("Inheritance item: %s", "elementor").replace(
2386
+ "aria-label": (0, import_i18n10.__)("Inheritance item: %s", "elementor").replace(
2295
2387
  "%s",
2296
2388
  item.displayLabel
2297
2389
  )
2298
2390
  },
2299
- /* @__PURE__ */ React26.createElement(import_ui23.Box, { display: "flex", gap: 0.5, sx: { flexWrap: "wrap", width: "100%" } }, /* @__PURE__ */ React26.createElement(BreakpointIcon, { breakpoint: item.breakpoint }), /* @__PURE__ */ React26.createElement(
2300
- LabelChip,
2301
- {
2302
- displayLabel: item.displayLabel,
2303
- provider: item.provider,
2304
- chipColor: item.chipColor
2305
- }
2306
- ), /* @__PURE__ */ React26.createElement(ValueComponent, { index, value: item.value })),
2307
- /* @__PURE__ */ React26.createElement(ActionIcons, null)
2391
+ /* @__PURE__ */ React25.createElement(import_ui22.Box, { display: "flex", gap: 0.5, sx: { flexWrap: "wrap", width: "100%" } }, /* @__PURE__ */ React25.createElement(BreakpointIcon, { breakpoint: item.breakpoint }), /* @__PURE__ */ React25.createElement(LabelChip, { displayLabel: item.displayLabel, provider: item.provider }), /* @__PURE__ */ React25.createElement(ValueComponent, { index, value: item.value })),
2392
+ /* @__PURE__ */ React25.createElement(ActionIcons, null)
2308
2393
  );
2309
2394
  })
2310
2395
  )
2311
2396
  )
2312
2397
  ));
2313
- return /* @__PURE__ */ React26.createElement(TooltipOrInfotip, { showInfotip, onClose: closeInfotip, infotipContent }, /* @__PURE__ */ React26.createElement(import_ui23.IconButton, { onClick: toggleInfotip, "aria-label": label, sx: { my: "-1px" } }, children));
2398
+ return /* @__PURE__ */ React25.createElement(TooltipOrInfotip, { showInfotip, onClose: closeInfotip, infotipContent }, /* @__PURE__ */ React25.createElement(import_ui22.IconButton, { onClick: toggleInfotip, "aria-label": label, sx: { my: "-1px" } }, children));
2314
2399
  };
2315
2400
  function TooltipOrInfotip({
2316
2401
  children,
@@ -2321,8 +2406,8 @@ function TooltipOrInfotip({
2321
2406
  const { isSiteRtl } = useDirection();
2322
2407
  const forceInfotipAlignLeft = isSiteRtl ? 9999999 : -9999999;
2323
2408
  if (showInfotip) {
2324
- return /* @__PURE__ */ React26.createElement(React26.Fragment, null, /* @__PURE__ */ React26.createElement(
2325
- import_ui23.Backdrop,
2409
+ return /* @__PURE__ */ React25.createElement(React25.Fragment, null, /* @__PURE__ */ React25.createElement(
2410
+ import_ui22.Backdrop,
2326
2411
  {
2327
2412
  open: showInfotip,
2328
2413
  onClick: onClose,
@@ -2331,8 +2416,8 @@ function TooltipOrInfotip({
2331
2416
  zIndex: (theme) => theme.zIndex.modal - 1
2332
2417
  }
2333
2418
  }
2334
- ), /* @__PURE__ */ React26.createElement(
2335
- import_ui23.Infotip,
2419
+ ), /* @__PURE__ */ React25.createElement(
2420
+ import_ui22.Infotip,
2336
2421
  {
2337
2422
  placement: "top",
2338
2423
  content: infotipContent,
@@ -2358,84 +2443,74 @@ function TooltipOrInfotip({
2358
2443
  children
2359
2444
  ));
2360
2445
  }
2361
- return /* @__PURE__ */ React26.createElement(import_ui23.Tooltip, { title: (0, import_i18n9.__)("Style origin", "elementor"), placement: "top" }, children);
2446
+ return /* @__PURE__ */ React25.createElement(import_ui22.Tooltip, { title: (0, import_i18n10.__)("Style origin", "elementor"), placement: "top" }, children);
2362
2447
  }
2363
2448
 
2364
2449
  // src/styles-inheritance/components/styles-inheritance-indicator.tsx
2365
2450
  var StylesInheritanceIndicator = () => {
2366
2451
  const { path, propType } = (0, import_editor_controls5.useBoundProp)();
2367
- const { id: currentStyleId, provider: currentStyleProvider, meta: currentStyleMeta } = useStyle();
2368
- const isUsingNestedProps = (0, import_editor_v1_adapters7.isExperimentActive)(EXPERIMENTAL_FEATURES.V_3_30);
2452
+ const isUsingNestedProps = (0, import_editor_v1_adapters8.isExperimentActive)(EXPERIMENTAL_FEATURES.V_3_30);
2369
2453
  const finalPath = isUsingNestedProps ? path : path.slice(0, 1);
2370
2454
  const inheritanceChain = useStylesInheritanceChain(finalPath);
2371
2455
  if (!inheritanceChain.length) {
2372
2456
  return null;
2373
2457
  }
2374
- const currentItem = inheritanceChain.find(
2375
- ({
2376
- style,
2377
- variant: {
2378
- meta: { breakpoint, state }
2379
- }
2380
- }) => style.id === currentStyleId && breakpoint === currentStyleMeta.breakpoint && state === currentStyleMeta.state
2381
- );
2382
- const hasValue = !(0, import_editor_props5.isEmpty)(currentItem?.value);
2458
+ return /* @__PURE__ */ React26.createElement(Indicator, { inheritanceChain, path: finalPath, propType });
2459
+ };
2460
+ var Indicator = ({ inheritanceChain, path, propType }) => {
2461
+ const { id: currentStyleId, provider: currentStyleProvider, meta: currentStyleMeta } = useStyle();
2462
+ const currentItem = currentStyleId ? getValueFromInheritanceChain(inheritanceChain, currentStyleId, currentStyleMeta) : null;
2463
+ const hasValue = !(0, import_editor_props6.isEmpty)(currentItem?.value);
2383
2464
  const [actualStyle] = inheritanceChain;
2384
- if (actualStyle.provider === import_editor_styles_repository10.ELEMENTS_BASE_STYLES_PROVIDER_KEY) {
2465
+ if (!(0, import_editor_v1_adapters8.isExperimentActive)(EXPERIMENTAL_FEATURES.V_3_31) && actualStyle.provider === import_editor_styles_repository11.ELEMENTS_BASE_STYLES_PROVIDER_KEY) {
2385
2466
  return null;
2386
2467
  }
2387
2468
  const isFinalValue = currentItem === actualStyle;
2388
2469
  const label = getLabel({ isFinalValue, hasValue });
2389
- const variantType = getVariant({ isFinalValue, hasValue, currentStyleProvider });
2470
+ const styleIndicatorProps = {
2471
+ getColor: isFinalValue && currentStyleProvider ? getStylesProviderThemeColor(currentStyleProvider.getKey()) : void 0,
2472
+ isOverridden: hasValue && !isFinalValue ? true : void 0
2473
+ };
2390
2474
  if (!isUsingIndicatorPopover()) {
2391
- return /* @__PURE__ */ React27.createElement(import_ui24.Tooltip, { title: (0, import_i18n10.__)("Style origin", "elementor"), placement: "top" }, /* @__PURE__ */ React27.createElement(StyleIndicator, { variant: variantType, "aria-label": label }));
2475
+ return /* @__PURE__ */ React26.createElement(import_ui23.Tooltip, { title: (0, import_i18n11.__)("Style origin", "elementor"), placement: "top" }, /* @__PURE__ */ React26.createElement(StyleIndicator, { ...styleIndicatorProps, "aria-label": label }));
2392
2476
  }
2393
- return /* @__PURE__ */ React27.createElement(
2477
+ return /* @__PURE__ */ React26.createElement(
2394
2478
  StylesInheritanceInfotip,
2395
2479
  {
2396
2480
  inheritanceChain,
2397
- path: finalPath,
2481
+ path,
2398
2482
  propType,
2399
2483
  label
2400
2484
  },
2401
- /* @__PURE__ */ React27.createElement(StyleIndicator, { variant: variantType })
2485
+ /* @__PURE__ */ React26.createElement(StyleIndicator, { ...styleIndicatorProps })
2402
2486
  );
2403
2487
  };
2404
2488
  var getLabel = ({ isFinalValue, hasValue }) => {
2405
2489
  if (isFinalValue) {
2406
- return (0, import_i18n10.__)("This is the final value", "elementor");
2407
- }
2408
- if (hasValue) {
2409
- return (0, import_i18n10.__)("This value is overridden by another style", "elementor");
2410
- }
2411
- return (0, import_i18n10.__)("This has value from another style", "elementor");
2412
- };
2413
- var getVariant = ({
2414
- isFinalValue,
2415
- hasValue,
2416
- currentStyleProvider
2417
- }) => {
2418
- if (isFinalValue) {
2419
- return (0, import_editor_styles_repository10.isElementsStylesProvider)(currentStyleProvider?.getKey?.()) ? "local" : "global";
2490
+ return (0, import_i18n11.__)("This is the final value", "elementor");
2420
2491
  }
2421
2492
  if (hasValue) {
2422
- return "overridden";
2493
+ return (0, import_i18n11.__)("This value is overridden by another style", "elementor");
2423
2494
  }
2424
- return void 0;
2495
+ return (0, import_i18n11.__)("This has value from another style", "elementor");
2425
2496
  };
2426
2497
 
2427
2498
  // src/controls-registry/styles-field.tsx
2428
2499
  var StylesField = ({ bind, placeholder, children }) => {
2429
- const [value, setValue] = useStylesField(bind);
2430
- const { canEdit } = useStyle();
2500
+ const { value, setValue, canEdit } = useStylesField(bind);
2501
+ const isVersion331Active = (0, import_editor_v1_adapters9.isExperimentActive)("e_v_3_31");
2502
+ const stylesInheritanceChain = useStylesInheritanceChain([bind]);
2431
2503
  const stylesSchema = (0, import_editor_styles3.getStylesSchema)();
2432
2504
  const propType = createTopLevelOjectType({ schema: stylesSchema });
2433
2505
  const values = { [bind]: value };
2434
- const placeholderValues = { [bind]: placeholder };
2506
+ const [actualValue] = stylesInheritanceChain;
2507
+ const placeholderValues = {
2508
+ [bind]: isVersion331Active ? actualValue?.value : placeholder
2509
+ };
2435
2510
  const setValues = (newValue) => {
2436
2511
  setValue(newValue[bind]);
2437
2512
  };
2438
- return /* @__PURE__ */ React28.createElement(
2513
+ return /* @__PURE__ */ React27.createElement(
2439
2514
  import_editor_controls6.ControlAdornmentsProvider,
2440
2515
  {
2441
2516
  items: [
@@ -2445,7 +2520,7 @@ var StylesField = ({ bind, placeholder, children }) => {
2445
2520
  }
2446
2521
  ]
2447
2522
  },
2448
- /* @__PURE__ */ React28.createElement(
2523
+ /* @__PURE__ */ React27.createElement(
2449
2524
  import_editor_controls6.PropProvider,
2450
2525
  {
2451
2526
  propType,
@@ -2454,18 +2529,24 @@ var StylesField = ({ bind, placeholder, children }) => {
2454
2529
  placeholder: placeholderValues,
2455
2530
  disabled: !canEdit
2456
2531
  },
2457
- /* @__PURE__ */ React28.createElement(import_editor_controls6.PropKeyProvider, { bind }, children)
2532
+ /* @__PURE__ */ React27.createElement(import_editor_controls6.PropKeyProvider, { bind }, children)
2458
2533
  )
2459
2534
  );
2460
2535
  };
2461
2536
 
2537
+ // src/components/section-content.tsx
2538
+ var React28 = __toESM(require("react"));
2539
+ var import_ui24 = require("@elementor/ui");
2540
+ var SectionContent = ({ gap = 2, sx, children }) => /* @__PURE__ */ React28.createElement(import_ui24.Stack, { gap, sx: { ...sx } }, children);
2541
+
2462
2542
  // src/components/style-sections/background-section/background-section.tsx
2543
+ var BACKGROUND_LABEL = (0, import_i18n12.__)("Background", "elementor");
2463
2544
  var BackgroundSection = () => {
2464
- return /* @__PURE__ */ React29.createElement(SectionContent, null, /* @__PURE__ */ React29.createElement(StylesField, { bind: "background" }, /* @__PURE__ */ React29.createElement(import_editor_controls7.BackgroundControl, null)));
2545
+ return /* @__PURE__ */ React29.createElement(SectionContent, null, /* @__PURE__ */ React29.createElement(StylesField, { bind: "background", propDisplayName: BACKGROUND_LABEL }, /* @__PURE__ */ React29.createElement(import_editor_controls7.BackgroundControl, null)));
2465
2546
  };
2466
2547
 
2467
2548
  // src/components/style-sections/border-section/border-section.tsx
2468
- var React39 = __toESM(require("react"));
2549
+ var React40 = __toESM(require("react"));
2469
2550
 
2470
2551
  // src/components/panel-divider.tsx
2471
2552
  var React30 = __toESM(require("react"));
@@ -2473,15 +2554,15 @@ var import_ui25 = require("@elementor/ui");
2473
2554
  var PanelDivider = () => /* @__PURE__ */ React30.createElement(import_ui25.Divider, { sx: { my: 0.5 } });
2474
2555
 
2475
2556
  // src/components/style-sections/border-section/border-field.tsx
2476
- var React36 = __toESM(require("react"));
2557
+ var React37 = __toESM(require("react"));
2477
2558
  var import_editor_controls12 = require("@elementor/editor-controls");
2478
- var import_i18n14 = require("@wordpress/i18n");
2559
+ var import_i18n16 = require("@wordpress/i18n");
2479
2560
 
2480
2561
  // src/components/add-or-remove-content.tsx
2481
2562
  var React31 = __toESM(require("react"));
2482
2563
  var import_icons6 = require("@elementor/icons");
2483
2564
  var import_ui26 = require("@elementor/ui");
2484
- var SIZE6 = "tiny";
2565
+ var SIZE5 = "tiny";
2485
2566
  var AddOrRemoveContent = ({
2486
2567
  isAdded,
2487
2568
  onAdd,
@@ -2501,15 +2582,18 @@ var AddOrRemoveContent = ({
2501
2582
  }
2502
2583
  },
2503
2584
  renderLabel(),
2504
- isAdded ? /* @__PURE__ */ React31.createElement(import_ui26.IconButton, { size: SIZE6, onClick: onRemove, "aria-label": "Remove", disabled }, /* @__PURE__ */ React31.createElement(import_icons6.MinusIcon, { fontSize: SIZE6 })) : /* @__PURE__ */ React31.createElement(import_ui26.IconButton, { size: SIZE6, onClick: onAdd, "aria-label": "Add", disabled }, /* @__PURE__ */ React31.createElement(import_icons6.PlusIcon, { fontSize: SIZE6 }))
2585
+ isAdded ? /* @__PURE__ */ React31.createElement(import_ui26.IconButton, { size: SIZE5, onClick: onRemove, "aria-label": "Remove", disabled }, /* @__PURE__ */ React31.createElement(import_icons6.MinusIcon, { fontSize: SIZE5 })) : /* @__PURE__ */ React31.createElement(import_ui26.IconButton, { size: SIZE5, onClick: onAdd, "aria-label": "Add", disabled }, /* @__PURE__ */ React31.createElement(import_icons6.PlusIcon, { fontSize: SIZE5 }))
2505
2586
  ), /* @__PURE__ */ React31.createElement(import_ui26.Collapse, { in: isAdded, unmountOnExit: true }, /* @__PURE__ */ React31.createElement(SectionContent, null, children)));
2506
2587
  };
2507
2588
 
2508
2589
  // src/components/style-sections/border-section/border-color-field.tsx
2509
- var React33 = __toESM(require("react"));
2590
+ var React34 = __toESM(require("react"));
2510
2591
  var import_editor_controls9 = require("@elementor/editor-controls");
2592
+ var import_i18n13 = require("@wordpress/i18n");
2593
+
2594
+ // src/components/styles-field-layout.tsx
2595
+ var React33 = __toESM(require("react"));
2511
2596
  var import_ui28 = require("@elementor/ui");
2512
- var import_i18n11 = require("@wordpress/i18n");
2513
2597
 
2514
2598
  // src/components/control-label.tsx
2515
2599
  var React32 = __toESM(require("react"));
@@ -2519,72 +2603,97 @@ var ControlLabel = ({ children }) => {
2519
2603
  return /* @__PURE__ */ React32.createElement(import_ui27.Stack, { direction: "row", alignItems: "center", justifyItems: "start", gap: 0.25 }, /* @__PURE__ */ React32.createElement(import_editor_controls8.ControlFormLabel, null, children), /* @__PURE__ */ React32.createElement(import_editor_controls8.ControlAdornments, null));
2520
2604
  };
2521
2605
 
2522
- // src/components/style-sections/border-section/border-color-field.tsx
2523
- var BorderColorField = () => {
2524
- return /* @__PURE__ */ React33.createElement(StylesField, { bind: "border-color" }, /* @__PURE__ */ React33.createElement(import_ui28.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React33.createElement(import_ui28.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React33.createElement(ControlLabel, null, (0, import_i18n11.__)("Border color", "elementor"))), /* @__PURE__ */ React33.createElement(import_ui28.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React33.createElement(import_editor_controls9.ColorControl, null))));
2525
- };
2526
-
2527
- // src/components/style-sections/border-section/border-style-field.tsx
2528
- var React34 = __toESM(require("react"));
2529
- var import_editor_controls10 = require("@elementor/editor-controls");
2530
- var import_ui29 = require("@elementor/ui");
2531
- var import_i18n12 = require("@wordpress/i18n");
2532
- var borderStyles = [
2533
- { value: "none", label: (0, import_i18n12.__)("None", "elementor") },
2534
- { value: "solid", label: (0, import_i18n12.__)("Solid", "elementor") },
2535
- { value: "dashed", label: (0, import_i18n12.__)("Dashed", "elementor") },
2536
- { value: "dotted", label: (0, import_i18n12.__)("Dotted", "elementor") },
2537
- { value: "double", label: (0, import_i18n12.__)("Double", "elementor") },
2538
- { value: "groove", label: (0, import_i18n12.__)("Groove", "elementor") },
2539
- { value: "ridge", label: (0, import_i18n12.__)("Ridge", "elementor") },
2540
- { value: "inset", label: (0, import_i18n12.__)("Inset", "elementor") },
2541
- { value: "outset", label: (0, import_i18n12.__)("Outset", "elementor") }
2606
+ // src/components/styles-field-layout.tsx
2607
+ var StylesFieldLayout = React33.forwardRef((props, ref) => {
2608
+ const { direction = "row", children, label } = props;
2609
+ const LayoutComponent = direction === "row" ? Row : Column;
2610
+ return /* @__PURE__ */ React33.createElement(LayoutComponent, { label, ref, children });
2611
+ });
2612
+ var Row = React33.forwardRef(
2613
+ ({ label, children }, ref) => {
2614
+ return /* @__PURE__ */ React33.createElement(import_ui28.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap", ref }, /* @__PURE__ */ React33.createElement(import_ui28.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React33.createElement(ControlLabel, null, label)), /* @__PURE__ */ React33.createElement(
2615
+ import_ui28.Grid,
2616
+ {
2617
+ item: true,
2618
+ xs: 6,
2619
+ sx: (theme) => ({
2620
+ width: `calc(50% - ${theme.spacing(2)})`
2621
+ })
2622
+ },
2623
+ children
2624
+ ));
2625
+ }
2626
+ );
2627
+ var Column = React33.forwardRef(
2628
+ ({ label, children }, ref) => {
2629
+ return /* @__PURE__ */ React33.createElement(import_ui28.Stack, { gap: 0.75, ref }, /* @__PURE__ */ React33.createElement(ControlLabel, null, label), children);
2630
+ }
2631
+ );
2632
+
2633
+ // src/components/style-sections/border-section/border-color-field.tsx
2634
+ var BORDER_COLOR_LABEL = (0, import_i18n13.__)("Border color", "elementor");
2635
+ var BorderColorField = () => /* @__PURE__ */ React34.createElement(StylesField, { bind: "border-color", propDisplayName: BORDER_COLOR_LABEL }, /* @__PURE__ */ React34.createElement(StylesFieldLayout, { label: BORDER_COLOR_LABEL }, /* @__PURE__ */ React34.createElement(import_editor_controls9.ColorControl, null)));
2636
+
2637
+ // src/components/style-sections/border-section/border-style-field.tsx
2638
+ var React35 = __toESM(require("react"));
2639
+ var import_editor_controls10 = require("@elementor/editor-controls");
2640
+ var import_i18n14 = require("@wordpress/i18n");
2641
+ var BORDER_TYPE_LABEL = (0, import_i18n14.__)("Border type", "elementor");
2642
+ var borderStyles = [
2643
+ { value: "none", label: (0, import_i18n14.__)("None", "elementor") },
2644
+ { value: "solid", label: (0, import_i18n14.__)("Solid", "elementor") },
2645
+ { value: "dashed", label: (0, import_i18n14.__)("Dashed", "elementor") },
2646
+ { value: "dotted", label: (0, import_i18n14.__)("Dotted", "elementor") },
2647
+ { value: "double", label: (0, import_i18n14.__)("Double", "elementor") },
2648
+ { value: "groove", label: (0, import_i18n14.__)("Groove", "elementor") },
2649
+ { value: "ridge", label: (0, import_i18n14.__)("Ridge", "elementor") },
2650
+ { value: "inset", label: (0, import_i18n14.__)("Inset", "elementor") },
2651
+ { value: "outset", label: (0, import_i18n14.__)("Outset", "elementor") }
2542
2652
  ];
2543
- var BorderStyleField = () => {
2544
- return /* @__PURE__ */ React34.createElement(StylesField, { bind: "border-style" }, /* @__PURE__ */ React34.createElement(import_ui29.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React34.createElement(import_ui29.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React34.createElement(ControlLabel, null, (0, import_i18n12.__)("Border type", "elementor"))), /* @__PURE__ */ React34.createElement(import_ui29.Grid, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React34.createElement(import_editor_controls10.SelectControl, { options: borderStyles }))));
2545
- };
2653
+ var BorderStyleField = () => /* @__PURE__ */ React35.createElement(StylesField, { bind: "border-style", propDisplayName: BORDER_TYPE_LABEL }, /* @__PURE__ */ React35.createElement(StylesFieldLayout, { label: BORDER_TYPE_LABEL }, /* @__PURE__ */ React35.createElement(import_editor_controls10.SelectControl, { options: borderStyles })));
2546
2654
 
2547
2655
  // src/components/style-sections/border-section/border-width-field.tsx
2548
- var React35 = __toESM(require("react"));
2656
+ var React36 = __toESM(require("react"));
2549
2657
  var import_editor_controls11 = require("@elementor/editor-controls");
2550
- var import_editor_props6 = require("@elementor/editor-props");
2658
+ var import_editor_props7 = require("@elementor/editor-props");
2551
2659
  var import_icons7 = require("@elementor/icons");
2552
- var import_ui30 = require("@elementor/ui");
2553
- var import_i18n13 = require("@wordpress/i18n");
2554
- var InlineStartIcon = (0, import_ui30.withDirection)(import_icons7.SideRightIcon);
2555
- var InlineEndIcon = (0, import_ui30.withDirection)(import_icons7.SideLeftIcon);
2660
+ var import_ui29 = require("@elementor/ui");
2661
+ var import_i18n15 = require("@wordpress/i18n");
2662
+ var BORDER_WIDTH_LABEL = (0, import_i18n15.__)("Border width", "elementor");
2663
+ var InlineStartIcon = (0, import_ui29.withDirection)(import_icons7.SideRightIcon);
2664
+ var InlineEndIcon = (0, import_ui29.withDirection)(import_icons7.SideLeftIcon);
2556
2665
  var getEdges = (isSiteRtl) => [
2557
2666
  {
2558
- label: (0, import_i18n13.__)("Top", "elementor"),
2559
- icon: /* @__PURE__ */ React35.createElement(import_icons7.SideTopIcon, { fontSize: "tiny" }),
2667
+ label: (0, import_i18n15.__)("Top", "elementor"),
2668
+ icon: /* @__PURE__ */ React36.createElement(import_icons7.SideTopIcon, { fontSize: "tiny" }),
2560
2669
  bind: "block-start"
2561
2670
  },
2562
2671
  {
2563
- label: isSiteRtl ? (0, import_i18n13.__)("Left", "elementor") : (0, import_i18n13.__)("Right", "elementor"),
2564
- icon: /* @__PURE__ */ React35.createElement(InlineStartIcon, { fontSize: "tiny" }),
2672
+ label: isSiteRtl ? (0, import_i18n15.__)("Left", "elementor") : (0, import_i18n15.__)("Right", "elementor"),
2673
+ icon: /* @__PURE__ */ React36.createElement(InlineStartIcon, { fontSize: "tiny" }),
2565
2674
  bind: "inline-end"
2566
2675
  },
2567
2676
  {
2568
- label: (0, import_i18n13.__)("Bottom", "elementor"),
2569
- icon: /* @__PURE__ */ React35.createElement(import_icons7.SideBottomIcon, { fontSize: "tiny" }),
2677
+ label: (0, import_i18n15.__)("Bottom", "elementor"),
2678
+ icon: /* @__PURE__ */ React36.createElement(import_icons7.SideBottomIcon, { fontSize: "tiny" }),
2570
2679
  bind: "block-end"
2571
2680
  },
2572
2681
  {
2573
- label: isSiteRtl ? (0, import_i18n13.__)("Right", "elementor") : (0, import_i18n13.__)("Left", "elementor"),
2574
- icon: /* @__PURE__ */ React35.createElement(InlineEndIcon, { fontSize: "tiny" }),
2682
+ label: isSiteRtl ? (0, import_i18n15.__)("Right", "elementor") : (0, import_i18n15.__)("Left", "elementor"),
2683
+ icon: /* @__PURE__ */ React36.createElement(InlineEndIcon, { fontSize: "tiny" }),
2575
2684
  bind: "inline-start"
2576
2685
  }
2577
2686
  ];
2578
2687
  var BorderWidthField = () => {
2579
2688
  const { isSiteRtl } = useDirection();
2580
- return /* @__PURE__ */ React35.createElement(StylesField, { bind: "border-width" }, /* @__PURE__ */ React35.createElement(
2689
+ return /* @__PURE__ */ React36.createElement(StylesField, { bind: "border-width", propDisplayName: BORDER_WIDTH_LABEL }, /* @__PURE__ */ React36.createElement(
2581
2690
  import_editor_controls11.EqualUnequalSizesControl,
2582
2691
  {
2583
2692
  items: getEdges(isSiteRtl),
2584
- label: (0, import_i18n13.__)("Border width", "elementor"),
2585
- icon: /* @__PURE__ */ React35.createElement(import_icons7.SideAllIcon, { fontSize: "tiny" }),
2586
- tooltipLabel: (0, import_i18n13.__)("Adjust borders", "elementor"),
2587
- multiSizePropTypeUtil: import_editor_props6.borderWidthPropTypeUtil
2693
+ label: BORDER_WIDTH_LABEL,
2694
+ icon: /* @__PURE__ */ React36.createElement(import_icons7.SideAllIcon, { fontSize: "tiny" }),
2695
+ tooltipLabel: (0, import_i18n15.__)("Adjust borders", "elementor"),
2696
+ multiSizePropTypeUtil: import_editor_props7.borderWidthPropTypeUtil
2588
2697
  }
2589
2698
  ));
2590
2699
  };
@@ -2596,120 +2705,138 @@ var initialBorder = {
2596
2705
  "border-style": { $$type: "string", value: "solid" }
2597
2706
  };
2598
2707
  var BorderField = () => {
2599
- const { canEdit } = useStyle();
2600
- const [border, setBorder] = useStylesFields(Object.keys(initialBorder));
2708
+ const { values, setValues, canEdit } = useStylesFields(Object.keys(initialBorder));
2601
2709
  const addBorder = () => {
2602
- setBorder(initialBorder);
2710
+ setValues(initialBorder);
2603
2711
  };
2604
2712
  const removeBorder = () => {
2605
- setBorder({
2713
+ setValues({
2606
2714
  "border-width": null,
2607
2715
  "border-color": null,
2608
2716
  "border-style": null
2609
2717
  });
2610
2718
  };
2611
- const hasBorder = Object.values(border ?? {}).some(Boolean);
2612
- return /* @__PURE__ */ React36.createElement(
2719
+ const hasBorder = Object.values(values ?? {}).some(Boolean);
2720
+ return /* @__PURE__ */ React37.createElement(
2613
2721
  AddOrRemoveContent,
2614
2722
  {
2615
2723
  isAdded: hasBorder,
2616
2724
  onAdd: addBorder,
2617
2725
  onRemove: removeBorder,
2618
2726
  disabled: !canEdit,
2619
- renderLabel: () => /* @__PURE__ */ React36.createElement(import_editor_controls12.ControlFormLabel, null, (0, import_i18n14.__)("Border", "elementor"))
2727
+ renderLabel: () => /* @__PURE__ */ React37.createElement(import_editor_controls12.ControlFormLabel, null, (0, import_i18n16.__)("Border", "elementor"))
2620
2728
  },
2621
- /* @__PURE__ */ React36.createElement(BorderWidthField, null),
2622
- /* @__PURE__ */ React36.createElement(BorderColorField, null),
2623
- /* @__PURE__ */ React36.createElement(BorderStyleField, null)
2729
+ /* @__PURE__ */ React37.createElement(BorderWidthField, null),
2730
+ /* @__PURE__ */ React37.createElement(BorderColorField, null),
2731
+ /* @__PURE__ */ React37.createElement(BorderStyleField, null)
2624
2732
  );
2625
2733
  };
2626
2734
 
2627
2735
  // src/components/style-sections/border-section/border-radius-field.tsx
2628
- var React38 = __toESM(require("react"));
2736
+ var React39 = __toESM(require("react"));
2629
2737
  var import_editor_controls13 = require("@elementor/editor-controls");
2630
- var import_editor_props7 = require("@elementor/editor-props");
2738
+ var import_editor_props8 = require("@elementor/editor-props");
2631
2739
  var import_icons8 = require("@elementor/icons");
2632
- var import_ui32 = require("@elementor/ui");
2633
- var import_i18n15 = require("@wordpress/i18n");
2740
+ var import_ui31 = require("@elementor/ui");
2741
+ var import_i18n17 = require("@wordpress/i18n");
2634
2742
 
2635
2743
  // src/styles-inheritance/components/ui-providers.tsx
2636
- var React37 = __toESM(require("react"));
2637
- var import_ui31 = require("@elementor/ui");
2744
+ var React38 = __toESM(require("react"));
2745
+ var import_ui30 = require("@elementor/ui");
2638
2746
  var UiProviders = ({ children }) => {
2639
2747
  const { isSiteRtl } = useDirection();
2640
- return /* @__PURE__ */ React37.createElement(import_ui31.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React37.createElement(import_ui31.ThemeProvider, null, children));
2748
+ return /* @__PURE__ */ React38.createElement(import_ui30.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React38.createElement(import_ui30.ThemeProvider, null, children));
2641
2749
  };
2642
2750
 
2643
2751
  // src/components/style-sections/border-section/border-radius-field.tsx
2644
- var StartStartIcon = (0, import_ui32.withDirection)(import_icons8.RadiusTopLeftIcon);
2645
- var StartEndIcon = (0, import_ui32.withDirection)(import_icons8.RadiusTopRightIcon);
2646
- var EndStartIcon = (0, import_ui32.withDirection)(import_icons8.RadiusBottomLeftIcon);
2647
- var EndEndIcon = (0, import_ui32.withDirection)(import_icons8.RadiusBottomRightIcon);
2648
- var getStartStartLabel = (isSiteRtl) => isSiteRtl ? (0, import_i18n15.__)("Top right", "elementor") : (0, import_i18n15.__)("Top left", "elementor");
2649
- var getStartEndLabel = (isSiteRtl) => isSiteRtl ? (0, import_i18n15.__)("Top left", "elementor") : (0, import_i18n15.__)("Top right", "elementor");
2650
- var getEndStartLabel = (isSiteRtl) => isSiteRtl ? (0, import_i18n15.__)("Bottom right", "elementor") : (0, import_i18n15.__)("Bottom left", "elementor");
2651
- var getEndEndLabel = (isSiteRtl) => isSiteRtl ? (0, import_i18n15.__)("Bottom left", "elementor") : (0, import_i18n15.__)("Bottom right", "elementor");
2752
+ var BORDER_RADIUS_LABEL = (0, import_i18n17.__)("Border radius", "elementor");
2753
+ var StartStartIcon = (0, import_ui31.withDirection)(import_icons8.RadiusTopLeftIcon);
2754
+ var StartEndIcon = (0, import_ui31.withDirection)(import_icons8.RadiusTopRightIcon);
2755
+ var EndStartIcon = (0, import_ui31.withDirection)(import_icons8.RadiusBottomLeftIcon);
2756
+ var EndEndIcon = (0, import_ui31.withDirection)(import_icons8.RadiusBottomRightIcon);
2757
+ var getStartStartLabel = (isSiteRtl) => isSiteRtl ? (0, import_i18n17.__)("Top right", "elementor") : (0, import_i18n17.__)("Top left", "elementor");
2758
+ var getStartEndLabel = (isSiteRtl) => isSiteRtl ? (0, import_i18n17.__)("Top left", "elementor") : (0, import_i18n17.__)("Top right", "elementor");
2759
+ var getEndStartLabel = (isSiteRtl) => isSiteRtl ? (0, import_i18n17.__)("Bottom right", "elementor") : (0, import_i18n17.__)("Bottom left", "elementor");
2760
+ var getEndEndLabel = (isSiteRtl) => isSiteRtl ? (0, import_i18n17.__)("Bottom left", "elementor") : (0, import_i18n17.__)("Bottom right", "elementor");
2652
2761
  var getCorners = (isSiteRtl) => [
2653
2762
  {
2654
2763
  label: getStartStartLabel(isSiteRtl),
2655
- icon: /* @__PURE__ */ React38.createElement(StartStartIcon, { fontSize: "tiny" }),
2764
+ icon: /* @__PURE__ */ React39.createElement(StartStartIcon, { fontSize: "tiny" }),
2656
2765
  bind: "start-start"
2657
2766
  },
2658
2767
  {
2659
2768
  label: getStartEndLabel(isSiteRtl),
2660
- icon: /* @__PURE__ */ React38.createElement(StartEndIcon, { fontSize: "tiny" }),
2769
+ icon: /* @__PURE__ */ React39.createElement(StartEndIcon, { fontSize: "tiny" }),
2661
2770
  bind: "start-end"
2662
2771
  },
2663
2772
  {
2664
2773
  label: getEndStartLabel(isSiteRtl),
2665
- icon: /* @__PURE__ */ React38.createElement(EndStartIcon, { fontSize: "tiny" }),
2774
+ icon: /* @__PURE__ */ React39.createElement(EndStartIcon, { fontSize: "tiny" }),
2666
2775
  bind: "end-start"
2667
2776
  },
2668
2777
  {
2669
2778
  label: getEndEndLabel(isSiteRtl),
2670
- icon: /* @__PURE__ */ React38.createElement(EndEndIcon, { fontSize: "tiny" }),
2779
+ icon: /* @__PURE__ */ React39.createElement(EndEndIcon, { fontSize: "tiny" }),
2671
2780
  bind: "end-end"
2672
2781
  }
2673
2782
  ];
2674
2783
  var BorderRadiusField = () => {
2675
2784
  const { isSiteRtl } = useDirection();
2676
- return /* @__PURE__ */ React38.createElement(UiProviders, null, /* @__PURE__ */ React38.createElement(StylesField, { bind: "border-radius" }, /* @__PURE__ */ React38.createElement(
2785
+ return /* @__PURE__ */ React39.createElement(UiProviders, null, /* @__PURE__ */ React39.createElement(StylesField, { bind: "border-radius", propDisplayName: BORDER_RADIUS_LABEL }, /* @__PURE__ */ React39.createElement(
2677
2786
  import_editor_controls13.EqualUnequalSizesControl,
2678
2787
  {
2679
2788
  items: getCorners(isSiteRtl),
2680
- label: (0, import_i18n15.__)("Border radius", "elementor"),
2681
- icon: /* @__PURE__ */ React38.createElement(import_icons8.BorderCornersIcon, { fontSize: "tiny" }),
2682
- tooltipLabel: (0, import_i18n15.__)("Adjust corners", "elementor"),
2683
- multiSizePropTypeUtil: import_editor_props7.borderRadiusPropTypeUtil
2789
+ label: BORDER_RADIUS_LABEL,
2790
+ icon: /* @__PURE__ */ React39.createElement(import_icons8.BorderCornersIcon, { fontSize: "tiny" }),
2791
+ tooltipLabel: (0, import_i18n17.__)("Adjust corners", "elementor"),
2792
+ multiSizePropTypeUtil: import_editor_props8.borderRadiusPropTypeUtil
2684
2793
  }
2685
2794
  )));
2686
2795
  };
2687
2796
 
2688
2797
  // src/components/style-sections/border-section/border-section.tsx
2689
- var BorderSection = () => /* @__PURE__ */ React39.createElement(SectionContent, null, /* @__PURE__ */ React39.createElement(BorderRadiusField, null), /* @__PURE__ */ React39.createElement(PanelDivider, null), /* @__PURE__ */ React39.createElement(BorderField, null));
2798
+ var BorderSection = () => /* @__PURE__ */ React40.createElement(SectionContent, null, /* @__PURE__ */ React40.createElement(BorderRadiusField, null), /* @__PURE__ */ React40.createElement(PanelDivider, null), /* @__PURE__ */ React40.createElement(BorderField, null));
2690
2799
 
2691
2800
  // src/components/style-sections/effects-section/effects-section.tsx
2692
- var React40 = __toESM(require("react"));
2801
+ var React42 = __toESM(require("react"));
2802
+ var import_editor_controls15 = require("@elementor/editor-controls");
2803
+ var import_editor_v1_adapters10 = require("@elementor/editor-v1-adapters");
2804
+ var import_i18n19 = require("@wordpress/i18n");
2805
+
2806
+ // src/components/style-sections/layout-section/opacity-control-field.tsx
2807
+ var React41 = __toESM(require("react"));
2808
+ var import_react24 = require("react");
2693
2809
  var import_editor_controls14 = require("@elementor/editor-controls");
2810
+ var import_i18n18 = require("@wordpress/i18n");
2811
+ var OPACITY_LABEL = (0, import_i18n18.__)("Opacity", "elementor");
2812
+ var OpacityControlField = () => {
2813
+ const rowRef = (0, import_react24.useRef)(null);
2814
+ return /* @__PURE__ */ React41.createElement(StylesField, { bind: "opacity", propDisplayName: OPACITY_LABEL }, /* @__PURE__ */ React41.createElement(StylesFieldLayout, { ref: rowRef, label: OPACITY_LABEL }, /* @__PURE__ */ React41.createElement(import_editor_controls14.SizeControl, { units: ["%"], anchorRef: rowRef, defaultUnit: "%" })));
2815
+ };
2816
+
2817
+ // src/components/style-sections/effects-section/effects-section.tsx
2818
+ var BOX_SHADOW_LABEL = (0, import_i18n19.__)("Box shadow", "elementor");
2819
+ var FILTER_LABEL = (0, import_i18n19.__)("Filter", "elementor");
2694
2820
  var EffectsSection = () => {
2695
- return /* @__PURE__ */ React40.createElement(SectionContent, null, /* @__PURE__ */ React40.createElement(StylesField, { bind: "box-shadow" }, /* @__PURE__ */ React40.createElement(import_editor_controls14.BoxShadowRepeaterControl, null)));
2821
+ const isVersion331Active = (0, import_editor_v1_adapters10.isExperimentActive)(EXPERIMENTAL_FEATURES.V_3_31);
2822
+ return /* @__PURE__ */ React42.createElement(SectionContent, null, /* @__PURE__ */ React42.createElement(OpacityControlField, null), /* @__PURE__ */ React42.createElement(PanelDivider, null), /* @__PURE__ */ React42.createElement(StylesField, { bind: "box-shadow", propDisplayName: BOX_SHADOW_LABEL }, /* @__PURE__ */ React42.createElement(import_editor_controls15.BoxShadowRepeaterControl, null)), isVersion331Active && /* @__PURE__ */ React42.createElement(React42.Fragment, null, /* @__PURE__ */ React42.createElement(PanelDivider, null), /* @__PURE__ */ React42.createElement(StylesField, { bind: "filter", propDisplayName: FILTER_LABEL }, /* @__PURE__ */ React42.createElement(import_editor_controls15.FilterRepeaterControl, null))));
2696
2823
  };
2697
2824
 
2698
2825
  // src/components/style-sections/layout-section/layout-section.tsx
2699
- var React52 = __toESM(require("react"));
2700
- var import_editor_controls25 = require("@elementor/editor-controls");
2826
+ var React54 = __toESM(require("react"));
2827
+ var import_editor_controls26 = require("@elementor/editor-controls");
2701
2828
  var import_editor_elements7 = require("@elementor/editor-elements");
2702
- var import_i18n26 = require("@wordpress/i18n");
2829
+ var import_i18n30 = require("@wordpress/i18n");
2703
2830
 
2704
2831
  // src/hooks/use-computed-style.ts
2705
- var import_editor_v1_adapters8 = require("@elementor/editor-v1-adapters");
2832
+ var import_editor_v1_adapters11 = require("@elementor/editor-v1-adapters");
2706
2833
  function useComputedStyle(elementId) {
2707
- return (0, import_editor_v1_adapters8.__privateUseListenTo)(
2834
+ return (0, import_editor_v1_adapters11.__privateUseListenTo)(
2708
2835
  [
2709
- (0, import_editor_v1_adapters8.windowEvent)("elementor/device-mode/change"),
2710
- (0, import_editor_v1_adapters8.commandEndEvent)("document/elements/reset-style"),
2711
- (0, import_editor_v1_adapters8.commandEndEvent)("document/elements/settings"),
2712
- (0, import_editor_v1_adapters8.commandEndEvent)("document/elements/paste-style")
2836
+ (0, import_editor_v1_adapters11.windowEvent)("elementor/device-mode/change"),
2837
+ (0, import_editor_v1_adapters11.commandEndEvent)("document/elements/reset-style"),
2838
+ (0, import_editor_v1_adapters11.commandEndEvent)("document/elements/settings"),
2839
+ (0, import_editor_v1_adapters11.commandEndEvent)("document/elements/paste-style")
2713
2840
  ],
2714
2841
  () => {
2715
2842
  if (!elementId) {
@@ -2727,16 +2854,16 @@ function useComputedStyle(elementId) {
2727
2854
  }
2728
2855
 
2729
2856
  // src/components/style-sections/layout-section/align-content-field.tsx
2730
- var React42 = __toESM(require("react"));
2731
- var import_editor_controls15 = require("@elementor/editor-controls");
2857
+ var React44 = __toESM(require("react"));
2858
+ var import_editor_controls16 = require("@elementor/editor-controls");
2732
2859
  var import_icons9 = require("@elementor/icons");
2733
- var import_ui34 = require("@elementor/ui");
2734
- var import_i18n16 = require("@wordpress/i18n");
2860
+ var import_ui33 = require("@elementor/ui");
2861
+ var import_i18n20 = require("@wordpress/i18n");
2735
2862
 
2736
2863
  // src/components/style-sections/layout-section/utils/rotated-icon.tsx
2737
- var React41 = __toESM(require("react"));
2738
- var import_react23 = require("react");
2739
- var import_ui33 = require("@elementor/ui");
2864
+ var React43 = __toESM(require("react"));
2865
+ var import_react25 = require("react");
2866
+ var import_ui32 = require("@elementor/ui");
2740
2867
  var CLOCKWISE_ANGLES = {
2741
2868
  row: 0,
2742
2869
  column: 90,
@@ -2756,13 +2883,13 @@ var RotatedIcon = ({
2756
2883
  offset = 0,
2757
2884
  disableRotationForReversed = false
2758
2885
  }) => {
2759
- const rotate = (0, import_react23.useRef)(useGetTargetAngle(isClockwise, offset, disableRotationForReversed));
2886
+ const rotate = (0, import_react25.useRef)(useGetTargetAngle(isClockwise, offset, disableRotationForReversed));
2760
2887
  rotate.current = useGetTargetAngle(isClockwise, offset, disableRotationForReversed, rotate);
2761
- return /* @__PURE__ */ React41.createElement(Icon, { fontSize: size, sx: { transition: ".3s", rotate: `${rotate.current}deg` } });
2888
+ return /* @__PURE__ */ React43.createElement(Icon, { fontSize: size, sx: { transition: ".3s", rotate: `${rotate.current}deg` } });
2762
2889
  };
2763
2890
  var useGetTargetAngle = (isClockwise, offset, disableRotationForReversed, existingRef) => {
2764
- const [direction] = useStylesField("flex-direction");
2765
- const isRtl = "rtl" === (0, import_ui33.useTheme)().direction;
2891
+ const { value: direction } = useStylesField("flex-direction");
2892
+ const isRtl = "rtl" === (0, import_ui32.useTheme)().direction;
2766
2893
  const rotationMultiplier = isRtl ? -1 : 1;
2767
2894
  const angleMap = isClockwise ? CLOCKWISE_ANGLES : COUNTER_CLOCKWISE_ANGLES;
2768
2895
  const currentDirection = direction?.value || "row";
@@ -2777,8 +2904,9 @@ var useGetTargetAngle = (isClockwise, offset, disableRotationForReversed, existi
2777
2904
  };
2778
2905
 
2779
2906
  // src/components/style-sections/layout-section/align-content-field.tsx
2780
- var StartIcon = (0, import_ui34.withDirection)(import_icons9.JustifyTopIcon);
2781
- var EndIcon = (0, import_ui34.withDirection)(import_icons9.JustifyBottomIcon);
2907
+ var ALIGN_CONTENT_LABEL = (0, import_i18n20.__)("Align content", "elementor");
2908
+ var StartIcon = (0, import_ui33.withDirection)(import_icons9.JustifyTopIcon);
2909
+ var EndIcon = (0, import_ui33.withDirection)(import_icons9.JustifyBottomIcon);
2782
2910
  var iconProps = {
2783
2911
  isClockwise: false,
2784
2912
  offset: 0,
@@ -2787,53 +2915,52 @@ var iconProps = {
2787
2915
  var options = [
2788
2916
  {
2789
2917
  value: "start",
2790
- label: (0, import_i18n16.__)("Start", "elementor"),
2791
- renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(RotatedIcon, { icon: StartIcon, size, ...iconProps }),
2918
+ label: (0, import_i18n20.__)("Start", "elementor"),
2919
+ renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(RotatedIcon, { icon: StartIcon, size, ...iconProps }),
2792
2920
  showTooltip: true
2793
2921
  },
2794
2922
  {
2795
2923
  value: "center",
2796
- label: (0, import_i18n16.__)("Center", "elementor"),
2797
- renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(RotatedIcon, { icon: import_icons9.JustifyCenterIcon, size, ...iconProps }),
2924
+ label: (0, import_i18n20.__)("Center", "elementor"),
2925
+ renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(RotatedIcon, { icon: import_icons9.JustifyCenterIcon, size, ...iconProps }),
2798
2926
  showTooltip: true
2799
2927
  },
2800
2928
  {
2801
2929
  value: "end",
2802
- label: (0, import_i18n16.__)("End", "elementor"),
2803
- renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(RotatedIcon, { icon: EndIcon, size, ...iconProps }),
2930
+ label: (0, import_i18n20.__)("End", "elementor"),
2931
+ renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(RotatedIcon, { icon: EndIcon, size, ...iconProps }),
2804
2932
  showTooltip: true
2805
2933
  },
2806
2934
  {
2807
2935
  value: "space-between",
2808
- label: (0, import_i18n16.__)("Space between", "elementor"),
2809
- renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(RotatedIcon, { icon: import_icons9.JustifySpaceBetweenVerticalIcon, size, ...iconProps }),
2936
+ label: (0, import_i18n20.__)("Space between", "elementor"),
2937
+ renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(RotatedIcon, { icon: import_icons9.JustifySpaceBetweenVerticalIcon, size, ...iconProps }),
2810
2938
  showTooltip: true
2811
2939
  },
2812
2940
  {
2813
2941
  value: "space-around",
2814
- label: (0, import_i18n16.__)("Space around", "elementor"),
2815
- renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(RotatedIcon, { icon: import_icons9.JustifySpaceAroundVerticalIcon, size, ...iconProps }),
2942
+ label: (0, import_i18n20.__)("Space around", "elementor"),
2943
+ renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(RotatedIcon, { icon: import_icons9.JustifySpaceAroundVerticalIcon, size, ...iconProps }),
2816
2944
  showTooltip: true
2817
2945
  },
2818
2946
  {
2819
2947
  value: "space-evenly",
2820
- label: (0, import_i18n16.__)("Space evenly", "elementor"),
2821
- renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(RotatedIcon, { icon: import_icons9.JustifyDistributeVerticalIcon, size, ...iconProps }),
2948
+ label: (0, import_i18n20.__)("Space evenly", "elementor"),
2949
+ renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(RotatedIcon, { icon: import_icons9.JustifyDistributeVerticalIcon, size, ...iconProps }),
2822
2950
  showTooltip: true
2823
2951
  }
2824
2952
  ];
2825
- var AlignContentField = () => {
2826
- return /* @__PURE__ */ React42.createElement(UiProviders, null, /* @__PURE__ */ React42.createElement(StylesField, { bind: "align-content" }, /* @__PURE__ */ React42.createElement(import_ui34.Stack, { gap: 1 }, /* @__PURE__ */ React42.createElement(ControlLabel, null, (0, import_i18n16.__)("Align content", "elementor")), /* @__PURE__ */ React42.createElement(import_editor_controls15.ToggleControl, { options, fullWidth: true }))));
2827
- };
2953
+ var AlignContentField = () => /* @__PURE__ */ React44.createElement(StylesField, { bind: "align-content", propDisplayName: ALIGN_CONTENT_LABEL }, /* @__PURE__ */ React44.createElement(UiProviders, null, /* @__PURE__ */ React44.createElement(StylesFieldLayout, { label: ALIGN_CONTENT_LABEL, direction: "column" }, /* @__PURE__ */ React44.createElement(import_editor_controls16.ToggleControl, { options, fullWidth: true }))));
2828
2954
 
2829
2955
  // src/components/style-sections/layout-section/align-items-field.tsx
2830
- var React43 = __toESM(require("react"));
2831
- var import_editor_controls16 = require("@elementor/editor-controls");
2956
+ var React45 = __toESM(require("react"));
2957
+ var import_editor_controls17 = require("@elementor/editor-controls");
2832
2958
  var import_icons10 = require("@elementor/icons");
2833
- var import_ui35 = require("@elementor/ui");
2834
- var import_i18n17 = require("@wordpress/i18n");
2835
- var StartIcon2 = (0, import_ui35.withDirection)(import_icons10.LayoutAlignLeftIcon);
2836
- var EndIcon2 = (0, import_ui35.withDirection)(import_icons10.LayoutAlignRightIcon);
2959
+ var import_ui34 = require("@elementor/ui");
2960
+ var import_i18n21 = require("@wordpress/i18n");
2961
+ var ALIGN_ITEMS_LABEL = (0, import_i18n21.__)("Align items", "elementor");
2962
+ var StartIcon2 = (0, import_ui34.withDirection)(import_icons10.LayoutAlignLeftIcon);
2963
+ var EndIcon2 = (0, import_ui34.withDirection)(import_icons10.LayoutAlignRightIcon);
2837
2964
  var iconProps2 = {
2838
2965
  isClockwise: false,
2839
2966
  offset: 90
@@ -2841,55 +2968,56 @@ var iconProps2 = {
2841
2968
  var options2 = [
2842
2969
  {
2843
2970
  value: "start",
2844
- label: (0, import_i18n17.__)("Start", "elementor"),
2845
- renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(RotatedIcon, { icon: StartIcon2, size, ...iconProps2 }),
2971
+ label: (0, import_i18n21.__)("Start", "elementor"),
2972
+ renderContent: ({ size }) => /* @__PURE__ */ React45.createElement(RotatedIcon, { icon: StartIcon2, size, ...iconProps2 }),
2846
2973
  showTooltip: true
2847
2974
  },
2848
2975
  {
2849
2976
  value: "center",
2850
- label: (0, import_i18n17.__)("Center", "elementor"),
2851
- renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(RotatedIcon, { icon: import_icons10.LayoutAlignCenterIcon, size, ...iconProps2 }),
2977
+ label: (0, import_i18n21.__)("Center", "elementor"),
2978
+ renderContent: ({ size }) => /* @__PURE__ */ React45.createElement(RotatedIcon, { icon: import_icons10.LayoutAlignCenterIcon, size, ...iconProps2 }),
2852
2979
  showTooltip: true
2853
2980
  },
2854
2981
  {
2855
2982
  value: "end",
2856
- label: (0, import_i18n17.__)("End", "elementor"),
2857
- renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(RotatedIcon, { icon: EndIcon2, size, ...iconProps2 }),
2983
+ label: (0, import_i18n21.__)("End", "elementor"),
2984
+ renderContent: ({ size }) => /* @__PURE__ */ React45.createElement(RotatedIcon, { icon: EndIcon2, size, ...iconProps2 }),
2858
2985
  showTooltip: true
2859
2986
  },
2860
2987
  {
2861
2988
  value: "stretch",
2862
- label: (0, import_i18n17.__)("Stretch", "elementor"),
2863
- renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(RotatedIcon, { icon: import_icons10.LayoutDistributeVerticalIcon, size, ...iconProps2 }),
2989
+ label: (0, import_i18n21.__)("Stretch", "elementor"),
2990
+ renderContent: ({ size }) => /* @__PURE__ */ React45.createElement(RotatedIcon, { icon: import_icons10.LayoutDistributeVerticalIcon, size, ...iconProps2 }),
2864
2991
  showTooltip: true
2865
2992
  }
2866
2993
  ];
2867
2994
  var AlignItemsField = () => {
2868
- return /* @__PURE__ */ React43.createElement(UiProviders, null, /* @__PURE__ */ React43.createElement(StylesField, { bind: "align-items" }, /* @__PURE__ */ React43.createElement(import_ui35.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React43.createElement(import_ui35.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React43.createElement(ControlLabel, null, (0, import_i18n17.__)("Align items", "elementor"))), /* @__PURE__ */ React43.createElement(import_ui35.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React43.createElement(import_editor_controls16.ToggleControl, { options: options2 })))));
2995
+ return /* @__PURE__ */ React45.createElement(UiProviders, null, /* @__PURE__ */ React45.createElement(StylesField, { bind: "align-items", propDisplayName: ALIGN_ITEMS_LABEL }, /* @__PURE__ */ React45.createElement(StylesFieldLayout, { label: ALIGN_ITEMS_LABEL }, /* @__PURE__ */ React45.createElement(import_editor_controls17.ToggleControl, { options: options2 }))));
2869
2996
  };
2870
2997
 
2871
2998
  // src/components/style-sections/layout-section/align-self-child-field.tsx
2872
- var React44 = __toESM(require("react"));
2873
- var import_editor_controls17 = require("@elementor/editor-controls");
2999
+ var React46 = __toESM(require("react"));
3000
+ var import_editor_controls18 = require("@elementor/editor-controls");
2874
3001
  var import_icons11 = require("@elementor/icons");
2875
- var import_ui36 = require("@elementor/ui");
2876
- var import_i18n18 = require("@wordpress/i18n");
3002
+ var import_ui35 = require("@elementor/ui");
3003
+ var import_i18n22 = require("@wordpress/i18n");
3004
+ var ALIGN_SELF_LABEL = (0, import_i18n22.__)("Align self", "elementor");
2877
3005
  var ALIGN_SELF_CHILD_OFFSET_MAP = {
2878
3006
  row: 90,
2879
3007
  "row-reverse": 90,
2880
3008
  column: 0,
2881
3009
  "column-reverse": 0
2882
3010
  };
2883
- var StartIcon3 = (0, import_ui36.withDirection)(import_icons11.LayoutAlignLeftIcon);
2884
- var EndIcon3 = (0, import_ui36.withDirection)(import_icons11.LayoutAlignRightIcon);
3011
+ var StartIcon3 = (0, import_ui35.withDirection)(import_icons11.LayoutAlignLeftIcon);
3012
+ var EndIcon3 = (0, import_ui35.withDirection)(import_icons11.LayoutAlignRightIcon);
2885
3013
  var iconProps3 = {
2886
3014
  isClockwise: false
2887
3015
  };
2888
3016
  var getOptions = (parentStyleDirection) => [
2889
3017
  {
2890
3018
  value: "start",
2891
- label: (0, import_i18n18.__)("Start", "elementor"),
2892
- renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(
3019
+ label: (0, import_i18n22.__)("Start", "elementor"),
3020
+ renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(
2893
3021
  RotatedIcon,
2894
3022
  {
2895
3023
  icon: StartIcon3,
@@ -2902,8 +3030,8 @@ var getOptions = (parentStyleDirection) => [
2902
3030
  },
2903
3031
  {
2904
3032
  value: "center",
2905
- label: (0, import_i18n18.__)("Center", "elementor"),
2906
- renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(
3033
+ label: (0, import_i18n22.__)("Center", "elementor"),
3034
+ renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(
2907
3035
  RotatedIcon,
2908
3036
  {
2909
3037
  icon: import_icons11.LayoutAlignCenterIcon,
@@ -2916,8 +3044,8 @@ var getOptions = (parentStyleDirection) => [
2916
3044
  },
2917
3045
  {
2918
3046
  value: "end",
2919
- label: (0, import_i18n18.__)("End", "elementor"),
2920
- renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(
3047
+ label: (0, import_i18n22.__)("End", "elementor"),
3048
+ renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(
2921
3049
  RotatedIcon,
2922
3050
  {
2923
3051
  icon: EndIcon3,
@@ -2930,8 +3058,8 @@ var getOptions = (parentStyleDirection) => [
2930
3058
  },
2931
3059
  {
2932
3060
  value: "stretch",
2933
- label: (0, import_i18n18.__)("Stretch", "elementor"),
2934
- renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(
3061
+ label: (0, import_i18n22.__)("Stretch", "elementor"),
3062
+ renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(
2935
3063
  RotatedIcon,
2936
3064
  {
2937
3065
  icon: import_icons11.LayoutDistributeVerticalIcon,
@@ -2943,107 +3071,107 @@ var getOptions = (parentStyleDirection) => [
2943
3071
  showTooltip: true
2944
3072
  }
2945
3073
  ];
2946
- var AlignSelfChild = ({ parentStyleDirection }) => {
2947
- return /* @__PURE__ */ React44.createElement(UiProviders, null, /* @__PURE__ */ React44.createElement(StylesField, { bind: "align-self" }, /* @__PURE__ */ React44.createElement(import_ui36.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React44.createElement(import_ui36.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React44.createElement(ControlLabel, null, (0, import_i18n18.__)("Align self", "elementor"))), /* @__PURE__ */ React44.createElement(import_ui36.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React44.createElement(import_editor_controls17.ToggleControl, { options: getOptions(parentStyleDirection) })))));
2948
- };
3074
+ var AlignSelfChild = ({ parentStyleDirection }) => /* @__PURE__ */ React46.createElement(StylesField, { bind: "align-self", propDisplayName: ALIGN_SELF_LABEL }, /* @__PURE__ */ React46.createElement(UiProviders, null, /* @__PURE__ */ React46.createElement(StylesFieldLayout, { label: ALIGN_SELF_LABEL }, /* @__PURE__ */ React46.createElement(import_editor_controls18.ToggleControl, { options: getOptions(parentStyleDirection) }))));
2949
3075
 
2950
3076
  // src/components/style-sections/layout-section/display-field.tsx
2951
- var React45 = __toESM(require("react"));
2952
- var import_editor_controls18 = require("@elementor/editor-controls");
2953
- var import_editor_v1_adapters9 = require("@elementor/editor-v1-adapters");
2954
- var import_ui37 = require("@elementor/ui");
2955
- var import_i18n19 = require("@wordpress/i18n");
3077
+ var React47 = __toESM(require("react"));
3078
+ var import_editor_controls19 = require("@elementor/editor-controls");
3079
+ var import_editor_v1_adapters12 = require("@elementor/editor-v1-adapters");
3080
+ var import_i18n23 = require("@wordpress/i18n");
3081
+ var DISPLAY_LABEL = (0, import_i18n23.__)("Display", "elementor");
2956
3082
  var displayFieldItems = [
2957
3083
  {
2958
3084
  value: "block",
2959
- renderContent: () => (0, import_i18n19.__)("Block", "elementor"),
2960
- label: (0, import_i18n19.__)("Block", "elementor"),
3085
+ renderContent: () => (0, import_i18n23.__)("Block", "elementor"),
3086
+ label: (0, import_i18n23.__)("Block", "elementor"),
2961
3087
  showTooltip: true
2962
3088
  },
2963
3089
  {
2964
3090
  value: "flex",
2965
- renderContent: () => (0, import_i18n19.__)("Flex", "elementor"),
2966
- label: (0, import_i18n19.__)("Flex", "elementor"),
3091
+ renderContent: () => (0, import_i18n23.__)("Flex", "elementor"),
3092
+ label: (0, import_i18n23.__)("Flex", "elementor"),
2967
3093
  showTooltip: true
2968
3094
  },
2969
3095
  {
2970
3096
  value: "inline-block",
2971
- renderContent: () => (0, import_i18n19.__)("In-blk", "elementor"),
2972
- label: (0, import_i18n19.__)("Inline-block", "elementor"),
3097
+ renderContent: () => (0, import_i18n23.__)("In-blk", "elementor"),
3098
+ label: (0, import_i18n23.__)("Inline-block", "elementor"),
2973
3099
  showTooltip: true
2974
3100
  }
2975
3101
  ];
2976
3102
  var DisplayField = () => {
2977
- const isDisplayNoneFeatureActive = (0, import_editor_v1_adapters9.isExperimentActive)(EXPERIMENTAL_FEATURES.V_3_30);
3103
+ const isDisplayNoneFeatureActive = (0, import_editor_v1_adapters12.isExperimentActive)(EXPERIMENTAL_FEATURES.V_3_30);
2978
3104
  const items3 = [...displayFieldItems];
2979
3105
  if (isDisplayNoneFeatureActive) {
2980
3106
  items3.push({
2981
3107
  value: "none",
2982
- renderContent: () => (0, import_i18n19.__)("None", "elementor"),
2983
- label: (0, import_i18n19.__)("None", "elementor"),
3108
+ renderContent: () => (0, import_i18n23.__)("None", "elementor"),
3109
+ label: (0, import_i18n23.__)("None", "elementor"),
2984
3110
  showTooltip: true
2985
3111
  });
2986
3112
  }
2987
3113
  items3.push({
2988
3114
  value: "inline-flex",
2989
- renderContent: () => (0, import_i18n19.__)("In-flx", "elementor"),
2990
- label: (0, import_i18n19.__)("Inline-flex", "elementor"),
3115
+ renderContent: () => (0, import_i18n23.__)("In-flx", "elementor"),
3116
+ label: (0, import_i18n23.__)("Inline-flex", "elementor"),
2991
3117
  showTooltip: true
2992
3118
  });
2993
3119
  const placeholder = useDisplayPlaceholderValue();
2994
- return /* @__PURE__ */ React45.createElement(StylesField, { bind: "display", placeholder }, /* @__PURE__ */ React45.createElement(import_ui37.Stack, { gap: 0.75 }, /* @__PURE__ */ React45.createElement(ControlLabel, null, (0, import_i18n19.__)("Display", "elementor")), /* @__PURE__ */ React45.createElement(import_editor_controls18.ToggleControl, { options: items3, maxItems: 4, fullWidth: true })));
3120
+ return /* @__PURE__ */ React47.createElement(StylesField, { bind: "display", propDisplayName: DISPLAY_LABEL, placeholder }, /* @__PURE__ */ React47.createElement(StylesFieldLayout, { label: DISPLAY_LABEL, direction: "column" }, /* @__PURE__ */ React47.createElement(import_editor_controls19.ToggleControl, { options: items3, maxItems: 4, fullWidth: true })));
2995
3121
  };
2996
3122
  var useDisplayPlaceholderValue = () => useStylesInheritanceChain(["display"])[0]?.value ?? void 0;
2997
3123
 
2998
3124
  // src/components/style-sections/layout-section/flex-direction-field.tsx
2999
- var React46 = __toESM(require("react"));
3000
- var import_editor_controls19 = require("@elementor/editor-controls");
3125
+ var React48 = __toESM(require("react"));
3126
+ var import_editor_controls20 = require("@elementor/editor-controls");
3001
3127
  var import_icons12 = require("@elementor/icons");
3002
- var import_ui38 = require("@elementor/ui");
3003
- var import_i18n20 = require("@wordpress/i18n");
3128
+ var import_ui36 = require("@elementor/ui");
3129
+ var import_i18n24 = require("@wordpress/i18n");
3130
+ var FLEX_DIRECTION_LABEL = (0, import_i18n24.__)("Direction", "elementor");
3004
3131
  var options3 = [
3005
3132
  {
3006
3133
  value: "row",
3007
- label: (0, import_i18n20.__)("Row", "elementor"),
3134
+ label: (0, import_i18n24.__)("Row", "elementor"),
3008
3135
  renderContent: ({ size }) => {
3009
- const StartIcon5 = (0, import_ui38.withDirection)(import_icons12.ArrowRightIcon);
3010
- return /* @__PURE__ */ React46.createElement(StartIcon5, { fontSize: size });
3136
+ const StartIcon5 = (0, import_ui36.withDirection)(import_icons12.ArrowRightIcon);
3137
+ return /* @__PURE__ */ React48.createElement(StartIcon5, { fontSize: size });
3011
3138
  },
3012
3139
  showTooltip: true
3013
3140
  },
3014
3141
  {
3015
3142
  value: "column",
3016
- label: (0, import_i18n20.__)("Column", "elementor"),
3017
- renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(import_icons12.ArrowDownSmallIcon, { fontSize: size }),
3143
+ label: (0, import_i18n24.__)("Column", "elementor"),
3144
+ renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(import_icons12.ArrowDownSmallIcon, { fontSize: size }),
3018
3145
  showTooltip: true
3019
3146
  },
3020
3147
  {
3021
3148
  value: "row-reverse",
3022
- label: (0, import_i18n20.__)("Reversed row", "elementor"),
3149
+ label: (0, import_i18n24.__)("Reversed row", "elementor"),
3023
3150
  renderContent: ({ size }) => {
3024
- const EndIcon5 = (0, import_ui38.withDirection)(import_icons12.ArrowLeftIcon);
3025
- return /* @__PURE__ */ React46.createElement(EndIcon5, { fontSize: size });
3151
+ const EndIcon5 = (0, import_ui36.withDirection)(import_icons12.ArrowLeftIcon);
3152
+ return /* @__PURE__ */ React48.createElement(EndIcon5, { fontSize: size });
3026
3153
  },
3027
3154
  showTooltip: true
3028
3155
  },
3029
3156
  {
3030
3157
  value: "column-reverse",
3031
- label: (0, import_i18n20.__)("Reversed column", "elementor"),
3032
- renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(import_icons12.ArrowUpSmallIcon, { fontSize: size }),
3158
+ label: (0, import_i18n24.__)("Reversed column", "elementor"),
3159
+ renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(import_icons12.ArrowUpSmallIcon, { fontSize: size }),
3033
3160
  showTooltip: true
3034
3161
  }
3035
3162
  ];
3036
3163
  var FlexDirectionField = () => {
3037
- return /* @__PURE__ */ React46.createElement(UiProviders, null, /* @__PURE__ */ React46.createElement(StylesField, { bind: "flex-direction" }, /* @__PURE__ */ React46.createElement(import_ui38.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React46.createElement(import_ui38.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React46.createElement(ControlLabel, null, (0, import_i18n20.__)("Direction", "elementor"))), /* @__PURE__ */ React46.createElement(import_ui38.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React46.createElement(import_editor_controls19.ToggleControl, { options: options3 })))));
3164
+ return /* @__PURE__ */ React48.createElement(StylesField, { bind: "flex-direction", propDisplayName: FLEX_DIRECTION_LABEL }, /* @__PURE__ */ React48.createElement(UiProviders, null, /* @__PURE__ */ React48.createElement(StylesFieldLayout, { label: FLEX_DIRECTION_LABEL }, /* @__PURE__ */ React48.createElement(import_editor_controls20.ToggleControl, { options: options3 }))));
3038
3165
  };
3039
3166
 
3040
3167
  // src/components/style-sections/layout-section/flex-order-field.tsx
3041
- var React47 = __toESM(require("react"));
3042
- var import_react24 = require("react");
3043
- var import_editor_controls20 = require("@elementor/editor-controls");
3168
+ var React49 = __toESM(require("react"));
3169
+ var import_react26 = require("react");
3170
+ var import_editor_controls21 = require("@elementor/editor-controls");
3044
3171
  var import_icons13 = require("@elementor/icons");
3045
- var import_ui39 = require("@elementor/ui");
3046
- var import_i18n21 = require("@wordpress/i18n");
3172
+ var import_ui37 = require("@elementor/ui");
3173
+ var import_i18n25 = require("@wordpress/i18n");
3174
+ var ORDER_LABEL = (0, import_i18n25.__)("Order", "elementor");
3047
3175
  var FIRST_DEFAULT_VALUE = -99999;
3048
3176
  var LAST_DEFAULT_VALUE = 99999;
3049
3177
  var FIRST = "first";
@@ -3056,27 +3184,26 @@ var orderValueMap = {
3056
3184
  var items = [
3057
3185
  {
3058
3186
  value: FIRST,
3059
- label: (0, import_i18n21.__)("First", "elementor"),
3060
- renderContent: ({ size }) => /* @__PURE__ */ React47.createElement(import_icons13.ArrowUpSmallIcon, { fontSize: size }),
3187
+ label: (0, import_i18n25.__)("First", "elementor"),
3188
+ renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(import_icons13.ArrowUpSmallIcon, { fontSize: size }),
3061
3189
  showTooltip: true
3062
3190
  },
3063
3191
  {
3064
3192
  value: LAST,
3065
- label: (0, import_i18n21.__)("Last", "elementor"),
3066
- renderContent: ({ size }) => /* @__PURE__ */ React47.createElement(import_icons13.ArrowDownSmallIcon, { fontSize: size }),
3193
+ label: (0, import_i18n25.__)("Last", "elementor"),
3194
+ renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(import_icons13.ArrowDownSmallIcon, { fontSize: size }),
3067
3195
  showTooltip: true
3068
3196
  },
3069
3197
  {
3070
3198
  value: CUSTOM,
3071
- label: (0, import_i18n21.__)("Custom", "elementor"),
3072
- renderContent: ({ size }) => /* @__PURE__ */ React47.createElement(import_icons13.PencilIcon, { fontSize: size }),
3199
+ label: (0, import_i18n25.__)("Custom", "elementor"),
3200
+ renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(import_icons13.PencilIcon, { fontSize: size }),
3073
3201
  showTooltip: true
3074
3202
  }
3075
3203
  ];
3076
3204
  var FlexOrderField = () => {
3077
- const [order, setOrder] = useStylesField("order");
3078
- const { canEdit } = useStyle();
3079
- const [groupControlValue, setGroupControlValue] = (0, import_react24.useState)(getGroupControlValue(order?.value || null));
3205
+ const { value: order, setValue: setOrder, canEdit } = useStylesField("order");
3206
+ const [groupControlValue, setGroupControlValue] = (0, import_react26.useState)(getGroupControlValue(order?.value || null));
3080
3207
  const handleToggleButtonChange = (group) => {
3081
3208
  setGroupControlValue(group);
3082
3209
  if (!group || group === CUSTOM) {
@@ -3085,8 +3212,8 @@ var FlexOrderField = () => {
3085
3212
  }
3086
3213
  setOrder({ $$type: "number", value: orderValueMap[group] });
3087
3214
  };
3088
- return /* @__PURE__ */ React47.createElement(UiProviders, null, /* @__PURE__ */ React47.createElement(StylesField, { bind: "order" }, /* @__PURE__ */ React47.createElement(SectionContent, null, /* @__PURE__ */ React47.createElement(import_ui39.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React47.createElement(import_ui39.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(ControlLabel, null, (0, import_i18n21.__)("Order", "elementor"))), /* @__PURE__ */ React47.createElement(import_ui39.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React47.createElement(
3089
- import_editor_controls20.ControlToggleButtonGroup,
3215
+ return /* @__PURE__ */ React49.createElement(StylesField, { bind: "order", propDisplayName: ORDER_LABEL }, /* @__PURE__ */ React49.createElement(UiProviders, null, /* @__PURE__ */ React49.createElement(StylesFieldLayout, { label: ORDER_LABEL }, /* @__PURE__ */ React49.createElement(SectionContent, null, /* @__PURE__ */ React49.createElement(
3216
+ import_editor_controls21.ControlToggleButtonGroup,
3090
3217
  {
3091
3218
  items,
3092
3219
  value: groupControlValue,
@@ -3094,14 +3221,14 @@ var FlexOrderField = () => {
3094
3221
  exclusive: true,
3095
3222
  disabled: !canEdit
3096
3223
  }
3097
- ))), CUSTOM === groupControlValue && /* @__PURE__ */ React47.createElement(import_ui39.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React47.createElement(import_ui39.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(ControlLabel, null, (0, import_i18n21.__)("Custom order", "elementor"))), /* @__PURE__ */ React47.createElement(import_ui39.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React47.createElement(
3098
- import_editor_controls20.NumberControl,
3224
+ ), CUSTOM === groupControlValue && /* @__PURE__ */ React49.createElement(import_ui37.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React49.createElement(import_ui37.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(ControlLabel, null, (0, import_i18n25.__)("Custom order", "elementor"))), /* @__PURE__ */ React49.createElement(import_ui37.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React49.createElement(
3225
+ import_editor_controls21.NumberControl,
3099
3226
  {
3100
3227
  min: FIRST_DEFAULT_VALUE + 1,
3101
3228
  max: LAST_DEFAULT_VALUE - 1,
3102
3229
  shouldForceInt: true
3103
3230
  }
3104
- ))))));
3231
+ )))))));
3105
3232
  };
3106
3233
  var getGroupControlValue = (order) => {
3107
3234
  if (LAST_DEFAULT_VALUE === order) {
@@ -3114,45 +3241,44 @@ var getGroupControlValue = (order) => {
3114
3241
  };
3115
3242
 
3116
3243
  // src/components/style-sections/layout-section/flex-size-field.tsx
3117
- var React48 = __toESM(require("react"));
3118
- var import_react25 = require("react");
3119
- var import_editor_controls21 = require("@elementor/editor-controls");
3120
- var import_editor_props8 = require("@elementor/editor-props");
3244
+ var React50 = __toESM(require("react"));
3245
+ var import_react27 = require("react");
3246
+ var import_editor_controls22 = require("@elementor/editor-controls");
3247
+ var import_editor_props9 = require("@elementor/editor-props");
3121
3248
  var import_icons14 = require("@elementor/icons");
3122
- var import_ui40 = require("@elementor/ui");
3123
- var import_i18n22 = require("@wordpress/i18n");
3249
+ var import_i18n26 = require("@wordpress/i18n");
3250
+ var FLEX_SIZE_LABEL = (0, import_i18n26.__)("Flex Size", "elementor");
3124
3251
  var DEFAULT = 1;
3125
3252
  var items2 = [
3126
3253
  {
3127
3254
  value: "flex-grow",
3128
- label: (0, import_i18n22.__)("Grow", "elementor"),
3129
- renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(import_icons14.ExpandIcon, { fontSize: size }),
3255
+ label: (0, import_i18n26.__)("Grow", "elementor"),
3256
+ renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(import_icons14.ExpandIcon, { fontSize: size }),
3130
3257
  showTooltip: true
3131
3258
  },
3132
3259
  {
3133
3260
  value: "flex-shrink",
3134
- label: (0, import_i18n22.__)("Shrink", "elementor"),
3135
- renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(import_icons14.ShrinkIcon, { fontSize: size }),
3261
+ label: (0, import_i18n26.__)("Shrink", "elementor"),
3262
+ renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(import_icons14.ShrinkIcon, { fontSize: size }),
3136
3263
  showTooltip: true
3137
3264
  },
3138
3265
  {
3139
3266
  value: "custom",
3140
- label: (0, import_i18n22.__)("Custom", "elementor"),
3141
- renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(import_icons14.PencilIcon, { fontSize: size }),
3267
+ label: (0, import_i18n26.__)("Custom", "elementor"),
3268
+ renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(import_icons14.PencilIcon, { fontSize: size }),
3142
3269
  showTooltip: true
3143
3270
  }
3144
3271
  ];
3145
3272
  var FlexSizeField = () => {
3146
- const { canEdit } = useStyle();
3147
- const [fields, setFields] = useStylesFields(["flex-grow", "flex-shrink", "flex-basis"]);
3148
- const grow = fields?.["flex-grow"]?.value || null;
3149
- const shrink = fields?.["flex-shrink"]?.value || null;
3150
- const basis = fields?.["flex-basis"]?.value || null;
3151
- const currentGroup = (0, import_react25.useMemo)(() => getActiveGroup({ grow, shrink, basis }), [grow, shrink, basis]), [activeGroup, setActiveGroup] = (0, import_react25.useState)(currentGroup);
3273
+ const { values, setValues, canEdit } = useStylesFields(["flex-grow", "flex-shrink", "flex-basis"]);
3274
+ const grow = values?.["flex-grow"]?.value || null;
3275
+ const shrink = values?.["flex-shrink"]?.value || null;
3276
+ const basis = values?.["flex-basis"]?.value || null;
3277
+ const currentGroup = (0, import_react27.useMemo)(() => getActiveGroup({ grow, shrink, basis }), [grow, shrink, basis]), [activeGroup, setActiveGroup] = (0, import_react27.useState)(currentGroup);
3152
3278
  const onChangeGroup = (group = null) => {
3153
3279
  setActiveGroup(group);
3154
3280
  if (!group || group === "custom") {
3155
- setFields({
3281
+ setValues({
3156
3282
  "flex-basis": null,
3157
3283
  "flex-grow": null,
3158
3284
  "flex-shrink": null
@@ -3160,21 +3286,21 @@ var FlexSizeField = () => {
3160
3286
  return;
3161
3287
  }
3162
3288
  if (group === "flex-grow") {
3163
- setFields({
3289
+ setValues({
3164
3290
  "flex-basis": null,
3165
- "flex-grow": import_editor_props8.numberPropTypeUtil.create(DEFAULT),
3291
+ "flex-grow": import_editor_props9.numberPropTypeUtil.create(DEFAULT),
3166
3292
  "flex-shrink": null
3167
3293
  });
3168
3294
  return;
3169
3295
  }
3170
- setFields({
3296
+ setValues({
3171
3297
  "flex-basis": null,
3172
3298
  "flex-grow": null,
3173
- "flex-shrink": import_editor_props8.numberPropTypeUtil.create(DEFAULT)
3299
+ "flex-shrink": import_editor_props9.numberPropTypeUtil.create(DEFAULT)
3174
3300
  });
3175
3301
  };
3176
- return /* @__PURE__ */ React48.createElement(UiProviders, null, /* @__PURE__ */ React48.createElement(SectionContent, null, /* @__PURE__ */ React48.createElement(import_ui40.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React48.createElement(StylesField, { bind: activeGroup ?? "" }, /* @__PURE__ */ React48.createElement(import_ui40.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React48.createElement(ControlLabel, null, (0, import_i18n22.__)("Size", "elementor"))), /* @__PURE__ */ React48.createElement(import_ui40.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React48.createElement(
3177
- import_editor_controls21.ControlToggleButtonGroup,
3302
+ return /* @__PURE__ */ React50.createElement(UiProviders, null, /* @__PURE__ */ React50.createElement(SectionContent, null, /* @__PURE__ */ React50.createElement(StylesField, { bind: activeGroup ?? "", propDisplayName: FLEX_SIZE_LABEL }, /* @__PURE__ */ React50.createElement(StylesFieldLayout, { label: FLEX_SIZE_LABEL }, /* @__PURE__ */ React50.createElement(
3303
+ import_editor_controls22.ControlToggleButtonGroup,
3178
3304
  {
3179
3305
  value: activeGroup,
3180
3306
  onChange: onChangeGroup,
@@ -3182,11 +3308,11 @@ var FlexSizeField = () => {
3182
3308
  items: items2,
3183
3309
  exclusive: true
3184
3310
  }
3185
- )))), "custom" === activeGroup && /* @__PURE__ */ React48.createElement(FlexCustomField, null)));
3311
+ ))), "custom" === activeGroup && /* @__PURE__ */ React50.createElement(FlexCustomField, null)));
3186
3312
  };
3187
3313
  var FlexCustomField = () => {
3188
- const flexBasisRowRef = (0, import_react25.useRef)();
3189
- return /* @__PURE__ */ React48.createElement(React48.Fragment, null, /* @__PURE__ */ React48.createElement(StylesField, { bind: "flex-grow" }, /* @__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(ControlLabel, null, (0, import_i18n22.__)("Grow", "elementor"))), /* @__PURE__ */ React48.createElement(import_ui40.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React48.createElement(import_editor_controls21.NumberControl, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React48.createElement(StylesField, { bind: "flex-shrink" }, /* @__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(ControlLabel, null, (0, import_i18n22.__)("Shrink", "elementor"))), /* @__PURE__ */ React48.createElement(import_ui40.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React48.createElement(import_editor_controls21.NumberControl, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React48.createElement(StylesField, { bind: "flex-basis" }, /* @__PURE__ */ React48.createElement(import_ui40.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap", ref: flexBasisRowRef }, /* @__PURE__ */ React48.createElement(import_ui40.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React48.createElement(ControlLabel, null, (0, import_i18n22.__)("Basis", "elementor"))), /* @__PURE__ */ React48.createElement(import_ui40.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React48.createElement(import_editor_controls21.SizeControl, { extendedOptions: ["auto"], anchorRef: flexBasisRowRef })))));
3314
+ const flexBasisRowRef = (0, import_react27.useRef)(null);
3315
+ return /* @__PURE__ */ React50.createElement(React50.Fragment, null, /* @__PURE__ */ React50.createElement(StylesField, { bind: "flex-grow", propDisplayName: FLEX_SIZE_LABEL }, /* @__PURE__ */ React50.createElement(StylesFieldLayout, { label: (0, import_i18n26.__)("Grow", "elementor") }, /* @__PURE__ */ React50.createElement(import_editor_controls22.NumberControl, { min: 0, shouldForceInt: true }))), /* @__PURE__ */ React50.createElement(StylesField, { bind: "flex-shrink", propDisplayName: FLEX_SIZE_LABEL }, /* @__PURE__ */ React50.createElement(StylesFieldLayout, { label: (0, import_i18n26.__)("Shrink", "elementor") }, /* @__PURE__ */ React50.createElement(import_editor_controls22.NumberControl, { min: 0, shouldForceInt: true }))), /* @__PURE__ */ React50.createElement(StylesField, { bind: "flex-basis", propDisplayName: FLEX_SIZE_LABEL }, /* @__PURE__ */ React50.createElement(StylesFieldLayout, { label: (0, import_i18n26.__)("Basis", "elementor"), ref: flexBasisRowRef }, /* @__PURE__ */ React50.createElement(import_editor_controls22.SizeControl, { extendedOptions: ["auto"], anchorRef: flexBasisRowRef }))));
3190
3316
  };
3191
3317
  var getActiveGroup = ({
3192
3318
  grow,
@@ -3209,22 +3335,23 @@ var getActiveGroup = ({
3209
3335
  };
3210
3336
 
3211
3337
  // src/components/style-sections/layout-section/gap-control-field.tsx
3212
- var React49 = __toESM(require("react"));
3213
- var import_editor_controls22 = require("@elementor/editor-controls");
3214
- var import_ui41 = require("@elementor/ui");
3215
- var import_i18n23 = require("@wordpress/i18n");
3338
+ var React51 = __toESM(require("react"));
3339
+ var import_editor_controls23 = require("@elementor/editor-controls");
3340
+ var import_i18n27 = require("@wordpress/i18n");
3341
+ var GAPS_LABEL = (0, import_i18n27.__)("Gaps", "elementor");
3216
3342
  var GapControlField = () => {
3217
- return /* @__PURE__ */ React49.createElement(import_ui41.Stack, { gap: 1 }, /* @__PURE__ */ React49.createElement(StylesField, { bind: "gap" }, /* @__PURE__ */ React49.createElement(import_editor_controls22.GapControl, { label: (0, import_i18n23.__)("Gaps", "elementor") })));
3343
+ return /* @__PURE__ */ React51.createElement(StylesField, { bind: "gap", propDisplayName: GAPS_LABEL }, /* @__PURE__ */ React51.createElement(import_editor_controls23.GapControl, { label: GAPS_LABEL }));
3218
3344
  };
3219
3345
 
3220
3346
  // src/components/style-sections/layout-section/justify-content-field.tsx
3221
- var React50 = __toESM(require("react"));
3222
- var import_editor_controls23 = require("@elementor/editor-controls");
3347
+ var React52 = __toESM(require("react"));
3348
+ var import_editor_controls24 = require("@elementor/editor-controls");
3223
3349
  var import_icons15 = require("@elementor/icons");
3224
- var import_ui42 = require("@elementor/ui");
3225
- var import_i18n24 = require("@wordpress/i18n");
3226
- var StartIcon4 = (0, import_ui42.withDirection)(import_icons15.JustifyTopIcon);
3227
- var EndIcon4 = (0, import_ui42.withDirection)(import_icons15.JustifyBottomIcon);
3350
+ var import_ui38 = require("@elementor/ui");
3351
+ var import_i18n28 = require("@wordpress/i18n");
3352
+ var JUSTIFY_CONTENT_LABEL = (0, import_i18n28.__)("Justify content", "elementor");
3353
+ var StartIcon4 = (0, import_ui38.withDirection)(import_icons15.JustifyTopIcon);
3354
+ var EndIcon4 = (0, import_ui38.withDirection)(import_icons15.JustifyBottomIcon);
3228
3355
  var iconProps4 = {
3229
3356
  isClockwise: true,
3230
3357
  offset: -90
@@ -3232,91 +3359,89 @@ var iconProps4 = {
3232
3359
  var options4 = [
3233
3360
  {
3234
3361
  value: "flex-start",
3235
- label: (0, import_i18n24.__)("Start", "elementor"),
3236
- renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(RotatedIcon, { icon: StartIcon4, size, ...iconProps4 }),
3362
+ label: (0, import_i18n28.__)("Start", "elementor"),
3363
+ renderContent: ({ size }) => /* @__PURE__ */ React52.createElement(RotatedIcon, { icon: StartIcon4, size, ...iconProps4 }),
3237
3364
  showTooltip: true
3238
3365
  },
3239
3366
  {
3240
3367
  value: "center",
3241
- label: (0, import_i18n24.__)("Center", "elementor"),
3242
- renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(RotatedIcon, { icon: import_icons15.JustifyCenterIcon, size, ...iconProps4 }),
3368
+ label: (0, import_i18n28.__)("Center", "elementor"),
3369
+ renderContent: ({ size }) => /* @__PURE__ */ React52.createElement(RotatedIcon, { icon: import_icons15.JustifyCenterIcon, size, ...iconProps4 }),
3243
3370
  showTooltip: true
3244
3371
  },
3245
3372
  {
3246
3373
  value: "flex-end",
3247
- label: (0, import_i18n24.__)("End", "elementor"),
3248
- renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(RotatedIcon, { icon: EndIcon4, size, ...iconProps4 }),
3374
+ label: (0, import_i18n28.__)("End", "elementor"),
3375
+ renderContent: ({ size }) => /* @__PURE__ */ React52.createElement(RotatedIcon, { icon: EndIcon4, size, ...iconProps4 }),
3249
3376
  showTooltip: true
3250
3377
  },
3251
3378
  {
3252
3379
  value: "space-between",
3253
- label: (0, import_i18n24.__)("Space between", "elementor"),
3254
- renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(RotatedIcon, { icon: import_icons15.JustifySpaceBetweenVerticalIcon, size, ...iconProps4 }),
3380
+ label: (0, import_i18n28.__)("Space between", "elementor"),
3381
+ renderContent: ({ size }) => /* @__PURE__ */ React52.createElement(RotatedIcon, { icon: import_icons15.JustifySpaceBetweenVerticalIcon, size, ...iconProps4 }),
3255
3382
  showTooltip: true
3256
3383
  },
3257
3384
  {
3258
3385
  value: "space-around",
3259
- label: (0, import_i18n24.__)("Space around", "elementor"),
3260
- renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(RotatedIcon, { icon: import_icons15.JustifySpaceAroundVerticalIcon, size, ...iconProps4 }),
3386
+ label: (0, import_i18n28.__)("Space around", "elementor"),
3387
+ renderContent: ({ size }) => /* @__PURE__ */ React52.createElement(RotatedIcon, { icon: import_icons15.JustifySpaceAroundVerticalIcon, size, ...iconProps4 }),
3261
3388
  showTooltip: true
3262
3389
  },
3263
3390
  {
3264
3391
  value: "space-evenly",
3265
- label: (0, import_i18n24.__)("Space evenly", "elementor"),
3266
- renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(RotatedIcon, { icon: import_icons15.JustifyDistributeVerticalIcon, size, ...iconProps4 }),
3392
+ label: (0, import_i18n28.__)("Space evenly", "elementor"),
3393
+ renderContent: ({ size }) => /* @__PURE__ */ React52.createElement(RotatedIcon, { icon: import_icons15.JustifyDistributeVerticalIcon, size, ...iconProps4 }),
3267
3394
  showTooltip: true
3268
3395
  }
3269
3396
  ];
3270
- var JustifyContentField = () => {
3271
- return /* @__PURE__ */ React50.createElement(UiProviders, null, /* @__PURE__ */ React50.createElement(StylesField, { bind: "justify-content" }, /* @__PURE__ */ React50.createElement(import_ui42.Stack, { gap: 0.75 }, /* @__PURE__ */ React50.createElement(ControlLabel, null, (0, import_i18n24.__)("Justify content", "elementor")), /* @__PURE__ */ React50.createElement(import_editor_controls23.ToggleControl, { options: options4, fullWidth: true }))));
3272
- };
3397
+ var JustifyContentField = () => /* @__PURE__ */ React52.createElement(StylesField, { bind: "justify-content", propDisplayName: JUSTIFY_CONTENT_LABEL }, /* @__PURE__ */ React52.createElement(UiProviders, null, /* @__PURE__ */ React52.createElement(StylesFieldLayout, { label: JUSTIFY_CONTENT_LABEL, direction: "column" }, /* @__PURE__ */ React52.createElement(import_editor_controls24.ToggleControl, { options: options4, fullWidth: true }))));
3273
3398
 
3274
3399
  // src/components/style-sections/layout-section/wrap-field.tsx
3275
- var React51 = __toESM(require("react"));
3276
- var import_editor_controls24 = require("@elementor/editor-controls");
3400
+ var React53 = __toESM(require("react"));
3401
+ var import_editor_controls25 = require("@elementor/editor-controls");
3277
3402
  var import_icons16 = require("@elementor/icons");
3278
- var import_ui43 = require("@elementor/ui");
3279
- var import_i18n25 = require("@wordpress/i18n");
3403
+ var import_i18n29 = require("@wordpress/i18n");
3404
+ var FLEX_WRAP_LABEL = (0, import_i18n29.__)("Wrap", "elementor");
3280
3405
  var options5 = [
3281
3406
  {
3282
3407
  value: "nowrap",
3283
- label: (0, import_i18n25.__)("No wrap", "elementor"),
3284
- renderContent: ({ size }) => /* @__PURE__ */ React51.createElement(import_icons16.ArrowRightIcon, { fontSize: size }),
3408
+ label: (0, import_i18n29.__)("No wrap", "elementor"),
3409
+ renderContent: ({ size }) => /* @__PURE__ */ React53.createElement(import_icons16.ArrowRightIcon, { fontSize: size }),
3285
3410
  showTooltip: true
3286
3411
  },
3287
3412
  {
3288
3413
  value: "wrap",
3289
- label: (0, import_i18n25.__)("Wrap", "elementor"),
3290
- renderContent: ({ size }) => /* @__PURE__ */ React51.createElement(import_icons16.ArrowBackIcon, { fontSize: size }),
3414
+ label: (0, import_i18n29.__)("Wrap", "elementor"),
3415
+ renderContent: ({ size }) => /* @__PURE__ */ React53.createElement(import_icons16.ArrowBackIcon, { fontSize: size }),
3291
3416
  showTooltip: true
3292
3417
  },
3293
3418
  {
3294
3419
  value: "wrap-reverse",
3295
- label: (0, import_i18n25.__)("Reversed wrap", "elementor"),
3296
- renderContent: ({ size }) => /* @__PURE__ */ React51.createElement(import_icons16.ArrowForwardIcon, { fontSize: size }),
3420
+ label: (0, import_i18n29.__)("Reversed wrap", "elementor"),
3421
+ renderContent: ({ size }) => /* @__PURE__ */ React53.createElement(import_icons16.ArrowForwardIcon, { fontSize: size }),
3297
3422
  showTooltip: true
3298
3423
  }
3299
3424
  ];
3300
3425
  var WrapField = () => {
3301
- return /* @__PURE__ */ React51.createElement(UiProviders, null, /* @__PURE__ */ React51.createElement(StylesField, { bind: "flex-wrap" }, /* @__PURE__ */ React51.createElement(import_ui43.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React51.createElement(import_ui43.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React51.createElement(ControlLabel, null, (0, import_i18n25.__)("Wrap", "elementor"))), /* @__PURE__ */ React51.createElement(import_ui43.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React51.createElement(import_editor_controls24.ToggleControl, { options: options5 })))));
3426
+ return /* @__PURE__ */ React53.createElement(StylesField, { bind: "flex-wrap", propDisplayName: FLEX_WRAP_LABEL }, /* @__PURE__ */ React53.createElement(UiProviders, null, /* @__PURE__ */ React53.createElement(StylesFieldLayout, { label: FLEX_WRAP_LABEL }, /* @__PURE__ */ React53.createElement(import_editor_controls25.ToggleControl, { options: options5 }))));
3302
3427
  };
3303
3428
 
3304
3429
  // src/components/style-sections/layout-section/layout-section.tsx
3305
3430
  var LayoutSection = () => {
3306
- const [display] = useStylesField("display");
3431
+ const { value: display } = useStylesField("display");
3307
3432
  const displayPlaceholder = useDisplayPlaceholderValue();
3308
3433
  const isDisplayFlex = shouldDisplayFlexFields(display, displayPlaceholder);
3309
3434
  const { element } = useElement();
3310
3435
  const parent = (0, import_editor_elements7.useParentElement)(element.id);
3311
3436
  const parentStyle = useComputedStyle(parent?.id || null);
3312
3437
  const parentStyleDirection = parentStyle?.flexDirection ?? "row";
3313
- return /* @__PURE__ */ React52.createElement(SectionContent, null, /* @__PURE__ */ React52.createElement(DisplayField, null), isDisplayFlex && /* @__PURE__ */ React52.createElement(FlexFields, null), "flex" === parentStyle?.display && /* @__PURE__ */ React52.createElement(FlexChildFields, { parentStyleDirection }));
3438
+ return /* @__PURE__ */ React54.createElement(SectionContent, null, /* @__PURE__ */ React54.createElement(DisplayField, null), isDisplayFlex && /* @__PURE__ */ React54.createElement(FlexFields, null), "flex" === parentStyle?.display && /* @__PURE__ */ React54.createElement(FlexChildFields, { parentStyleDirection }));
3314
3439
  };
3315
3440
  var FlexFields = () => {
3316
- const [flexWrap] = useStylesField("flex-wrap");
3317
- return /* @__PURE__ */ React52.createElement(React52.Fragment, null, /* @__PURE__ */ React52.createElement(FlexDirectionField, null), /* @__PURE__ */ React52.createElement(JustifyContentField, null), /* @__PURE__ */ React52.createElement(AlignItemsField, null), /* @__PURE__ */ React52.createElement(PanelDivider, null), /* @__PURE__ */ React52.createElement(GapControlField, null), /* @__PURE__ */ React52.createElement(WrapField, null), ["wrap", "wrap-reverse"].includes(flexWrap?.value) && /* @__PURE__ */ React52.createElement(AlignContentField, null));
3441
+ const { value: flexWrap } = useStylesField("flex-wrap");
3442
+ return /* @__PURE__ */ React54.createElement(React54.Fragment, null, /* @__PURE__ */ React54.createElement(FlexDirectionField, null), /* @__PURE__ */ React54.createElement(JustifyContentField, null), /* @__PURE__ */ React54.createElement(AlignItemsField, null), /* @__PURE__ */ React54.createElement(PanelDivider, null), /* @__PURE__ */ React54.createElement(GapControlField, null), /* @__PURE__ */ React54.createElement(WrapField, null), ["wrap", "wrap-reverse"].includes(flexWrap?.value) && /* @__PURE__ */ React54.createElement(AlignContentField, null));
3318
3443
  };
3319
- var FlexChildFields = ({ parentStyleDirection }) => /* @__PURE__ */ React52.createElement(React52.Fragment, null, /* @__PURE__ */ React52.createElement(PanelDivider, null), /* @__PURE__ */ React52.createElement(import_editor_controls25.ControlFormLabel, null, (0, import_i18n26.__)("Flex child", "elementor")), /* @__PURE__ */ React52.createElement(AlignSelfChild, { parentStyleDirection }), /* @__PURE__ */ React52.createElement(FlexOrderField, null), /* @__PURE__ */ React52.createElement(FlexSizeField, null));
3444
+ var FlexChildFields = ({ parentStyleDirection }) => /* @__PURE__ */ React54.createElement(React54.Fragment, null, /* @__PURE__ */ React54.createElement(PanelDivider, null), /* @__PURE__ */ React54.createElement(import_editor_controls26.ControlFormLabel, null, (0, import_i18n30.__)("Flex child", "elementor")), /* @__PURE__ */ React54.createElement(AlignSelfChild, { parentStyleDirection }), /* @__PURE__ */ React54.createElement(FlexOrderField, null), /* @__PURE__ */ React54.createElement(FlexSizeField, null));
3320
3445
  var shouldDisplayFlexFields = (display, local) => {
3321
3446
  const value = display?.value ?? local?.value;
3322
3447
  if (!value) {
@@ -3326,38 +3451,38 @@ var shouldDisplayFlexFields = (display, local) => {
3326
3451
  };
3327
3452
 
3328
3453
  // src/components/style-sections/position-section/position-section.tsx
3329
- var React57 = __toESM(require("react"));
3330
- var import_editor_v1_adapters10 = require("@elementor/editor-v1-adapters");
3454
+ var React59 = __toESM(require("react"));
3455
+ var import_editor_v1_adapters13 = require("@elementor/editor-v1-adapters");
3331
3456
  var import_session3 = require("@elementor/session");
3332
3457
 
3333
3458
  // src/components/style-sections/position-section/dimensions-field.tsx
3334
- var React53 = __toESM(require("react"));
3335
- var import_react26 = require("react");
3336
- var import_editor_controls26 = require("@elementor/editor-controls");
3459
+ var React55 = __toESM(require("react"));
3460
+ var import_react28 = require("react");
3461
+ var import_editor_controls27 = require("@elementor/editor-controls");
3337
3462
  var import_icons17 = require("@elementor/icons");
3338
- var import_ui44 = require("@elementor/ui");
3339
- var import_i18n27 = require("@wordpress/i18n");
3340
- var InlineStartIcon2 = (0, import_ui44.withDirection)(import_icons17.SideLeftIcon);
3341
- var InlineEndIcon2 = (0, import_ui44.withDirection)(import_icons17.SideRightIcon);
3463
+ var import_ui39 = require("@elementor/ui");
3464
+ var import_i18n31 = require("@wordpress/i18n");
3465
+ var InlineStartIcon2 = (0, import_ui39.withDirection)(import_icons17.SideLeftIcon);
3466
+ var InlineEndIcon2 = (0, import_ui39.withDirection)(import_icons17.SideRightIcon);
3342
3467
  var sideIcons = {
3343
- "inset-block-start": /* @__PURE__ */ React53.createElement(import_icons17.SideTopIcon, { fontSize: "tiny" }),
3344
- "inset-block-end": /* @__PURE__ */ React53.createElement(import_icons17.SideBottomIcon, { fontSize: "tiny" }),
3345
- "inset-inline-start": /* @__PURE__ */ React53.createElement(RotatedIcon, { icon: InlineStartIcon2, size: "tiny" }),
3346
- "inset-inline-end": /* @__PURE__ */ React53.createElement(RotatedIcon, { icon: InlineEndIcon2, size: "tiny" })
3468
+ "inset-block-start": /* @__PURE__ */ React55.createElement(import_icons17.SideTopIcon, { fontSize: "tiny" }),
3469
+ "inset-block-end": /* @__PURE__ */ React55.createElement(import_icons17.SideBottomIcon, { fontSize: "tiny" }),
3470
+ "inset-inline-start": /* @__PURE__ */ React55.createElement(RotatedIcon, { icon: InlineStartIcon2, size: "tiny" }),
3471
+ "inset-inline-end": /* @__PURE__ */ React55.createElement(RotatedIcon, { icon: InlineEndIcon2, size: "tiny" })
3347
3472
  };
3348
- var getInlineStartLabel = (isSiteRtl) => isSiteRtl ? (0, import_i18n27.__)("Right", "elementor") : (0, import_i18n27.__)("Left", "elementor");
3349
- var getInlineEndLabel = (isSiteRtl) => isSiteRtl ? (0, import_i18n27.__)("Left", "elementor") : (0, import_i18n27.__)("Right", "elementor");
3473
+ var getInlineStartLabel = (isSiteRtl) => isSiteRtl ? (0, import_i18n31.__)("Right", "elementor") : (0, import_i18n31.__)("Left", "elementor");
3474
+ var getInlineEndLabel = (isSiteRtl) => isSiteRtl ? (0, import_i18n31.__)("Left", "elementor") : (0, import_i18n31.__)("Right", "elementor");
3350
3475
  var DimensionsField = () => {
3351
3476
  const { isSiteRtl } = useDirection();
3352
- const rowRefs = [(0, import_react26.useRef)(), (0, import_react26.useRef)()];
3353
- return /* @__PURE__ */ React53.createElement(UiProviders, null, /* @__PURE__ */ React53.createElement(import_ui44.Stack, { direction: "row", gap: 2, flexWrap: "nowrap", ref: rowRefs[0] }, /* @__PURE__ */ React53.createElement(DimensionField, { side: "inset-block-start", label: (0, import_i18n27.__)("Top", "elementor"), rowRef: rowRefs[0] }), /* @__PURE__ */ React53.createElement(
3477
+ const rowRefs = [(0, import_react28.useRef)(null), (0, import_react28.useRef)(null)];
3478
+ return /* @__PURE__ */ React55.createElement(UiProviders, null, /* @__PURE__ */ React55.createElement(import_ui39.Stack, { direction: "row", gap: 2, flexWrap: "nowrap", ref: rowRefs[0] }, /* @__PURE__ */ React55.createElement(DimensionField, { side: "inset-block-start", label: (0, import_i18n31.__)("Top", "elementor"), rowRef: rowRefs[0] }), /* @__PURE__ */ React55.createElement(
3354
3479
  DimensionField,
3355
3480
  {
3356
3481
  side: "inset-inline-end",
3357
3482
  label: getInlineEndLabel(isSiteRtl),
3358
3483
  rowRef: rowRefs[0]
3359
3484
  }
3360
- )), /* @__PURE__ */ React53.createElement(import_ui44.Stack, { direction: "row", gap: 2, flexWrap: "nowrap", ref: rowRefs[1] }, /* @__PURE__ */ React53.createElement(DimensionField, { side: "inset-block-end", label: (0, import_i18n27.__)("Bottom", "elementor"), rowRef: rowRefs[1] }), /* @__PURE__ */ React53.createElement(
3485
+ )), /* @__PURE__ */ React55.createElement(import_ui39.Stack, { direction: "row", gap: 2, flexWrap: "nowrap", ref: rowRefs[1] }, /* @__PURE__ */ React55.createElement(DimensionField, { side: "inset-block-end", label: (0, import_i18n31.__)("Bottom", "elementor"), rowRef: rowRefs[1] }), /* @__PURE__ */ React55.createElement(
3361
3486
  DimensionField,
3362
3487
  {
3363
3488
  side: "inset-inline-start",
@@ -3370,60 +3495,61 @@ var DimensionField = ({
3370
3495
  side,
3371
3496
  label,
3372
3497
  rowRef
3373
- }) => /* @__PURE__ */ React53.createElement(StylesField, { bind: side }, /* @__PURE__ */ React53.createElement(import_ui44.Grid, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React53.createElement(import_ui44.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React53.createElement(ControlLabel, null, label)), /* @__PURE__ */ React53.createElement(import_ui44.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React53.createElement(import_editor_controls26.SizeControl, { startIcon: sideIcons[side], extendedOptions: ["auto"], anchorRef: rowRef }))));
3498
+ }) => /* @__PURE__ */ React55.createElement(StylesField, { bind: side, propDisplayName: label }, /* @__PURE__ */ React55.createElement(import_ui39.Grid, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React55.createElement(import_ui39.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React55.createElement(ControlLabel, null, label)), /* @__PURE__ */ React55.createElement(import_ui39.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React55.createElement(import_editor_controls27.SizeControl, { startIcon: sideIcons[side], extendedOptions: ["auto"], anchorRef: rowRef }))));
3374
3499
 
3375
3500
  // src/components/style-sections/position-section/offset-field.tsx
3376
- var React54 = __toESM(require("react"));
3377
- var import_react27 = require("react");
3378
- var import_editor_controls27 = require("@elementor/editor-controls");
3379
- var import_ui45 = require("@elementor/ui");
3380
- var import_i18n28 = require("@wordpress/i18n");
3501
+ var React56 = __toESM(require("react"));
3502
+ var import_react29 = require("react");
3503
+ var import_editor_controls28 = require("@elementor/editor-controls");
3504
+ var import_i18n32 = require("@wordpress/i18n");
3505
+ var OFFSET_LABEL = (0, import_i18n32.__)("Anchor offset", "elementor");
3506
+ var UNITS = ["px", "em", "rem", "vw", "vh"];
3381
3507
  var OffsetField = () => {
3382
- const rowRef = (0, import_react27.useRef)();
3383
- return /* @__PURE__ */ React54.createElement(StylesField, { bind: "scroll-margin-top" }, /* @__PURE__ */ React54.createElement(import_ui45.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap", ref: rowRef }, /* @__PURE__ */ React54.createElement(import_ui45.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(ControlLabel, null, (0, import_i18n28.__)("Anchor offset", "elementor"))), /* @__PURE__ */ React54.createElement(import_ui45.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(import_editor_controls27.SizeControl, { units: ["px", "em", "rem", "vw", "vh"], anchorRef: rowRef }))));
3508
+ const rowRef = (0, import_react29.useRef)(null);
3509
+ return /* @__PURE__ */ React56.createElement(StylesField, { bind: "scroll-margin-top", propDisplayName: OFFSET_LABEL }, /* @__PURE__ */ React56.createElement(StylesFieldLayout, { label: OFFSET_LABEL, ref: rowRef }, /* @__PURE__ */ React56.createElement(import_editor_controls28.SizeControl, { units: UNITS, anchorRef: rowRef })));
3384
3510
  };
3385
3511
 
3386
3512
  // src/components/style-sections/position-section/position-field.tsx
3387
- var React55 = __toESM(require("react"));
3388
- var import_editor_controls28 = require("@elementor/editor-controls");
3389
- var import_ui46 = require("@elementor/ui");
3390
- var import_i18n29 = require("@wordpress/i18n");
3513
+ var React57 = __toESM(require("react"));
3514
+ var import_editor_controls29 = require("@elementor/editor-controls");
3515
+ var import_i18n33 = require("@wordpress/i18n");
3516
+ var POSITION_LABEL = (0, import_i18n33.__)("Position", "elementor");
3391
3517
  var positionOptions = [
3392
- { label: (0, import_i18n29.__)("Static", "elementor"), value: "static" },
3393
- { label: (0, import_i18n29.__)("Relative", "elementor"), value: "relative" },
3394
- { label: (0, import_i18n29.__)("Absolute", "elementor"), value: "absolute" },
3395
- { label: (0, import_i18n29.__)("Fixed", "elementor"), value: "fixed" },
3396
- { label: (0, import_i18n29.__)("Sticky", "elementor"), value: "sticky" }
3518
+ { label: (0, import_i18n33.__)("Static", "elementor"), value: "static" },
3519
+ { label: (0, import_i18n33.__)("Relative", "elementor"), value: "relative" },
3520
+ { label: (0, import_i18n33.__)("Absolute", "elementor"), value: "absolute" },
3521
+ { label: (0, import_i18n33.__)("Fixed", "elementor"), value: "fixed" },
3522
+ { label: (0, import_i18n33.__)("Sticky", "elementor"), value: "sticky" }
3397
3523
  ];
3398
3524
  var PositionField = ({ onChange }) => {
3399
- return /* @__PURE__ */ React55.createElement(StylesField, { bind: "position" }, /* @__PURE__ */ React55.createElement(import_ui46.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React55.createElement(import_ui46.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(ControlLabel, null, (0, import_i18n29.__)("Position", "elementor"))), /* @__PURE__ */ React55.createElement(import_ui46.Grid, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React55.createElement(import_editor_controls28.SelectControl, { options: positionOptions, onChange }))));
3525
+ return /* @__PURE__ */ React57.createElement(StylesField, { bind: "position", propDisplayName: POSITION_LABEL }, /* @__PURE__ */ React57.createElement(StylesFieldLayout, { label: POSITION_LABEL }, /* @__PURE__ */ React57.createElement(import_editor_controls29.SelectControl, { options: positionOptions, onChange })));
3400
3526
  };
3401
3527
 
3402
3528
  // src/components/style-sections/position-section/z-index-field.tsx
3403
- var React56 = __toESM(require("react"));
3404
- var import_editor_controls29 = require("@elementor/editor-controls");
3405
- var import_ui47 = require("@elementor/ui");
3406
- var import_i18n30 = require("@wordpress/i18n");
3529
+ var React58 = __toESM(require("react"));
3530
+ var import_editor_controls30 = require("@elementor/editor-controls");
3531
+ var import_i18n34 = require("@wordpress/i18n");
3532
+ var Z_INDEX_LABEL = (0, import_i18n34.__)("Z-index", "elementor");
3407
3533
  var ZIndexField = () => {
3408
- return /* @__PURE__ */ React56.createElement(StylesField, { bind: "z-index" }, /* @__PURE__ */ React56.createElement(import_ui47.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React56.createElement(import_ui47.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React56.createElement(ControlLabel, null, (0, import_i18n30.__)("Z-index", "elementor"))), /* @__PURE__ */ React56.createElement(import_ui47.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React56.createElement(import_editor_controls29.NumberControl, null))));
3534
+ return /* @__PURE__ */ React58.createElement(StylesField, { bind: "z-index", propDisplayName: Z_INDEX_LABEL }, /* @__PURE__ */ React58.createElement(StylesFieldLayout, { label: Z_INDEX_LABEL }, /* @__PURE__ */ React58.createElement(import_editor_controls30.NumberControl, null)));
3409
3535
  };
3410
3536
 
3411
3537
  // src/components/style-sections/position-section/position-section.tsx
3412
3538
  var PositionSection = () => {
3413
- const [positionValue] = useStylesField("position");
3414
- const [dimensionsValues, setDimensionsValues] = useStylesFields([
3539
+ const { value: positionValue } = useStylesField("position");
3540
+ const { values: dimensions, setValues: setDimensions } = useStylesFields([
3415
3541
  "inset-block-start",
3416
3542
  "inset-block-end",
3417
3543
  "inset-inline-start",
3418
3544
  "inset-inline-end"
3419
3545
  ]);
3420
3546
  const [dimensionsValuesFromHistory, updateDimensionsHistory, clearDimensionsHistory] = usePersistDimensions();
3421
- const isCssIdFeatureActive = (0, import_editor_v1_adapters10.isExperimentActive)("e_v_3_30");
3547
+ const isCssIdFeatureActive = (0, import_editor_v1_adapters13.isExperimentActive)("e_v_3_30");
3422
3548
  const onPositionChange = (newPosition, previousPosition) => {
3423
3549
  if (newPosition === "static") {
3424
- if (dimensionsValues) {
3425
- updateDimensionsHistory(dimensionsValues);
3426
- setDimensionsValues({
3550
+ if (dimensions) {
3551
+ updateDimensionsHistory(dimensions);
3552
+ setDimensions({
3427
3553
  "inset-block-start": void 0,
3428
3554
  "inset-block-end": void 0,
3429
3555
  "inset-inline-start": void 0,
@@ -3432,13 +3558,13 @@ var PositionSection = () => {
3432
3558
  }
3433
3559
  } else if (previousPosition === "static") {
3434
3560
  if (dimensionsValuesFromHistory) {
3435
- setDimensionsValues(dimensionsValuesFromHistory);
3561
+ setDimensions(dimensionsValuesFromHistory);
3436
3562
  clearDimensionsHistory();
3437
3563
  }
3438
3564
  }
3439
3565
  };
3440
3566
  const isNotStatic = positionValue && positionValue?.value !== "static";
3441
- return /* @__PURE__ */ React57.createElement(SectionContent, null, /* @__PURE__ */ React57.createElement(PositionField, { onChange: onPositionChange }), isNotStatic ? /* @__PURE__ */ React57.createElement(React57.Fragment, null, /* @__PURE__ */ React57.createElement(DimensionsField, null), /* @__PURE__ */ React57.createElement(ZIndexField, null)) : null, isCssIdFeatureActive && /* @__PURE__ */ React57.createElement(React57.Fragment, null, /* @__PURE__ */ React57.createElement(PanelDivider, null), /* @__PURE__ */ React57.createElement(OffsetField, null)));
3567
+ return /* @__PURE__ */ React59.createElement(SectionContent, null, /* @__PURE__ */ React59.createElement(PositionField, { onChange: onPositionChange }), isNotStatic ? /* @__PURE__ */ React59.createElement(React59.Fragment, null, /* @__PURE__ */ React59.createElement(DimensionsField, null), /* @__PURE__ */ React59.createElement(ZIndexField, null)) : null, isCssIdFeatureActive && /* @__PURE__ */ React59.createElement(React59.Fragment, null, /* @__PURE__ */ React59.createElement(PanelDivider, null), /* @__PURE__ */ React59.createElement(OffsetField, null)));
3442
3568
  };
3443
3569
  var usePersistDimensions = () => {
3444
3570
  const { id: styleDefID, meta } = useStyle();
@@ -3448,50 +3574,55 @@ var usePersistDimensions = () => {
3448
3574
  };
3449
3575
 
3450
3576
  // src/components/style-sections/size-section/size-section.tsx
3451
- var React63 = __toESM(require("react"));
3452
- var import_react28 = require("react");
3453
- var import_editor_controls33 = require("@elementor/editor-controls");
3454
- var import_editor_v1_adapters12 = require("@elementor/editor-v1-adapters");
3455
- var import_ui52 = require("@elementor/ui");
3456
- var import_i18n35 = require("@wordpress/i18n");
3577
+ var React65 = __toESM(require("react"));
3578
+ var import_react30 = require("react");
3579
+ var import_editor_controls34 = require("@elementor/editor-controls");
3580
+ var import_editor_v1_adapters15 = require("@elementor/editor-v1-adapters");
3581
+ var import_ui41 = require("@elementor/ui");
3582
+ var import_i18n39 = require("@wordpress/i18n");
3457
3583
 
3458
3584
  // src/components/style-tab-collapsible-content.tsx
3459
- var React59 = __toESM(require("react"));
3460
- var import_editor_v1_adapters11 = require("@elementor/editor-v1-adapters");
3585
+ var React61 = __toESM(require("react"));
3586
+ var import_editor_v1_adapters14 = require("@elementor/editor-v1-adapters");
3461
3587
 
3462
3588
  // src/styles-inheritance/components/styles-inheritance-section-indicators.tsx
3463
- var React58 = __toESM(require("react"));
3464
- var import_editor_styles_repository11 = require("@elementor/editor-styles-repository");
3465
- var import_ui48 = require("@elementor/ui");
3466
- var import_i18n31 = require("@wordpress/i18n");
3467
- var orderedVariants = ["global", "local", "overridden"];
3589
+ var React60 = __toESM(require("react"));
3590
+ var import_editor_styles_repository12 = require("@elementor/editor-styles-repository");
3591
+ var import_ui40 = require("@elementor/ui");
3592
+ var import_i18n35 = require("@wordpress/i18n");
3468
3593
  var StylesInheritanceSectionIndicators = ({ fields }) => {
3469
- const { id, meta } = useStyle();
3594
+ const { id, meta, provider } = useStyle();
3470
3595
  const snapshot = useStylesInheritanceSnapshot();
3471
3596
  const snapshotFields = Object.fromEntries(
3472
3597
  Object.entries(snapshot ?? {}).filter(([key]) => fields.includes(key))
3473
3598
  );
3474
- const indicators = getIndicators(snapshotFields, id ?? "", meta);
3475
- if (Object.values(indicators).filter(Boolean).length === 0) {
3599
+ const { hasValues, hasOverrides } = getIndicators(snapshotFields, id ?? "", meta);
3600
+ if (!hasValues && !hasOverrides) {
3476
3601
  return null;
3477
3602
  }
3478
- const hasActualValues = (0, import_i18n31.__)("Has effective styles", "elementor");
3479
- const hasOverriddenValues = (0, import_i18n31.__)("Has overridden styles", "elementor");
3480
- return /* @__PURE__ */ React58.createElement(import_ui48.Tooltip, { title: (0, import_i18n31.__)("Has styles", "elementor"), placement: "top" }, /* @__PURE__ */ React58.createElement(import_ui48.Stack, { direction: "row", sx: { "& > *": { marginInlineStart: -0.25 } }, role: "list" }, orderedVariants.map(
3481
- (variant) => indicators[variant] && /* @__PURE__ */ React58.createElement(
3482
- StyleIndicator,
3483
- {
3484
- key: variant,
3485
- variant,
3486
- "data-variant": variant,
3487
- role: "listitem",
3488
- "aria-label": variant === "overridden" ? hasOverriddenValues : hasActualValues
3489
- }
3490
- )
3603
+ const hasValueLabel = (0, import_i18n35.__)("Has effective styles", "elementor");
3604
+ const hasOverridesLabel = (0, import_i18n35.__)("Has overridden styles", "elementor");
3605
+ return /* @__PURE__ */ React60.createElement(import_ui40.Tooltip, { title: (0, import_i18n35.__)("Has styles", "elementor"), placement: "top" }, /* @__PURE__ */ React60.createElement(import_ui40.Stack, { direction: "row", sx: { "& > *": { marginInlineStart: -0.25 } }, role: "list" }, hasValues && provider && /* @__PURE__ */ React60.createElement(
3606
+ StyleIndicator,
3607
+ {
3608
+ getColor: getStylesProviderThemeColor(provider.getKey()),
3609
+ "data-variant": (0, import_editor_styles_repository12.isElementsStylesProvider)(provider.getKey()) ? "local" : "global",
3610
+ role: "listitem",
3611
+ "aria-label": hasValueLabel
3612
+ }
3613
+ ), hasOverrides && /* @__PURE__ */ React60.createElement(
3614
+ StyleIndicator,
3615
+ {
3616
+ isOverridden: true,
3617
+ "data-variant": "overridden",
3618
+ role: "listitem",
3619
+ "aria-label": hasOverridesLabel
3620
+ }
3491
3621
  )));
3492
3622
  };
3493
3623
  function getIndicators(snapshotFields, styleId, meta) {
3494
- const indicators = {};
3624
+ let hasValues = false;
3625
+ let hasOverrides = false;
3495
3626
  Object.values(snapshotFields).forEach((inheritanceChain) => {
3496
3627
  const currentStyle = getCurrentStyleFromChain(inheritanceChain, styleId, meta);
3497
3628
  if (!currentStyle) {
@@ -3499,19 +3630,12 @@ function getIndicators(snapshotFields, styleId, meta) {
3499
3630
  }
3500
3631
  const [actualStyle] = inheritanceChain;
3501
3632
  if (currentStyle === actualStyle) {
3502
- const providerKey = actualStyle.provider ?? "";
3503
- if ((0, import_editor_styles_repository11.isElementsStylesProvider)(providerKey)) {
3504
- indicators.local = true;
3505
- return;
3506
- }
3507
- if (providerKey !== import_editor_styles_repository11.ELEMENTS_BASE_STYLES_PROVIDER_KEY) {
3508
- indicators.global = true;
3509
- }
3510
- return;
3633
+ hasValues = true;
3634
+ } else {
3635
+ hasOverrides = true;
3511
3636
  }
3512
- indicators.overridden = true;
3513
3637
  });
3514
- return indicators;
3638
+ return { hasValues, hasOverrides };
3515
3639
  }
3516
3640
  function getCurrentStyleFromChain(chain, styleId, meta) {
3517
3641
  return chain.find(
@@ -3526,80 +3650,69 @@ function getCurrentStyleFromChain(chain, styleId, meta) {
3526
3650
 
3527
3651
  // src/components/style-tab-collapsible-content.tsx
3528
3652
  var StyleTabCollapsibleContent = ({ fields = [], children }) => {
3529
- return /* @__PURE__ */ React59.createElement(CollapsibleContent, { titleEnd: getStylesInheritanceIndicators(fields) }, children);
3653
+ return /* @__PURE__ */ React61.createElement(CollapsibleContent, { titleEnd: getStylesInheritanceIndicators(fields) }, children);
3530
3654
  };
3531
3655
  function getStylesInheritanceIndicators(fields) {
3532
- const isUsingFieldsIndicators = (0, import_editor_v1_adapters11.isExperimentActive)(EXPERIMENTAL_FEATURES.V_3_30);
3656
+ const isUsingFieldsIndicators = (0, import_editor_v1_adapters14.isExperimentActive)(EXPERIMENTAL_FEATURES.V_3_30);
3533
3657
  if (fields.length === 0 || !isUsingFieldsIndicators) {
3534
3658
  return null;
3535
3659
  }
3536
- return (isOpen) => !isOpen ? /* @__PURE__ */ React59.createElement(StylesInheritanceSectionIndicators, { fields }) : null;
3660
+ return (isOpen) => !isOpen ? /* @__PURE__ */ React61.createElement(StylesInheritanceSectionIndicators, { fields }) : null;
3537
3661
  }
3538
3662
 
3539
3663
  // src/components/style-sections/size-section/object-fit-field.tsx
3540
- var React60 = __toESM(require("react"));
3541
- var import_editor_controls30 = require("@elementor/editor-controls");
3542
- var import_ui49 = require("@elementor/ui");
3543
- var import_i18n32 = require("@wordpress/i18n");
3664
+ var React62 = __toESM(require("react"));
3665
+ var import_editor_controls31 = require("@elementor/editor-controls");
3666
+ var import_i18n36 = require("@wordpress/i18n");
3667
+ var OBJECT_FIT_LABEL = (0, import_i18n36.__)("Object fit", "elementor");
3544
3668
  var positionOptions2 = [
3545
- { label: (0, import_i18n32.__)("Fill", "elementor"), value: "fill" },
3546
- { label: (0, import_i18n32.__)("Cover", "elementor"), value: "cover" },
3547
- { label: (0, import_i18n32.__)("Contain", "elementor"), value: "contain" },
3548
- { label: (0, import_i18n32.__)("None", "elementor"), value: "none" },
3549
- { label: (0, import_i18n32.__)("Scale down", "elementor"), value: "scale-down" }
3669
+ { label: (0, import_i18n36.__)("Fill", "elementor"), value: "fill" },
3670
+ { label: (0, import_i18n36.__)("Cover", "elementor"), value: "cover" },
3671
+ { label: (0, import_i18n36.__)("Contain", "elementor"), value: "contain" },
3672
+ { label: (0, import_i18n36.__)("None", "elementor"), value: "none" },
3673
+ { label: (0, import_i18n36.__)("Scale down", "elementor"), value: "scale-down" }
3550
3674
  ];
3551
3675
  var ObjectFitField = () => {
3552
- return /* @__PURE__ */ React60.createElement(StylesField, { bind: "object-fit" }, /* @__PURE__ */ React60.createElement(import_ui49.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React60.createElement(import_ui49.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React60.createElement(ControlLabel, null, (0, import_i18n32.__)("Object fit", "elementor"))), /* @__PURE__ */ React60.createElement(import_ui49.Grid, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React60.createElement(import_editor_controls30.SelectControl, { options: positionOptions2 }))));
3676
+ return /* @__PURE__ */ React62.createElement(StylesField, { bind: "object-fit", propDisplayName: OBJECT_FIT_LABEL }, /* @__PURE__ */ React62.createElement(StylesFieldLayout, { label: OBJECT_FIT_LABEL }, /* @__PURE__ */ React62.createElement(import_editor_controls31.SelectControl, { options: positionOptions2 })));
3553
3677
  };
3554
3678
 
3555
3679
  // src/components/style-sections/size-section/object-position-field.tsx
3556
- var React61 = __toESM(require("react"));
3557
- var import_editor_controls31 = require("@elementor/editor-controls");
3558
- var import_ui50 = require("@elementor/ui");
3559
- var import_i18n33 = require("@wordpress/i18n");
3560
- var positionOptions3 = [
3561
- { label: (0, import_i18n33.__)("Center center", "elementor"), value: "center center" },
3562
- { label: (0, import_i18n33.__)("Center left", "elementor"), value: "center left" },
3563
- { label: (0, import_i18n33.__)("Center right", "elementor"), value: "center right" },
3564
- { label: (0, import_i18n33.__)("Top center", "elementor"), value: "top center" },
3565
- { label: (0, import_i18n33.__)("Top left", "elementor"), value: "top left" },
3566
- { label: (0, import_i18n33.__)("Top right", "elementor"), value: "top right" },
3567
- { label: (0, import_i18n33.__)("Bottom center", "elementor"), value: "bottom center" },
3568
- { label: (0, import_i18n33.__)("Bottom left", "elementor"), value: "bottom left" },
3569
- { label: (0, import_i18n33.__)("Bottom right", "elementor"), value: "bottom right" }
3570
- ];
3680
+ var React63 = __toESM(require("react"));
3681
+ var import_editor_controls32 = require("@elementor/editor-controls");
3682
+ var import_i18n37 = require("@wordpress/i18n");
3683
+ var OBJECT_POSITION_LABEL = (0, import_i18n37.__)("Object position", "elementor");
3571
3684
  var ObjectPositionField = () => {
3572
- return /* @__PURE__ */ React61.createElement(StylesField, { bind: "object-position" }, /* @__PURE__ */ React61.createElement(import_ui50.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React61.createElement(import_ui50.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React61.createElement(ControlLabel, null, (0, import_i18n33.__)("Object position", "elementor"))), /* @__PURE__ */ React61.createElement(import_ui50.Grid, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React61.createElement(import_editor_controls31.SelectControl, { options: positionOptions3 }))));
3685
+ return /* @__PURE__ */ React63.createElement(StylesField, { bind: "object-position", propDisplayName: OBJECT_POSITION_LABEL }, /* @__PURE__ */ React63.createElement(import_editor_controls32.PositionControl, null));
3573
3686
  };
3574
3687
 
3575
3688
  // src/components/style-sections/size-section/overflow-field.tsx
3576
- var React62 = __toESM(require("react"));
3577
- var import_editor_controls32 = require("@elementor/editor-controls");
3689
+ var React64 = __toESM(require("react"));
3690
+ var import_editor_controls33 = require("@elementor/editor-controls");
3578
3691
  var import_icons18 = require("@elementor/icons");
3579
- var import_ui51 = require("@elementor/ui");
3580
- var import_i18n34 = require("@wordpress/i18n");
3692
+ var import_i18n38 = require("@wordpress/i18n");
3693
+ var OVERFLOW_LABEL = (0, import_i18n38.__)("Overflow", "elementor");
3581
3694
  var options6 = [
3582
3695
  {
3583
3696
  value: "visible",
3584
- label: (0, import_i18n34.__)("Visible", "elementor"),
3585
- renderContent: ({ size }) => /* @__PURE__ */ React62.createElement(import_icons18.EyeIcon, { fontSize: size }),
3697
+ label: (0, import_i18n38.__)("Visible", "elementor"),
3698
+ renderContent: ({ size }) => /* @__PURE__ */ React64.createElement(import_icons18.EyeIcon, { fontSize: size }),
3586
3699
  showTooltip: true
3587
3700
  },
3588
3701
  {
3589
3702
  value: "hidden",
3590
- label: (0, import_i18n34.__)("Hidden", "elementor"),
3591
- renderContent: ({ size }) => /* @__PURE__ */ React62.createElement(import_icons18.EyeOffIcon, { fontSize: size }),
3703
+ label: (0, import_i18n38.__)("Hidden", "elementor"),
3704
+ renderContent: ({ size }) => /* @__PURE__ */ React64.createElement(import_icons18.EyeOffIcon, { fontSize: size }),
3592
3705
  showTooltip: true
3593
3706
  },
3594
3707
  {
3595
3708
  value: "auto",
3596
- label: (0, import_i18n34.__)("Auto", "elementor"),
3597
- renderContent: ({ size }) => /* @__PURE__ */ React62.createElement(import_icons18.LetterAIcon, { fontSize: size }),
3709
+ label: (0, import_i18n38.__)("Auto", "elementor"),
3710
+ renderContent: ({ size }) => /* @__PURE__ */ React64.createElement(import_icons18.LetterAIcon, { fontSize: size }),
3598
3711
  showTooltip: true
3599
3712
  }
3600
3713
  ];
3601
3714
  var OverflowField = () => {
3602
- return /* @__PURE__ */ React62.createElement(StylesField, { bind: "overflow" }, /* @__PURE__ */ React62.createElement(import_ui51.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React62.createElement(import_ui51.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React62.createElement(ControlLabel, null, (0, import_i18n34.__)("Overflow", "elementor"))), /* @__PURE__ */ React62.createElement(import_ui51.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React62.createElement(import_editor_controls32.ToggleControl, { options: options6 }))));
3715
+ return /* @__PURE__ */ React64.createElement(StylesField, { bind: "overflow", propDisplayName: OVERFLOW_LABEL }, /* @__PURE__ */ React64.createElement(StylesFieldLayout, { label: OVERFLOW_LABEL }, /* @__PURE__ */ React64.createElement(import_editor_controls33.ToggleControl, { options: options6 })));
3603
3716
  };
3604
3717
 
3605
3718
  // src/components/style-sections/size-section/size-section.tsx
@@ -3608,98 +3721,100 @@ var CssSizeProps = [
3608
3721
  [
3609
3722
  {
3610
3723
  bind: "width",
3611
- label: (0, import_i18n35.__)("Width", "elementor")
3724
+ label: (0, import_i18n39.__)("Width", "elementor")
3612
3725
  },
3613
3726
  {
3614
3727
  bind: "height",
3615
- label: (0, import_i18n35.__)("Height", "elementor")
3728
+ label: (0, import_i18n39.__)("Height", "elementor")
3616
3729
  }
3617
3730
  ],
3618
3731
  [
3619
3732
  {
3620
3733
  bind: "min-width",
3621
- label: (0, import_i18n35.__)("Min width", "elementor")
3734
+ label: (0, import_i18n39.__)("Min width", "elementor")
3622
3735
  },
3623
3736
  {
3624
3737
  bind: "min-height",
3625
- label: (0, import_i18n35.__)("Min height", "elementor")
3738
+ label: (0, import_i18n39.__)("Min height", "elementor")
3626
3739
  }
3627
3740
  ],
3628
3741
  [
3629
3742
  {
3630
3743
  bind: "max-width",
3631
- label: (0, import_i18n35.__)("Max width", "elementor")
3744
+ label: (0, import_i18n39.__)("Max width", "elementor")
3632
3745
  },
3633
3746
  {
3634
3747
  bind: "max-height",
3635
- label: (0, import_i18n35.__)("Max height", "elementor")
3748
+ label: (0, import_i18n39.__)("Max height", "elementor")
3636
3749
  }
3637
3750
  ]
3638
3751
  ];
3752
+ var ASPECT_RATIO_LABEL = (0, import_i18n39.__)("Aspect Ratio", "elementor");
3639
3753
  var SizeSection = () => {
3640
- const [fitValue] = useStylesField("object-fit");
3754
+ const { value: fitValue } = useStylesField("object-fit");
3641
3755
  const isNotFill = fitValue && fitValue?.value !== "fill";
3642
- const gridRowRefs = [(0, import_react28.useRef)(), (0, import_react28.useRef)(), (0, import_react28.useRef)()];
3643
- const isVersion330Active = (0, import_editor_v1_adapters12.isExperimentActive)(EXPERIMENT_ID);
3644
- return /* @__PURE__ */ React63.createElement(SectionContent, null, CssSizeProps.map((row, rowIndex) => /* @__PURE__ */ React63.createElement(import_ui52.Grid, { key: rowIndex, container: true, gap: 2, flexWrap: "nowrap", ref: gridRowRefs[rowIndex] }, row.map((props) => /* @__PURE__ */ React63.createElement(import_ui52.Grid, { item: true, xs: 6, key: props.bind }, /* @__PURE__ */ React63.createElement(SizeField, { ...props, rowRef: gridRowRefs[rowIndex], extendedOptions: ["auto"] }))))), /* @__PURE__ */ React63.createElement(PanelDivider, null), /* @__PURE__ */ React63.createElement(import_ui52.Stack, null, /* @__PURE__ */ React63.createElement(OverflowField, null)), isVersion330Active && /* @__PURE__ */ React63.createElement(StyleTabCollapsibleContent, { fields: ["aspect-ratio", "object-fit"] }, /* @__PURE__ */ React63.createElement(import_ui52.Stack, { gap: 2 }, /* @__PURE__ */ React63.createElement(StylesField, { bind: "aspect-ratio" }, /* @__PURE__ */ React63.createElement(import_editor_controls33.AspectRatioControl, { label: (0, import_i18n35.__)("Aspect Ratio", "elementor") })), /* @__PURE__ */ React63.createElement(PanelDivider, null), /* @__PURE__ */ React63.createElement(ObjectFitField, null), isNotFill && /* @__PURE__ */ React63.createElement(import_ui52.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React63.createElement(ObjectPositionField, null)))));
3756
+ const gridRowRefs = [(0, import_react30.useRef)(null), (0, import_react30.useRef)(null), (0, import_react30.useRef)(null)];
3757
+ const isVersion330Active = (0, import_editor_v1_adapters15.isExperimentActive)(EXPERIMENT_ID);
3758
+ return /* @__PURE__ */ React65.createElement(SectionContent, null, CssSizeProps.map((row, rowIndex) => /* @__PURE__ */ React65.createElement(import_ui41.Grid, { key: rowIndex, container: true, gap: 2, flexWrap: "nowrap", ref: gridRowRefs[rowIndex] }, row.map((props) => /* @__PURE__ */ React65.createElement(import_ui41.Grid, { item: true, xs: 6, key: props.bind }, /* @__PURE__ */ React65.createElement(SizeField, { ...props, rowRef: gridRowRefs[rowIndex], extendedOptions: ["auto"] }))))), /* @__PURE__ */ React65.createElement(PanelDivider, null), /* @__PURE__ */ React65.createElement(import_ui41.Stack, null, /* @__PURE__ */ React65.createElement(OverflowField, null)), isVersion330Active && /* @__PURE__ */ React65.createElement(StyleTabCollapsibleContent, { fields: ["aspect-ratio", "object-fit"] }, /* @__PURE__ */ React65.createElement(import_ui41.Stack, { gap: 2, pt: 2 }, /* @__PURE__ */ React65.createElement(StylesField, { bind: "aspect-ratio", propDisplayName: ASPECT_RATIO_LABEL }, /* @__PURE__ */ React65.createElement(import_editor_controls34.AspectRatioControl, { label: ASPECT_RATIO_LABEL })), /* @__PURE__ */ React65.createElement(PanelDivider, null), /* @__PURE__ */ React65.createElement(ObjectFitField, null), isNotFill && /* @__PURE__ */ React65.createElement(import_ui41.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React65.createElement(ObjectPositionField, null)))));
3645
3759
  };
3646
3760
  var SizeField = ({ label, bind, rowRef, extendedOptions }) => {
3647
- return /* @__PURE__ */ React63.createElement(StylesField, { bind }, /* @__PURE__ */ React63.createElement(import_ui52.Grid, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React63.createElement(import_ui52.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React63.createElement(ControlLabel, null, label)), /* @__PURE__ */ React63.createElement(import_ui52.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React63.createElement(import_editor_controls33.SizeControl, { extendedOptions, anchorRef: rowRef }))));
3761
+ return /* @__PURE__ */ React65.createElement(StylesField, { bind, propDisplayName: label }, /* @__PURE__ */ React65.createElement(import_ui41.Grid, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React65.createElement(import_ui41.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React65.createElement(ControlLabel, null, label)), /* @__PURE__ */ React65.createElement(import_ui41.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React65.createElement(import_editor_controls34.SizeControl, { extendedOptions, anchorRef: rowRef }))));
3648
3762
  };
3649
3763
 
3650
3764
  // src/components/style-sections/spacing-section/spacing-section.tsx
3651
- var React64 = __toESM(require("react"));
3652
- var import_editor_controls34 = require("@elementor/editor-controls");
3653
- var import_i18n36 = require("@wordpress/i18n");
3765
+ var React66 = __toESM(require("react"));
3766
+ var import_editor_controls35 = require("@elementor/editor-controls");
3767
+ var import_i18n40 = require("@wordpress/i18n");
3768
+ var MARGIN_LABEL = (0, import_i18n40.__)("Margin", "elementor");
3769
+ var PADDING_LABEL = (0, import_i18n40.__)("Padding", "elementor");
3654
3770
  var SpacingSection = () => {
3655
3771
  const { isSiteRtl } = useDirection();
3656
- return /* @__PURE__ */ React64.createElement(SectionContent, null, /* @__PURE__ */ React64.createElement(StylesField, { bind: "margin" }, /* @__PURE__ */ React64.createElement(
3657
- import_editor_controls34.LinkedDimensionsControl,
3772
+ return /* @__PURE__ */ React66.createElement(SectionContent, null, /* @__PURE__ */ React66.createElement(StylesField, { bind: "margin", propDisplayName: MARGIN_LABEL }, /* @__PURE__ */ React66.createElement(
3773
+ import_editor_controls35.LinkedDimensionsControl,
3658
3774
  {
3659
- label: (0, import_i18n36.__)("Margin", "elementor"),
3775
+ label: MARGIN_LABEL,
3660
3776
  isSiteRtl,
3661
3777
  extendedOptions: ["auto"]
3662
3778
  }
3663
- )), /* @__PURE__ */ React64.createElement(PanelDivider, null), /* @__PURE__ */ React64.createElement(StylesField, { bind: "padding" }, /* @__PURE__ */ React64.createElement(import_editor_controls34.LinkedDimensionsControl, { label: (0, import_i18n36.__)("Padding", "elementor"), isSiteRtl })));
3779
+ )), /* @__PURE__ */ React66.createElement(PanelDivider, null), /* @__PURE__ */ React66.createElement(StylesField, { bind: "padding", propDisplayName: PADDING_LABEL }, /* @__PURE__ */ React66.createElement(import_editor_controls35.LinkedDimensionsControl, { label: PADDING_LABEL, isSiteRtl })));
3664
3780
  };
3665
3781
 
3666
3782
  // src/components/style-sections/typography-section/typography-section.tsx
3667
- var React80 = __toESM(require("react"));
3668
- var import_editor_v1_adapters13 = require("@elementor/editor-v1-adapters");
3783
+ var React82 = __toESM(require("react"));
3784
+ var import_editor_v1_adapters16 = require("@elementor/editor-v1-adapters");
3669
3785
 
3670
3786
  // src/components/style-sections/typography-section/column-count-field.tsx
3671
- var React65 = __toESM(require("react"));
3672
- var import_editor_controls35 = require("@elementor/editor-controls");
3673
- var import_ui53 = require("@elementor/ui");
3674
- var import_i18n37 = require("@wordpress/i18n");
3787
+ var React67 = __toESM(require("react"));
3788
+ var import_editor_controls36 = require("@elementor/editor-controls");
3789
+ var import_i18n41 = require("@wordpress/i18n");
3790
+ var COLUMN_COUNT_LABEL = (0, import_i18n41.__)("Columns", "elementor");
3675
3791
  var ColumnCountField = () => {
3676
- return /* @__PURE__ */ React65.createElement(StylesField, { bind: "column-count" }, /* @__PURE__ */ React65.createElement(import_ui53.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React65.createElement(import_ui53.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React65.createElement(ControlLabel, null, (0, import_i18n37.__)("Columns", "elementor"))), /* @__PURE__ */ React65.createElement(import_ui53.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React65.createElement(import_editor_controls35.NumberControl, { shouldForceInt: true, min: 0, step: 1 }))));
3792
+ return /* @__PURE__ */ React67.createElement(StylesField, { bind: "column-count", propDisplayName: COLUMN_COUNT_LABEL }, /* @__PURE__ */ React67.createElement(StylesFieldLayout, { label: COLUMN_COUNT_LABEL }, /* @__PURE__ */ React67.createElement(import_editor_controls36.NumberControl, { shouldForceInt: true, min: 0, step: 1 })));
3677
3793
  };
3678
3794
 
3679
3795
  // src/components/style-sections/typography-section/column-gap-field.tsx
3680
- var React66 = __toESM(require("react"));
3681
- var import_react29 = require("react");
3682
- var import_editor_controls36 = require("@elementor/editor-controls");
3683
- var import_ui54 = require("@elementor/ui");
3684
- var import_i18n38 = require("@wordpress/i18n");
3796
+ var React68 = __toESM(require("react"));
3797
+ var import_react31 = require("react");
3798
+ var import_editor_controls37 = require("@elementor/editor-controls");
3799
+ var import_i18n42 = require("@wordpress/i18n");
3800
+ var COLUMN_GAP_LABEL = (0, import_i18n42.__)("Column gap", "elementor");
3685
3801
  var ColumnGapField = () => {
3686
- const rowRef = (0, import_react29.useRef)();
3687
- return /* @__PURE__ */ React66.createElement(StylesField, { bind: "column-gap" }, /* @__PURE__ */ React66.createElement(import_ui54.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap", ref: rowRef }, /* @__PURE__ */ React66.createElement(import_ui54.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React66.createElement(ControlLabel, null, (0, import_i18n38.__)("Column gap", "elementor"))), /* @__PURE__ */ React66.createElement(import_ui54.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React66.createElement(import_editor_controls36.SizeControl, { anchorRef: rowRef }))));
3802
+ const rowRef = (0, import_react31.useRef)(null);
3803
+ return /* @__PURE__ */ React68.createElement(StylesField, { bind: "column-gap", propDisplayName: COLUMN_GAP_LABEL }, /* @__PURE__ */ React68.createElement(StylesFieldLayout, { label: COLUMN_GAP_LABEL, ref: rowRef }, /* @__PURE__ */ React68.createElement(import_editor_controls37.SizeControl, { anchorRef: rowRef })));
3688
3804
  };
3689
3805
 
3690
3806
  // src/components/style-sections/typography-section/font-family-field.tsx
3691
- var React67 = __toESM(require("react"));
3692
- var import_editor_controls37 = require("@elementor/editor-controls");
3693
- var import_ui55 = require("@elementor/ui");
3694
- var import_i18n40 = require("@wordpress/i18n");
3807
+ var React69 = __toESM(require("react"));
3808
+ var import_editor_controls38 = require("@elementor/editor-controls");
3809
+ var import_i18n44 = require("@wordpress/i18n");
3695
3810
 
3696
3811
  // src/components/style-sections/typography-section/hooks/use-font-families.ts
3697
- var import_react30 = require("react");
3698
- var import_i18n39 = require("@wordpress/i18n");
3812
+ var import_react32 = require("react");
3813
+ var import_i18n43 = require("@wordpress/i18n");
3699
3814
  var supportedCategories = {
3700
- system: (0, import_i18n39.__)("System", "elementor"),
3701
- custom: (0, import_i18n39.__)("Custom Fonts", "elementor"),
3702
- googlefonts: (0, import_i18n39.__)("Google Fonts", "elementor")
3815
+ system: (0, import_i18n43.__)("System", "elementor"),
3816
+ custom: (0, import_i18n43.__)("Custom Fonts", "elementor"),
3817
+ googlefonts: (0, import_i18n43.__)("Google Fonts", "elementor")
3703
3818
  };
3704
3819
  var getFontFamilies = () => {
3705
3820
  const { controls } = getElementorConfig();
@@ -3711,7 +3826,7 @@ var getFontFamilies = () => {
3711
3826
  };
3712
3827
  var useFontFamilies = () => {
3713
3828
  const fontFamilies = getFontFamilies();
3714
- return (0, import_react30.useMemo)(() => {
3829
+ return (0, import_react32.useMemo)(() => {
3715
3830
  const categoriesOrder = ["system", "custom", "googlefonts"];
3716
3831
  return Object.entries(fontFamilies || {}).reduce((acc, [font, category]) => {
3717
3832
  if (!supportedCategories[category]) {
@@ -3731,199 +3846,204 @@ var useFontFamilies = () => {
3731
3846
  };
3732
3847
 
3733
3848
  // src/components/style-sections/typography-section/font-family-field.tsx
3849
+ var FONT_FAMILY_LABEL = (0, import_i18n44.__)("Font family", "elementor");
3734
3850
  var FontFamilyField = () => {
3735
3851
  const fontFamilies = useFontFamilies();
3852
+ const sectionWidth = useSectionWidth();
3736
3853
  if (fontFamilies.length === 0) {
3737
3854
  return null;
3738
3855
  }
3739
- return /* @__PURE__ */ React67.createElement(StylesField, { bind: "font-family" }, /* @__PURE__ */ React67.createElement(import_ui55.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React67.createElement(import_ui55.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React67.createElement(ControlLabel, null, (0, import_i18n40.__)("Font family", "elementor"))), /* @__PURE__ */ React67.createElement(import_ui55.Grid, { item: true, xs: 6, sx: { minWidth: 0 } }, /* @__PURE__ */ React67.createElement(import_editor_controls37.FontFamilyControl, { fontFamilies }))));
3856
+ return /* @__PURE__ */ React69.createElement(StylesField, { bind: "font-family", propDisplayName: FONT_FAMILY_LABEL }, /* @__PURE__ */ React69.createElement(StylesFieldLayout, { label: FONT_FAMILY_LABEL }, /* @__PURE__ */ React69.createElement(import_editor_controls38.FontFamilyControl, { fontFamilies, sectionWidth })));
3740
3857
  };
3741
3858
 
3742
3859
  // src/components/style-sections/typography-section/font-size-field.tsx
3743
- var React68 = __toESM(require("react"));
3744
- var import_react31 = require("react");
3745
- var import_editor_controls38 = require("@elementor/editor-controls");
3746
- var import_ui56 = require("@elementor/ui");
3747
- var import_i18n41 = require("@wordpress/i18n");
3860
+ var React70 = __toESM(require("react"));
3861
+ var import_react33 = require("react");
3862
+ var import_editor_controls39 = require("@elementor/editor-controls");
3863
+ var import_i18n45 = require("@wordpress/i18n");
3864
+ var FONT_SIZE_LABEL = (0, import_i18n45.__)("Font size", "elementor");
3748
3865
  var FontSizeField = () => {
3749
- const rowRef = (0, import_react31.useRef)();
3750
- return /* @__PURE__ */ React68.createElement(StylesField, { bind: "font-size" }, /* @__PURE__ */ React68.createElement(import_ui56.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap", ref: rowRef }, /* @__PURE__ */ React68.createElement(import_ui56.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React68.createElement(ControlLabel, null, (0, import_i18n41.__)("Font size", "elementor"))), /* @__PURE__ */ React68.createElement(import_ui56.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React68.createElement(import_editor_controls38.SizeControl, { anchorRef: rowRef }))));
3866
+ const rowRef = (0, import_react33.useRef)(null);
3867
+ return /* @__PURE__ */ React70.createElement(StylesField, { bind: "font-size", propDisplayName: FONT_SIZE_LABEL }, /* @__PURE__ */ React70.createElement(StylesFieldLayout, { label: FONT_SIZE_LABEL, ref: rowRef }, /* @__PURE__ */ React70.createElement(import_editor_controls39.SizeControl, { anchorRef: rowRef })));
3751
3868
  };
3752
3869
 
3753
3870
  // src/components/style-sections/typography-section/font-style-field.tsx
3754
- var React69 = __toESM(require("react"));
3755
- var import_editor_controls39 = require("@elementor/editor-controls");
3871
+ var React71 = __toESM(require("react"));
3872
+ var import_editor_controls40 = require("@elementor/editor-controls");
3756
3873
  var import_icons19 = require("@elementor/icons");
3757
- var import_ui57 = require("@elementor/ui");
3758
- var import_i18n42 = require("@wordpress/i18n");
3874
+ var import_i18n46 = require("@wordpress/i18n");
3875
+ var FONT_STYLE_LABEL = (0, import_i18n46.__)("Font style", "elementor");
3759
3876
  var options7 = [
3760
3877
  {
3761
3878
  value: "normal",
3762
- label: (0, import_i18n42.__)("Normal", "elementor"),
3763
- renderContent: ({ size }) => /* @__PURE__ */ React69.createElement(import_icons19.MinusIcon, { fontSize: size }),
3879
+ label: (0, import_i18n46.__)("Normal", "elementor"),
3880
+ renderContent: ({ size }) => /* @__PURE__ */ React71.createElement(import_icons19.MinusIcon, { fontSize: size }),
3764
3881
  showTooltip: true
3765
3882
  },
3766
3883
  {
3767
3884
  value: "italic",
3768
- label: (0, import_i18n42.__)("Italic", "elementor"),
3769
- renderContent: ({ size }) => /* @__PURE__ */ React69.createElement(import_icons19.ItalicIcon, { fontSize: size }),
3885
+ label: (0, import_i18n46.__)("Italic", "elementor"),
3886
+ renderContent: ({ size }) => /* @__PURE__ */ React71.createElement(import_icons19.ItalicIcon, { fontSize: size }),
3770
3887
  showTooltip: true
3771
3888
  }
3772
3889
  ];
3773
- var FontStyleField = () => /* @__PURE__ */ React69.createElement(StylesField, { bind: "font-style" }, /* @__PURE__ */ React69.createElement(import_ui57.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React69.createElement(import_ui57.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React69.createElement(import_editor_controls39.ControlFormLabel, null, (0, import_i18n42.__)("Font style", "elementor"))), /* @__PURE__ */ React69.createElement(import_ui57.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React69.createElement(import_editor_controls39.ToggleControl, { options: options7 }))));
3890
+ var FontStyleField = () => {
3891
+ return /* @__PURE__ */ React71.createElement(StylesField, { bind: "font-style", propDisplayName: FONT_STYLE_LABEL }, /* @__PURE__ */ React71.createElement(StylesFieldLayout, { label: FONT_STYLE_LABEL }, /* @__PURE__ */ React71.createElement(import_editor_controls40.ToggleControl, { options: options7 })));
3892
+ };
3774
3893
 
3775
3894
  // src/components/style-sections/typography-section/font-weight-field.tsx
3776
- var React70 = __toESM(require("react"));
3777
- var import_editor_controls40 = require("@elementor/editor-controls");
3778
- var import_ui58 = require("@elementor/ui");
3779
- var import_i18n43 = require("@wordpress/i18n");
3895
+ var React72 = __toESM(require("react"));
3896
+ var import_editor_controls41 = require("@elementor/editor-controls");
3897
+ var import_i18n47 = require("@wordpress/i18n");
3898
+ var FONT_WEIGHT_LABEL = (0, import_i18n47.__)("Font weight", "elementor");
3780
3899
  var fontWeightOptions = [
3781
- { value: "100", label: (0, import_i18n43.__)("100 - Thin", "elementor") },
3782
- { value: "200", label: (0, import_i18n43.__)("200 - Extra light", "elementor") },
3783
- { value: "300", label: (0, import_i18n43.__)("300 - Light", "elementor") },
3784
- { value: "400", label: (0, import_i18n43.__)("400 - Normal", "elementor") },
3785
- { value: "500", label: (0, import_i18n43.__)("500 - Medium", "elementor") },
3786
- { value: "600", label: (0, import_i18n43.__)("600 - Semi bold", "elementor") },
3787
- { value: "700", label: (0, import_i18n43.__)("700 - Bold", "elementor") },
3788
- { value: "800", label: (0, import_i18n43.__)("800 - Extra bold", "elementor") },
3789
- { value: "900", label: (0, import_i18n43.__)("900 - Black", "elementor") }
3900
+ { value: "100", label: (0, import_i18n47.__)("100 - Thin", "elementor") },
3901
+ { value: "200", label: (0, import_i18n47.__)("200 - Extra light", "elementor") },
3902
+ { value: "300", label: (0, import_i18n47.__)("300 - Light", "elementor") },
3903
+ { value: "400", label: (0, import_i18n47.__)("400 - Normal", "elementor") },
3904
+ { value: "500", label: (0, import_i18n47.__)("500 - Medium", "elementor") },
3905
+ { value: "600", label: (0, import_i18n47.__)("600 - Semi bold", "elementor") },
3906
+ { value: "700", label: (0, import_i18n47.__)("700 - Bold", "elementor") },
3907
+ { value: "800", label: (0, import_i18n47.__)("800 - Extra bold", "elementor") },
3908
+ { value: "900", label: (0, import_i18n47.__)("900 - Black", "elementor") }
3790
3909
  ];
3791
3910
  var FontWeightField = () => {
3792
- return /* @__PURE__ */ React70.createElement(StylesField, { bind: "font-weight" }, /* @__PURE__ */ React70.createElement(import_ui58.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React70.createElement(import_ui58.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React70.createElement(ControlLabel, null, (0, import_i18n43.__)("Font weight", "elementor"))), /* @__PURE__ */ React70.createElement(import_ui58.Grid, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React70.createElement(import_editor_controls40.SelectControl, { options: fontWeightOptions }))));
3911
+ return /* @__PURE__ */ React72.createElement(StylesField, { bind: "font-weight", propDisplayName: FONT_WEIGHT_LABEL }, /* @__PURE__ */ React72.createElement(StylesFieldLayout, { label: FONT_WEIGHT_LABEL }, /* @__PURE__ */ React72.createElement(import_editor_controls41.SelectControl, { options: fontWeightOptions })));
3793
3912
  };
3794
3913
 
3795
3914
  // src/components/style-sections/typography-section/letter-spacing-field.tsx
3796
- var React71 = __toESM(require("react"));
3797
- var import_react32 = require("react");
3798
- var import_editor_controls41 = require("@elementor/editor-controls");
3799
- var import_ui59 = require("@elementor/ui");
3800
- var import_i18n44 = require("@wordpress/i18n");
3915
+ var React73 = __toESM(require("react"));
3916
+ var import_react34 = require("react");
3917
+ var import_editor_controls42 = require("@elementor/editor-controls");
3918
+ var import_i18n48 = require("@wordpress/i18n");
3919
+ var LETTER_SPACING_LABEL = (0, import_i18n48.__)("Letter spacing", "elementor");
3801
3920
  var LetterSpacingField = () => {
3802
- const rowRef = (0, import_react32.useRef)();
3803
- return /* @__PURE__ */ React71.createElement(StylesField, { bind: "letter-spacing" }, /* @__PURE__ */ React71.createElement(import_ui59.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap", ref: rowRef }, /* @__PURE__ */ React71.createElement(import_ui59.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React71.createElement(ControlLabel, null, (0, import_i18n44.__)("Letter spacing", "elementor"))), /* @__PURE__ */ React71.createElement(import_ui59.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React71.createElement(import_editor_controls41.SizeControl, { anchorRef: rowRef }))));
3921
+ const rowRef = (0, import_react34.useRef)(null);
3922
+ return /* @__PURE__ */ React73.createElement(StylesField, { bind: "letter-spacing", propDisplayName: LETTER_SPACING_LABEL }, /* @__PURE__ */ React73.createElement(StylesFieldLayout, { label: LETTER_SPACING_LABEL, ref: rowRef }, /* @__PURE__ */ React73.createElement(import_editor_controls42.SizeControl, { anchorRef: rowRef })));
3804
3923
  };
3805
3924
 
3806
3925
  // src/components/style-sections/typography-section/line-height-field.tsx
3807
- var React72 = __toESM(require("react"));
3808
- var import_react33 = require("react");
3809
- var import_editor_controls42 = require("@elementor/editor-controls");
3810
- var import_ui60 = require("@elementor/ui");
3811
- var import_i18n45 = require("@wordpress/i18n");
3926
+ var React74 = __toESM(require("react"));
3927
+ var import_react35 = require("react");
3928
+ var import_editor_controls43 = require("@elementor/editor-controls");
3929
+ var import_i18n49 = require("@wordpress/i18n");
3930
+ var LINE_HEIGHT_LABEL = (0, import_i18n49.__)("Line height", "elementor");
3812
3931
  var LineHeightField = () => {
3813
- const rowRef = (0, import_react33.useRef)();
3814
- return /* @__PURE__ */ React72.createElement(StylesField, { bind: "line-height" }, /* @__PURE__ */ React72.createElement(import_ui60.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap", ref: rowRef }, /* @__PURE__ */ React72.createElement(import_ui60.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React72.createElement(ControlLabel, null, (0, import_i18n45.__)("Line height", "elementor"))), /* @__PURE__ */ React72.createElement(import_ui60.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React72.createElement(import_editor_controls42.SizeControl, { anchorRef: rowRef }))));
3932
+ const rowRef = (0, import_react35.useRef)(null);
3933
+ return /* @__PURE__ */ React74.createElement(StylesField, { bind: "line-height", propDisplayName: LINE_HEIGHT_LABEL }, /* @__PURE__ */ React74.createElement(StylesFieldLayout, { label: LINE_HEIGHT_LABEL, ref: rowRef }, /* @__PURE__ */ React74.createElement(import_editor_controls43.SizeControl, { anchorRef: rowRef })));
3815
3934
  };
3816
3935
 
3817
3936
  // src/components/style-sections/typography-section/text-alignment-field.tsx
3818
- var React73 = __toESM(require("react"));
3819
- var import_editor_controls43 = require("@elementor/editor-controls");
3937
+ var React75 = __toESM(require("react"));
3938
+ var import_editor_controls44 = require("@elementor/editor-controls");
3820
3939
  var import_icons20 = require("@elementor/icons");
3821
- var import_ui61 = require("@elementor/ui");
3822
- var import_i18n46 = require("@wordpress/i18n");
3823
- var AlignStartIcon = (0, import_ui61.withDirection)(import_icons20.AlignLeftIcon);
3824
- var AlignEndIcon = (0, import_ui61.withDirection)(import_icons20.AlignRightIcon);
3940
+ var import_ui42 = require("@elementor/ui");
3941
+ var import_i18n50 = require("@wordpress/i18n");
3942
+ var TEXT_ALIGNMENT_LABEL = (0, import_i18n50.__)("Text align", "elementor");
3943
+ var AlignStartIcon = (0, import_ui42.withDirection)(import_icons20.AlignLeftIcon);
3944
+ var AlignEndIcon = (0, import_ui42.withDirection)(import_icons20.AlignRightIcon);
3825
3945
  var options8 = [
3826
3946
  {
3827
3947
  value: "start",
3828
- label: (0, import_i18n46.__)("Start", "elementor"),
3829
- renderContent: ({ size }) => /* @__PURE__ */ React73.createElement(AlignStartIcon, { fontSize: size }),
3948
+ label: (0, import_i18n50.__)("Start", "elementor"),
3949
+ renderContent: ({ size }) => /* @__PURE__ */ React75.createElement(AlignStartIcon, { fontSize: size }),
3830
3950
  showTooltip: true
3831
3951
  },
3832
3952
  {
3833
3953
  value: "center",
3834
- label: (0, import_i18n46.__)("Center", "elementor"),
3835
- renderContent: ({ size }) => /* @__PURE__ */ React73.createElement(import_icons20.AlignCenterIcon, { fontSize: size }),
3954
+ label: (0, import_i18n50.__)("Center", "elementor"),
3955
+ renderContent: ({ size }) => /* @__PURE__ */ React75.createElement(import_icons20.AlignCenterIcon, { fontSize: size }),
3836
3956
  showTooltip: true
3837
3957
  },
3838
3958
  {
3839
3959
  value: "end",
3840
- label: (0, import_i18n46.__)("End", "elementor"),
3841
- renderContent: ({ size }) => /* @__PURE__ */ React73.createElement(AlignEndIcon, { fontSize: size }),
3960
+ label: (0, import_i18n50.__)("End", "elementor"),
3961
+ renderContent: ({ size }) => /* @__PURE__ */ React75.createElement(AlignEndIcon, { fontSize: size }),
3842
3962
  showTooltip: true
3843
3963
  },
3844
3964
  {
3845
3965
  value: "justify",
3846
- label: (0, import_i18n46.__)("Justify", "elementor"),
3847
- renderContent: ({ size }) => /* @__PURE__ */ React73.createElement(import_icons20.AlignJustifiedIcon, { fontSize: size }),
3966
+ label: (0, import_i18n50.__)("Justify", "elementor"),
3967
+ renderContent: ({ size }) => /* @__PURE__ */ React75.createElement(import_icons20.AlignJustifiedIcon, { fontSize: size }),
3848
3968
  showTooltip: true
3849
3969
  }
3850
3970
  ];
3851
3971
  var TextAlignmentField = () => {
3852
- return /* @__PURE__ */ React73.createElement(UiProviders, null, /* @__PURE__ */ React73.createElement(StylesField, { bind: "text-align" }, /* @__PURE__ */ React73.createElement(import_ui61.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React73.createElement(import_ui61.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React73.createElement(ControlLabel, null, (0, import_i18n46.__)("Text align", "elementor"))), /* @__PURE__ */ React73.createElement(import_ui61.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React73.createElement(import_editor_controls43.ToggleControl, { options: options8 })))));
3972
+ return /* @__PURE__ */ React75.createElement(StylesField, { bind: "text-align", propDisplayName: TEXT_ALIGNMENT_LABEL }, /* @__PURE__ */ React75.createElement(UiProviders, null, /* @__PURE__ */ React75.createElement(StylesFieldLayout, { label: TEXT_ALIGNMENT_LABEL }, /* @__PURE__ */ React75.createElement(import_editor_controls44.ToggleControl, { options: options8 }))));
3853
3973
  };
3854
3974
 
3855
3975
  // src/components/style-sections/typography-section/text-color-field.tsx
3856
- var React74 = __toESM(require("react"));
3857
- var import_editor_controls44 = require("@elementor/editor-controls");
3858
- var import_ui62 = require("@elementor/ui");
3859
- var import_i18n47 = require("@wordpress/i18n");
3976
+ var React76 = __toESM(require("react"));
3977
+ var import_editor_controls45 = require("@elementor/editor-controls");
3978
+ var import_i18n51 = require("@wordpress/i18n");
3979
+ var TEXT_COLOR_LABEL = (0, import_i18n51.__)("Text color", "elementor");
3860
3980
  var TextColorField = () => {
3861
- return /* @__PURE__ */ React74.createElement(StylesField, { bind: "color" }, /* @__PURE__ */ React74.createElement(import_ui62.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React74.createElement(import_ui62.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React74.createElement(ControlLabel, null, (0, import_i18n47.__)("Text color", "elementor"))), /* @__PURE__ */ React74.createElement(import_ui62.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React74.createElement(import_editor_controls44.ColorControl, null))));
3981
+ return /* @__PURE__ */ React76.createElement(StylesField, { bind: "color", propDisplayName: TEXT_COLOR_LABEL }, /* @__PURE__ */ React76.createElement(StylesFieldLayout, { label: TEXT_COLOR_LABEL }, /* @__PURE__ */ React76.createElement(import_editor_controls45.ColorControl, null)));
3862
3982
  };
3863
3983
 
3864
3984
  // src/components/style-sections/typography-section/text-decoration-field.tsx
3865
- var React75 = __toESM(require("react"));
3866
- var import_editor_controls45 = require("@elementor/editor-controls");
3985
+ var React77 = __toESM(require("react"));
3986
+ var import_editor_controls46 = require("@elementor/editor-controls");
3867
3987
  var import_icons21 = require("@elementor/icons");
3868
- var import_ui63 = require("@elementor/ui");
3869
- var import_i18n48 = require("@wordpress/i18n");
3988
+ var import_i18n52 = require("@wordpress/i18n");
3989
+ var TEXT_DECORATION_LABEL = (0, import_i18n52.__)("Line decoration", "elementor");
3870
3990
  var options9 = [
3871
3991
  {
3872
3992
  value: "none",
3873
- label: (0, import_i18n48.__)("None", "elementor"),
3874
- renderContent: ({ size }) => /* @__PURE__ */ React75.createElement(import_icons21.MinusIcon, { fontSize: size }),
3993
+ label: (0, import_i18n52.__)("None", "elementor"),
3994
+ renderContent: ({ size }) => /* @__PURE__ */ React77.createElement(import_icons21.MinusIcon, { fontSize: size }),
3875
3995
  showTooltip: true,
3876
3996
  exclusive: true
3877
3997
  },
3878
3998
  {
3879
3999
  value: "underline",
3880
- label: (0, import_i18n48.__)("Underline", "elementor"),
3881
- renderContent: ({ size }) => /* @__PURE__ */ React75.createElement(import_icons21.UnderlineIcon, { fontSize: size }),
4000
+ label: (0, import_i18n52.__)("Underline", "elementor"),
4001
+ renderContent: ({ size }) => /* @__PURE__ */ React77.createElement(import_icons21.UnderlineIcon, { fontSize: size }),
3882
4002
  showTooltip: true
3883
4003
  },
3884
4004
  {
3885
4005
  value: "line-through",
3886
- label: (0, import_i18n48.__)("Line-through", "elementor"),
3887
- renderContent: ({ size }) => /* @__PURE__ */ React75.createElement(import_icons21.StrikethroughIcon, { fontSize: size }),
4006
+ label: (0, import_i18n52.__)("Line-through", "elementor"),
4007
+ renderContent: ({ size }) => /* @__PURE__ */ React77.createElement(import_icons21.StrikethroughIcon, { fontSize: size }),
3888
4008
  showTooltip: true
3889
4009
  },
3890
4010
  {
3891
4011
  value: "overline",
3892
- label: (0, import_i18n48.__)("Overline", "elementor"),
3893
- renderContent: ({ size }) => /* @__PURE__ */ React75.createElement(import_icons21.OverlineIcon, { fontSize: size }),
4012
+ label: (0, import_i18n52.__)("Overline", "elementor"),
4013
+ renderContent: ({ size }) => /* @__PURE__ */ React77.createElement(import_icons21.OverlineIcon, { fontSize: size }),
3894
4014
  showTooltip: true
3895
4015
  }
3896
4016
  ];
3897
- var TextDecorationField = () => /* @__PURE__ */ React75.createElement(StylesField, { bind: "text-decoration" }, /* @__PURE__ */ React75.createElement(import_ui63.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React75.createElement(import_ui63.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React75.createElement(ControlLabel, null, (0, import_i18n48.__)("Line decoration", "elementor"))), /* @__PURE__ */ React75.createElement(import_ui63.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React75.createElement(import_editor_controls45.ToggleControl, { options: options9, exclusive: false }))));
4017
+ var TextDecorationField = () => /* @__PURE__ */ React77.createElement(StylesField, { bind: "text-decoration", propDisplayName: TEXT_DECORATION_LABEL }, /* @__PURE__ */ React77.createElement(StylesFieldLayout, { label: TEXT_DECORATION_LABEL }, /* @__PURE__ */ React77.createElement(import_editor_controls46.ToggleControl, { options: options9, exclusive: false })));
3898
4018
 
3899
4019
  // src/components/style-sections/typography-section/text-direction-field.tsx
3900
- var React76 = __toESM(require("react"));
3901
- var import_editor_controls46 = require("@elementor/editor-controls");
4020
+ var React78 = __toESM(require("react"));
4021
+ var import_editor_controls47 = require("@elementor/editor-controls");
3902
4022
  var import_icons22 = require("@elementor/icons");
3903
- var import_ui64 = require("@elementor/ui");
3904
- var import_i18n49 = require("@wordpress/i18n");
4023
+ var import_i18n53 = require("@wordpress/i18n");
4024
+ var TEXT_DIRECTION_LABEL = (0, import_i18n53.__)("Direction", "elementor");
3905
4025
  var options10 = [
3906
4026
  {
3907
4027
  value: "ltr",
3908
- label: (0, import_i18n49.__)("Left to right", "elementor"),
3909
- renderContent: ({ size }) => /* @__PURE__ */ React76.createElement(import_icons22.TextDirectionLtrIcon, { fontSize: size }),
4028
+ label: (0, import_i18n53.__)("Left to right", "elementor"),
4029
+ renderContent: ({ size }) => /* @__PURE__ */ React78.createElement(import_icons22.TextDirectionLtrIcon, { fontSize: size }),
3910
4030
  showTooltip: true
3911
4031
  },
3912
4032
  {
3913
4033
  value: "rtl",
3914
- label: (0, import_i18n49.__)("Right to left", "elementor"),
3915
- renderContent: ({ size }) => /* @__PURE__ */ React76.createElement(import_icons22.TextDirectionRtlIcon, { fontSize: size }),
4034
+ label: (0, import_i18n53.__)("Right to left", "elementor"),
4035
+ renderContent: ({ size }) => /* @__PURE__ */ React78.createElement(import_icons22.TextDirectionRtlIcon, { fontSize: size }),
3916
4036
  showTooltip: true
3917
4037
  }
3918
4038
  ];
3919
4039
  var TextDirectionField = () => {
3920
- return /* @__PURE__ */ React76.createElement(StylesField, { bind: "direction" }, /* @__PURE__ */ React76.createElement(import_ui64.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React76.createElement(import_ui64.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React76.createElement(ControlLabel, null, (0, import_i18n49.__)("Direction", "elementor"))), /* @__PURE__ */ React76.createElement(import_ui64.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React76.createElement(import_editor_controls46.ToggleControl, { options: options10 }))));
4040
+ return /* @__PURE__ */ React78.createElement(StylesField, { bind: "direction", propDisplayName: TEXT_DIRECTION_LABEL }, /* @__PURE__ */ React78.createElement(StylesFieldLayout, { label: TEXT_DIRECTION_LABEL }, /* @__PURE__ */ React78.createElement(import_editor_controls47.ToggleControl, { options: options10 })));
3921
4041
  };
3922
4042
 
3923
4043
  // src/components/style-sections/typography-section/text-stroke-field.tsx
3924
- var React77 = __toESM(require("react"));
3925
- var import_editor_controls47 = require("@elementor/editor-controls");
3926
- var import_i18n50 = require("@wordpress/i18n");
4044
+ var React79 = __toESM(require("react"));
4045
+ var import_editor_controls48 = require("@elementor/editor-controls");
4046
+ var import_i18n54 = require("@wordpress/i18n");
3927
4047
  var initTextStroke = {
3928
4048
  $$type: "stroke",
3929
4049
  value: {
@@ -3940,80 +4060,80 @@ var initTextStroke = {
3940
4060
  }
3941
4061
  }
3942
4062
  };
4063
+ var TEXT_STROKE_LABEL = (0, import_i18n54.__)("Text stroke", "elementor");
3943
4064
  var TextStrokeField = () => {
3944
- const { canEdit } = useStyle();
3945
- const [textStroke, setTextStroke] = useStylesField("stroke");
4065
+ const { value, setValue, canEdit } = useStylesField("stroke");
3946
4066
  const addTextStroke = () => {
3947
- setTextStroke(initTextStroke);
4067
+ setValue(initTextStroke);
3948
4068
  };
3949
4069
  const removeTextStroke = () => {
3950
- setTextStroke(null);
4070
+ setValue(null);
3951
4071
  };
3952
- const hasTextStroke = Boolean(textStroke);
3953
- return /* @__PURE__ */ React77.createElement(StylesField, { bind: "stroke" }, /* @__PURE__ */ React77.createElement(
4072
+ const hasTextStroke = Boolean(value);
4073
+ return /* @__PURE__ */ React79.createElement(StylesField, { bind: "stroke", propDisplayName: TEXT_STROKE_LABEL }, /* @__PURE__ */ React79.createElement(
3954
4074
  AddOrRemoveContent,
3955
4075
  {
3956
4076
  isAdded: hasTextStroke,
3957
4077
  onAdd: addTextStroke,
3958
4078
  onRemove: removeTextStroke,
3959
4079
  disabled: !canEdit,
3960
- renderLabel: () => /* @__PURE__ */ React77.createElement(ControlLabel, null, (0, import_i18n50.__)("Text stroke", "elementor"))
4080
+ renderLabel: () => /* @__PURE__ */ React79.createElement(ControlLabel, null, TEXT_STROKE_LABEL)
3961
4081
  },
3962
- /* @__PURE__ */ React77.createElement(import_editor_controls47.StrokeControl, null)
4082
+ /* @__PURE__ */ React79.createElement(import_editor_controls48.StrokeControl, null)
3963
4083
  ));
3964
4084
  };
3965
4085
 
3966
4086
  // src/components/style-sections/typography-section/transform-field.tsx
3967
- var React78 = __toESM(require("react"));
3968
- var import_editor_controls48 = require("@elementor/editor-controls");
4087
+ var React80 = __toESM(require("react"));
4088
+ var import_editor_controls49 = require("@elementor/editor-controls");
3969
4089
  var import_icons23 = require("@elementor/icons");
3970
- var import_ui65 = require("@elementor/ui");
3971
- var import_i18n51 = require("@wordpress/i18n");
4090
+ var import_i18n55 = require("@wordpress/i18n");
4091
+ var TEXT_TRANSFORM_LABEL = (0, import_i18n55.__)("Text transform", "elementor");
3972
4092
  var options11 = [
3973
4093
  {
3974
4094
  value: "none",
3975
- label: (0, import_i18n51.__)("None", "elementor"),
3976
- renderContent: ({ size }) => /* @__PURE__ */ React78.createElement(import_icons23.MinusIcon, { fontSize: size }),
4095
+ label: (0, import_i18n55.__)("None", "elementor"),
4096
+ renderContent: ({ size }) => /* @__PURE__ */ React80.createElement(import_icons23.MinusIcon, { fontSize: size }),
3977
4097
  showTooltip: true
3978
4098
  },
3979
4099
  {
3980
4100
  value: "capitalize",
3981
- label: (0, import_i18n51.__)("Capitalize", "elementor"),
3982
- renderContent: ({ size }) => /* @__PURE__ */ React78.createElement(import_icons23.LetterCaseIcon, { fontSize: size }),
4101
+ label: (0, import_i18n55.__)("Capitalize", "elementor"),
4102
+ renderContent: ({ size }) => /* @__PURE__ */ React80.createElement(import_icons23.LetterCaseIcon, { fontSize: size }),
3983
4103
  showTooltip: true
3984
4104
  },
3985
4105
  {
3986
4106
  value: "uppercase",
3987
- label: (0, import_i18n51.__)("Uppercase", "elementor"),
3988
- renderContent: ({ size }) => /* @__PURE__ */ React78.createElement(import_icons23.LetterCaseUpperIcon, { fontSize: size }),
4107
+ label: (0, import_i18n55.__)("Uppercase", "elementor"),
4108
+ renderContent: ({ size }) => /* @__PURE__ */ React80.createElement(import_icons23.LetterCaseUpperIcon, { fontSize: size }),
3989
4109
  showTooltip: true
3990
4110
  },
3991
4111
  {
3992
4112
  value: "lowercase",
3993
- label: (0, import_i18n51.__)("Lowercase", "elementor"),
3994
- renderContent: ({ size }) => /* @__PURE__ */ React78.createElement(import_icons23.LetterCaseLowerIcon, { fontSize: size }),
4113
+ label: (0, import_i18n55.__)("Lowercase", "elementor"),
4114
+ renderContent: ({ size }) => /* @__PURE__ */ React80.createElement(import_icons23.LetterCaseLowerIcon, { fontSize: size }),
3995
4115
  showTooltip: true
3996
4116
  }
3997
4117
  ];
3998
- var TransformField = () => /* @__PURE__ */ React78.createElement(StylesField, { bind: "text-transform" }, /* @__PURE__ */ React78.createElement(import_ui65.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React78.createElement(import_ui65.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React78.createElement(ControlLabel, null, (0, import_i18n51.__)("Text transform", "elementor"))), /* @__PURE__ */ React78.createElement(import_ui65.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React78.createElement(import_editor_controls48.ToggleControl, { options: options11 }))));
4118
+ var TransformField = () => /* @__PURE__ */ React80.createElement(StylesField, { bind: "text-transform", propDisplayName: TEXT_TRANSFORM_LABEL }, /* @__PURE__ */ React80.createElement(StylesFieldLayout, { label: TEXT_TRANSFORM_LABEL }, /* @__PURE__ */ React80.createElement(import_editor_controls49.ToggleControl, { options: options11 })));
3999
4119
 
4000
4120
  // src/components/style-sections/typography-section/word-spacing-field.tsx
4001
- var React79 = __toESM(require("react"));
4002
- var import_react34 = require("react");
4003
- var import_editor_controls49 = require("@elementor/editor-controls");
4004
- var import_ui66 = require("@elementor/ui");
4005
- var import_i18n52 = require("@wordpress/i18n");
4121
+ var React81 = __toESM(require("react"));
4122
+ var import_react36 = require("react");
4123
+ var import_editor_controls50 = require("@elementor/editor-controls");
4124
+ var import_i18n56 = require("@wordpress/i18n");
4125
+ var WORD_SPACING_LABEL = (0, import_i18n56.__)("Word spacing", "elementor");
4006
4126
  var WordSpacingField = () => {
4007
- const rowRef = (0, import_react34.useRef)();
4008
- return /* @__PURE__ */ React79.createElement(StylesField, { bind: "word-spacing" }, /* @__PURE__ */ React79.createElement(import_ui66.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap", ref: rowRef }, /* @__PURE__ */ React79.createElement(import_ui66.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React79.createElement(ControlLabel, null, (0, import_i18n52.__)("Word spacing", "elementor"))), /* @__PURE__ */ React79.createElement(import_ui66.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React79.createElement(import_editor_controls49.SizeControl, { anchorRef: rowRef }))));
4127
+ const rowRef = (0, import_react36.useRef)(null);
4128
+ return /* @__PURE__ */ React81.createElement(StylesField, { bind: "word-spacing", propDisplayName: WORD_SPACING_LABEL }, /* @__PURE__ */ React81.createElement(StylesFieldLayout, { label: WORD_SPACING_LABEL, ref: rowRef }, /* @__PURE__ */ React81.createElement(import_editor_controls50.SizeControl, { anchorRef: rowRef })));
4009
4129
  };
4010
4130
 
4011
4131
  // src/components/style-sections/typography-section/typography-section.tsx
4012
4132
  var TypographySection = () => {
4013
- const [columnCount] = useStylesField("column-count");
4014
- const isVersion330Active = (0, import_editor_v1_adapters13.isExperimentActive)("e_v_3_30");
4133
+ const { value: columnCount } = useStylesField("column-count");
4015
4134
  const hasMultiColumns = !!(columnCount?.value && columnCount?.value > 1);
4016
- return /* @__PURE__ */ React80.createElement(SectionContent, null, /* @__PURE__ */ React80.createElement(FontFamilyField, null), /* @__PURE__ */ React80.createElement(FontWeightField, null), /* @__PURE__ */ React80.createElement(FontSizeField, null), /* @__PURE__ */ React80.createElement(PanelDivider, null), /* @__PURE__ */ React80.createElement(TextAlignmentField, null), /* @__PURE__ */ React80.createElement(TextColorField, null), /* @__PURE__ */ React80.createElement(
4135
+ const isVersion330Active = (0, import_editor_v1_adapters16.isExperimentActive)("e_v_3_30");
4136
+ return /* @__PURE__ */ React82.createElement(SectionContent, null, /* @__PURE__ */ React82.createElement(FontFamilyField, null), /* @__PURE__ */ React82.createElement(FontWeightField, null), /* @__PURE__ */ React82.createElement(FontSizeField, null), /* @__PURE__ */ React82.createElement(PanelDivider, null), /* @__PURE__ */ React82.createElement(TextAlignmentField, null), /* @__PURE__ */ React82.createElement(TextColorField, null), /* @__PURE__ */ React82.createElement(
4017
4137
  StyleTabCollapsibleContent,
4018
4138
  {
4019
4139
  fields: [
@@ -4028,19 +4148,19 @@ var TypographySection = () => {
4028
4148
  "stroke"
4029
4149
  ]
4030
4150
  },
4031
- /* @__PURE__ */ React80.createElement(SectionContent, { sx: { pt: 2 } }, /* @__PURE__ */ React80.createElement(LineHeightField, null), /* @__PURE__ */ React80.createElement(LetterSpacingField, null), /* @__PURE__ */ React80.createElement(WordSpacingField, null), isVersion330Active && /* @__PURE__ */ React80.createElement(React80.Fragment, null, /* @__PURE__ */ React80.createElement(ColumnCountField, null), hasMultiColumns && /* @__PURE__ */ React80.createElement(ColumnGapField, null)), /* @__PURE__ */ React80.createElement(PanelDivider, null), /* @__PURE__ */ React80.createElement(TextDecorationField, null), /* @__PURE__ */ React80.createElement(TransformField, null), /* @__PURE__ */ React80.createElement(TextDirectionField, null), /* @__PURE__ */ React80.createElement(FontStyleField, null), /* @__PURE__ */ React80.createElement(TextStrokeField, null))
4151
+ /* @__PURE__ */ React82.createElement(SectionContent, { sx: { pt: 2 } }, /* @__PURE__ */ React82.createElement(LineHeightField, null), /* @__PURE__ */ React82.createElement(LetterSpacingField, null), /* @__PURE__ */ React82.createElement(WordSpacingField, null), isVersion330Active && /* @__PURE__ */ React82.createElement(React82.Fragment, null, /* @__PURE__ */ React82.createElement(ColumnCountField, null), hasMultiColumns && /* @__PURE__ */ React82.createElement(ColumnGapField, null)), /* @__PURE__ */ React82.createElement(PanelDivider, null), /* @__PURE__ */ React82.createElement(TextDecorationField, null), /* @__PURE__ */ React82.createElement(TransformField, null), /* @__PURE__ */ React82.createElement(TextDirectionField, null), /* @__PURE__ */ React82.createElement(FontStyleField, null), /* @__PURE__ */ React82.createElement(TextStrokeField, null))
4032
4152
  ));
4033
4153
  };
4034
4154
 
4035
4155
  // src/components/style-tab-section.tsx
4036
- var React81 = __toESM(require("react"));
4037
- var import_editor_v1_adapters14 = require("@elementor/editor-v1-adapters");
4156
+ var React83 = __toESM(require("react"));
4157
+ var import_editor_v1_adapters17 = require("@elementor/editor-v1-adapters");
4038
4158
  var StyleTabSection = ({ section, fields = [] }) => {
4039
4159
  const { component, name, title } = section;
4040
4160
  const tabDefaults = useDefaultPanelSettings();
4041
4161
  const SectionComponent = component;
4042
- const isExpanded = (0, import_editor_v1_adapters14.isExperimentActive)(EXPERIMENTAL_FEATURES.V_3_30) ? tabDefaults.defaultSectionsExpanded.style?.includes(name) : false;
4043
- return /* @__PURE__ */ React81.createElement(Section, { title, defaultExpanded: isExpanded, titleEnd: getStylesInheritanceIndicators(fields) }, /* @__PURE__ */ React81.createElement(SectionComponent, null));
4162
+ const isExpanded = (0, import_editor_v1_adapters17.isExperimentActive)(EXPERIMENTAL_FEATURES.V_3_30) ? tabDefaults.defaultSectionsExpanded.style?.includes(name) : false;
4163
+ return /* @__PURE__ */ React83.createElement(Section, { title, defaultExpanded: isExpanded, titleEnd: getStylesInheritanceIndicators(fields) }, /* @__PURE__ */ React83.createElement(SectionComponent, null));
4044
4164
  };
4045
4165
 
4046
4166
  // src/components/style-tab.tsx
@@ -4055,9 +4175,9 @@ var stickyHeaderStyles = {
4055
4175
  var StyleTab = () => {
4056
4176
  const currentClassesProp = useCurrentClassesProp();
4057
4177
  const [activeStyleDefId, setActiveStyleDefId] = useActiveStyleDefId(currentClassesProp);
4058
- const [activeStyleState, setActiveStyleState] = (0, import_react35.useState)(null);
4178
+ const [activeStyleState, setActiveStyleState] = (0, import_react37.useState)(null);
4059
4179
  const breakpoint = (0, import_editor_responsive3.useActiveBreakpoint)();
4060
- return /* @__PURE__ */ React82.createElement(ClassesPropProvider, { prop: currentClassesProp }, /* @__PURE__ */ React82.createElement(
4180
+ return /* @__PURE__ */ React84.createElement(ClassesPropProvider, { prop: currentClassesProp }, /* @__PURE__ */ React84.createElement(
4061
4181
  StyleProvider,
4062
4182
  {
4063
4183
  meta: { breakpoint, state: activeStyleState },
@@ -4068,13 +4188,13 @@ var StyleTab = () => {
4068
4188
  },
4069
4189
  setMetaState: setActiveStyleState
4070
4190
  },
4071
- /* @__PURE__ */ React82.createElement(import_session4.SessionStorageProvider, { prefix: activeStyleDefId ?? "" }, /* @__PURE__ */ React82.createElement(StyleInheritanceProvider, null, /* @__PURE__ */ React82.createElement(ClassesHeader, null, /* @__PURE__ */ React82.createElement(CssClassSelector, null), /* @__PURE__ */ React82.createElement(import_ui67.Divider, null)), /* @__PURE__ */ React82.createElement(SectionsList, null, /* @__PURE__ */ React82.createElement(
4191
+ /* @__PURE__ */ React84.createElement(import_session4.SessionStorageProvider, { prefix: activeStyleDefId ?? "" }, /* @__PURE__ */ React84.createElement(StyleInheritanceProvider, null, /* @__PURE__ */ React84.createElement(ClassesHeader, null, /* @__PURE__ */ React84.createElement(CssClassSelector, null), /* @__PURE__ */ React84.createElement(import_ui43.Divider, null)), /* @__PURE__ */ React84.createElement(SectionsList, null, /* @__PURE__ */ React84.createElement(
4072
4192
  StyleTabSection,
4073
4193
  {
4074
4194
  section: {
4075
4195
  component: LayoutSection,
4076
4196
  name: "Layout",
4077
- title: (0, import_i18n53.__)("Layout", "elementor")
4197
+ title: (0, import_i18n57.__)("Layout", "elementor")
4078
4198
  },
4079
4199
  fields: [
4080
4200
  "display",
@@ -4087,23 +4207,23 @@ var StyleTab = () => {
4087
4207
  "gap"
4088
4208
  ]
4089
4209
  }
4090
- ), /* @__PURE__ */ React82.createElement(
4210
+ ), /* @__PURE__ */ React84.createElement(
4091
4211
  StyleTabSection,
4092
4212
  {
4093
4213
  section: {
4094
4214
  component: SpacingSection,
4095
4215
  name: "Spacing",
4096
- title: (0, import_i18n53.__)("Spacing", "elementor")
4216
+ title: (0, import_i18n57.__)("Spacing", "elementor")
4097
4217
  },
4098
4218
  fields: ["margin", "padding"]
4099
4219
  }
4100
- ), /* @__PURE__ */ React82.createElement(
4220
+ ), /* @__PURE__ */ React84.createElement(
4101
4221
  StyleTabSection,
4102
4222
  {
4103
4223
  section: {
4104
4224
  component: SizeSection,
4105
4225
  name: "Size",
4106
- title: (0, import_i18n53.__)("Size", "elementor")
4226
+ title: (0, import_i18n57.__)("Size", "elementor")
4107
4227
  },
4108
4228
  fields: [
4109
4229
  "width",
@@ -4117,23 +4237,23 @@ var StyleTab = () => {
4117
4237
  "object-fit"
4118
4238
  ]
4119
4239
  }
4120
- ), /* @__PURE__ */ React82.createElement(
4240
+ ), /* @__PURE__ */ React84.createElement(
4121
4241
  StyleTabSection,
4122
4242
  {
4123
4243
  section: {
4124
4244
  component: PositionSection,
4125
4245
  name: "Position",
4126
- title: (0, import_i18n53.__)("Position", "elementor")
4246
+ title: (0, import_i18n57.__)("Position", "elementor")
4127
4247
  },
4128
4248
  fields: ["position", "z-index", "scroll-margin-top"]
4129
4249
  }
4130
- ), /* @__PURE__ */ React82.createElement(
4250
+ ), /* @__PURE__ */ React84.createElement(
4131
4251
  StyleTabSection,
4132
4252
  {
4133
4253
  section: {
4134
4254
  component: TypographySection,
4135
4255
  name: "Typography",
4136
- title: (0, import_i18n53.__)("Typography", "elementor")
4256
+ title: (0, import_i18n57.__)("Typography", "elementor")
4137
4257
  },
4138
4258
  fields: [
4139
4259
  "font-family",
@@ -4152,33 +4272,33 @@ var StyleTab = () => {
4152
4272
  "stroke"
4153
4273
  ]
4154
4274
  }
4155
- ), /* @__PURE__ */ React82.createElement(
4275
+ ), /* @__PURE__ */ React84.createElement(
4156
4276
  StyleTabSection,
4157
4277
  {
4158
4278
  section: {
4159
4279
  component: BackgroundSection,
4160
4280
  name: "Background",
4161
- title: (0, import_i18n53.__)("Background", "elementor")
4281
+ title: (0, import_i18n57.__)("Background", "elementor")
4162
4282
  },
4163
4283
  fields: ["background"]
4164
4284
  }
4165
- ), /* @__PURE__ */ React82.createElement(
4285
+ ), /* @__PURE__ */ React84.createElement(
4166
4286
  StyleTabSection,
4167
4287
  {
4168
4288
  section: {
4169
4289
  component: BorderSection,
4170
4290
  name: "Border",
4171
- title: (0, import_i18n53.__)("Border", "elementor")
4291
+ title: (0, import_i18n57.__)("Border", "elementor")
4172
4292
  },
4173
4293
  fields: ["border-radius", "border-width", "border-color", "border-style"]
4174
4294
  }
4175
- ), /* @__PURE__ */ React82.createElement(
4295
+ ), /* @__PURE__ */ React84.createElement(
4176
4296
  StyleTabSection,
4177
4297
  {
4178
4298
  section: {
4179
4299
  component: EffectsSection,
4180
4300
  name: "Effects",
4181
- title: (0, import_i18n53.__)("Effects", "elementor")
4301
+ title: (0, import_i18n57.__)("Effects", "elementor")
4182
4302
  },
4183
4303
  fields: ["box-shadow"]
4184
4304
  }
@@ -4187,12 +4307,12 @@ var StyleTab = () => {
4187
4307
  };
4188
4308
  function ClassesHeader({ children }) {
4189
4309
  const scrollDirection = useScrollDirection();
4190
- return /* @__PURE__ */ React82.createElement(import_ui67.Stack, { sx: { ...stickyHeaderStyles, top: scrollDirection === "up" ? TABS_HEADER_HEIGHT : 0 } }, children);
4310
+ return /* @__PURE__ */ React84.createElement(import_ui43.Stack, { sx: { ...stickyHeaderStyles, top: scrollDirection === "up" ? TABS_HEADER_HEIGHT : 0 } }, children);
4191
4311
  }
4192
4312
  function useCurrentClassesProp() {
4193
4313
  const { elementType } = useElement();
4194
4314
  const prop = Object.entries(elementType.propsSchema).find(
4195
- ([, propType]) => propType.kind === "plain" && propType.key === import_editor_props9.CLASSES_PROP_KEY
4315
+ ([, propType]) => propType.kind === "plain" && propType.key === import_editor_props10.CLASSES_PROP_KEY
4196
4316
  );
4197
4317
  if (!prop) {
4198
4318
  throw new Error("Element does not have a classes prop");
@@ -4206,16 +4326,16 @@ var EditingPanelTabs = () => {
4206
4326
  return (
4207
4327
  // When switching between elements, the local states should be reset. We are using key to rerender the tabs.
4208
4328
  // Reference: https://react.dev/learn/preserving-and-resetting-state#resetting-a-form-with-a-key
4209
- /* @__PURE__ */ React83.createElement(import_react36.Fragment, { key: element.id }, /* @__PURE__ */ React83.createElement(PanelTabContent, null))
4329
+ /* @__PURE__ */ React85.createElement(import_react38.Fragment, { key: element.id }, /* @__PURE__ */ React85.createElement(PanelTabContent, null))
4210
4330
  );
4211
4331
  };
4212
4332
  var PanelTabContent = () => {
4213
4333
  const editorDefaults = useDefaultPanelSettings();
4214
- const defaultComponentTab = (0, import_editor_v1_adapters15.isExperimentActive)(EXPERIMENTAL_FEATURES.V_3_30) ? editorDefaults.defaultTab : "settings";
4334
+ const defaultComponentTab = (0, import_editor_v1_adapters18.isExperimentActive)(EXPERIMENTAL_FEATURES.V_3_30) ? editorDefaults.defaultTab : "settings";
4215
4335
  const [currentTab, setCurrentTab] = useStateByElement("tab", defaultComponentTab);
4216
- const { getTabProps, getTabPanelProps, getTabsProps } = (0, import_ui68.useTabs)(currentTab);
4217
- return /* @__PURE__ */ React83.createElement(ScrollProvider, null, /* @__PURE__ */ React83.createElement(import_ui68.Stack, { direction: "column", sx: { width: "100%" } }, /* @__PURE__ */ React83.createElement(import_ui68.Stack, { sx: { ...stickyHeaderStyles, top: 0 } }, /* @__PURE__ */ React83.createElement(
4218
- import_ui68.Tabs,
4336
+ const { getTabProps, getTabPanelProps, getTabsProps } = (0, import_ui44.useTabs)(currentTab);
4337
+ return /* @__PURE__ */ React85.createElement(ScrollProvider, null, /* @__PURE__ */ React85.createElement(import_ui44.Stack, { direction: "column", sx: { width: "100%" } }, /* @__PURE__ */ React85.createElement(import_ui44.Stack, { sx: { ...stickyHeaderStyles, top: 0 } }, /* @__PURE__ */ React85.createElement(
4338
+ import_ui44.Tabs,
4219
4339
  {
4220
4340
  variant: "fullWidth",
4221
4341
  size: "small",
@@ -4226,9 +4346,9 @@ var PanelTabContent = () => {
4226
4346
  setCurrentTab(newValue);
4227
4347
  }
4228
4348
  },
4229
- /* @__PURE__ */ React83.createElement(import_ui68.Tab, { label: (0, import_i18n54.__)("General", "elementor"), ...getTabProps("settings") }),
4230
- /* @__PURE__ */ React83.createElement(import_ui68.Tab, { label: (0, import_i18n54.__)("Style", "elementor"), ...getTabProps("style") })
4231
- ), /* @__PURE__ */ React83.createElement(import_ui68.Divider, null)), /* @__PURE__ */ React83.createElement(import_ui68.TabPanel, { ...getTabPanelProps("settings"), disablePadding: true }, /* @__PURE__ */ React83.createElement(SettingsTab, null)), /* @__PURE__ */ React83.createElement(import_ui68.TabPanel, { ...getTabPanelProps("style"), disablePadding: true }, /* @__PURE__ */ React83.createElement(StyleTab, null))));
4349
+ /* @__PURE__ */ React85.createElement(import_ui44.Tab, { label: (0, import_i18n58.__)("General", "elementor"), ...getTabProps("settings") }),
4350
+ /* @__PURE__ */ React85.createElement(import_ui44.Tab, { label: (0, import_i18n58.__)("Style", "elementor"), ...getTabProps("style") })
4351
+ ), /* @__PURE__ */ React85.createElement(import_ui44.Divider, null)), /* @__PURE__ */ React85.createElement(import_ui44.TabPanel, { ...getTabPanelProps("settings"), disablePadding: true }, /* @__PURE__ */ React85.createElement(SettingsTab, null)), /* @__PURE__ */ React85.createElement(import_ui44.TabPanel, { ...getTabPanelProps("style"), disablePadding: true }, /* @__PURE__ */ React85.createElement(StyleTab, null))));
4232
4352
  };
4233
4353
 
4234
4354
  // src/components/editing-panel.tsx
@@ -4240,8 +4360,8 @@ var EditingPanel = () => {
4240
4360
  if (!element || !elementType) {
4241
4361
  return null;
4242
4362
  }
4243
- const panelTitle = (0, import_i18n55.__)("Edit %s", "elementor").replace("%s", elementType.title);
4244
- return /* @__PURE__ */ React84.createElement(import_ui69.ErrorBoundary, { fallback: /* @__PURE__ */ React84.createElement(EditorPanelErrorFallback, null) }, /* @__PURE__ */ React84.createElement(import_session5.SessionStorageProvider, { prefix: "elementor" }, /* @__PURE__ */ React84.createElement(import_editor_ui5.ThemeProvider, null, /* @__PURE__ */ React84.createElement(import_editor_panels.Panel, null, /* @__PURE__ */ React84.createElement(import_editor_panels.PanelHeader, null, /* @__PURE__ */ React84.createElement(import_editor_panels.PanelHeaderTitle, null, panelTitle), /* @__PURE__ */ React84.createElement(import_icons24.AtomIcon, { fontSize: "small", sx: { color: "text.tertiary" } })), /* @__PURE__ */ React84.createElement(import_editor_panels.PanelBody, null, /* @__PURE__ */ React84.createElement(import_editor_controls50.ControlActionsProvider, { items: menuItems }, /* @__PURE__ */ React84.createElement(import_editor_controls50.ControlReplacementsProvider, { replacements: controlReplacements }, /* @__PURE__ */ React84.createElement(ElementProvider, { element, elementType }, /* @__PURE__ */ React84.createElement(EditingPanelTabs, null)))))))));
4363
+ const panelTitle = (0, import_i18n59.__)("Edit %s", "elementor").replace("%s", elementType.title);
4364
+ return /* @__PURE__ */ React86.createElement(import_ui45.ErrorBoundary, { fallback: /* @__PURE__ */ React86.createElement(EditorPanelErrorFallback, null) }, /* @__PURE__ */ React86.createElement(import_session5.SessionStorageProvider, { prefix: "elementor" }, /* @__PURE__ */ React86.createElement(import_editor_ui5.ThemeProvider, null, /* @__PURE__ */ React86.createElement(import_editor_panels.Panel, null, /* @__PURE__ */ React86.createElement(import_editor_panels.PanelHeader, null, /* @__PURE__ */ React86.createElement(import_editor_panels.PanelHeaderTitle, null, panelTitle), /* @__PURE__ */ React86.createElement(import_icons24.AtomIcon, { fontSize: "small", sx: { color: "text.tertiary" } })), /* @__PURE__ */ React86.createElement(import_editor_panels.PanelBody, null, /* @__PURE__ */ React86.createElement(import_editor_controls51.ControlActionsProvider, { items: menuItems }, /* @__PURE__ */ React86.createElement(import_editor_controls51.ControlReplacementsProvider, { replacements: controlReplacements }, /* @__PURE__ */ React86.createElement(ElementProvider, { element, elementType }, /* @__PURE__ */ React86.createElement(EditingPanelTabs, null)))))))));
4245
4365
  };
4246
4366
 
4247
4367
  // src/panel.ts
@@ -4250,15 +4370,23 @@ var { panel, usePanelActions, usePanelStatus } = (0, import_editor_panels2.__cre
4250
4370
  component: EditingPanel
4251
4371
  });
4252
4372
 
4373
+ // src/components/popover-scrollable-content.tsx
4374
+ var React87 = __toESM(require("react"));
4375
+ var import_editor_ui6 = require("@elementor/editor-ui");
4376
+ var PopoverScrollableContent = (props) => {
4377
+ const sectionWidth = useSectionWidth();
4378
+ return /* @__PURE__ */ React87.createElement(import_editor_ui6.PopoverScrollableContent, { ...props, width: sectionWidth });
4379
+ };
4380
+
4253
4381
  // src/init.ts
4254
4382
  var import_editor = require("@elementor/editor");
4255
4383
  var import_editor_current_user = require("@elementor/editor-current-user");
4256
4384
  var import_editor_panels3 = require("@elementor/editor-panels");
4257
- var import_editor_v1_adapters17 = require("@elementor/editor-v1-adapters");
4385
+ var import_editor_v1_adapters20 = require("@elementor/editor-v1-adapters");
4258
4386
 
4259
4387
  // src/hooks/use-open-editor-panel.ts
4260
- var import_react37 = require("react");
4261
- var import_editor_v1_adapters16 = require("@elementor/editor-v1-adapters");
4388
+ var import_react39 = require("react");
4389
+ var import_editor_v1_adapters19 = require("@elementor/editor-v1-adapters");
4262
4390
 
4263
4391
  // src/sync/is-atomic-widget-selected.ts
4264
4392
  var import_editor_elements9 = require("@elementor/editor-elements");
@@ -4274,8 +4402,8 @@ var isAtomicWidgetSelected = () => {
4274
4402
  // src/hooks/use-open-editor-panel.ts
4275
4403
  var useOpenEditorPanel = () => {
4276
4404
  const { open } = usePanelActions();
4277
- (0, import_react37.useEffect)(() => {
4278
- return (0, import_editor_v1_adapters16.__privateListenTo)((0, import_editor_v1_adapters16.commandStartEvent)("panel/editor/open"), () => {
4405
+ (0, import_react39.useEffect)(() => {
4406
+ return (0, import_editor_v1_adapters19.__privateListenTo)((0, import_editor_v1_adapters19.commandStartEvent)("panel/editor/open"), () => {
4279
4407
  if (isAtomicWidgetSelected()) {
4280
4408
  open();
4281
4409
  }
@@ -4291,20 +4419,20 @@ var EditingPanelHooks = () => {
4291
4419
 
4292
4420
  // src/dynamics/init.ts
4293
4421
  var import_editor_canvas4 = require("@elementor/editor-canvas");
4294
- var import_editor_controls57 = require("@elementor/editor-controls");
4422
+ var import_editor_controls58 = require("@elementor/editor-controls");
4295
4423
 
4296
4424
  // src/dynamics/components/background-control-dynamic-tag.tsx
4297
- var React85 = __toESM(require("react"));
4298
- var import_editor_controls52 = require("@elementor/editor-controls");
4299
- var import_editor_props11 = require("@elementor/editor-props");
4425
+ var React88 = __toESM(require("react"));
4426
+ var import_editor_controls53 = require("@elementor/editor-controls");
4427
+ var import_editor_props12 = require("@elementor/editor-props");
4300
4428
  var import_icons25 = require("@elementor/icons");
4301
4429
 
4302
4430
  // src/dynamics/hooks/use-dynamic-tag.ts
4303
- var import_react39 = require("react");
4431
+ var import_react41 = require("react");
4304
4432
 
4305
4433
  // src/dynamics/hooks/use-prop-dynamic-tags.ts
4306
- var import_react38 = require("react");
4307
- var import_editor_controls51 = require("@elementor/editor-controls");
4434
+ var import_react40 = require("react");
4435
+ var import_editor_controls52 = require("@elementor/editor-controls");
4308
4436
 
4309
4437
  // src/dynamics/sync/get-elementor-config.ts
4310
4438
  var getElementorConfig2 = () => {
@@ -4325,7 +4453,7 @@ var getAtomicDynamicTags = () => {
4325
4453
  };
4326
4454
 
4327
4455
  // src/dynamics/utils.ts
4328
- var import_editor_props10 = require("@elementor/editor-props");
4456
+ var import_editor_props11 = require("@elementor/editor-props");
4329
4457
  var import_schema = require("@elementor/schema");
4330
4458
  var DYNAMIC_PROP_TYPE_KEY = "dynamic";
4331
4459
  var isDynamicPropType = (prop) => prop.key === DYNAMIC_PROP_TYPE_KEY;
@@ -4334,12 +4462,12 @@ var getDynamicPropType = (propType) => {
4334
4462
  return dynamicPropType && isDynamicPropType(dynamicPropType) ? dynamicPropType : null;
4335
4463
  };
4336
4464
  var isDynamicPropValue = (prop) => {
4337
- return (0, import_editor_props10.isTransformable)(prop) && prop.$$type === DYNAMIC_PROP_TYPE_KEY;
4465
+ return (0, import_editor_props11.isTransformable)(prop) && prop.$$type === DYNAMIC_PROP_TYPE_KEY;
4338
4466
  };
4339
4467
  var supportsDynamic = (propType) => {
4340
4468
  return !!getDynamicPropType(propType);
4341
4469
  };
4342
- var dynamicPropTypeUtil = (0, import_editor_props10.createPropUtils)(
4470
+ var dynamicPropTypeUtil = (0, import_editor_props11.createPropUtils)(
4343
4471
  DYNAMIC_PROP_TYPE_KEY,
4344
4472
  import_schema.z.strictObject({
4345
4473
  name: import_schema.z.string(),
@@ -4350,12 +4478,12 @@ var dynamicPropTypeUtil = (0, import_editor_props10.createPropUtils)(
4350
4478
  // src/dynamics/hooks/use-prop-dynamic-tags.ts
4351
4479
  var usePropDynamicTags = () => {
4352
4480
  let categories = [];
4353
- const { propType } = (0, import_editor_controls51.useBoundProp)();
4481
+ const { propType } = (0, import_editor_controls52.useBoundProp)();
4354
4482
  if (propType) {
4355
4483
  const propDynamicType = getDynamicPropType(propType);
4356
4484
  categories = propDynamicType?.settings.categories || [];
4357
4485
  }
4358
- return (0, import_react38.useMemo)(() => getDynamicTagsByCategories(categories), [categories.join()]);
4486
+ return (0, import_react40.useMemo)(() => getDynamicTagsByCategories(categories), [categories.join()]);
4359
4487
  };
4360
4488
  var getDynamicTagsByCategories = (categories) => {
4361
4489
  const dynamicTags = getAtomicDynamicTags();
@@ -4371,38 +4499,33 @@ var getDynamicTagsByCategories = (categories) => {
4371
4499
  // src/dynamics/hooks/use-dynamic-tag.ts
4372
4500
  var useDynamicTag = (tagName) => {
4373
4501
  const dynamicTags = usePropDynamicTags();
4374
- return (0, import_react39.useMemo)(() => dynamicTags.find((tag) => tag.name === tagName) ?? null, [dynamicTags, tagName]);
4502
+ return (0, import_react41.useMemo)(() => dynamicTags.find((tag) => tag.name === tagName) ?? null, [dynamicTags, tagName]);
4375
4503
  };
4376
4504
 
4377
4505
  // src/dynamics/components/background-control-dynamic-tag.tsx
4378
- var BackgroundControlDynamicTagIcon = () => /* @__PURE__ */ React85.createElement(import_icons25.DatabaseIcon, { fontSize: "tiny" });
4506
+ var BackgroundControlDynamicTagIcon = () => /* @__PURE__ */ React88.createElement(import_icons25.DatabaseIcon, { fontSize: "tiny" });
4379
4507
  var BackgroundControlDynamicTagLabel = ({ value }) => {
4380
- const context = (0, import_editor_controls52.useBoundProp)(import_editor_props11.backgroundImageOverlayPropTypeUtil);
4381
- return /* @__PURE__ */ React85.createElement(import_editor_controls52.PropProvider, { ...context, value: value.value }, /* @__PURE__ */ React85.createElement(import_editor_controls52.PropKeyProvider, { bind: "image" }, /* @__PURE__ */ React85.createElement(Wrapper, { rawValue: value.value })));
4508
+ const context = (0, import_editor_controls53.useBoundProp)(import_editor_props12.backgroundImageOverlayPropTypeUtil);
4509
+ return /* @__PURE__ */ React88.createElement(import_editor_controls53.PropProvider, { ...context, value: value.value }, /* @__PURE__ */ React88.createElement(import_editor_controls53.PropKeyProvider, { bind: "image" }, /* @__PURE__ */ React88.createElement(Wrapper, { rawValue: value.value })));
4382
4510
  };
4383
4511
  var Wrapper = ({ rawValue }) => {
4384
- const { propType } = (0, import_editor_controls52.useBoundProp)();
4512
+ const { propType } = (0, import_editor_controls53.useBoundProp)();
4385
4513
  const imageOverlayPropType = propType.prop_types["background-image-overlay"];
4386
- return /* @__PURE__ */ React85.createElement(import_editor_controls52.PropProvider, { propType: imageOverlayPropType.shape.image, value: rawValue, setValue: () => void 0 }, /* @__PURE__ */ React85.createElement(import_editor_controls52.PropKeyProvider, { bind: "src" }, /* @__PURE__ */ React85.createElement(Content, { rawValue: rawValue.image })));
4514
+ return /* @__PURE__ */ React88.createElement(import_editor_controls53.PropProvider, { propType: imageOverlayPropType.shape.image, value: rawValue, setValue: () => void 0 }, /* @__PURE__ */ React88.createElement(import_editor_controls53.PropKeyProvider, { bind: "src" }, /* @__PURE__ */ React88.createElement(Content, { rawValue: rawValue.image })));
4387
4515
  };
4388
4516
  var Content = ({ rawValue }) => {
4389
4517
  const src = rawValue.value.src;
4390
4518
  const dynamicTag = useDynamicTag(src.value.name || "");
4391
- return /* @__PURE__ */ React85.createElement(React85.Fragment, null, dynamicTag?.label);
4519
+ return /* @__PURE__ */ React88.createElement(React88.Fragment, null, dynamicTag?.label);
4392
4520
  };
4393
4521
 
4394
4522
  // src/dynamics/components/dynamic-selection-control.tsx
4395
- var React89 = __toESM(require("react"));
4396
- var import_editor_controls55 = require("@elementor/editor-controls");
4397
- var import_editor_ui6 = require("@elementor/editor-ui");
4523
+ var React91 = __toESM(require("react"));
4524
+ var import_editor_controls56 = require("@elementor/editor-controls");
4525
+ var import_editor_ui8 = require("@elementor/editor-ui");
4398
4526
  var import_icons27 = require("@elementor/icons");
4399
- var import_ui72 = require("@elementor/ui");
4400
- var import_i18n57 = require("@wordpress/i18n");
4401
-
4402
- // src/components/popover-content.tsx
4403
- var React86 = __toESM(require("react"));
4404
- var import_ui70 = require("@elementor/ui");
4405
- var PopoverContent = ({ alignItems, gap = 1.5, p, children }) => /* @__PURE__ */ React86.createElement(import_ui70.Stack, { alignItems, gap, p }, children);
4527
+ var import_ui47 = require("@elementor/ui");
4528
+ var import_i18n61 = require("@wordpress/i18n");
4406
4529
 
4407
4530
  // src/hooks/use-persist-dynamic-value.ts
4408
4531
  var import_session6 = require("@elementor/session");
@@ -4413,10 +4536,10 @@ var usePersistDynamicValue = (propKey) => {
4413
4536
  };
4414
4537
 
4415
4538
  // src/dynamics/dynamic-control.tsx
4416
- var React87 = __toESM(require("react"));
4417
- var import_editor_controls53 = require("@elementor/editor-controls");
4539
+ var React89 = __toESM(require("react"));
4540
+ var import_editor_controls54 = require("@elementor/editor-controls");
4418
4541
  var DynamicControl = ({ bind, children }) => {
4419
- const { value, setValue } = (0, import_editor_controls53.useBoundProp)(dynamicPropTypeUtil);
4542
+ const { value, setValue } = (0, import_editor_controls54.useBoundProp)(dynamicPropTypeUtil);
4420
4543
  const { name = "", settings } = value ?? {};
4421
4544
  const dynamicTag = useDynamicTag(name);
4422
4545
  if (!dynamicTag) {
@@ -4435,71 +4558,79 @@ var DynamicControl = ({ bind, children }) => {
4435
4558
  });
4436
4559
  };
4437
4560
  const propType = createTopLevelOjectType({ schema: dynamicTag.props_schema });
4438
- return /* @__PURE__ */ React87.createElement(import_editor_controls53.PropProvider, { propType, setValue: setDynamicValue, value: { [bind]: dynamicValue } }, /* @__PURE__ */ React87.createElement(import_editor_controls53.PropKeyProvider, { bind }, children));
4561
+ return /* @__PURE__ */ React89.createElement(import_editor_controls54.PropProvider, { propType, setValue: setDynamicValue, value: { [bind]: dynamicValue } }, /* @__PURE__ */ React89.createElement(import_editor_controls54.PropKeyProvider, { bind }, children));
4439
4562
  };
4440
4563
 
4441
4564
  // src/dynamics/components/dynamic-selection.tsx
4442
- var React88 = __toESM(require("react"));
4443
- var import_react40 = require("react");
4444
- var import_editor_controls54 = require("@elementor/editor-controls");
4565
+ var import_react42 = require("react");
4566
+ var React90 = __toESM(require("react"));
4567
+ var import_editor_controls55 = require("@elementor/editor-controls");
4568
+ var import_editor_ui7 = require("@elementor/editor-ui");
4445
4569
  var import_icons26 = require("@elementor/icons");
4446
- var import_ui71 = require("@elementor/ui");
4447
- var import_i18n56 = require("@wordpress/i18n");
4448
- var SIZE7 = "tiny";
4449
- var DynamicSelection = ({ onSelect }) => {
4450
- const [searchValue, setSearchValue] = (0, import_react40.useState)("");
4570
+ var import_ui46 = require("@elementor/ui");
4571
+ var import_i18n60 = require("@wordpress/i18n");
4572
+ var SIZE6 = "tiny";
4573
+ var DynamicSelection = ({ close: closePopover }) => {
4574
+ const [searchValue, setSearchValue] = (0, import_react42.useState)("");
4451
4575
  const { groups: dynamicGroups } = getAtomicDynamicTags() || {};
4452
- const { value: anyValue } = (0, import_editor_controls54.useBoundProp)();
4453
- const { bind, value: dynamicValue, setValue } = (0, import_editor_controls54.useBoundProp)(dynamicPropTypeUtil);
4576
+ const theme = (0, import_ui46.useTheme)();
4577
+ const { value: anyValue } = (0, import_editor_controls55.useBoundProp)();
4578
+ const { bind, value: dynamicValue, setValue } = (0, import_editor_controls55.useBoundProp)(dynamicPropTypeUtil);
4454
4579
  const [, updatePropValueHistory] = usePersistDynamicValue(bind);
4455
4580
  const isCurrentValueDynamic = !!dynamicValue;
4456
4581
  const options12 = useFilteredOptions(searchValue);
4457
4582
  const hasNoDynamicTags = !options12.length && !searchValue.trim();
4458
- const handleSearch = (event) => {
4459
- setSearchValue(event.target.value);
4583
+ const handleSearch = (value) => {
4584
+ setSearchValue(value);
4460
4585
  };
4461
- const handleSetDynamicTag = (value, label) => {
4586
+ const handleSetDynamicTag = (value) => {
4462
4587
  if (!isCurrentValueDynamic) {
4463
4588
  updatePropValueHistory(anyValue);
4464
4589
  }
4465
- setValue({ name: value, settings: { label } });
4466
- onSelect?.();
4590
+ const selectedOption = options12.flatMap(([, items3]) => items3).find((item) => item.value === value);
4591
+ setValue({ name: value, settings: { label: selectedOption?.label } });
4592
+ closePopover();
4467
4593
  };
4468
- return /* @__PURE__ */ React88.createElement(import_ui71.Stack, null, hasNoDynamicTags ? /* @__PURE__ */ React88.createElement(NoDynamicTags, null) : /* @__PURE__ */ React88.createElement(import_react40.Fragment, null, /* @__PURE__ */ React88.createElement(import_ui71.Box, { px: 1.5, pb: 1 }, /* @__PURE__ */ React88.createElement(
4469
- import_ui71.TextField,
4594
+ const virtualizedItems = options12.flatMap(([category, items3]) => [
4595
+ {
4596
+ type: "category",
4597
+ value: category,
4598
+ label: dynamicGroups?.[category]?.title || category
4599
+ },
4600
+ ...items3.map((item) => ({
4601
+ type: "item",
4602
+ value: item.value,
4603
+ label: item.label
4604
+ }))
4605
+ ]);
4606
+ return /* @__PURE__ */ React90.createElement(React90.Fragment, null, /* @__PURE__ */ React90.createElement(
4607
+ import_editor_ui7.PopoverHeader,
4608
+ {
4609
+ title: (0, import_i18n60.__)("Dynamic tags", "elementor"),
4610
+ onClose: closePopover,
4611
+ icon: /* @__PURE__ */ React90.createElement(import_icons26.DatabaseIcon, { fontSize: SIZE6 })
4612
+ }
4613
+ ), /* @__PURE__ */ React90.createElement(import_ui46.Stack, null, hasNoDynamicTags ? /* @__PURE__ */ React90.createElement(NoDynamicTags, null) : /* @__PURE__ */ React90.createElement(import_react42.Fragment, null, /* @__PURE__ */ React90.createElement(
4614
+ import_editor_ui7.PopoverSearch,
4470
4615
  {
4471
- fullWidth: true,
4472
- size: SIZE7,
4473
4616
  value: searchValue,
4474
- onChange: handleSearch,
4475
- placeholder: (0, import_i18n56.__)("Search dynamic tags\u2026", "elementor"),
4476
- InputProps: {
4477
- startAdornment: /* @__PURE__ */ React88.createElement(import_ui71.InputAdornment, { position: "start" }, /* @__PURE__ */ React88.createElement(import_icons26.SearchIcon, { fontSize: SIZE7 }))
4478
- }
4617
+ onSearch: handleSearch,
4618
+ placeholder: (0, import_i18n60.__)("Search dynamic tags\u2026", "elementor")
4479
4619
  }
4480
- )), /* @__PURE__ */ React88.createElement(import_ui71.Divider, null), /* @__PURE__ */ React88.createElement(import_ui71.Box, { sx: { overflowY: "auto", height: 260, width: 220 } }, options12.length > 0 ? /* @__PURE__ */ React88.createElement(import_ui71.MenuList, { role: "listbox", tabIndex: 0 }, options12.map(([category, items3], index) => /* @__PURE__ */ React88.createElement(import_react40.Fragment, { key: index }, /* @__PURE__ */ React88.createElement(
4481
- import_ui71.MenuSubheader,
4620
+ ), /* @__PURE__ */ React90.createElement(import_ui46.Divider, null), /* @__PURE__ */ React90.createElement(PopoverScrollableContent, null, /* @__PURE__ */ React90.createElement(
4621
+ import_editor_ui7.PopoverMenuList,
4482
4622
  {
4483
- sx: { px: 1.5, typography: "caption", color: "text.tertiary" }
4484
- },
4485
- dynamicGroups?.[category]?.title || category
4486
- ), items3.map(({ value, label: tagLabel }) => {
4487
- const isSelected = isCurrentValueDynamic && value === dynamicValue?.name;
4488
- return /* @__PURE__ */ React88.createElement(
4489
- import_ui71.MenuItem,
4490
- {
4491
- key: value,
4492
- selected: isSelected,
4493
- autoFocus: isSelected,
4494
- sx: { px: 3.5, typography: "caption" },
4495
- onClick: () => handleSetDynamicTag(value, tagLabel)
4496
- },
4497
- tagLabel
4498
- );
4499
- })))) : /* @__PURE__ */ React88.createElement(NoResults, { searchValue, onClear: () => setSearchValue("") }))));
4623
+ items: virtualizedItems,
4624
+ onSelect: handleSetDynamicTag,
4625
+ onClose: closePopover,
4626
+ selectedValue: dynamicValue?.name,
4627
+ itemStyle: (item) => item.type === "item" ? { paddingInlineStart: theme.spacing(3.5) } : {},
4628
+ noResultsComponent: /* @__PURE__ */ React90.createElement(NoResults, { searchValue, onClear: () => setSearchValue("") })
4629
+ }
4630
+ )))));
4500
4631
  };
4501
- var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */ React88.createElement(
4502
- import_ui71.Stack,
4632
+ var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */ React90.createElement(
4633
+ import_ui46.Stack,
4503
4634
  {
4504
4635
  gap: 1,
4505
4636
  alignItems: "center",
@@ -4509,12 +4640,12 @@ var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */ React88.createElem
4509
4640
  color: "text.secondary",
4510
4641
  sx: { pb: 3.5 }
4511
4642
  },
4512
- /* @__PURE__ */ React88.createElement(import_icons26.DatabaseIcon, { fontSize: "large" }),
4513
- /* @__PURE__ */ React88.createElement(import_ui71.Typography, { align: "center", variant: "subtitle2" }, (0, import_i18n56.__)("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React88.createElement("br", null), "\u201C", searchValue, "\u201D."),
4514
- /* @__PURE__ */ React88.createElement(import_ui71.Typography, { align: "center", variant: "caption" }, (0, import_i18n56.__)("Try something else.", "elementor"), "\xA0", /* @__PURE__ */ React88.createElement(import_ui71.Link, { color: "text.secondary", variant: "caption", component: "button", onClick: onClear }, (0, import_i18n56.__)("Clear & try again", "elementor")))
4643
+ /* @__PURE__ */ React90.createElement(import_icons26.DatabaseIcon, { fontSize: "large" }),
4644
+ /* @__PURE__ */ React90.createElement(import_ui46.Typography, { align: "center", variant: "subtitle2" }, (0, import_i18n60.__)("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React90.createElement("br", null), "\u201C", searchValue, "\u201D."),
4645
+ /* @__PURE__ */ React90.createElement(import_ui46.Typography, { align: "center", variant: "caption", sx: { display: "flex", flexDirection: "column" } }, (0, import_i18n60.__)("Try something else.", "elementor"), /* @__PURE__ */ React90.createElement(import_ui46.Link, { color: "text.secondary", variant: "caption", component: "button", onClick: onClear }, (0, import_i18n60.__)("Clear & try again", "elementor")))
4515
4646
  );
4516
- var NoDynamicTags = () => /* @__PURE__ */ React88.createElement(import_ui71.Box, { sx: { overflowY: "hidden", height: 297, width: 220 } }, /* @__PURE__ */ React88.createElement(import_ui71.Divider, null), /* @__PURE__ */ React88.createElement(
4517
- import_ui71.Stack,
4647
+ var NoDynamicTags = () => /* @__PURE__ */ React90.createElement(import_ui46.Box, { sx: { overflowY: "hidden", height: 297, width: 220 } }, /* @__PURE__ */ React90.createElement(import_ui46.Divider, null), /* @__PURE__ */ React90.createElement(
4648
+ import_ui46.Stack,
4518
4649
  {
4519
4650
  gap: 1,
4520
4651
  alignItems: "center",
@@ -4524,9 +4655,9 @@ var NoDynamicTags = () => /* @__PURE__ */ React88.createElement(import_ui71.Box,
4524
4655
  color: "text.secondary",
4525
4656
  sx: { pb: 3.5 }
4526
4657
  },
4527
- /* @__PURE__ */ React88.createElement(import_icons26.DatabaseIcon, { fontSize: "large" }),
4528
- /* @__PURE__ */ React88.createElement(import_ui71.Typography, { align: "center", variant: "subtitle2" }, (0, import_i18n56.__)("Streamline your workflow with dynamic tags", "elementor")),
4529
- /* @__PURE__ */ React88.createElement(import_ui71.Typography, { align: "center", variant: "caption" }, (0, import_i18n56.__)("You\u2019ll need Elementor Pro to use this feature.", "elementor"))
4658
+ /* @__PURE__ */ React90.createElement(import_icons26.DatabaseIcon, { fontSize: "large" }),
4659
+ /* @__PURE__ */ React90.createElement(import_ui46.Typography, { align: "center", variant: "subtitle2" }, (0, import_i18n60.__)("Streamline your workflow with dynamic tags", "elementor")),
4660
+ /* @__PURE__ */ React90.createElement(import_ui46.Typography, { align: "center", variant: "caption" }, (0, import_i18n60.__)("You'll need Elementor Pro to use this feature.", "elementor"))
4530
4661
  ));
4531
4662
  var useFilteredOptions = (searchValue) => {
4532
4663
  const dynamicTags = usePropDynamicTags();
@@ -4545,12 +4676,12 @@ var useFilteredOptions = (searchValue) => {
4545
4676
  };
4546
4677
 
4547
4678
  // src/dynamics/components/dynamic-selection-control.tsx
4548
- var SIZE8 = "tiny";
4679
+ var SIZE7 = "tiny";
4549
4680
  var DynamicSelectionControl = () => {
4550
- const { setValue: setAnyValue } = (0, import_editor_controls55.useBoundProp)();
4551
- const { bind, value } = (0, import_editor_controls55.useBoundProp)(dynamicPropTypeUtil);
4681
+ const { setValue: setAnyValue } = (0, import_editor_controls56.useBoundProp)();
4682
+ const { bind, value } = (0, import_editor_controls56.useBoundProp)(dynamicPropTypeUtil);
4552
4683
  const [propValueFromHistory] = usePersistDynamicValue(bind);
4553
- const selectionPopoverState = (0, import_ui72.usePopupState)({ variant: "popover" });
4684
+ const selectionPopoverState = (0, import_ui47.usePopupState)({ variant: "popover" });
4554
4685
  const { name: tagName = "" } = value;
4555
4686
  const dynamicTag = useDynamicTag(tagName);
4556
4687
  const removeDynamicTag = () => {
@@ -4559,76 +4690,77 @@ var DynamicSelectionControl = () => {
4559
4690
  if (!dynamicTag) {
4560
4691
  throw new Error(`Dynamic tag ${tagName} not found`);
4561
4692
  }
4562
- return /* @__PURE__ */ React89.createElement(import_ui72.Box, null, /* @__PURE__ */ React89.createElement(
4563
- import_ui72.UnstableTag,
4693
+ return /* @__PURE__ */ React91.createElement(import_ui47.Box, null, /* @__PURE__ */ React91.createElement(
4694
+ import_ui47.UnstableTag,
4564
4695
  {
4565
4696
  fullWidth: true,
4566
4697
  showActionsOnHover: true,
4567
4698
  label: dynamicTag.label,
4568
- startIcon: /* @__PURE__ */ React89.createElement(import_icons27.DatabaseIcon, { fontSize: SIZE8 }),
4569
- ...(0, import_ui72.bindTrigger)(selectionPopoverState),
4570
- actions: /* @__PURE__ */ React89.createElement(React89.Fragment, null, /* @__PURE__ */ React89.createElement(DynamicSettingsPopover, { dynamicTag }), /* @__PURE__ */ React89.createElement(
4571
- import_ui72.IconButton,
4699
+ startIcon: /* @__PURE__ */ React91.createElement(import_icons27.DatabaseIcon, { fontSize: SIZE7 }),
4700
+ ...(0, import_ui47.bindTrigger)(selectionPopoverState),
4701
+ actions: /* @__PURE__ */ React91.createElement(React91.Fragment, null, /* @__PURE__ */ React91.createElement(DynamicSettingsPopover, { dynamicTag }), /* @__PURE__ */ React91.createElement(
4702
+ import_ui47.IconButton,
4572
4703
  {
4573
- size: SIZE8,
4704
+ size: SIZE7,
4574
4705
  onClick: removeDynamicTag,
4575
- "aria-label": (0, import_i18n57.__)("Remove dynamic value", "elementor")
4706
+ "aria-label": (0, import_i18n61.__)("Remove dynamic value", "elementor")
4576
4707
  },
4577
- /* @__PURE__ */ React89.createElement(import_icons27.XIcon, { fontSize: SIZE8 })
4708
+ /* @__PURE__ */ React91.createElement(import_icons27.XIcon, { fontSize: SIZE7 })
4578
4709
  ))
4579
4710
  }
4580
- ), /* @__PURE__ */ React89.createElement(
4581
- import_ui72.Popover,
4711
+ ), /* @__PURE__ */ React91.createElement(
4712
+ import_ui47.Popover,
4582
4713
  {
4583
4714
  disablePortal: true,
4584
4715
  disableScrollLock: true,
4585
- anchorOrigin: { vertical: "bottom", horizontal: "left" },
4586
- ...(0, import_ui72.bindPopover)(selectionPopoverState)
4716
+ anchorOrigin: { vertical: "bottom", horizontal: "right" },
4717
+ transformOrigin: { vertical: "top", horizontal: "right" },
4718
+ PaperProps: {
4719
+ sx: { my: 1 }
4720
+ },
4721
+ ...(0, import_ui47.bindPopover)(selectionPopoverState)
4587
4722
  },
4588
- /* @__PURE__ */ React89.createElement(import_ui72.Stack, null, /* @__PURE__ */ React89.createElement(
4589
- import_editor_ui6.PopoverHeader,
4590
- {
4591
- title: (0, import_i18n57.__)("Dynamic tags", "elementor"),
4592
- onClose: selectionPopoverState.close,
4593
- icon: /* @__PURE__ */ React89.createElement(import_icons27.DatabaseIcon, { fontSize: SIZE8 })
4594
- }
4595
- ), /* @__PURE__ */ React89.createElement(DynamicSelection, { onSelect: selectionPopoverState.close }))
4723
+ /* @__PURE__ */ React91.createElement(import_ui47.Stack, null, /* @__PURE__ */ React91.createElement(DynamicSelection, { close: selectionPopoverState.close }))
4596
4724
  ));
4597
4725
  };
4598
4726
  var DynamicSettingsPopover = ({ dynamicTag }) => {
4599
- const popupState = (0, import_ui72.usePopupState)({ variant: "popover" });
4727
+ const popupState = (0, import_ui47.usePopupState)({ variant: "popover" });
4600
4728
  const hasDynamicSettings = !!dynamicTag.atomic_controls.length;
4601
4729
  if (!hasDynamicSettings) {
4602
4730
  return null;
4603
4731
  }
4604
- return /* @__PURE__ */ React89.createElement(React89.Fragment, null, /* @__PURE__ */ React89.createElement(import_ui72.IconButton, { size: SIZE8, ...(0, import_ui72.bindTrigger)(popupState), "aria-label": (0, import_i18n57.__)("Settings", "elementor") }, /* @__PURE__ */ React89.createElement(import_icons27.SettingsIcon, { fontSize: SIZE8 })), /* @__PURE__ */ React89.createElement(
4605
- import_ui72.Popover,
4732
+ return /* @__PURE__ */ React91.createElement(React91.Fragment, null, /* @__PURE__ */ React91.createElement(import_ui47.IconButton, { size: SIZE7, ...(0, import_ui47.bindTrigger)(popupState), "aria-label": (0, import_i18n61.__)("Settings", "elementor") }, /* @__PURE__ */ React91.createElement(import_icons27.SettingsIcon, { fontSize: SIZE7 })), /* @__PURE__ */ React91.createElement(
4733
+ import_ui47.Popover,
4606
4734
  {
4607
4735
  disablePortal: true,
4608
4736
  disableScrollLock: true,
4609
4737
  anchorOrigin: { vertical: "bottom", horizontal: "center" },
4610
- ...(0, import_ui72.bindPopover)(popupState)
4738
+ PaperProps: {
4739
+ sx: { my: 0.5 }
4740
+ },
4741
+ ...(0, import_ui47.bindPopover)(popupState)
4611
4742
  },
4612
- /* @__PURE__ */ React89.createElement(import_ui72.Paper, { component: import_ui72.Stack, sx: { minHeight: "300px", width: "220px" } }, /* @__PURE__ */ React89.createElement(
4613
- import_editor_ui6.PopoverHeader,
4743
+ /* @__PURE__ */ React91.createElement(
4744
+ import_editor_ui8.PopoverHeader,
4614
4745
  {
4615
4746
  title: dynamicTag.label,
4616
4747
  onClose: popupState.close,
4617
- icon: /* @__PURE__ */ React89.createElement(import_icons27.DatabaseIcon, { fontSize: SIZE8 })
4748
+ icon: /* @__PURE__ */ React91.createElement(import_icons27.DatabaseIcon, { fontSize: SIZE7 })
4618
4749
  }
4619
- ), /* @__PURE__ */ React89.createElement(DynamicSettings, { controls: dynamicTag.atomic_controls }))
4750
+ ),
4751
+ /* @__PURE__ */ React91.createElement(DynamicSettings, { controls: dynamicTag.atomic_controls })
4620
4752
  ));
4621
4753
  };
4622
4754
  var DynamicSettings = ({ controls }) => {
4623
4755
  const tabs = controls.filter(({ type }) => type === "section");
4624
- const { getTabsProps, getTabProps, getTabPanelProps } = (0, import_ui72.useTabs)(0);
4756
+ const { getTabsProps, getTabProps, getTabPanelProps } = (0, import_ui47.useTabs)(0);
4625
4757
  if (!tabs.length) {
4626
4758
  return null;
4627
4759
  }
4628
- return /* @__PURE__ */ React89.createElement(React89.Fragment, null, /* @__PURE__ */ React89.createElement(import_ui72.Tabs, { size: "small", variant: "fullWidth", ...getTabsProps() }, tabs.map(({ value }, index) => /* @__PURE__ */ React89.createElement(import_ui72.Tab, { key: index, label: value.label, sx: { px: 1, py: 0.5 }, ...getTabProps(index) }))), /* @__PURE__ */ React89.createElement(import_ui72.Divider, null), tabs.map(({ value }, index) => {
4629
- return /* @__PURE__ */ React89.createElement(import_ui72.TabPanel, { key: index, sx: { flexGrow: 1, py: 0 }, ...getTabPanelProps(index) }, /* @__PURE__ */ React89.createElement(PopoverContent, { p: 2, gap: 2 }, value.items.map((item) => {
4760
+ return /* @__PURE__ */ React91.createElement(import_editor_ui8.PopoverScrollableContent, null, /* @__PURE__ */ React91.createElement(import_ui47.Tabs, { size: "small", variant: "fullWidth", ...getTabsProps() }, tabs.map(({ value }, index) => /* @__PURE__ */ React91.createElement(import_ui47.Tab, { key: index, label: value.label, sx: { px: 1, py: 0.5 }, ...getTabProps(index) }))), /* @__PURE__ */ React91.createElement(import_ui47.Divider, null), tabs.map(({ value }, index) => {
4761
+ return /* @__PURE__ */ React91.createElement(import_ui47.TabPanel, { key: index, sx: { flexGrow: 1, py: 0 }, ...getTabPanelProps(index) }, /* @__PURE__ */ React91.createElement(import_ui47.Stack, { p: 2, gap: 2 }, value.items.map((item) => {
4630
4762
  if (item.type === "control") {
4631
- return /* @__PURE__ */ React89.createElement(Control3, { key: item.value.bind, control: item.value });
4763
+ return /* @__PURE__ */ React91.createElement(Control3, { key: item.value.bind, control: item.value });
4632
4764
  }
4633
4765
  return null;
4634
4766
  })));
@@ -4638,16 +4770,16 @@ var Control3 = ({ control }) => {
4638
4770
  if (!getControl(control.type)) {
4639
4771
  return null;
4640
4772
  }
4641
- return /* @__PURE__ */ React89.createElement(DynamicControl, { bind: control.bind }, /* @__PURE__ */ React89.createElement(import_ui72.Grid, { container: true, gap: 0.75 }, control.label ? /* @__PURE__ */ React89.createElement(import_ui72.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React89.createElement(import_editor_controls55.ControlFormLabel, null, control.label)) : null, /* @__PURE__ */ React89.createElement(import_ui72.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React89.createElement(Control, { type: control.type, props: control.props }))));
4773
+ return /* @__PURE__ */ React91.createElement(DynamicControl, { bind: control.bind }, /* @__PURE__ */ React91.createElement(import_ui47.Grid, { container: true, gap: 0.75 }, control.label ? /* @__PURE__ */ React91.createElement(import_ui47.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React91.createElement(import_editor_controls56.ControlFormLabel, null, control.label)) : null, /* @__PURE__ */ React91.createElement(import_ui47.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React91.createElement(Control, { type: control.type, props: control.props }))));
4642
4774
  };
4643
4775
 
4644
4776
  // src/dynamics/dynamic-transformer.ts
4645
4777
  var import_editor_canvas3 = require("@elementor/editor-canvas");
4646
- var import_editor_props12 = require("@elementor/editor-props");
4778
+ var import_editor_props13 = require("@elementor/editor-props");
4647
4779
 
4648
4780
  // src/dynamics/errors.ts
4649
- var import_utils8 = require("@elementor/utils");
4650
- var DynamicTagsManagerNotFoundError = (0, import_utils8.createError)({
4781
+ var import_utils9 = require("@elementor/utils");
4782
+ var DynamicTagsManagerNotFoundError = (0, import_utils9.createError)({
4651
4783
  code: "dynamic_tags_manager_not_found",
4652
4784
  message: "Dynamic tags manager not found"
4653
4785
  });
@@ -4661,7 +4793,7 @@ var dynamicTransformer = (0, import_editor_canvas3.createTransformer)((value) =>
4661
4793
  });
4662
4794
  function simpleTransform(props) {
4663
4795
  const transformed = Object.entries(props).map(([settingKey, settingValue]) => {
4664
- const value = (0, import_editor_props12.isTransformable)(settingValue) ? settingValue.value : settingValue;
4796
+ const value = (0, import_editor_props13.isTransformable)(settingValue) ? settingValue.value : settingValue;
4665
4797
  return [settingKey, value];
4666
4798
  });
4667
4799
  return Object.fromEntries(transformed);
@@ -4691,18 +4823,18 @@ function getDynamicValue(name, settings) {
4691
4823
  }
4692
4824
 
4693
4825
  // src/dynamics/hooks/use-prop-dynamic-action.tsx
4694
- var React90 = __toESM(require("react"));
4695
- var import_editor_controls56 = require("@elementor/editor-controls");
4826
+ var React92 = __toESM(require("react"));
4827
+ var import_editor_controls57 = require("@elementor/editor-controls");
4696
4828
  var import_icons28 = require("@elementor/icons");
4697
- var import_i18n58 = require("@wordpress/i18n");
4829
+ var import_i18n62 = require("@wordpress/i18n");
4698
4830
  var usePropDynamicAction = () => {
4699
- const { propType } = (0, import_editor_controls56.useBoundProp)();
4831
+ const { propType } = (0, import_editor_controls57.useBoundProp)();
4700
4832
  const visible = !!propType && supportsDynamic(propType);
4701
4833
  return {
4702
4834
  visible,
4703
4835
  icon: import_icons28.DatabaseIcon,
4704
- title: (0, import_i18n58.__)("Dynamic tags", "elementor"),
4705
- popoverContent: ({ closePopover }) => /* @__PURE__ */ React90.createElement(DynamicSelection, { onSelect: closePopover })
4836
+ title: (0, import_i18n62.__)("Dynamic tags", "elementor"),
4837
+ content: ({ close }) => /* @__PURE__ */ React92.createElement(DynamicSelection, { close })
4706
4838
  };
4707
4839
  };
4708
4840
 
@@ -4713,12 +4845,12 @@ var init = () => {
4713
4845
  component: DynamicSelectionControl,
4714
4846
  condition: ({ value }) => isDynamicPropValue(value)
4715
4847
  });
4716
- (0, import_editor_controls57.injectIntoRepeaterItemLabel)({
4848
+ (0, import_editor_controls58.injectIntoRepeaterItemLabel)({
4717
4849
  id: "dynamic-background-image",
4718
4850
  condition: ({ value }) => isDynamicPropValue(value.value?.image?.value?.src),
4719
4851
  component: BackgroundControlDynamicTagLabel
4720
4852
  });
4721
- (0, import_editor_controls57.injectIntoRepeaterItemIcon)({
4853
+ (0, import_editor_controls58.injectIntoRepeaterItemIcon)({
4722
4854
  id: "dynamic-background-image",
4723
4855
  condition: ({ value }) => isDynamicPropValue(value.value?.image?.value?.src),
4724
4856
  component: BackgroundControlDynamicTagIcon
@@ -4732,9 +4864,9 @@ var init = () => {
4732
4864
  };
4733
4865
 
4734
4866
  // src/reset-style-props.tsx
4735
- var import_editor_controls58 = require("@elementor/editor-controls");
4867
+ var import_editor_controls59 = require("@elementor/editor-controls");
4736
4868
  var import_icons29 = require("@elementor/icons");
4737
- var import_i18n59 = require("@wordpress/i18n");
4869
+ var import_i18n63 = require("@wordpress/i18n");
4738
4870
  var { registerAction } = controlActionsMenu;
4739
4871
  function initResetStyleProps() {
4740
4872
  registerAction({
@@ -4745,10 +4877,10 @@ function initResetStyleProps() {
4745
4877
  var EXCLUDED_BINDS = ["order", "flex-grow", "flex-shrink", "flex-basis"];
4746
4878
  function useResetStyleValueProps() {
4747
4879
  const isStyle = useIsStyle();
4748
- const { value, setValue, path, bind } = (0, import_editor_controls58.useBoundProp)();
4880
+ const { value, setValue, path, bind } = (0, import_editor_controls59.useBoundProp)();
4749
4881
  return {
4750
4882
  visible: isStyle && value !== null && value !== void 0 && path.length <= 2 && !EXCLUDED_BINDS.includes(bind),
4751
- title: (0, import_i18n59.__)("Clear", "elementor"),
4883
+ title: (0, import_i18n63.__)("Clear", "elementor"),
4752
4884
  icon: import_icons29.BrushBigIcon,
4753
4885
  onClick: () => setValue(null)
4754
4886
  };
@@ -4758,36 +4890,36 @@ function useResetStyleValueProps() {
4758
4890
  var import_editor_canvas9 = require("@elementor/editor-canvas");
4759
4891
 
4760
4892
  // src/styles-inheritance/transformers/background-color-overlay-transformer.tsx
4761
- var React91 = __toESM(require("react"));
4893
+ var React93 = __toESM(require("react"));
4762
4894
  var import_editor_canvas5 = require("@elementor/editor-canvas");
4763
- var import_ui73 = require("@elementor/ui");
4764
- var backgroundColorOverlayTransformer = (0, import_editor_canvas5.createTransformer)((value) => /* @__PURE__ */ React91.createElement(import_ui73.Stack, { direction: "row", gap: 10 }, /* @__PURE__ */ React91.createElement(ItemIconColor, { value }), /* @__PURE__ */ React91.createElement(ItemLabelColor, { value })));
4895
+ var import_ui48 = require("@elementor/ui");
4896
+ var backgroundColorOverlayTransformer = (0, import_editor_canvas5.createTransformer)((value) => /* @__PURE__ */ React93.createElement(import_ui48.Stack, { direction: "row", gap: 10 }, /* @__PURE__ */ React93.createElement(ItemIconColor, { value }), /* @__PURE__ */ React93.createElement(ItemLabelColor, { value })));
4765
4897
  var ItemIconColor = ({ value }) => {
4766
4898
  const { color } = value;
4767
- return /* @__PURE__ */ React91.createElement(StyledUnstableColorIndicator, { size: "inherit", component: "span", value: color });
4899
+ return /* @__PURE__ */ React93.createElement(StyledUnstableColorIndicator, { size: "inherit", component: "span", value: color });
4768
4900
  };
4769
4901
  var ItemLabelColor = ({ value: { color } }) => {
4770
- return /* @__PURE__ */ React91.createElement("span", null, color);
4902
+ return /* @__PURE__ */ React93.createElement("span", null, color);
4771
4903
  };
4772
- var StyledUnstableColorIndicator = (0, import_ui73.styled)(import_ui73.UnstableColorIndicator)(({ theme }) => ({
4904
+ var StyledUnstableColorIndicator = (0, import_ui48.styled)(import_ui48.UnstableColorIndicator)(({ theme }) => ({
4773
4905
  borderRadius: `${theme.shape.borderRadius / 2}px`
4774
4906
  }));
4775
4907
 
4776
4908
  // src/styles-inheritance/transformers/background-gradient-overlay-transformer.tsx
4777
- var React92 = __toESM(require("react"));
4909
+ var React94 = __toESM(require("react"));
4778
4910
  var import_editor_canvas6 = require("@elementor/editor-canvas");
4779
- var import_ui74 = require("@elementor/ui");
4780
- var import_i18n60 = require("@wordpress/i18n");
4781
- var backgroundGradientOverlayTransformer = (0, import_editor_canvas6.createTransformer)((value) => /* @__PURE__ */ React92.createElement(import_ui74.Stack, { direction: "row", gap: 10 }, /* @__PURE__ */ React92.createElement(ItemIconGradient, { value }), /* @__PURE__ */ React92.createElement(ItemLabelGradient, { value })));
4911
+ var import_ui49 = require("@elementor/ui");
4912
+ var import_i18n64 = require("@wordpress/i18n");
4913
+ var backgroundGradientOverlayTransformer = (0, import_editor_canvas6.createTransformer)((value) => /* @__PURE__ */ React94.createElement(import_ui49.Stack, { direction: "row", gap: 10 }, /* @__PURE__ */ React94.createElement(ItemIconGradient, { value }), /* @__PURE__ */ React94.createElement(ItemLabelGradient, { value })));
4782
4914
  var ItemIconGradient = ({ value }) => {
4783
4915
  const gradient = getGradientValue(value);
4784
- return /* @__PURE__ */ React92.createElement(StyledUnstableColorIndicator, { size: "inherit", component: "span", value: gradient });
4916
+ return /* @__PURE__ */ React94.createElement(StyledUnstableColorIndicator, { size: "inherit", component: "span", value: gradient });
4785
4917
  };
4786
4918
  var ItemLabelGradient = ({ value }) => {
4787
4919
  if (value.type === "linear") {
4788
- return /* @__PURE__ */ React92.createElement("span", null, (0, import_i18n60.__)("Linear Gradient", "elementor"));
4920
+ return /* @__PURE__ */ React94.createElement("span", null, (0, import_i18n64.__)("Linear Gradient", "elementor"));
4789
4921
  }
4790
- return /* @__PURE__ */ React92.createElement("span", null, (0, import_i18n60.__)("Radial Gradient", "elementor"));
4922
+ return /* @__PURE__ */ React94.createElement("span", null, (0, import_i18n64.__)("Radial Gradient", "elementor"));
4791
4923
  };
4792
4924
  var getGradientValue = (gradient) => {
4793
4925
  const stops = gradient.stops?.map(({ color, offset }) => `${color} ${offset ?? 0}%`)?.join(",");
@@ -4798,16 +4930,16 @@ var getGradientValue = (gradient) => {
4798
4930
  };
4799
4931
 
4800
4932
  // src/styles-inheritance/transformers/background-image-overlay-transformer.tsx
4801
- var React93 = __toESM(require("react"));
4933
+ var React95 = __toESM(require("react"));
4802
4934
  var import_editor_canvas7 = require("@elementor/editor-canvas");
4803
- var import_editor_ui7 = require("@elementor/editor-ui");
4804
- var import_ui75 = require("@elementor/ui");
4935
+ var import_editor_ui9 = require("@elementor/editor-ui");
4936
+ var import_ui50 = require("@elementor/ui");
4805
4937
  var import_wp_media = require("@elementor/wp-media");
4806
- var backgroundImageOverlayTransformer = (0, import_editor_canvas7.createTransformer)((value) => /* @__PURE__ */ React93.createElement(import_ui75.Stack, { direction: "row", gap: 10 }, /* @__PURE__ */ React93.createElement(ItemIconImage, { value }), /* @__PURE__ */ React93.createElement(ItemLabelImage, { value })));
4938
+ var backgroundImageOverlayTransformer = (0, import_editor_canvas7.createTransformer)((value) => /* @__PURE__ */ React95.createElement(import_ui50.Stack, { direction: "row", gap: 10 }, /* @__PURE__ */ React95.createElement(ItemIconImage, { value }), /* @__PURE__ */ React95.createElement(ItemLabelImage, { value })));
4807
4939
  var ItemIconImage = ({ value }) => {
4808
4940
  const { imageUrl } = useImage(value);
4809
- return /* @__PURE__ */ React93.createElement(
4810
- import_ui75.CardMedia,
4941
+ return /* @__PURE__ */ React95.createElement(
4942
+ import_ui50.CardMedia,
4811
4943
  {
4812
4944
  image: imageUrl,
4813
4945
  sx: (theme) => ({
@@ -4821,7 +4953,7 @@ var ItemIconImage = ({ value }) => {
4821
4953
  };
4822
4954
  var ItemLabelImage = ({ value }) => {
4823
4955
  const { imageTitle } = useImage(value);
4824
- return /* @__PURE__ */ React93.createElement(import_editor_ui7.EllipsisWithTooltip, { title: imageTitle }, /* @__PURE__ */ React93.createElement("span", null, imageTitle));
4956
+ return /* @__PURE__ */ React95.createElement(import_editor_ui9.EllipsisWithTooltip, { title: imageTitle }, /* @__PURE__ */ React95.createElement("span", null, imageTitle));
4825
4957
  };
4826
4958
  var useImage = (image) => {
4827
4959
  let imageTitle, imageUrl = null;
@@ -4846,14 +4978,14 @@ var getFileExtensionFromFilename = (filename) => {
4846
4978
  };
4847
4979
 
4848
4980
  // src/styles-inheritance/transformers/background-overlay-transformer.tsx
4849
- var React94 = __toESM(require("react"));
4981
+ var React96 = __toESM(require("react"));
4850
4982
  var import_editor_canvas8 = require("@elementor/editor-canvas");
4851
- var import_ui76 = require("@elementor/ui");
4983
+ var import_ui51 = require("@elementor/ui");
4852
4984
  var backgroundOverlayTransformer = (0, import_editor_canvas8.createTransformer)((values) => {
4853
4985
  if (!values || values.length === 0) {
4854
4986
  return null;
4855
4987
  }
4856
- return /* @__PURE__ */ React94.createElement(import_ui76.Stack, { direction: "column" }, values.map((item, index) => /* @__PURE__ */ React94.createElement(import_ui76.Stack, { key: index }, item)));
4988
+ return /* @__PURE__ */ React96.createElement(import_ui51.Stack, { direction: "column" }, values.map((item, index) => /* @__PURE__ */ React96.createElement(import_ui51.Stack, { key: index }, item)));
4857
4989
  });
4858
4990
 
4859
4991
  // src/styles-inheritance/init-styles-inheritance-transformers.ts
@@ -4903,25 +5035,29 @@ function init3() {
4903
5035
  });
4904
5036
  init();
4905
5037
  init2();
4906
- if ((0, import_editor_v1_adapters17.isExperimentActive)(EXPERIMENTAL_FEATURES.V_3_30)) {
5038
+ if ((0, import_editor_v1_adapters20.isExperimentActive)(EXPERIMENTAL_FEATURES.V_3_30)) {
4907
5039
  initResetStyleProps();
4908
5040
  }
4909
5041
  }
4910
5042
  var blockV1Panel = () => {
4911
- (0, import_editor_v1_adapters17.blockCommand)({
5043
+ (0, import_editor_v1_adapters20.blockCommand)({
4912
5044
  command: "panel/editor/open",
4913
5045
  condition: isAtomicWidgetSelected
4914
5046
  });
4915
5047
  };
4916
5048
  // Annotate the CommonJS export names for ESM import in node:
4917
5049
  0 && (module.exports = {
5050
+ EXPERIMENTAL_FEATURES,
5051
+ PopoverScrollableContent,
4918
5052
  controlActionsMenu,
4919
5053
  init,
4920
5054
  injectIntoClassSelectorActions,
4921
5055
  registerControlReplacement,
5056
+ registerStyleProviderToColors,
4922
5057
  useBoundProp,
4923
5058
  useFontFamilies,
4924
5059
  usePanelActions,
4925
- usePanelStatus
5060
+ usePanelStatus,
5061
+ useSectionWidth
4926
5062
  });
4927
5063
  //# sourceMappingURL=index.js.map