@elementor/editor-controls 4.3.0-beta1 → 4.3.0-beta3

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.mjs CHANGED
@@ -381,7 +381,7 @@ function ControlActions({ children }) {
381
381
  if (items2.length === 0 || disabled) {
382
382
  return children;
383
383
  }
384
- const menuItems = items2.map(({ MenuItem: MenuItem2, id }) => /* @__PURE__ */ React10.createElement(MenuItem2, { key: id }));
384
+ const menuItems = items2.map(({ MenuItem: MenuItem4, id }) => /* @__PURE__ */ React10.createElement(MenuItem4, { key: id }));
385
385
  return /* @__PURE__ */ React10.createElement(FloatingActionsBar, { actions: menuItems }, children);
386
386
  }
387
387
 
@@ -2879,7 +2879,8 @@ var ToggleControl = createControl(
2879
2879
  size = "tiny",
2880
2880
  exclusive = true,
2881
2881
  maxItems,
2882
- convertOptions = false
2882
+ convertOptions = false,
2883
+ allowEmpty = false
2883
2884
  }) => {
2884
2885
  const { value, setValue, placeholder, disabled } = useBoundProp(stringPropTypeUtil7);
2885
2886
  const processedOptions = convertOptions ? convertToggleOptionsToAtomic(options) : options;
@@ -2897,12 +2898,19 @@ var ToggleControl = createControl(
2897
2898
  size,
2898
2899
  placeholder
2899
2900
  };
2901
+ const handleExclusiveToggle = (selectedValue) => {
2902
+ if (allowEmpty && !selectedValue) {
2903
+ setValue("");
2904
+ return;
2905
+ }
2906
+ setValue(selectedValue);
2907
+ };
2900
2908
  return exclusive ? /* @__PURE__ */ React56.createElement(
2901
2909
  ControlToggleButtonGroup,
2902
2910
  {
2903
2911
  ...toggleButtonGroupProps,
2904
- value: value ?? null,
2905
- onChange: setValue,
2912
+ value: allowEmpty ? value || null : value ?? null,
2913
+ onChange: handleExclusiveToggle,
2906
2914
  disabled,
2907
2915
  exclusive: true
2908
2916
  }
@@ -5314,24 +5322,13 @@ var AspectRatioControl = createControl(({ label }) => {
5314
5322
  });
5315
5323
 
5316
5324
  // src/controls/svg-media-control.tsx
5317
- import * as React81 from "react";
5318
- import { useEffect as useEffect16, useState as useState16 } from "react";
5325
+ import * as React88 from "react";
5326
+ import { useEffect as useEffect16, useRef as useRef16, useState as useState18 } from "react";
5319
5327
  import { useCurrentUserCapabilities } from "@elementor/editor-current-user";
5320
5328
  import { iconPropTypeUtil, svgSrcPropTypeUtil, urlPropTypeUtil as urlPropTypeUtil4 } from "@elementor/editor-props";
5321
- import { UploadIcon as UploadIcon2 } from "@elementor/icons";
5322
- import {
5323
- Box as Box15,
5324
- Button as Button5,
5325
- Card as Card2,
5326
- CardMedia as CardMedia2,
5327
- CardOverlay as CardOverlay2,
5328
- CircularProgress as CircularProgress3,
5329
- Stack as Stack13,
5330
- styled as styled9,
5331
- ThemeProvider
5332
- } from "@elementor/ui";
5329
+ import { Box as Box20, Card as Card2, CardOverlay as CardOverlay2, Popover as Popover6, Stack as Stack17, styled as styled11, usePopupState as usePopupState10 } from "@elementor/ui";
5333
5330
  import { useWpMediaAttachment as useWpMediaAttachment2, useWpMediaFrame as useWpMediaFrame2 } from "@elementor/wp-media";
5334
- import { __ as __32 } from "@wordpress/i18n";
5331
+ import { __ as __38 } from "@wordpress/i18n";
5335
5332
 
5336
5333
  // src/components/enable-unfiltered-modal.tsx
5337
5334
  import * as React80 from "react";
@@ -5393,37 +5390,1015 @@ var AdminDialog = ({ open, onClose, handleEnable, isPending, isError }) => /* @_
5393
5390
  isPending ? /* @__PURE__ */ React80.createElement(CircularProgress2, { size: 24 }) : __31("Enable", "elementor")
5394
5391
  )));
5395
5392
 
