@elementor/editor-editing-panel 1.39.0 → 1.41.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 (50) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/dist/index.d.mts +9 -0
  3. package/dist/index.d.ts +9 -0
  4. package/dist/index.js +1182 -735
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.mjs +1075 -617
  7. package/dist/index.mjs.map +1 -1
  8. package/package.json +7 -6
  9. package/src/action.tsx +26 -0
  10. package/src/components/add-or-remove-content.tsx +11 -3
  11. package/src/components/creatable-autocomplete/creatable-autocomplete.tsx +6 -2
  12. package/src/components/css-classes/css-class-item.tsx +3 -2
  13. package/src/components/css-classes/css-class-menu.tsx +15 -5
  14. package/src/components/css-classes/css-class-selector.tsx +2 -1
  15. package/src/components/css-classes/use-apply-and-unapply-class.ts +8 -4
  16. package/src/components/section-content.tsx +16 -6
  17. package/src/components/style-sections/background-section/background-section.tsx +6 -3
  18. package/src/components/style-sections/border-section/border-field.tsx +3 -0
  19. package/src/components/style-sections/layout-section/display-field.tsx +2 -1
  20. package/src/components/style-sections/layout-section/flex-order-field.tsx +5 -2
  21. package/src/components/style-sections/layout-section/flex-size-field.tsx +16 -12
  22. package/src/components/style-sections/size-section/object-fit-field.tsx +1 -1
  23. package/src/components/style-sections/size-section/object-position-field.tsx +1 -1
  24. package/src/components/style-sections/size-section/size-section.tsx +12 -11
  25. package/src/components/style-sections/typography-section/text-stroke-field.tsx +3 -0
  26. package/src/components/style-tab.tsx +1 -1
  27. package/src/contexts/style-context.tsx +11 -2
  28. package/src/contexts/styles-inheritance-context.tsx +9 -7
  29. package/src/controls-actions.ts +2 -0
  30. package/src/controls-registry/styles-field.tsx +3 -0
  31. package/src/init.ts +11 -1
  32. package/src/reset-style-props.tsx +31 -0
  33. package/src/styles-inheritance/components/action-icons.tsx +8 -0
  34. package/src/styles-inheritance/components/breakpoint-icon.tsx +47 -0
  35. package/src/styles-inheritance/components/index.ts +4 -0
  36. package/src/styles-inheritance/components/label-chip.tsx +43 -0
  37. package/src/styles-inheritance/components/value-component.tsx +25 -0
  38. package/src/styles-inheritance/consts.ts +17 -0
  39. package/src/styles-inheritance/create-styles-inheritance.ts +50 -12
  40. package/src/{hooks → styles-inheritance/hooks}/use-normalized-inheritance-chain-items.tsx +41 -11
  41. package/src/styles-inheritance/init-styles-inheritance-transformers.ts +38 -0
  42. package/src/styles-inheritance/init.ts +8 -0
  43. package/src/styles-inheritance/styles-inheritance-indicator.tsx +35 -32
  44. package/src/styles-inheritance/styles-inheritance-infotip.tsx +113 -19
  45. package/src/styles-inheritance/styles-inheritance-transformers-registry.tsx +3 -0
  46. package/src/styles-inheritance/transformers/background-color-overlay-transformer.tsx +27 -0
  47. package/src/styles-inheritance/transformers/background-gradient-overlay-transformer.tsx +50 -0
  48. package/src/styles-inheritance/transformers/background-image-overlay-transformer.tsx +79 -0
  49. package/src/styles-inheritance/transformers/background-overlay-transformer.tsx +20 -0
  50. package/src/styles-inheritance/types.ts +6 -2
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  // src/index.ts
2
- import { useBoundProp as useBoundProp7 } from "@elementor/editor-controls";
2
+ import { useBoundProp as useBoundProp8 } from "@elementor/editor-controls";
3
3
 
4
4
  // src/control-replacement.tsx
5
5
  import { createControlReplacementsRegistry } from "@elementor/editor-controls";
