@elementor/editor-editing-panel 1.44.0 → 1.46.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 (61) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/dist/index.d.mts +11 -4
  3. package/dist/index.d.ts +11 -4
  4. package/dist/index.js +867 -765
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.mjs +740 -636
  7. package/dist/index.mjs.map +1 -1
  8. package/package.json +14 -13
  9. package/src/components/css-classes/css-class-menu.tsx +6 -8
  10. package/src/components/css-classes/css-class-selector.tsx +17 -11
  11. package/src/components/settings-tab.tsx +25 -2
  12. package/src/components/style-indicator.tsx +19 -15
  13. package/src/components/style-sections/border-section/border-field.tsx +4 -6
  14. package/src/components/style-sections/border-section/border-radius-field.tsx +12 -9
  15. package/src/components/style-sections/effects-section/effects-section.tsx +6 -0
  16. package/src/components/style-sections/layout-section/align-content-field.tsx +10 -14
  17. package/src/components/style-sections/layout-section/align-items-field.tsx +13 -17
  18. package/src/components/style-sections/layout-section/align-self-child-field.tsx +13 -17
  19. package/src/components/style-sections/layout-section/flex-direction-field.tsx +13 -17
  20. package/src/components/style-sections/layout-section/flex-order-field.tsx +31 -36
  21. package/src/components/style-sections/layout-section/flex-size-field.tsx +67 -69
  22. package/src/components/style-sections/layout-section/justify-content-field.tsx +10 -14
  23. package/src/components/style-sections/layout-section/layout-section.tsx +2 -2
  24. package/src/components/style-sections/layout-section/opacity-control-field.tsx +25 -0
  25. package/src/components/style-sections/layout-section/utils/rotated-icon.tsx +1 -1
  26. package/src/components/style-sections/layout-section/wrap-field.tsx +13 -17
  27. package/src/components/style-sections/position-section/dimensions-field.tsx +39 -21
  28. package/src/components/style-sections/position-section/offset-field.tsx +5 -2
  29. package/src/components/style-sections/position-section/position-section.tsx +6 -6
  30. package/src/components/style-sections/size-section/object-position-field.tsx +2 -24
  31. package/src/components/style-sections/size-section/size-section.tsx +52 -37
  32. package/src/components/style-sections/spacing-section/spacing-section.tsx +1 -1
  33. package/src/components/style-sections/typography-section/column-gap-field.tsx +5 -2
  34. package/src/components/style-sections/typography-section/font-size-field.tsx +5 -2
  35. package/src/components/style-sections/typography-section/letter-spacing-field.tsx +5 -2
  36. package/src/components/style-sections/typography-section/line-height-field.tsx +5 -2
  37. package/src/components/style-sections/typography-section/text-alignment-field.tsx +12 -9
  38. package/src/components/style-sections/typography-section/text-stroke-field.tsx +4 -6
  39. package/src/components/style-sections/typography-section/typography-section.tsx +4 -2
  40. package/src/components/style-sections/typography-section/word-spacing-field.tsx +5 -2
  41. package/src/controls-registry/controls-registry.tsx +30 -10
  42. package/src/controls-registry/styles-field.tsx +1 -3
  43. package/src/dynamics/components/background-control-dynamic-tag.tsx +48 -0
  44. package/src/dynamics/components/dynamic-selection-control.tsx +10 -18
  45. package/src/dynamics/components/dynamic-selection.tsx +58 -77
  46. package/src/dynamics/hooks/use-prop-dynamic-action.tsx +1 -1
  47. package/src/dynamics/init.ts +21 -0
  48. package/src/hooks/use-styles-field.ts +9 -3
  49. package/src/hooks/use-styles-fields.ts +4 -4
  50. package/src/index.ts +1 -0
  51. package/src/popover-action.tsx +3 -5
  52. package/src/provider-colors-registry.ts +20 -0
  53. package/src/styles-inheritance/components/infotip/label-chip.tsx +4 -5
  54. package/src/styles-inheritance/components/styles-inheritance-indicator.tsx +32 -40
  55. package/src/styles-inheritance/components/styles-inheritance-infotip.tsx +1 -5
  56. package/src/styles-inheritance/components/styles-inheritance-section-indicators.tsx +29 -44
  57. package/src/styles-inheritance/components/ui-providers.tsx +18 -0
  58. package/src/styles-inheritance/hooks/use-normalized-inheritance-chain-items.tsx +1 -17
  59. package/src/styles-inheritance/types.ts +0 -2
  60. package/src/styles-inheritance/utils.ts +17 -1
  61. package/src/utils/get-styles-provider-color.ts +28 -0
package/dist/index.mjs CHANGED
@@ -1,10 +1,21 @@
1
1
  // src/index.ts
2
- import { useBoundProp as useBoundProp8 } from "@elementor/editor-controls";
2
+ import { useBoundProp as useBoundProp9 } from "@elementor/editor-controls";
3
3
 
4
4
  // src/control-replacement.tsx
5
5
  import { createControlReplacementsRegistry } from "@elementor/editor-controls";
6
6
  var { registerControlReplacement, getControlReplacements } = createControlReplacementsRegistry();
7
7
 
8
+ // src/provider-colors-registry.ts
9
+ var DEFAULT_COLORS = {
10
+ name: "default",
11
+ getThemeColor: null
12
+ };
13
+ var providerColorsRegistry = /* @__PURE__ */ new Map();
14
+ var registerStyleProviderToColors = (provider, colors) => {
15
+ providerColorsRegistry.set(provider, colors);
16
+ };
17
+ var getStyleProviderColors = (provider) => providerColorsRegistry.get(provider) ?? DEFAULT_COLORS;
18
+
8
19
  // src/components/css-classes/css-class-selector.tsx
9
20
  import * as React8 from "react";
10
21
  import { useRef, useState as useState4 } from "react";
@@ -19,7 +30,14 @@ import {
19
30
  import { InfoAlert, WarningInfotip } from "@elementor/editor-ui";
20
31
  import { ColorSwatchIcon, MapPinIcon } from "@elementor/icons";
21
32
  import { createLocation } from "@elementor/locations";
22
- import { Box as Box2, Chip as Chip3, FormLabel, Link, Stack as Stack3, Typography as Typography3 } from "@elementor/ui";
33
+ import {
34
+ Box as Box2,
35
+ Chip as Chip3,
36
+ FormLabel,
37
+ Link,
38
+ Stack as Stack3,
39
+ Typography as Typography3
40
+ } from "@elementor/ui";
23
41
  import { __ as __4 } from "@wordpress/i18n";
24
42
 
25
43
  // src/contexts/classes-prop-context.tsx
@@ -104,6 +122,27 @@ function useIsStyle() {
104
122
  return !!useContext3(Context3);
105
123
  }
106
124
 
125
+ // src/utils/get-styles-provider-color.ts
126
+ import { ELEMENTS_BASE_STYLES_PROVIDER_KEY, isElementsStylesProvider } from "@elementor/editor-styles-repository";
127
+ var getStylesProviderColorName = (provider) => {
128
+ if (!provider || provider === ELEMENTS_BASE_STYLES_PROVIDER_KEY) {
129
+ return "default";
130
+ }
131
+ if (isElementsStylesProvider(provider)) {
132
+ return "accent";
133
+ }
134
+ return getStyleProviderColors(provider).name;
135
+ };
136
+ var getStylesProviderThemeColor = (provider) => {
137
+ if (!provider || provider === ELEMENTS_BASE_STYLES_PROVIDER_KEY) {
138
+ return null;
139
+ }
140
+ if (isElementsStylesProvider(provider)) {
141
+ return (theme) => theme.palette.accent.main;
142
+ }
143
+ return getStyleProviderColors(provider).getThemeColor;
144
+ };
145
+
107
146
  // src/components/creatable-autocomplete/creatable-autocomplete.tsx
108
147
  import * as React4 from "react";
109
148
  import { useId, useMemo } from "react";
@@ -470,11 +509,7 @@ function CssClassProvider({ children, ...contextValue }) {
470
509
 
471
510
  // src/components/css-classes/css-class-menu.tsx
472
511
  import * as React6 from "react";
473
- import {
474
- isElementsStylesProvider,
475
- stylesRepository as stylesRepository2,
476
- useUserStylesCapability as useUserStylesCapability2
477
- } from "@elementor/editor-styles-repository";
512
+ import { stylesRepository as stylesRepository2, useUserStylesCapability as useUserStylesCapability2 } from "@elementor/editor-styles-repository";
478
513
  import { MenuItemInfotip, MenuListItem } from "@elementor/editor-ui";
479
514
  import { bindMenu, Divider, Menu, MenuSubheader, Stack } from "@elementor/ui";
480
515
  import { __ as __2 } from "@wordpress/i18n";
@@ -482,22 +517,17 @@ import { __ as __2 } from "@wordpress/i18n";
482
517
  // src/components/style-indicator.tsx
483
518
  import { styled as styled2 } from "@elementor/ui";
484
519
  var StyleIndicator = styled2("div", {
485
- shouldForwardProp: (prop) => prop !== "variant"
520
+ shouldForwardProp: (prop) => !["isOverridden", "getColor"].includes(prop)
486
521
  })`
487
522
  width: 5px;
488
523
  height: 5px;
489
524
  border-radius: 50%;
490
- background-color: ${({ theme, variant }) => {
491
- switch (variant) {
492
- case "overridden":
493
- return theme.palette.warning.light;
494
- case "global":
495
- return theme.palette.global.dark;
496
- case "local":
497
- return theme.palette.accent.main;
498
- default:
499
- return theme.palette.text.disabled;
525
+ background-color: ${({ theme, isOverridden, getColor }) => {
526
+ if (isOverridden) {
527
+ return theme.palette.warning.light;
500
528
  }
529
+ const providerColor = getColor?.(theme);
530
+ return providerColor ?? theme.palette.text.disabled;
501
531
  }};
502
532
  `;
503
533
 
@@ -775,7 +805,6 @@ function StateMenuItem({ state, closeMenu, ...props }) {
775
805
  const { userCan } = useUserStylesCapability2();
776
806
  const modifiedStates = useModifiedStates(styleId);
777
807
  const isUpdateAllowed = !state || userCan(provider ?? "").updateProps;
778
- const indicatorVariant = !provider || isElementsStylesProvider(provider) ? "local" : "global";
779
808
  const isStyled = modifiedStates[state ?? "normal"] ?? false;
780
809
  const disabled = !isUpdateAllowed && !isStyled;
781
810
  const isActive = styleId === activeId;
@@ -801,7 +830,13 @@ function StateMenuItem({ state, closeMenu, ...props }) {
801
830
  showInfoTip: disabled,
802
831
  content: __2("With your current role, you can only use existing states.", "elementor")
803
832
  },
804
- /* @__PURE__ */ React6.createElement(Stack, { gap: 0.75, direction: "row", alignItems: "center" }, isStyled && /* @__PURE__ */ React6.createElement(StyleIndicator, { "aria-label": __2("Has style", "elementor"), variant: indicatorVariant }), state ?? "normal")
833
+ /* @__PURE__ */ React6.createElement(Stack, { gap: 0.75, direction: "row", alignItems: "center" }, isStyled && /* @__PURE__ */ React6.createElement(
834
+ StyleIndicator,
835
+ {
836
+ "aria-label": __2("Has style", "elementor"),
837
+ getColor: getStylesProviderThemeColor(provider ?? "")
838
+ }
839
+ ), state ?? "normal")
805
840
  )
806
841
  );
807
842
  }
@@ -1025,16 +1060,7 @@ function CssClassSelector() {
1025
1060
  })
1026
1061
  }
1027
1062
  )
1028
- ), !canEdit && /* @__PURE__ */ React8.createElement(
1029
- InfoAlert,
1030
- {
1031
- content: __4(
1032
- "With your current role, you can use existing classes but can\u2019t modify them.",
1033
- "elementor"
1034
- ),
1035
- sx: { mt: 1 }
1036
- }
1037
- ));
1063
+ ), !canEdit && /* @__PURE__ */ React8.createElement(InfoAlert, { sx: { mt: 1 } }, __4("With your current role, you can use existing classes but can\u2019t modify them.", "elementor")));
1038
1064
  }