5396
- // src/controls/open-icon-library.ts
5397
- import { stringPropTypeUtil as stringPropTypeUtil14 } from "@elementor/editor-props";
5398
- var SVG_ICON_LIBRARY = "svg";
5399
- function isSvgLibrarySelection(icon) {
5400
- return icon.library === SVG_ICON_LIBRARY && typeof icon.value === "object" && icon.value !== null;
5393
+ // src/controls/icon-library/get-icon-library-anchor.ts
5394
+ function getIconLibraryAnchor(containerRect, buttonGroupRect) {
5395
+ if (!containerRect || containerRect.width <= 0) {
5396
+ return null;
5397
+ }
5398
+ return {
5399
+ top: buttonGroupRect?.top ?? containerRect.top,
5400
+ left: containerRect.left,
5401
+ width: containerRect.width
5402
+ };
5401
5403
  }
5402
- function openIconLibrary({ selected, onSelect } = {}) {
5403
- const iconManager = window.elementor?.iconManager;
5404
- if (!iconManager) {
5405
- return;
5404
+ function measureIconLibraryAnchor(container, buttonGroup) {
5405
+ return getIconLibraryAnchor(container?.getBoundingClientRect(), buttonGroup?.getBoundingClientRect());
5406
+ }
5407
+
5408
+ // src/controls/icon-library/icon-library-popover.tsx
5409
+ import * as React85 from "react";
5410
+ import { useMemo as useMemo12, useState as useState17 } from "react";
5411
+ import {
5412
+ PopoverBody as PopoverBody2,
5413
+ PopoverHeader as PopoverHeader4,
5414
+ PopoverMenuList as PopoverMenuList2,
5415
+ SearchField as SearchField2,
5416
+ StyledMenuList
5417
+ } from "@elementor/editor-ui";
5418
+ import { ComponentsIcon } from "@elementor/icons";
5419
+ import { useSessionStorage as useSessionStorage2 } from "@elementor/session";
5420
+ import { Box as Box17, CircularProgress as CircularProgress3, Divider as Divider4, Link as Link3, Stack as Stack15, styled as styled9, Typography as Typography9 } from "@elementor/ui";
5421
+ import { useDebounceState } from "@elementor/utils";
5422
+ import { __ as __35 } from "@wordpress/i18n";
5423
+
5424
+ // src/controls/icon-library/font-awesome-7-data.ts
5425
+ var FONT_AWESOME_7_LIBRARIES = [
5426
+ { file: "solid", library: "fa-solid" },
5427
+ { file: "regular", library: "fa-regular" },
5428
+ { file: "brands", library: "fa-brands" }
5429
+ ];
5430
+ var FONT_AWESOME_JSON = {
5431
+ width: 0,
5432
+ height: 1,
5433
+ aliases: 2,
5434
+ unicode: 3,
5435
+ path: 4
5436
+ };
5437
+ var libraryCache = /* @__PURE__ */ new Map();
5438
+ function getFontAwesome7EditorConfig() {
5439
+ const config = window.elementorCommon?.config?.fontAwesome?.v7;
5440
+ if (!config || !Array.isArray(config.jsonFiles)) {
5441
+ return null;
5442
+ }
5443
+ const jsonBaseUrl = getAllowedJsonBaseUrl(config.jsonBaseUrl);
5444
+ if (!jsonBaseUrl) {
5445
+ return null;
5446
+ }
5447
+ return {
5448
+ jsonFiles: config.jsonFiles,
5449
+ jsonBaseUrl
5450
+ };
5451
+ }
5452
+ var FONT_AWESOME_ICON_NAME_PATTERN = /^fa\S*\s+fa-([^\s]+)/;
5453
+ function getFontAwesome7IconName(iconValue) {
5454
+ return iconValue.match(FONT_AWESOME_ICON_NAME_PATTERN)?.[1] ?? null;
5455
+ }
5456
+ function resetFontAwesome7IconsCache() {
5457
+ libraryCache.clear();
5458
+ }
5459
+ async function loadFontAwesome7Library(file, signal) {
5460
+ const cached = await getCachedLibrary(file, signal);
5461
+ return cached?.icons ?? [];
5462
+ }
5463
+ async function resolveFontAwesome7Icon(library, iconName, signal) {
5464
+ const file = getLibraryFileName(library);
5465
+ if (!file) {
5466
+ return null;
5467
+ }
5468
+ const cached = await getCachedLibrary(file, signal);
5469
+ return cached?.lookup[iconName] ?? null;
5470
+ }
5471
+ async function getCachedLibrary(file, signal) {
5472
+ const cached = libraryCache.get(file);
5473
+ if (cached) {
5474
+ return cached;
5475
+ }
5476
+ const loaded = await fetchLibrary(file, signal);
5477
+ if (loaded) {
5478
+ libraryCache.set(file, loaded);
5479
+ }
5480
+ return loaded;
5481
+ }
5482
+ function getLibraryFileName(library) {
5483
+ const config = getFontAwesome7EditorConfig();
5484
+ const match = FONT_AWESOME_7_LIBRARIES.find((item) => item.library === library);
5485
+ if (!config || !match || !config.jsonFiles.includes(match.file)) {
5486
+ return null;
5487
+ }
5488
+ return match.file;
5489
+ }
5490
+ async function fetchLibrary(file, signal) {
5491
+ const config = getFontAwesome7EditorConfig();
5492
+ if (!config?.jsonFiles.includes(file)) {
5493
+ return null;
5494
+ }
5495
+ const catalogUrl = getCatalogFileUrl(config.jsonBaseUrl, file);
5496
+ if (!catalogUrl) {
5497
+ return null;
5498
+ }
5499
+ try {
5500
+ const response = await fetch(catalogUrl, { signal });
5501
+ if (!response.ok) {
5502
+ return null;
5503
+ }
5504
+ const data = await response.json();
5505
+ const icons = data.icons;
5506
+ if (!icons || typeof icons !== "object") {
5507
+ return null;
5508
+ }
5509
+ return indexLibrary(icons);
5510
+ } catch {
5511
+ return null;
5512
+ }
5513
+ }
5514
+ function indexLibrary(icons) {
5515
+ const definitions = [];
5516
+ const lookup = /* @__PURE__ */ Object.create(null);
5517
+ for (const [name, iconData] of Object.entries(icons)) {
5518
+ const definition = toIconDefinition(name, iconData);
5519
+ if (!definition) {
5520
+ continue;
5521
+ }
5522
+ definitions.push(definition);
5523
+ lookup[name] = definition;
5524
+ for (const alias of definition.aliases) {
5525
+ if (!lookup[alias]) {
5526
+ lookup[alias] = definition;
5527
+ }
5528
+ }
5529
+ }
5530
+ return { icons: definitions, lookup };
5531
+ }
5532
+ function toIconDefinition(name, iconData) {
5533
+ if (!isValidIconTuple(iconData)) {
5534
+ return null;
5535
+ }
5536
+ const paths = normalizePaths(iconData[FONT_AWESOME_JSON.path]);
5537
+ if (paths.length === 0) {
5538
+ return null;
5539
+ }
5540
+ const aliases = iconData[FONT_AWESOME_JSON.aliases].filter(
5541
+ (alias) => typeof alias === "string" && alias !== ""
5542
+ );
5543
+ return {
5544
+ name,
5545
+ aliases,
5546
+ width: iconData[FONT_AWESOME_JSON.width],
5547
+ height: iconData[FONT_AWESOME_JSON.height],
5548
+ paths
5549
+ };
5550
+ }
5551
+ function isValidIconTuple(iconData) {
5552
+ return Array.isArray(iconData) && iconData.length > FONT_AWESOME_JSON.path && typeof iconData[FONT_AWESOME_JSON.width] === "number" && typeof iconData[FONT_AWESOME_JSON.height] === "number" && Array.isArray(iconData[FONT_AWESOME_JSON.aliases]);
5553
+ }
5554
+ function normalizePaths(pathData) {
5555
+ if (typeof pathData === "string" && isSafeSvgPath(pathData)) {
5556
+ return [pathData];
5557
+ }
5558
+ if (!Array.isArray(pathData)) {
5559
+ return [];
5560
+ }
5561
+ return pathData.filter((path) => typeof path === "string" && isSafeSvgPath(path));
5562
+ }
5563
+ function isSafeSvgPath(path) {
5564
+ return path !== "" && !/[<>"'`]/.test(path);
5565
+ }
5566
+ function getAllowedJsonBaseUrl(jsonBaseUrl) {
5567
+ if (typeof jsonBaseUrl !== "string" || jsonBaseUrl === "") {
5568
+ return null;
5569
+ }
5570
+ try {
5571
+ const url = new URL(jsonBaseUrl);
5572
+ if (url.protocol !== "http:" && url.protocol !== "https:") {
5573
+ return null;
5574
+ }
5575
+ return url.href;
5576
+ } catch {
5577
+ return null;
5406
5578
  }
5407
- iconManager.loadIconLibraries();
5408
- iconManager.show({
5409
- view: createIconManagerControlView(selected, onSelect)
5579
+ }
5580
+ function getCatalogFileUrl(jsonBaseUrl, file) {
5581
+ try {
5582
+ const baseUrl = new URL(jsonBaseUrl);
5583
+ const fileUrl = new URL(`${file}.json`, jsonBaseUrl);
5584
+ if (fileUrl.origin !== baseUrl.origin || !fileUrl.pathname.startsWith(baseUrl.pathname)) {
5585
+ return null;
5586
+ }
5587
+ if (fileUrl.protocol !== "http:" && fileUrl.protocol !== "https:") {
5588
+ return null;
5589
+ }
5590
+ return fileUrl.href;
5591
+ } catch {
5592
+ return null;
5593
+ }
5594
+ }
5595
+
5596
+ // src/controls/icon-library/font-awesome-7-catalog.ts
5597
+ async function loadFontAwesome7Catalog(signal) {
5598
+ const config = getFontAwesome7EditorConfig();
5599
+ if (!config) {
5600
+ return [];
5601
+ }
5602
+ const catalogs = await Promise.all(
5603
+ FONT_AWESOME_7_LIBRARIES.map(async ({ file, library }) => {
5604
+ if (!config.jsonFiles.includes(file)) {
5605
+ return [];
5606
+ }
5607
+ const icons = await loadFontAwesome7Library(file, signal);
5608
+ return icons.map((icon) => toCatalogIcon(icon, library));
5609
+ })
5610
+ );
5611
+ return catalogs.flat();
5612
+ }
5613
+ function filterFontAwesome7Icons(icons, searchValue, libraries = []) {
5614
+ const query = searchValue?.trim().toLowerCase() ?? "";
5615
+ const libraryIcons = libraries.length === 0 ? icons : icons.filter((icon) => libraries.includes(icon.library));
5616
+ if (query === "") {
5617
+ return libraryIcons;
5618
+ }
5619
+ return libraryIcons.filter((icon) => {
5620
+ if (icon.name.includes(query) || icon.label.toLowerCase().includes(query)) {
5621
+ return true;
5622
+ }
5623
+ return icon.aliases.some((alias) => alias.toLowerCase().includes(query));
5410
5624
  });
5411
5625
  }
5412
- function enqueueIconFonts(library) {
5413
- window.elementor?.helpers?.enqueueIconFonts?.(library);
5626
+ function createIconSelectionValue(library, name) {
5627
+ return `${library} fa-${name}`;
5628
+ }
5629
+ function getSelectedIconId(iconClass, library) {
5630
+ if (!iconClass || !library) {
5631
+ return void 0;
5632
+ }
5633
+ const name = getFontAwesome7IconName(iconClass);
5634
+ if (!name) {
5635
+ return void 0;
5636
+ }
5637
+ return `${library}:${name}`;
5638
+ }
5639
+ function findFontAwesome7Icon(icons, iconClass, library) {
5640
+ const selectedId = getSelectedIconId(iconClass, library);
5641
+ if (!selectedId || !library) {
5642
+ return void 0;
5643
+ }
5644
+ const selectedName = selectedId.slice(`${library}:`.length);
5645
+ return icons.find((icon) => {
5646
+ if (icon.library !== library) {
5647
+ return false;
5648
+ }
5649
+ return icon.id === selectedId || icon.name === selectedName || icon.aliases.includes(selectedName);
5650
+ });
5414
5651
  }
5415
- function createIconManagerControlView(selected, onSelect) {
5652
+ function toCatalogIcon(icon, library) {
5416
5653
  return {
5417
- model: {
5418
- get: () => false
5654
+ ...icon,
5655
+ id: `${library}:${icon.name}`,
5656
+ label: icon.name.replace(/-/g, " "),
5657
+ library,
5658
+ value: createIconSelectionValue(library, icon.name)
5659
+ };
5660
+ }
5661
+
5662
+ // src/controls/icon-library/font-awesome-glyph.tsx
5663
+ import * as React81 from "react";
5664
+ var FontAwesomeGlyph = ({ icon, size, color, label }) => {
5665
+ return /* @__PURE__ */ React81.createElement(
5666
+ "svg",
5667
+ {
5668
+ xmlns: "http://www.w3.org/2000/svg",
5669
+ viewBox: `0 0 ${icon.width} ${icon.height}`,
5670
+ width: size,
5671
+ height: size,
5672
+ fill: color,
5673
+ overflow: "visible",
5674
+ "aria-hidden": label ? void 0 : true,
5675
+ "aria-label": label,
5676
+ role: label ? "img" : void 0
5419
5677
  },
5420
- getControlValue: () => selected ?? { value: "", library: "" },
5421
- setValue: (icon) => {
5422
- onSelect?.(icon);
5678
+ icon.paths.map((path, index) => /* @__PURE__ */ React81.createElement("path", { key: `${index}-${path}`, d: path }))
5679
+ );
5680
+ };
5681
+
5682
+ // src/controls/icon-library/icon-library-filter.tsx
5683
+ import * as React82 from "react";
5684
+ import { useId as useId4 } from "react";
5685
+ import { CheckIcon, FilterIcon as FilterIcon2, LibraryIcon, ListIcon, StarFilledIcon, StarIcon } from "@elementor/icons";
5686
+ import {
5687
+ bindMenu as bindMenu3,
5688
+ bindToggle as bindToggle2,
5689
+ Box as Box15,
5690
+ Menu as Menu4,
5691
+ MenuItem as MenuItem2,
5692
+ Stack as Stack13,
5693
+ ToggleButton as ToggleButton2,
5694
+ Tooltip as Tooltip8,
5695
+ Typography as Typography7,
5696
+ usePopupState as usePopupState8
5697
+ } from "@elementor/ui";
5698
+ import { __ as __32 } from "@wordpress/i18n";
5699
+
5700
+ // src/controls/icon-library/icon-library-tooltip.ts
5701
+ var ICON_LIBRARY_ACTION_TOOLTIP_ENTER_DELAY = 0;
5702
+
5703
+ // src/controls/icon-library/icon-library-filter.tsx
5704
+ var FILTER_MENU_WIDTH = 280;
5705
+ var FILTER_INDICATOR_SIZE = 6;
5706
+ var FILTER_INDICATOR_OFFSET = 4;
5707
+ var LIBRARY_FILTER_ORDER = {
5708
+ regular: 0,
5709
+ solid: 1,
5710
+ brands: 2
5711
+ };
5712
+ var LIBRARY_FILTER_CONFIG = {
5713
+ "fa-regular": {
5714
+ getLabel: () => __32("Font Awesome - Regular", "elementor"),
5715
+ Icon: StarIcon,
5716
+ order: LIBRARY_FILTER_ORDER.regular
5717
+ },
5718
+ "fa-solid": {
5719
+ getLabel: () => __32("Font Awesome - Solid", "elementor"),
5720
+ Icon: StarFilledIcon,
5721
+ order: LIBRARY_FILTER_ORDER.solid
5722
+ },
5723
+ "fa-brands": {
5724
+ getLabel: () => __32("Font Awesome - Brands", "elementor"),
5725
+ Icon: LibraryIcon,
5726
+ order: LIBRARY_FILTER_ORDER.brands
5727
+ }
5728
+ };
5729
+ var IconLibraryFilter = ({ value, onChange }) => {
5730
+ const popupId = useId4();
5731
+ const popupState = usePopupState8({
5732
+ variant: "popover",
5733
+ popupId
5734
+ });
5735
+ const options = FONT_AWESOME_7_LIBRARIES.map(({ library }) => ({
5736
+ value: library,
5737
+ label: LIBRARY_FILTER_CONFIG[library].getLabel(),
5738
+ Icon: LIBRARY_FILTER_CONFIG[library].Icon,
5739
+ order: LIBRARY_FILTER_CONFIG[library].order
5740
+ })).sort((firstOption, secondOption) => firstOption.order - secondOption.order);
5741
+ const isFiltered = value.length > 0;
5742
+ const filterButtonLabel = isFiltered ? __32("Filter by library, active", "elementor") : __32("Filter by library", "elementor");
5743
+ const handleAllIconsClick = () => {
5744
+ onChange([]);
5745
+ };
5746
+ const handleLibraryClick = (library) => {
5747
+ const nextValue = value.includes(library) ? value.filter((selectedLibrary) => selectedLibrary !== library) : [...value, library];
5748
+ onChange(nextValue.length === FONT_AWESOME_7_LIBRARIES.length ? [] : nextValue);
5749
+ };
5750
+ return /* @__PURE__ */ React82.createElement(React82.Fragment, null, /* @__PURE__ */ React82.createElement(
5751
+ Tooltip8,
5752
+ {
5753
+ title: __32("Filter by library", "elementor"),
5754
+ placement: "top",
5755
+ enterDelay: ICON_LIBRARY_ACTION_TOOLTIP_ENTER_DELAY,
5756
+ enterNextDelay: ICON_LIBRARY_ACTION_TOOLTIP_ENTER_DELAY,
5757
+ disableInteractive: true
5423
5758
  },
5424
- applySavedValue: () => void 0
5759
+ /* @__PURE__ */ React82.createElement(
5760
+ ToggleButton2,
5761
+ {
5762
+ "aria-label": filterButtonLabel,
5763
+ value: "filter",
5764
+ size: "tiny",
5765
+ selected: popupState.isOpen,
5766
+ sx: { position: "relative", flexShrink: 0 },
5767
+ ...bindToggle2(popupState),
5768
+ "aria-expanded": popupState.isOpen
5769
+ },
5770
+ /* @__PURE__ */ React82.createElement(FilterIcon2, { fontSize: "tiny" }),
5771
+ isFiltered ? /* @__PURE__ */ React82.createElement(
5772
+ Box15,
5773
+ {
5774
+ component: "span",
5775
+ "aria-hidden": "true",
5776
+ sx: {
5777
+ position: "absolute",
5778
+ insetBlockStart: FILTER_INDICATOR_OFFSET,
5779
+ insetInlineEnd: FILTER_INDICATOR_OFFSET,
5780
+ width: FILTER_INDICATOR_SIZE,
5781
+ height: FILTER_INDICATOR_SIZE,
5782
+ borderRadius: "50%",
5783
+ bgcolor: "secondary.main"
5784
+ }
5785
+ }
5786
+ ) : null
5787
+ )
5788
+ ), /* @__PURE__ */ React82.createElement(
5789
+ Menu4,
5790
+ {
5791
+ ...bindMenu3(popupState),
5792
+ MenuListProps: {
5793
+ dense: true,
5794
+ autoFocusItem: true,
5795
+ "aria-label": __32("Filter by library", "elementor")
5796
+ },
5797
+ sx: { "& .MuiPaper-root": { minWidth: FILTER_MENU_WIDTH } }
5798
+ },
5799
+ /* @__PURE__ */ React82.createElement(
5800
+ MenuItem2,
5801
+ {
5802
+ role: "menuitemcheckbox",
5803
+ "aria-checked": !isFiltered,
5804
+ selected: !isFiltered,
5805
+ onClick: handleAllIconsClick
5806
+ },
5807
+ renderFilterMenuItemContent(__32("All icons", "elementor"), ListIcon, !isFiltered)
5808
+ ),
5809
+ options.map(({ value: library, label, Icon }) => /* @__PURE__ */ React82.createElement(
5810
+ MenuItem2,
5811
+ {
5812
+ key: library,
5813
+ role: "menuitemcheckbox",
5814
+ "aria-checked": value.includes(library),
5815
+ selected: value.includes(library),
5816
+ onClick: () => handleLibraryClick(library)
5817
+ },
5818
+ renderFilterMenuItemContent(label, Icon, value.includes(library))
5819
+ ))
5820
+ ));
5821
+ };
5822
+ var renderFilterMenuItemContent = (label, Icon, selected) => /* @__PURE__ */ React82.createElement(Stack13, { direction: "row", alignItems: "center", gap: 1, width: "100%" }, /* @__PURE__ */ React82.createElement(Icon, { fontSize: "tiny" }), /* @__PURE__ */ React82.createElement(Typography7, { variant: "caption", sx: { flex: 1 } }, label), selected ? /* @__PURE__ */ React82.createElement(CheckIcon, { fontSize: "tiny", "aria-hidden": "true" }) : null);
5823
+
5824
+ // src/controls/icon-library/icon-library-grid.tsx
5825
+ import * as React83 from "react";
5826
+ import { useLayoutEffect as useLayoutEffect3, useRef as useRef15, useState as useState16 } from "react";
5827
+ import { Box as Box16, Tooltip as Tooltip9, useTheme as useTheme3 } from "@elementor/ui";
5828
+ import { useVirtualizer } from "@tanstack/react-virtual";
5829
+ import { __ as __33 } from "@wordpress/i18n";
5830
+ var ICON_LIBRARY_GRID_FALLBACK_COLUMN_COUNT = 4;
5831
+ var ICON_LIBRARY_GRID_MIN_CELL_SIZE = 52;
5832
+ var ICON_LIBRARY_GRID_TOOLTIP_ENTER_DELAY = 1e3;
5833
+ var ICON_GLYPH_SIZE = 20;
5834
+ var GRID_OVERSCAN = 6;
5835
+ var GRID_COLUMN_GAP = 1;
5836
+ var GRID_HORIZONTAL_PADDING = 1;
5837
+ var HOME_END_KEYS = /* @__PURE__ */ new Set(["Home", "End"]);
5838
+ var getGridMetrics = (containerWidth, columnGap, inlinePadding) => {
5839
+ const availableWidth = containerWidth - inlinePadding;
5840
+ if (availableWidth <= 0) {
5841
+ return {
5842
+ columnCount: ICON_LIBRARY_GRID_FALLBACK_COLUMN_COUNT,
5843
+ cellSize: ICON_LIBRARY_GRID_MIN_CELL_SIZE
5844
+ };
5845
+ }
5846
+ const columnCount = Math.max(
5847
+ 1,
5848
+ Math.floor((availableWidth + columnGap) / (ICON_LIBRARY_GRID_MIN_CELL_SIZE + columnGap))
5849
+ );
5850
+ const cellSize = Math.floor((availableWidth - columnGap * (columnCount - 1)) / columnCount);
5851
+ return {
5852
+ columnCount,
5853
+ cellSize: Math.max(cellSize, 1)
5425
5854
  };
5855
+ };
5856
+ var IconLibraryGrid = ({
5857
+ items: items2,
5858
+ selectedValue,
5859
+ onSelect,
5860
+ onClose,
5861
+ noResultsComponent
5862
+ }) => {
5863
+ const theme = useTheme3();
5864
+ const containerRef = useRef15(null);
5865
+ const cellRefs = useRef15(/* @__PURE__ */ new Map());
5866
+ const shouldRestoreFocusRef = useRef15(false);
5867
+ const selectedIndex = items2.findIndex((item) => item.id === selectedValue);
5868
+ const [focusedIndex, setFocusedIndex] = useState16(selectedIndex >= 0 ? selectedIndex : 0);
5869
+ const [{ columnCount, cellSize }, setGridMetrics] = useState16(() => getGridMetrics(0, 0, 0));
5870
+ const rowCount = Math.ceil(items2.length / columnCount);
5871
+ const virtualizer = useVirtualizer({
5872
+ count: rowCount,
5873
+ getScrollElement: () => containerRef.current,
5874
+ estimateSize: () => cellSize,
5875
+ overscan: GRID_OVERSCAN
5876
+ });
5877
+ const focusedItem = items2[focusedIndex];
5878
+ const visibleRowIndexes = virtualizer.getVirtualIndexes().join(",");
5879
+ useLayoutEffect3(() => {
5880
+ setFocusedIndex((current) => {
5881
+ if (items2.length === 0) {
5882
+ return 0;
5883
+ }
5884
+ if (selectedIndex >= 0) {
5885
+ return selectedIndex;
5886
+ }
5887
+ return Math.min(current, items2.length - 1);
5888
+ });
5889
+ if (selectedIndex >= 0) {
5890
+ virtualizer.scrollToIndex(Math.floor(selectedIndex / columnCount));
5891
+ }
5892
+ }, [columnCount, items2, selectedIndex, selectedValue]);
5893
+ useLayoutEffect3(() => {
5894
+ if (!shouldRestoreFocusRef.current || !focusedItem) {
5895
+ return;
5896
+ }
5897
+ const cell = cellRefs.current.get(focusedItem.id);
5898
+ if (!cell) {
5899
+ return;
5900
+ }
5901
+ cell.focus();
5902
+ shouldRestoreFocusRef.current = false;
5903
+ }, [focusedItem, visibleRowIndexes]);
5904
+ useLayoutEffect3(() => {
5905
+ const container = containerRef.current;
5906
+ if (!container) {
5907
+ return;
5908
+ }
5909
+ const measureGrid = () => {
5910
+ const columnGap = Number.parseFloat(theme.spacing(GRID_COLUMN_GAP));
5911
+ const inlinePadding = Number.parseFloat(theme.spacing(GRID_HORIZONTAL_PADDING)) * 2;
5912
+ setGridMetrics(getGridMetrics(container.clientWidth, columnGap, inlinePadding));
5913
+ };
5914
+ measureGrid();
5915
+ const resizeObserver = new ResizeObserver(measureGrid);
5916
+ resizeObserver.observe(container);
5917
+ return () => {
5918
+ resizeObserver.disconnect();
5919
+ };
5920
+ }, [theme, items2.length]);
5921
+ useLayoutEffect3(() => {
5922
+ virtualizer.measure();
5923
+ }, [cellSize, columnCount]);
5924
+ const isRtl = theme.direction === "rtl" || document.documentElement.dir === "rtl";
5925
+ const horizontalOffset = isRtl ? -1 : 1;
5926
+ const moveFocus = (nextIndex) => {
5927
+ if (nextIndex < 0 || nextIndex >= items2.length) {
5928
+ return;
5929
+ }
5930
+ shouldRestoreFocusRef.current = true;
5931
+ setFocusedIndex(nextIndex);
5932
+ virtualizer.scrollToIndex(Math.floor(nextIndex / columnCount));
5933
+ };
5934
+ const handleKeyDown = (event, index) => {
5935
+ if (event.key === "Enter" || event.key === " ") {
5936
+ event.preventDefault();
5937
+ onSelect(items2[index].id);
5938
+ onClose();
5939
+ return;
5940
+ }
5941
+ if (event.key === "ArrowRight") {
5942
+ event.preventDefault();
5943
+ moveFocus(index + horizontalOffset);
5944
+ return;
5945
+ }
5946
+ if (event.key === "ArrowLeft") {
5947
+ event.preventDefault();
5948
+ moveFocus(index - horizontalOffset);
5949
+ return;
5950
+ }
5951
+ if (event.key === "ArrowDown") {
5952
+ event.preventDefault();
5953
+ moveFocus(index + columnCount);
5954
+ return;
5955
+ }
5956
+ if (event.key === "ArrowUp") {
5957
+ event.preventDefault();
5958
+ moveFocus(index - columnCount);
5959
+ return;
5960
+ }
5961
+ if (HOME_END_KEYS.has(event.key)) {
5962
+ event.preventDefault();
5963
+ if (event.ctrlKey) {
5964
+ moveFocus(event.key === "Home" ? 0 : items2.length - 1);
5965
+ return;
5966
+ }
5967
+ const rowStart = Math.floor(index / columnCount) * columnCount;
5968
+ const rowEnd = Math.min(rowStart + columnCount - 1, items2.length - 1);
5969
+ moveFocus(event.key === "Home" ? rowStart : rowEnd);
5970
+ }
5971
+ };
5972
+ return /* @__PURE__ */ React83.createElement(
5973
+ Box16,
5974
+ {
5975
+ ref: containerRef,
5976
+ sx: {
5977
+ width: "100%",
5978
+ height: "100%",
5979
+ minWidth: 0,
5980
+ overflowX: "hidden",
5981
+ overflowY: "auto"
5982
+ }
5983
+ },
5984
+ items2.length === 0 && noResultsComponent ? noResultsComponent : /* @__PURE__ */ React83.createElement(
5985
+ Box16,
5986
+ {
5987
+ role: "grid",
5988
+ "aria-label": __33("Icons", "elementor"),
5989
+ "aria-rowcount": rowCount,
5990
+ "aria-colcount": columnCount,
5991
+ "data-testid": "icon-library-grid",
5992
+ sx: {
5993
+ width: "100%",
5994
+ minWidth: 0,
5995
+ height: virtualizer.getTotalSize(),
5996
+ position: "relative"
5997
+ }
5998
+ },
5999
+ virtualizer.getVirtualItems().map((virtualRow) => {
6000
+ const startIndex = virtualRow.index * columnCount;
6001
+ const rowItems = items2.slice(startIndex, startIndex + columnCount);
6002
+ return /* @__PURE__ */ React83.createElement(
6003
+ Box16,
6004
+ {
6005
+ key: virtualRow.key,
6006
+ role: "row",
6007
+ "aria-rowindex": virtualRow.index + 1,
6008
+ sx: {
6009
+ position: "absolute",
6010
+ top: 0,
6011
+ left: 0,
6012
+ width: "100%",
6013
+ height: virtualRow.size,
6014
+ transform: `translateY(${virtualRow.start}px)`,
6015
+ display: "grid",
6016
+ gridTemplateColumns: `repeat(${columnCount}, minmax(0, 1fr))`,
6017
+ gap: GRID_COLUMN_GAP,
6018
+ px: GRID_HORIZONTAL_PADDING,
6019
+ boxSizing: "border-box"
6020
+ }
6021
+ },
6022
+ rowItems.map((item, columnIndex) => {
6023
+ const index = startIndex + columnIndex;
6024
+ const isSelected = selectedValue === item.id;
6025
+ const tabIndex = focusedIndex === index ? 0 : -1;
6026
+ return /* @__PURE__ */ React83.createElement(
6027
+ Box16,
6028
+ {
6029
+ key: item.id,
6030
+ role: "presentation",
6031
+ sx: { minWidth: 0, minHeight: 0, width: "100%", height: "100%" }
6032
+ },
6033
+ /* @__PURE__ */ React83.createElement(
6034
+ Tooltip9,
6035
+ {
6036
+ title: item.label,
6037
+ placement: "top",
6038
+ enterDelay: ICON_LIBRARY_GRID_TOOLTIP_ENTER_DELAY,
6039
+ enterNextDelay: ICON_LIBRARY_GRID_TOOLTIP_ENTER_DELAY,
6040
+ disableInteractive: true,
6041
+ disableFocusListener: true
6042
+ },
6043
+ /* @__PURE__ */ React83.createElement(
6044
+ Box16,
6045
+ {
6046
+ component: "button",
6047
+ type: "button",
6048
+ role: "gridcell",
6049
+ "aria-colindex": columnIndex + 1,
6050
+ "aria-label": item.label,
6051
+ "aria-selected": isSelected,
6052
+ tabIndex,
6053
+ ref: (node) => {
6054
+ if (node) {
6055
+ cellRefs.current.set(item.id, node);
6056
+ } else {
6057
+ cellRefs.current.delete(item.id);
6058
+ }
6059
+ },
6060
+ onClick: () => {
6061
+ onSelect(item.id);
6062
+ onClose();
6063
+ },
6064
+ onFocus: () => setFocusedIndex(index),
6065
+ onKeyDown: (event) => handleKeyDown(event, index),
6066
+ sx: {
6067
+ boxSizing: "border-box",
6068
+ appearance: "none",
6069
+ m: 0,
6070
+ width: "100%",
6071
+ height: "100%",
6072
+ minWidth: 0,
6073
+ minHeight: 0,
6074
+ display: "flex",
6075
+ alignItems: "center",
6076
+ justifyContent: "center",
6077
+ border: "1px solid",
6078
+ borderColor: "divider",
6079
+ borderRadius: 1,
6080
+ color: "text.tertiary",
6081
+ bgcolor: "transparent",
6082
+ p: 0,
6083
+ cursor: "pointer",
6084
+ font: "inherit",
6085
+ lineHeight: 0,
6086
+ overflow: "hidden",
6087
+ "&:hover, &:focus": {
6088
+ bgcolor: "action.hover"
6089
+ },
6090
+ '&[aria-selected="true"]': {
6091
+ bgcolor: "action.selected"
6092
+ },
6093
+ '&[aria-selected="true"]:hover, &[aria-selected="true"]:focus': {
6094
+ bgcolor: "action.selected"
6095
+ }
6096
+ }
6097
+ },
6098
+ item.paths.length > 0 ? /* @__PURE__ */ React83.createElement(
6099
+ FontAwesomeGlyph,
6100
+ {
6101
+ icon: item,
6102
+ size: ICON_GLYPH_SIZE,
6103
+ color: "currentColor"
6104
+ }
6105
+ ) : null
6106
+ )
6107
+ )
6108
+ );
6109
+ })
6110
+ );
6111
+ })
6112
+ )
6113
+ );
6114
+ };
6115
+
6116
+ // src/controls/icon-library/icon-library-view-toggle.tsx
6117
+ import * as React84 from "react";
6118
+ import { useId as useId5 } from "react";
6119
+ import { CheckIcon as CheckIcon2, ListIcon as ListIcon2, WidgetsIcon } from "@elementor/icons";
6120
+ import {
6121
+ bindMenu as bindMenu4,
6122
+ bindToggle as bindToggle3,
6123
+ Menu as Menu5,
6124
+ MenuItem as MenuItem3,
6125
+ Stack as Stack14,
6126
+ ToggleButton as ToggleButton3,
6127
+ Tooltip as Tooltip10,
6128
+ Typography as Typography8,
6129
+ usePopupState as usePopupState9
6130
+ } from "@elementor/ui";
6131
+ import { __ as __34 } from "@wordpress/i18n";
6132
+ var VIEW_MENU_WIDTH = 122;
6133
+ var IconLibraryViewToggle = ({ value, onChange }) => {
6134
+ const popupId = useId5();
6135
+ const popupState = usePopupState9({
6136
+ variant: "popover",
6137
+ popupId
6138
+ });
6139
+ const isGrid = value === "grid";
6140
+ const ViewIcon = isGrid ? WidgetsIcon : ListIcon2;
6141
+ const viewButtonLabel = isGrid ? __34("Grid view", "elementor") : __34("List view", "elementor");
6142
+ return /* @__PURE__ */ React84.createElement(React84.Fragment, null, /* @__PURE__ */ React84.createElement(
6143
+ Tooltip10,
6144
+ {
6145
+ title: viewButtonLabel,
6146
+ placement: "top",
6147
+ enterDelay: ICON_LIBRARY_ACTION_TOOLTIP_ENTER_DELAY,
6148
+ enterNextDelay: ICON_LIBRARY_ACTION_TOOLTIP_ENTER_DELAY,
6149
+ disableInteractive: true
6150
+ },
6151
+ /* @__PURE__ */ React84.createElement(
6152
+ ToggleButton3,
6153
+ {
6154
+ "aria-label": viewButtonLabel,
6155
+ value: "view",
6156
+ size: "tiny",
6157
+ selected: popupState.isOpen,
6158
+ sx: { flexShrink: 0 },
6159
+ ...bindToggle3(popupState),
6160
+ "aria-expanded": popupState.isOpen
6161
+ },
6162
+ /* @__PURE__ */ React84.createElement(ViewIcon, { fontSize: "tiny" })
6163
+ )
6164
+ ), /* @__PURE__ */ React84.createElement(
6165
+ Menu5,
6166
+ {
6167
+ ...bindMenu4(popupState),
6168
+ MenuListProps: {
6169
+ dense: true,
6170
+ autoFocusItem: true,
6171
+ "aria-label": __34("View", "elementor")
6172
+ },
6173
+ sx: { "& .MuiPaper-root": { minWidth: VIEW_MENU_WIDTH } }
6174
+ },
6175
+ /* @__PURE__ */ React84.createElement(
6176
+ ViewMenuItem,
6177
+ {
6178
+ label: __34("List", "elementor"),
6179
+ selected: value === "list",
6180
+ onClick: () => {
6181
+ onChange("list");
6182
+ popupState.close();
6183
+ }
6184
+ }
6185
+ ),
6186
+ /* @__PURE__ */ React84.createElement(
6187
+ ViewMenuItem,
6188
+ {
6189
+ label: __34("Grid", "elementor"),
6190
+ selected: value === "grid",
6191
+ onClick: () => {
6192
+ onChange("grid");
6193
+ popupState.close();
6194
+ }
6195
+ }
6196
+ )
6197
+ ));
6198
+ };
6199
+ var ViewMenuItem = ({ label, selected, onClick }) => /* @__PURE__ */ React84.createElement(MenuItem3, { role: "menuitemradio", "aria-checked": selected, selected, onClick }, /* @__PURE__ */ React84.createElement(Stack14, { direction: "row", alignItems: "center", gap: 1, width: "100%" }, /* @__PURE__ */ React84.createElement(Typography8, { variant: "caption", sx: { flex: 1 } }, label), selected ? /* @__PURE__ */ React84.createElement(CheckIcon2, { fontSize: "tiny", "aria-hidden": "true" }) : null));
6200
+
6201
+ // src/controls/icon-library/use-font-awesome-7-catalog.ts
6202
+ import { useQuery as useQuery2 } from "@elementor/query";
6203
+ var FONT_AWESOME_7_CATALOG_QUERY_KEY = ["font-awesome-7-catalog"];
6204
+ function useFontAwesome7Catalog(enabled) {
6205
+ return useQuery2({
6206
+ queryKey: FONT_AWESOME_7_CATALOG_QUERY_KEY,
6207
+ queryFn: ({ signal }) => loadFontAwesome7Catalog(signal),
6208
+ enabled,
6209
+ staleTime: Infinity
6210
+ });
5426
6211
  }
6212
+
6213
+ // src/controls/icon-library/icon-library-popover.tsx
6214
+ var ICON_LIBRARY_POPOVER_WIDTH = 300;
6215
+ var ICON_LIBRARY_ROW_HEIGHT = 48;
6216
+ var ICON_LIBRARY_SEARCH_DEBOUNCE_DELAY = 300;
6217
+ var ICON_LIBRARY_VIEW_STORAGE_KEY = "icon-library-view";
6218
+ var ICON_LIBRARY_VIEW_STORAGE_PREFIX = "editor-controls";
6219
+ var DEFAULT_ICON_LIBRARY_VIEW = "list";
6220
+ var isIconLibraryView = (value) => {
6221
+ return value === "grid" || value === "list";
6222
+ };
6223
+ var ICON_TILE_SIZE = 40;
6224
+ var ICON_GLYPH_SIZE2 = 20;
6225
+ var ICON_LIBRARY_INLINE_SPACING = 1;
6226
+ var CompactIconLibraryMenuList = styled9(StyledMenuList)(({ theme }) => ({
6227
+ '& > [role="option"]': {
6228
+ padding: theme.spacing(0.75, ICON_LIBRARY_INLINE_SPACING)
6229
+ }
6230
+ }));
6231
+ var IconLibraryPopover = ({
6232
+ open,
6233
+ selectedIconClass,
6234
+ selectedIconLibrary,
6235
+ onSelect,
6236
+ onClose,
6237
+ width = ICON_LIBRARY_POPOVER_WIDTH
6238
+ }) => {
6239
+ const {
6240
+ debouncedValue: searchValue,
6241
+ inputValue: searchInputValue,
6242
+ handleChange: handleSearchChange,
6243
+ setImmediateValue: setSearchValue
6244
+ } = useDebounceState({ delay: ICON_LIBRARY_SEARCH_DEBOUNCE_DELAY });
6245
+ const [activeLibraries, setActiveLibraries] = useState17([]);
6246
+ const [storedView, setStoredView] = useSessionStorage2(
6247
+ ICON_LIBRARY_VIEW_STORAGE_KEY,
6248
+ ICON_LIBRARY_VIEW_STORAGE_PREFIX
6249
+ );
6250
+ const view = isIconLibraryView(storedView) ? storedView : DEFAULT_ICON_LIBRARY_VIEW;
6251
+ const { data: icons = [], isLoading } = useFontAwesome7Catalog(open);
6252
+ const items2 = useMemo12(
6253
+ () => createIconLibraryItems(icons, searchValue, activeLibraries),
6254
+ [activeLibraries, icons, searchValue]
6255
+ );
6256
+ const selectedValue = useMemo12(
6257
+ () => findFontAwesome7Icon(icons, selectedIconClass, selectedIconLibrary)?.id,
6258
+ [icons, selectedIconClass, selectedIconLibrary]
6259
+ );
6260
+ const handleClose = () => {
6261
+ setSearchValue("");
6262
+ setActiveLibraries([]);
6263
+ onClose();
6264
+ };
6265
+ const handleSelect = (id) => {
6266
+ const icon = items2.find((item) => item.id === id);
6267
+ if (!icon) {
6268
+ return;
6269
+ }
6270
+ onSelect({
6271
+ value: createIconSelectionValue(icon.library, icon.name),
6272
+ library: icon.library
6273
+ });
6274
+ };
6275
+ const handleClearSearch = () => {
6276
+ setSearchValue("");
6277
+ };
6278
+ return /* @__PURE__ */ React85.createElement(PopoverBody2, { width, fillWidth: true, id: "icon-library" }, /* @__PURE__ */ React85.createElement(
6279
+ PopoverHeader4,
6280
+ {
6281
+ title: __35("Icon library", "elementor"),
6282
+ onClose: handleClose,
6283
+ icon: /* @__PURE__ */ React85.createElement(ComponentsIcon, { fontSize: "tiny" }),
6284
+ actions: [/* @__PURE__ */ React85.createElement(IconLibraryViewToggle, { key: "view", value: view, onChange: setStoredView })],
6285
+ sx: { pl: ICON_LIBRARY_INLINE_SPACING, pr: 0.5 }
6286
+ }
6287
+ ), /* @__PURE__ */ React85.createElement(Stack15, { direction: "row", alignItems: "center", gap: 1, sx: { px: ICON_LIBRARY_INLINE_SPACING, pb: 1 } }, /* @__PURE__ */ React85.createElement(
6288
+ SearchField2,
6289
+ {
6290
+ value: searchInputValue,
6291
+ onSearch: handleSearchChange,
6292
+ placeholder: __35("Search", "elementor"),
6293
+ id: "icon-library-search",
6294
+ sx: { flex: 1, px: 0, pb: 0 }
6295
+ }
6296
+ ), /* @__PURE__ */ React85.createElement(IconLibraryFilter, { value: activeLibraries, onChange: setActiveLibraries })), /* @__PURE__ */ React85.createElement(Divider4, null), /* @__PURE__ */ React85.createElement(Box17, { sx: { flex: 1, overflow: "hidden", minHeight: 0, minWidth: 0 } }, /* @__PURE__ */ React85.createElement(
6297
+ IconLibraryContent,
6298
+ {
6299
+ isLoading,
6300
+ items: items2,
6301
+ selectedValue,
6302
+ searchValue,
6303
+ isCatalogAvailable: icons.length > 0,
6304
+ view,
6305
+ onSelect: handleSelect,
6306
+ onClose: handleClose,
6307
+ onClearSearch: handleClearSearch
6308
+ }
6309
+ )));
6310
+ };
6311
+ var IconLibraryContent = ({
6312
+ isLoading,
6313
+ items: items2,
6314
+ selectedValue,
6315
+ searchValue,
6316
+ isCatalogAvailable,
6317
+ view,
6318
+ onSelect,
6319
+ onClose,
6320
+ onClearSearch
6321
+ }) => {
6322
+ if (isLoading) {
6323
+ return /* @__PURE__ */ React85.createElement(IconLibraryLoadingState, null);
6324
+ }
6325
+ const emptyState = /* @__PURE__ */ React85.createElement(
6326
+ IconLibraryEmptyState,
6327
+ {
6328
+ searchValue,
6329
+ isCatalogAvailable,
6330
+ onClear: onClearSearch
6331
+ }
6332
+ );
6333
+ if (view === "grid") {
6334
+ return /* @__PURE__ */ React85.createElement(Box17, { sx: { width: "100%", height: "100%", minWidth: 0, minHeight: 0 } }, /* @__PURE__ */ React85.createElement(
6335
+ IconLibraryGrid,
6336
+ {
6337
+ items: items2,
6338
+ selectedValue,
6339
+ onSelect,
6340
+ onClose,
6341
+ noResultsComponent: emptyState
6342
+ }
6343
+ ));
6344
+ }
6345
+ return /* @__PURE__ */ React85.createElement(
6346
+ PopoverMenuList2,
6347
+ {
6348
+ items: items2,
6349
+ selectedValue,
6350
+ menuListTemplate: CompactIconLibraryMenuList,
6351
+ onSelect,
6352
+ onClose,
6353
+ itemHeight: ICON_LIBRARY_ROW_HEIGHT,
6354
+ menuItemContentTemplate: IconLibraryRow,
6355
+ noResultsComponent: emptyState,
6356
+ "data-testid": "icon-library-list"
6357
+ }
6358
+ );
6359
+ };
6360
+ var IconLibraryLoadingState = () => /* @__PURE__ */ React85.createElement(Stack15, { alignItems: "center", justifyContent: "center", height: "100%" }, /* @__PURE__ */ React85.createElement(CircularProgress3, { role: "progressbar", size: 24 }));
6361
+ var IconLibraryEmptyState = ({
6362
+ searchValue,
6363
+ isCatalogAvailable,
6364
+ onClear
6365
+ }) => {
6366
+ if (!isCatalogAvailable) {
6367
+ return /* @__PURE__ */ React85.createElement(CatalogUnavailable, null);
6368
+ }
6369
+ return /* @__PURE__ */ React85.createElement(NoResults, { searchValue, onClear });
6370
+ };
6371
+ var IconLibraryRow = (item) => {
6372
+ const icon = item;
6373
+ return /* @__PURE__ */ React85.createElement(Stack15, { direction: "row", alignItems: "center", gap: 1, sx: { width: "100%" } }, /* @__PURE__ */ React85.createElement(
6374
+ Box17,
6375
+ {
6376
+ sx: {
6377
+ width: ICON_TILE_SIZE,
6378
+ height: ICON_TILE_SIZE,
6379
+ display: "flex",
6380
+ alignItems: "center",
6381
+ justifyContent: "center",
6382
+ border: 1,
6383
+ borderColor: "divider",
6384
+ borderRadius: 1,
6385
+ color: "text.tertiary",
6386
+ flexShrink: 0
6387
+ }
6388
+ },
6389
+ icon.paths.length > 0 ? /* @__PURE__ */ React85.createElement(FontAwesomeGlyph, { icon, size: ICON_GLYPH_SIZE2, color: "currentColor" }) : null
6390
+ ), /* @__PURE__ */ React85.createElement(Typography9, { variant: "caption", color: "text.primary", noWrap: true }, icon.label));
6391
+ };
6392
+ var CatalogUnavailable = () => /* @__PURE__ */ React85.createElement(Stack15, { alignItems: "center", justifyContent: "center", height: "100%", p: 2.5, gap: 1.5 }, /* @__PURE__ */ React85.createElement(ComponentsIcon, { fontSize: "large" }), /* @__PURE__ */ React85.createElement(Typography9, { align: "center", variant: "subtitle2", color: "text.secondary" }, __35("Icons couldn't be loaded.", "elementor")));
6393
+ var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */ React85.createElement(Stack15, { alignItems: "center", justifyContent: "center", height: "100%", p: 2.5, gap: 1.5 }, /* @__PURE__ */ React85.createElement(ComponentsIcon, { fontSize: "large" }), /* @__PURE__ */ React85.createElement(Typography9, { align: "center", variant: "subtitle2", color: "text.secondary" }, __35("Sorry, nothing matched", "elementor")), searchValue ? /* @__PURE__ */ React85.createElement(React85.Fragment, null, /* @__PURE__ */ React85.createElement(Typography9, { align: "center", variant: "subtitle2", color: "text.secondary", noWrap: true, sx: { maxWidth: "80%" } }, "\u201C", searchValue, "\u201D."), /* @__PURE__ */ React85.createElement(Link3, { color: "secondary", variant: "caption", component: "button", type: "button", onClick: onClear }, __35("Clear & try again", "elementor"))) : null);
6394
+ var createIconLibraryItems = (icons, searchValue, libraries) => filterFontAwesome7Icons(icons, searchValue, libraries).map((icon) => ({
6395
+ ...icon,
6396
+ type: "item",
6397
+ value: icon.id
6398
+ }));
6399
+
6400
+ // src/controls/open-icon-library.ts
6401
+ import { stringPropTypeUtil as stringPropTypeUtil14 } from "@elementor/editor-props";
5427
6402
  function createIconPropValue(icon, library) {
5428
6403
  return {
5429
6404
  value: stringPropTypeUtil14.create(icon),
@@ -5431,13 +6406,170 @@ function createIconPropValue(icon, library) {
5431
6406
  };
5432
6407
  }
5433
6408
 
6409
+ // src/controls/svg-media-overlay.tsx
6410
+ import * as React86 from "react";
6411
+ import { LibraryIcon as LibraryIcon2, UploadIcon as UploadIcon2 } from "@elementor/icons";
6412
+ import { Box as Box18, Button as Button5, Stack as Stack16, styled as styled10, ThemeProvider, Typography as Typography10 } from "@elementor/ui";
6413
+ import { __ as __36 } from "@wordpress/i18n";
6414
+ var SVG_MEDIA_CONTROL_CONTAINER_TEST_ID = "svg-media-control-container";
6415
+ var SVG_MEDIA_ACTION_GROUP_TEST_ID = "svg-media-action-group";
6416
+ var MEDIA_ACTION_PADDING_Y = 0.75;
6417
+ var MEDIA_ACTION_PADDING_X = 2;
6418
+ var ICON_LIBRARY_PADDING = 0.625;
6419
+ var svgButtonSx = {
6420
+ px: MEDIA_ACTION_PADDING_X,
6421
+ py: MEDIA_ACTION_PADDING_Y
6422
+ };
6423
+ var MediaActionGroup = styled10(Stack16)(({ theme }) => ({
6424
+ display: "inline-flex",
6425
+ flexDirection: "row",
6426
+ alignItems: "stretch",
6427
+ border: "1px solid currentColor",
6428
+ borderRadius: theme.shape.borderRadius,
6429
+ overflow: "hidden",
6430
+ "& .MuiButton-root": {
6431
+ border: "none",
6432
+ borderRadius: 0,
6433
+ lineHeight: 1
6434
+ }
6435
+ }));
6436
+ var SvgMediaOverlay = ({
6437
+ isAdmin,
6438
+ showIconLibrary,
6439
+ buttonGroupRef,
6440
+ onSelectSvg,
6441
+ onUpload,
6442
+ onOpenIconLibrary,
6443
+ infotipTitle,
6444
+ infotipDescription
6445
+ }) => /* @__PURE__ */ React86.createElement(Stack16, { alignItems: "center", gap: 1 }, /* @__PURE__ */ React86.createElement(MediaActionGroup, { ref: buttonGroupRef, direction: "row", "data-testid": SVG_MEDIA_ACTION_GROUP_TEST_ID }, /* @__PURE__ */ React86.createElement(
6446
+ Button5,
6447
+ {
6448
+ size: "tiny",
6449
+ color: "inherit",
6450
+ variant: "text",
6451
+ onClick: onSelectSvg,
6452
+ "aria-label": __36("Select", "elementor"),
6453
+ sx: svgButtonSx
6454
+ },
6455
+ __36("Select", "elementor")
6456
+ ), /* @__PURE__ */ React86.createElement(
6457
+ Box18,
6458
+ {
6459
+ sx: {
6460
+ width: "1px",
6461
+ alignSelf: "stretch",
6462
+ bgcolor: "currentColor",
6463
+ flexShrink: 0
6464
+ }
6465
+ }
6466
+ ), /* @__PURE__ */ React86.createElement(
6467
+ ConditionalControlInfotip,
6468
+ {
6469
+ title: infotipTitle,
6470
+ description: infotipDescription,
6471
+ isEnabled: !isAdmin
6472
+ },
6473
+ /* @__PURE__ */ React86.createElement(Box18, { component: "span", sx: { display: "inline-flex" } }, /* @__PURE__ */ React86.createElement(UploadControl, { isAdmin, onUpload }))
6474
+ )), showIconLibrary ? /* @__PURE__ */ React86.createElement(
6475
+ Button5,
6476
+ {
6477
+ size: "tiny",
6478
+ color: "inherit",
6479
+ variant: "text",
6480
+ startIcon: /* @__PURE__ */ React86.createElement(LibraryIcon2, { sx: { height: "18px", width: "16px" } }),
6481
+ "aria-label": __36("Icon library", "elementor"),
6482
+ onClick: onOpenIconLibrary,
6483
+ sx: {
6484
+ height: "28px",
6485
+ p: ICON_LIBRARY_PADDING,
6486
+ ".MuiButton-icon": { ml: 0 }
6487
+ }
6488
+ },
6489
+ /* @__PURE__ */ React86.createElement(Typography10, null, __36("Icon library", "elementor"))
6490
+ ) : null);
6491
+ var UploadControl = ({ isAdmin, onUpload }) => {
6492
+ if (isAdmin) {
6493
+ return /* @__PURE__ */ React86.createElement(UploadButton, { sx: svgButtonSx, onClick: onUpload });
6494
+ }
6495
+ return /* @__PURE__ */ React86.createElement(ThemeProvider, { colorScheme: "dark" }, /* @__PURE__ */ React86.createElement(UploadButton, { disabled: true, sx: svgButtonSx }));
6496
+ };
6497
+ var UploadButton = ({
6498
+ disabled = false,
6499
+ sx,
6500
+ onClick
6501
+ }) => /* @__PURE__ */ React86.createElement(
6502
+ Button5,
6503
+ {
6504
+ sx,
6505
+ size: "tiny",
6506
+ color: "inherit",
6507
+ variant: "text",
6508
+ disabled,
6509
+ onClick,
6510
+ "aria-label": __36("Upload", "elementor")
6511
+ },
6512
+ /* @__PURE__ */ React86.createElement(UploadIcon2, null)
6513
+ );
6514
+
6515
+ // src/controls/svg-media-preview.tsx
6516
+ import * as React87 from "react";
6517
+ import { Box as Box19, CardMedia as CardMedia2, CircularProgress as CircularProgress4 } from "@elementor/ui";
6518
+ import { __ as __37 } from "@wordpress/i18n";
6519
+ var ICON_PREVIEW_SIZE = 50;
6520
+ var ICON_PREVIEW_COLOR = "#000000";
6521
+ var SvgMediaPreview = ({ isFetching, src, iconClassName, iconLibrary }) => {
6522
+ const shouldLoadIconCatalog = Boolean(iconClassName && iconLibrary);
6523
+ const { data: icons = [], isLoading } = useFontAwesome7Catalog(shouldLoadIconCatalog);
6524
+ const selectedIcon = findFontAwesome7Icon(icons, iconClassName, iconLibrary);
6525
+ if (isFetching || shouldLoadIconCatalog && isLoading) {
6526
+ return /* @__PURE__ */ React87.createElement(CircularProgress4, { role: "progressbar" });
6527
+ }
6528
+ if (selectedIcon) {
6529
+ return /* @__PURE__ */ React87.createElement(IconPreview, { icon: selectedIcon });
6530
+ }
6531
+ if (shouldLoadIconCatalog) {
6532
+ return /* @__PURE__ */ React87.createElement(IconPreviewPlaceholder, null);
6533
+ }
6534
+ return /* @__PURE__ */ React87.createElement(SvgPreview, { src });
6535
+ };
6536
+ var IconPreview = ({ icon }) => /* @__PURE__ */ React87.createElement(Box19, { sx: { color: ICON_PREVIEW_COLOR } }, /* @__PURE__ */ React87.createElement(
6537
+ FontAwesomeGlyph,
6538
+ {
6539
+ icon,
6540
+ size: ICON_PREVIEW_SIZE,
6541
+ color: ICON_PREVIEW_COLOR,
6542
+ label: __37("Preview icon", "elementor")
6543
+ }
6544
+ ));
6545
+ var IconPreviewPlaceholder = () => /* @__PURE__ */ React87.createElement(
6546
+ Box19,
6547
+ {
6548
+ "aria-hidden": true,
6549
+ sx: {
6550
+ width: ICON_PREVIEW_SIZE,
6551
+ height: ICON_PREVIEW_SIZE,
6552
+ color: ICON_PREVIEW_COLOR
6553
+ }
6554
+ }
6555
+ );
6556
+ var SvgPreview = ({ src }) => /* @__PURE__ */ React87.createElement(
6557
+ CardMedia2,
6558
+ {
6559
+ component: "img",
6560
+ image: src,
6561
+ alt: __37("Preview SVG", "elementor"),
6562
+ sx: { maxHeight: "140px", width: `${ICON_PREVIEW_SIZE}px`, color: ICON_PREVIEW_COLOR }
6563
+ }
6564
+ );
6565
+
5434
6566
  // src/controls/svg-media-control.tsx
5435
6567
  var TILE_SIZE = 8;
5436
6568
  var TILE_WHITE = "transparent";
5437
6569
  var TILE_BLACK = "#c1c1c1";
5438
- var ICON_PREVIEW_FONT_SIZE = 50;
5439
6570
  var TILES_GRADIENT_FORMULA = `linear-gradient(45deg, ${TILE_BLACK} 25%, ${TILE_WHITE} 0, ${TILE_WHITE} 75%, ${TILE_BLACK} 0, ${TILE_BLACK})`;
5440
- var StyledCard = styled9(Card2)`
6571
+ var StyledCard = styled11(Card2)`
6572
+ position: relative;
5441
6573
  background-color: white;
5442
6574
  background-image: ${TILES_GRADIENT_FORMULA}, ${TILES_GRADIENT_FORMULA};
5443
6575
  background-size: ${TILE_SIZE}px ${TILE_SIZE}px;
@@ -5446,7 +6578,8 @@ var StyledCard = styled9(Card2)`
5446
6578
  ${TILE_SIZE / 2}px ${TILE_SIZE / 2}px;
5447
6579
  border: none;
5448
6580
  `;
5449
- var StyledCardMediaContainer = styled9(Stack13)`
6581
+ var PREVIEW_ICON_COLOR = "#000000";
6582
+ var StyledCardMediaContainer = styled11(Stack17)`
5450
6583
  position: relative;
5451
6584
  height: 140px;
5452
6585
  object-fit: contain;
@@ -5454,6 +6587,7 @@ var StyledCardMediaContainer = styled9(Stack13)`
5454
6587
  justify-content: center;
5455
6588
  align-items: center;
5456
6589
  background-color: rgba( 255, 255, 255, 0.37 );
6590
+ color: ${PREVIEW_ICON_COLOR};
5457
6591
  `;
5458
6592
  var MODE_BROWSE = { mode: "browse" };
5459
6593
  var MODE_UPLOAD = { mode: "upload" };
@@ -5465,7 +6599,11 @@ var SvgMediaControl = createControl(({ showIconLibrary = false }) => {
5465
6599
  const { data: attachment, isFetching } = useWpMediaAttachment2(id?.value || null);
5466
6600
  const src = attachment?.url ?? url?.value ?? null;
5467
6601
  const { data: allowSvgUpload } = useUnfilteredFilesUpload();
5468
- const [unfilteredModalOpenState, setUnfilteredModalOpenState] = useState16(false);
6602
+ const [unfilteredModalOpenState, setUnfilteredModalOpenState] = useState18(false);
6603
+ const iconLibraryPopoverState = usePopupState10({ variant: "popover" });
6604
+ const controlContainerRef = useRef16(null);
6605
+ const buttonGroupRef = useRef16(null);
6606
+ const [iconLibraryAnchor, setIconLibraryAnchor] = useState18(null);
5469
6607
  const { isAdmin } = useCurrentUserCapabilities();
5470
6608
  const selectedIconClass = showIconLibrary && typeof iconValue?.value?.value === "string" ? iconValue.value.value : null;
5471
6609
  const selectedIconLibrary = showIconLibrary && typeof iconValue?.library?.value === "string" ? iconValue.library.value : null;
@@ -5483,7 +6621,7 @@ var SvgMediaControl = createControl(({ showIconLibrary = false }) => {
5483
6621
  });
5484
6622
  }
5485
6623
  });
5486
- const onCloseUnfilteredModal = (enabled) => {
6624
+ const handleCloseUnfilteredModal = (enabled) => {
5487
6625
  setUnfilteredModalOpenState(false);
5488
6626
  if (enabled) {
5489
6627
  open(MODE_UPLOAD);
@@ -5496,127 +6634,123 @@ var SvgMediaControl = createControl(({ showIconLibrary = false }) => {
5496
6634
  open(openOptions);
5497
6635
  }
5498
6636
  };
6637
+ const handleSelectSvg = () => {
6638
+ handleClick(MODE_BROWSE);
6639
+ };
6640
+ const handleUpload = () => {
6641
+ handleClick(MODE_UPLOAD);
6642
+ };
6643
+ const handleCloseIconLibrary = () => {
6644
+ iconLibraryPopoverState.close();
6645
+ setIconLibraryAnchor(null);
6646
+ };
5499
6647
  const handleIconLibrarySelect = (icon) => {
5500
- if (!showIconLibrary) {
5501
- return;
5502
- }
5503
- if (isSvgLibrarySelection(icon)) {
5504
- setSvgValue({
5505
- id: icon.value.id ? {
5506
- $$type: "image-attachment-id",
5507
- value: icon.value.id
5508
- } : null,
5509
- url: icon.value.url ? urlPropTypeUtil4.create(icon.value.url) : null
5510
- });
6648
+ setIconValue(createIconPropValue(icon.value, icon.library));
6649
+ };
6650
+ const handleOpenIconLibrary = (event) => {
6651
+ const anchor = measureIconLibraryAnchor(controlContainerRef.current, buttonGroupRef.current);
6652
+ if (!anchor) {
5511
6653
  return;
5512
6654
  }
5513
- if (typeof icon.value === "string") {
5514
- setIconValue(createIconPropValue(icon.value, icon.library));
5515
- }
6655
+ setIconLibraryAnchor(anchor);
6656
+ iconLibraryPopoverState.open(event);
5516
6657
  };
5517
- const infotipProps = {
5518
- title: __32("Sorry, you can't upload that file yet.", "elementor"),
5519
- description: /* @__PURE__ */ React81.createElement(React81.Fragment, null, __32("To upload them anyway, ask the site administrator to enable unfiltered", "elementor"), /* @__PURE__ */ React81.createElement("br", null), __32("file uploads.", "elementor")),
5520
- isEnabled: !isAdmin
5521
- };
5522
- return /* @__PURE__ */ React81.createElement(Stack13, { gap: 1, "aria-label": "SVG Control" }, /* @__PURE__ */ React81.createElement(EnableUnfilteredModal, { open: unfilteredModalOpenState, onClose: onCloseUnfilteredModal }), /* @__PURE__ */ React81.createElement(ControlActions, null, /* @__PURE__ */ React81.createElement(StyledCard, { variant: "outlined" }, /* @__PURE__ */ React81.createElement(StyledCardMediaContainer, null, /* @__PURE__ */ React81.createElement(
5523
- SvgMediaPreview,
5524
- {
5525
- isFetching,
5526
- src,
5527
- iconClassName: selectedIconClass,
5528
- iconLibrary: selectedIconLibrary
6658
+ useEffect16(() => {
6659
+ if (!iconLibraryPopoverState.isOpen) {
6660
+ return;
5529
6661
  }
5530
- )), /* @__PURE__ */ React81.createElement(
5531
- CardOverlay2,
6662
+ const handleResize = () => {
6663
+ const nextAnchor = measureIconLibraryAnchor(controlContainerRef.current, buttonGroupRef.current);
6664
+ if (nextAnchor) {
6665
+ setIconLibraryAnchor(nextAnchor);
6666
+ }
6667
+ };
6668
+ window.addEventListener("resize", handleResize);
6669
+ return () => {
6670
+ window.removeEventListener("resize", handleResize);
6671
+ };
6672
+ }, [iconLibraryPopoverState.isOpen]);
6673
+ const iconLibraryWidth = iconLibraryAnchor?.width ?? ICON_LIBRARY_POPOVER_WIDTH;
6674
+ return /* @__PURE__ */ React88.createElement(Stack17, { gap: 1, "aria-label": __38("SVG control", "elementor") }, /* @__PURE__ */ React88.createElement(EnableUnfilteredModal, { open: unfilteredModalOpenState, onClose: handleCloseUnfilteredModal }), showIconLibrary && iconLibraryAnchor ? /* @__PURE__ */ React88.createElement(
6675
+ Popover6,
5532
6676
  {
5533
- sx: {
5534
- "&:hover": {
5535
- backgroundColor: "rgba( 0, 0, 0, 0.75 )"
6677
+ disableScrollLock: true,
6678
+ open: iconLibraryPopoverState.isOpen,
6679
+ onClose: handleCloseIconLibrary,
6680
+ anchorReference: "anchorPosition",
6681
+ anchorPosition: { top: iconLibraryAnchor.top, left: iconLibraryAnchor.left },
6682
+ anchorOrigin: { vertical: "top", horizontal: "left" },
6683
+ transformOrigin: { vertical: "top", horizontal: "left" },
6684
+ marginThreshold: 0,
6685
+ PaperProps: {
6686
+ sx: {
6687
+ width: iconLibraryWidth,
6688
+ minWidth: iconLibraryWidth,
6689
+ maxWidth: iconLibraryWidth,
6690
+ m: 0
5536
6691
  }
5537
6692
  }
5538
6693
  },
5539
- /* @__PURE__ */ React81.createElement(Stack13, { gap: 1 }, /* @__PURE__ */ React81.createElement(
5540
- Button5,
5541
- {
5542
- size: "tiny",
5543
- color: "inherit",
5544
- variant: "outlined",
5545
- onClick: () => handleClick(MODE_BROWSE),
5546
- "aria-label": "Select SVG"
5547
- },
5548
- __32("Select SVG", "elementor")
5549
- ), showIconLibrary ? /* @__PURE__ */ React81.createElement(
5550
- Button5,
6694
+ /* @__PURE__ */ React88.createElement(
6695
+ IconLibraryPopover,
6696
+ {
6697
+ open: iconLibraryPopoverState.isOpen,
6698
+ selectedIconClass,
6699
+ selectedIconLibrary,
6700
+ onSelect: handleIconLibrarySelect,
6701
+ onClose: handleCloseIconLibrary,
6702
+ width: iconLibraryWidth
6703
+ }
6704
+ )
6705
+ ) : null, /* @__PURE__ */ React88.createElement(
6706
+ Box20,
6707
+ {
6708
+ ref: controlContainerRef,
6709
+ "data-testid": SVG_MEDIA_CONTROL_CONTAINER_TEST_ID,
6710
+ sx: { width: "100%" }
6711
+ },
6712
+ /* @__PURE__ */ React88.createElement(ControlActions, null, /* @__PURE__ */ React88.createElement(StyledCard, { variant: "outlined" }, /* @__PURE__ */ React88.createElement(StyledCardMediaContainer, null, /* @__PURE__ */ React88.createElement(
6713
+ SvgMediaPreview,
5551
6714
  {
5552
- size: "tiny",
5553
- variant: "text",
5554
- color: "inherit",
5555
- onClick: () => openIconLibrary({
5556
- selected: selectedIconClass && selectedIconLibrary ? { value: selectedIconClass, library: selectedIconLibrary } : void 0,
5557
- onSelect: handleIconLibrarySelect
5558
- }),
5559
- "aria-label": __32("Icon library", "elementor")
5560
- },
5561
- __32("Icon library", "elementor")
5562
- ) : null, /* @__PURE__ */ React81.createElement(ConditionalControlInfotip, { ...infotipProps }, /* @__PURE__ */ React81.createElement("span", null, /* @__PURE__ */ React81.createElement(ThemeProvider, { colorScheme: isAdmin ? "light" : "dark" }, /* @__PURE__ */ React81.createElement(
5563
- Button5,
6715
+ isFetching,
6716
+ src,
6717
+ iconClassName: selectedIconClass,
6718
+ iconLibrary: selectedIconLibrary
6719
+ }
6720
+ )), /* @__PURE__ */ React88.createElement(
6721
+ CardOverlay2,
5564
6722
  {
5565
- size: "tiny",
5566
- variant: "text",
5567
- color: "inherit",
5568
- startIcon: /* @__PURE__ */ React81.createElement(UploadIcon2, null),
5569
- disabled: !isAdmin,
5570
- onClick: () => isAdmin && handleClick(MODE_UPLOAD),
5571
- "aria-label": "Upload SVG"
6723
+ sx: {
6724
+ "&:hover": {
6725
+ backgroundColor: "rgba( 0, 0, 0, 0.75 )"
6726
+ }
6727
+ }
5572
6728
  },
5573
- __32("Upload", "elementor")
5574
- )))))
5575
- ))));
6729
+ /* @__PURE__ */ React88.createElement(
6730
+ SvgMediaOverlay,
6731
+ {
6732
+ isAdmin,
6733
+ showIconLibrary,
6734
+ buttonGroupRef,
6735
+ onSelectSvg: handleSelectSvg,
6736
+ onUpload: handleUpload,
6737
+ onOpenIconLibrary: handleOpenIconLibrary,
6738
+ infotipTitle: __38("Sorry, you can't upload that file yet.", "elementor"),
6739
+ infotipDescription: /* @__PURE__ */ React88.createElement(UnfilteredUploadInfotipDescription, null)
6740
+ }
6741
+ )
6742
+ )))
6743
+ ));
5576
6744
  });
5577
- function SvgMediaPreview({
5578
- isFetching,
5579
- src,
5580
- iconClassName,
5581
- iconLibrary
5582
- }) {
5583
- useEffect16(() => {
5584
- if (iconLibrary) {
5585
- enqueueIconFonts(iconLibrary);
5586
- }
5587
- }, [iconLibrary]);
5588
- if (isFetching) {
5589
- return /* @__PURE__ */ React81.createElement(CircularProgress3, { role: "progressbar" });
5590
- }
5591
- if (iconClassName) {
5592
- return /* @__PURE__ */ React81.createElement(
5593
- Box15,
5594
- {
5595
- component: "i",
5596
- className: iconClassName,
5597
- "aria-label": __32("Preview icon", "elementor"),
5598
- sx: { fontSize: ICON_PREVIEW_FONT_SIZE }
5599
- }
5600
- );
5601
- }
5602
- return /* @__PURE__ */ React81.createElement(
5603
- CardMedia2,
5604
- {
5605
- component: "img",
5606
- image: src,
5607
- alt: __32("Preview SVG", "elementor"),
5608
- sx: { maxHeight: "140px", width: `${ICON_PREVIEW_FONT_SIZE}px` }
5609
- }
5610
- );
5611
- }
6745
+ var UnfilteredUploadInfotipDescription = () => /* @__PURE__ */ React88.createElement(React88.Fragment, null, __38("To upload them anyway, ask the site administrator to enable unfiltered", "elementor"), /* @__PURE__ */ React88.createElement("br", null), __38("file uploads.", "elementor"));
5612
6746
 
5613
6747
  // src/controls/video-media-control.tsx
5614
- import * as React82 from "react";
6748
+ import * as React89 from "react";
5615
6749
  import { urlPropTypeUtil as urlPropTypeUtil5, videoSrcPropTypeUtil } from "@elementor/editor-props";
5616
6750
  import { UploadIcon as UploadIcon3 } from "@elementor/icons";
5617
- import { Button as Button6, Card as Card3, CardMedia as CardMedia3, CardOverlay as CardOverlay3, CircularProgress as CircularProgress4, Stack as Stack14 } from "@elementor/ui";
6751
+ import { Button as Button6, Card as Card3, CardMedia as CardMedia3, CardOverlay as CardOverlay3, CircularProgress as CircularProgress5, Stack as Stack18 } from "@elementor/ui";
5618
6752
  import { useWpMediaAttachment as useWpMediaAttachment3, useWpMediaFrame as useWpMediaFrame3 } from "@elementor/wp-media";
5619
- import { __ as __33 } from "@wordpress/i18n";
6753
+ import { __ as __39 } from "@wordpress/i18n";
5620
6754
  var PLACEHOLDER_IMAGE = window.elementorCommon?.config?.urls?.assets + "/shapes/play-triangle.svg";
5621
6755
  var VideoMediaControl = createControl(() => {
5622
6756
  const { value, setValue, propType } = useBoundProp(videoSrcPropTypeUtil);
@@ -5646,7 +6780,7 @@ var VideoMediaControl = createControl(() => {
5646
6780
  });
5647
6781
  }
5648
6782
  });
5649
- return /* @__PURE__ */ React82.createElement(ControlActions, null, /* @__PURE__ */ React82.createElement(Card3, { variant: "outlined" }, /* @__PURE__ */ React82.createElement(
6783
+ return /* @__PURE__ */ React89.createElement(ControlActions, null, /* @__PURE__ */ React89.createElement(Card3, { variant: "outlined" }, /* @__PURE__ */ React89.createElement(
5650
6784
  CardMedia3,
5651
6785
  {
5652
6786
  sx: {
@@ -5661,8 +6795,8 @@ var VideoMediaControl = createControl(() => {
5661
6795
  alignItems: "center"
5662
6796
  }
5663
6797
  },
5664
- /* @__PURE__ */ React82.createElement(VideoPreview, { isFetching, videoUrl })
5665
- ), /* @__PURE__ */ React82.createElement(CardOverlay3, null, /* @__PURE__ */ React82.createElement(Stack14, { gap: 1 }, /* @__PURE__ */ React82.createElement(
6798
+ /* @__PURE__ */ React89.createElement(VideoPreview, { isFetching, videoUrl })
6799
+ ), /* @__PURE__ */ React89.createElement(CardOverlay3, null, /* @__PURE__ */ React89.createElement(Stack18, { gap: 1 }, /* @__PURE__ */ React89.createElement(
5666
6800
  Button6,
5667
6801
  {
5668
6802
  size: "tiny",
@@ -5670,18 +6804,18 @@ var VideoMediaControl = createControl(() => {
5670
6804
  variant: "outlined",
5671
6805
  onClick: () => open({ mode: "browse" })
5672
6806
  },
5673
- __33("Select video", "elementor")
5674
- ), /* @__PURE__ */ React82.createElement(
6807
+ __39("Select video", "elementor")
6808
+ ), /* @__PURE__ */ React89.createElement(
5675
6809
  Button6,
5676
6810
  {
5677
6811
  size: "tiny",
5678
6812
  variant: "text",
5679
6813
  color: "inherit",
5680
- startIcon: /* @__PURE__ */ React82.createElement(UploadIcon3, null),
6814
+ startIcon: /* @__PURE__ */ React89.createElement(UploadIcon3, null),
5681
6815
  onClick: () => open({ mode: "upload" })
5682
6816
  },
5683
- __33("Upload", "elementor")
5684
- ), /* @__PURE__ */ React82.createElement(
6817
+ __39("Upload", "elementor")
6818
+ ), /* @__PURE__ */ React89.createElement(
5685
6819
  Button6,
5686
6820
  {
5687
6821
  size: "tiny",
@@ -5689,18 +6823,18 @@ var VideoMediaControl = createControl(() => {
5689
6823
  color: "inherit",
5690
6824
  onClick: () => open({ mode: "url", currentUrl: currentUrlForModal })
5691
6825
  },
5692
- __33("Insert from URL", "elementor")
6826
+ __39("Insert from URL", "elementor")
5693
6827
  )))));
5694
6828
  });
5695
6829
  var VideoPreview = ({ isFetching = false, videoUrl }) => {
5696
6830
  if (isFetching) {
5697
- return /* @__PURE__ */ React82.createElement(CircularProgress4, null);
6831
+ return /* @__PURE__ */ React89.createElement(CircularProgress5, null);
5698
6832
  }
5699
6833
  if (videoUrl) {
5700
- return /* @__PURE__ */ React82.createElement(
6834
+ return /* @__PURE__ */ React89.createElement(
5701
6835
  "video",
5702
6836
  {
5703
- "aria-label": __33("Video preview", "elementor"),
6837
+ "aria-label": __39("Video preview", "elementor"),
5704
6838
  src: videoUrl,
5705
6839
  muted: true,
5706
6840
  preload: "metadata",
@@ -5713,33 +6847,33 @@ var VideoPreview = ({ isFetching = false, videoUrl }) => {
5713
6847
  }
5714
6848
  );
5715
6849
  }
5716
- return /* @__PURE__ */ React82.createElement("img", { src: PLACEHOLDER_IMAGE, alt: "No video selected" });
6850
+ return /* @__PURE__ */ React89.createElement("img", { src: PLACEHOLDER_IMAGE, alt: "No video selected" });
5717
6851
  };
5718
6852
 
5719
6853
  // src/controls/background-control/background-control.tsx
5720
- import * as React89 from "react";
6854
+ import * as React96 from "react";
5721
6855
  import { backgroundPropTypeUtil } from "@elementor/editor-props";
5722
6856
  import { Grid as Grid18 } from "@elementor/ui";
5723
- import { __ as __39 } from "@wordpress/i18n";
6857
+ import { __ as __45 } from "@wordpress/i18n";
5724
6858
 
5725
6859
  // src/controls/background-control/background-overlay/background-overlay-repeater-control.tsx
5726
- import * as React88 from "react";
6860
+ import * as React95 from "react";
5727
6861
  import {
5728
6862
  backgroundColorOverlayPropTypeUtil as backgroundColorOverlayPropTypeUtil2,
5729
6863
  backgroundImageOverlayPropTypeUtil as backgroundImageOverlayPropTypeUtil2,
5730
6864
  backgroundOverlayPropTypeUtil,
5731
6865
  colorPropTypeUtil as colorPropTypeUtil3
5732
6866
  } from "@elementor/editor-props";
5733
- import { Box as Box16, CardMedia as CardMedia4, styled as styled10, Tab, TabPanel, Tabs, UnstableColorIndicator as UnstableColorIndicator3 } from "@elementor/ui";
6867
+ import { Box as Box21, CardMedia as CardMedia4, styled as styled12, Tab, TabPanel, Tabs, UnstableColorIndicator as UnstableColorIndicator3 } from "@elementor/ui";
5734
6868
  import { useWpMediaAttachment as useWpMediaAttachment4 } from "@elementor/wp-media";
5735
- import { __ as __38 } from "@wordpress/i18n";
6869
+ import { __ as __44 } from "@wordpress/i18n";
5736
6870
 
5737
6871
  // src/env.ts
5738
6872
  import { parseEnv } from "@elementor/env";
5739
6873
  var { env } = parseEnv("@elementor/editor-controls");
5740
6874
 
5741
6875
  // src/controls/background-control/background-gradient-color-control.tsx
5742
- import * as React83 from "react";
6876
+ import * as React90 from "react";
5743
6877
  import {
5744
6878
  backgroundGradientOverlayPropTypeUtil,
5745
6879
  colorPropTypeUtil as colorPropTypeUtil2,
@@ -5786,7 +6920,7 @@ var BackgroundGradientColorControl = createControl(() => {
5786
6920
  positions: positions?.value.split(" ")
5787
6921
  };
5788
6922
  };
5789
- return /* @__PURE__ */ React83.createElement(
6923
+ return /* @__PURE__ */ React90.createElement(
5790
6924
  UnstableGradientBox,
5791
6925
  {
5792
6926
  sx: { width: "auto", padding: 1.5 },
@@ -5811,53 +6945,53 @@ var initialBackgroundGradientOverlay = backgroundGradientOverlayPropTypeUtil.cre
5811
6945
  });
5812
6946
 
5813
6947
  // src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-attachment.tsx
5814
- import * as React84 from "react";
6948
+ import * as React91 from "react";
5815
6949
  import { PinIcon, PinnedOffIcon } from "@elementor/icons";
5816
6950
  import { Grid as Grid14 } from "@elementor/ui";
5817
- import { __ as __34 } from "@wordpress/i18n";
6951
+ import { __ as __40 } from "@wordpress/i18n";
5818
6952
  var attachmentControlOptions = [
5819
6953
  {
5820
6954
  value: "fixed",
5821
- label: __34("Fixed", "elementor"),
5822
- renderContent: ({ size }) => /* @__PURE__ */ React84.createElement(PinIcon, { fontSize: size }),
6955
+ label: __40("Fixed", "elementor"),
6956
+ renderContent: ({ size }) => /* @__PURE__ */ React91.createElement(PinIcon, { fontSize: size }),
5823
6957
  showTooltip: true
5824
6958
  },
5825
6959
  {
5826
6960
  value: "scroll",
5827
- label: __34("Scroll", "elementor"),
5828
- renderContent: ({ size }) => /* @__PURE__ */ React84.createElement(PinnedOffIcon, { fontSize: size }),
6961
+ label: __40("Scroll", "elementor"),
6962
+ renderContent: ({ size }) => /* @__PURE__ */ React91.createElement(PinnedOffIcon, { fontSize: size }),
5829
6963
  showTooltip: true
5830
6964
  }
5831
6965
  ];
5832
6966
  var BackgroundImageOverlayAttachment = () => {
5833
- return /* @__PURE__ */ React84.createElement(PopoverGridContainer, null, /* @__PURE__ */ React84.createElement(Grid14, { item: true, xs: 6 }, /* @__PURE__ */ React84.createElement(ControlFormLabel, null, __34("Attachment", "elementor"))), /* @__PURE__ */ React84.createElement(Grid14, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end", overflow: "hidden" } }, /* @__PURE__ */ React84.createElement(ToggleControl, { options: attachmentControlOptions })));
6967
+ return /* @__PURE__ */ React91.createElement(PopoverGridContainer, null, /* @__PURE__ */ React91.createElement(Grid14, { item: true, xs: 6 }, /* @__PURE__ */ React91.createElement(ControlFormLabel, null, __40("Attachment", "elementor"))), /* @__PURE__ */ React91.createElement(Grid14, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end", overflow: "hidden" } }, /* @__PURE__ */ React91.createElement(ToggleControl, { options: attachmentControlOptions })));
5834
6968
  };
5835
6969
 
5836
6970
  // src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-position.tsx
5837
- import * as React85 from "react";
5838
- import { useRef as useRef15 } from "react";
6971
+ import * as React92 from "react";
6972
+ import { useRef as useRef17 } from "react";
5839
6973
  import { backgroundImagePositionOffsetPropTypeUtil, stringPropTypeUtil as stringPropTypeUtil16 } from "@elementor/editor-props";
5840
6974
  import { MenuListItem as MenuListItem6 } from "@elementor/editor-ui";
5841
6975
  import { LetterXIcon, LetterYIcon } from "@elementor/icons";
5842
6976
  import { Grid as Grid15, Select as Select4 } from "@elementor/ui";
5843
- import { __ as __35 } from "@wordpress/i18n";
6977
+ import { __ as __41 } from "@wordpress/i18n";
5844
6978
  var backgroundPositionOptions = [
5845
- { label: __35("Center center", "elementor"), value: "center center" },
5846
- { label: __35("Center left", "elementor"), value: "center left" },
5847
- { label: __35("Center right", "elementor"), value: "center right" },
5848
- { label: __35("Top center", "elementor"), value: "top center" },
5849
- { label: __35("Top left", "elementor"), value: "top left" },
5850
- { label: __35("Top right", "elementor"), value: "top right" },
5851
- { label: __35("Bottom center", "elementor"), value: "bottom center" },
5852
- { label: __35("Bottom left", "elementor"), value: "bottom left" },
5853
- { label: __35("Bottom right", "elementor"), value: "bottom right" },
5854
- { label: __35("Custom", "elementor"), value: "custom" }
6979
+ { label: __41("Center center", "elementor"), value: "center center" },
6980
+ { label: __41("Center left", "elementor"), value: "center left" },
6981
+ { label: __41("Center right", "elementor"), value: "center right" },
6982
+ { label: __41("Top center", "elementor"), value: "top center" },
6983
+ { label: __41("Top left", "elementor"), value: "top left" },
6984
+ { label: __41("Top right", "elementor"), value: "top right" },
6985
+ { label: __41("Bottom center", "elementor"), value: "bottom center" },
6986
+ { label: __41("Bottom left", "elementor"), value: "bottom left" },
6987
+ { label: __41("Bottom right", "elementor"), value: "bottom right" },
6988
+ { label: __41("Custom", "elementor"), value: "custom" }
5855
6989
  ];
5856
6990
  var BackgroundImageOverlayPosition = () => {
5857
6991
  const backgroundImageOffsetContext = useBoundProp(backgroundImagePositionOffsetPropTypeUtil);
5858
6992
  const stringPropContext = useBoundProp(stringPropTypeUtil16);
5859
6993
  const isCustom = !!backgroundImageOffsetContext.value;
5860
- const rowRef = useRef15(null);
6994
+ const rowRef = useRef17(null);
5861
6995
  const handlePositionChange = (event) => {
5862
6996
  const value = event.target.value || null;
5863
6997
  if (value === "custom") {
@@ -5866,7 +7000,7 @@ var BackgroundImageOverlayPosition = () => {
5866
7000
  stringPropContext.setValue(value);
5867
7001
  }
5868
7002
  };
5869
- return /* @__PURE__ */ React85.createElement(Grid15, { container: true, spacing: 1.5 }, /* @__PURE__ */ React85.createElement(Grid15, { item: true, xs: 12 }, /* @__PURE__ */ React85.createElement(PopoverGridContainer, null, /* @__PURE__ */ React85.createElement(Grid15, { item: true, xs: 6 }, /* @__PURE__ */ React85.createElement(ControlFormLabel, null, __35("Position", "elementor"))), /* @__PURE__ */ React85.createElement(Grid15, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end", overflow: "hidden" } }, /* @__PURE__ */ React85.createElement(ControlActions, null, /* @__PURE__ */ React85.createElement(
7003
+ return /* @__PURE__ */ React92.createElement(Grid15, { container: true, spacing: 1.5 }, /* @__PURE__ */ React92.createElement(Grid15, { item: true, xs: 12 }, /* @__PURE__ */ React92.createElement(PopoverGridContainer, null, /* @__PURE__ */ React92.createElement(Grid15, { item: true, xs: 6 }, /* @__PURE__ */ React92.createElement(ControlFormLabel, null, __41("Position", "elementor"))), /* @__PURE__ */ React92.createElement(Grid15, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end", overflow: "hidden" } }, /* @__PURE__ */ React92.createElement(ControlActions, null, /* @__PURE__ */ React92.createElement(
5870
7004
  Select4,
5871
7005
  {
5872
7006
  fullWidth: true,
@@ -5875,18 +7009,18 @@ var BackgroundImageOverlayPosition = () => {
5875
7009
  disabled: stringPropContext.disabled,
5876
7010
  value: (backgroundImageOffsetContext.value ? "custom" : stringPropContext.value) ?? ""
5877
7011
  },
5878
- backgroundPositionOptions.map(({ label, value }) => /* @__PURE__ */ React85.createElement(MenuListItem6, { key: value, value: value ?? "" }, label))
5879
- ))))), isCustom ? /* @__PURE__ */ React85.createElement(PropProvider, { ...backgroundImageOffsetContext }, /* @__PURE__ */ React85.createElement(Grid15, { item: true, xs: 12 }, /* @__PURE__ */ React85.createElement(Grid15, { container: true, spacing: 1.5, ref: rowRef }, /* @__PURE__ */ React85.createElement(Grid15, { item: true, xs: 6 }, /* @__PURE__ */ React85.createElement(PropKeyProvider, { bind: "x" }, /* @__PURE__ */ React85.createElement(
7012
+ backgroundPositionOptions.map(({ label, value }) => /* @__PURE__ */ React92.createElement(MenuListItem6, { key: value, value: value ?? "" }, label))
7013
+ ))))), isCustom ? /* @__PURE__ */ React92.createElement(PropProvider, { ...backgroundImageOffsetContext }, /* @__PURE__ */ React92.createElement(Grid15, { item: true, xs: 12 }, /* @__PURE__ */ React92.createElement(Grid15, { container: true, spacing: 1.5, ref: rowRef }, /* @__PURE__ */ React92.createElement(Grid15, { item: true, xs: 6 }, /* @__PURE__ */ React92.createElement(PropKeyProvider, { bind: "x" }, /* @__PURE__ */ React92.createElement(
5880
7014
  SizeControl,
5881
7015
  {
5882
- startIcon: /* @__PURE__ */ React85.createElement(LetterXIcon, { fontSize: "tiny" }),
7016
+ startIcon: /* @__PURE__ */ React92.createElement(LetterXIcon, { fontSize: "tiny" }),
5883
7017
  anchorRef: rowRef,
5884
7018
  min: -Number.MAX_SAFE_INTEGER
5885
7019
  }
5886
- ))), /* @__PURE__ */ React85.createElement(Grid15, { item: true, xs: 6 }, /* @__PURE__ */ React85.createElement(PropKeyProvider, { bind: "y" }, /* @__PURE__ */ React85.createElement(
7020
+ ))), /* @__PURE__ */ React92.createElement(Grid15, { item: true, xs: 6 }, /* @__PURE__ */ React92.createElement(PropKeyProvider, { bind: "y" }, /* @__PURE__ */ React92.createElement(
5887
7021
  SizeControl,
5888
7022
  {
5889
- startIcon: /* @__PURE__ */ React85.createElement(LetterYIcon, { fontSize: "tiny" }),
7023
+ startIcon: /* @__PURE__ */ React92.createElement(LetterYIcon, { fontSize: "tiny" }),
5890
7024
  anchorRef: rowRef,
5891
7025
  min: -Number.MAX_SAFE_INTEGER
5892
7026
  }
@@ -5894,43 +7028,43 @@ var BackgroundImageOverlayPosition = () => {
5894
7028
  };
5895
7029
 
5896
7030
  // src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-repeat.tsx
5897
- import * as React86 from "react";
7031
+ import * as React93 from "react";
5898
7032
  import { DotsHorizontalIcon, DotsVerticalIcon, GridDotsIcon, XIcon as XIcon3 } from "@elementor/icons";
5899
7033
  import { Grid as Grid16 } from "@elementor/ui";
5900
- import { __ as __36 } from "@wordpress/i18n";
7034
+ import { __ as __42 } from "@wordpress/i18n";
5901
7035
  var repeatControlOptions = [
5902
7036
  {
5903
7037
  value: "repeat",
5904
- label: __36("Repeat", "elementor"),
5905
- renderContent: ({ size }) => /* @__PURE__ */ React86.createElement(GridDotsIcon, { fontSize: size }),
7038
+ label: __42("Repeat", "elementor"),
7039
+ renderContent: ({ size }) => /* @__PURE__ */ React93.createElement(GridDotsIcon, { fontSize: size }),
5906
7040
  showTooltip: true
5907
7041
  },
5908
7042
  {
5909
7043
  value: "repeat-x",
5910
- label: __36("Repeat-x", "elementor"),
5911
- renderContent: ({ size }) => /* @__PURE__ */ React86.createElement(DotsHorizontalIcon, { fontSize: size }),
7044
+ label: __42("Repeat-x", "elementor"),
7045
+ renderContent: ({ size }) => /* @__PURE__ */ React93.createElement(DotsHorizontalIcon, { fontSize: size }),
5912
7046
  showTooltip: true
5913
7047
  },
5914
7048
  {
5915
7049
  value: "repeat-y",
5916
- label: __36("Repeat-y", "elementor"),
5917
- renderContent: ({ size }) => /* @__PURE__ */ React86.createElement(DotsVerticalIcon, { fontSize: size }),
7050
+ label: __42("Repeat-y", "elementor"),
7051
+ renderContent: ({ size }) => /* @__PURE__ */ React93.createElement(DotsVerticalIcon, { fontSize: size }),
5918
7052
  showTooltip: true
5919
7053
  },
5920
7054
  {
5921
7055
  value: "no-repeat",
5922
- label: __36("No-repeat", "elementor"),
5923
- renderContent: ({ size }) => /* @__PURE__ */ React86.createElement(XIcon3, { fontSize: size }),
7056
+ label: __42("No-repeat", "elementor"),
7057
+ renderContent: ({ size }) => /* @__PURE__ */ React93.createElement(XIcon3, { fontSize: size }),
5924
7058
  showTooltip: true
5925
7059
  }
5926
7060
  ];
5927
7061
  var BackgroundImageOverlayRepeat = () => {
5928
- return /* @__PURE__ */ React86.createElement(PopoverGridContainer, null, /* @__PURE__ */ React86.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React86.createElement(ControlFormLabel, null, __36("Repeat", "elementor"))), /* @__PURE__ */ React86.createElement(Grid16, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React86.createElement(ToggleControl, { options: repeatControlOptions })));
7062
+ return /* @__PURE__ */ React93.createElement(PopoverGridContainer, null, /* @__PURE__ */ React93.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React93.createElement(ControlFormLabel, null, __42("Repeat", "elementor"))), /* @__PURE__ */ React93.createElement(Grid16, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React93.createElement(ToggleControl, { options: repeatControlOptions })));
5929
7063
  };
5930
7064
 
5931
7065
  // src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-size.tsx
5932
- import * as React87 from "react";
5933
- import { useRef as useRef16 } from "react";
7066
+ import * as React94 from "react";
7067
+ import { useRef as useRef18 } from "react";
5934
7068
  import { backgroundImageSizeScalePropTypeUtil, stringPropTypeUtil as stringPropTypeUtil17 } from "@elementor/editor-props";
5935
7069
  import {
5936
7070
  ArrowBarBothIcon,
@@ -5941,30 +7075,30 @@ import {
5941
7075
  PencilIcon
5942
7076
  } from "@elementor/icons";
5943
7077
  import { Grid as Grid17 } from "@elementor/ui";
5944
- import { __ as __37 } from "@wordpress/i18n";
7078
+ import { __ as __43 } from "@wordpress/i18n";
5945
7079
  var sizeControlOptions = [
5946
7080
  {
5947
7081
  value: "auto",
5948
- label: __37("Auto", "elementor"),
5949
- renderContent: ({ size }) => /* @__PURE__ */ React87.createElement(LetterAIcon, { fontSize: size }),
7082
+ label: __43("Auto", "elementor"),
7083
+ renderContent: ({ size }) => /* @__PURE__ */ React94.createElement(LetterAIcon, { fontSize: size }),
5950
7084
  showTooltip: true
5951
7085
  },
5952
7086
  {
5953
7087
  value: "cover",
5954
- label: __37("Cover", "elementor"),
5955
- renderContent: ({ size }) => /* @__PURE__ */ React87.createElement(ArrowsMaximizeIcon, { fontSize: size }),
7088
+ label: __43("Cover", "elementor"),
7089
+ renderContent: ({ size }) => /* @__PURE__ */ React94.createElement(ArrowsMaximizeIcon, { fontSize: size }),
5956
7090
  showTooltip: true
5957
7091
  },
5958
7092
  {
5959
7093
  value: "contain",
5960
- label: __37("Contain", "elementor"),
5961
- renderContent: ({ size }) => /* @__PURE__ */ React87.createElement(ArrowBarBothIcon, { fontSize: size }),
7094
+ label: __43("Contain", "elementor"),
7095
+ renderContent: ({ size }) => /* @__PURE__ */ React94.createElement(ArrowBarBothIcon, { fontSize: size }),
5962
7096
  showTooltip: true
5963
7097
  },
5964
7098
  {
5965
7099
  value: "custom",
5966
- label: __37("Custom", "elementor"),
5967
- renderContent: ({ size }) => /* @__PURE__ */ React87.createElement(PencilIcon, { fontSize: size }),
7100
+ label: __43("Custom", "elementor"),
7101
+ renderContent: ({ size }) => /* @__PURE__ */ React94.createElement(PencilIcon, { fontSize: size }),
5968
7102
  showTooltip: true
5969
7103
  }
5970
7104
  ];
@@ -5972,7 +7106,7 @@ var BackgroundImageOverlaySize = () => {
5972
7106
  const backgroundImageScaleContext = useBoundProp(backgroundImageSizeScalePropTypeUtil);
5973
7107
  const stringPropContext = useBoundProp(stringPropTypeUtil17);
5974
7108
  const isCustom = !!backgroundImageScaleContext.value;
5975
- const rowRef = useRef16(null);
7109
+ const rowRef = useRef18(null);
5976
7110
  const handleSizeChange = (size) => {
5977
7111
  if (size === "custom") {
5978
7112
  backgroundImageScaleContext.setValue({ width: null, height: null });
@@ -5980,7 +7114,7 @@ var BackgroundImageOverlaySize = () => {
5980
7114
  stringPropContext.setValue(size);
5981
7115
  }
5982
7116
  };
5983
- return /* @__PURE__ */ React87.createElement(Grid17, { container: true, spacing: 1.5 }, /* @__PURE__ */ React87.createElement(Grid17, { item: true, xs: 12 }, /* @__PURE__ */ React87.createElement(PopoverGridContainer, null, /* @__PURE__ */ React87.createElement(Grid17, { item: true, xs: 6 }, /* @__PURE__ */ React87.createElement(ControlFormLabel, null, __37("Size", "elementor"))), /* @__PURE__ */ React87.createElement(Grid17, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React87.createElement(
7117
+ return /* @__PURE__ */ React94.createElement(Grid17, { container: true, spacing: 1.5 }, /* @__PURE__ */ React94.createElement(Grid17, { item: true, xs: 12 }, /* @__PURE__ */ React94.createElement(PopoverGridContainer, null, /* @__PURE__ */ React94.createElement(Grid17, { item: true, xs: 6 }, /* @__PURE__ */ React94.createElement(ControlFormLabel, null, __43("Size", "elementor"))), /* @__PURE__ */ React94.createElement(Grid17, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React94.createElement(
5984
7118
  ControlToggleButtonGroup,
5985
7119
  {
5986
7120
  exclusive: true,
@@ -5989,17 +7123,17 @@ var BackgroundImageOverlaySize = () => {
5989
7123
  disabled: stringPropContext.disabled,
5990
7124
  value: backgroundImageScaleContext.value ? "custom" : stringPropContext.value
5991
7125
  }
5992
- )))), isCustom ? /* @__PURE__ */ React87.createElement(PropProvider, { ...backgroundImageScaleContext }, /* @__PURE__ */ React87.createElement(Grid17, { item: true, xs: 12, ref: rowRef }, /* @__PURE__ */ React87.createElement(PopoverGridContainer, null, /* @__PURE__ */ React87.createElement(Grid17, { item: true, xs: 6 }, /* @__PURE__ */ React87.createElement(PropKeyProvider, { bind: "width" }, /* @__PURE__ */ React87.createElement(
7126
+ )))), isCustom ? /* @__PURE__ */ React94.createElement(PropProvider, { ...backgroundImageScaleContext }, /* @__PURE__ */ React94.createElement(Grid17, { item: true, xs: 12, ref: rowRef }, /* @__PURE__ */ React94.createElement(PopoverGridContainer, null, /* @__PURE__ */ React94.createElement(Grid17, { item: true, xs: 6 }, /* @__PURE__ */ React94.createElement(PropKeyProvider, { bind: "width" }, /* @__PURE__ */ React94.createElement(
5993
7127
  SizeControl,
5994
7128
  {
5995
- startIcon: /* @__PURE__ */ React87.createElement(ArrowsMoveHorizontalIcon2, { fontSize: "tiny" }),
7129
+ startIcon: /* @__PURE__ */ React94.createElement(ArrowsMoveHorizontalIcon2, { fontSize: "tiny" }),
5996
7130
  extendedOptions: ["auto"],
5997
7131
  anchorRef: rowRef
5998
7132
  }
5999
- ))), /* @__PURE__ */ React87.createElement(Grid17, { item: true, xs: 6 }, /* @__PURE__ */ React87.createElement(PropKeyProvider, { bind: "height" }, /* @__PURE__ */ React87.createElement(
7133
+ ))), /* @__PURE__ */ React94.createElement(Grid17, { item: true, xs: 6 }, /* @__PURE__ */ React94.createElement(PropKeyProvider, { bind: "height" }, /* @__PURE__ */ React94.createElement(
6000
7134
  SizeControl,
6001
7135
  {
6002
- startIcon: /* @__PURE__ */ React87.createElement(ArrowsMoveVerticalIcon2, { fontSize: "tiny" }),
7136
+ startIcon: /* @__PURE__ */ React94.createElement(ArrowsMoveVerticalIcon2, { fontSize: "tiny" }),
6003
7137
  extendedOptions: ["auto"],
6004
7138
  anchorRef: rowRef
6005
7139
  }
@@ -6007,7 +7141,7 @@ var BackgroundImageOverlaySize = () => {
6007
7141
  };
6008
7142
 
6009
7143
  // src/controls/background-control/background-overlay/use-background-tabs-history.ts
6010
- import { useRef as useRef17 } from "react";
7144
+ import { useRef as useRef19 } from "react";
6011
7145
  import {
6012
7146
  backgroundColorOverlayPropTypeUtil,
6013
7147
  backgroundGradientOverlayPropTypeUtil as backgroundGradientOverlayPropTypeUtil2,
@@ -6032,7 +7166,7 @@ var useBackgroundTabsHistory = ({
6032
7166
  return "image";
6033
7167
  };
6034
7168
  const { getTabsProps, getTabProps, getTabPanelProps } = useTabs(getCurrentOverlayType());
6035
- const valuesHistory = useRef17({
7169
+ const valuesHistory = useRef19({
6036
7170
  image: initialBackgroundImageOverlay,
6037
7171
  color: initialBackgroundColorOverlay2,
6038
7172
  gradient: initialBackgroundGradientOverlay2
@@ -6100,29 +7234,29 @@ var getInitialBackgroundOverlay = () => ({
6100
7234
  }
6101
7235
  });
6102
7236
  var backgroundResolutionOptions = [
6103
- { label: __38("Thumbnail - 150 x 150", "elementor"), value: "thumbnail" },
6104
- { label: __38("Medium - 300 x 300", "elementor"), value: "medium" },
6105
- { label: __38("Large 1024 x 1024", "elementor"), value: "large" },
6106
- { label: __38("Full", "elementor"), value: "full" }
7237
+ { label: __44("Thumbnail - 150 x 150", "elementor"), value: "thumbnail" },
7238
+ { label: __44("Medium - 300 x 300", "elementor"), value: "medium" },
7239
+ { label: __44("Large 1024 x 1024", "elementor"), value: "large" },
7240
+ { label: __44("Full", "elementor"), value: "full" }
6107
7241
  ];
6108
7242
  var BackgroundOverlayRepeaterControl = createControl(() => {
6109
7243
  const { propType, value: overlayValues, setValue } = useBoundProp(backgroundOverlayPropTypeUtil);
6110
- return /* @__PURE__ */ React88.createElement(PropProvider, { propType, value: overlayValues, setValue }, /* @__PURE__ */ React88.createElement(
7244
+ return /* @__PURE__ */ React95.createElement(PropProvider, { propType, value: overlayValues, setValue }, /* @__PURE__ */ React95.createElement(
6111
7245
  ControlRepeater,
6112
7246
  {
6113
7247
  initial: getInitialBackgroundOverlay(),
6114
7248
  propTypeUtil: backgroundOverlayPropTypeUtil
6115
7249
  },
6116
- /* @__PURE__ */ React88.createElement(RepeaterHeader, { label: __38("Overlay", "elementor") }, /* @__PURE__ */ React88.createElement(TooltipAddItemAction, { newItemIndex: 0 })),
6117
- /* @__PURE__ */ React88.createElement(ItemsContainer, null, /* @__PURE__ */ React88.createElement(
7250
+ /* @__PURE__ */ React95.createElement(RepeaterHeader, { label: __44("Overlay", "elementor") }, /* @__PURE__ */ React95.createElement(TooltipAddItemAction, { newItemIndex: 0 })),
7251
+ /* @__PURE__ */ React95.createElement(ItemsContainer, null, /* @__PURE__ */ React95.createElement(
6118
7252
  Item,
6119
7253
  {
6120
7254
  Icon: ItemIcon2,
6121
7255
  Label: ItemLabel3,
6122
- actions: /* @__PURE__ */ React88.createElement(React88.Fragment, null, /* @__PURE__ */ React88.createElement(DuplicateItemAction, null), /* @__PURE__ */ React88.createElement(DisableItemAction, null), /* @__PURE__ */ React88.createElement(RemoveItemAction, null))
7256
+ actions: /* @__PURE__ */ React95.createElement(React95.Fragment, null, /* @__PURE__ */ React95.createElement(DuplicateItemAction, null), /* @__PURE__ */ React95.createElement(DisableItemAction, null), /* @__PURE__ */ React95.createElement(RemoveItemAction, null))
6123
7257
  }
6124
7258
  )),
6125
- /* @__PURE__ */ React88.createElement(EditItemPopover, null, /* @__PURE__ */ React88.createElement(ItemContent2, null))
7259
+ /* @__PURE__ */ React95.createElement(EditItemPopover, null, /* @__PURE__ */ React95.createElement(ItemContent2, null))
6126
7260
  ));
6127
7261
  });
6128
7262
  var ItemContent2 = () => {
@@ -6132,27 +7266,27 @@ var ItemContent2 = () => {
6132
7266
  gradient: initialBackgroundGradientOverlay.value
6133
7267
  });
6134
7268
  const { rowRef } = useRepeaterContext();
6135
- return /* @__PURE__ */ React88.createElement(Box16, { sx: { width: "100%" } }, /* @__PURE__ */ React88.createElement(Box16, { sx: { borderBottom: 1, borderColor: "divider" } }, /* @__PURE__ */ React88.createElement(
7269
+ return /* @__PURE__ */ React95.createElement(Box21, { sx: { width: "100%" } }, /* @__PURE__ */ React95.createElement(Box21, { sx: { borderBottom: 1, borderColor: "divider" } }, /* @__PURE__ */ React95.createElement(
6136
7270
  Tabs,
6137
7271
  {
6138
7272
  size: "small",
6139
7273
  variant: "fullWidth",
6140
7274
  ...getTabsProps(),
6141
- "aria-label": __38("Background Overlay", "elementor")
7275
+ "aria-label": __44("Background Overlay", "elementor")
6142
7276
  },
6143
- /* @__PURE__ */ React88.createElement(Tab, { label: __38("Image", "elementor"), ...getTabProps("image") }),
6144
- /* @__PURE__ */ React88.createElement(Tab, { label: __38("Gradient", "elementor"), ...getTabProps("gradient") }),
6145
- /* @__PURE__ */ React88.createElement(Tab, { label: __38("Color", "elementor"), ...getTabProps("color") })
6146
- )), /* @__PURE__ */ React88.createElement(TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps("image") }, /* @__PURE__ */ React88.createElement(PopoverContent, null, /* @__PURE__ */ React88.createElement(ImageOverlayContent, null))), /* @__PURE__ */ React88.createElement(TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps("gradient") }, /* @__PURE__ */ React88.createElement(BackgroundGradientColorControl, null)), /* @__PURE__ */ React88.createElement(TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps("color") }, /* @__PURE__ */ React88.createElement(PopoverContent, null, /* @__PURE__ */ React88.createElement(ColorOverlayContent, { anchorEl: rowRef }))));
7277
+ /* @__PURE__ */ React95.createElement(Tab, { label: __44("Image", "elementor"), ...getTabProps("image") }),
7278
+ /* @__PURE__ */ React95.createElement(Tab, { label: __44("Gradient", "elementor"), ...getTabProps("gradient") }),
7279
+ /* @__PURE__ */ React95.createElement(Tab, { label: __44("Color", "elementor"), ...getTabProps("color") })
7280
+ )), /* @__PURE__ */ React95.createElement(TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps("image") }, /* @__PURE__ */ React95.createElement(PopoverContent, null, /* @__PURE__ */ React95.createElement(ImageOverlayContent, null))), /* @__PURE__ */ React95.createElement(TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps("gradient") }, /* @__PURE__ */ React95.createElement(BackgroundGradientColorControl, null)), /* @__PURE__ */ React95.createElement(TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps("color") }, /* @__PURE__ */ React95.createElement(PopoverContent, null, /* @__PURE__ */ React95.createElement(ColorOverlayContent, { anchorEl: rowRef }))));
6147
7281
  };
6148
7282
  var ItemIcon2 = ({ value }) => {
6149
7283
  switch (value.$$type) {
6150
7284
  case "background-image-overlay":
6151
- return /* @__PURE__ */ React88.createElement(ItemIconImage, { value });
7285
+ return /* @__PURE__ */ React95.createElement(ItemIconImage, { value });
6152
7286
  case "background-color-overlay":
6153
- return /* @__PURE__ */ React88.createElement(ItemIconColor, { value });
7287
+ return /* @__PURE__ */ React95.createElement(ItemIconColor, { value });
6154
7288
  case "background-gradient-overlay":
6155
- return /* @__PURE__ */ React88.createElement(ItemIconGradient, { value });
7289
+ return /* @__PURE__ */ React95.createElement(ItemIconGradient, { value });
6156
7290
  default:
6157
7291
  return null;
6158
7292
  }
@@ -6165,11 +7299,11 @@ var extractColorFrom = (prop) => {
6165
7299
  };
6166
7300
  var ItemIconColor = ({ value: prop }) => {
6167
7301
  const color = extractColorFrom(prop);
6168
- return /* @__PURE__ */ React88.createElement(StyledUnstableColorIndicator3, { size: "inherit", component: "span", value: color });
7302
+ return /* @__PURE__ */ React95.createElement(StyledUnstableColorIndicator3, { size: "inherit", component: "span", value: color });
6169
7303
  };
6170
7304
  var ItemIconImage = ({ value }) => {
6171
7305
  const { imageUrl } = useImage(value);
6172
- return /* @__PURE__ */ React88.createElement(
7306
+ return /* @__PURE__ */ React95.createElement(
6173
7307
  CardMedia4,
6174
7308
  {
6175
7309
  image: imageUrl,
@@ -6184,43 +7318,43 @@ var ItemIconImage = ({ value }) => {
6184
7318
  };
6185
7319
  var ItemIconGradient = ({ value }) => {
6186
7320
  const gradient = getGradientValue(value);
6187
- return /* @__PURE__ */ React88.createElement(StyledUnstableColorIndicator3, { size: "inherit", component: "span", value: gradient });
7321
+ return /* @__PURE__ */ React95.createElement(StyledUnstableColorIndicator3, { size: "inherit", component: "span", value: gradient });
6188
7322
  };
6189
7323
  var ItemLabel3 = ({ value }) => {
6190
7324
  switch (value.$$type) {
6191
7325
  case "background-image-overlay":
6192
- return /* @__PURE__ */ React88.createElement(ItemLabelImage, { value });
7326
+ return /* @__PURE__ */ React95.createElement(ItemLabelImage, { value });
6193
7327
  case "background-color-overlay":
6194
- return /* @__PURE__ */ React88.createElement(ItemLabelColor, { value });
7328
+ return /* @__PURE__ */ React95.createElement(ItemLabelColor, { value });
6195
7329
  case "background-gradient-overlay":
6196
- return /* @__PURE__ */ React88.createElement(ItemLabelGradient, { value });
7330
+ return /* @__PURE__ */ React95.createElement(ItemLabelGradient, { value });
6197
7331
  default:
6198
7332
  return null;
6199
7333
  }
6200
7334
  };
6201
7335
  var ItemLabelColor = ({ value: prop }) => {
6202
7336
  const color = extractColorFrom(prop);
6203
- return /* @__PURE__ */ React88.createElement("span", null, color);
7337
+ return /* @__PURE__ */ React95.createElement("span", null, color);
6204
7338
  };
6205
7339
  var ItemLabelImage = ({ value }) => {
6206
7340
  const { imageTitle } = useImage(value);
6207
- return /* @__PURE__ */ React88.createElement("span", null, imageTitle);
7341
+ return /* @__PURE__ */ React95.createElement("span", null, imageTitle);
6208
7342
  };
6209
7343
  var ItemLabelGradient = ({ value }) => {
6210
7344
  if (value.value.type.value === "linear") {
6211
- return /* @__PURE__ */ React88.createElement("span", null, __38("Linear Gradient", "elementor"));
7345
+ return /* @__PURE__ */ React95.createElement("span", null, __44("Linear Gradient", "elementor"));
6212
7346
  }
6213
- return /* @__PURE__ */ React88.createElement("span", null, __38("Radial Gradient", "elementor"));
7347
+ return /* @__PURE__ */ React95.createElement("span", null, __44("Radial Gradient", "elementor"));
6214
7348
  };
6215
7349
  var ColorOverlayContent = ({ anchorEl }) => {
6216
7350
  const propContext = useBoundProp(backgroundColorOverlayPropTypeUtil2);
6217
- return /* @__PURE__ */ React88.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React88.createElement(PropKeyProvider, { bind: "color" }, /* @__PURE__ */ React88.createElement(ColorControl, { anchorEl })));
7351
+ return /* @__PURE__ */ React95.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React95.createElement(PropKeyProvider, { bind: "color" }, /* @__PURE__ */ React95.createElement(ColorControl, { anchorEl })));
6218
7352
  };
6219
7353
  var ImageOverlayContent = () => {
6220
7354
  const propContext = useBoundProp(backgroundImageOverlayPropTypeUtil2);
6221
- return /* @__PURE__ */ React88.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React88.createElement(PropKeyProvider, { bind: "image" }, /* @__PURE__ */ React88.createElement(ImageControl, { sizes: backgroundResolutionOptions })), /* @__PURE__ */ React88.createElement(PropKeyProvider, { bind: "position" }, /* @__PURE__ */ React88.createElement(BackgroundImageOverlayPosition, null)), /* @__PURE__ */ React88.createElement(PropKeyProvider, { bind: "repeat" }, /* @__PURE__ */ React88.createElement(BackgroundImageOverlayRepeat, null)), /* @__PURE__ */ React88.createElement(PropKeyProvider, { bind: "size" }, /* @__PURE__ */ React88.createElement(BackgroundImageOverlaySize, null)), /* @__PURE__ */ React88.createElement(PropKeyProvider, { bind: "attachment" }, /* @__PURE__ */ React88.createElement(BackgroundImageOverlayAttachment, null)));
7355
+ return /* @__PURE__ */ React95.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React95.createElement(PropKeyProvider, { bind: "image" }, /* @__PURE__ */ React95.createElement(ImageControl, { sizes: backgroundResolutionOptions })), /* @__PURE__ */ React95.createElement(PropKeyProvider, { bind: "position" }, /* @__PURE__ */ React95.createElement(BackgroundImageOverlayPosition, null)), /* @__PURE__ */ React95.createElement(PropKeyProvider, { bind: "repeat" }, /* @__PURE__ */ React95.createElement(BackgroundImageOverlayRepeat, null)), /* @__PURE__ */ React95.createElement(PropKeyProvider, { bind: "size" }, /* @__PURE__ */ React95.createElement(BackgroundImageOverlaySize, null)), /* @__PURE__ */ React95.createElement(PropKeyProvider, { bind: "attachment" }, /* @__PURE__ */ React95.createElement(BackgroundImageOverlayAttachment, null)));
6222
7356
  };
6223
- var StyledUnstableColorIndicator3 = styled10(UnstableColorIndicator3)(({ theme }) => ({
7357
+ var StyledUnstableColorIndicator3 = styled12(UnstableColorIndicator3)(({ theme }) => ({
6224
7358
  height: "1rem",
6225
7359
  width: "1rem",
6226
7360
  borderRadius: `${theme.shape.borderRadius / 2}px`
@@ -6259,29 +7393,29 @@ var getGradientValue = (value) => {
6259
7393
 
6260
7394
  // src/controls/background-control/background-control.tsx
6261
7395
  var clipOptions = [
6262
- { label: __39("Full element", "elementor"), value: "border-box" },
6263
- { label: __39("Padding edges", "elementor"), value: "padding-box" },
6264
- { label: __39("Content edges", "elementor"), value: "content-box" },
6265
- { label: __39("Text", "elementor"), value: "text" }
7396
+ { label: __45("Full element", "elementor"), value: "border-box" },
7397
+ { label: __45("Padding edges", "elementor"), value: "padding-box" },
7398
+ { label: __45("Content edges", "elementor"), value: "content-box" },
7399
+ { label: __45("Text", "elementor"), value: "text" }
6266
7400
  ];
6267
- var colorLabel = __39("Color", "elementor");
6268
- var clipLabel = __39("Clipping", "elementor");
7401
+ var colorLabel = __45("Color", "elementor");
7402
+ var clipLabel = __45("Clipping", "elementor");
6269
7403
  var BackgroundControl = createControl(() => {
6270
7404
  const propContext = useBoundProp(backgroundPropTypeUtil);
6271
- return /* @__PURE__ */ React89.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React89.createElement(PropKeyProvider, { bind: "background-overlay" }, /* @__PURE__ */ React89.createElement(BackgroundOverlayRepeaterControl, null)), /* @__PURE__ */ React89.createElement(BackgroundColorField, null), /* @__PURE__ */ React89.createElement(BackgroundClipField, null));
7405
+ return /* @__PURE__ */ React96.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React96.createElement(PropKeyProvider, { bind: "background-overlay" }, /* @__PURE__ */ React96.createElement(BackgroundOverlayRepeaterControl, null)), /* @__PURE__ */ React96.createElement(BackgroundColorField, null), /* @__PURE__ */ React96.createElement(BackgroundClipField, null));
6272
7406
  });
6273
7407
  var BackgroundColorField = () => {
6274
- return /* @__PURE__ */ React89.createElement(PropKeyProvider, { bind: "color" }, /* @__PURE__ */ React89.createElement(Grid18, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React89.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React89.createElement(ControlLabel, null, colorLabel)), /* @__PURE__ */ React89.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React89.createElement(ColorControl, null))));
7408
+ return /* @__PURE__ */ React96.createElement(PropKeyProvider, { bind: "color" }, /* @__PURE__ */ React96.createElement(Grid18, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React96.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React96.createElement(ControlLabel, null, colorLabel)), /* @__PURE__ */ React96.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React96.createElement(ColorControl, null))));
6275
7409
  };
6276
7410
  var BackgroundClipField = () => {
6277
- return /* @__PURE__ */ React89.createElement(PropKeyProvider, { bind: "clip" }, /* @__PURE__ */ React89.createElement(Grid18, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React89.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React89.createElement(ControlLabel, null, clipLabel)), /* @__PURE__ */ React89.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React89.createElement(SelectControl, { options: clipOptions }))));
7411
+ return /* @__PURE__ */ React96.createElement(PropKeyProvider, { bind: "clip" }, /* @__PURE__ */ React96.createElement(Grid18, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React96.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React96.createElement(ControlLabel, null, clipLabel)), /* @__PURE__ */ React96.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React96.createElement(SelectControl, { options: clipOptions }))));
6278
7412
  };
6279
7413
 
6280
7414
  // src/controls/repeatable-control.tsx
6281
- import * as React90 from "react";
6282
- import { useMemo as useMemo12 } from "react";
7415
+ import * as React97 from "react";
7416
+ import { useMemo as useMemo13 } from "react";
6283
7417
  import { createArrayPropUtils as createArrayPropUtils2 } from "@elementor/editor-props";
6284
- import { Box as Box17 } from "@elementor/ui";
7418
+ import { Box as Box22 } from "@elementor/ui";
6285
7419
  var PLACEHOLDER_REGEX = /\$\{([^}]+)\}/g;
6286
7420
  var RepeatableControl = createControl(
6287
7421
  ({
@@ -6300,11 +7434,11 @@ var RepeatableControl = createControl(
6300
7434
  if (!childPropTypeUtil) {
6301
7435
  return null;
6302
7436
  }
6303
- const childArrayPropTypeUtil2 = useMemo12(
7437
+ const childArrayPropTypeUtil2 = useMemo13(
6304
7438
  () => createArrayPropUtils2(childPropTypeUtil.key, childPropTypeUtil.schema, propKey),
6305
7439
  [childPropTypeUtil.key, childPropTypeUtil.schema, propKey]
6306
7440
  );
6307
- const contextValue = useMemo12(
7441
+ const contextValue = useMemo13(
6308
7442
  () => ({
6309
7443
  ...childControlConfig,
6310
7444
  placeholder: placeholder || "",
@@ -6314,14 +7448,14 @@ var RepeatableControl = createControl(
6314
7448
  );
6315
7449
  const { propType, value, setValue } = useBoundProp(childArrayPropTypeUtil2);
6316
7450
  const newItemIndex = addItemTooltipProps?.newItemIndex === null ? void 0 : 0;
6317
- return /* @__PURE__ */ React90.createElement(PropProvider, { propType, value, setValue }, /* @__PURE__ */ React90.createElement(RepeatableControlContext.Provider, { value: contextValue }, /* @__PURE__ */ React90.createElement(
7451
+ return /* @__PURE__ */ React97.createElement(PropProvider, { propType, value, setValue }, /* @__PURE__ */ React97.createElement(RepeatableControlContext.Provider, { value: contextValue }, /* @__PURE__ */ React97.createElement(
6318
7452
  ControlRepeater,
6319
7453
  {
6320
7454
  initial: childPropTypeUtil.create(initialValues || null),
6321
7455
  propTypeUtil: childArrayPropTypeUtil2,
6322
7456
  isItemDisabled: isItemDisabled2
6323
7457
  },
6324
- /* @__PURE__ */ React90.createElement(RepeaterHeader, { label: repeaterLabel }, /* @__PURE__ */ React90.createElement(
7458
+ /* @__PURE__ */ React97.createElement(RepeaterHeader, { label: repeaterLabel }, /* @__PURE__ */ React97.createElement(
6325
7459
  TooltipAddItemAction,
6326
7460
  {
6327
7461
  ...addItemTooltipProps,
@@ -6329,22 +7463,22 @@ var RepeatableControl = createControl(
6329
7463
  ariaLabel: repeaterLabel
6330
7464
  }
6331
7465
  )),
6332
- /* @__PURE__ */ React90.createElement(ItemsContainer, { isSortable }, /* @__PURE__ */ React90.createElement(
7466
+ /* @__PURE__ */ React97.createElement(ItemsContainer, { isSortable }, /* @__PURE__ */ React97.createElement(
6333
7467
  Item,
6334
7468
  {
6335
7469
  Icon: ItemIcon3,
6336
7470
  Label: ItemLabel4,
6337
- actions: /* @__PURE__ */ React90.createElement(React90.Fragment, null, showDuplicate && /* @__PURE__ */ React90.createElement(DuplicateItemAction, null), showToggle && /* @__PURE__ */ React90.createElement(DisableItemAction, null), /* @__PURE__ */ React90.createElement(RemoveItemAction, null))
7471
+ actions: /* @__PURE__ */ React97.createElement(React97.Fragment, null, showDuplicate && /* @__PURE__ */ React97.createElement(DuplicateItemAction, null), showToggle && /* @__PURE__ */ React97.createElement(DisableItemAction, null), /* @__PURE__ */ React97.createElement(RemoveItemAction, null))
6338
7472
  }
6339
7473
  )),
6340
- /* @__PURE__ */ React90.createElement(EditItemPopover, null, /* @__PURE__ */ React90.createElement(Content2, null))
7474
+ /* @__PURE__ */ React97.createElement(EditItemPopover, null, /* @__PURE__ */ React97.createElement(Content2, null))
6341
7475
  )));
6342
7476
  }
6343
7477
  );
6344
- var ItemIcon3 = () => /* @__PURE__ */ React90.createElement(React90.Fragment, null);
7478
+ var ItemIcon3 = () => /* @__PURE__ */ React97.createElement(React97.Fragment, null);
6345
7479
  var Content2 = () => {
6346
7480
  const { component: ChildControl, props = {} } = useRepeatableControlContext();
6347
- return /* @__PURE__ */ React90.createElement(PopoverContent, { p: 1.5 }, /* @__PURE__ */ React90.createElement(PopoverGridContainer, null, /* @__PURE__ */ React90.createElement(ChildControl, { ...props })));
7481
+ return /* @__PURE__ */ React97.createElement(PopoverContent, { p: 1.5 }, /* @__PURE__ */ React97.createElement(PopoverGridContainer, null, /* @__PURE__ */ React97.createElement(ChildControl, { ...props })));
6348
7482
  };
6349
7483
  var interpolate = (template, data) => {
6350
7484
  if (!data) {
@@ -6427,7 +7561,7 @@ var ItemLabel4 = ({ value }) => {
6427
7561
  const label = showPlaceholder ? placeholder : interpolate(patternLabel, value);
6428
7562
  const isReadOnly = !!childProps?.readOnly;
6429
7563
  const color = getTextColor(isReadOnly, showPlaceholder);
6430
- return /* @__PURE__ */ React90.createElement(Box17, { component: "span", color }, label);
7564
+ return /* @__PURE__ */ React97.createElement(Box22, { component: "span", color }, label);
6431
7565
  };
6432
7566
  var getAllProperties = (pattern) => {
6433
7567
  const properties = pattern.match(PLACEHOLDER_REGEX)?.map((match) => match.slice(2, -1)) || [];
@@ -6435,15 +7569,15 @@ var getAllProperties = (pattern) => {
6435
7569
  };
6436
7570
 
6437
7571
  // src/controls/key-value-control.tsx
6438
- import * as React91 from "react";
6439
- import { useMemo as useMemo13, useState as useState17 } from "react";
7572
+ import * as React98 from "react";
7573
+ import { useMemo as useMemo14, useState as useState19 } from "react";
6440
7574
  import {
6441
7575
  isTransformable,
6442
7576
  keyValuePropTypeUtil,
6443
7577
  stringPropTypeUtil as stringPropTypeUtil18
6444
7578
  } from "@elementor/editor-props";
6445
7579
  import { FormHelperText, FormLabel as FormLabel3, Grid as Grid19 } from "@elementor/ui";
6446
- import { __ as __40 } from "@wordpress/i18n";
7580
+ import { __ as __46 } from "@wordpress/i18n";
6447
7581
 
6448
7582
  // src/utils/escape-html-attr.ts
6449
7583
  var escapeHtmlAttr = (value) => {
@@ -6467,23 +7601,23 @@ var getInitialFieldValue = (fieldValue) => {
6467
7601
  };
6468
7602
  var KeyValueControl = createControl((props = {}) => {
6469
7603
  const { value, setValue, ...propContext } = useBoundProp(keyValuePropTypeUtil);
6470
- const [keyError, setKeyError] = useState17("");
6471
- const [valueError, setValueError] = useState17("");
6472
- const [sessionState, setSessionState] = useState17({
7604
+ const [keyError, setKeyError] = useState19("");
7605
+ const [valueError, setValueError] = useState19("");
7606
+ const [sessionState, setSessionState] = useState19({
6473
7607
  key: getInitialFieldValue(value?.key),
6474
7608
  value: getInitialFieldValue(value?.value)
6475
7609
  });
6476
- const keyLabel = props.keyName || __40("Key", "elementor");
6477
- const valueLabel = props.valueName || __40("Value", "elementor");
7610
+ const keyLabel = props.keyName || __46("Key", "elementor");
7611
+ const valueLabel = props.valueName || __46("Value", "elementor");
6478
7612
  const { keyHelper, valueHelper } = props.getHelperText?.(sessionState.key, sessionState.value) || {
6479
7613
  keyHelper: void 0,
6480
7614
  valueHelper: void 0
6481
7615
  };
6482
- const [keyRegex, valueRegex, errMsg] = useMemo13(
7616
+ const [keyRegex, valueRegex, errMsg] = useMemo14(
6483
7617
  () => [
6484
7618
  props.regexKey ? new RegExp(props.regexKey) : void 0,
6485
7619
  props.regexValue ? new RegExp(props.regexValue) : void 0,
6486
- props.validationErrorMessage || __40("Invalid Format", "elementor")
7620
+ props.validationErrorMessage || __46("Invalid Format", "elementor")
6487
7621
  ],
6488
7622
  [props.regexKey, props.regexValue, props.validationErrorMessage]
6489
7623
  );
@@ -6532,14 +7666,14 @@ var KeyValueControl = createControl((props = {}) => {
6532
7666
  });
6533
7667
  }
6534
7668
  };
6535
- return /* @__PURE__ */ React91.createElement(PropProvider, { ...propContext, value, setValue: handleChange }, /* @__PURE__ */ React91.createElement(Grid19, { container: true, gap: 1.5 }, /* @__PURE__ */ React91.createElement(Grid19, { item: true, xs: 12, display: "flex", flexDirection: "column" }, /* @__PURE__ */ React91.createElement(FormLabel3, { size: "tiny", sx: { pb: 1 } }, keyLabel), /* @__PURE__ */ React91.createElement(PropKeyProvider, { bind: "key" }, /* @__PURE__ */ React91.createElement(
7669
+ return /* @__PURE__ */ React98.createElement(PropProvider, { ...propContext, value, setValue: handleChange }, /* @__PURE__ */ React98.createElement(Grid19, { container: true, gap: 1.5 }, /* @__PURE__ */ React98.createElement(Grid19, { item: true, xs: 12, display: "flex", flexDirection: "column" }, /* @__PURE__ */ React98.createElement(FormLabel3, { size: "tiny", sx: { pb: 1 } }, keyLabel), /* @__PURE__ */ React98.createElement(PropKeyProvider, { bind: "key" }, /* @__PURE__ */ React98.createElement(
6536
7670
  TextControl,
6537
7671
  {
6538
7672
  inputValue: props.escapeHtml ? escapeHtmlAttr(sessionState.key) : sessionState.key,
6539
7673
  error: !!keyError,
6540
7674
  helperText: keyHelper
6541
7675
  }
6542
- )), !!keyError && /* @__PURE__ */ React91.createElement(FormHelperText, { error: true }, keyError)), /* @__PURE__ */ React91.createElement(Grid19, { item: true, xs: 12, display: "flex", flexDirection: "column" }, /* @__PURE__ */ React91.createElement(FormLabel3, { size: "tiny", sx: { pb: 1 } }, valueLabel), /* @__PURE__ */ React91.createElement(PropKeyProvider, { bind: "value" }, /* @__PURE__ */ React91.createElement(
7676
+ )), !!keyError && /* @__PURE__ */ React98.createElement(FormHelperText, { error: true }, keyError)), /* @__PURE__ */ React98.createElement(Grid19, { item: true, xs: 12, display: "flex", flexDirection: "column" }, /* @__PURE__ */ React98.createElement(FormLabel3, { size: "tiny", sx: { pb: 1 } }, valueLabel), /* @__PURE__ */ React98.createElement(PropKeyProvider, { bind: "value" }, /* @__PURE__ */ React98.createElement(
6543
7677
  TextControl,
6544
7678
  {
6545
7679
  inputValue: props.escapeHtml ? escapeHtmlAttr(sessionState.value) : sessionState.value,
@@ -6547,27 +7681,27 @@ var KeyValueControl = createControl((props = {}) => {
6547
7681
  inputDisabled: !!keyError,
6548
7682
  helperText: valueHelper
6549
7683
  }
6550
- )), !!valueError && /* @__PURE__ */ React91.createElement(FormHelperText, { error: true }, valueError))));
7684
+ )), !!valueError && /* @__PURE__ */ React98.createElement(FormHelperText, { error: true }, valueError))));
6551
7685
  });
6552
7686
 
6553
7687
  // src/controls/position-control.tsx
6554
- import * as React92 from "react";
7688
+ import * as React99 from "react";
6555
7689
  import { positionPropTypeUtil, stringPropTypeUtil as stringPropTypeUtil19 } from "@elementor/editor-props";
6556
7690
  import { MenuListItem as MenuListItem7 } from "@elementor/editor-ui";
6557
7691
  import { LetterXIcon as LetterXIcon2, LetterYIcon as LetterYIcon2 } from "@elementor/icons";
6558
7692
  import { Grid as Grid20, Select as Select5 } from "@elementor/ui";
6559
- import { __ as __41 } from "@wordpress/i18n";
7693
+ import { __ as __47 } from "@wordpress/i18n";
6560
7694
  var positionOptions = [
6561
- { label: __41("Center center", "elementor"), value: "center center" },
6562
- { label: __41("Center left", "elementor"), value: "center left" },
6563
- { label: __41("Center right", "elementor"), value: "center right" },
6564
- { label: __41("Top center", "elementor"), value: "top center" },
6565
- { label: __41("Top left", "elementor"), value: "top left" },
6566
- { label: __41("Top right", "elementor"), value: "top right" },
6567
- { label: __41("Bottom center", "elementor"), value: "bottom center" },
6568
- { label: __41("Bottom left", "elementor"), value: "bottom left" },
6569
- { label: __41("Bottom right", "elementor"), value: "bottom right" },
6570
- { label: __41("Custom", "elementor"), value: "custom" }
7695
+ { label: __47("Center center", "elementor"), value: "center center" },
7696
+ { label: __47("Center left", "elementor"), value: "center left" },
7697
+ { label: __47("Center right", "elementor"), value: "center right" },
7698
+ { label: __47("Top center", "elementor"), value: "top center" },
7699
+ { label: __47("Top left", "elementor"), value: "top left" },
7700
+ { label: __47("Top right", "elementor"), value: "top right" },
7701
+ { label: __47("Bottom center", "elementor"), value: "bottom center" },
7702
+ { label: __47("Bottom left", "elementor"), value: "bottom left" },
7703
+ { label: __47("Bottom right", "elementor"), value: "bottom right" },
7704
+ { label: __47("Custom", "elementor"), value: "custom" }
6571
7705
  ];
6572
7706
  var PositionControl = () => {
6573
7707
  const positionContext = useBoundProp(positionPropTypeUtil);
@@ -6582,7 +7716,7 @@ var PositionControl = () => {
6582
7716
  stringPropContext.setValue(value);
6583
7717
  }
6584
7718
  };
6585
- return /* @__PURE__ */ React92.createElement(Grid20, { container: true, spacing: 1.5 }, /* @__PURE__ */ React92.createElement(Grid20, { item: true, xs: 12 }, /* @__PURE__ */ React92.createElement(Grid20, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React92.createElement(Grid20, { item: true, xs: 6 }, /* @__PURE__ */ React92.createElement(ControlFormLabel, null, __41("Object position", "elementor"))), /* @__PURE__ */ React92.createElement(Grid20, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React92.createElement(
7719
+ return /* @__PURE__ */ React99.createElement(Grid20, { container: true, spacing: 1.5 }, /* @__PURE__ */ React99.createElement(Grid20, { item: true, xs: 12 }, /* @__PURE__ */ React99.createElement(Grid20, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React99.createElement(Grid20, { item: true, xs: 6 }, /* @__PURE__ */ React99.createElement(ControlFormLabel, null, __47("Object position", "elementor"))), /* @__PURE__ */ React99.createElement(Grid20, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React99.createElement(
6586
7720
  Select5,
6587
7721
  {
6588
7722
  size: "tiny",
@@ -6593,29 +7727,29 @@ var PositionControl = () => {
6593
7727
  renderValue: (selectedValue) => getSelectRenderValue(positionOptions, placeholder, selectedValue),
6594
7728
  fullWidth: true
6595
7729
  },
6596
- positionOptions.map(({ label, value }) => /* @__PURE__ */ React92.createElement(MenuListItem7, { key: value, value: value ?? "" }, label))
6597
- )))), isCustom && /* @__PURE__ */ React92.createElement(PropProvider, { ...positionContext }, /* @__PURE__ */ React92.createElement(Grid20, { item: true, xs: 12 }, /* @__PURE__ */ React92.createElement(Grid20, { container: true, spacing: 1.5 }, /* @__PURE__ */ React92.createElement(Grid20, { item: true, xs: 6 }, /* @__PURE__ */ React92.createElement(PropKeyProvider, { bind: "x" }, /* @__PURE__ */ React92.createElement(
7730
+ positionOptions.map(({ label, value }) => /* @__PURE__ */ React99.createElement(MenuListItem7, { key: value, value: value ?? "" }, label))
7731
+ )))), isCustom && /* @__PURE__ */ React99.createElement(PropProvider, { ...positionContext }, /* @__PURE__ */ React99.createElement(Grid20, { item: true, xs: 12 }, /* @__PURE__ */ React99.createElement(Grid20, { container: true, spacing: 1.5 }, /* @__PURE__ */ React99.createElement(Grid20, { item: true, xs: 6 }, /* @__PURE__ */ React99.createElement(PropKeyProvider, { bind: "x" }, /* @__PURE__ */ React99.createElement(
6598
7732
  SizeControl,
6599
7733
  {
6600
- startIcon: /* @__PURE__ */ React92.createElement(LetterXIcon2, { fontSize: "tiny" }),
7734
+ startIcon: /* @__PURE__ */ React99.createElement(LetterXIcon2, { fontSize: "tiny" }),
6601
7735
  min: -Number.MAX_SAFE_INTEGER
6602
7736
  }
6603
- ))), /* @__PURE__ */ React92.createElement(Grid20, { item: true, xs: 6 }, /* @__PURE__ */ React92.createElement(PropKeyProvider, { bind: "y" }, /* @__PURE__ */ React92.createElement(
7737
+ ))), /* @__PURE__ */ React99.createElement(Grid20, { item: true, xs: 6 }, /* @__PURE__ */ React99.createElement(PropKeyProvider, { bind: "y" }, /* @__PURE__ */ React99.createElement(
6604
7738
  SizeControl,
6605
7739
  {
6606
- startIcon: /* @__PURE__ */ React92.createElement(LetterYIcon2, { fontSize: "tiny" }),
7740
+ startIcon: /* @__PURE__ */ React99.createElement(LetterYIcon2, { fontSize: "tiny" }),
6607
7741
  min: -Number.MAX_SAFE_INTEGER
6608
7742
  }
6609
7743
  )))))));
6610
7744
  };
6611
7745
 
6612
7746
  // src/controls/transform-control/transform-repeater-control.tsx
6613
- import * as React105 from "react";
6614
- import { useRef as useRef25 } from "react";
7747
+ import * as React112 from "react";
7748
+ import { useRef as useRef27 } from "react";
6615
7749
  import { transformFunctionsPropTypeUtil, transformPropTypeUtil } from "@elementor/editor-props";
6616
7750
  import { AdjustmentsIcon as AdjustmentsIcon2, InfoCircleFilledIcon as InfoCircleFilledIcon2 } from "@elementor/icons";
6617
- import { bindTrigger as bindTrigger5, Box as Box21, IconButton as IconButton8, Tooltip as Tooltip8, Typography as Typography7, usePopupState as usePopupState8 } from "@elementor/ui";
6618
- import { __ as __51 } from "@wordpress/i18n";
7751
+ import { bindTrigger as bindTrigger5, Box as Box26, IconButton as IconButton8, Tooltip as Tooltip11, Typography as Typography11, usePopupState as usePopupState11 } from "@elementor/ui";
7752
+ import { __ as __57 } from "@wordpress/i18n";
6619
7753
 
6620
7754
  // src/controls/transform-control/initial-values.ts
6621
7755
  import {
@@ -6669,24 +7803,24 @@ var initialSkewValue = skewTransformPropTypeUtil.create({
6669
7803
  });
6670
7804
 
6671
7805
  // src/controls/transform-control/transform-content.tsx
6672
- import * as React99 from "react";
6673
- import { Box as Box18, Tab as Tab2, TabPanel as TabPanel2, Tabs as Tabs2 } from "@elementor/ui";
6674
- import { __ as __46 } from "@wordpress/i18n";
7806
+ import * as React106 from "react";
7807
+ import { Box as Box23, Tab as Tab2, TabPanel as TabPanel2, Tabs as Tabs2 } from "@elementor/ui";
7808
+ import { __ as __52 } from "@wordpress/i18n";
6675
7809
 
6676
7810
  // src/controls/transform-control/functions/move.tsx
6677
- import * as React94 from "react";
6678
- import { useRef as useRef18 } from "react";
7811
+ import * as React101 from "react";
7812
+ import { useRef as useRef20 } from "react";
6679
7813
  import { moveTransformPropTypeUtil } from "@elementor/editor-props";
6680
7814
  import { ArrowDownLeftIcon, ArrowDownSmallIcon, ArrowRightIcon } from "@elementor/icons";
6681
7815
  import { Grid as Grid22 } from "@elementor/ui";
6682
- import { __ as __42 } from "@wordpress/i18n";
7816
+ import { __ as __48 } from "@wordpress/i18n";
6683
7817
 
6684
7818
  // src/controls/transform-control/functions/axis-row.tsx
6685
- import * as React93 from "react";
7819
+ import * as React100 from "react";
6686
7820
  import { Grid as Grid21 } from "@elementor/ui";
6687
7821
  var AxisRow = ({ label, bind, startIcon, anchorRef, units: units2, variant = "angle" }) => {
6688
7822
  const safeId = label.replace(/\s+/g, "-").toLowerCase();
6689
- return /* @__PURE__ */ React93.createElement(Grid21, { item: true, xs: 12 }, /* @__PURE__ */ React93.createElement(PopoverGridContainer, { ref: anchorRef }, /* @__PURE__ */ React93.createElement(Grid21, { item: true, xs: 6 }, /* @__PURE__ */ React93.createElement(ControlLabel, { htmlFor: safeId }, label)), /* @__PURE__ */ React93.createElement(Grid21, { item: true, xs: 6 }, /* @__PURE__ */ React93.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React93.createElement(
7823
+ return /* @__PURE__ */ React100.createElement(Grid21, { item: true, xs: 12 }, /* @__PURE__ */ React100.createElement(PopoverGridContainer, { ref: anchorRef }, /* @__PURE__ */ React100.createElement(Grid21, { item: true, xs: 6 }, /* @__PURE__ */ React100.createElement(ControlLabel, { htmlFor: safeId }, label)), /* @__PURE__ */ React100.createElement(Grid21, { item: true, xs: 6 }, /* @__PURE__ */ React100.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React100.createElement(
6690
7824
  SizeControl,
6691
7825
  {
6692
7826
  anchorRef,
@@ -6702,28 +7836,28 @@ var AxisRow = ({ label, bind, startIcon, anchorRef, units: units2, variant = "an
6702
7836
  // src/controls/transform-control/functions/move.tsx
6703
7837
  var moveAxisControls = [
6704
7838
  {
6705
- label: __42("Move X", "elementor"),
7839
+ label: __48("Move X", "elementor"),
6706
7840
  bind: "x",
6707
- startIcon: /* @__PURE__ */ React94.createElement(ArrowRightIcon, { fontSize: "tiny" }),
7841
+ startIcon: /* @__PURE__ */ React101.createElement(ArrowRightIcon, { fontSize: "tiny" }),
6708
7842
  units: ["px", "%", "em", "rem", "vw"]
6709
7843
  },
6710
7844
  {
6711
- label: __42("Move Y", "elementor"),
7845
+ label: __48("Move Y", "elementor"),
6712
7846
  bind: "y",
6713
- startIcon: /* @__PURE__ */ React94.createElement(ArrowDownSmallIcon, { fontSize: "tiny" }),
7847
+ startIcon: /* @__PURE__ */ React101.createElement(ArrowDownSmallIcon, { fontSize: "tiny" }),
6714
7848
  units: ["px", "%", "em", "rem", "vh"]
6715
7849
  },
6716
7850
  {
6717
- label: __42("Move Z", "elementor"),
7851
+ label: __48("Move Z", "elementor"),
6718
7852
  bind: "z",
6719
- startIcon: /* @__PURE__ */ React94.createElement(ArrowDownLeftIcon, { fontSize: "tiny" }),
7853
+ startIcon: /* @__PURE__ */ React101.createElement(ArrowDownLeftIcon, { fontSize: "tiny" }),
6720
7854
  units: ["px", "%", "em", "rem", "vw", "vh"]
6721
7855
  }
6722
7856
  ];
6723
7857
  var Move = () => {
6724
7858
  const context = useBoundProp(moveTransformPropTypeUtil);
6725
- const rowRefs = [useRef18(null), useRef18(null), useRef18(null)];
6726
- return /* @__PURE__ */ React94.createElement(Grid22, { container: true, spacing: 1.5 }, /* @__PURE__ */ React94.createElement(PropProvider, { ...context }, /* @__PURE__ */ React94.createElement(PropKeyProvider, { bind: TransformFunctionKeys.move }, moveAxisControls.map((control, index) => /* @__PURE__ */ React94.createElement(
7859
+ const rowRefs = [useRef20(null), useRef20(null), useRef20(null)];
7860
+ return /* @__PURE__ */ React101.createElement(Grid22, { container: true, spacing: 1.5 }, /* @__PURE__ */ React101.createElement(PropProvider, { ...context }, /* @__PURE__ */ React101.createElement(PropKeyProvider, { bind: TransformFunctionKeys.move }, moveAxisControls.map((control, index) => /* @__PURE__ */ React101.createElement(
6727
7861
  AxisRow,
6728
7862
  {
6729
7863
  key: control.bind,
@@ -6736,34 +7870,34 @@ var Move = () => {
6736
7870
  };
6737
7871
 
6738
7872
  // src/controls/transform-control/functions/rotate.tsx
6739
- import * as React95 from "react";
6740
- import { useRef as useRef19 } from "react";
7873
+ import * as React102 from "react";
7874
+ import { useRef as useRef21 } from "react";
6741
7875
  import { rotateTransformPropTypeUtil as rotateTransformPropTypeUtil2 } from "@elementor/editor-props";
6742
7876
  import { Arrow360Icon, RotateClockwiseIcon } from "@elementor/icons";
6743
7877
  import { Grid as Grid23 } from "@elementor/ui";
6744
- import { __ as __43 } from "@wordpress/i18n";
7878
+ import { __ as __49 } from "@wordpress/i18n";
6745
7879
  var rotateAxisControls = [
6746
7880
  {
6747
- label: __43("Rotate X", "elementor"),
7881
+ label: __49("Rotate X", "elementor"),
6748
7882
  bind: "x",
6749
- startIcon: /* @__PURE__ */ React95.createElement(Arrow360Icon, { fontSize: "tiny" })
7883
+ startIcon: /* @__PURE__ */ React102.createElement(Arrow360Icon, { fontSize: "tiny" })
6750
7884
  },
6751
7885
  {
6752
- label: __43("Rotate Y", "elementor"),
7886
+ label: __49("Rotate Y", "elementor"),
6753
7887
  bind: "y",
6754
- startIcon: /* @__PURE__ */ React95.createElement(Arrow360Icon, { fontSize: "tiny", style: { transform: "scaleX(-1) rotate(-90deg)" } })
7888
+ startIcon: /* @__PURE__ */ React102.createElement(Arrow360Icon, { fontSize: "tiny", style: { transform: "scaleX(-1) rotate(-90deg)" } })
6755
7889
  },
6756
7890
  {
6757
- label: __43("Rotate Z", "elementor"),
7891
+ label: __49("Rotate Z", "elementor"),
6758
7892
  bind: "z",
6759
- startIcon: /* @__PURE__ */ React95.createElement(RotateClockwiseIcon, { fontSize: "tiny" })
7893
+ startIcon: /* @__PURE__ */ React102.createElement(RotateClockwiseIcon, { fontSize: "tiny" })
6760
7894
  }
6761
7895
  ];
6762
7896
  var rotateUnits = ["deg", "rad", "grad", "turn"];
6763
7897
  var Rotate = () => {
6764
7898
  const context = useBoundProp(rotateTransformPropTypeUtil2);
6765
- const rowRefs = [useRef19(null), useRef19(null), useRef19(null)];
6766
- return /* @__PURE__ */ React95.createElement(Grid23, { container: true, spacing: 1.5 }, /* @__PURE__ */ React95.createElement(PropProvider, { ...context }, /* @__PURE__ */ React95.createElement(PropKeyProvider, { bind: TransformFunctionKeys.rotate }, rotateAxisControls.map((control, index) => /* @__PURE__ */ React95.createElement(
7899
+ const rowRefs = [useRef21(null), useRef21(null), useRef21(null)];
7900
+ return /* @__PURE__ */ React102.createElement(Grid23, { container: true, spacing: 1.5 }, /* @__PURE__ */ React102.createElement(PropProvider, { ...context }, /* @__PURE__ */ React102.createElement(PropKeyProvider, { bind: TransformFunctionKeys.rotate }, rotateAxisControls.map((control, index) => /* @__PURE__ */ React102.createElement(
6767
7901
  AxisRow,
6768
7902
  {
6769
7903
  key: control.bind,
@@ -6775,68 +7909,68 @@ var Rotate = () => {
6775
7909
  };
6776
7910
 
6777
7911
  // src/controls/transform-control/functions/scale.tsx
6778
- import * as React97 from "react";
6779
- import { useRef as useRef20 } from "react";
7912
+ import * as React104 from "react";
7913
+ import { useRef as useRef22 } from "react";
6780
7914
  import { scaleTransformPropTypeUtil as scaleTransformPropTypeUtil2 } from "@elementor/editor-props";
6781
7915
  import { ArrowDownLeftIcon as ArrowDownLeftIcon2, ArrowDownSmallIcon as ArrowDownSmallIcon2, ArrowRightIcon as ArrowRightIcon2 } from "@elementor/icons";
6782
7916
  import { Grid as Grid25 } from "@elementor/ui";
6783
- import { __ as __44 } from "@wordpress/i18n";
7917
+ import { __ as __50 } from "@wordpress/i18n";
6784
7918
 
6785
7919
  // src/controls/transform-control/functions/scale-axis-row.tsx
6786
- import * as React96 from "react";
7920
+ import * as React103 from "react";
6787
7921
  import { Grid as Grid24 } from "@elementor/ui";
6788
7922
  var ScaleAxisRow = ({ label, bind, startIcon, anchorRef }) => {
6789
- return /* @__PURE__ */ React96.createElement(Grid24, { item: true, xs: 12 }, /* @__PURE__ */ React96.createElement(PopoverGridContainer, { ref: anchorRef }, /* @__PURE__ */ React96.createElement(Grid24, { item: true, xs: 6 }, /* @__PURE__ */ React96.createElement(ControlLabel, null, label)), /* @__PURE__ */ React96.createElement(Grid24, { item: true, xs: 6 }, /* @__PURE__ */ React96.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React96.createElement(NumberControl, { step: 0.1, placeholder: "1", startIcon })))));
7923
+ return /* @__PURE__ */ React103.createElement(Grid24, { item: true, xs: 12 }, /* @__PURE__ */ React103.createElement(PopoverGridContainer, { ref: anchorRef }, /* @__PURE__ */ React103.createElement(Grid24, { item: true, xs: 6 }, /* @__PURE__ */ React103.createElement(ControlLabel, null, label)), /* @__PURE__ */ React103.createElement(Grid24, { item: true, xs: 6 }, /* @__PURE__ */ React103.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React103.createElement(NumberControl, { step: 0.1, placeholder: "1", startIcon })))));
6790
7924
  };
6791
7925
 
6792
7926
  // src/controls/transform-control/functions/scale.tsx
6793
7927
  var scaleAxisControls = [
6794
7928
  {
6795
- label: __44("Scale X", "elementor"),
7929
+ label: __50("Scale X", "elementor"),
6796
7930
  bind: "x",
6797
- startIcon: /* @__PURE__ */ React97.createElement(ArrowRightIcon2, { fontSize: "tiny" })
7931
+ startIcon: /* @__PURE__ */ React104.createElement(ArrowRightIcon2, { fontSize: "tiny" })
6798
7932
  },
6799
7933
  {
6800
- label: __44("Scale Y", "elementor"),
7934
+ label: __50("Scale Y", "elementor"),
6801
7935
  bind: "y",
6802
- startIcon: /* @__PURE__ */ React97.createElement(ArrowDownSmallIcon2, { fontSize: "tiny" })
7936
+ startIcon: /* @__PURE__ */ React104.createElement(ArrowDownSmallIcon2, { fontSize: "tiny" })
6803
7937
  },
6804
7938
  {
6805
- label: __44("Scale Z", "elementor"),
7939
+ label: __50("Scale Z", "elementor"),
6806
7940
  bind: "z",
6807
- startIcon: /* @__PURE__ */ React97.createElement(ArrowDownLeftIcon2, { fontSize: "tiny" })
7941
+ startIcon: /* @__PURE__ */ React104.createElement(ArrowDownLeftIcon2, { fontSize: "tiny" })
6808
7942
  }
6809
7943
  ];
6810
7944
  var Scale = () => {
6811
7945
  const context = useBoundProp(scaleTransformPropTypeUtil2);
6812
- const rowRefs = [useRef20(null), useRef20(null), useRef20(null)];
6813
- return /* @__PURE__ */ React97.createElement(Grid25, { container: true, spacing: 1.5 }, /* @__PURE__ */ React97.createElement(PropProvider, { ...context }, /* @__PURE__ */ React97.createElement(PropKeyProvider, { bind: TransformFunctionKeys.scale }, scaleAxisControls.map((control, index) => /* @__PURE__ */ React97.createElement(ScaleAxisRow, { key: control.bind, ...control, anchorRef: rowRefs[index] })))));
7946
+ const rowRefs = [useRef22(null), useRef22(null), useRef22(null)];
7947
+ return /* @__PURE__ */ React104.createElement(Grid25, { container: true, spacing: 1.5 }, /* @__PURE__ */ React104.createElement(PropProvider, { ...context }, /* @__PURE__ */ React104.createElement(PropKeyProvider, { bind: TransformFunctionKeys.scale }, scaleAxisControls.map((control, index) => /* @__PURE__ */ React104.createElement(ScaleAxisRow, { key: control.bind, ...control, anchorRef: rowRefs[index] })))));
6814
7948
  };
6815
7949
 
6816
7950
  // src/controls/transform-control/functions/skew.tsx
6817
- import * as React98 from "react";
6818
- import { useRef as useRef21 } from "react";
7951
+ import * as React105 from "react";
7952
+ import { useRef as useRef23 } from "react";
6819
7953
  import { skewTransformPropTypeUtil as skewTransformPropTypeUtil2 } from "@elementor/editor-props";
6820
7954
  import { ArrowLeftIcon, ArrowRightIcon as ArrowRightIcon3 } from "@elementor/icons";
6821
7955
  import { Grid as Grid26 } from "@elementor/ui";
6822
- import { __ as __45 } from "@wordpress/i18n";
7956
+ import { __ as __51 } from "@wordpress/i18n";
6823
7957
  var skewAxisControls = [
6824
7958
  {
6825
- label: __45("Skew X", "elementor"),
7959
+ label: __51("Skew X", "elementor"),
6826
7960
  bind: "x",
6827
- startIcon: /* @__PURE__ */ React98.createElement(ArrowRightIcon3, { fontSize: "tiny" })
7961
+ startIcon: /* @__PURE__ */ React105.createElement(ArrowRightIcon3, { fontSize: "tiny" })
6828
7962
  },
6829
7963
  {
6830
- label: __45("Skew Y", "elementor"),
7964
+ label: __51("Skew Y", "elementor"),
6831
7965
  bind: "y",
6832
- startIcon: /* @__PURE__ */ React98.createElement(ArrowLeftIcon, { fontSize: "tiny", style: { transform: "scaleX(-1) rotate(-90deg)" } })
7966
+ startIcon: /* @__PURE__ */ React105.createElement(ArrowLeftIcon, { fontSize: "tiny", style: { transform: "scaleX(-1) rotate(-90deg)" } })
6833
7967
  }
6834
7968
  ];
6835
7969
  var skewUnits = ["deg", "rad", "grad", "turn"];
6836
7970
  var Skew = () => {
6837
7971
  const context = useBoundProp(skewTransformPropTypeUtil2);
6838
- const rowRefs = [useRef21(null), useRef21(null), useRef21(null)];
6839
- return /* @__PURE__ */ React98.createElement(Grid26, { container: true, spacing: 1.5 }, /* @__PURE__ */ React98.createElement(PropProvider, { ...context }, /* @__PURE__ */ React98.createElement(PropKeyProvider, { bind: TransformFunctionKeys.skew }, skewAxisControls.map((control, index) => /* @__PURE__ */ React98.createElement(
7972
+ const rowRefs = [useRef23(null), useRef23(null), useRef23(null)];
7973
+ return /* @__PURE__ */ React105.createElement(Grid26, { container: true, spacing: 1.5 }, /* @__PURE__ */ React105.createElement(PropProvider, { ...context }, /* @__PURE__ */ React105.createElement(PropKeyProvider, { bind: TransformFunctionKeys.skew }, skewAxisControls.map((control, index) => /* @__PURE__ */ React105.createElement(
6840
7974
  AxisRow,
6841
7975
  {
6842
7976
  key: control.bind,
@@ -6848,7 +7982,7 @@ var Skew = () => {
6848
7982
  };
6849
7983
 
6850
7984
  // src/controls/transform-control/use-transform-tabs-history.tsx
6851
- import { useRef as useRef22 } from "react";
7985
+ import { useRef as useRef24 } from "react";
6852
7986
  import {
6853
7987
  moveTransformPropTypeUtil as moveTransformPropTypeUtil2,
6854
7988
  rotateTransformPropTypeUtil as rotateTransformPropTypeUtil3,
@@ -6880,7 +8014,7 @@ var useTransformTabsHistory = ({
6880
8014
  }
6881
8015
  };
6882
8016
  const { getTabsProps, getTabProps, getTabPanelProps } = useTabs2(getCurrentTransformType());
6883
- const valuesHistory = useRef22({
8017
+ const valuesHistory = useRef24({
6884
8018
  move: initialMove,
6885
8019
  scale: initialScale,
6886
8020
  rotate: initialRotate,
@@ -6941,7 +8075,7 @@ var TransformContent = () => {
6941
8075
  rotate: initialRotateValue.value,
6942
8076
  skew: initialSkewValue.value
6943
8077
  });
6944
- return /* @__PURE__ */ React99.createElement(PopoverContent, null, /* @__PURE__ */ React99.createElement(Box18, { sx: { width: "100%" } }, /* @__PURE__ */ React99.createElement(Box18, { sx: { borderBottom: 1, borderColor: "divider" } }, /* @__PURE__ */ React99.createElement(
8078
+ return /* @__PURE__ */ React106.createElement(PopoverContent, null, /* @__PURE__ */ React106.createElement(Box23, { sx: { width: "100%" } }, /* @__PURE__ */ React106.createElement(Box23, { sx: { borderBottom: 1, borderColor: "divider" } }, /* @__PURE__ */ React106.createElement(
6945
8079
  Tabs2,
6946
8080
  {
6947
8081
  size: "small",
@@ -6952,37 +8086,37 @@ var TransformContent = () => {
6952
8086
  }
6953
8087
  },
6954
8088
  ...getTabsProps(),
6955
- "aria-label": __46("Transform", "elementor")
8089
+ "aria-label": __52("Transform", "elementor")
6956
8090
  },
6957
- /* @__PURE__ */ React99.createElement(Tab2, { label: __46("Move", "elementor"), ...getTabProps(TransformFunctionKeys.move) }),
6958
- /* @__PURE__ */ React99.createElement(Tab2, { label: __46("Scale", "elementor"), ...getTabProps(TransformFunctionKeys.scale) }),
6959
- /* @__PURE__ */ React99.createElement(Tab2, { label: __46("Rotate", "elementor"), ...getTabProps(TransformFunctionKeys.rotate) }),
6960
- /* @__PURE__ */ React99.createElement(Tab2, { label: __46("Skew", "elementor"), ...getTabProps(TransformFunctionKeys.skew) })
6961
- )), /* @__PURE__ */ React99.createElement(TabPanel2, { sx: { p: 1.5 }, ...getTabPanelProps(TransformFunctionKeys.move) }, /* @__PURE__ */ React99.createElement(Move, null)), /* @__PURE__ */ React99.createElement(TabPanel2, { sx: { p: 1.5 }, ...getTabPanelProps(TransformFunctionKeys.scale) }, /* @__PURE__ */ React99.createElement(Scale, null)), /* @__PURE__ */ React99.createElement(TabPanel2, { sx: { p: 1.5 }, ...getTabPanelProps(TransformFunctionKeys.rotate) }, /* @__PURE__ */ React99.createElement(Rotate, null)), /* @__PURE__ */ React99.createElement(TabPanel2, { sx: { p: 1.5 }, ...getTabPanelProps(TransformFunctionKeys.skew) }, /* @__PURE__ */ React99.createElement(Skew, null))));
8091
+ /* @__PURE__ */ React106.createElement(Tab2, { label: __52("Move", "elementor"), ...getTabProps(TransformFunctionKeys.move) }),
8092
+ /* @__PURE__ */ React106.createElement(Tab2, { label: __52("Scale", "elementor"), ...getTabProps(TransformFunctionKeys.scale) }),
8093
+ /* @__PURE__ */ React106.createElement(Tab2, { label: __52("Rotate", "elementor"), ...getTabProps(TransformFunctionKeys.rotate) }),
8094
+ /* @__PURE__ */ React106.createElement(Tab2, { label: __52("Skew", "elementor"), ...getTabProps(TransformFunctionKeys.skew) })
8095
+ )), /* @__PURE__ */ React106.createElement(TabPanel2, { sx: { p: 1.5 }, ...getTabPanelProps(TransformFunctionKeys.move) }, /* @__PURE__ */ React106.createElement(Move, null)), /* @__PURE__ */ React106.createElement(TabPanel2, { sx: { p: 1.5 }, ...getTabPanelProps(TransformFunctionKeys.scale) }, /* @__PURE__ */ React106.createElement(Scale, null)), /* @__PURE__ */ React106.createElement(TabPanel2, { sx: { p: 1.5 }, ...getTabPanelProps(TransformFunctionKeys.rotate) }, /* @__PURE__ */ React106.createElement(Rotate, null)), /* @__PURE__ */ React106.createElement(TabPanel2, { sx: { p: 1.5 }, ...getTabPanelProps(TransformFunctionKeys.skew) }, /* @__PURE__ */ React106.createElement(Skew, null))));
6962
8096
  };
6963
8097
 
6964
8098
  // src/controls/transform-control/transform-icon.tsx
6965
- import * as React100 from "react";
8099
+ import * as React107 from "react";
6966
8100
  import { ArrowAutofitHeightIcon, ArrowsMaximizeIcon as ArrowsMaximizeIcon2, RotateClockwise2Icon, SkewXIcon } from "@elementor/icons";
6967
8101
  var TransformIcon = ({ value }) => {
6968
8102
  switch (value.$$type) {
6969
8103
  case TransformFunctionKeys.move:
6970
- return /* @__PURE__ */ React100.createElement(ArrowsMaximizeIcon2, { fontSize: "tiny" });
8104
+ return /* @__PURE__ */ React107.createElement(ArrowsMaximizeIcon2, { fontSize: "tiny" });
6971
8105
  case TransformFunctionKeys.scale:
6972
- return /* @__PURE__ */ React100.createElement(ArrowAutofitHeightIcon, { fontSize: "tiny" });
8106
+ return /* @__PURE__ */ React107.createElement(ArrowAutofitHeightIcon, { fontSize: "tiny" });
6973
8107
  case TransformFunctionKeys.rotate:
6974
- return /* @__PURE__ */ React100.createElement(RotateClockwise2Icon, { fontSize: "tiny" });
8108
+ return /* @__PURE__ */ React107.createElement(RotateClockwise2Icon, { fontSize: "tiny" });
6975
8109
  case TransformFunctionKeys.skew:
6976
- return /* @__PURE__ */ React100.createElement(SkewXIcon, { fontSize: "tiny" });
8110
+ return /* @__PURE__ */ React107.createElement(SkewXIcon, { fontSize: "tiny" });
6977
8111
  default:
6978
8112
  return null;
6979
8113
  }
6980
8114
  };
6981
8115
 
6982
8116
  // src/controls/transform-control/transform-label.tsx
6983
- import * as React101 from "react";
6984
- import { Box as Box19 } from "@elementor/ui";
6985
- import { __ as __47 } from "@wordpress/i18n";
8117
+ import * as React108 from "react";
8118
+ import { Box as Box24 } from "@elementor/ui";
8119
+ import { __ as __53 } from "@wordpress/i18n";
6986
8120
  var orderedAxis = ["x", "y", "z"];
6987
8121
  var formatLabel = (value, functionType) => {
6988
8122
  return orderedAxis.map((axisKey) => {
@@ -7000,98 +8134,98 @@ var TransformLabel = (props) => {
7000
8134
  const { $$type, value } = props.value;
7001
8135
  switch ($$type) {
7002
8136
  case TransformFunctionKeys.move:
7003
- return /* @__PURE__ */ React101.createElement(Label2, { label: __47("Move", "elementor"), value: formatLabel(value, "move") });
8137
+ return /* @__PURE__ */ React108.createElement(Label2, { label: __53("Move", "elementor"), value: formatLabel(value, "move") });
7004
8138
  case TransformFunctionKeys.scale:
7005
- return /* @__PURE__ */ React101.createElement(Label2, { label: __47("Scale", "elementor"), value: formatLabel(value, "scale") });
8139
+ return /* @__PURE__ */ React108.createElement(Label2, { label: __53("Scale", "elementor"), value: formatLabel(value, "scale") });
7006
8140
  case TransformFunctionKeys.rotate:
7007
- return /* @__PURE__ */ React101.createElement(Label2, { label: __47("Rotate", "elementor"), value: formatLabel(value, "rotate") });
8141
+ return /* @__PURE__ */ React108.createElement(Label2, { label: __53("Rotate", "elementor"), value: formatLabel(value, "rotate") });
7008
8142
  case TransformFunctionKeys.skew:
7009
- return /* @__PURE__ */ React101.createElement(Label2, { label: __47("Skew", "elementor"), value: formatLabel(value, "skew") });
8143
+ return /* @__PURE__ */ React108.createElement(Label2, { label: __53("Skew", "elementor"), value: formatLabel(value, "skew") });
7010
8144
  default:
7011
8145
  return "";
7012
8146
  }
7013
8147
  };
7014
8148
  var Label2 = ({ label, value }) => {
7015
- return /* @__PURE__ */ React101.createElement(Box19, { component: "span" }, label, ": ", value);
8149
+ return /* @__PURE__ */ React108.createElement(Box24, { component: "span" }, label, ": ", value);
7016
8150
  };
7017
8151
 
7018
8152
  // src/controls/transform-control/transform-settings-control.tsx
7019
- import * as React104 from "react";
7020
- import { PopoverHeader as PopoverHeader4 } from "@elementor/editor-ui";
8153
+ import * as React111 from "react";
8154
+ import { PopoverHeader as PopoverHeader5 } from "@elementor/editor-ui";
7021
8155
  import { AdjustmentsIcon } from "@elementor/icons";
7022
- import { bindPopover as bindPopover6, Box as Box20, Divider as Divider4, Popover as Popover6 } from "@elementor/ui";
7023
- import { __ as __50 } from "@wordpress/i18n";
8156
+ import { bindPopover as bindPopover6, Box as Box25, Divider as Divider5, Popover as Popover7 } from "@elementor/ui";
8157
+ import { __ as __56 } from "@wordpress/i18n";
7024
8158
 
7025
8159
  // src/controls/transform-control/transform-base-controls/children-perspective-control.tsx
7026
- import * as React102 from "react";
7027
- import { useRef as useRef23 } from "react";
8160
+ import * as React109 from "react";
8161
+ import { useRef as useRef25 } from "react";
7028
8162
  import { perspectiveOriginPropTypeUtil } from "@elementor/editor-props";
7029
- import { Grid as Grid27, Stack as Stack15 } from "@elementor/ui";
7030
- import { __ as __48 } from "@wordpress/i18n";
8163
+ import { Grid as Grid27, Stack as Stack19 } from "@elementor/ui";
8164
+ import { __ as __54 } from "@wordpress/i18n";
7031
8165
  var ORIGIN_UNITS = ["px", "%", "em", "rem"];
7032
8166
  var PERSPECTIVE_CONTROL_FIELD = {
7033
- label: __48("Perspective", "elementor"),
8167
+ label: __54("Perspective", "elementor"),
7034
8168
  bind: "perspective",
7035
8169
  units: ["px", "em", "rem", "vw", "vh"]
7036
8170
  };
7037
8171
  var CHILDREN_PERSPECTIVE_FIELDS = [
7038
8172
  {
7039
- label: __48("Origin X", "elementor"),
8173
+ label: __54("Origin X", "elementor"),
7040
8174
  bind: "x",
7041
8175
  units: ORIGIN_UNITS
7042
8176
  },
7043
8177
  {
7044
- label: __48("Origin Y", "elementor"),
8178
+ label: __54("Origin Y", "elementor"),
7045
8179
  bind: "y",
7046
8180
  units: ORIGIN_UNITS
7047
8181
  }
7048
8182
  ];
7049
8183
  var ChildrenPerspectiveControl = () => {
7050
- return /* @__PURE__ */ React102.createElement(Stack15, { direction: "column", spacing: 1.5 }, /* @__PURE__ */ React102.createElement(ControlFormLabel, null, __48("Children perspective", "elementor")), /* @__PURE__ */ React102.createElement(PerspectiveControl, null), /* @__PURE__ */ React102.createElement(PerspectiveOriginControl, null));
8184
+ return /* @__PURE__ */ React109.createElement(Stack19, { direction: "column", spacing: 1.5 }, /* @__PURE__ */ React109.createElement(ControlFormLabel, null, __54("Children perspective", "elementor")), /* @__PURE__ */ React109.createElement(PerspectiveControl, null), /* @__PURE__ */ React109.createElement(PerspectiveOriginControl, null));
7051
8185
  };
7052
- var PerspectiveControl = () => /* @__PURE__ */ React102.createElement(PropKeyProvider, { bind: "perspective" }, /* @__PURE__ */ React102.createElement(ControlFields, { control: PERSPECTIVE_CONTROL_FIELD, key: PERSPECTIVE_CONTROL_FIELD.bind }));
7053
- var PerspectiveOriginControl = () => /* @__PURE__ */ React102.createElement(PropKeyProvider, { bind: "perspective-origin" }, /* @__PURE__ */ React102.createElement(PerspectiveOriginControlProvider, null));
8186
+ var PerspectiveControl = () => /* @__PURE__ */ React109.createElement(PropKeyProvider, { bind: "perspective" }, /* @__PURE__ */ React109.createElement(ControlFields, { control: PERSPECTIVE_CONTROL_FIELD, key: PERSPECTIVE_CONTROL_FIELD.bind }));
8187
+ var PerspectiveOriginControl = () => /* @__PURE__ */ React109.createElement(PropKeyProvider, { bind: "perspective-origin" }, /* @__PURE__ */ React109.createElement(PerspectiveOriginControlProvider, null));
7054
8188
  var PerspectiveOriginControlProvider = () => {
7055
8189
  const context = useBoundProp(perspectiveOriginPropTypeUtil);
7056
- return /* @__PURE__ */ React102.createElement(PropProvider, { ...context }, CHILDREN_PERSPECTIVE_FIELDS.map((control) => /* @__PURE__ */ React102.createElement(PropKeyProvider, { bind: control.bind, key: control.bind }, /* @__PURE__ */ React102.createElement(ControlFields, { control }))));
8190
+ return /* @__PURE__ */ React109.createElement(PropProvider, { ...context }, CHILDREN_PERSPECTIVE_FIELDS.map((control) => /* @__PURE__ */ React109.createElement(PropKeyProvider, { bind: control.bind, key: control.bind }, /* @__PURE__ */ React109.createElement(ControlFields, { control }))));
7057
8191
  };
7058
8192
  var ControlFields = ({ control }) => {
7059
- const rowRef = useRef23(null);
7060
- return /* @__PURE__ */ React102.createElement(PopoverGridContainer, { ref: rowRef }, /* @__PURE__ */ React102.createElement(Grid27, { item: true, xs: 6 }, /* @__PURE__ */ React102.createElement(ControlFormLabel, null, control.label)), /* @__PURE__ */ React102.createElement(Grid27, { item: true, xs: 6 }, /* @__PURE__ */ React102.createElement(SizeControl, { variant: "length", units: control.units, anchorRef: rowRef, disableCustom: true })));
8193
+ const rowRef = useRef25(null);
8194
+ return /* @__PURE__ */ React109.createElement(PopoverGridContainer, { ref: rowRef }, /* @__PURE__ */ React109.createElement(Grid27, { item: true, xs: 6 }, /* @__PURE__ */ React109.createElement(ControlFormLabel, null, control.label)), /* @__PURE__ */ React109.createElement(Grid27, { item: true, xs: 6 }, /* @__PURE__ */ React109.createElement(SizeControl, { variant: "length", units: control.units, anchorRef: rowRef, disableCustom: true })));
7061
8195
  };
7062
8196
 
7063
8197
  // src/controls/transform-control/transform-base-controls/transform-origin-control.tsx
7064
- import * as React103 from "react";
7065
- import { useRef as useRef24 } from "react";
8198
+ import * as React110 from "react";
8199
+ import { useRef as useRef26 } from "react";
7066
8200
  import { transformOriginPropTypeUtil } from "@elementor/editor-props";
7067
- import { Grid as Grid28, Stack as Stack16 } from "@elementor/ui";
7068
- import { __ as __49 } from "@wordpress/i18n";
8201
+ import { Grid as Grid28, Stack as Stack20 } from "@elementor/ui";
8202
+ import { __ as __55 } from "@wordpress/i18n";
7069
8203
  var TRANSFORM_ORIGIN_UNITS = ["px", "%", "em", "rem"];
7070
8204
  var TRANSFORM_ORIGIN_UNITS_Z_AXIS = TRANSFORM_ORIGIN_UNITS.filter((unit) => unit !== "%");
7071
8205
  var TRANSFORM_ORIGIN_FIELDS = [
7072
8206
  {
7073
- label: __49("Origin X", "elementor"),
8207
+ label: __55("Origin X", "elementor"),
7074
8208
  bind: "x",
7075
8209
  units: TRANSFORM_ORIGIN_UNITS
7076
8210
  },
7077
8211
  {
7078
- label: __49("Origin Y", "elementor"),
8212
+ label: __55("Origin Y", "elementor"),
7079
8213
  bind: "y",
7080
8214
  units: TRANSFORM_ORIGIN_UNITS
7081
8215
  },
7082
8216
  {
7083
- label: __49("Origin Z", "elementor"),
8217
+ label: __55("Origin Z", "elementor"),
7084
8218
  bind: "z",
7085
8219
  units: TRANSFORM_ORIGIN_UNITS_Z_AXIS
7086
8220
  }
7087
8221
  ];
7088
8222
  var TransformOriginControl = () => {
7089
- return /* @__PURE__ */ React103.createElement(Stack16, { direction: "column", spacing: 1.5 }, /* @__PURE__ */ React103.createElement(ControlFormLabel, null, __49("Transform", "elementor")), TRANSFORM_ORIGIN_FIELDS.map((control) => /* @__PURE__ */ React103.createElement(ControlFields2, { control, key: control.bind })));
8223
+ return /* @__PURE__ */ React110.createElement(Stack20, { direction: "column", spacing: 1.5 }, /* @__PURE__ */ React110.createElement(ControlFormLabel, null, __55("Transform", "elementor")), TRANSFORM_ORIGIN_FIELDS.map((control) => /* @__PURE__ */ React110.createElement(ControlFields2, { control, key: control.bind })));
7090
8224
  };
7091
8225
  var ControlFields2 = ({ control }) => {
7092
8226
  const context = useBoundProp(transformOriginPropTypeUtil);
7093
- const rowRef = useRef24(null);
7094
- return /* @__PURE__ */ React103.createElement(PropProvider, { ...context }, /* @__PURE__ */ React103.createElement(PropKeyProvider, { bind: control.bind }, /* @__PURE__ */ React103.createElement(PopoverGridContainer, { ref: rowRef }, /* @__PURE__ */ React103.createElement(Grid28, { item: true, xs: 6 }, /* @__PURE__ */ React103.createElement(ControlFormLabel, null, control.label)), /* @__PURE__ */ React103.createElement(Grid28, { item: true, xs: 6 }, /* @__PURE__ */ React103.createElement(SizeControl, { variant: "length", units: control.units, anchorRef: rowRef })))));
8227
+ const rowRef = useRef26(null);
8228
+ return /* @__PURE__ */ React110.createElement(PropProvider, { ...context }, /* @__PURE__ */ React110.createElement(PropKeyProvider, { bind: control.bind }, /* @__PURE__ */ React110.createElement(PopoverGridContainer, { ref: rowRef }, /* @__PURE__ */ React110.createElement(Grid28, { item: true, xs: 6 }, /* @__PURE__ */ React110.createElement(ControlFormLabel, null, control.label)), /* @__PURE__ */ React110.createElement(Grid28, { item: true, xs: 6 }, /* @__PURE__ */ React110.createElement(SizeControl, { variant: "length", units: control.units, anchorRef: rowRef })))));
7095
8229
  };
7096
8230
 
7097
8231
  // src/controls/transform-control/transform-settings-control.tsx
@@ -7105,8 +8239,8 @@ var TransformSettingsControl = ({
7105
8239
  ...popupState,
7106
8240
  anchorEl: anchorRef.current ?? void 0
7107
8241
  });
7108
- return /* @__PURE__ */ React104.createElement(
7109
- Popover6,
8242
+ return /* @__PURE__ */ React111.createElement(
8243
+ Popover7,
7110
8244
  {
7111
8245
  disablePortal: true,
7112
8246
  anchorOrigin: { vertical: "bottom", horizontal: "left" },
@@ -7120,16 +8254,16 @@ var TransformSettingsControl = ({
7120
8254
  },
7121
8255
  ...popupProps
7122
8256
  },
7123
- /* @__PURE__ */ React104.createElement(
7124
- PopoverHeader4,
8257
+ /* @__PURE__ */ React111.createElement(
8258
+ PopoverHeader5,
7125
8259
  {
7126
- title: __50("Transform settings", "elementor"),
8260
+ title: __56("Transform settings", "elementor"),
7127
8261
  onClose: popupState.close,
7128
- icon: /* @__PURE__ */ React104.createElement(AdjustmentsIcon, { fontSize: SIZE10 })
8262
+ icon: /* @__PURE__ */ React111.createElement(AdjustmentsIcon, { fontSize: SIZE10 })
7129
8263
  }
7130
8264
  ),
7131
- /* @__PURE__ */ React104.createElement(Divider4, null),
7132
- /* @__PURE__ */ React104.createElement(PopoverContent, { sx: { px: 2, py: 1.5 } }, /* @__PURE__ */ React104.createElement(PropKeyProvider, { bind: "transform-origin" }, /* @__PURE__ */ React104.createElement(TransformOriginControl, null)), showChildrenPerspective && /* @__PURE__ */ React104.createElement(React104.Fragment, null, /* @__PURE__ */ React104.createElement(Box20, { sx: { my: 0.5 } }, /* @__PURE__ */ React104.createElement(Divider4, null)), /* @__PURE__ */ React104.createElement(ChildrenPerspectiveControl, null)))
8265
+ /* @__PURE__ */ React111.createElement(Divider5, null),
8266
+ /* @__PURE__ */ React111.createElement(PopoverContent, { sx: { px: 2, py: 1.5 } }, /* @__PURE__ */ React111.createElement(PropKeyProvider, { bind: "transform-origin" }, /* @__PURE__ */ React111.createElement(TransformOriginControl, null)), showChildrenPerspective && /* @__PURE__ */ React111.createElement(React111.Fragment, null, /* @__PURE__ */ React111.createElement(Box25, { sx: { my: 0.5 } }, /* @__PURE__ */ React111.createElement(Divider5, null)), /* @__PURE__ */ React111.createElement(ChildrenPerspectiveControl, null)))
7133
8267
  );
7134
8268
  };
7135
8269
 
@@ -7138,27 +8272,27 @@ var SIZE11 = "tiny";
7138
8272
  var TransformRepeaterControl = createControl(
7139
8273
  ({ showChildrenPerspective }) => {
7140
8274
  const context = useBoundProp(transformPropTypeUtil);
7141
- const headerRef = useRef25(null);
7142
- const popupState = usePopupState8({ variant: "popover" });
7143
- return /* @__PURE__ */ React105.createElement(PropProvider, { ...context }, /* @__PURE__ */ React105.createElement(
8275
+ const headerRef = useRef27(null);
8276
+ const popupState = usePopupState11({ variant: "popover" });
8277
+ return /* @__PURE__ */ React112.createElement(PropProvider, { ...context }, /* @__PURE__ */ React112.createElement(
7144
8278
  TransformSettingsControl,
7145
8279
  {
7146
8280
  popupState,
7147
8281
  anchorRef: headerRef,
7148
8282
  showChildrenPerspective
7149
8283
  }
7150
- ), /* @__PURE__ */ React105.createElement(PropKeyProvider, { bind: "transform-functions" }, /* @__PURE__ */ React105.createElement(Repeater2, { headerRef, propType: context.propType, popupState })));
8284
+ ), /* @__PURE__ */ React112.createElement(PropKeyProvider, { bind: "transform-functions" }, /* @__PURE__ */ React112.createElement(Repeater2, { headerRef, propType: context.propType, popupState })));
7151
8285
  }
7152
8286
  );
7153
- var ToolTip = /* @__PURE__ */ React105.createElement(
7154
- Box21,
8287
+ var ToolTip = /* @__PURE__ */ React112.createElement(
8288
+ Box26,
7155
8289
  {
7156
8290
  component: "span",
7157
8291
  "aria-label": void 0,
7158
8292
  sx: { display: "flex", gap: 0.5, p: 2, width: 320, borderRadius: 1 }
7159
8293
  },
7160
- /* @__PURE__ */ React105.createElement(InfoCircleFilledIcon2, { sx: { color: "secondary.main" } }),
7161
- /* @__PURE__ */ React105.createElement(Typography7, { variant: "body2", color: "text.secondary", fontSize: "14px" }, __51("You can use each kind of transform only once per element.", "elementor"))
8294
+ /* @__PURE__ */ React112.createElement(InfoCircleFilledIcon2, { sx: { color: "secondary.main" } }),
8295
+ /* @__PURE__ */ React112.createElement(Typography11, { variant: "body2", color: "text.secondary", fontSize: "14px" }, __57("You can use each kind of transform only once per element.", "elementor"))
7162
8296
  );
7163
8297
  var Repeater2 = ({
7164
8298
  headerRef,
@@ -7172,21 +8306,21 @@ var Repeater2 = ({
7172
8306
  return availableValues.find((value) => !transformValues?.some((item) => item.$$type === value.$$type));
7173
8307
  };
7174
8308
  const shouldDisableAddItem = !getInitialValue2();
7175
- return /* @__PURE__ */ React105.createElement(PropProvider, { ...transformFunctionsContext }, /* @__PURE__ */ React105.createElement(
8309
+ return /* @__PURE__ */ React112.createElement(PropProvider, { ...transformFunctionsContext }, /* @__PURE__ */ React112.createElement(
7176
8310
  ControlRepeater,
7177
8311
  {
7178
8312
  initial: getInitialValue2() ?? initialTransformValue,
7179
8313
  propTypeUtil: transformFunctionsPropTypeUtil
7180
8314
  },
7181
- /* @__PURE__ */ React105.createElement(
8315
+ /* @__PURE__ */ React112.createElement(
7182
8316
  RepeaterHeader,
7183
8317
  {
7184
- label: __51("Transform", "elementor"),
7185
- adornment: () => /* @__PURE__ */ React105.createElement(ControlAdornments, { customContext: { path: ["transform"], propType } }),
8318
+ label: __57("Transform", "elementor"),
8319
+ adornment: () => /* @__PURE__ */ React112.createElement(ControlAdornments, { customContext: { path: ["transform"], propType } }),
7186
8320
  ref: headerRef
7187
8321
  },
7188
- /* @__PURE__ */ React105.createElement(TransformBasePopoverTrigger, { popupState, repeaterBindKey: bind }),
7189
- /* @__PURE__ */ React105.createElement(
8322
+ /* @__PURE__ */ React112.createElement(TransformBasePopoverTrigger, { popupState, repeaterBindKey: bind }),
8323
+ /* @__PURE__ */ React112.createElement(
7190
8324
  TooltipAddItemAction,
7191
8325
  {
7192
8326
  disabled: shouldDisableAddItem,
@@ -7196,15 +8330,15 @@ var Repeater2 = ({
7196
8330
  }
7197
8331
  )
7198
8332
  ),
7199
- /* @__PURE__ */ React105.createElement(ItemsContainer, null, /* @__PURE__ */ React105.createElement(
8333
+ /* @__PURE__ */ React112.createElement(ItemsContainer, null, /* @__PURE__ */ React112.createElement(
7200
8334
  Item,
7201
8335
  {
7202
8336
  Icon: TransformIcon,
7203
8337
  Label: TransformLabel,
7204
- actions: /* @__PURE__ */ React105.createElement(React105.Fragment, null, /* @__PURE__ */ React105.createElement(DisableItemAction, null), /* @__PURE__ */ React105.createElement(RemoveItemAction, null))
8338
+ actions: /* @__PURE__ */ React112.createElement(React112.Fragment, null, /* @__PURE__ */ React112.createElement(DisableItemAction, null), /* @__PURE__ */ React112.createElement(RemoveItemAction, null))
7205
8339
  }
7206
8340
  )),
7207
- /* @__PURE__ */ React105.createElement(EditItemPopover, null, /* @__PURE__ */ React105.createElement(TransformContent, null))
8341
+ /* @__PURE__ */ React112.createElement(EditItemPopover, null, /* @__PURE__ */ React112.createElement(TransformContent, null))
7208
8342
  ));
7209
8343
  };
7210
8344
  var TransformBasePopoverTrigger = ({
@@ -7212,33 +8346,33 @@ var TransformBasePopoverTrigger = ({
7212
8346
  repeaterBindKey
7213
8347
  }) => {
7214
8348
  const { bind } = useBoundProp();
7215
- const titleLabel = __51("Transform settings", "elementor");
7216
- return bind !== repeaterBindKey ? null : /* @__PURE__ */ React105.createElement(Tooltip8, { title: titleLabel, placement: "top" }, /* @__PURE__ */ React105.createElement(IconButton8, { size: SIZE11, "aria-label": titleLabel, ...bindTrigger5(popupState) }, /* @__PURE__ */ React105.createElement(AdjustmentsIcon2, { fontSize: SIZE11 })));
8349
+ const titleLabel = __57("Transform settings", "elementor");
8350
+ return bind !== repeaterBindKey ? null : /* @__PURE__ */ React112.createElement(Tooltip11, { title: titleLabel, placement: "top" }, /* @__PURE__ */ React112.createElement(IconButton8, { size: SIZE11, "aria-label": titleLabel, ...bindTrigger5(popupState) }, /* @__PURE__ */ React112.createElement(AdjustmentsIcon2, { fontSize: SIZE11 })));
7217
8351
  };
7218
8352
 
7219
8353
  // src/controls/transition-control/transition-repeater-control.tsx
7220
- import * as React108 from "react";
7221
- import { useEffect as useEffect17, useMemo as useMemo16, useState as useState18 } from "react";
8354
+ import * as React115 from "react";
8355
+ import { useEffect as useEffect17, useMemo as useMemo17, useState as useState20 } from "react";
7222
8356
  import {
7223
8357
  createArrayPropUtils as createArrayPropUtils3,
7224
8358
  selectionSizePropTypeUtil as selectionSizePropTypeUtil2
7225
8359
  } from "@elementor/editor-props";
7226
8360
  import { InfoCircleFilledIcon as InfoCircleFilledIcon3 } from "@elementor/icons";
7227
- import { Alert as Alert2, AlertTitle as AlertTitle3, Box as Box23, Typography as Typography8 } from "@elementor/ui";
8361
+ import { Alert as Alert2, AlertTitle as AlertTitle3, Box as Box28, Typography as Typography12 } from "@elementor/ui";
7228
8362
  import { hasProInstalled as hasProInstalled2 } from "@elementor/utils";
7229
- import { __ as __54 } from "@wordpress/i18n";
8363
+ import { __ as __60 } from "@wordpress/i18n";
7230
8364
 
7231
8365
  // src/controls/selection-size-control.tsx
7232
- import * as React106 from "react";
7233
- import { useMemo as useMemo14, useRef as useRef26 } from "react";
8366
+ import * as React113 from "react";
8367
+ import { useMemo as useMemo15, useRef as useRef28 } from "react";
7234
8368
  import { selectionSizePropTypeUtil } from "@elementor/editor-props";
7235
8369
  import { Grid as Grid29 } from "@elementor/ui";
7236
8370
  var SelectionSizeControl = createControl(
7237
8371
  ({ selectionLabel, sizeLabel, selectionConfig, sizeConfigMap }) => {
7238
8372
  const { value, setValue, propType } = useBoundProp(selectionSizePropTypeUtil);
7239
- const rowRef = useRef26(null);
8373
+ const rowRef = useRef28(null);
7240
8374
  const sizeFieldId = sizeLabel.replace(/\s+/g, "-").toLowerCase();
7241
- const currentSizeConfig = useMemo14(() => {
8375
+ const currentSizeConfig = useMemo15(() => {
7242
8376
  switch (value.selection.$$type) {
7243
8377
  case "key-value":
7244
8378
  return sizeConfigMap[value?.selection?.value.value.value || ""];
@@ -7249,7 +8383,7 @@ var SelectionSizeControl = createControl(
7249
8383
  }
7250
8384
  }, [value, sizeConfigMap]);
7251
8385
  const SelectionComponent = selectionConfig.component;
7252
- return /* @__PURE__ */ React106.createElement(PropProvider, { value, setValue, propType }, /* @__PURE__ */ React106.createElement(Grid29, { container: true, spacing: 1.5, ref: rowRef }, /* @__PURE__ */ React106.createElement(Grid29, { item: true, xs: 6, sx: { display: "flex", alignItems: "center" } }, /* @__PURE__ */ React106.createElement(ControlFormLabel, null, selectionLabel)), /* @__PURE__ */ React106.createElement(Grid29, { item: true, xs: 6 }, /* @__PURE__ */ React106.createElement(PropKeyProvider, { bind: "selection" }, /* @__PURE__ */ React106.createElement(SelectionComponent, { ...selectionConfig.props }))), currentSizeConfig && /* @__PURE__ */ React106.createElement(React106.Fragment, null, /* @__PURE__ */ React106.createElement(Grid29, { item: true, xs: 6, sx: { display: "flex", alignItems: "center" } }, /* @__PURE__ */ React106.createElement(ControlFormLabel, { htmlFor: sizeFieldId }, sizeLabel)), /* @__PURE__ */ React106.createElement(Grid29, { item: true, xs: 6 }, /* @__PURE__ */ React106.createElement(PropKeyProvider, { bind: "size" }, /* @__PURE__ */ React106.createElement(
8386
+ return /* @__PURE__ */ React113.createElement(PropProvider, { value, setValue, propType }, /* @__PURE__ */ React113.createElement(Grid29, { container: true, spacing: 1.5, ref: rowRef }, /* @__PURE__ */ React113.createElement(Grid29, { item: true, xs: 6, sx: { display: "flex", alignItems: "center" } }, /* @__PURE__ */ React113.createElement(ControlFormLabel, null, selectionLabel)), /* @__PURE__ */ React113.createElement(Grid29, { item: true, xs: 6 }, /* @__PURE__ */ React113.createElement(PropKeyProvider, { bind: "selection" }, /* @__PURE__ */ React113.createElement(SelectionComponent, { ...selectionConfig.props }))), currentSizeConfig && /* @__PURE__ */ React113.createElement(React113.Fragment, null, /* @__PURE__ */ React113.createElement(Grid29, { item: true, xs: 6, sx: { display: "flex", alignItems: "center" } }, /* @__PURE__ */ React113.createElement(ControlFormLabel, { htmlFor: sizeFieldId }, sizeLabel)), /* @__PURE__ */ React113.createElement(Grid29, { item: true, xs: 6 }, /* @__PURE__ */ React113.createElement(PropKeyProvider, { bind: "size" }, /* @__PURE__ */ React113.createElement(
7253
8387
  SizeControl,
7254
8388
  {
7255
8389
  anchorRef: rowRef,
@@ -7264,12 +8398,12 @@ var SelectionSizeControl = createControl(
7264
8398
 
7265
8399
  // src/controls/transition-control/data.ts
7266
8400
  import { hasProInstalled, isVersionGreaterOrEqual } from "@elementor/utils";
7267
- import { __ as __52 } from "@wordpress/i18n";
8401
+ import { __ as __58 } from "@wordpress/i18n";
7268
8402
  var initialTransitionValue = {
7269
8403
  selection: {
7270
8404
  $$type: "key-value",
7271
8405
  value: {
7272
- key: { value: __52("All properties", "elementor"), $$type: "string" },
8406
+ key: { value: __58("All properties", "elementor"), $$type: "string" },
7273
8407
  value: { value: "all", $$type: "string" }
7274
8408
  }
7275
8409
  },
@@ -7293,128 +8427,128 @@ var createTransitionPropertiesList = () => {
7293
8427
  const isSiteRtl = getIsSiteRtl();
7294
8428
  const baseProperties = [
7295
8429
  {
7296
- label: __52("Default", "elementor"),
8430
+ label: __58("Default", "elementor"),
7297
8431
  type: "category",
7298
- properties: [{ label: __52("All properties", "elementor"), value: "all" }]
8432
+ properties: [{ label: __58("All properties", "elementor"), value: "all" }]
7299
8433
  },
7300
8434
  {
7301
- label: __52("Margin", "elementor"),
8435
+ label: __58("Margin", "elementor"),
7302
8436
  type: "category",
7303
8437
  properties: [
7304
- { label: __52("Margin (all)", "elementor"), value: "margin", isDisabled: true },
7305
- { label: __52("Margin bottom", "elementor"), value: "margin-block-end", isDisabled: true },
8438
+ { label: __58("Margin (all)", "elementor"), value: "margin", isDisabled: true },
8439
+ { label: __58("Margin bottom", "elementor"), value: "margin-block-end", isDisabled: true },
7306
8440
  {
7307
- label: isSiteRtl ? __52("Margin right", "elementor") : __52("Margin left", "elementor"),
8441
+ label: isSiteRtl ? __58("Margin right", "elementor") : __58("Margin left", "elementor"),
7308
8442
  value: "margin-inline-start",
7309
8443
  isDisabled: true
7310
8444
  },
7311
8445
  {
7312
- label: isSiteRtl ? __52("Margin left", "elementor") : __52("Margin right", "elementor"),
8446
+ label: isSiteRtl ? __58("Margin left", "elementor") : __58("Margin right", "elementor"),
7313
8447
  value: "margin-inline-end",
7314
8448
  isDisabled: true
7315
8449
  },
7316
- { label: __52("Margin top", "elementor"), value: "margin-block-start", isDisabled: true }
8450
+ { label: __58("Margin top", "elementor"), value: "margin-block-start", isDisabled: true }
7317
8451
  ]
7318
8452
  },
7319
8453
  {
7320
- label: __52("Padding", "elementor"),
8454
+ label: __58("Padding", "elementor"),
7321
8455
  type: "category",
7322
8456
  properties: [
7323
- { label: __52("Padding (all)", "elementor"), value: "padding", isDisabled: true },
7324
- { label: __52("Padding bottom", "elementor"), value: "padding-block-end", isDisabled: true },
8457
+ { label: __58("Padding (all)", "elementor"), value: "padding", isDisabled: true },
8458
+ { label: __58("Padding bottom", "elementor"), value: "padding-block-end", isDisabled: true },
7325
8459
  {
7326
- label: isSiteRtl ? __52("Padding right", "elementor") : __52("Padding left", "elementor"),
8460
+ label: isSiteRtl ? __58("Padding right", "elementor") : __58("Padding left", "elementor"),
7327
8461
  value: "padding-inline-start",
7328
8462
  isDisabled: true
7329
8463
  },
7330
8464
  {
7331
- label: isSiteRtl ? __52("Padding left", "elementor") : __52("Padding right", "elementor"),
8465
+ label: isSiteRtl ? __58("Padding left", "elementor") : __58("Padding right", "elementor"),
7332
8466
  value: "padding-inline-end",
7333
8467
  isDisabled: true
7334
8468
  },
7335
- { label: __52("Padding top", "elementor"), value: "padding-block-start", isDisabled: true }
8469
+ { label: __58("Padding top", "elementor"), value: "padding-block-start", isDisabled: true }
7336
8470
  ]
7337
8471
  },
7338
8472
  {
7339
- label: __52("Flex", "elementor"),
8473
+ label: __58("Flex", "elementor"),
7340
8474
  type: "category",
7341
8475
  properties: [
7342
- { label: __52("Flex (all)", "elementor"), value: "flex", isDisabled: true },
7343
- { label: __52("Flex grow", "elementor"), value: "flex-grow", isDisabled: true },
7344
- { label: __52("Flex shrink", "elementor"), value: "flex-shrink", isDisabled: true },
7345
- { label: __52("Flex basis", "elementor"), value: "flex-basis", isDisabled: true }
8476
+ { label: __58("Flex (all)", "elementor"), value: "flex", isDisabled: true },
8477
+ { label: __58("Flex grow", "elementor"), value: "flex-grow", isDisabled: true },
8478
+ { label: __58("Flex shrink", "elementor"), value: "flex-shrink", isDisabled: true },
8479
+ { label: __58("Flex basis", "elementor"), value: "flex-basis", isDisabled: true }
7346
8480
  ]
7347
8481
  },
7348
8482
  {
7349
- label: __52("Size", "elementor"),
8483
+ label: __58("Size", "elementor"),
7350
8484
  type: "category",
7351
8485
  properties: [
7352
- { label: __52("Width", "elementor"), value: "width", isDisabled: true },
7353
- { label: __52("Height", "elementor"), value: "height", isDisabled: true },
7354
- { label: __52("Max height", "elementor"), value: "max-height", isDisabled: true },
7355
- { label: __52("Max width", "elementor"), value: "max-width", isDisabled: true },
7356
- { label: __52("Min height", "elementor"), value: "min-height", isDisabled: true },
7357
- { label: __52("Min width", "elementor"), value: "min-width", isDisabled: true }
8486
+ { label: __58("Width", "elementor"), value: "width", isDisabled: true },
8487
+ { label: __58("Height", "elementor"), value: "height", isDisabled: true },
8488
+ { label: __58("Max height", "elementor"), value: "max-height", isDisabled: true },
8489
+ { label: __58("Max width", "elementor"), value: "max-width", isDisabled: true },
8490
+ { label: __58("Min height", "elementor"), value: "min-height", isDisabled: true },
8491
+ { label: __58("Min width", "elementor"), value: "min-width", isDisabled: true }
7358
8492
  ]
7359
8493
  },
7360
8494
  {
7361
- label: __52("Position", "elementor"),
8495
+ label: __58("Position", "elementor"),
7362
8496
  type: "category",
7363
8497
  properties: [
7364
- { label: __52("Top", "elementor"), value: "inset-block-start", isDisabled: true },
8498
+ { label: __58("Top", "elementor"), value: "inset-block-start", isDisabled: true },
7365
8499
  {
7366
- label: isSiteRtl ? __52("Right", "elementor") : __52("Left", "elementor"),
8500
+ label: isSiteRtl ? __58("Right", "elementor") : __58("Left", "elementor"),
7367
8501
  value: "inset-inline-start",
7368
8502
  isDisabled: true
7369
8503
  },
7370
8504
  {
7371
- label: isSiteRtl ? __52("Left", "elementor") : __52("Right", "elementor"),
8505
+ label: isSiteRtl ? __58("Left", "elementor") : __58("Right", "elementor"),
7372
8506
  value: "inset-inline-end",
7373
8507
  isDisabled: true
7374
8508
  },
7375
- { label: __52("Bottom", "elementor"), value: "inset-block-end", isDisabled: true },
7376
- { label: __52("Z-index", "elementor"), value: "z-index", isDisabled: true }
8509
+ { label: __58("Bottom", "elementor"), value: "inset-block-end", isDisabled: true },
8510
+ { label: __58("Z-index", "elementor"), value: "z-index", isDisabled: true }
7377
8511
  ]
7378
8512
  },
7379
8513
  {
7380
- label: __52("Typography", "elementor"),
8514
+ label: __58("Typography", "elementor"),
7381
8515
  type: "category",
7382
8516
  properties: [
7383
- { label: __52("Font color", "elementor"), value: "color", isDisabled: true },
7384
- { label: __52("Font size", "elementor"), value: "font-size", isDisabled: true },
7385
- { label: __52("Line height", "elementor"), value: "line-height", isDisabled: true },
7386
- { label: __52("Letter spacing", "elementor"), value: "letter-spacing", isDisabled: true },
7387
- { label: __52("Word spacing", "elementor"), value: "word-spacing", isDisabled: true },
7388
- { label: __52("Font variations", "elementor"), value: "font-variation-settings", isDisabled: true },
7389
- { label: __52("Text stroke color", "elementor"), value: "-webkit-text-stroke-color", isDisabled: true }
8517
+ { label: __58("Font color", "elementor"), value: "color", isDisabled: true },
8518
+ { label: __58("Font size", "elementor"), value: "font-size", isDisabled: true },
8519
+ { label: __58("Line height", "elementor"), value: "line-height", isDisabled: true },
8520
+ { label: __58("Letter spacing", "elementor"), value: "letter-spacing", isDisabled: true },
8521
+ { label: __58("Word spacing", "elementor"), value: "word-spacing", isDisabled: true },
8522
+ { label: __58("Font variations", "elementor"), value: "font-variation-settings", isDisabled: true },
8523
+ { label: __58("Text stroke color", "elementor"), value: "-webkit-text-stroke-color", isDisabled: true }
7390
8524
  ]
7391
8525
  },
7392
8526
  {
7393
- label: __52("Background", "elementor"),
8527
+ label: __58("Background", "elementor"),
7394
8528
  type: "category",
7395
8529
  properties: [
7396
- { label: __52("Background color", "elementor"), value: "background-color", isDisabled: true },
7397
- { label: __52("Background position", "elementor"), value: "background-position", isDisabled: true },
7398
- { label: __52("Box shadow", "elementor"), value: "box-shadow", isDisabled: true }
8530
+ { label: __58("Background color", "elementor"), value: "background-color", isDisabled: true },
8531
+ { label: __58("Background position", "elementor"), value: "background-position", isDisabled: true },
8532
+ { label: __58("Box shadow", "elementor"), value: "box-shadow", isDisabled: true }
7399
8533
  ]
7400
8534
  },
7401
8535
  {
7402
- label: __52("Border", "elementor"),
8536
+ label: __58("Border", "elementor"),
7403
8537
  type: "category",
7404
8538
  properties: [
7405
- { label: __52("Border (all)", "elementor"), value: "border", isDisabled: true },
7406
- { label: __52("Border radius", "elementor"), value: "border-radius", isDisabled: true },
7407
- { label: __52("Border color", "elementor"), value: "border-color", isDisabled: true },
7408
- { label: __52("Border width", "elementor"), value: "border-width", isDisabled: true }
8539
+ { label: __58("Border (all)", "elementor"), value: "border", isDisabled: true },
8540
+ { label: __58("Border radius", "elementor"), value: "border-radius", isDisabled: true },
8541
+ { label: __58("Border color", "elementor"), value: "border-color", isDisabled: true },
8542
+ { label: __58("Border width", "elementor"), value: "border-width", isDisabled: true }
7409
8543
  ]
7410
8544
  },
7411
8545
  {
7412
- label: __52("Effects", "elementor"),
8546
+ label: __58("Effects", "elementor"),
7413
8547
  type: "category",
7414
8548
  properties: [
7415
- { label: __52("Opacity", "elementor"), value: "opacity", isDisabled: true },
7416
- { label: __52("Transform (all)", "elementor"), value: "transform", isDisabled: true },
7417
- { label: __52("Filter (all)", "elementor"), value: "filter", isDisabled: true }
8549
+ { label: __58("Opacity", "elementor"), value: "opacity", isDisabled: true },
8550
+ { label: __58("Transform (all)", "elementor"), value: "transform", isDisabled: true },
8551
+ { label: __58("Filter (all)", "elementor"), value: "filter", isDisabled: true }
7418
8552
  ]
7419
8553
  }
7420
8554
  ];
@@ -7450,13 +8584,13 @@ function subscribeToTransitionEvent() {
7450
8584
  }
7451
8585
 
7452
8586
  // src/controls/transition-control/transition-selector.tsx
7453
- import * as React107 from "react";
7454
- import { useMemo as useMemo15, useRef as useRef27 } from "react";
8587
+ import * as React114 from "react";
8588
+ import { useMemo as useMemo16, useRef as useRef29 } from "react";
7455
8589
  import { keyValuePropTypeUtil as keyValuePropTypeUtil2 } from "@elementor/editor-props";
7456
8590
  import { PromotionAlert, PromotionChip } from "@elementor/editor-ui";
7457
8591
  import { ChevronDownIcon as ChevronDownIcon3, VariationsIcon } from "@elementor/icons";
7458
- import { bindPopover as bindPopover7, bindTrigger as bindTrigger6, Box as Box22, Popover as Popover7, UnstableTag as UnstableTag3, usePopupState as usePopupState9 } from "@elementor/ui";
7459
- import { __ as __53 } from "@wordpress/i18n";
8592
+ import { bindPopover as bindPopover7, bindTrigger as bindTrigger6, Box as Box27, Popover as Popover8, UnstableTag as UnstableTag3, usePopupState as usePopupState12 } from "@elementor/ui";
8593
+ import { __ as __59 } from "@wordpress/i18n";
7460
8594
 
7461
8595
  // src/utils/tracking.ts
7462
8596
  import { getSelectedElements as getSelectedElements2 } from "@elementor/editor-elements";
@@ -7537,9 +8671,9 @@ var TransitionSelector = ({
7537
8671
  const {
7538
8672
  key: { value: transitionLabel }
7539
8673
  } = value;
7540
- const defaultRef = useRef27(null);
7541
- const popoverState = usePopupState9({ variant: "popover" });
7542
- const disabledCategories = useMemo15(() => {
8674
+ const defaultRef = useRef29(null);
8675
+ const popoverState = usePopupState12({ variant: "popover" });
8676
+ const disabledCategories = useMemo16(() => {
7543
8677
  return new Set(
7544
8678
  transitionProperties.filter((cat) => cat.properties.some((prop) => prop.isDisabled)).map((cat) => cat.label)
7545
8679
  );
@@ -7559,7 +8693,7 @@ var TransitionSelector = ({
7559
8693
  return [
7560
8694
  first,
7561
8695
  {
7562
- label: __53("Recently Used", "elementor"),
8696
+ label: __59("Recently Used", "elementor"),
7563
8697
  items: recentItems
7564
8698
  },
7565
8699
  ...rest
@@ -7583,17 +8717,17 @@ var TransitionSelector = ({
7583
8717
  left: rect.right + 36
7584
8718
  };
7585
8719
  };
7586
- return /* @__PURE__ */ React107.createElement(Box22, { ref: defaultRef }, /* @__PURE__ */ React107.createElement(ControlActions, null, /* @__PURE__ */ React107.createElement(
8720
+ return /* @__PURE__ */ React114.createElement(Box27, { ref: defaultRef }, /* @__PURE__ */ React114.createElement(ControlActions, null, /* @__PURE__ */ React114.createElement(
7587
8721
  UnstableTag3,
7588
8722
  {
7589
8723
  variant: "outlined",
7590
8724
  label: transitionLabel,
7591
- endIcon: /* @__PURE__ */ React107.createElement(ChevronDownIcon3, { fontSize: "tiny" }),
8725
+ endIcon: /* @__PURE__ */ React114.createElement(ChevronDownIcon3, { fontSize: "tiny" }),
7592
8726
  ...bindTrigger6(popoverState),
7593
8727
  fullWidth: true
7594
8728
  }
7595
- )), /* @__PURE__ */ React107.createElement(
7596
- Popover7,
8729
+ )), /* @__PURE__ */ React114.createElement(
8730
+ Popover8,
7597
8731
  {
7598
8732
  disablePortal: true,
7599
8733
  disableScrollLock: true,
@@ -7603,7 +8737,7 @@ var TransitionSelector = ({
7603
8737
  anchorOrigin: { vertical: "top", horizontal: "right" },
7604
8738
  transformOrigin: { vertical: "top", horizontal: "left" }
7605
8739
  },
7606
- /* @__PURE__ */ React107.createElement(
8740
+ /* @__PURE__ */ React114.createElement(
7607
8741
  ItemSelector,
7608
8742
  {
7609
8743
  itemsList: getItemList(),
@@ -7611,11 +8745,11 @@ var TransitionSelector = ({
7611
8745
  onItemChange: handleTransitionPropertyChange,
7612
8746
  onClose: popoverState.close,
7613
8747
  sectionWidth: 268,
7614
- title: __53("Transition Property", "elementor"),
8748
+ title: __59("Transition Property", "elementor"),
7615
8749
  icon: VariationsIcon,
7616
8750
  disabledItems: includeCurrentValueInOptions(value, disabledItems),
7617
- categoryItemContentTemplate: (item) => /* @__PURE__ */ React107.createElement(
7618
- Box22,
8751
+ categoryItemContentTemplate: (item) => /* @__PURE__ */ React114.createElement(
8752
+ Box27,
7619
8753
  {
7620
8754
  sx: {
7621
8755
  display: "flex",
@@ -7624,13 +8758,13 @@ var TransitionSelector = ({
7624
8758
  width: "100%"
7625
8759
  }
7626
8760
  },
7627
- /* @__PURE__ */ React107.createElement("span", null, item.value),
7628
- showPromotion && disabledCategories.has(item.value) && /* @__PURE__ */ React107.createElement(PromotionChip, null)
8761
+ /* @__PURE__ */ React114.createElement("span", null, item.value),
8762
+ showPromotion && disabledCategories.has(item.value) && /* @__PURE__ */ React114.createElement(PromotionChip, null)
7629
8763
  ),
7630
- footer: showPromotion ? /* @__PURE__ */ React107.createElement(
8764
+ footer: showPromotion ? /* @__PURE__ */ React114.createElement(
7631
8765
  PromotionAlert,
7632
8766
  {
7633
- message: __53(
8767
+ message: __59(
7634
8768
  "Upgrade to customize transition properties and control effects.",
7635
8769
  "elementor"
7636
8770
  ),
@@ -7669,8 +8803,8 @@ var areAllPropertiesUsed = (value = []) => {
7669
8803
  };
7670
8804
  var getSelectionSizeProps = (recentlyUsedList, disabledItems, showPromotion) => {
7671
8805
  return {
7672
- selectionLabel: __54("Type", "elementor"),
7673
- sizeLabel: __54("Duration", "elementor"),
8806
+ selectionLabel: __60("Type", "elementor"),
8807
+ sizeLabel: __60("Duration", "elementor"),
7674
8808
  selectionConfig: {
7675
8809
  component: TransitionSelector,
7676
8810
  props: {
@@ -7746,7 +8880,7 @@ var getInitialValue = (values = []) => {
7746
8880
  }
7747
8881
  return initialTransitionValue;
7748
8882
  };
7749
- var disableAddItemTooltipContent = /* @__PURE__ */ React108.createElement(
8883
+ var disableAddItemTooltipContent = /* @__PURE__ */ React115.createElement(
7750
8884
  Alert2,
7751
8885
  {
7752
8886
  sx: {
@@ -7754,10 +8888,10 @@ var disableAddItemTooltipContent = /* @__PURE__ */ React108.createElement(
7754
8888
  gap: 0.5
7755
8889
  },
7756
8890
  color: "secondary",
7757
- icon: /* @__PURE__ */ React108.createElement(InfoCircleFilledIcon3, null)
8891
+ icon: /* @__PURE__ */ React115.createElement(InfoCircleFilledIcon3, null)
7758
8892
  },
7759
- /* @__PURE__ */ React108.createElement(AlertTitle3, null, __54("Transitions", "elementor")),
7760
- /* @__PURE__ */ React108.createElement(Box23, { component: "span" }, /* @__PURE__ */ React108.createElement(Typography8, { variant: "body2" }, __54("Switch to 'Normal' state to add a transition.", "elementor")))
8893
+ /* @__PURE__ */ React115.createElement(AlertTitle3, null, __60("Transitions", "elementor")),
8894
+ /* @__PURE__ */ React115.createElement(Box28, { component: "span" }, /* @__PURE__ */ React115.createElement(Typography12, { variant: "body2" }, __60("Switch to 'Normal' state to add a transition.", "elementor")))
7761
8895
  );
7762
8896
  var TransitionRepeaterControl = createControl(
7763
8897
  ({
@@ -7765,14 +8899,14 @@ var TransitionRepeaterControl = createControl(
7765
8899
  currentStyleState
7766
8900
  }) => {
7767
8901
  const currentStyleIsNormal = currentStyleState === null;
7768
- const [recentlyUsedList, setRecentlyUsedList] = useState18([]);
8902
+ const [recentlyUsedList, setRecentlyUsedList] = useState20([]);
7769
8903
  const proInstalled = hasProInstalled2();
7770
8904
  const { value, setValue } = useBoundProp(childArrayPropTypeUtil);
7771
- const { allDisabled: disabledItems, proDisabled: proDisabledItems } = useMemo16(
8905
+ const { allDisabled: disabledItems, proDisabled: proDisabledItems } = useMemo17(
7772
8906
  () => getDisabledItemLabels(value),
7773
8907
  [value]
7774
8908
  );
7775
- const allowedTransitionSet = useMemo16(() => {
8909
+ const allowedTransitionSet = useMemo17(() => {
7776
8910
  const set = /* @__PURE__ */ new Set();
7777
8911
  transitionProperties.forEach((category) => {
7778
8912
  category.properties.forEach((prop) => {
@@ -7798,15 +8932,15 @@ var TransitionRepeaterControl = createControl(
7798
8932
  useEffect17(() => {
7799
8933
  recentlyUsedListGetter().then(setRecentlyUsedList);
7800
8934
  }, [recentlyUsedListGetter]);
7801
- const allPropertiesUsed = useMemo16(() => areAllPropertiesUsed(value), [value]);
8935
+ const allPropertiesUsed = useMemo17(() => areAllPropertiesUsed(value), [value]);
7802
8936
  const isAddItemDisabled = !currentStyleIsNormal || allPropertiesUsed;
7803
- return /* @__PURE__ */ React108.createElement(
8937
+ return /* @__PURE__ */ React115.createElement(
7804
8938
  RepeatableControl,
7805
8939
  {
7806
- label: __54("Transitions", "elementor"),
7807
- repeaterLabel: __54("Transitions", "elementor"),
8940
+ label: __60("Transitions", "elementor"),
8941
+ repeaterLabel: __60("Transitions", "elementor"),
7808
8942
  patternLabel: "${value.selection.value.key.value}: ${value.size.value.size}${value.size.value.unit}",
7809
- placeholder: __54("Empty Transition", "elementor"),
8943
+ placeholder: __60("Empty Transition", "elementor"),
7810
8944
  showDuplicate: false,
7811
8945
  showToggle: true,
7812
8946
  initialValues: getInitialValue(value),
@@ -7827,11 +8961,11 @@ var TransitionRepeaterControl = createControl(
7827
8961
  );
7828
8962
 
7829
8963
  // src/controls/date-time-control.tsx
7830
- import * as React109 from "react";
8964
+ import * as React116 from "react";
7831
8965
  import * as dayjs from "dayjs";
7832
8966
  import { isTransformable as isTransformable2, stringPropTypeUtil as stringPropTypeUtil20 } from "@elementor/editor-props";
7833
8967
  import { DateTimePropTypeUtil } from "@elementor/editor-props";
7834
- import { Box as Box24, DatePicker, LocalizationProvider, TimePicker } from "@elementor/ui";
8968
+ import { Box as Box29, DatePicker, LocalizationProvider, TimePicker } from "@elementor/ui";
7835
8969
  var DATE_FORMAT = "YYYY-MM-DD";
7836
8970
  var TIME_FORMAT = "HH:mm";
7837
8971
  var DateTimeControl = createControl(({ inputDisabled }) => {
@@ -7875,7 +9009,7 @@ var DateTimeControl = createControl(({ inputDisabled }) => {
7875
9009
  const base = dayjs.default();
7876
9010
  return base.hour(h).minute(m).second(0).millisecond(0);
7877
9011
  };
7878
- return /* @__PURE__ */ React109.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React109.createElement(ControlActions, null, /* @__PURE__ */ React109.createElement(LocalizationProvider, null, /* @__PURE__ */ React109.createElement(Box24, { display: "flex", gap: 1, alignItems: "center" }, /* @__PURE__ */ React109.createElement(PropKeyProvider, { bind: "date" }, /* @__PURE__ */ React109.createElement(
9012
+ return /* @__PURE__ */ React116.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React116.createElement(ControlActions, null, /* @__PURE__ */ React116.createElement(LocalizationProvider, null, /* @__PURE__ */ React116.createElement(Box29, { display: "flex", gap: 1, alignItems: "center" }, /* @__PURE__ */ React116.createElement(PropKeyProvider, { bind: "date" }, /* @__PURE__ */ React116.createElement(
7879
9013
  DatePicker,
7880
9014
  {
7881
9015
  value: parseDateValue(stringPropTypeUtil20.extract(value?.date)),
@@ -7887,7 +9021,7 @@ var DateTimeControl = createControl(({ inputDisabled }) => {
7887
9021
  openPickerIcon: { fontSize: "tiny" }
7888
9022
  }
7889
9023
  }
7890
- )), /* @__PURE__ */ React109.createElement(PropKeyProvider, { bind: "time" }, /* @__PURE__ */ React109.createElement(
9024
+ )), /* @__PURE__ */ React116.createElement(PropKeyProvider, { bind: "time" }, /* @__PURE__ */ React116.createElement(
7891
9025
  TimePicker,
7892
9026
  {
7893
9027
  value: parseTimeValue(stringPropTypeUtil20.extract(value?.time)),
@@ -7903,13 +9037,13 @@ var DateTimeControl = createControl(({ inputDisabled }) => {
7903
9037
  });
7904
9038
 
7905
9039
  // src/controls/date-range-control.tsx
7906
- import * as React111 from "react";
9040
+ import * as React118 from "react";
7907
9041
  import { dateRangePropTypeUtil, dateStringPropTypeUtil as dateStringPropTypeUtil2 } from "@elementor/editor-props";
7908
- import { FormHelperText as FormHelperText2, Grid as Grid30, Stack as Stack17 } from "@elementor/ui";
7909
- import { __ as __55 } from "@wordpress/i18n";
9042
+ import { FormHelperText as FormHelperText2, Grid as Grid30, Stack as Stack21 } from "@elementor/ui";
9043
+ import { __ as __61 } from "@wordpress/i18n";
7910
9044
 
7911
9045
  // src/controls/date-string-control.tsx
7912
- import * as React110 from "react";
9046
+ import * as React117 from "react";
7913
9047
  import { dateStringPropTypeUtil } from "@elementor/editor-props";
7914
9048
  import { DatePicker as DatePicker2, LocalizationProvider as LocalizationProvider2 } from "@elementor/ui";
7915
9049
 
@@ -7968,7 +9102,7 @@ var DateStringControl = createControl(
7968
9102
  }
7969
9103
  setValue(newValue.format(format));
7970
9104
  };
7971
- return /* @__PURE__ */ React110.createElement(LocalizationProvider2, null, /* @__PURE__ */ React110.createElement(ControlActions, null, /* @__PURE__ */ React110.createElement(
9105
+ return /* @__PURE__ */ React117.createElement(LocalizationProvider2, null, /* @__PURE__ */ React117.createElement(ControlActions, null, /* @__PURE__ */ React117.createElement(
7972
9106
  DatePicker2,
7973
9107
  {
7974
9108
  value: parseDateString(value ?? ""),
@@ -7982,8 +9116,8 @@ var DateStringControl = createControl(
7982
9116
 
7983
9117
  // src/controls/date-range-control.tsx
7984
9118
  var RANGE_LABELS = {
7985
- min: __55("Min date", "elementor"),
7986
- max: __55("Max date", "elementor")
9119
+ min: __61("Min date", "elementor"),
9120
+ max: __61("Max date", "elementor")
7987
9121
  };
7988
9122
  var isMaxBeforeMin = (minIso, maxIso) => {
7989
9123
  if (!minIso || !maxIso) {
@@ -7991,38 +9125,38 @@ var isMaxBeforeMin = (minIso, maxIso) => {
7991
9125
  }
7992
9126
  return maxIso < minIso;
7993
9127
  };
7994
- var RANGE_ERROR_MESSAGE = __55("Max date must be on or after Min date", "elementor");
9128
+ var RANGE_ERROR_MESSAGE = __61("Max date must be on or after Min date", "elementor");
7995
9129
  var DateRangeControl = createControl(() => {
7996
9130
  const { value, setValue, ...propContext } = useBoundProp(dateRangePropTypeUtil);
7997
9131
  const minString = dateStringPropTypeUtil2.extract(value?.min);
7998
9132
  const maxString = dateStringPropTypeUtil2.extract(value?.max);
7999
9133
  const hasInvalidRange = isMaxBeforeMin(minString, maxString);
8000
- return /* @__PURE__ */ React111.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React111.createElement(Stack17, { gap: 0.75 }, /* @__PURE__ */ React111.createElement(Stack17, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React111.createElement(Grid30, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React111.createElement(Grid30, { item: true, xs: 12 }, /* @__PURE__ */ React111.createElement(ControlFormLabel, null, RANGE_LABELS.min)), /* @__PURE__ */ React111.createElement(Grid30, { item: true, xs: 12 }, /* @__PURE__ */ React111.createElement(
9134
+ return /* @__PURE__ */ React118.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React118.createElement(Stack21, { gap: 0.75 }, /* @__PURE__ */ React118.createElement(Stack21, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React118.createElement(Grid30, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React118.createElement(Grid30, { item: true, xs: 12 }, /* @__PURE__ */ React118.createElement(ControlFormLabel, null, RANGE_LABELS.min)), /* @__PURE__ */ React118.createElement(Grid30, { item: true, xs: 12 }, /* @__PURE__ */ React118.createElement(
8001
9135
  BoundDateStringControl,
8002
9136
  {
8003
9137
  bind: "min",
8004
9138
  ariaLabel: RANGE_LABELS.min,
8005
9139
  error: hasInvalidRange
8006
9140
  }
8007
- ))), /* @__PURE__ */ React111.createElement(Grid30, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React111.createElement(Grid30, { item: true, xs: 12 }, /* @__PURE__ */ React111.createElement(ControlFormLabel, null, RANGE_LABELS.max)), /* @__PURE__ */ React111.createElement(Grid30, { item: true, xs: 12 }, /* @__PURE__ */ React111.createElement(
9141
+ ))), /* @__PURE__ */ React118.createElement(Grid30, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React118.createElement(Grid30, { item: true, xs: 12 }, /* @__PURE__ */ React118.createElement(ControlFormLabel, null, RANGE_LABELS.max)), /* @__PURE__ */ React118.createElement(Grid30, { item: true, xs: 12 }, /* @__PURE__ */ React118.createElement(
8008
9142
  BoundDateStringControl,
8009
9143
  {
8010
9144
  bind: "max",
8011
9145
  ariaLabel: RANGE_LABELS.max,
8012
9146
  error: hasInvalidRange
8013
9147
  }
8014
- )))), hasInvalidRange && /* @__PURE__ */ React111.createElement(FormHelperText2, { error: true }, RANGE_ERROR_MESSAGE)));
9148
+ )))), hasInvalidRange && /* @__PURE__ */ React118.createElement(FormHelperText2, { error: true }, RANGE_ERROR_MESSAGE)));
8015
9149
  });
8016
9150
  var BoundDateStringControl = ({
8017
9151
  bind,
8018
9152
  ariaLabel,
8019
9153
  error
8020
9154
  }) => {
8021
- return /* @__PURE__ */ React111.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React111.createElement(DateStringControl, { ariaLabel, error, coerceInvalidToNull: true }));
9155
+ return /* @__PURE__ */ React118.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React118.createElement(DateStringControl, { ariaLabel, error, coerceInvalidToNull: true }));
8022
9156
  };
8023
9157
 
8024
9158
  // src/controls/time-string-control.tsx
8025
- import * as React112 from "react";
9159
+ import * as React119 from "react";
8026
9160
  import { timeStringPropTypeUtil } from "@elementor/editor-props";
8027
9161
  import { LocalizationProvider as LocalizationProvider3, TimePicker as TimePicker2 } from "@elementor/ui";
8028
9162
  var TimeStringControl = createControl(
@@ -8050,7 +9184,7 @@ var TimeStringControl = createControl(
8050
9184
  }
8051
9185
  setValue(newValue.format(format));
8052
9186
  };
8053
- return /* @__PURE__ */ React112.createElement(LocalizationProvider3, null, /* @__PURE__ */ React112.createElement(ControlActions, null, /* @__PURE__ */ React112.createElement(
9187
+ return /* @__PURE__ */ React119.createElement(LocalizationProvider3, null, /* @__PURE__ */ React119.createElement(ControlActions, null, /* @__PURE__ */ React119.createElement(
8054
9188
  TimePicker2,
8055
9189
  {
8056
9190
  value: parseTimeString(value ?? ""),
@@ -8063,38 +9197,38 @@ var TimeStringControl = createControl(
8063
9197
  );
8064
9198
 
8065
9199
  // src/controls/time-range-control.tsx
8066
- import * as React113 from "react";
9200
+ import * as React120 from "react";
8067
9201
  import { timeRangePropTypeUtil } from "@elementor/editor-props";
8068
- import { Grid as Grid31, Stack as Stack18 } from "@elementor/ui";
8069
- import { __ as __56 } from "@wordpress/i18n";
9202
+ import { Grid as Grid31, Stack as Stack22 } from "@elementor/ui";
9203
+ import { __ as __62 } from "@wordpress/i18n";
8070
9204
  var RANGE_LABELS2 = {
8071
- min: __56("Start time", "elementor"),
8072
- max: __56("End time", "elementor")
9205
+ min: __62("Start time", "elementor"),
9206
+ max: __62("End time", "elementor")
8073
9207
  };
8074
9208
  var TimeRangeControl = createControl(() => {
8075
9209
  const { value, setValue, ...propContext } = useBoundProp(timeRangePropTypeUtil);
8076
- return /* @__PURE__ */ React113.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React113.createElement(Stack18, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React113.createElement(Grid31, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React113.createElement(Grid31, { item: true, xs: 12 }, /* @__PURE__ */ React113.createElement(ControlFormLabel, null, RANGE_LABELS2.min)), /* @__PURE__ */ React113.createElement(Grid31, { item: true, xs: 12 }, /* @__PURE__ */ React113.createElement(BoundTimeStringControl, { bind: "min", ariaLabel: RANGE_LABELS2.min }))), /* @__PURE__ */ React113.createElement(Grid31, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React113.createElement(Grid31, { item: true, xs: 12 }, /* @__PURE__ */ React113.createElement(ControlFormLabel, null, RANGE_LABELS2.max)), /* @__PURE__ */ React113.createElement(Grid31, { item: true, xs: 12 }, /* @__PURE__ */ React113.createElement(BoundTimeStringControl, { bind: "max", ariaLabel: RANGE_LABELS2.max })))));
9210
+ return /* @__PURE__ */ React120.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React120.createElement(Stack22, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React120.createElement(Grid31, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React120.createElement(Grid31, { item: true, xs: 12 }, /* @__PURE__ */ React120.createElement(ControlFormLabel, null, RANGE_LABELS2.min)), /* @__PURE__ */ React120.createElement(Grid31, { item: true, xs: 12 }, /* @__PURE__ */ React120.createElement(BoundTimeStringControl, { bind: "min", ariaLabel: RANGE_LABELS2.min }))), /* @__PURE__ */ React120.createElement(Grid31, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React120.createElement(Grid31, { item: true, xs: 12 }, /* @__PURE__ */ React120.createElement(ControlFormLabel, null, RANGE_LABELS2.max)), /* @__PURE__ */ React120.createElement(Grid31, { item: true, xs: 12 }, /* @__PURE__ */ React120.createElement(BoundTimeStringControl, { bind: "max", ariaLabel: RANGE_LABELS2.max })))));
8077
9211
  });
8078
9212
  var BoundTimeStringControl = ({ bind, ariaLabel }) => {
8079
- return /* @__PURE__ */ React113.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React113.createElement(TimeStringControl, { ariaLabel, coerceInvalidToNull: true }));
9213
+ return /* @__PURE__ */ React120.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React120.createElement(TimeStringControl, { ariaLabel, coerceInvalidToNull: true }));
8080
9214
  };
8081
9215
 
8082
9216
  // src/controls/inline-editing-control.tsx
8083
- import * as React117 from "react";
8084
- import { useCallback as useCallback4, useState as useState20 } from "react";
9217
+ import * as React124 from "react";
9218
+ import { useCallback as useCallback4, useState as useState22 } from "react";
8085
9219
  import { escapedHtmlPropTypeUtil as escapedHtmlPropTypeUtil2 } from "@elementor/editor-props";
8086
- import { Box as Box27 } from "@elementor/ui";
9220
+ import { Box as Box32 } from "@elementor/ui";
8087
9221
 
8088
9222
  // src/components/inline-editor.tsx
8089
- import * as React114 from "react";
8090
- import { useEffect as useEffect18, useRef as useRef28 } from "react";
8091
- import { Box as Box25 } from "@elementor/ui";
9223
+ import * as React121 from "react";
9224
+ import { useEffect as useEffect18, useRef as useRef30 } from "react";
9225
+ import { Box as Box30 } from "@elementor/ui";
8092
9226
  import Bold from "@tiptap/extension-bold";
8093
9227
  import Document from "@tiptap/extension-document";
8094
9228
  import HardBreak from "@tiptap/extension-hard-break";
8095
9229
  import Heading from "@tiptap/extension-heading";
8096
9230
  import Italic from "@tiptap/extension-italic";
8097
- import Link3 from "@tiptap/extension-link";
9231
+ import Link4 from "@tiptap/extension-link";
8098
9232
  import Paragraph from "@tiptap/extension-paragraph";
8099
9233
  import Strike from "@tiptap/extension-strike";
8100
9234
  import Subscript from "@tiptap/extension-subscript";
@@ -8133,7 +9267,7 @@ function extractInlineHtmlContent(propValue) {
8133
9267
  var ITALIC_KEYBOARD_SHORTCUT = "i";
8134
9268
  var BOLD_KEYBOARD_SHORTCUT = "b";
8135
9269
  var UNDERLINE_KEYBOARD_SHORTCUT = "u";
8136
- var InlineEditor = React114.forwardRef((props, ref) => {
9270
+ var InlineEditor = React121.forwardRef((props, ref) => {
8137
9271
  const {
8138
9272
  value,
8139
9273
  setValue,
@@ -8150,8 +9284,8 @@ var InlineEditor = React114.forwardRef((props, ref) => {
8150
9284
  onSelectionEnd,
8151
9285
  mountElement = null
8152
9286
  } = props;
8153
- const containerRef = useRef28(null);
8154
- const onBlurRef = useRef28(onBlur);
9287
+ const containerRef = useRef30(null);
9288
+ const onBlurRef = useRef30(onBlur);
8155
9289
  onBlurRef.current = onBlur;
8156
9290
  const documentContentSettings = !!expectedTag ? "block+" : "inline*";
8157
9291
  const onUpdate = ({ editor: updatedEditor }) => {
@@ -8196,7 +9330,7 @@ var InlineEditor = React114.forwardRef((props, ref) => {
8196
9330
  }).configure({
8197
9331
  levels: [1, 2, 3, 4, 5, 6]
8198
9332
  }),
8199
- Link3.configure({
9333
+ Link4.configure({
8200
9334
  openOnClick: false
8201
9335
  }),
8202
9336
  Text,
@@ -8246,10 +9380,10 @@ var InlineEditor = React114.forwardRef((props, ref) => {
8246
9380
  if (mountElement) {
8247
9381
  return null;
8248
9382
  }
8249
- return /* @__PURE__ */ React114.createElement(Box25, { ref: containerRef, sx, className: wrapperClassName }, /* @__PURE__ */ React114.createElement(EditorContent, { ref, editor }));
9383
+ return /* @__PURE__ */ React121.createElement(Box30, { ref: containerRef, sx, className: wrapperClassName }, /* @__PURE__ */ React121.createElement(EditorContent, { ref, editor }));
8250
9384
  });
8251
9385
  var useOnUpdate = (callback, dependencies) => {
8252
- const hasMounted = useRef28(false);
9386
+ const hasMounted = useRef30(false);
8253
9387
  useEffect18(() => {
8254
9388
  if (hasMounted.current) {
8255
9389
  callback();
@@ -8260,8 +9394,8 @@ var useOnUpdate = (callback, dependencies) => {
8260
9394
  };
8261
9395
 
8262
9396
  // src/components/inline-editor-toolbar.tsx
8263
- import * as React116 from "react";
8264
- import { useEffect as useEffect20, useMemo as useMemo17, useRef as useRef30, useState as useState19 } from "react";
9397
+ import * as React123 from "react";
9398
+ import { useEffect as useEffect20, useMemo as useMemo18, useRef as useRef32, useState as useState21 } from "react";
8265
9399
  import { getContainer as getContainer2, getElementSetting } from "@elementor/editor-elements";
8266
9400
  import {
8267
9401
  BoldIcon,
@@ -8274,23 +9408,23 @@ import {
8274
9408
  UnderlineIcon
8275
9409
  } from "@elementor/icons";
8276
9410
  import {
8277
- Box as Box26,
9411
+ Box as Box31,
8278
9412
  IconButton as IconButton9,
8279
- ToggleButton as ToggleButton3,
9413
+ ToggleButton as ToggleButton5,
8280
9414
  ToggleButtonGroup as ToggleButtonGroup2,
8281
9415
  toggleButtonGroupClasses,
8282
- Tooltip as Tooltip10,
8283
- usePopupState as usePopupState10
9416
+ Tooltip as Tooltip13,
9417
+ usePopupState as usePopupState13
8284
9418
  } from "@elementor/ui";
8285
9419
  import { useEditorState } from "@tiptap/react";
8286
- import { __ as __58 } from "@wordpress/i18n";
9420
+ import { __ as __64 } from "@wordpress/i18n";
8287
9421
 
8288
9422
  // src/components/url-popover.tsx
8289
- import * as React115 from "react";
8290
- import { useEffect as useEffect19, useRef as useRef29 } from "react";
9423
+ import * as React122 from "react";
9424
+ import { useEffect as useEffect19, useRef as useRef31 } from "react";
8291
9425
  import { ExternalLinkIcon } from "@elementor/icons";
8292
- import { bindPopover as bindPopover8, Popover as Popover8, Stack as Stack19, TextField as TextField11, ToggleButton as ToggleButton2, Tooltip as Tooltip9 } from "@elementor/ui";
8293
- import { __ as __57 } from "@wordpress/i18n";
9426
+ import { bindPopover as bindPopover8, Popover as Popover9, Stack as Stack23, TextField as TextField11, ToggleButton as ToggleButton4, Tooltip as Tooltip12 } from "@elementor/ui";
9427
+ import { __ as __63 } from "@wordpress/i18n";
8294
9428
  var UrlPopover = ({
8295
9429
  popupState,
8296
9430
  restoreValue,
@@ -8300,7 +9434,7 @@ var UrlPopover = ({
8300
9434
  openInNewTab,
8301
9435
  onToggleNewTab
8302
9436
  }) => {
8303
- const inputRef = useRef29(null);
9437
+ const inputRef = useRef31(null);
8304
9438
  useEffect19(() => {
8305
9439
  if (popupState.isOpen) {
8306
9440
  requestAnimationFrame(() => inputRef.current?.focus());
@@ -8310,8 +9444,8 @@ var UrlPopover = ({
8310
9444
  restoreValue();
8311
9445
  popupState.close();
8312
9446
  };
8313
- return /* @__PURE__ */ React115.createElement(
8314
- Popover8,
9447
+ return /* @__PURE__ */ React122.createElement(
9448
+ Popover9,
8315
9449
  {
8316
9450
  slotProps: {
8317
9451
  paper: { sx: { borderRadius: "16px", width: anchorRef.current?.offsetWidth + "px", marginTop: -1 } }
@@ -8321,30 +9455,30 @@ var UrlPopover = ({
8321
9455
  transformOrigin: { vertical: "top", horizontal: "left" },
8322
9456
  onClose: handleClose
8323
9457
  },
8324
- /* @__PURE__ */ React115.createElement(Stack19, { direction: "row", alignItems: "center", gap: 1, sx: { p: 1.5 } }, /* @__PURE__ */ React115.createElement(
9458
+ /* @__PURE__ */ React122.createElement(Stack23, { direction: "row", alignItems: "center", gap: 1, sx: { p: 1.5 } }, /* @__PURE__ */ React122.createElement(
8325
9459
  TextField11,
8326
9460
  {
8327
9461
  value,
8328
9462
  onChange,
8329
9463
  size: "tiny",
8330
9464
  fullWidth: true,
8331
- placeholder: __57("Type a URL", "elementor"),
9465
+ placeholder: __63("Type a URL", "elementor"),
8332
9466
  inputProps: { ref: inputRef },
8333
9467
  color: "secondary",
8334
9468
  InputProps: { sx: { borderRadius: "8px" } },
8335
9469
  onKeyUp: (event) => event.key === "Enter" && handleClose()
8336
9470
  }
8337
- ), /* @__PURE__ */ React115.createElement(Tooltip9, { title: __57("Open in a new tab", "elementor") }, /* @__PURE__ */ React115.createElement(
8338
- ToggleButton2,
9471
+ ), /* @__PURE__ */ React122.createElement(Tooltip12, { title: __63("Open in a new tab", "elementor") }, /* @__PURE__ */ React122.createElement(
9472
+ ToggleButton4,
8339
9473
  {
8340
9474
  size: "tiny",
8341
9475
  value: "newTab",
8342
9476
  selected: openInNewTab,
8343
9477
  onClick: onToggleNewTab,
8344
- "aria-label": __57("Open in a new tab", "elementor"),
9478
+ "aria-label": __63("Open in a new tab", "elementor"),
8345
9479
  sx: { borderRadius: "8px" }
8346
9480
  },
8347
- /* @__PURE__ */ React115.createElement(ExternalLinkIcon, { fontSize: "tiny" })
9481
+ /* @__PURE__ */ React122.createElement(ExternalLinkIcon, { fontSize: "tiny" })
8348
9482
  )))
8349
9483
  );
8350
9484
  };
@@ -8356,16 +9490,16 @@ var InlineEditorToolbar = ({
8356
9490
  sx = {},
8357
9491
  inControlPanel = false
8358
9492
  }) => {
8359
- const [urlValue, setUrlValue] = useState19("");
8360
- const [openInNewTab, setOpenInNewTab] = useState19(false);
8361
- const toolbarRef = useRef30(null);
8362
- const linkPopupState = usePopupState10({ variant: "popover" });
9493
+ const [urlValue, setUrlValue] = useState21("");
9494
+ const [openInNewTab, setOpenInNewTab] = useState21(false);
9495
+ const toolbarRef = useRef32(null);
9496
+ const linkPopupState = usePopupState13({ variant: "popover" });
8363
9497
  const isElementClickable = elementId ? checkIfElementIsClickable(elementId) : false;
8364
9498
  const editorState = useEditorState({
8365
9499
  editor,
8366
9500
  selector: (ctx) => possibleFormats.filter((format) => ctx.editor.isActive(format))
8367
9501
  });
8368
- const formatButtonsList = useMemo17(() => {
9502
+ const formatButtonsList = useMemo18(() => {
8369
9503
  const buttons = Object.values(formatButtons);
8370
9504
  if (isElementClickable) {
8371
9505
  return buttons.filter((button) => button.action !== "link");
@@ -8407,8 +9541,8 @@ var InlineEditorToolbar = ({
8407
9541
  editor?.commands?.focus();
8408
9542
  }
8409
9543
  }, [editor, inControlPanel]);
8410
- return /* @__PURE__ */ React116.createElement(
8411
- Box26,
9544
+ return /* @__PURE__ */ React123.createElement(
9545
+ Box31,
8412
9546
  {
8413
9547
  ref: toolbarRef,
8414
9548
  sx: {
@@ -8441,8 +9575,8 @@ var InlineEditorToolbar = ({
8441
9575
  }
8442
9576
  }
8443
9577
  },
8444
- /* @__PURE__ */ React116.createElement(Tooltip10, { title: clearButton.label, placement: "top", sx: { borderRadius: "8px" } }, /* @__PURE__ */ React116.createElement(IconButton9, { "aria-label": clearButton.label, onClick: () => clearButton.method(editor), size: "tiny" }, clearButton.icon)),
8445
- /* @__PURE__ */ React116.createElement(
9578
+ /* @__PURE__ */ React123.createElement(Tooltip13, { title: clearButton.label, placement: "top", sx: { borderRadius: "8px" } }, /* @__PURE__ */ React123.createElement(IconButton9, { "aria-label": clearButton.label, onClick: () => clearButton.method(editor), size: "tiny" }, clearButton.icon)),
9579
+ /* @__PURE__ */ React123.createElement(
8446
9580
  ToggleButtonGroup2,
8447
9581
  {
8448
9582
  value: editorState,
@@ -8472,8 +9606,8 @@ var InlineEditorToolbar = ({
8472
9606
  }
8473
9607
  }
8474
9608
  },
8475
- formatButtonsList.map((button) => /* @__PURE__ */ React116.createElement(Tooltip10, { title: button.label, key: button.action, placement: "top" }, /* @__PURE__ */ React116.createElement(
8476
- ToggleButton3,
9609
+ formatButtonsList.map((button) => /* @__PURE__ */ React123.createElement(Tooltip13, { title: button.label, key: button.action, placement: "top" }, /* @__PURE__ */ React123.createElement(
9610
+ ToggleButton5,
8477
9611
  {
8478
9612
  value: button.action,
8479
9613
  "aria-label": button.label,
@@ -8490,7 +9624,7 @@ var InlineEditorToolbar = ({
8490
9624
  button.icon
8491
9625
  )))
8492
9626
  ),
8493
- /* @__PURE__ */ React116.createElement(
9627
+ /* @__PURE__ */ React123.createElement(
8494
9628
  UrlPopover,
8495
9629
  {
8496
9630
  popupState: linkPopupState,
@@ -8513,64 +9647,64 @@ var checkIfElementIsClickable = (elementId) => {
8513
9647
  };
8514
9648
  var toolbarButtons = {
8515
9649
  clear: {
8516
- label: __58("Clear", "elementor"),
8517
- icon: /* @__PURE__ */ React116.createElement(MinusIcon2, { fontSize: "tiny" }),
9650
+ label: __64("Clear", "elementor"),
9651
+ icon: /* @__PURE__ */ React123.createElement(MinusIcon2, { fontSize: "tiny" }),
8518
9652
  action: "clear",
8519
9653
  method: (editor) => {
8520
9654
  editor.chain().focus().clearNodes().unsetAllMarks().run();
8521
9655
  }
8522
9656
  },
8523
9657
  bold: {
8524
- label: __58("Bold", "elementor"),
8525
- icon: /* @__PURE__ */ React116.createElement(BoldIcon, { fontSize: "tiny" }),
9658
+ label: __64("Bold", "elementor"),
9659
+ icon: /* @__PURE__ */ React123.createElement(BoldIcon, { fontSize: "tiny" }),
8526
9660
  action: "bold",
8527
9661
  method: (editor) => {
8528
9662
  editor.chain().focus().toggleBold().run();
8529
9663
  }
8530
9664
  },
8531
9665
  italic: {
8532
- label: __58("Italic", "elementor"),
8533
- icon: /* @__PURE__ */ React116.createElement(ItalicIcon, { fontSize: "tiny" }),
9666
+ label: __64("Italic", "elementor"),
9667
+ icon: /* @__PURE__ */ React123.createElement(ItalicIcon, { fontSize: "tiny" }),
8534
9668
  action: "italic",
8535
9669
  method: (editor) => {
8536
9670
  editor.chain().focus().toggleItalic().run();
8537
9671
  }
8538
9672
  },
8539
9673
  underline: {
8540
- label: __58("Underline", "elementor"),
8541
- icon: /* @__PURE__ */ React116.createElement(UnderlineIcon, { fontSize: "tiny" }),
9674
+ label: __64("Underline", "elementor"),
9675
+ icon: /* @__PURE__ */ React123.createElement(UnderlineIcon, { fontSize: "tiny" }),
8542
9676
  action: "underline",
8543
9677
  method: (editor) => {
8544
9678
  editor.chain().focus().toggleUnderline().run();
8545
9679
  }
8546
9680
  },
8547
9681
  strike: {
8548
- label: __58("Strikethrough", "elementor"),
8549
- icon: /* @__PURE__ */ React116.createElement(StrikethroughIcon, { fontSize: "tiny" }),
9682
+ label: __64("Strikethrough", "elementor"),
9683
+ icon: /* @__PURE__ */ React123.createElement(StrikethroughIcon, { fontSize: "tiny" }),
8550
9684
  action: "strike",
8551
9685
  method: (editor) => {
8552
9686
  editor.chain().focus().toggleStrike().run();
8553
9687
  }
8554
9688
  },
8555
9689
  superscript: {
8556
- label: __58("Superscript", "elementor"),
8557
- icon: /* @__PURE__ */ React116.createElement(SuperscriptIcon, { fontSize: "tiny" }),
9690
+ label: __64("Superscript", "elementor"),
9691
+ icon: /* @__PURE__ */ React123.createElement(SuperscriptIcon, { fontSize: "tiny" }),
8558
9692
  action: "superscript",
8559
9693
  method: (editor) => {
8560
9694
  editor.chain().focus().toggleSuperscript().run();
8561
9695
  }
8562
9696
  },
8563
9697
  subscript: {
8564
- label: __58("Subscript", "elementor"),
8565
- icon: /* @__PURE__ */ React116.createElement(SubscriptIcon, { fontSize: "tiny" }),
9698
+ label: __64("Subscript", "elementor"),
9699
+ icon: /* @__PURE__ */ React123.createElement(SubscriptIcon, { fontSize: "tiny" }),
8566
9700
  action: "subscript",
8567
9701
  method: (editor) => {
8568
9702
  editor.chain().focus().toggleSubscript().run();
8569
9703
  }
8570
9704
  },
8571
9705
  link: {
8572
- label: __58("Link", "elementor"),
8573
- icon: /* @__PURE__ */ React116.createElement(LinkIcon3, { fontSize: "tiny" }),
9706
+ label: __64("Link", "elementor"),
9707
+ icon: /* @__PURE__ */ React123.createElement(LinkIcon3, { fontSize: "tiny" }),
8574
9708
  action: "link",
8575
9709
  method: null
8576
9710
  }
@@ -8583,7 +9717,7 @@ var InlineEditingControl = createControl(({ sx, attributes, props, context: { el
8583
9717
  const { setValue, placeholder, value } = useBoundProp(escapedHtmlPropTypeUtil2);
8584
9718
  const { value: rawValue } = usePropKeyContext();
8585
9719
  const content = value ?? extractInlineHtmlContent(rawValue);
8586
- const [editor, setEditor] = useState20(null);
9720
+ const [editor, setEditor] = useState22(null);
8587
9721
  const handleChange = useCallback4(
8588
9722
  (newValue) => {
8589
9723
  const html = newValue ?? "";
@@ -8591,7 +9725,7 @@ var InlineEditingControl = createControl(({ sx, attributes, props, context: { el
8591
9725
  },
8592
9726
  [setValue]
8593
9727
  );
8594
- return /* @__PURE__ */ React117.createElement(ControlActions, null, /* @__PURE__ */ React117.createElement(Box27, { sx: { position: "relative" } }, editor && editor.isEditable && /* @__PURE__ */ React117.createElement(
9728
+ return /* @__PURE__ */ React124.createElement(ControlActions, null, /* @__PURE__ */ React124.createElement(Box32, { sx: { position: "relative" } }, editor && editor.isEditable && /* @__PURE__ */ React124.createElement(
8595
9729
  InlineEditorToolbar,
8596
9730
  {
8597
9731
  editor,
@@ -8604,8 +9738,8 @@ var InlineEditingControl = createControl(({ sx, attributes, props, context: { el
8604
9738
  }),
8605
9739
  inControlPanel: true
8606
9740
  }
8607
- ), /* @__PURE__ */ React117.createElement(
8608
- Box27,
9741
+ ), /* @__PURE__ */ React124.createElement(
9742
+ Box32,
8609
9743
  {
8610
9744
  sx: (theme) => ({
8611
9745
  p: 0.8,
@@ -8649,7 +9783,7 @@ var InlineEditingControl = createControl(({ sx, attributes, props, context: { el
8649
9783
  ...attributes,
8650
9784
  ...props
8651
9785
  },
8652
- /* @__PURE__ */ React117.createElement(
9786
+ /* @__PURE__ */ React124.createElement(
8653
9787
  InlineEditor,
8654
9788
  {
8655
9789
  value: content,
@@ -8666,17 +9800,17 @@ var InlineEditingControl = createControl(({ sx, attributes, props, context: { el
8666
9800
  });
8667
9801
 
8668
9802
  // src/controls/email-form-action-control/index.tsx
8669
- import * as React121 from "react";
9803
+ import * as React128 from "react";
8670
9804
  import { emailsPropTypeUtil } from "@elementor/editor-props";
8671
9805
  import { CollapsibleContent } from "@elementor/editor-ui";
8672
- import { Box as Box28, Divider as Divider5, Stack as Stack21 } from "@elementor/ui";
8673
- import { __ as __60 } from "@wordpress/i18n";
9806
+ import { Box as Box33, Divider as Divider6, Stack as Stack25 } from "@elementor/ui";
9807
+ import { __ as __66 } from "@wordpress/i18n";
8674
9808
 
8675
9809
  // src/controls/email-form-action-control/fields.tsx
8676
- import * as React120 from "react";
9810
+ import * as React127 from "react";
8677
9811
  import { InfoAlert as InfoAlert2 } from "@elementor/editor-ui";
8678
- import { Grid as Grid34, Stack as Stack20 } from "@elementor/ui";
8679
- import { __ as __59 } from "@wordpress/i18n";
9812
+ import { Grid as Grid34, Stack as Stack24 } from "@elementor/ui";
9813
+ import { __ as __65 } from "@wordpress/i18n";
8680
9814
 
8681
9815
  // src/hooks/use-form-field-suggestions.ts
8682
9816
  import { getContainer as getContainer3, getSelectedElements as getSelectedElements3, getWidgetsCache } from "@elementor/editor-elements";
@@ -8765,8 +9899,8 @@ function useFormFieldSuggestions(options) {
8765
9899
  }
8766
9900
 
8767
9901
  // src/controls/email-form-action-control/email-chips-field.tsx
8768
- import * as React118 from "react";
8769
- import { useMemo as useMemo18, useState as useState21 } from "react";
9902
+ import * as React125 from "react";
9903
+ import { useMemo as useMemo19, useState as useState23 } from "react";
8770
9904
  import { stringArrayPropTypeUtil as stringArrayPropTypeUtil3, stringPropTypeUtil as stringPropTypeUtil23 } from "@elementor/editor-props";
8771
9905
  import { Autocomplete as Autocomplete4, Grid as Grid32, TextField as TextField12 } from "@elementor/ui";
8772
9906
 
@@ -8804,10 +9938,10 @@ function resolveMention(raw, suggestions) {
8804
9938
  }
8805
9939
  var EmailChipsControl = createControl(({ placeholder, suggestions = [] }) => {
8806
9940
  const { value, setValue, disabled } = useBoundProp(stringArrayPropTypeUtil3);
8807
- const [inputValue, setInputValue] = useState21("");
9941
+ const [inputValue, setInputValue] = useState23("");
8808
9942
  const items2 = value || [];
8809
9943
  const selectedValues = items2.map((item) => stringPropTypeUtil23.extract(item)).filter((val) => val !== null);
8810
- const suggestionOptions = useMemo18(
9944
+ const suggestionOptions = useMemo19(
8811
9945
  () => suggestions.map((suggestion) => `[${suggestion.value}]`),
8812
9946
  [suggestions]
8813
9947
  );
@@ -8842,7 +9976,7 @@ var EmailChipsControl = createControl(({ placeholder, suggestions = [] }) => {
8842
9976
  tryAddChip(inputValue);
8843
9977
  }
8844
9978
  };
8845
- return /* @__PURE__ */ React118.createElement(ControlActions, null, /* @__PURE__ */ React118.createElement(
9979
+ return /* @__PURE__ */ React125.createElement(ControlActions, null, /* @__PURE__ */ React125.createElement(
8846
9980
  Autocomplete4,
8847
9981
  {
8848
9982
  fullWidth: true,
@@ -8867,99 +10001,99 @@ var EmailChipsControl = createControl(({ placeholder, suggestions = [] }) => {
8867
10001
  onBlur: handleBlur,
8868
10002
  getOptionLabel: (option) => option,
8869
10003
  isOptionEqualToValue: (option, val) => option === val,
8870
- renderInput: (params) => /* @__PURE__ */ React118.createElement(TextField12, { ...params, placeholder, onKeyDown: handleKeyDown }),
8871
- renderTags: (tagValues, getTagProps) => /* @__PURE__ */ React118.createElement(ChipsList, { getLabel: (option) => option, getTagProps, values: tagValues })
10004
+ renderInput: (params) => /* @__PURE__ */ React125.createElement(TextField12, { ...params, placeholder, onKeyDown: handleKeyDown }),
10005
+ renderTags: (tagValues, getTagProps) => /* @__PURE__ */ React125.createElement(ChipsList, { getLabel: (option) => option, getTagProps, values: tagValues })
8872
10006
  }
8873
10007
  ));
8874
10008
  });
8875
- var EmailChipsField = ({ fieldLabel, placeholder, suggestions }) => /* @__PURE__ */ React118.createElement(Grid32, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React118.createElement(Grid32, { item: true }, /* @__PURE__ */ React118.createElement(ControlFormLabel, null, fieldLabel)), /* @__PURE__ */ React118.createElement(Grid32, { item: true }, /* @__PURE__ */ React118.createElement(EmailChipsControl, { placeholder, suggestions })));
10009
+ var EmailChipsField = ({ fieldLabel, placeholder, suggestions }) => /* @__PURE__ */ React125.createElement(Grid32, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React125.createElement(Grid32, { item: true }, /* @__PURE__ */ React125.createElement(ControlFormLabel, null, fieldLabel)), /* @__PURE__ */ React125.createElement(Grid32, { item: true }, /* @__PURE__ */ React125.createElement(EmailChipsControl, { placeholder, suggestions })));
8876
10010
 
8877
10011
  // src/controls/email-form-action-control/email-field.tsx
8878
- import * as React119 from "react";
10012
+ import * as React126 from "react";
8879
10013
  import { Grid as Grid33 } from "@elementor/ui";
8880
- var EmailField = ({ bind, label, placeholder }) => /* @__PURE__ */ React119.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React119.createElement(Grid33, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React119.createElement(Grid33, { item: true }, /* @__PURE__ */ React119.createElement(ControlFormLabel, null, label)), /* @__PURE__ */ React119.createElement(Grid33, { item: true }, /* @__PURE__ */ React119.createElement(TextControl, { placeholder }))));
10014
+ var EmailField = ({ bind, label, placeholder }) => /* @__PURE__ */ React126.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React126.createElement(Grid33, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React126.createElement(Grid33, { item: true }, /* @__PURE__ */ React126.createElement(ControlFormLabel, null, label)), /* @__PURE__ */ React126.createElement(Grid33, { item: true }, /* @__PURE__ */ React126.createElement(TextControl, { placeholder }))));
8881
10015
 
8882
10016
  // src/controls/email-form-action-control/fields.tsx
8883
10017
  var SendToField = ({ placeholder }) => {
8884
10018
  const suggestions = useFormFieldSuggestions({ inputType: "email" });
8885
- return /* @__PURE__ */ React120.createElement(PropKeyProvider, { bind: "to" }, /* @__PURE__ */ React120.createElement(Stack20, { gap: 0.5 }, /* @__PURE__ */ React120.createElement(
10019
+ return /* @__PURE__ */ React127.createElement(PropKeyProvider, { bind: "to" }, /* @__PURE__ */ React127.createElement(Stack24, { gap: 0.5 }, /* @__PURE__ */ React127.createElement(
8886
10020
  EmailChipsField,
8887
10021
  {
8888
- fieldLabel: __59("Send to", "elementor"),
10022
+ fieldLabel: __65("Send to", "elementor"),
8889
10023
  placeholder,
8890
10024
  suggestions
8891
10025
  }
8892
- ), shouldShowMentionsInfo() && /* @__PURE__ */ React120.createElement(InfoAlert2, null, __59("Type @ or an email field name to insert its submitted value.", "elementor"))));
10026
+ ), shouldShowMentionsInfo() && /* @__PURE__ */ React127.createElement(InfoAlert2, null, __65("Type @ or an email field name to insert its submitted value.", "elementor"))));
8893
10027
  };
8894
- var SubjectField = () => /* @__PURE__ */ React120.createElement(
10028
+ var SubjectField = () => /* @__PURE__ */ React127.createElement(
8895
10029
  EmailField,
8896
10030
  {
8897
10031
  bind: "subject",
8898
- label: __59("Email subject", "elementor"),
8899
- placeholder: __59("New form submission", "elementor")
10032
+ label: __65("Email subject", "elementor"),
10033
+ placeholder: __65("New form submission", "elementor")
8900
10034
  }
8901
10035
  );
8902
10036
  var MessageField = () => {
8903
10037
  const suggestions = useFormFieldSuggestions();
8904
- return /* @__PURE__ */ React120.createElement(PropKeyProvider, { bind: "message" }, /* @__PURE__ */ React120.createElement(Grid34, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React120.createElement(Grid34, { item: true }, /* @__PURE__ */ React120.createElement(ControlFormLabel, null, __59("Message", "elementor"))), /* @__PURE__ */ React120.createElement(Grid34, { item: true }, /* @__PURE__ */ React120.createElement(MentionTextAreaControl, { suggestions })), /* @__PURE__ */ React120.createElement(Grid34, { item: true }, /* @__PURE__ */ React120.createElement(InfoAlert2, null, shouldShowMentionsInfo() ? __59(
10038
+ return /* @__PURE__ */ React127.createElement(PropKeyProvider, { bind: "message" }, /* @__PURE__ */ React127.createElement(Grid34, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React127.createElement(Grid34, { item: true }, /* @__PURE__ */ React127.createElement(ControlFormLabel, null, __65("Message", "elementor"))), /* @__PURE__ */ React127.createElement(Grid34, { item: true }, /* @__PURE__ */ React127.createElement(MentionTextAreaControl, { suggestions })), /* @__PURE__ */ React127.createElement(Grid34, { item: true }, /* @__PURE__ */ React127.createElement(InfoAlert2, null, shouldShowMentionsInfo() ? __65(
8905
10039
  "[all-fields] shortcode sends all fields. Type @ to insert specific fields and customize your message.",
8906
10040
  "elementor"
8907
- ) : __59("[all-fields] shortcode sends all fields.", "elementor")))));
10041
+ ) : __65("[all-fields] shortcode sends all fields.", "elementor")))));
8908
10042
  };
8909
- var FromEmailField = () => /* @__PURE__ */ React120.createElement(
10043
+ var FromEmailField = () => /* @__PURE__ */ React127.createElement(
8910
10044
  EmailField,
8911
10045
  {
8912
10046
  bind: "from",
8913
- label: __59("From email", "elementor"),
8914
- placeholder: __59("What email should appear as the sender?", "elementor")
10047
+ label: __65("From email", "elementor"),
10048
+ placeholder: __65("What email should appear as the sender?", "elementor")
8915
10049
  }
8916
10050
  );
8917
- var FromNameField = () => /* @__PURE__ */ React120.createElement(
10051
+ var FromNameField = () => /* @__PURE__ */ React127.createElement(
8918
10052
  EmailField,
8919
10053
  {
8920
10054
  bind: "from-name",
8921
- label: __59("From name", "elementor"),
8922
- placeholder: __59("What name should appear as the sender?", "elementor")
10055
+ label: __65("From name", "elementor"),
10056
+ placeholder: __65("What name should appear as the sender?", "elementor")
8923
10057
  }
8924
10058
  );
8925
10059
  var ReplyToField = () => {
8926
10060
  const emailSuggestions = useFormFieldSuggestions({ inputType: "email" });
8927
- return /* @__PURE__ */ React120.createElement(PropKeyProvider, { bind: "reply-to" }, /* @__PURE__ */ React120.createElement(Grid34, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React120.createElement(Grid34, { item: true }, /* @__PURE__ */ React120.createElement(ControlFormLabel, null, __59("Reply-to", "elementor"))), /* @__PURE__ */ React120.createElement(Grid34, { item: true }, /* @__PURE__ */ React120.createElement(
10061
+ return /* @__PURE__ */ React127.createElement(PropKeyProvider, { bind: "reply-to" }, /* @__PURE__ */ React127.createElement(Grid34, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React127.createElement(Grid34, { item: true }, /* @__PURE__ */ React127.createElement(ControlFormLabel, null, __65("Reply-to", "elementor"))), /* @__PURE__ */ React127.createElement(Grid34, { item: true }, /* @__PURE__ */ React127.createElement(
8928
10062
  MentionTextAreaControl,
8929
10063
  {
8930
10064
  suggestions: emailSuggestions,
8931
10065
  rows: 1,
8932
10066
  triggerPosition: "start",
8933
- placeholder: __59("You can type @ to insert an email field", "elementor")
10067
+ placeholder: __65("You can type @ to insert an email field", "elementor")
8934
10068
  }
8935
10069
  ))));
8936
10070
  };
8937
10071
  var CcField = () => {
8938
10072
  const suggestions = useFormFieldSuggestions({ inputType: "email" });
8939
- return /* @__PURE__ */ React120.createElement(PropKeyProvider, { bind: "cc" }, /* @__PURE__ */ React120.createElement(EmailChipsField, { fieldLabel: __59("Cc", "elementor"), suggestions }));
10073
+ return /* @__PURE__ */ React127.createElement(PropKeyProvider, { bind: "cc" }, /* @__PURE__ */ React127.createElement(EmailChipsField, { fieldLabel: __65("Cc", "elementor"), suggestions }));
8940
10074
  };
8941
10075
  var BccField = () => {
8942
10076
  const suggestions = useFormFieldSuggestions({ inputType: "email" });
8943
- return /* @__PURE__ */ React120.createElement(PropKeyProvider, { bind: "bcc" }, /* @__PURE__ */ React120.createElement(EmailChipsField, { fieldLabel: __59("Bcc", "elementor"), suggestions }));
10077
+ return /* @__PURE__ */ React127.createElement(PropKeyProvider, { bind: "bcc" }, /* @__PURE__ */ React127.createElement(EmailChipsField, { fieldLabel: __65("Bcc", "elementor"), suggestions }));
8944
10078
  };
8945
- var MetaDataField = () => /* @__PURE__ */ React120.createElement(PropKeyProvider, { bind: "meta-data" }, /* @__PURE__ */ React120.createElement(Stack20, { gap: 0.5 }, /* @__PURE__ */ React120.createElement(ControlFormLabel, null, __59("Metadata", "elementor")), /* @__PURE__ */ React120.createElement(
10079
+ var MetaDataField = () => /* @__PURE__ */ React127.createElement(PropKeyProvider, { bind: "meta-data" }, /* @__PURE__ */ React127.createElement(Stack24, { gap: 0.5 }, /* @__PURE__ */ React127.createElement(ControlFormLabel, null, __65("Metadata", "elementor")), /* @__PURE__ */ React127.createElement(
8946
10080
  ChipsControl,
8947
10081
  {
8948
10082
  options: [
8949
- { label: __59("Date", "elementor"), value: "date" },
8950
- { label: __59("Time", "elementor"), value: "time" },
8951
- { label: __59("Page URL", "elementor"), value: "page-url" },
8952
- { label: __59("User agent", "elementor"), value: "user-agent" },
8953
- { label: __59("Credit", "elementor"), value: "credit" }
10083
+ { label: __65("Date", "elementor"), value: "date" },
10084
+ { label: __65("Time", "elementor"), value: "time" },
10085
+ { label: __65("Page URL", "elementor"), value: "page-url" },
10086
+ { label: __65("User agent", "elementor"), value: "user-agent" },
10087
+ { label: __65("Credit", "elementor"), value: "credit" }
8954
10088
  ]
8955
10089
  }
8956
10090
  )));
8957
- var SendAsField = () => /* @__PURE__ */ React120.createElement(PropKeyProvider, { bind: "send-as" }, /* @__PURE__ */ React120.createElement(Grid34, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React120.createElement(Grid34, { item: true }, /* @__PURE__ */ React120.createElement(ControlFormLabel, null, __59("Send as", "elementor"))), /* @__PURE__ */ React120.createElement(Grid34, { item: true }, /* @__PURE__ */ React120.createElement(
10091
+ var SendAsField = () => /* @__PURE__ */ React127.createElement(PropKeyProvider, { bind: "send-as" }, /* @__PURE__ */ React127.createElement(Grid34, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React127.createElement(Grid34, { item: true }, /* @__PURE__ */ React127.createElement(ControlFormLabel, null, __65("Send as", "elementor"))), /* @__PURE__ */ React127.createElement(Grid34, { item: true }, /* @__PURE__ */ React127.createElement(
8958
10092
  SelectControl,
8959
10093
  {
8960
10094
  options: [
8961
- { label: __59("HTML", "elementor"), value: "html" },
8962
- { label: __59("Plain Text", "elementor"), value: "plain" }
10095
+ { label: __65("HTML", "elementor"), value: "html" },
10096
+ { label: __65("Plain Text", "elementor"), value: "plain" }
8963
10097
  ]
8964
10098
  }
8965
10099
  ))));
@@ -8968,25 +10102,86 @@ var SendAsField = () => /* @__PURE__ */ React120.createElement(PropKeyProvider,
8968
10102
  var EmailFormActionControl = createControl(
8969
10103
  ({ toPlaceholder, label }) => {
8970
10104
  const { value, setValue, ...propContext } = useBoundProp(emailsPropTypeUtil);
8971
- return /* @__PURE__ */ React121.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React121.createElement(Stack21, { gap: 2 }, /* @__PURE__ */ React121.createElement(ControlLabel, null, label ? label + " " + __60("settings", "elementor") : __60("Email settings", "elementor")), /* @__PURE__ */ React121.createElement(SendToField, { placeholder: toPlaceholder }), /* @__PURE__ */ React121.createElement(SubjectField, null), /* @__PURE__ */ React121.createElement(MessageField, null), /* @__PURE__ */ React121.createElement(FromEmailField, null), /* @__PURE__ */ React121.createElement(AdvancedSettings, null)));
10105
+ return /* @__PURE__ */ React128.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React128.createElement(Stack25, { gap: 2 }, /* @__PURE__ */ React128.createElement(ControlLabel, null, label ? label + " " + __66("settings", "elementor") : __66("Email settings", "elementor")), /* @__PURE__ */ React128.createElement(SendToField, { placeholder: toPlaceholder }), /* @__PURE__ */ React128.createElement(SubjectField, null), /* @__PURE__ */ React128.createElement(MessageField, null), /* @__PURE__ */ React128.createElement(FromEmailField, null), /* @__PURE__ */ React128.createElement(AdvancedSettings, null)));
8972
10106
  }
8973
10107
  );
8974
- var AdvancedSettings = () => /* @__PURE__ */ React121.createElement(CollapsibleContent, { defaultOpen: false }, /* @__PURE__ */ React121.createElement(Box28, { sx: { pt: 2 } }, /* @__PURE__ */ React121.createElement(Stack21, { gap: 2 }, /* @__PURE__ */ React121.createElement(FromNameField, null), /* @__PURE__ */ React121.createElement(ReplyToField, null), /* @__PURE__ */ React121.createElement(CcField, null), /* @__PURE__ */ React121.createElement(BccField, null), /* @__PURE__ */ React121.createElement(Divider5, null), /* @__PURE__ */ React121.createElement(MetaDataField, null), /* @__PURE__ */ React121.createElement(SendAsField, null))));
10108
+ var AdvancedSettings = () => /* @__PURE__ */ React128.createElement(CollapsibleContent, { defaultOpen: false }, /* @__PURE__ */ React128.createElement(Box33, { sx: { pt: 2 } }, /* @__PURE__ */ React128.createElement(Stack25, { gap: 2 }, /* @__PURE__ */ React128.createElement(FromNameField, null), /* @__PURE__ */ React128.createElement(ReplyToField, null), /* @__PURE__ */ React128.createElement(CcField, null), /* @__PURE__ */ React128.createElement(BccField, null), /* @__PURE__ */ React128.createElement(Divider6, null), /* @__PURE__ */ React128.createElement(MetaDataField, null), /* @__PURE__ */ React128.createElement(SendAsField, null))));
8975
10109
 
8976
10110
  // src/controls/attachment-type-control.tsx
8977
- import * as React122 from "react";
10111
+ import * as React129 from "react";
8978
10112
  import { InfoAlert as InfoAlert3 } from "@elementor/editor-ui";
8979
10113
  import { Grid as Grid35 } from "@elementor/ui";
8980
- import { __ as __61 } from "@wordpress/i18n";
10114
+ import { __ as __67 } from "@wordpress/i18n";
8981
10115
  var AttachmentTypeControl = createControl(({ label, options }) => {
8982
- return /* @__PURE__ */ React122.createElement(Grid35, { container: true, direction: "column", gap: 1 }, label && /* @__PURE__ */ React122.createElement(Grid35, { item: true }, /* @__PURE__ */ React122.createElement(ControlFormLabel, null, label)), /* @__PURE__ */ React122.createElement(Grid35, { item: true }, /* @__PURE__ */ React122.createElement(SelectControl, { options })), /* @__PURE__ */ React122.createElement(Grid35, { item: true }, /* @__PURE__ */ React122.createElement(InfoAlert3, null, __61(
10116
+ return /* @__PURE__ */ React129.createElement(Grid35, { container: true, direction: "column", gap: 1 }, label && /* @__PURE__ */ React129.createElement(Grid35, { item: true }, /* @__PURE__ */ React129.createElement(ControlFormLabel, null, label)), /* @__PURE__ */ React129.createElement(Grid35, { item: true }, /* @__PURE__ */ React129.createElement(SelectControl, { options })), /* @__PURE__ */ React129.createElement(Grid35, { item: true }, /* @__PURE__ */ React129.createElement(InfoAlert3, null, __67(
8983
10117
  "Linked uploads are saved to the server. Direct attachments will not appear under Submissions.",
8984
10118
  "elementor"
8985
10119
  ))));
8986
10120
  });
8987
10121
 
10122
+ // src/controls/notice-control.tsx
10123
+ import * as React130 from "react";
10124
+ import { useState as useState24 } from "react";
10125
+ import { ajax } from "@elementor/editor-v1-adapters";
10126
+ import { BulbIcon } from "@elementor/icons";
10127
+ import { Alert as Alert3, AlertAction as AlertAction2, AlertTitle as AlertTitle4, styled as styled13, Typography as Typography13 } from "@elementor/ui";
10128
+ var NoticeTitle = styled13(AlertTitle4)({
10129
+ "&.MuiAlertTitle-root.MuiAlertTitle-root": {
10130
+ marginBottom: 4,
10131
+ fontStyle: "italic"
10132
+ }
10133
+ });
10134
+ var markNoticeAsDismissedInSession = (dismissId) => {
10135
+ const dismissedNotices = window.elementor?.config?.user?.dismissed_editor_notices;
10136
+ if (dismissedNotices && !dismissedNotices.includes(dismissId)) {
10137
+ dismissedNotices.push(dismissId);
10138
+ }
10139
+ };
10140
+ var NoticeControl = createControl(
10141
+ ({ noticeType = "info", heading, content, dismissible, buttonText, buttonUrl }) => {
10142
+ const [isDismissed, setIsDismissed] = useState24(false);
10143
+ if (isDismissed || !content) {
10144
+ return null;
10145
+ }
10146
+ const severity = noticeType === "danger" ? "error" : noticeType;
10147
+ const icon = noticeType === "info" ? /* @__PURE__ */ React130.createElement(BulbIcon, { fontSize: "inherit" }) : void 0;
10148
+ const handleDismiss = () => {
10149
+ setIsDismissed(true);
10150
+ if (!dismissible) {
10151
+ return;
10152
+ }
10153
+ markNoticeAsDismissedInSession(dismissible);
10154
+ ajax.load({
10155
+ action: "dismissed_editor_notices",
10156
+ unique_id: `dismiss-editor-notice-${dismissible}`,
10157
+ data: { dismissId: dismissible }
10158
+ }).catch(() => {
10159
+ });
10160
+ };
10161
+ const handleActionClick = () => {
10162
+ setIsDismissed(true);
10163
+ if (dismissible) {
10164
+ markNoticeAsDismissedInSession(dismissible);
10165
+ }
10166
+ };
10167
+ return /* @__PURE__ */ React130.createElement(Alert3, { variant: "outlined", severity, icon, size: "small", onClose: handleDismiss }, heading && /* @__PURE__ */ React130.createElement(NoticeTitle, null, heading), /* @__PURE__ */ React130.createElement(Typography13, { variant: "caption", color: "textSecondary", sx: { fontStyle: "italic" } }, content), buttonText && buttonUrl && /* @__PURE__ */ React130.createElement(
10168
+ AlertAction2,
10169
+ {
10170
+ variant: "contained",
10171
+ color: severity,
10172
+ target: "_blank",
10173
+ rel: "noopener noreferrer",
10174
+ href: buttonUrl,
10175
+ onClick: handleActionClick,
10176
+ sx: { mt: 2 }
10177
+ },
10178
+ buttonText
10179
+ ));
10180
+ }
10181
+ );
10182
+
8988
10183
  // src/controls/grid-span-control.tsx
8989
- import * as React123 from "react";
10184
+ import * as React131 from "react";
8990
10185
  import { spanPropTypeUtil } from "@elementor/editor-props";
8991
10186
  import { TextField as TextField13 } from "@elementor/ui";
8992
10187
  var GridSpanControl = createControl(
@@ -9005,7 +10200,7 @@ var GridSpanControl = createControl(
9005
10200
  setValue(next === "" ? null : next);
9006
10201
  };
9007
10202
  const placeholder = propPlaceholder ?? boundPlaceholder ?? `e.g: 'span 2' or '1 / 3'`;
9008
- return /* @__PURE__ */ React123.createElement(ControlActions, null, /* @__PURE__ */ React123.createElement(
10203
+ return /* @__PURE__ */ React131.createElement(ControlActions, null, /* @__PURE__ */ React131.createElement(
9009
10204
  TextField13,
9010
10205
  {
9011
10206
  size: "tiny",
@@ -9026,23 +10221,23 @@ var GridSpanControl = createControl(
9026
10221
  );
9027
10222
 
9028
10223
  // src/components/promotions/display-conditions-control.tsx
9029
- import * as React125 from "react";
9030
- import { useRef as useRef31 } from "react";
10224
+ import * as React133 from "react";
10225
+ import { useRef as useRef33 } from "react";
9031
10226
  import { SitemapIcon } from "@elementor/icons";
9032
- import { IconButton as IconButton10, Stack as Stack22, Tooltip as Tooltip11 } from "@elementor/ui";
9033
- import { __ as __62 } from "@wordpress/i18n";
10227
+ import { IconButton as IconButton10, Stack as Stack26, Tooltip as Tooltip14 } from "@elementor/ui";
10228
+ import { __ as __68 } from "@wordpress/i18n";
9034
10229
 
9035
10230
  // src/components/promotions/promotion-trigger.tsx
9036
- import * as React124 from "react";
9037
- import { forwardRef as forwardRef12, useCallback as useCallback5, useImperativeHandle, useState as useState22 } from "react";
10231
+ import * as React132 from "react";
10232
+ import { forwardRef as forwardRef12, useCallback as useCallback5, useImperativeHandle, useState as useState25 } from "react";
9038
10233
  import { PromotionChip as PromotionChip2, PromotionInfotip } from "@elementor/editor-ui";
9039
- import { Box as Box29 } from "@elementor/ui";
10234
+ import { Box as Box34 } from "@elementor/ui";
9040
10235
  function getV4Promotion(key) {
9041
10236
  return window.elementor?.config?.v4Promotions?.[key];
9042
10237
  }
9043
10238
  var PromotionTrigger = forwardRef12(
9044
10239
  ({ promotionKey, children, trackingData }, ref) => {
9045
- const [isOpen, setIsOpen] = useState22(false);
10240
+ const [isOpen, setIsOpen] = useState25(false);
9046
10241
  const promotion = getV4Promotion(promotionKey);
9047
10242
  const toggle = useCallback5(() => {
9048
10243
  setIsOpen((prev) => {
@@ -9053,7 +10248,7 @@ var PromotionTrigger = forwardRef12(
9053
10248
  });
9054
10249
  }, [trackingData]);
9055
10250
  useImperativeHandle(ref, () => ({ toggle }), [toggle]);
9056
- return /* @__PURE__ */ React124.createElement(React124.Fragment, null, promotion && /* @__PURE__ */ React124.createElement(
10251
+ return /* @__PURE__ */ React132.createElement(React132.Fragment, null, promotion && /* @__PURE__ */ React132.createElement(
9057
10252
  PromotionInfotip,
9058
10253
  {
9059
10254
  title: promotion.title,
@@ -9067,8 +10262,8 @@ var PromotionTrigger = forwardRef12(
9067
10262
  },
9068
10263
  onCtaClick: () => trackUpgradePromotionClick(trackingData)
9069
10264
  },
9070
- /* @__PURE__ */ React124.createElement(
9071
- Box29,
10265
+ /* @__PURE__ */ React132.createElement(
10266
+ Box34,
9072
10267
  {
9073
10268
  onClick: (e) => {
9074
10269
  e.stopPropagation();
@@ -9076,19 +10271,19 @@ var PromotionTrigger = forwardRef12(
9076
10271
  },
9077
10272
  sx: { cursor: "pointer", display: "inline-flex" }
9078
10273
  },
9079
- children ?? /* @__PURE__ */ React124.createElement(PromotionChip2, null)
10274
+ children ?? /* @__PURE__ */ React132.createElement(PromotionChip2, null)
9080
10275
  )
9081
10276
  ));
9082
10277
  }
9083
10278
  );
9084
10279
 
9085
10280
  // src/components/promotions/display-conditions-control.tsx
9086
- var ARIA_LABEL = __62("Display Conditions", "elementor");
10281
+ var ARIA_LABEL = __68("Display Conditions", "elementor");
9087
10282
  var TRACKING_DATA = { target_name: "display_conditions", location_l2: "general" };
9088
10283
  var DisplayConditionsControl = createControl(() => {
9089
- const triggerRef = useRef31(null);
9090
- return /* @__PURE__ */ React125.createElement(
9091
- Stack22,
10284
+ const triggerRef = useRef33(null);
10285
+ return /* @__PURE__ */ React133.createElement(
10286
+ Stack26,
9092
10287
  {
9093
10288
  direction: "row",
9094
10289
  spacing: 2,
@@ -9097,8 +10292,8 @@ var DisplayConditionsControl = createControl(() => {
9097
10292
  alignItems: "center"
9098
10293
  }
9099
10294
  },
9100
- /* @__PURE__ */ React125.createElement(PromotionTrigger, { ref: triggerRef, promotionKey: "displayConditions", trackingData: TRACKING_DATA }),
9101
- /* @__PURE__ */ React125.createElement(Tooltip11, { title: ARIA_LABEL, placement: "top" }, /* @__PURE__ */ React125.createElement(
10295
+ /* @__PURE__ */ React133.createElement(PromotionTrigger, { ref: triggerRef, promotionKey: "displayConditions", trackingData: TRACKING_DATA }),
10296
+ /* @__PURE__ */ React133.createElement(Tooltip14, { title: ARIA_LABEL, placement: "top" }, /* @__PURE__ */ React133.createElement(
9102
10297
  IconButton10,
9103
10298
  {
9104
10299
  size: "tiny",
@@ -9111,23 +10306,23 @@ var DisplayConditionsControl = createControl(() => {
9111
10306
  borderRadius: 1
9112
10307
  }
9113
10308
  },
9114
- /* @__PURE__ */ React125.createElement(SitemapIcon, { fontSize: "tiny", color: "disabled" })
10309
+ /* @__PURE__ */ React133.createElement(SitemapIcon, { fontSize: "tiny", color: "disabled" })
9115
10310
  ))
9116
10311
  );
9117
10312
  });
9118
10313
 
9119
10314
  // src/components/promotions/attributes-control.tsx
9120
- import * as React126 from "react";
9121
- import { useRef as useRef32 } from "react";
10315
+ import * as React134 from "react";
10316
+ import { useRef as useRef34 } from "react";
9122
10317
  import { PlusIcon as PlusIcon4 } from "@elementor/icons";
9123
- import { Stack as Stack23, Tooltip as Tooltip12 } from "@elementor/ui";
9124
- import { __ as __63 } from "@wordpress/i18n";
9125
- var ARIA_LABEL2 = __63("Attributes", "elementor");
10318
+ import { Stack as Stack27, Tooltip as Tooltip15 } from "@elementor/ui";
10319
+ import { __ as __69 } from "@wordpress/i18n";
10320
+ var ARIA_LABEL2 = __69("Attributes", "elementor");
9126
10321
  var TRACKING_DATA2 = { target_name: "attributes", location_l2: "general" };
9127
10322
  var AttributesControl = createControl(() => {
9128
- const triggerRef = useRef32(null);
9129
- return /* @__PURE__ */ React126.createElement(
9130
- Stack23,
10323
+ const triggerRef = useRef34(null);
10324
+ return /* @__PURE__ */ React134.createElement(
10325
+ Stack27,
9131
10326
  {
9132
10327
  direction: "row",
9133
10328
  spacing: 2,
@@ -9136,8 +10331,8 @@ var AttributesControl = createControl(() => {
9136
10331
  alignItems: "center"
9137
10332
  }
9138
10333
  },
9139
- /* @__PURE__ */ React126.createElement(PromotionTrigger, { ref: triggerRef, promotionKey: "attributes", trackingData: TRACKING_DATA2 }),
9140
- /* @__PURE__ */ React126.createElement(Tooltip12, { title: ARIA_LABEL2, placement: "top" }, /* @__PURE__ */ React126.createElement(
10334
+ /* @__PURE__ */ React134.createElement(PromotionTrigger, { ref: triggerRef, promotionKey: "attributes", trackingData: TRACKING_DATA2 }),
10335
+ /* @__PURE__ */ React134.createElement(Tooltip15, { title: ARIA_LABEL2, placement: "top" }, /* @__PURE__ */ React134.createElement(
9141
10336
  PlusIcon4,
9142
10337
  {
9143
10338
  "aria-label": ARIA_LABEL2,
@@ -9151,29 +10346,29 @@ var AttributesControl = createControl(() => {
9151
10346
  });
9152
10347
 
9153
10348
  // src/components/icon-buttons/clear-icon-button.tsx
9154
- import * as React127 from "react";
10349
+ import * as React135 from "react";
9155
10350
  import { BrushBigIcon } from "@elementor/icons";
9156
- import { IconButton as IconButton11, styled as styled11, Tooltip as Tooltip13 } from "@elementor/ui";
9157
- var CustomIconButton = styled11(IconButton11)(({ theme }) => ({
10351
+ import { IconButton as IconButton11, styled as styled14, Tooltip as Tooltip16 } from "@elementor/ui";
10352
+ var CustomIconButton = styled14(IconButton11)(({ theme }) => ({
9158
10353
  width: theme.spacing(2.5),
9159
10354
  height: theme.spacing(2.5)
9160
10355
  }));
9161
- var ClearIconButton = ({ tooltipText, onClick, disabled, size = "tiny" }) => /* @__PURE__ */ React127.createElement(Tooltip13, { title: tooltipText, placement: "top", disableInteractive: true }, /* @__PURE__ */ React127.createElement(CustomIconButton, { "aria-label": tooltipText, size, onClick, disabled }, /* @__PURE__ */ React127.createElement(BrushBigIcon, { fontSize: size })));
10356
+ var ClearIconButton = ({ tooltipText, onClick, disabled, size = "tiny" }) => /* @__PURE__ */ React135.createElement(Tooltip16, { title: tooltipText, placement: "top", disableInteractive: true }, /* @__PURE__ */ React135.createElement(CustomIconButton, { "aria-label": tooltipText, size, onClick, disabled }, /* @__PURE__ */ React135.createElement(BrushBigIcon, { fontSize: size })));
9162
10357
 
9163
10358
  // src/components/repeater/repeater.tsx
9164
- import * as React128 from "react";
9165
- import { useEffect as useEffect21, useState as useState23 } from "react";
10359
+ import * as React136 from "react";
10360
+ import { useEffect as useEffect21, useState as useState26 } from "react";
9166
10361
  import { CopyIcon as CopyIcon2, EyeIcon as EyeIcon2, EyeOffIcon as EyeOffIcon2, PlusIcon as PlusIcon5, XIcon as XIcon4 } from "@elementor/icons";
9167
10362
  import {
9168
10363
  bindPopover as bindPopover9,
9169
10364
  bindTrigger as bindTrigger7,
9170
- Box as Box30,
10365
+ Box as Box35,
9171
10366
  IconButton as IconButton12,
9172
10367
  Infotip as Infotip4,
9173
- Tooltip as Tooltip14,
9174
- usePopupState as usePopupState11
10368
+ Tooltip as Tooltip17,
10369
+ usePopupState as usePopupState14
9175
10370
  } from "@elementor/ui";
9176
- import { __ as __64 } from "@wordpress/i18n";
10371
+ import { __ as __70 } from "@wordpress/i18n";
9177
10372
  var SIZE12 = "tiny";
9178
10373
  var EMPTY_OPEN_ITEM2 = -1;
9179
10374
  var Repeater3 = ({
@@ -9192,7 +10387,7 @@ var Repeater3 = ({
9192
10387
  isSortable = true,
9193
10388
  adornment = ControlAdornments
9194
10389
  }) => {
9195
- const [openItem, setOpenItem] = useState23(initialOpenItem);
10390
+ const [openItem, setOpenItem] = useState26(initialOpenItem);
9196
10391
  const uniqueKeys = items2.map(
9197
10392
  (item, index) => isSortable && "getId" in itemSettings ? itemSettings.getId({ item, index }) : String(index)
9198
10393
  );
@@ -9255,7 +10450,7 @@ var Repeater3 = ({
9255
10450
  };
9256
10451
  const isButtonDisabled = disabled || disableAddItemButton;
9257
10452
  const shouldShowInfotip = isButtonDisabled && addButtonInfotipContent;
9258
- const addButton = /* @__PURE__ */ React128.createElement(
10453
+ const addButton = /* @__PURE__ */ React136.createElement(
9259
10454
  IconButton12,
9260
10455
  {
9261
10456
  size: SIZE12,
@@ -9264,11 +10459,11 @@ var Repeater3 = ({
9264
10459
  },
9265
10460
  disabled: isButtonDisabled,
9266
10461
  onClick: addRepeaterItem,
9267
- "aria-label": __64("Add item", "elementor")
10462
+ "aria-label": __70("Add item", "elementor")
9268
10463
  },
9269
- /* @__PURE__ */ React128.createElement(PlusIcon5, { fontSize: SIZE12 })
10464
+ /* @__PURE__ */ React136.createElement(PlusIcon5, { fontSize: SIZE12 })
9270
10465
  );
9271
- return /* @__PURE__ */ React128.createElement(SectionContent, { gap: 2 }, /* @__PURE__ */ React128.createElement(RepeaterHeader, { label, adornment }, shouldShowInfotip ? /* @__PURE__ */ React128.createElement(
10466
+ return /* @__PURE__ */ React136.createElement(SectionContent, { gap: 2 }, /* @__PURE__ */ React136.createElement(RepeaterHeader, { label, adornment }, shouldShowInfotip ? /* @__PURE__ */ React136.createElement(
9272
10467
  Infotip4,
9273
10468
  {
9274
10469
  placement: "right",
@@ -9276,20 +10471,20 @@ var Repeater3 = ({
9276
10471
  color: "secondary",
9277
10472
  slotProps: { popper: { sx: { width: 300 } } }
9278
10473
  },
9279
- /* @__PURE__ */ React128.createElement(Box30, { sx: { ...isButtonDisabled ? { cursor: "not-allowed" } : {} } }, addButton)
9280
- ) : addButton), 0 < uniqueKeys.length && /* @__PURE__ */ React128.createElement(SortableProvider, { value: uniqueKeys, onChange: onChangeOrder }, uniqueKeys.map((key) => {
10474
+ /* @__PURE__ */ React136.createElement(Box35, { sx: { ...isButtonDisabled ? { cursor: "not-allowed" } : {} } }, addButton)
10475
+ ) : addButton), 0 < uniqueKeys.length && /* @__PURE__ */ React136.createElement(SortableProvider, { value: uniqueKeys, onChange: onChangeOrder }, uniqueKeys.map((key) => {
9281
10476
  const index = uniqueKeys.indexOf(key);
9282
10477
  const value = items2[index];
9283
10478
  if (!value) {
9284
10479
  return null;
9285
10480
  }
9286
- return /* @__PURE__ */ React128.createElement(SortableItem, { id: key, key: `sortable-${key}`, disabled: !isSortable }, /* @__PURE__ */ React128.createElement(
10481
+ return /* @__PURE__ */ React136.createElement(SortableItem, { id: key, key: `sortable-${key}`, disabled: !isSortable }, /* @__PURE__ */ React136.createElement(
9287
10482
  RepeaterItem,
9288
10483
  {
9289
10484
  disabled,
9290
10485
  propDisabled: value?.disabled,
9291
- label: /* @__PURE__ */ React128.createElement(RepeaterItemLabelSlot, { value }, /* @__PURE__ */ React128.createElement(itemSettings.Label, { value, index })),
9292
- startIcon: /* @__PURE__ */ React128.createElement(RepeaterItemIconSlot, { value }, /* @__PURE__ */ React128.createElement(itemSettings.Icon, { value })),
10486
+ label: /* @__PURE__ */ React136.createElement(RepeaterItemLabelSlot, { value }, /* @__PURE__ */ React136.createElement(itemSettings.Label, { value, index })),
10487
+ startIcon: /* @__PURE__ */ React136.createElement(RepeaterItemIconSlot, { value }, /* @__PURE__ */ React136.createElement(itemSettings.Icon, { value })),
9293
10488
  removeItem: () => removeRepeaterItem(index),
9294
10489
  duplicateItem: () => duplicateRepeaterItem(index),
9295
10490
  toggleDisableItem: () => toggleDisableRepeaterItem(index),
@@ -9303,7 +10498,7 @@ var Repeater3 = ({
9303
10498
  actions: itemSettings.actions,
9304
10499
  value
9305
10500
  },
9306
- (props) => /* @__PURE__ */ React128.createElement(
10501
+ (props) => /* @__PURE__ */ React136.createElement(
9307
10502
  itemSettings.Content,
9308
10503
  {
9309
10504
  ...props,
@@ -9345,16 +10540,16 @@ var RepeaterItem = ({
9345
10540
  );
9346
10541
  const triggerProps = bindTrigger7(popoverState);
9347
10542
  usePopoverDismiss({ isOpen: popoverState.isOpen, onClose: popoverProps.onClose });
9348
- const duplicateLabel = __64("Duplicate", "elementor");
9349
- const toggleLabel = propDisabled ? __64("Show", "elementor") : __64("Hide", "elementor");
9350
- const removeLabel = __64("Remove", "elementor");
9351
- return /* @__PURE__ */ React128.createElement(Box30, { sx: { display: "contents" } }, /* @__PURE__ */ React128.createElement(
10543
+ const duplicateLabel = __70("Duplicate", "elementor");
10544
+ const toggleLabel = propDisabled ? __70("Show", "elementor") : __70("Hide", "elementor");
10545
+ const removeLabel = __70("Remove", "elementor");
10546
+ return /* @__PURE__ */ React136.createElement(Box35, { sx: { display: "contents" } }, /* @__PURE__ */ React136.createElement(
9352
10547
  RepeaterTag,
9353
10548
  {
9354
10549
  disabled,
9355
10550
  label,
9356
10551
  ref: setRef,
9357
- "aria-label": __64("Open item", "elementor"),
10552
+ "aria-label": __70("Open item", "elementor"),
9358
10553
  ...triggerProps,
9359
10554
  onClick: (e) => {
9360
10555
  triggerProps.onClick(e);
@@ -9363,13 +10558,13 @@ var RepeaterItem = ({
9363
10558
  }
9364
10559
  },
9365
10560
  startIcon,
9366
- actions: /* @__PURE__ */ React128.createElement(React128.Fragment, null, showDuplicate && /* @__PURE__ */ React128.createElement(Tooltip14, { title: duplicateLabel, placement: "top" }, /* @__PURE__ */ React128.createElement(IconButton12, { size: SIZE12, onClick: duplicateItem, "aria-label": duplicateLabel }, /* @__PURE__ */ React128.createElement(CopyIcon2, { fontSize: SIZE12 }))), showToggle && /* @__PURE__ */ React128.createElement(Tooltip14, { title: toggleLabel, placement: "top" }, /* @__PURE__ */ React128.createElement(IconButton12, { size: SIZE12, onClick: toggleDisableItem, "aria-label": toggleLabel }, propDisabled ? /* @__PURE__ */ React128.createElement(EyeOffIcon2, { fontSize: SIZE12 }) : /* @__PURE__ */ React128.createElement(EyeIcon2, { fontSize: SIZE12 }))), actions?.(value), showRemove && /* @__PURE__ */ React128.createElement(Tooltip14, { title: removeLabel, placement: "top" }, /* @__PURE__ */ React128.createElement(IconButton12, { size: SIZE12, onClick: removeItem, "aria-label": removeLabel }, /* @__PURE__ */ React128.createElement(XIcon4, { fontSize: SIZE12 }))))
10561
+ actions: /* @__PURE__ */ React136.createElement(React136.Fragment, null, showDuplicate && /* @__PURE__ */ React136.createElement(Tooltip17, { title: duplicateLabel, placement: "top" }, /* @__PURE__ */ React136.createElement(IconButton12, { size: SIZE12, onClick: duplicateItem, "aria-label": duplicateLabel }, /* @__PURE__ */ React136.createElement(CopyIcon2, { fontSize: SIZE12 }))), showToggle && /* @__PURE__ */ React136.createElement(Tooltip17, { title: toggleLabel, placement: "top" }, /* @__PURE__ */ React136.createElement(IconButton12, { size: SIZE12, onClick: toggleDisableItem, "aria-label": toggleLabel }, propDisabled ? /* @__PURE__ */ React136.createElement(EyeOffIcon2, { fontSize: SIZE12 }) : /* @__PURE__ */ React136.createElement(EyeIcon2, { fontSize: SIZE12 }))), actions?.(value), showRemove && /* @__PURE__ */ React136.createElement(Tooltip17, { title: removeLabel, placement: "top" }, /* @__PURE__ */ React136.createElement(IconButton12, { size: SIZE12, onClick: removeItem, "aria-label": removeLabel }, /* @__PURE__ */ React136.createElement(XIcon4, { fontSize: SIZE12 }))))
9367
10562
  }
9368
- ), /* @__PURE__ */ React128.createElement(RepeaterPopover, { width: ref?.getBoundingClientRect().width, ...popoverProps, anchorEl: ref }, /* @__PURE__ */ React128.createElement(Box30, null, children({ anchorEl: ref }))));
10563
+ ), /* @__PURE__ */ React136.createElement(RepeaterPopover, { width: ref?.getBoundingClientRect().width, ...popoverProps, anchorEl: ref }, /* @__PURE__ */ React136.createElement(Box35, null, children({ anchorEl: ref }))));
9369
10564
  };
9370
10565
  var usePopover = (openOnMount, onOpen, onPopoverClose) => {
9371
- const [ref, setRef] = useState23(null);
9372
- const popoverState = usePopupState11({ variant: "popover" });
10566
+ const [ref, setRef] = useState26(null);
10567
+ const popoverState = usePopupState14({ variant: "popover" });
9373
10568
  const popoverProps = bindPopover9(popoverState);
9374
10569
  useEffect21(() => {
9375
10570
  if (openOnMount && ref) {
@@ -9390,7 +10585,7 @@ var usePopover = (openOnMount, onOpen, onPopoverClose) => {
9390
10585
  };
9391
10586
 
9392
10587
  // src/components/size/unstable-size-field.tsx
9393
- import * as React131 from "react";
10588
+ import * as React139 from "react";
9394
10589
  import { InputAdornment as InputAdornment6 } from "@elementor/ui";
9395
10590
 
9396
10591
  // src/hooks/use-size-value.ts
@@ -9433,25 +10628,25 @@ var differsFromExternal = (newState, externalState) => {
9433
10628
  };
9434
10629
 
9435
10630
  // src/components/size/unit-select.tsx
9436
- import * as React129 from "react";
9437
- import { useId as useId4 } from "react";
10631
+ import * as React137 from "react";
10632
+ import { useId as useId6 } from "react";
9438
10633
  import { MenuListItem as MenuListItem8 } from "@elementor/editor-ui";
9439
- import { bindMenu as bindMenu3, bindTrigger as bindTrigger8, Button as Button7, Menu as Menu4, styled as styled12, usePopupState as usePopupState12 } from "@elementor/ui";
10634
+ import { bindMenu as bindMenu5, bindTrigger as bindTrigger8, Button as Button7, Menu as Menu6, styled as styled15, usePopupState as usePopupState15 } from "@elementor/ui";
9440
10635
  var menuItemContentStyles2 = {
9441
10636
  display: "flex",
9442
10637
  flexDirection: "column",
9443
10638
  justifyContent: "center"
9444
10639
  };
9445
10640
  var UnitSelect = ({ value, showPrimaryColor, onClick, options }) => {
9446
- const popupState = usePopupState12({
10641
+ const popupState = usePopupState15({
9447
10642
  variant: "popover",
9448
- popupId: useId4()
10643
+ popupId: useId6()
9449
10644
  });
9450
10645
  const handleMenuItemClick = (index) => {
9451
10646
  onClick(options[index]);
9452
10647
  popupState.close();
9453
10648
  };
9454
- return /* @__PURE__ */ React129.createElement(React129.Fragment, null, /* @__PURE__ */ React129.createElement(StyledButton3, { isPrimaryColor: showPrimaryColor, size: "small", ...bindTrigger8(popupState) }, value), /* @__PURE__ */ React129.createElement(Menu4, { MenuListProps: { dense: true }, ...bindMenu3(popupState) }, options.map((option, index) => /* @__PURE__ */ React129.createElement(
10649
+ return /* @__PURE__ */ React137.createElement(React137.Fragment, null, /* @__PURE__ */ React137.createElement(StyledButton3, { isPrimaryColor: showPrimaryColor, size: "small", ...bindTrigger8(popupState) }, value), /* @__PURE__ */ React137.createElement(Menu6, { MenuListProps: { dense: true }, ...bindMenu5(popupState) }, options.map((option, index) => /* @__PURE__ */ React137.createElement(
9455
10650
  MenuListItem8,
9456
10651
  {
9457
10652
  key: option,
@@ -9470,7 +10665,7 @@ var UnitSelect = ({ value, showPrimaryColor, onClick, options }) => {
9470
10665
  option.toUpperCase()
9471
10666
  ))));
9472
10667
  };
9473
- var StyledButton3 = styled12(Button7, {
10668
+ var StyledButton3 = styled15(Button7, {
9474
10669
  shouldForwardProp: (prop) => prop !== "isPrimaryColor"
9475
10670
  })(({ isPrimaryColor, theme }) => ({
9476
10671
  color: isPrimaryColor ? theme.palette.text.primary : theme.palette.text.tertiary,
@@ -9480,11 +10675,11 @@ var StyledButton3 = styled12(Button7, {
9480
10675
  }));
9481
10676
 
9482
10677
  // src/components/size/unstable-size-input.tsx
9483
- import * as React130 from "react";
10678
+ import * as React138 from "react";
9484
10679
  import { forwardRef as forwardRef13 } from "react";
9485
10680
  var UnstableSizeInput = forwardRef13(
9486
10681
  ({ type, value, onChange, onKeyDown, onKeyUp, InputProps, onBlur, focused, disabled }, ref) => {
9487
- return /* @__PURE__ */ React130.createElement(
10682
+ return /* @__PURE__ */ React138.createElement(
9488
10683
  NumberInput,
9489
10684
  {
9490
10685
  ref,
@@ -9522,7 +10717,7 @@ var UnstableSizeField = ({
9522
10717
  const shouldHighlightUnit2 = () => {
9523
10718
  return hasValue(size);
9524
10719
  };
9525
- return /* @__PURE__ */ React131.createElement(
10720
+ return /* @__PURE__ */ React139.createElement(
9526
10721
  UnstableSizeInput,
9527
10722
  {
9528
10723
  type: "number",
@@ -9531,8 +10726,8 @@ var UnstableSizeField = ({
9531
10726
  onChange: (event) => setSize(event.target.value),
9532
10727
  InputProps: {
9533
10728
  ...InputProps,
9534
- startAdornment: startIcon && /* @__PURE__ */ React131.createElement(InputAdornment6, { position: "start" }, startIcon),
9535
- endAdornment: /* @__PURE__ */ React131.createElement(InputAdornment6, { position: "end" }, /* @__PURE__ */ React131.createElement(
10729
+ startAdornment: startIcon && /* @__PURE__ */ React139.createElement(InputAdornment6, { position: "start" }, startIcon),
10730
+ endAdornment: /* @__PURE__ */ React139.createElement(InputAdornment6, { position: "end" }, /* @__PURE__ */ React139.createElement(
9536
10731
  UnitSelect,
9537
10732
  {
9538
10733
  options: units2,
@@ -9550,7 +10745,7 @@ var hasValue = (value) => {
9550
10745
  };
9551
10746
 
9552
10747
  // src/hooks/use-font-families.ts
9553
- import { useMemo as useMemo19 } from "react";
10748
+ import { useMemo as useMemo20 } from "react";
9554
10749
  import { getElementorConfig } from "@elementor/editor-v1-adapters";
9555
10750
  var getFontControlConfig = () => {
9556
10751
  const { controls } = getElementorConfig();
@@ -9558,7 +10753,7 @@ var getFontControlConfig = () => {
9558
10753
  };
9559
10754
  var useFontFamilies = () => {
9560
10755
  const { groups, options } = getFontControlConfig();
9561
- return useMemo19(() => {
10756
+ return useMemo20(() => {
9562
10757
  if (!groups || !options) {
9563
10758
  return [];
9564
10759
  }
@@ -9615,6 +10810,7 @@ export {
9615
10810
  LinkControl,
9616
10811
  LinkedDimensionsControl,
9617
10812
  MentionTextAreaControl,
10813
+ NoticeControl,
9618
10814
  NumberControl,
9619
10815
  NumberInput,
9620
10816
  PopoverContent,
@@ -9654,11 +10850,14 @@ export {
9654
10850
  createControlReplacementsRegistry,
9655
10851
  enqueueFont,
9656
10852
  getControlReplacements,
10853
+ getFontAwesome7IconName,
9657
10854
  injectIntoRepeaterItemActions,
9658
10855
  injectIntoRepeaterItemIcon,
9659
10856
  injectIntoRepeaterItemLabel,
9660
10857
  isUnitExtendedOption,
9661
10858
  registerControlReplacement,
10859
+ resetFontAwesome7IconsCache,
10860
+ resolveFontAwesome7Icon,
9662
10861
  trackUpgradePromotionClick,
9663
10862
  trackViewPromotion,
9664
10863
  transitionProperties,