@elementor/editor-controls 0.35.0 → 0.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @elementor/editor-controls
2
2
 
3
+ ## 0.36.0
4
+
5
+ ### Minor Changes
6
+
7
+ - ea5d3df: Export fontFamily components from editor-controls and editing-panel
8
+ - 80dbf43: Extract popover headers to a standalone component inside the Editor UI package.
9
+ - 6eeb59e: Disable controls panel labels by permission.
10
+
11
+ ### Patch Changes
12
+
13
+ - af4e938: Add indicators to group headers
14
+ - Updated dependencies [80dbf43]
15
+ - @elementor/editor-ui@0.11.0
16
+
3
17
  ## 0.35.0
4
18
 
5
19
  ### Minor Changes
package/dist/index.d.mts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { ReactNode, ComponentType, PropsWithChildren } from 'react';
3
3
  import { StringPropValue, PropTypeUtil, PropValue, PropKey, SizePropValue, PropType, CreateOptions } from '@elementor/editor-props';
4
- import { UnstableColorFieldProps, ToggleButtonProps, StackProps } from '@elementor/ui';
4
+ import { UnstableColorFieldProps, ToggleButtonProps, StackProps, FormLabelProps } from '@elementor/ui';
5
5
  import * as _elementor_locations from '@elementor/locations';
6
6
 