@@ -56,7 +56,7 @@ function useElement() {
56
56
  // src/contexts/style-context.tsx
57
57
  import * as React3 from "react";
58
58
  import { createContext as createContext3, useContext as useContext3 } from "react";
59
- import { stylesRepository } from "@elementor/editor-styles-repository";
59
+ import { stylesRepository, useUserStylesCapability } from "@elementor/editor-styles-repository";
60
60
 
61
61
  // src/errors.ts
62
62
  import { createError } from "@elementor/utils";
@@ -81,10 +81,12 @@ var StyleNotFoundUnderProviderError = createError({
81
81
  var Context3 = createContext3(null);
82
82
  function StyleProvider({ children, ...props }) {
83
83
  const provider = props.id === null ? null : getProviderByStyleId(props.id);
84
+ const { userCan } = useUserStylesCapability();
84
85
  if (props.id && !provider) {
85
86
  throw new StylesProviderNotFoundError({ context: { styleId: props.id } });
86
87
  }
87
- return /* @__PURE__ */ React3.createElement(Context3.Provider, { value: { ...props, provider } }, children);
88
+ const canEdit = userCan(provider?.getKey() ?? "").updateProps;
89
+ return /* @__PURE__ */ React3.createElement(Context3.Provider, { value: { ...props, provider, canEdit } }, children);
88
90
  }
89
91
  function useStyle() {
90
92
  const context = useContext3(Context3);
@@ -99,6 +101,9 @@ function getProviderByStyleId(styleId) {
99
101
  });
100
102
  return styleProvider ?? null;
101
103
  }
104
+ function useIsStyle() {
105
+ return !!useContext3(Context3);
106
+ }
102
107
 
103
108
  // src/components/creatable-autocomplete/creatable-autocomplete.tsx
104
109
  import * as React4 from "react";
@@ -283,6 +288,7 @@ function useFilterOptions(parameters) {
283
288
  }
284
289
 
285
290
  // src/components/creatable-autocomplete/creatable-autocomplete.tsx
291
+ var MIN_INPUT_LENGTH = 2;
286
292
  var CreatableAutocomplete = React4.forwardRef(CreatableAutocompleteInner);
287
293
  function CreatableAutocompleteInner({
288
294
  selected,
@@ -311,6 +317,7 @@ function CreatableAutocompleteInner({
311
317
  });
312
318
  const filterOptions = useFilterOptions({ options: options12, selected, onCreate, entityName });
313
319
  const isCreatable = Boolean(onCreate);
320
+ const freeSolo = isCreatable || inputValue.length < MIN_INPUT_LENGTH || void 0;
314
321
  return /* @__PURE__ */ React4.createElement(
315
322
  Autocomplete,
316
323
  {
@@ -327,8 +334,8 @@ function CreatableAutocompleteInner({
327
334
  },
328
335
  ...props,
329
336
  ref,
330
- freeSolo: isCreatable || void 0,
331
- forcePopupIcon: isCreatable ? false : void 0,
337
+ freeSolo,
338
+ forcePopupIcon: false,
332
339
  multiple: true,
333
340
  clearOnBlur: true,
334
341
  selectOnFocus: true,
@@ -467,7 +474,7 @@ import * as React6 from "react";
467
474
  import {
468
475
  isElementsStylesProvider,
469
476
  stylesRepository as stylesRepository2,
470
- useUserStylesCapability
477
+ useUserStylesCapability as useUserStylesCapability2
471
478
  } from "@elementor/editor-styles-repository";
472
479
  import { MenuItemInfotip, MenuListItem } from "@elementor/editor-ui";
473
480
  import { bindMenu, Divider, Menu, MenuSubheader, Stack } from "@elementor/ui";
@@ -514,7 +521,6 @@ function useApplyClass() {
514
521
  do: ({ classId }) => {
515
522
  const prevActiveId = activeId;
516
523
  applyClass(classId);
517
- setDocumentModifiedStatus(true);
518
524
  return prevActiveId;
519
525
  },
520
526
  undo: ({ classId }, prevActiveId) => {
@@ -550,7 +556,6 @@ function useUnapplyClass() {
550
556
  do: ({ classId }) => {
551
557
  const prevActiveId = activeId;
552
558
  unapplyClass(classId);
553
- setDocumentModifiedStatus(true);
554
559
  return prevActiveId;
555
560
  },
556
561
  undo: ({ classId }, prevActiveId) => {
@@ -617,20 +622,24 @@ function useUnapply() {
617
622
  function useSetClasses() {
618
623
  const { element } = useElement();
619
624
  const currentClassesProp = useClassesProp();
625
+ const isVersion330Active = isExperimentActive("e_v_3_30");
620
626
  return useMemo2(() => {
621
627
  const setClasses = (ids) => {
622
628
  updateElementSettings({
623
629
  id: element.id,
624
630
  props: { [currentClassesProp]: classesPropTypeUtil.create(ids) },
625
- withHistory: false
631
+ withHistory: isVersion330Active ? false : true
626
632
  });
633
+ if (isVersion330Active) {
634
+ setDocumentModifiedStatus(true);
635
+ }
627
636
  };
628
637
  const getAppliedClasses = () => getElementSetting(element.id, currentClassesProp)?.value || [];
629
638
  return {
630
639
  setClasses,
631
640
  getAppliedClasses
632
641
  };
633
- }, [currentClassesProp, element.id]);
642
+ }, [currentClassesProp, element.id, isVersion330Active]);
634
643
  }
635
644
 
636
645
  // src/components/css-classes/css-class-menu.tsx
@@ -640,7 +649,7 @@ var STATES = [
640
649
  { key: "focus", value: "focus" },
641
650
  { key: "active", value: "active" }
642
651
  ];
643
- function CssClassMenu({ popupState, anchorEl }) {
652
+ function CssClassMenu({ popupState, anchorEl, fixed }) {
644
653
  const { provider } = useCssClass();
645
654
  const handleKeyDown = (e) => {
646
655
  e.stopPropagation();
@@ -662,7 +671,7 @@ function CssClassMenu({ popupState, anchorEl }) {
662
671
  onKeyDown: handleKeyDown,
663
672
  disableAutoFocusItem: true
664
673
  },
665
- getMenuItemsByProvider({ provider, closeMenu: popupState.close }),
674
+ getMenuItemsByProvider({ provider, closeMenu: popupState.close, fixed }),
666
675
  /* @__PURE__ */ React6.createElement(MenuSubheader, { sx: { typography: "caption", color: "text.secondary", pb: 0.5, pt: 1 } }, __2("States", "elementor")),
667
676
  STATES.map((state) => {
668
677
  return /* @__PURE__ */ React6.createElement(StateMenuItem, { key: state.key, state: state.value, closeMenu: popupState.close });
@@ -676,16 +685,21 @@ function useModifiedStates(styleId) {
676
685
  styleDef?.variants.filter((variant) => meta.breakpoint === variant.meta.breakpoint).map((variant) => [variant.meta.state ?? "normal", true]) ?? []
677
686
  );
678
687
  }
679
- function getMenuItemsByProvider({ provider, closeMenu }) {
688
+ function getMenuItemsByProvider({
689
+ provider,
690
+ closeMenu,
691
+ fixed
692
+ }) {
680
693
  if (!provider) {
681
694
  return [];
682
695
  }
683
696
  const providerInstance = stylesRepository2.getProviderByKey(provider);
684
697
  const providerActions = providerInstance?.actions;
685
- const [canUpdate, canDelete] = [providerActions?.update, providerActions?.delete];
698
+ const canUpdate = providerActions?.update;
699
+ const canUnapply = !fixed;
686
700
  const actions = [
687
701
  canUpdate && /* @__PURE__ */ React6.createElement(RenameClassMenuItem, { key: "rename-class", closeMenu }),
688
- canDelete && /* @__PURE__ */ React6.createElement(UnapplyClassMenuItem, { key: "unapply-class", closeMenu })
702
+ canUnapply && /* @__PURE__ */ React6.createElement(UnapplyClassMenuItem, { key: "unapply-class", closeMenu })
689
703
  ].filter(Boolean);
690
704
  if (actions.length) {
691
705
  actions.unshift(
@@ -706,7 +720,7 @@ function StateMenuItem({ state, closeMenu, ...props }) {
706
720
  const { id: styleId, provider } = useCssClass();
707
721
  const { id: activeId, setId: setActiveId, setMetaState: setActiveMetaState, meta } = useStyle();
708
722
  const { state: activeState } = meta;
709
- const { userCan } = useUserStylesCapability();
723
+ const { userCan } = useUserStylesCapability2();
710
724
  const modifiedStates = useModifiedStates(styleId);
711
725
  const isUpdateAllowed = userCan(provider ?? "").updateProps;
712
726
  const indicatorVariant = !provider || isElementsStylesProvider(provider) ? "local" : "global";
@@ -756,7 +770,7 @@ function UnapplyClassMenuItem({ closeMenu, ...props }) {
756
770
  }
757
771
  function RenameClassMenuItem({ closeMenu }) {
758
772
  const { handleRename, provider } = useCssClass();
759
- const { userCan } = useUserStylesCapability();
773
+ const { userCan } = useUserStylesCapability2();
760
774
  if (!provider) {
761
775
  return null;
762
776
  }
@@ -787,7 +801,7 @@ function RenameClassMenuItem({ closeMenu }) {
787
801
  // src/components/css-classes/css-class-item.tsx
788
802
  var CHIP_SIZE = "tiny";
789
803
  function CssClassItem(props) {
790
- const { chipProps, icon, color: colorProp, ...classProps } = props;
804
+ const { chipProps, icon, color: colorProp, fixed, ...classProps } = props;
791
805
  const { id, provider, label, isActive, onClickActive, renameLabel, setError } = classProps;
792
806
  const { meta, setMetaState } = useStyle();
793
807
  const popupState = usePopupState({ variant: "popover" });
@@ -870,7 +884,7 @@ function CssClassItem(props) {
870
884
  })
871
885
  }
872
886
  )
873
- ), /* @__PURE__ */ React7.createElement(CssClassProvider, { ...classProps, handleRename: openEditMode }, /* @__PURE__ */ React7.createElement(CssClassMenu, { popupState, anchorEl: chipRef })));
887
+ ), /* @__PURE__ */ React7.createElement(CssClassProvider, { ...classProps, handleRename: openEditMode }, /* @__PURE__ */ React7.createElement(CssClassMenu, { popupState, anchorEl: chipRef, fixed })));
874
888
  }
875
889
  var validateLabel = (newLabel) => {
876
890
  const result = validateStyleLabel(newLabel, "rename");
@@ -941,6 +955,7 @@ function CssClassSelector() {
941
955
  CssClassItem,
942
956
  {
943
957
  key: chipProps.key,
958
+ fixed: value.fixed,
944
959
  label: value.label,
945
960
  provider: value.provider,
946
961
  id: value.value,
@@ -969,7 +984,7 @@ var EmptyState = ({ searchValue, onClear }) => /* @__PURE__ */ React8.createElem
969
984
  },
970
985
  /* @__PURE__ */ React8.createElement(ColorSwatchIcon, { sx: { transform: "rotate(90deg)" }, fontSize: "large" }),
971
986
  /* @__PURE__ */ React8.createElement(Typography3, { align: "center", variant: "subtitle2" }, __4("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React8.createElement("br", null), "\u201C", searchValue, "\u201D."),
972
- /* @__PURE__ */ React8.createElement(Typography3, { align: "center", variant: "caption", sx: { mb: 2 } }, __4("With your role as an editor,", "elementor"), /* @__PURE__ */ React8.createElement("br", null), __4("you can only use existing classes.", "elementor")),
987
+ /* @__PURE__ */ React8.createElement(Typography3, { align: "center", variant: "caption", sx: { mb: 2 } }, __4("With your current role,", "elementor"), /* @__PURE__ */ React8.createElement("br", null), __4("you can only use existing classes.", "elementor")),
973
988
  /* @__PURE__ */ React8.createElement(Link, { color: "text.secondary", variant: "caption", component: "button", onClick: onClear }, __4("Clear & try again", "elementor"))
974
989
  ));
975
990
  var updateClassByProvider = (provider, data) => {
@@ -1087,7 +1102,7 @@ function useHandleSelect() {
1087
1102
  import { __createPanel as createPanel } from "@elementor/editor-panels";
1088
1103
 
1089
1104
  // src/components/editing-panel.tsx
1090
- import * as React75 from "react";
1105
+ import * as React80 from "react";
1091
1106
  import { ControlActionsProvider, ControlReplacementsProvider } from "@elementor/editor-controls";
1092
1107
  import { useSelectedElement } from "@elementor/editor-elements";
1093
1108
  import { Panel, PanelBody, PanelHeader, PanelHeaderTitle } from "@elementor/editor-panels";
@@ -1095,17 +1110,28 @@ import { ThemeProvider as ThemeProvider9 } from "@elementor/editor-ui";
1095
1110
  import { AtomIcon } from "@elementor/icons";
1096
1111
  import { SessionStorageProvider as SessionStorageProvider3 } from "@elementor/session";
1097
1112
  import { ErrorBoundary } from "@elementor/ui";
1098
- import { __ as __51 } from "@wordpress/i18n";
1113
+ import { __ as __54 } from "@wordpress/i18n";
1099
1114
 
1100
1115
  // src/controls-actions.ts
1101
1116
  import { createMenu } from "@elementor/menus";
1102
1117
 
1103
- // src/popover-action.tsx
1118
+ // src/action.tsx
1104
1119
  import * as React9 from "react";
1120
+ import { IconButton, Tooltip } from "@elementor/ui";
1121
+ var SIZE = "tiny";
1122
+ function Action({ title, visible = true, icon: Icon, onClick }) {
1123
+ if (!visible) {
1124
+ return null;
1125
+ }
1126
+ return /* @__PURE__ */ React9.createElement(Tooltip, { placement: "bottom", title, arrow: true }, /* @__PURE__ */ React9.createElement(IconButton, { "aria-label": title, size: SIZE, onClick }, /* @__PURE__ */ React9.createElement(Icon, { fontSize: SIZE })));
1127
+ }
1128
+
1129
+ // src/popover-action.tsx
1130
+ import * as React10 from "react";
1105
1131
  import { useId as useId2 } from "react";
1106
1132
  import { XIcon } from "@elementor/icons";
1107
- import { bindPopover, bindToggle, IconButton, Popover, Stack as Stack4, Tooltip, Typography as Typography4, usePopupState as usePopupState2 } from "@elementor/ui";
1108
- var SIZE = "tiny";
1133
+ import { bindPopover, bindToggle, IconButton as IconButton2, Popover, Stack as Stack4, Tooltip as Tooltip2, Typography as Typography4, usePopupState as usePopupState2 } from "@elementor/ui";
1134
+ var SIZE2 = "tiny";
1109
1135
  function PopoverAction({
1110
1136
  title,
1111
1137
  visible = true,
@@ -1120,7 +1146,7 @@ function PopoverAction({
1120
1146
  if (!visible) {
1121
1147
  return null;
1122
1148
  }
1123
- return /* @__PURE__ */ React9.createElement(React9.Fragment, null, /* @__PURE__ */ React9.createElement(Tooltip, { placement: "top", title }, /* @__PURE__ */ React9.createElement(IconButton, { "aria-label": title, key: id, size: SIZE, ...bindToggle(popupState) }, /* @__PURE__ */ React9.createElement(Icon, { fontSize: SIZE }))), /* @__PURE__ */ React9.createElement(
1149
+ return /* @__PURE__ */ React10.createElement(React10.Fragment, null, /* @__PURE__ */ React10.createElement(Tooltip2, { placement: "top", title }, /* @__PURE__ */ React10.createElement(IconButton2, { "aria-label": title, key: id, size: SIZE2, ...bindToggle(popupState) }, /* @__PURE__ */ React10.createElement(Icon, { fontSize: SIZE2 }))), /* @__PURE__ */ React10.createElement(
1124
1150
  Popover,
1125
1151
  {
1126
1152
  disablePortal: true,
@@ -1131,34 +1157,35 @@ function PopoverAction({
1131
1157
  },
1132
1158
  ...bindPopover(popupState)
1133
1159
  },
1134
- /* @__PURE__ */ React9.createElement(Stack4, { direction: "row", alignItems: "center", pl: 1.5, pr: 0.5, py: 1.5 }, /* @__PURE__ */ React9.createElement(Icon, { fontSize: SIZE, sx: { mr: 0.5 } }), /* @__PURE__ */ React9.createElement(Typography4, { variant: "subtitle2" }, title), /* @__PURE__ */ React9.createElement(IconButton, { sx: { ml: "auto" }, size: SIZE, onClick: popupState.close }, /* @__PURE__ */ React9.createElement(XIcon, { fontSize: SIZE }))),
1135
- /* @__PURE__ */ React9.createElement(PopoverContent2, { closePopover: popupState.close })
1160
+ /* @__PURE__ */ React10.createElement(Stack4, { direction: "row", alignItems: "center", pl: 1.5, pr: 0.5, py: 1.5 }, /* @__PURE__ */ React10.createElement(Icon, { fontSize: SIZE2, sx: { mr: 0.5 } }), /* @__PURE__ */ React10.createElement(Typography4, { variant: "subtitle2" }, title), /* @__PURE__ */ React10.createElement(IconButton2, { sx: { ml: "auto" }, size: SIZE2, onClick: popupState.close }, /* @__PURE__ */ React10.createElement(XIcon, { fontSize: SIZE2 }))),
1161
+ /* @__PURE__ */ React10.createElement(PopoverContent2, { closePopover: popupState.close })
1136
1162
  ));
1137
1163
  }
1138
1164
 
1139
1165
  // src/controls-actions.ts
1140
1166
  var controlActionsMenu = createMenu({
1141
1167
  components: {
1168
+ Action,
1142
1169
  PopoverAction
1143
1170
  }
1144
1171
  });
1145
1172
 
1146
1173
  // src/components/editing-panel-error-fallback.tsx
1147
- import * as React10 from "react";
1174
+ import * as React11 from "react";
1148
1175
  import { Alert, Box as Box3 } from "@elementor/ui";
1149
1176
  function EditorPanelErrorFallback() {
1150
- return /* @__PURE__ */ React10.createElement(Box3, { role: "alert", sx: { minHeight: "100%", p: 2 } }, /* @__PURE__ */ React10.createElement(Alert, { severity: "error", sx: { mb: 2, maxWidth: 400, textAlign: "center" } }, /* @__PURE__ */ React10.createElement("strong", null, "Something went wrong")));
1177
+ return /* @__PURE__ */ React11.createElement(Box3, { role: "alert", sx: { minHeight: "100%", p: 2 } }, /* @__PURE__ */ React11.createElement(Alert, { severity: "error", sx: { mb: 2, maxWidth: 400, textAlign: "center" } }, /* @__PURE__ */ React11.createElement("strong", null, "Something went wrong")));
1151
1178
  }
1152
1179
 
1153
1180
  // src/components/editing-panel-tabs.tsx
1154
- import * as React74 from "react";
1181
+ import * as React79 from "react";
1155
1182
  import { Fragment as Fragment9 } from "react";
1156
- import { isExperimentActive as isExperimentActive10 } from "@elementor/editor-v1-adapters";
1157
- import { Divider as Divider6, Stack as Stack17, Tab, TabPanel, Tabs, useTabs } from "@elementor/ui";
1158
- import { __ as __50 } from "@wordpress/i18n";
1183
+ import { isExperimentActive as isExperimentActive11 } from "@elementor/editor-v1-adapters";
1184
+ import { Divider as Divider6, Stack as Stack18, Tab, TabPanel, Tabs, useTabs } from "@elementor/ui";
1185
+ import { __ as __53 } from "@wordpress/i18n";
1159
1186
 
1160
1187
  // src/contexts/scroll-context.tsx
1161
- import * as React11 from "react";
1188
+ import * as React12 from "react";
1162
1189
  import { createContext as createContext5, useContext as useContext5, useEffect, useRef as useRef2, useState as useState5 } from "react";
1163
1190
  import { styled as styled3 } from "@elementor/ui";
1164
1191
  var ScrollContext = createContext5(void 0);
@@ -1190,7 +1217,7 @@ function ScrollProvider({ children }) {
1190
1217
  scrollElement.removeEventListener("scroll", handleScroll);
1191
1218
  };
1192
1219
  });
1193
- return /* @__PURE__ */ React11.createElement(ScrollContext.Provider, { value: { direction } }, /* @__PURE__ */ React11.createElement(ScrollPanel, { ref }, children));
1220
+ return /* @__PURE__ */ React12.createElement(ScrollContext.Provider, { value: { direction } }, /* @__PURE__ */ React12.createElement(ScrollPanel, { ref }, children));
1194
1221
  }
1195
1222
  function useScrollDirection() {
1196
1223
  return useContext5(ScrollContext)?.direction ?? DEFAULT_SCROLL_DIRECTION;
@@ -1246,14 +1273,14 @@ var useStateByElement = (key, initialValue) => {
1246
1273
  };
1247
1274
 
1248
1275
  // src/components/settings-tab.tsx
1249
- import * as React17 from "react";
1276
+ import * as React18 from "react";
1250
1277
  import { ControlFormLabel } from "@elementor/editor-controls";
1251
1278
  import { isExperimentActive as isExperimentActive3 } from "@elementor/editor-v1-adapters";
1252
1279
  import { SessionStorageProvider } from "@elementor/session";
1253
1280
  import { Divider as Divider3 } from "@elementor/ui";
1254
1281
 
1255
1282
  // src/controls-registry/control.tsx
1256
- import * as React12 from "react";
1283
+ import * as React13 from "react";
1257
1284
 
1258
1285
  // src/controls-registry/controls-registry.tsx
1259
1286
  import {
@@ -1290,14 +1317,14 @@ var Control = ({ props, type }) => {
1290
1317
  context: { controlType: type }
1291
1318
  });
1292
1319
  }
1293
- return /* @__PURE__ */ React12.createElement(ControlByType, { ...props, context: { elementId: element.id } });
1320
+ return /* @__PURE__ */ React13.createElement(ControlByType, { ...props, context: { elementId: element.id } });
1294
1321
  };
1295
1322
 
1296
1323
  // src/controls-registry/control-type-container.tsx
1297
- import * as React13 from "react";
1324
+ import * as React14 from "react";
1298
1325
  import { Box as Box4, styled as styled4 } from "@elementor/ui";
1299
1326
  var ControlTypeContainer = ({ children, layout }) => {
1300
- return /* @__PURE__ */ React13.createElement(StyledContainer, { layout }, children);
1327
+ return /* @__PURE__ */ React14.createElement(StyledContainer, { layout }, children);
1301
1328
  };
1302
1329
  var StyledContainer = styled4(Box4, {
1303
1330
  shouldForwardProp: (prop) => !["layout"].includes(prop)
@@ -1315,7 +1342,7 @@ var getGridLayout = (layout) => ({
1315
1342
  });
1316
1343
 
1317
1344
  // src/controls-registry/settings-field.tsx
1318
- import * as React14 from "react";
1345
+ import * as React15 from "react";
1319
1346
  import { PropKeyProvider, PropProvider } from "@elementor/editor-controls";
1320
1347
  import { updateElementSettings as updateElementSettings3, useElementSetting as useElementSetting2 } from "@elementor/editor-elements";
1321
1348
 
@@ -1344,11 +1371,11 @@ var SettingsField = ({ bind, children }) => {
1344
1371
  props: { ...newValue }
1345
1372
  });
1346
1373
  };
1347
- return /* @__PURE__ */ React14.createElement(PropProvider, { propType, value, setValue }, /* @__PURE__ */ React14.createElement(PropKeyProvider, { bind }, children));
1374
+ return /* @__PURE__ */ React15.createElement(PropProvider, { propType, value, setValue }, /* @__PURE__ */ React15.createElement(PropKeyProvider, { bind }, children));
1348
1375
  };
1349
1376
 
1350
1377
  // src/components/section.tsx
1351
- import * as React15 from "react";
1378
+ import * as React16 from "react";
1352
1379
  import { useId as useId3 } from "react";
1353
1380
  import { Collapse, Divider as Divider2, ListItemButton, ListItemText, Stack as Stack5 } from "@elementor/ui";
1354
1381
 
@@ -1370,7 +1397,7 @@ function Section({ title, children, defaultExpanded = false }) {
1370
1397
  const id = useId3();
1371
1398
  const labelId = `label-${id}`;
1372
1399
  const contentId = `content-${id}`;
1373
- return /* @__PURE__ */ React15.createElement(React15.Fragment, null, /* @__PURE__ */ React15.createElement(
1400
+ return /* @__PURE__ */ React16.createElement(React16.Fragment, null, /* @__PURE__ */ React16.createElement(
1374
1401
  ListItemButton,
1375
1402
  {
1376
1403
  id: labelId,
@@ -1378,22 +1405,22 @@ function Section({ title, children, defaultExpanded = false }) {
1378
1405
  onClick: () => setIsOpen(!isOpen),
1379
1406
  sx: { "&:hover": { backgroundColor: "transparent" } }
1380
1407
  },
1381
- /* @__PURE__ */ React15.createElement(
1408
+ /* @__PURE__ */ React16.createElement(
1382
1409
  ListItemText,
1383
1410
  {
1384
1411
  secondary: title,
1385
1412
  secondaryTypographyProps: { color: "text.primary", variant: "caption", fontWeight: "bold" }
1386
1413
  }
1387
1414
  ),
1388
- /* @__PURE__ */ React15.createElement(CollapseIcon, { open: isOpen, color: "secondary", fontSize: "tiny" })
1389
- ), /* @__PURE__ */ React15.createElement(Collapse, { id: contentId, "aria-labelledby": labelId, in: isOpen, timeout: "auto", unmountOnExit: true }, /* @__PURE__ */ React15.createElement(Stack5, { gap: 2.5, p: 2 }, children)), /* @__PURE__ */ React15.createElement(Divider2, null));
1415
+ /* @__PURE__ */ React16.createElement(CollapseIcon, { open: isOpen, color: "secondary", fontSize: "tiny" })
1416
+ ), /* @__PURE__ */ React16.createElement(Collapse, { id: contentId, "aria-labelledby": labelId, in: isOpen, timeout: "auto", unmountOnExit: true }, /* @__PURE__ */ React16.createElement(Stack5, { gap: 2.5, p: 2 }, children)), /* @__PURE__ */ React16.createElement(Divider2, null));
1390
1417
  }
1391
1418
 
1392
1419
  // src/components/sections-list.tsx
1393
- import * as React16 from "react";
1420
+ import * as React17 from "react";
1394
1421
  import { List } from "@elementor/ui";
1395
1422
  function SectionsList(props) {
1396
- return /* @__PURE__ */ React16.createElement(List, { disablePadding: true, component: "div", ...props });
1423
+ return /* @__PURE__ */ React17.createElement(List, { disablePadding: true, component: "div", ...props });
1397
1424
  }
1398
1425
 
1399
1426
  // src/components/settings-tab.tsx
@@ -1401,12 +1428,12 @@ var SettingsTab = () => {
1401
1428
  const { elementType, element } = useElement();
1402
1429
  const settingsDefault = useDefaultPanelSettings();
1403
1430
  const isDefaultExpanded = (sectionId) => isExperimentActive3(EXPERIMENTAL_FEATURES.V_3_30) ? settingsDefault.defaultSectionsExpanded.settings?.includes(sectionId) : true;
1404
- return /* @__PURE__ */ React17.createElement(SessionStorageProvider, { prefix: element.id }, /* @__PURE__ */ React17.createElement(SectionsList, null, elementType.controls.map(({ type, value }, index) => {
1431
+ return /* @__PURE__ */ React18.createElement(SessionStorageProvider, { prefix: element.id }, /* @__PURE__ */ React18.createElement(SectionsList, null, elementType.controls.map(({ type, value }, index) => {
1405
1432
  if (type === "control") {
1406
- return /* @__PURE__ */ React17.createElement(Control2, { key: value.bind, control: value });
1433
+ return /* @__PURE__ */ React18.createElement(Control2, { key: value.bind, control: value });
1407
1434
  }
1408
1435
  if (type === "section") {
1409
- return /* @__PURE__ */ React17.createElement(
1436
+ return /* @__PURE__ */ React18.createElement(
1410
1437
  Section,
1411
1438
  {
1412
1439
  title: value.label,
@@ -1415,7 +1442,7 @@ var SettingsTab = () => {
1415
1442
  },
1416
1443
  value.items?.map((item) => {
1417
1444
  if (item.type === "control") {
1418
- return /* @__PURE__ */ React17.createElement(Control2, { key: item.value.bind, control: item.value });
1445
+ return /* @__PURE__ */ React18.createElement(Control2, { key: item.value.bind, control: item.value });
1419
1446
  }
1420
1447
  return null;
1421
1448
  })
@@ -1429,25 +1456,26 @@ var Control2 = ({ control }) => {
1429
1456
  return null;
1430
1457
  }
1431
1458
  const layout = control.meta?.layout || getDefaultLayout(control.type);
1432
- return /* @__PURE__ */ React17.createElement(SettingsField, { bind: control.bind }, control.meta?.topDivider && /* @__PURE__ */ React17.createElement(Divider3, null), /* @__PURE__ */ React17.createElement(ControlTypeContainer, { layout }, control.label ? /* @__PURE__ */ React17.createElement(ControlFormLabel, null, control.label) : null, /* @__PURE__ */ React17.createElement(Control, { type: control.type, props: control.props })));
1459
+ return /* @__PURE__ */ React18.createElement(SettingsField, { bind: control.bind }, control.meta?.topDivider && /* @__PURE__ */ React18.createElement(Divider3, null), /* @__PURE__ */ React18.createElement(ControlTypeContainer, { layout }, control.label ? /* @__PURE__ */ React18.createElement(ControlFormLabel, null, control.label) : null, /* @__PURE__ */ React18.createElement(Control, { type: control.type, props: control.props })));
1433
1460
  };
1434
1461
 
1435
1462
  // src/components/style-tab.tsx
1436
- import * as React73 from "react";
1463
+ import * as React78 from "react";
1437
1464
  import { useState as useState12 } from "react";
1438
1465
  import { CLASSES_PROP_KEY } from "@elementor/editor-props";
1439
1466
  import { useActiveBreakpoint } from "@elementor/editor-responsive";
1440
- import { isExperimentActive as isExperimentActive9 } from "@elementor/editor-v1-adapters";
1467
+ import { isExperimentActive as isExperimentActive10 } from "@elementor/editor-v1-adapters";
1441
1468
  import { SessionStorageProvider as SessionStorageProvider2 } from "@elementor/session";
1442
- import { Divider as Divider5, Stack as Stack16 } from "@elementor/ui";
1443
- import { __ as __49 } from "@wordpress/i18n";
1469
+ import { Divider as Divider5, Stack as Stack17 } from "@elementor/ui";
1470
+ import { __ as __52 } from "@wordpress/i18n";
1444
1471
 
1445
1472
  // src/contexts/styles-inheritance-context.tsx
1446
- import * as React18 from "react";
1473
+ import * as React19 from "react";
1447
1474
  import { createContext as createContext7, useContext as useContext7 } from "react";
1448
1475
  import { getWidgetsCache, useElementSetting as useElementSetting3 } from "@elementor/editor-elements";
1449
1476
  import { classesPropTypeUtil as classesPropTypeUtil3 } from "@elementor/editor-props";
1450
1477
  import { getBreakpointsTree } from "@elementor/editor-responsive";
1478
+ import { getStylesSchema } from "@elementor/editor-styles";
1451
1479
  import { stylesRepository as stylesRepository5 } from "@elementor/editor-styles-repository";
1452
1480
 
1453
1481
  // src/hooks/use-styles-rerender.ts
@@ -1459,7 +1487,10 @@ var useStylesRerender = () => {
1459
1487
  };
1460
1488
 
1461
1489
  // src/styles-inheritance/create-styles-inheritance.ts
1462
- import { isEmpty, isTransformable } from "@elementor/editor-props";
1490
+ import {
1491
+ isEmpty,
1492
+ isTransformable
1493
+ } from "@elementor/editor-props";
1463
1494
 
1464
1495
  // src/styles-inheritance/create-snapshots-manager.ts
1465
1496
  import { filterEmptyValues } from "@elementor/editor-props";
@@ -1592,13 +1623,14 @@ function createStylesInheritance(styleDefs, breakpointsRoot) {
1592
1623
  const getStyles = ({ breakpoint, state }) => styleVariantsByMeta?.[getBreakpointKey(breakpoint)]?.[getStateKey(state)] ?? [];
1593
1624
  return {
1594
1625
  getSnapshot: createSnapshotsManager(getStyles, breakpointsRoot),
1595
- getInheritanceChain: (snapshot, path) => {
1626
+ getInheritanceChain: (snapshot, path, topLevelPropType) => {
1596
1627
  const [field, ...nextFields] = path;
1597
1628
  let inheritanceChain = snapshot[field] ?? [];
1598
1629
  if (nextFields.length > 0) {
1630
+ const filterPropType = getFilterPropType(topLevelPropType, nextFields);
1599
1631
  inheritanceChain = inheritanceChain.map(({ value: styleValue, ...rest }) => ({
1600
1632
  ...rest,
1601
- value: getValueByPath(styleValue, nextFields)
1633
+ value: getValueByPath(styleValue, nextFields, filterPropType)
1602
1634
  })).filter(({ value: styleValue }) => !isEmpty(styleValue));
1603
1635
  }
1604
1636
  return inheritanceChain;
@@ -1630,23 +1662,46 @@ function buildStyleVariantsByMetaMapping(styleDefs) {
1630
1662
  });
1631
1663
  return breakpointStateSlots;
1632
1664
  }
1633
- function getValueByPath(value, path) {
1665
+ function getValueByPath(value, path, filterPropType) {
1634
1666
  if (!value || typeof value !== "object") {
1635
1667
  return null;
1636
1668
  }
1669
+ if (shouldUseOriginalValue(filterPropType, value)) {
1670
+ return value;
1671
+ }
1637
1672
  return path.reduce((currentScope, key) => {
1638
1673
  if (!currentScope) {
1639
1674
  return null;
1640
1675
  }
1641
1676
  if (isTransformable(currentScope)) {
1642
- return currentScope.value?.[key];
1677
+ return currentScope.value?.[key] ?? null;
1643
1678
  }
1644
1679
  if (typeof currentScope === "object") {
1645
- return currentScope[key];
1680
+ return currentScope[key] ?? null;
1646
1681
  }
1647
1682
  return null;
1648
1683
  }, value);
1649
1684
  }
1685
+ function shouldUseOriginalValue(filterPropType, value) {
1686
+ return !!filterPropType && isTransformable(value) && filterPropType.key !== value.$$type;
1687
+ }
1688
+ var getFilterPropType = (propType, path) => {
1689
+ if (!propType || propType.kind !== "union") {
1690
+ return null;
1691
+ }
1692
+ return Object.values(propType.prop_types).find((type) => {
1693
+ return !!path.reduce((currentScope, key) => {
1694
+ if (currentScope?.kind !== "object") {
1695
+ return null;
1696
+ }
1697
+ const { shape } = currentScope;
1698
+ if (shape[key]) {
1699
+ return shape[key];
1700
+ }
1701
+ return null;
1702
+ }, type);
1703
+ }) ?? null;
1704
+ };
1650
1705
 
1651
1706
  // src/contexts/styles-inheritance-context.tsx
1652
1707
  var Context4 = createContext7(null);
@@ -1654,7 +1709,7 @@ function StyleInheritanceProvider({ children }) {
1654
1709
  const styleDefs = useAppliedStyles();
1655
1710
  const breakpointsTree = getBreakpointsTree();
1656
1711
  const { getSnapshot, getInheritanceChain } = createStylesInheritance(styleDefs, breakpointsTree);
1657
- return /* @__PURE__ */ React18.createElement(Context4.Provider, { value: { getSnapshot, getInheritanceChain } }, children);
1712
+ return /* @__PURE__ */ React19.createElement(Context4.Provider, { value: { getSnapshot, getInheritanceChain } }, children);
1658
1713
  }
1659
1714
  function useStylesInheritanceSnapshot() {
1660
1715
  const context = useContext7(Context4);
@@ -1672,11 +1727,13 @@ function useStylesInheritanceChain(path) {
1672
1727
  if (!context) {
1673
1728
  throw new Error("useStylesInheritanceChain must be used within a StyleInheritanceProvider");
1674
1729
  }
1730
+ const schema = getStylesSchema();
1731
+ const topLevelPropType = schema?.[path[0]];
1675
1732
  const snapshot = useStylesInheritanceSnapshot();
1676
1733
  if (!snapshot) {
1677
1734
  return [];
1678
1735
  }
1679
- return context.getInheritanceChain(snapshot, path);
1736
+ return context.getInheritanceChain(snapshot, path, topLevelPropType);
1680
1737
  }
1681
1738
  var useAppliedStyles = () => {
1682
1739
  const { element } = useElement();
@@ -1684,14 +1741,14 @@ var useAppliedStyles = () => {
1684
1741
  const baseStyles = useBaseStyles();
1685
1742
  useStylesRerender();
1686
1743
  const classesProp = useElementSetting3(element.id, currentClassesProp);
1687
- const appliedStyles = classesPropTypeUtil3.extract(classesProp);
1688
- return stylesRepository5.all().filter((style) => appliedStyles?.includes(style.id)).concat(baseStyles);
1744
+ const appliedStyles = classesPropTypeUtil3.extract(classesProp) ?? [];
1745
+ return stylesRepository5.all().filter((style) => [...baseStyles, ...appliedStyles].includes(style.id));
1689
1746
  };
1690
1747
  var useBaseStyles = () => {
1691
1748
  const { elementType } = useElement();
1692
1749
  const widgetsCache = getWidgetsCache();
1693
1750
  const widgetCache = widgetsCache?.[elementType.key];
1694
- return Object.values(widgetCache?.base_styles ?? {});
1751
+ return Object.keys(widgetCache?.base_styles ?? {});
1695
1752
  };
1696
1753
 
1697
1754
  // src/hooks/use-active-style-def-id.ts
@@ -1721,13 +1778,13 @@ function useActiveAndAppliedClassId(id, appliedClassesIds) {
1721
1778
  }
1722
1779
 
1723
1780
  // src/components/style-sections/background-section/background-section.tsx
1724
- import * as React22 from "react";
1781
+ import * as React28 from "react";
1725
1782
  import { BackgroundControl } from "@elementor/editor-controls";
1726
1783
 
1727
1784
  // src/controls-registry/styles-field.tsx
1728
- import * as React21 from "react";
1785
+ import * as React27 from "react";
1729
1786
  import { ControlAdornmentsProvider, PropKeyProvider as PropKeyProvider2, PropProvider as PropProvider2 } from "@elementor/editor-controls";
1730
- import { getStylesSchema } from "@elementor/editor-styles";
1787
+ import { getStylesSchema as getStylesSchema2 } from "@elementor/editor-styles";
1731
1788
 
1732
1789
  // src/hooks/use-styles-fields.ts
1733
1790
  import { useMemo as useMemo3 } from "react";
@@ -1870,44 +1927,196 @@ function useStylesField(propName) {
1870
1927
  }
1871
1928
 
1872
1929
  // src/styles-inheritance/styles-inheritance-indicator.tsx
1873
- import * as React20 from "react";
1874
- import { useState as useState8 } from "react";
1930
+ import * as React26 from "react";
1875
1931
  import { useBoundProp } from "@elementor/editor-controls";
1876
1932
  import { isEmpty as isEmpty2 } from "@elementor/editor-props";
1877
- import { ELEMENTS_BASE_STYLES_PROVIDER_KEY, isElementsStylesProvider as isElementsStylesProvider3 } from "@elementor/editor-styles-repository";
1933
+ import { ELEMENTS_BASE_STYLES_PROVIDER_KEY as ELEMENTS_BASE_STYLES_PROVIDER_KEY3, isElementsStylesProvider as isElementsStylesProvider3 } from "@elementor/editor-styles-repository";
1934
+ import { isExperimentActive as isExperimentActive5 } from "@elementor/editor-v1-adapters";
1935
+ import { Tooltip as Tooltip5 } from "@elementor/ui";
1936
+ import { __ as __9 } from "@wordpress/i18n";
1937
+
1938
+ // src/styles-inheritance/consts.ts
1878
1939
  import { isExperimentActive as isExperimentActive4 } from "@elementor/editor-v1-adapters";
1879
- import { IconButton as IconButton2, Infotip } from "@elementor/ui";
1880
- import { __ as __6 } from "@wordpress/i18n";
1940
+ var excludePropTypeTransformers = /* @__PURE__ */ new Set([
1941
+ "background-color-overlay",
1942
+ "background-image-overlay",
1943
+ "background-gradient-overlay",
1944
+ "gradient-color-stop",
1945
+ "color-stop",
1946
+ "background-image-position-offset",
1947
+ "background-image-size-scale",
1948
+ "image-src",
1949
+ "image",
1950
+ "background-overlay"
1951
+ ]);
1952
+ var isUsingIndicatorPopover = () => isExperimentActive4("e_indications_popover");
1881
1953
 
1882
1954
  // src/styles-inheritance/styles-inheritance-infotip.tsx
1883
- import * as React19 from "react";
1884
- import { useMemo as useMemo4 } from "react";
1885
- import { createPropsResolver, styleTransformersRegistry } from "@elementor/editor-canvas";
1886
- import { Card, CardContent, List as List2, ListItem, ListItemText as ListItemText2 } from "@elementor/ui";
1955
+ import * as React25 from "react";
1956
+ import { useMemo as useMemo4, useState as useState8 } from "react";
1957
+ import { createPropsResolver } from "@elementor/editor-canvas";
1958
+ import { Box as Box6, Card, CardContent, CloseButton, IconButton as IconButton3, Infotip, Stack as Stack7, Typography as Typography6 } from "@elementor/ui";
1959
+ import { __ as __8 } from "@wordpress/i18n";
1960
+
1961
+ // src/components/section-content.tsx
1962
+ import { createContext as createContext8, useContext as useContext8, useRef as useRef3 } from "react";
1963
+ import * as React20 from "react";
1964
+ import { Stack as Stack6 } from "@elementor/ui";
1965
+ var SectionContentRefContext = createContext8(null);
1966
+ var useSectionContentRef = () => useContext8(SectionContentRefContext);
1967
+ var SectionContent = ({ gap = 2, sx, children }) => {
1968
+ const ref = useRef3(null);
1969
+ return /* @__PURE__ */ React20.createElement(SectionContentRefContext.Provider, { value: ref }, /* @__PURE__ */ React20.createElement(Stack6, { gap, sx: { ...sx }, ref }, children));
1970
+ };
1971
+
1972
+ // src/hooks/use-direction.ts
1973
+ import { useTheme } from "@elementor/ui";
1974
+
1975
+ // src/sync/get-elementor-globals.ts
1976
+ var getElementorConfig = () => {
1977
+ const extendedWindow = window;
1978
+ return extendedWindow.elementor?.config ?? {};
1979
+ };
1980
+ var getElementorFrontendConfig = () => {
1981
+ const extendedWindow = window;
1982
+ return extendedWindow.elementorFrontend?.config ?? {};
1983
+ };
1984
+
1985
+ // src/hooks/use-direction.ts
1986
+ function useDirection() {
1987
+ const theme = useTheme();
1988
+ const isUiRtl = "rtl" === theme.direction, isSiteRtl = !!getElementorFrontendConfig()?.is_rtl;
1989
+ return { isSiteRtl, isUiRtl };
1990
+ }
1991
+
1992
+ // src/styles-inheritance/components/breakpoint-icon.tsx
1993
+ import * as React21 from "react";
1994
+ import { useBreakpoints } from "@elementor/editor-responsive";
1995
+ import {
1996
+ DesktopIcon,
1997
+ LaptopIcon,
1998
+ MobileLandscapeIcon,
1999
+ MobilePortraitIcon,
2000
+ TabletLandscapeIcon,
2001
+ TabletPortraitIcon,
2002
+ WidescreenIcon
2003
+ } from "@elementor/icons";
2004
+ import { Tooltip as Tooltip3 } from "@elementor/ui";
2005
+ var SIZE3 = "tiny";
2006
+ var DEFAULT_BREAKPOINT2 = "desktop";
2007
+ var breakpointIconMap = {
2008
+ widescreen: WidescreenIcon,
2009
+ desktop: DesktopIcon,
2010
+ laptop: LaptopIcon,
2011
+ tablet_extra: TabletLandscapeIcon,
2012
+ tablet: TabletPortraitIcon,
2013
+ mobile_extra: MobileLandscapeIcon,
2014
+ mobile: MobilePortraitIcon
2015
+ };
2016
+ var BreakpointIcon = ({ breakpoint }) => {
2017
+ const breakpoints = useBreakpoints();
2018
+ const currentBreakpoint = breakpoint || DEFAULT_BREAKPOINT2;
2019
+ const IconComponent = breakpointIconMap[currentBreakpoint];
2020
+ if (!IconComponent) {
2021
+ return null;
2022
+ }
2023
+ const breakpointLabel = breakpoints.find((breakpointItem) => breakpointItem.id === currentBreakpoint)?.label;
2024
+ return /* @__PURE__ */ React21.createElement(Tooltip3, { title: breakpointLabel, placement: "top" }, /* @__PURE__ */ React21.createElement(IconComponent, { fontSize: SIZE3, sx: { mt: "2px" } }));
2025
+ };
2026
+
2027
+ // src/styles-inheritance/components/label-chip.tsx
2028
+ import * as React22 from "react";
2029
+ import { ELEMENTS_BASE_STYLES_PROVIDER_KEY } from "@elementor/editor-styles-repository";
2030
+ import { InfoCircleIcon } from "@elementor/icons";
2031
+ import { Chip as Chip4, Tooltip as Tooltip4 } from "@elementor/ui";
2032
+ import { __ as __6 } from "@wordpress/i18n";
2033
+ var SIZE4 = "tiny";
2034
+ var LabelChip = ({ displayLabel, provider }) => {
2035
+ return /* @__PURE__ */ React22.createElement(
2036
+ Chip4,
2037
+ {
2038
+ label: displayLabel,
2039
+ size: SIZE4,
2040
+ color: "global",
2041
+ variant: "standard",
2042
+ state: "enabled",
2043
+ icon: provider === ELEMENTS_BASE_STYLES_PROVIDER_KEY ? /* @__PURE__ */ React22.createElement(Tooltip4, { title: __6("Inherited from base styles", "elementor"), placement: "top" }, /* @__PURE__ */ React22.createElement(InfoCircleIcon, { fontSize: SIZE4 })) : void 0,
2044
+ sx: (theme) => ({
2045
+ lineHeight: 1,
2046
+ flexWrap: "nowrap",
2047
+ alignItems: "center",
2048
+ borderRadius: `${theme.shape.borderRadius * 0.75}px`,
2049
+ flexDirection: "row-reverse",
2050
+ ".MuiChip-label": {
2051
+ overflow: "hidden",
2052
+ textOverflow: "ellipsis",
2053
+ whiteSpace: "nowrap"
2054
+ }
2055
+ })
2056
+ }
2057
+ );
2058
+ };
1887
2059
 
1888
- // src/hooks/use-normalized-inheritance-chain-items.tsx
1889
- import { useEffect as useEffect3, useState as useState7 } from "react";
2060
+ // src/styles-inheritance/components/value-component.tsx
2061
+ import * as React23 from "react";
2062
+ import { Typography as Typography5 } from "@elementor/ui";
2063
+ var ValueComponent = ({ index, value }) => {
2064
+ return /* @__PURE__ */ React23.createElement(
2065
+ Typography5,
2066
+ {
2067
+ variant: "caption",
2068
+ color: "text.tertiary",
2069
+ sx: {
2070
+ mt: "1px",
2071
+ textDecoration: index === 0 ? "none" : "line-through",
2072
+ overflow: "hidden",
2073
+ textOverflow: "ellipsis",
2074
+ whiteSpace: "nowrap"
2075
+ }
2076
+ },
2077
+ value
2078
+ );
2079
+ };
2080
+
2081
+ // src/styles-inheritance/components/action-icons.tsx
2082
+ import * as React24 from "react";
2083
+ import { Box as Box5 } from "@elementor/ui";
2084
+ var ActionIcons = () => /* @__PURE__ */ React24.createElement(Box5, { display: "flex", gap: 0.5, alignItems: "center" });
2085
+
2086
+ // src/styles-inheritance/hooks/use-normalized-inheritance-chain-items.tsx
2087
+ import { isValidElement, useEffect as useEffect3, useState as useState7 } from "react";
2088
+ import { ELEMENTS_BASE_STYLES_PROVIDER_KEY as ELEMENTS_BASE_STYLES_PROVIDER_KEY2 } from "@elementor/editor-styles-repository";
2089
+ import { __ as __7 } from "@wordpress/i18n";
1890
2090
  var MAXIMUM_ITEMS = 2;
1891
2091
  var useNormalizedInheritanceChainItems = (inheritanceChain, bind, resolve) => {
1892
2092
  const [items3, setItems] = useState7([]);
1893
2093
  useEffect3(() => {
1894
2094
  (async () => {
1895
2095
  const normalizedItems = await Promise.all(
1896
- inheritanceChain.filter((item) => item.style?.label).map((item, index) => normalizeInheritanceItem(item, index, bind, resolve))
2096
+ inheritanceChain.filter(({ style }) => style).map((item, index) => normalizeInheritanceItem(item, index, bind, resolve))
1897
2097
  );
1898
- const validItems = normalizedItems.filter((item) => item.value !== "").slice(0, MAXIMUM_ITEMS);
2098
+ const validItems = normalizedItems.map((item) => ({
2099
+ ...item,
2100
+ displayLabel: ELEMENTS_BASE_STYLES_PROVIDER_KEY2 !== item.provider ? item.displayLabel : __7("Base", "elementor")
2101
+ })).filter((item) => !item.value || item.displayLabel !== "").slice(0, MAXIMUM_ITEMS);
1899
2102
  setItems(validItems);
1900
2103
  })();
1901
2104
  }, [inheritanceChain, bind, resolve]);
1902
2105
  return items3;
1903
2106
  };
2107
+ var DEFAULT_BREAKPOINT3 = "desktop";
1904
2108
  var normalizeInheritanceItem = async (item, index, bind, resolve) => {
1905
- const state = item.variant?.meta?.state || "";
1906
- const label = item.style?.label || "";
1907
- const displayLabel = state ? `${label}:${state}` : label;
2109
+ const {
2110
+ variant: {
2111
+ meta: { state, breakpoint }
2112
+ },
2113
+ style: { label, id }
2114
+ } = item;
2115
+ const displayLabel = `${label}${state ? ":" + state : ""}`;
1908
2116
  return {
1909
- id: item.style?.id ? item.style?.id + state : index,
1910
- breakpoint: item.variant?.meta?.breakpoint,
2117
+ id: id ? id + (state ?? "") : index,
2118
+ provider: item.provider || "",
2119
+ breakpoint: breakpoint ?? DEFAULT_BREAKPOINT3,
1911
2120
  displayLabel,
1912
2121
  value: await getTransformedValue(item, bind, resolve)
1913
2122
  };
@@ -1919,75 +2128,171 @@ var getTransformedValue = async (item, bind, resolve) => {
1919
2128
  [bind]: item.value
1920
2129
  }
1921
2130
  });
1922
- return Object.values(result).join(" ");
2131
+ const value = result?.[bind] ?? result;
2132
+ if (isValidElement(value)) {
2133
+ return value;
2134
+ }
2135
+ if (typeof value === "object") {
2136
+ return JSON.stringify(value);
2137
+ }
2138
+ return String(value);
1923
2139
  } catch {
1924
2140
  return "";
1925
2141
  }
1926
2142
  };
1927
2143
 
2144
+ // src/styles-inheritance/styles-inheritance-transformers-registry.tsx
2145
+ import { createTransformersRegistry } from "@elementor/editor-canvas";
2146
+ var stylesInheritanceTransformersRegistry = createTransformersRegistry();
2147
+
1928
2148
  // src/styles-inheritance/styles-inheritance-infotip.tsx
1929
- var StyleIndicatorInfotip = ({ inheritanceChain, propType, path }) => {
2149
+ var SIZE5 = "tiny";
2150
+ var StyleIndicatorInfotip = ({ inheritanceChain, propType, path, label, children }) => {
2151
+ const [open, setOpen] = useState8(false);
2152
+ const { isSiteRtl } = useDirection();
1930
2153
  const key = path.join(".");
2154
+ const sectionContentRef = useSectionContentRef();
2155
+ const sectionContentWidth = sectionContentRef?.current?.offsetWidth ?? 320;
1931
2156
  const resolve = useMemo4(() => {
1932
2157
  return createPropsResolver({
1933
- transformers: styleTransformersRegistry,
2158
+ transformers: stylesInheritanceTransformersRegistry,
1934
2159
  schema: { [key]: propType }
1935
2160
  });
1936
2161
  }, [key, propType]);
1937
2162
  const items3 = useNormalizedInheritanceChainItems(inheritanceChain, key, resolve);
1938
- return /* @__PURE__ */ React19.createElement(Card, { elevation: 0, sx: { maxWidth: 320 } }, /* @__PURE__ */ React19.createElement(CardContent, { sx: { p: 1.5, pb: 2.5 } }, /* @__PURE__ */ React19.createElement(List2, null, items3.map((item) => /* @__PURE__ */ React19.createElement(ListItem, { key: item.id }, /* @__PURE__ */ React19.createElement(
1939
- ListItemText2,
2163
+ const toggleOpen = () => setOpen((prev) => !prev);
2164
+ const closeInfotip = () => {
2165
+ setOpen(false);
2166
+ };
2167
+ const forceInfotipAlignLeft = isSiteRtl ? 9999999 : -9999999;
2168
+ const infotipContent = /* @__PURE__ */ React25.createElement(
2169
+ Card,
1940
2170
  {
1941
- primary: `${item.breakpoint} | ${item.displayLabel}. ${item.value}`
1942
- }
1943
- ))))));
2171
+ elevation: 0,
2172
+ sx: {
2173
+ width: `${sectionContentWidth}px`,
2174
+ maxWidth: 500,
2175
+ overflowX: "hidden"
2176
+ }
2177
+ },
2178
+ /* @__PURE__ */ React25.createElement(
2179
+ CardContent,
2180
+ {
2181
+ sx: {
2182
+ display: "flex",
2183
+ gap: 0.5,
2184
+ flexDirection: "column",
2185
+ p: 0,
2186
+ "&:last-child": {
2187
+ pb: 0
2188
+ }
2189
+ }
2190
+ },
2191
+ /* @__PURE__ */ React25.createElement(Stack7, { direction: "row", alignItems: "center", sx: { pl: 1.5, pr: 0.5, minHeight: 36, py: 0.5 } }, /* @__PURE__ */ React25.createElement(Typography6, { variant: "subtitle2", color: "secondary", sx: { fontSize: 12, fontWeight: "500" } }, __8("Style origin", "elementor")), /* @__PURE__ */ React25.createElement(
2192
+ CloseButton,
2193
+ {
2194
+ slotProps: { icon: { fontSize: SIZE5 } },
2195
+ sx: { ml: "auto" },
2196
+ onClick: closeInfotip
2197
+ }
2198
+ )),
2199
+ /* @__PURE__ */ React25.createElement(Stack7, { gap: 1.5, sx: { pl: 2, pr: 1, pb: 2, overflowX: "hidden", overflowY: "auto" }, role: "list" }, items3.map((item, index) => {
2200
+ return /* @__PURE__ */ React25.createElement(
2201
+ Box6,
2202
+ {
2203
+ key: item.id,
2204
+ display: "flex",
2205
+ gap: 0.5,
2206
+ role: "listitem",
2207
+ "aria-label": __8("Inheritance item: %s", "elementor").replace(
2208
+ "%s",
2209
+ item.displayLabel
2210
+ )
2211
+ },
2212
+ /* @__PURE__ */ React25.createElement(Box6, { 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 })),
2213
+ /* @__PURE__ */ React25.createElement(ActionIcons, null)
2214
+ );
2215
+ }))
2216
+ )
2217
+ );
2218
+ return /* @__PURE__ */ React25.createElement(
2219
+ Infotip,
2220
+ {
2221
+ placement: "top",
2222
+ content: infotipContent,
2223
+ open,
2224
+ onClose: closeInfotip,
2225
+ disableHoverListener: true,
2226
+ componentsProps: {
2227
+ tooltip: {
2228
+ sx: {
2229
+ mx: 2
2230
+ }
2231
+ }
2232
+ },
2233
+ slotProps: {
2234
+ popper: {
2235
+ modifiers: [
2236
+ {
2237
+ name: "offset",
2238
+ options: { offset: [forceInfotipAlignLeft, 0] }
2239
+ }
2240
+ ]
2241
+ }
2242
+ }
2243
+ },
2244
+ /* @__PURE__ */ React25.createElement(IconButton3, { onClick: toggleOpen, "aria-label": label, sx: { my: "-1px" } }, children)
2245
+ );
1944
2246
  };
1945
2247
 
1946
2248
  // src/styles-inheritance/styles-inheritance-indicator.tsx
1947
2249
  var StylesInheritanceIndicator = () => {
1948
- const [open, setOpen] = useState8(false);
1949
- const { value, path, propType } = useBoundProp();
2250
+ const { path, propType } = useBoundProp();
1950
2251
  const { id: currentStyleId, provider: currentStyleProvider, meta: currentStyleMeta } = useStyle();
1951
- const isUsingNestedProps = isExperimentActive4("e_v_3_30");
2252
+ const isUsingNestedProps = isExperimentActive5(EXPERIMENTAL_FEATURES.V_3_30);
1952
2253
  const finalPath = isUsingNestedProps ? path : path.slice(0, 1);
1953
2254
  const inheritanceChain = useStylesInheritanceChain(finalPath);
1954
2255
  if (!inheritanceChain.length) {
1955
2256
  return null;
1956
2257
  }
1957
- const [{ style, variant, provider }] = inheritanceChain;
1958
- if (provider === ELEMENTS_BASE_STYLES_PROVIDER_KEY) {
2258
+ const currentItem = inheritanceChain.find(
2259
+ ({
2260
+ style,
2261
+ variant: {
2262
+ meta: { breakpoint, state }
2263
+ }
2264
+ }) => style.id === currentStyleId && breakpoint === currentStyleMeta.breakpoint && state === currentStyleMeta.state
2265
+ );
2266
+ const hasValue = !isEmpty2(currentItem?.value);
2267
+ const [actualStyle] = inheritanceChain;
2268
+ if (actualStyle.provider === ELEMENTS_BASE_STYLES_PROVIDER_KEY3) {
1959
2269
  return null;
1960
2270
  }
1961
- const { breakpoint, state } = variant.meta;
1962
- const isFinalValue = style.id === currentStyleId && breakpoint === currentStyleMeta.breakpoint && state === currentStyleMeta.state;
1963
- const hasValue = !isEmpty2(value);
2271
+ const isFinalValue = currentItem === actualStyle;
1964
2272
  const label = getLabel({ isFinalValue, hasValue });
1965
2273
  const variantType = getVariant({ isFinalValue, hasValue, currentStyleProvider });
1966
- const eIndicationsPopover = isExperimentActive4("e_indications_popover");
1967
- if (!eIndicationsPopover) {
1968
- return /* @__PURE__ */ React20.createElement(StyleIndicator, { variant: variantType, "aria-label": label });
2274
+ if (!isUsingIndicatorPopover()) {
2275
+ return /* @__PURE__ */ React26.createElement(Tooltip5, { title: __9("Style origin", "elementor"), placement: "top" }, /* @__PURE__ */ React26.createElement(StyleIndicator, { variant: variantType, "aria-label": label }));
1969
2276
  }
1970
- const toggleOpen = () => setOpen((prev) => !prev);
1971
- return /* @__PURE__ */ React20.createElement(
1972
- Infotip,
2277
+ return /* @__PURE__ */ React26.createElement(
2278
+ StyleIndicatorInfotip,
1973
2279
  {
1974
- placement: "top",
1975
- content: /* @__PURE__ */ React20.createElement(StyleIndicatorInfotip, { inheritanceChain, path: finalPath, propType }),
1976
- open,
1977
- onClose: () => setOpen(false),
1978
- trigger: "manual"
2280
+ inheritanceChain,
2281
+ path: finalPath,
2282
+ propType,
2283
+ label
1979
2284
  },
1980
- /* @__PURE__ */ React20.createElement(IconButton2, { onClick: toggleOpen, "aria-label": label }, /* @__PURE__ */ React20.createElement(StyleIndicator, { variant: variantType }))
2285
+ /* @__PURE__ */ React26.createElement(StyleIndicator, { variant: variantType })
1981
2286
  );
1982
2287
  };
1983
2288
  var getLabel = ({ isFinalValue, hasValue }) => {
1984
2289
  if (isFinalValue) {
1985
- return __6("This is the final value", "elementor");
2290
+ return __9("This is the final value", "elementor");
1986
2291
  }
1987
2292
  if (hasValue) {
1988
- return __6("This value is overridden by another style", "elementor");
2293
+ return __9("This value is overridden by another style", "elementor");
1989
2294
  }
1990
- return __6("This has value from another style", "elementor");
2295
+ return __9("This has value from another style", "elementor");
1991
2296
  };
1992
2297
  var getVariant = ({
1993
2298
  isFinalValue,
@@ -2006,14 +2311,15 @@ var getVariant = ({
2006
2311
  // src/controls-registry/styles-field.tsx
2007
2312
  var StylesField = ({ bind, placeholder, children }) => {
2008
2313
  const [value, setValue] = useStylesField(bind);
2009
- const stylesSchema = getStylesSchema();
2314
+ const { canEdit } = useStyle();
2315
+ const stylesSchema = getStylesSchema2();
2010
2316
  const propType = createTopLevelOjectType({ schema: stylesSchema });
2011
2317
  const values = { [bind]: value };
2012
2318
  const placeholderValues = { [bind]: placeholder };
2013
2319
  const setValues = (newValue) => {
2014
2320
  setValue(newValue[bind]);
2015
2321
  };
2016
- return /* @__PURE__ */ React21.createElement(
2322
+ return /* @__PURE__ */ React27.createElement(
2017
2323
  ControlAdornmentsProvider,
2018
2324
  {
2019
2325
  items: [
@@ -2023,59 +2329,62 @@ var StylesField = ({ bind, placeholder, children }) => {
2023
2329
  }
2024
2330
  ]
2025
2331
  },
2026
- /* @__PURE__ */ React21.createElement(
2332
+ /* @__PURE__ */ React27.createElement(
2027
2333
  PropProvider2,
2028
2334
  {
2029
2335
  propType,
2030
2336
  value: values,
2031
2337
  setValue: setValues,
2032
- placeholder: placeholderValues
2338
+ placeholder: placeholderValues,
2339
+ disabled: !canEdit
2033
2340
  },
2034
- /* @__PURE__ */ React21.createElement(PropKeyProvider2, { bind }, children)
2341
+ /* @__PURE__ */ React27.createElement(PropKeyProvider2, { bind }, children)
2035
2342
  )
2036
2343
  );
2037
2344
  };
2038
2345
 
2039
2346
  // src/components/style-sections/background-section/background-section.tsx
2040
2347
  var BackgroundSection = () => {
2041
- return /* @__PURE__ */ React22.createElement(StylesField, { bind: "background" }, /* @__PURE__ */ React22.createElement(BackgroundControl, null));
2348
+ return /* @__PURE__ */ React28.createElement(SectionContent, null, /* @__PURE__ */ React28.createElement(StylesField, { bind: "background" }, /* @__PURE__ */ React28.createElement(BackgroundControl, null)));
2042
2349
  };
2043
2350
 
2044
2351
  // src/components/style-sections/border-section/border-section.tsx
2045
- import * as React32 from "react";
2352
+ import * as React37 from "react";
2046
2353
 
2047
2354
  // src/components/panel-divider.tsx
2048
- import * as React23 from "react";
2355
+ import * as React29 from "react";
2049
2356
  import { Divider as Divider4 } from "@elementor/ui";
2050
- var PanelDivider = () => /* @__PURE__ */ React23.createElement(Divider4, { sx: { my: 0.5 } });
2051
-
2052
- // src/components/section-content.tsx
2053
- import * as React24 from "react";
2054
- import { Stack as Stack6 } from "@elementor/ui";
2055
- var SectionContent = ({ gap = 2, sx, children }) => /* @__PURE__ */ React24.createElement(Stack6, { gap, sx: { ...sx } }, children);
2357
+ var PanelDivider = () => /* @__PURE__ */ React29.createElement(Divider4, { sx: { my: 0.5 } });
2056
2358
 
2057
2359
  // src/components/style-sections/border-section/border-field.tsx
2058
- import * as React30 from "react";
2059
- import { __ as __10 } from "@wordpress/i18n";
2360
+ import * as React35 from "react";
2361
+ import { __ as __13 } from "@wordpress/i18n";
2060
2362
 
2061
2363
  // src/components/add-or-remove-content.tsx
2062
- import * as React26 from "react";
2364
+ import * as React31 from "react";
2063
2365
  import { MinusIcon, PlusIcon } from "@elementor/icons";
2064
- import { Collapse as Collapse2, IconButton as IconButton3, Stack as Stack8 } from "@elementor/ui";
2366
+ import { Collapse as Collapse2, IconButton as IconButton4, Stack as Stack9 } from "@elementor/ui";
2065
2367
 
2066
2368
  // src/components/control-label.tsx
2067
- import * as React25 from "react";
2369
+ import * as React30 from "react";
2068
2370
  import { ControlAdornments, ControlFormLabel as ControlFormLabel2 } from "@elementor/editor-controls";
2069
- import { Stack as Stack7 } from "@elementor/ui";
2371
+ import { Stack as Stack8 } from "@elementor/ui";
2070
2372
  var ControlLabel = ({ children }) => {
2071
- return /* @__PURE__ */ React25.createElement(Stack7, { direction: "row", alignItems: "center", justifyItems: "start", gap: 1 }, /* @__PURE__ */ React25.createElement(ControlFormLabel2, null, children), /* @__PURE__ */ React25.createElement(ControlAdornments, null));
2373
+ return /* @__PURE__ */ React30.createElement(Stack8, { direction: "row", alignItems: "center", justifyItems: "start", gap: 1 }, /* @__PURE__ */ React30.createElement(ControlFormLabel2, null, children), /* @__PURE__ */ React30.createElement(ControlAdornments, null));
2072
2374
  };
2073
2375
 
2074
2376
  // src/components/add-or-remove-content.tsx
2075
- var SIZE2 = "tiny";
2076
- var AddOrRemoveContent = ({ isAdded, label, onAdd, onRemove, children }) => {
2077
- return /* @__PURE__ */ React26.createElement(SectionContent, null, /* @__PURE__ */ React26.createElement(
2078
- Stack8,
2377
+ var SIZE6 = "tiny";
2378
+ var AddOrRemoveContent = ({
2379
+ isAdded,
2380
+ label,
2381
+ onAdd,
2382
+ onRemove,
2383
+ children,
2384
+ disabled
2385
+ }) => {
2386
+ return /* @__PURE__ */ React31.createElement(SectionContent, null, /* @__PURE__ */ React31.createElement(
2387
+ Stack9,
2079
2388
  {
2080
2389
  direction: "row",
2081
2390
  sx: {
@@ -2084,102 +2393,80 @@ var AddOrRemoveContent = ({ isAdded, label, onAdd, onRemove, children }) => {
2084
2393
  marginInlineEnd: -0.75
2085
2394
  }
2086
2395
  },
2087
- /* @__PURE__ */ React26.createElement(ControlLabel, null, label),
2088
- isAdded ? /* @__PURE__ */ React26.createElement(IconButton3, { size: SIZE2, onClick: onRemove, "aria-label": "Remove" }, /* @__PURE__ */ React26.createElement(MinusIcon, { fontSize: SIZE2 })) : /* @__PURE__ */ React26.createElement(IconButton3, { size: SIZE2, onClick: onAdd, "aria-label": "Add" }, /* @__PURE__ */ React26.createElement(PlusIcon, { fontSize: SIZE2 }))
2089
- ), /* @__PURE__ */ React26.createElement(Collapse2, { in: isAdded, unmountOnExit: true }, /* @__PURE__ */ React26.createElement(SectionContent, null, children)));
2396
+ /* @__PURE__ */ React31.createElement(ControlLabel, null, label),
2397
+ isAdded ? /* @__PURE__ */ React31.createElement(IconButton4, { size: SIZE6, onClick: onRemove, "aria-label": "Remove", disabled }, /* @__PURE__ */ React31.createElement(MinusIcon, { fontSize: SIZE6 })) : /* @__PURE__ */ React31.createElement(IconButton4, { size: SIZE6, onClick: onAdd, "aria-label": "Add", disabled }, /* @__PURE__ */ React31.createElement(PlusIcon, { fontSize: SIZE6 }))
2398
+ ), /* @__PURE__ */ React31.createElement(Collapse2, { in: isAdded, unmountOnExit: true }, /* @__PURE__ */ React31.createElement(SectionContent, null, children)));
2090
2399
  };
2091
2400
 
2092
2401
  // src/components/style-sections/border-section/border-color-field.tsx
2093
- import * as React27 from "react";
2402
+ import * as React32 from "react";
2094
2403
  import { ColorControl } from "@elementor/editor-controls";
2095
2404
  import { Grid } from "@elementor/ui";
2096
- import { __ as __7 } from "@wordpress/i18n";
2405
+ import { __ as __10 } from "@wordpress/i18n";
2097
2406
  var BorderColorField = () => {
2098
- return /* @__PURE__ */ React27.createElement(StylesField, { bind: "border-color" }, /* @__PURE__ */ React27.createElement(Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React27.createElement(Grid, { item: true, xs: 6 }, /* @__PURE__ */ React27.createElement(ControlLabel, null, __7("Border color", "elementor"))), /* @__PURE__ */ React27.createElement(Grid, { item: true, xs: 6 }, /* @__PURE__ */ React27.createElement(ColorControl, null))));
2407
+ return /* @__PURE__ */ React32.createElement(StylesField, { bind: "border-color" }, /* @__PURE__ */ React32.createElement(Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React32.createElement(Grid, { item: true, xs: 6 }, /* @__PURE__ */ React32.createElement(ControlLabel, null, __10("Border color", "elementor"))), /* @__PURE__ */ React32.createElement(Grid, { item: true, xs: 6 }, /* @__PURE__ */ React32.createElement(ColorControl, null))));
2099
2408
  };
2100
2409
 
2101
2410
  // src/components/style-sections/border-section/border-style-field.tsx
2102
- import * as React28 from "react";
2411
+ import * as React33 from "react";
2103
2412
  import { SelectControl as SelectControl2 } from "@elementor/editor-controls";
2104
2413
  import { Grid as Grid2 } from "@elementor/ui";
2105
- import { __ as __8 } from "@wordpress/i18n";
2414
+ import { __ as __11 } from "@wordpress/i18n";
2106
2415
  var borderStyles = [
2107
- { value: "none", label: __8("None", "elementor") },
2108
- { value: "solid", label: __8("Solid", "elementor") },
2109
- { value: "dashed", label: __8("Dashed", "elementor") },
2110
- { value: "dotted", label: __8("Dotted", "elementor") },
2111
- { value: "double", label: __8("Double", "elementor") },
2112
- { value: "groove", label: __8("Groove", "elementor") },
2113
- { value: "ridge", label: __8("Ridge", "elementor") },
2114
- { value: "inset", label: __8("Inset", "elementor") },
2115
- { value: "outset", label: __8("Outset", "elementor") }
2416
+ { value: "none", label: __11("None", "elementor") },
2417
+ { value: "solid", label: __11("Solid", "elementor") },
2418
+ { value: "dashed", label: __11("Dashed", "elementor") },
2419
+ { value: "dotted", label: __11("Dotted", "elementor") },
2420
+ { value: "double", label: __11("Double", "elementor") },
2421
+ { value: "groove", label: __11("Groove", "elementor") },
2422
+ { value: "ridge", label: __11("Ridge", "elementor") },
2423
+ { value: "inset", label: __11("Inset", "elementor") },
2424
+ { value: "outset", label: __11("Outset", "elementor") }
2116
2425
  ];
2117
2426
  var BorderStyleField = () => {
2118
- return /* @__PURE__ */ React28.createElement(StylesField, { bind: "border-style" }, /* @__PURE__ */ React28.createElement(Grid2, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React28.createElement(Grid2, { item: true, xs: 6 }, /* @__PURE__ */ React28.createElement(ControlLabel, null, __8("Border type", "elementor"))), /* @__PURE__ */ React28.createElement(Grid2, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React28.createElement(SelectControl2, { options: borderStyles }))));
2427
+ return /* @__PURE__ */ React33.createElement(StylesField, { bind: "border-style" }, /* @__PURE__ */ React33.createElement(Grid2, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React33.createElement(Grid2, { item: true, xs: 6 }, /* @__PURE__ */ React33.createElement(ControlLabel, null, __11("Border type", "elementor"))), /* @__PURE__ */ React33.createElement(Grid2, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React33.createElement(SelectControl2, { options: borderStyles }))));
2119
2428
  };
2120
2429
 
2121
2430
  // src/components/style-sections/border-section/border-width-field.tsx
2122
- import * as React29 from "react";
2431
+ import * as React34 from "react";
2123
2432
  import { EqualUnequalSizesControl } from "@elementor/editor-controls";
2124
2433
  import { borderWidthPropTypeUtil } from "@elementor/editor-props";
2125
2434
  import { SideAllIcon, SideBottomIcon, SideLeftIcon, SideRightIcon, SideTopIcon } from "@elementor/icons";
2126
2435
  import { withDirection } from "@elementor/ui";
2127
- import { __ as __9 } from "@wordpress/i18n";
2128
-
2129
- // src/hooks/use-direction.ts
2130
- import { useTheme } from "@elementor/ui";
2131
-
2132
- // src/sync/get-elementor-globals.ts
2133
- var getElementorConfig = () => {
2134
- const extendedWindow = window;
2135
- return extendedWindow.elementor?.config ?? {};
2136
- };
2137
- var getElementorFrontendConfig = () => {
2138
- const extendedWindow = window;
2139
- return extendedWindow.elementorFrontend?.config ?? {};
2140
- };
2141
-
2142
- // src/hooks/use-direction.ts
2143
- function useDirection() {
2144
- const theme = useTheme();
2145
- const isUiRtl = "rtl" === theme.direction, isSiteRtl = !!getElementorFrontendConfig()?.is_rtl;
2146
- return { isSiteRtl, isUiRtl };
2147
- }
2148
-
2149
- // src/components/style-sections/border-section/border-width-field.tsx
2436
+ import { __ as __12 } from "@wordpress/i18n";
2150
2437
  var InlineStartIcon = withDirection(SideRightIcon);
2151
2438
  var InlineEndIcon = withDirection(SideLeftIcon);
2152
2439
  var getEdges = (isSiteRtl) => [
2153
2440
  {
2154
- label: __9("Top", "elementor"),
2155
- icon: /* @__PURE__ */ React29.createElement(SideTopIcon, { fontSize: "tiny" }),
2441
+ label: __12("Top", "elementor"),
2442
+ icon: /* @__PURE__ */ React34.createElement(SideTopIcon, { fontSize: "tiny" }),
2156
2443
  bind: "block-start"
2157
2444
  },
2158
2445
  {
2159
- label: isSiteRtl ? __9("Left", "elementor") : __9("Right", "elementor"),
2160
- icon: /* @__PURE__ */ React29.createElement(InlineStartIcon, { fontSize: "tiny" }),
2446
+ label: isSiteRtl ? __12("Left", "elementor") : __12("Right", "elementor"),
2447
+ icon: /* @__PURE__ */ React34.createElement(InlineStartIcon, { fontSize: "tiny" }),
2161
2448
  bind: "inline-end"
2162
2449
  },
2163
2450
  {
2164
- label: __9("Bottom", "elementor"),
2165
- icon: /* @__PURE__ */ React29.createElement(SideBottomIcon, { fontSize: "tiny" }),
2451
+ label: __12("Bottom", "elementor"),
2452
+ icon: /* @__PURE__ */ React34.createElement(SideBottomIcon, { fontSize: "tiny" }),
2166
2453
  bind: "block-end"
2167
2454
  },
2168
2455
  {
2169
- label: isSiteRtl ? __9("Right", "elementor") : __9("Left", "elementor"),
2170
- icon: /* @__PURE__ */ React29.createElement(InlineEndIcon, { fontSize: "tiny" }),
2456
+ label: isSiteRtl ? __12("Right", "elementor") : __12("Left", "elementor"),
2457
+ icon: /* @__PURE__ */ React34.createElement(InlineEndIcon, { fontSize: "tiny" }),
2171
2458
  bind: "inline-start"
2172
2459
  }
2173
2460
  ];
2174
2461
  var BorderWidthField = () => {
2175
2462
  const { isSiteRtl } = useDirection();
2176
- return /* @__PURE__ */ React29.createElement(StylesField, { bind: "border-width" }, /* @__PURE__ */ React29.createElement(
2463
+ return /* @__PURE__ */ React34.createElement(StylesField, { bind: "border-width" }, /* @__PURE__ */ React34.createElement(
2177
2464
  EqualUnequalSizesControl,
2178
2465
  {
2179
2466
  items: getEdges(isSiteRtl),
2180
- label: __9("Border width", "elementor"),
2181
- icon: /* @__PURE__ */ React29.createElement(SideAllIcon, { fontSize: "tiny" }),
2182
- tooltipLabel: __9("Adjust borders", "elementor"),
2467
+ label: __12("Border width", "elementor"),
2468
+ icon: /* @__PURE__ */ React34.createElement(SideAllIcon, { fontSize: "tiny" }),
2469
+ tooltipLabel: __12("Adjust borders", "elementor"),
2183
2470
  multiSizePropTypeUtil: borderWidthPropTypeUtil
2184
2471
  }
2185
2472
  ));
@@ -2192,6 +2479,7 @@ var initialBorder = {
2192
2479
  "border-style": { $$type: "string", value: "solid" }
2193
2480
  };
2194
2481
  var BorderField = () => {
2482
+ const { canEdit } = useStyle();
2195
2483
  const [border, setBorder] = useStylesFields(Object.keys(initialBorder));
2196
2484
  const addBorder = () => {
2197
2485
  setBorder(initialBorder);
@@ -2204,22 +2492,23 @@ var BorderField = () => {
2204
2492
  });
2205
2493
  };
2206
2494
  const hasBorder = Object.values(border ?? {}).some(Boolean);
2207
- return /* @__PURE__ */ React30.createElement(
2495
+ return /* @__PURE__ */ React35.createElement(
2208
2496
  AddOrRemoveContent,
2209
2497
  {
2210
- label: __10("Border", "elementor"),
2498
+ label: __13("Border", "elementor"),
2211
2499
  isAdded: hasBorder,
2212
2500
  onAdd: addBorder,
2213
- onRemove: removeBorder
2501
+ onRemove: removeBorder,
2502
+ disabled: !canEdit
2214
2503
  },
2215
- /* @__PURE__ */ React30.createElement(BorderWidthField, null),
2216
- /* @__PURE__ */ React30.createElement(BorderColorField, null),
2217
- /* @__PURE__ */ React30.createElement(BorderStyleField, null)
2504
+ /* @__PURE__ */ React35.createElement(BorderWidthField, null),
2505
+ /* @__PURE__ */ React35.createElement(BorderColorField, null),
2506
+ /* @__PURE__ */ React35.createElement(BorderStyleField, null)
2218
2507
  );
2219
2508
  };
2220
2509
 
2221
2510
  // src/components/style-sections/border-section/border-radius-field.tsx
2222
- import * as React31 from "react";
2511
+ import * as React36 from "react";
2223
2512
  import { EqualUnequalSizesControl as EqualUnequalSizesControl2 } from "@elementor/editor-controls";
2224
2513
  import { borderRadiusPropTypeUtil } from "@elementor/editor-props";
2225
2514
  import {
@@ -2230,66 +2519,66 @@ import {
2230
2519
  RadiusTopRightIcon
2231
2520
  } from "@elementor/icons";
2232
2521
  import { withDirection as withDirection2 } from "@elementor/ui";
2233
- import { __ as __11 } from "@wordpress/i18n";
2522
+ import { __ as __14 } from "@wordpress/i18n";
2234
2523
  var StartStartIcon = withDirection2(RadiusTopLeftIcon);
2235
2524
  var StartEndIcon = withDirection2(RadiusTopRightIcon);
2236
2525
  var EndStartIcon = withDirection2(RadiusBottomLeftIcon);
2237
2526
  var EndEndIcon = withDirection2(RadiusBottomRightIcon);
2238
- var getStartStartLabel = (isSiteRtl) => isSiteRtl ? __11("Top right", "elementor") : __11("Top left", "elementor");
2239
- var getStartEndLabel = (isSiteRtl) => isSiteRtl ? __11("Top left", "elementor") : __11("Top right", "elementor");
2240
- var getEndStartLabel = (isSiteRtl) => isSiteRtl ? __11("Bottom right", "elementor") : __11("Bottom left", "elementor");
2241
- var getEndEndLabel = (isSiteRtl) => isSiteRtl ? __11("Bottom left", "elementor") : __11("Bottom right", "elementor");
2527
+ var getStartStartLabel = (isSiteRtl) => isSiteRtl ? __14("Top right", "elementor") : __14("Top left", "elementor");
2528
+ var getStartEndLabel = (isSiteRtl) => isSiteRtl ? __14("Top left", "elementor") : __14("Top right", "elementor");
2529
+ var getEndStartLabel = (isSiteRtl) => isSiteRtl ? __14("Bottom right", "elementor") : __14("Bottom left", "elementor");
2530
+ var getEndEndLabel = (isSiteRtl) => isSiteRtl ? __14("Bottom left", "elementor") : __14("Bottom right", "elementor");
2242
2531
  var getCorners = (isSiteRtl) => [
2243
2532
  {
2244
2533
  label: getStartStartLabel(isSiteRtl),
2245
- icon: /* @__PURE__ */ React31.createElement(StartStartIcon, { fontSize: "tiny" }),
2534
+ icon: /* @__PURE__ */ React36.createElement(StartStartIcon, { fontSize: "tiny" }),
2246
2535
  bind: "start-start"
2247
2536
  },
2248
2537
  {
2249
2538
  label: getStartEndLabel(isSiteRtl),
2250
- icon: /* @__PURE__ */ React31.createElement(StartEndIcon, { fontSize: "tiny" }),
2539
+ icon: /* @__PURE__ */ React36.createElement(StartEndIcon, { fontSize: "tiny" }),
2251
2540
  bind: "start-end"
2252
2541
  },
2253
2542
  {
2254
2543
  label: getEndStartLabel(isSiteRtl),
2255
- icon: /* @__PURE__ */ React31.createElement(EndStartIcon, { fontSize: "tiny" }),
2544
+ icon: /* @__PURE__ */ React36.createElement(EndStartIcon, { fontSize: "tiny" }),
2256
2545
  bind: "end-start"
2257
2546
  },
2258
2547
  {
2259
2548
  label: getEndEndLabel(isSiteRtl),
2260
- icon: /* @__PURE__ */ React31.createElement(EndEndIcon, { fontSize: "tiny" }),
2549
+ icon: /* @__PURE__ */ React36.createElement(EndEndIcon, { fontSize: "tiny" }),
2261
2550
  bind: "end-end"
2262
2551
  }
2263
2552
  ];
2264
2553
  var BorderRadiusField = () => {
2265
2554
  const { isSiteRtl } = useDirection();
2266
- return /* @__PURE__ */ React31.createElement(StylesField, { bind: "border-radius" }, /* @__PURE__ */ React31.createElement(
2555
+ return /* @__PURE__ */ React36.createElement(StylesField, { bind: "border-radius" }, /* @__PURE__ */ React36.createElement(
2267
2556
  EqualUnequalSizesControl2,
2268
2557
  {
2269
2558
  items: getCorners(isSiteRtl),
2270
- label: __11("Border radius", "elementor"),
2271
- icon: /* @__PURE__ */ React31.createElement(BorderCornersIcon, { fontSize: "tiny" }),
2272
- tooltipLabel: __11("Adjust corners", "elementor"),
2559
+ label: __14("Border radius", "elementor"),
2560
+ icon: /* @__PURE__ */ React36.createElement(BorderCornersIcon, { fontSize: "tiny" }),
2561
+ tooltipLabel: __14("Adjust corners", "elementor"),
2273
2562
  multiSizePropTypeUtil: borderRadiusPropTypeUtil
2274
2563
  }
2275
2564
  ));
2276
2565
  };
2277
2566
 
2278
2567
  // src/components/style-sections/border-section/border-section.tsx
2279
- var BorderSection = () => /* @__PURE__ */ React32.createElement(SectionContent, null, /* @__PURE__ */ React32.createElement(BorderRadiusField, null), /* @__PURE__ */ React32.createElement(PanelDivider, null), /* @__PURE__ */ React32.createElement(BorderField, null));
2568
+ var BorderSection = () => /* @__PURE__ */ React37.createElement(SectionContent, null, /* @__PURE__ */ React37.createElement(BorderRadiusField, null), /* @__PURE__ */ React37.createElement(PanelDivider, null), /* @__PURE__ */ React37.createElement(BorderField, null));
2280
2569
 
2281
2570
  // src/components/style-sections/effects-section/effects-section.tsx
2282
- import * as React33 from "react";
2571
+ import * as React38 from "react";
2283
2572
  import { BoxShadowRepeaterControl } from "@elementor/editor-controls";
2284
2573
  var EffectsSection = () => {
2285
- return /* @__PURE__ */ React33.createElement(SectionContent, null, /* @__PURE__ */ React33.createElement(StylesField, { bind: "box-shadow" }, /* @__PURE__ */ React33.createElement(BoxShadowRepeaterControl, null)));
2574
+ return /* @__PURE__ */ React38.createElement(SectionContent, null, /* @__PURE__ */ React38.createElement(StylesField, { bind: "box-shadow" }, /* @__PURE__ */ React38.createElement(BoxShadowRepeaterControl, null)));
2286
2575
  };
2287
2576
 
2288
2577
  // src/components/style-sections/layout-section/layout-section.tsx
2289
- import * as React45 from "react";
2578
+ import * as React50 from "react";
2290
2579
  import { ControlFormLabel as ControlFormLabel3 } from "@elementor/editor-controls";
2291
2580
  import { useParentElement } from "@elementor/editor-elements";
2292
- import { __ as __22 } from "@wordpress/i18n";
2581
+ import { __ as __25 } from "@wordpress/i18n";
2293
2582
 
2294
2583
  // src/hooks/use-computed-style.ts
2295
2584
  import { __privateUseListenTo as useListenTo, commandEndEvent, windowEvent } from "@elementor/editor-v1-adapters";
@@ -2317,7 +2606,7 @@ function useComputedStyle(elementId) {
2317
2606
  }
2318
2607
 
2319
2608
  // src/components/style-sections/layout-section/align-content-field.tsx
2320
- import * as React35 from "react";
2609
+ import * as React40 from "react";
2321
2610
  import { ToggleControl } from "@elementor/editor-controls";
2322
2611
  import {
2323
2612
  JustifyBottomIcon,
@@ -2327,12 +2616,12 @@ import {
2327
2616
  JustifySpaceBetweenVerticalIcon as BetweenIcon,
2328
2617
  JustifyTopIcon
2329
2618
  } from "@elementor/icons";
2330
- import { DirectionProvider, Stack as Stack9, ThemeProvider, withDirection as withDirection3 } from "@elementor/ui";
2331
- import { __ as __12 } from "@wordpress/i18n";
2619
+ import { DirectionProvider, Stack as Stack10, ThemeProvider, withDirection as withDirection3 } from "@elementor/ui";
2620
+ import { __ as __15 } from "@wordpress/i18n";
2332
2621
 
2333
2622
  // src/components/style-sections/layout-section/utils/rotated-icon.tsx
2334
- import * as React34 from "react";
2335
- import { useRef as useRef3 } from "react";
2623
+ import * as React39 from "react";
2624
+ import { useRef as useRef4 } from "react";
2336
2625
  import { useTheme as useTheme2 } from "@elementor/ui";
2337
2626
  var CLOCKWISE_ANGLES = {
2338
2627
  row: 0,
@@ -2353,9 +2642,9 @@ var RotatedIcon = ({
2353
2642
  offset = 0,
2354
2643
  disableRotationForReversed = false
2355
2644
  }) => {
2356
- const rotate = useRef3(useGetTargetAngle(isClockwise, offset, disableRotationForReversed));
2645
+ const rotate = useRef4(useGetTargetAngle(isClockwise, offset, disableRotationForReversed));
2357
2646
  rotate.current = useGetTargetAngle(isClockwise, offset, disableRotationForReversed, rotate);
2358
- return /* @__PURE__ */ React34.createElement(Icon, { fontSize: size, sx: { transition: ".3s", rotate: `${rotate.current}deg` } });
2647
+ return /* @__PURE__ */ React39.createElement(Icon, { fontSize: size, sx: { transition: ".3s", rotate: `${rotate.current}deg` } });
2359
2648
  };
2360
2649
  var useGetTargetAngle = (isClockwise, offset, disableRotationForReversed, existingRef) => {
2361
2650
  const [direction] = useStylesField("flex-direction");
@@ -2384,48 +2673,48 @@ var iconProps = {
2384
2673
  var options = [
2385
2674
  {
2386
2675
  value: "start",
2387
- label: __12("Start", "elementor"),
2388
- renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(RotatedIcon, { icon: StartIcon, size, ...iconProps }),
2676
+ label: __15("Start", "elementor"),
2677
+ renderContent: ({ size }) => /* @__PURE__ */ React40.createElement(RotatedIcon, { icon: StartIcon, size, ...iconProps }),
2389
2678
  showTooltip: true
2390
2679
  },
2391
2680
  {
2392
2681
  value: "center",
2393
- label: __12("Center", "elementor"),
2394
- renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(RotatedIcon, { icon: CenterIcon, size, ...iconProps }),
2682
+ label: __15("Center", "elementor"),
2683
+ renderContent: ({ size }) => /* @__PURE__ */ React40.createElement(RotatedIcon, { icon: CenterIcon, size, ...iconProps }),
2395
2684
  showTooltip: true
2396
2685
  },
2397
2686
  {
2398
2687
  value: "end",
2399
- label: __12("End", "elementor"),
2400
- renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(RotatedIcon, { icon: EndIcon, size, ...iconProps }),
2688
+ label: __15("End", "elementor"),
2689
+ renderContent: ({ size }) => /* @__PURE__ */ React40.createElement(RotatedIcon, { icon: EndIcon, size, ...iconProps }),
2401
2690
  showTooltip: true
2402
2691
  },
2403
2692
  {
2404
2693
  value: "space-between",
2405
- label: __12("Space between", "elementor"),
2406
- renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(RotatedIcon, { icon: BetweenIcon, size, ...iconProps }),
2694
+ label: __15("Space between", "elementor"),
2695
+ renderContent: ({ size }) => /* @__PURE__ */ React40.createElement(RotatedIcon, { icon: BetweenIcon, size, ...iconProps }),
2407
2696
  showTooltip: true
2408
2697
  },
2409
2698
  {
2410
2699
  value: "space-around",
2411
- label: __12("Space around", "elementor"),
2412
- renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(RotatedIcon, { icon: AroundIcon, size, ...iconProps }),
2700
+ label: __15("Space around", "elementor"),
2701
+ renderContent: ({ size }) => /* @__PURE__ */ React40.createElement(RotatedIcon, { icon: AroundIcon, size, ...iconProps }),
2413
2702
  showTooltip: true
2414
2703
  },
2415
2704
  {
2416
2705
  value: "space-evenly",
2417
- label: __12("Space evenly", "elementor"),
2418
- renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(RotatedIcon, { icon: EvenlyIcon, size, ...iconProps }),
2706
+ label: __15("Space evenly", "elementor"),
2707
+ renderContent: ({ size }) => /* @__PURE__ */ React40.createElement(RotatedIcon, { icon: EvenlyIcon, size, ...iconProps }),
2419
2708
  showTooltip: true
2420
2709
  }
2421
2710
  ];
2422
2711
  var AlignContentField = () => {
2423
2712
  const { isSiteRtl } = useDirection();
2424
- return /* @__PURE__ */ React35.createElement(DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React35.createElement(ThemeProvider, null, /* @__PURE__ */ React35.createElement(StylesField, { bind: "align-content" }, /* @__PURE__ */ React35.createElement(Stack9, { gap: 1 }, /* @__PURE__ */ React35.createElement(ControlLabel, null, __12("Align content", "elementor")), /* @__PURE__ */ React35.createElement(ToggleControl, { options, fullWidth: true })))));
2713
+ return /* @__PURE__ */ React40.createElement(DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React40.createElement(ThemeProvider, null, /* @__PURE__ */ React40.createElement(StylesField, { bind: "align-content" }, /* @__PURE__ */ React40.createElement(Stack10, { gap: 1 }, /* @__PURE__ */ React40.createElement(ControlLabel, null, __15("Align content", "elementor")), /* @__PURE__ */ React40.createElement(ToggleControl, { options, fullWidth: true })))));
2425
2714
  };
2426
2715
 
2427
2716
  // src/components/style-sections/layout-section/align-items-field.tsx
2428
- import * as React36 from "react";
2717
+ import * as React41 from "react";
2429
2718
  import { ToggleControl as ToggleControl2 } from "@elementor/editor-controls";
2430
2719
  import {
2431
2720
  LayoutAlignCenterIcon as CenterIcon2,
@@ -2434,7 +2723,7 @@ import {
2434
2723
  LayoutDistributeVerticalIcon as JustifyIcon
2435
2724
  } from "@elementor/icons";
2436
2725
  import { DirectionProvider as DirectionProvider2, Grid as Grid3, ThemeProvider as ThemeProvider2, withDirection as withDirection4 } from "@elementor/ui";
2437
- import { __ as __13 } from "@wordpress/i18n";
2726
+ import { __ as __16 } from "@wordpress/i18n";
2438
2727
  var StartIcon2 = withDirection4(LayoutAlignLeftIcon);
2439
2728
  var EndIcon2 = withDirection4(LayoutAlignRightIcon);
2440
2729
  var iconProps2 = {
@@ -2444,36 +2733,36 @@ var iconProps2 = {
2444
2733
  var options2 = [
2445
2734
  {
2446
2735
  value: "start",
2447
- label: __13("Start", "elementor"),
2448
- renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(RotatedIcon, { icon: StartIcon2, size, ...iconProps2 }),
2736
+ label: __16("Start", "elementor"),
2737
+ renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(RotatedIcon, { icon: StartIcon2, size, ...iconProps2 }),
2449
2738
  showTooltip: true
2450
2739
  },
2451
2740
  {
2452
2741
  value: "center",
2453
- label: __13("Center", "elementor"),
2454
- renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(RotatedIcon, { icon: CenterIcon2, size, ...iconProps2 }),
2742
+ label: __16("Center", "elementor"),
2743
+ renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(RotatedIcon, { icon: CenterIcon2, size, ...iconProps2 }),
2455
2744
  showTooltip: true
2456
2745
  },
2457
2746
  {
2458
2747
  value: "end",
2459
- label: __13("End", "elementor"),
2460
- renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(RotatedIcon, { icon: EndIcon2, size, ...iconProps2 }),
2748
+ label: __16("End", "elementor"),
2749
+ renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(RotatedIcon, { icon: EndIcon2, size, ...iconProps2 }),
2461
2750
  showTooltip: true
2462
2751
  },
2463
2752
  {
2464
2753
  value: "stretch",
2465
- label: __13("Stretch", "elementor"),
2466
- renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(RotatedIcon, { icon: JustifyIcon, size, ...iconProps2 }),
2754
+ label: __16("Stretch", "elementor"),
2755
+ renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(RotatedIcon, { icon: JustifyIcon, size, ...iconProps2 }),
2467
2756
  showTooltip: true
2468
2757
  }
2469
2758
  ];
2470
2759
  var AlignItemsField = () => {
2471
2760
  const { isSiteRtl } = useDirection();
2472
- return /* @__PURE__ */ React36.createElement(DirectionProvider2, { rtl: isSiteRtl }, /* @__PURE__ */ React36.createElement(ThemeProvider2, null, /* @__PURE__ */ React36.createElement(StylesField, { bind: "align-items" }, /* @__PURE__ */ React36.createElement(Grid3, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React36.createElement(Grid3, { item: true, xs: 6 }, /* @__PURE__ */ React36.createElement(ControlLabel, null, __13("Align items", "elementor"))), /* @__PURE__ */ React36.createElement(Grid3, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React36.createElement(ToggleControl2, { options: options2 }))))));
2761
+ return /* @__PURE__ */ React41.createElement(DirectionProvider2, { rtl: isSiteRtl }, /* @__PURE__ */ React41.createElement(ThemeProvider2, null, /* @__PURE__ */ React41.createElement(StylesField, { bind: "align-items" }, /* @__PURE__ */ React41.createElement(Grid3, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React41.createElement(Grid3, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(ControlLabel, null, __16("Align items", "elementor"))), /* @__PURE__ */ React41.createElement(Grid3, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React41.createElement(ToggleControl2, { options: options2 }))))));
2473
2762
  };
2474
2763
 
2475
2764
  // src/components/style-sections/layout-section/align-self-child-field.tsx
2476
- import * as React37 from "react";
2765
+ import * as React42 from "react";
2477
2766
  import { ToggleControl as ToggleControl3 } from "@elementor/editor-controls";
2478
2767
  import {
2479
2768
  LayoutAlignCenterIcon as CenterIcon3,
@@ -2482,7 +2771,7 @@ import {
2482
2771
  LayoutDistributeVerticalIcon as JustifyIcon2
2483
2772
  } from "@elementor/icons";
2484
2773
  import { DirectionProvider as DirectionProvider3, Grid as Grid4, ThemeProvider as ThemeProvider3, withDirection as withDirection5 } from "@elementor/ui";
2485
- import { __ as __14 } from "@wordpress/i18n";
2774
+ import { __ as __17 } from "@wordpress/i18n";
2486
2775
  var ALIGN_SELF_CHILD_OFFSET_MAP = {
2487
2776
  row: 90,
2488
2777
  "row-reverse": 90,
@@ -2497,8 +2786,8 @@ var iconProps3 = {
2497
2786
  var getOptions = (parentStyleDirection) => [
2498
2787
  {
2499
2788
  value: "start",
2500
- label: __14("Start", "elementor"),
2501
- renderContent: ({ size }) => /* @__PURE__ */ React37.createElement(
2789
+ label: __17("Start", "elementor"),
2790
+ renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(
2502
2791
  RotatedIcon,
2503
2792
  {
2504
2793
  icon: StartIcon3,
@@ -2511,8 +2800,8 @@ var getOptions = (parentStyleDirection) => [
2511
2800
  },
2512
2801
  {
2513
2802
  value: "center",
2514
- label: __14("Center", "elementor"),
2515
- renderContent: ({ size }) => /* @__PURE__ */ React37.createElement(
2803
+ label: __17("Center", "elementor"),
2804
+ renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(
2516
2805
  RotatedIcon,
2517
2806
  {
2518
2807
  icon: CenterIcon3,
@@ -2525,8 +2814,8 @@ var getOptions = (parentStyleDirection) => [
2525
2814
  },
2526
2815
  {
2527
2816
  value: "end",
2528
- label: __14("End", "elementor"),
2529
- renderContent: ({ size }) => /* @__PURE__ */ React37.createElement(
2817
+ label: __17("End", "elementor"),
2818
+ renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(
2530
2819
  RotatedIcon,
2531
2820
  {
2532
2821
  icon: EndIcon3,
@@ -2539,8 +2828,8 @@ var getOptions = (parentStyleDirection) => [
2539
2828
  },
2540
2829
  {
2541
2830
  value: "stretch",
2542
- label: __14("Stretch", "elementor"),
2543
- renderContent: ({ size }) => /* @__PURE__ */ React37.createElement(
2831
+ label: __17("Stretch", "elementor"),
2832
+ renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(
2544
2833
  RotatedIcon,
2545
2834
  {
2546
2835
  icon: JustifyIcon2,
@@ -2554,107 +2843,107 @@ var getOptions = (parentStyleDirection) => [
2554
2843
  ];
2555
2844
  var AlignSelfChild = ({ parentStyleDirection }) => {
2556
2845
  const { isSiteRtl } = useDirection();
2557
- return /* @__PURE__ */ React37.createElement(DirectionProvider3, { rtl: isSiteRtl }, /* @__PURE__ */ React37.createElement(ThemeProvider3, null, /* @__PURE__ */ React37.createElement(StylesField, { bind: "align-self" }, /* @__PURE__ */ React37.createElement(Grid4, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React37.createElement(Grid4, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(ControlLabel, null, __14("Align self", "elementor"))), /* @__PURE__ */ React37.createElement(Grid4, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React37.createElement(ToggleControl3, { options: getOptions(parentStyleDirection) }))))));
2846
+ return /* @__PURE__ */ React42.createElement(DirectionProvider3, { rtl: isSiteRtl }, /* @__PURE__ */ React42.createElement(ThemeProvider3, null, /* @__PURE__ */ React42.createElement(StylesField, { bind: "align-self" }, /* @__PURE__ */ React42.createElement(Grid4, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React42.createElement(Grid4, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(ControlLabel, null, __17("Align self", "elementor"))), /* @__PURE__ */ React42.createElement(Grid4, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React42.createElement(ToggleControl3, { options: getOptions(parentStyleDirection) }))))));
2558
2847
  };
2559
2848
 
2560
2849
  // src/components/style-sections/layout-section/display-field.tsx
2561
- import * as React38 from "react";
2850
+ import * as React43 from "react";
2562
2851
  import { ToggleControl as ToggleControl4 } from "@elementor/editor-controls";
2563
- import { isExperimentActive as isExperimentActive5 } from "@elementor/editor-v1-adapters";
2564
- import { Stack as Stack10 } from "@elementor/ui";
2565
- import { __ as __15 } from "@wordpress/i18n";
2852
+ import { isExperimentActive as isExperimentActive6 } from "@elementor/editor-v1-adapters";
2853
+ import { Stack as Stack11 } from "@elementor/ui";
2854
+ import { __ as __18 } from "@wordpress/i18n";
2566
2855
  var displayFieldItems = [
2567
2856
  {
2568
2857
  value: "block",
2569
- renderContent: () => __15("Block", "elementor"),
2570
- label: __15("Block", "elementor"),
2858
+ renderContent: () => __18("Block", "elementor"),
2859
+ label: __18("Block", "elementor"),
2571
2860
  showTooltip: true
2572
2861
  },
2573
2862
  {
2574
2863
  value: "flex",
2575
- renderContent: () => __15("Flex", "elementor"),
2576
- label: __15("Flex", "elementor"),
2864
+ renderContent: () => __18("Flex", "elementor"),
2865
+ label: __18("Flex", "elementor"),
2577
2866
  showTooltip: true
2578
2867
  },
2579
2868
  {
2580
2869
  value: "inline-block",
2581
- renderContent: () => __15("In-blk", "elementor"),
2582
- label: __15("Inline-block", "elementor"),
2870
+ renderContent: () => __18("In-blk", "elementor"),
2871
+ label: __18("Inline-block", "elementor"),
2583
2872
  showTooltip: true
2584
2873
  }
2585
2874
  ];
2586
2875
  var DisplayField = () => {
2587
- const isDisplayNoneFeatureActive = isExperimentActive5("e_v_3_30");
2876
+ const isDisplayNoneFeatureActive = isExperimentActive6(EXPERIMENTAL_FEATURES.V_3_30);
2588
2877
  const items3 = [...displayFieldItems];
2589
2878
  if (isDisplayNoneFeatureActive) {
2590
2879
  items3.push({
2591
2880
  value: "none",
2592
- renderContent: () => __15("None", "elementor"),
2593
- label: __15("None", "elementor"),
2881
+ renderContent: () => __18("None", "elementor"),
2882
+ label: __18("None", "elementor"),
2594
2883
  showTooltip: true
2595
2884
  });
2596
2885
  }
2597
2886
  items3.push({
2598
2887
  value: "inline-flex",
2599
- renderContent: () => __15("In-flx", "elementor"),
2600
- label: __15("Inline-flex", "elementor"),
2888
+ renderContent: () => __18("In-flx", "elementor"),
2889
+ label: __18("Inline-flex", "elementor"),
2601
2890
  showTooltip: true
2602
2891
  });
2603
2892
  const placeholder = useDisplayPlaceholderValue();
2604
- return /* @__PURE__ */ React38.createElement(StylesField, { bind: "display", placeholder }, /* @__PURE__ */ React38.createElement(Stack10, { gap: 0.75 }, /* @__PURE__ */ React38.createElement(ControlLabel, null, __15("Display", "elementor")), /* @__PURE__ */ React38.createElement(ToggleControl4, { options: items3, maxItems: 4, fullWidth: true })));
2893
+ return /* @__PURE__ */ React43.createElement(StylesField, { bind: "display", placeholder }, /* @__PURE__ */ React43.createElement(Stack11, { gap: 0.75 }, /* @__PURE__ */ React43.createElement(ControlLabel, null, __18("Display", "elementor")), /* @__PURE__ */ React43.createElement(ToggleControl4, { options: items3, maxItems: 4, fullWidth: true })));
2605
2894
  };
2606
2895
  var useDisplayPlaceholderValue = () => useStylesInheritanceChain(["display"])[0]?.value ?? void 0;
2607
2896
 
2608
2897
  // src/components/style-sections/layout-section/flex-direction-field.tsx
2609
- import * as React39 from "react";
2898
+ import * as React44 from "react";
2610
2899
  import { ToggleControl as ToggleControl5 } from "@elementor/editor-controls";
2611
2900
  import { ArrowDownSmallIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpSmallIcon } from "@elementor/icons";
2612
2901
  import { DirectionProvider as DirectionProvider4, Grid as Grid5, ThemeProvider as ThemeProvider4, withDirection as withDirection6 } from "@elementor/ui";
2613
- import { __ as __16 } from "@wordpress/i18n";
2902
+ import { __ as __19 } from "@wordpress/i18n";
2614
2903
  var options3 = [
2615
2904
  {
2616
2905
  value: "row",
2617
- label: __16("Row", "elementor"),
2906
+ label: __19("Row", "elementor"),
2618
2907
  renderContent: ({ size }) => {
2619
2908
  const StartIcon5 = withDirection6(ArrowRightIcon);
2620
- return /* @__PURE__ */ React39.createElement(StartIcon5, { fontSize: size });
2909
+ return /* @__PURE__ */ React44.createElement(StartIcon5, { fontSize: size });
2621
2910
  },
2622
2911
  showTooltip: true
2623
2912
  },
2624
2913
  {
2625
2914
  value: "column",
2626
- label: __16("Column", "elementor"),
2627
- renderContent: ({ size }) => /* @__PURE__ */ React39.createElement(ArrowDownSmallIcon, { fontSize: size }),
2915
+ label: __19("Column", "elementor"),
2916
+ renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(ArrowDownSmallIcon, { fontSize: size }),
2628
2917
  showTooltip: true
2629
2918
  },
2630
2919
  {
2631
2920
  value: "row-reverse",
2632
- label: __16("Reversed row", "elementor"),
2921
+ label: __19("Reversed row", "elementor"),
2633
2922
  renderContent: ({ size }) => {
2634
2923
  const EndIcon5 = withDirection6(ArrowLeftIcon);
2635
- return /* @__PURE__ */ React39.createElement(EndIcon5, { fontSize: size });
2924
+ return /* @__PURE__ */ React44.createElement(EndIcon5, { fontSize: size });
2636
2925
  },
2637
2926
  showTooltip: true
2638
2927
  },
2639
2928
  {
2640
2929
  value: "column-reverse",
2641
- label: __16("Reversed column", "elementor"),
2642
- renderContent: ({ size }) => /* @__PURE__ */ React39.createElement(ArrowUpSmallIcon, { fontSize: size }),
2930
+ label: __19("Reversed column", "elementor"),
2931
+ renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(ArrowUpSmallIcon, { fontSize: size }),
2643
2932
  showTooltip: true
2644
2933
  }
2645
2934
  ];
2646
2935
  var FlexDirectionField = () => {
2647
2936
  const { isSiteRtl } = useDirection();
2648
- return /* @__PURE__ */ React39.createElement(DirectionProvider4, { rtl: isSiteRtl }, /* @__PURE__ */ React39.createElement(ThemeProvider4, null, /* @__PURE__ */ React39.createElement(StylesField, { bind: "flex-direction" }, /* @__PURE__ */ React39.createElement(Grid5, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React39.createElement(Grid5, { item: true, xs: 6 }, /* @__PURE__ */ React39.createElement(ControlLabel, null, __16("Direction", "elementor"))), /* @__PURE__ */ React39.createElement(Grid5, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React39.createElement(ToggleControl5, { options: options3 }))))));
2937
+ return /* @__PURE__ */ React44.createElement(DirectionProvider4, { rtl: isSiteRtl }, /* @__PURE__ */ React44.createElement(ThemeProvider4, null, /* @__PURE__ */ React44.createElement(StylesField, { bind: "flex-direction" }, /* @__PURE__ */ React44.createElement(Grid5, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React44.createElement(Grid5, { item: true, xs: 6 }, /* @__PURE__ */ React44.createElement(ControlLabel, null, __19("Direction", "elementor"))), /* @__PURE__ */ React44.createElement(Grid5, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React44.createElement(ToggleControl5, { options: options3 }))))));
2649
2938
  };
2650
2939
 
2651
2940
  // src/components/style-sections/layout-section/flex-order-field.tsx
2652
- import * as React40 from "react";
2941
+ import * as React45 from "react";
2653
2942
  import { useState as useState9 } from "react";
2654
2943
  import { ControlToggleButtonGroup, NumberControl } from "@elementor/editor-controls";
2655
2944
  import { ArrowDownSmallIcon as ArrowDownSmallIcon2, ArrowUpSmallIcon as ArrowUpSmallIcon2, PencilIcon } from "@elementor/icons";
2656
2945
  import { DirectionProvider as DirectionProvider5, Grid as Grid6, ThemeProvider as ThemeProvider5 } from "@elementor/ui";
2657
- import { __ as __17 } from "@wordpress/i18n";
2946
+ import { __ as __20 } from "@wordpress/i18n";
2658
2947
  var FIRST_DEFAULT_VALUE = -99999;
2659
2948
  var LAST_DEFAULT_VALUE = 99999;
2660
2949
  var FIRST = "first";
@@ -2667,25 +2956,27 @@ var orderValueMap = {
2667
2956
  var items = [
2668
2957
  {
2669
2958
  value: FIRST,
2670
- label: __17("First", "elementor"),
2671
- renderContent: ({ size }) => /* @__PURE__ */ React40.createElement(ArrowUpSmallIcon2, { fontSize: size }),
2959
+ label: __20("First", "elementor"),
2960
+ renderContent: ({ size }) => /* @__PURE__ */ React45.createElement(ArrowUpSmallIcon2, { fontSize: size }),
2672
2961
  showTooltip: true
2673
2962
  },
2674
2963
  {
2675
2964
  value: LAST,
2676
- label: __17("Last", "elementor"),
2677
- renderContent: ({ size }) => /* @__PURE__ */ React40.createElement(ArrowDownSmallIcon2, { fontSize: size }),
2965
+ label: __20("Last", "elementor"),
2966
+ renderContent: ({ size }) => /* @__PURE__ */ React45.createElement(ArrowDownSmallIcon2, { fontSize: size }),
2678
2967
  showTooltip: true
2679
2968
  },
2680
2969
  {
2681
2970
  value: CUSTOM,
2682
- label: __17("Custom", "elementor"),
2683
- renderContent: ({ size }) => /* @__PURE__ */ React40.createElement(PencilIcon, { fontSize: size }),
2971
+ label: __20("Custom", "elementor"),
2972
+ renderContent: ({ size }) => /* @__PURE__ */ React45.createElement(PencilIcon, { fontSize: size }),
2684
2973
  showTooltip: true
2685
2974
  }
2686
2975
  ];
2687
2976
  var FlexOrderField = () => {
2688
- const { isSiteRtl } = useDirection(), [order, setOrder] = useStylesField("order");
2977
+ const { isSiteRtl } = useDirection();
2978
+ const [order, setOrder] = useStylesField("order");
2979
+ const { canEdit } = useStyle();
2689
2980
  const [groupControlValue, setGroupControlValue] = useState9(getGroupControlValue(order?.value || null));
2690
2981
  const handleToggleButtonChange = (group) => {
2691
2982
  setGroupControlValue(group);
@@ -2695,15 +2986,16 @@ var FlexOrderField = () => {
2695
2986
  }
2696
2987
  setOrder({ $$type: "number", value: orderValueMap[group] });
2697
2988
  };
2698
- return /* @__PURE__ */ React40.createElement(DirectionProvider5, { rtl: isSiteRtl }, /* @__PURE__ */ React40.createElement(ThemeProvider5, null, /* @__PURE__ */ React40.createElement(StylesField, { bind: "order" }, /* @__PURE__ */ React40.createElement(SectionContent, null, /* @__PURE__ */ React40.createElement(Grid6, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React40.createElement(Grid6, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(ControlLabel, null, __17("Order", "elementor"))), /* @__PURE__ */ React40.createElement(Grid6, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React40.createElement(
2989
+ return /* @__PURE__ */ React45.createElement(DirectionProvider5, { rtl: isSiteRtl }, /* @__PURE__ */ React45.createElement(ThemeProvider5, null, /* @__PURE__ */ React45.createElement(StylesField, { bind: "order" }, /* @__PURE__ */ React45.createElement(SectionContent, null, /* @__PURE__ */ React45.createElement(Grid6, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React45.createElement(Grid6, { item: true, xs: 6 }, /* @__PURE__ */ React45.createElement(ControlLabel, null, __20("Order", "elementor"))), /* @__PURE__ */ React45.createElement(Grid6, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React45.createElement(
2699
2990
  ControlToggleButtonGroup,
2700
2991
  {
2701
2992
  items,
2702
2993
  value: groupControlValue,
2703
2994
  onChange: handleToggleButtonChange,
2704
- exclusive: true
2995
+ exclusive: true,
2996
+ disabled: !canEdit
2705
2997
  }
2706
- ))), CUSTOM === groupControlValue && /* @__PURE__ */ React40.createElement(Grid6, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React40.createElement(Grid6, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(ControlLabel, null, __17("Custom order", "elementor"))), /* @__PURE__ */ React40.createElement(Grid6, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React40.createElement(
2998
+ ))), CUSTOM === groupControlValue && /* @__PURE__ */ React45.createElement(Grid6, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React45.createElement(Grid6, { item: true, xs: 6 }, /* @__PURE__ */ React45.createElement(ControlLabel, null, __20("Custom order", "elementor"))), /* @__PURE__ */ React45.createElement(Grid6, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React45.createElement(
2707
2999
  NumberControl,
2708
3000
  {
2709
3001
  min: FIRST_DEFAULT_VALUE + 1,
@@ -2723,7 +3015,7 @@ var getGroupControlValue = (order) => {
2723
3015
  };
2724
3016
 
2725
3017
  // src/components/style-sections/layout-section/flex-size-field.tsx
2726
- import * as React41 from "react";
3018
+ import * as React46 from "react";
2727
3019
  import { useMemo as useMemo5, useState as useState10 } from "react";
2728
3020
  import {
2729
3021
  ControlToggleButtonGroup as ControlToggleButtonGroup2,
@@ -2733,30 +3025,31 @@ import {
2733
3025
  import { numberPropTypeUtil } from "@elementor/editor-props";
2734
3026
  import { ExpandIcon, PencilIcon as PencilIcon2, ShrinkIcon } from "@elementor/icons";
2735
3027
  import { DirectionProvider as DirectionProvider6, Grid as Grid7, ThemeProvider as ThemeProvider6 } from "@elementor/ui";
2736
- import { __ as __18 } from "@wordpress/i18n";
3028
+ import { __ as __21 } from "@wordpress/i18n";
2737
3029
  var DEFAULT = 1;
2738
3030
  var items2 = [
2739
3031
  {
2740
3032
  value: "flex-grow",
2741
- label: __18("Grow", "elementor"),
2742
- renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(ExpandIcon, { fontSize: size }),
3033
+ label: __21("Grow", "elementor"),
3034
+ renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(ExpandIcon, { fontSize: size }),
2743
3035
  showTooltip: true
2744
3036
  },
2745
3037
  {
2746
3038
  value: "flex-shrink",
2747
- label: __18("Shrink", "elementor"),
2748
- renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(ShrinkIcon, { fontSize: size }),
3039
+ label: __21("Shrink", "elementor"),
3040
+ renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(ShrinkIcon, { fontSize: size }),
2749
3041
  showTooltip: true
2750
3042
  },
2751
3043
  {
2752
3044
  value: "custom",
2753
- label: __18("Custom", "elementor"),
2754
- renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(PencilIcon2, { fontSize: size }),
3045
+ label: __21("Custom", "elementor"),
3046
+ renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(PencilIcon2, { fontSize: size }),
2755
3047
  showTooltip: true
2756
3048
  }
2757
3049
  ];
2758
3050
  var FlexSizeField = () => {
2759
3051
  const { isSiteRtl } = useDirection();
3052
+ const { canEdit } = useStyle();
2760
3053
  const [fields, setFields] = useStylesFields(["flex-grow", "flex-shrink", "flex-basis"]);
2761
3054
  const grow = fields?.["flex-grow"]?.value || null;
2762
3055
  const shrink = fields?.["flex-shrink"]?.value || null;
@@ -2786,17 +3079,18 @@ var FlexSizeField = () => {
2786
3079
  "flex-shrink": numberPropTypeUtil.create(DEFAULT)
2787
3080
  });
2788
3081
  };
2789
- return /* @__PURE__ */ React41.createElement(DirectionProvider6, { rtl: isSiteRtl }, /* @__PURE__ */ React41.createElement(ThemeProvider6, null, /* @__PURE__ */ React41.createElement(SectionContent, null, /* @__PURE__ */ React41.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React41.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(StylesField, { bind: activeGroup ?? "" }, /* @__PURE__ */ React41.createElement(ControlLabel, null, __18("Size", "elementor")))), /* @__PURE__ */ React41.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React41.createElement(
3082
+ return /* @__PURE__ */ React46.createElement(DirectionProvider6, { rtl: isSiteRtl }, /* @__PURE__ */ React46.createElement(ThemeProvider6, null, /* @__PURE__ */ React46.createElement(SectionContent, null, /* @__PURE__ */ React46.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React46.createElement(StylesField, { bind: activeGroup ?? "" }, /* @__PURE__ */ React46.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React46.createElement(ControlLabel, null, __21("Size", "elementor"))), /* @__PURE__ */ React46.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React46.createElement(
2790
3083
  ControlToggleButtonGroup2,
2791
3084
  {
2792
3085
  value: activeGroup,
2793
3086
  onChange: onChangeGroup,
3087
+ disabled: !canEdit,
2794
3088
  items: items2,
2795
3089
  exclusive: true
2796
3090
  }
2797
- ))), "custom" === activeGroup && /* @__PURE__ */ React41.createElement(FlexCustomField, null))));
3091
+ )))), "custom" === activeGroup && /* @__PURE__ */ React46.createElement(FlexCustomField, null))));
2798
3092
  };
2799
- var FlexCustomField = () => /* @__PURE__ */ React41.createElement(React41.Fragment, null, /* @__PURE__ */ React41.createElement(StylesField, { bind: "flex-grow" }, /* @__PURE__ */ React41.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React41.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(ControlLabel, null, __18("Grow", "elementor"))), /* @__PURE__ */ React41.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React41.createElement(NumberControl2, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React41.createElement(StylesField, { bind: "flex-shrink" }, /* @__PURE__ */ React41.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React41.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(ControlLabel, null, __18("Shrink", "elementor"))), /* @__PURE__ */ React41.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React41.createElement(NumberControl2, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React41.createElement(StylesField, { bind: "flex-basis" }, /* @__PURE__ */ React41.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React41.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(ControlLabel, null, __18("Basis", "elementor"))), /* @__PURE__ */ React41.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React41.createElement(SizeControl2, { extendedValues: ["auto"] })))));
3093
+ var FlexCustomField = () => /* @__PURE__ */ React46.createElement(React46.Fragment, null, /* @__PURE__ */ React46.createElement(StylesField, { bind: "flex-grow" }, /* @__PURE__ */ React46.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React46.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React46.createElement(ControlLabel, null, __21("Grow", "elementor"))), /* @__PURE__ */ React46.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React46.createElement(NumberControl2, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React46.createElement(StylesField, { bind: "flex-shrink" }, /* @__PURE__ */ React46.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React46.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React46.createElement(ControlLabel, null, __21("Shrink", "elementor"))), /* @__PURE__ */ React46.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React46.createElement(NumberControl2, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React46.createElement(StylesField, { bind: "flex-basis" }, /* @__PURE__ */ React46.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React46.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React46.createElement(ControlLabel, null, __21("Basis", "elementor"))), /* @__PURE__ */ React46.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React46.createElement(SizeControl2, { extendedValues: ["auto"] })))));
2800
3094
  var getActiveGroup = ({
2801
3095
  grow,
2802
3096
  shrink,
@@ -2818,16 +3112,16 @@ var getActiveGroup = ({
2818
3112
  };
2819
3113
 
2820
3114
  // src/components/style-sections/layout-section/gap-control-field.tsx
2821
- import * as React42 from "react";
3115
+ import * as React47 from "react";
2822
3116
  import { GapControl } from "@elementor/editor-controls";
2823
- import { Stack as Stack11 } from "@elementor/ui";
2824
- import { __ as __19 } from "@wordpress/i18n";
3117
+ import { Stack as Stack12 } from "@elementor/ui";
3118
+ import { __ as __22 } from "@wordpress/i18n";
2825
3119
  var GapControlField = () => {
2826
- return /* @__PURE__ */ React42.createElement(Stack11, { gap: 1 }, /* @__PURE__ */ React42.createElement(StylesField, { bind: "gap" }, /* @__PURE__ */ React42.createElement(GapControl, { label: __19("Gaps", "elementor") })));
3120
+ return /* @__PURE__ */ React47.createElement(Stack12, { gap: 1 }, /* @__PURE__ */ React47.createElement(StylesField, { bind: "gap" }, /* @__PURE__ */ React47.createElement(GapControl, { label: __22("Gaps", "elementor") })));
2827
3121
  };
2828
3122
 
2829
3123
  // src/components/style-sections/layout-section/justify-content-field.tsx
2830
- import * as React43 from "react";
3124
+ import * as React48 from "react";
2831
3125
  import { ToggleControl as ToggleControl6 } from "@elementor/editor-controls";
2832
3126
  import {
2833
3127
  JustifyBottomIcon as JustifyBottomIcon2,
@@ -2837,8 +3131,8 @@ import {
2837
3131
  JustifySpaceBetweenVerticalIcon as BetweenIcon2,
2838
3132
  JustifyTopIcon as JustifyTopIcon2
2839
3133
  } from "@elementor/icons";
2840
- import { DirectionProvider as DirectionProvider7, Stack as Stack12, ThemeProvider as ThemeProvider7, withDirection as withDirection7 } from "@elementor/ui";
2841
- import { __ as __20 } from "@wordpress/i18n";
3134
+ import { DirectionProvider as DirectionProvider7, Stack as Stack13, ThemeProvider as ThemeProvider7, withDirection as withDirection7 } from "@elementor/ui";
3135
+ import { __ as __23 } from "@wordpress/i18n";
2842
3136
  var StartIcon4 = withDirection7(JustifyTopIcon2);
2843
3137
  var EndIcon4 = withDirection7(JustifyBottomIcon2);
2844
3138
  var iconProps4 = {
@@ -2848,75 +3142,75 @@ var iconProps4 = {
2848
3142
  var options4 = [
2849
3143
  {
2850
3144
  value: "flex-start",
2851
- label: __20("Start", "elementor"),
2852
- renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(RotatedIcon, { icon: StartIcon4, size, ...iconProps4 }),
3145
+ label: __23("Start", "elementor"),
3146
+ renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(RotatedIcon, { icon: StartIcon4, size, ...iconProps4 }),
2853
3147
  showTooltip: true
2854
3148
  },
2855
3149
  {
2856
3150
  value: "center",
2857
- label: __20("Center", "elementor"),
2858
- renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(RotatedIcon, { icon: CenterIcon4, size, ...iconProps4 }),
3151
+ label: __23("Center", "elementor"),
3152
+ renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(RotatedIcon, { icon: CenterIcon4, size, ...iconProps4 }),
2859
3153
  showTooltip: true
2860
3154
  },
2861
3155
  {
2862
3156
  value: "flex-end",
2863
- label: __20("End", "elementor"),
2864
- renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(RotatedIcon, { icon: EndIcon4, size, ...iconProps4 }),
3157
+ label: __23("End", "elementor"),
3158
+ renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(RotatedIcon, { icon: EndIcon4, size, ...iconProps4 }),
2865
3159
  showTooltip: true
2866
3160
  },
2867
3161
  {
2868
3162
  value: "space-between",
2869
- label: __20("Space between", "elementor"),
2870
- renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(RotatedIcon, { icon: BetweenIcon2, size, ...iconProps4 }),
3163
+ label: __23("Space between", "elementor"),
3164
+ renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(RotatedIcon, { icon: BetweenIcon2, size, ...iconProps4 }),
2871
3165
  showTooltip: true
2872
3166
  },
2873
3167
  {
2874
3168
  value: "space-around",
2875
- label: __20("Space around", "elementor"),
2876
- renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(RotatedIcon, { icon: AroundIcon2, size, ...iconProps4 }),
3169
+ label: __23("Space around", "elementor"),
3170
+ renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(RotatedIcon, { icon: AroundIcon2, size, ...iconProps4 }),
2877
3171
  showTooltip: true
2878
3172
  },
2879
3173
  {
2880
3174
  value: "space-evenly",
2881
- label: __20("Space evenly", "elementor"),
2882
- renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(RotatedIcon, { icon: EvenlyIcon2, size, ...iconProps4 }),
3175
+ label: __23("Space evenly", "elementor"),
3176
+ renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(RotatedIcon, { icon: EvenlyIcon2, size, ...iconProps4 }),
2883
3177
  showTooltip: true
2884
3178
  }
2885
3179
  ];
2886
3180
  var JustifyContentField = () => {
2887
3181
  const { isSiteRtl } = useDirection();
2888
- return /* @__PURE__ */ React43.createElement(DirectionProvider7, { rtl: isSiteRtl }, /* @__PURE__ */ React43.createElement(ThemeProvider7, null, /* @__PURE__ */ React43.createElement(StylesField, { bind: "justify-content" }, /* @__PURE__ */ React43.createElement(Stack12, { gap: 0.75 }, /* @__PURE__ */ React43.createElement(ControlLabel, null, __20("Justify content", "elementor")), /* @__PURE__ */ React43.createElement(ToggleControl6, { options: options4, fullWidth: true })))));
3182
+ return /* @__PURE__ */ React48.createElement(DirectionProvider7, { rtl: isSiteRtl }, /* @__PURE__ */ React48.createElement(ThemeProvider7, null, /* @__PURE__ */ React48.createElement(StylesField, { bind: "justify-content" }, /* @__PURE__ */ React48.createElement(Stack13, { gap: 0.75 }, /* @__PURE__ */ React48.createElement(ControlLabel, null, __23("Justify content", "elementor")), /* @__PURE__ */ React48.createElement(ToggleControl6, { options: options4, fullWidth: true })))));
2889
3183
  };
2890
3184
 
2891
3185
  // src/components/style-sections/layout-section/wrap-field.tsx
2892
- import * as React44 from "react";
3186
+ import * as React49 from "react";
2893
3187
  import { ToggleControl as ToggleControl7 } from "@elementor/editor-controls";
2894
3188
  import { ArrowBackIcon, ArrowForwardIcon, ArrowRightIcon as ArrowRightIcon2 } from "@elementor/icons";
2895
3189
  import { DirectionProvider as DirectionProvider8, Grid as Grid8, ThemeProvider as ThemeProvider8 } from "@elementor/ui";
2896
- import { __ as __21 } from "@wordpress/i18n";
3190
+ import { __ as __24 } from "@wordpress/i18n";
2897
3191
  var options5 = [
2898
3192
  {
2899
3193
  value: "nowrap",
2900
- label: __21("No wrap", "elementor"),
2901
- renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(ArrowRightIcon2, { fontSize: size }),
3194
+ label: __24("No wrap", "elementor"),
3195
+ renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(ArrowRightIcon2, { fontSize: size }),
2902
3196
  showTooltip: true
2903
3197
  },
2904
3198
  {
2905
3199
  value: "wrap",
2906
- label: __21("Wrap", "elementor"),
2907
- renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(ArrowBackIcon, { fontSize: size }),
3200
+ label: __24("Wrap", "elementor"),
3201
+ renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(ArrowBackIcon, { fontSize: size }),
2908
3202
  showTooltip: true
2909
3203
  },
2910
3204
  {
2911
3205
  value: "wrap-reverse",
2912
- label: __21("Reversed wrap", "elementor"),
2913
- renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(ArrowForwardIcon, { fontSize: size }),
3206
+ label: __24("Reversed wrap", "elementor"),
3207
+ renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(ArrowForwardIcon, { fontSize: size }),
2914
3208
  showTooltip: true
2915
3209
  }
2916
3210
  ];
2917
3211
  var WrapField = () => {
2918
3212
  const { isSiteRtl } = useDirection();
2919
- return /* @__PURE__ */ React44.createElement(DirectionProvider8, { rtl: isSiteRtl }, /* @__PURE__ */ React44.createElement(ThemeProvider8, null, /* @__PURE__ */ React44.createElement(StylesField, { bind: "flex-wrap" }, /* @__PURE__ */ React44.createElement(Grid8, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React44.createElement(Grid8, { item: true, xs: 6 }, /* @__PURE__ */ React44.createElement(ControlLabel, null, __21("Wrap", "elementor"))), /* @__PURE__ */ React44.createElement(Grid8, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React44.createElement(ToggleControl7, { options: options5 }))))));
3213
+ return /* @__PURE__ */ React49.createElement(DirectionProvider8, { rtl: isSiteRtl }, /* @__PURE__ */ React49.createElement(ThemeProvider8, null, /* @__PURE__ */ React49.createElement(StylesField, { bind: "flex-wrap" }, /* @__PURE__ */ React49.createElement(Grid8, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React49.createElement(Grid8, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(ControlLabel, null, __24("Wrap", "elementor"))), /* @__PURE__ */ React49.createElement(Grid8, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React49.createElement(ToggleControl7, { options: options5 }))))));
2920
3214
  };
2921
3215
 
2922
3216
  // src/components/style-sections/layout-section/layout-section.tsx
@@ -2928,13 +3222,13 @@ var LayoutSection = () => {
2928
3222
  const parent = useParentElement(element.id);
2929
3223
  const parentStyle = useComputedStyle(parent?.id || null);
2930
3224
  const parentStyleDirection = parentStyle?.flexDirection ?? "row";
2931
- return /* @__PURE__ */ React45.createElement(SectionContent, null, /* @__PURE__ */ React45.createElement(DisplayField, null), isDisplayFlex && /* @__PURE__ */ React45.createElement(FlexFields, null), "flex" === parentStyle?.display && /* @__PURE__ */ React45.createElement(FlexChildFields, { parentStyleDirection }));
3225
+ return /* @__PURE__ */ React50.createElement(SectionContent, null, /* @__PURE__ */ React50.createElement(DisplayField, null), isDisplayFlex && /* @__PURE__ */ React50.createElement(FlexFields, null), "flex" === parentStyle?.display && /* @__PURE__ */ React50.createElement(FlexChildFields, { parentStyleDirection }));
2932
3226
  };
2933
3227
  var FlexFields = () => {
2934
3228
  const [flexWrap] = useStylesField("flex-wrap");
2935
- return /* @__PURE__ */ React45.createElement(React45.Fragment, null, /* @__PURE__ */ React45.createElement(FlexDirectionField, null), /* @__PURE__ */ React45.createElement(JustifyContentField, null), /* @__PURE__ */ React45.createElement(AlignItemsField, null), /* @__PURE__ */ React45.createElement(PanelDivider, null), /* @__PURE__ */ React45.createElement(GapControlField, null), /* @__PURE__ */ React45.createElement(WrapField, null), ["wrap", "wrap-reverse"].includes(flexWrap?.value) && /* @__PURE__ */ React45.createElement(AlignContentField, null));
3229
+ return /* @__PURE__ */ React50.createElement(React50.Fragment, null, /* @__PURE__ */ React50.createElement(FlexDirectionField, null), /* @__PURE__ */ React50.createElement(JustifyContentField, null), /* @__PURE__ */ React50.createElement(AlignItemsField, null), /* @__PURE__ */ React50.createElement(PanelDivider, null), /* @__PURE__ */ React50.createElement(GapControlField, null), /* @__PURE__ */ React50.createElement(WrapField, null), ["wrap", "wrap-reverse"].includes(flexWrap?.value) && /* @__PURE__ */ React50.createElement(AlignContentField, null));
2936
3230
  };
2937
- var FlexChildFields = ({ parentStyleDirection }) => /* @__PURE__ */ React45.createElement(React45.Fragment, null, /* @__PURE__ */ React45.createElement(PanelDivider, null), /* @__PURE__ */ React45.createElement(ControlFormLabel3, null, __22("Flex child", "elementor")), /* @__PURE__ */ React45.createElement(AlignSelfChild, { parentStyleDirection }), /* @__PURE__ */ React45.createElement(FlexOrderField, null), /* @__PURE__ */ React45.createElement(FlexSizeField, null));
3231
+ var FlexChildFields = ({ parentStyleDirection }) => /* @__PURE__ */ React50.createElement(React50.Fragment, null, /* @__PURE__ */ React50.createElement(PanelDivider, null), /* @__PURE__ */ React50.createElement(ControlFormLabel3, null, __25("Flex child", "elementor")), /* @__PURE__ */ React50.createElement(AlignSelfChild, { parentStyleDirection }), /* @__PURE__ */ React50.createElement(FlexOrderField, null), /* @__PURE__ */ React50.createElement(FlexSizeField, null));
2938
3232
  var shouldDisplayFlexFields = (display, local) => {
2939
3233
  const value = display?.value ?? local?.value;
2940
3234
  if (!value) {
@@ -2944,66 +3238,66 @@ var shouldDisplayFlexFields = (display, local) => {
2944
3238
  };
2945
3239
 
2946
3240
  // src/components/style-sections/position-section/position-section.tsx
2947
- import * as React50 from "react";
2948
- import { isExperimentActive as isExperimentActive6 } from "@elementor/editor-v1-adapters";
3241
+ import * as React55 from "react";
3242
+ import { isExperimentActive as isExperimentActive7 } from "@elementor/editor-v1-adapters";
2949
3243
  import { useSessionStorage } from "@elementor/session";
2950
3244
 
2951
3245
  // src/components/style-sections/position-section/dimensions-field.tsx
2952
- import * as React46 from "react";
3246
+ import * as React51 from "react";
2953
3247
  import { SizeControl as SizeControl3 } from "@elementor/editor-controls";
2954
3248
  import { SideBottomIcon as SideBottomIcon2, SideLeftIcon as SideLeftIcon2, SideRightIcon as SideRightIcon2, SideTopIcon as SideTopIcon2 } from "@elementor/icons";
2955
- import { Grid as Grid9, Stack as Stack13, withDirection as withDirection8 } from "@elementor/ui";
2956
- import { __ as __23 } from "@wordpress/i18n";
3249
+ import { Grid as Grid9, Stack as Stack14, withDirection as withDirection8 } from "@elementor/ui";
3250
+ import { __ as __26 } from "@wordpress/i18n";
2957
3251
  var InlineStartIcon2 = withDirection8(SideLeftIcon2);
2958
3252
  var InlineEndIcon2 = withDirection8(SideRightIcon2);
2959
3253
  var sideIcons = {
2960
- "inset-block-start": /* @__PURE__ */ React46.createElement(SideTopIcon2, { fontSize: "tiny" }),
2961
- "inset-block-end": /* @__PURE__ */ React46.createElement(SideBottomIcon2, { fontSize: "tiny" }),
2962
- "inset-inline-start": /* @__PURE__ */ React46.createElement(RotatedIcon, { icon: InlineStartIcon2, size: "tiny" }),
2963
- "inset-inline-end": /* @__PURE__ */ React46.createElement(RotatedIcon, { icon: InlineEndIcon2, size: "tiny" })
3254
+ "inset-block-start": /* @__PURE__ */ React51.createElement(SideTopIcon2, { fontSize: "tiny" }),
3255
+ "inset-block-end": /* @__PURE__ */ React51.createElement(SideBottomIcon2, { fontSize: "tiny" }),
3256
+ "inset-inline-start": /* @__PURE__ */ React51.createElement(RotatedIcon, { icon: InlineStartIcon2, size: "tiny" }),
3257
+ "inset-inline-end": /* @__PURE__ */ React51.createElement(RotatedIcon, { icon: InlineEndIcon2, size: "tiny" })
2964
3258
  };
2965
- var getInlineStartLabel = (isSiteRtl) => isSiteRtl ? __23("Right", "elementor") : __23("Left", "elementor");
2966
- var getInlineEndLabel = (isSiteRtl) => isSiteRtl ? __23("Left", "elementor") : __23("Right", "elementor");
3259
+ var getInlineStartLabel = (isSiteRtl) => isSiteRtl ? __26("Right", "elementor") : __26("Left", "elementor");
3260
+ var getInlineEndLabel = (isSiteRtl) => isSiteRtl ? __26("Left", "elementor") : __26("Right", "elementor");
2967
3261
  var DimensionsField = () => {
2968
3262
  const { isSiteRtl } = useDirection();
2969
- return /* @__PURE__ */ React46.createElement(React46.Fragment, null, /* @__PURE__ */ React46.createElement(Stack13, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React46.createElement(DimensionField, { side: "inset-block-start", label: __23("Top", "elementor") }), /* @__PURE__ */ React46.createElement(DimensionField, { side: "inset-inline-end", label: getInlineEndLabel(isSiteRtl) })), /* @__PURE__ */ React46.createElement(Stack13, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React46.createElement(DimensionField, { side: "inset-block-end", label: __23("Bottom", "elementor") }), /* @__PURE__ */ React46.createElement(DimensionField, { side: "inset-inline-start", label: getInlineStartLabel(isSiteRtl) })));
3263
+ return /* @__PURE__ */ React51.createElement(React51.Fragment, null, /* @__PURE__ */ React51.createElement(Stack14, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React51.createElement(DimensionField, { side: "inset-block-start", label: __26("Top", "elementor") }), /* @__PURE__ */ React51.createElement(DimensionField, { side: "inset-inline-end", label: getInlineEndLabel(isSiteRtl) })), /* @__PURE__ */ React51.createElement(Stack14, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React51.createElement(DimensionField, { side: "inset-block-end", label: __26("Bottom", "elementor") }), /* @__PURE__ */ React51.createElement(DimensionField, { side: "inset-inline-start", label: getInlineStartLabel(isSiteRtl) })));
2970
3264
  };
2971
3265
  var DimensionField = ({ side, label }) => {
2972
- return /* @__PURE__ */ React46.createElement(Grid9, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React46.createElement(Grid9, { item: true, xs: 12 }, /* @__PURE__ */ React46.createElement(ControlLabel, null, label)), /* @__PURE__ */ React46.createElement(Grid9, { item: true, xs: 12 }, /* @__PURE__ */ React46.createElement(StylesField, { bind: side }, /* @__PURE__ */ React46.createElement(SizeControl3, { startIcon: sideIcons[side], extendedValues: ["auto"] }))));
3266
+ return /* @__PURE__ */ React51.createElement(Grid9, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React51.createElement(Grid9, { item: true, xs: 12 }, /* @__PURE__ */ React51.createElement(ControlLabel, null, label)), /* @__PURE__ */ React51.createElement(Grid9, { item: true, xs: 12 }, /* @__PURE__ */ React51.createElement(StylesField, { bind: side }, /* @__PURE__ */ React51.createElement(SizeControl3, { startIcon: sideIcons[side], extendedValues: ["auto"] }))));
2973
3267
  };
2974
3268
 
2975
3269
  // src/components/style-sections/position-section/offset-field.tsx
2976
- import * as React47 from "react";
3270
+ import * as React52 from "react";
2977
3271
  import { SizeControl as SizeControl4 } from "@elementor/editor-controls";
2978
3272
  import { Grid as Grid10 } from "@elementor/ui";
2979
- import { __ as __24 } from "@wordpress/i18n";
3273
+ import { __ as __27 } from "@wordpress/i18n";
2980
3274
  var OffsetField = () => {
2981
- return /* @__PURE__ */ React47.createElement(StylesField, { bind: "scroll-margin-top" }, /* @__PURE__ */ React47.createElement(Grid10, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React47.createElement(Grid10, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(ControlLabel, null, __24("Anchor offset", "elementor"))), /* @__PURE__ */ React47.createElement(Grid10, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(SizeControl4, { units: ["px", "em", "rem", "vw", "vh"] }))));
3275
+ return /* @__PURE__ */ React52.createElement(StylesField, { bind: "scroll-margin-top" }, /* @__PURE__ */ React52.createElement(Grid10, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React52.createElement(Grid10, { item: true, xs: 6 }, /* @__PURE__ */ React52.createElement(ControlLabel, null, __27("Anchor offset", "elementor"))), /* @__PURE__ */ React52.createElement(Grid10, { item: true, xs: 6 }, /* @__PURE__ */ React52.createElement(SizeControl4, { units: ["px", "em", "rem", "vw", "vh"] }))));
2982
3276
  };
2983
3277
 
2984
3278
  // src/components/style-sections/position-section/position-field.tsx
2985
- import * as React48 from "react";
3279
+ import * as React53 from "react";
2986
3280
  import { SelectControl as SelectControl3 } from "@elementor/editor-controls";
2987
3281
  import { Grid as Grid11 } from "@elementor/ui";
2988
- import { __ as __25 } from "@wordpress/i18n";
3282
+ import { __ as __28 } from "@wordpress/i18n";
2989
3283
  var positionOptions = [
2990
- { label: __25("Static", "elementor"), value: "static" },
2991
- { label: __25("Relative", "elementor"), value: "relative" },
2992
- { label: __25("Absolute", "elementor"), value: "absolute" },
2993
- { label: __25("Fixed", "elementor"), value: "fixed" },
2994
- { label: __25("Sticky", "elementor"), value: "sticky" }
3284
+ { label: __28("Static", "elementor"), value: "static" },
3285
+ { label: __28("Relative", "elementor"), value: "relative" },
3286
+ { label: __28("Absolute", "elementor"), value: "absolute" },
3287
+ { label: __28("Fixed", "elementor"), value: "fixed" },
3288
+ { label: __28("Sticky", "elementor"), value: "sticky" }
2995
3289
  ];
2996
3290
  var PositionField = ({ onChange }) => {
2997
- return /* @__PURE__ */ React48.createElement(StylesField, { bind: "position" }, /* @__PURE__ */ React48.createElement(Grid11, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React48.createElement(Grid11, { item: true, xs: 6 }, /* @__PURE__ */ React48.createElement(ControlLabel, null, __25("Position", "elementor"))), /* @__PURE__ */ React48.createElement(Grid11, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React48.createElement(SelectControl3, { options: positionOptions, onChange }))));
3291
+ return /* @__PURE__ */ React53.createElement(StylesField, { bind: "position" }, /* @__PURE__ */ React53.createElement(Grid11, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React53.createElement(Grid11, { item: true, xs: 6 }, /* @__PURE__ */ React53.createElement(ControlLabel, null, __28("Position", "elementor"))), /* @__PURE__ */ React53.createElement(Grid11, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React53.createElement(SelectControl3, { options: positionOptions, onChange }))));
2998
3292
  };
2999
3293
 
3000
3294
  // src/components/style-sections/position-section/z-index-field.tsx
3001
- import * as React49 from "react";
3295
+ import * as React54 from "react";
3002
3296
  import { NumberControl as NumberControl3 } from "@elementor/editor-controls";
3003
3297
  import { Grid as Grid12 } from "@elementor/ui";
3004
- import { __ as __26 } from "@wordpress/i18n";
3298
+ import { __ as __29 } from "@wordpress/i18n";
3005
3299
  var ZIndexField = () => {
3006
- return /* @__PURE__ */ React49.createElement(StylesField, { bind: "z-index" }, /* @__PURE__ */ React49.createElement(Grid12, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React49.createElement(Grid12, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(ControlLabel, null, __26("Z-index", "elementor"))), /* @__PURE__ */ React49.createElement(Grid12, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(NumberControl3, null))));
3300
+ return /* @__PURE__ */ React54.createElement(StylesField, { bind: "z-index" }, /* @__PURE__ */ React54.createElement(Grid12, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React54.createElement(Grid12, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(ControlLabel, null, __29("Z-index", "elementor"))), /* @__PURE__ */ React54.createElement(Grid12, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(NumberControl3, null))));
3007
3301
  };
3008
3302
 
3009
3303
  // src/components/style-sections/position-section/position-section.tsx
@@ -3016,7 +3310,7 @@ var PositionSection = () => {
3016
3310
  "inset-inline-end"
3017
3311
  ]);
3018
3312
  const [dimensionsValuesFromHistory, updateDimensionsHistory, clearDimensionsHistory] = usePersistDimensions();
3019
- const isCssIdFeatureActive = isExperimentActive6("e_v_3_30");
3313
+ const isCssIdFeatureActive = isExperimentActive7("e_v_3_30");
3020
3314
  const onPositionChange = (newPosition, previousPosition) => {
3021
3315
  if (newPosition === "static") {
3022
3316
  if (dimensionsValues) {
@@ -3036,7 +3330,7 @@ var PositionSection = () => {
3036
3330
  }
3037
3331
  };
3038
3332
  const isNotStatic = positionValue && positionValue?.value !== "static";
3039
- return /* @__PURE__ */ React50.createElement(SectionContent, null, /* @__PURE__ */ React50.createElement(PositionField, { onChange: onPositionChange }), isNotStatic ? /* @__PURE__ */ React50.createElement(React50.Fragment, null, /* @__PURE__ */ React50.createElement(DimensionsField, null), /* @__PURE__ */ React50.createElement(ZIndexField, null)) : null, isCssIdFeatureActive && /* @__PURE__ */ React50.createElement(React50.Fragment, null, /* @__PURE__ */ React50.createElement(PanelDivider, null), /* @__PURE__ */ React50.createElement(OffsetField, null)));
3333
+ return /* @__PURE__ */ React55.createElement(SectionContent, null, /* @__PURE__ */ React55.createElement(PositionField, { onChange: onPositionChange }), isNotStatic ? /* @__PURE__ */ React55.createElement(React55.Fragment, null, /* @__PURE__ */ React55.createElement(DimensionsField, null), /* @__PURE__ */ React55.createElement(ZIndexField, null)) : null, isCssIdFeatureActive && /* @__PURE__ */ React55.createElement(React55.Fragment, null, /* @__PURE__ */ React55.createElement(PanelDivider, null), /* @__PURE__ */ React55.createElement(OffsetField, null)));
3040
3334
  };
3041
3335
  var usePersistDimensions = () => {
3042
3336
  const { id: styleDefID, meta } = useStyle();
@@ -3046,23 +3340,23 @@ var usePersistDimensions = () => {
3046
3340
  };
3047
3341
 
3048
3342
  // src/components/style-sections/size-section/size-section.tsx
3049
- import * as React55 from "react";
3343
+ import * as React60 from "react";
3050
3344
  import { AspectRatioControl, SizeControl as SizeControl5 } from "@elementor/editor-controls";
3051
- import { isExperimentActive as isExperimentActive7 } from "@elementor/editor-v1-adapters";
3052
- import { Grid as Grid16, Stack as Stack15 } from "@elementor/ui";
3053
- import { __ as __31 } from "@wordpress/i18n";
3345
+ import { isExperimentActive as isExperimentActive8 } from "@elementor/editor-v1-adapters";
3346
+ import { Grid as Grid16, Stack as Stack16 } from "@elementor/ui";
3347
+ import { __ as __34 } from "@wordpress/i18n";
3054
3348
 
3055
3349
  // src/components/collapsible-content.tsx
3056
- import * as React51 from "react";
3350
+ import * as React56 from "react";
3057
3351
  import { useState as useState11 } from "react";
3058
- import { Button, Collapse as Collapse3, Stack as Stack14 } from "@elementor/ui";
3059
- import { __ as __27 } from "@wordpress/i18n";
3352
+ import { Button, Collapse as Collapse3, Stack as Stack15 } from "@elementor/ui";
3353
+ import { __ as __30 } from "@wordpress/i18n";
3060
3354
  var CollapsibleContent = ({ children, defaultOpen = false }) => {
3061
3355
  const [open, setOpen] = useState11(defaultOpen);
3062
3356
  const handleToggle = () => {
3063
3357
  setOpen((prevOpen) => !prevOpen);
3064
3358
  };
3065
- return /* @__PURE__ */ React51.createElement(Stack14, null, /* @__PURE__ */ React51.createElement(
3359
+ return /* @__PURE__ */ React56.createElement(Stack15, null, /* @__PURE__ */ React56.createElement(
3066
3360
  Button,
3067
3361
  {
3068
3362
  fullWidth: true,
@@ -3070,77 +3364,77 @@ var CollapsibleContent = ({ children, defaultOpen = false }) => {
3070
3364
  color: "secondary",
3071
3365
  variant: "outlined",
3072
3366
  onClick: handleToggle,
3073
- endIcon: /* @__PURE__ */ React51.createElement(CollapseIcon, { open }),
3367
+ endIcon: /* @__PURE__ */ React56.createElement(CollapseIcon, { open }),
3074
3368
  sx: { my: 0.5 }
3075
3369
  },
3076
- open ? __27("Show less", "elementor") : __27("Show more", "elementor")
3077
- ), /* @__PURE__ */ React51.createElement(Collapse3, { in: open, timeout: "auto", unmountOnExit: true }, children));
3370
+ open ? __30("Show less", "elementor") : __30("Show more", "elementor")
3371
+ ), /* @__PURE__ */ React56.createElement(Collapse3, { in: open, timeout: "auto", unmountOnExit: true }, children));
3078
3372
  };
3079
3373
 
3080
3374
  // src/components/style-sections/size-section/object-fit-field.tsx
3081
- import * as React52 from "react";
3375
+ import * as React57 from "react";
3082
3376
  import { SelectControl as SelectControl4 } from "@elementor/editor-controls";
3083
3377
  import { Grid as Grid13 } from "@elementor/ui";
3084
- import { __ as __28 } from "@wordpress/i18n";
3378
+ import { __ as __31 } from "@wordpress/i18n";
3085
3379
  var positionOptions2 = [
3086
- { label: __28("Fill", "elementor"), value: "fill" },
3087
- { label: __28("Cover", "elementor"), value: "cover" },
3088
- { label: __28("Contain", "elementor"), value: "contain" },
3089
- { label: __28("None", "elementor"), value: "none" },
3090
- { label: __28("Scale down", "elementor"), value: "scale-down" }
3380
+ { label: __31("Fill", "elementor"), value: "fill" },
3381
+ { label: __31("Cover", "elementor"), value: "cover" },
3382
+ { label: __31("Contain", "elementor"), value: "contain" },
3383
+ { label: __31("None", "elementor"), value: "none" },
3384
+ { label: __31("Scale down", "elementor"), value: "scale-down" }
3091
3385
  ];
3092
3386
  var ObjectFitField = ({ onChange }) => {
3093
- return /* @__PURE__ */ React52.createElement(StylesField, { bind: "object-fit" }, /* @__PURE__ */ React52.createElement(Grid13, { container: true, pt: 2, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React52.createElement(Grid13, { item: true, xs: 6 }, /* @__PURE__ */ React52.createElement(ControlLabel, null, __28("Object fit", "elementor"))), /* @__PURE__ */ React52.createElement(Grid13, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React52.createElement(SelectControl4, { options: positionOptions2, onChange }))));
3387
+ return /* @__PURE__ */ React57.createElement(StylesField, { bind: "object-fit" }, /* @__PURE__ */ React57.createElement(Grid13, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React57.createElement(Grid13, { item: true, xs: 6 }, /* @__PURE__ */ React57.createElement(ControlLabel, null, __31("Object fit", "elementor"))), /* @__PURE__ */ React57.createElement(Grid13, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React57.createElement(SelectControl4, { options: positionOptions2, onChange }))));
3094
3388
  };
3095
3389
 
3096
3390
  // src/components/style-sections/size-section/object-position-field.tsx
3097
- import * as React53 from "react";
3391
+ import * as React58 from "react";
3098
3392
  import { SelectControl as SelectControl5 } from "@elementor/editor-controls";
3099
3393
  import { Grid as Grid14 } from "@elementor/ui";
3100
- import { __ as __29 } from "@wordpress/i18n";
3394
+ import { __ as __32 } from "@wordpress/i18n";
3101
3395
  var positionOptions3 = [
3102
- { label: __29("Center center", "elementor"), value: "center center" },
3103
- { label: __29("Center left", "elementor"), value: "center left" },
3104
- { label: __29("Center right", "elementor"), value: "center right" },
3105
- { label: __29("Top center", "elementor"), value: "top center" },
3106
- { label: __29("Top left", "elementor"), value: "top left" },
3107
- { label: __29("Top right", "elementor"), value: "top right" },
3108
- { label: __29("Bottom center", "elementor"), value: "bottom center" },
3109
- { label: __29("Bottom left", "elementor"), value: "bottom left" },
3110
- { label: __29("Bottom right", "elementor"), value: "bottom right" }
3396
+ { label: __32("Center center", "elementor"), value: "center center" },
3397
+ { label: __32("Center left", "elementor"), value: "center left" },
3398
+ { label: __32("Center right", "elementor"), value: "center right" },
3399
+ { label: __32("Top center", "elementor"), value: "top center" },
3400
+ { label: __32("Top left", "elementor"), value: "top left" },
3401
+ { label: __32("Top right", "elementor"), value: "top right" },
3402
+ { label: __32("Bottom center", "elementor"), value: "bottom center" },
3403
+ { label: __32("Bottom left", "elementor"), value: "bottom left" },
3404
+ { label: __32("Bottom right", "elementor"), value: "bottom right" }
3111
3405
  ];
3112
3406
  var ObjectPositionField = ({ onChange }) => {
3113
- return /* @__PURE__ */ React53.createElement(StylesField, { bind: "object-position" }, /* @__PURE__ */ React53.createElement(Grid14, { container: true, pt: 2, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React53.createElement(Grid14, { item: true, xs: 6 }, /* @__PURE__ */ React53.createElement(ControlLabel, null, __29("Object position", "elementor"))), /* @__PURE__ */ React53.createElement(Grid14, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React53.createElement(SelectControl5, { options: positionOptions3, onChange }))));
3407
+ return /* @__PURE__ */ React58.createElement(StylesField, { bind: "object-position" }, /* @__PURE__ */ React58.createElement(Grid14, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React58.createElement(Grid14, { item: true, xs: 6 }, /* @__PURE__ */ React58.createElement(ControlLabel, null, __32("Object position", "elementor"))), /* @__PURE__ */ React58.createElement(Grid14, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React58.createElement(SelectControl5, { options: positionOptions3, onChange }))));
3114
3408
  };
3115
3409
 
3116
3410
  // src/components/style-sections/size-section/overflow-field.tsx
3117
- import * as React54 from "react";
3411
+ import * as React59 from "react";
3118
3412
  import { ToggleControl as ToggleControl8 } from "@elementor/editor-controls";
3119
3413
  import { EyeIcon, EyeOffIcon, LetterAIcon } from "@elementor/icons";
3120
3414
  import { Grid as Grid15 } from "@elementor/ui";
3121
- import { __ as __30 } from "@wordpress/i18n";
3415
+ import { __ as __33 } from "@wordpress/i18n";
3122
3416
  var options6 = [
3123
3417
  {
3124
3418
  value: "visible",
3125
- label: __30("Visible", "elementor"),
3126
- renderContent: ({ size }) => /* @__PURE__ */ React54.createElement(EyeIcon, { fontSize: size }),
3419
+ label: __33("Visible", "elementor"),
3420
+ renderContent: ({ size }) => /* @__PURE__ */ React59.createElement(EyeIcon, { fontSize: size }),
3127
3421
  showTooltip: true
3128
3422
  },
3129
3423
  {
3130
3424
  value: "hidden",
3131
- label: __30("Hidden", "elementor"),
3132
- renderContent: ({ size }) => /* @__PURE__ */ React54.createElement(EyeOffIcon, { fontSize: size }),
3425
+ label: __33("Hidden", "elementor"),
3426
+ renderContent: ({ size }) => /* @__PURE__ */ React59.createElement(EyeOffIcon, { fontSize: size }),
3133
3427
  showTooltip: true
3134
3428
  },
3135
3429
  {
3136
3430
  value: "auto",
3137
- label: __30("Auto", "elementor"),
3138
- renderContent: ({ size }) => /* @__PURE__ */ React54.createElement(LetterAIcon, { fontSize: size }),
3431
+ label: __33("Auto", "elementor"),
3432
+ renderContent: ({ size }) => /* @__PURE__ */ React59.createElement(LetterAIcon, { fontSize: size }),
3139
3433
  showTooltip: true
3140
3434
  }
3141
3435
  ];
3142
3436
  var OverflowField = () => {
3143
- return /* @__PURE__ */ React54.createElement(StylesField, { bind: "overflow" }, /* @__PURE__ */ React54.createElement(Grid15, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React54.createElement(Grid15, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(ControlLabel, null, __30("Overflow", "elementor"))), /* @__PURE__ */ React54.createElement(Grid15, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React54.createElement(ToggleControl8, { options: options6 }))));
3437
+ return /* @__PURE__ */ React59.createElement(StylesField, { bind: "overflow" }, /* @__PURE__ */ React59.createElement(Grid15, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React59.createElement(Grid15, { item: true, xs: 6 }, /* @__PURE__ */ React59.createElement(ControlLabel, null, __33("Overflow", "elementor"))), /* @__PURE__ */ React59.createElement(Grid15, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React59.createElement(ToggleControl8, { options: options6 }))));
3144
3438
  };
3145
3439
 
3146
3440
  // src/components/style-sections/size-section/size-section.tsx
@@ -3155,78 +3449,78 @@ var SizeSection = () => {
3155
3449
  });
3156
3450
  }
3157
3451
  };
3158
- const isVersion330Active = isExperimentActive7("e_v_3_30");
3159
- return /* @__PURE__ */ React55.createElement(SectionContent, null, /* @__PURE__ */ React55.createElement(Grid16, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React55.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(SizeField, { bind: "width", label: __31("Width", "elementor"), extendedValues: ["auto"] })), /* @__PURE__ */ React55.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(SizeField, { bind: "height", label: __31("Height", "elementor"), extendedValues: ["auto"] }))), /* @__PURE__ */ React55.createElement(Grid16, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React55.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(
3452
+ const isVersion330Active = isExperimentActive8("e_v_3_30");
3453
+ return /* @__PURE__ */ React60.createElement(SectionContent, null, /* @__PURE__ */ React60.createElement(Grid16, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React60.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React60.createElement(SizeField, { bind: "width", label: __34("Width", "elementor"), extendedValues: ["auto"] })), /* @__PURE__ */ React60.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React60.createElement(SizeField, { bind: "height", label: __34("Height", "elementor"), extendedValues: ["auto"] }))), /* @__PURE__ */ React60.createElement(Grid16, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React60.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React60.createElement(
3160
3454
  SizeField,
3161
3455
  {
3162
3456
  bind: "min-width",
3163
- label: __31("Min width", "elementor"),
3457
+ label: __34("Min width", "elementor"),
3164
3458
  extendedValues: ["auto"]
3165
3459
  }
3166
- )), /* @__PURE__ */ React55.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(
3460
+ )), /* @__PURE__ */ React60.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React60.createElement(
3167
3461
  SizeField,
3168
3462
  {
3169
3463
  bind: "min-height",
3170
- label: __31("Min height", "elementor"),
3464
+ label: __34("Min height", "elementor"),
3171
3465
  extendedValues: ["auto"]
3172
3466
  }
3173
- ))), /* @__PURE__ */ React55.createElement(Grid16, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React55.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(SizeField, { bind: "max-width", label: __31("Max width", "elementor") })), /* @__PURE__ */ React55.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(SizeField, { bind: "max-height", label: __31("Max height", "elementor") }))), /* @__PURE__ */ React55.createElement(PanelDivider, null), /* @__PURE__ */ React55.createElement(Stack15, null, /* @__PURE__ */ React55.createElement(OverflowField, null)), isVersion330Active && /* @__PURE__ */ React55.createElement(Stack15, null, /* @__PURE__ */ React55.createElement(StylesField, { bind: "aspect-ratio" }, /* @__PURE__ */ React55.createElement(AspectRatioControl, { label: __31("Aspect Ratio", "elementor") }))), isVersion330Active && /* @__PURE__ */ React55.createElement(CollapsibleContent, null, /* @__PURE__ */ React55.createElement(ObjectFitField, { onChange: onFitChange }), /* @__PURE__ */ React55.createElement(Grid16, { item: true, xs: 6 }, isNotFill && /* @__PURE__ */ React55.createElement(ObjectPositionField, null))));
3467
+ ))), /* @__PURE__ */ React60.createElement(Grid16, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React60.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React60.createElement(SizeField, { bind: "max-width", label: __34("Max width", "elementor") })), /* @__PURE__ */ React60.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React60.createElement(SizeField, { bind: "max-height", label: __34("Max height", "elementor") }))), /* @__PURE__ */ React60.createElement(PanelDivider, null), /* @__PURE__ */ React60.createElement(Stack16, null, /* @__PURE__ */ React60.createElement(OverflowField, null)), isVersion330Active && /* @__PURE__ */ React60.createElement(CollapsibleContent, null, /* @__PURE__ */ React60.createElement(Stack16, { gap: 2 }, /* @__PURE__ */ React60.createElement(StylesField, { bind: "aspect-ratio" }, /* @__PURE__ */ React60.createElement(AspectRatioControl, { label: __34("Aspect Ratio", "elementor") })), /* @__PURE__ */ React60.createElement(PanelDivider, null), /* @__PURE__ */ React60.createElement(ObjectFitField, { onChange: onFitChange }), isNotFill && /* @__PURE__ */ React60.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React60.createElement(ObjectPositionField, null)))));
3174
3468
  };
3175
3469
  var SizeField = ({ label, bind, extendedValues }) => {
3176
- return /* @__PURE__ */ React55.createElement(StylesField, { bind }, /* @__PURE__ */ React55.createElement(Grid16, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React55.createElement(Grid16, { item: true, xs: 12 }, /* @__PURE__ */ React55.createElement(ControlLabel, null, label)), /* @__PURE__ */ React55.createElement(Grid16, { item: true, xs: 12 }, /* @__PURE__ */ React55.createElement(SizeControl5, { extendedValues }))));
3470
+ return /* @__PURE__ */ React60.createElement(StylesField, { bind }, /* @__PURE__ */ React60.createElement(Grid16, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React60.createElement(Grid16, { item: true, xs: 12 }, /* @__PURE__ */ React60.createElement(ControlLabel, null, label)), /* @__PURE__ */ React60.createElement(Grid16, { item: true, xs: 12 }, /* @__PURE__ */ React60.createElement(SizeControl5, { extendedValues }))));
3177
3471
  };
3178
3472
 
3179
3473
  // src/components/style-sections/spacing-section/spacing-section.tsx
3180
- import * as React56 from "react";
3474
+ import * as React61 from "react";
3181
3475
  import { LinkedDimensionsControl } from "@elementor/editor-controls";
3182
- import { __ as __32 } from "@wordpress/i18n";
3476
+ import { __ as __35 } from "@wordpress/i18n";
3183
3477
  var SpacingSection = () => {
3184
3478
  const { isSiteRtl } = useDirection();
3185
- return /* @__PURE__ */ React56.createElement(SectionContent, null, /* @__PURE__ */ React56.createElement(StylesField, { bind: "margin" }, /* @__PURE__ */ React56.createElement(
3479
+ return /* @__PURE__ */ React61.createElement(SectionContent, null, /* @__PURE__ */ React61.createElement(StylesField, { bind: "margin" }, /* @__PURE__ */ React61.createElement(
3186
3480
  LinkedDimensionsControl,
3187
3481
  {
3188
- label: __32("Margin", "elementor"),
3482
+ label: __35("Margin", "elementor"),
3189
3483
  isSiteRtl,
3190
3484
  extendedValues: ["auto"]
3191
3485
  }
3192
- )), /* @__PURE__ */ React56.createElement(PanelDivider, null), /* @__PURE__ */ React56.createElement(StylesField, { bind: "padding" }, /* @__PURE__ */ React56.createElement(LinkedDimensionsControl, { label: __32("Padding", "elementor"), isSiteRtl })));
3486
+ )), /* @__PURE__ */ React61.createElement(PanelDivider, null), /* @__PURE__ */ React61.createElement(StylesField, { bind: "padding" }, /* @__PURE__ */ React61.createElement(LinkedDimensionsControl, { label: __35("Padding", "elementor"), isSiteRtl })));
3193
3487
  };
3194
3488
 
3195
3489
  // src/components/style-sections/typography-section/typography-section.tsx
3196
- import * as React72 from "react";
3197
- import { isExperimentActive as isExperimentActive8 } from "@elementor/editor-v1-adapters";
3490
+ import * as React77 from "react";
3491
+ import { isExperimentActive as isExperimentActive9 } from "@elementor/editor-v1-adapters";
3198
3492
 
3199
3493
  // src/components/style-sections/typography-section/column-count-field.tsx
3200
- import * as React57 from "react";
3494
+ import * as React62 from "react";
3201
3495
  import { NumberControl as NumberControl4 } from "@elementor/editor-controls";
3202
3496
  import { Grid as Grid17 } from "@elementor/ui";
3203
- import { __ as __33 } from "@wordpress/i18n";
3497
+ import { __ as __36 } from "@wordpress/i18n";
3204
3498
  var ColumnCountField = () => {
3205
- return /* @__PURE__ */ React57.createElement(StylesField, { bind: "column-count" }, /* @__PURE__ */ React57.createElement(Grid17, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React57.createElement(Grid17, { item: true, xs: 6 }, /* @__PURE__ */ React57.createElement(ControlLabel, null, __33("Columns", "elementor"))), /* @__PURE__ */ React57.createElement(Grid17, { item: true, xs: 6 }, /* @__PURE__ */ React57.createElement(NumberControl4, { shouldForceInt: true, min: 0, step: 1 }))));
3499
+ return /* @__PURE__ */ React62.createElement(StylesField, { bind: "column-count" }, /* @__PURE__ */ React62.createElement(Grid17, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React62.createElement(Grid17, { item: true, xs: 6 }, /* @__PURE__ */ React62.createElement(ControlLabel, null, __36("Columns", "elementor"))), /* @__PURE__ */ React62.createElement(Grid17, { item: true, xs: 6 }, /* @__PURE__ */ React62.createElement(NumberControl4, { shouldForceInt: true, min: 0, step: 1 }))));
3206
3500
  };
3207
3501
 
3208
3502
  // src/components/style-sections/typography-section/column-gap-field.tsx
3209
- import * as React58 from "react";
3503
+ import * as React63 from "react";
3210
3504
  import { SizeControl as SizeControl6 } from "@elementor/editor-controls";
3211
3505
  import { Grid as Grid18 } from "@elementor/ui";
3212
- import { __ as __34 } from "@wordpress/i18n";
3506
+ import { __ as __37 } from "@wordpress/i18n";
3213
3507
  var ColumnGapField = () => {
3214
- return /* @__PURE__ */ React58.createElement(StylesField, { bind: "column-gap" }, /* @__PURE__ */ React58.createElement(Grid18, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React58.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React58.createElement(ControlLabel, null, __34("Column gap", "elementor"))), /* @__PURE__ */ React58.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React58.createElement(SizeControl6, null))));
3508
+ return /* @__PURE__ */ React63.createElement(StylesField, { bind: "column-gap" }, /* @__PURE__ */ React63.createElement(Grid18, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React63.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React63.createElement(ControlLabel, null, __37("Column gap", "elementor"))), /* @__PURE__ */ React63.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React63.createElement(SizeControl6, null))));
3215
3509
  };
3216
3510
 
3217
3511
  // src/components/style-sections/typography-section/font-family-field.tsx
3218
- import * as React59 from "react";
3512
+ import * as React64 from "react";
3219
3513
  import { FontFamilyControl } from "@elementor/editor-controls";
3220
3514
  import { Grid as Grid19 } from "@elementor/ui";
3221
- import { __ as __36 } from "@wordpress/i18n";
3515
+ import { __ as __39 } from "@wordpress/i18n";
3222
3516
 
3223
3517
  // src/components/style-sections/typography-section/hooks/use-font-families.ts
3224
3518
  import { useMemo as useMemo6 } from "react";
3225
- import { __ as __35 } from "@wordpress/i18n";
3519
+ import { __ as __38 } from "@wordpress/i18n";
3226
3520
  var supportedCategories = {
3227
- system: __35("System", "elementor"),
3228
- custom: __35("Custom Fonts", "elementor"),
3229
- googlefonts: __35("Google Fonts", "elementor")
3521
+ system: __38("System", "elementor"),
3522
+ custom: __38("Custom Fonts", "elementor"),
3523
+ googlefonts: __38("Google Fonts", "elementor")
3230
3524
  };
3231
3525
  var getFontFamilies = () => {
3232
3526
  const { controls } = getElementorConfig();
@@ -3263,188 +3557,188 @@ var FontFamilyField = () => {
3263
3557
  if (fontFamilies.length === 0) {
3264
3558
  return null;
3265
3559
  }
3266
- return /* @__PURE__ */ React59.createElement(StylesField, { bind: "font-family" }, /* @__PURE__ */ React59.createElement(Grid19, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React59.createElement(Grid19, { item: true, xs: 6 }, /* @__PURE__ */ React59.createElement(ControlLabel, null, __36("Font family", "elementor"))), /* @__PURE__ */ React59.createElement(Grid19, { item: true, xs: 6, sx: { minWidth: 0 } }, /* @__PURE__ */ React59.createElement(FontFamilyControl, { fontFamilies }))));
3560
+ return /* @__PURE__ */ React64.createElement(StylesField, { bind: "font-family" }, /* @__PURE__ */ React64.createElement(Grid19, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React64.createElement(Grid19, { item: true, xs: 6 }, /* @__PURE__ */ React64.createElement(ControlLabel, null, __39("Font family", "elementor"))), /* @__PURE__ */ React64.createElement(Grid19, { item: true, xs: 6, sx: { minWidth: 0 } }, /* @__PURE__ */ React64.createElement(FontFamilyControl, { fontFamilies }))));
3267
3561
  };
3268
3562
 
3269
3563
  // src/components/style-sections/typography-section/font-size-field.tsx
3270
- import * as React60 from "react";
3564
+ import * as React65 from "react";
3271
3565
  import { SizeControl as SizeControl7 } from "@elementor/editor-controls";
3272
3566
  import { Grid as Grid20 } from "@elementor/ui";
3273
- import { __ as __37 } from "@wordpress/i18n";
3567
+ import { __ as __40 } from "@wordpress/i18n";
3274
3568
  var FontSizeField = () => {
3275
- return /* @__PURE__ */ React60.createElement(StylesField, { bind: "font-size" }, /* @__PURE__ */ React60.createElement(Grid20, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React60.createElement(Grid20, { item: true, xs: 6 }, /* @__PURE__ */ React60.createElement(ControlLabel, null, __37("Font size", "elementor"))), /* @__PURE__ */ React60.createElement(Grid20, { item: true, xs: 6 }, /* @__PURE__ */ React60.createElement(SizeControl7, null))));
3569
+ return /* @__PURE__ */ React65.createElement(StylesField, { bind: "font-size" }, /* @__PURE__ */ React65.createElement(Grid20, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React65.createElement(Grid20, { item: true, xs: 6 }, /* @__PURE__ */ React65.createElement(ControlLabel, null, __40("Font size", "elementor"))), /* @__PURE__ */ React65.createElement(Grid20, { item: true, xs: 6 }, /* @__PURE__ */ React65.createElement(SizeControl7, null))));
3276
3570
  };
3277
3571
 
3278
3572
  // src/components/style-sections/typography-section/font-style-field.tsx
3279
- import * as React61 from "react";
3573
+ import * as React66 from "react";
3280
3574
  import { ControlFormLabel as ControlFormLabel4, ToggleControl as ToggleControl9 } from "@elementor/editor-controls";
3281
3575
  import { ItalicIcon, MinusIcon as MinusIcon2 } from "@elementor/icons";
3282
3576
  import { Grid as Grid21 } from "@elementor/ui";
3283
- import { __ as __38 } from "@wordpress/i18n";
3577
+ import { __ as __41 } from "@wordpress/i18n";
3284
3578
  var options7 = [
3285
3579
  {
3286
3580
  value: "normal",
3287
- label: __38("Normal", "elementor"),
3288
- renderContent: ({ size }) => /* @__PURE__ */ React61.createElement(MinusIcon2, { fontSize: size }),
3581
+ label: __41("Normal", "elementor"),
3582
+ renderContent: ({ size }) => /* @__PURE__ */ React66.createElement(MinusIcon2, { fontSize: size }),
3289
3583
  showTooltip: true
3290
3584
  },
3291
3585
  {
3292
3586
  value: "italic",
3293
- label: __38("Italic", "elementor"),
3294
- renderContent: ({ size }) => /* @__PURE__ */ React61.createElement(ItalicIcon, { fontSize: size }),
3587
+ label: __41("Italic", "elementor"),
3588
+ renderContent: ({ size }) => /* @__PURE__ */ React66.createElement(ItalicIcon, { fontSize: size }),
3295
3589
  showTooltip: true
3296
3590
  }
3297
3591
  ];
3298
- var FontStyleField = () => /* @__PURE__ */ React61.createElement(StylesField, { bind: "font-style" }, /* @__PURE__ */ React61.createElement(Grid21, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React61.createElement(Grid21, { item: true, xs: 6 }, /* @__PURE__ */ React61.createElement(ControlFormLabel4, null, __38("Font style", "elementor"))), /* @__PURE__ */ React61.createElement(Grid21, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React61.createElement(ToggleControl9, { options: options7 }))));
3592
+ var FontStyleField = () => /* @__PURE__ */ React66.createElement(StylesField, { bind: "font-style" }, /* @__PURE__ */ React66.createElement(Grid21, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React66.createElement(Grid21, { item: true, xs: 6 }, /* @__PURE__ */ React66.createElement(ControlFormLabel4, null, __41("Font style", "elementor"))), /* @__PURE__ */ React66.createElement(Grid21, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React66.createElement(ToggleControl9, { options: options7 }))));
3299
3593
 
3300
3594
  // src/components/style-sections/typography-section/font-weight-field.tsx
3301
- import * as React62 from "react";
3595
+ import * as React67 from "react";
3302
3596
  import { SelectControl as SelectControl6 } from "@elementor/editor-controls";
3303
3597
  import { Grid as Grid22 } from "@elementor/ui";
3304
- import { __ as __39 } from "@wordpress/i18n";
3598
+ import { __ as __42 } from "@wordpress/i18n";
3305
3599
  var fontWeightOptions = [
3306
- { value: "100", label: __39("100 - Thin", "elementor") },
3307
- { value: "200", label: __39("200 - Extra light", "elementor") },
3308
- { value: "300", label: __39("300 - Light", "elementor") },
3309
- { value: "400", label: __39("400 - Normal", "elementor") },
3310
- { value: "500", label: __39("500 - Medium", "elementor") },
3311
- { value: "600", label: __39("600 - Semi bold", "elementor") },
3312
- { value: "700", label: __39("700 - Bold", "elementor") },
3313
- { value: "800", label: __39("800 - Extra bold", "elementor") },
3314
- { value: "900", label: __39("900 - Black", "elementor") }
3600
+ { value: "100", label: __42("100 - Thin", "elementor") },
3601
+ { value: "200", label: __42("200 - Extra light", "elementor") },
3602
+ { value: "300", label: __42("300 - Light", "elementor") },
3603
+ { value: "400", label: __42("400 - Normal", "elementor") },
3604
+ { value: "500", label: __42("500 - Medium", "elementor") },
3605
+ { value: "600", label: __42("600 - Semi bold", "elementor") },
3606
+ { value: "700", label: __42("700 - Bold", "elementor") },
3607
+ { value: "800", label: __42("800 - Extra bold", "elementor") },
3608
+ { value: "900", label: __42("900 - Black", "elementor") }
3315
3609
  ];
3316
3610
  var FontWeightField = () => {
3317
- return /* @__PURE__ */ React62.createElement(StylesField, { bind: "font-weight" }, /* @__PURE__ */ React62.createElement(Grid22, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React62.createElement(Grid22, { item: true, xs: 6 }, /* @__PURE__ */ React62.createElement(ControlLabel, null, __39("Font weight", "elementor"))), /* @__PURE__ */ React62.createElement(Grid22, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React62.createElement(SelectControl6, { options: fontWeightOptions }))));
3611
+ return /* @__PURE__ */ React67.createElement(StylesField, { bind: "font-weight" }, /* @__PURE__ */ React67.createElement(Grid22, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React67.createElement(Grid22, { item: true, xs: 6 }, /* @__PURE__ */ React67.createElement(ControlLabel, null, __42("Font weight", "elementor"))), /* @__PURE__ */ React67.createElement(Grid22, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React67.createElement(SelectControl6, { options: fontWeightOptions }))));
3318
3612
  };
3319
3613
 
3320
3614
  // src/components/style-sections/typography-section/letter-spacing-field.tsx
3321
- import * as React63 from "react";
3615
+ import * as React68 from "react";
3322
3616
  import { SizeControl as SizeControl8 } from "@elementor/editor-controls";
3323
3617
  import { Grid as Grid23 } from "@elementor/ui";
3324
- import { __ as __40 } from "@wordpress/i18n";
3618
+ import { __ as __43 } from "@wordpress/i18n";
3325
3619
  var LetterSpacingField = () => {
3326
- return /* @__PURE__ */ React63.createElement(StylesField, { bind: "letter-spacing" }, /* @__PURE__ */ React63.createElement(Grid23, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React63.createElement(Grid23, { item: true, xs: 6 }, /* @__PURE__ */ React63.createElement(ControlLabel, null, __40("Letter spacing", "elementor"))), /* @__PURE__ */ React63.createElement(Grid23, { item: true, xs: 6 }, /* @__PURE__ */ React63.createElement(SizeControl8, null))));
3620
+ return /* @__PURE__ */ React68.createElement(StylesField, { bind: "letter-spacing" }, /* @__PURE__ */ React68.createElement(Grid23, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React68.createElement(Grid23, { item: true, xs: 6 }, /* @__PURE__ */ React68.createElement(ControlLabel, null, __43("Letter spacing", "elementor"))), /* @__PURE__ */ React68.createElement(Grid23, { item: true, xs: 6 }, /* @__PURE__ */ React68.createElement(SizeControl8, null))));
3327
3621
  };
3328
3622
 
3329
3623
  // src/components/style-sections/typography-section/line-height-field.tsx
3330
- import * as React64 from "react";
3624
+ import * as React69 from "react";
3331
3625
  import { SizeControl as SizeControl9 } from "@elementor/editor-controls";
3332
3626
  import { Grid as Grid24 } from "@elementor/ui";
3333
- import { __ as __41 } from "@wordpress/i18n";
3627
+ import { __ as __44 } from "@wordpress/i18n";
3334
3628
  var LineHeightField = () => {
3335
- return /* @__PURE__ */ React64.createElement(StylesField, { bind: "line-height" }, /* @__PURE__ */ React64.createElement(Grid24, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React64.createElement(Grid24, { item: true, xs: 6 }, /* @__PURE__ */ React64.createElement(ControlLabel, null, __41("Line height", "elementor"))), /* @__PURE__ */ React64.createElement(Grid24, { item: true, xs: 6 }, /* @__PURE__ */ React64.createElement(SizeControl9, null))));
3629
+ return /* @__PURE__ */ React69.createElement(StylesField, { bind: "line-height" }, /* @__PURE__ */ React69.createElement(Grid24, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React69.createElement(Grid24, { item: true, xs: 6 }, /* @__PURE__ */ React69.createElement(ControlLabel, null, __44("Line height", "elementor"))), /* @__PURE__ */ React69.createElement(Grid24, { item: true, xs: 6 }, /* @__PURE__ */ React69.createElement(SizeControl9, null))));
3336
3630
  };
3337
3631
 
3338
3632
  // src/components/style-sections/typography-section/text-alignment-field.tsx
3339
- import * as React65 from "react";
3633
+ import * as React70 from "react";
3340
3634
  import { ToggleControl as ToggleControl10 } from "@elementor/editor-controls";
3341
3635
  import { AlignCenterIcon, AlignJustifiedIcon, AlignLeftIcon, AlignRightIcon } from "@elementor/icons";
3342
3636
  import { Grid as Grid25, withDirection as withDirection9 } from "@elementor/ui";
3343
- import { __ as __42 } from "@wordpress/i18n";
3637
+ import { __ as __45 } from "@wordpress/i18n";
3344
3638
  var AlignStartIcon = withDirection9(AlignLeftIcon);
3345
3639
  var AlignEndIcon = withDirection9(AlignRightIcon);
3346
3640
  var options8 = [
3347
3641
  {
3348
3642
  value: "start",
3349
- label: __42("Start", "elementor"),
3350
- renderContent: ({ size }) => /* @__PURE__ */ React65.createElement(AlignStartIcon, { fontSize: size }),
3643
+ label: __45("Start", "elementor"),
3644
+ renderContent: ({ size }) => /* @__PURE__ */ React70.createElement(AlignStartIcon, { fontSize: size }),
3351
3645
  showTooltip: true
3352
3646
  },
3353
3647
  {
3354
3648
  value: "center",
3355
- label: __42("Center", "elementor"),
3356
- renderContent: ({ size }) => /* @__PURE__ */ React65.createElement(AlignCenterIcon, { fontSize: size }),
3649
+ label: __45("Center", "elementor"),
3650
+ renderContent: ({ size }) => /* @__PURE__ */ React70.createElement(AlignCenterIcon, { fontSize: size }),
3357
3651
  showTooltip: true
3358
3652
  },
3359
3653
  {
3360
3654
  value: "end",
3361
- label: __42("End", "elementor"),
3362
- renderContent: ({ size }) => /* @__PURE__ */ React65.createElement(AlignEndIcon, { fontSize: size }),
3655
+ label: __45("End", "elementor"),
3656
+ renderContent: ({ size }) => /* @__PURE__ */ React70.createElement(AlignEndIcon, { fontSize: size }),
3363
3657
  showTooltip: true
3364
3658
  },
3365
3659
  {
3366
3660
  value: "justify",
3367
- label: __42("Justify", "elementor"),
3368
- renderContent: ({ size }) => /* @__PURE__ */ React65.createElement(AlignJustifiedIcon, { fontSize: size }),
3661
+ label: __45("Justify", "elementor"),
3662
+ renderContent: ({ size }) => /* @__PURE__ */ React70.createElement(AlignJustifiedIcon, { fontSize: size }),
3369
3663
  showTooltip: true
3370
3664
  }
3371
3665
  ];
3372
3666
  var TextAlignmentField = () => {
3373
- return /* @__PURE__ */ React65.createElement(StylesField, { bind: "text-align" }, /* @__PURE__ */ React65.createElement(Grid25, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React65.createElement(Grid25, { item: true, xs: 6 }, /* @__PURE__ */ React65.createElement(ControlLabel, null, __42("Text align", "elementor"))), /* @__PURE__ */ React65.createElement(Grid25, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React65.createElement(ToggleControl10, { options: options8 }))));
3667
+ return /* @__PURE__ */ React70.createElement(StylesField, { bind: "text-align" }, /* @__PURE__ */ React70.createElement(Grid25, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React70.createElement(Grid25, { item: true, xs: 6 }, /* @__PURE__ */ React70.createElement(ControlLabel, null, __45("Text align", "elementor"))), /* @__PURE__ */ React70.createElement(Grid25, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React70.createElement(ToggleControl10, { options: options8 }))));
3374
3668
  };
3375
3669
 
3376
3670
  // src/components/style-sections/typography-section/text-color-field.tsx
3377
- import * as React66 from "react";
3671
+ import * as React71 from "react";
3378
3672
  import { ColorControl as ColorControl2 } from "@elementor/editor-controls";
3379
3673
  import { Grid as Grid26 } from "@elementor/ui";
3380
- import { __ as __43 } from "@wordpress/i18n";
3674
+ import { __ as __46 } from "@wordpress/i18n";
3381
3675
  var TextColorField = () => {
3382
- return /* @__PURE__ */ React66.createElement(StylesField, { bind: "color" }, /* @__PURE__ */ React66.createElement(Grid26, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React66.createElement(Grid26, { item: true, xs: 6 }, /* @__PURE__ */ React66.createElement(ControlLabel, null, __43("Text color", "elementor"))), /* @__PURE__ */ React66.createElement(Grid26, { item: true, xs: 6 }, /* @__PURE__ */ React66.createElement(ColorControl2, null))));
3676
+ return /* @__PURE__ */ React71.createElement(StylesField, { bind: "color" }, /* @__PURE__ */ React71.createElement(Grid26, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React71.createElement(Grid26, { item: true, xs: 6 }, /* @__PURE__ */ React71.createElement(ControlLabel, null, __46("Text color", "elementor"))), /* @__PURE__ */ React71.createElement(Grid26, { item: true, xs: 6 }, /* @__PURE__ */ React71.createElement(ColorControl2, null))));
3383
3677
  };
3384
3678
 
3385
3679
  // src/components/style-sections/typography-section/text-decoration-field.tsx
3386
- import * as React67 from "react";
3680
+ import * as React72 from "react";
3387
3681
  import { ToggleControl as ToggleControl11 } from "@elementor/editor-controls";
3388
3682
  import { MinusIcon as MinusIcon3, OverlineIcon, StrikethroughIcon, UnderlineIcon } from "@elementor/icons";
3389
3683
  import { Grid as Grid27 } from "@elementor/ui";
3390
- import { __ as __44 } from "@wordpress/i18n";
3684
+ import { __ as __47 } from "@wordpress/i18n";
3391
3685
  var options9 = [
3392
3686
  {
3393
3687
  value: "none",
3394
- label: __44("None", "elementor"),
3395
- renderContent: ({ size }) => /* @__PURE__ */ React67.createElement(MinusIcon3, { fontSize: size }),
3688
+ label: __47("None", "elementor"),
3689
+ renderContent: ({ size }) => /* @__PURE__ */ React72.createElement(MinusIcon3, { fontSize: size }),
3396
3690
  showTooltip: true,
3397
3691
  exclusive: true
3398
3692
  },
3399
3693
  {
3400
3694
  value: "underline",
3401
- label: __44("Underline", "elementor"),
3402
- renderContent: ({ size }) => /* @__PURE__ */ React67.createElement(UnderlineIcon, { fontSize: size }),
3695
+ label: __47("Underline", "elementor"),
3696
+ renderContent: ({ size }) => /* @__PURE__ */ React72.createElement(UnderlineIcon, { fontSize: size }),
3403
3697
  showTooltip: true
3404
3698
  },
3405
3699
  {
3406
3700
  value: "line-through",
3407
- label: __44("Line-through", "elementor"),
3408
- renderContent: ({ size }) => /* @__PURE__ */ React67.createElement(StrikethroughIcon, { fontSize: size }),
3701
+ label: __47("Line-through", "elementor"),
3702
+ renderContent: ({ size }) => /* @__PURE__ */ React72.createElement(StrikethroughIcon, { fontSize: size }),
3409
3703
  showTooltip: true
3410
3704
  },
3411
3705
  {
3412
3706
  value: "overline",
3413
- label: __44("Overline", "elementor"),
3414
- renderContent: ({ size }) => /* @__PURE__ */ React67.createElement(OverlineIcon, { fontSize: size }),
3707
+ label: __47("Overline", "elementor"),
3708
+ renderContent: ({ size }) => /* @__PURE__ */ React72.createElement(OverlineIcon, { fontSize: size }),
3415
3709
  showTooltip: true
3416
3710
  }
3417
3711
  ];
3418
- var TextDecorationField = () => /* @__PURE__ */ React67.createElement(StylesField, { bind: "text-decoration" }, /* @__PURE__ */ React67.createElement(Grid27, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React67.createElement(Grid27, { item: true, xs: 6 }, /* @__PURE__ */ React67.createElement(ControlLabel, null, __44("Line decoration", "elementor"))), /* @__PURE__ */ React67.createElement(Grid27, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React67.createElement(ToggleControl11, { options: options9, exclusive: false }))));
3712
+ var TextDecorationField = () => /* @__PURE__ */ React72.createElement(StylesField, { bind: "text-decoration" }, /* @__PURE__ */ React72.createElement(Grid27, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React72.createElement(Grid27, { item: true, xs: 6 }, /* @__PURE__ */ React72.createElement(ControlLabel, null, __47("Line decoration", "elementor"))), /* @__PURE__ */ React72.createElement(Grid27, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React72.createElement(ToggleControl11, { options: options9, exclusive: false }))));
3419
3713
 
3420
3714
  // src/components/style-sections/typography-section/text-direction-field.tsx
3421
- import * as React68 from "react";
3715
+ import * as React73 from "react";
3422
3716
  import { ToggleControl as ToggleControl12 } from "@elementor/editor-controls";
3423
3717
  import { TextDirectionLtrIcon, TextDirectionRtlIcon } from "@elementor/icons";
3424
3718
  import { Grid as Grid28 } from "@elementor/ui";
3425
- import { __ as __45 } from "@wordpress/i18n";
3719
+ import { __ as __48 } from "@wordpress/i18n";
3426
3720
  var options10 = [
3427
3721
  {
3428
3722
  value: "ltr",
3429
- label: __45("Left to right", "elementor"),
3430
- renderContent: ({ size }) => /* @__PURE__ */ React68.createElement(TextDirectionLtrIcon, { fontSize: size }),
3723
+ label: __48("Left to right", "elementor"),
3724
+ renderContent: ({ size }) => /* @__PURE__ */ React73.createElement(TextDirectionLtrIcon, { fontSize: size }),
3431
3725
  showTooltip: true
3432
3726
  },
3433
3727
  {
3434
3728
  value: "rtl",
3435
- label: __45("Right to left", "elementor"),
3436
- renderContent: ({ size }) => /* @__PURE__ */ React68.createElement(TextDirectionRtlIcon, { fontSize: size }),
3729
+ label: __48("Right to left", "elementor"),
3730
+ renderContent: ({ size }) => /* @__PURE__ */ React73.createElement(TextDirectionRtlIcon, { fontSize: size }),
3437
3731
  showTooltip: true
3438
3732
  }
3439
3733
  ];
3440
3734
  var TextDirectionField = () => {
3441
- return /* @__PURE__ */ React68.createElement(StylesField, { bind: "direction" }, /* @__PURE__ */ React68.createElement(Grid28, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React68.createElement(Grid28, { item: true, xs: 6 }, /* @__PURE__ */ React68.createElement(ControlLabel, null, __45("Direction", "elementor"))), /* @__PURE__ */ React68.createElement(Grid28, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React68.createElement(ToggleControl12, { options: options10 }))));
3735
+ return /* @__PURE__ */ React73.createElement(StylesField, { bind: "direction" }, /* @__PURE__ */ React73.createElement(Grid28, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React73.createElement(Grid28, { item: true, xs: 6 }, /* @__PURE__ */ React73.createElement(ControlLabel, null, __48("Direction", "elementor"))), /* @__PURE__ */ React73.createElement(Grid28, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React73.createElement(ToggleControl12, { options: options10 }))));
3442
3736
  };
3443
3737
 
3444
3738
  // src/components/style-sections/typography-section/text-stroke-field.tsx
3445
- import * as React69 from "react";
3739
+ import * as React74 from "react";
3446
3740
  import { StrokeControl } from "@elementor/editor-controls";
3447
- import { __ as __46 } from "@wordpress/i18n";
3741
+ import { __ as __49 } from "@wordpress/i18n";
3448
3742
  var initTextStroke = {
3449
3743
  $$type: "stroke",
3450
3744
  value: {
@@ -3462,6 +3756,7 @@ var initTextStroke = {
3462
3756
  }
3463
3757
  };
3464
3758
  var TextStrokeField = () => {
3759
+ const { canEdit } = useStyle();
3465
3760
  const [textStroke, setTextStroke] = useStylesField("stroke");
3466
3761
  const addTextStroke = () => {
3467
3762
  setTextStroke(initTextStroke);
@@ -3470,67 +3765,68 @@ var TextStrokeField = () => {
3470
3765
  setTextStroke(null);
3471
3766
  };
3472
3767
  const hasTextStroke = Boolean(textStroke);
3473
- return /* @__PURE__ */ React69.createElement(StylesField, { bind: "stroke" }, /* @__PURE__ */ React69.createElement(
3768
+ return /* @__PURE__ */ React74.createElement(StylesField, { bind: "stroke" }, /* @__PURE__ */ React74.createElement(
3474
3769
  AddOrRemoveContent,
3475
3770
  {
3476
- label: __46("Text stroke", "elementor"),
3771
+ label: __49("Text stroke", "elementor"),
3477
3772
  isAdded: hasTextStroke,
3478
3773
  onAdd: addTextStroke,
3479
- onRemove: removeTextStroke
3774
+ onRemove: removeTextStroke,
3775
+ disabled: !canEdit
3480
3776
  },
3481
- /* @__PURE__ */ React69.createElement(StrokeControl, null)
3777
+ /* @__PURE__ */ React74.createElement(StrokeControl, null)
3482
3778
  ));
3483
3779
  };
3484
3780
 
3485
3781
  // src/components/style-sections/typography-section/transform-field.tsx
3486
- import * as React70 from "react";
3782
+ import * as React75 from "react";
3487
3783
  import { ToggleControl as ToggleControl13 } from "@elementor/editor-controls";
3488
3784
  import { LetterCaseIcon, LetterCaseLowerIcon, LetterCaseUpperIcon, MinusIcon as MinusIcon4 } from "@elementor/icons";
3489
3785
  import { Grid as Grid29 } from "@elementor/ui";
3490
- import { __ as __47 } from "@wordpress/i18n";
3786
+ import { __ as __50 } from "@wordpress/i18n";
3491
3787
  var options11 = [
3492
3788
  {
3493
3789
  value: "none",
3494
- label: __47("None", "elementor"),
3495
- renderContent: ({ size }) => /* @__PURE__ */ React70.createElement(MinusIcon4, { fontSize: size }),
3790
+ label: __50("None", "elementor"),
3791
+ renderContent: ({ size }) => /* @__PURE__ */ React75.createElement(MinusIcon4, { fontSize: size }),
3496
3792
  showTooltip: true
3497
3793
  },
3498
3794
  {
3499
3795
  value: "capitalize",
3500
- label: __47("Capitalize", "elementor"),
3501
- renderContent: ({ size }) => /* @__PURE__ */ React70.createElement(LetterCaseIcon, { fontSize: size }),
3796
+ label: __50("Capitalize", "elementor"),
3797
+ renderContent: ({ size }) => /* @__PURE__ */ React75.createElement(LetterCaseIcon, { fontSize: size }),
3502
3798
  showTooltip: true
3503
3799
  },
3504
3800
  {
3505
3801
  value: "uppercase",
3506
- label: __47("Uppercase", "elementor"),
3507
- renderContent: ({ size }) => /* @__PURE__ */ React70.createElement(LetterCaseUpperIcon, { fontSize: size }),
3802
+ label: __50("Uppercase", "elementor"),
3803
+ renderContent: ({ size }) => /* @__PURE__ */ React75.createElement(LetterCaseUpperIcon, { fontSize: size }),
3508
3804
  showTooltip: true
3509
3805
  },
3510
3806
  {
3511
3807
  value: "lowercase",
3512
- label: __47("Lowercase", "elementor"),
3513
- renderContent: ({ size }) => /* @__PURE__ */ React70.createElement(LetterCaseLowerIcon, { fontSize: size }),
3808
+ label: __50("Lowercase", "elementor"),
3809
+ renderContent: ({ size }) => /* @__PURE__ */ React75.createElement(LetterCaseLowerIcon, { fontSize: size }),
3514
3810
  showTooltip: true
3515
3811
  }
3516
3812
  ];
3517
- var TransformField = () => /* @__PURE__ */ React70.createElement(StylesField, { bind: "text-transform" }, /* @__PURE__ */ React70.createElement(Grid29, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React70.createElement(Grid29, { item: true, xs: 6 }, /* @__PURE__ */ React70.createElement(ControlLabel, null, __47("Text transform", "elementor"))), /* @__PURE__ */ React70.createElement(Grid29, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React70.createElement(ToggleControl13, { options: options11 }))));
3813
+ var TransformField = () => /* @__PURE__ */ React75.createElement(StylesField, { bind: "text-transform" }, /* @__PURE__ */ React75.createElement(Grid29, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React75.createElement(Grid29, { item: true, xs: 6 }, /* @__PURE__ */ React75.createElement(ControlLabel, null, __50("Text transform", "elementor"))), /* @__PURE__ */ React75.createElement(Grid29, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React75.createElement(ToggleControl13, { options: options11 }))));
3518
3814
 
3519
3815
  // src/components/style-sections/typography-section/word-spacing-field.tsx
3520
- import * as React71 from "react";
3816
+ import * as React76 from "react";
3521
3817
  import { SizeControl as SizeControl10 } from "@elementor/editor-controls";
3522
3818
  import { Grid as Grid30 } from "@elementor/ui";
3523
- import { __ as __48 } from "@wordpress/i18n";
3819
+ import { __ as __51 } from "@wordpress/i18n";
3524
3820
  var WordSpacingField = () => {
3525
- return /* @__PURE__ */ React71.createElement(StylesField, { bind: "word-spacing" }, /* @__PURE__ */ React71.createElement(Grid30, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React71.createElement(Grid30, { item: true, xs: 6 }, /* @__PURE__ */ React71.createElement(ControlLabel, null, __48("Word spacing", "elementor"))), /* @__PURE__ */ React71.createElement(Grid30, { item: true, xs: 6 }, /* @__PURE__ */ React71.createElement(SizeControl10, null))));
3821
+ return /* @__PURE__ */ React76.createElement(StylesField, { bind: "word-spacing" }, /* @__PURE__ */ React76.createElement(Grid30, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React76.createElement(Grid30, { item: true, xs: 6 }, /* @__PURE__ */ React76.createElement(ControlLabel, null, __51("Word spacing", "elementor"))), /* @__PURE__ */ React76.createElement(Grid30, { item: true, xs: 6 }, /* @__PURE__ */ React76.createElement(SizeControl10, null))));
3526
3822
  };
3527
3823
 
3528
3824
  // src/components/style-sections/typography-section/typography-section.tsx
3529
3825
  var TypographySection = () => {
3530
3826
  const [columnCount] = useStylesField("column-count");
3531
- const isVersion330Active = isExperimentActive8("e_v_3_30");
3827
+ const isVersion330Active = isExperimentActive9("e_v_3_30");
3532
3828
  const hasMultiColumns = !!(columnCount?.value && columnCount?.value > 1);
3533
- return /* @__PURE__ */ React72.createElement(SectionContent, null, /* @__PURE__ */ React72.createElement(FontFamilyField, null), /* @__PURE__ */ React72.createElement(FontWeightField, null), /* @__PURE__ */ React72.createElement(FontSizeField, null), /* @__PURE__ */ React72.createElement(PanelDivider, null), /* @__PURE__ */ React72.createElement(TextAlignmentField, null), /* @__PURE__ */ React72.createElement(TextColorField, null), /* @__PURE__ */ React72.createElement(CollapsibleContent, null, /* @__PURE__ */ React72.createElement(SectionContent, { sx: { pt: 2 } }, /* @__PURE__ */ React72.createElement(LineHeightField, null), /* @__PURE__ */ React72.createElement(LetterSpacingField, null), /* @__PURE__ */ React72.createElement(WordSpacingField, null), isVersion330Active && /* @__PURE__ */ React72.createElement(React72.Fragment, null, /* @__PURE__ */ React72.createElement(ColumnCountField, null), hasMultiColumns && /* @__PURE__ */ React72.createElement(ColumnGapField, null)), /* @__PURE__ */ React72.createElement(PanelDivider, null), /* @__PURE__ */ React72.createElement(TextDecorationField, null), /* @__PURE__ */ React72.createElement(TransformField, null), /* @__PURE__ */ React72.createElement(TextDirectionField, null), /* @__PURE__ */ React72.createElement(FontStyleField, null), /* @__PURE__ */ React72.createElement(TextStrokeField, null))));
3829
+ return /* @__PURE__ */ React77.createElement(SectionContent, null, /* @__PURE__ */ React77.createElement(FontFamilyField, null), /* @__PURE__ */ React77.createElement(FontWeightField, null), /* @__PURE__ */ React77.createElement(FontSizeField, null), /* @__PURE__ */ React77.createElement(PanelDivider, null), /* @__PURE__ */ React77.createElement(TextAlignmentField, null), /* @__PURE__ */ React77.createElement(TextColorField, null), /* @__PURE__ */ React77.createElement(CollapsibleContent, null, /* @__PURE__ */ React77.createElement(SectionContent, { sx: { pt: 2 } }, /* @__PURE__ */ React77.createElement(LineHeightField, null), /* @__PURE__ */ React77.createElement(LetterSpacingField, null), /* @__PURE__ */ React77.createElement(WordSpacingField, null), isVersion330Active && /* @__PURE__ */ React77.createElement(React77.Fragment, null, /* @__PURE__ */ React77.createElement(ColumnCountField, null), hasMultiColumns && /* @__PURE__ */ React77.createElement(ColumnGapField, null)), /* @__PURE__ */ React77.createElement(PanelDivider, null), /* @__PURE__ */ React77.createElement(TextDecorationField, null), /* @__PURE__ */ React77.createElement(TransformField, null), /* @__PURE__ */ React77.createElement(TextDirectionField, null), /* @__PURE__ */ React77.createElement(FontStyleField, null), /* @__PURE__ */ React77.createElement(TextStrokeField, null))));
3534
3830
  };
3535
3831
 
3536
3832
  // src/components/style-tab.tsx
@@ -3546,15 +3842,15 @@ var PanelSection = ({ section }) => {
3546
3842
  const { component, name, title } = section;
3547
3843
  const tabDefaults = useDefaultPanelSettings();
3548
3844
  const SectionComponent = component;
3549
- const isExpanded = isExperimentActive9(EXPERIMENTAL_FEATURES.V_3_30) ? tabDefaults.defaultSectionsExpanded.style?.includes(name) : true;
3550
- return /* @__PURE__ */ React73.createElement(Section, { title, defaultExpanded: isExpanded }, /* @__PURE__ */ React73.createElement(SectionComponent, null));
3845
+ const isExpanded = isExperimentActive10(EXPERIMENTAL_FEATURES.V_3_30) ? tabDefaults.defaultSectionsExpanded.style?.includes(name) : false;
3846
+ return /* @__PURE__ */ React78.createElement(Section, { title, defaultExpanded: isExpanded }, /* @__PURE__ */ React78.createElement(SectionComponent, null));
3551
3847
  };
3552
3848
  var StyleTab = () => {
3553
3849
  const currentClassesProp = useCurrentClassesProp();
3554
3850
  const [activeStyleDefId, setActiveStyleDefId] = useActiveStyleDefId(currentClassesProp);
3555
3851
  const [activeStyleState, setActiveStyleState] = useState12(null);
3556
3852
  const breakpoint = useActiveBreakpoint();
3557
- return /* @__PURE__ */ React73.createElement(ClassesPropProvider, { prop: currentClassesProp }, /* @__PURE__ */ React73.createElement(
3853
+ return /* @__PURE__ */ React78.createElement(ClassesPropProvider, { prop: currentClassesProp }, /* @__PURE__ */ React78.createElement(
3558
3854
  StyleProvider,
3559
3855
  {
3560
3856
  meta: { breakpoint, state: activeStyleState },
@@ -3565,76 +3861,76 @@ var StyleTab = () => {
3565
3861
  },
3566
3862
  setMetaState: setActiveStyleState
3567
3863
  },
3568
- /* @__PURE__ */ React73.createElement(SessionStorageProvider2, { prefix: activeStyleDefId ?? "" }, /* @__PURE__ */ React73.createElement(StyleInheritanceProvider, null, /* @__PURE__ */ React73.createElement(ClassesHeader, null, /* @__PURE__ */ React73.createElement(CssClassSelector, null), /* @__PURE__ */ React73.createElement(Divider5, null)), /* @__PURE__ */ React73.createElement(SectionsList, null, /* @__PURE__ */ React73.createElement(
3864
+ /* @__PURE__ */ React78.createElement(SessionStorageProvider2, { prefix: activeStyleDefId ?? "" }, /* @__PURE__ */ React78.createElement(StyleInheritanceProvider, null, /* @__PURE__ */ React78.createElement(ClassesHeader, null, /* @__PURE__ */ React78.createElement(CssClassSelector, null), /* @__PURE__ */ React78.createElement(Divider5, null)), /* @__PURE__ */ React78.createElement(SectionsList, null, /* @__PURE__ */ React78.createElement(
3569
3865
  PanelSection,
3570
3866
  {
3571
3867
  section: {
3572
3868
  component: LayoutSection,
3573
3869
  name: "Layout",
3574
- title: __49("Layout", "elementor")
3870
+ title: __52("Layout", "elementor")
3575
3871
  }
3576
3872
  }
3577
- ), /* @__PURE__ */ React73.createElement(
3873
+ ), /* @__PURE__ */ React78.createElement(
3578
3874
  PanelSection,
3579
3875
  {
3580
3876
  section: {
3581
3877
  component: SpacingSection,
3582
3878
  name: "Spacing",
3583
- title: __49("Spacing", "elementor")
3879
+ title: __52("Spacing", "elementor")
3584
3880
  }
3585
3881
  }
3586
- ), /* @__PURE__ */ React73.createElement(
3882
+ ), /* @__PURE__ */ React78.createElement(
3587
3883
  PanelSection,
3588
3884
  {
3589
3885
  section: {
3590
3886
  component: SizeSection,
3591
3887
  name: "Size",
3592
- title: __49("Size", "elementor")
3888
+ title: __52("Size", "elementor")
3593
3889
  }
3594
3890
  }
3595
- ), /* @__PURE__ */ React73.createElement(
3891
+ ), /* @__PURE__ */ React78.createElement(
3596
3892
  PanelSection,
3597
3893
  {
3598
3894
  section: {
3599
3895
  component: PositionSection,
3600
3896
  name: "Position",
3601
- title: __49("Position", "elementor")
3897
+ title: __52("Position", "elementor")
3602
3898
  }
3603
3899
  }
3604
- ), /* @__PURE__ */ React73.createElement(
3900
+ ), /* @__PURE__ */ React78.createElement(
3605
3901
  PanelSection,
3606
3902
  {
3607
3903
  section: {
3608
3904
  component: TypographySection,
3609
3905
  name: "Typography",
3610
- title: __49("Typography", "elementor")
3906
+ title: __52("Typography", "elementor")
3611
3907
  }
3612
3908
  }
3613
- ), /* @__PURE__ */ React73.createElement(
3909
+ ), /* @__PURE__ */ React78.createElement(
3614
3910
  PanelSection,
3615
3911
  {
3616
3912
  section: {
3617
3913
  component: BackgroundSection,
3618
3914
  name: "Background",
3619
- title: __49("Background", "elementor")
3915
+ title: __52("Background", "elementor")
3620
3916
  }
3621
3917
  }
3622
- ), /* @__PURE__ */ React73.createElement(
3918
+ ), /* @__PURE__ */ React78.createElement(
3623
3919
  PanelSection,
3624
3920
  {
3625
3921
  section: {
3626
3922
  component: BorderSection,
3627
3923
  name: "Border",
3628
- title: __49("Border", "elementor")
3924
+ title: __52("Border", "elementor")
3629
3925
  }
3630
3926
  }
3631
- ), /* @__PURE__ */ React73.createElement(
3927
+ ), /* @__PURE__ */ React78.createElement(
3632
3928
  PanelSection,
3633
3929
  {
3634
3930
  section: {
3635
3931
  component: EffectsSection,
3636
3932
  name: "Effects",
3637
- title: __49("Effects", "elementor")
3933
+ title: __52("Effects", "elementor")
3638
3934
  }
3639
3935
  }
3640
3936
  ))))
@@ -3642,7 +3938,7 @@ var StyleTab = () => {
3642
3938
  };
3643
3939
  function ClassesHeader({ children }) {
3644
3940
  const scrollDirection = useScrollDirection();
3645
- return /* @__PURE__ */ React73.createElement(Stack16, { sx: { ...stickyHeaderStyles, top: scrollDirection === "up" ? TABS_HEADER_HEIGHT : 0 } }, children);
3941
+ return /* @__PURE__ */ React78.createElement(Stack17, { sx: { ...stickyHeaderStyles, top: scrollDirection === "up" ? TABS_HEADER_HEIGHT : 0 } }, children);
3646
3942
  }
3647
3943
  function useCurrentClassesProp() {
3648
3944
  const { elementType } = useElement();
@@ -3661,15 +3957,15 @@ var EditingPanelTabs = () => {
3661
3957
  return (
3662
3958
  // When switching between elements, the local states should be reset. We are using key to rerender the tabs.
3663
3959
  // Reference: https://react.dev/learn/preserving-and-resetting-state#resetting-a-form-with-a-key
3664
- /* @__PURE__ */ React74.createElement(Fragment9, { key: element.id }, /* @__PURE__ */ React74.createElement(PanelTabContent, null))
3960
+ /* @__PURE__ */ React79.createElement(Fragment9, { key: element.id }, /* @__PURE__ */ React79.createElement(PanelTabContent, null))
3665
3961
  );
3666
3962
  };
3667
3963
  var PanelTabContent = () => {
3668
3964
  const editorDefaults = useDefaultPanelSettings();
3669
- const defaultComponentTab = isExperimentActive10(EXPERIMENTAL_FEATURES.V_3_30) ? editorDefaults.defaultTab : "settings";
3965
+ const defaultComponentTab = isExperimentActive11(EXPERIMENTAL_FEATURES.V_3_30) ? editorDefaults.defaultTab : "settings";
3670
3966
  const [currentTab, setCurrentTab] = useStateByElement("tab", defaultComponentTab);
3671
3967
  const { getTabProps, getTabPanelProps, getTabsProps } = useTabs(currentTab);
3672
- return /* @__PURE__ */ React74.createElement(ScrollProvider, null, /* @__PURE__ */ React74.createElement(Stack17, { direction: "column", sx: { width: "100%" } }, /* @__PURE__ */ React74.createElement(Stack17, { sx: { ...stickyHeaderStyles, top: 0 } }, /* @__PURE__ */ React74.createElement(
3968
+ return /* @__PURE__ */ React79.createElement(ScrollProvider, null, /* @__PURE__ */ React79.createElement(Stack18, { direction: "column", sx: { width: "100%" } }, /* @__PURE__ */ React79.createElement(Stack18, { sx: { ...stickyHeaderStyles, top: 0 } }, /* @__PURE__ */ React79.createElement(
3673
3969
  Tabs,
3674
3970
  {
3675
3971
  variant: "fullWidth",
@@ -3681,9 +3977,9 @@ var PanelTabContent = () => {
3681
3977
  setCurrentTab(newValue);
3682
3978
  }
3683
3979
  },
3684
- /* @__PURE__ */ React74.createElement(Tab, { label: __50("General", "elementor"), ...getTabProps("settings") }),
3685
- /* @__PURE__ */ React74.createElement(Tab, { label: __50("Style", "elementor"), ...getTabProps("style") })
3686
- ), /* @__PURE__ */ React74.createElement(Divider6, null)), /* @__PURE__ */ React74.createElement(TabPanel, { ...getTabPanelProps("settings"), disablePadding: true }, /* @__PURE__ */ React74.createElement(SettingsTab, null)), /* @__PURE__ */ React74.createElement(TabPanel, { ...getTabPanelProps("style"), disablePadding: true }, /* @__PURE__ */ React74.createElement(StyleTab, null))));
3980
+ /* @__PURE__ */ React79.createElement(Tab, { label: __53("General", "elementor"), ...getTabProps("settings") }),
3981
+ /* @__PURE__ */ React79.createElement(Tab, { label: __53("Style", "elementor"), ...getTabProps("style") })
3982
+ ), /* @__PURE__ */ React79.createElement(Divider6, null)), /* @__PURE__ */ React79.createElement(TabPanel, { ...getTabPanelProps("settings"), disablePadding: true }, /* @__PURE__ */ React79.createElement(SettingsTab, null)), /* @__PURE__ */ React79.createElement(TabPanel, { ...getTabPanelProps("style"), disablePadding: true }, /* @__PURE__ */ React79.createElement(StyleTab, null))));
3687
3983
  };
3688
3984
 
3689
3985
  // src/components/editing-panel.tsx
@@ -3695,8 +3991,8 @@ var EditingPanel = () => {
3695
3991
  if (!element || !elementType) {
3696
3992
  return null;
3697
3993
  }
3698
- const panelTitle = __51("Edit %s", "elementor").replace("%s", elementType.title);
3699
- return /* @__PURE__ */ React75.createElement(ErrorBoundary, { fallback: /* @__PURE__ */ React75.createElement(EditorPanelErrorFallback, null) }, /* @__PURE__ */ React75.createElement(SessionStorageProvider3, { prefix: "elementor" }, /* @__PURE__ */ React75.createElement(ThemeProvider9, null, /* @__PURE__ */ React75.createElement(Panel, null, /* @__PURE__ */ React75.createElement(PanelHeader, null, /* @__PURE__ */ React75.createElement(PanelHeaderTitle, null, panelTitle), /* @__PURE__ */ React75.createElement(AtomIcon, { fontSize: "small", sx: { color: "text.tertiary" } })), /* @__PURE__ */ React75.createElement(PanelBody, null, /* @__PURE__ */ React75.createElement(ControlActionsProvider, { items: menuItems }, /* @__PURE__ */ React75.createElement(ControlReplacementsProvider, { replacements: controlReplacements }, /* @__PURE__ */ React75.createElement(ElementProvider, { element, elementType }, /* @__PURE__ */ React75.createElement(EditingPanelTabs, null)))))))));
3994
+ const panelTitle = __54("Edit %s", "elementor").replace("%s", elementType.title);
3995
+ return /* @__PURE__ */ React80.createElement(ErrorBoundary, { fallback: /* @__PURE__ */ React80.createElement(EditorPanelErrorFallback, null) }, /* @__PURE__ */ React80.createElement(SessionStorageProvider3, { prefix: "elementor" }, /* @__PURE__ */ React80.createElement(ThemeProvider9, null, /* @__PURE__ */ React80.createElement(Panel, null, /* @__PURE__ */ React80.createElement(PanelHeader, null, /* @__PURE__ */ React80.createElement(PanelHeaderTitle, null, panelTitle), /* @__PURE__ */ React80.createElement(AtomIcon, { fontSize: "small", sx: { color: "text.tertiary" } })), /* @__PURE__ */ React80.createElement(PanelBody, null, /* @__PURE__ */ React80.createElement(ControlActionsProvider, { items: menuItems }, /* @__PURE__ */ React80.createElement(ControlReplacementsProvider, { replacements: controlReplacements }, /* @__PURE__ */ React80.createElement(ElementProvider, { element, elementType }, /* @__PURE__ */ React80.createElement(EditingPanelTabs, null)))))))));
3700
3996
  };
3701
3997
 
3702
3998
  // src/panel.ts
@@ -3709,7 +4005,7 @@ var { panel, usePanelActions, usePanelStatus } = createPanel({
3709
4005
  import { injectIntoLogic } from "@elementor/editor";
3710
4006
  import { PrefetchUserData } from "@elementor/editor-current-user";
3711
4007
  import { __registerPanel as registerPanel } from "@elementor/editor-panels";
3712
- import { blockCommand } from "@elementor/editor-v1-adapters";
4008
+ import { blockCommand, isExperimentActive as isExperimentActive12 } from "@elementor/editor-v1-adapters";
3713
4009
 
3714
4010
  // src/hooks/use-open-editor-panel.ts
3715
4011
  import { useEffect as useEffect4 } from "react";
@@ -3745,36 +4041,36 @@ var EditingPanelHooks = () => {
3745
4041
  };
3746
4042
 
3747
4043
  // src/dynamics/init.ts
3748
- import { settingsTransformersRegistry, styleTransformersRegistry as styleTransformersRegistry2 } from "@elementor/editor-canvas";
4044
+ import { settingsTransformersRegistry, styleTransformersRegistry } from "@elementor/editor-canvas";
3749
4045
 
3750
4046
  // src/dynamics/components/dynamic-selection-control.tsx
3751
- import * as React79 from "react";
4047
+ import * as React84 from "react";
3752
4048
  import { ControlFormLabel as ControlFormLabel5, useBoundProp as useBoundProp5 } from "@elementor/editor-controls";
3753
4049
  import { DatabaseIcon as DatabaseIcon2, SettingsIcon, XIcon as XIcon2 } from "@elementor/icons";
3754
4050
  import {
3755
4051
  bindPopover as bindPopover2,
3756
4052
  bindTrigger as bindTrigger2,
3757
- Box as Box6,
4053
+ Box as Box8,
3758
4054
  Divider as Divider8,
3759
4055
  Grid as Grid31,
3760
- IconButton as IconButton4,
4056
+ IconButton as IconButton5,
3761
4057
  Paper,
3762
4058
  Popover as Popover2,
3763
- Stack as Stack20,
4059
+ Stack as Stack21,
3764
4060
  Tab as Tab2,
3765
4061
  TabPanel as TabPanel2,
3766
4062
  Tabs as Tabs2,
3767
- Typography as Typography6,
4063
+ Typography as Typography8,
3768
4064
  UnstableTag as Tag,
3769
4065
  usePopupState as usePopupState3,
3770
4066
  useTabs as useTabs2
3771
4067
  } from "@elementor/ui";
3772
- import { __ as __53 } from "@wordpress/i18n";
4068
+ import { __ as __56 } from "@wordpress/i18n";
3773
4069
 
3774
4070
  // src/components/popover-content.tsx
3775
- import * as React76 from "react";
3776
- import { Stack as Stack18 } from "@elementor/ui";
3777
- var PopoverContent = ({ alignItems, gap = 1.5, p, children }) => /* @__PURE__ */ React76.createElement(Stack18, { alignItems, gap, p }, children);
4071
+ import * as React81 from "react";
4072
+ import { Stack as Stack19 } from "@elementor/ui";
4073
+ var PopoverContent = ({ alignItems, gap = 1.5, p, children }) => /* @__PURE__ */ React81.createElement(Stack19, { alignItems, gap, p }, children);
3778
4074
 
3779
4075
  // src/hooks/use-persist-dynamic-value.ts
3780
4076
  import { useSessionStorage as useSessionStorage2 } from "@elementor/session";
@@ -3785,7 +4081,7 @@ var usePersistDynamicValue = (propKey) => {
3785
4081
  };
3786
4082
 
3787
4083
  // src/dynamics/dynamic-control.tsx
3788
- import * as React77 from "react";
4084
+ import * as React82 from "react";
3789
4085
  import { PropKeyProvider as PropKeyProvider3, PropProvider as PropProvider3, useBoundProp as useBoundProp3 } from "@elementor/editor-controls";
3790
4086
 
3791
4087
  // src/dynamics/hooks/use-dynamic-tag.ts
@@ -3887,28 +4183,28 @@ var DynamicControl = ({ bind, children }) => {
3887
4183
  });
3888
4184
  };
3889
4185
  const propType = createTopLevelOjectType({ schema: dynamicTag.props_schema });
3890
- return /* @__PURE__ */ React77.createElement(PropProvider3, { propType, setValue: setDynamicValue, value: { [bind]: dynamicValue } }, /* @__PURE__ */ React77.createElement(PropKeyProvider3, { bind }, children));
4186
+ return /* @__PURE__ */ React82.createElement(PropProvider3, { propType, setValue: setDynamicValue, value: { [bind]: dynamicValue } }, /* @__PURE__ */ React82.createElement(PropKeyProvider3, { bind }, children));
3891
4187
  };
3892
4188
 
3893
4189
  // src/dynamics/components/dynamic-selection.tsx
3894
- import * as React78 from "react";
4190
+ import * as React83 from "react";
3895
4191
  import { Fragment as Fragment10, useState as useState13 } from "react";
3896
4192
  import { useBoundProp as useBoundProp4 } from "@elementor/editor-controls";
3897
4193
  import { DatabaseIcon, SearchIcon } from "@elementor/icons";
3898
4194
  import {
3899
- Box as Box5,
4195
+ Box as Box7,
3900
4196
  Divider as Divider7,
3901
4197
  InputAdornment,
3902
4198
  Link as Link2,
3903
4199
  MenuItem,
3904
4200
  MenuList,
3905
4201
  MenuSubheader as MenuSubheader2,
3906
- Stack as Stack19,
4202
+ Stack as Stack20,
3907
4203
  TextField as TextField2,
3908
- Typography as Typography5
4204
+ Typography as Typography7
3909
4205
  } from "@elementor/ui";
3910
- import { __ as __52 } from "@wordpress/i18n";
3911
- var SIZE3 = "tiny";
4206
+ import { __ as __55 } from "@wordpress/i18n";
4207
+ var SIZE7 = "tiny";
3912
4208
  var DynamicSelection = ({ onSelect }) => {
3913
4209
  const [searchValue, setSearchValue] = useState13("");
3914
4210
  const { groups: dynamicGroups } = getAtomicDynamicTags() || {};
@@ -3928,19 +4224,19 @@ var DynamicSelection = ({ onSelect }) => {
3928
4224
  setValue({ name: value, settings: { label } });
3929
4225
  onSelect?.();
3930
4226
  };
3931
- return /* @__PURE__ */ React78.createElement(Stack19, null, hasNoDynamicTags ? /* @__PURE__ */ React78.createElement(NoDynamicTags, null) : /* @__PURE__ */ React78.createElement(Fragment10, null, /* @__PURE__ */ React78.createElement(Box5, { px: 1.5, pb: 1 }, /* @__PURE__ */ React78.createElement(
4227
+ return /* @__PURE__ */ React83.createElement(Stack20, null, hasNoDynamicTags ? /* @__PURE__ */ React83.createElement(NoDynamicTags, null) : /* @__PURE__ */ React83.createElement(Fragment10, null, /* @__PURE__ */ React83.createElement(Box7, { px: 1.5, pb: 1 }, /* @__PURE__ */ React83.createElement(
3932
4228
  TextField2,
3933
4229
  {
3934
4230
  fullWidth: true,
3935
- size: SIZE3,
4231
+ size: SIZE7,
3936
4232
  value: searchValue,
3937
4233
  onChange: handleSearch,
3938
- placeholder: __52("Search dynamic tags\u2026", "elementor"),
4234
+ placeholder: __55("Search dynamic tags\u2026", "elementor"),
3939
4235
  InputProps: {
3940
- startAdornment: /* @__PURE__ */ React78.createElement(InputAdornment, { position: "start" }, /* @__PURE__ */ React78.createElement(SearchIcon, { fontSize: SIZE3 }))
4236
+ startAdornment: /* @__PURE__ */ React83.createElement(InputAdornment, { position: "start" }, /* @__PURE__ */ React83.createElement(SearchIcon, { fontSize: SIZE7 }))
3941
4237
  }
3942
4238
  }
3943
- )), /* @__PURE__ */ React78.createElement(Divider7, null), /* @__PURE__ */ React78.createElement(Box5, { sx: { overflowY: "auto", height: 260, width: 220 } }, options12.length > 0 ? /* @__PURE__ */ React78.createElement(MenuList, { role: "listbox", tabIndex: 0 }, options12.map(([category, items3], index) => /* @__PURE__ */ React78.createElement(Fragment10, { key: index }, /* @__PURE__ */ React78.createElement(
4239
+ )), /* @__PURE__ */ React83.createElement(Divider7, null), /* @__PURE__ */ React83.createElement(Box7, { sx: { overflowY: "auto", height: 260, width: 220 } }, options12.length > 0 ? /* @__PURE__ */ React83.createElement(MenuList, { role: "listbox", tabIndex: 0 }, options12.map(([category, items3], index) => /* @__PURE__ */ React83.createElement(Fragment10, { key: index }, /* @__PURE__ */ React83.createElement(
3944
4240
  MenuSubheader2,
3945
4241
  {
3946
4242
  sx: { px: 1.5, typography: "caption", color: "text.tertiary" }
@@ -3948,7 +4244,7 @@ var DynamicSelection = ({ onSelect }) => {
3948
4244
  dynamicGroups?.[category]?.title || category
3949
4245
  ), items3.map(({ value, label: tagLabel }) => {
3950
4246
  const isSelected = isCurrentValueDynamic && value === dynamicValue?.name;
3951
- return /* @__PURE__ */ React78.createElement(
4247
+ return /* @__PURE__ */ React83.createElement(
3952
4248
  MenuItem,
3953
4249
  {
3954
4250
  key: value,
@@ -3959,10 +4255,10 @@ var DynamicSelection = ({ onSelect }) => {
3959
4255
  },
3960
4256
  tagLabel
3961
4257
  );
3962
- })))) : /* @__PURE__ */ React78.createElement(NoResults, { searchValue, onClear: () => setSearchValue("") }))));
4258
+ })))) : /* @__PURE__ */ React83.createElement(NoResults, { searchValue, onClear: () => setSearchValue("") }))));
3963
4259
  };
3964
- var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */ React78.createElement(
3965
- Stack19,
4260
+ var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */ React83.createElement(
4261
+ Stack20,
3966
4262
  {
3967
4263
  gap: 1,
3968
4264
  alignItems: "center",
@@ -3972,12 +4268,12 @@ var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */ React78.createElem
3972
4268
  color: "text.secondary",
3973
4269
  sx: { pb: 3.5 }
3974
4270
  },
3975
- /* @__PURE__ */ React78.createElement(DatabaseIcon, { fontSize: "large" }),
3976
- /* @__PURE__ */ React78.createElement(Typography5, { align: "center", variant: "subtitle2" }, __52("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React78.createElement("br", null), "\u201C", searchValue, "\u201D."),
3977
- /* @__PURE__ */ React78.createElement(Typography5, { align: "center", variant: "caption" }, __52("Try something else.", "elementor"), "\xA0", /* @__PURE__ */ React78.createElement(Link2, { color: "text.secondary", variant: "caption", component: "button", onClick: onClear }, __52("Clear & try again", "elementor")))
4271
+ /* @__PURE__ */ React83.createElement(DatabaseIcon, { fontSize: "large" }),
4272
+ /* @__PURE__ */ React83.createElement(Typography7, { align: "center", variant: "subtitle2" }, __55("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React83.createElement("br", null), "\u201C", searchValue, "\u201D."),
4273
+ /* @__PURE__ */ React83.createElement(Typography7, { align: "center", variant: "caption" }, __55("Try something else.", "elementor"), "\xA0", /* @__PURE__ */ React83.createElement(Link2, { color: "text.secondary", variant: "caption", component: "button", onClick: onClear }, __55("Clear & try again", "elementor")))
3978
4274
  );
3979
- var NoDynamicTags = () => /* @__PURE__ */ React78.createElement(Box5, { sx: { overflowY: "hidden", height: 297, width: 220 } }, /* @__PURE__ */ React78.createElement(Divider7, null), /* @__PURE__ */ React78.createElement(
3980
- Stack19,
4275
+ var NoDynamicTags = () => /* @__PURE__ */ React83.createElement(Box7, { sx: { overflowY: "hidden", height: 297, width: 220 } }, /* @__PURE__ */ React83.createElement(Divider7, null), /* @__PURE__ */ React83.createElement(
4276
+ Stack20,
3981
4277
  {
3982
4278
  gap: 1,
3983
4279
  alignItems: "center",
@@ -3987,9 +4283,9 @@ var NoDynamicTags = () => /* @__PURE__ */ React78.createElement(Box5, { sx: { ov
3987
4283
  color: "text.secondary",
3988
4284
  sx: { pb: 3.5 }
3989
4285
  },
3990
- /* @__PURE__ */ React78.createElement(DatabaseIcon, { fontSize: "large" }),
3991
- /* @__PURE__ */ React78.createElement(Typography5, { align: "center", variant: "subtitle2" }, __52("Streamline your workflow with dynamic tags", "elementor")),
3992
- /* @__PURE__ */ React78.createElement(Typography5, { align: "center", variant: "caption" }, __52("You\u2019ll need Elementor Pro to use this feature.", "elementor"))
4286
+ /* @__PURE__ */ React83.createElement(DatabaseIcon, { fontSize: "large" }),
4287
+ /* @__PURE__ */ React83.createElement(Typography7, { align: "center", variant: "subtitle2" }, __55("Streamline your workflow with dynamic tags", "elementor")),
4288
+ /* @__PURE__ */ React83.createElement(Typography7, { align: "center", variant: "caption" }, __55("You\u2019ll need Elementor Pro to use this feature.", "elementor"))
3993
4289
  ));
3994
4290
  var useFilteredOptions = (searchValue) => {
3995
4291
  const dynamicTags = usePropDynamicTags();
@@ -4008,7 +4304,7 @@ var useFilteredOptions = (searchValue) => {
4008
4304
  };
4009
4305
 
4010
4306
  // src/dynamics/components/dynamic-selection-control.tsx
4011
- var SIZE4 = "tiny";
4307
+ var SIZE8 = "tiny";
4012
4308
  var DynamicSelectionControl = () => {
4013
4309
  const { setValue: setAnyValue } = useBoundProp5();
4014
4310
  const { bind, value } = useBoundProp5(dynamicPropTypeUtil);
@@ -4022,25 +4318,25 @@ var DynamicSelectionControl = () => {
4022
4318
  if (!dynamicTag) {
4023
4319
  throw new Error(`Dynamic tag ${tagName} not found`);
4024
4320
  }
4025
- return /* @__PURE__ */ React79.createElement(Box6, null, /* @__PURE__ */ React79.createElement(
4321
+ return /* @__PURE__ */ React84.createElement(Box8, null, /* @__PURE__ */ React84.createElement(
4026
4322
  Tag,
4027
4323
  {
4028
4324
  fullWidth: true,
4029
4325
  showActionsOnHover: true,
4030
4326
  label: dynamicTag.label,
4031
- startIcon: /* @__PURE__ */ React79.createElement(DatabaseIcon2, { fontSize: SIZE4 }),
4327
+ startIcon: /* @__PURE__ */ React84.createElement(DatabaseIcon2, { fontSize: SIZE8 }),
4032
4328
  ...bindTrigger2(selectionPopoverState),
4033
- actions: /* @__PURE__ */ React79.createElement(React79.Fragment, null, /* @__PURE__ */ React79.createElement(DynamicSettingsPopover, { dynamicTag }), /* @__PURE__ */ React79.createElement(
4034
- IconButton4,
4329
+ actions: /* @__PURE__ */ React84.createElement(React84.Fragment, null, /* @__PURE__ */ React84.createElement(DynamicSettingsPopover, { dynamicTag }), /* @__PURE__ */ React84.createElement(
4330
+ IconButton5,
4035
4331
  {
4036
- size: SIZE4,
4332
+ size: SIZE8,
4037
4333
  onClick: removeDynamicTag,
4038
- "aria-label": __53("Remove dynamic value", "elementor")
4334
+ "aria-label": __56("Remove dynamic value", "elementor")
4039
4335
  },
4040
- /* @__PURE__ */ React79.createElement(XIcon2, { fontSize: SIZE4 })
4336
+ /* @__PURE__ */ React84.createElement(XIcon2, { fontSize: SIZE8 })
4041
4337
  ))
4042
4338
  }
4043
- ), /* @__PURE__ */ React79.createElement(
4339
+ ), /* @__PURE__ */ React84.createElement(
4044
4340
  Popover2,
4045
4341
  {
4046
4342
  disablePortal: true,
@@ -4048,7 +4344,7 @@ var DynamicSelectionControl = () => {
4048
4344
  anchorOrigin: { vertical: "bottom", horizontal: "left" },
4049
4345
  ...bindPopover2(selectionPopoverState)
4050
4346
  },
4051
- /* @__PURE__ */ React79.createElement(Stack20, null, /* @__PURE__ */ React79.createElement(Stack20, { direction: "row", alignItems: "center", pl: 1.5, pr: 0.5, py: 1.5 }, /* @__PURE__ */ React79.createElement(DatabaseIcon2, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React79.createElement(Typography6, { variant: "subtitle2" }, __53("Dynamic tags", "elementor")), /* @__PURE__ */ React79.createElement(IconButton4, { size: SIZE4, sx: { ml: "auto" }, onClick: selectionPopoverState.close }, /* @__PURE__ */ React79.createElement(XIcon2, { fontSize: SIZE4 }))), /* @__PURE__ */ React79.createElement(DynamicSelection, { onSelect: selectionPopoverState.close }))
4347
+ /* @__PURE__ */ React84.createElement(Stack21, null, /* @__PURE__ */ React84.createElement(Stack21, { direction: "row", alignItems: "center", pl: 1.5, pr: 0.5, py: 1.5 }, /* @__PURE__ */ React84.createElement(DatabaseIcon2, { fontSize: SIZE8, sx: { mr: 0.5 } }), /* @__PURE__ */ React84.createElement(Typography8, { variant: "subtitle2" }, __56("Dynamic tags", "elementor")), /* @__PURE__ */ React84.createElement(IconButton5, { size: SIZE8, sx: { ml: "auto" }, onClick: selectionPopoverState.close }, /* @__PURE__ */ React84.createElement(XIcon2, { fontSize: SIZE8 }))), /* @__PURE__ */ React84.createElement(DynamicSelection, { onSelect: selectionPopoverState.close }))
4052
4348
  ));
4053
4349
  };
4054
4350
  var DynamicSettingsPopover = ({ dynamicTag }) => {
@@ -4057,7 +4353,7 @@ var DynamicSettingsPopover = ({ dynamicTag }) => {
4057
4353
  if (!hasDynamicSettings) {
4058
4354
  return null;
4059
4355
  }
4060
- return /* @__PURE__ */ React79.createElement(React79.Fragment, null, /* @__PURE__ */ React79.createElement(IconButton4, { size: SIZE4, ...bindTrigger2(popupState), "aria-label": __53("Settings", "elementor") }, /* @__PURE__ */ React79.createElement(SettingsIcon, { fontSize: SIZE4 })), /* @__PURE__ */ React79.createElement(
4356
+ return /* @__PURE__ */ React84.createElement(React84.Fragment, null, /* @__PURE__ */ React84.createElement(IconButton5, { size: SIZE8, ...bindTrigger2(popupState), "aria-label": __56("Settings", "elementor") }, /* @__PURE__ */ React84.createElement(SettingsIcon, { fontSize: SIZE8 })), /* @__PURE__ */ React84.createElement(
4061
4357
  Popover2,
4062
4358
  {
4063
4359
  disablePortal: true,
@@ -4065,7 +4361,7 @@ var DynamicSettingsPopover = ({ dynamicTag }) => {
4065
4361
  anchorOrigin: { vertical: "bottom", horizontal: "center" },
4066
4362
  ...bindPopover2(popupState)
4067
4363
  },
4068
- /* @__PURE__ */ React79.createElement(Paper, { component: Stack20, sx: { minHeight: "300px", width: "220px" } }, /* @__PURE__ */ React79.createElement(Stack20, { direction: "row", alignItems: "center", px: 1.5, pt: 2, pb: 1 }, /* @__PURE__ */ React79.createElement(DatabaseIcon2, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React79.createElement(Typography6, { variant: "subtitle2" }, dynamicTag.label), /* @__PURE__ */ React79.createElement(IconButton4, { sx: { ml: "auto" }, size: SIZE4, onClick: popupState.close }, /* @__PURE__ */ React79.createElement(XIcon2, { fontSize: SIZE4 }))), /* @__PURE__ */ React79.createElement(DynamicSettings, { controls: dynamicTag.atomic_controls }))
4364
+ /* @__PURE__ */ React84.createElement(Paper, { component: Stack21, sx: { minHeight: "300px", width: "220px" } }, /* @__PURE__ */ React84.createElement(Stack21, { direction: "row", alignItems: "center", px: 1.5, pt: 2, pb: 1 }, /* @__PURE__ */ React84.createElement(DatabaseIcon2, { fontSize: SIZE8, sx: { mr: 0.5 } }), /* @__PURE__ */ React84.createElement(Typography8, { variant: "subtitle2" }, dynamicTag.label), /* @__PURE__ */ React84.createElement(IconButton5, { sx: { ml: "auto" }, size: SIZE8, onClick: popupState.close }, /* @__PURE__ */ React84.createElement(XIcon2, { fontSize: SIZE8 }))), /* @__PURE__ */ React84.createElement(DynamicSettings, { controls: dynamicTag.atomic_controls }))
4069
4365
  ));
4070
4366
  };
4071
4367
  var DynamicSettings = ({ controls }) => {
@@ -4074,10 +4370,10 @@ var DynamicSettings = ({ controls }) => {
4074
4370
  if (!tabs.length) {
4075
4371
  return null;
4076
4372
  }
4077
- return /* @__PURE__ */ React79.createElement(React79.Fragment, null, /* @__PURE__ */ React79.createElement(Tabs2, { size: "small", variant: "fullWidth", ...getTabsProps() }, tabs.map(({ value }, index) => /* @__PURE__ */ React79.createElement(Tab2, { key: index, label: value.label, sx: { px: 1, py: 0.5 }, ...getTabProps(index) }))), /* @__PURE__ */ React79.createElement(Divider8, null), tabs.map(({ value }, index) => {
4078
- return /* @__PURE__ */ React79.createElement(TabPanel2, { key: index, sx: { flexGrow: 1, py: 0 }, ...getTabPanelProps(index) }, /* @__PURE__ */ React79.createElement(PopoverContent, { p: 2, gap: 2 }, value.items.map((item) => {
4373
+ return /* @__PURE__ */ React84.createElement(React84.Fragment, null, /* @__PURE__ */ React84.createElement(Tabs2, { size: "small", variant: "fullWidth", ...getTabsProps() }, tabs.map(({ value }, index) => /* @__PURE__ */ React84.createElement(Tab2, { key: index, label: value.label, sx: { px: 1, py: 0.5 }, ...getTabProps(index) }))), /* @__PURE__ */ React84.createElement(Divider8, null), tabs.map(({ value }, index) => {
4374
+ return /* @__PURE__ */ React84.createElement(TabPanel2, { key: index, sx: { flexGrow: 1, py: 0 }, ...getTabPanelProps(index) }, /* @__PURE__ */ React84.createElement(PopoverContent, { p: 2, gap: 2 }, value.items.map((item) => {
4079
4375
  if (item.type === "control") {
4080
- return /* @__PURE__ */ React79.createElement(Control3, { key: item.value.bind, control: item.value });
4376
+ return /* @__PURE__ */ React84.createElement(Control3, { key: item.value.bind, control: item.value });
4081
4377
  }
4082
4378
  return null;
4083
4379
  })));
@@ -4087,7 +4383,7 @@ var Control3 = ({ control }) => {
4087
4383
  if (!getControl(control.type)) {
4088
4384
  return null;
4089
4385
  }
4090
- return /* @__PURE__ */ React79.createElement(DynamicControl, { bind: control.bind }, /* @__PURE__ */ React79.createElement(Grid31, { container: true, gap: 0.75 }, control.label ? /* @__PURE__ */ React79.createElement(Grid31, { item: true, xs: 12 }, /* @__PURE__ */ React79.createElement(ControlFormLabel5, null, control.label)) : null, /* @__PURE__ */ React79.createElement(Grid31, { item: true, xs: 12 }, /* @__PURE__ */ React79.createElement(Control, { type: control.type, props: control.props }))));
4386
+ return /* @__PURE__ */ React84.createElement(DynamicControl, { bind: control.bind }, /* @__PURE__ */ React84.createElement(Grid31, { container: true, gap: 0.75 }, control.label ? /* @__PURE__ */ React84.createElement(Grid31, { item: true, xs: 12 }, /* @__PURE__ */ React84.createElement(ControlFormLabel5, null, control.label)) : null, /* @__PURE__ */ React84.createElement(Grid31, { item: true, xs: 12 }, /* @__PURE__ */ React84.createElement(Control, { type: control.type, props: control.props }))));
4091
4387
  };
4092
4388
 
4093
4389
  // src/dynamics/dynamic-transformer.ts
@@ -4140,18 +4436,18 @@ function getDynamicValue(name, settings) {
4140
4436
  }
4141
4437
 
4142
4438
  // src/dynamics/hooks/use-prop-dynamic-action.tsx
4143
- import * as React80 from "react";
4439
+ import * as React85 from "react";
4144
4440
  import { useBoundProp as useBoundProp6 } from "@elementor/editor-controls";
4145
4441
  import { DatabaseIcon as DatabaseIcon3 } from "@elementor/icons";
4146
- import { __ as __54 } from "@wordpress/i18n";
4442
+ import { __ as __57 } from "@wordpress/i18n";
4147
4443
  var usePropDynamicAction = () => {
4148
4444
  const { propType } = useBoundProp6();
4149
4445
  const visible = !!propType && supportsDynamic(propType);
4150
4446
  return {
4151
4447
  visible,
4152
4448
  icon: DatabaseIcon3,
4153
- title: __54("Dynamic tags", "elementor"),
4154
- popoverContent: ({ closePopover }) => /* @__PURE__ */ React80.createElement(DynamicSelection, { onSelect: closePopover })
4449
+ title: __57("Dynamic tags", "elementor"),
4450
+ popoverContent: ({ closePopover }) => /* @__PURE__ */ React85.createElement(DynamicSelection, { onSelect: closePopover })
4155
4451
  };
4156
4452
  };
4157
4453
 
@@ -4166,12 +4462,170 @@ var init = () => {
4166
4462
  id: "dynamic-tags",
4167
4463
  useProps: usePropDynamicAction
4168
4464
  });
4169
- styleTransformersRegistry2.register("dynamic", dynamicTransformer);
4465
+ styleTransformersRegistry.register("dynamic", dynamicTransformer);
4170
4466
  settingsTransformersRegistry.register("dynamic", dynamicTransformer);
4171
4467
  };
4172
4468
 
4469
+ // src/reset-style-props.tsx
4470
+ import { useBoundProp as useBoundProp7 } from "@elementor/editor-controls";
4471
+ import { BrushBigIcon } from "@elementor/icons";
4472
+ import { __ as __58 } from "@wordpress/i18n";
4473
+ var { registerAction } = controlActionsMenu;
4474
+ function initResetStyleProps() {
4475
+ registerAction({
4476
+ id: "reset-style-value",
4477
+ useProps: useResetStyleValueProps
4478
+ });
4479
+ }
4480
+ var EXCLUDED_BINDS = ["order", "flex-grow", "flex-shrink", "flex-basis"];
4481
+ function useResetStyleValueProps() {
4482
+ const isStyle = useIsStyle();
4483
+ const { value, setValue, path, bind } = useBoundProp7();
4484
+ return {
4485
+ visible: isStyle && value !== null && value !== void 0 && path.length <= 2 && !EXCLUDED_BINDS.includes(bind),
4486
+ title: __58("Clear", "elementor"),
4487
+ icon: BrushBigIcon,
4488
+ onClick: () => setValue(null)
4489
+ };
4490
+ }
4491
+
4492
+ // src/styles-inheritance/init-styles-inheritance-transformers.ts
4493
+ import { createTransformer as createTransformer6, styleTransformersRegistry as styleTransformersRegistry2 } from "@elementor/editor-canvas";
4494
+
4495
+ // src/styles-inheritance/transformers/background-color-overlay-transformer.tsx
4496
+ import * as React86 from "react";
4497
+ import { createTransformer as createTransformer2 } from "@elementor/editor-canvas";
4498
+ import { Stack as Stack22, styled as styled6, UnstableColorIndicator } from "@elementor/ui";
4499
+ var backgroundColorOverlayTransformer = createTransformer2((value) => /* @__PURE__ */ React86.createElement(Stack22, { direction: "row", gap: 10 }, /* @__PURE__ */ React86.createElement(ItemIconColor, { value }), /* @__PURE__ */ React86.createElement(ItemLabelColor, { value })));
4500
+ var ItemIconColor = ({ value }) => {
4501
+ const { color } = value;
4502
+ return /* @__PURE__ */ React86.createElement(StyledUnstableColorIndicator, { size: "inherit", component: "span", value: color });
4503
+ };
4504
+ var ItemLabelColor = ({ value: { color } }) => {
4505
+ return /* @__PURE__ */ React86.createElement("span", null, color);
4506
+ };
4507
+ var StyledUnstableColorIndicator = styled6(UnstableColorIndicator)(({ theme }) => ({
4508
+ borderRadius: `${theme.shape.borderRadius / 2}px`
4509
+ }));
4510
+
4511
+ // src/styles-inheritance/transformers/background-gradient-overlay-transformer.tsx
4512
+ import * as React87 from "react";
4513
+ import { createTransformer as createTransformer3 } from "@elementor/editor-canvas";
4514
+ import { Stack as Stack23 } from "@elementor/ui";
4515
+ import { __ as __59 } from "@wordpress/i18n";
4516
+ var backgroundGradientOverlayTransformer = createTransformer3((value) => /* @__PURE__ */ React87.createElement(Stack23, { direction: "row", gap: 10 }, /* @__PURE__ */ React87.createElement(ItemIconGradient, { value }), /* @__PURE__ */ React87.createElement(ItemLabelGradient, { value })));
4517
+ var ItemIconGradient = ({ value }) => {
4518
+ const gradient = getGradientValue(value);
4519
+ return /* @__PURE__ */ React87.createElement(StyledUnstableColorIndicator, { size: "inherit", component: "span", value: gradient });
4520
+ };
4521
+ var ItemLabelGradient = ({ value }) => {
4522
+ if (value.type === "linear") {
4523
+ return /* @__PURE__ */ React87.createElement("span", null, __59("Linear Gradient", "elementor"));
4524
+ }
4525
+ return /* @__PURE__ */ React87.createElement("span", null, __59("Radial Gradient", "elementor"));
4526
+ };
4527
+ var getGradientValue = (gradient) => {
4528
+ const stops = gradient.stops?.map(({ color, offset }) => `${color} ${offset ?? 0}%`)?.join(",");
4529
+ if (gradient.type === "linear") {
4530
+ return `linear-gradient(${gradient.angle}deg, ${stops})`;
4531
+ }
4532
+ return `radial-gradient(circle at ${gradient.positions}, ${stops})`;
4533
+ };
4534
+
4535
+ // src/styles-inheritance/transformers/background-image-overlay-transformer.tsx
4536
+ import * as React88 from "react";
4537
+ import { createTransformer as createTransformer4 } from "@elementor/editor-canvas";
4538
+ import { EllipsisWithTooltip as EllipsisWithTooltip2 } from "@elementor/editor-ui";
4539
+ import { CardMedia, Stack as Stack24 } from "@elementor/ui";
4540
+ import { useWpMediaAttachment } from "@elementor/wp-media";
4541
+ var backgroundImageOverlayTransformer = createTransformer4((value) => /* @__PURE__ */ React88.createElement(Stack24, { direction: "row", gap: 10 }, /* @__PURE__ */ React88.createElement(ItemIconImage, { value }), /* @__PURE__ */ React88.createElement(ItemLabelImage, { value })));
4542
+ var ItemIconImage = ({ value }) => {
4543
+ const { imageUrl } = useImage(value);
4544
+ return /* @__PURE__ */ React88.createElement(
4545
+ CardMedia,
4546
+ {
4547
+ image: imageUrl,
4548
+ sx: (theme) => ({
4549
+ height: "1em",
4550
+ width: "1em",
4551
+ borderRadius: `${theme.shape.borderRadius / 2}px`,
4552
+ outline: `1px solid ${theme.palette.action.disabled}`
4553
+ })
4554
+ }
4555
+ );
4556
+ };
4557
+ var ItemLabelImage = ({ value }) => {
4558
+ const { imageTitle } = useImage(value);
4559
+ return /* @__PURE__ */ React88.createElement(EllipsisWithTooltip2, { title: imageTitle }, /* @__PURE__ */ React88.createElement("span", null, imageTitle));
4560
+ };
4561
+ var useImage = (image) => {
4562
+ let imageTitle, imageUrl = null;
4563
+ const imageSrc = image?.image.src;
4564
+ const { data: attachment } = useWpMediaAttachment(imageSrc.id || null);
4565
+ if (imageSrc.id) {
4566
+ const imageFileTypeExtension = getFileExtensionFromFilename(attachment?.filename);
4567
+ imageTitle = `${attachment?.title}${imageFileTypeExtension}` || null;
4568
+ imageUrl = attachment?.url || null;
4569
+ } else if (imageSrc.url) {
4570
+ imageUrl = imageSrc.url;
4571
+ imageTitle = imageUrl?.substring(imageUrl.lastIndexOf("/") + 1) || null;
4572
+ }
4573
+ return { imageTitle, imageUrl };
4574
+ };
4575
+ var getFileExtensionFromFilename = (filename) => {
4576
+ if (!filename) {
4577
+ return "";
4578
+ }
4579
+ const extension = filename.substring(filename.lastIndexOf(".") + 1);
4580
+ return `.${extension}`;
4581
+ };
4582
+
4583
+ // src/styles-inheritance/transformers/background-overlay-transformer.tsx
4584
+ import * as React89 from "react";
4585
+ import { createTransformer as createTransformer5 } from "@elementor/editor-canvas";
4586
+ import { Stack as Stack25 } from "@elementor/ui";
4587
+ var backgroundOverlayTransformer = createTransformer5((values) => {
4588
+ if (!values || values.length === 0) {
4589
+ return null;
4590
+ }
4591
+ return /* @__PURE__ */ React89.createElement(Stack25, { direction: "column" }, values.map((item, index) => /* @__PURE__ */ React89.createElement(Stack25, { key: index }, item)));
4592
+ });
4593
+
4594
+ // src/styles-inheritance/init-styles-inheritance-transformers.ts
4595
+ function initStylesInheritanceTransformers() {
4596
+ const originalStyleTransformers = styleTransformersRegistry2.all();
4597
+ Object.entries(originalStyleTransformers).forEach(([propType, transformer]) => {
4598
+ if (excludePropTypeTransformers.has(propType)) {
4599
+ return;
4600
+ }
4601
+ stylesInheritanceTransformersRegistry.register(propType, transformer);
4602
+ });
4603
+ stylesInheritanceTransformersRegistry.registerFallback(
4604
+ createTransformer6((value) => {
4605
+ return value;
4606
+ })
4607
+ );
4608
+ registerCustomTransformers();
4609
+ }
4610
+ function registerCustomTransformers() {
4611
+ stylesInheritanceTransformersRegistry.register("background-color-overlay", backgroundColorOverlayTransformer);
4612
+ stylesInheritanceTransformersRegistry.register(
4613
+ "background-gradient-overlay",
4614
+ backgroundGradientOverlayTransformer
4615
+ );
4616
+ stylesInheritanceTransformersRegistry.register("background-image-overlay", backgroundImageOverlayTransformer);
4617
+ stylesInheritanceTransformersRegistry.register("background-overlay", backgroundOverlayTransformer);
4618
+ }
4619
+
4620
+ // src/styles-inheritance/init.ts
4621
+ var init2 = () => {
4622
+ if (isUsingIndicatorPopover()) {
4623
+ initStylesInheritanceTransformers();
4624
+ }
4625
+ };
4626
+
4173
4627
  // src/init.ts
4174
- function init2() {
4628
+ function init3() {
4175
4629
  registerPanel(panel);
4176
4630
  blockV1Panel();
4177
4631
  injectIntoLogic({
@@ -4183,6 +4637,10 @@ function init2() {
4183
4637
  component: PrefetchUserData
4184
4638
  });
4185
4639
  init();
4640
+ init2();
4641
+ if (isExperimentActive12(EXPERIMENTAL_FEATURES.V_3_30)) {
4642
+ initResetStyleProps();
4643
+ }
4186
4644
  }
4187
4645
  var blockV1Panel = () => {
4188
4646
  blockCommand({
@@ -4192,10 +4650,10 @@ var blockV1Panel = () => {
4192
4650
  };
4193
4651
  export {
4194
4652
  controlActionsMenu,
4195
- init2 as init,
4653
+ init3 as init,
4196
4654
  injectIntoClassSelectorActions,
4197
4655
  registerControlReplacement,
4198
- useBoundProp7 as useBoundProp,
4656
+ useBoundProp8 as useBoundProp,
4199
4657
  usePanelActions,
4200
4658
  usePanelStatus
4201
4659
  };