1039
1065
  var EmptyState = ({ searchValue, onClear }) => /* @__PURE__ */ React8.createElement(Box2, { sx: { py: 4 } }, /* @__PURE__ */ React8.createElement(
1040
1066
  Stack3,
@@ -1074,7 +1100,7 @@ function useOptions() {
1074
1100
  label: styleDef.label,
1075
1101
  value: styleDef.id,
1076
1102
  fixed: isElements,
1077
- color: isElements ? "accent" : "global",
1103
+ color: getStylesProviderColorName(provider.getKey()),
1078
1104
  icon: isElements ? /* @__PURE__ */ React8.createElement(MapPinIcon, null) : null,
1079
1105
  provider: provider.getKey()
1080
1106
  };
@@ -1142,11 +1168,11 @@ function useHandleSelect() {
1142
1168
  import { __createPanel as createPanel } from "@elementor/editor-panels";
1143
1169
 
1144
1170
  // src/components/editing-panel.tsx
1145
- import * as React83 from "react";
1171
+ import * as React85 from "react";
1146
1172
  import { ControlActionsProvider, ControlReplacementsProvider } from "@elementor/editor-controls";
1147
1173
  import { useSelectedElement } from "@elementor/editor-elements";
1148
1174
  import { Panel, PanelBody, PanelHeader, PanelHeaderTitle } from "@elementor/editor-panels";
1149
- import { ThemeProvider as ThemeProvider9 } from "@elementor/editor-ui";
1175
+ import { ThemeProvider as ThemeProvider2 } from "@elementor/editor-ui";
1150
1176
  import { AtomIcon } from "@elementor/icons";
1151
1177
  import { SessionStorageProvider as SessionStorageProvider3 } from "@elementor/session";
1152
1178
  import { ErrorBoundary } from "@elementor/ui";
@@ -1169,14 +1195,13 @@ function Action({ title, visible = true, icon: Icon, onClick }) {
1169
1195
  // src/popover-action.tsx
1170
1196
  import * as React10 from "react";
1171
1197
  import { useId as useId2 } from "react";
1172
- import { PopoverHeader } from "@elementor/editor-ui";
1173
1198
  import { bindPopover, bindToggle, IconButton as IconButton2, Popover, Tooltip as Tooltip2, usePopupState as usePopupState2 } from "@elementor/ui";
1174
1199
  var SIZE2 = "tiny";
1175
1200
  function PopoverAction({
1176
1201
  title,
1177
1202
  visible = true,
1178
1203
  icon: Icon,
1179
- popoverContent: PopoverContent2
1204
+ content: PopoverContent2
1180
1205
  }) {
1181
1206
  const id = useId2();
1182
1207
  const popupState = usePopupState2({
@@ -1197,8 +1222,7 @@ function PopoverAction({
1197
1222
  },
1198
1223
  ...bindPopover(popupState)
1199
1224
  },
1200
- /* @__PURE__ */ React10.createElement(PopoverHeader, { title, onClose: popupState.close, icon: /* @__PURE__ */ React10.createElement(Icon, { fontSize: SIZE2 }) }),
1201
- /* @__PURE__ */ React10.createElement(PopoverContent2, { closePopover: popupState.close })
1225
+ /* @__PURE__ */ React10.createElement(PopoverContent2, { close: popupState.close })
1202
1226
  ));
1203
1227
  }
1204
1228
 
@@ -1218,8 +1242,8 @@ function EditorPanelErrorFallback() {
1218
1242
  }
1219
1243
 
1220
1244
  // src/components/editing-panel-tabs.tsx
1221
- import * as React82 from "react";
1222
- import { Fragment as Fragment10 } from "react";
1245
+ import * as React84 from "react";
1246
+ import { Fragment as Fragment9 } from "react";
1223
1247
  import { isExperimentActive as isExperimentActive13 } from "@elementor/editor-v1-adapters";
1224
1248
  import { Divider as Divider6, Stack as Stack18, Tab, TabPanel, Tabs, useTabs } from "@elementor/ui";
1225
1249
  import { __ as __54 } from "@wordpress/i18n";
@@ -1318,7 +1342,9 @@ import * as React13 from "react";
1318
1342
  // src/controls-registry/controls-registry.tsx
1319
1343
  import {
1320
1344
  ImageControl,
1345
+ KeyValueControl,
1321
1346
  LinkControl,
1347
+ RepeatableControl,
1322
1348
  SelectControl,
1323
1349
  SizeControl,
1324
1350
  SvgMediaControl,
@@ -1327,19 +1353,31 @@ import {
1327
1353
  TextControl,
1328
1354
  UrlControl
1329
1355
  } from "@elementor/editor-controls";
1356
+ import {
1357
+ booleanPropTypeUtil,
1358
+ imagePropTypeUtil,
1359
+ imageSrcPropTypeUtil,
1360
+ keyValuePropTypeUtil,
1361
+ linkPropTypeUtil,
1362
+ sizePropTypeUtil,
1363
+ stringPropTypeUtil
1364
+ } from "@elementor/editor-props";
1330
1365
  var controlTypes = {
1331
- image: { component: ImageControl, layout: "full" },
1332
- "svg-media": { component: SvgMediaControl, layout: "full" },
1333
- text: { component: TextControl, layout: "full" },
1334
- textarea: { component: TextAreaControl, layout: "full" },
1335
- size: { component: SizeControl, layout: "two-columns" },
1336
- select: { component: SelectControl, layout: "two-columns" },
1337
- link: { component: LinkControl, layout: "full" },
1338
- url: { component: UrlControl, layout: "full" },
1339
- switch: { component: SwitchControl, layout: "two-columns" }
1366
+ image: { component: ImageControl, layout: "full", propTypeUtil: imagePropTypeUtil },
1367
+ "svg-media": { component: SvgMediaControl, layout: "full", propTypeUtil: imageSrcPropTypeUtil },
1368
+ text: { component: TextControl, layout: "full", propTypeUtil: stringPropTypeUtil },
1369
+ textarea: { component: TextAreaControl, layout: "full", propTypeUtil: stringPropTypeUtil },
1370
+ size: { component: SizeControl, layout: "two-columns", propTypeUtil: sizePropTypeUtil },
1371
+ select: { component: SelectControl, layout: "two-columns", propTypeUtil: stringPropTypeUtil },
1372
+ link: { component: LinkControl, layout: "full", propTypeUtil: linkPropTypeUtil },
1373
+ url: { component: UrlControl, layout: "full", propTypeUtil: stringPropTypeUtil },
1374
+ switch: { component: SwitchControl, layout: "two-columns", propTypeUtil: booleanPropTypeUtil },
1375
+ repeatable: { component: RepeatableControl, layout: "full", propTypeUtil: void 0 },
1376
+ "key-value": { component: KeyValueControl, layout: "full", propTypeUtil: keyValuePropTypeUtil }
1340
1377
  };
1341
1378
  var getControl = (type) => controlTypes[type]?.component;
1342
1379
  var getDefaultLayout = (type) => controlTypes[type].layout;
1380
+ var getPropTypeUtil = (type) => controlTypes[type]?.propTypeUtil;
1343
1381
 
1344
1382
  // src/controls-registry/control.tsx
1345
1383
  var Control = ({ props, type }) => {
@@ -1536,11 +1574,27 @@ var Control2 = ({ control }) => {
1536
1574
  return null;
1537
1575
  }
1538
1576
  const layout = control.meta?.layout || getDefaultLayout(control.type);
1539
- return /* @__PURE__ */ React19.createElement(SettingsField, { bind: control.bind }, control.meta?.topDivider && /* @__PURE__ */ React19.createElement(Divider3, null), /* @__PURE__ */ React19.createElement(ControlTypeContainer, { layout }, control.label ? /* @__PURE__ */ React19.createElement(ControlFormLabel, null, control.label) : null, /* @__PURE__ */ React19.createElement(Control, { type: control.type, props: control.props })));
1540
- };
1577
+ const controlProps = populateChildControlProps(control.props);
1578
+ return /* @__PURE__ */ React19.createElement(SettingsField, { bind: control.bind }, control.meta?.topDivider && /* @__PURE__ */ React19.createElement(Divider3, null), /* @__PURE__ */ React19.createElement(ControlTypeContainer, { layout }, control.label ? /* @__PURE__ */ React19.createElement(ControlFormLabel, null, control.label) : null, /* @__PURE__ */ React19.createElement(Control, { type: control.type, props: controlProps })));
1579
+ };
1580
+ function populateChildControlProps(props) {
1581
+ if (props.childControlType) {
1582
+ const childComponent = getControl(props.childControlType);
1583
+ const childPropType = getPropTypeUtil(props.childControlType);
1584
+ props = {
1585
+ ...props,
1586
+ childControlConfig: {
1587
+ component: childComponent,
1588
+ props: props.childControlProps || {},
1589
+ propTypeUtil: childPropType
1590
+ }
1591
+ };
1592
+ }
1593
+ return props;
1594
+ }
1541
1595
 
1542
1596
  // src/components/style-tab.tsx
1543
- import * as React81 from "react";
1597
+ import * as React83 from "react";
1544
1598
  import { useState as useState12 } from "react";
1545
1599
  import { CLASSES_PROP_KEY } from "@elementor/editor-props";
1546
1600
  import { useActiveBreakpoint } from "@elementor/editor-responsive";
@@ -1579,6 +1633,14 @@ var DEFAULT_STATE = "normal";
1579
1633
  var DEFAULT_BREAKPOINT = "desktop";
1580
1634
  var getStateKey = (state) => state ?? DEFAULT_STATE;
1581
1635
  var getBreakpointKey = (breakpoint) => breakpoint ?? DEFAULT_BREAKPOINT;
1636
+ var getValueFromInheritanceChain = (inheritanceChain, styleId, meta) => inheritanceChain.find(
1637
+ ({
1638
+ style,
1639
+ variant: {
1640
+ meta: { breakpoint, state }
1641
+ }
1642
+ }) => style.id === styleId && breakpoint === meta.breakpoint && state === meta.state
1643
+ );
1582
1644
 
1583
1645
  // src/styles-inheritance/create-snapshots-manager.ts
1584
1646
  function createSnapshotsManager(getStylesByMeta, breakpointsRoot) {
@@ -1878,19 +1940,19 @@ import { undoable as undoable2 } from "@elementor/editor-v1-adapters";
1878
1940
  import { __ as __6 } from "@wordpress/i18n";
1879
1941
  function useStylesFields(propNames) {
1880
1942
  const { element } = useElement();
1881
- const { id, meta, provider } = useStyle();
1943
+ const { id, meta, provider, canEdit } = useStyle();
1882
1944
  const classesProp = useClassesProp();
1883
1945
  const undoableUpdateStyle = useUndoableUpdateStyle();
1884
1946
  const undoableCreateElementStyle = useUndoableCreateElementStyle();
1885
1947
  useStylesRerender();
1886
- const value = getProps({
1948
+ const values = getProps({
1887
1949
  elementId: element.id,
1888
1950
  styleId: id,
1889
1951
  provider,
1890
1952
  meta,
1891
1953
  propNames
1892
1954
  });
1893
- const setValue = (props) => {
1955
+ const setValues = (props) => {
1894
1956
  if (id === null) {
1895
1957
  undoableCreateElementStyle({
1896
1958
  elementId: element.id,
@@ -1908,7 +1970,7 @@ function useStylesFields(propNames) {
1908
1970
  props
1909
1971
  });
1910
1972
  };
1911
- return [value, setValue];
1973
+ return { values, setValues, canEdit };
1912
1974
  }
1913
1975
  function getProps({ styleId, elementId, provider, meta, propNames }) {
1914
1976
  if (!provider || !styleId) {
@@ -1995,21 +2057,21 @@ function getCurrentProps(style, meta) {
1995
2057
 
1996
2058
  // src/hooks/use-styles-field.ts
1997
2059
  function useStylesField(propName) {
1998
- const [values, setValues] = useStylesFields([propName]);
2060
+ const { values, setValues, canEdit } = useStylesFields([propName]);
1999
2061
  const value = values?.[propName] ?? null;
2000
2062
  const setValue = (newValue) => {
2001
2063
  setValues({
2002
2064
  [propName]: newValue
2003
2065
  });
2004
2066
  };
2005
- return [value, setValue];
2067
+ return { value, setValue, canEdit };
2006
2068
  }
2007
2069
 
2008
2070
  // src/styles-inheritance/components/styles-inheritance-indicator.tsx
2009
2071
  import * as React27 from "react";
2010
2072
  import { useBoundProp } from "@elementor/editor-controls";
2011
2073
  import { isEmpty as isEmpty2 } from "@elementor/editor-props";
2012
- import { ELEMENTS_BASE_STYLES_PROVIDER_KEY as ELEMENTS_BASE_STYLES_PROVIDER_KEY3, isElementsStylesProvider as isElementsStylesProvider3 } from "@elementor/editor-styles-repository";
2074
+ import { ELEMENTS_BASE_STYLES_PROVIDER_KEY as ELEMENTS_BASE_STYLES_PROVIDER_KEY4 } from "@elementor/editor-styles-repository";
2013
2075
  import { isExperimentActive as isExperimentActive6 } from "@elementor/editor-v1-adapters";
2014
2076
  import { Tooltip as Tooltip6 } from "@elementor/ui";
2015
2077
  import { __ as __10 } from "@wordpress/i18n";
@@ -2082,7 +2144,7 @@ function useDirection() {
2082
2144
 
2083
2145
  // src/styles-inheritance/hooks/use-normalized-inheritance-chain-items.tsx
2084
2146
  import { isValidElement, useEffect as useEffect3, useState as useState8 } from "react";
2085
- import { ELEMENTS_BASE_STYLES_PROVIDER_KEY } from "@elementor/editor-styles-repository";
2147
+ import { ELEMENTS_BASE_STYLES_PROVIDER_KEY as ELEMENTS_BASE_STYLES_PROVIDER_KEY2 } from "@elementor/editor-styles-repository";
2086
2148
  import { __ as __7 } from "@wordpress/i18n";
2087
2149
  var MAXIMUM_ITEMS = 2;
2088
2150
  var useNormalizedInheritanceChainItems = (inheritanceChain, bind, resolve) => {
@@ -2094,7 +2156,7 @@ var useNormalizedInheritanceChainItems = (inheritanceChain, bind, resolve) => {
2094
2156
  );
2095
2157
  const validItems = normalizedItems.map((item) => ({
2096
2158
  ...item,
2097
- displayLabel: ELEMENTS_BASE_STYLES_PROVIDER_KEY !== item.provider ? item.displayLabel : __7("Base", "elementor")
2159
+ displayLabel: ELEMENTS_BASE_STYLES_PROVIDER_KEY2 !== item.provider ? item.displayLabel : __7("Base", "elementor")
2098
2160
  })).filter((item) => !item.value || item.displayLabel !== "").slice(0, MAXIMUM_ITEMS);
2099
2161
  setItems(validItems);
2100
2162
  })();
@@ -2115,8 +2177,7 @@ var normalizeInheritanceItem = async (item, index, bind, resolve) => {
2115
2177
  provider: item.provider || "",
2116
2178
  breakpoint: breakpoint ?? DEFAULT_BREAKPOINT2,
2117
2179
  displayLabel,
2118
- value: await getTransformedValue(item, bind, resolve),
2119
- chipColor: getChipColor(item)
2180
+ value: await getTransformedValue(item, bind, resolve)
2120
2181
  };
2121
2182
  };
2122
2183
  var getTransformedValue = async (item, bind, resolve) => {
@@ -2138,16 +2199,6 @@ var getTransformedValue = async (item, bind, resolve) => {
2138
2199
  return "";
2139
2200
  }
2140
2201
  };
2141
- var getChipColor = (item) => {
2142
- const { provider = "", style } = item;
2143
- if (provider === ELEMENTS_BASE_STYLES_PROVIDER_KEY) {
2144
- return "default";
2145
- }
2146
- if (style?.label === "local") {
2147
- return "accent";
2148
- }
2149
- return "global";
2150
- };
2151
2202
 
2152
2203
  // src/styles-inheritance/styles-inheritance-transformers-registry.tsx
2153
2204
  import { createTransformersRegistry } from "@elementor/editor-canvas";
@@ -2190,20 +2241,20 @@ var BreakpointIcon = ({ breakpoint }) => {
2190
2241
 
2191
2242
  // src/styles-inheritance/components/infotip/label-chip.tsx
2192
2243
  import * as React23 from "react";
2193
- import { ELEMENTS_BASE_STYLES_PROVIDER_KEY as ELEMENTS_BASE_STYLES_PROVIDER_KEY2 } from "@elementor/editor-styles-repository";
2244
+ import { ELEMENTS_BASE_STYLES_PROVIDER_KEY as ELEMENTS_BASE_STYLES_PROVIDER_KEY3 } from "@elementor/editor-styles-repository";
2194
2245
  import { InfoCircleIcon } from "@elementor/icons";
2195
2246
  import { Chip as Chip4, Tooltip as Tooltip4 } from "@elementor/ui";
2196
2247
  import { __ as __8 } from "@wordpress/i18n";
2197
2248
  var SIZE4 = "tiny";
2198
- var LabelChip = ({ displayLabel, provider, chipColor }) => {
2199
- const isBaseStyle = provider === ELEMENTS_BASE_STYLES_PROVIDER_KEY2;
2249
+ var LabelChip = ({ displayLabel, provider }) => {
2250
+ const isBaseStyle = provider === ELEMENTS_BASE_STYLES_PROVIDER_KEY3;
2200
2251
  const chipIcon = isBaseStyle ? /* @__PURE__ */ React23.createElement(Tooltip4, { title: __8("Inherited from base styles", "elementor"), placement: "top" }, /* @__PURE__ */ React23.createElement(InfoCircleIcon, { fontSize: SIZE4 })) : void 0;
2201
2252
  return /* @__PURE__ */ React23.createElement(
2202
2253
  Chip4,
2203
2254
  {
2204
2255
  label: displayLabel,
2205
2256
  size: SIZE4,
2206
- color: chipColor,
2257
+ color: getStylesProviderColorName(provider),
2207
2258
  variant: "standard",
2208
2259
  state: "enabled",
2209
2260
  icon: chipIcon,
@@ -2316,14 +2367,7 @@ var StylesInheritanceInfotip = ({ inheritanceChain, propType, path, label, child
2316
2367
  item.displayLabel
2317
2368
  )
2318
2369
  },
2319
- /* @__PURE__ */ React26.createElement(Box6, { display: "flex", gap: 0.5, sx: { flexWrap: "wrap", width: "100%" } }, /* @__PURE__ */ React26.createElement(BreakpointIcon, { breakpoint: item.breakpoint }), /* @__PURE__ */ React26.createElement(
2320
- LabelChip,
2321
- {
2322
- displayLabel: item.displayLabel,
2323
- provider: item.provider,
2324
- chipColor: item.chipColor
2325
- }
2326
- ), /* @__PURE__ */ React26.createElement(ValueComponent, { index, value: item.value })),
2370
+ /* @__PURE__ */ React26.createElement(Box6, { display: "flex", gap: 0.5, sx: { flexWrap: "wrap", width: "100%" } }, /* @__PURE__ */ React26.createElement(BreakpointIcon, { breakpoint: item.breakpoint }), /* @__PURE__ */ React26.createElement(LabelChip, { displayLabel: item.displayLabel, provider: item.provider }), /* @__PURE__ */ React26.createElement(ValueComponent, { index, value: item.value })),
2327
2371
  /* @__PURE__ */ React26.createElement(ActionIcons, null)
2328
2372
  );
2329
2373
  })
@@ -2384,41 +2428,40 @@ function TooltipOrInfotip({
2384
2428
  // src/styles-inheritance/components/styles-inheritance-indicator.tsx
2385
2429
  var StylesInheritanceIndicator = () => {
2386
2430
  const { path, propType } = useBoundProp();
2387
- const { id: currentStyleId, provider: currentStyleProvider, meta: currentStyleMeta } = useStyle();
2388
2431
  const isUsingNestedProps = isExperimentActive6(EXPERIMENTAL_FEATURES.V_3_30);
2389
2432
  const finalPath = isUsingNestedProps ? path : path.slice(0, 1);
2390
2433
  const inheritanceChain = useStylesInheritanceChain(finalPath);
2391
2434
  if (!inheritanceChain.length) {
2392
2435
  return null;
2393
2436
  }
2394
- const currentItem = inheritanceChain.find(
2395
- ({
2396
- style,
2397
- variant: {
2398
- meta: { breakpoint, state }
2399
- }
2400
- }) => style.id === currentStyleId && breakpoint === currentStyleMeta.breakpoint && state === currentStyleMeta.state
2401
- );
2437
+ return /* @__PURE__ */ React27.createElement(Indicator, { inheritanceChain, path: finalPath, propType });
2438
+ };
2439
+ var Indicator = ({ inheritanceChain, path, propType }) => {
2440
+ const { id: currentStyleId, provider: currentStyleProvider, meta: currentStyleMeta } = useStyle();
2441
+ const currentItem = currentStyleId ? getValueFromInheritanceChain(inheritanceChain, currentStyleId, currentStyleMeta) : null;
2402
2442
  const hasValue = !isEmpty2(currentItem?.value);
2403
2443
  const [actualStyle] = inheritanceChain;
2404
- if (actualStyle.provider === ELEMENTS_BASE_STYLES_PROVIDER_KEY3) {
2444
+ if (actualStyle.provider === ELEMENTS_BASE_STYLES_PROVIDER_KEY4) {
2405
2445
  return null;
2406
2446
  }
2407
2447
  const isFinalValue = currentItem === actualStyle;
2408
2448
  const label = getLabel({ isFinalValue, hasValue });
2409
- const variantType = getVariant({ isFinalValue, hasValue, currentStyleProvider });
2449
+ const styleIndicatorProps = {
2450
+ getColor: isFinalValue && currentStyleProvider ? getStylesProviderThemeColor(currentStyleProvider.getKey()) : void 0,
2451
+ isOverridden: hasValue && !isFinalValue ? true : void 0
2452
+ };
2410
2453
  if (!isUsingIndicatorPopover()) {
2411
- return /* @__PURE__ */ React27.createElement(Tooltip6, { title: __10("Style origin", "elementor"), placement: "top" }, /* @__PURE__ */ React27.createElement(StyleIndicator, { variant: variantType, "aria-label": label }));
2454
+ return /* @__PURE__ */ React27.createElement(Tooltip6, { title: __10("Style origin", "elementor"), placement: "top" }, /* @__PURE__ */ React27.createElement(StyleIndicator, { ...styleIndicatorProps, "aria-label": label }));
2412
2455
  }
2413
2456
  return /* @__PURE__ */ React27.createElement(
2414
2457
  StylesInheritanceInfotip,
2415
2458
  {
2416
2459
  inheritanceChain,
2417
- path: finalPath,
2460
+ path,
2418
2461
  propType,
2419
2462
  label
2420
2463
  },
2421
- /* @__PURE__ */ React27.createElement(StyleIndicator, { variant: variantType })
2464
+ /* @__PURE__ */ React27.createElement(StyleIndicator, { ...styleIndicatorProps })
2422
2465
  );
2423
2466
  };
2424
2467
  var getLabel = ({ isFinalValue, hasValue }) => {
@@ -2430,24 +2473,10 @@ var getLabel = ({ isFinalValue, hasValue }) => {
2430
2473
  }
2431
2474
  return __10("This has value from another style", "elementor");
2432
2475
  };
2433
- var getVariant = ({
2434
- isFinalValue,
2435
- hasValue,
2436
- currentStyleProvider
2437
- }) => {
2438
- if (isFinalValue) {
2439
- return isElementsStylesProvider3(currentStyleProvider?.getKey?.()) ? "local" : "global";
2440
- }
2441
- if (hasValue) {
2442
- return "overridden";
2443
- }
2444
- return void 0;
2445
- };
2446
2476
 
2447
2477
  // src/controls-registry/styles-field.tsx
2448
2478
  var StylesField = ({ bind, placeholder, children }) => {
2449
- const [value, setValue] = useStylesField(bind);
2450
- const { canEdit } = useStyle();
2479
+ const { value, setValue, canEdit } = useStylesField(bind);
2451
2480
  const stylesSchema = getStylesSchema2();
2452
2481
  const propType = createTopLevelOjectType({ schema: stylesSchema });
2453
2482
  const values = { [bind]: value };
@@ -2485,7 +2514,7 @@ var BackgroundSection = () => {
2485
2514
  };
2486
2515
 
2487
2516
  // src/components/style-sections/border-section/border-section.tsx
2488
- import * as React38 from "react";
2517
+ import * as React39 from "react";
2489
2518
 
2490
2519
  // src/components/panel-divider.tsx
2491
2520
  import * as React30 from "react";
@@ -2616,19 +2645,18 @@ var initialBorder = {
2616
2645
  "border-style": { $$type: "string", value: "solid" }
2617
2646
  };
2618
2647
  var BorderField = () => {
2619
- const { canEdit } = useStyle();
2620
- const [border, setBorder] = useStylesFields(Object.keys(initialBorder));
2648
+ const { values, setValues, canEdit } = useStylesFields(Object.keys(initialBorder));
2621
2649
  const addBorder = () => {
2622
- setBorder(initialBorder);
2650
+ setValues(initialBorder);
2623
2651
  };
2624
2652
  const removeBorder = () => {
2625
- setBorder({
2653
+ setValues({
2626
2654
  "border-width": null,
2627
2655
  "border-color": null,
2628
2656
  "border-style": null
2629
2657
  });
2630
2658
  };
2631
- const hasBorder = Object.values(border ?? {}).some(Boolean);
2659
+ const hasBorder = Object.values(values ?? {}).some(Boolean);
2632
2660
  return /* @__PURE__ */ React36.createElement(
2633
2661
  AddOrRemoveContent,
2634
2662
  {
@@ -2645,7 +2673,7 @@ var BorderField = () => {
2645
2673
  };
2646
2674
 
2647
2675
  // src/components/style-sections/border-section/border-radius-field.tsx
2648
- import * as React37 from "react";
2676
+ import * as React38 from "react";
2649
2677
  import { EqualUnequalSizesControl as EqualUnequalSizesControl2 } from "@elementor/editor-controls";
2650
2678
  import { borderRadiusPropTypeUtil } from "@elementor/editor-props";
2651
2679
  import {
@@ -2657,6 +2685,16 @@ import {
2657
2685
  } from "@elementor/icons";
2658
2686
  import { withDirection as withDirection2 } from "@elementor/ui";
2659
2687
  import { __ as __15 } from "@wordpress/i18n";
2688
+
2689
+ // src/styles-inheritance/components/ui-providers.tsx
2690
+ import * as React37 from "react";
2691
+ import { DirectionProvider, ThemeProvider } from "@elementor/ui";
2692
+ var UiProviders = ({ children }) => {
2693
+ const { isSiteRtl } = useDirection();
2694
+ return /* @__PURE__ */ React37.createElement(DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React37.createElement(ThemeProvider, null, children));
2695
+ };
2696
+
2697
+ // src/components/style-sections/border-section/border-radius-field.tsx
2660
2698
  var StartStartIcon = withDirection2(RadiusTopLeftIcon);
2661
2699
  var StartEndIcon = withDirection2(RadiusTopRightIcon);
2662
2700
  var EndStartIcon = withDirection2(RadiusBottomLeftIcon);
@@ -2668,54 +2706,67 @@ var getEndEndLabel = (isSiteRtl) => isSiteRtl ? __15("Bottom left", "elementor")
2668
2706
  var getCorners = (isSiteRtl) => [
2669
2707
  {
2670
2708
  label: getStartStartLabel(isSiteRtl),
2671
- icon: /* @__PURE__ */ React37.createElement(StartStartIcon, { fontSize: "tiny" }),
2709
+ icon: /* @__PURE__ */ React38.createElement(StartStartIcon, { fontSize: "tiny" }),
2672
2710
  bind: "start-start"
2673
2711
  },
2674
2712
  {
2675
2713
  label: getStartEndLabel(isSiteRtl),
2676
- icon: /* @__PURE__ */ React37.createElement(StartEndIcon, { fontSize: "tiny" }),
2714
+ icon: /* @__PURE__ */ React38.createElement(StartEndIcon, { fontSize: "tiny" }),
2677
2715
  bind: "start-end"
2678
2716
  },
2679
2717
  {
2680
2718
  label: getEndStartLabel(isSiteRtl),
2681
- icon: /* @__PURE__ */ React37.createElement(EndStartIcon, { fontSize: "tiny" }),
2719
+ icon: /* @__PURE__ */ React38.createElement(EndStartIcon, { fontSize: "tiny" }),
2682
2720
  bind: "end-start"
2683
2721
  },
2684
2722
  {
2685
2723
  label: getEndEndLabel(isSiteRtl),
2686
- icon: /* @__PURE__ */ React37.createElement(EndEndIcon, { fontSize: "tiny" }),
2724
+ icon: /* @__PURE__ */ React38.createElement(EndEndIcon, { fontSize: "tiny" }),
2687
2725
  bind: "end-end"
2688
2726
  }
2689
2727
  ];
2690
2728
  var BorderRadiusField = () => {
2691
2729
  const { isSiteRtl } = useDirection();
2692
- return /* @__PURE__ */ React37.createElement(StylesField, { bind: "border-radius" }, /* @__PURE__ */ React37.createElement(
2730
+ return /* @__PURE__ */ React38.createElement(UiProviders, null, /* @__PURE__ */ React38.createElement(StylesField, { bind: "border-radius" }, /* @__PURE__ */ React38.createElement(
2693
2731
  EqualUnequalSizesControl2,
2694
2732
  {
2695
2733
  items: getCorners(isSiteRtl),
2696
2734
  label: __15("Border radius", "elementor"),
2697
- icon: /* @__PURE__ */ React37.createElement(BorderCornersIcon, { fontSize: "tiny" }),
2735
+ icon: /* @__PURE__ */ React38.createElement(BorderCornersIcon, { fontSize: "tiny" }),
2698
2736
  tooltipLabel: __15("Adjust corners", "elementor"),
2699
2737
  multiSizePropTypeUtil: borderRadiusPropTypeUtil
2700
2738
  }
2701
- ));
2739
+ )));
2702
2740
  };
2703
2741
 
2704
2742
  // src/components/style-sections/border-section/border-section.tsx
2705
- var BorderSection = () => /* @__PURE__ */ React38.createElement(SectionContent, null, /* @__PURE__ */ React38.createElement(BorderRadiusField, null), /* @__PURE__ */ React38.createElement(PanelDivider, null), /* @__PURE__ */ React38.createElement(BorderField, null));
2743
+ var BorderSection = () => /* @__PURE__ */ React39.createElement(SectionContent, null, /* @__PURE__ */ React39.createElement(BorderRadiusField, null), /* @__PURE__ */ React39.createElement(PanelDivider, null), /* @__PURE__ */ React39.createElement(BorderField, null));
2706
2744
 
2707
2745
  // src/components/style-sections/effects-section/effects-section.tsx
2708
- import * as React39 from "react";
2746
+ import * as React41 from "react";
2709
2747
  import { BoxShadowRepeaterControl } from "@elementor/editor-controls";
2748
+
2749
+ // src/components/style-sections/layout-section/opacity-control-field.tsx
2750
+ import * as React40 from "react";
2751
+ import { useRef as useRef4 } from "react";
2752
+ import { SizeControl as SizeControl2 } from "@elementor/editor-controls";
2753
+ import { Grid as Grid3 } from "@elementor/ui";
2754
+ import { __ as __16 } from "@wordpress/i18n";
2755
+ var OpacityControlField = () => {
2756
+ const rowRef = useRef4();
2757
+ return /* @__PURE__ */ React40.createElement(StylesField, { bind: "opacity" }, /* @__PURE__ */ React40.createElement(Grid3, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap", ref: rowRef }, /* @__PURE__ */ React40.createElement(Grid3, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(ControlLabel, null, __16("Opacity", "elementor"))), /* @__PURE__ */ React40.createElement(Grid3, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(SizeControl2, { units: ["%"], anchorRef: rowRef, defaultUnit: "%" }))));
2758
+ };
2759
+
2760
+ // src/components/style-sections/effects-section/effects-section.tsx
2710
2761
  var EffectsSection = () => {
2711
- return /* @__PURE__ */ React39.createElement(SectionContent, null, /* @__PURE__ */ React39.createElement(StylesField, { bind: "box-shadow" }, /* @__PURE__ */ React39.createElement(BoxShadowRepeaterControl, null)));
2762
+ return /* @__PURE__ */ React41.createElement(SectionContent, null, /* @__PURE__ */ React41.createElement(StylesField, { bind: "opacity" }, /* @__PURE__ */ React41.createElement(OpacityControlField, null)), /* @__PURE__ */ React41.createElement(PanelDivider, null), /* @__PURE__ */ React41.createElement(StylesField, { bind: "box-shadow" }, /* @__PURE__ */ React41.createElement(BoxShadowRepeaterControl, null)));
2712
2763
  };
2713
2764
 
2714
2765
  // src/components/style-sections/layout-section/layout-section.tsx
2715
- import * as React51 from "react";
2766
+ import * as React53 from "react";
2716
2767
  import { ControlFormLabel as ControlFormLabel4 } from "@elementor/editor-controls";
2717
2768
  import { useParentElement } from "@elementor/editor-elements";
2718
- import { __ as __26 } from "@wordpress/i18n";
2769
+ import { __ as __27 } from "@wordpress/i18n";
2719
2770
 
2720
2771
  // src/hooks/use-computed-style.ts
2721
2772
  import { __privateUseListenTo as useListenTo, commandEndEvent, windowEvent } from "@elementor/editor-v1-adapters";
@@ -2743,7 +2794,7 @@ function useComputedStyle(elementId) {
2743
2794
  }
2744
2795
 
2745
2796
  // src/components/style-sections/layout-section/align-content-field.tsx
2746
- import * as React41 from "react";
2797
+ import * as React43 from "react";
2747
2798
  import { ToggleControl } from "@elementor/editor-controls";
2748
2799
  import {
2749
2800
  JustifyBottomIcon,
@@ -2753,12 +2804,12 @@ import {
2753
2804
  JustifySpaceBetweenVerticalIcon as BetweenIcon,
2754
2805
  JustifyTopIcon
2755
2806
  } from "@elementor/icons";
2756
- import { DirectionProvider, Stack as Stack10, ThemeProvider, withDirection as withDirection3 } from "@elementor/ui";
2757
- import { __ as __16 } from "@wordpress/i18n";
2807
+ import { Stack as Stack10, withDirection as withDirection3 } from "@elementor/ui";
2808
+ import { __ as __17 } from "@wordpress/i18n";
2758
2809
 
2759
2810
  // src/components/style-sections/layout-section/utils/rotated-icon.tsx
2760
- import * as React40 from "react";
2761
- import { useRef as useRef4 } from "react";
2811
+ import * as React42 from "react";
2812
+ import { useRef as useRef5 } from "react";
2762
2813
  import { useTheme as useTheme2 } from "@elementor/ui";
2763
2814
  var CLOCKWISE_ANGLES = {
2764
2815
  row: 0,
@@ -2779,12 +2830,12 @@ var RotatedIcon = ({
2779
2830
  offset = 0,
2780
2831
  disableRotationForReversed = false
2781
2832
  }) => {
2782
- const rotate = useRef4(useGetTargetAngle(isClockwise, offset, disableRotationForReversed));
2833
+ const rotate = useRef5(useGetTargetAngle(isClockwise, offset, disableRotationForReversed));
2783
2834
  rotate.current = useGetTargetAngle(isClockwise, offset, disableRotationForReversed, rotate);
2784
- return /* @__PURE__ */ React40.createElement(Icon, { fontSize: size, sx: { transition: ".3s", rotate: `${rotate.current}deg` } });
2835
+ return /* @__PURE__ */ React42.createElement(Icon, { fontSize: size, sx: { transition: ".3s", rotate: `${rotate.current}deg` } });
2785
2836
  };
2786
2837
  var useGetTargetAngle = (isClockwise, offset, disableRotationForReversed, existingRef) => {
2787
- const [direction] = useStylesField("flex-direction");
2838
+ const { value: direction } = useStylesField("flex-direction");
2788
2839
  const isRtl = "rtl" === useTheme2().direction;
2789
2840
  const rotationMultiplier = isRtl ? -1 : 1;
2790
2841
  const angleMap = isClockwise ? CLOCKWISE_ANGLES : COUNTER_CLOCKWISE_ANGLES;
@@ -2810,48 +2861,47 @@ var iconProps = {
2810
2861
  var options = [
2811
2862
  {
2812
2863
  value: "start",
2813
- label: __16("Start", "elementor"),
2814
- renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(RotatedIcon, { icon: StartIcon, size, ...iconProps }),
2864
+ label: __17("Start", "elementor"),
2865
+ renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(RotatedIcon, { icon: StartIcon, size, ...iconProps }),
2815
2866
  showTooltip: true
2816
2867
  },
2817
2868
  {
2818
2869
  value: "center",
2819
- label: __16("Center", "elementor"),
2820
- renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(RotatedIcon, { icon: CenterIcon, size, ...iconProps }),
2870
+ label: __17("Center", "elementor"),
2871
+ renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(RotatedIcon, { icon: CenterIcon, size, ...iconProps }),
2821
2872
  showTooltip: true
2822
2873
  },
2823
2874
  {
2824
2875
  value: "end",
2825
- label: __16("End", "elementor"),
2826
- renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(RotatedIcon, { icon: EndIcon, size, ...iconProps }),
2876
+ label: __17("End", "elementor"),
2877
+ renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(RotatedIcon, { icon: EndIcon, size, ...iconProps }),
2827
2878
  showTooltip: true
2828
2879
  },
2829
2880
  {
2830
2881
  value: "space-between",
2831
- label: __16("Space between", "elementor"),
2832
- renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(RotatedIcon, { icon: BetweenIcon, size, ...iconProps }),
2882
+ label: __17("Space between", "elementor"),
2883
+ renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(RotatedIcon, { icon: BetweenIcon, size, ...iconProps }),
2833
2884
  showTooltip: true
2834
2885
  },
2835
2886
  {
2836
2887
  value: "space-around",
2837
- label: __16("Space around", "elementor"),
2838
- renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(RotatedIcon, { icon: AroundIcon, size, ...iconProps }),
2888
+ label: __17("Space around", "elementor"),
2889
+ renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(RotatedIcon, { icon: AroundIcon, size, ...iconProps }),
2839
2890
  showTooltip: true
2840
2891
  },
2841
2892
  {
2842
2893
  value: "space-evenly",
2843
- label: __16("Space evenly", "elementor"),
2844
- renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(RotatedIcon, { icon: EvenlyIcon, size, ...iconProps }),
2894
+ label: __17("Space evenly", "elementor"),
2895
+ renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(RotatedIcon, { icon: EvenlyIcon, size, ...iconProps }),
2845
2896
  showTooltip: true
2846
2897
  }
2847
2898
  ];
2848
2899
  var AlignContentField = () => {
2849
- const { isSiteRtl } = useDirection();
2850
- return /* @__PURE__ */ React41.createElement(DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React41.createElement(ThemeProvider, null, /* @__PURE__ */ React41.createElement(StylesField, { bind: "align-content" }, /* @__PURE__ */ React41.createElement(Stack10, { gap: 1 }, /* @__PURE__ */ React41.createElement(ControlLabel, null, __16("Align content", "elementor")), /* @__PURE__ */ React41.createElement(ToggleControl, { options, fullWidth: true })))));
2900
+ return /* @__PURE__ */ React43.createElement(UiProviders, null, /* @__PURE__ */ React43.createElement(StylesField, { bind: "align-content" }, /* @__PURE__ */ React43.createElement(Stack10, { gap: 1 }, /* @__PURE__ */ React43.createElement(ControlLabel, null, __17("Align content", "elementor")), /* @__PURE__ */ React43.createElement(ToggleControl, { options, fullWidth: true }))));
2851
2901
  };
2852
2902
 
2853
2903
  // src/components/style-sections/layout-section/align-items-field.tsx
2854
- import * as React42 from "react";
2904
+ import * as React44 from "react";
2855
2905
  import { ToggleControl as ToggleControl2 } from "@elementor/editor-controls";
2856
2906
  import {
2857
2907
  LayoutAlignCenterIcon as CenterIcon2,
@@ -2859,8 +2909,8 @@ import {
2859
2909
  LayoutAlignRightIcon,
2860
2910
  LayoutDistributeVerticalIcon as JustifyIcon
2861
2911
  } from "@elementor/icons";
2862
- import { DirectionProvider as DirectionProvider2, Grid as Grid3, ThemeProvider as ThemeProvider2, withDirection as withDirection4 } from "@elementor/ui";
2863
- import { __ as __17 } from "@wordpress/i18n";
2912
+ import { Grid as Grid4, withDirection as withDirection4 } from "@elementor/ui";
2913
+ import { __ as __18 } from "@wordpress/i18n";
2864
2914
  var StartIcon2 = withDirection4(LayoutAlignLeftIcon);
2865
2915
  var EndIcon2 = withDirection4(LayoutAlignRightIcon);
2866
2916
  var iconProps2 = {
@@ -2870,36 +2920,35 @@ var iconProps2 = {
2870
2920
  var options2 = [
2871
2921
  {
2872
2922
  value: "start",
2873
- label: __17("Start", "elementor"),
2874
- renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(RotatedIcon, { icon: StartIcon2, size, ...iconProps2 }),
2923
+ label: __18("Start", "elementor"),
2924
+ renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(RotatedIcon, { icon: StartIcon2, size, ...iconProps2 }),
2875
2925
  showTooltip: true
2876
2926
  },
2877
2927
  {
2878
2928
  value: "center",
2879
- label: __17("Center", "elementor"),
2880
- renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(RotatedIcon, { icon: CenterIcon2, size, ...iconProps2 }),
2929
+ label: __18("Center", "elementor"),
2930
+ renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(RotatedIcon, { icon: CenterIcon2, size, ...iconProps2 }),
2881
2931
  showTooltip: true
2882
2932
  },
2883
2933
  {
2884
2934
  value: "end",
2885
- label: __17("End", "elementor"),
2886
- renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(RotatedIcon, { icon: EndIcon2, size, ...iconProps2 }),
2935
+ label: __18("End", "elementor"),
2936
+ renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(RotatedIcon, { icon: EndIcon2, size, ...iconProps2 }),
2887
2937
  showTooltip: true
2888
2938
  },
2889
2939
  {
2890
2940
  value: "stretch",
2891
- label: __17("Stretch", "elementor"),
2892
- renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(RotatedIcon, { icon: JustifyIcon, size, ...iconProps2 }),
2941
+ label: __18("Stretch", "elementor"),
2942
+ renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(RotatedIcon, { icon: JustifyIcon, size, ...iconProps2 }),
2893
2943
  showTooltip: true
2894
2944
  }
2895
2945
  ];
2896
2946
  var AlignItemsField = () => {
2897
- const { isSiteRtl } = useDirection();
2898
- return /* @__PURE__ */ React42.createElement(DirectionProvider2, { rtl: isSiteRtl }, /* @__PURE__ */ React42.createElement(ThemeProvider2, null, /* @__PURE__ */ React42.createElement(StylesField, { bind: "align-items" }, /* @__PURE__ */ React42.createElement(Grid3, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React42.createElement(Grid3, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(ControlLabel, null, __17("Align items", "elementor"))), /* @__PURE__ */ React42.createElement(Grid3, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React42.createElement(ToggleControl2, { options: options2 }))))));
2947
+ return /* @__PURE__ */ React44.createElement(UiProviders, null, /* @__PURE__ */ React44.createElement(StylesField, { bind: "align-items" }, /* @__PURE__ */ React44.createElement(Grid4, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React44.createElement(Grid4, { item: true, xs: 6 }, /* @__PURE__ */ React44.createElement(ControlLabel, null, __18("Align items", "elementor"))), /* @__PURE__ */ React44.createElement(Grid4, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React44.createElement(ToggleControl2, { options: options2 })))));
2899
2948
  };
2900
2949
 
2901
2950
  // src/components/style-sections/layout-section/align-self-child-field.tsx
2902
- import * as React43 from "react";
2951
+ import * as React45 from "react";
2903
2952
  import { ToggleControl as ToggleControl3 } from "@elementor/editor-controls";
2904
2953
  import {
2905
2954
  LayoutAlignCenterIcon as CenterIcon3,
@@ -2907,8 +2956,8 @@ import {
2907
2956
  LayoutAlignRightIcon as LayoutAlignRightIcon2,
2908
2957
  LayoutDistributeVerticalIcon as JustifyIcon2
2909
2958
  } from "@elementor/icons";
2910
- import { DirectionProvider as DirectionProvider3, Grid as Grid4, ThemeProvider as ThemeProvider3, withDirection as withDirection5 } from "@elementor/ui";
2911
- import { __ as __18 } from "@wordpress/i18n";
2959
+ import { Grid as Grid5, withDirection as withDirection5 } from "@elementor/ui";
2960
+ import { __ as __19 } from "@wordpress/i18n";
2912
2961
  var ALIGN_SELF_CHILD_OFFSET_MAP = {
2913
2962
  row: 90,
2914
2963
  "row-reverse": 90,
@@ -2923,8 +2972,8 @@ var iconProps3 = {
2923
2972
  var getOptions = (parentStyleDirection) => [
2924
2973
  {
2925
2974
  value: "start",
2926
- label: __18("Start", "elementor"),
2927
- renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(
2975
+ label: __19("Start", "elementor"),
2976
+ renderContent: ({ size }) => /* @__PURE__ */ React45.createElement(
2928
2977
  RotatedIcon,
2929
2978
  {
2930
2979
  icon: StartIcon3,
@@ -2937,8 +2986,8 @@ var getOptions = (parentStyleDirection) => [
2937
2986
  },
2938
2987
  {
2939
2988
  value: "center",
2940
- label: __18("Center", "elementor"),
2941
- renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(
2989
+ label: __19("Center", "elementor"),
2990
+ renderContent: ({ size }) => /* @__PURE__ */ React45.createElement(
2942
2991
  RotatedIcon,
2943
2992
  {
2944
2993
  icon: CenterIcon3,
@@ -2951,8 +3000,8 @@ var getOptions = (parentStyleDirection) => [
2951
3000
  },
2952
3001
  {
2953
3002
  value: "end",
2954
- label: __18("End", "elementor"),
2955
- renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(
3003
+ label: __19("End", "elementor"),
3004
+ renderContent: ({ size }) => /* @__PURE__ */ React45.createElement(
2956
3005
  RotatedIcon,
2957
3006
  {
2958
3007
  icon: EndIcon3,
@@ -2965,8 +3014,8 @@ var getOptions = (parentStyleDirection) => [
2965
3014
  },
2966
3015
  {
2967
3016
  value: "stretch",
2968
- label: __18("Stretch", "elementor"),
2969
- renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(
3017
+ label: __19("Stretch", "elementor"),
3018
+ renderContent: ({ size }) => /* @__PURE__ */ React45.createElement(
2970
3019
  RotatedIcon,
2971
3020
  {
2972
3021
  icon: JustifyIcon2,
@@ -2979,33 +3028,32 @@ var getOptions = (parentStyleDirection) => [
2979
3028
  }
2980
3029
  ];
2981
3030
  var AlignSelfChild = ({ parentStyleDirection }) => {
2982
- const { isSiteRtl } = useDirection();
2983
- return /* @__PURE__ */ React43.createElement(DirectionProvider3, { rtl: isSiteRtl }, /* @__PURE__ */ React43.createElement(ThemeProvider3, null, /* @__PURE__ */ React43.createElement(StylesField, { bind: "align-self" }, /* @__PURE__ */ React43.createElement(Grid4, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React43.createElement(Grid4, { item: true, xs: 6 }, /* @__PURE__ */ React43.createElement(ControlLabel, null, __18("Align self", "elementor"))), /* @__PURE__ */ React43.createElement(Grid4, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React43.createElement(ToggleControl3, { options: getOptions(parentStyleDirection) }))))));
3031
+ return /* @__PURE__ */ React45.createElement(UiProviders, null, /* @__PURE__ */ React45.createElement(StylesField, { bind: "align-self" }, /* @__PURE__ */ React45.createElement(Grid5, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React45.createElement(Grid5, { item: true, xs: 6 }, /* @__PURE__ */ React45.createElement(ControlLabel, null, __19("Align self", "elementor"))), /* @__PURE__ */ React45.createElement(Grid5, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React45.createElement(ToggleControl3, { options: getOptions(parentStyleDirection) })))));
2984
3032
  };
2985
3033
 
2986
3034
  // src/components/style-sections/layout-section/display-field.tsx
2987
- import * as React44 from "react";
3035
+ import * as React46 from "react";
2988
3036
  import { ToggleControl as ToggleControl4 } from "@elementor/editor-controls";
2989
3037
  import { isExperimentActive as isExperimentActive7 } from "@elementor/editor-v1-adapters";
2990
3038
  import { Stack as Stack11 } from "@elementor/ui";
2991
- import { __ as __19 } from "@wordpress/i18n";
3039
+ import { __ as __20 } from "@wordpress/i18n";
2992
3040
  var displayFieldItems = [
2993
3041
  {
2994
3042
  value: "block",
2995
- renderContent: () => __19("Block", "elementor"),
2996
- label: __19("Block", "elementor"),
3043
+ renderContent: () => __20("Block", "elementor"),
3044
+ label: __20("Block", "elementor"),
2997
3045
  showTooltip: true
2998
3046
  },
2999
3047
  {
3000
3048
  value: "flex",
3001
- renderContent: () => __19("Flex", "elementor"),
3002
- label: __19("Flex", "elementor"),
3049
+ renderContent: () => __20("Flex", "elementor"),
3050
+ label: __20("Flex", "elementor"),
3003
3051
  showTooltip: true
3004
3052
  },
3005
3053
  {
3006
3054
  value: "inline-block",
3007
- renderContent: () => __19("In-blk", "elementor"),
3008
- label: __19("Inline-block", "elementor"),
3055
+ renderContent: () => __20("In-blk", "elementor"),
3056
+ label: __20("Inline-block", "elementor"),
3009
3057
  showTooltip: true
3010
3058
  }
3011
3059
  ];
@@ -3015,72 +3063,71 @@ var DisplayField = () => {
3015
3063
  if (isDisplayNoneFeatureActive) {
3016
3064
  items3.push({
3017
3065
  value: "none",
3018
- renderContent: () => __19("None", "elementor"),
3019
- label: __19("None", "elementor"),
3066
+ renderContent: () => __20("None", "elementor"),
3067
+ label: __20("None", "elementor"),
3020
3068
  showTooltip: true
3021
3069
  });
3022
3070
  }
3023
3071
  items3.push({
3024
3072
  value: "inline-flex",
3025
- renderContent: () => __19("In-flx", "elementor"),
3026
- label: __19("Inline-flex", "elementor"),
3073
+ renderContent: () => __20("In-flx", "elementor"),
3074
+ label: __20("Inline-flex", "elementor"),
3027
3075
  showTooltip: true
3028
3076
  });
3029
3077
  const placeholder = useDisplayPlaceholderValue();
3030
- return /* @__PURE__ */ React44.createElement(StylesField, { bind: "display", placeholder }, /* @__PURE__ */ React44.createElement(Stack11, { gap: 0.75 }, /* @__PURE__ */ React44.createElement(ControlLabel, null, __19("Display", "elementor")), /* @__PURE__ */ React44.createElement(ToggleControl4, { options: items3, maxItems: 4, fullWidth: true })));
3078
+ return /* @__PURE__ */ React46.createElement(StylesField, { bind: "display", placeholder }, /* @__PURE__ */ React46.createElement(Stack11, { gap: 0.75 }, /* @__PURE__ */ React46.createElement(ControlLabel, null, __20("Display", "elementor")), /* @__PURE__ */ React46.createElement(ToggleControl4, { options: items3, maxItems: 4, fullWidth: true })));
3031
3079
  };
3032
3080
  var useDisplayPlaceholderValue = () => useStylesInheritanceChain(["display"])[0]?.value ?? void 0;
3033
3081
 
3034
3082
  // src/components/style-sections/layout-section/flex-direction-field.tsx
3035
- import * as React45 from "react";
3083
+ import * as React47 from "react";
3036
3084
  import { ToggleControl as ToggleControl5 } from "@elementor/editor-controls";
3037
3085
  import { ArrowDownSmallIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpSmallIcon } from "@elementor/icons";
3038
- import { DirectionProvider as DirectionProvider4, Grid as Grid5, ThemeProvider as ThemeProvider4, withDirection as withDirection6 } from "@elementor/ui";
3039
- import { __ as __20 } from "@wordpress/i18n";
3086
+ import { Grid as Grid6, withDirection as withDirection6 } from "@elementor/ui";
3087
+ import { __ as __21 } from "@wordpress/i18n";
3040
3088
  var options3 = [
3041
3089
  {
3042
3090
  value: "row",
3043
- label: __20("Row", "elementor"),
3091
+ label: __21("Row", "elementor"),
3044
3092
  renderContent: ({ size }) => {
3045
3093
  const StartIcon5 = withDirection6(ArrowRightIcon);
3046
- return /* @__PURE__ */ React45.createElement(StartIcon5, { fontSize: size });
3094
+ return /* @__PURE__ */ React47.createElement(StartIcon5, { fontSize: size });
3047
3095
  },
3048
3096
  showTooltip: true
3049
3097
  },
3050
3098
  {
3051
3099
  value: "column",
3052
- label: __20("Column", "elementor"),
3053
- renderContent: ({ size }) => /* @__PURE__ */ React45.createElement(ArrowDownSmallIcon, { fontSize: size }),
3100
+ label: __21("Column", "elementor"),
3101
+ renderContent: ({ size }) => /* @__PURE__ */ React47.createElement(ArrowDownSmallIcon, { fontSize: size }),
3054
3102
  showTooltip: true
3055
3103
  },
3056
3104
  {
3057
3105
  value: "row-reverse",
3058
- label: __20("Reversed row", "elementor"),
3106
+ label: __21("Reversed row", "elementor"),
3059
3107
  renderContent: ({ size }) => {
3060
3108
  const EndIcon5 = withDirection6(ArrowLeftIcon);
3061
- return /* @__PURE__ */ React45.createElement(EndIcon5, { fontSize: size });
3109
+ return /* @__PURE__ */ React47.createElement(EndIcon5, { fontSize: size });
3062
3110
  },
3063
3111
  showTooltip: true
3064
3112
  },
3065
3113
  {
3066
3114
  value: "column-reverse",
3067
- label: __20("Reversed column", "elementor"),
3068
- renderContent: ({ size }) => /* @__PURE__ */ React45.createElement(ArrowUpSmallIcon, { fontSize: size }),
3115
+ label: __21("Reversed column", "elementor"),
3116
+ renderContent: ({ size }) => /* @__PURE__ */ React47.createElement(ArrowUpSmallIcon, { fontSize: size }),
3069
3117
  showTooltip: true
3070
3118
  }
3071
3119
  ];
3072
3120
  var FlexDirectionField = () => {
3073
- const { isSiteRtl } = useDirection();
3074
- return /* @__PURE__ */ React45.createElement(DirectionProvider4, { rtl: isSiteRtl }, /* @__PURE__ */ React45.createElement(ThemeProvider4, null, /* @__PURE__ */ React45.createElement(StylesField, { bind: "flex-direction" }, /* @__PURE__ */ React45.createElement(Grid5, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React45.createElement(Grid5, { item: true, xs: 6 }, /* @__PURE__ */ React45.createElement(ControlLabel, null, __20("Direction", "elementor"))), /* @__PURE__ */ React45.createElement(Grid5, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React45.createElement(ToggleControl5, { options: options3 }))))));
3121
+ return /* @__PURE__ */ React47.createElement(UiProviders, null, /* @__PURE__ */ React47.createElement(StylesField, { bind: "flex-direction" }, /* @__PURE__ */ React47.createElement(Grid6, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React47.createElement(Grid6, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(ControlLabel, null, __21("Direction", "elementor"))), /* @__PURE__ */ React47.createElement(Grid6, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React47.createElement(ToggleControl5, { options: options3 })))));
3075
3122
  };
3076
3123
 
3077
3124
  // src/components/style-sections/layout-section/flex-order-field.tsx
3078
- import * as React46 from "react";
3125
+ import * as React48 from "react";
3079
3126
  import { useState as useState10 } from "react";
3080
3127
  import { ControlToggleButtonGroup, NumberControl } from "@elementor/editor-controls";
3081
3128
  import { ArrowDownSmallIcon as ArrowDownSmallIcon2, ArrowUpSmallIcon as ArrowUpSmallIcon2, PencilIcon } from "@elementor/icons";
3082
- import { DirectionProvider as DirectionProvider5, Grid as Grid6, ThemeProvider as ThemeProvider5 } from "@elementor/ui";
3083
- import { __ as __21 } from "@wordpress/i18n";
3129
+ import { Grid as Grid7 } from "@elementor/ui";
3130
+ import { __ as __22 } from "@wordpress/i18n";
3084
3131
  var FIRST_DEFAULT_VALUE = -99999;
3085
3132
  var LAST_DEFAULT_VALUE = 99999;
3086
3133
  var FIRST = "first";
@@ -3093,27 +3140,25 @@ var orderValueMap = {
3093
3140
  var items = [
3094
3141
  {
3095
3142
  value: FIRST,
3096
- label: __21("First", "elementor"),
3097
- renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(ArrowUpSmallIcon2, { fontSize: size }),
3143
+ label: __22("First", "elementor"),
3144
+ renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(ArrowUpSmallIcon2, { fontSize: size }),
3098
3145
  showTooltip: true
3099
3146
  },
3100
3147
  {
3101
3148
  value: LAST,
3102
- label: __21("Last", "elementor"),
3103
- renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(ArrowDownSmallIcon2, { fontSize: size }),
3149
+ label: __22("Last", "elementor"),
3150
+ renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(ArrowDownSmallIcon2, { fontSize: size }),
3104
3151
  showTooltip: true
3105
3152
  },
3106
3153
  {
3107
3154
  value: CUSTOM,
3108
- label: __21("Custom", "elementor"),
3109
- renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(PencilIcon, { fontSize: size }),
3155
+ label: __22("Custom", "elementor"),
3156
+ renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(PencilIcon, { fontSize: size }),
3110
3157
  showTooltip: true
3111
3158
  }
3112
3159
  ];
3113
3160
  var FlexOrderField = () => {
3114
- const { isSiteRtl } = useDirection();
3115
- const [order, setOrder] = useStylesField("order");
3116
- const { canEdit } = useStyle();
3161
+ const { value: order, setValue: setOrder, canEdit } = useStylesField("order");
3117
3162
  const [groupControlValue, setGroupControlValue] = useState10(getGroupControlValue(order?.value || null));
3118
3163
  const handleToggleButtonChange = (group) => {
3119
3164
  setGroupControlValue(group);
@@ -3123,7 +3168,7 @@ var FlexOrderField = () => {
3123
3168
  }
3124
3169
  setOrder({ $$type: "number", value: orderValueMap[group] });
3125
3170
  };
3126
- return /* @__PURE__ */ React46.createElement(DirectionProvider5, { rtl: isSiteRtl }, /* @__PURE__ */ React46.createElement(ThemeProvider5, null, /* @__PURE__ */ React46.createElement(StylesField, { bind: "order" }, /* @__PURE__ */ React46.createElement(SectionContent, null, /* @__PURE__ */ React46.createElement(Grid6, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React46.createElement(Grid6, { item: true, xs: 6 }, /* @__PURE__ */ React46.createElement(ControlLabel, null, __21("Order", "elementor"))), /* @__PURE__ */ React46.createElement(Grid6, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React46.createElement(
3171
+ return /* @__PURE__ */ React48.createElement(UiProviders, null, /* @__PURE__ */ React48.createElement(StylesField, { bind: "order" }, /* @__PURE__ */ React48.createElement(SectionContent, null, /* @__PURE__ */ React48.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React48.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React48.createElement(ControlLabel, null, __22("Order", "elementor"))), /* @__PURE__ */ React48.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React48.createElement(
3127
3172
  ControlToggleButtonGroup,
3128
3173
  {
3129
3174
  items,
@@ -3132,14 +3177,14 @@ var FlexOrderField = () => {
3132
3177
  exclusive: true,
3133
3178
  disabled: !canEdit
3134
3179
  }
3135
- ))), CUSTOM === groupControlValue && /* @__PURE__ */ React46.createElement(Grid6, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React46.createElement(Grid6, { item: true, xs: 6 }, /* @__PURE__ */ React46.createElement(ControlLabel, null, __21("Custom order", "elementor"))), /* @__PURE__ */ React46.createElement(Grid6, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React46.createElement(
3180
+ ))), CUSTOM === groupControlValue && /* @__PURE__ */ React48.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React48.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React48.createElement(ControlLabel, null, __22("Custom order", "elementor"))), /* @__PURE__ */ React48.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React48.createElement(
3136
3181
  NumberControl,
3137
3182
  {
3138
3183
  min: FIRST_DEFAULT_VALUE + 1,
3139
3184
  max: LAST_DEFAULT_VALUE - 1,
3140
3185
  shouldForceInt: true
3141
3186
  }
3142
- )))))));
3187
+ ))))));
3143
3188
  };
3144
3189
  var getGroupControlValue = (order) => {
3145
3190
  if (LAST_DEFAULT_VALUE === order) {
@@ -3152,50 +3197,48 @@ var getGroupControlValue = (order) => {
3152
3197
  };
3153
3198
 
3154
3199
  // src/components/style-sections/layout-section/flex-size-field.tsx
3155
- import * as React47 from "react";
3156
- import { useMemo as useMemo5, useState as useState11 } from "react";
3200
+ import * as React49 from "react";
3201
+ import { useMemo as useMemo5, useRef as useRef6, useState as useState11 } from "react";
3157
3202
  import {
3158
3203
  ControlToggleButtonGroup as ControlToggleButtonGroup2,
3159
3204
  NumberControl as NumberControl2,
3160
- SizeControl as SizeControl2
3205
+ SizeControl as SizeControl3
3161
3206
  } from "@elementor/editor-controls";
3162
3207
  import { numberPropTypeUtil } from "@elementor/editor-props";
3163
3208
  import { ExpandIcon, PencilIcon as PencilIcon2, ShrinkIcon } from "@elementor/icons";
3164
- import { DirectionProvider as DirectionProvider6, Grid as Grid7, ThemeProvider as ThemeProvider6 } from "@elementor/ui";
3165
- import { __ as __22 } from "@wordpress/i18n";
3209
+ import { Grid as Grid8 } from "@elementor/ui";
3210
+ import { __ as __23 } from "@wordpress/i18n";
3166
3211
  var DEFAULT = 1;
3167
3212
  var items2 = [
3168
3213
  {
3169
3214
  value: "flex-grow",
3170
- label: __22("Grow", "elementor"),
3171
- renderContent: ({ size }) => /* @__PURE__ */ React47.createElement(ExpandIcon, { fontSize: size }),
3215
+ label: __23("Grow", "elementor"),
3216
+ renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(ExpandIcon, { fontSize: size }),
3172
3217
  showTooltip: true
3173
3218
  },
3174
3219
  {
3175
3220
  value: "flex-shrink",
3176
- label: __22("Shrink", "elementor"),
3177
- renderContent: ({ size }) => /* @__PURE__ */ React47.createElement(ShrinkIcon, { fontSize: size }),
3221
+ label: __23("Shrink", "elementor"),
3222
+ renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(ShrinkIcon, { fontSize: size }),
3178
3223
  showTooltip: true
3179
3224
  },
3180
3225
  {
3181
3226
  value: "custom",
3182
- label: __22("Custom", "elementor"),
3183
- renderContent: ({ size }) => /* @__PURE__ */ React47.createElement(PencilIcon2, { fontSize: size }),
3227
+ label: __23("Custom", "elementor"),
3228
+ renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(PencilIcon2, { fontSize: size }),
3184
3229
  showTooltip: true
3185
3230
  }
3186
3231
  ];
3187
3232
  var FlexSizeField = () => {
3188
- const { isSiteRtl } = useDirection();
3189
- const { canEdit } = useStyle();
3190
- const [fields, setFields] = useStylesFields(["flex-grow", "flex-shrink", "flex-basis"]);
3191
- const grow = fields?.["flex-grow"]?.value || null;
3192
- const shrink = fields?.["flex-shrink"]?.value || null;
3193
- const basis = fields?.["flex-basis"]?.value || null;
3233
+ const { values, setValues, canEdit } = useStylesFields(["flex-grow", "flex-shrink", "flex-basis"]);
3234
+ const grow = values?.["flex-grow"]?.value || null;
3235
+ const shrink = values?.["flex-shrink"]?.value || null;
3236
+ const basis = values?.["flex-basis"]?.value || null;
3194
3237
  const currentGroup = useMemo5(() => getActiveGroup({ grow, shrink, basis }), [grow, shrink, basis]), [activeGroup, setActiveGroup] = useState11(currentGroup);
3195
3238
  const onChangeGroup = (group = null) => {
3196
3239
  setActiveGroup(group);
3197
3240
  if (!group || group === "custom") {
3198
- setFields({
3241
+ setValues({
3199
3242
  "flex-basis": null,
3200
3243
  "flex-grow": null,
3201
3244
  "flex-shrink": null
@@ -3203,20 +3246,20 @@ var FlexSizeField = () => {
3203
3246
  return;
3204
3247
  }
3205
3248
  if (group === "flex-grow") {
3206
- setFields({
3249
+ setValues({
3207
3250
  "flex-basis": null,
3208
3251
  "flex-grow": numberPropTypeUtil.create(DEFAULT),
3209
3252
  "flex-shrink": null
3210
3253
  });
3211
3254
  return;
3212
3255
  }
3213
- setFields({
3256
+ setValues({
3214
3257
  "flex-basis": null,
3215
3258
  "flex-grow": null,
3216
3259
  "flex-shrink": numberPropTypeUtil.create(DEFAULT)
3217
3260
  });
3218
3261
  };
3219
- return /* @__PURE__ */ React47.createElement(DirectionProvider6, { rtl: isSiteRtl }, /* @__PURE__ */ React47.createElement(ThemeProvider6, null, /* @__PURE__ */ React47.createElement(SectionContent, null, /* @__PURE__ */ React47.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React47.createElement(StylesField, { bind: activeGroup ?? "" }, /* @__PURE__ */ React47.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(ControlLabel, null, __22("Size", "elementor"))), /* @__PURE__ */ React47.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React47.createElement(
3262
+ return /* @__PURE__ */ React49.createElement(UiProviders, null, /* @__PURE__ */ React49.createElement(SectionContent, null, /* @__PURE__ */ React49.createElement(Grid8, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React49.createElement(StylesField, { bind: activeGroup ?? "" }, /* @__PURE__ */ React49.createElement(Grid8, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(ControlLabel, null, __23("Size", "elementor"))), /* @__PURE__ */ React49.createElement(Grid8, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React49.createElement(
3220
3263
  ControlToggleButtonGroup2,
3221
3264
  {
3222
3265
  value: activeGroup,
@@ -3225,9 +3268,12 @@ var FlexSizeField = () => {
3225
3268
  items: items2,
3226
3269
  exclusive: true
3227
3270
  }
3228
- )))), "custom" === activeGroup && /* @__PURE__ */ React47.createElement(FlexCustomField, null))));
3271
+ )))), "custom" === activeGroup && /* @__PURE__ */ React49.createElement(FlexCustomField, null)));
3272
+ };
3273
+ var FlexCustomField = () => {
3274
+ const flexBasisRowRef = useRef6();
3275
+ return /* @__PURE__ */ React49.createElement(React49.Fragment, null, /* @__PURE__ */ React49.createElement(StylesField, { bind: "flex-grow" }, /* @__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, __23("Grow", "elementor"))), /* @__PURE__ */ React49.createElement(Grid8, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React49.createElement(NumberControl2, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React49.createElement(StylesField, { bind: "flex-shrink" }, /* @__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, __23("Shrink", "elementor"))), /* @__PURE__ */ React49.createElement(Grid8, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React49.createElement(NumberControl2, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React49.createElement(StylesField, { bind: "flex-basis" }, /* @__PURE__ */ React49.createElement(Grid8, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap", ref: flexBasisRowRef }, /* @__PURE__ */ React49.createElement(Grid8, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(ControlLabel, null, __23("Basis", "elementor"))), /* @__PURE__ */ React49.createElement(Grid8, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React49.createElement(SizeControl3, { extendedOptions: ["auto"], anchorRef: flexBasisRowRef })))));
3229
3276
  };
3230
- var FlexCustomField = () => /* @__PURE__ */ React47.createElement(React47.Fragment, null, /* @__PURE__ */ React47.createElement(StylesField, { bind: "flex-grow" }, /* @__PURE__ */ React47.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React47.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(ControlLabel, null, __22("Grow", "elementor"))), /* @__PURE__ */ React47.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React47.createElement(NumberControl2, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React47.createElement(StylesField, { bind: "flex-shrink" }, /* @__PURE__ */ React47.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React47.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(ControlLabel, null, __22("Shrink", "elementor"))), /* @__PURE__ */ React47.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React47.createElement(NumberControl2, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React47.createElement(StylesField, { bind: "flex-basis" }, /* @__PURE__ */ React47.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React47.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(ControlLabel, null, __22("Basis", "elementor"))), /* @__PURE__ */ React47.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React47.createElement(SizeControl2, { extendedValues: ["auto"] })))));
3231
3277
  var getActiveGroup = ({
3232
3278
  grow,
3233
3279
  shrink,
@@ -3249,16 +3295,16 @@ var getActiveGroup = ({
3249
3295
  };
3250
3296
 
3251
3297
  // src/components/style-sections/layout-section/gap-control-field.tsx
3252
- import * as React48 from "react";
3298
+ import * as React50 from "react";
3253
3299
  import { GapControl } from "@elementor/editor-controls";
3254
3300
  import { Stack as Stack12 } from "@elementor/ui";
3255
- import { __ as __23 } from "@wordpress/i18n";
3301
+ import { __ as __24 } from "@wordpress/i18n";
3256
3302
  var GapControlField = () => {
3257
- return /* @__PURE__ */ React48.createElement(Stack12, { gap: 1 }, /* @__PURE__ */ React48.createElement(StylesField, { bind: "gap" }, /* @__PURE__ */ React48.createElement(GapControl, { label: __23("Gaps", "elementor") })));
3303
+ return /* @__PURE__ */ React50.createElement(Stack12, { gap: 1 }, /* @__PURE__ */ React50.createElement(StylesField, { bind: "gap" }, /* @__PURE__ */ React50.createElement(GapControl, { label: __24("Gaps", "elementor") })));
3258
3304
  };
3259
3305
 
3260
3306
  // src/components/style-sections/layout-section/justify-content-field.tsx
3261
- import * as React49 from "react";
3307
+ import * as React51 from "react";
3262
3308
  import { ToggleControl as ToggleControl6 } from "@elementor/editor-controls";
3263
3309
  import {
3264
3310
  JustifyBottomIcon as JustifyBottomIcon2,
@@ -3268,8 +3314,8 @@ import {
3268
3314
  JustifySpaceBetweenVerticalIcon as BetweenIcon2,
3269
3315
  JustifyTopIcon as JustifyTopIcon2
3270
3316
  } from "@elementor/icons";
3271
- import { DirectionProvider as DirectionProvider7, Stack as Stack13, ThemeProvider as ThemeProvider7, withDirection as withDirection7 } from "@elementor/ui";
3272
- import { __ as __24 } from "@wordpress/i18n";
3317
+ import { Stack as Stack13, withDirection as withDirection7 } from "@elementor/ui";
3318
+ import { __ as __25 } from "@wordpress/i18n";
3273
3319
  var StartIcon4 = withDirection7(JustifyTopIcon2);
3274
3320
  var EndIcon4 = withDirection7(JustifyBottomIcon2);
3275
3321
  var iconProps4 = {
@@ -3279,93 +3325,91 @@ var iconProps4 = {
3279
3325
  var options4 = [
3280
3326
  {
3281
3327
  value: "flex-start",
3282
- label: __24("Start", "elementor"),
3283
- renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(RotatedIcon, { icon: StartIcon4, size, ...iconProps4 }),
3328
+ label: __25("Start", "elementor"),
3329
+ renderContent: ({ size }) => /* @__PURE__ */ React51.createElement(RotatedIcon, { icon: StartIcon4, size, ...iconProps4 }),
3284
3330
  showTooltip: true
3285
3331
  },
3286
3332
  {
3287
3333
  value: "center",
3288
- label: __24("Center", "elementor"),
3289
- renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(RotatedIcon, { icon: CenterIcon4, size, ...iconProps4 }),
3334
+ label: __25("Center", "elementor"),
3335
+ renderContent: ({ size }) => /* @__PURE__ */ React51.createElement(RotatedIcon, { icon: CenterIcon4, size, ...iconProps4 }),
3290
3336
  showTooltip: true
3291
3337
  },
3292
3338
  {
3293
3339
  value: "flex-end",
3294
- label: __24("End", "elementor"),
3295
- renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(RotatedIcon, { icon: EndIcon4, size, ...iconProps4 }),
3340
+ label: __25("End", "elementor"),
3341
+ renderContent: ({ size }) => /* @__PURE__ */ React51.createElement(RotatedIcon, { icon: EndIcon4, size, ...iconProps4 }),
3296
3342
  showTooltip: true
3297
3343
  },
3298
3344
  {
3299
3345
  value: "space-between",
3300
- label: __24("Space between", "elementor"),
3301
- renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(RotatedIcon, { icon: BetweenIcon2, size, ...iconProps4 }),
3346
+ label: __25("Space between", "elementor"),
3347
+ renderContent: ({ size }) => /* @__PURE__ */ React51.createElement(RotatedIcon, { icon: BetweenIcon2, size, ...iconProps4 }),
3302
3348
  showTooltip: true
3303
3349
  },
3304
3350
  {
3305
3351
  value: "space-around",
3306
- label: __24("Space around", "elementor"),
3307
- renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(RotatedIcon, { icon: AroundIcon2, size, ...iconProps4 }),
3352
+ label: __25("Space around", "elementor"),
3353
+ renderContent: ({ size }) => /* @__PURE__ */ React51.createElement(RotatedIcon, { icon: AroundIcon2, size, ...iconProps4 }),
3308
3354
  showTooltip: true
3309
3355
  },
3310
3356
  {
3311
3357
  value: "space-evenly",
3312
- label: __24("Space evenly", "elementor"),
3313
- renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(RotatedIcon, { icon: EvenlyIcon2, size, ...iconProps4 }),
3358
+ label: __25("Space evenly", "elementor"),
3359
+ renderContent: ({ size }) => /* @__PURE__ */ React51.createElement(RotatedIcon, { icon: EvenlyIcon2, size, ...iconProps4 }),
3314
3360
  showTooltip: true
3315
3361
  }
3316
3362
  ];
3317
3363
  var JustifyContentField = () => {
3318
- const { isSiteRtl } = useDirection();
3319
- return /* @__PURE__ */ React49.createElement(DirectionProvider7, { rtl: isSiteRtl }, /* @__PURE__ */ React49.createElement(ThemeProvider7, null, /* @__PURE__ */ React49.createElement(StylesField, { bind: "justify-content" }, /* @__PURE__ */ React49.createElement(Stack13, { gap: 0.75 }, /* @__PURE__ */ React49.createElement(ControlLabel, null, __24("Justify content", "elementor")), /* @__PURE__ */ React49.createElement(ToggleControl6, { options: options4, fullWidth: true })))));
3364
+ return /* @__PURE__ */ React51.createElement(UiProviders, null, /* @__PURE__ */ React51.createElement(StylesField, { bind: "justify-content" }, /* @__PURE__ */ React51.createElement(Stack13, { gap: 0.75 }, /* @__PURE__ */ React51.createElement(ControlLabel, null, __25("Justify content", "elementor")), /* @__PURE__ */ React51.createElement(ToggleControl6, { options: options4, fullWidth: true }))));
3320
3365
  };
3321
3366
 
3322
3367
  // src/components/style-sections/layout-section/wrap-field.tsx
3323
- import * as React50 from "react";
3368
+ import * as React52 from "react";
3324
3369
  import { ToggleControl as ToggleControl7 } from "@elementor/editor-controls";
3325
3370
  import { ArrowBackIcon, ArrowForwardIcon, ArrowRightIcon as ArrowRightIcon2 } from "@elementor/icons";
3326
- import { DirectionProvider as DirectionProvider8, Grid as Grid8, ThemeProvider as ThemeProvider8 } from "@elementor/ui";
3327
- import { __ as __25 } from "@wordpress/i18n";
3371
+ import { Grid as Grid9 } from "@elementor/ui";
3372
+ import { __ as __26 } from "@wordpress/i18n";
3328
3373
  var options5 = [
3329
3374
  {
3330
3375
  value: "nowrap",
3331
- label: __25("No wrap", "elementor"),
3332
- renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(ArrowRightIcon2, { fontSize: size }),
3376
+ label: __26("No wrap", "elementor"),
3377
+ renderContent: ({ size }) => /* @__PURE__ */ React52.createElement(ArrowRightIcon2, { fontSize: size }),
3333
3378
  showTooltip: true
3334
3379
  },
3335
3380
  {
3336
3381
  value: "wrap",
3337
- label: __25("Wrap", "elementor"),
3338
- renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(ArrowBackIcon, { fontSize: size }),
3382
+ label: __26("Wrap", "elementor"),
3383
+ renderContent: ({ size }) => /* @__PURE__ */ React52.createElement(ArrowBackIcon, { fontSize: size }),
3339
3384
  showTooltip: true
3340
3385
  },
3341
3386
  {
3342
3387
  value: "wrap-reverse",
3343
- label: __25("Reversed wrap", "elementor"),
3344
- renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(ArrowForwardIcon, { fontSize: size }),
3388
+ label: __26("Reversed wrap", "elementor"),
3389
+ renderContent: ({ size }) => /* @__PURE__ */ React52.createElement(ArrowForwardIcon, { fontSize: size }),
3345
3390
  showTooltip: true
3346
3391
  }
3347
3392
  ];
3348
3393
  var WrapField = () => {
3349
- const { isSiteRtl } = useDirection();
3350
- return /* @__PURE__ */ React50.createElement(DirectionProvider8, { rtl: isSiteRtl }, /* @__PURE__ */ React50.createElement(ThemeProvider8, null, /* @__PURE__ */ React50.createElement(StylesField, { bind: "flex-wrap" }, /* @__PURE__ */ React50.createElement(Grid8, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React50.createElement(Grid8, { item: true, xs: 6 }, /* @__PURE__ */ React50.createElement(ControlLabel, null, __25("Wrap", "elementor"))), /* @__PURE__ */ React50.createElement(Grid8, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React50.createElement(ToggleControl7, { options: options5 }))))));
3394
+ return /* @__PURE__ */ React52.createElement(UiProviders, null, /* @__PURE__ */ React52.createElement(StylesField, { bind: "flex-wrap" }, /* @__PURE__ */ React52.createElement(Grid9, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React52.createElement(Grid9, { item: true, xs: 6 }, /* @__PURE__ */ React52.createElement(ControlLabel, null, __26("Wrap", "elementor"))), /* @__PURE__ */ React52.createElement(Grid9, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React52.createElement(ToggleControl7, { options: options5 })))));
3351
3395
  };
3352
3396
 
3353
3397
  // src/components/style-sections/layout-section/layout-section.tsx
3354
3398
  var LayoutSection = () => {
3355
- const [display] = useStylesField("display");
3399
+ const { value: display } = useStylesField("display");
3356
3400
  const displayPlaceholder = useDisplayPlaceholderValue();
3357
3401
  const isDisplayFlex = shouldDisplayFlexFields(display, displayPlaceholder);
3358
3402
  const { element } = useElement();
3359
3403
  const parent = useParentElement(element.id);
3360
3404
  const parentStyle = useComputedStyle(parent?.id || null);
3361
3405
  const parentStyleDirection = parentStyle?.flexDirection ?? "row";
3362
- return /* @__PURE__ */ React51.createElement(SectionContent, null, /* @__PURE__ */ React51.createElement(DisplayField, null), isDisplayFlex && /* @__PURE__ */ React51.createElement(FlexFields, null), "flex" === parentStyle?.display && /* @__PURE__ */ React51.createElement(FlexChildFields, { parentStyleDirection }));
3406
+ return /* @__PURE__ */ React53.createElement(SectionContent, null, /* @__PURE__ */ React53.createElement(DisplayField, null), isDisplayFlex && /* @__PURE__ */ React53.createElement(FlexFields, null), "flex" === parentStyle?.display && /* @__PURE__ */ React53.createElement(FlexChildFields, { parentStyleDirection }));
3363
3407
  };
3364
3408
  var FlexFields = () => {
3365
- const [flexWrap] = useStylesField("flex-wrap");
3366
- return /* @__PURE__ */ React51.createElement(React51.Fragment, null, /* @__PURE__ */ React51.createElement(FlexDirectionField, null), /* @__PURE__ */ React51.createElement(JustifyContentField, null), /* @__PURE__ */ React51.createElement(AlignItemsField, null), /* @__PURE__ */ React51.createElement(PanelDivider, null), /* @__PURE__ */ React51.createElement(GapControlField, null), /* @__PURE__ */ React51.createElement(WrapField, null), ["wrap", "wrap-reverse"].includes(flexWrap?.value) && /* @__PURE__ */ React51.createElement(AlignContentField, null));
3409
+ const { value: flexWrap } = useStylesField("flex-wrap");
3410
+ return /* @__PURE__ */ React53.createElement(React53.Fragment, null, /* @__PURE__ */ React53.createElement(FlexDirectionField, null), /* @__PURE__ */ React53.createElement(JustifyContentField, null), /* @__PURE__ */ React53.createElement(AlignItemsField, null), /* @__PURE__ */ React53.createElement(PanelDivider, null), /* @__PURE__ */ React53.createElement(GapControlField, null), /* @__PURE__ */ React53.createElement(WrapField, null), ["wrap", "wrap-reverse"].includes(flexWrap?.value) && /* @__PURE__ */ React53.createElement(AlignContentField, null));
3367
3411
  };
3368
- var FlexChildFields = ({ parentStyleDirection }) => /* @__PURE__ */ React51.createElement(React51.Fragment, null, /* @__PURE__ */ React51.createElement(PanelDivider, null), /* @__PURE__ */ React51.createElement(ControlFormLabel4, null, __26("Flex child", "elementor")), /* @__PURE__ */ React51.createElement(AlignSelfChild, { parentStyleDirection }), /* @__PURE__ */ React51.createElement(FlexOrderField, null), /* @__PURE__ */ React51.createElement(FlexSizeField, null));
3412
+ var FlexChildFields = ({ parentStyleDirection }) => /* @__PURE__ */ React53.createElement(React53.Fragment, null, /* @__PURE__ */ React53.createElement(PanelDivider, null), /* @__PURE__ */ React53.createElement(ControlFormLabel4, null, __27("Flex child", "elementor")), /* @__PURE__ */ React53.createElement(AlignSelfChild, { parentStyleDirection }), /* @__PURE__ */ React53.createElement(FlexOrderField, null), /* @__PURE__ */ React53.createElement(FlexSizeField, null));
3369
3413
  var shouldDisplayFlexFields = (display, local) => {
3370
3414
  const value = display?.value ?? local?.value;
3371
3415
  if (!value) {
@@ -3375,72 +3419,92 @@ var shouldDisplayFlexFields = (display, local) => {
3375
3419
  };
3376
3420
 
3377
3421
  // src/components/style-sections/position-section/position-section.tsx
3378
- import * as React56 from "react";
3422
+ import * as React58 from "react";
3379
3423
  import { isExperimentActive as isExperimentActive8 } from "@elementor/editor-v1-adapters";
3380
3424
  import { useSessionStorage } from "@elementor/session";
3381
3425
 
3382
3426
  // src/components/style-sections/position-section/dimensions-field.tsx
3383
- import * as React52 from "react";
3384
- import { SizeControl as SizeControl3 } from "@elementor/editor-controls";
3427
+ import * as React54 from "react";
3428
+ import { useRef as useRef7 } from "react";
3429
+ import { SizeControl as SizeControl4 } from "@elementor/editor-controls";
3385
3430
  import { SideBottomIcon as SideBottomIcon2, SideLeftIcon as SideLeftIcon2, SideRightIcon as SideRightIcon2, SideTopIcon as SideTopIcon2 } from "@elementor/icons";
3386
- import { Grid as Grid9, Stack as Stack14, withDirection as withDirection8 } from "@elementor/ui";
3387
- import { __ as __27 } from "@wordpress/i18n";
3431
+ import { Grid as Grid10, Stack as Stack14, withDirection as withDirection8 } from "@elementor/ui";
3432
+ import { __ as __28 } from "@wordpress/i18n";
3388
3433
  var InlineStartIcon2 = withDirection8(SideLeftIcon2);
3389
3434
  var InlineEndIcon2 = withDirection8(SideRightIcon2);
3390
3435
  var sideIcons = {
3391
- "inset-block-start": /* @__PURE__ */ React52.createElement(SideTopIcon2, { fontSize: "tiny" }),
3392
- "inset-block-end": /* @__PURE__ */ React52.createElement(SideBottomIcon2, { fontSize: "tiny" }),
3393
- "inset-inline-start": /* @__PURE__ */ React52.createElement(RotatedIcon, { icon: InlineStartIcon2, size: "tiny" }),
3394
- "inset-inline-end": /* @__PURE__ */ React52.createElement(RotatedIcon, { icon: InlineEndIcon2, size: "tiny" })
3436
+ "inset-block-start": /* @__PURE__ */ React54.createElement(SideTopIcon2, { fontSize: "tiny" }),
3437
+ "inset-block-end": /* @__PURE__ */ React54.createElement(SideBottomIcon2, { fontSize: "tiny" }),
3438
+ "inset-inline-start": /* @__PURE__ */ React54.createElement(RotatedIcon, { icon: InlineStartIcon2, size: "tiny" }),
3439
+ "inset-inline-end": /* @__PURE__ */ React54.createElement(RotatedIcon, { icon: InlineEndIcon2, size: "tiny" })
3395
3440
  };
3396
- var getInlineStartLabel = (isSiteRtl) => isSiteRtl ? __27("Right", "elementor") : __27("Left", "elementor");
3397
- var getInlineEndLabel = (isSiteRtl) => isSiteRtl ? __27("Left", "elementor") : __27("Right", "elementor");
3441
+ var getInlineStartLabel = (isSiteRtl) => isSiteRtl ? __28("Right", "elementor") : __28("Left", "elementor");
3442
+ var getInlineEndLabel = (isSiteRtl) => isSiteRtl ? __28("Left", "elementor") : __28("Right", "elementor");
3398
3443
  var DimensionsField = () => {
3399
3444
  const { isSiteRtl } = useDirection();
3400
- return /* @__PURE__ */ React52.createElement(React52.Fragment, null, /* @__PURE__ */ React52.createElement(Stack14, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React52.createElement(DimensionField, { side: "inset-block-start", label: __27("Top", "elementor") }), /* @__PURE__ */ React52.createElement(DimensionField, { side: "inset-inline-end", label: getInlineEndLabel(isSiteRtl) })), /* @__PURE__ */ React52.createElement(Stack14, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React52.createElement(DimensionField, { side: "inset-block-end", label: __27("Bottom", "elementor") }), /* @__PURE__ */ React52.createElement(DimensionField, { side: "inset-inline-start", label: getInlineStartLabel(isSiteRtl) })));
3401
- };
3402
- var DimensionField = ({ side, label }) => {
3403
- return /* @__PURE__ */ React52.createElement(StylesField, { bind: side }, /* @__PURE__ */ React52.createElement(Grid9, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React52.createElement(Grid9, { item: true, xs: 12 }, /* @__PURE__ */ React52.createElement(ControlLabel, null, label)), /* @__PURE__ */ React52.createElement(Grid9, { item: true, xs: 12 }, /* @__PURE__ */ React52.createElement(SizeControl3, { startIcon: sideIcons[side], extendedValues: ["auto"] }))));
3445
+ const rowRefs = [useRef7(), useRef7()];
3446
+ return /* @__PURE__ */ React54.createElement(UiProviders, null, /* @__PURE__ */ React54.createElement(Stack14, { direction: "row", gap: 2, flexWrap: "nowrap", ref: rowRefs[0] }, /* @__PURE__ */ React54.createElement(DimensionField, { side: "inset-block-start", label: __28("Top", "elementor"), rowRef: rowRefs[0] }), /* @__PURE__ */ React54.createElement(
3447
+ DimensionField,
3448
+ {
3449
+ side: "inset-inline-end",
3450
+ label: getInlineEndLabel(isSiteRtl),
3451
+ rowRef: rowRefs[0]
3452
+ }
3453
+ )), /* @__PURE__ */ React54.createElement(Stack14, { direction: "row", gap: 2, flexWrap: "nowrap", ref: rowRefs[1] }, /* @__PURE__ */ React54.createElement(DimensionField, { side: "inset-block-end", label: __28("Bottom", "elementor"), rowRef: rowRefs[1] }), /* @__PURE__ */ React54.createElement(
3454
+ DimensionField,
3455
+ {
3456
+ side: "inset-inline-start",
3457
+ label: getInlineStartLabel(isSiteRtl),
3458
+ rowRef: rowRefs[1]
3459
+ }
3460
+ )));
3404
3461
  };
3462
+ var DimensionField = ({
3463
+ side,
3464
+ label,
3465
+ rowRef
3466
+ }) => /* @__PURE__ */ React54.createElement(StylesField, { bind: side }, /* @__PURE__ */ React54.createElement(Grid10, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React54.createElement(Grid10, { item: true, xs: 12 }, /* @__PURE__ */ React54.createElement(ControlLabel, null, label)), /* @__PURE__ */ React54.createElement(Grid10, { item: true, xs: 12 }, /* @__PURE__ */ React54.createElement(SizeControl4, { startIcon: sideIcons[side], extendedOptions: ["auto"], anchorRef: rowRef }))));
3405
3467
 
3406
3468
  // src/components/style-sections/position-section/offset-field.tsx
3407
- import * as React53 from "react";
3408
- import { SizeControl as SizeControl4 } from "@elementor/editor-controls";
3409
- import { Grid as Grid10 } from "@elementor/ui";
3410
- import { __ as __28 } from "@wordpress/i18n";
3469
+ import * as React55 from "react";
3470
+ import { useRef as useRef8 } from "react";
3471
+ import { SizeControl as SizeControl5 } from "@elementor/editor-controls";
3472
+ import { Grid as Grid11 } from "@elementor/ui";
3473
+ import { __ as __29 } from "@wordpress/i18n";
3411
3474
  var OffsetField = () => {
3412
- return /* @__PURE__ */ React53.createElement(StylesField, { bind: "scroll-margin-top" }, /* @__PURE__ */ React53.createElement(Grid10, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React53.createElement(Grid10, { item: true, xs: 6 }, /* @__PURE__ */ React53.createElement(ControlLabel, null, __28("Anchor offset", "elementor"))), /* @__PURE__ */ React53.createElement(Grid10, { item: true, xs: 6 }, /* @__PURE__ */ React53.createElement(SizeControl4, { units: ["px", "em", "rem", "vw", "vh"] }))));
3475
+ const rowRef = useRef8();
3476
+ return /* @__PURE__ */ React55.createElement(StylesField, { bind: "scroll-margin-top" }, /* @__PURE__ */ React55.createElement(Grid11, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap", ref: rowRef }, /* @__PURE__ */ React55.createElement(Grid11, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(ControlLabel, null, __29("Anchor offset", "elementor"))), /* @__PURE__ */ React55.createElement(Grid11, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(SizeControl5, { units: ["px", "em", "rem", "vw", "vh"], anchorRef: rowRef }))));
3413
3477
  };
3414
3478
 
3415
3479
  // src/components/style-sections/position-section/position-field.tsx
3416
- import * as React54 from "react";
3480
+ import * as React56 from "react";
3417
3481
  import { SelectControl as SelectControl3 } from "@elementor/editor-controls";
3418
- import { Grid as Grid11 } from "@elementor/ui";
3419
- import { __ as __29 } from "@wordpress/i18n";
3482
+ import { Grid as Grid12 } from "@elementor/ui";
3483
+ import { __ as __30 } from "@wordpress/i18n";
3420
3484
  var positionOptions = [
3421
- { label: __29("Static", "elementor"), value: "static" },
3422
- { label: __29("Relative", "elementor"), value: "relative" },
3423
- { label: __29("Absolute", "elementor"), value: "absolute" },
3424
- { label: __29("Fixed", "elementor"), value: "fixed" },
3425
- { label: __29("Sticky", "elementor"), value: "sticky" }
3485
+ { label: __30("Static", "elementor"), value: "static" },
3486
+ { label: __30("Relative", "elementor"), value: "relative" },
3487
+ { label: __30("Absolute", "elementor"), value: "absolute" },
3488
+ { label: __30("Fixed", "elementor"), value: "fixed" },
3489
+ { label: __30("Sticky", "elementor"), value: "sticky" }
3426
3490
  ];
3427
3491
  var PositionField = ({ onChange }) => {
3428
- return /* @__PURE__ */ React54.createElement(StylesField, { bind: "position" }, /* @__PURE__ */ React54.createElement(Grid11, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React54.createElement(Grid11, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(ControlLabel, null, __29("Position", "elementor"))), /* @__PURE__ */ React54.createElement(Grid11, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React54.createElement(SelectControl3, { options: positionOptions, onChange }))));
3492
+ return /* @__PURE__ */ React56.createElement(StylesField, { bind: "position" }, /* @__PURE__ */ React56.createElement(Grid12, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React56.createElement(Grid12, { item: true, xs: 6 }, /* @__PURE__ */ React56.createElement(ControlLabel, null, __30("Position", "elementor"))), /* @__PURE__ */ React56.createElement(Grid12, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React56.createElement(SelectControl3, { options: positionOptions, onChange }))));
3429
3493
  };
3430
3494
 
3431
3495
  // src/components/style-sections/position-section/z-index-field.tsx
3432
- import * as React55 from "react";
3496
+ import * as React57 from "react";
3433
3497
  import { NumberControl as NumberControl3 } from "@elementor/editor-controls";
3434
- import { Grid as Grid12 } from "@elementor/ui";
3435
- import { __ as __30 } from "@wordpress/i18n";
3498
+ import { Grid as Grid13 } from "@elementor/ui";
3499
+ import { __ as __31 } from "@wordpress/i18n";
3436
3500
  var ZIndexField = () => {
3437
- return /* @__PURE__ */ React55.createElement(StylesField, { bind: "z-index" }, /* @__PURE__ */ React55.createElement(Grid12, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React55.createElement(Grid12, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(ControlLabel, null, __30("Z-index", "elementor"))), /* @__PURE__ */ React55.createElement(Grid12, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(NumberControl3, null))));
3501
+ return /* @__PURE__ */ React57.createElement(StylesField, { bind: "z-index" }, /* @__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("Z-index", "elementor"))), /* @__PURE__ */ React57.createElement(Grid13, { item: true, xs: 6 }, /* @__PURE__ */ React57.createElement(NumberControl3, null))));
3438
3502
  };
3439
3503
 
3440
3504
  // src/components/style-sections/position-section/position-section.tsx
3441
3505
  var PositionSection = () => {
3442
- const [positionValue] = useStylesField("position");
3443
- const [dimensionsValues, setDimensionsValues] = useStylesFields([
3506
+ const { value: positionValue } = useStylesField("position");
3507
+ const { values: dimensions, setValues: setDimensions } = useStylesFields([
3444
3508
  "inset-block-start",
3445
3509
  "inset-block-end",
3446
3510
  "inset-inline-start",
@@ -3450,9 +3514,9 @@ var PositionSection = () => {
3450
3514
  const isCssIdFeatureActive = isExperimentActive8("e_v_3_30");
3451
3515
  const onPositionChange = (newPosition, previousPosition) => {
3452
3516
  if (newPosition === "static") {
3453
- if (dimensionsValues) {
3454
- updateDimensionsHistory(dimensionsValues);
3455
- setDimensionsValues({
3517
+ if (dimensions) {
3518
+ updateDimensionsHistory(dimensions);
3519
+ setDimensions({
3456
3520
  "inset-block-start": void 0,
3457
3521
  "inset-block-end": void 0,
3458
3522
  "inset-inline-start": void 0,
@@ -3461,13 +3525,13 @@ var PositionSection = () => {
3461
3525
  }
3462
3526
  } else if (previousPosition === "static") {
3463
3527
  if (dimensionsValuesFromHistory) {
3464
- setDimensionsValues(dimensionsValuesFromHistory);
3528
+ setDimensions(dimensionsValuesFromHistory);
3465
3529
  clearDimensionsHistory();
3466
3530
  }
3467
3531
  }
3468
3532
  };
3469
3533
  const isNotStatic = positionValue && positionValue?.value !== "static";
3470
- return /* @__PURE__ */ React56.createElement(SectionContent, null, /* @__PURE__ */ React56.createElement(PositionField, { onChange: onPositionChange }), isNotStatic ? /* @__PURE__ */ React56.createElement(React56.Fragment, null, /* @__PURE__ */ React56.createElement(DimensionsField, null), /* @__PURE__ */ React56.createElement(ZIndexField, null)) : null, isCssIdFeatureActive && /* @__PURE__ */ React56.createElement(React56.Fragment, null, /* @__PURE__ */ React56.createElement(PanelDivider, null), /* @__PURE__ */ React56.createElement(OffsetField, null)));
3534
+ return /* @__PURE__ */ React58.createElement(SectionContent, null, /* @__PURE__ */ React58.createElement(PositionField, { onChange: onPositionChange }), isNotStatic ? /* @__PURE__ */ React58.createElement(React58.Fragment, null, /* @__PURE__ */ React58.createElement(DimensionsField, null), /* @__PURE__ */ React58.createElement(ZIndexField, null)) : null, isCssIdFeatureActive && /* @__PURE__ */ React58.createElement(React58.Fragment, null, /* @__PURE__ */ React58.createElement(PanelDivider, null), /* @__PURE__ */ React58.createElement(OffsetField, null)));
3471
3535
  };
3472
3536
  var usePersistDimensions = () => {
3473
3537
  const { id: styleDefID, meta } = useStyle();
@@ -3477,49 +3541,55 @@ var usePersistDimensions = () => {
3477
3541
  };
3478
3542
 
3479
3543
  // src/components/style-sections/size-section/size-section.tsx
3480
- import * as React62 from "react";
3481
- import { AspectRatioControl, SizeControl as SizeControl5 } from "@elementor/editor-controls";
3544
+ import * as React64 from "react";
3545
+ import { useRef as useRef9 } from "react";
3546
+ import { AspectRatioControl, SizeControl as SizeControl6 } from "@elementor/editor-controls";
3482
3547
  import { isExperimentActive as isExperimentActive10 } from "@elementor/editor-v1-adapters";
3483
3548
  import { Grid as Grid16, Stack as Stack16 } from "@elementor/ui";
3484
3549
  import { __ as __35 } from "@wordpress/i18n";
3485
3550
 
3486
3551
  // src/components/style-tab-collapsible-content.tsx
3487
- import * as React58 from "react";
3552
+ import * as React60 from "react";
3488
3553
  import { isExperimentActive as isExperimentActive9 } from "@elementor/editor-v1-adapters";
3489
3554
 
3490
3555
  // src/styles-inheritance/components/styles-inheritance-section-indicators.tsx
3491
- import * as React57 from "react";
3492
- import { ELEMENTS_BASE_STYLES_PROVIDER_KEY as ELEMENTS_BASE_STYLES_PROVIDER_KEY4, isElementsStylesProvider as isElementsStylesProvider4 } from "@elementor/editor-styles-repository";
3556
+ import * as React59 from "react";
3557
+ import { isElementsStylesProvider as isElementsStylesProvider3 } from "@elementor/editor-styles-repository";
3493
3558
  import { Stack as Stack15, Tooltip as Tooltip7 } from "@elementor/ui";
3494
- import { __ as __31 } from "@wordpress/i18n";
3495
- var orderedVariants = ["global", "local", "overridden"];
3559
+ import { __ as __32 } from "@wordpress/i18n";
3496
3560
  var StylesInheritanceSectionIndicators = ({ fields }) => {
3497
- const { id, meta } = useStyle();
3561
+ const { id, meta, provider } = useStyle();
3498
3562
  const snapshot = useStylesInheritanceSnapshot();
3499
3563
  const snapshotFields = Object.fromEntries(
3500
3564
  Object.entries(snapshot ?? {}).filter(([key]) => fields.includes(key))
3501
3565
  );
3502
- const indicators = getIndicators(snapshotFields, id ?? "", meta);
3503
- if (Object.values(indicators).filter(Boolean).length === 0) {
3566
+ const { hasValues, hasOverrides } = getIndicators(snapshotFields, id ?? "", meta);
3567
+ if (!hasValues && !hasOverrides) {
3504
3568
  return null;
3505
3569
  }
3506
- const hasActualValues = __31("Has effective styles", "elementor");
3507
- const hasOverriddenValues = __31("Has overridden styles", "elementor");
3508
- return /* @__PURE__ */ React57.createElement(Tooltip7, { title: __31("Has styles", "elementor"), placement: "top" }, /* @__PURE__ */ React57.createElement(Stack15, { direction: "row", sx: { "& > *": { marginInlineStart: -0.25 } }, role: "list" }, orderedVariants.map(
3509
- (variant) => indicators[variant] && /* @__PURE__ */ React57.createElement(
3510
- StyleIndicator,
3511
- {
3512
- key: variant,
3513
- variant,
3514
- "data-variant": variant,
3515
- role: "listitem",
3516
- "aria-label": variant === "overridden" ? hasOverriddenValues : hasActualValues
3517
- }
3518
- )
3570
+ const hasValueLabel = __32("Has effective styles", "elementor");
3571
+ const hasOverridesLabel = __32("Has overridden styles", "elementor");
3572
+ return /* @__PURE__ */ React59.createElement(Tooltip7, { title: __32("Has styles", "elementor"), placement: "top" }, /* @__PURE__ */ React59.createElement(Stack15, { direction: "row", sx: { "& > *": { marginInlineStart: -0.25 } }, role: "list" }, hasValues && provider && /* @__PURE__ */ React59.createElement(
3573
+ StyleIndicator,
3574
+ {
3575
+ getColor: getStylesProviderThemeColor(provider.getKey()),
3576
+ "data-variant": isElementsStylesProvider3(provider.getKey()) ? "local" : "global",
3577
+ role: "listitem",
3578
+ "aria-label": hasValueLabel
3579
+ }
3580
+ ), hasOverrides && /* @__PURE__ */ React59.createElement(
3581
+ StyleIndicator,
3582
+ {
3583
+ isOverridden: true,
3584
+ "data-variant": "overridden",
3585
+ role: "listitem",
3586
+ "aria-label": hasOverridesLabel
3587
+ }
3519
3588
  )));
3520
3589
  };
3521
3590
  function getIndicators(snapshotFields, styleId, meta) {
3522
- const indicators = {};
3591
+ let hasValues = false;
3592
+ let hasOverrides = false;
3523
3593
  Object.values(snapshotFields).forEach((inheritanceChain) => {
3524
3594
  const currentStyle = getCurrentStyleFromChain(inheritanceChain, styleId, meta);
3525
3595
  if (!currentStyle) {
@@ -3527,19 +3597,12 @@ function getIndicators(snapshotFields, styleId, meta) {
3527
3597
  }
3528
3598
  const [actualStyle] = inheritanceChain;
3529
3599
  if (currentStyle === actualStyle) {
3530
- const providerKey = actualStyle.provider ?? "";
3531
- if (isElementsStylesProvider4(providerKey)) {
3532
- indicators.local = true;
3533
- return;
3534
- }
3535
- if (providerKey !== ELEMENTS_BASE_STYLES_PROVIDER_KEY4) {
3536
- indicators.global = true;
3537
- }
3538
- return;
3600
+ hasValues = true;
3601
+ } else {
3602
+ hasOverrides = true;
3539
3603
  }
3540
- indicators.overridden = true;
3541
3604
  });
3542
- return indicators;
3605
+ return { hasValues, hasOverrides };
3543
3606
  }
3544
3607
  function getCurrentStyleFromChain(chain, styleId, meta) {
3545
3608
  return chain.find(
@@ -3554,54 +3617,41 @@ function getCurrentStyleFromChain(chain, styleId, meta) {
3554
3617
 
3555
3618
  // src/components/style-tab-collapsible-content.tsx
3556
3619
  var StyleTabCollapsibleContent = ({ fields = [], children }) => {
3557
- return /* @__PURE__ */ React58.createElement(CollapsibleContent, { titleEnd: getStylesInheritanceIndicators(fields) }, children);
3620
+ return /* @__PURE__ */ React60.createElement(CollapsibleContent, { titleEnd: getStylesInheritanceIndicators(fields) }, children);
3558
3621
  };
3559
3622
  function getStylesInheritanceIndicators(fields) {
3560
3623
  const isUsingFieldsIndicators = isExperimentActive9(EXPERIMENTAL_FEATURES.V_3_30);
3561
3624
  if (fields.length === 0 || !isUsingFieldsIndicators) {
3562
3625
  return null;
3563
3626
  }
3564
- return (isOpen) => !isOpen ? /* @__PURE__ */ React58.createElement(StylesInheritanceSectionIndicators, { fields }) : null;
3627
+ return (isOpen) => !isOpen ? /* @__PURE__ */ React60.createElement(StylesInheritanceSectionIndicators, { fields }) : null;
3565
3628
  }
3566
3629
 
3567
3630
  // src/components/style-sections/size-section/object-fit-field.tsx
3568
- import * as React59 from "react";
3631
+ import * as React61 from "react";
3569
3632
  import { SelectControl as SelectControl4 } from "@elementor/editor-controls";
3570
- import { Grid as Grid13 } from "@elementor/ui";
3571
- import { __ as __32 } from "@wordpress/i18n";
3633
+ import { Grid as Grid14 } from "@elementor/ui";
3634
+ import { __ as __33 } from "@wordpress/i18n";
3572
3635
  var positionOptions2 = [
3573
- { label: __32("Fill", "elementor"), value: "fill" },
3574
- { label: __32("Cover", "elementor"), value: "cover" },
3575
- { label: __32("Contain", "elementor"), value: "contain" },
3576
- { label: __32("None", "elementor"), value: "none" },
3577
- { label: __32("Scale down", "elementor"), value: "scale-down" }
3636
+ { label: __33("Fill", "elementor"), value: "fill" },
3637
+ { label: __33("Cover", "elementor"), value: "cover" },
3638
+ { label: __33("Contain", "elementor"), value: "contain" },
3639
+ { label: __33("None", "elementor"), value: "none" },
3640
+ { label: __33("Scale down", "elementor"), value: "scale-down" }
3578
3641
  ];
3579
3642
  var ObjectFitField = () => {
3580
- return /* @__PURE__ */ React59.createElement(StylesField, { bind: "object-fit" }, /* @__PURE__ */ React59.createElement(Grid13, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React59.createElement(Grid13, { item: true, xs: 6 }, /* @__PURE__ */ React59.createElement(ControlLabel, null, __32("Object fit", "elementor"))), /* @__PURE__ */ React59.createElement(Grid13, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React59.createElement(SelectControl4, { options: positionOptions2 }))));
3643
+ return /* @__PURE__ */ React61.createElement(StylesField, { bind: "object-fit" }, /* @__PURE__ */ React61.createElement(Grid14, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React61.createElement(Grid14, { item: true, xs: 6 }, /* @__PURE__ */ React61.createElement(ControlLabel, null, __33("Object fit", "elementor"))), /* @__PURE__ */ React61.createElement(Grid14, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React61.createElement(SelectControl4, { options: positionOptions2 }))));
3581
3644
  };
3582
3645
 
3583
3646
  // src/components/style-sections/size-section/object-position-field.tsx
3584
- import * as React60 from "react";
3585
- import { SelectControl as SelectControl5 } from "@elementor/editor-controls";
3586
- import { Grid as Grid14 } from "@elementor/ui";
3587
- import { __ as __33 } from "@wordpress/i18n";
3588
- var positionOptions3 = [
3589
- { label: __33("Center center", "elementor"), value: "center center" },
3590
- { label: __33("Center left", "elementor"), value: "center left" },
3591
- { label: __33("Center right", "elementor"), value: "center right" },
3592
- { label: __33("Top center", "elementor"), value: "top center" },
3593
- { label: __33("Top left", "elementor"), value: "top left" },
3594
- { label: __33("Top right", "elementor"), value: "top right" },
3595
- { label: __33("Bottom center", "elementor"), value: "bottom center" },
3596
- { label: __33("Bottom left", "elementor"), value: "bottom left" },
3597
- { label: __33("Bottom right", "elementor"), value: "bottom right" }
3598
- ];
3647
+ import * as React62 from "react";
3648
+ import { PositionControl } from "@elementor/editor-controls";
3599
3649
  var ObjectPositionField = () => {
3600
- return /* @__PURE__ */ React60.createElement(StylesField, { bind: "object-position" }, /* @__PURE__ */ React60.createElement(Grid14, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React60.createElement(Grid14, { item: true, xs: 6 }, /* @__PURE__ */ React60.createElement(ControlLabel, null, __33("Object position", "elementor"))), /* @__PURE__ */ React60.createElement(Grid14, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React60.createElement(SelectControl5, { options: positionOptions3 }))));
3650
+ return /* @__PURE__ */ React62.createElement(StylesField, { bind: "object-position" }, /* @__PURE__ */ React62.createElement(PositionControl, null));
3601
3651
  };
3602
3652
 
3603
3653
  // src/components/style-sections/size-section/overflow-field.tsx
3604
- import * as React61 from "react";
3654
+ import * as React63 from "react";
3605
3655
  import { ToggleControl as ToggleControl8 } from "@elementor/editor-controls";
3606
3656
  import { EyeIcon, EyeOffIcon, LetterAIcon } from "@elementor/icons";
3607
3657
  import { Grid as Grid15 } from "@elementor/ui";
@@ -3610,91 +3660,113 @@ var options6 = [
3610
3660
  {
3611
3661
  value: "visible",
3612
3662
  label: __34("Visible", "elementor"),
3613
- renderContent: ({ size }) => /* @__PURE__ */ React61.createElement(EyeIcon, { fontSize: size }),
3663
+ renderContent: ({ size }) => /* @__PURE__ */ React63.createElement(EyeIcon, { fontSize: size }),
3614
3664
  showTooltip: true
3615
3665
  },
3616
3666
  {
3617
3667
  value: "hidden",
3618
3668
  label: __34("Hidden", "elementor"),
3619
- renderContent: ({ size }) => /* @__PURE__ */ React61.createElement(EyeOffIcon, { fontSize: size }),
3669
+ renderContent: ({ size }) => /* @__PURE__ */ React63.createElement(EyeOffIcon, { fontSize: size }),
3620
3670
  showTooltip: true
3621
3671
  },
3622
3672
  {
3623
3673
  value: "auto",
3624
3674
  label: __34("Auto", "elementor"),
3625
- renderContent: ({ size }) => /* @__PURE__ */ React61.createElement(LetterAIcon, { fontSize: size }),
3675
+ renderContent: ({ size }) => /* @__PURE__ */ React63.createElement(LetterAIcon, { fontSize: size }),
3626
3676
  showTooltip: true
3627
3677
  }
3628
3678
  ];
3629
3679
  var OverflowField = () => {
3630
- return /* @__PURE__ */ React61.createElement(StylesField, { bind: "overflow" }, /* @__PURE__ */ React61.createElement(Grid15, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React61.createElement(Grid15, { item: true, xs: 6 }, /* @__PURE__ */ React61.createElement(ControlLabel, null, __34("Overflow", "elementor"))), /* @__PURE__ */ React61.createElement(Grid15, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React61.createElement(ToggleControl8, { options: options6 }))));
3680
+ return /* @__PURE__ */ React63.createElement(StylesField, { bind: "overflow" }, /* @__PURE__ */ React63.createElement(Grid15, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React63.createElement(Grid15, { item: true, xs: 6 }, /* @__PURE__ */ React63.createElement(ControlLabel, null, __34("Overflow", "elementor"))), /* @__PURE__ */ React63.createElement(Grid15, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React63.createElement(ToggleControl8, { options: options6 }))));
3631
3681
  };
3632
3682
 
3633
3683
  // src/components/style-sections/size-section/size-section.tsx
3634
- var SizeSection = () => {
3635
- const [fitValue] = useStylesField("object-fit");
3636
- const isNotFill = fitValue && fitValue?.value !== "fill";
3637
- const isVersion330Active = isExperimentActive10("e_v_3_30");
3638
- return /* @__PURE__ */ React62.createElement(SectionContent, null, /* @__PURE__ */ React62.createElement(Grid16, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React62.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React62.createElement(SizeField, { bind: "width", label: __35("Width", "elementor"), extendedValues: ["auto"] })), /* @__PURE__ */ React62.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React62.createElement(SizeField, { bind: "height", label: __35("Height", "elementor"), extendedValues: ["auto"] }))), /* @__PURE__ */ React62.createElement(Grid16, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React62.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React62.createElement(
3639
- SizeField,
3684
+ var EXPERIMENT_ID = "e_v_3_30";
3685
+ var CssSizeProps = [
3686
+ [
3640
3687
  {
3641
- bind: "min-width",
3642
- label: __35("Min width", "elementor"),
3643
- extendedValues: ["auto"]
3688
+ bind: "width",
3689
+ label: __35("Width", "elementor")
3690
+ },
3691
+ {
3692
+ bind: "height",
3693
+ label: __35("Height", "elementor")
3644
3694
  }
3645
- )), /* @__PURE__ */ React62.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React62.createElement(
3646
- SizeField,
3695
+ ],
3696
+ [
3697
+ {
3698
+ bind: "min-width",
3699
+ label: __35("Min width", "elementor")
3700
+ },
3647
3701
  {
3648
3702
  bind: "min-height",
3649
- label: __35("Min height", "elementor"),
3650
- extendedValues: ["auto"]
3703
+ label: __35("Min height", "elementor")
3651
3704
  }
3652
- ))), /* @__PURE__ */ React62.createElement(Grid16, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React62.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React62.createElement(SizeField, { bind: "max-width", label: __35("Max width", "elementor") })), /* @__PURE__ */ React62.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React62.createElement(SizeField, { bind: "max-height", label: __35("Max height", "elementor") }))), /* @__PURE__ */ React62.createElement(PanelDivider, null), /* @__PURE__ */ React62.createElement(Stack16, null, /* @__PURE__ */ React62.createElement(OverflowField, null)), isVersion330Active && /* @__PURE__ */ React62.createElement(StyleTabCollapsibleContent, { fields: ["aspect-ratio", "object-fit"] }, /* @__PURE__ */ React62.createElement(Stack16, { gap: 2 }, /* @__PURE__ */ React62.createElement(StylesField, { bind: "aspect-ratio" }, /* @__PURE__ */ React62.createElement(AspectRatioControl, { label: __35("Aspect Ratio", "elementor") })), /* @__PURE__ */ React62.createElement(PanelDivider, null), /* @__PURE__ */ React62.createElement(ObjectFitField, null), isNotFill && /* @__PURE__ */ React62.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React62.createElement(ObjectPositionField, null)))));
3705
+ ],
3706
+ [
3707
+ {
3708
+ bind: "max-width",
3709
+ label: __35("Max width", "elementor")
3710
+ },
3711
+ {
3712
+ bind: "max-height",
3713
+ label: __35("Max height", "elementor")
3714
+ }
3715
+ ]
3716
+ ];
3717
+ var SizeSection = () => {
3718
+ const { value: fitValue } = useStylesField("object-fit");
3719
+ const isNotFill = fitValue && fitValue?.value !== "fill";
3720
+ const gridRowRefs = [useRef9(), useRef9(), useRef9()];
3721
+ const isVersion330Active = isExperimentActive10(EXPERIMENT_ID);
3722
+ return /* @__PURE__ */ React64.createElement(SectionContent, null, CssSizeProps.map((row, rowIndex) => /* @__PURE__ */ React64.createElement(Grid16, { key: rowIndex, container: true, gap: 2, flexWrap: "nowrap", ref: gridRowRefs[rowIndex] }, row.map((props) => /* @__PURE__ */ React64.createElement(Grid16, { item: true, xs: 6, key: props.bind }, /* @__PURE__ */ React64.createElement(SizeField, { ...props, rowRef: gridRowRefs[rowIndex], extendedOptions: ["auto"] }))))), /* @__PURE__ */ React64.createElement(PanelDivider, null), /* @__PURE__ */ React64.createElement(Stack16, null, /* @__PURE__ */ React64.createElement(OverflowField, null)), isVersion330Active && /* @__PURE__ */ React64.createElement(StyleTabCollapsibleContent, { fields: ["aspect-ratio", "object-fit"] }, /* @__PURE__ */ React64.createElement(Stack16, { gap: 2 }, /* @__PURE__ */ React64.createElement(StylesField, { bind: "aspect-ratio" }, /* @__PURE__ */ React64.createElement(AspectRatioControl, { label: __35("Aspect Ratio", "elementor") })), /* @__PURE__ */ React64.createElement(PanelDivider, null), /* @__PURE__ */ React64.createElement(ObjectFitField, null), isNotFill && /* @__PURE__ */ React64.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React64.createElement(ObjectPositionField, null)))));
3653
3723
  };
3654
- var SizeField = ({ label, bind, extendedValues }) => {
3655
- return /* @__PURE__ */ React62.createElement(StylesField, { bind }, /* @__PURE__ */ React62.createElement(Grid16, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React62.createElement(Grid16, { item: true, xs: 12 }, /* @__PURE__ */ React62.createElement(ControlLabel, null, label)), /* @__PURE__ */ React62.createElement(Grid16, { item: true, xs: 12 }, /* @__PURE__ */ React62.createElement(SizeControl5, { extendedValues }))));
3724
+ var SizeField = ({ label, bind, rowRef, extendedOptions }) => {
3725
+ return /* @__PURE__ */ React64.createElement(StylesField, { bind }, /* @__PURE__ */ React64.createElement(Grid16, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React64.createElement(Grid16, { item: true, xs: 12 }, /* @__PURE__ */ React64.createElement(ControlLabel, null, label)), /* @__PURE__ */ React64.createElement(Grid16, { item: true, xs: 12 }, /* @__PURE__ */ React64.createElement(SizeControl6, { extendedOptions, anchorRef: rowRef }))));
3656
3726
  };
3657
3727
 
3658
3728
  // src/components/style-sections/spacing-section/spacing-section.tsx
3659
- import * as React63 from "react";
3729
+ import * as React65 from "react";
3660
3730
  import { LinkedDimensionsControl } from "@elementor/editor-controls";
3661
3731
  import { __ as __36 } from "@wordpress/i18n";
3662
3732
  var SpacingSection = () => {
3663
3733
  const { isSiteRtl } = useDirection();
3664
- return /* @__PURE__ */ React63.createElement(SectionContent, null, /* @__PURE__ */ React63.createElement(StylesField, { bind: "margin" }, /* @__PURE__ */ React63.createElement(
3734
+ return /* @__PURE__ */ React65.createElement(SectionContent, null, /* @__PURE__ */ React65.createElement(StylesField, { bind: "margin" }, /* @__PURE__ */ React65.createElement(
3665
3735
  LinkedDimensionsControl,
3666
3736
  {
3667
3737
  label: __36("Margin", "elementor"),
3668
3738
  isSiteRtl,
3669
- extendedValues: ["auto"]
3739
+ extendedOptions: ["auto"]
3670
3740
  }
3671
- )), /* @__PURE__ */ React63.createElement(PanelDivider, null), /* @__PURE__ */ React63.createElement(StylesField, { bind: "padding" }, /* @__PURE__ */ React63.createElement(LinkedDimensionsControl, { label: __36("Padding", "elementor"), isSiteRtl })));
3741
+ )), /* @__PURE__ */ React65.createElement(PanelDivider, null), /* @__PURE__ */ React65.createElement(StylesField, { bind: "padding" }, /* @__PURE__ */ React65.createElement(LinkedDimensionsControl, { label: __36("Padding", "elementor"), isSiteRtl })));
3672
3742
  };
3673
3743
 
3674
3744
  // src/components/style-sections/typography-section/typography-section.tsx
3675
- import * as React79 from "react";
3745
+ import * as React81 from "react";
3676
3746
  import { isExperimentActive as isExperimentActive11 } from "@elementor/editor-v1-adapters";
3677
3747
 
3678
3748
  // src/components/style-sections/typography-section/column-count-field.tsx
3679
- import * as React64 from "react";
3749
+ import * as React66 from "react";
3680
3750
  import { NumberControl as NumberControl4 } from "@elementor/editor-controls";
3681
3751
  import { Grid as Grid17 } from "@elementor/ui";
3682
3752
  import { __ as __37 } from "@wordpress/i18n";
3683
3753
  var ColumnCountField = () => {
3684
- return /* @__PURE__ */ React64.createElement(StylesField, { bind: "column-count" }, /* @__PURE__ */ React64.createElement(Grid17, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React64.createElement(Grid17, { item: true, xs: 6 }, /* @__PURE__ */ React64.createElement(ControlLabel, null, __37("Columns", "elementor"))), /* @__PURE__ */ React64.createElement(Grid17, { item: true, xs: 6 }, /* @__PURE__ */ React64.createElement(NumberControl4, { shouldForceInt: true, min: 0, step: 1 }))));
3754
+ return /* @__PURE__ */ React66.createElement(StylesField, { bind: "column-count" }, /* @__PURE__ */ React66.createElement(Grid17, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React66.createElement(Grid17, { item: true, xs: 6 }, /* @__PURE__ */ React66.createElement(ControlLabel, null, __37("Columns", "elementor"))), /* @__PURE__ */ React66.createElement(Grid17, { item: true, xs: 6 }, /* @__PURE__ */ React66.createElement(NumberControl4, { shouldForceInt: true, min: 0, step: 1 }))));
3685
3755
  };
3686
3756
 
3687
3757
  // src/components/style-sections/typography-section/column-gap-field.tsx
3688
- import * as React65 from "react";
3689
- import { SizeControl as SizeControl6 } from "@elementor/editor-controls";
3758
+ import * as React67 from "react";
3759
+ import { useRef as useRef10 } from "react";
3760
+ import { SizeControl as SizeControl7 } from "@elementor/editor-controls";
3690
3761
  import { Grid as Grid18 } from "@elementor/ui";
3691
3762
  import { __ as __38 } from "@wordpress/i18n";
3692
3763
  var ColumnGapField = () => {
3693
- return /* @__PURE__ */ React65.createElement(StylesField, { bind: "column-gap" }, /* @__PURE__ */ React65.createElement(Grid18, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React65.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React65.createElement(ControlLabel, null, __38("Column gap", "elementor"))), /* @__PURE__ */ React65.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React65.createElement(SizeControl6, null))));
3764
+ const rowRef = useRef10();
3765
+ return /* @__PURE__ */ React67.createElement(StylesField, { bind: "column-gap" }, /* @__PURE__ */ React67.createElement(Grid18, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap", ref: rowRef }, /* @__PURE__ */ React67.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React67.createElement(ControlLabel, null, __38("Column gap", "elementor"))), /* @__PURE__ */ React67.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React67.createElement(SizeControl7, { anchorRef: rowRef }))));
3694
3766
  };
3695
3767
 
3696
3768
  // src/components/style-sections/typography-section/font-family-field.tsx
3697
- import * as React66 from "react";
3769
+ import * as React68 from "react";
3698
3770
  import { FontFamilyControl } from "@elementor/editor-controls";
3699
3771
  import { Grid as Grid19 } from "@elementor/ui";
3700
3772
  import { __ as __40 } from "@wordpress/i18n";
@@ -3742,20 +3814,22 @@ var FontFamilyField = () => {
3742
3814
  if (fontFamilies.length === 0) {
3743
3815
  return null;
3744
3816
  }
3745
- return /* @__PURE__ */ React66.createElement(StylesField, { bind: "font-family" }, /* @__PURE__ */ React66.createElement(Grid19, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React66.createElement(Grid19, { item: true, xs: 6 }, /* @__PURE__ */ React66.createElement(ControlLabel, null, __40("Font family", "elementor"))), /* @__PURE__ */ React66.createElement(Grid19, { item: true, xs: 6, sx: { minWidth: 0 } }, /* @__PURE__ */ React66.createElement(FontFamilyControl, { fontFamilies }))));
3817
+ return /* @__PURE__ */ React68.createElement(StylesField, { bind: "font-family" }, /* @__PURE__ */ React68.createElement(Grid19, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React68.createElement(Grid19, { item: true, xs: 6 }, /* @__PURE__ */ React68.createElement(ControlLabel, null, __40("Font family", "elementor"))), /* @__PURE__ */ React68.createElement(Grid19, { item: true, xs: 6, sx: { minWidth: 0 } }, /* @__PURE__ */ React68.createElement(FontFamilyControl, { fontFamilies }))));
3746
3818
  };
3747
3819
 
3748
3820
  // src/components/style-sections/typography-section/font-size-field.tsx
3749
- import * as React67 from "react";
3750
- import { SizeControl as SizeControl7 } from "@elementor/editor-controls";
3821
+ import * as React69 from "react";
3822
+ import { useRef as useRef11 } from "react";
3823
+ import { SizeControl as SizeControl8 } from "@elementor/editor-controls";
3751
3824
  import { Grid as Grid20 } from "@elementor/ui";
3752
3825
  import { __ as __41 } from "@wordpress/i18n";
3753
3826
  var FontSizeField = () => {
3754
- return /* @__PURE__ */ React67.createElement(StylesField, { bind: "font-size" }, /* @__PURE__ */ React67.createElement(Grid20, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React67.createElement(Grid20, { item: true, xs: 6 }, /* @__PURE__ */ React67.createElement(ControlLabel, null, __41("Font size", "elementor"))), /* @__PURE__ */ React67.createElement(Grid20, { item: true, xs: 6 }, /* @__PURE__ */ React67.createElement(SizeControl7, null))));
3827
+ const rowRef = useRef11();
3828
+ return /* @__PURE__ */ React69.createElement(StylesField, { bind: "font-size" }, /* @__PURE__ */ React69.createElement(Grid20, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap", ref: rowRef }, /* @__PURE__ */ React69.createElement(Grid20, { item: true, xs: 6 }, /* @__PURE__ */ React69.createElement(ControlLabel, null, __41("Font size", "elementor"))), /* @__PURE__ */ React69.createElement(Grid20, { item: true, xs: 6 }, /* @__PURE__ */ React69.createElement(SizeControl8, { anchorRef: rowRef }))));
3755
3829
  };
3756
3830
 
3757
3831
  // src/components/style-sections/typography-section/font-style-field.tsx
3758
- import * as React68 from "react";
3832
+ import * as React70 from "react";
3759
3833
  import { ControlFormLabel as ControlFormLabel5, ToggleControl as ToggleControl9 } from "@elementor/editor-controls";
3760
3834
  import { ItalicIcon, MinusIcon as MinusIcon2 } from "@elementor/icons";
3761
3835
  import { Grid as Grid21 } from "@elementor/ui";
@@ -3764,21 +3838,21 @@ var options7 = [
3764
3838
  {
3765
3839
  value: "normal",
3766
3840
  label: __42("Normal", "elementor"),
3767
- renderContent: ({ size }) => /* @__PURE__ */ React68.createElement(MinusIcon2, { fontSize: size }),
3841
+ renderContent: ({ size }) => /* @__PURE__ */ React70.createElement(MinusIcon2, { fontSize: size }),
3768
3842
  showTooltip: true
3769
3843
  },
3770
3844
  {
3771
3845
  value: "italic",
3772
3846
  label: __42("Italic", "elementor"),
3773
- renderContent: ({ size }) => /* @__PURE__ */ React68.createElement(ItalicIcon, { fontSize: size }),
3847
+ renderContent: ({ size }) => /* @__PURE__ */ React70.createElement(ItalicIcon, { fontSize: size }),
3774
3848
  showTooltip: true
3775
3849
  }
3776
3850
  ];
3777
- var FontStyleField = () => /* @__PURE__ */ React68.createElement(StylesField, { bind: "font-style" }, /* @__PURE__ */ React68.createElement(Grid21, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React68.createElement(Grid21, { item: true, xs: 6 }, /* @__PURE__ */ React68.createElement(ControlFormLabel5, null, __42("Font style", "elementor"))), /* @__PURE__ */ React68.createElement(Grid21, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React68.createElement(ToggleControl9, { options: options7 }))));
3851
+ var FontStyleField = () => /* @__PURE__ */ React70.createElement(StylesField, { bind: "font-style" }, /* @__PURE__ */ React70.createElement(Grid21, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React70.createElement(Grid21, { item: true, xs: 6 }, /* @__PURE__ */ React70.createElement(ControlFormLabel5, null, __42("Font style", "elementor"))), /* @__PURE__ */ React70.createElement(Grid21, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React70.createElement(ToggleControl9, { options: options7 }))));
3778
3852
 
3779
3853
  // src/components/style-sections/typography-section/font-weight-field.tsx
3780
- import * as React69 from "react";
3781
- import { SelectControl as SelectControl6 } from "@elementor/editor-controls";
3854
+ import * as React71 from "react";
3855
+ import { SelectControl as SelectControl5 } from "@elementor/editor-controls";
3782
3856
  import { Grid as Grid22 } from "@elementor/ui";
3783
3857
  import { __ as __43 } from "@wordpress/i18n";
3784
3858
  var fontWeightOptions = [
@@ -3793,29 +3867,33 @@ var fontWeightOptions = [
3793
3867
  { value: "900", label: __43("900 - Black", "elementor") }
3794
3868
  ];
3795
3869
  var FontWeightField = () => {
3796
- return /* @__PURE__ */ React69.createElement(StylesField, { bind: "font-weight" }, /* @__PURE__ */ React69.createElement(Grid22, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React69.createElement(Grid22, { item: true, xs: 6 }, /* @__PURE__ */ React69.createElement(ControlLabel, null, __43("Font weight", "elementor"))), /* @__PURE__ */ React69.createElement(Grid22, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React69.createElement(SelectControl6, { options: fontWeightOptions }))));
3870
+ return /* @__PURE__ */ React71.createElement(StylesField, { bind: "font-weight" }, /* @__PURE__ */ React71.createElement(Grid22, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React71.createElement(Grid22, { item: true, xs: 6 }, /* @__PURE__ */ React71.createElement(ControlLabel, null, __43("Font weight", "elementor"))), /* @__PURE__ */ React71.createElement(Grid22, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React71.createElement(SelectControl5, { options: fontWeightOptions }))));
3797
3871
  };
3798
3872
 
3799
3873
  // src/components/style-sections/typography-section/letter-spacing-field.tsx
3800
- import * as React70 from "react";
3801
- import { SizeControl as SizeControl8 } from "@elementor/editor-controls";
3874
+ import * as React72 from "react";
3875
+ import { useRef as useRef12 } from "react";
3876
+ import { SizeControl as SizeControl9 } from "@elementor/editor-controls";
3802
3877
  import { Grid as Grid23 } from "@elementor/ui";
3803
3878
  import { __ as __44 } from "@wordpress/i18n";
3804
3879
  var LetterSpacingField = () => {
3805
- return /* @__PURE__ */ React70.createElement(StylesField, { bind: "letter-spacing" }, /* @__PURE__ */ React70.createElement(Grid23, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React70.createElement(Grid23, { item: true, xs: 6 }, /* @__PURE__ */ React70.createElement(ControlLabel, null, __44("Letter spacing", "elementor"))), /* @__PURE__ */ React70.createElement(Grid23, { item: true, xs: 6 }, /* @__PURE__ */ React70.createElement(SizeControl8, null))));
3880
+ const rowRef = useRef12();
3881
+ return /* @__PURE__ */ React72.createElement(StylesField, { bind: "letter-spacing" }, /* @__PURE__ */ React72.createElement(Grid23, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap", ref: rowRef }, /* @__PURE__ */ React72.createElement(Grid23, { item: true, xs: 6 }, /* @__PURE__ */ React72.createElement(ControlLabel, null, __44("Letter spacing", "elementor"))), /* @__PURE__ */ React72.createElement(Grid23, { item: true, xs: 6 }, /* @__PURE__ */ React72.createElement(SizeControl9, { anchorRef: rowRef }))));
3806
3882
  };
3807
3883
 
3808
3884
  // src/components/style-sections/typography-section/line-height-field.tsx
3809
- import * as React71 from "react";
3810
- import { SizeControl as SizeControl9 } from "@elementor/editor-controls";
3885
+ import * as React73 from "react";
3886
+ import { useRef as useRef13 } from "react";
3887
+ import { SizeControl as SizeControl10 } from "@elementor/editor-controls";
3811
3888
  import { Grid as Grid24 } from "@elementor/ui";
3812
3889
  import { __ as __45 } from "@wordpress/i18n";
3813
3890
  var LineHeightField = () => {
3814
- return /* @__PURE__ */ React71.createElement(StylesField, { bind: "line-height" }, /* @__PURE__ */ React71.createElement(Grid24, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React71.createElement(Grid24, { item: true, xs: 6 }, /* @__PURE__ */ React71.createElement(ControlLabel, null, __45("Line height", "elementor"))), /* @__PURE__ */ React71.createElement(Grid24, { item: true, xs: 6 }, /* @__PURE__ */ React71.createElement(SizeControl9, null))));
3891
+ const rowRef = useRef13();
3892
+ return /* @__PURE__ */ React73.createElement(StylesField, { bind: "line-height" }, /* @__PURE__ */ React73.createElement(Grid24, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap", ref: rowRef }, /* @__PURE__ */ React73.createElement(Grid24, { item: true, xs: 6 }, /* @__PURE__ */ React73.createElement(ControlLabel, null, __45("Line height", "elementor"))), /* @__PURE__ */ React73.createElement(Grid24, { item: true, xs: 6 }, /* @__PURE__ */ React73.createElement(SizeControl10, { anchorRef: rowRef }))));
3815
3893
  };
3816
3894
 
3817
3895
  // src/components/style-sections/typography-section/text-alignment-field.tsx
3818
- import * as React72 from "react";
3896
+ import * as React74 from "react";
3819
3897
  import { ToggleControl as ToggleControl10 } from "@elementor/editor-controls";
3820
3898
  import { AlignCenterIcon, AlignJustifiedIcon, AlignLeftIcon, AlignRightIcon } from "@elementor/icons";
3821
3899
  import { Grid as Grid25, withDirection as withDirection9 } from "@elementor/ui";
@@ -3826,43 +3904,43 @@ var options8 = [
3826
3904
  {
3827
3905
  value: "start",
3828
3906
  label: __46("Start", "elementor"),
3829
- renderContent: ({ size }) => /* @__PURE__ */ React72.createElement(AlignStartIcon, { fontSize: size }),
3907
+ renderContent: ({ size }) => /* @__PURE__ */ React74.createElement(AlignStartIcon, { fontSize: size }),
3830
3908
  showTooltip: true
3831
3909
  },
3832
3910
  {
3833
3911
  value: "center",
3834
3912
  label: __46("Center", "elementor"),
3835
- renderContent: ({ size }) => /* @__PURE__ */ React72.createElement(AlignCenterIcon, { fontSize: size }),
3913
+ renderContent: ({ size }) => /* @__PURE__ */ React74.createElement(AlignCenterIcon, { fontSize: size }),
3836
3914
  showTooltip: true
3837
3915
  },
3838
3916
  {
3839
3917
  value: "end",
3840
3918
  label: __46("End", "elementor"),
3841
- renderContent: ({ size }) => /* @__PURE__ */ React72.createElement(AlignEndIcon, { fontSize: size }),
3919
+ renderContent: ({ size }) => /* @__PURE__ */ React74.createElement(AlignEndIcon, { fontSize: size }),
3842
3920
  showTooltip: true
3843
3921
  },
3844
3922
  {
3845
3923
  value: "justify",
3846
3924
  label: __46("Justify", "elementor"),
3847
- renderContent: ({ size }) => /* @__PURE__ */ React72.createElement(AlignJustifiedIcon, { fontSize: size }),
3925
+ renderContent: ({ size }) => /* @__PURE__ */ React74.createElement(AlignJustifiedIcon, { fontSize: size }),
3848
3926
  showTooltip: true
3849
3927
  }
3850
3928
  ];
3851
3929
  var TextAlignmentField = () => {
3852
- return /* @__PURE__ */ React72.createElement(StylesField, { bind: "text-align" }, /* @__PURE__ */ React72.createElement(Grid25, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React72.createElement(Grid25, { item: true, xs: 6 }, /* @__PURE__ */ React72.createElement(ControlLabel, null, __46("Text align", "elementor"))), /* @__PURE__ */ React72.createElement(Grid25, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React72.createElement(ToggleControl10, { options: options8 }))));
3930
+ return /* @__PURE__ */ React74.createElement(UiProviders, null, /* @__PURE__ */ React74.createElement(StylesField, { bind: "text-align" }, /* @__PURE__ */ React74.createElement(Grid25, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React74.createElement(Grid25, { item: true, xs: 6 }, /* @__PURE__ */ React74.createElement(ControlLabel, null, __46("Text align", "elementor"))), /* @__PURE__ */ React74.createElement(Grid25, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React74.createElement(ToggleControl10, { options: options8 })))));
3853
3931
  };
3854
3932
 
3855
3933
  // src/components/style-sections/typography-section/text-color-field.tsx
3856
- import * as React73 from "react";
3934
+ import * as React75 from "react";
3857
3935
  import { ColorControl as ColorControl2 } from "@elementor/editor-controls";
3858
3936
  import { Grid as Grid26 } from "@elementor/ui";
3859
3937
  import { __ as __47 } from "@wordpress/i18n";
3860
3938
  var TextColorField = () => {
3861
- return /* @__PURE__ */ React73.createElement(StylesField, { bind: "color" }, /* @__PURE__ */ React73.createElement(Grid26, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React73.createElement(Grid26, { item: true, xs: 6 }, /* @__PURE__ */ React73.createElement(ControlLabel, null, __47("Text color", "elementor"))), /* @__PURE__ */ React73.createElement(Grid26, { item: true, xs: 6 }, /* @__PURE__ */ React73.createElement(ColorControl2, null))));
3939
+ return /* @__PURE__ */ React75.createElement(StylesField, { bind: "color" }, /* @__PURE__ */ React75.createElement(Grid26, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React75.createElement(Grid26, { item: true, xs: 6 }, /* @__PURE__ */ React75.createElement(ControlLabel, null, __47("Text color", "elementor"))), /* @__PURE__ */ React75.createElement(Grid26, { item: true, xs: 6 }, /* @__PURE__ */ React75.createElement(ColorControl2, null))));
3862
3940
  };
3863
3941
 
3864
3942
  // src/components/style-sections/typography-section/text-decoration-field.tsx
3865
- import * as React74 from "react";
3943
+ import * as React76 from "react";
3866
3944
  import { ToggleControl as ToggleControl11 } from "@elementor/editor-controls";
3867
3945
  import { MinusIcon as MinusIcon3, OverlineIcon, StrikethroughIcon, UnderlineIcon } from "@elementor/icons";
3868
3946
  import { Grid as Grid27 } from "@elementor/ui";
@@ -3871,33 +3949,33 @@ var options9 = [
3871
3949
  {
3872
3950
  value: "none",
3873
3951
  label: __48("None", "elementor"),
3874
- renderContent: ({ size }) => /* @__PURE__ */ React74.createElement(MinusIcon3, { fontSize: size }),
3952
+ renderContent: ({ size }) => /* @__PURE__ */ React76.createElement(MinusIcon3, { fontSize: size }),
3875
3953
  showTooltip: true,
3876
3954
  exclusive: true
3877
3955
  },
3878
3956
  {
3879
3957
  value: "underline",
3880
3958
  label: __48("Underline", "elementor"),
3881
- renderContent: ({ size }) => /* @__PURE__ */ React74.createElement(UnderlineIcon, { fontSize: size }),
3959
+ renderContent: ({ size }) => /* @__PURE__ */ React76.createElement(UnderlineIcon, { fontSize: size }),
3882
3960
  showTooltip: true
3883
3961
  },
3884
3962
  {
3885
3963
  value: "line-through",
3886
3964
  label: __48("Line-through", "elementor"),
3887
- renderContent: ({ size }) => /* @__PURE__ */ React74.createElement(StrikethroughIcon, { fontSize: size }),
3965
+ renderContent: ({ size }) => /* @__PURE__ */ React76.createElement(StrikethroughIcon, { fontSize: size }),
3888
3966
  showTooltip: true
3889
3967
  },
3890
3968
  {
3891
3969
  value: "overline",
3892
3970
  label: __48("Overline", "elementor"),
3893
- renderContent: ({ size }) => /* @__PURE__ */ React74.createElement(OverlineIcon, { fontSize: size }),
3971
+ renderContent: ({ size }) => /* @__PURE__ */ React76.createElement(OverlineIcon, { fontSize: size }),
3894
3972
  showTooltip: true
3895
3973
  }
3896
3974
  ];
3897
- var TextDecorationField = () => /* @__PURE__ */ React74.createElement(StylesField, { bind: "text-decoration" }, /* @__PURE__ */ React74.createElement(Grid27, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React74.createElement(Grid27, { item: true, xs: 6 }, /* @__PURE__ */ React74.createElement(ControlLabel, null, __48("Line decoration", "elementor"))), /* @__PURE__ */ React74.createElement(Grid27, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React74.createElement(ToggleControl11, { options: options9, exclusive: false }))));
3975
+ var TextDecorationField = () => /* @__PURE__ */ React76.createElement(StylesField, { bind: "text-decoration" }, /* @__PURE__ */ React76.createElement(Grid27, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React76.createElement(Grid27, { item: true, xs: 6 }, /* @__PURE__ */ React76.createElement(ControlLabel, null, __48("Line decoration", "elementor"))), /* @__PURE__ */ React76.createElement(Grid27, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React76.createElement(ToggleControl11, { options: options9, exclusive: false }))));
3898
3976
 
3899
3977
  // src/components/style-sections/typography-section/text-direction-field.tsx
3900
- import * as React75 from "react";
3978
+ import * as React77 from "react";
3901
3979
  import { ToggleControl as ToggleControl12 } from "@elementor/editor-controls";
3902
3980
  import { TextDirectionLtrIcon, TextDirectionRtlIcon } from "@elementor/icons";
3903
3981
  import { Grid as Grid28 } from "@elementor/ui";
@@ -3906,22 +3984,22 @@ var options10 = [
3906
3984
  {
3907
3985
  value: "ltr",
3908
3986
  label: __49("Left to right", "elementor"),
3909
- renderContent: ({ size }) => /* @__PURE__ */ React75.createElement(TextDirectionLtrIcon, { fontSize: size }),
3987
+ renderContent: ({ size }) => /* @__PURE__ */ React77.createElement(TextDirectionLtrIcon, { fontSize: size }),
3910
3988
  showTooltip: true
3911
3989
  },
3912
3990
  {
3913
3991
  value: "rtl",
3914
3992
  label: __49("Right to left", "elementor"),
3915
- renderContent: ({ size }) => /* @__PURE__ */ React75.createElement(TextDirectionRtlIcon, { fontSize: size }),
3993
+ renderContent: ({ size }) => /* @__PURE__ */ React77.createElement(TextDirectionRtlIcon, { fontSize: size }),
3916
3994
  showTooltip: true
3917
3995
  }
3918
3996
  ];
3919
3997
  var TextDirectionField = () => {
3920
- return /* @__PURE__ */ React75.createElement(StylesField, { bind: "direction" }, /* @__PURE__ */ React75.createElement(Grid28, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React75.createElement(Grid28, { item: true, xs: 6 }, /* @__PURE__ */ React75.createElement(ControlLabel, null, __49("Direction", "elementor"))), /* @__PURE__ */ React75.createElement(Grid28, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React75.createElement(ToggleControl12, { options: options10 }))));
3998
+ return /* @__PURE__ */ React77.createElement(StylesField, { bind: "direction" }, /* @__PURE__ */ React77.createElement(Grid28, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React77.createElement(Grid28, { item: true, xs: 6 }, /* @__PURE__ */ React77.createElement(ControlLabel, null, __49("Direction", "elementor"))), /* @__PURE__ */ React77.createElement(Grid28, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React77.createElement(ToggleControl12, { options: options10 }))));
3921
3999
  };
3922
4000
 
3923
4001
  // src/components/style-sections/typography-section/text-stroke-field.tsx
3924
- import * as React76 from "react";
4002
+ import * as React78 from "react";
3925
4003
  import { StrokeControl } from "@elementor/editor-controls";
3926
4004
  import { __ as __50 } from "@wordpress/i18n";
3927
4005
  var initTextStroke = {
@@ -3941,30 +4019,29 @@ var initTextStroke = {
3941
4019
  }
3942
4020
  };
3943
4021
  var TextStrokeField = () => {
3944
- const { canEdit } = useStyle();
3945
- const [textStroke, setTextStroke] = useStylesField("stroke");
4022
+ const { value, setValue, canEdit } = useStylesField("stroke");
3946
4023
  const addTextStroke = () => {
3947
- setTextStroke(initTextStroke);
4024
+ setValue(initTextStroke);
3948
4025
  };
3949
4026
  const removeTextStroke = () => {
3950
- setTextStroke(null);
4027
+ setValue(null);
3951
4028
  };
3952
- const hasTextStroke = Boolean(textStroke);
3953
- return /* @__PURE__ */ React76.createElement(StylesField, { bind: "stroke" }, /* @__PURE__ */ React76.createElement(
4029
+ const hasTextStroke = Boolean(value);
4030
+ return /* @__PURE__ */ React78.createElement(StylesField, { bind: "stroke" }, /* @__PURE__ */ React78.createElement(
3954
4031
  AddOrRemoveContent,
3955
4032
  {
3956
4033
  isAdded: hasTextStroke,
3957
4034
  onAdd: addTextStroke,
3958
4035
  onRemove: removeTextStroke,
3959
4036
  disabled: !canEdit,
3960
- renderLabel: () => /* @__PURE__ */ React76.createElement(ControlLabel, null, __50("Text stroke", "elementor"))
4037
+ renderLabel: () => /* @__PURE__ */ React78.createElement(ControlLabel, null, __50("Text stroke", "elementor"))
3961
4038
  },
3962
- /* @__PURE__ */ React76.createElement(StrokeControl, null)
4039
+ /* @__PURE__ */ React78.createElement(StrokeControl, null)
3963
4040
  ));
3964
4041
  };
3965
4042
 
3966
4043
  // src/components/style-sections/typography-section/transform-field.tsx
3967
- import * as React77 from "react";
4044
+ import * as React79 from "react";
3968
4045
  import { ToggleControl as ToggleControl13 } from "@elementor/editor-controls";
3969
4046
  import { LetterCaseIcon, LetterCaseLowerIcon, LetterCaseUpperIcon, MinusIcon as MinusIcon4 } from "@elementor/icons";
3970
4047
  import { Grid as Grid29 } from "@elementor/ui";
@@ -3973,45 +4050,47 @@ var options11 = [
3973
4050
  {
3974
4051
  value: "none",
3975
4052
  label: __51("None", "elementor"),
3976
- renderContent: ({ size }) => /* @__PURE__ */ React77.createElement(MinusIcon4, { fontSize: size }),
4053
+ renderContent: ({ size }) => /* @__PURE__ */ React79.createElement(MinusIcon4, { fontSize: size }),
3977
4054
  showTooltip: true
3978
4055
  },
3979
4056
  {
3980
4057
  value: "capitalize",
3981
4058
  label: __51("Capitalize", "elementor"),
3982
- renderContent: ({ size }) => /* @__PURE__ */ React77.createElement(LetterCaseIcon, { fontSize: size }),
4059
+ renderContent: ({ size }) => /* @__PURE__ */ React79.createElement(LetterCaseIcon, { fontSize: size }),
3983
4060
  showTooltip: true
3984
4061
  },
3985
4062
  {
3986
4063
  value: "uppercase",
3987
4064
  label: __51("Uppercase", "elementor"),
3988
- renderContent: ({ size }) => /* @__PURE__ */ React77.createElement(LetterCaseUpperIcon, { fontSize: size }),
4065
+ renderContent: ({ size }) => /* @__PURE__ */ React79.createElement(LetterCaseUpperIcon, { fontSize: size }),
3989
4066
  showTooltip: true
3990
4067
  },
3991
4068
  {
3992
4069
  value: "lowercase",
3993
4070
  label: __51("Lowercase", "elementor"),
3994
- renderContent: ({ size }) => /* @__PURE__ */ React77.createElement(LetterCaseLowerIcon, { fontSize: size }),
4071
+ renderContent: ({ size }) => /* @__PURE__ */ React79.createElement(LetterCaseLowerIcon, { fontSize: size }),
3995
4072
  showTooltip: true
3996
4073
  }
3997
4074
  ];
3998
- var TransformField = () => /* @__PURE__ */ React77.createElement(StylesField, { bind: "text-transform" }, /* @__PURE__ */ React77.createElement(Grid29, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React77.createElement(Grid29, { item: true, xs: 6 }, /* @__PURE__ */ React77.createElement(ControlLabel, null, __51("Text transform", "elementor"))), /* @__PURE__ */ React77.createElement(Grid29, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React77.createElement(ToggleControl13, { options: options11 }))));
4075
+ var TransformField = () => /* @__PURE__ */ React79.createElement(StylesField, { bind: "text-transform" }, /* @__PURE__ */ React79.createElement(Grid29, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React79.createElement(Grid29, { item: true, xs: 6 }, /* @__PURE__ */ React79.createElement(ControlLabel, null, __51("Text transform", "elementor"))), /* @__PURE__ */ React79.createElement(Grid29, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React79.createElement(ToggleControl13, { options: options11 }))));
3999
4076
 
4000
4077
  // src/components/style-sections/typography-section/word-spacing-field.tsx
4001
- import * as React78 from "react";
4002
- import { SizeControl as SizeControl10 } from "@elementor/editor-controls";
4078
+ import * as React80 from "react";
4079
+ import { useRef as useRef14 } from "react";
4080
+ import { SizeControl as SizeControl11 } from "@elementor/editor-controls";
4003
4081
  import { Grid as Grid30 } from "@elementor/ui";
4004
4082
  import { __ as __52 } from "@wordpress/i18n";
4005
4083
  var WordSpacingField = () => {
4006
- return /* @__PURE__ */ React78.createElement(StylesField, { bind: "word-spacing" }, /* @__PURE__ */ React78.createElement(Grid30, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React78.createElement(Grid30, { item: true, xs: 6 }, /* @__PURE__ */ React78.createElement(ControlLabel, null, __52("Word spacing", "elementor"))), /* @__PURE__ */ React78.createElement(Grid30, { item: true, xs: 6 }, /* @__PURE__ */ React78.createElement(SizeControl10, null))));
4084
+ const rowRef = useRef14();
4085
+ return /* @__PURE__ */ React80.createElement(StylesField, { bind: "word-spacing" }, /* @__PURE__ */ React80.createElement(Grid30, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap", ref: rowRef }, /* @__PURE__ */ React80.createElement(Grid30, { item: true, xs: 6 }, /* @__PURE__ */ React80.createElement(ControlLabel, null, __52("Word spacing", "elementor"))), /* @__PURE__ */ React80.createElement(Grid30, { item: true, xs: 6 }, /* @__PURE__ */ React80.createElement(SizeControl11, { anchorRef: rowRef }))));
4007
4086
  };
4008
4087
 
4009
4088
  // src/components/style-sections/typography-section/typography-section.tsx
4010
4089
  var TypographySection = () => {
4011
- const [columnCount] = useStylesField("column-count");
4012
- const isVersion330Active = isExperimentActive11("e_v_3_30");
4090
+ const { value: columnCount } = useStylesField("column-count");
4013
4091
  const hasMultiColumns = !!(columnCount?.value && columnCount?.value > 1);
4014
- return /* @__PURE__ */ React79.createElement(SectionContent, null, /* @__PURE__ */ React79.createElement(FontFamilyField, null), /* @__PURE__ */ React79.createElement(FontWeightField, null), /* @__PURE__ */ React79.createElement(FontSizeField, null), /* @__PURE__ */ React79.createElement(PanelDivider, null), /* @__PURE__ */ React79.createElement(TextAlignmentField, null), /* @__PURE__ */ React79.createElement(TextColorField, null), /* @__PURE__ */ React79.createElement(
4092
+ const isVersion330Active = isExperimentActive11("e_v_3_30");
4093
+ return /* @__PURE__ */ React81.createElement(SectionContent, null, /* @__PURE__ */ React81.createElement(FontFamilyField, null), /* @__PURE__ */ React81.createElement(FontWeightField, null), /* @__PURE__ */ React81.createElement(FontSizeField, null), /* @__PURE__ */ React81.createElement(PanelDivider, null), /* @__PURE__ */ React81.createElement(TextAlignmentField, null), /* @__PURE__ */ React81.createElement(TextColorField, null), /* @__PURE__ */ React81.createElement(
4015
4094
  StyleTabCollapsibleContent,
4016
4095
  {
4017
4096
  fields: [
@@ -4026,19 +4105,19 @@ var TypographySection = () => {
4026
4105
  "stroke"
4027
4106
  ]
4028
4107
  },
4029
- /* @__PURE__ */ React79.createElement(SectionContent, { sx: { pt: 2 } }, /* @__PURE__ */ React79.createElement(LineHeightField, null), /* @__PURE__ */ React79.createElement(LetterSpacingField, null), /* @__PURE__ */ React79.createElement(WordSpacingField, null), isVersion330Active && /* @__PURE__ */ React79.createElement(React79.Fragment, null, /* @__PURE__ */ React79.createElement(ColumnCountField, null), hasMultiColumns && /* @__PURE__ */ React79.createElement(ColumnGapField, null)), /* @__PURE__ */ React79.createElement(PanelDivider, null), /* @__PURE__ */ React79.createElement(TextDecorationField, null), /* @__PURE__ */ React79.createElement(TransformField, null), /* @__PURE__ */ React79.createElement(TextDirectionField, null), /* @__PURE__ */ React79.createElement(FontStyleField, null), /* @__PURE__ */ React79.createElement(TextStrokeField, null))
4108
+ /* @__PURE__ */ React81.createElement(SectionContent, { sx: { pt: 2 } }, /* @__PURE__ */ React81.createElement(LineHeightField, null), /* @__PURE__ */ React81.createElement(LetterSpacingField, null), /* @__PURE__ */ React81.createElement(WordSpacingField, null), isVersion330Active && /* @__PURE__ */ React81.createElement(React81.Fragment, null, /* @__PURE__ */ React81.createElement(ColumnCountField, null), hasMultiColumns && /* @__PURE__ */ React81.createElement(ColumnGapField, null)), /* @__PURE__ */ React81.createElement(PanelDivider, null), /* @__PURE__ */ React81.createElement(TextDecorationField, null), /* @__PURE__ */ React81.createElement(TransformField, null), /* @__PURE__ */ React81.createElement(TextDirectionField, null), /* @__PURE__ */ React81.createElement(FontStyleField, null), /* @__PURE__ */ React81.createElement(TextStrokeField, null))
4030
4109
  ));
4031
4110
  };
4032
4111
 
4033
4112
  // src/components/style-tab-section.tsx
4034
- import * as React80 from "react";
4113
+ import * as React82 from "react";
4035
4114
  import { isExperimentActive as isExperimentActive12 } from "@elementor/editor-v1-adapters";
4036
4115
  var StyleTabSection = ({ section, fields = [] }) => {
4037
4116
  const { component, name, title } = section;
4038
4117
  const tabDefaults = useDefaultPanelSettings();
4039
4118
  const SectionComponent = component;
4040
4119
  const isExpanded = isExperimentActive12(EXPERIMENTAL_FEATURES.V_3_30) ? tabDefaults.defaultSectionsExpanded.style?.includes(name) : false;
4041
- return /* @__PURE__ */ React80.createElement(Section, { title, defaultExpanded: isExpanded, titleEnd: getStylesInheritanceIndicators(fields) }, /* @__PURE__ */ React80.createElement(SectionComponent, null));
4120
+ return /* @__PURE__ */ React82.createElement(Section, { title, defaultExpanded: isExpanded, titleEnd: getStylesInheritanceIndicators(fields) }, /* @__PURE__ */ React82.createElement(SectionComponent, null));
4042
4121
  };
4043
4122
 
4044
4123
  // src/components/style-tab.tsx
@@ -4055,7 +4134,7 @@ var StyleTab = () => {
4055
4134
  const [activeStyleDefId, setActiveStyleDefId] = useActiveStyleDefId(currentClassesProp);
4056
4135
  const [activeStyleState, setActiveStyleState] = useState12(null);
4057
4136
  const breakpoint = useActiveBreakpoint();
4058
- return /* @__PURE__ */ React81.createElement(ClassesPropProvider, { prop: currentClassesProp }, /* @__PURE__ */ React81.createElement(
4137
+ return /* @__PURE__ */ React83.createElement(ClassesPropProvider, { prop: currentClassesProp }, /* @__PURE__ */ React83.createElement(
4059
4138
  StyleProvider,
4060
4139
  {
4061
4140
  meta: { breakpoint, state: activeStyleState },
@@ -4066,7 +4145,7 @@ var StyleTab = () => {
4066
4145
  },
4067
4146
  setMetaState: setActiveStyleState
4068
4147
  },
4069
- /* @__PURE__ */ React81.createElement(SessionStorageProvider2, { prefix: activeStyleDefId ?? "" }, /* @__PURE__ */ React81.createElement(StyleInheritanceProvider, null, /* @__PURE__ */ React81.createElement(ClassesHeader, null, /* @__PURE__ */ React81.createElement(CssClassSelector, null), /* @__PURE__ */ React81.createElement(Divider5, null)), /* @__PURE__ */ React81.createElement(SectionsList, null, /* @__PURE__ */ React81.createElement(
4148
+ /* @__PURE__ */ React83.createElement(SessionStorageProvider2, { prefix: activeStyleDefId ?? "" }, /* @__PURE__ */ React83.createElement(StyleInheritanceProvider, null, /* @__PURE__ */ React83.createElement(ClassesHeader, null, /* @__PURE__ */ React83.createElement(CssClassSelector, null), /* @__PURE__ */ React83.createElement(Divider5, null)), /* @__PURE__ */ React83.createElement(SectionsList, null, /* @__PURE__ */ React83.createElement(
4070
4149
  StyleTabSection,
4071
4150
  {
4072
4151
  section: {
@@ -4085,7 +4164,7 @@ var StyleTab = () => {
4085
4164
  "gap"
4086
4165
  ]
4087
4166
  }
4088
- ), /* @__PURE__ */ React81.createElement(
4167
+ ), /* @__PURE__ */ React83.createElement(
4089
4168
  StyleTabSection,
4090
4169
  {
4091
4170
  section: {
@@ -4095,7 +4174,7 @@ var StyleTab = () => {
4095
4174
  },
4096
4175
  fields: ["margin", "padding"]
4097
4176
  }
4098
- ), /* @__PURE__ */ React81.createElement(
4177
+ ), /* @__PURE__ */ React83.createElement(
4099
4178
  StyleTabSection,
4100
4179
  {
4101
4180
  section: {
@@ -4115,7 +4194,7 @@ var StyleTab = () => {
4115
4194
  "object-fit"
4116
4195
  ]
4117
4196
  }
4118
- ), /* @__PURE__ */ React81.createElement(
4197
+ ), /* @__PURE__ */ React83.createElement(
4119
4198
  StyleTabSection,
4120
4199
  {
4121
4200
  section: {
@@ -4125,7 +4204,7 @@ var StyleTab = () => {
4125
4204
  },
4126
4205
  fields: ["position", "z-index", "scroll-margin-top"]
4127
4206
  }
4128
- ), /* @__PURE__ */ React81.createElement(
4207
+ ), /* @__PURE__ */ React83.createElement(
4129
4208
  StyleTabSection,
4130
4209
  {
4131
4210
  section: {
@@ -4150,7 +4229,7 @@ var StyleTab = () => {
4150
4229
  "stroke"
4151
4230
  ]
4152
4231
  }
4153
- ), /* @__PURE__ */ React81.createElement(
4232
+ ), /* @__PURE__ */ React83.createElement(
4154
4233
  StyleTabSection,
4155
4234
  {
4156
4235
  section: {
@@ -4160,7 +4239,7 @@ var StyleTab = () => {
4160
4239
  },
4161
4240
  fields: ["background"]
4162
4241
  }
4163
- ), /* @__PURE__ */ React81.createElement(
4242
+ ), /* @__PURE__ */ React83.createElement(
4164
4243
  StyleTabSection,
4165
4244
  {
4166
4245
  section: {
@@ -4170,7 +4249,7 @@ var StyleTab = () => {
4170
4249
  },
4171
4250
  fields: ["border-radius", "border-width", "border-color", "border-style"]
4172
4251
  }
4173
- ), /* @__PURE__ */ React81.createElement(
4252
+ ), /* @__PURE__ */ React83.createElement(
4174
4253
  StyleTabSection,
4175
4254
  {
4176
4255
  section: {
@@ -4185,7 +4264,7 @@ var StyleTab = () => {
4185
4264
  };
4186
4265
  function ClassesHeader({ children }) {
4187
4266
  const scrollDirection = useScrollDirection();
4188
- return /* @__PURE__ */ React81.createElement(Stack17, { sx: { ...stickyHeaderStyles, top: scrollDirection === "up" ? TABS_HEADER_HEIGHT : 0 } }, children);
4267
+ return /* @__PURE__ */ React83.createElement(Stack17, { sx: { ...stickyHeaderStyles, top: scrollDirection === "up" ? TABS_HEADER_HEIGHT : 0 } }, children);
4189
4268
  }
4190
4269
  function useCurrentClassesProp() {
4191
4270
  const { elementType } = useElement();
@@ -4204,7 +4283,7 @@ var EditingPanelTabs = () => {
4204
4283
  return (
4205
4284
  // When switching between elements, the local states should be reset. We are using key to rerender the tabs.
4206
4285
  // Reference: https://react.dev/learn/preserving-and-resetting-state#resetting-a-form-with-a-key
4207
- /* @__PURE__ */ React82.createElement(Fragment10, { key: element.id }, /* @__PURE__ */ React82.createElement(PanelTabContent, null))
4286
+ /* @__PURE__ */ React84.createElement(Fragment9, { key: element.id }, /* @__PURE__ */ React84.createElement(PanelTabContent, null))
4208
4287
  );
4209
4288
  };
4210
4289
  var PanelTabContent = () => {
@@ -4212,7 +4291,7 @@ var PanelTabContent = () => {
4212
4291
  const defaultComponentTab = isExperimentActive13(EXPERIMENTAL_FEATURES.V_3_30) ? editorDefaults.defaultTab : "settings";
4213
4292
  const [currentTab, setCurrentTab] = useStateByElement("tab", defaultComponentTab);
4214
4293
  const { getTabProps, getTabPanelProps, getTabsProps } = useTabs(currentTab);
4215
- return /* @__PURE__ */ React82.createElement(ScrollProvider, null, /* @__PURE__ */ React82.createElement(Stack18, { direction: "column", sx: { width: "100%" } }, /* @__PURE__ */ React82.createElement(Stack18, { sx: { ...stickyHeaderStyles, top: 0 } }, /* @__PURE__ */ React82.createElement(
4294
+ return /* @__PURE__ */ React84.createElement(ScrollProvider, null, /* @__PURE__ */ React84.createElement(Stack18, { direction: "column", sx: { width: "100%" } }, /* @__PURE__ */ React84.createElement(Stack18, { sx: { ...stickyHeaderStyles, top: 0 } }, /* @__PURE__ */ React84.createElement(
4216
4295
  Tabs,
4217
4296
  {
4218
4297
  variant: "fullWidth",
@@ -4224,9 +4303,9 @@ var PanelTabContent = () => {
4224
4303
  setCurrentTab(newValue);
4225
4304
  }
4226
4305
  },
4227
- /* @__PURE__ */ React82.createElement(Tab, { label: __54("General", "elementor"), ...getTabProps("settings") }),
4228
- /* @__PURE__ */ React82.createElement(Tab, { label: __54("Style", "elementor"), ...getTabProps("style") })
4229
- ), /* @__PURE__ */ React82.createElement(Divider6, null)), /* @__PURE__ */ React82.createElement(TabPanel, { ...getTabPanelProps("settings"), disablePadding: true }, /* @__PURE__ */ React82.createElement(SettingsTab, null)), /* @__PURE__ */ React82.createElement(TabPanel, { ...getTabPanelProps("style"), disablePadding: true }, /* @__PURE__ */ React82.createElement(StyleTab, null))));
4306
+ /* @__PURE__ */ React84.createElement(Tab, { label: __54("General", "elementor"), ...getTabProps("settings") }),
4307
+ /* @__PURE__ */ React84.createElement(Tab, { label: __54("Style", "elementor"), ...getTabProps("style") })
4308
+ ), /* @__PURE__ */ React84.createElement(Divider6, null)), /* @__PURE__ */ React84.createElement(TabPanel, { ...getTabPanelProps("settings"), disablePadding: true }, /* @__PURE__ */ React84.createElement(SettingsTab, null)), /* @__PURE__ */ React84.createElement(TabPanel, { ...getTabPanelProps("style"), disablePadding: true }, /* @__PURE__ */ React84.createElement(StyleTab, null))));
4230
4309
  };
4231
4310
 
4232
4311
  // src/components/editing-panel.tsx
@@ -4239,7 +4318,7 @@ var EditingPanel = () => {
4239
4318
  return null;
4240
4319
  }
4241
4320
  const panelTitle = __55("Edit %s", "elementor").replace("%s", elementType.title);
4242
- return /* @__PURE__ */ React83.createElement(ErrorBoundary, { fallback: /* @__PURE__ */ React83.createElement(EditorPanelErrorFallback, null) }, /* @__PURE__ */ React83.createElement(SessionStorageProvider3, { prefix: "elementor" }, /* @__PURE__ */ React83.createElement(ThemeProvider9, null, /* @__PURE__ */ React83.createElement(Panel, null, /* @__PURE__ */ React83.createElement(PanelHeader, null, /* @__PURE__ */ React83.createElement(PanelHeaderTitle, null, panelTitle), /* @__PURE__ */ React83.createElement(AtomIcon, { fontSize: "small", sx: { color: "text.tertiary" } })), /* @__PURE__ */ React83.createElement(PanelBody, null, /* @__PURE__ */ React83.createElement(ControlActionsProvider, { items: menuItems }, /* @__PURE__ */ React83.createElement(ControlReplacementsProvider, { replacements: controlReplacements }, /* @__PURE__ */ React83.createElement(ElementProvider, { element, elementType }, /* @__PURE__ */ React83.createElement(EditingPanelTabs, null)))))))));
4321
+ return /* @__PURE__ */ React85.createElement(ErrorBoundary, { fallback: /* @__PURE__ */ React85.createElement(EditorPanelErrorFallback, null) }, /* @__PURE__ */ React85.createElement(SessionStorageProvider3, { prefix: "elementor" }, /* @__PURE__ */ React85.createElement(ThemeProvider2, null, /* @__PURE__ */ React85.createElement(Panel, null, /* @__PURE__ */ React85.createElement(PanelHeader, null, /* @__PURE__ */ React85.createElement(PanelHeaderTitle, null, panelTitle), /* @__PURE__ */ React85.createElement(AtomIcon, { fontSize: "small", sx: { color: "text.tertiary" } })), /* @__PURE__ */ React85.createElement(PanelBody, null, /* @__PURE__ */ React85.createElement(ControlActionsProvider, { items: menuItems }, /* @__PURE__ */ React85.createElement(ControlReplacementsProvider, { replacements: controlReplacements }, /* @__PURE__ */ React85.createElement(ElementProvider, { element, elementType }, /* @__PURE__ */ React85.createElement(EditingPanelTabs, null)))))))));
4243
4322
  };
4244
4323
 
4245
4324
  // src/panel.ts
@@ -4289,47 +4368,15 @@ var EditingPanelHooks = () => {
4289
4368
 
4290
4369
  // src/dynamics/init.ts
4291
4370
  import { settingsTransformersRegistry, styleTransformersRegistry } from "@elementor/editor-canvas";
4371
+ import { injectIntoRepeaterItemIcon, injectIntoRepeaterItemLabel } from "@elementor/editor-controls";
4292
4372
 
4293
- // src/dynamics/components/dynamic-selection-control.tsx
4294
- import * as React87 from "react";
4295
- import { ControlFormLabel as ControlFormLabel6, useBoundProp as useBoundProp5 } from "@elementor/editor-controls";
4296
- import { PopoverHeader as PopoverHeader2 } from "@elementor/editor-ui";
4297
- import { DatabaseIcon as DatabaseIcon2, SettingsIcon, XIcon } from "@elementor/icons";
4298
- import {
4299
- bindPopover as bindPopover2,
4300
- bindTrigger as bindTrigger2,
4301
- Box as Box8,
4302
- Divider as Divider8,
4303
- Grid as Grid31,
4304
- IconButton as IconButton5,
4305
- Paper,
4306
- Popover as Popover2,
4307
- Stack as Stack21,
4308
- Tab as Tab2,
4309
- TabPanel as TabPanel2,
4310
- Tabs as Tabs2,
4311
- UnstableTag as Tag,
4312
- usePopupState as usePopupState3,
4313
- useTabs as useTabs2
4314
- } from "@elementor/ui";
4315
- import { __ as __57 } from "@wordpress/i18n";
4316
-
4317
- // src/components/popover-content.tsx
4318
- import * as React84 from "react";
4319
- import { Stack as Stack19 } from "@elementor/ui";
4320
- var PopoverContent = ({ alignItems, gap = 1.5, p, children }) => /* @__PURE__ */ React84.createElement(Stack19, { alignItems, gap, p }, children);
4321
-
4322
- // src/hooks/use-persist-dynamic-value.ts
4323
- import { useSessionStorage as useSessionStorage2 } from "@elementor/session";
4324
- var usePersistDynamicValue = (propKey) => {
4325
- const { element } = useElement();
4326
- const prefixedKey = `dynamic/non-dynamic-values-history/${element.id}/${propKey}`;
4327
- return useSessionStorage2(prefixedKey);
4328
- };
4329
-
4330
- // src/dynamics/dynamic-control.tsx
4331
- import * as React85 from "react";
4373
+ // src/dynamics/components/background-control-dynamic-tag.tsx
4374
+ import * as React86 from "react";
4332
4375
  import { PropKeyProvider as PropKeyProvider3, PropProvider as PropProvider3, useBoundProp as useBoundProp3 } from "@elementor/editor-controls";
4376
+ import {
4377
+ backgroundImageOverlayPropTypeUtil
4378
+ } from "@elementor/editor-props";
4379
+ import { DatabaseIcon } from "@elementor/icons";
4333
4380
 
4334
4381
  // src/dynamics/hooks/use-dynamic-tag.ts
4335
4382
  import { useMemo as useMemo8 } from "react";
@@ -4409,9 +4456,64 @@ var useDynamicTag = (tagName) => {
4409
4456
  return useMemo8(() => dynamicTags.find((tag) => tag.name === tagName) ?? null, [dynamicTags, tagName]);
4410
4457
  };
4411
4458
 
4459
+ // src/dynamics/components/background-control-dynamic-tag.tsx
4460
+ var BackgroundControlDynamicTagIcon = () => /* @__PURE__ */ React86.createElement(DatabaseIcon, { fontSize: "tiny" });
4461
+ var BackgroundControlDynamicTagLabel = ({ value }) => {
4462
+ const context = useBoundProp3(backgroundImageOverlayPropTypeUtil);
4463
+ return /* @__PURE__ */ React86.createElement(PropProvider3, { ...context, value: value.value }, /* @__PURE__ */ React86.createElement(PropKeyProvider3, { bind: "image" }, /* @__PURE__ */ React86.createElement(Wrapper, { rawValue: value.value })));
4464
+ };
4465
+ var Wrapper = ({ rawValue }) => {
4466
+ const { propType } = useBoundProp3();
4467
+ const imageOverlayPropType = propType.prop_types["background-image-overlay"];
4468
+ return /* @__PURE__ */ React86.createElement(PropProvider3, { propType: imageOverlayPropType.shape.image, value: rawValue, setValue: () => void 0 }, /* @__PURE__ */ React86.createElement(PropKeyProvider3, { bind: "src" }, /* @__PURE__ */ React86.createElement(Content, { rawValue: rawValue.image })));
4469
+ };
4470
+ var Content = ({ rawValue }) => {
4471
+ const src = rawValue.value.src;
4472
+ const dynamicTag = useDynamicTag(src.value.name || "");
4473
+ return /* @__PURE__ */ React86.createElement(React86.Fragment, null, dynamicTag?.label);
4474
+ };
4475
+
4476
+ // src/dynamics/components/dynamic-selection-control.tsx
4477
+ import * as React90 from "react";
4478
+ import { ControlFormLabel as ControlFormLabel6, useBoundProp as useBoundProp6 } from "@elementor/editor-controls";
4479
+ import { PopoverHeader as PopoverHeader2, PopoverScrollableContent } from "@elementor/editor-ui";
4480
+ import { DatabaseIcon as DatabaseIcon3, SettingsIcon, XIcon } from "@elementor/icons";
4481
+ import {
4482
+ bindPopover as bindPopover2,
4483
+ bindTrigger as bindTrigger2,
4484
+ Box as Box8,
4485
+ Divider as Divider8,
4486
+ Grid as Grid31,
4487
+ IconButton as IconButton5,
4488
+ Popover as Popover2,
4489
+ Stack as Stack21,
4490
+ Tab as Tab2,
4491
+ TabPanel as TabPanel2,
4492
+ Tabs as Tabs2,
4493
+ UnstableTag as Tag,
4494
+ usePopupState as usePopupState3,
4495
+ useTabs as useTabs2
4496
+ } from "@elementor/ui";
4497
+ import { __ as __57 } from "@wordpress/i18n";
4498
+
4499
+ // src/components/popover-content.tsx
4500
+ import * as React87 from "react";
4501
+ import { Stack as Stack19 } from "@elementor/ui";
4502
+ var PopoverContent = ({ alignItems, gap = 1.5, p, children }) => /* @__PURE__ */ React87.createElement(Stack19, { alignItems, gap, p }, children);
4503
+
4504
+ // src/hooks/use-persist-dynamic-value.ts
4505
+ import { useSessionStorage as useSessionStorage2 } from "@elementor/session";
4506
+ var usePersistDynamicValue = (propKey) => {
4507
+ const { element } = useElement();
4508
+ const prefixedKey = `dynamic/non-dynamic-values-history/${element.id}/${propKey}`;
4509
+ return useSessionStorage2(prefixedKey);
4510
+ };
4511
+
4412
4512
  // src/dynamics/dynamic-control.tsx
4513
+ import * as React88 from "react";
4514
+ import { PropKeyProvider as PropKeyProvider4, PropProvider as PropProvider4, useBoundProp as useBoundProp4 } from "@elementor/editor-controls";
4413
4515
  var DynamicControl = ({ bind, children }) => {
4414
- const { value, setValue } = useBoundProp3(dynamicPropTypeUtil);
4516
+ const { value, setValue } = useBoundProp4(dynamicPropTypeUtil);
4415
4517
  const { name = "", settings } = value ?? {};
4416
4518
  const dynamicTag = useDynamicTag(name);
4417
4519
  if (!dynamicTag) {
@@ -4430,81 +4532,78 @@ var DynamicControl = ({ bind, children }) => {
4430
4532
  });
4431
4533
  };
4432
4534
  const propType = createTopLevelOjectType({ schema: dynamicTag.props_schema });
4433
- return /* @__PURE__ */ React85.createElement(PropProvider3, { propType, setValue: setDynamicValue, value: { [bind]: dynamicValue } }, /* @__PURE__ */ React85.createElement(PropKeyProvider3, { bind }, children));
4535
+ return /* @__PURE__ */ React88.createElement(PropProvider4, { propType, setValue: setDynamicValue, value: { [bind]: dynamicValue } }, /* @__PURE__ */ React88.createElement(PropKeyProvider4, { bind }, children));
4434
4536
  };
4435
4537
 
4436
4538
  // src/dynamics/components/dynamic-selection.tsx
4437
- import * as React86 from "react";
4438
4539
  import { Fragment as Fragment11, useState as useState13 } from "react";
4439
- import { useBoundProp as useBoundProp4 } from "@elementor/editor-controls";
4440
- import { DatabaseIcon, SearchIcon } from "@elementor/icons";
4441
- import {
4442
- Box as Box7,
4443
- Divider as Divider7,
4444
- InputAdornment,
4445
- Link as Link2,
4446
- MenuItem,
4447
- MenuList,
4448
- MenuSubheader as MenuSubheader2,
4449
- Stack as Stack20,
4450
- TextField as TextField2,
4451
- Typography as Typography6
4452
- } from "@elementor/ui";
4540
+ import * as React89 from "react";
4541
+ import { useBoundProp as useBoundProp5 } from "@elementor/editor-controls";
4542
+ import { PopoverHeader, PopoverMenuList, PopoverSearch } from "@elementor/editor-ui";
4543
+ import { DatabaseIcon as DatabaseIcon2 } from "@elementor/icons";
4544
+ import { Box as Box7, Divider as Divider7, Link as Link2, Stack as Stack20, Typography as Typography6, useTheme as useTheme3 } from "@elementor/ui";
4453
4545
  import { __ as __56 } from "@wordpress/i18n";
4454
4546
  var SIZE7 = "tiny";
4455
- var DynamicSelection = ({ onSelect }) => {
4547
+ var DynamicSelection = ({ close: closePopover }) => {
4456
4548
  const [searchValue, setSearchValue] = useState13("");
4457
4549
  const { groups: dynamicGroups } = getAtomicDynamicTags() || {};
4458
- const { value: anyValue } = useBoundProp4();
4459
- const { bind, value: dynamicValue, setValue } = useBoundProp4(dynamicPropTypeUtil);
4550
+ const theme = useTheme3();
4551
+ const { value: anyValue } = useBoundProp5();
4552
+ const { bind, value: dynamicValue, setValue } = useBoundProp5(dynamicPropTypeUtil);
4460
4553
  const [, updatePropValueHistory] = usePersistDynamicValue(bind);
4461
4554
  const isCurrentValueDynamic = !!dynamicValue;
4462
4555
  const options12 = useFilteredOptions(searchValue);
4463
4556
  const hasNoDynamicTags = !options12.length && !searchValue.trim();
4464
- const handleSearch = (event) => {
4465
- setSearchValue(event.target.value);
4557
+ const handleSearch = (value) => {
4558
+ setSearchValue(value);
4466
4559
  };
4467
- const handleSetDynamicTag = (value, label) => {
4560
+ const handleSetDynamicTag = (value) => {
4468
4561
  if (!isCurrentValueDynamic) {
4469
4562
  updatePropValueHistory(anyValue);
4470
4563
  }
4471
- setValue({ name: value, settings: { label } });
4472
- onSelect?.();
4564
+ const selectedOption = options12.flatMap(([, items3]) => items3).find((item) => item.value === value);
4565
+ setValue({ name: value, settings: { label: selectedOption?.label } });
4566
+ closePopover();
4473
4567
  };
4474
- return /* @__PURE__ */ React86.createElement(Stack20, null, hasNoDynamicTags ? /* @__PURE__ */ React86.createElement(NoDynamicTags, null) : /* @__PURE__ */ React86.createElement(Fragment11, null, /* @__PURE__ */ React86.createElement(Box7, { px: 1.5, pb: 1 }, /* @__PURE__ */ React86.createElement(
4475
- TextField2,
4568
+ const virtualizedItems = options12.flatMap(([category, items3]) => [
4569
+ {
4570
+ type: "category",
4571
+ value: category,
4572
+ label: dynamicGroups?.[category]?.title || category
4573
+ },
4574
+ ...items3.map((item) => ({
4575
+ type: "item",
4576
+ value: item.value,
4577
+ label: item.label
4578
+ }))
4579
+ ]);
4580
+ return /* @__PURE__ */ React89.createElement(React89.Fragment, null, /* @__PURE__ */ React89.createElement(
4581
+ PopoverHeader,
4582
+ {
4583
+ title: __56("Dynamic tags", "elementor"),
4584
+ onClose: closePopover,
4585
+ icon: /* @__PURE__ */ React89.createElement(DatabaseIcon2, { fontSize: SIZE7 })
4586
+ }
4587
+ ), /* @__PURE__ */ React89.createElement(Stack20, null, hasNoDynamicTags ? /* @__PURE__ */ React89.createElement(NoDynamicTags, null) : /* @__PURE__ */ React89.createElement(Fragment11, null, /* @__PURE__ */ React89.createElement(
4588
+ PopoverSearch,
4476
4589
  {
4477
- fullWidth: true,
4478
- size: SIZE7,
4479
4590
  value: searchValue,
4480
- onChange: handleSearch,
4481
- placeholder: __56("Search dynamic tags\u2026", "elementor"),
4482
- InputProps: {
4483
- startAdornment: /* @__PURE__ */ React86.createElement(InputAdornment, { position: "start" }, /* @__PURE__ */ React86.createElement(SearchIcon, { fontSize: SIZE7 }))
4484
- }
4591
+ onSearch: handleSearch,
4592
+ placeholder: __56("Search dynamic tags\u2026", "elementor")
4485
4593
  }
4486
- )), /* @__PURE__ */ React86.createElement(Divider7, null), /* @__PURE__ */ React86.createElement(Box7, { sx: { overflowY: "auto", height: 260, width: 220 } }, options12.length > 0 ? /* @__PURE__ */ React86.createElement(MenuList, { role: "listbox", tabIndex: 0 }, options12.map(([category, items3], index) => /* @__PURE__ */ React86.createElement(Fragment11, { key: index }, /* @__PURE__ */ React86.createElement(
4487
- MenuSubheader2,
4594
+ ), /* @__PURE__ */ React89.createElement(Divider7, null), /* @__PURE__ */ React89.createElement(
4595
+ PopoverMenuList,
4488
4596
  {
4489
- sx: { px: 1.5, typography: "caption", color: "text.tertiary" }
4490
- },
4491
- dynamicGroups?.[category]?.title || category
4492
- ), items3.map(({ value, label: tagLabel }) => {
4493
- const isSelected = isCurrentValueDynamic && value === dynamicValue?.name;
4494
- return /* @__PURE__ */ React86.createElement(
4495
- MenuItem,
4496
- {
4497
- key: value,
4498
- selected: isSelected,
4499
- autoFocus: isSelected,
4500
- sx: { px: 3.5, typography: "caption" },
4501
- onClick: () => handleSetDynamicTag(value, tagLabel)
4502
- },
4503
- tagLabel
4504
- );
4505
- })))) : /* @__PURE__ */ React86.createElement(NoResults, { searchValue, onClear: () => setSearchValue("") }))));
4597
+ items: virtualizedItems,
4598
+ onSelect: handleSetDynamicTag,
4599
+ onClose: closePopover,
4600
+ selectedValue: dynamicValue?.name,
4601
+ itemStyle: (item) => item.type === "item" ? { paddingInlineStart: theme.spacing(3.5) } : {},
4602
+ noResultsComponent: /* @__PURE__ */ React89.createElement(NoResults, { searchValue, onClear: () => setSearchValue("") })
4603
+ }
4604
+ ))));
4506
4605
  };
4507
- var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */ React86.createElement(
4606
+ var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */ React89.createElement(
4508
4607
  Stack20,
4509
4608
  {
4510
4609
  gap: 1,
@@ -4515,11 +4614,11 @@ var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */ React86.createElem
4515
4614
  color: "text.secondary",
4516
4615
  sx: { pb: 3.5 }
4517
4616
  },
4518
- /* @__PURE__ */ React86.createElement(DatabaseIcon, { fontSize: "large" }),
4519
- /* @__PURE__ */ React86.createElement(Typography6, { align: "center", variant: "subtitle2" }, __56("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React86.createElement("br", null), "\u201C", searchValue, "\u201D."),
4520
- /* @__PURE__ */ React86.createElement(Typography6, { align: "center", variant: "caption" }, __56("Try something else.", "elementor"), "\xA0", /* @__PURE__ */ React86.createElement(Link2, { color: "text.secondary", variant: "caption", component: "button", onClick: onClear }, __56("Clear & try again", "elementor")))
4617
+ /* @__PURE__ */ React89.createElement(DatabaseIcon2, { fontSize: "large" }),
4618
+ /* @__PURE__ */ React89.createElement(Typography6, { align: "center", variant: "subtitle2" }, __56("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React89.createElement("br", null), "\u201C", searchValue, "\u201D."),
4619
+ /* @__PURE__ */ React89.createElement(Typography6, { align: "center", variant: "caption" }, __56("Try something else.", "elementor"), "\xA0", /* @__PURE__ */ React89.createElement(Link2, { color: "text.secondary", variant: "caption", component: "button", onClick: onClear }, __56("Clear & try again", "elementor")))
4521
4620
  );
4522
- var NoDynamicTags = () => /* @__PURE__ */ React86.createElement(Box7, { sx: { overflowY: "hidden", height: 297, width: 220 } }, /* @__PURE__ */ React86.createElement(Divider7, null), /* @__PURE__ */ React86.createElement(
4621
+ var NoDynamicTags = () => /* @__PURE__ */ React89.createElement(Box7, { sx: { overflowY: "hidden", height: 297, width: 220 } }, /* @__PURE__ */ React89.createElement(Divider7, null), /* @__PURE__ */ React89.createElement(
4523
4622
  Stack20,
4524
4623
  {
4525
4624
  gap: 1,
@@ -4530,9 +4629,9 @@ var NoDynamicTags = () => /* @__PURE__ */ React86.createElement(Box7, { sx: { ov
4530
4629
  color: "text.secondary",
4531
4630
  sx: { pb: 3.5 }
4532
4631
  },
4533
- /* @__PURE__ */ React86.createElement(DatabaseIcon, { fontSize: "large" }),
4534
- /* @__PURE__ */ React86.createElement(Typography6, { align: "center", variant: "subtitle2" }, __56("Streamline your workflow with dynamic tags", "elementor")),
4535
- /* @__PURE__ */ React86.createElement(Typography6, { align: "center", variant: "caption" }, __56("You\u2019ll need Elementor Pro to use this feature.", "elementor"))
4632
+ /* @__PURE__ */ React89.createElement(DatabaseIcon2, { fontSize: "large" }),
4633
+ /* @__PURE__ */ React89.createElement(Typography6, { align: "center", variant: "subtitle2" }, __56("Streamline your workflow with dynamic tags", "elementor")),
4634
+ /* @__PURE__ */ React89.createElement(Typography6, { align: "center", variant: "caption" }, __56("You'll need Elementor Pro to use this feature.", "elementor"))
4536
4635
  ));
4537
4636
  var useFilteredOptions = (searchValue) => {
4538
4637
  const dynamicTags = usePropDynamicTags();
@@ -4553,8 +4652,8 @@ var useFilteredOptions = (searchValue) => {
4553
4652
  // src/dynamics/components/dynamic-selection-control.tsx
4554
4653
  var SIZE8 = "tiny";
4555
4654
  var DynamicSelectionControl = () => {
4556
- const { setValue: setAnyValue } = useBoundProp5();
4557
- const { bind, value } = useBoundProp5(dynamicPropTypeUtil);
4655
+ const { setValue: setAnyValue } = useBoundProp6();
4656
+ const { bind, value } = useBoundProp6(dynamicPropTypeUtil);
4558
4657
  const [propValueFromHistory] = usePersistDynamicValue(bind);
4559
4658
  const selectionPopoverState = usePopupState3({ variant: "popover" });
4560
4659
  const { name: tagName = "" } = value;
@@ -4565,25 +4664,25 @@ var DynamicSelectionControl = () => {
4565
4664
  if (!dynamicTag) {
4566
4665
  throw new Error(`Dynamic tag ${tagName} not found`);
4567
4666
  }
4568
- return /* @__PURE__ */ React87.createElement(Box8, null, /* @__PURE__ */ React87.createElement(
4667
+ return /* @__PURE__ */ React90.createElement(Box8, null, /* @__PURE__ */ React90.createElement(
4569
4668
  Tag,
4570
4669
  {
4571
4670
  fullWidth: true,
4572
4671
  showActionsOnHover: true,
4573
4672
  label: dynamicTag.label,
4574
- startIcon: /* @__PURE__ */ React87.createElement(DatabaseIcon2, { fontSize: SIZE8 }),
4673
+ startIcon: /* @__PURE__ */ React90.createElement(DatabaseIcon3, { fontSize: SIZE8 }),
4575
4674
  ...bindTrigger2(selectionPopoverState),
4576
- actions: /* @__PURE__ */ React87.createElement(React87.Fragment, null, /* @__PURE__ */ React87.createElement(DynamicSettingsPopover, { dynamicTag }), /* @__PURE__ */ React87.createElement(
4675
+ actions: /* @__PURE__ */ React90.createElement(React90.Fragment, null, /* @__PURE__ */ React90.createElement(DynamicSettingsPopover, { dynamicTag }), /* @__PURE__ */ React90.createElement(
4577
4676
  IconButton5,
4578
4677
  {
4579
4678
  size: SIZE8,
4580
4679
  onClick: removeDynamicTag,
4581
4680
  "aria-label": __57("Remove dynamic value", "elementor")
4582
4681
  },
4583
- /* @__PURE__ */ React87.createElement(XIcon, { fontSize: SIZE8 })
4682
+ /* @__PURE__ */ React90.createElement(XIcon, { fontSize: SIZE8 })
4584
4683
  ))
4585
4684
  }
4586
- ), /* @__PURE__ */ React87.createElement(
4685
+ ), /* @__PURE__ */ React90.createElement(
4587
4686
  Popover2,
4588
4687
  {
4589
4688
  disablePortal: true,
@@ -4591,14 +4690,7 @@ var DynamicSelectionControl = () => {
4591
4690
  anchorOrigin: { vertical: "bottom", horizontal: "left" },
4592
4691
  ...bindPopover2(selectionPopoverState)
4593
4692
  },
4594
- /* @__PURE__ */ React87.createElement(Stack21, null, /* @__PURE__ */ React87.createElement(
4595
- PopoverHeader2,
4596
- {
4597
- title: __57("Dynamic tags", "elementor"),
4598
- onClose: selectionPopoverState.close,
4599
- icon: /* @__PURE__ */ React87.createElement(DatabaseIcon2, { fontSize: SIZE8 })
4600
- }
4601
- ), /* @__PURE__ */ React87.createElement(DynamicSelection, { onSelect: selectionPopoverState.close }))
4693
+ /* @__PURE__ */ React90.createElement(Stack21, null, /* @__PURE__ */ React90.createElement(DynamicSelection, { close: selectionPopoverState.close }))
4602
4694
  ));
4603
4695
  };
4604
4696
  var DynamicSettingsPopover = ({ dynamicTag }) => {
@@ -4607,7 +4699,7 @@ var DynamicSettingsPopover = ({ dynamicTag }) => {
4607
4699
  if (!hasDynamicSettings) {
4608
4700
  return null;
4609
4701
  }
4610
- return /* @__PURE__ */ React87.createElement(React87.Fragment, null, /* @__PURE__ */ React87.createElement(IconButton5, { size: SIZE8, ...bindTrigger2(popupState), "aria-label": __57("Settings", "elementor") }, /* @__PURE__ */ React87.createElement(SettingsIcon, { fontSize: SIZE8 })), /* @__PURE__ */ React87.createElement(
4702
+ return /* @__PURE__ */ React90.createElement(React90.Fragment, null, /* @__PURE__ */ React90.createElement(IconButton5, { size: SIZE8, ...bindTrigger2(popupState), "aria-label": __57("Settings", "elementor") }, /* @__PURE__ */ React90.createElement(SettingsIcon, { fontSize: SIZE8 })), /* @__PURE__ */ React90.createElement(
4611
4703
  Popover2,
4612
4704
  {
4613
4705
  disablePortal: true,
@@ -4615,14 +4707,15 @@ var DynamicSettingsPopover = ({ dynamicTag }) => {
4615
4707
  anchorOrigin: { vertical: "bottom", horizontal: "center" },
4616
4708
  ...bindPopover2(popupState)
4617
4709
  },
4618
- /* @__PURE__ */ React87.createElement(Paper, { component: Stack21, sx: { minHeight: "300px", width: "220px" } }, /* @__PURE__ */ React87.createElement(
4710
+ /* @__PURE__ */ React90.createElement(
4619
4711
  PopoverHeader2,
4620
4712
  {
4621
4713
  title: dynamicTag.label,
4622
4714
  onClose: popupState.close,
4623
- icon: /* @__PURE__ */ React87.createElement(DatabaseIcon2, { fontSize: SIZE8 })
4715
+ icon: /* @__PURE__ */ React90.createElement(DatabaseIcon3, { fontSize: SIZE8 })
4624
4716
  }
4625
- ), /* @__PURE__ */ React87.createElement(DynamicSettings, { controls: dynamicTag.atomic_controls }))
4717
+ ),
4718
+ /* @__PURE__ */ React90.createElement(DynamicSettings, { controls: dynamicTag.atomic_controls })
4626
4719
  ));
4627
4720
  };
4628
4721
  var DynamicSettings = ({ controls }) => {
@@ -4631,10 +4724,10 @@ var DynamicSettings = ({ controls }) => {
4631
4724
  if (!tabs.length) {
4632
4725
  return null;
4633
4726
  }
4634
- return /* @__PURE__ */ React87.createElement(React87.Fragment, null, /* @__PURE__ */ React87.createElement(Tabs2, { size: "small", variant: "fullWidth", ...getTabsProps() }, tabs.map(({ value }, index) => /* @__PURE__ */ React87.createElement(Tab2, { key: index, label: value.label, sx: { px: 1, py: 0.5 }, ...getTabProps(index) }))), /* @__PURE__ */ React87.createElement(Divider8, null), tabs.map(({ value }, index) => {
4635
- return /* @__PURE__ */ React87.createElement(TabPanel2, { key: index, sx: { flexGrow: 1, py: 0 }, ...getTabPanelProps(index) }, /* @__PURE__ */ React87.createElement(PopoverContent, { p: 2, gap: 2 }, value.items.map((item) => {
4727
+ return /* @__PURE__ */ React90.createElement(PopoverScrollableContent, null, /* @__PURE__ */ React90.createElement(Tabs2, { size: "small", variant: "fullWidth", ...getTabsProps() }, tabs.map(({ value }, index) => /* @__PURE__ */ React90.createElement(Tab2, { key: index, label: value.label, sx: { px: 1, py: 0.5 }, ...getTabProps(index) }))), /* @__PURE__ */ React90.createElement(Divider8, null), tabs.map(({ value }, index) => {
4728
+ return /* @__PURE__ */ React90.createElement(TabPanel2, { key: index, sx: { flexGrow: 1, py: 0 }, ...getTabPanelProps(index) }, /* @__PURE__ */ React90.createElement(PopoverContent, { p: 2, gap: 2 }, value.items.map((item) => {
4636
4729
  if (item.type === "control") {
4637
- return /* @__PURE__ */ React87.createElement(Control3, { key: item.value.bind, control: item.value });
4730
+ return /* @__PURE__ */ React90.createElement(Control3, { key: item.value.bind, control: item.value });
4638
4731
  }
4639
4732
  return null;
4640
4733
  })));
@@ -4644,7 +4737,7 @@ var Control3 = ({ control }) => {
4644
4737
  if (!getControl(control.type)) {
4645
4738
  return null;
4646
4739
  }
4647
- return /* @__PURE__ */ React87.createElement(DynamicControl, { bind: control.bind }, /* @__PURE__ */ React87.createElement(Grid31, { container: true, gap: 0.75 }, control.label ? /* @__PURE__ */ React87.createElement(Grid31, { item: true, xs: 12 }, /* @__PURE__ */ React87.createElement(ControlFormLabel6, null, control.label)) : null, /* @__PURE__ */ React87.createElement(Grid31, { item: true, xs: 12 }, /* @__PURE__ */ React87.createElement(Control, { type: control.type, props: control.props }))));
4740
+ return /* @__PURE__ */ React90.createElement(DynamicControl, { bind: control.bind }, /* @__PURE__ */ React90.createElement(Grid31, { container: true, gap: 0.75 }, control.label ? /* @__PURE__ */ React90.createElement(Grid31, { item: true, xs: 12 }, /* @__PURE__ */ React90.createElement(ControlFormLabel6, null, control.label)) : null, /* @__PURE__ */ React90.createElement(Grid31, { item: true, xs: 12 }, /* @__PURE__ */ React90.createElement(Control, { type: control.type, props: control.props }))));
4648
4741
  };
4649
4742
 
4650
4743
  // src/dynamics/dynamic-transformer.ts
@@ -4697,18 +4790,18 @@ function getDynamicValue(name, settings) {
4697
4790
  }
4698
4791
 
4699
4792
  // src/dynamics/hooks/use-prop-dynamic-action.tsx
4700
- import * as React88 from "react";
4701
- import { useBoundProp as useBoundProp6 } from "@elementor/editor-controls";
4702
- import { DatabaseIcon as DatabaseIcon3 } from "@elementor/icons";
4793
+ import * as React91 from "react";
4794
+ import { useBoundProp as useBoundProp7 } from "@elementor/editor-controls";
4795
+ import { DatabaseIcon as DatabaseIcon4 } from "@elementor/icons";
4703
4796
  import { __ as __58 } from "@wordpress/i18n";
4704
4797
  var usePropDynamicAction = () => {
4705
- const { propType } = useBoundProp6();
4798
+ const { propType } = useBoundProp7();
4706
4799
  const visible = !!propType && supportsDynamic(propType);
4707
4800
  return {
4708
4801
  visible,
4709
- icon: DatabaseIcon3,
4802
+ icon: DatabaseIcon4,
4710
4803
  title: __58("Dynamic tags", "elementor"),
4711
- popoverContent: ({ closePopover }) => /* @__PURE__ */ React88.createElement(DynamicSelection, { onSelect: closePopover })
4804
+ content: ({ close }) => /* @__PURE__ */ React91.createElement(DynamicSelection, { close })
4712
4805
  };
4713
4806
  };
4714
4807
 
@@ -4719,6 +4812,16 @@ var init = () => {
4719
4812
  component: DynamicSelectionControl,
4720
4813
  condition: ({ value }) => isDynamicPropValue(value)
4721
4814
  });
4815
+ injectIntoRepeaterItemLabel({
4816
+ id: "dynamic-background-image",
4817
+ condition: ({ value }) => isDynamicPropValue(value.value?.image?.value?.src),
4818
+ component: BackgroundControlDynamicTagLabel
4819
+ });
4820
+ injectIntoRepeaterItemIcon({
4821
+ id: "dynamic-background-image",
4822
+ condition: ({ value }) => isDynamicPropValue(value.value?.image?.value?.src),
4823
+ component: BackgroundControlDynamicTagIcon
4824
+ });
4722
4825
  registerPopoverAction({
4723
4826
  id: "dynamic-tags",
4724
4827
  useProps: usePropDynamicAction
@@ -4728,7 +4831,7 @@ var init = () => {
4728
4831
  };
4729
4832
 
4730
4833
  // src/reset-style-props.tsx
4731
- import { useBoundProp as useBoundProp7 } from "@elementor/editor-controls";
4834
+ import { useBoundProp as useBoundProp8 } from "@elementor/editor-controls";
4732
4835
  import { BrushBigIcon } from "@elementor/icons";
4733
4836
  import { __ as __59 } from "@wordpress/i18n";
4734
4837
  var { registerAction } = controlActionsMenu;
@@ -4741,7 +4844,7 @@ function initResetStyleProps() {
4741
4844
  var EXCLUDED_BINDS = ["order", "flex-grow", "flex-shrink", "flex-basis"];
4742
4845
  function useResetStyleValueProps() {
4743
4846
  const isStyle = useIsStyle();
4744
- const { value, setValue, path, bind } = useBoundProp7();
4847
+ const { value, setValue, path, bind } = useBoundProp8();
4745
4848
  return {
4746
4849
  visible: isStyle && value !== null && value !== void 0 && path.length <= 2 && !EXCLUDED_BINDS.includes(bind),
4747
4850
  title: __59("Clear", "elementor"),
@@ -4754,36 +4857,36 @@ function useResetStyleValueProps() {
4754
4857
  import { createTransformer as createTransformer6, styleTransformersRegistry as styleTransformersRegistry2 } from "@elementor/editor-canvas";
4755
4858
 
4756
4859
  // src/styles-inheritance/transformers/background-color-overlay-transformer.tsx
4757
- import * as React89 from "react";
4860
+ import * as React92 from "react";
4758
4861
  import { createTransformer as createTransformer2 } from "@elementor/editor-canvas";
4759
4862
  import { Stack as Stack22, styled as styled7, UnstableColorIndicator } from "@elementor/ui";
4760
- var backgroundColorOverlayTransformer = createTransformer2((value) => /* @__PURE__ */ React89.createElement(Stack22, { direction: "row", gap: 10 }, /* @__PURE__ */ React89.createElement(ItemIconColor, { value }), /* @__PURE__ */ React89.createElement(ItemLabelColor, { value })));
4863
+ var backgroundColorOverlayTransformer = createTransformer2((value) => /* @__PURE__ */ React92.createElement(Stack22, { direction: "row", gap: 10 }, /* @__PURE__ */ React92.createElement(ItemIconColor, { value }), /* @__PURE__ */ React92.createElement(ItemLabelColor, { value })));
4761
4864
  var ItemIconColor = ({ value }) => {
4762
4865
  const { color } = value;
4763
- return /* @__PURE__ */ React89.createElement(StyledUnstableColorIndicator, { size: "inherit", component: "span", value: color });
4866
+ return /* @__PURE__ */ React92.createElement(StyledUnstableColorIndicator, { size: "inherit", component: "span", value: color });
4764
4867
  };
4765
4868
  var ItemLabelColor = ({ value: { color } }) => {
4766
- return /* @__PURE__ */ React89.createElement("span", null, color);
4869
+ return /* @__PURE__ */ React92.createElement("span", null, color);
4767
4870
  };
4768
4871
  var StyledUnstableColorIndicator = styled7(UnstableColorIndicator)(({ theme }) => ({
4769
4872
  borderRadius: `${theme.shape.borderRadius / 2}px`
4770
4873
  }));
4771
4874
 
4772
4875
  // src/styles-inheritance/transformers/background-gradient-overlay-transformer.tsx
4773
- import * as React90 from "react";
4876
+ import * as React93 from "react";
4774
4877
  import { createTransformer as createTransformer3 } from "@elementor/editor-canvas";
4775
4878
  import { Stack as Stack23 } from "@elementor/ui";
4776
4879
  import { __ as __60 } from "@wordpress/i18n";
4777
- var backgroundGradientOverlayTransformer = createTransformer3((value) => /* @__PURE__ */ React90.createElement(Stack23, { direction: "row", gap: 10 }, /* @__PURE__ */ React90.createElement(ItemIconGradient, { value }), /* @__PURE__ */ React90.createElement(ItemLabelGradient, { value })));
4880
+ var backgroundGradientOverlayTransformer = createTransformer3((value) => /* @__PURE__ */ React93.createElement(Stack23, { direction: "row", gap: 10 }, /* @__PURE__ */ React93.createElement(ItemIconGradient, { value }), /* @__PURE__ */ React93.createElement(ItemLabelGradient, { value })));
4778
4881
  var ItemIconGradient = ({ value }) => {
4779
4882
  const gradient = getGradientValue(value);
4780
- return /* @__PURE__ */ React90.createElement(StyledUnstableColorIndicator, { size: "inherit", component: "span", value: gradient });
4883
+ return /* @__PURE__ */ React93.createElement(StyledUnstableColorIndicator, { size: "inherit", component: "span", value: gradient });
4781
4884
  };
4782
4885
  var ItemLabelGradient = ({ value }) => {
4783
4886
  if (value.type === "linear") {
4784
- return /* @__PURE__ */ React90.createElement("span", null, __60("Linear Gradient", "elementor"));
4887
+ return /* @__PURE__ */ React93.createElement("span", null, __60("Linear Gradient", "elementor"));
4785
4888
  }
4786
- return /* @__PURE__ */ React90.createElement("span", null, __60("Radial Gradient", "elementor"));
4889
+ return /* @__PURE__ */ React93.createElement("span", null, __60("Radial Gradient", "elementor"));
4787
4890
  };
4788
4891
  var getGradientValue = (gradient) => {
4789
4892
  const stops = gradient.stops?.map(({ color, offset }) => `${color} ${offset ?? 0}%`)?.join(",");
@@ -4794,15 +4897,15 @@ var getGradientValue = (gradient) => {
4794
4897
  };
4795
4898
 
4796
4899
  // src/styles-inheritance/transformers/background-image-overlay-transformer.tsx
4797
- import * as React91 from "react";
4900
+ import * as React94 from "react";
4798
4901
  import { createTransformer as createTransformer4 } from "@elementor/editor-canvas";
4799
4902
  import { EllipsisWithTooltip as EllipsisWithTooltip2 } from "@elementor/editor-ui";
4800
4903
  import { CardMedia, Stack as Stack24 } from "@elementor/ui";
4801
4904
  import { useWpMediaAttachment } from "@elementor/wp-media";
4802
- var backgroundImageOverlayTransformer = createTransformer4((value) => /* @__PURE__ */ React91.createElement(Stack24, { direction: "row", gap: 10 }, /* @__PURE__ */ React91.createElement(ItemIconImage, { value }), /* @__PURE__ */ React91.createElement(ItemLabelImage, { value })));
4905
+ var backgroundImageOverlayTransformer = createTransformer4((value) => /* @__PURE__ */ React94.createElement(Stack24, { direction: "row", gap: 10 }, /* @__PURE__ */ React94.createElement(ItemIconImage, { value }), /* @__PURE__ */ React94.createElement(ItemLabelImage, { value })));
4803
4906
  var ItemIconImage = ({ value }) => {
4804
4907
  const { imageUrl } = useImage(value);
4805
- return /* @__PURE__ */ React91.createElement(
4908
+ return /* @__PURE__ */ React94.createElement(
4806
4909
  CardMedia,
4807
4910
  {
4808
4911
  image: imageUrl,
@@ -4817,7 +4920,7 @@ var ItemIconImage = ({ value }) => {
4817
4920
  };
4818
4921
  var ItemLabelImage = ({ value }) => {
4819
4922
  const { imageTitle } = useImage(value);
4820
- return /* @__PURE__ */ React91.createElement(EllipsisWithTooltip2, { title: imageTitle }, /* @__PURE__ */ React91.createElement("span", null, imageTitle));
4923
+ return /* @__PURE__ */ React94.createElement(EllipsisWithTooltip2, { title: imageTitle }, /* @__PURE__ */ React94.createElement("span", null, imageTitle));
4821
4924
  };
4822
4925
  var useImage = (image) => {
4823
4926
  let imageTitle, imageUrl = null;
@@ -4842,14 +4945,14 @@ var getFileExtensionFromFilename = (filename) => {
4842
4945
  };
4843
4946
 
4844
4947
  // src/styles-inheritance/transformers/background-overlay-transformer.tsx
4845
- import * as React92 from "react";
4948
+ import * as React95 from "react";
4846
4949
  import { createTransformer as createTransformer5 } from "@elementor/editor-canvas";
4847
4950
  import { Stack as Stack25 } from "@elementor/ui";
4848
4951
  var backgroundOverlayTransformer = createTransformer5((values) => {
4849
4952
  if (!values || values.length === 0) {
4850
4953
  return null;
4851
4954
  }
4852
- return /* @__PURE__ */ React92.createElement(Stack25, { direction: "column" }, values.map((item, index) => /* @__PURE__ */ React92.createElement(Stack25, { key: index }, item)));
4955
+ return /* @__PURE__ */ React95.createElement(Stack25, { direction: "column" }, values.map((item, index) => /* @__PURE__ */ React95.createElement(Stack25, { key: index }, item)));
4853
4956
  });
4854
4957
 
4855
4958
  // src/styles-inheritance/init-styles-inheritance-transformers.ts
@@ -4914,7 +5017,8 @@ export {
4914
5017
  init3 as init,
4915
5018
  injectIntoClassSelectorActions,
4916
5019
  registerControlReplacement,
4917
- useBoundProp8 as useBoundProp,
5020
+ registerStyleProviderToColors,
5021
+ useBoundProp9 as useBoundProp,
4918
5022
  useFontFamilies,
4919
5023
  usePanelActions,
4920
5024
  usePanelStatus