7
7
  type ImageControlProps = {
@@ -167,9 +167,15 @@ declare const BackgroundControl: ControlComponent<() => React.JSX.Element>;
167
167
 
168
168
  declare const SwitchControl: ControlComponent<() => React.JSX.Element>;
169
169
 
170
- declare const ControlFormLabel: ({ children }: {
171
- children: React.ReactNode;
172
- }) => React.JSX.Element;
170
+ declare const ControlFormLabel: (props: FormLabelProps) => React.JSX.Element;
171
+
172
+ type FontFamilySelectorProps = {
173
+ fontFamilies: FontCategory[];
174
+ fontFamily: string | null;
175
+ onFontFamilyChange: (fontFamily: string) => void;
176
+ onClose: () => void;
177
+ };
178
+ declare const FontFamilySelector: ({ fontFamilies, fontFamily, onFontFamilyChange, onClose, }: FontFamilySelectorProps) => React.JSX.Element;
173
179
 
174
180
  type AnyComponentType = ComponentType<any>;
175
181
  declare const brandSymbol: unique symbol;
@@ -273,4 +279,4 @@ type UseInternalStateOptions<TValue> = {
273
279
  };
274
280
  declare const useSyncExternalState: <TValue>({ external, setExternal, persistWhen, fallback, }: UseInternalStateOptions<TValue>) => readonly [TValue, (setter: ((value: TValue) => TValue) | TValue) => void];
275
281
 
276
- export { AspectRatioControl, BackgroundControl, BoxShadowRepeaterControl, ColorControl, type ControlActionsItems, ControlActionsProvider, ControlAdornments, ControlAdornmentsProvider, type ControlComponent, ControlFormLabel, ControlReplacementsProvider, ControlToggleButtonGroup, type EqualUnequalItems, EqualUnequalSizesControl, type ExtendedValue, type FontCategory, FontFamilyControl, GapControl, ImageControl, LinkControl, LinkedDimensionsControl, NumberControl, PropKeyProvider, PropProvider, type PropProviderProps, SelectControl, type SetValue, SizeControl, StrokeControl, SvgMediaControl, SwitchControl, TextAreaControl, TextControl, type ToggleButtonGroupItem, ToggleControl, type ToggleControlProps, UrlControl, createControlReplacementsRegistry, injectIntoRepeaterItemIcon, injectIntoRepeaterItemLabel, useBoundProp, useControlActions, useSyncExternalState };
282
+ export { AspectRatioControl, BackgroundControl, BoxShadowRepeaterControl, ColorControl, type ControlActionsItems, ControlActionsProvider, ControlAdornments, ControlAdornmentsProvider, type ControlComponent, ControlFormLabel, ControlReplacementsProvider, ControlToggleButtonGroup, type EqualUnequalItems, EqualUnequalSizesControl, type ExtendedValue, type FontCategory, FontFamilyControl, FontFamilySelector, GapControl, ImageControl, LinkControl, LinkedDimensionsControl, NumberControl, PropKeyProvider, PropProvider, type PropProviderProps, SelectControl, type SetValue, SizeControl, StrokeControl, SvgMediaControl, SwitchControl, TextAreaControl, TextControl, type ToggleButtonGroupItem, ToggleControl, type ToggleControlProps, UrlControl, createControlReplacementsRegistry, injectIntoRepeaterItemIcon, injectIntoRepeaterItemLabel, useBoundProp, useControlActions, useSyncExternalState };
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { ReactNode, ComponentType, PropsWithChildren } from 'react';
3
3
  import { StringPropValue, PropTypeUtil, PropValue, PropKey, SizePropValue, PropType, CreateOptions } from '@elementor/editor-props';
4
- import { UnstableColorFieldProps, ToggleButtonProps, StackProps } from '@elementor/ui';
4
+ import { UnstableColorFieldProps, ToggleButtonProps, StackProps, FormLabelProps } from '@elementor/ui';
5
5
  import * as _elementor_locations from '@elementor/locations';
6
6
 
7
7
  type ImageControlProps = {
@@ -167,9 +167,15 @@ declare const BackgroundControl: ControlComponent<() => React.JSX.Element>;
167
167
 
168
168
  declare const SwitchControl: ControlComponent<() => React.JSX.Element>;
169
169
 
170
- declare const ControlFormLabel: ({ children }: {
171
- children: React.ReactNode;
172
- }) => React.JSX.Element;
170
+ declare const ControlFormLabel: (props: FormLabelProps) => React.JSX.Element;
171
+
172
+ type FontFamilySelectorProps = {
173
+ fontFamilies: FontCategory[];
174
+ fontFamily: string | null;
175
+ onFontFamilyChange: (fontFamily: string) => void;
176
+ onClose: () => void;
177
+ };
178
+ declare const FontFamilySelector: ({ fontFamilies, fontFamily, onFontFamilyChange, onClose, }: FontFamilySelectorProps) => React.JSX.Element;
173
179
 
174
180
  type AnyComponentType = ComponentType<any>;
175
181
  declare const brandSymbol: unique symbol;
@@ -273,4 +279,4 @@ type UseInternalStateOptions<TValue> = {
273
279
  };
274
280
  declare const useSyncExternalState: <TValue>({ external, setExternal, persistWhen, fallback, }: UseInternalStateOptions<TValue>) => readonly [TValue, (setter: ((value: TValue) => TValue) | TValue) => void];
275
281
 
276
- export { AspectRatioControl, BackgroundControl, BoxShadowRepeaterControl, ColorControl, type ControlActionsItems, ControlActionsProvider, ControlAdornments, ControlAdornmentsProvider, type ControlComponent, ControlFormLabel, ControlReplacementsProvider, ControlToggleButtonGroup, type EqualUnequalItems, EqualUnequalSizesControl, type ExtendedValue, type FontCategory, FontFamilyControl, GapControl, ImageControl, LinkControl, LinkedDimensionsControl, NumberControl, PropKeyProvider, PropProvider, type PropProviderProps, SelectControl, type SetValue, SizeControl, StrokeControl, SvgMediaControl, SwitchControl, TextAreaControl, TextControl, type ToggleButtonGroupItem, ToggleControl, type ToggleControlProps, UrlControl, createControlReplacementsRegistry, injectIntoRepeaterItemIcon, injectIntoRepeaterItemLabel, useBoundProp, useControlActions, useSyncExternalState };
282
+ export { AspectRatioControl, BackgroundControl, BoxShadowRepeaterControl, ColorControl, type ControlActionsItems, ControlActionsProvider, ControlAdornments, ControlAdornmentsProvider, type ControlComponent, ControlFormLabel, ControlReplacementsProvider, ControlToggleButtonGroup, type EqualUnequalItems, EqualUnequalSizesControl, type ExtendedValue, type FontCategory, FontFamilyControl, FontFamilySelector, GapControl, ImageControl, LinkControl, LinkedDimensionsControl, NumberControl, PropKeyProvider, PropProvider, type PropProviderProps, SelectControl, type SetValue, SizeControl, StrokeControl, SvgMediaControl, SwitchControl, TextAreaControl, TextControl, type ToggleButtonGroupItem, ToggleControl, type ToggleControlProps, UrlControl, createControlReplacementsRegistry, injectIntoRepeaterItemIcon, injectIntoRepeaterItemLabel, useBoundProp, useControlActions, useSyncExternalState };
package/dist/index.js CHANGED
@@ -42,6 +42,7 @@ __export(index_exports, {
42
42
  ControlToggleButtonGroup: () => ControlToggleButtonGroup,
43
43
  EqualUnequalSizesControl: () => EqualUnequalSizesControl,
44
44
  FontFamilyControl: () => FontFamilyControl,
45
+ FontFamilySelector: () => FontFamilySelector,
45
46
  GapControl: () => GapControl,
46
47
  ImageControl: () => ImageControl,
47
48
  LinkControl: () => LinkControl,
@@ -256,8 +257,8 @@ var resolveUnionPropType = (propType, key) => {
256
257
  // src/components/control-form-label.tsx
257
258
  var React3 = __toESM(require("react"));
258
259
  var import_ui = require("@elementor/ui");
259
- var ControlFormLabel = ({ children }) => {
260
- return /* @__PURE__ */ React3.createElement(import_ui.FormLabel, { size: "tiny" }, children);
260
+ var ControlFormLabel = (props) => {
261
+ return /* @__PURE__ */ React3.createElement(import_ui.FormLabel, { size: "tiny", ...props });
261
262
  };
262
263
 
263
264
  // src/create-control.tsx
@@ -462,7 +463,7 @@ var ImageControl = createControl(
462
463
  const propContext = useBoundProp(import_editor_props3.imagePropTypeUtil);
463
464
  const { data: allowSvgUpload } = useUnfilteredFilesUpload();
464
465
  const mediaTypes = allowSvgUpload ? ["image", "svg"] : ["image"];
465
- return /* @__PURE__ */ React10.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React10.createElement(import_ui6.Stack, { gap: 1.5 }, ["all", "media"].includes(showMode) ? /* @__PURE__ */ React10.createElement(PropKeyProvider, { bind: "src" }, /* @__PURE__ */ React10.createElement(ControlFormLabel, null, " ", (0, import_i18n2.__)("Image", "elementor"), " "), /* @__PURE__ */ React10.createElement(ImageMediaControl, { mediaTypes })) : null, ["all", "sizes"].includes(showMode) ? /* @__PURE__ */ React10.createElement(PropKeyProvider, { bind: "size" }, /* @__PURE__ */ React10.createElement(import_ui6.Grid, { container: true, gap: 1.5, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React10.createElement(import_ui6.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React10.createElement(ControlFormLabel, null, " ", resolutionLabel, " ")), /* @__PURE__ */ React10.createElement(import_ui6.Grid, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React10.createElement(SelectControl, { options: sizes })))) : null));
466
+ return /* @__PURE__ */ React10.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React10.createElement(import_ui6.Stack, { gap: 1.5 }, ["all", "media"].includes(showMode) ? /* @__PURE__ */ React10.createElement(PropKeyProvider, { bind: "src" }, /* @__PURE__ */ React10.createElement(ControlFormLabel, null, (0, import_i18n2.__)("Image", "elementor")), /* @__PURE__ */ React10.createElement(ImageMediaControl, { mediaTypes })) : null, ["all", "sizes"].includes(showMode) ? /* @__PURE__ */ React10.createElement(PropKeyProvider, { bind: "size" }, /* @__PURE__ */ React10.createElement(import_ui6.Grid, { container: true, gap: 1.5, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React10.createElement(import_ui6.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React10.createElement(ControlFormLabel, null, resolutionLabel)), /* @__PURE__ */ React10.createElement(import_ui6.Grid, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React10.createElement(SelectControl, { options: sizes })))) : null));
466
467
  }
467
468
  );
468
469
 
@@ -856,11 +857,12 @@ var import_ui16 = require("@elementor/ui");
856
857
  var SortableProvider = (props) => {
857
858
  return /* @__PURE__ */ React22.createElement(import_ui16.List, { sx: { p: 0, my: -0.5, mx: 0 } }, /* @__PURE__ */ React22.createElement(import_ui16.UnstableSortableProvider, { restrictAxis: true, disableDragOverlay: false, variant: "static", ...props }));
858
859
  };
859
- var SortableItem = ({ id, children }) => {
860
+ var SortableItem = ({ id, children, disabled }) => {
860
861
  return /* @__PURE__ */ React22.createElement(
861
862
  import_ui16.UnstableSortableItem,
862
863
  {
863
864
  id,
865
+ disabled,
864
866
  render: ({
865
867
  itemProps,
866
868
  triggerProps,
@@ -869,7 +871,7 @@ var SortableItem = ({ id, children }) => {
869
871
  showDropIndication,
870
872
  dropIndicationStyle
871
873
  }) => {
872
- return /* @__PURE__ */ React22.createElement(StyledListItem, { ...itemProps, style: itemStyle }, /* @__PURE__ */ React22.createElement(SortableTrigger, { ...triggerProps, style: triggerStyle }), children, showDropIndication && /* @__PURE__ */ React22.createElement(StyledDivider, { style: dropIndicationStyle }));
874
+ return /* @__PURE__ */ React22.createElement(StyledListItem, { ...itemProps, style: itemStyle }, !disabled && /* @__PURE__ */ React22.createElement(SortableTrigger, { ...triggerProps, style: triggerStyle }), children, showDropIndication && /* @__PURE__ */ React22.createElement(StyledDivider, { style: dropIndicationStyle }));
873
875
  }
874
876
  }
875
877
  );
@@ -997,7 +999,6 @@ var Repeater = ({
997
999
  });
998
1000
  });
999
1001
  };
1000
- const ItemWrapper = disabled ? React23.Fragment : SortableItem;
1001
1002
  return /* @__PURE__ */ React23.createElement(SectionContent, null, /* @__PURE__ */ React23.createElement(
1002
1003
  import_ui17.Stack,
1003
1004
  {
@@ -1025,7 +1026,7 @@ var Repeater = ({
1025
1026
  if (!value) {
1026
1027
  return null;
1027
1028
  }
1028
- return /* @__PURE__ */ React23.createElement(ItemWrapper, { id: key, key: `sortable-${key}` }, /* @__PURE__ */ React23.createElement(
1029
+ return /* @__PURE__ */ React23.createElement(SortableItem, { id: key, key: `sortable-${key}`, disabled }, /* @__PURE__ */ React23.createElement(
1029
1030
  RepeaterItem,
1030
1031
  {
1031
1032
  disabled,
@@ -1111,7 +1112,7 @@ var usePopover = (openOnMount, onOpen) => {
1111
1112
  // src/controls/box-shadow-repeater-control.tsx
1112
1113
  var BoxShadowRepeaterControl = createControl(() => {
1113
1114
  const { propType, value, setValue, disabled } = useBoundProp(import_editor_props9.boxShadowPropTypeUtil);
1114
- return /* @__PURE__ */ React24.createElement(PropProvider, { propType, value, setValue }, /* @__PURE__ */ React24.createElement(
1115
+ return /* @__PURE__ */ React24.createElement(PropProvider, { propType, value, setValue, disabled }, /* @__PURE__ */ React24.createElement(
1115
1116
  Repeater,
1116
1117
  {
1117
1118
  openOnAdd: true,
@@ -1133,8 +1134,8 @@ var ItemContent = ({ anchorEl, bind }) => {
1133
1134
  return /* @__PURE__ */ React24.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React24.createElement(Content, { anchorEl }));
1134
1135
  };
1135
1136
  var Content = ({ anchorEl }) => {
1136
- const { propType, value, setValue } = useBoundProp(import_editor_props9.shadowPropTypeUtil);
1137
- return /* @__PURE__ */ React24.createElement(PropProvider, { propType, value, setValue }, /* @__PURE__ */ React24.createElement(PopoverContent, { p: 1.5 }, /* @__PURE__ */ React24.createElement(PopoverGridContainer, null, /* @__PURE__ */ React24.createElement(Control2, { bind: "color", label: (0, import_i18n5.__)("Color", "elementor") }, /* @__PURE__ */ React24.createElement(ColorControl, { anchorEl })), /* @__PURE__ */ React24.createElement(Control2, { bind: "position", label: (0, import_i18n5.__)("Position", "elementor"), sx: { overflow: "hidden" } }, /* @__PURE__ */ React24.createElement(
1137
+ const context = useBoundProp(import_editor_props9.shadowPropTypeUtil);
1138
+ return /* @__PURE__ */ React24.createElement(PropProvider, { ...context }, /* @__PURE__ */ React24.createElement(PopoverContent, { p: 1.5 }, /* @__PURE__ */ React24.createElement(PopoverGridContainer, null, /* @__PURE__ */ React24.createElement(Control2, { bind: "color", label: (0, import_i18n5.__)("Color", "elementor") }, /* @__PURE__ */ React24.createElement(ColorControl, { anchorEl })), /* @__PURE__ */ React24.createElement(Control2, { bind: "position", label: (0, import_i18n5.__)("Position", "elementor"), sx: { overflow: "hidden" } }, /* @__PURE__ */ React24.createElement(
1138
1139
  SelectControl,
1139
1140
  {
1140
1141
  options: [
@@ -1481,7 +1482,7 @@ var import_i18n6 = require("@wordpress/i18n");
1481
1482
  var React29 = __toESM(require("react"));
1482
1483
  var import_ui22 = require("@elementor/ui");
1483
1484
  var ControlLabel = ({ children }) => {
1484
- return /* @__PURE__ */ React29.createElement(import_ui22.Stack, { direction: "row", alignItems: "center", justifyItems: "start", gap: 1 }, /* @__PURE__ */ React29.createElement(ControlFormLabel, null, children), /* @__PURE__ */ React29.createElement(ControlAdornments, null));
1485
+ return /* @__PURE__ */ React29.createElement(import_ui22.Stack, { direction: "row", alignItems: "center", justifyItems: "start", gap: 0.25 }, /* @__PURE__ */ React29.createElement(ControlFormLabel, null, children), /* @__PURE__ */ React29.createElement(ControlAdornments, null));
1485
1486
  };
1486
1487
 
1487
1488
  // src/controls/equal-unequal-sizes-control.tsx
@@ -1511,7 +1512,7 @@ function EqualUnequalSizesControl({
1511
1512
  setValue: setMultiSizeValue,
1512
1513
  disabled: multiSizeDisabled
1513
1514
  } = useBoundProp(multiSizePropTypeUtil);
1514
- const { value: sizeValue, setValue: setSizeValue, disabled: sizeDisabled } = useBoundProp(import_editor_props12.sizePropTypeUtil);
1515
+ const { value: sizeValue, setValue: setSizeValue } = useBoundProp(import_editor_props12.sizePropTypeUtil);
1515
1516
  const splitEqualValue = () => {
1516
1517
  if (!sizeValue) {
1517
1518
  return null;
@@ -1538,8 +1539,9 @@ function EqualUnequalSizesControl({
1538
1539
  }
1539
1540
  return splitEqualValue() ?? null;
1540
1541
  };
1542
+ const isShowingGeneralIndicator = !(0, import_editor_v1_adapters.isExperimentActive)("e_v_3_30") || !popupState.isOpen;
1541
1543
  const isMixed = !!multiSizeValue;
1542
- return /* @__PURE__ */ React30.createElement(React30.Fragment, null, /* @__PURE__ */ React30.createElement(import_ui23.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap", ref: controlRef }, /* @__PURE__ */ React30.createElement(import_ui23.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React30.createElement(ControlLabel, null, label)), /* @__PURE__ */ React30.createElement(import_ui23.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React30.createElement(import_ui23.Stack, { direction: "row", alignItems: "center", gap: 1 }, /* @__PURE__ */ React30.createElement(SizeControl, { placeholder: isMixed ? (0, import_i18n6.__)("Mixed", "elementor") : void 0 }), /* @__PURE__ */ React30.createElement(import_ui23.Tooltip, { title: tooltipLabel, placement: "top" }, /* @__PURE__ */ React30.createElement(
1544
+ return /* @__PURE__ */ React30.createElement(React30.Fragment, null, /* @__PURE__ */ React30.createElement(import_ui23.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap", ref: controlRef }, /* @__PURE__ */ React30.createElement(import_ui23.Grid, { item: true, xs: 6 }, !isShowingGeneralIndicator ? /* @__PURE__ */ React30.createElement(ControlFormLabel, null, label) : /* @__PURE__ */ React30.createElement(ControlLabel, null, label)), /* @__PURE__ */ React30.createElement(import_ui23.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React30.createElement(import_ui23.Stack, { direction: "row", alignItems: "center", gap: 1 }, /* @__PURE__ */ React30.createElement(SizeControl, { placeholder: isMixed ? (0, import_i18n6.__)("Mixed", "elementor") : void 0 }), /* @__PURE__ */ React30.createElement(import_ui23.Tooltip, { title: tooltipLabel, placement: "top" }, /* @__PURE__ */ React30.createElement(
1543
1545
  import_ui23.ToggleButton,
1544
1546
  {
1545
1547
  size: "tiny",
@@ -1547,8 +1549,7 @@ function EqualUnequalSizesControl({
1547
1549
  sx: { marginLeft: "auto" },
1548
1550
  ...(0, import_ui23.bindToggle)(popupState),
1549
1551
  selected: popupState.isOpen,
1550
- "aria-label": tooltipLabel,
1551
- disabled: multiSizeDisabled || sizeDisabled
1552
+ "aria-label": tooltipLabel
1552
1553
  },
1553
1554
  icon
1554
1555
  ))))), /* @__PURE__ */ React30.createElement(
@@ -1569,7 +1570,16 @@ function EqualUnequalSizesControl({
1569
1570
  paper: { sx: { mt: 0.5, width: controlRef.current?.getBoundingClientRect().width } }
1570
1571
  }
1571
1572
  },
1572
- /* @__PURE__ */ React30.createElement(PropProvider, { propType: multiSizePropType, value: getMultiSizeValues(), setValue: setNestedProp }, /* @__PURE__ */ React30.createElement(PopoverContent, { p: 1.5, pt: 2.5, pb: 3 }, /* @__PURE__ */ React30.createElement(PopoverGridContainer, null, /* @__PURE__ */ React30.createElement(MultiSizeValueControl, { item: items[0] }), /* @__PURE__ */ React30.createElement(MultiSizeValueControl, { item: items[1] })), /* @__PURE__ */ React30.createElement(PopoverGridContainer, null, /* @__PURE__ */ React30.createElement(MultiSizeValueControl, { item: items[2] }), /* @__PURE__ */ React30.createElement(MultiSizeValueControl, { item: items[3] }))))
1573
+ /* @__PURE__ */ React30.createElement(
1574
+ PropProvider,
1575
+ {
1576
+ propType: multiSizePropType,
1577
+ value: getMultiSizeValues(),
1578
+ setValue: setNestedProp,
1579
+ disabled: multiSizeDisabled
1580
+ },
1581
+ /* @__PURE__ */ React30.createElement(PopoverContent, { p: 1.5, pt: 2.5, pb: 3 }, /* @__PURE__ */ React30.createElement(PopoverGridContainer, null, /* @__PURE__ */ React30.createElement(MultiSizeValueControl, { item: items[0] }), /* @__PURE__ */ React30.createElement(MultiSizeValueControl, { item: items[1] })), /* @__PURE__ */ React30.createElement(PopoverGridContainer, null, /* @__PURE__ */ React30.createElement(MultiSizeValueControl, { item: items[2] }), /* @__PURE__ */ React30.createElement(MultiSizeValueControl, { item: items[3] })))
1582
+ )
1573
1583
  ));
1574
1584
  }
1575
1585
  var MultiSizeValueControl = ({ item }) => {
@@ -1616,63 +1626,75 @@ var LinkedDimensionsControl = createControl(
1616
1626
  const LinkedIcon = isLinked ? import_icons5.LinkIcon : import_icons5.DetachIcon;
1617
1627
  const linkedLabel = (0, import_i18n7.__)("Link %s", "elementor").replace("%s", tooltipLabel);
1618
1628
  const unlinkedLabel = (0, import_i18n7.__)("Unlink %s", "elementor").replace("%s", tooltipLabel);
1619
- return /* @__PURE__ */ React31.createElement(PropProvider, { propType, value: dimensionsValue, setValue: setDimensionsValue }, /* @__PURE__ */ React31.createElement(import_ui24.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, isUsingNestedProps ? /* @__PURE__ */ React31.createElement(ControlFormLabel, null, label) : /* @__PURE__ */ React31.createElement(ControlLabel, null, label), /* @__PURE__ */ React31.createElement(import_ui24.Tooltip, { title: isLinked ? unlinkedLabel : linkedLabel, placement: "top" }, /* @__PURE__ */ React31.createElement(
1620
- import_ui24.ToggleButton,
1629
+ const disabled = sizeDisabled || dimensionsDisabled;
1630
+ return /* @__PURE__ */ React31.createElement(
1631
+ PropProvider,
1621
1632
  {
1622
- "aria-label": isLinked ? unlinkedLabel : linkedLabel,
1623
- size: "tiny",
1624
- value: "check",
1625
- selected: isLinked,
1626
- sx: { marginLeft: "auto" },
1627
- onChange: onLinkToggle,
1628
- disabled: sizeDisabled || dimensionsDisabled
1633
+ propType,
1634
+ value: dimensionsValue,
1635
+ setValue: setDimensionsValue,
1636
+ disabled
1629
1637
  },
1630
- /* @__PURE__ */ React31.createElement(LinkedIcon, { fontSize: "tiny" })
1631
- ))), /* @__PURE__ */ React31.createElement(import_ui24.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React31.createElement(import_ui24.Grid, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React31.createElement(Label, { bind: "block-start", label: (0, import_i18n7.__)("Top", "elementor") })), /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React31.createElement(
1632
- Control3,
1633
- {
1634
- bind: "block-start",
1635
- startIcon: /* @__PURE__ */ React31.createElement(import_icons5.SideTopIcon, { fontSize: "tiny" }),
1636
- isLinked,
1637
- extendedValues
1638
- }
1639
- ))), /* @__PURE__ */ React31.createElement(import_ui24.Grid, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React31.createElement(
1640
- Label,
1641
- {
1642
- bind: "inline-end",
1643
- label: isSiteRtl ? (0, import_i18n7.__)("Left", "elementor") : (0, import_i18n7.__)("Right", "elementor")
1644
- }
1645
- )), /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React31.createElement(
1646
- Control3,
1647
- {
1648
- bind: "inline-end",
1649
- startIcon: isSiteRtl ? /* @__PURE__ */ React31.createElement(import_icons5.SideLeftIcon, { fontSize: "tiny" }) : /* @__PURE__ */ React31.createElement(import_icons5.SideRightIcon, { fontSize: "tiny" }),
1650
- isLinked,
1651
- extendedValues
1652
- }
1653
- )))), /* @__PURE__ */ React31.createElement(import_ui24.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React31.createElement(import_ui24.Grid, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React31.createElement(Label, { bind: "block-end", label: (0, import_i18n7.__)("Bottom", "elementor") })), /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React31.createElement(
1654
- Control3,
1655
- {
1656
- bind: "block-end",
1657
- startIcon: /* @__PURE__ */ React31.createElement(import_icons5.SideBottomIcon, { fontSize: "tiny" }),
1658
- isLinked,
1659
- extendedValues
1660
- }
1661
- ))), /* @__PURE__ */ React31.createElement(import_ui24.Grid, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React31.createElement(
1662
- Label,
1663
- {
1664
- bind: "inline-start",
1665
- label: isSiteRtl ? (0, import_i18n7.__)("Right", "elementor") : (0, import_i18n7.__)("Left", "elementor")
1666
- }
1667
- )), /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React31.createElement(
1668
- Control3,
1669
- {
1670
- bind: "inline-start",
1671
- startIcon: isSiteRtl ? /* @__PURE__ */ React31.createElement(import_icons5.SideRightIcon, { fontSize: "tiny" }) : /* @__PURE__ */ React31.createElement(import_icons5.SideLeftIcon, { fontSize: "tiny" }),
1672
- isLinked,
1673
- extendedValues
1674
- }
1675
- )))));
1638
+ /* @__PURE__ */ React31.createElement(import_ui24.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, isUsingNestedProps ? /* @__PURE__ */ React31.createElement(ControlFormLabel, null, label) : /* @__PURE__ */ React31.createElement(ControlLabel, null, label), /* @__PURE__ */ React31.createElement(import_ui24.Tooltip, { title: isLinked ? unlinkedLabel : linkedLabel, placement: "top" }, /* @__PURE__ */ React31.createElement(
1639
+ import_ui24.ToggleButton,
1640
+ {
1641
+ "aria-label": isLinked ? unlinkedLabel : linkedLabel,
1642
+ size: "tiny",
1643
+ value: "check",
1644
+ selected: isLinked,
1645
+ sx: { marginLeft: "auto" },
1646
+ onChange: onLinkToggle,
1647
+ disabled
1648
+ },
1649
+ /* @__PURE__ */ React31.createElement(LinkedIcon, { fontSize: "tiny" })
1650
+ ))),
1651
+ /* @__PURE__ */ React31.createElement(import_ui24.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React31.createElement(import_ui24.Grid, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React31.createElement(Label, { bind: "block-start", label: (0, import_i18n7.__)("Top", "elementor") })), /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React31.createElement(
1652
+ Control3,
1653
+ {
1654
+ bind: "block-start",
1655
+ startIcon: /* @__PURE__ */ React31.createElement(import_icons5.SideTopIcon, { fontSize: "tiny" }),
1656
+ isLinked,
1657
+ extendedValues
1658
+ }
1659
+ ))), /* @__PURE__ */ React31.createElement(import_ui24.Grid, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React31.createElement(
1660
+ Label,
1661
+ {
1662
+ bind: "inline-end",
1663
+ label: isSiteRtl ? (0, import_i18n7.__)("Left", "elementor") : (0, import_i18n7.__)("Right", "elementor")
1664
+ }
1665
+ )), /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React31.createElement(
1666
+ Control3,
1667
+ {
1668
+ bind: "inline-end",
1669
+ startIcon: isSiteRtl ? /* @__PURE__ */ React31.createElement(import_icons5.SideLeftIcon, { fontSize: "tiny" }) : /* @__PURE__ */ React31.createElement(import_icons5.SideRightIcon, { fontSize: "tiny" }),
1670
+ isLinked,
1671
+ extendedValues
1672
+ }
1673
+ )))),
1674
+ /* @__PURE__ */ React31.createElement(import_ui24.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React31.createElement(import_ui24.Grid, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React31.createElement(Label, { bind: "block-end", label: (0, import_i18n7.__)("Bottom", "elementor") })), /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React31.createElement(
1675
+ Control3,
1676
+ {
1677
+ bind: "block-end",
1678
+ startIcon: /* @__PURE__ */ React31.createElement(import_icons5.SideBottomIcon, { fontSize: "tiny" }),
1679
+ isLinked,
1680
+ extendedValues
1681
+ }
1682
+ ))), /* @__PURE__ */ React31.createElement(import_ui24.Grid, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React31.createElement(
1683
+ Label,
1684
+ {
1685
+ bind: "inline-start",
1686
+ label: isSiteRtl ? (0, import_i18n7.__)("Right", "elementor") : (0, import_i18n7.__)("Left", "elementor")
1687
+ }
1688
+ )), /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React31.createElement(
1689
+ Control3,
1690
+ {
1691
+ bind: "inline-start",
1692
+ isLinked,
1693
+ extendedValues,
1694
+ startIcon: isSiteRtl ? /* @__PURE__ */ React31.createElement(import_icons5.SideRightIcon, { fontSize: "tiny" }) : /* @__PURE__ */ React31.createElement(import_icons5.SideLeftIcon, { fontSize: "tiny" })
1695
+ }
1696
+ ))))
1697
+ );
1676
1698
  }
1677
1699
  );
1678
1700
  var Control3 = ({
@@ -1703,6 +1725,7 @@ var import_ui26 = require("@elementor/ui");
1703
1725
  // src/components/font-family-selector.tsx
1704
1726
  var import_react13 = require("react");
1705
1727
  var React32 = __toESM(require("react"));
1728
+ var import_editor_ui3 = require("@elementor/editor-ui");
1706
1729
  var import_icons6 = require("@elementor/icons");
1707
1730
  var import_ui25 = require("@elementor/ui");
1708
1731
  var import_utils2 = require("@elementor/utils");
@@ -1748,7 +1771,14 @@ var FontFamilySelector = ({
1748
1771
  setSearchValue("");
1749
1772
  onClose();
1750
1773
  };
1751
- return /* @__PURE__ */ React32.createElement(import_ui25.Stack, null, /* @__PURE__ */ React32.createElement(import_ui25.Stack, { direction: "row", alignItems: "center", pl: 1.5, pr: 0.5, py: 1.5 }, /* @__PURE__ */ React32.createElement(import_icons6.TextIcon, { fontSize: SIZE2, sx: { mr: 0.5 } }), /* @__PURE__ */ React32.createElement(import_ui25.Typography, { variant: "subtitle2" }, (0, import_i18n8.__)("Font Family", "elementor")), /* @__PURE__ */ React32.createElement(import_ui25.IconButton, { size: SIZE2, sx: { ml: "auto" }, onClick: handleClose }, /* @__PURE__ */ React32.createElement(import_icons6.XIcon, { fontSize: SIZE2 }))), /* @__PURE__ */ React32.createElement(import_ui25.Box, { px: 1.5, pb: 1 }, /* @__PURE__ */ React32.createElement(
1774
+ return /* @__PURE__ */ React32.createElement(import_ui25.Stack, null, /* @__PURE__ */ React32.createElement(
1775
+ import_editor_ui3.PopoverHeader,
1776
+ {
1777
+ title: (0, import_i18n8.__)("Font Family", "elementor"),
1778
+ onClose: handleClose,
1779
+ icon: /* @__PURE__ */ React32.createElement(import_icons6.TextIcon, { fontSize: SIZE2 })
1780
+ }
1781
+ ), /* @__PURE__ */ React32.createElement(import_ui25.Box, { px: 1.5, pb: 1 }, /* @__PURE__ */ React32.createElement(
1752
1782
  import_ui25.TextField,
1753
1783
  {
1754
1784
  autoFocus: true,
@@ -1928,6 +1958,7 @@ var useDebounce = (fn, delay) => {
1928
1958
  };
1929
1959
 
1930
1960
  // src/controls/font-family-control/font-family-control.tsx
1961
+ var SIZE3 = "tiny";
1931
1962
  var FontFamilyControl = createControl(({ fontFamilies }) => {
1932
1963
  const { value: fontFamily, setValue: setFontFamily, disabled } = useBoundProp(import_editor_props14.stringPropTypeUtil);
1933
1964
  const popoverState = (0, import_ui26.usePopupState)({ variant: "popover" });
@@ -1936,7 +1967,7 @@ var FontFamilyControl = createControl(({ fontFamilies }) => {
1936
1967
  {
1937
1968
  variant: "outlined",
1938
1969
  label: fontFamily,
1939
- endIcon: /* @__PURE__ */ React33.createElement(import_icons7.ChevronDownIcon, { fontSize: "tiny" }),
1970
+ endIcon: /* @__PURE__ */ React33.createElement(import_icons7.ChevronDownIcon, { fontSize: SIZE3 }),
1940
1971
  ...(0, import_ui26.bindTrigger)(popoverState),
1941
1972
  fullWidth: true,
1942
1973
  disabled
@@ -1986,7 +2017,7 @@ var React36 = __toESM(require("react"));
1986
2017
  var import_react15 = require("react");
1987
2018
  var import_editor_elements = require("@elementor/editor-elements");
1988
2019
  var import_editor_props16 = require("@elementor/editor-props");
1989
- var import_editor_ui3 = require("@elementor/editor-ui");
2020
+ var import_editor_ui4 = require("@elementor/editor-ui");
1990
2021
  var import_http_client2 = require("@elementor/http-client");
1991
2022
  var import_icons9 = require("@elementor/icons");
1992
2023
  var import_session = require("@elementor/session");
@@ -2101,7 +2132,7 @@ function _factoryFilter(newValue, options, minInputLength) {
2101
2132
  }
2102
2133
 
2103
2134
  // src/controls/link-control.tsx
2104
- var SIZE3 = "tiny";
2135
+ var SIZE4 = "tiny";
2105
2136
  var learnMoreButton = {
2106
2137
  label: (0, import_i18n9.__)("Learn More", "elementor"),
2107
2138
  href: "https://go.elementor.com/element-link-inside-link-infotip"
@@ -2209,10 +2240,10 @@ var LinkControl = createControl((props) => {
2209
2240
  onTextChange,
2210
2241
  minInputLength
2211
2242
  }
2212
- ))), /* @__PURE__ */ React36.createElement(PropKeyProvider, { bind: "isTargetBlank" }, /* @__PURE__ */ React36.createElement(SwitchControl, { disabled: !value }))))));
2243
+ ))), /* @__PURE__ */ React36.createElement(PropKeyProvider, { bind: "isTargetBlank" }, /* @__PURE__ */ React36.createElement(SwitchControl, { disabled: propContext.disabled || !value }))))));
2213
2244
  });
2214
2245
  var ToggleIconControl = ({ disabled, active, onIconClick, label }) => {
2215
- return /* @__PURE__ */ React36.createElement(import_ui29.IconButton, { size: SIZE3, onClick: onIconClick, "aria-label": label, disabled }, active ? /* @__PURE__ */ React36.createElement(import_icons9.MinusIcon, { fontSize: SIZE3 }) : /* @__PURE__ */ React36.createElement(import_icons9.PlusIcon, { fontSize: SIZE3 }));
2246
+ return /* @__PURE__ */ React36.createElement(import_ui29.IconButton, { size: SIZE4, onClick: onIconClick, "aria-label": label, disabled }, active ? /* @__PURE__ */ React36.createElement(import_icons9.MinusIcon, { fontSize: SIZE4 }) : /* @__PURE__ */ React36.createElement(import_icons9.PlusIcon, { fontSize: SIZE4 }));
2216
2247
  };
2217
2248
  var SwitchControl = ({ disabled }) => {
2218
2249
  const { value = false, setValue } = useBoundProp(import_editor_props16.booleanPropTypeUtil);
@@ -2266,7 +2297,7 @@ var ConditionalInfoTip = ({ linkInLinkRestriction, isVisible, children }) => {
2266
2297
  {
2267
2298
  placement: "right",
2268
2299
  content: /* @__PURE__ */ React36.createElement(
2269
- import_editor_ui3.InfoTipCard,
2300
+ import_editor_ui4.InfoTipCard,
2270
2301
  {
2271
2302
  content: INFOTIP_CONTENT[reason],
2272
2303
  svgIcon: /* @__PURE__ */ React36.createElement(import_icons9.AlertTriangleIcon, null),
@@ -2316,6 +2347,7 @@ var GapControl = createControl(({ label }) => {
2316
2347
  const LinkedIcon = isLinked ? import_icons10.LinkIcon : import_icons10.DetachIcon;
2317
2348
  const linkedLabel = (0, import_i18n10.__)("Link %s", "elementor").replace("%s", tooltipLabel);
2318
2349
  const unlinkedLabel = (0, import_i18n10.__)("Unlink %s", "elementor").replace("%s", tooltipLabel);
2350
+ const disabled = sizeDisabled || directionDisabled;
2319
2351
  return /* @__PURE__ */ React37.createElement(PropProvider, { propType, value: directionValue, setValue: setDirectionValue }, /* @__PURE__ */ React37.createElement(import_ui30.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React37.createElement(ControlLabel, null, label), /* @__PURE__ */ React37.createElement(import_ui30.Tooltip, { title: isLinked ? unlinkedLabel : linkedLabel, placement: "top" }, /* @__PURE__ */ React37.createElement(
2320
2352
  import_ui30.ToggleButton,
2321
2353
  {
@@ -2325,7 +2357,7 @@ var GapControl = createControl(({ label }) => {
2325
2357
  selected: isLinked,
2326
2358
  sx: { marginLeft: "auto" },
2327
2359
  onChange: onLinkToggle,
2328
- disabled: sizeDisabled || directionDisabled
2360
+ disabled
2329
2361
  },
2330
2362
  /* @__PURE__ */ React37.createElement(LinkedIcon, { fontSize: "tiny" })
2331
2363
  ))), /* @__PURE__ */ React37.createElement(import_ui30.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React37.createElement(import_ui30.Grid, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React37.createElement(import_ui30.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React37.createElement(ControlFormLabel, null, (0, import_i18n10.__)("Column", "elementor"))), /* @__PURE__ */ React37.createElement(import_ui30.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React37.createElement(Control4, { bind: "column", isLinked }))), /* @__PURE__ */ React37.createElement(import_ui30.Grid, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React37.createElement(import_ui30.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React37.createElement(ControlFormLabel, null, (0, import_i18n10.__)("Row", "elementor"))), /* @__PURE__ */ React37.createElement(import_ui30.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React37.createElement(Control4, { bind: "row", isLinked })))));
@@ -2341,7 +2373,7 @@ var Control4 = ({ bind, isLinked }) => {
2341
2373
  var React38 = __toESM(require("react"));
2342
2374
  var import_react16 = require("react");
2343
2375
  var import_editor_props18 = require("@elementor/editor-props");
2344
- var import_editor_ui4 = require("@elementor/editor-ui");
2376
+ var import_editor_ui5 = require("@elementor/editor-ui");
2345
2377
  var import_icons11 = require("@elementor/icons");
2346
2378
  var import_ui31 = require("@elementor/ui");
2347
2379
  var import_i18n11 = require("@wordpress/i18n");
@@ -2402,7 +2434,7 @@ var AspectRatioControl = createControl(({ label }) => {
2402
2434
  fullWidth: true
2403
2435
  },
2404
2436
  [...RATIO_OPTIONS, { label: (0, import_i18n11.__)("Custom", "elementor"), value: CUSTOM_RATIO }].map(
2405
- ({ label: optionLabel, ...props }) => /* @__PURE__ */ React38.createElement(import_editor_ui4.MenuListItem, { key: props.value, ...props, value: props.value ?? "" }, optionLabel)
2437
+ ({ label: optionLabel, ...props }) => /* @__PURE__ */ React38.createElement(import_editor_ui5.MenuListItem, { key: props.value, ...props, value: props.value ?? "" }, optionLabel)
2406
2438
  )
2407
2439
  ))), isCustom && /* @__PURE__ */ React38.createElement(import_ui31.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React38.createElement(import_ui31.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React38.createElement(
2408
2440
  import_ui31.TextField,
@@ -2709,7 +2741,7 @@ var BackgroundImageOverlayAttachment = () => {
2709
2741
  // src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-position.tsx
2710
2742
  var React43 = __toESM(require("react"));
2711
2743
  var import_editor_props21 = require("@elementor/editor-props");
2712
- var import_editor_ui5 = require("@elementor/editor-ui");
2744
+ var import_editor_ui6 = require("@elementor/editor-ui");
2713
2745
  var import_icons14 = require("@elementor/icons");
2714
2746
  var import_ui36 = require("@elementor/ui");
2715
2747
  var import_i18n15 = require("@wordpress/i18n");
@@ -2740,12 +2772,13 @@ var BackgroundImageOverlayPosition = () => {
2740
2772
  return /* @__PURE__ */ React43.createElement(import_ui36.Grid, { container: true, spacing: 1.5 }, /* @__PURE__ */ React43.createElement(import_ui36.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React43.createElement(PopoverGridContainer, null, /* @__PURE__ */ React43.createElement(import_ui36.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React43.createElement(ControlFormLabel, null, (0, import_i18n15.__)("Position", "elementor"))), /* @__PURE__ */ React43.createElement(import_ui36.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end", overflow: "hidden" } }, /* @__PURE__ */ React43.createElement(
2741
2773
  import_ui36.Select,
2742
2774
  {
2775
+ fullWidth: true,
2743
2776
  size: "tiny",
2744
- value: (backgroundImageOffsetContext.value ? "custom" : stringPropContext.value) ?? "",
2745
2777
  onChange: handlePositionChange,
2746
- fullWidth: true
2778
+ disabled: stringPropContext.disabled,
2779
+ value: (backgroundImageOffsetContext.value ? "custom" : stringPropContext.value) ?? ""
2747
2780
  },
2748
- backgroundPositionOptions.map(({ label, value }) => /* @__PURE__ */ React43.createElement(import_editor_ui5.MenuListItem, { key: value, value: value ?? "" }, label))
2781
+ backgroundPositionOptions.map(({ label, value }) => /* @__PURE__ */ React43.createElement(import_editor_ui6.MenuListItem, { key: value, value: value ?? "" }, label))
2749
2782
  )))), isCustom ? /* @__PURE__ */ React43.createElement(PropProvider, { ...backgroundImageOffsetContext }, /* @__PURE__ */ React43.createElement(import_ui36.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React43.createElement(import_ui36.Grid, { container: true, spacing: 1.5 }, /* @__PURE__ */ React43.createElement(import_ui36.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React43.createElement(PropKeyProvider, { bind: "x" }, /* @__PURE__ */ React43.createElement(SizeControl, { startIcon: /* @__PURE__ */ React43.createElement(import_icons14.LetterXIcon, { fontSize: "tiny" }) }))), /* @__PURE__ */ React43.createElement(import_ui36.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React43.createElement(PropKeyProvider, { bind: "y" }, /* @__PURE__ */ React43.createElement(SizeControl, { startIcon: /* @__PURE__ */ React43.createElement(import_icons14.LetterYIcon, { fontSize: "tiny" }) })))))) : null);
2750
2783
  };
2751
2784
 
@@ -2832,8 +2865,9 @@ var BackgroundImageOverlaySize = () => {
2832
2865
  {
2833
2866
  exclusive: true,
2834
2867
  items: sizeControlOptions,
2835
- value: backgroundImageScaleContext.value ? "custom" : stringPropContext.value,
2836
- onChange: handleSizeChange
2868
+ onChange: handleSizeChange,
2869
+ disabled: stringPropContext.disabled,
2870
+ value: backgroundImageScaleContext.value ? "custom" : stringPropContext.value
2837
2871
  }
2838
2872
  )))), isCustom ? /* @__PURE__ */ React45.createElement(PropProvider, { ...backgroundImageScaleContext }, /* @__PURE__ */ React45.createElement(import_ui38.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React45.createElement(PopoverGridContainer, null, /* @__PURE__ */ React45.createElement(import_ui38.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React45.createElement(PropKeyProvider, { bind: "width" }, /* @__PURE__ */ React45.createElement(
2839
2873
  SizeControl,
@@ -2947,7 +2981,7 @@ var backgroundResolutionOptions = [
2947
2981
  ];
2948
2982
  var BackgroundOverlayRepeaterControl = createControl(() => {
2949
2983
  const { propType, value: overlayValues, setValue, disabled } = useBoundProp(import_editor_props24.backgroundOverlayPropTypeUtil);
2950
- return /* @__PURE__ */ React46.createElement(PropProvider, { propType, value: overlayValues, setValue }, /* @__PURE__ */ React46.createElement(
2984
+ return /* @__PURE__ */ React46.createElement(PropProvider, { propType, value: overlayValues, setValue, disabled }, /* @__PURE__ */ React46.createElement(
2951
2985
  Repeater,
2952
2986
  {
2953
2987
  openOnAdd: true,
@@ -3133,6 +3167,7 @@ var SwitchControl2 = createControl(() => {
3133
3167
  ControlToggleButtonGroup,
3134
3168
  EqualUnequalSizesControl,
3135
3169
  FontFamilyControl,
3170
+ FontFamilySelector,
3136
3171
  GapControl,
3137
3172
  ImageControl,
3138
3173
  LinkControl,