@elementor/editor-controls 4.1.0-800 → 4.1.0-802

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/dist/index.js CHANGED
@@ -1497,7 +1497,7 @@ var Control = (0, import_react15.forwardRef)(({ bind, label, children }, ref) =>
1497
1497
 
1498
1498
  // src/controls/box-shadow-repeater-control.tsx
1499
1499
  var React40 = __toESM(require("react"));
1500
- var import_react23 = require("react");
1500
+ var import_react24 = require("react");
1501
1501
  var import_editor_props11 = require("@elementor/editor-props");
1502
1502
  var import_ui31 = require("@elementor/ui");
1503
1503
  var import_i18n11 = require("@wordpress/i18n");
@@ -1510,9 +1510,53 @@ var import_i18n5 = require("@wordpress/i18n");
1510
1510
 
1511
1511
  // src/components/control-repeater/context/repeater-context.tsx
1512
1512
  var React25 = __toESM(require("react"));
1513
- var import_react17 = require("react");
1513
+ var import_react18 = require("react");
1514
1514
  var import_ui18 = require("@elementor/ui");
1515
1515
 
1516
+ // src/hooks/use-repeater-popover-dismiss.ts
1517
+ var import_react16 = require("react");
1518
+ var import_editor_responsive2 = require("@elementor/editor-responsive");
1519
+ var serializeBreakpoints = (breakpoints) => breakpoints.map((b) => [b.id, b.width ?? "", b.type ?? ""].join(":")).join("|");
1520
+ var usePopoverDismiss = ({ isOpen, onClose }) => {
1521
+ const onCloseRef = (0, import_react16.useRef)(onClose);
1522
+ onCloseRef.current = onClose;
1523
+ const activeBreakpoint = (0, import_editor_responsive2.useActiveBreakpoint)();
1524
+ const breakpoints = (0, import_editor_responsive2.useBreakpoints)();
1525
+ const breakpointsSignature = (0, import_react16.useMemo)(() => serializeBreakpoints(breakpoints), [breakpoints]);
1526
+ const prevActiveBreakpointRef = (0, import_react16.useRef)(void 0);
1527
+ const prevBreakpointsSignatureRef = (0, import_react16.useRef)(null);
1528
+ (0, import_react16.useEffect)(() => {
1529
+ if (!isOpen) {
1530
+ prevActiveBreakpointRef.current = activeBreakpoint;
1531
+ prevBreakpointsSignatureRef.current = breakpointsSignature;
1532
+ return;
1533
+ }
1534
+ const previousBreakpoint = prevActiveBreakpointRef.current;
1535
+ const previousSignature = prevBreakpointsSignatureRef.current;
1536
+ const breakpointChanged = previousBreakpoint !== void 0 && previousBreakpoint !== activeBreakpoint;
1537
+ const breakpointsChanged = previousSignature !== null && previousSignature !== breakpointsSignature;
1538
+ if (breakpointChanged || breakpointsChanged) {
1539
+ onCloseRef.current();
1540
+ }
1541
+ prevActiveBreakpointRef.current = activeBreakpoint;
1542
+ prevBreakpointsSignatureRef.current = breakpointsSignature;
1543
+ }, [activeBreakpoint, breakpointsSignature, isOpen]);
1544
+ (0, import_react16.useEffect)(() => {
1545
+ if (!isOpen) {
1546
+ return;
1547
+ }
1548
+ const onKeyDown = (event) => {
1549
+ if (event.key === "Escape" && !event.defaultPrevented) {
1550
+ onCloseRef.current();
1551
+ }
1552
+ };
1553
+ document.addEventListener("keydown", onKeyDown);
1554
+ return () => {
1555
+ document.removeEventListener("keydown", onKeyDown);
1556
+ };
1557
+ }, [isOpen]);
1558
+ };
1559
+
1516
1560
  // src/services/event-bus.ts
1517
1561
  var EventBus = class {
1518
1562
  listeners = /* @__PURE__ */ new Map();
@@ -1548,18 +1592,18 @@ var EventBus = class {
1548
1592
  var eventBus = new EventBus();
1549
1593
 
1550
1594
  // src/components/control-repeater/context/item-context.tsx
1551
- var import_react16 = require("react");
1552
- var ItemContext = (0, import_react16.createContext)({
1595
+ var import_react17 = require("react");
1596
+ var ItemContext = (0, import_react17.createContext)({
1553
1597
  index: -1,
1554
1598
  value: {}
1555
1599
  });
1556
1600
 
1557
1601
  // src/components/control-repeater/context/repeater-context.tsx
1558
- var RepeaterContext = (0, import_react17.createContext)(null);
1602
+ var RepeaterContext = (0, import_react18.createContext)(null);
1559
1603
  var EMPTY_OPEN_ITEM = -1;
1560
1604
  var useRepeaterContext = () => {
1561
- const context = (0, import_react17.useContext)(RepeaterContext);
1562
- const itemContext = (0, import_react17.useContext)(ItemContext);
1605
+ const context = (0, import_react18.useContext)(RepeaterContext);
1606
+ const itemContext = (0, import_react18.useContext)(ItemContext);
1563
1607
  if (!context) {
1564
1608
  throw new Error("useRepeaterContext must be used within a RepeaterContextProvider");
1565
1609
  }
@@ -1578,10 +1622,10 @@ var RepeaterContextProvider = ({
1578
1622
  setExternal: setRepeaterValues,
1579
1623
  persistWhen: () => true
1580
1624
  });
1581
- const [uniqueKeys, setUniqueKeys] = (0, import_react17.useState)(() => {
1625
+ const [uniqueKeys, setUniqueKeys] = (0, import_react18.useState)(() => {
1582
1626
  return items2?.map(() => generateUniqueKey()) ?? [];
1583
1627
  });
1584
- (0, import_react17.useEffect)(() => {
1628
+ (0, import_react18.useEffect)(() => {
1585
1629
  const nextLength = items2?.length ?? 0;
1586
1630
  setUniqueKeys((prev) => {
1587
1631
  const prevLength = prev.length;
@@ -1594,7 +1638,7 @@ var RepeaterContextProvider = ({
1594
1638
  return [...prev, ...Array.from({ length: nextLength - prevLength }, generateUniqueKey)];
1595
1639
  });
1596
1640
  }, [items2?.length]);
1597
- const itemsWithKeys = (0, import_react17.useMemo)(
1641
+ const itemsWithKeys = (0, import_react18.useMemo)(
1598
1642
  () => uniqueKeys.map((key, index) => ({
1599
1643
  key,
1600
1644
  item: items2[index]
@@ -1604,8 +1648,8 @@ var RepeaterContextProvider = ({
1604
1648
  const handleSetItems = (newItemsWithKeys) => {
1605
1649
  setItems(newItemsWithKeys.map(({ item }) => item));
1606
1650
  };
1607
- const [openItemIndex, setOpenItemIndex] = (0, import_react17.useState)(EMPTY_OPEN_ITEM);
1608
- const [rowRef, setRowRef] = (0, import_react17.useState)(null);
1651
+ const [openItemIndex, setOpenItemIndex] = (0, import_react18.useState)(EMPTY_OPEN_ITEM);
1652
+ const [rowRef, setRowRef] = (0, import_react18.useState)(null);
1609
1653
  const isOpen = openItemIndex !== EMPTY_OPEN_ITEM;
1610
1654
  const popoverState = (0, import_ui18.usePopupState)({ variant: "popover" });
1611
1655
  const addItem = (ev, config) => {
@@ -1634,6 +1678,15 @@ var RepeaterContextProvider = ({
1634
1678
  const newItems = [...items2.slice(0, index), updatedItem, ...items2.slice(index + 1)];
1635
1679
  setItems(newItems);
1636
1680
  };
1681
+ const closePopover = () => {
1682
+ if (!isOpen) {
1683
+ return;
1684
+ }
1685
+ setOpenItemIndex(EMPTY_OPEN_ITEM);
1686
+ setRowRef(null);
1687
+ popoverState.close();
1688
+ };
1689
+ usePopoverDismiss({ isOpen, onClose: closePopover });
1637
1690
  return /* @__PURE__ */ React25.createElement(
1638
1691
  RepeaterContext.Provider,
1639
1692
  {
@@ -1802,15 +1855,15 @@ var ItemsContainer = ({
1802
1855
 
1803
1856
  // src/components/control-repeater/items/item.tsx
1804
1857
  var React30 = __toESM(require("react"));
1805
- var import_react20 = require("react");
1858
+ var import_react21 = require("react");
1806
1859
  var import_ui22 = require("@elementor/ui");
1807
1860
  var import_i18n7 = require("@wordpress/i18n");
1808
1861
 
1809
1862
  // src/hooks/use-repeatable-control-context.ts
1810
- var import_react18 = require("react");
1811
- var RepeatableControlContext = (0, import_react18.createContext)(void 0);
1863
+ var import_react19 = require("react");
1864
+ var RepeatableControlContext = (0, import_react19.createContext)(void 0);
1812
1865
  var useRepeatableControlContext = () => {
1813
- const context = (0, import_react18.useContext)(RepeatableControlContext);
1866
+ const context = (0, import_react19.useContext)(RepeatableControlContext);
1814
1867
  if (!context) {
1815
1868
  throw new Error("useRepeatableControlContext must be used within RepeatableControl");
1816
1869
  }
@@ -1819,9 +1872,9 @@ var useRepeatableControlContext = () => {
1819
1872
 
1820
1873
  // src/components/repeater/repeater-tag.tsx
1821
1874
  var React29 = __toESM(require("react"));
1822
- var import_react19 = require("react");
1875
+ var import_react20 = require("react");
1823
1876
  var import_ui21 = require("@elementor/ui");
1824
- var RepeaterTag = (0, import_react19.forwardRef)((props, ref) => {
1877
+ var RepeaterTag = (0, import_react20.forwardRef)((props, ref) => {
1825
1878
  return /* @__PURE__ */ React29.createElement(
1826
1879
  import_ui21.UnstableTag,
1827
1880
  {
@@ -1852,7 +1905,7 @@ var Item = ({ Label: Label3, Icon, actions }) => {
1852
1905
  value,
1853
1906
  isItemDisabled: isItemDisabled2
1854
1907
  } = useRepeaterContext();
1855
- const repeatableContext = (0, import_react20.useContext)(RepeatableControlContext);
1908
+ const repeatableContext = (0, import_react21.useContext)(RepeatableControlContext);
1856
1909
  const disableOpen = !!repeatableContext?.props?.readOnly;
1857
1910
  const triggerProps = (0, import_ui22.bindTrigger)(popoverState);
1858
1911
  const onClick = (ev) => {
@@ -2024,18 +2077,18 @@ var import_ui28 = require("@elementor/ui");
2024
2077
  var PopoverContent = ({ gap = 1.5, children, ...props }) => /* @__PURE__ */ React37.createElement(import_ui28.Stack, { ...props, gap }, children);
2025
2078
 
2026
2079
  // src/components/popover-grid-container.tsx
2027
- var import_react21 = require("react");
2080
+ var import_react22 = require("react");
2028
2081
  var React38 = __toESM(require("react"));
2029
2082
  var import_ui29 = require("@elementor/ui");
2030
- var PopoverGridContainer = (0, import_react21.forwardRef)(
2083
+ var PopoverGridContainer = (0, import_react22.forwardRef)(
2031
2084
  ({ gap = 1.5, alignItems = "center", flexWrap = "nowrap", children }, ref) => /* @__PURE__ */ React38.createElement(import_ui29.Grid, { container: true, gap, alignItems, flexWrap, ref }, children)
2032
2085
  );
2033
2086
 
2034
2087
  // src/components/repeater/repeater-header.tsx
2035
2088
  var React39 = __toESM(require("react"));
2036
- var import_react22 = require("react");
2089
+ var import_react23 = require("react");
2037
2090
  var import_ui30 = require("@elementor/ui");
2038
- var RepeaterHeader = (0, import_react22.forwardRef)(
2091
+ var RepeaterHeader = (0, import_react23.forwardRef)(
2039
2092
  ({
2040
2093
  label,
2041
2094
  children,
@@ -2076,7 +2129,7 @@ var StyledUnstableColorIndicator = (0, import_ui31.styled)(import_ui31.UnstableC
2076
2129
  var ItemIcon = ({ value }) => /* @__PURE__ */ React40.createElement(StyledUnstableColorIndicator, { size: "inherit", component: "span", value: value.value.color?.value });
2077
2130
  var Content = () => {
2078
2131
  const context = useBoundProp(import_editor_props11.shadowPropTypeUtil);
2079
- const rowRef = [(0, import_react23.useRef)(null), (0, import_react23.useRef)(null)];
2132
+ const rowRef = [(0, import_react24.useRef)(null), (0, import_react24.useRef)(null)];
2080
2133
  const { rowRef: anchorEl } = useRepeaterContext();
2081
2134
  return /* @__PURE__ */ React40.createElement(PropProvider, { ...context }, /* @__PURE__ */ React40.createElement(PopoverContent, { p: 1.5 }, /* @__PURE__ */ React40.createElement(PopoverGridContainer, null, /* @__PURE__ */ React40.createElement(Control2, { bind: "color", label: (0, import_i18n11.__)("Color", "elementor") }, /* @__PURE__ */ React40.createElement(ColorControl, { anchorEl })), /* @__PURE__ */ React40.createElement(Control2, { bind: "position", label: (0, import_i18n11.__)("Position", "elementor"), sx: { overflow: "hidden" } }, /* @__PURE__ */ React40.createElement(
2082
2135
  SelectControl,
@@ -2148,7 +2201,7 @@ var import_i18n17 = require("@wordpress/i18n");
2148
2201
 
2149
2202
  // src/controls/filter-control/context/filter-config-context.tsx
2150
2203
  var React41 = __toESM(require("react"));
2151
- var import_react24 = require("react");
2204
+ var import_react25 = require("react");
2152
2205
  var import_editor_props12 = require("@elementor/editor-props");
2153
2206
 
2154
2207
  // src/controls/filter-control/utils.ts
@@ -2247,10 +2300,10 @@ function extractPropType(propType, filterFunctionGroup) {
2247
2300
  }
2248
2301
 
2249
2302
  // src/controls/filter-control/context/filter-config-context.tsx
2250
- var FilterConfigContext = (0, import_react24.createContext)(null);
2303
+ var FilterConfigContext = (0, import_react25.createContext)(null);
2251
2304
  function FilterConfigProvider({ children }) {
2252
2305
  const propContext = useBoundProp(import_editor_props12.cssFilterFunctionPropUtil);
2253
- const contextValue = (0, import_react24.useMemo)(() => {
2306
+ const contextValue = (0, import_react25.useMemo)(() => {
2254
2307
  const config = buildFilterConfig(propContext.propType.item_prop_type);
2255
2308
  const filterOptions = Object.entries(config).map(([key, conf]) => ({
2256
2309
  value: key,
@@ -2266,7 +2319,7 @@ function FilterConfigProvider({ children }) {
2266
2319
  return /* @__PURE__ */ React41.createElement(FilterConfigContext.Provider, { value: contextValue }, children);
2267
2320
  }
2268
2321
  function useFilterConfig() {
2269
- const context = (0, import_react24.useContext)(FilterConfigContext);
2322
+ const context = (0, import_react25.useContext)(FilterConfigContext);
2270
2323
  if (!context) {
2271
2324
  throw new Error("useFilterConfig must be used within FilterConfigProvider");
2272
2325
  }
@@ -2281,7 +2334,7 @@ var import_i18n15 = require("@wordpress/i18n");
2281
2334
 
2282
2335
  // src/controls/filter-control/drop-shadow/drop-shadow-item-content.tsx
2283
2336
  var React42 = __toESM(require("react"));
2284
- var import_react25 = require("react");
2337
+ var import_react26 = require("react");
2285
2338
  var import_editor_props13 = require("@elementor/editor-props");
2286
2339
  var import_ui32 = require("@elementor/ui");
2287
2340
  var import_i18n14 = require("@wordpress/i18n");
@@ -2309,7 +2362,7 @@ var items = [
2309
2362
  ];
2310
2363
  var DropShadowItemContent = ({ anchorEl }) => {
2311
2364
  const context = useBoundProp(import_editor_props13.dropShadowFilterPropTypeUtil);
2312
- const rowRefs = [(0, import_react25.useRef)(null), (0, import_react25.useRef)(null)];
2365
+ const rowRefs = [(0, import_react26.useRef)(null), (0, import_react26.useRef)(null)];
2313
2366
  return /* @__PURE__ */ React42.createElement(PropProvider, { ...context }, items.map((item) => /* @__PURE__ */ React42.createElement(PopoverGridContainer, { key: item.bind, ref: rowRefs[item.rowIndex] ?? null }, /* @__PURE__ */ React42.createElement(PropKeyProvider, { bind: item.bind }, /* @__PURE__ */ React42.createElement(import_ui32.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(ControlFormLabel, null, item.label)), /* @__PURE__ */ React42.createElement(import_ui32.Grid, { item: true, xs: 6 }, item.bind === "color" ? /* @__PURE__ */ React42.createElement(ColorControl, { anchorEl }) : /* @__PURE__ */ React42.createElement(
2314
2367
  SizeControl,
2315
2368
  {
@@ -2322,7 +2375,7 @@ var DropShadowItemContent = ({ anchorEl }) => {
2322
2375
  };
2323
2376
 
2324
2377
  // src/controls/filter-control/single-size/single-size-item-content.tsx
2325
- var import_react26 = require("react");
2378
+ var import_react27 = require("react");
2326
2379
  var React43 = __toESM(require("react"));
2327
2380
  var import_editor_props14 = require("@elementor/editor-props");
2328
2381
  var import_ui33 = require("@elementor/ui");
@@ -2333,7 +2386,7 @@ var propTypeMap = {
2333
2386
  "color-tone": import_editor_props14.colorToneFilterPropTypeUtil
2334
2387
  };
2335
2388
  var SingleSizeItemContent = ({ filterFunc }) => {
2336
- const rowRef = (0, import_react26.useRef)(null);
2389
+ const rowRef = (0, import_react27.useRef)(null);
2337
2390
  const { getFilterFunctionConfig } = useFilterConfig();
2338
2391
  const { valueName, filterFunctionGroup } = getFilterFunctionConfig(filterFunc);
2339
2392
  const context = useBoundProp(propTypeMap[filterFunctionGroup]);
@@ -2474,7 +2527,7 @@ function ensureFilterConfig(name) {
2474
2527
 
2475
2528
  // src/controls/select-control-wrapper.tsx
2476
2529
  var React50 = __toESM(require("react"));
2477
- var import_react27 = require("react");
2530
+ var import_react28 = require("react");
2478
2531
  var getOffCanvasElements = () => {
2479
2532
  const extendedWindow = window;
2480
2533
  const documentId = extendedWindow.elementor.config.document.id;
@@ -2510,8 +2563,8 @@ var collectionMethods = {
2510
2563
  "form-elements": getFormElements
2511
2564
  };
2512
2565
  var useDynamicOptions = (collectionId, initialOptions) => {
2513
- const [options, setOptions] = (0, import_react27.useState)(initialOptions ?? []);
2514
- (0, import_react27.useEffect)(() => {
2566
+ const [options, setOptions] = (0, import_react28.useState)(initialOptions ?? []);
2567
+ (0, import_react28.useEffect)(() => {
2515
2568
  if (!collectionId || !collectionMethods[collectionId]) {
2516
2569
  setOptions(initialOptions ?? []);
2517
2570
  return;
@@ -2567,7 +2620,7 @@ var import_editor_props18 = require("@elementor/editor-props");
2567
2620
 
2568
2621
  // src/components/control-toggle-button-group.tsx
2569
2622
  var React53 = __toESM(require("react"));
2570
- var import_react28 = require("react");
2623
+ var import_react29 = require("react");
2571
2624
  var import_icons9 = require("@elementor/icons");
2572
2625
  var import_ui40 = require("@elementor/ui");
2573
2626
 
@@ -2631,7 +2684,7 @@ var ToggleButtonGroupUi = React53.forwardRef(
2631
2684
  const handleChange = (_, newValue) => {
2632
2685
  onChange(newValue);
2633
2686
  };
2634
- const getGridTemplateColumns = (0, import_react28.useMemo)(() => {
2687
+ const getGridTemplateColumns = (0, import_react29.useMemo)(() => {
2635
2688
  const isOffLimits = menuItems?.length;
2636
2689
  const itemsCount = isOffLimits ? fixedItems.length + 1 : fixedItems.length;
2637
2690
  const templateColumnsSuffix = isOffLimits ? "auto" : "";
@@ -2729,8 +2782,8 @@ var SplitButtonGroup = ({
2729
2782
  value
2730
2783
  }) => {
2731
2784
  const previewButton = usePreviewButton(items2, value);
2732
- const [isMenuOpen, setIsMenuOpen] = (0, import_react28.useState)(false);
2733
- const menuButtonRef = (0, import_react28.useRef)(null);
2785
+ const [isMenuOpen, setIsMenuOpen] = (0, import_react29.useState)(false);
2786
+ const menuButtonRef = (0, import_react29.useRef)(null);
2734
2787
  const onMenuToggle = (ev) => {
2735
2788
  setIsMenuOpen((prev) => !prev);
2736
2789
  ev.preventDefault();
@@ -2798,10 +2851,10 @@ var SplitButtonGroup = ({
2798
2851
  ));
2799
2852
  };
2800
2853
  var usePreviewButton = (items2, value) => {
2801
- const [previewButton, setPreviewButton] = (0, import_react28.useState)(
2854
+ const [previewButton, setPreviewButton] = (0, import_react29.useState)(
2802
2855
  items2.find((item) => item.value === value) ?? items2[0]
2803
2856
  );
2804
- (0, import_react28.useEffect)(() => {
2857
+ (0, import_react29.useEffect)(() => {
2805
2858
  const selectedButton = items2.find((item) => item.value === value);
2806
2859
  if (selectedButton) {
2807
2860
  setPreviewButton(selectedButton);
@@ -2941,7 +2994,7 @@ var NumberControl = createControl(
2941
2994
 
2942
2995
  // src/controls/equal-unequal-sizes-control.tsx
2943
2996
  var React57 = __toESM(require("react"));
2944
- var import_react29 = require("react");
2997
+ var import_react30 = require("react");
2945
2998
  var import_ui42 = require("@elementor/ui");
2946
2999
  var import_i18n18 = require("@wordpress/i18n");
2947
3000
  function EqualUnequalSizesControl({
@@ -2951,9 +3004,9 @@ function EqualUnequalSizesControl({
2951
3004
  items: items2,
2952
3005
  multiSizePropTypeUtil
2953
3006
  }) {
2954
- const popupId = (0, import_react29.useId)();
3007
+ const popupId = (0, import_react30.useId)();
2955
3008
  const popupState = (0, import_ui42.usePopupState)({ variant: "popover", popupId });
2956
- const rowRefs = [(0, import_react29.useRef)(null), (0, import_react29.useRef)(null)];
3009
+ const rowRefs = [(0, import_react30.useRef)(null), (0, import_react30.useRef)(null)];
2957
3010
  const { propType: multiSizePropType, disabled: multiSizeDisabled } = useBoundProp(multiSizePropTypeUtil);
2958
3011
  const { value: masterValue, setValue: setMasterValue, placeholder: masterPlaceholder } = useBoundProp();
2959
3012
  const getMultiSizeValues = (sourceValue) => {
@@ -3048,22 +3101,22 @@ var MultiSizeValueControl = ({ item, rowRef }) => {
3048
3101
 
3049
3102
  // src/controls/linked-dimensions-control.tsx
3050
3103
  var React64 = __toESM(require("react"));
3051
- var import_react37 = require("react");
3104
+ var import_react38 = require("react");
3052
3105
  var import_editor_props22 = require("@elementor/editor-props");
3053
- var import_editor_responsive3 = require("@elementor/editor-responsive");
3106
+ var import_editor_responsive4 = require("@elementor/editor-responsive");
3054
3107
  var import_icons12 = require("@elementor/icons");
3055
3108
  var import_ui47 = require("@elementor/ui");
3056
3109
  var import_i18n20 = require("@wordpress/i18n");
3057
3110
 
3058
3111
  // src/controls/size-control/unstable-size-control.tsx
3059
3112
  var React63 = __toESM(require("react"));
3060
- var import_react36 = require("react");
3113
+ var import_react37 = require("react");
3061
3114
  var import_editor_props21 = require("@elementor/editor-props");
3062
3115
 
3063
3116
  // src/controls/size-control/size-component.tsx
3064
3117
  var React62 = __toESM(require("react"));
3065
- var import_react35 = require("react");
3066
- var import_editor_responsive2 = require("@elementor/editor-responsive");
3118
+ var import_react36 = require("react");
3119
+ var import_editor_responsive3 = require("@elementor/editor-responsive");
3067
3120
  var import_ui46 = require("@elementor/ui");
3068
3121
 
3069
3122
  // src/controls/size-control/size-field.tsx
@@ -3132,7 +3185,7 @@ var isNumericValue = (value) => {
3132
3185
  };
3133
3186
 
3134
3187
  // src/controls/size-control/hooks/use-size-value.ts
3135
- var import_react31 = require("react");
3188
+ var import_react32 = require("react");
3136
3189
 
3137
3190
  // src/controls/size-control/utils/resolve-size-value.ts
3138
3191
  var DEFAULT_SIZE2 = "";
@@ -3184,10 +3237,10 @@ var sanitizeSize = (size) => {
3184
3237
  };
3185
3238
 
3186
3239
  // src/controls/size-control/hooks/use-unit-sync.ts
3187
- var import_react30 = require("react");
3240
+ var import_react31 = require("react");
3188
3241
  var useUnitSync = ({ sizeValue, setUnit, persistWhen }) => {
3189
- const [state, setState] = (0, import_react30.useState)(sizeValue.unit);
3190
- (0, import_react30.useEffect)(() => {
3242
+ const [state, setState] = (0, import_react31.useState)(sizeValue.unit);
3243
+ (0, import_react31.useEffect)(() => {
3191
3244
  if (sizeValue.unit !== state) {
3192
3245
  setState(sizeValue.unit);
3193
3246
  }
@@ -3208,7 +3261,7 @@ var useSizeValue = ({
3208
3261
  units: units2,
3209
3262
  defaultUnit
3210
3263
  }) => {
3211
- const resolvedValue = (0, import_react31.useMemo)(
3264
+ const resolvedValue = (0, import_react32.useMemo)(
3212
3265
  () => resolveSizeValue(value, { units: units2, defaultUnit }),
3213
3266
  // eslint-disable-next-line react-hooks/exhaustive-deps
3214
3267
  [value?.size, value?.unit, defaultUnit]
@@ -3260,8 +3313,8 @@ var hasChanged = (next, current) => {
3260
3313
 
3261
3314
  // src/controls/size-control/ui/size-input.tsx
3262
3315
  var React58 = __toESM(require("react"));
3263
- var import_react32 = require("react");
3264
- var SizeInput2 = (0, import_react32.forwardRef)(
3316
+ var import_react33 = require("react");
3317
+ var SizeInput2 = (0, import_react33.forwardRef)(
3265
3318
  ({
3266
3319
  id,
3267
3320
  type,
@@ -3305,7 +3358,7 @@ var getCursorStyle = (readOnly) => ({
3305
3358
 
3306
3359
  // src/controls/size-control/ui/unit-selector.tsx
3307
3360
  var React59 = __toESM(require("react"));
3308
- var import_react33 = require("react");
3361
+ var import_react34 = require("react");
3309
3362
  var import_editor_ui5 = require("@elementor/editor-ui");
3310
3363
  var import_ui43 = require("@elementor/ui");
3311
3364
  var menuItemContentStyles = {
@@ -3324,7 +3377,7 @@ var UnitSelector = ({
3324
3377
  }) => {
3325
3378
  const popupState = (0, import_ui43.usePopupState)({
3326
3379
  variant: "popover",
3327
- popupId: (0, import_react33.useId)()
3380
+ popupId: (0, import_react34.useId)()
3328
3381
  });
3329
3382
  const handleMenuItemClick = (option) => {
3330
3383
  onSelect(option);
@@ -3449,15 +3502,15 @@ var shouldHighlightUnit = (value) => {
3449
3502
 
3450
3503
  // src/controls/size-control/ui/text-field-popover.tsx
3451
3504
  var React61 = __toESM(require("react"));
3452
- var import_react34 = require("react");
3505
+ var import_react35 = require("react");
3453
3506
  var import_editor_ui6 = require("@elementor/editor-ui");
3454
3507
  var import_icons11 = require("@elementor/icons");
3455
3508
  var import_ui45 = require("@elementor/ui");
3456
3509
  var import_i18n19 = require("@wordpress/i18n");
3457
3510
  var SIZE7 = "tiny";
3458
3511
  var TextFieldPopover2 = ({ popupState, anchorRef, value, onChange, onClose }) => {
3459
- const inputRef = (0, import_react34.useRef)(null);
3460
- (0, import_react34.useEffect)(() => {
3512
+ const inputRef = (0, import_react35.useRef)(null);
3513
+ (0, import_react35.useEffect)(() => {
3461
3514
  if (popupState.isOpen) {
3462
3515
  requestAnimationFrame(() => {
3463
3516
  if (inputRef.current) {
@@ -3521,10 +3574,10 @@ var TextFieldPopover2 = ({ popupState, anchorRef, value, onChange, onClose }) =>
3521
3574
  // src/controls/size-control/size-component.tsx
3522
3575
  var SizeComponent = ({ anchorRef, SizeFieldWrapper = React62.Fragment, ...sizeFieldProps }) => {
3523
3576
  const popupState = (0, import_ui46.usePopupState)({ variant: "popover" });
3524
- const activeBreakpoint = (0, import_editor_responsive2.useActiveBreakpoint)();
3577
+ const activeBreakpoint = (0, import_editor_responsive3.useActiveBreakpoint)();
3525
3578
  const isCustomUnit = sizeFieldProps?.value?.unit === EXTENDED_UNITS.custom;
3526
3579
  const hasCustomUnitOption = sizeFieldProps.units.includes(EXTENDED_UNITS.custom);
3527
- (0, import_react35.useEffect)(() => {
3580
+ (0, import_react36.useEffect)(() => {
3528
3581
  if (popupState && popupState.isOpen) {
3529
3582
  popupState.close();
3530
3583
  }
@@ -3661,7 +3714,7 @@ var UnstableSizeControl = createControl(
3661
3714
  placeholder: boundPropPlaceholder,
3662
3715
  restoreValue
3663
3716
  } = useBoundProp(import_editor_props21.sizePropTypeUtil);
3664
- const lastNonAutoValue = (0, import_react36.useRef)(null);
3717
+ const lastNonAutoValue = (0, import_react37.useRef)(null);
3665
3718
  const { sizeValue, placeholder } = resolveBoundPropValue(
3666
3719
  value ?? lastNonAutoValue.current,
3667
3720
  boundPropPlaceholder,
@@ -3718,7 +3771,7 @@ var isTransitioningFromExtendedUnit = (nextValue, previousValue) => {
3718
3771
 
3719
3772
  // src/controls/linked-dimensions-control.tsx
3720
3773
  var LinkedDimensionsControl = ({ label, isSiteRtl = false, min }) => {
3721
- const gridRowRefs = [(0, import_react37.useRef)(null), (0, import_react37.useRef)(null)];
3774
+ const gridRowRefs = [(0, import_react38.useRef)(null), (0, import_react38.useRef)(null)];
3722
3775
  const { disabled: sizeDisabled } = useBoundProp(import_editor_props22.sizePropTypeUtil);
3723
3776
  const {
3724
3777
  value: dimensionsValue,
@@ -3737,10 +3790,10 @@ var LinkedDimensionsControl = ({ label, isSiteRtl = false, min }) => {
3737
3790
  }
3738
3791
  return true;
3739
3792
  };
3740
- const [isLinked, setIsLinked] = (0, import_react37.useState)(() => inferIsLinked());
3741
- const activeBreakpoint = (0, import_editor_responsive3.useActiveBreakpoint)();
3793
+ const [isLinked, setIsLinked] = (0, import_react38.useState)(() => inferIsLinked());
3794
+ const activeBreakpoint = (0, import_editor_responsive4.useActiveBreakpoint)();
3742
3795
  const isCurrentlyDimensions = import_editor_props22.dimensionsPropTypeUtil.isValid(masterValue ?? masterPlaceholder);
3743
- (0, import_react37.useLayoutEffect)(() => {
3796
+ (0, import_react38.useLayoutEffect)(() => {
3744
3797
  setIsLinked(inferIsLinked);
3745
3798
  }, [activeBreakpoint, isCurrentlyDimensions]);
3746
3799
  const onLinkToggle = () => {
@@ -3911,7 +3964,7 @@ function getCssDimensionProps(label, isSiteRtl) {
3911
3964
 
3912
3965
  // src/controls/font-family-control/font-family-control.tsx
3913
3966
  var React66 = __toESM(require("react"));
3914
- var import_react39 = require("react");
3967
+ var import_react40 = require("react");
3915
3968
  var import_editor_props23 = require("@elementor/editor-props");
3916
3969
  var import_icons13 = require("@elementor/icons");
3917
3970
  var import_ui49 = require("@elementor/ui");
@@ -3919,7 +3972,7 @@ var import_i18n22 = require("@wordpress/i18n");
3919
3972
 
3920
3973
  // src/components/item-selector.tsx
3921
3974
  var React65 = __toESM(require("react"));
3922
- var import_react38 = require("react");
3975
+ var import_react39 = require("react");
3923
3976
  var import_editor_ui7 = require("@elementor/editor-ui");
3924
3977
  var import_ui48 = require("@elementor/ui");
3925
3978
  var import_utils3 = require("@elementor/utils");
@@ -3958,7 +4011,7 @@ var ItemSelector = ({
3958
4011
  footer,
3959
4012
  categoryItemContentTemplate
3960
4013
  }) => {
3961
- const [searchValue, setSearchValue] = (0, import_react38.useState)("");
4014
+ const [searchValue, setSearchValue] = (0, import_react39.useState)("");
3962
4015
  const filteredItemsList = useFilteredItemsList(itemsList, searchValue, disabledItems);
3963
4016
  const IconComponent = icon;
3964
4017
  const handleSearch = (value) => {
@@ -4056,7 +4109,7 @@ var ItemList = ({
4056
4109
  }
4057
4110
  });
4058
4111
  }, 100);
4059
- const memoizedItemStyle = (0, import_react38.useCallback)((item) => itemStyle(item), [itemStyle]);
4112
+ const memoizedItemStyle = (0, import_react39.useCallback)((item) => itemStyle(item), [itemStyle]);
4060
4113
  return /* @__PURE__ */ React65.createElement(
4061
4114
  import_editor_ui7.PopoverMenuList,
4062
4115
  {
@@ -4072,8 +4125,8 @@ var ItemList = ({
4072
4125
  );
4073
4126
  };
4074
4127
  var useDebounce = (fn, delay) => {
4075
- const [debouncedFn] = (0, import_react38.useState)(() => (0, import_utils3.debounce)(fn, delay));
4076
- (0, import_react38.useEffect)(() => () => debouncedFn.cancel(), [debouncedFn]);
4128
+ const [debouncedFn] = (0, import_react39.useState)(() => (0, import_utils3.debounce)(fn, delay));
4129
+ (0, import_react39.useEffect)(() => () => debouncedFn.cancel(), [debouncedFn]);
4077
4130
  return debouncedFn;
4078
4131
  };
4079
4132
 
@@ -4094,7 +4147,7 @@ var FontFamilyControl = createControl(
4094
4147
  } = useBoundProp(import_editor_props23.stringPropTypeUtil);
4095
4148
  const popoverState = (0, import_ui49.usePopupState)({ variant: "popover" });
4096
4149
  const isShowingPlaceholder = !fontFamily && placeholder;
4097
- const mapFontSubs = (0, import_react39.useMemo)(() => {
4150
+ const mapFontSubs = (0, import_react40.useMemo)(() => {
4098
4151
  return fontFamilies.map(({ label, fonts }) => ({
4099
4152
  label,
4100
4153
  items: fonts
@@ -4175,7 +4228,7 @@ var UrlControl = createControl(
4175
4228
 
4176
4229
  // src/controls/link-control.tsx
4177
4230
  var React72 = __toESM(require("react"));
4178
- var import_react42 = require("react");
4231
+ var import_react43 = require("react");
4179
4232
  var import_editor_elements2 = require("@elementor/editor-elements");
4180
4233
  var import_editor_props27 = require("@elementor/editor-props");
4181
4234
  var import_icons17 = require("@elementor/icons");
@@ -4249,7 +4302,7 @@ var RestrictedLinkInfotip = ({
4249
4302
 
4250
4303
  // src/controls/query-control.tsx
4251
4304
  var React70 = __toESM(require("react"));
4252
- var import_react41 = require("react");
4305
+ var import_react42 = require("react");
4253
4306
  var import_editor_props25 = require("@elementor/editor-props");
4254
4307
  var import_http_client2 = require("@elementor/http-client");
4255
4308
  var import_icons16 = require("@elementor/icons");
@@ -4258,10 +4311,10 @@ var import_i18n24 = require("@wordpress/i18n");
4258
4311
 
4259
4312
  // src/components/autocomplete.tsx
4260
4313
  var React69 = __toESM(require("react"));
4261
- var import_react40 = require("react");
4314
+ var import_react41 = require("react");
4262
4315
  var import_icons15 = require("@elementor/icons");
4263
4316
  var import_ui52 = require("@elementor/ui");
4264
- var Autocomplete2 = (0, import_react40.forwardRef)((props, ref) => {
4317
+ var Autocomplete2 = (0, import_react41.forwardRef)((props, ref) => {
4265
4318
  const {
4266
4319
  options,
4267
4320
  onOptionChange,
@@ -4393,7 +4446,7 @@ var QueryControl = createControl((props) => {
4393
4446
  onSetValue,
4394
4447
  ariaLabel
4395
4448
  } = props || {};
4396
- const [options, setOptions] = (0, import_react41.useState)(
4449
+ const [options, setOptions] = (0, import_react42.useState)(
4397
4450
  generateFirstLoadedOption(queryValue)
4398
4451
  );
4399
4452
  const onOptionChange = (newValue) => {
@@ -4427,7 +4480,7 @@ var QueryControl = createControl((props) => {
4427
4480
  }
4428
4481
  debounceFetch({ ...params, term: newValue });
4429
4482
  };
4430
- const debounceFetch = (0, import_react41.useMemo)(
4483
+ const debounceFetch = (0, import_react42.useMemo)(
4431
4484
  () => (0, import_utils4.debounce)(
4432
4485
  (queryParams) => fetchOptions(url, queryParams).then((newOptions) => {
4433
4486
  setOptions(formatOptions(newOptions));
@@ -4511,7 +4564,7 @@ var LinkControl = createControl((props) => {
4511
4564
  const { value, path, setValue, ...propContext } = useBoundProp(import_editor_props27.linkPropTypeUtil);
4512
4565
  const linkPlaceholder = propContext.placeholder;
4513
4566
  const [linkSessionValue, setLinkSessionValue] = (0, import_session.useSessionStorage)(path.join("/"));
4514
- const [isActive, setIsActive] = (0, import_react42.useState)(!!value || !!linkPlaceholder);
4567
+ const [isActive, setIsActive] = (0, import_react43.useState)(!!value || !!linkPlaceholder);
4515
4568
  const {
4516
4569
  allowCustomValues = true,
4517
4570
  queryOptions,
@@ -4521,11 +4574,11 @@ var LinkControl = createControl((props) => {
4521
4574
  label = (0, import_i18n25.__)("Link", "elementor"),
4522
4575
  ariaLabel
4523
4576
  } = props || {};
4524
- const [linkInLinkRestriction, setLinkInLinkRestriction] = (0, import_react42.useState)(
4577
+ const [linkInLinkRestriction, setLinkInLinkRestriction] = (0, import_react43.useState)(
4525
4578
  (0, import_editor_elements2.getLinkInLinkRestriction)(elementId, value ?? linkPlaceholder)
4526
4579
  );
4527
4580
  const shouldDisableAddingLink = !isActive && linkInLinkRestriction.shouldRestrict;
4528
- const debouncedCheckRestriction = (0, import_react42.useMemo)(
4581
+ const debouncedCheckRestriction = (0, import_react43.useMemo)(
4529
4582
  () => (0, import_utils5.debounce)(() => {
4530
4583
  const newRestriction = (0, import_editor_elements2.getLinkInLinkRestriction)(elementId, value ?? linkPlaceholder);
4531
4584
  if (newRestriction.shouldRestrict && isActive && !linkPlaceholder) {
@@ -4535,7 +4588,7 @@ var LinkControl = createControl((props) => {
4535
4588
  }, 300),
4536
4589
  [elementId, isActive, value, linkPlaceholder]
4537
4590
  );
4538
- (0, import_react42.useEffect)(() => {
4591
+ (0, import_react43.useEffect)(() => {
4539
4592
  debouncedCheckRestriction();
4540
4593
  const handleInlineLinkChanged = (event) => {
4541
4594
  const customEvent = event;
@@ -4715,14 +4768,14 @@ var HtmlTagControl = createControl((props) => {
4715
4768
 
4716
4769
  // src/controls/gap-control.tsx
4717
4770
  var React75 = __toESM(require("react"));
4718
- var import_react43 = require("react");
4771
+ var import_react44 = require("react");
4719
4772
  var import_editor_props29 = require("@elementor/editor-props");
4720
- var import_editor_responsive4 = require("@elementor/editor-responsive");
4773
+ var import_editor_responsive5 = require("@elementor/editor-responsive");
4721
4774
  var import_icons18 = require("@elementor/icons");
4722
4775
  var import_ui58 = require("@elementor/ui");
4723
4776
  var import_i18n27 = require("@wordpress/i18n");
4724
4777
  var GapControl = ({ label }) => {
4725
- const stackRef = (0, import_react43.useRef)(null);
4778
+ const stackRef = (0, import_react44.useRef)(null);
4726
4779
  const { disabled: sizeDisabled } = useBoundProp(import_editor_props29.sizePropTypeUtil);
4727
4780
  const {
4728
4781
  value: directionValue,
@@ -4741,10 +4794,10 @@ var GapControl = ({ label }) => {
4741
4794
  }
4742
4795
  return true;
4743
4796
  };
4744
- const [isLinked, setIsLinked] = (0, import_react43.useState)(() => inferIsLinked());
4797
+ const [isLinked, setIsLinked] = (0, import_react44.useState)(() => inferIsLinked());
4745
4798
  const isCurrentlyDirection = import_editor_props29.layoutDirectionPropTypeUtil.isValid(masterValue ?? masterPlaceholder);
4746
- const activeBreakpoint = (0, import_editor_responsive4.useActiveBreakpoint)();
4747
- (0, import_react43.useLayoutEffect)(() => {
4799
+ const activeBreakpoint = (0, import_editor_responsive5.useActiveBreakpoint)();
4800
+ (0, import_react44.useLayoutEffect)(() => {
4748
4801
  setIsLinked(inferIsLinked());
4749
4802
  }, [activeBreakpoint, isCurrentlyDirection]);
4750
4803
  const onLinkToggle = () => {
@@ -4837,7 +4890,7 @@ var Control4 = ({
4837
4890
 
4838
4891
  // src/controls/aspect-ratio-control.tsx
4839
4892
  var React76 = __toESM(require("react"));
4840
- var import_react44 = require("react");
4893
+ var import_react45 = require("react");
4841
4894
  var import_editor_props30 = require("@elementor/editor-props");
4842
4895
  var import_editor_ui10 = require("@elementor/editor-ui");
4843
4896
  var import_icons19 = require("@elementor/icons");
@@ -4864,13 +4917,13 @@ var AspectRatioControl = createControl(({ label }) => {
4864
4917
  const aspectRatioValue = currentPropValue ?? externalPlaceholder;
4865
4918
  const isCustomSelected = aspectRatioValue && !RATIO_OPTIONS.some((option) => option.value === aspectRatioValue);
4866
4919
  const [initialWidth, initialHeight] = isCustomSelected ? aspectRatioValue.split("/") : ["", ""];
4867
- const [isCustom, setIsCustom] = (0, import_react44.useState)(isCustomSelected);
4868
- const [customWidth, setCustomWidth] = (0, import_react44.useState)(initialWidth);
4869
- const [customHeight, setCustomHeight] = (0, import_react44.useState)(initialHeight);
4870
- const [selectedValue, setSelectedValue] = (0, import_react44.useState)(
4920
+ const [isCustom, setIsCustom] = (0, import_react45.useState)(isCustomSelected);
4921
+ const [customWidth, setCustomWidth] = (0, import_react45.useState)(initialWidth);
4922
+ const [customHeight, setCustomHeight] = (0, import_react45.useState)(initialHeight);
4923
+ const [selectedValue, setSelectedValue] = (0, import_react45.useState)(
4871
4924
  isCustomSelected ? CUSTOM_RATIO : aspectRatioValue || ""
4872
4925
  );
4873
- (0, import_react44.useEffect)(() => {
4926
+ (0, import_react45.useEffect)(() => {
4874
4927
  const isCustomValue = aspectRatioValue && !RATIO_OPTIONS.some((option) => option.value === aspectRatioValue);
4875
4928
  if (isCustomValue) {
4876
4929
  const [width, height] = aspectRatioValue.split("/");
@@ -4957,7 +5010,7 @@ var AspectRatioControl = createControl(({ label }) => {
4957
5010
 
4958
5011
  // src/controls/svg-media-control.tsx
4959
5012
  var React78 = __toESM(require("react"));
4960
- var import_react46 = require("react");
5013
+ var import_react47 = require("react");
4961
5014
  var import_editor_current_user = require("@elementor/editor-current-user");
4962
5015
  var import_editor_props31 = require("@elementor/editor-props");
4963
5016
  var import_icons20 = require("@elementor/icons");
@@ -4967,7 +5020,7 @@ var import_i18n30 = require("@wordpress/i18n");
4967
5020
 
4968
5021
  // src/components/enable-unfiltered-modal.tsx
4969
5022
  var React77 = __toESM(require("react"));
4970
- var import_react45 = require("react");
5023
+ var import_react46 = require("react");
4971
5024
  var import_ui60 = require("@elementor/ui");
4972
5025
  var import_i18n29 = require("@wordpress/i18n");
4973
5026
  var ADMIN_TITLE_TEXT = (0, import_i18n29.__)("Enable Unfiltered Uploads", "elementor");
@@ -4983,7 +5036,7 @@ var ADMIN_FAILED_CONTENT_TEXT_PT2 = (0, import_i18n29.__)(
4983
5036
  var WAIT_FOR_CLOSE_TIMEOUT_MS = 300;
4984
5037
  var EnableUnfilteredModal = (props) => {
4985
5038
  const { mutateAsync, isPending } = useUpdateUnfilteredFilesUpload();
4986
- const [isError, setIsError] = (0, import_react45.useState)(false);
5039
+ const [isError, setIsError] = (0, import_react46.useState)(false);
4987
5040
  const onClose = (enabled) => {
4988
5041
  props.onClose(enabled);
4989
5042
  setTimeout(() => setIsError(false), WAIT_FOR_CLOSE_TIMEOUT_MS);
@@ -5047,7 +5100,7 @@ var SvgMediaControl = createControl(() => {
5047
5100
  const { data: attachment, isFetching } = (0, import_wp_media2.useWpMediaAttachment)(id?.value || null);
5048
5101
  const src = attachment?.url ?? url?.value ?? null;
5049
5102
  const { data: allowSvgUpload } = useUnfilteredFilesUpload();
5050
- const [unfilteredModalOpenState, setUnfilteredModalOpenState] = (0, import_react46.useState)(false);
5103
+ const [unfilteredModalOpenState, setUnfilteredModalOpenState] = (0, import_react47.useState)(false);
5051
5104
  const { isAdmin } = (0, import_editor_current_user.useCurrentUserCapabilities)();
5052
5105
  const { open } = (0, import_wp_media2.useWpMediaFrame)({
5053
5106
  mediaTypes: ["svg"],
@@ -5318,7 +5371,7 @@ var BackgroundImageOverlayAttachment = () => {
5318
5371
 
5319
5372
  // src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-position.tsx
5320
5373
  var React82 = __toESM(require("react"));
5321
- var import_react47 = require("react");
5374
+ var import_react48 = require("react");
5322
5375
  var import_editor_props34 = require("@elementor/editor-props");
5323
5376
  var import_editor_ui11 = require("@elementor/editor-ui");
5324
5377
  var import_icons23 = require("@elementor/icons");
@@ -5340,7 +5393,7 @@ var BackgroundImageOverlayPosition = () => {
5340
5393
  const backgroundImageOffsetContext = useBoundProp(import_editor_props34.backgroundImagePositionOffsetPropTypeUtil);
5341
5394
  const stringPropContext = useBoundProp(import_editor_props34.stringPropTypeUtil);
5342
5395
  const isCustom = !!backgroundImageOffsetContext.value;
5343
- const rowRef = (0, import_react47.useRef)(null);
5396
+ const rowRef = (0, import_react48.useRef)(null);
5344
5397
  const handlePositionChange = (event) => {
5345
5398
  const value = event.target.value || null;
5346
5399
  if (value === "custom") {
@@ -5413,7 +5466,7 @@ var BackgroundImageOverlayRepeat = () => {
5413
5466
 
5414
5467
  // src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-size.tsx
5415
5468
  var React84 = __toESM(require("react"));
5416
- var import_react48 = require("react");
5469
+ var import_react49 = require("react");
5417
5470
  var import_editor_props35 = require("@elementor/editor-props");
5418
5471
  var import_icons25 = require("@elementor/icons");
5419
5472
  var import_ui67 = require("@elementor/ui");
@@ -5448,7 +5501,7 @@ var BackgroundImageOverlaySize = () => {
5448
5501
  const backgroundImageScaleContext = useBoundProp(import_editor_props35.backgroundImageSizeScalePropTypeUtil);
5449
5502
  const stringPropContext = useBoundProp(import_editor_props35.stringPropTypeUtil);
5450
5503
  const isCustom = !!backgroundImageScaleContext.value;
5451
- const rowRef = (0, import_react48.useRef)(null);
5504
+ const rowRef = (0, import_react49.useRef)(null);
5452
5505
  const handleSizeChange = (size) => {
5453
5506
  if (size === "custom") {
5454
5507
  backgroundImageScaleContext.setValue({ width: null, height: null });
@@ -5483,7 +5536,7 @@ var BackgroundImageOverlaySize = () => {
5483
5536
  };
5484
5537
 
5485
5538
  // src/controls/background-control/background-overlay/use-background-tabs-history.ts
5486
- var import_react49 = require("react");
5539
+ var import_react50 = require("react");
5487
5540
  var import_editor_props36 = require("@elementor/editor-props");
5488
5541
  var import_ui68 = require("@elementor/ui");
5489
5542
  var useBackgroundTabsHistory = ({
@@ -5504,7 +5557,7 @@ var useBackgroundTabsHistory = ({
5504
5557
  return "image";
5505
5558
  };
5506
5559
  const { getTabsProps, getTabProps, getTabPanelProps } = (0, import_ui68.useTabs)(getCurrentOverlayType());
5507
- const valuesHistory = (0, import_react49.useRef)({
5560
+ const valuesHistory = (0, import_react50.useRef)({
5508
5561
  image: initialBackgroundImageOverlay,
5509
5562
  color: initialBackgroundColorOverlay2,
5510
5563
  gradient: initialBackgroundGradientOverlay2
@@ -5749,7 +5802,7 @@ var BackgroundClipField = () => {
5749
5802
 
5750
5803
  // src/controls/repeatable-control.tsx
5751
5804
  var React87 = __toESM(require("react"));
5752
- var import_react50 = require("react");
5805
+ var import_react51 = require("react");
5753
5806
  var import_editor_props39 = require("@elementor/editor-props");
5754
5807
  var import_ui71 = require("@elementor/ui");
5755
5808
  var PLACEHOLDER_REGEX = /\$\{([^}]+)\}/g;
@@ -5770,11 +5823,11 @@ var RepeatableControl = createControl(
5770
5823
  if (!childPropTypeUtil) {
5771
5824
  return null;
5772
5825
  }
5773
- const childArrayPropTypeUtil2 = (0, import_react50.useMemo)(
5826
+ const childArrayPropTypeUtil2 = (0, import_react51.useMemo)(
5774
5827
  () => (0, import_editor_props39.createArrayPropUtils)(childPropTypeUtil.key, childPropTypeUtil.schema, propKey),
5775
5828
  [childPropTypeUtil.key, childPropTypeUtil.schema, propKey]
5776
5829
  );
5777
- const contextValue = (0, import_react50.useMemo)(
5830
+ const contextValue = (0, import_react51.useMemo)(
5778
5831
  () => ({
5779
5832
  ...childControlConfig,
5780
5833
  placeholder: placeholder || "",
@@ -5906,7 +5959,7 @@ var getAllProperties = (pattern) => {
5906
5959
 
5907
5960
  // src/controls/key-value-control.tsx
5908
5961
  var React88 = __toESM(require("react"));
5909
- var import_react51 = require("react");
5962
+ var import_react52 = require("react");
5910
5963
  var import_editor_props40 = require("@elementor/editor-props");
5911
5964
  var import_ui72 = require("@elementor/ui");
5912
5965
  var import_i18n38 = require("@wordpress/i18n");
@@ -5933,9 +5986,9 @@ var getInitialFieldValue = (fieldValue) => {
5933
5986
  };
5934
5987
  var KeyValueControl = createControl((props = {}) => {
5935
5988
  const { value, setValue, ...propContext } = useBoundProp(import_editor_props40.keyValuePropTypeUtil);
5936
- const [keyError, setKeyError] = (0, import_react51.useState)("");
5937
- const [valueError, setValueError] = (0, import_react51.useState)("");
5938
- const [sessionState, setSessionState] = (0, import_react51.useState)({
5989
+ const [keyError, setKeyError] = (0, import_react52.useState)("");
5990
+ const [valueError, setValueError] = (0, import_react52.useState)("");
5991
+ const [sessionState, setSessionState] = (0, import_react52.useState)({
5939
5992
  key: getInitialFieldValue(value?.key),
5940
5993
  value: getInitialFieldValue(value?.value)
5941
5994
  });
@@ -5945,7 +5998,7 @@ var KeyValueControl = createControl((props = {}) => {
5945
5998
  keyHelper: void 0,
5946
5999
  valueHelper: void 0
5947
6000
  };
5948
- const [keyRegex, valueRegex, errMsg] = (0, import_react51.useMemo)(
6001
+ const [keyRegex, valueRegex, errMsg] = (0, import_react52.useMemo)(
5949
6002
  () => [
5950
6003
  props.regexKey ? new RegExp(props.regexKey) : void 0,
5951
6004
  props.regexValue ? new RegExp(props.regexValue) : void 0,
@@ -6074,7 +6127,7 @@ var PositionControl = () => {
6074
6127
 
6075
6128
  // src/controls/transform-control/transform-repeater-control.tsx
6076
6129
  var React102 = __toESM(require("react"));
6077
- var import_react59 = require("react");
6130
+ var import_react60 = require("react");
6078
6131
  var import_editor_props50 = require("@elementor/editor-props");
6079
6132
  var import_icons33 = require("@elementor/icons");
6080
6133
  var import_ui86 = require("@elementor/ui");
@@ -6133,7 +6186,7 @@ var import_i18n44 = require("@wordpress/i18n");
6133
6186
 
6134
6187
  // src/controls/transform-control/functions/move.tsx
6135
6188
  var React91 = __toESM(require("react"));
6136
- var import_react52 = require("react");
6189
+ var import_react53 = require("react");
6137
6190
  var import_editor_props43 = require("@elementor/editor-props");
6138
6191
  var import_icons27 = require("@elementor/icons");
6139
6192
  var import_ui75 = require("@elementor/ui");
@@ -6180,7 +6233,7 @@ var moveAxisControls = [
6180
6233
  ];
6181
6234
  var Move = () => {
6182
6235
  const context = useBoundProp(import_editor_props43.moveTransformPropTypeUtil);
6183
- const rowRefs = [(0, import_react52.useRef)(null), (0, import_react52.useRef)(null), (0, import_react52.useRef)(null)];
6236
+ const rowRefs = [(0, import_react53.useRef)(null), (0, import_react53.useRef)(null), (0, import_react53.useRef)(null)];
6184
6237
  return /* @__PURE__ */ React91.createElement(import_ui75.Grid, { container: true, spacing: 1.5 }, /* @__PURE__ */ React91.createElement(PropProvider, { ...context }, /* @__PURE__ */ React91.createElement(PropKeyProvider, { bind: TransformFunctionKeys.move }, moveAxisControls.map((control, index) => /* @__PURE__ */ React91.createElement(
6185
6238
  AxisRow,
6186
6239
  {
@@ -6195,7 +6248,7 @@ var Move = () => {
6195
6248
 
6196
6249
  // src/controls/transform-control/functions/rotate.tsx
6197
6250
  var React92 = __toESM(require("react"));
6198
- var import_react53 = require("react");
6251
+ var import_react54 = require("react");
6199
6252
  var import_editor_props44 = require("@elementor/editor-props");
6200
6253
  var import_icons28 = require("@elementor/icons");
6201
6254
  var import_ui76 = require("@elementor/ui");
@@ -6220,7 +6273,7 @@ var rotateAxisControls = [
6220
6273
  var rotateUnits = ["deg", "rad", "grad", "turn"];
6221
6274
  var Rotate = () => {
6222
6275
  const context = useBoundProp(import_editor_props44.rotateTransformPropTypeUtil);
6223
- const rowRefs = [(0, import_react53.useRef)(null), (0, import_react53.useRef)(null), (0, import_react53.useRef)(null)];
6276
+ const rowRefs = [(0, import_react54.useRef)(null), (0, import_react54.useRef)(null), (0, import_react54.useRef)(null)];
6224
6277
  return /* @__PURE__ */ React92.createElement(import_ui76.Grid, { container: true, spacing: 1.5 }, /* @__PURE__ */ React92.createElement(PropProvider, { ...context }, /* @__PURE__ */ React92.createElement(PropKeyProvider, { bind: TransformFunctionKeys.rotate }, rotateAxisControls.map((control, index) => /* @__PURE__ */ React92.createElement(
6225
6278
  AxisRow,
6226
6279
  {
@@ -6234,7 +6287,7 @@ var Rotate = () => {
6234
6287
 
6235
6288
  // src/controls/transform-control/functions/scale.tsx
6236
6289
  var React94 = __toESM(require("react"));
6237
- var import_react54 = require("react");
6290
+ var import_react55 = require("react");
6238
6291
  var import_editor_props45 = require("@elementor/editor-props");
6239
6292
  var import_icons29 = require("@elementor/icons");
6240
6293
  var import_ui78 = require("@elementor/ui");
@@ -6267,13 +6320,13 @@ var scaleAxisControls = [
6267
6320
  ];
6268
6321
  var Scale = () => {
6269
6322
  const context = useBoundProp(import_editor_props45.scaleTransformPropTypeUtil);
6270
- const rowRefs = [(0, import_react54.useRef)(null), (0, import_react54.useRef)(null), (0, import_react54.useRef)(null)];
6323
+ const rowRefs = [(0, import_react55.useRef)(null), (0, import_react55.useRef)(null), (0, import_react55.useRef)(null)];
6271
6324
  return /* @__PURE__ */ React94.createElement(import_ui78.Grid, { container: true, spacing: 1.5 }, /* @__PURE__ */ React94.createElement(PropProvider, { ...context }, /* @__PURE__ */ React94.createElement(PropKeyProvider, { bind: TransformFunctionKeys.scale }, scaleAxisControls.map((control, index) => /* @__PURE__ */ React94.createElement(ScaleAxisRow, { key: control.bind, ...control, anchorRef: rowRefs[index] })))));
6272
6325
  };
6273
6326
 
6274
6327
  // src/controls/transform-control/functions/skew.tsx
6275
6328
  var React95 = __toESM(require("react"));
6276
- var import_react55 = require("react");
6329
+ var import_react56 = require("react");
6277
6330
  var import_editor_props46 = require("@elementor/editor-props");
6278
6331
  var import_icons30 = require("@elementor/icons");
6279
6332
  var import_ui79 = require("@elementor/ui");
@@ -6293,7 +6346,7 @@ var skewAxisControls = [
6293
6346
  var skewUnits = ["deg", "rad", "grad", "turn"];
6294
6347
  var Skew = () => {
6295
6348
  const context = useBoundProp(import_editor_props46.skewTransformPropTypeUtil);
6296
- const rowRefs = [(0, import_react55.useRef)(null), (0, import_react55.useRef)(null), (0, import_react55.useRef)(null)];
6349
+ const rowRefs = [(0, import_react56.useRef)(null), (0, import_react56.useRef)(null), (0, import_react56.useRef)(null)];
6297
6350
  return /* @__PURE__ */ React95.createElement(import_ui79.Grid, { container: true, spacing: 1.5 }, /* @__PURE__ */ React95.createElement(PropProvider, { ...context }, /* @__PURE__ */ React95.createElement(PropKeyProvider, { bind: TransformFunctionKeys.skew }, skewAxisControls.map((control, index) => /* @__PURE__ */ React95.createElement(
6298
6351
  AxisRow,
6299
6352
  {
@@ -6306,7 +6359,7 @@ var Skew = () => {
6306
6359
  };
6307
6360
 
6308
6361
  // src/controls/transform-control/use-transform-tabs-history.tsx
6309
- var import_react56 = require("react");
6362
+ var import_react57 = require("react");
6310
6363
  var import_editor_props47 = require("@elementor/editor-props");
6311
6364
  var import_ui80 = require("@elementor/ui");
6312
6365
  var useTransformTabsHistory = ({
@@ -6333,7 +6386,7 @@ var useTransformTabsHistory = ({
6333
6386
  }
6334
6387
  };
6335
6388
  const { getTabsProps, getTabProps, getTabPanelProps } = (0, import_ui80.useTabs)(getCurrentTransformType());
6336
- const valuesHistory = (0, import_react56.useRef)({
6389
+ const valuesHistory = (0, import_react57.useRef)({
6337
6390
  move: initialMove,
6338
6391
  scale: initialScale,
6339
6392
  rotate: initialRotate,
@@ -6477,7 +6530,7 @@ var import_i18n48 = require("@wordpress/i18n");
6477
6530
 
6478
6531
  // src/controls/transform-control/transform-base-controls/children-perspective-control.tsx
6479
6532
  var React99 = __toESM(require("react"));
6480
- var import_react57 = require("react");
6533
+ var import_react58 = require("react");
6481
6534
  var import_editor_props48 = require("@elementor/editor-props");
6482
6535
  var import_ui83 = require("@elementor/ui");
6483
6536
  var import_i18n46 = require("@wordpress/i18n");
@@ -6509,13 +6562,13 @@ var PerspectiveOriginControlProvider = () => {
6509
6562
  return /* @__PURE__ */ React99.createElement(PropProvider, { ...context }, CHILDREN_PERSPECTIVE_FIELDS.map((control) => /* @__PURE__ */ React99.createElement(PropKeyProvider, { bind: control.bind, key: control.bind }, /* @__PURE__ */ React99.createElement(ControlFields, { control }))));
6510
6563
  };
6511
6564
  var ControlFields = ({ control }) => {
6512
- const rowRef = (0, import_react57.useRef)(null);
6565
+ const rowRef = (0, import_react58.useRef)(null);
6513
6566
  return /* @__PURE__ */ React99.createElement(PopoverGridContainer, { ref: rowRef }, /* @__PURE__ */ React99.createElement(import_ui83.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React99.createElement(ControlFormLabel, null, control.label)), /* @__PURE__ */ React99.createElement(import_ui83.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React99.createElement(SizeControl, { variant: "length", units: control.units, anchorRef: rowRef, disableCustom: true })));
6514
6567
  };
6515
6568
 
6516
6569
  // src/controls/transform-control/transform-base-controls/transform-origin-control.tsx
6517
6570
  var React100 = __toESM(require("react"));
6518
- var import_react58 = require("react");
6571
+ var import_react59 = require("react");
6519
6572
  var import_editor_props49 = require("@elementor/editor-props");
6520
6573
  var import_ui84 = require("@elementor/ui");
6521
6574
  var import_i18n47 = require("@wordpress/i18n");
@@ -6543,7 +6596,7 @@ var TransformOriginControl = () => {
6543
6596
  };
6544
6597
  var ControlFields2 = ({ control }) => {
6545
6598
  const context = useBoundProp(import_editor_props49.transformOriginPropTypeUtil);
6546
- const rowRef = (0, import_react58.useRef)(null);
6599
+ const rowRef = (0, import_react59.useRef)(null);
6547
6600
  return /* @__PURE__ */ React100.createElement(PropProvider, { ...context }, /* @__PURE__ */ React100.createElement(PropKeyProvider, { bind: control.bind }, /* @__PURE__ */ React100.createElement(PopoverGridContainer, { ref: rowRef }, /* @__PURE__ */ React100.createElement(import_ui84.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React100.createElement(ControlFormLabel, null, control.label)), /* @__PURE__ */ React100.createElement(import_ui84.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React100.createElement(SizeControl, { variant: "length", units: control.units, anchorRef: rowRef })))));
6548
6601
  };
6549
6602
 
@@ -6591,7 +6644,7 @@ var SIZE10 = "tiny";
6591
6644
  var TransformRepeaterControl = createControl(
6592
6645
  ({ showChildrenPerspective }) => {
6593
6646
  const context = useBoundProp(import_editor_props50.transformPropTypeUtil);
6594
- const headerRef = (0, import_react59.useRef)(null);
6647
+ const headerRef = (0, import_react60.useRef)(null);
6595
6648
  const popupState = (0, import_ui86.usePopupState)({ variant: "popover" });
6596
6649
  return /* @__PURE__ */ React102.createElement(PropProvider, { ...context }, /* @__PURE__ */ React102.createElement(
6597
6650
  TransformSettingsControl,
@@ -6671,7 +6724,7 @@ var TransformBasePopoverTrigger = ({
6671
6724
 
6672
6725
  // src/controls/transition-control/transition-repeater-control.tsx
6673
6726
  var React105 = __toESM(require("react"));
6674
- var import_react62 = require("react");
6727
+ var import_react63 = require("react");
6675
6728
  var import_editor_props53 = require("@elementor/editor-props");
6676
6729
  var import_icons35 = require("@elementor/icons");
6677
6730
  var import_ui89 = require("@elementor/ui");
@@ -6680,15 +6733,15 @@ var import_i18n52 = require("@wordpress/i18n");
6680
6733
 
6681
6734
  // src/controls/selection-size-control.tsx
6682
6735
  var React103 = __toESM(require("react"));
6683
- var import_react60 = require("react");
6736
+ var import_react61 = require("react");
6684
6737
  var import_editor_props51 = require("@elementor/editor-props");
6685
6738
  var import_ui87 = require("@elementor/ui");
6686
6739
  var SelectionSizeControl = createControl(
6687
6740
  ({ selectionLabel, sizeLabel, selectionConfig, sizeConfigMap }) => {
6688
6741
  const { value, setValue, propType } = useBoundProp(import_editor_props51.selectionSizePropTypeUtil);
6689
- const rowRef = (0, import_react60.useRef)(null);
6742
+ const rowRef = (0, import_react61.useRef)(null);
6690
6743
  const sizeFieldId = sizeLabel.replace(/\s+/g, "-").toLowerCase();
6691
- const currentSizeConfig = (0, import_react60.useMemo)(() => {
6744
+ const currentSizeConfig = (0, import_react61.useMemo)(() => {
6692
6745
  switch (value.selection.$$type) {
6693
6746
  case "key-value":
6694
6747
  return sizeConfigMap[value?.selection?.value.value.value || ""];
@@ -6901,7 +6954,7 @@ function subscribeToTransitionEvent() {
6901
6954
 
6902
6955
  // src/controls/transition-control/transition-selector.tsx
6903
6956
  var React104 = __toESM(require("react"));
6904
- var import_react61 = require("react");
6957
+ var import_react62 = require("react");
6905
6958
  var import_editor_props52 = require("@elementor/editor-props");
6906
6959
  var import_editor_ui14 = require("@elementor/editor-ui");
6907
6960
  var import_icons34 = require("@elementor/icons");
@@ -6988,9 +7041,9 @@ var TransitionSelector = ({
6988
7041
  const {
6989
7042
  key: { value: transitionLabel }
6990
7043
  } = value;
6991
- const defaultRef = (0, import_react61.useRef)(null);
7044
+ const defaultRef = (0, import_react62.useRef)(null);
6992
7045
  const popoverState = (0, import_ui88.usePopupState)({ variant: "popover" });
6993
- const disabledCategories = (0, import_react61.useMemo)(() => {
7046
+ const disabledCategories = (0, import_react62.useMemo)(() => {
6994
7047
  return new Set(
6995
7048
  transitionProperties.filter((cat) => cat.properties.some((prop) => prop.isDisabled)).map((cat) => cat.label)
6996
7049
  );
@@ -7216,14 +7269,14 @@ var TransitionRepeaterControl = createControl(
7216
7269
  currentStyleState
7217
7270
  }) => {
7218
7271
  const currentStyleIsNormal = currentStyleState === null;
7219
- const [recentlyUsedList, setRecentlyUsedList] = (0, import_react62.useState)([]);
7272
+ const [recentlyUsedList, setRecentlyUsedList] = (0, import_react63.useState)([]);
7220
7273
  const proInstalled = (0, import_utils7.hasProInstalled)();
7221
7274
  const { value, setValue } = useBoundProp(childArrayPropTypeUtil);
7222
- const { allDisabled: disabledItems, proDisabled: proDisabledItems } = (0, import_react62.useMemo)(
7275
+ const { allDisabled: disabledItems, proDisabled: proDisabledItems } = (0, import_react63.useMemo)(
7223
7276
  () => getDisabledItemLabels(value),
7224
7277
  [value]
7225
7278
  );
7226
- const allowedTransitionSet = (0, import_react62.useMemo)(() => {
7279
+ const allowedTransitionSet = (0, import_react63.useMemo)(() => {
7227
7280
  const set = /* @__PURE__ */ new Set();
7228
7281
  transitionProperties.forEach((category) => {
7229
7282
  category.properties.forEach((prop) => {
@@ -7234,7 +7287,7 @@ var TransitionRepeaterControl = createControl(
7234
7287
  });
7235
7288
  return set;
7236
7289
  }, [proInstalled]);
7237
- (0, import_react62.useEffect)(() => {
7290
+ (0, import_react63.useEffect)(() => {
7238
7291
  if (!value || value.length === 0) {
7239
7292
  return;
7240
7293
  }
@@ -7246,10 +7299,10 @@ var TransitionRepeaterControl = createControl(
7246
7299
  setValue(sanitized);
7247
7300
  }
7248
7301
  }, [allowedTransitionSet]);
7249
- (0, import_react62.useEffect)(() => {
7302
+ (0, import_react63.useEffect)(() => {
7250
7303
  recentlyUsedListGetter().then(setRecentlyUsedList);
7251
7304
  }, [recentlyUsedListGetter]);
7252
- const allPropertiesUsed = (0, import_react62.useMemo)(() => areAllPropertiesUsed(value), [value]);
7305
+ const allPropertiesUsed = (0, import_react63.useMemo)(() => areAllPropertiesUsed(value), [value]);
7253
7306
  const isAddItemDisabled = !currentStyleIsNormal || allPropertiesUsed;
7254
7307
  return /* @__PURE__ */ React105.createElement(
7255
7308
  RepeatableControl,
@@ -7355,14 +7408,14 @@ var DateTimeControl = createControl(({ inputDisabled }) => {
7355
7408
 
7356
7409
  // src/controls/inline-editing-control.tsx
7357
7410
  var React108 = __toESM(require("react"));
7358
- var import_react65 = require("react");
7411
+ var import_react66 = require("react");
7359
7412
  var import_editor_props56 = require("@elementor/editor-props");
7360
7413
  var import_ui92 = require("@elementor/ui");
7361
7414
  var import_utils8 = require("@elementor/utils");
7362
7415
 
7363
7416
  // src/components/inline-editor.tsx
7364
7417
  var React107 = __toESM(require("react"));
7365
- var import_react63 = require("react");
7418
+ var import_react64 = require("react");
7366
7419
  var import_ui91 = require("@elementor/ui");
7367
7420
  var import_extension_bold = __toESM(require("@tiptap/extension-bold"));
7368
7421
  var import_extension_document = __toESM(require("@tiptap/extension-document"));
@@ -7376,7 +7429,7 @@ var import_extension_subscript = __toESM(require("@tiptap/extension-subscript"))
7376
7429
  var import_extension_superscript = __toESM(require("@tiptap/extension-superscript"));
7377
7430
  var import_extension_text = __toESM(require("@tiptap/extension-text"));
7378
7431
  var import_extension_underline = __toESM(require("@tiptap/extension-underline"));
7379
- var import_react64 = require("@tiptap/react");
7432
+ var import_react65 = require("@tiptap/react");
7380
7433
 
7381
7434
  // src/utils/inline-editing.ts
7382
7435
  function isEmpty(value = "") {
@@ -7416,8 +7469,8 @@ var InlineEditor = React107.forwardRef((props, ref) => {
7416
7469
  onSelectionEnd,
7417
7470
  mountElement = null
7418
7471
  } = props;
7419
- const containerRef = (0, import_react63.useRef)(null);
7420
- const onBlurRef = (0, import_react63.useRef)(onBlur);
7472
+ const containerRef = (0, import_react64.useRef)(null);
7473
+ const onBlurRef = (0, import_react64.useRef)(onBlur);
7421
7474
  onBlurRef.current = onBlur;
7422
7475
  const documentContentSettings = !!expectedTag ? "block+" : "inline*";
7423
7476
  const onUpdate = ({ editor: updatedEditor }) => {
@@ -7439,7 +7492,7 @@ var InlineEditor = React107.forwardRef((props, ref) => {
7439
7492
  ...HTMLAttributes,
7440
7493
  class: elementClasses
7441
7494
  });
7442
- const editor = (0, import_react64.useEditor)({
7495
+ const editor = (0, import_react65.useEditor)({
7443
7496
  ...mountElement ? { element: mountElement } : {},
7444
7497
  extensions: [
7445
7498
  import_extension_document.default.extend({
@@ -7511,11 +7564,11 @@ var InlineEditor = React107.forwardRef((props, ref) => {
7511
7564
  if (mountElement) {
7512
7565
  return null;
7513
7566
  }
7514
- return /* @__PURE__ */ React107.createElement(import_ui91.Box, { ref: containerRef, sx, className: wrapperClassName }, /* @__PURE__ */ React107.createElement(import_react64.EditorContent, { ref, editor }));
7567
+ return /* @__PURE__ */ React107.createElement(import_ui91.Box, { ref: containerRef, sx, className: wrapperClassName }, /* @__PURE__ */ React107.createElement(import_react65.EditorContent, { ref, editor }));
7515
7568
  });
7516
7569
  var useOnUpdate = (callback, dependencies) => {
7517
- const hasMounted = (0, import_react63.useRef)(false);
7518
- (0, import_react63.useEffect)(() => {
7570
+ const hasMounted = (0, import_react64.useRef)(false);
7571
+ (0, import_react64.useEffect)(() => {
7519
7572
  if (hasMounted.current) {
7520
7573
  callback();
7521
7574
  } else {
@@ -7534,7 +7587,7 @@ var InlineEditingControl = createControl(
7534
7587
  }) => {
7535
7588
  const { value, setValue, placeholder } = useBoundProp(import_editor_props56.htmlV3PropTypeUtil);
7536
7589
  const content = import_editor_props56.stringPropTypeUtil.extract(value?.content ?? null) ?? "";
7537
- const debouncedParse = (0, import_react65.useMemo)(
7590
+ const debouncedParse = (0, import_react66.useMemo)(
7538
7591
  () => (0, import_utils8.debounce)((html) => {
7539
7592
  const parsed = (0, import_editor_props56.parseHtmlChildren)(html);
7540
7593
  setValue({
@@ -7544,7 +7597,7 @@ var InlineEditingControl = createControl(
7544
7597
  }, CHILDREN_PARSE_DEBOUNCE_MS),
7545
7598
  [setValue]
7546
7599
  );
7547
- const handleChange = (0, import_react65.useCallback)(
7600
+ const handleChange = (0, import_react66.useCallback)(
7548
7601
  (newValue) => {
7549
7602
  const html = newValue ?? "";
7550
7603
  setValue({
@@ -7555,7 +7608,7 @@ var InlineEditingControl = createControl(
7555
7608
  },
7556
7609
  [setValue, value?.children, debouncedParse]
7557
7610
  );
7558
- (0, import_react65.useEffect)(() => () => debouncedParse.cancel(), [debouncedParse]);
7611
+ (0, import_react66.useEffect)(() => () => debouncedParse.cancel(), [debouncedParse]);
7559
7612
  return /* @__PURE__ */ React108.createElement(ControlActions, null, /* @__PURE__ */ React108.createElement(
7560
7613
  import_ui92.Box,
7561
7614
  {
@@ -7757,24 +7810,24 @@ var EmailFormActionControl = createControl(({ toPlaceholder }) => {
7757
7810
 
7758
7811
  // src/components/promotions/display-conditions-control.tsx
7759
7812
  var React111 = __toESM(require("react"));
7760
- var import_react67 = require("react");
7813
+ var import_react68 = require("react");
7761
7814
  var import_icons36 = require("@elementor/icons");
7762
7815
  var import_ui95 = require("@elementor/ui");
7763
7816
  var import_i18n54 = require("@wordpress/i18n");
7764
7817
 
7765
7818
  // src/components/promotions/promotion-trigger.tsx
7766
7819
  var React110 = __toESM(require("react"));
7767
- var import_react66 = require("react");
7820
+ var import_react67 = require("react");
7768
7821
  var import_editor_ui16 = require("@elementor/editor-ui");
7769
7822
  var import_ui94 = require("@elementor/ui");
7770
7823
  function getV4Promotion(key) {
7771
7824
  return window.elementor?.config?.v4Promotions?.[key];
7772
7825
  }
7773
- var PromotionTrigger = (0, import_react66.forwardRef)(
7826
+ var PromotionTrigger = (0, import_react67.forwardRef)(
7774
7827
  ({ promotionKey, children, trackingData }, ref) => {
7775
- const [isOpen, setIsOpen] = (0, import_react66.useState)(false);
7828
+ const [isOpen, setIsOpen] = (0, import_react67.useState)(false);
7776
7829
  const promotion = getV4Promotion(promotionKey);
7777
- const toggle = (0, import_react66.useCallback)(() => {
7830
+ const toggle = (0, import_react67.useCallback)(() => {
7778
7831
  setIsOpen((prev) => {
7779
7832
  if (!prev) {
7780
7833
  trackViewPromotion(trackingData);
@@ -7782,7 +7835,7 @@ var PromotionTrigger = (0, import_react66.forwardRef)(
7782
7835
  return !prev;
7783
7836
  });
7784
7837
  }, [trackingData]);
7785
- (0, import_react66.useImperativeHandle)(ref, () => ({ toggle }), [toggle]);
7838
+ (0, import_react67.useImperativeHandle)(ref, () => ({ toggle }), [toggle]);
7786
7839
  return /* @__PURE__ */ React110.createElement(React110.Fragment, null, promotion && /* @__PURE__ */ React110.createElement(
7787
7840
  import_editor_ui16.PromotionInfotip,
7788
7841
  {
@@ -7816,7 +7869,7 @@ var PromotionTrigger = (0, import_react66.forwardRef)(
7816
7869
  var ARIA_LABEL = (0, import_i18n54.__)("Display Conditions", "elementor");
7817
7870
  var TRACKING_DATA = { target_name: "display_conditions", location_l2: "general" };
7818
7871
  var DisplayConditionsControl = createControl(() => {
7819
- const triggerRef = (0, import_react67.useRef)(null);
7872
+ const triggerRef = (0, import_react68.useRef)(null);
7820
7873
  return /* @__PURE__ */ React111.createElement(
7821
7874
  import_ui95.Stack,
7822
7875
  {
@@ -7848,14 +7901,14 @@ var DisplayConditionsControl = createControl(() => {
7848
7901
 
7849
7902
  // src/components/promotions/attributes-control.tsx
7850
7903
  var React112 = __toESM(require("react"));
7851
- var import_react68 = require("react");
7904
+ var import_react69 = require("react");
7852
7905
  var import_icons37 = require("@elementor/icons");
7853
7906
  var import_ui96 = require("@elementor/ui");
7854
7907
  var import_i18n55 = require("@wordpress/i18n");
7855
7908
  var ARIA_LABEL2 = (0, import_i18n55.__)("Attributes", "elementor");
7856
7909
  var TRACKING_DATA2 = { target_name: "attributes", location_l2: "general" };
7857
7910
  var AttributesControl = createControl(() => {
7858
- const triggerRef = (0, import_react68.useRef)(null);
7911
+ const triggerRef = (0, import_react69.useRef)(null);
7859
7912
  return /* @__PURE__ */ React112.createElement(
7860
7913
  import_ui96.Stack,
7861
7914
  {
@@ -7892,7 +7945,7 @@ var ClearIconButton = ({ tooltipText, onClick, disabled, size = "tiny" }) => /*
7892
7945
 
7893
7946
  // src/components/repeater/repeater.tsx
7894
7947
  var React114 = __toESM(require("react"));
7895
- var import_react69 = require("react");
7948
+ var import_react70 = require("react");
7896
7949
  var import_icons39 = require("@elementor/icons");
7897
7950
  var import_ui98 = require("@elementor/ui");
7898
7951
  var import_i18n56 = require("@wordpress/i18n");
@@ -7913,7 +7966,7 @@ var Repeater3 = ({
7913
7966
  openItem: initialOpenItem = EMPTY_OPEN_ITEM2,
7914
7967
  isSortable = true
7915
7968
  }) => {
7916
- const [openItem, setOpenItem] = (0, import_react69.useState)(initialOpenItem);
7969
+ const [openItem, setOpenItem] = (0, import_react70.useState)(initialOpenItem);
7917
7970
  const uniqueKeys = items2.map(
7918
7971
  (item, index) => isSortable && "getId" in itemSettings ? itemSettings.getId({ item, index }) : String(index)
7919
7972
  );
@@ -8065,10 +8118,11 @@ var RepeaterItem = ({
8065
8118
  wrappedOnPopoverClose
8066
8119
  );
8067
8120
  const triggerProps = (0, import_ui98.bindTrigger)(popoverState);
8121
+ usePopoverDismiss({ isOpen: popoverState.isOpen, onClose: popoverProps.onClose });
8068
8122
  const duplicateLabel = (0, import_i18n56.__)("Duplicate", "elementor");
8069
8123
  const toggleLabel = propDisabled ? (0, import_i18n56.__)("Show", "elementor") : (0, import_i18n56.__)("Hide", "elementor");
8070
8124
  const removeLabel = (0, import_i18n56.__)("Remove", "elementor");
8071
- return /* @__PURE__ */ React114.createElement(React114.Fragment, null, /* @__PURE__ */ React114.createElement(
8125
+ return /* @__PURE__ */ React114.createElement(import_ui98.Box, { sx: { display: "contents" } }, /* @__PURE__ */ React114.createElement(
8072
8126
  RepeaterTag,
8073
8127
  {
8074
8128
  disabled,
@@ -8085,21 +8139,13 @@ var RepeaterItem = ({
8085
8139
  startIcon,
8086
8140
  actions: /* @__PURE__ */ React114.createElement(React114.Fragment, null, showDuplicate && /* @__PURE__ */ React114.createElement(import_ui98.Tooltip, { title: duplicateLabel, placement: "top" }, /* @__PURE__ */ React114.createElement(import_ui98.IconButton, { size: SIZE11, onClick: duplicateItem, "aria-label": duplicateLabel }, /* @__PURE__ */ React114.createElement(import_icons39.CopyIcon, { fontSize: SIZE11 }))), showToggle && /* @__PURE__ */ React114.createElement(import_ui98.Tooltip, { title: toggleLabel, placement: "top" }, /* @__PURE__ */ React114.createElement(import_ui98.IconButton, { size: SIZE11, onClick: toggleDisableItem, "aria-label": toggleLabel }, propDisabled ? /* @__PURE__ */ React114.createElement(import_icons39.EyeOffIcon, { fontSize: SIZE11 }) : /* @__PURE__ */ React114.createElement(import_icons39.EyeIcon, { fontSize: SIZE11 }))), actions?.(value), showRemove && /* @__PURE__ */ React114.createElement(import_ui98.Tooltip, { title: removeLabel, placement: "top" }, /* @__PURE__ */ React114.createElement(import_ui98.IconButton, { size: SIZE11, onClick: removeItem, "aria-label": removeLabel }, /* @__PURE__ */ React114.createElement(import_icons39.XIcon, { fontSize: SIZE11 }))))
8087
8141
  }
8088
- ), /* @__PURE__ */ React114.createElement(RepeaterPopover, { width: ref?.getBoundingClientRect().width, ...popoverProps, anchorEl: ref }, /* @__PURE__ */ React114.createElement(
8089
- import_ui98.ClickAwayListener,
8090
- {
8091
- mouseEvent: "onMouseDown",
8092
- touchEvent: "onTouchStart",
8093
- onClickAway: popoverProps.onClose
8094
- },
8095
- /* @__PURE__ */ React114.createElement(import_ui98.Box, null, children({ anchorEl: ref }))
8096
- )));
8142
+ ), /* @__PURE__ */ React114.createElement(RepeaterPopover, { width: ref?.getBoundingClientRect().width, ...popoverProps, anchorEl: ref }, /* @__PURE__ */ React114.createElement(import_ui98.Box, null, children({ anchorEl: ref }))));
8097
8143
  };
8098
8144
  var usePopover = (openOnMount, onOpen, onPopoverClose) => {
8099
- const [ref, setRef] = (0, import_react69.useState)(null);
8145
+ const [ref, setRef] = (0, import_react70.useState)(null);
8100
8146
  const popoverState = (0, import_ui98.usePopupState)({ variant: "popover" });
8101
8147
  const popoverProps = (0, import_ui98.bindPopover)(popoverState);
8102
- (0, import_react69.useEffect)(() => {
8148
+ (0, import_react70.useEffect)(() => {
8103
8149
  if (openOnMount && ref) {
8104
8150
  popoverState.open(ref);
8105
8151
  onOpen?.();
@@ -8119,16 +8165,16 @@ var usePopover = (openOnMount, onOpen, onPopoverClose) => {
8119
8165
 
8120
8166
  // src/components/inline-editor-toolbar.tsx
8121
8167
  var React116 = __toESM(require("react"));
8122
- var import_react71 = require("react");
8168
+ var import_react72 = require("react");
8123
8169
  var import_editor_elements7 = require("@elementor/editor-elements");
8124
8170
  var import_icons41 = require("@elementor/icons");
8125
8171
  var import_ui100 = require("@elementor/ui");
8126
- var import_react72 = require("@tiptap/react");
8172
+ var import_react73 = require("@tiptap/react");
8127
8173
  var import_i18n58 = require("@wordpress/i18n");
8128
8174
 
8129
8175
  // src/components/url-popover.tsx
8130
8176
  var React115 = __toESM(require("react"));
8131
- var import_react70 = require("react");
8177
+ var import_react71 = require("react");
8132
8178
  var import_icons40 = require("@elementor/icons");
8133
8179
  var import_ui99 = require("@elementor/ui");
8134
8180
  var import_i18n57 = require("@wordpress/i18n");
@@ -8141,8 +8187,8 @@ var UrlPopover = ({
8141
8187
  openInNewTab,
8142
8188
  onToggleNewTab
8143
8189
  }) => {
8144
- const inputRef = (0, import_react70.useRef)(null);
8145
- (0, import_react70.useEffect)(() => {
8190
+ const inputRef = (0, import_react71.useRef)(null);
8191
+ (0, import_react71.useEffect)(() => {
8146
8192
  if (popupState.isOpen) {
8147
8193
  requestAnimationFrame(() => inputRef.current?.focus());
8148
8194
  }
@@ -8192,16 +8238,16 @@ var UrlPopover = ({
8192
8238
 
8193
8239
  // src/components/inline-editor-toolbar.tsx
8194
8240
  var InlineEditorToolbar = ({ editor, elementId, sx = {} }) => {
8195
- const [urlValue, setUrlValue] = (0, import_react71.useState)("");
8196
- const [openInNewTab, setOpenInNewTab] = (0, import_react71.useState)(false);
8197
- const toolbarRef = (0, import_react71.useRef)(null);
8241
+ const [urlValue, setUrlValue] = (0, import_react72.useState)("");
8242
+ const [openInNewTab, setOpenInNewTab] = (0, import_react72.useState)(false);
8243
+ const toolbarRef = (0, import_react72.useRef)(null);
8198
8244
  const linkPopupState = (0, import_ui100.usePopupState)({ variant: "popover" });
8199
8245
  const isElementClickable = elementId ? checkIfElementIsClickable(elementId) : false;
8200
- const editorState = (0, import_react72.useEditorState)({
8246
+ const editorState = (0, import_react73.useEditorState)({
8201
8247
  editor,
8202
8248
  selector: (ctx) => possibleFormats.filter((format) => ctx.editor.isActive(format))
8203
8249
  });
8204
- const formatButtonsList = (0, import_react71.useMemo)(() => {
8250
+ const formatButtonsList = (0, import_react72.useMemo)(() => {
8205
8251
  const buttons = Object.values(formatButtons);
8206
8252
  if (isElementClickable) {
8207
8253
  return buttons.filter((button) => button.action !== "link");
@@ -8238,7 +8284,7 @@ var InlineEditorToolbar = ({ editor, elementId, sx = {} }) => {
8238
8284
  }
8239
8285
  linkPopupState.close();
8240
8286
  };
8241
- (0, import_react71.useEffect)(() => {
8287
+ (0, import_react72.useEffect)(() => {
8242
8288
  editor?.commands?.focus();
8243
8289
  }, [editor]);
8244
8290
  return /* @__PURE__ */ React116.createElement(
@@ -8432,7 +8478,7 @@ var differsFromExternal = (newState, externalState) => {
8432
8478
 
8433
8479
  // src/components/size/unit-select.tsx
8434
8480
  var React117 = __toESM(require("react"));
8435
- var import_react73 = require("react");
8481
+ var import_react74 = require("react");
8436
8482
  var import_editor_ui17 = require("@elementor/editor-ui");
8437
8483
  var import_ui101 = require("@elementor/ui");
8438
8484
  var menuItemContentStyles2 = {
@@ -8443,7 +8489,7 @@ var menuItemContentStyles2 = {
8443
8489
  var UnitSelect = ({ value, showPrimaryColor, onClick, options }) => {
8444
8490
  const popupState = (0, import_ui101.usePopupState)({
8445
8491
  variant: "popover",
8446
- popupId: (0, import_react73.useId)()
8492
+ popupId: (0, import_react74.useId)()
8447
8493
  });
8448
8494
  const handleMenuItemClick = (index) => {
8449
8495
  onClick(options[index]);
@@ -8479,8 +8525,8 @@ var StyledButton3 = (0, import_ui101.styled)(import_ui101.Button, {
8479
8525
 
8480
8526
  // src/components/size/unstable-size-input.tsx
8481
8527
  var React118 = __toESM(require("react"));
8482
- var import_react74 = require("react");
8483
- var UnstableSizeInput = (0, import_react74.forwardRef)(
8528
+ var import_react75 = require("react");
8529
+ var UnstableSizeInput = (0, import_react75.forwardRef)(
8484
8530
  ({ type, value, onChange, onKeyDown, onKeyUp, InputProps, onBlur, focused, disabled }, ref) => {
8485
8531
  return /* @__PURE__ */ React118.createElement(
8486
8532
  NumberInput,
@@ -8548,7 +8594,7 @@ var hasValue = (value) => {
8548
8594
  };
8549
8595
 
8550
8596
  // src/hooks/use-font-families.ts
8551
- var import_react75 = require("react");
8597
+ var import_react76 = require("react");
8552
8598
  var import_editor_v1_adapters2 = require("@elementor/editor-v1-adapters");
8553
8599
  var getFontControlConfig = () => {
8554
8600
  const { controls } = (0, import_editor_v1_adapters2.getElementorConfig)();
@@ -8556,7 +8602,7 @@ var getFontControlConfig = () => {
8556
8602
  };
8557
8603
  var useFontFamilies = () => {
8558
8604
  const { groups, options } = getFontControlConfig();
8559
- return (0, import_react75.useMemo)(() => {
8605
+ return (0, import_react76.useMemo)(() => {
8560
8606
  if (!groups || !options) {
8561
8607
  return [];
8562
8608
  }