@elementor/editor-controls 4.4.0-1109 → 4.4.0-1111

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -108,9 +108,11 @@ __export(index_exports, {
108
108
  injectIntoRepeaterItemActions: () => injectIntoRepeaterItemActions,
109
109
  injectIntoRepeaterItemIcon: () => injectIntoRepeaterItemIcon,
110
110
  injectIntoRepeaterItemLabel: () => injectIntoRepeaterItemLabel,
111
+ isDeletedCustomIconLibrary: () => isDeletedCustomIconLibrary,
111
112
  isUnitExtendedOption: () => isUnitExtendedOption,
112
113
  registerControlReplacement: () => registerControlReplacement,
113
114
  resetFontAwesome7IconsCache: () => resetFontAwesome7IconsCache,
115
+ resolveCustomIconSvg: () => resolveCustomIconSvg,
114
116
  resolveFontAwesome7Icon: () => resolveFontAwesome7Icon,
115
117
  trackUpgradePromotionClick: () => trackUpgradePromotionClick,
116
118
  trackViewPromotion: () => trackViewPromotion,
@@ -5446,7 +5448,7 @@ var React88 = __toESM(require("react"));
5446
5448
  var import_react54 = require("react");
5447
5449
  var import_editor_current_user = require("@elementor/editor-current-user");
5448
5450
  var import_editor_props35 = require("@elementor/editor-props");
5449
- var import_ui70 = require("@elementor/ui");
5451
+ var import_ui71 = require("@elementor/ui");
5450
5452
  var import_wp_media2 = require("@elementor/wp-media");
5451
5453
  var import_i18n38 = require("@wordpress/i18n");
5452
5454
 
@@ -5521,10 +5523,603 @@ var import_react53 = require("react");
5521
5523
  var import_editor_ui11 = require("@elementor/editor-ui");
5522
5524
  var import_icons23 = require("@elementor/icons");
5523
5525
  var import_session2 = require("@elementor/session");
5524
- var import_ui67 = require("@elementor/ui");
5526
+ var import_ui68 = require("@elementor/ui");
5525
5527
  var import_utils6 = require("@elementor/utils");
5526
5528
  var import_i18n35 = require("@wordpress/i18n");
5527
5529
 
5530
+ // src/controls/icon-library/custom-icon-libraries.ts
5531
+ var import_http_client3 = require("@elementor/http-client");
5532
+ var import_query2 = require("@elementor/query");
5533
+
5534
+ // src/controls/open-icon-library.ts
5535
+ var import_editor_props34 = require("@elementor/editor-props");
5536
+ function enqueueIconFonts(library) {
5537
+ window.elementor?.helpers?.enqueueIconFonts?.(library);
5538
+ }
5539
+ function createIconPropValue(icon, library) {
5540
+ return {
5541
+ value: import_editor_props34.stringPropTypeUtil.create(icon),
5542
+ library: import_editor_props34.stringPropTypeUtil.create(library)
5543
+ };
5544
+ }
5545
+
5546
+ // src/controls/icon-library/fontello-svg-font.ts
5547
+ function parseFontelloSvgFont(configJson, svgFont, prefix, displayPrefix, iconNames) {
5548
+ const codepoints = parseConfigCodepoints(configJson, prefix);
5549
+ const configPaths = parseConfigSvgPaths(configJson, prefix);
5550
+ const glyphs = parseSvgFontGlyphs(svgFont);
5551
+ const resolvedDisplayPrefix = displayPrefix || prefix.replace(/-$/, "");
5552
+ const result = {};
5553
+ for (const name of iconNames) {
5554
+ const fromConfig = configPaths.get(name) ?? (prefix && name.startsWith(prefix) ? configPaths.get(name.slice(prefix.length)) : void 0);
5555
+ const glyph = fromConfig ?? findGlyph(glyphs, codepoints, name, prefix);
5556
+ if (!glyph) {
5557
+ continue;
5558
+ }
5559
+ const value = `${resolvedDisplayPrefix} ${prefix}${name}`.trim();
5560
+ result[value] = buildIconSvg(glyph);
5561
+ }
5562
+ return result;
5563
+ }
5564
+ function parseConfigCodepoints(configJson, prefix) {
5565
+ const map = /* @__PURE__ */ new Map();
5566
+ try {
5567
+ const data = JSON.parse(configJson);
5568
+ if (!Array.isArray(data.glyphs)) {
5569
+ return map;
5570
+ }
5571
+ for (const glyph of data.glyphs) {
5572
+ if (typeof glyph.css !== "string" || glyph.css === "" || typeof glyph.code !== "number") {
5573
+ continue;
5574
+ }
5575
+ map.set(glyph.css, glyph.code);
5576
+ if (prefix !== "" && !glyph.css.startsWith(prefix)) {
5577
+ map.set(`${prefix}${glyph.css}`, glyph.code);
5578
+ }
5579
+ }
5580
+ } catch {
5581
+ return map;
5582
+ }
5583
+ return map;
5584
+ }
5585
+ function parseConfigSvgPaths(configJson, prefix) {
5586
+ const map = /* @__PURE__ */ new Map();
5587
+ try {
5588
+ const data = JSON.parse(configJson);
5589
+ if (!Array.isArray(data.glyphs)) {
5590
+ return map;
5591
+ }
5592
+ for (const glyph of data.glyphs) {
5593
+ if (typeof glyph.css !== "string" || glyph.css === "") {
5594
+ continue;
5595
+ }
5596
+ let path = "";
5597
+ let advance = 1e3;
5598
+ if (typeof glyph.svg === "string") {
5599
+ path = glyph.svg;
5600
+ } else if (glyph.svg && typeof glyph.svg === "object" && "path" in glyph.svg && typeof glyph.svg.path === "string") {
5601
+ path = glyph.svg.path;
5602
+ if ("width" in glyph.svg && typeof glyph.svg.width === "number" && glyph.svg.width > 0) {
5603
+ advance = glyph.svg.width;
5604
+ }
5605
+ }
5606
+ if (path === "") {
5607
+ continue;
5608
+ }
5609
+ const record = { d: path, units: 1e3, advance };
5610
+ map.set(glyph.css, record);
5611
+ if (prefix !== "" && !glyph.css.startsWith(prefix)) {
5612
+ map.set(`${prefix}${glyph.css}`, record);
5613
+ }
5614
+ }
5615
+ } catch {
5616
+ return map;
5617
+ }
5618
+ return map;
5619
+ }
5620
+ function parseSvgFontGlyphs(svgFont) {
5621
+ const byName = /* @__PURE__ */ new Map();
5622
+ const byCode = /* @__PURE__ */ new Map();
5623
+ const doc = new DOMParser().parseFromString(stripDoctype(svgFont), "image/svg+xml");
5624
+ const font = doc.querySelector("font");
5625
+ const face = doc.querySelector("font-face");
5626
+ const fontAdvance = positiveInt(font?.getAttribute("horiz-adv-x"), 1e3);
5627
+ const units2 = positiveInt(face?.getAttribute("units-per-em"), fontAdvance);
5628
+ doc.querySelectorAll("glyph").forEach((node) => {
5629
+ const d = node.getAttribute("d") ?? "";
5630
+ if (d === "") {
5631
+ return;
5632
+ }
5633
+ const record = {
5634
+ d,
5635
+ units: units2,
5636
+ advance: positiveInt(node.getAttribute("horiz-adv-x"), fontAdvance)
5637
+ };
5638
+ const name = node.getAttribute("glyph-name") ?? "";
5639
+ const unicode = node.getAttribute("unicode") ?? "";
5640
+ const code = unicode.codePointAt(0);
5641
+ if (name) {
5642
+ byName.set(name, record);
5643
+ }
5644
+ if (code !== void 0) {
5645
+ byCode.set(code, record);
5646
+ }
5647
+ });
5648
+ return { byName, byCode };
5649
+ }
5650
+ function findGlyph(glyphs, codepoints, iconName, prefix) {
5651
+ const names = [iconName];
5652
+ if (prefix !== "" && iconName.startsWith(prefix)) {
5653
+ names.push(iconName.slice(prefix.length));
5654
+ }
5655
+ for (const name of names) {
5656
+ const byName = glyphs.byName.get(name);
5657
+ if (byName) {
5658
+ return byName;
5659
+ }
5660
+ const code = codepoints.get(name);
5661
+ const byCode = code !== void 0 ? glyphs.byCode.get(code) : void 0;
5662
+ if (byCode) {
5663
+ return byCode;
5664
+ }
5665
+ }
5666
+ return null;
5667
+ }
5668
+ function buildIconSvg(glyph) {
5669
+ return `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${glyph.advance} ${glyph.units}" fill="currentColor" width="100%" height="100%"><g transform="translate(0,${glyph.units}) scale(1,-1)"><path d="${escapeAttribute(glyph.d)}" fill="currentColor"></path></g></svg>`;
5670
+ }
5671
+ function stripDoctype(svgFont) {
5672
+ return svgFont.replace(/<!DOCTYPE[^>]*>/is, "");
5673
+ }
5674
+ function positiveInt(value, fallback) {
5675
+ if (!value) {
5676
+ return fallback;
5677
+ }
5678
+ const parsed = Number.parseInt(value, 10);
5679
+ return parsed > 0 ? parsed : fallback;
5680
+ }
5681
+ function escapeAttribute(value) {
5682
+ return value.replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
5683
+ }
5684
+
5685
+ // src/controls/icon-library/icomoon-selection.ts
5686
+ var DEFAULT_ICOMOON_VIEWBOX = 1024;
5687
+ function parseIcomoonSelection(selectionJson, prefix, displayPrefix, iconNames) {
5688
+ let data;
5689
+ try {
5690
+ data = JSON.parse(selectionJson);
5691
+ } catch {
5692
+ return {};
5693
+ }
5694
+ const resolvedDisplayPrefix = displayPrefix || prefix.replace(/-$/, "");
5695
+ const names = iconNames.length > 0 ? iconNames : namesFromSelection(data);
5696
+ const result = {};
5697
+ for (const name of names) {
5698
+ const markup = svgForName(data, name, prefix);
5699
+ if (!markup) {
5700
+ continue;
5701
+ }
5702
+ result[`${resolvedDisplayPrefix} ${prefix}${name}`.trim()] = markup;
5703
+ }
5704
+ return result;
5705
+ }
5706
+ function namesFromSelection(data) {
5707
+ if (!Array.isArray(data.icons)) {
5708
+ return [];
5709
+ }
5710
+ return data.icons.flatMap((icon) => {
5711
+ const name = iconEntryName(icon);
5712
+ return name ? [name] : [];
5713
+ });
5714
+ }
5715
+ function svgForName(data, iconName, prefix) {
5716
+ const candidates = [iconName];
5717
+ if (prefix && iconName.startsWith(prefix)) {
5718
+ candidates.push(iconName.slice(prefix.length));
5719
+ }
5720
+ for (const icon of data.icons ?? []) {
5721
+ const name = iconEntryName(icon);
5722
+ if (!name || !candidates.includes(name)) {
5723
+ continue;
5724
+ }
5725
+ const paths = Array.isArray(icon.icon?.paths) ? icon.icon.paths.filter((path) => typeof path === "string" && path !== "") : [];
5726
+ if (paths.length === 0) {
5727
+ return null;
5728
+ }
5729
+ const size = typeof icon.icon?.width === "number" && icon.icon.width > 0 ? icon.icon.width : DEFAULT_ICOMOON_VIEWBOX;
5730
+ const pathMarkup = paths.map((d) => `<path d="${escapeAttribute2(d)}" fill="currentColor"></path>`).join("");
5731
+ return `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${size} ${size}" fill="currentColor" width="100%" height="100%">` + pathMarkup + "</svg>";
5732
+ }
5733
+ return null;
5734
+ }
5735
+ function iconEntryName(icon) {
5736
+ if (typeof icon.properties?.name === "string") {
5737
+ return icon.properties.name;
5738
+ }
5739
+ const tag = icon.icon?.tags;
5740
+ return Array.isArray(tag) && typeof tag[0] === "string" ? tag[0] : "";
5741
+ }
5742
+ function escapeAttribute2(value) {
5743
+ return value.replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
5744
+ }
5745
+
5746
+ // src/controls/icon-library/custom-icon-libraries.ts
5747
+ var NATIVE_TAB_NAMES = /* @__PURE__ */ new Set(["all", "recommended", "GoPro"]);
5748
+ var DEFAULT_ICON_SIZE = 512;
5749
+ var CUSTOM_ICON_LIBRARIES_QUERY_KEY = ["custom-icon-libraries"];
5750
+ var CUSTOM_ICON_SVG_URL = "elementor/v1/atomic-widgets/custom-icon-svg";
5751
+ var SUPPORTED_CUSTOM_ICON_TYPES = /* @__PURE__ */ new Set(["fontello", "icomoon", "fontastic"]);
5752
+ var svgMapCache = /* @__PURE__ */ new Map();
5753
+ var inFlightSvgMaps = /* @__PURE__ */ new Map();
5754
+ function isDeletedCustomIconLibrary(library, iconValue) {
5755
+ const libraryName = String(library);
5756
+ if (!libraryName || !iconValue) {
5757
+ return false;
5758
+ }
5759
+ if (NATIVE_TAB_NAMES.has(libraryName) || libraryName.startsWith("fa-")) {
5760
+ return false;
5761
+ }
5762
+ return !getCustomIconLibraryConfigs().some((item) => item.name === libraryName);
5763
+ }
5764
+ function useCustomIconLibraries(enabled) {
5765
+ return (0, import_query2.useQuery)({
5766
+ queryKey: CUSTOM_ICON_LIBRARIES_QUERY_KEY,
5767
+ queryFn: ({ signal }) => loadCustomIconLibraries(signal),
5768
+ enabled: enabled && areCustomIconLibrariesEnabled(),
5769
+ staleTime: Infinity
5770
+ });
5771
+ }
5772
+ async function loadCustomIconLibraries(signal) {
5773
+ const catalogs = await Promise.all(
5774
+ getCustomIconLibraryConfigs().map((library) => loadCustomLibrary(library, signal))
5775
+ );
5776
+ return catalogs.flat();
5777
+ }
5778
+ async function resolveCustomIconSvg(library, iconValue, signal) {
5779
+ const config = getCustomIconLibraryConfigs().find((item) => item.name === String(library));
5780
+ if (!config) {
5781
+ svgMapCache.delete(String(library));
5782
+ return null;
5783
+ }
5784
+ const map = await loadLibrarySvgMap(String(library), config, signal);
5785
+ const markup = map[iconValue];
5786
+ return typeof markup === "string" && markup !== "" ? markup : null;
5787
+ }
5788
+ function areCustomIconLibrariesEnabled() {
5789
+ return true === window.elementorCommon?.config?.fontAwesome?.v7?.customIconLibrariesEnabled;
5790
+ }
5791
+ function getCustomIconLibraryConfigs() {
5792
+ if (!areCustomIconLibrariesEnabled()) {
5793
+ return [];
5794
+ }
5795
+ const libraries = window.elementor?.config;
5796
+ const items2 = Array.isArray(libraries?.icons?.libraries) ? libraries.icons.libraries : [];
5797
+ return items2.flatMap((value) => {
5798
+ const library = normalizeCustomIconLibraryConfig(value);
5799
+ return library ? [library] : [];
5800
+ });
5801
+ }
5802
+ function normalizeCustomIconLibraryConfig(value) {
5803
+ if (!value || typeof value !== "object") {
5804
+ return null;
5805
+ }
5806
+ const library = value;
5807
+ const name = coerceLibraryName(library.name);
5808
+ if (name === "" || NATIVE_TAB_NAMES.has(name) || library.native === true || name.startsWith("fa-")) {
5809
+ return null;
5810
+ }
5811
+ if (typeof library.prefix !== "string") {
5812
+ return null;
5813
+ }
5814
+ if (!library.fetchJson && library.icons === void 0) {
5815
+ return null;
5816
+ }
5817
+ const resolved = {
5818
+ ...library,
5819
+ name,
5820
+ prefix: library.prefix,
5821
+ ...getPackUrls(name, library)
5822
+ };
5823
+ if (!resolveCustomIconType(resolved)) {
5824
+ return null;
5825
+ }
5826
+ return resolved;
5827
+ }
5828
+ function coerceLibraryName(value) {
5829
+ if (typeof value === "string") {
5830
+ return value;
5831
+ }
5832
+ if (typeof value === "number" && Number.isFinite(value)) {
5833
+ return String(value);
5834
+ }
5835
+ return "";
5836
+ }
5837
+ function getPackUrls(library, config) {
5838
+ const derived = derivePackAssetUrls(config.fetchJson, resolveCustomIconType(config));
5839
+ const packs = window.elementorCommon?.config?.fontAwesome?.v7?.customIconPacks;
5840
+ if (!packs || typeof packs !== "object") {
5841
+ return derived;
5842
+ }
5843
+ const pack = packs[library];
5844
+ if (!pack || typeof pack !== "object") {
5845
+ return derived;
5846
+ }
5847
+ const packType = typeof pack.type === "string" ? pack.type : config.custom_icon_type;
5848
+ return {
5849
+ ...derived,
5850
+ configUrl: typeof pack.configUrl === "string" ? pack.configUrl : derived.configUrl,
5851
+ fontUrl: typeof pack.fontUrl === "string" ? pack.fontUrl : derived.fontUrl,
5852
+ selectionUrl: typeof pack.selectionUrl === "string" ? pack.selectionUrl : derived.selectionUrl,
5853
+ custom_icon_type: packType ?? derived.custom_icon_type
5854
+ };
5855
+ }
5856
+ function resolveCustomIconType(library) {
5857
+ const type = typeof library.custom_icon_type === "string" ? library.custom_icon_type.toLowerCase() : "";
5858
+ return SUPPORTED_CUSTOM_ICON_TYPES.has(type) ? type : "";
5859
+ }
5860
+ function derivePackAssetUrls(fetchJson, type) {
5861
+ if (!fetchJson) {
5862
+ return type ? { custom_icon_type: type } : {};
5863
+ }
5864
+ try {
5865
+ const url = new URL(fetchJson, window.location.origin);
5866
+ const base = url.href.replace(/\/[^/?#]+(?:\?.*)?$/, "");
5867
+ if ("icomoon" === type) {
5868
+ return {
5869
+ custom_icon_type: type,
5870
+ selectionUrl: `${base}/selection.json`,
5871
+ fontUrl: `${base}/fonts/icomoon.svg`
5872
+ };
5873
+ }
5874
+ if ("fontastic" === type) {
5875
+ return {
5876
+ custom_icon_type: type,
5877
+ fontUrl: `${base}/fonts/fontastic.svg`
5878
+ };
5879
+ }
5880
+ if ("fontello" === type) {
5881
+ return {
5882
+ custom_icon_type: type,
5883
+ configUrl: `${base}/config.json`,
5884
+ fontUrl: `${base}/font/fontello.svg`
5885
+ };
5886
+ }
5887
+ return {};
5888
+ } catch {
5889
+ return type ? { custom_icon_type: type } : {};
5890
+ }
5891
+ }
5892
+ async function loadCustomLibrary(library, signal) {
5893
+ enqueueIconFonts(library.name);
5894
+ const names = parseIconNames(await loadLibraryPayload(library, signal));
5895
+ const svgMap = await loadLibrarySvgMap(library.name, library, signal);
5896
+ return names.map((name) => {
5897
+ const value = createCustomIconSelectionValue(library, name);
5898
+ return {
5899
+ id: `${library.name}:${name}`,
5900
+ name,
5901
+ label: name.replace(/-/g, " "),
5902
+ library: library.name,
5903
+ value,
5904
+ aliases: [],
5905
+ width: DEFAULT_ICON_SIZE,
5906
+ height: DEFAULT_ICON_SIZE,
5907
+ paths: [],
5908
+ glyphClass: value,
5909
+ svgMarkup: svgMap[value]
5910
+ };
5911
+ });
5912
+ }
5913
+ async function loadLibrarySvgMap(library, config, signal) {
5914
+ if (!config) {
5915
+ svgMapCache.delete(library);
5916
+ inFlightSvgMaps.delete(library);
5917
+ return {};
5918
+ }
5919
+ const cached = svgMapCache.get(library);
5920
+ if (cached && Object.keys(cached).length > 0) {
5921
+ return cached;
5922
+ }
5923
+ const pending = inFlightSvgMaps.get(library);
5924
+ if (pending) {
5925
+ return pending;
5926
+ }
5927
+ const request = fetchLibrarySvgMap(library, config, signal).finally(() => {
5928
+ inFlightSvgMaps.delete(library);
5929
+ });
5930
+ inFlightSvgMaps.set(library, request);
5931
+ return request;
5932
+ }
5933
+ async function fetchLibrarySvgMap(library, config, signal) {
5934
+ const fromRest = await loadSvgMapFromRest(library, signal);
5935
+ const restIcons = fromRest.icons;
5936
+ if (Object.keys(restIcons).length > 0 && !fromRest.truncated) {
5937
+ svgMapCache.set(library, restIcons);
5938
+ return restIcons;
5939
+ }
5940
+ const fromPack = await loadSvgMapFromPackFiles(config, signal);
5941
+ const merged = { ...fromPack, ...restIcons };
5942
+ if (Object.keys(merged).length > 0) {
5943
+ svgMapCache.set(library, merged);
5944
+ return merged;
5945
+ }
5946
+ return {};
5947
+ }
5948
+ async function loadSvgMapFromRest(library, signal) {
5949
+ try {
5950
+ const response = await (0, import_http_client3.httpService)().get(CUSTOM_ICON_SVG_URL, { params: { library: String(library) }, signal });
5951
+ return unwrapIconMap(response);
5952
+ } catch {
5953
+ return { icons: {}, truncated: false };
5954
+ }
5955
+ }
5956
+ function unwrapIconMap(payload) {
5957
+ let current = payload;
5958
+ for (let depth = 0; depth < 4; depth++) {
5959
+ if (!current || typeof current !== "object") {
5960
+ return { icons: {}, truncated: false };
5961
+ }
5962
+ const record = current;
5963
+ if (record.icons && typeof record.icons === "object" && !Array.isArray(record.icons)) {
5964
+ const icons = {};
5965
+ Object.entries(record.icons).forEach(([key, value]) => {
5966
+ if (typeof value === "string" && value !== "") {
5967
+ icons[key] = value;
5968
+ }
5969
+ });
5970
+ return {
5971
+ icons,
5972
+ truncated: true === record.truncated
5973
+ };
5974
+ }
5975
+ current = "data" in record ? record.data : void 0;
5976
+ }
5977
+ return { icons: {}, truncated: false };
5978
+ }
5979
+ async function loadSvgMapFromPackFiles(library, signal) {
5980
+ const type = resolveCustomIconType(library);
5981
+ if (!type) {
5982
+ return {};
5983
+ }
5984
+ if ("icomoon" === type && library.selectionUrl) {
5985
+ try {
5986
+ const response = await fetch(library.selectionUrl, { signal, mode: "cors" });
5987
+ if (response.ok) {
5988
+ const selectionJson = await response.text();
5989
+ const names2 = parseIconNames(safeJson(selectionJson));
5990
+ const payloadNames2 = names2.length > 0 ? names2 : parseIconNames({ icons: library.icons });
5991
+ const fromSelection = parseIcomoonSelection(
5992
+ selectionJson,
5993
+ library.prefix,
5994
+ library.displayPrefix ?? "",
5995
+ payloadNames2
5996
+ );
5997
+ if (Object.keys(fromSelection).length > 0) {
5998
+ return fromSelection;
5999
+ }
6000
+ }
6001
+ } catch {
6002
+ }
6003
+ }
6004
+ const fontUrls = uniqueUrls([
6005
+ library.fontUrl,
6006
+ "fontello" === type && library.fetchJson ? packSiblingUrl(library.fetchJson, "font/fontello.svg") : null,
6007
+ "fontastic" === type && library.fetchJson ? packSiblingUrl(library.fetchJson, "fonts/fontastic.svg") : null,
6008
+ "icomoon" === type && library.fetchJson ? packSiblingUrl(library.fetchJson, "fonts/icomoon.svg") : null
6009
+ ]);
6010
+ if (fontUrls.length === 0) {
6011
+ return {};
6012
+ }
6013
+ let configJson = "{}";
6014
+ if (library.configUrl) {
6015
+ try {
6016
+ const configResponse = await fetch(library.configUrl, { signal, mode: "cors" });
6017
+ if (configResponse.ok) {
6018
+ configJson = await configResponse.text();
6019
+ }
6020
+ } catch {
6021
+ configJson = "{}";
6022
+ }
6023
+ }
6024
+ const names = parseIconNames(safeJson(configJson));
6025
+ const payloadNames = names.length > 0 ? names : parseIconNames({ icons: library.icons });
6026
+ for (const fontUrl of fontUrls) {
6027
+ try {
6028
+ const fontResponse = await fetch(fontUrl, { signal, mode: "cors" });
6029
+ if (!fontResponse.ok) {
6030
+ continue;
6031
+ }
6032
+ const fromFont = parseFontelloSvgFont(
6033
+ configJson,
6034
+ await fontResponse.text(),
6035
+ library.prefix,
6036
+ library.displayPrefix ?? "",
6037
+ payloadNames
6038
+ );
6039
+ if (Object.keys(fromFont).length > 0) {
6040
+ return fromFont;
6041
+ }
6042
+ } catch {
6043
+ continue;
6044
+ }
6045
+ }
6046
+ return {};
6047
+ }
6048
+ function packSiblingUrl(fetchJson, relativePath) {
6049
+ try {
6050
+ const url = new URL(fetchJson, window.location.origin);
6051
+ url.pathname = url.pathname.replace(/\/[^/]+$/, `/${relativePath}`);
6052
+ return url.href;
6053
+ } catch {
6054
+ return null;
6055
+ }
6056
+ }
6057
+ function uniqueUrls(urls) {
6058
+ return [...new Set(urls.filter((url) => typeof url === "string" && url !== ""))];
6059
+ }
6060
+ function safeJson(value) {
6061
+ try {
6062
+ return JSON.parse(value);
6063
+ } catch {
6064
+ return null;
6065
+ }
6066
+ }
6067
+ async function loadLibraryPayload(library, signal) {
6068
+ if (library.icons !== void 0) {
6069
+ return { icons: library.icons };
6070
+ }
6071
+ if (!library.fetchJson) {
6072
+ return null;
6073
+ }
6074
+ try {
6075
+ const response = await fetch(library.fetchJson, { signal, mode: "cors" });
6076
+ return response.ok ? response.json() : null;
6077
+ } catch {
6078
+ return null;
6079
+ }
6080
+ }
6081
+ function parseIconNames(payload) {
6082
+ if (!payload || typeof payload !== "object") {
6083
+ return [];
6084
+ }
6085
+ const icons = payload.icons;
6086
+ if (Array.isArray(icons)) {
6087
+ return icons.flatMap((entry) => {
6088
+ if (typeof entry === "string") {
6089
+ return [normalizeIconName(entry)];
6090
+ }
6091
+ if (entry && typeof entry === "object" && "name" in entry && typeof entry.name === "string") {
6092
+ return [normalizeIconName(entry.name)];
6093
+ }
6094
+ if (entry && typeof entry === "object" && "properties" in entry && entry.properties && typeof entry.properties === "object" && "name" in entry.properties && typeof entry.properties.name === "string") {
6095
+ return [normalizeIconName(entry.properties.name)];
6096
+ }
6097
+ return [];
6098
+ }).filter(Boolean);
6099
+ }
6100
+ if (icons && typeof icons === "object") {
6101
+ return Object.keys(icons).map(normalizeIconName).filter(Boolean);
6102
+ }
6103
+ const glyphs = payload.glyphs;
6104
+ if (Array.isArray(glyphs)) {
6105
+ return glyphs.flatMap((entry) => {
6106
+ if (entry && typeof entry === "object" && "css" in entry && typeof entry.css === "string") {
6107
+ return [normalizeIconName(entry.css)];
6108
+ }
6109
+ return [];
6110
+ }).filter(Boolean);
6111
+ }
6112
+ return [];
6113
+ }
6114
+ function normalizeIconName(name) {
6115
+ return name.trim().replace(/^:/, "").replace(/:$/, "");
6116
+ }
6117
+ function createCustomIconSelectionValue(library, name) {
6118
+ const prefix = library.prefix;
6119
+ const displayPrefix = library.displayPrefix || prefix.replace(/-$/, "");
6120
+ return `${displayPrefix} ${prefix}${name}`.trim();
6121
+ }
6122
+
5528
6123
  // src/controls/icon-library/font-awesome-7-data.ts
5529
6124
  var FONT_AWESOME_7_LIBRARIES = [
5530
6125
  { file: "solid", library: "fa-solid" },
@@ -5550,7 +6145,8 @@ function getFontAwesome7EditorConfig() {
5550
6145
  }
5551
6146
  return {
5552
6147
  jsonFiles: config.jsonFiles,
5553
- jsonBaseUrl
6148
+ jsonBaseUrl,
6149
+ filter: config.filter
5554
6150
  };
5555
6151
  }
5556
6152
  var FONT_AWESOME_ICON_NAME_PATTERN = /^fa\S*\s+fa-([^\s]+)/;
@@ -5741,16 +6337,22 @@ function getSelectedIconId(iconClass, library) {
5741
6337
  return `${library}:${name}`;
5742
6338
  }
5743
6339
  function findFontAwesome7Icon(icons, iconClass, library) {
5744
- const selectedId = getSelectedIconId(iconClass, library);
5745
- if (!selectedId || !library) {
6340
+ if (!iconClass || !library) {
5746
6341
  return void 0;
5747
6342
  }
5748
- const selectedName = selectedId.slice(`${library}:`.length);
6343
+ const selectedId = getSelectedIconId(iconClass, library);
6344
+ const selectedName = selectedId?.slice(`${library}:`.length);
5749
6345
  return icons.find((icon) => {
5750
6346
  if (icon.library !== library) {
5751
6347
  return false;
5752
6348
  }
5753
- return icon.id === selectedId || icon.name === selectedName || icon.aliases.includes(selectedName);
6349
+ if (icon.value === iconClass || icon.id === selectedId) {
6350
+ return true;
6351
+ }
6352
+ if (!selectedName) {
6353
+ return false;
6354
+ }
6355
+ return icon.name === selectedName || icon.aliases.includes(selectedName);
5754
6356
  });
5755
6357
  }
5756
6358
  function toCatalogIcon(icon, library) {
@@ -5765,29 +6367,118 @@ function toCatalogIcon(icon, library) {
5765
6367
 
5766
6368
  // src/controls/icon-library/font-awesome-glyph.tsx
5767
6369
  var React81 = __toESM(require("react"));
6370
+ var import_ui64 = require("@elementor/ui");
6371
+
6372
+ // src/controls/icon-library/sanitize-icon-svg-markup.ts
6373
+ var ALLOWED_SVG_TAGS = /* @__PURE__ */ new Set(["svg", "g", "path", "title", "desc"]);
6374
+ var ALLOWED_SVG_ATTRS = /* @__PURE__ */ new Set([
6375
+ "d",
6376
+ "fill",
6377
+ "viewbox",
6378
+ "xmlns",
6379
+ "width",
6380
+ "height",
6381
+ "transform",
6382
+ "overflow",
6383
+ "aria-hidden",
6384
+ "aria-label",
6385
+ "role"
6386
+ ]);
6387
+ function sanitizeIconSvgMarkup(markup) {
6388
+ if (typeof markup !== "string" || markup === "") {
6389
+ return "";
6390
+ }
6391
+ const doc = new DOMParser().parseFromString(markup, "image/svg+xml");
6392
+ if (doc.querySelector("parsererror")) {
6393
+ return "";
6394
+ }
6395
+ const svg = doc.querySelector("svg");
6396
+ if (!svg) {
6397
+ return "";
6398
+ }
6399
+ pruneNode(svg);
6400
+ return svg.tagName.toLowerCase() === "svg" ? svg.outerHTML : "";
6401
+ }
6402
+ function pruneNode(node) {
6403
+ [...node.children].forEach((child) => {
6404
+ if (!ALLOWED_SVG_TAGS.has(child.tagName.toLowerCase())) {
6405
+ child.remove();
6406
+ return;
6407
+ }
6408
+ pruneNode(child);
6409
+ });
6410
+ [...node.attributes].forEach((attribute) => {
6411
+ if (!ALLOWED_SVG_ATTRS.has(attribute.name.toLowerCase())) {
6412
+ node.removeAttribute(attribute.name);
6413
+ }
6414
+ });
6415
+ }
6416
+
6417
+ // src/controls/icon-library/font-awesome-glyph.tsx
5768
6418
  var FontAwesomeGlyph = ({ icon, size, color, label }) => {
5769
- return /* @__PURE__ */ React81.createElement(
5770
- "svg",
5771
- {
5772
- xmlns: "http://www.w3.org/2000/svg",
5773
- viewBox: `0 0 ${icon.width} ${icon.height}`,
5774
- width: size,
5775
- height: size,
5776
- fill: color,
5777
- overflow: "visible",
5778
- "aria-hidden": label ? void 0 : true,
5779
- "aria-label": label,
5780
- role: label ? "img" : void 0
5781
- },
5782
- icon.paths.map((path, index) => /* @__PURE__ */ React81.createElement("path", { key: `${index}-${path}`, d: path }))
5783
- );
6419
+ const svgMarkup = sanitizeIconSvgMarkup(icon.svgMarkup);
6420
+ if (svgMarkup) {
6421
+ return /* @__PURE__ */ React81.createElement(
6422
+ import_ui64.Box,
6423
+ {
6424
+ component: "span",
6425
+ "aria-hidden": label ? void 0 : true,
6426
+ "aria-label": label,
6427
+ role: label ? "img" : void 0,
6428
+ sx: {
6429
+ width: size,
6430
+ height: size,
6431
+ color,
6432
+ display: "inline-flex",
6433
+ "& svg": {
6434
+ width: "100%",
6435
+ height: "100%",
6436
+ fill: "currentColor"
6437
+ },
6438
+ "& path": {
6439
+ fill: "currentColor"
6440
+ }
6441
+ },
6442
+ dangerouslySetInnerHTML: { __html: svgMarkup }
6443
+ }
6444
+ );
6445
+ }
6446
+ if (icon.paths.length > 0) {
6447
+ return /* @__PURE__ */ React81.createElement(
6448
+ "svg",
6449
+ {
6450
+ xmlns: "http://www.w3.org/2000/svg",
6451
+ viewBox: `0 0 ${icon.width} ${icon.height}`,
6452
+ width: size,
6453
+ height: size,
6454
+ fill: color,
6455
+ overflow: "visible",
6456
+ "aria-hidden": label ? void 0 : true,
6457
+ "aria-label": label,
6458
+ role: label ? "img" : void 0
6459
+ },
6460
+ icon.paths.map((path, index) => /* @__PURE__ */ React81.createElement("path", { key: `${index}-${path}`, d: path }))
6461
+ );
6462
+ }
6463
+ if (icon.glyphClass) {
6464
+ return /* @__PURE__ */ React81.createElement(
6465
+ "i",
6466
+ {
6467
+ className: icon.glyphClass,
6468
+ "aria-hidden": label ? void 0 : true,
6469
+ "aria-label": label,
6470
+ style: { fontSize: size, color, lineHeight: 1 }
6471
+ }
6472
+ );
6473
+ }
6474
+ return null;
5784
6475
  };
5785
6476
 
5786
6477
  // src/controls/icon-library/icon-library-filter.tsx
5787
6478
  var React82 = __toESM(require("react"));
5788
6479
  var import_react50 = require("react");
5789
6480
  var import_icons21 = require("@elementor/icons");
5790
- var import_ui64 = require("@elementor/ui");
6481
+ var import_ui65 = require("@elementor/ui");
5791
6482
  var import_i18n32 = require("@wordpress/i18n");
5792
6483
 
5793
6484
  // src/controls/icon-library/icon-library-tooltip.ts
@@ -5797,51 +6488,37 @@ var ICON_LIBRARY_ACTION_TOOLTIP_ENTER_DELAY = 0;
5797
6488
  var FILTER_MENU_WIDTH = 280;
5798
6489
  var FILTER_INDICATOR_SIZE = 6;
5799
6490
  var FILTER_INDICATOR_OFFSET = 4;
5800
- var LIBRARY_FILTER_ORDER = {
5801
- regular: 0,
5802
- solid: 1,
5803
- brands: 2
5804
- };
5805
- var LIBRARY_FILTER_CONFIG = {
5806
- "fa-regular": {
5807
- getLabel: () => (0, import_i18n32.__)("Font Awesome - Regular", "elementor"),
5808
- Icon: import_icons21.StarIcon,
5809
- order: LIBRARY_FILTER_ORDER.regular
5810
- },
5811
- "fa-solid": {
5812
- getLabel: () => (0, import_i18n32.__)("Font Awesome - Solid", "elementor"),
5813
- Icon: import_icons21.StarFilledIcon,
5814
- order: LIBRARY_FILTER_ORDER.solid
5815
- },
5816
- "fa-brands": {
5817
- getLabel: () => (0, import_i18n32.__)("Font Awesome - Brands", "elementor"),
5818
- Icon: import_icons21.LibraryIcon,
5819
- order: LIBRARY_FILTER_ORDER.brands
5820
- }
5821
- };
6491
+ var FILTER_TYPE_ALL = "all";
6492
+ var FILTER_TYPE_GROUP = "group";
6493
+ var FILTER_TYPE_ITEM = "item";
6494
+ var FILTER_ICONS = {
6495
+ list: import_icons21.ListIcon,
6496
+ star: import_icons21.StarIcon,
6497
+ "star-filled": import_icons21.StarFilledIcon,
6498
+ library: import_icons21.LibraryIcon
6499
+ };
6500
+ var DEFAULT_FILTER = [
6501
+ { type: FILTER_TYPE_ALL, label: "All icons", icon: "list" },
6502
+ { type: FILTER_TYPE_ITEM, value: "fa-regular", label: "Font Awesome - Regular", icon: "star" },
6503
+ { type: FILTER_TYPE_ITEM, value: "fa-solid", label: "Font Awesome - Solid", icon: "star-filled" },
6504
+ { type: FILTER_TYPE_ITEM, value: "fa-brands", label: "Font Awesome - Brands", icon: "library" }
6505
+ ];
5822
6506
  var IconLibraryFilter = ({ value, onChange }) => {
5823
6507
  const popupId = (0, import_react50.useId)();
5824
- const popupState = (0, import_ui64.usePopupState)({
6508
+ const popupState = (0, import_ui65.usePopupState)({
5825
6509
  variant: "popover",
5826
6510
  popupId
5827
6511
  });
5828
- const options = FONT_AWESOME_7_LIBRARIES.map(({ library }) => ({
5829
- value: library,
5830
- label: LIBRARY_FILTER_CONFIG[library].getLabel(),
5831
- Icon: LIBRARY_FILTER_CONFIG[library].Icon,
5832
- order: LIBRARY_FILTER_CONFIG[library].order
5833
- })).sort((firstOption, secondOption) => firstOption.order - secondOption.order);
6512
+ const entries = getFilterEntries();
6513
+ const selectableValues = entries.flatMap((entry) => entry.type === FILTER_TYPE_ITEM ? [entry.value] : []);
5834
6514
  const isFiltered = value.length > 0;
5835
6515
  const filterButtonLabel = isFiltered ? (0, import_i18n32.__)("Filter by library, active", "elementor") : (0, import_i18n32.__)("Filter by library", "elementor");
5836
- const handleAllIconsClick = () => {
5837
- onChange([]);
5838
- };
5839
6516
  const handleLibraryClick = (library) => {
5840
6517
  const nextValue = value.includes(library) ? value.filter((selectedLibrary) => selectedLibrary !== library) : [...value, library];
5841
- onChange(nextValue.length === FONT_AWESOME_7_LIBRARIES.length ? [] : nextValue);
6518
+ onChange(nextValue.length === selectableValues.length ? [] : nextValue);
5842
6519
  };
5843
6520
  return /* @__PURE__ */ React82.createElement(React82.Fragment, null, /* @__PURE__ */ React82.createElement(
5844
- import_ui64.Tooltip,
6521
+ import_ui65.Tooltip,
5845
6522
  {
5846
6523
  title: (0, import_i18n32.__)("Filter by library", "elementor"),
5847
6524
  placement: "top",
@@ -5850,19 +6527,19 @@ var IconLibraryFilter = ({ value, onChange }) => {
5850
6527
  disableInteractive: true
5851
6528
  },
5852
6529
  /* @__PURE__ */ React82.createElement(
5853
- import_ui64.ToggleButton,
6530
+ import_ui65.ToggleButton,
5854
6531
  {
5855
6532
  "aria-label": filterButtonLabel,
5856
6533
  value: "filter",
5857
6534
  size: "tiny",
5858
6535
  selected: popupState.isOpen,
5859
6536
  sx: { position: "relative", flexShrink: 0 },
5860
- ...(0, import_ui64.bindToggle)(popupState),
6537
+ ...(0, import_ui65.bindToggle)(popupState),
5861
6538
  "aria-expanded": popupState.isOpen
5862
6539
  },
5863
6540
  /* @__PURE__ */ React82.createElement(import_icons21.FilterIcon, { fontSize: "tiny" }),
5864
6541
  isFiltered ? /* @__PURE__ */ React82.createElement(
5865
- import_ui64.Box,
6542
+ import_ui65.Box,
5866
6543
  {
5867
6544
  component: "span",
5868
6545
  "aria-hidden": "true",
@@ -5879,9 +6556,9 @@ var IconLibraryFilter = ({ value, onChange }) => {
5879
6556
  ) : null
5880
6557
  )
5881
6558
  ), /* @__PURE__ */ React82.createElement(
5882
- import_ui64.Menu,
6559
+ import_ui65.Menu,
5883
6560
  {
5884
- ...(0, import_ui64.bindMenu)(popupState),
6561
+ ...(0, import_ui65.bindMenu)(popupState),
5885
6562
  MenuListProps: {
5886
6563
  dense: true,
5887
6564
  autoFocusItem: true,
@@ -5889,35 +6566,91 @@ var IconLibraryFilter = ({ value, onChange }) => {
5889
6566
  },
5890
6567
  sx: { "& .MuiPaper-root": { minWidth: FILTER_MENU_WIDTH } }
5891
6568
  },
6569
+ entries.flatMap(
6570
+ (entry, index) => renderFilterEntry(entry, index, value, isFiltered, () => onChange([]), handleLibraryClick)
6571
+ )
6572
+ ));
6573
+ };
6574
+ var renderFilterEntry = (entry, index, selectedLibraries, isFiltered, onAllIconsClick, onLibraryClick) => {
6575
+ if (entry.type === FILTER_TYPE_GROUP) {
6576
+ return [
6577
+ /* @__PURE__ */ React82.createElement(import_ui65.Divider, { key: `divider-${index}` }),
6578
+ /* @__PURE__ */ React82.createElement(import_ui65.ListSubheader, { key: `group-${index}`, disableSticky: true }, entry.label)
6579
+ ];
6580
+ }
6581
+ if (entry.type === FILTER_TYPE_ALL) {
6582
+ return [
6583
+ /* @__PURE__ */ React82.createElement(
6584
+ import_ui65.MenuItem,
6585
+ {
6586
+ key: `all-${index}`,
6587
+ role: "menuitemcheckbox",
6588
+ "aria-checked": !isFiltered,
6589
+ selected: !isFiltered,
6590
+ onClick: onAllIconsClick
6591
+ },
6592
+ renderFilterMenuItemContent(entry.label, getFilterIcon(entry.icon), !isFiltered)
6593
+ )
6594
+ ];
6595
+ }
6596
+ const isSelected = selectedLibraries.includes(entry.value);
6597
+ return [
5892
6598
  /* @__PURE__ */ React82.createElement(
5893
- import_ui64.MenuItem,
5894
- {
5895
- role: "menuitemcheckbox",
5896
- "aria-checked": !isFiltered,
5897
- selected: !isFiltered,
5898
- onClick: handleAllIconsClick
5899
- },
5900
- renderFilterMenuItemContent((0, import_i18n32.__)("All icons", "elementor"), import_icons21.ListIcon, !isFiltered)
5901
- ),
5902
- options.map(({ value: library, label, Icon }) => /* @__PURE__ */ React82.createElement(
5903
- import_ui64.MenuItem,
6599
+ import_ui65.MenuItem,
5904
6600
  {
5905
- key: library,
6601
+ key: entry.value,
5906
6602
  role: "menuitemcheckbox",
5907
- "aria-checked": value.includes(library),
5908
- selected: value.includes(library),
5909
- onClick: () => handleLibraryClick(library)
6603
+ "aria-checked": isSelected,
6604
+ selected: isSelected,
6605
+ onClick: () => onLibraryClick(entry.value)
5910
6606
  },
5911
- renderFilterMenuItemContent(label, Icon, value.includes(library))
5912
- ))
5913
- ));
6607
+ renderFilterMenuItemContent(entry.label, getFilterIcon(entry.icon), isSelected)
6608
+ )
6609
+ ];
5914
6610
  };
5915
- var renderFilterMenuItemContent = (label, Icon, selected) => /* @__PURE__ */ React82.createElement(import_ui64.Stack, { direction: "row", alignItems: "center", gap: 1, width: "100%" }, /* @__PURE__ */ React82.createElement(Icon, { fontSize: "tiny" }), /* @__PURE__ */ React82.createElement(import_ui64.Typography, { variant: "caption", sx: { flex: 1 } }, label), selected ? /* @__PURE__ */ React82.createElement(import_icons21.CheckIcon, { fontSize: "tiny", "aria-hidden": "true" }) : null);
6611
+ var getFilterIcon = (icon) => FILTER_ICONS[icon ?? ""] ?? import_icons21.LibraryIcon;
6612
+ var renderFilterMenuItemContent = (label, Icon, selected) => /* @__PURE__ */ React82.createElement(import_ui65.Stack, { direction: "row", alignItems: "center", gap: 1, width: "100%" }, /* @__PURE__ */ React82.createElement(Icon, { fontSize: "tiny" }), /* @__PURE__ */ React82.createElement(import_ui65.Typography, { variant: "caption", sx: { flex: 1 } }, label), selected ? /* @__PURE__ */ React82.createElement(import_icons21.CheckIcon, { fontSize: "tiny", "aria-hidden": "true" }) : null);
6613
+ function getFilterEntries() {
6614
+ const filter = window.elementorCommon?.config?.fontAwesome?.v7?.filter;
6615
+ if (!Array.isArray(filter)) {
6616
+ return [...DEFAULT_FILTER];
6617
+ }
6618
+ const entries = filter.map(parseFilterEntry).filter((entry) => entry !== null);
6619
+ return entries.length > 0 ? entries : [...DEFAULT_FILTER];
6620
+ }
6621
+ function parseFilterEntry(value) {
6622
+ if (!value || typeof value !== "object") {
6623
+ return null;
6624
+ }
6625
+ const entry = value;
6626
+ if (typeof entry.label !== "string" || entry.label === "") {
6627
+ return null;
6628
+ }
6629
+ if (entry.type === FILTER_TYPE_GROUP) {
6630
+ return { type: FILTER_TYPE_GROUP, label: entry.label };
6631
+ }
6632
+ if (entry.type === FILTER_TYPE_ALL) {
6633
+ return {
6634
+ type: FILTER_TYPE_ALL,
6635
+ label: entry.label,
6636
+ icon: typeof entry.icon === "string" ? entry.icon : void 0
6637
+ };
6638
+ }
6639
+ if (entry.type === FILTER_TYPE_ITEM && typeof entry.value === "string" && entry.value !== "") {
6640
+ return {
6641
+ type: FILTER_TYPE_ITEM,
6642
+ value: entry.value,
6643
+ label: entry.label,
6644
+ icon: typeof entry.icon === "string" ? entry.icon : void 0
6645
+ };
6646
+ }
6647
+ return null;
6648
+ }
5916
6649
 
5917
6650
  // src/controls/icon-library/icon-library-grid.tsx
5918
6651
  var React83 = __toESM(require("react"));
5919
6652
  var import_react51 = require("react");
5920
- var import_ui65 = require("@elementor/ui");
6653
+ var import_ui66 = require("@elementor/ui");
5921
6654
  var import_react_virtual = require("@tanstack/react-virtual");
5922
6655
  var import_i18n33 = require("@wordpress/i18n");
5923
6656
  var ICON_LIBRARY_GRID_FALLBACK_COLUMN_COUNT = 4;
@@ -5953,7 +6686,7 @@ var IconLibraryGrid = ({
5953
6686
  onClose,
5954
6687
  noResultsComponent
5955
6688
  }) => {
5956
- const theme = (0, import_ui65.useTheme)();
6689
+ const theme = (0, import_ui66.useTheme)();
5957
6690
  const containerRef = (0, import_react51.useRef)(null);
5958
6691
  const cellRefs = (0, import_react51.useRef)(/* @__PURE__ */ new Map());
5959
6692
  const shouldRestoreFocusRef = (0, import_react51.useRef)(false);
@@ -6063,7 +6796,7 @@ var IconLibraryGrid = ({
6063
6796
  }
6064
6797
  };
6065
6798
  return /* @__PURE__ */ React83.createElement(
6066
- import_ui65.Box,
6799
+ import_ui66.Box,
6067
6800
  {
6068
6801
  ref: containerRef,
6069
6802
  sx: {
@@ -6075,7 +6808,7 @@ var IconLibraryGrid = ({
6075
6808
  }
6076
6809
  },
6077
6810
  items2.length === 0 && noResultsComponent ? noResultsComponent : /* @__PURE__ */ React83.createElement(
6078
- import_ui65.Box,
6811
+ import_ui66.Box,
6079
6812
  {
6080
6813
  role: "grid",
6081
6814
  "aria-label": (0, import_i18n33.__)("Icons", "elementor"),
@@ -6093,7 +6826,7 @@ var IconLibraryGrid = ({
6093
6826
  const startIndex = virtualRow.index * columnCount;
6094
6827
  const rowItems = items2.slice(startIndex, startIndex + columnCount);
6095
6828
  return /* @__PURE__ */ React83.createElement(
6096
- import_ui65.Box,
6829
+ import_ui66.Box,
6097
6830
  {
6098
6831
  key: virtualRow.key,
6099
6832
  role: "row",
@@ -6117,14 +6850,14 @@ var IconLibraryGrid = ({
6117
6850
  const isSelected = selectedValue === item.id;
6118
6851
  const tabIndex = focusedIndex === index ? 0 : -1;
6119
6852
  return /* @__PURE__ */ React83.createElement(
6120
- import_ui65.Box,
6853
+ import_ui66.Box,
6121
6854
  {
6122
6855
  key: item.id,
6123
6856
  role: "presentation",
6124
6857
  sx: { minWidth: 0, minHeight: 0, width: "100%", height: "100%" }
6125
6858
  },
6126
6859
  /* @__PURE__ */ React83.createElement(
6127
- import_ui65.Tooltip,
6860
+ import_ui66.Tooltip,
6128
6861
  {
6129
6862
  title: item.label,
6130
6863
  placement: "top",
@@ -6134,7 +6867,7 @@ var IconLibraryGrid = ({
6134
6867
  disableFocusListener: true
6135
6868
  },
6136
6869
  /* @__PURE__ */ React83.createElement(
6137
- import_ui65.Box,
6870
+ import_ui66.Box,
6138
6871
  {
6139
6872
  component: "button",
6140
6873
  type: "button",
@@ -6188,14 +6921,14 @@ var IconLibraryGrid = ({
6188
6921
  }
6189
6922
  }
6190
6923
  },
6191
- item.paths.length > 0 ? /* @__PURE__ */ React83.createElement(
6924
+ /* @__PURE__ */ React83.createElement(
6192
6925
  FontAwesomeGlyph,
6193
6926
  {
6194
6927
  icon: item,
6195
6928
  size: ICON_GLYPH_SIZE,
6196
6929
  color: "currentColor"
6197
6930
  }
6198
- ) : null
6931
+ )
6199
6932
  )
6200
6933
  )
6201
6934
  );
@@ -6210,12 +6943,12 @@ var IconLibraryGrid = ({
6210
6943
  var React84 = __toESM(require("react"));
6211
6944
  var import_react52 = require("react");
6212
6945
  var import_icons22 = require("@elementor/icons");
6213
- var import_ui66 = require("@elementor/ui");
6946
+ var import_ui67 = require("@elementor/ui");
6214
6947
  var import_i18n34 = require("@wordpress/i18n");
6215
6948
  var VIEW_MENU_WIDTH = 122;
6216
6949
  var IconLibraryViewToggle = ({ value, onChange }) => {
6217
6950
  const popupId = (0, import_react52.useId)();
6218
- const popupState = (0, import_ui66.usePopupState)({
6951
+ const popupState = (0, import_ui67.usePopupState)({
6219
6952
  variant: "popover",
6220
6953
  popupId
6221
6954
  });
@@ -6223,7 +6956,7 @@ var IconLibraryViewToggle = ({ value, onChange }) => {
6223
6956
  const ViewIcon = isGrid ? import_icons22.WidgetsIcon : import_icons22.ListIcon;
6224
6957
  const viewButtonLabel = isGrid ? (0, import_i18n34.__)("Grid view", "elementor") : (0, import_i18n34.__)("List view", "elementor");
6225
6958
  return /* @__PURE__ */ React84.createElement(React84.Fragment, null, /* @__PURE__ */ React84.createElement(
6226
- import_ui66.Tooltip,
6959
+ import_ui67.Tooltip,
6227
6960
  {
6228
6961
  title: viewButtonLabel,
6229
6962
  placement: "top",
@@ -6232,22 +6965,22 @@ var IconLibraryViewToggle = ({ value, onChange }) => {
6232
6965
  disableInteractive: true
6233
6966
  },
6234
6967
  /* @__PURE__ */ React84.createElement(
6235
- import_ui66.ToggleButton,
6968
+ import_ui67.ToggleButton,
6236
6969
  {
6237
6970
  "aria-label": viewButtonLabel,
6238
6971
  value: "view",
6239
6972
  size: "tiny",
6240
6973
  selected: popupState.isOpen,
6241
6974
  sx: { flexShrink: 0 },
6242
- ...(0, import_ui66.bindToggle)(popupState),
6975
+ ...(0, import_ui67.bindToggle)(popupState),
6243
6976
  "aria-expanded": popupState.isOpen
6244
6977
  },
6245
6978
  /* @__PURE__ */ React84.createElement(ViewIcon, { fontSize: "tiny" })
6246
6979
  )
6247
6980
  ), /* @__PURE__ */ React84.createElement(
6248
- import_ui66.Menu,
6981
+ import_ui67.Menu,
6249
6982
  {
6250
- ...(0, import_ui66.bindMenu)(popupState),
6983
+ ...(0, import_ui67.bindMenu)(popupState),
6251
6984
  MenuListProps: {
6252
6985
  dense: true,
6253
6986
  autoFocusItem: true,
@@ -6279,13 +7012,13 @@ var IconLibraryViewToggle = ({ value, onChange }) => {
6279
7012
  )
6280
7013
  ));
6281
7014
  };
6282
- var ViewMenuItem = ({ label, selected, onClick }) => /* @__PURE__ */ React84.createElement(import_ui66.MenuItem, { role: "menuitemradio", "aria-checked": selected, selected, onClick }, /* @__PURE__ */ React84.createElement(import_ui66.Stack, { direction: "row", alignItems: "center", gap: 1, width: "100%" }, /* @__PURE__ */ React84.createElement(import_ui66.Typography, { variant: "caption", sx: { flex: 1 } }, label), selected ? /* @__PURE__ */ React84.createElement(import_icons22.CheckIcon, { fontSize: "tiny", "aria-hidden": "true" }) : null));
7015
+ var ViewMenuItem = ({ label, selected, onClick }) => /* @__PURE__ */ React84.createElement(import_ui67.MenuItem, { role: "menuitemradio", "aria-checked": selected, selected, onClick }, /* @__PURE__ */ React84.createElement(import_ui67.Stack, { direction: "row", alignItems: "center", gap: 1, width: "100%" }, /* @__PURE__ */ React84.createElement(import_ui67.Typography, { variant: "caption", sx: { flex: 1 } }, label), selected ? /* @__PURE__ */ React84.createElement(import_icons22.CheckIcon, { fontSize: "tiny", "aria-hidden": "true" }) : null));
6283
7016
 
6284
7017
  // src/controls/icon-library/use-font-awesome-7-catalog.ts
6285
- var import_query2 = require("@elementor/query");
7018
+ var import_query3 = require("@elementor/query");
6286
7019
  var FONT_AWESOME_7_CATALOG_QUERY_KEY = ["font-awesome-7-catalog"];
6287
7020
  function useFontAwesome7Catalog(enabled) {
6288
- return (0, import_query2.useQuery)({
7021
+ return (0, import_query3.useQuery)({
6289
7022
  queryKey: FONT_AWESOME_7_CATALOG_QUERY_KEY,
6290
7023
  queryFn: ({ signal }) => loadFontAwesome7Catalog(signal),
6291
7024
  enabled,
@@ -6306,7 +7039,7 @@ var isIconLibraryView = (value) => {
6306
7039
  var ICON_TILE_SIZE = 40;
6307
7040
  var ICON_GLYPH_SIZE2 = 20;
6308
7041
  var ICON_LIBRARY_INLINE_SPACING = 1;
6309
- var CompactIconLibraryMenuList = (0, import_ui67.styled)(import_editor_ui11.StyledMenuList)(({ theme }) => ({
7042
+ var CompactIconLibraryMenuList = (0, import_ui68.styled)(import_editor_ui11.StyledMenuList)(({ theme }) => ({
6310
7043
  '& > [role="option"]': {
6311
7044
  padding: theme.spacing(0.75, ICON_LIBRARY_INLINE_SPACING)
6312
7045
  }
@@ -6331,7 +7064,10 @@ var IconLibraryPopover = ({
6331
7064
  ICON_LIBRARY_VIEW_STORAGE_PREFIX
6332
7065
  );
6333
7066
  const view = isIconLibraryView(storedView) ? storedView : DEFAULT_ICON_LIBRARY_VIEW;
6334
- const { data: icons = [], isLoading } = useFontAwesome7Catalog(open);
7067
+ const { data: fontAwesomeIcons = [], isLoading: isFontAwesomeLoading } = useFontAwesome7Catalog(open);
7068
+ const { data: customIcons = [], isLoading: isCustomLoading } = useCustomIconLibraries(open);
7069
+ const isLoading = isFontAwesomeLoading || isCustomLoading;
7070
+ const icons = (0, import_react53.useMemo)(() => [...fontAwesomeIcons, ...customIcons], [customIcons, fontAwesomeIcons]);
6335
7071
  const items2 = (0, import_react53.useMemo)(
6336
7072
  () => createIconLibraryItems(icons, searchValue, activeLibraries),
6337
7073
  [activeLibraries, icons, searchValue]
@@ -6351,7 +7087,7 @@ var IconLibraryPopover = ({
6351
7087
  return;
6352
7088
  }
6353
7089
  onSelect({
6354
- value: createIconSelectionValue(icon.library, icon.name),
7090
+ value: icon.glyphClass ?? createIconSelectionValue(icon.library, icon.name),
6355
7091
  library: icon.library
6356
7092
  });
6357
7093
  };
@@ -6367,7 +7103,7 @@ var IconLibraryPopover = ({
6367
7103
  actions: [/* @__PURE__ */ React85.createElement(IconLibraryViewToggle, { key: "view", value: view, onChange: setStoredView })],
6368
7104
  sx: { pl: ICON_LIBRARY_INLINE_SPACING, pr: 0.5 }
6369
7105
  }
6370
- ), /* @__PURE__ */ React85.createElement(import_ui67.Stack, { direction: "row", alignItems: "center", gap: 1, sx: { px: ICON_LIBRARY_INLINE_SPACING, pb: 1 } }, /* @__PURE__ */ React85.createElement(
7106
+ ), /* @__PURE__ */ React85.createElement(import_ui68.Stack, { direction: "row", alignItems: "center", gap: 1, sx: { px: ICON_LIBRARY_INLINE_SPACING, pb: 1 } }, /* @__PURE__ */ React85.createElement(
6371
7107
  import_editor_ui11.SearchField,
6372
7108
  {
6373
7109
  value: searchInputValue,
@@ -6376,7 +7112,7 @@ var IconLibraryPopover = ({
6376
7112
  id: "icon-library-search",
6377
7113
  sx: { flex: 1, px: 0, pb: 0 }
6378
7114
  }
6379
- ), /* @__PURE__ */ React85.createElement(IconLibraryFilter, { value: activeLibraries, onChange: setActiveLibraries })), /* @__PURE__ */ React85.createElement(import_ui67.Divider, null), /* @__PURE__ */ React85.createElement(import_ui67.Box, { sx: { flex: 1, overflow: "hidden", minHeight: 0, minWidth: 0 } }, /* @__PURE__ */ React85.createElement(
7115
+ ), /* @__PURE__ */ React85.createElement(IconLibraryFilter, { value: activeLibraries, onChange: setActiveLibraries })), /* @__PURE__ */ React85.createElement(import_ui68.Divider, null), /* @__PURE__ */ React85.createElement(import_ui68.Box, { sx: { flex: 1, overflow: "hidden", minHeight: 0, minWidth: 0 } }, /* @__PURE__ */ React85.createElement(
6380
7116
  IconLibraryContent,
6381
7117
  {
6382
7118
  isLoading,
@@ -6414,7 +7150,7 @@ var IconLibraryContent = ({
6414
7150
  }
6415
7151
  );
6416
7152
  if (view === "grid") {
6417
- return /* @__PURE__ */ React85.createElement(import_ui67.Box, { sx: { width: "100%", height: "100%", minWidth: 0, minHeight: 0 } }, /* @__PURE__ */ React85.createElement(
7153
+ return /* @__PURE__ */ React85.createElement(import_ui68.Box, { sx: { width: "100%", height: "100%", minWidth: 0, minHeight: 0 } }, /* @__PURE__ */ React85.createElement(
6418
7154
  IconLibraryGrid,
6419
7155
  {
6420
7156
  items: items2,
@@ -6440,7 +7176,7 @@ var IconLibraryContent = ({
6440
7176
  }
6441
7177
  );
6442
7178
  };
6443
- var IconLibraryLoadingState = () => /* @__PURE__ */ React85.createElement(import_ui67.Stack, { alignItems: "center", justifyContent: "center", height: "100%" }, /* @__PURE__ */ React85.createElement(import_ui67.CircularProgress, { role: "progressbar", size: 24 }));
7179
+ var IconLibraryLoadingState = () => /* @__PURE__ */ React85.createElement(import_ui68.Stack, { alignItems: "center", justifyContent: "center", height: "100%" }, /* @__PURE__ */ React85.createElement(import_ui68.CircularProgress, { role: "progressbar", size: 24 }));
6444
7180
  var IconLibraryEmptyState = ({
6445
7181
  searchValue,
6446
7182
  isCatalogAvailable,
@@ -6453,8 +7189,8 @@ var IconLibraryEmptyState = ({
6453
7189
  };
6454
7190
  var IconLibraryRow = (item) => {
6455
7191
  const icon = item;
6456
- return /* @__PURE__ */ React85.createElement(import_ui67.Stack, { direction: "row", alignItems: "center", gap: 1, sx: { width: "100%" } }, /* @__PURE__ */ React85.createElement(
6457
- import_ui67.Box,
7192
+ return /* @__PURE__ */ React85.createElement(import_ui68.Stack, { direction: "row", alignItems: "center", gap: 1, sx: { width: "100%" } }, /* @__PURE__ */ React85.createElement(
7193
+ import_ui68.Box,
6458
7194
  {
6459
7195
  sx: {
6460
7196
  width: ICON_TILE_SIZE,
@@ -6469,30 +7205,21 @@ var IconLibraryRow = (item) => {
6469
7205
  flexShrink: 0
6470
7206
  }
6471
7207
  },
6472
- icon.paths.length > 0 ? /* @__PURE__ */ React85.createElement(FontAwesomeGlyph, { icon, size: ICON_GLYPH_SIZE2, color: "currentColor" }) : null
6473
- ), /* @__PURE__ */ React85.createElement(import_ui67.Typography, { variant: "caption", color: "text.primary", noWrap: true }, icon.label));
7208
+ /* @__PURE__ */ React85.createElement(FontAwesomeGlyph, { icon, size: ICON_GLYPH_SIZE2, color: "currentColor" })
7209
+ ), /* @__PURE__ */ React85.createElement(import_ui68.Typography, { variant: "caption", color: "text.primary", noWrap: true }, icon.label));
6474
7210
  };
6475
- var CatalogUnavailable = () => /* @__PURE__ */ React85.createElement(import_ui67.Stack, { alignItems: "center", justifyContent: "center", height: "100%", p: 2.5, gap: 1.5 }, /* @__PURE__ */ React85.createElement(import_icons23.ComponentsIcon, { fontSize: "large" }), /* @__PURE__ */ React85.createElement(import_ui67.Typography, { align: "center", variant: "subtitle2", color: "text.secondary" }, (0, import_i18n35.__)("Icons couldn't be loaded.", "elementor")));
6476
- var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */ React85.createElement(import_ui67.Stack, { alignItems: "center", justifyContent: "center", height: "100%", p: 2.5, gap: 1.5 }, /* @__PURE__ */ React85.createElement(import_icons23.ComponentsIcon, { fontSize: "large" }), /* @__PURE__ */ React85.createElement(import_ui67.Typography, { align: "center", variant: "subtitle2", color: "text.secondary" }, (0, import_i18n35.__)("Sorry, nothing matched", "elementor")), searchValue ? /* @__PURE__ */ React85.createElement(React85.Fragment, null, /* @__PURE__ */ React85.createElement(import_ui67.Typography, { align: "center", variant: "subtitle2", color: "text.secondary", noWrap: true, sx: { maxWidth: "80%" } }, "\u201C", searchValue, "\u201D."), /* @__PURE__ */ React85.createElement(import_ui67.Link, { color: "secondary", variant: "caption", component: "button", type: "button", onClick: onClear }, (0, import_i18n35.__)("Clear & try again", "elementor"))) : null);
7211
+ var CatalogUnavailable = () => /* @__PURE__ */ React85.createElement(import_ui68.Stack, { alignItems: "center", justifyContent: "center", height: "100%", p: 2.5, gap: 1.5 }, /* @__PURE__ */ React85.createElement(import_icons23.ComponentsIcon, { fontSize: "large" }), /* @__PURE__ */ React85.createElement(import_ui68.Typography, { align: "center", variant: "subtitle2", color: "text.secondary" }, (0, import_i18n35.__)("Icons couldn't be loaded.", "elementor")));
7212
+ var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */ React85.createElement(import_ui68.Stack, { alignItems: "center", justifyContent: "center", height: "100%", p: 2.5, gap: 1.5 }, /* @__PURE__ */ React85.createElement(import_icons23.ComponentsIcon, { fontSize: "large" }), /* @__PURE__ */ React85.createElement(import_ui68.Typography, { align: "center", variant: "subtitle2", color: "text.secondary" }, (0, import_i18n35.__)("Sorry, nothing matched", "elementor")), searchValue ? /* @__PURE__ */ React85.createElement(React85.Fragment, null, /* @__PURE__ */ React85.createElement(import_ui68.Typography, { align: "center", variant: "subtitle2", color: "text.secondary", noWrap: true, sx: { maxWidth: "80%" } }, "\u201C", searchValue, "\u201D."), /* @__PURE__ */ React85.createElement(import_ui68.Link, { color: "secondary", variant: "caption", component: "button", type: "button", onClick: onClear }, (0, import_i18n35.__)("Clear & try again", "elementor"))) : null);
6477
7213
  var createIconLibraryItems = (icons, searchValue, libraries) => filterFontAwesome7Icons(icons, searchValue, libraries).map((icon) => ({
6478
7214
  ...icon,
6479
7215
  type: "item",
6480
7216
  value: icon.id
6481
7217
  }));
6482
7218
 
6483
- // src/controls/open-icon-library.ts
6484
- var import_editor_props34 = require("@elementor/editor-props");
6485
- function createIconPropValue(icon, library) {
6486
- return {
6487
- value: import_editor_props34.stringPropTypeUtil.create(icon),
6488
- library: import_editor_props34.stringPropTypeUtil.create(library)
6489
- };
6490
- }
6491
-
6492
7219
  // src/controls/svg-media-overlay.tsx
6493
7220
  var React86 = __toESM(require("react"));
6494
7221
  var import_icons24 = require("@elementor/icons");
6495
- var import_ui68 = require("@elementor/ui");
7222
+ var import_ui69 = require("@elementor/ui");
6496
7223
  var import_i18n36 = require("@wordpress/i18n");
6497
7224
  var SVG_MEDIA_CONTROL_CONTAINER_TEST_ID = "svg-media-control-container";
6498
7225
  var SVG_MEDIA_ACTION_GROUP_TEST_ID = "svg-media-action-group";
@@ -6503,7 +7230,7 @@ var svgButtonSx = {
6503
7230
  px: MEDIA_ACTION_PADDING_X,
6504
7231
  py: MEDIA_ACTION_PADDING_Y
6505
7232
  };
6506
- var MediaActionGroup = (0, import_ui68.styled)(import_ui68.Stack)(({ theme }) => ({
7233
+ var MediaActionGroup = (0, import_ui69.styled)(import_ui69.Stack)(({ theme }) => ({
6507
7234
  display: "inline-flex",
6508
7235
  flexDirection: "row",
6509
7236
  alignItems: "stretch",
@@ -6525,8 +7252,8 @@ var SvgMediaOverlay = ({
6525
7252
  onOpenIconLibrary,
6526
7253
  infotipTitle,
6527
7254
  infotipDescription
6528
- }) => /* @__PURE__ */ React86.createElement(import_ui68.Stack, { alignItems: "center", gap: 1 }, /* @__PURE__ */ React86.createElement(MediaActionGroup, { ref: buttonGroupRef, direction: "row", "data-testid": SVG_MEDIA_ACTION_GROUP_TEST_ID }, /* @__PURE__ */ React86.createElement(
6529
- import_ui68.Button,
7255
+ }) => /* @__PURE__ */ React86.createElement(import_ui69.Stack, { alignItems: "center", gap: 1 }, /* @__PURE__ */ React86.createElement(MediaActionGroup, { ref: buttonGroupRef, direction: "row", "data-testid": SVG_MEDIA_ACTION_GROUP_TEST_ID }, /* @__PURE__ */ React86.createElement(
7256
+ import_ui69.Button,
6530
7257
  {
6531
7258
  size: "tiny",
6532
7259
  color: "inherit",
@@ -6537,7 +7264,7 @@ var SvgMediaOverlay = ({
6537
7264
  },
6538
7265
  (0, import_i18n36.__)("Select", "elementor")
6539
7266
  ), /* @__PURE__ */ React86.createElement(
6540
- import_ui68.Box,
7267
+ import_ui69.Box,
6541
7268
  {
6542
7269
  sx: {
6543
7270
  width: "1px",
@@ -6553,9 +7280,9 @@ var SvgMediaOverlay = ({
6553
7280
  description: infotipDescription,
6554
7281
  isEnabled: !isAdmin
6555
7282
  },
6556
- /* @__PURE__ */ React86.createElement(import_ui68.Box, { component: "span", sx: { display: "inline-flex" } }, /* @__PURE__ */ React86.createElement(UploadControl, { isAdmin, onUpload }))
7283
+ /* @__PURE__ */ React86.createElement(import_ui69.Box, { component: "span", sx: { display: "inline-flex" } }, /* @__PURE__ */ React86.createElement(UploadControl, { isAdmin, onUpload }))
6557
7284
  )), showIconLibrary ? /* @__PURE__ */ React86.createElement(
6558
- import_ui68.Button,
7285
+ import_ui69.Button,
6559
7286
  {
6560
7287
  size: "tiny",
6561
7288
  color: "inherit",
@@ -6569,20 +7296,20 @@ var SvgMediaOverlay = ({
6569
7296
  ".MuiButton-icon": { ml: 0 }
6570
7297
  }
6571
7298
  },
6572
- /* @__PURE__ */ React86.createElement(import_ui68.Typography, null, (0, import_i18n36.__)("Icon library", "elementor"))
7299
+ /* @__PURE__ */ React86.createElement(import_ui69.Typography, null, (0, import_i18n36.__)("Icon library", "elementor"))
6573
7300
  ) : null);
6574
7301
  var UploadControl = ({ isAdmin, onUpload }) => {
6575
7302
  if (isAdmin) {
6576
7303
  return /* @__PURE__ */ React86.createElement(UploadButton, { sx: svgButtonSx, onClick: onUpload });
6577
7304
  }
6578
- return /* @__PURE__ */ React86.createElement(import_ui68.ThemeProvider, { colorScheme: "dark" }, /* @__PURE__ */ React86.createElement(UploadButton, { disabled: true, sx: svgButtonSx }));
7305
+ return /* @__PURE__ */ React86.createElement(import_ui69.ThemeProvider, { colorScheme: "dark" }, /* @__PURE__ */ React86.createElement(UploadButton, { disabled: true, sx: svgButtonSx }));
6579
7306
  };
6580
7307
  var UploadButton = ({
6581
7308
  disabled = false,
6582
7309
  sx,
6583
7310
  onClick
6584
7311
  }) => /* @__PURE__ */ React86.createElement(
6585
- import_ui68.Button,
7312
+ import_ui69.Button,
6586
7313
  {
6587
7314
  sx,
6588
7315
  size: "tiny",
@@ -6597,16 +7324,19 @@ var UploadButton = ({
6597
7324
 
6598
7325
  // src/controls/svg-media-preview.tsx
6599
7326
  var React87 = __toESM(require("react"));
6600
- var import_ui69 = require("@elementor/ui");
7327
+ var import_ui70 = require("@elementor/ui");
6601
7328
  var import_i18n37 = require("@wordpress/i18n");
6602
7329
  var ICON_PREVIEW_SIZE = 50;
6603
7330
  var ICON_PREVIEW_COLOR = "#000000";
6604
7331
  var SvgMediaPreview = ({ isFetching, src, iconClassName, iconLibrary }) => {
6605
7332
  const shouldLoadIconCatalog = Boolean(iconClassName && iconLibrary);
6606
- const { data: icons = [], isLoading } = useFontAwesome7Catalog(shouldLoadIconCatalog);
7333
+ const { data: fontAwesomeIcons = [], isLoading: isFontAwesomeLoading } = useFontAwesome7Catalog(shouldLoadIconCatalog);
7334
+ const { data: customIcons = [], isLoading: isCustomLoading } = useCustomIconLibraries(shouldLoadIconCatalog);
7335
+ const icons = [...fontAwesomeIcons, ...customIcons];
6607
7336
  const selectedIcon = findFontAwesome7Icon(icons, iconClassName, iconLibrary);
6608
- if (isFetching || shouldLoadIconCatalog && isLoading) {
6609
- return /* @__PURE__ */ React87.createElement(import_ui69.CircularProgress, { role: "progressbar" });
7337
+ const isLoadingCatalog = shouldLoadIconCatalog && (isFontAwesomeLoading || isCustomLoading);
7338
+ if (isFetching || isLoadingCatalog) {
7339
+ return /* @__PURE__ */ React87.createElement(import_ui70.CircularProgress, { role: "progressbar" });
6610
7340
  }
6611
7341
  if (selectedIcon) {
6612
7342
  return /* @__PURE__ */ React87.createElement(IconPreview, { icon: selectedIcon });
@@ -6616,7 +7346,7 @@ var SvgMediaPreview = ({ isFetching, src, iconClassName, iconLibrary }) => {
6616
7346
  }
6617
7347
  return /* @__PURE__ */ React87.createElement(SvgPreview, { src });
6618
7348
  };
6619
- var IconPreview = ({ icon }) => /* @__PURE__ */ React87.createElement(import_ui69.Box, { sx: { color: ICON_PREVIEW_COLOR } }, /* @__PURE__ */ React87.createElement(
7349
+ var IconPreview = ({ icon }) => /* @__PURE__ */ React87.createElement(import_ui70.Box, { sx: { color: ICON_PREVIEW_COLOR } }, /* @__PURE__ */ React87.createElement(
6620
7350
  FontAwesomeGlyph,
6621
7351
  {
6622
7352
  icon,
@@ -6626,7 +7356,7 @@ var IconPreview = ({ icon }) => /* @__PURE__ */ React87.createElement(import_ui6
6626
7356
  }
6627
7357
  ));
6628
7358
  var IconPreviewPlaceholder = () => /* @__PURE__ */ React87.createElement(
6629
- import_ui69.Box,
7359
+ import_ui70.Box,
6630
7360
  {
6631
7361
  "aria-hidden": true,
6632
7362
  sx: {
@@ -6637,7 +7367,7 @@ var IconPreviewPlaceholder = () => /* @__PURE__ */ React87.createElement(
6637
7367
  }
6638
7368
  );
6639
7369
  var SvgPreview = ({ src }) => /* @__PURE__ */ React87.createElement(
6640
- import_ui69.CardMedia,
7370
+ import_ui70.CardMedia,
6641
7371
  {
6642
7372
  component: "img",
6643
7373
  image: src,
@@ -6651,7 +7381,7 @@ var TILE_SIZE = 8;
6651
7381
  var TILE_WHITE = "transparent";
6652
7382
  var TILE_BLACK = "#c1c1c1";
6653
7383
  var TILES_GRADIENT_FORMULA = `linear-gradient(45deg, ${TILE_BLACK} 25%, ${TILE_WHITE} 0, ${TILE_WHITE} 75%, ${TILE_BLACK} 0, ${TILE_BLACK})`;
6654
- var StyledCard = (0, import_ui70.styled)(import_ui70.Card)`
7384
+ var StyledCard = (0, import_ui71.styled)(import_ui71.Card)`
6655
7385
  position: relative;
6656
7386
  background-color: white;
6657
7387
  background-image: ${TILES_GRADIENT_FORMULA}, ${TILES_GRADIENT_FORMULA};
@@ -6662,7 +7392,7 @@ var StyledCard = (0, import_ui70.styled)(import_ui70.Card)`
6662
7392
  border: none;
6663
7393
  `;
6664
7394
  var PREVIEW_ICON_COLOR = "#000000";
6665
- var StyledCardMediaContainer = (0, import_ui70.styled)(import_ui70.Stack)`
7395
+ var StyledCardMediaContainer = (0, import_ui71.styled)(import_ui71.Stack)`
6666
7396
  position: relative;
6667
7397
  height: 140px;
6668
7398
  object-fit: contain;
@@ -6683,7 +7413,7 @@ var SvgMediaControl = createControl(({ showIconLibrary = false }) => {
6683
7413
  const src = attachment?.url ?? url?.value ?? null;
6684
7414
  const { data: allowSvgUpload } = useUnfilteredFilesUpload();
6685
7415
  const [unfilteredModalOpenState, setUnfilteredModalOpenState] = (0, import_react54.useState)(false);
6686
- const iconLibraryPopoverState = (0, import_ui70.usePopupState)({ variant: "popover" });
7416
+ const iconLibraryPopoverState = (0, import_ui71.usePopupState)({ variant: "popover" });
6687
7417
  const controlContainerRef = (0, import_react54.useRef)(null);
6688
7418
  const buttonGroupRef = (0, import_react54.useRef)(null);
6689
7419
  const [iconLibraryAnchor, setIconLibraryAnchor] = (0, import_react54.useState)(null);
@@ -6754,8 +7484,8 @@ var SvgMediaControl = createControl(({ showIconLibrary = false }) => {
6754
7484
  };
6755
7485
  }, [iconLibraryPopoverState.isOpen]);
6756
7486
  const iconLibraryWidth = iconLibraryAnchor?.width ?? ICON_LIBRARY_POPOVER_WIDTH;
6757
- return /* @__PURE__ */ React88.createElement(import_ui70.Stack, { gap: 1, "aria-label": (0, import_i18n38.__)("SVG control", "elementor") }, /* @__PURE__ */ React88.createElement(EnableUnfilteredModal, { open: unfilteredModalOpenState, onClose: handleCloseUnfilteredModal }), showIconLibrary && iconLibraryAnchor ? /* @__PURE__ */ React88.createElement(
6758
- import_ui70.Popover,
7487
+ return /* @__PURE__ */ React88.createElement(import_ui71.Stack, { gap: 1, "aria-label": (0, import_i18n38.__)("SVG control", "elementor") }, /* @__PURE__ */ React88.createElement(EnableUnfilteredModal, { open: unfilteredModalOpenState, onClose: handleCloseUnfilteredModal }), showIconLibrary && iconLibraryAnchor ? /* @__PURE__ */ React88.createElement(
7488
+ import_ui71.Popover,
6759
7489
  {
6760
7490
  disableScrollLock: true,
6761
7491
  open: iconLibraryPopoverState.isOpen,
@@ -6786,7 +7516,7 @@ var SvgMediaControl = createControl(({ showIconLibrary = false }) => {
6786
7516
  }
6787
7517
  )
6788
7518
  ) : null, /* @__PURE__ */ React88.createElement(
6789
- import_ui70.Box,
7519
+ import_ui71.Box,
6790
7520
  {
6791
7521
  ref: controlContainerRef,
6792
7522
  "data-testid": SVG_MEDIA_CONTROL_CONTAINER_TEST_ID,
@@ -6801,7 +7531,7 @@ var SvgMediaControl = createControl(({ showIconLibrary = false }) => {
6801
7531
  iconLibrary: selectedIconLibrary
6802
7532
  }
6803
7533
  )), /* @__PURE__ */ React88.createElement(
6804
- import_ui70.CardOverlay,
7534
+ import_ui71.CardOverlay,
6805
7535
  {
6806
7536
  sx: {
6807
7537
  "&:hover": {
@@ -6831,7 +7561,7 @@ var UnfilteredUploadInfotipDescription = () => /* @__PURE__ */ React88.createEle
6831
7561
  var React89 = __toESM(require("react"));
6832
7562
  var import_editor_props36 = require("@elementor/editor-props");
6833
7563
  var import_icons25 = require("@elementor/icons");
6834
- var import_ui71 = require("@elementor/ui");
7564
+ var import_ui72 = require("@elementor/ui");
6835
7565
  var import_wp_media3 = require("@elementor/wp-media");
6836
7566
  var import_i18n39 = require("@wordpress/i18n");
6837
7567
  var PLACEHOLDER_IMAGE = window.elementorCommon?.config?.urls?.assets + "/shapes/play-triangle.svg";
@@ -6863,8 +7593,8 @@ var VideoMediaControl = createControl(() => {
6863
7593
  });
6864
7594
  }
6865
7595
  });
6866
- return /* @__PURE__ */ React89.createElement(ControlActions, null, /* @__PURE__ */ React89.createElement(import_ui71.Card, { variant: "outlined" }, /* @__PURE__ */ React89.createElement(
6867
- import_ui71.CardMedia,
7596
+ return /* @__PURE__ */ React89.createElement(ControlActions, null, /* @__PURE__ */ React89.createElement(import_ui72.Card, { variant: "outlined" }, /* @__PURE__ */ React89.createElement(
7597
+ import_ui72.CardMedia,
6868
7598
  {
6869
7599
  sx: {
6870
7600
  height: 140,
@@ -6879,8 +7609,8 @@ var VideoMediaControl = createControl(() => {
6879
7609
  }
6880
7610
  },
6881
7611
  /* @__PURE__ */ React89.createElement(VideoPreview, { isFetching, videoUrl })
6882
- ), /* @__PURE__ */ React89.createElement(import_ui71.CardOverlay, null, /* @__PURE__ */ React89.createElement(import_ui71.Stack, { gap: 1 }, /* @__PURE__ */ React89.createElement(
6883
- import_ui71.Button,
7612
+ ), /* @__PURE__ */ React89.createElement(import_ui72.CardOverlay, null, /* @__PURE__ */ React89.createElement(import_ui72.Stack, { gap: 1 }, /* @__PURE__ */ React89.createElement(
7613
+ import_ui72.Button,
6884
7614
  {
6885
7615
  size: "tiny",
6886
7616
  color: "inherit",
@@ -6889,7 +7619,7 @@ var VideoMediaControl = createControl(() => {
6889
7619
  },
6890
7620
  (0, import_i18n39.__)("Select video", "elementor")
6891
7621
  ), /* @__PURE__ */ React89.createElement(
6892
- import_ui71.Button,
7622
+ import_ui72.Button,
6893
7623
  {
6894
7624
  size: "tiny",
6895
7625
  variant: "text",
@@ -6899,7 +7629,7 @@ var VideoMediaControl = createControl(() => {
6899
7629
  },
6900
7630
  (0, import_i18n39.__)("Upload", "elementor")
6901
7631
  ), /* @__PURE__ */ React89.createElement(
6902
- import_ui71.Button,
7632
+ import_ui72.Button,
6903
7633
  {
6904
7634
  size: "tiny",
6905
7635
  variant: "text",
@@ -6911,7 +7641,7 @@ var VideoMediaControl = createControl(() => {
6911
7641
  });
6912
7642
  var VideoPreview = ({ isFetching = false, videoUrl }) => {
6913
7643
  if (isFetching) {
6914
- return /* @__PURE__ */ React89.createElement(import_ui71.CircularProgress, null);
7644
+ return /* @__PURE__ */ React89.createElement(import_ui72.CircularProgress, null);
6915
7645
  }
6916
7646
  if (videoUrl) {
6917
7647
  return /* @__PURE__ */ React89.createElement(
@@ -6936,13 +7666,13 @@ var VideoPreview = ({ isFetching = false, videoUrl }) => {
6936
7666
  // src/controls/background-control/background-control.tsx
6937
7667
  var React96 = __toESM(require("react"));
6938
7668
  var import_editor_props42 = require("@elementor/editor-props");
6939
- var import_ui79 = require("@elementor/ui");
7669
+ var import_ui80 = require("@elementor/ui");
6940
7670
  var import_i18n45 = require("@wordpress/i18n");
6941
7671
 
6942
7672
  // src/controls/background-control/background-overlay/background-overlay-repeater-control.tsx
6943
7673
  var React95 = __toESM(require("react"));
6944
7674
  var import_editor_props41 = require("@elementor/editor-props");
6945
- var import_ui78 = require("@elementor/ui");
7675
+ var import_ui79 = require("@elementor/ui");
6946
7676
  var import_wp_media4 = require("@elementor/wp-media");
6947
7677
  var import_i18n44 = require("@wordpress/i18n");
6948
7678
 
@@ -6953,7 +7683,7 @@ var { env } = (0, import_env.parseEnv)("@elementor/editor-controls");
6953
7683
  // src/controls/background-control/background-gradient-color-control.tsx
6954
7684
  var React90 = __toESM(require("react"));
6955
7685
  var import_editor_props37 = require("@elementor/editor-props");
6956
- var import_ui72 = require("@elementor/ui");
7686
+ var import_ui73 = require("@elementor/ui");
6957
7687
  var BackgroundGradientColorControl = createControl(() => {
6958
7688
  const { value, setValue } = useBoundProp(import_editor_props37.backgroundGradientOverlayPropTypeUtil);
6959
7689
  const handleChange = (newValue) => {
@@ -6992,7 +7722,7 @@ var BackgroundGradientColorControl = createControl(() => {
6992
7722
  };
6993
7723
  };
6994
7724
  return /* @__PURE__ */ React90.createElement(
6995
- import_ui72.UnstableGradientBox,
7725
+ import_ui73.UnstableGradientBox,
6996
7726
  {
6997
7727
  sx: { width: "auto", padding: 1.5 },
6998
7728
  value: normalizeValue(),
@@ -7018,7 +7748,7 @@ var initialBackgroundGradientOverlay = import_editor_props37.backgroundGradientO
7018
7748
  // src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-attachment.tsx
7019
7749
  var React91 = __toESM(require("react"));
7020
7750
  var import_icons26 = require("@elementor/icons");
7021
- var import_ui73 = require("@elementor/ui");
7751
+ var import_ui74 = require("@elementor/ui");
7022
7752
  var import_i18n40 = require("@wordpress/i18n");
7023
7753
  var attachmentControlOptions = [
7024
7754
  {
@@ -7035,7 +7765,7 @@ var attachmentControlOptions = [
7035
7765
  }
7036
7766
  ];
7037
7767
  var BackgroundImageOverlayAttachment = () => {
7038
- return /* @__PURE__ */ React91.createElement(PopoverGridContainer, null, /* @__PURE__ */ React91.createElement(import_ui73.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React91.createElement(ControlFormLabel, null, (0, import_i18n40.__)("Attachment", "elementor"))), /* @__PURE__ */ React91.createElement(import_ui73.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end", overflow: "hidden" } }, /* @__PURE__ */ React91.createElement(ToggleControl, { options: attachmentControlOptions })));
7768
+ return /* @__PURE__ */ React91.createElement(PopoverGridContainer, null, /* @__PURE__ */ React91.createElement(import_ui74.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React91.createElement(ControlFormLabel, null, (0, import_i18n40.__)("Attachment", "elementor"))), /* @__PURE__ */ React91.createElement(import_ui74.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end", overflow: "hidden" } }, /* @__PURE__ */ React91.createElement(ToggleControl, { options: attachmentControlOptions })));
7039
7769
  };
7040
7770
 
7041
7771
  // src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-position.tsx
@@ -7044,7 +7774,7 @@ var import_react55 = require("react");
7044
7774
  var import_editor_props38 = require("@elementor/editor-props");
7045
7775
  var import_editor_ui12 = require("@elementor/editor-ui");
7046
7776
  var import_icons27 = require("@elementor/icons");
7047
- var import_ui74 = require("@elementor/ui");
7777
+ var import_ui75 = require("@elementor/ui");
7048
7778
  var import_i18n41 = require("@wordpress/i18n");
7049
7779
  var backgroundPositionOptions = [
7050
7780
  { label: (0, import_i18n41.__)("Center center", "elementor"), value: "center center" },
@@ -7071,8 +7801,8 @@ var BackgroundImageOverlayPosition = () => {
7071
7801
  stringPropContext.setValue(value);
7072
7802
  }
7073
7803
  };
7074
- return /* @__PURE__ */ React92.createElement(import_ui74.Grid, { container: true, spacing: 1.5 }, /* @__PURE__ */ React92.createElement(import_ui74.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React92.createElement(PopoverGridContainer, null, /* @__PURE__ */ React92.createElement(import_ui74.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React92.createElement(ControlFormLabel, null, (0, import_i18n41.__)("Position", "elementor"))), /* @__PURE__ */ React92.createElement(import_ui74.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end", overflow: "hidden" } }, /* @__PURE__ */ React92.createElement(ControlActions, null, /* @__PURE__ */ React92.createElement(
7075
- import_ui74.Select,
7804
+ return /* @__PURE__ */ React92.createElement(import_ui75.Grid, { container: true, spacing: 1.5 }, /* @__PURE__ */ React92.createElement(import_ui75.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React92.createElement(PopoverGridContainer, null, /* @__PURE__ */ React92.createElement(import_ui75.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React92.createElement(ControlFormLabel, null, (0, import_i18n41.__)("Position", "elementor"))), /* @__PURE__ */ React92.createElement(import_ui75.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end", overflow: "hidden" } }, /* @__PURE__ */ React92.createElement(ControlActions, null, /* @__PURE__ */ React92.createElement(
7805
+ import_ui75.Select,
7076
7806
  {
7077
7807
  fullWidth: true,
7078
7808
  size: "tiny",
@@ -7081,14 +7811,14 @@ var BackgroundImageOverlayPosition = () => {
7081
7811
  value: (backgroundImageOffsetContext.value ? "custom" : stringPropContext.value) ?? ""
7082
7812
  },
7083
7813
  backgroundPositionOptions.map(({ label, value }) => /* @__PURE__ */ React92.createElement(import_editor_ui12.MenuListItem, { key: value, value: value ?? "" }, label))
7084
- ))))), isCustom ? /* @__PURE__ */ React92.createElement(PropProvider, { ...backgroundImageOffsetContext }, /* @__PURE__ */ React92.createElement(import_ui74.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React92.createElement(import_ui74.Grid, { container: true, spacing: 1.5, ref: rowRef }, /* @__PURE__ */ React92.createElement(import_ui74.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React92.createElement(PropKeyProvider, { bind: "x" }, /* @__PURE__ */ React92.createElement(
7814
+ ))))), isCustom ? /* @__PURE__ */ React92.createElement(PropProvider, { ...backgroundImageOffsetContext }, /* @__PURE__ */ React92.createElement(import_ui75.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React92.createElement(import_ui75.Grid, { container: true, spacing: 1.5, ref: rowRef }, /* @__PURE__ */ React92.createElement(import_ui75.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React92.createElement(PropKeyProvider, { bind: "x" }, /* @__PURE__ */ React92.createElement(
7085
7815
  SizeControl,
7086
7816
  {
7087
7817
  startIcon: /* @__PURE__ */ React92.createElement(import_icons27.LetterXIcon, { fontSize: "tiny" }),
7088
7818
  anchorRef: rowRef,
7089
7819
  min: -Number.MAX_SAFE_INTEGER
7090
7820
  }
7091
- ))), /* @__PURE__ */ React92.createElement(import_ui74.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React92.createElement(PropKeyProvider, { bind: "y" }, /* @__PURE__ */ React92.createElement(
7821
+ ))), /* @__PURE__ */ React92.createElement(import_ui75.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React92.createElement(PropKeyProvider, { bind: "y" }, /* @__PURE__ */ React92.createElement(
7092
7822
  SizeControl,
7093
7823
  {
7094
7824
  startIcon: /* @__PURE__ */ React92.createElement(import_icons27.LetterYIcon, { fontSize: "tiny" }),
@@ -7101,7 +7831,7 @@ var BackgroundImageOverlayPosition = () => {
7101
7831
  // src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-repeat.tsx
7102
7832
  var React93 = __toESM(require("react"));
7103
7833
  var import_icons28 = require("@elementor/icons");
7104
- var import_ui75 = require("@elementor/ui");
7834
+ var import_ui76 = require("@elementor/ui");
7105
7835
  var import_i18n42 = require("@wordpress/i18n");
7106
7836
  var repeatControlOptions = [
7107
7837
  {
@@ -7130,7 +7860,7 @@ var repeatControlOptions = [
7130
7860
  }
7131
7861
  ];
7132
7862
  var BackgroundImageOverlayRepeat = () => {
7133
- return /* @__PURE__ */ React93.createElement(PopoverGridContainer, null, /* @__PURE__ */ React93.createElement(import_ui75.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React93.createElement(ControlFormLabel, null, (0, import_i18n42.__)("Repeat", "elementor"))), /* @__PURE__ */ React93.createElement(import_ui75.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React93.createElement(ToggleControl, { options: repeatControlOptions })));
7863
+ return /* @__PURE__ */ React93.createElement(PopoverGridContainer, null, /* @__PURE__ */ React93.createElement(import_ui76.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React93.createElement(ControlFormLabel, null, (0, import_i18n42.__)("Repeat", "elementor"))), /* @__PURE__ */ React93.createElement(import_ui76.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React93.createElement(ToggleControl, { options: repeatControlOptions })));
7134
7864
  };
7135
7865
 
7136
7866
  // src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-size.tsx
@@ -7138,7 +7868,7 @@ var React94 = __toESM(require("react"));
7138
7868
  var import_react56 = require("react");
7139
7869
  var import_editor_props39 = require("@elementor/editor-props");
7140
7870
  var import_icons29 = require("@elementor/icons");
7141
- var import_ui76 = require("@elementor/ui");
7871
+ var import_ui77 = require("@elementor/ui");
7142
7872
  var import_i18n43 = require("@wordpress/i18n");
7143
7873
  var sizeControlOptions = [
7144
7874
  {
@@ -7178,7 +7908,7 @@ var BackgroundImageOverlaySize = () => {
7178
7908
  stringPropContext.setValue(size);
7179
7909
  }
7180
7910
  };
7181
- return /* @__PURE__ */ React94.createElement(import_ui76.Grid, { container: true, spacing: 1.5 }, /* @__PURE__ */ React94.createElement(import_ui76.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React94.createElement(PopoverGridContainer, null, /* @__PURE__ */ React94.createElement(import_ui76.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React94.createElement(ControlFormLabel, null, (0, import_i18n43.__)("Size", "elementor"))), /* @__PURE__ */ React94.createElement(import_ui76.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React94.createElement(
7911
+ return /* @__PURE__ */ React94.createElement(import_ui77.Grid, { container: true, spacing: 1.5 }, /* @__PURE__ */ React94.createElement(import_ui77.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React94.createElement(PopoverGridContainer, null, /* @__PURE__ */ React94.createElement(import_ui77.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React94.createElement(ControlFormLabel, null, (0, import_i18n43.__)("Size", "elementor"))), /* @__PURE__ */ React94.createElement(import_ui77.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React94.createElement(
7182
7912
  ControlToggleButtonGroup,
7183
7913
  {
7184
7914
  exclusive: true,
@@ -7187,14 +7917,14 @@ var BackgroundImageOverlaySize = () => {
7187
7917
  disabled: stringPropContext.disabled,
7188
7918
  value: backgroundImageScaleContext.value ? "custom" : stringPropContext.value
7189
7919
  }
7190
- )))), isCustom ? /* @__PURE__ */ React94.createElement(PropProvider, { ...backgroundImageScaleContext }, /* @__PURE__ */ React94.createElement(import_ui76.Grid, { item: true, xs: 12, ref: rowRef }, /* @__PURE__ */ React94.createElement(PopoverGridContainer, null, /* @__PURE__ */ React94.createElement(import_ui76.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React94.createElement(PropKeyProvider, { bind: "width" }, /* @__PURE__ */ React94.createElement(
7920
+ )))), isCustom ? /* @__PURE__ */ React94.createElement(PropProvider, { ...backgroundImageScaleContext }, /* @__PURE__ */ React94.createElement(import_ui77.Grid, { item: true, xs: 12, ref: rowRef }, /* @__PURE__ */ React94.createElement(PopoverGridContainer, null, /* @__PURE__ */ React94.createElement(import_ui77.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React94.createElement(PropKeyProvider, { bind: "width" }, /* @__PURE__ */ React94.createElement(
7191
7921
  SizeControl,
7192
7922
  {
7193
7923
  startIcon: /* @__PURE__ */ React94.createElement(import_icons29.ArrowsMoveHorizontalIcon, { fontSize: "tiny" }),
7194
7924
  extendedOptions: ["auto"],
7195
7925
  anchorRef: rowRef
7196
7926
  }
7197
- ))), /* @__PURE__ */ React94.createElement(import_ui76.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React94.createElement(PropKeyProvider, { bind: "height" }, /* @__PURE__ */ React94.createElement(
7927
+ ))), /* @__PURE__ */ React94.createElement(import_ui77.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React94.createElement(PropKeyProvider, { bind: "height" }, /* @__PURE__ */ React94.createElement(
7198
7928
  SizeControl,
7199
7929
  {
7200
7930
  startIcon: /* @__PURE__ */ React94.createElement(import_icons29.ArrowsMoveVerticalIcon, { fontSize: "tiny" }),
@@ -7207,7 +7937,7 @@ var BackgroundImageOverlaySize = () => {
7207
7937
  // src/controls/background-control/background-overlay/use-background-tabs-history.ts
7208
7938
  var import_react57 = require("react");
7209
7939
  var import_editor_props40 = require("@elementor/editor-props");
7210
- var import_ui77 = require("@elementor/ui");
7940
+ var import_ui78 = require("@elementor/ui");
7211
7941
  var useBackgroundTabsHistory = ({
7212
7942
  color: initialBackgroundColorOverlay2,
7213
7943
  image: initialBackgroundImageOverlay,
@@ -7225,7 +7955,7 @@ var useBackgroundTabsHistory = ({
7225
7955
  }
7226
7956
  return "image";
7227
7957
  };
7228
- const { getTabsProps, getTabProps, getTabPanelProps } = (0, import_ui77.useTabs)(getCurrentOverlayType());
7958
+ const { getTabsProps, getTabProps, getTabPanelProps } = (0, import_ui78.useTabs)(getCurrentOverlayType());
7229
7959
  const valuesHistory = (0, import_react57.useRef)({
7230
7960
  image: initialBackgroundImageOverlay,
7231
7961
  color: initialBackgroundColorOverlay2,
@@ -7326,18 +8056,18 @@ var ItemContent2 = () => {
7326
8056
  gradient: initialBackgroundGradientOverlay.value
7327
8057
  });
7328
8058
  const { rowRef } = useRepeaterContext();
7329
- return /* @__PURE__ */ React95.createElement(import_ui78.Box, { sx: { width: "100%" } }, /* @__PURE__ */ React95.createElement(import_ui78.Box, { sx: { borderBottom: 1, borderColor: "divider" } }, /* @__PURE__ */ React95.createElement(
7330
- import_ui78.Tabs,
8059
+ return /* @__PURE__ */ React95.createElement(import_ui79.Box, { sx: { width: "100%" } }, /* @__PURE__ */ React95.createElement(import_ui79.Box, { sx: { borderBottom: 1, borderColor: "divider" } }, /* @__PURE__ */ React95.createElement(
8060
+ import_ui79.Tabs,
7331
8061
  {
7332
8062
  size: "small",
7333
8063
  variant: "fullWidth",
7334
8064
  ...getTabsProps(),
7335
8065
  "aria-label": (0, import_i18n44.__)("Background Overlay", "elementor")
7336
8066
  },
7337
- /* @__PURE__ */ React95.createElement(import_ui78.Tab, { label: (0, import_i18n44.__)("Image", "elementor"), ...getTabProps("image") }),
7338
- /* @__PURE__ */ React95.createElement(import_ui78.Tab, { label: (0, import_i18n44.__)("Gradient", "elementor"), ...getTabProps("gradient") }),
7339
- /* @__PURE__ */ React95.createElement(import_ui78.Tab, { label: (0, import_i18n44.__)("Color", "elementor"), ...getTabProps("color") })
7340
- )), /* @__PURE__ */ React95.createElement(import_ui78.TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps("image") }, /* @__PURE__ */ React95.createElement(PopoverContent, null, /* @__PURE__ */ React95.createElement(ImageOverlayContent, null))), /* @__PURE__ */ React95.createElement(import_ui78.TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps("gradient") }, /* @__PURE__ */ React95.createElement(BackgroundGradientColorControl, null)), /* @__PURE__ */ React95.createElement(import_ui78.TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps("color") }, /* @__PURE__ */ React95.createElement(PopoverContent, null, /* @__PURE__ */ React95.createElement(ColorOverlayContent, { anchorEl: rowRef }))));
8067
+ /* @__PURE__ */ React95.createElement(import_ui79.Tab, { label: (0, import_i18n44.__)("Image", "elementor"), ...getTabProps("image") }),
8068
+ /* @__PURE__ */ React95.createElement(import_ui79.Tab, { label: (0, import_i18n44.__)("Gradient", "elementor"), ...getTabProps("gradient") }),
8069
+ /* @__PURE__ */ React95.createElement(import_ui79.Tab, { label: (0, import_i18n44.__)("Color", "elementor"), ...getTabProps("color") })
8070
+ )), /* @__PURE__ */ React95.createElement(import_ui79.TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps("image") }, /* @__PURE__ */ React95.createElement(PopoverContent, null, /* @__PURE__ */ React95.createElement(ImageOverlayContent, null))), /* @__PURE__ */ React95.createElement(import_ui79.TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps("gradient") }, /* @__PURE__ */ React95.createElement(BackgroundGradientColorControl, null)), /* @__PURE__ */ React95.createElement(import_ui79.TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps("color") }, /* @__PURE__ */ React95.createElement(PopoverContent, null, /* @__PURE__ */ React95.createElement(ColorOverlayContent, { anchorEl: rowRef }))));
7341
8071
  };
7342
8072
  var ItemIcon2 = ({ value }) => {
7343
8073
  switch (value.$$type) {
@@ -7364,7 +8094,7 @@ var ItemIconColor = ({ value: prop }) => {
7364
8094
  var ItemIconImage = ({ value }) => {
7365
8095
  const { imageUrl } = useImage(value);
7366
8096
  return /* @__PURE__ */ React95.createElement(
7367
- import_ui78.CardMedia,
8097
+ import_ui79.CardMedia,
7368
8098
  {
7369
8099
  image: imageUrl,
7370
8100
  sx: (theme) => ({
@@ -7414,7 +8144,7 @@ var ImageOverlayContent = () => {
7414
8144
  const propContext = useBoundProp(import_editor_props41.backgroundImageOverlayPropTypeUtil);
7415
8145
  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)));
7416
8146
  };
7417
- var StyledUnstableColorIndicator3 = (0, import_ui78.styled)(import_ui78.UnstableColorIndicator)(({ theme }) => ({
8147
+ var StyledUnstableColorIndicator3 = (0, import_ui79.styled)(import_ui79.UnstableColorIndicator)(({ theme }) => ({
7418
8148
  height: "1rem",
7419
8149
  width: "1rem",
7420
8150
  borderRadius: `${theme.shape.borderRadius / 2}px`
@@ -7465,17 +8195,17 @@ var BackgroundControl = createControl(() => {
7465
8195
  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));
7466
8196
  });
7467
8197
  var BackgroundColorField = () => {
7468
- return /* @__PURE__ */ React96.createElement(PropKeyProvider, { bind: "color" }, /* @__PURE__ */ React96.createElement(import_ui79.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React96.createElement(import_ui79.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React96.createElement(ControlLabel, null, colorLabel)), /* @__PURE__ */ React96.createElement(import_ui79.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React96.createElement(ColorControl, null))));
8198
+ return /* @__PURE__ */ React96.createElement(PropKeyProvider, { bind: "color" }, /* @__PURE__ */ React96.createElement(import_ui80.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React96.createElement(import_ui80.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React96.createElement(ControlLabel, null, colorLabel)), /* @__PURE__ */ React96.createElement(import_ui80.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React96.createElement(ColorControl, null))));
7469
8199
  };
7470
8200
  var BackgroundClipField = () => {
7471
- return /* @__PURE__ */ React96.createElement(PropKeyProvider, { bind: "clip" }, /* @__PURE__ */ React96.createElement(import_ui79.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React96.createElement(import_ui79.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React96.createElement(ControlLabel, null, clipLabel)), /* @__PURE__ */ React96.createElement(import_ui79.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React96.createElement(SelectControl, { options: clipOptions }))));
8201
+ return /* @__PURE__ */ React96.createElement(PropKeyProvider, { bind: "clip" }, /* @__PURE__ */ React96.createElement(import_ui80.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React96.createElement(import_ui80.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React96.createElement(ControlLabel, null, clipLabel)), /* @__PURE__ */ React96.createElement(import_ui80.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React96.createElement(SelectControl, { options: clipOptions }))));
7472
8202
  };
7473
8203
 
7474
8204
  // src/controls/repeatable-control.tsx
7475
8205
  var React97 = __toESM(require("react"));
7476
8206
  var import_react58 = require("react");
7477
8207
  var import_editor_props43 = require("@elementor/editor-props");
7478
- var import_ui80 = require("@elementor/ui");
8208
+ var import_ui81 = require("@elementor/ui");
7479
8209
  var PLACEHOLDER_REGEX = /\$\{([^}]+)\}/g;
7480
8210
  var RepeatableControl = createControl(
7481
8211
  ({
@@ -7621,7 +8351,7 @@ var ItemLabel4 = ({ value }) => {
7621
8351
  const label = showPlaceholder ? placeholder : interpolate(patternLabel, value);
7622
8352
  const isReadOnly = !!childProps?.readOnly;
7623
8353
  const color = getTextColor(isReadOnly, showPlaceholder);
7624
- return /* @__PURE__ */ React97.createElement(import_ui80.Box, { component: "span", color }, label);
8354
+ return /* @__PURE__ */ React97.createElement(import_ui81.Box, { component: "span", color }, label);
7625
8355
  };
7626
8356
  var getAllProperties = (pattern) => {
7627
8357
  const properties = pattern.match(PLACEHOLDER_REGEX)?.map((match) => match.slice(2, -1)) || [];
@@ -7632,7 +8362,7 @@ var getAllProperties = (pattern) => {
7632
8362
  var React98 = __toESM(require("react"));
7633
8363
  var import_react59 = require("react");
7634
8364
  var import_editor_props44 = require("@elementor/editor-props");
7635
- var import_ui81 = require("@elementor/ui");
8365
+ var import_ui82 = require("@elementor/ui");
7636
8366
  var import_i18n46 = require("@wordpress/i18n");
7637
8367
 
7638
8368
  // src/utils/escape-html-attr.ts
@@ -7722,14 +8452,14 @@ var KeyValueControl = createControl((props = {}) => {
7722
8452
  });
7723
8453
  }
7724
8454
  };
7725
- return /* @__PURE__ */ React98.createElement(PropProvider, { ...propContext, value, setValue: handleChange }, /* @__PURE__ */ React98.createElement(import_ui81.Grid, { container: true, gap: 1.5 }, /* @__PURE__ */ React98.createElement(import_ui81.Grid, { item: true, xs: 12, display: "flex", flexDirection: "column" }, /* @__PURE__ */ React98.createElement(import_ui81.FormLabel, { size: "tiny", sx: { pb: 1 } }, keyLabel), /* @__PURE__ */ React98.createElement(PropKeyProvider, { bind: "key" }, /* @__PURE__ */ React98.createElement(
8455
+ return /* @__PURE__ */ React98.createElement(PropProvider, { ...propContext, value, setValue: handleChange }, /* @__PURE__ */ React98.createElement(import_ui82.Grid, { container: true, gap: 1.5 }, /* @__PURE__ */ React98.createElement(import_ui82.Grid, { item: true, xs: 12, display: "flex", flexDirection: "column" }, /* @__PURE__ */ React98.createElement(import_ui82.FormLabel, { size: "tiny", sx: { pb: 1 } }, keyLabel), /* @__PURE__ */ React98.createElement(PropKeyProvider, { bind: "key" }, /* @__PURE__ */ React98.createElement(
7726
8456
  TextControl,
7727
8457
  {
7728
8458
  inputValue: props.escapeHtml ? escapeHtmlAttr(sessionState.key) : sessionState.key,
7729
8459
  error: !!keyError,
7730
8460
  helperText: keyHelper
7731
8461
  }
7732
- )), !!keyError && /* @__PURE__ */ React98.createElement(import_ui81.FormHelperText, { error: true }, keyError)), /* @__PURE__ */ React98.createElement(import_ui81.Grid, { item: true, xs: 12, display: "flex", flexDirection: "column" }, /* @__PURE__ */ React98.createElement(import_ui81.FormLabel, { size: "tiny", sx: { pb: 1 } }, valueLabel), /* @__PURE__ */ React98.createElement(PropKeyProvider, { bind: "value" }, /* @__PURE__ */ React98.createElement(
8462
+ )), !!keyError && /* @__PURE__ */ React98.createElement(import_ui82.FormHelperText, { error: true }, keyError)), /* @__PURE__ */ React98.createElement(import_ui82.Grid, { item: true, xs: 12, display: "flex", flexDirection: "column" }, /* @__PURE__ */ React98.createElement(import_ui82.FormLabel, { size: "tiny", sx: { pb: 1 } }, valueLabel), /* @__PURE__ */ React98.createElement(PropKeyProvider, { bind: "value" }, /* @__PURE__ */ React98.createElement(
7733
8463
  TextControl,
7734
8464
  {
7735
8465
  inputValue: props.escapeHtml ? escapeHtmlAttr(sessionState.value) : sessionState.value,
@@ -7737,7 +8467,7 @@ var KeyValueControl = createControl((props = {}) => {
7737
8467
  inputDisabled: !!keyError,
7738
8468
  helperText: valueHelper
7739
8469
  }
7740
- )), !!valueError && /* @__PURE__ */ React98.createElement(import_ui81.FormHelperText, { error: true }, valueError))));
8470
+ )), !!valueError && /* @__PURE__ */ React98.createElement(import_ui82.FormHelperText, { error: true }, valueError))));
7741
8471
  });
7742
8472
 
7743
8473
  // src/controls/position-control.tsx
@@ -7745,7 +8475,7 @@ var React99 = __toESM(require("react"));
7745
8475
  var import_editor_props45 = require("@elementor/editor-props");
7746
8476
  var import_editor_ui13 = require("@elementor/editor-ui");
7747
8477
  var import_icons30 = require("@elementor/icons");
7748
- var import_ui82 = require("@elementor/ui");
8478
+ var import_ui83 = require("@elementor/ui");
7749
8479
  var import_i18n47 = require("@wordpress/i18n");
7750
8480
  var positionOptions = [
7751
8481
  { label: (0, import_i18n47.__)("Center center", "elementor"), value: "center center" },
@@ -7772,8 +8502,8 @@ var PositionControl = () => {
7772
8502
  stringPropContext.setValue(value);
7773
8503
  }
7774
8504
  };
7775
- return /* @__PURE__ */ React99.createElement(import_ui82.Grid, { container: true, spacing: 1.5 }, /* @__PURE__ */ React99.createElement(import_ui82.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React99.createElement(import_ui82.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React99.createElement(import_ui82.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React99.createElement(ControlFormLabel, null, (0, import_i18n47.__)("Object position", "elementor"))), /* @__PURE__ */ React99.createElement(import_ui82.Grid, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React99.createElement(
7776
- import_ui82.Select,
8505
+ return /* @__PURE__ */ React99.createElement(import_ui83.Grid, { container: true, spacing: 1.5 }, /* @__PURE__ */ React99.createElement(import_ui83.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React99.createElement(import_ui83.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React99.createElement(import_ui83.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React99.createElement(ControlFormLabel, null, (0, import_i18n47.__)("Object position", "elementor"))), /* @__PURE__ */ React99.createElement(import_ui83.Grid, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React99.createElement(
8506
+ import_ui83.Select,
7777
8507
  {
7778
8508
  size: "tiny",
7779
8509
  displayEmpty: true,
@@ -7784,13 +8514,13 @@ var PositionControl = () => {
7784
8514
  fullWidth: true
7785
8515
  },
7786
8516
  positionOptions.map(({ label, value }) => /* @__PURE__ */ React99.createElement(import_editor_ui13.MenuListItem, { key: value, value: value ?? "" }, label))
7787
- )))), isCustom && /* @__PURE__ */ React99.createElement(PropProvider, { ...positionContext }, /* @__PURE__ */ React99.createElement(import_ui82.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React99.createElement(import_ui82.Grid, { container: true, spacing: 1.5 }, /* @__PURE__ */ React99.createElement(import_ui82.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React99.createElement(PropKeyProvider, { bind: "x" }, /* @__PURE__ */ React99.createElement(
8517
+ )))), isCustom && /* @__PURE__ */ React99.createElement(PropProvider, { ...positionContext }, /* @__PURE__ */ React99.createElement(import_ui83.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React99.createElement(import_ui83.Grid, { container: true, spacing: 1.5 }, /* @__PURE__ */ React99.createElement(import_ui83.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React99.createElement(PropKeyProvider, { bind: "x" }, /* @__PURE__ */ React99.createElement(
7788
8518
  SizeControl,
7789
8519
  {
7790
8520
  startIcon: /* @__PURE__ */ React99.createElement(import_icons30.LetterXIcon, { fontSize: "tiny" }),
7791
8521
  min: -Number.MAX_SAFE_INTEGER
7792
8522
  }
7793
- ))), /* @__PURE__ */ React99.createElement(import_ui82.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React99.createElement(PropKeyProvider, { bind: "y" }, /* @__PURE__ */ React99.createElement(
8523
+ ))), /* @__PURE__ */ React99.createElement(import_ui83.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React99.createElement(PropKeyProvider, { bind: "y" }, /* @__PURE__ */ React99.createElement(
7794
8524
  SizeControl,
7795
8525
  {
7796
8526
  startIcon: /* @__PURE__ */ React99.createElement(import_icons30.LetterYIcon, { fontSize: "tiny" }),
@@ -7804,7 +8534,7 @@ var React112 = __toESM(require("react"));
7804
8534
  var import_react67 = require("react");
7805
8535
  var import_editor_props54 = require("@elementor/editor-props");
7806
8536
  var import_icons37 = require("@elementor/icons");
7807
- var import_ui95 = require("@elementor/ui");
8537
+ var import_ui96 = require("@elementor/ui");
7808
8538
  var import_i18n57 = require("@wordpress/i18n");
7809
8539
 
7810
8540
  // src/controls/transform-control/initial-values.ts
@@ -7855,7 +8585,7 @@ var initialSkewValue = import_editor_props46.skewTransformPropTypeUtil.create({
7855
8585
 
7856
8586
  // src/controls/transform-control/transform-content.tsx
7857
8587
  var React106 = __toESM(require("react"));
7858
- var import_ui90 = require("@elementor/ui");
8588
+ var import_ui91 = require("@elementor/ui");
7859
8589
  var import_i18n52 = require("@wordpress/i18n");
7860
8590
 
7861
8591
  // src/controls/transform-control/functions/move.tsx
@@ -7863,15 +8593,15 @@ var React101 = __toESM(require("react"));
7863
8593
  var import_react60 = require("react");
7864
8594
  var import_editor_props47 = require("@elementor/editor-props");
7865
8595
  var import_icons31 = require("@elementor/icons");
7866
- var import_ui84 = require("@elementor/ui");
8596
+ var import_ui85 = require("@elementor/ui");
7867
8597
  var import_i18n48 = require("@wordpress/i18n");
7868
8598
 
7869
8599
  // src/controls/transform-control/functions/axis-row.tsx
7870
8600
  var React100 = __toESM(require("react"));
7871
- var import_ui83 = require("@elementor/ui");
8601
+ var import_ui84 = require("@elementor/ui");
7872
8602
  var AxisRow = ({ label, bind, startIcon, anchorRef, units: units2, variant = "angle" }) => {
7873
8603
  const safeId = label.replace(/\s+/g, "-").toLowerCase();
7874
- return /* @__PURE__ */ React100.createElement(import_ui83.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React100.createElement(PopoverGridContainer, { ref: anchorRef }, /* @__PURE__ */ React100.createElement(import_ui83.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React100.createElement(ControlLabel, { htmlFor: safeId }, label)), /* @__PURE__ */ React100.createElement(import_ui83.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React100.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React100.createElement(
8604
+ return /* @__PURE__ */ React100.createElement(import_ui84.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React100.createElement(PopoverGridContainer, { ref: anchorRef }, /* @__PURE__ */ React100.createElement(import_ui84.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React100.createElement(ControlLabel, { htmlFor: safeId }, label)), /* @__PURE__ */ React100.createElement(import_ui84.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React100.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React100.createElement(
7875
8605
  SizeControl,
7876
8606
  {
7877
8607
  anchorRef,
@@ -7908,7 +8638,7 @@ var moveAxisControls = [
7908
8638
  var Move = () => {
7909
8639
  const context = useBoundProp(import_editor_props47.moveTransformPropTypeUtil);
7910
8640
  const rowRefs = [(0, import_react60.useRef)(null), (0, import_react60.useRef)(null), (0, import_react60.useRef)(null)];
7911
- return /* @__PURE__ */ React101.createElement(import_ui84.Grid, { container: true, spacing: 1.5 }, /* @__PURE__ */ React101.createElement(PropProvider, { ...context }, /* @__PURE__ */ React101.createElement(PropKeyProvider, { bind: TransformFunctionKeys.move }, moveAxisControls.map((control, index) => /* @__PURE__ */ React101.createElement(
8641
+ return /* @__PURE__ */ React101.createElement(import_ui85.Grid, { container: true, spacing: 1.5 }, /* @__PURE__ */ React101.createElement(PropProvider, { ...context }, /* @__PURE__ */ React101.createElement(PropKeyProvider, { bind: TransformFunctionKeys.move }, moveAxisControls.map((control, index) => /* @__PURE__ */ React101.createElement(
7912
8642
  AxisRow,
7913
8643
  {
7914
8644
  key: control.bind,
@@ -7925,7 +8655,7 @@ var React102 = __toESM(require("react"));
7925
8655
  var import_react61 = require("react");
7926
8656
  var import_editor_props48 = require("@elementor/editor-props");
7927
8657
  var import_icons32 = require("@elementor/icons");
7928
- var import_ui85 = require("@elementor/ui");
8658
+ var import_ui86 = require("@elementor/ui");
7929
8659
  var import_i18n49 = require("@wordpress/i18n");
7930
8660
  var rotateAxisControls = [
7931
8661
  {
@@ -7948,7 +8678,7 @@ var rotateUnits = ["deg", "rad", "grad", "turn"];
7948
8678
  var Rotate = () => {
7949
8679
  const context = useBoundProp(import_editor_props48.rotateTransformPropTypeUtil);
7950
8680
  const rowRefs = [(0, import_react61.useRef)(null), (0, import_react61.useRef)(null), (0, import_react61.useRef)(null)];
7951
- return /* @__PURE__ */ React102.createElement(import_ui85.Grid, { container: true, spacing: 1.5 }, /* @__PURE__ */ React102.createElement(PropProvider, { ...context }, /* @__PURE__ */ React102.createElement(PropKeyProvider, { bind: TransformFunctionKeys.rotate }, rotateAxisControls.map((control, index) => /* @__PURE__ */ React102.createElement(
8681
+ return /* @__PURE__ */ React102.createElement(import_ui86.Grid, { container: true, spacing: 1.5 }, /* @__PURE__ */ React102.createElement(PropProvider, { ...context }, /* @__PURE__ */ React102.createElement(PropKeyProvider, { bind: TransformFunctionKeys.rotate }, rotateAxisControls.map((control, index) => /* @__PURE__ */ React102.createElement(
7952
8682
  AxisRow,
7953
8683
  {
7954
8684
  key: control.bind,
@@ -7964,14 +8694,14 @@ var React104 = __toESM(require("react"));
7964
8694
  var import_react62 = require("react");
7965
8695
  var import_editor_props49 = require("@elementor/editor-props");
7966
8696
  var import_icons33 = require("@elementor/icons");
7967
- var import_ui87 = require("@elementor/ui");
8697
+ var import_ui88 = require("@elementor/ui");
7968
8698
  var import_i18n50 = require("@wordpress/i18n");
7969
8699
 
7970
8700
  // src/controls/transform-control/functions/scale-axis-row.tsx
7971
8701
  var React103 = __toESM(require("react"));
7972
- var import_ui86 = require("@elementor/ui");
8702
+ var import_ui87 = require("@elementor/ui");
7973
8703
  var ScaleAxisRow = ({ label, bind, startIcon, anchorRef }) => {
7974
- return /* @__PURE__ */ React103.createElement(import_ui86.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React103.createElement(PopoverGridContainer, { ref: anchorRef }, /* @__PURE__ */ React103.createElement(import_ui86.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React103.createElement(ControlLabel, null, label)), /* @__PURE__ */ React103.createElement(import_ui86.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React103.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React103.createElement(NumberControl, { step: 0.1, placeholder: "1", startIcon })))));
8704
+ return /* @__PURE__ */ React103.createElement(import_ui87.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React103.createElement(PopoverGridContainer, { ref: anchorRef }, /* @__PURE__ */ React103.createElement(import_ui87.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React103.createElement(ControlLabel, null, label)), /* @__PURE__ */ React103.createElement(import_ui87.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React103.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React103.createElement(NumberControl, { step: 0.1, placeholder: "1", startIcon })))));
7975
8705
  };
7976
8706
 
7977
8707
  // src/controls/transform-control/functions/scale.tsx
@@ -7995,7 +8725,7 @@ var scaleAxisControls = [
7995
8725
  var Scale = () => {
7996
8726
  const context = useBoundProp(import_editor_props49.scaleTransformPropTypeUtil);
7997
8727
  const rowRefs = [(0, import_react62.useRef)(null), (0, import_react62.useRef)(null), (0, import_react62.useRef)(null)];
7998
- return /* @__PURE__ */ React104.createElement(import_ui87.Grid, { 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] })))));
8728
+ return /* @__PURE__ */ React104.createElement(import_ui88.Grid, { 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] })))));
7999
8729
  };
8000
8730
 
8001
8731
  // src/controls/transform-control/functions/skew.tsx
@@ -8003,7 +8733,7 @@ var React105 = __toESM(require("react"));
8003
8733
  var import_react63 = require("react");
8004
8734
  var import_editor_props50 = require("@elementor/editor-props");
8005
8735
  var import_icons34 = require("@elementor/icons");
8006
- var import_ui88 = require("@elementor/ui");
8736
+ var import_ui89 = require("@elementor/ui");
8007
8737
  var import_i18n51 = require("@wordpress/i18n");
8008
8738
  var skewAxisControls = [
8009
8739
  {
@@ -8021,7 +8751,7 @@ var skewUnits = ["deg", "rad", "grad", "turn"];
8021
8751
  var Skew = () => {
8022
8752
  const context = useBoundProp(import_editor_props50.skewTransformPropTypeUtil);
8023
8753
  const rowRefs = [(0, import_react63.useRef)(null), (0, import_react63.useRef)(null), (0, import_react63.useRef)(null)];
8024
- return /* @__PURE__ */ React105.createElement(import_ui88.Grid, { container: true, spacing: 1.5 }, /* @__PURE__ */ React105.createElement(PropProvider, { ...context }, /* @__PURE__ */ React105.createElement(PropKeyProvider, { bind: TransformFunctionKeys.skew }, skewAxisControls.map((control, index) => /* @__PURE__ */ React105.createElement(
8754
+ return /* @__PURE__ */ React105.createElement(import_ui89.Grid, { container: true, spacing: 1.5 }, /* @__PURE__ */ React105.createElement(PropProvider, { ...context }, /* @__PURE__ */ React105.createElement(PropKeyProvider, { bind: TransformFunctionKeys.skew }, skewAxisControls.map((control, index) => /* @__PURE__ */ React105.createElement(
8025
8755
  AxisRow,
8026
8756
  {
8027
8757
  key: control.bind,
@@ -8035,7 +8765,7 @@ var Skew = () => {
8035
8765
  // src/controls/transform-control/use-transform-tabs-history.tsx
8036
8766
  var import_react64 = require("react");
8037
8767
  var import_editor_props51 = require("@elementor/editor-props");
8038
- var import_ui89 = require("@elementor/ui");
8768
+ var import_ui90 = require("@elementor/ui");
8039
8769
  var useTransformTabsHistory = ({
8040
8770
  move: initialMove,
8041
8771
  scale: initialScale,
@@ -8059,7 +8789,7 @@ var useTransformTabsHistory = ({
8059
8789
  return TransformFunctionKeys.move;
8060
8790
  }
8061
8791
  };
8062
- const { getTabsProps, getTabProps, getTabPanelProps } = (0, import_ui89.useTabs)(getCurrentTransformType());
8792
+ const { getTabsProps, getTabProps, getTabPanelProps } = (0, import_ui90.useTabs)(getCurrentTransformType());
8063
8793
  const valuesHistory = (0, import_react64.useRef)({
8064
8794
  move: initialMove,
8065
8795
  scale: initialScale,
@@ -8121,8 +8851,8 @@ var TransformContent = () => {
8121
8851
  rotate: initialRotateValue.value,
8122
8852
  skew: initialSkewValue.value
8123
8853
  });
8124
- return /* @__PURE__ */ React106.createElement(PopoverContent, null, /* @__PURE__ */ React106.createElement(import_ui90.Box, { sx: { width: "100%" } }, /* @__PURE__ */ React106.createElement(import_ui90.Box, { sx: { borderBottom: 1, borderColor: "divider" } }, /* @__PURE__ */ React106.createElement(
8125
- import_ui90.Tabs,
8854
+ return /* @__PURE__ */ React106.createElement(PopoverContent, null, /* @__PURE__ */ React106.createElement(import_ui91.Box, { sx: { width: "100%" } }, /* @__PURE__ */ React106.createElement(import_ui91.Box, { sx: { borderBottom: 1, borderColor: "divider" } }, /* @__PURE__ */ React106.createElement(
8855
+ import_ui91.Tabs,
8126
8856
  {
8127
8857
  size: "small",
8128
8858
  variant: "fullWidth",
@@ -8134,11 +8864,11 @@ var TransformContent = () => {
8134
8864
  ...getTabsProps(),
8135
8865
  "aria-label": (0, import_i18n52.__)("Transform", "elementor")
8136
8866
  },
8137
- /* @__PURE__ */ React106.createElement(import_ui90.Tab, { label: (0, import_i18n52.__)("Move", "elementor"), ...getTabProps(TransformFunctionKeys.move) }),
8138
- /* @__PURE__ */ React106.createElement(import_ui90.Tab, { label: (0, import_i18n52.__)("Scale", "elementor"), ...getTabProps(TransformFunctionKeys.scale) }),
8139
- /* @__PURE__ */ React106.createElement(import_ui90.Tab, { label: (0, import_i18n52.__)("Rotate", "elementor"), ...getTabProps(TransformFunctionKeys.rotate) }),
8140
- /* @__PURE__ */ React106.createElement(import_ui90.Tab, { label: (0, import_i18n52.__)("Skew", "elementor"), ...getTabProps(TransformFunctionKeys.skew) })
8141
- )), /* @__PURE__ */ React106.createElement(import_ui90.TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps(TransformFunctionKeys.move) }, /* @__PURE__ */ React106.createElement(Move, null)), /* @__PURE__ */ React106.createElement(import_ui90.TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps(TransformFunctionKeys.scale) }, /* @__PURE__ */ React106.createElement(Scale, null)), /* @__PURE__ */ React106.createElement(import_ui90.TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps(TransformFunctionKeys.rotate) }, /* @__PURE__ */ React106.createElement(Rotate, null)), /* @__PURE__ */ React106.createElement(import_ui90.TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps(TransformFunctionKeys.skew) }, /* @__PURE__ */ React106.createElement(Skew, null))));
8867
+ /* @__PURE__ */ React106.createElement(import_ui91.Tab, { label: (0, import_i18n52.__)("Move", "elementor"), ...getTabProps(TransformFunctionKeys.move) }),
8868
+ /* @__PURE__ */ React106.createElement(import_ui91.Tab, { label: (0, import_i18n52.__)("Scale", "elementor"), ...getTabProps(TransformFunctionKeys.scale) }),
8869
+ /* @__PURE__ */ React106.createElement(import_ui91.Tab, { label: (0, import_i18n52.__)("Rotate", "elementor"), ...getTabProps(TransformFunctionKeys.rotate) }),
8870
+ /* @__PURE__ */ React106.createElement(import_ui91.Tab, { label: (0, import_i18n52.__)("Skew", "elementor"), ...getTabProps(TransformFunctionKeys.skew) })
8871
+ )), /* @__PURE__ */ React106.createElement(import_ui91.TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps(TransformFunctionKeys.move) }, /* @__PURE__ */ React106.createElement(Move, null)), /* @__PURE__ */ React106.createElement(import_ui91.TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps(TransformFunctionKeys.scale) }, /* @__PURE__ */ React106.createElement(Scale, null)), /* @__PURE__ */ React106.createElement(import_ui91.TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps(TransformFunctionKeys.rotate) }, /* @__PURE__ */ React106.createElement(Rotate, null)), /* @__PURE__ */ React106.createElement(import_ui91.TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps(TransformFunctionKeys.skew) }, /* @__PURE__ */ React106.createElement(Skew, null))));
8142
8872
  };
8143
8873
 
8144
8874
  // src/controls/transform-control/transform-icon.tsx
@@ -8161,7 +8891,7 @@ var TransformIcon = ({ value }) => {
8161
8891
 
8162
8892
  // src/controls/transform-control/transform-label.tsx
8163
8893
  var React108 = __toESM(require("react"));
8164
- var import_ui91 = require("@elementor/ui");
8894
+ var import_ui92 = require("@elementor/ui");
8165
8895
  var import_i18n53 = require("@wordpress/i18n");
8166
8896
  var orderedAxis = ["x", "y", "z"];
8167
8897
  var formatLabel = (value, functionType) => {
@@ -8192,21 +8922,21 @@ var TransformLabel = (props) => {
8192
8922
  }
8193
8923
  };
8194
8924
  var Label2 = ({ label, value }) => {
8195
- return /* @__PURE__ */ React108.createElement(import_ui91.Box, { component: "span" }, label, ": ", value);
8925
+ return /* @__PURE__ */ React108.createElement(import_ui92.Box, { component: "span" }, label, ": ", value);
8196
8926
  };
8197
8927
 
8198
8928
  // src/controls/transform-control/transform-settings-control.tsx
8199
8929
  var React111 = __toESM(require("react"));
8200
8930
  var import_editor_ui14 = require("@elementor/editor-ui");
8201
8931
  var import_icons36 = require("@elementor/icons");
8202
- var import_ui94 = require("@elementor/ui");
8932
+ var import_ui95 = require("@elementor/ui");
8203
8933
  var import_i18n56 = require("@wordpress/i18n");
8204
8934
 
8205
8935
  // src/controls/transform-control/transform-base-controls/children-perspective-control.tsx
8206
8936
  var React109 = __toESM(require("react"));
8207
8937
  var import_react65 = require("react");
8208
8938
  var import_editor_props52 = require("@elementor/editor-props");
8209
- var import_ui92 = require("@elementor/ui");
8939
+ var import_ui93 = require("@elementor/ui");
8210
8940
  var import_i18n54 = require("@wordpress/i18n");
8211
8941
  var ORIGIN_UNITS = ["px", "%", "em", "rem"];
8212
8942
  var PERSPECTIVE_CONTROL_FIELD = {
@@ -8227,7 +8957,7 @@ var CHILDREN_PERSPECTIVE_FIELDS = [
8227
8957
  }
8228
8958
  ];
8229
8959
  var ChildrenPerspectiveControl = () => {
8230
- return /* @__PURE__ */ React109.createElement(import_ui92.Stack, { direction: "column", spacing: 1.5 }, /* @__PURE__ */ React109.createElement(ControlFormLabel, null, (0, import_i18n54.__)("Children perspective", "elementor")), /* @__PURE__ */ React109.createElement(PerspectiveControl, null), /* @__PURE__ */ React109.createElement(PerspectiveOriginControl, null));
8960
+ return /* @__PURE__ */ React109.createElement(import_ui93.Stack, { direction: "column", spacing: 1.5 }, /* @__PURE__ */ React109.createElement(ControlFormLabel, null, (0, import_i18n54.__)("Children perspective", "elementor")), /* @__PURE__ */ React109.createElement(PerspectiveControl, null), /* @__PURE__ */ React109.createElement(PerspectiveOriginControl, null));
8231
8961
  };
8232
8962
  var PerspectiveControl = () => /* @__PURE__ */ React109.createElement(PropKeyProvider, { bind: "perspective" }, /* @__PURE__ */ React109.createElement(ControlFields, { control: PERSPECTIVE_CONTROL_FIELD, key: PERSPECTIVE_CONTROL_FIELD.bind }));
8233
8963
  var PerspectiveOriginControl = () => /* @__PURE__ */ React109.createElement(PropKeyProvider, { bind: "perspective-origin" }, /* @__PURE__ */ React109.createElement(PerspectiveOriginControlProvider, null));
@@ -8237,14 +8967,14 @@ var PerspectiveOriginControlProvider = () => {
8237
8967
  };
8238
8968
  var ControlFields = ({ control }) => {
8239
8969
  const rowRef = (0, import_react65.useRef)(null);
8240
- return /* @__PURE__ */ React109.createElement(PopoverGridContainer, { ref: rowRef }, /* @__PURE__ */ React109.createElement(import_ui92.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React109.createElement(ControlFormLabel, null, control.label)), /* @__PURE__ */ React109.createElement(import_ui92.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React109.createElement(SizeControl, { variant: "length", units: control.units, anchorRef: rowRef, disableCustom: true })));
8970
+ return /* @__PURE__ */ React109.createElement(PopoverGridContainer, { ref: rowRef }, /* @__PURE__ */ React109.createElement(import_ui93.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React109.createElement(ControlFormLabel, null, control.label)), /* @__PURE__ */ React109.createElement(import_ui93.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React109.createElement(SizeControl, { variant: "length", units: control.units, anchorRef: rowRef, disableCustom: true })));
8241
8971
  };
8242
8972
 
8243
8973
  // src/controls/transform-control/transform-base-controls/transform-origin-control.tsx
8244
8974
  var React110 = __toESM(require("react"));
8245
8975
  var import_react66 = require("react");
8246
8976
  var import_editor_props53 = require("@elementor/editor-props");
8247
- var import_ui93 = require("@elementor/ui");
8977
+ var import_ui94 = require("@elementor/ui");
8248
8978
  var import_i18n55 = require("@wordpress/i18n");
8249
8979
  var TRANSFORM_ORIGIN_UNITS = ["px", "%", "em", "rem"];
8250
8980
  var TRANSFORM_ORIGIN_UNITS_Z_AXIS = TRANSFORM_ORIGIN_UNITS.filter((unit) => unit !== "%");
@@ -8266,12 +8996,12 @@ var TRANSFORM_ORIGIN_FIELDS = [
8266
8996
  }
8267
8997
  ];
8268
8998
  var TransformOriginControl = () => {
8269
- return /* @__PURE__ */ React110.createElement(import_ui93.Stack, { direction: "column", spacing: 1.5 }, /* @__PURE__ */ React110.createElement(ControlFormLabel, null, (0, import_i18n55.__)("Transform", "elementor")), TRANSFORM_ORIGIN_FIELDS.map((control) => /* @__PURE__ */ React110.createElement(ControlFields2, { control, key: control.bind })));
8999
+ return /* @__PURE__ */ React110.createElement(import_ui94.Stack, { direction: "column", spacing: 1.5 }, /* @__PURE__ */ React110.createElement(ControlFormLabel, null, (0, import_i18n55.__)("Transform", "elementor")), TRANSFORM_ORIGIN_FIELDS.map((control) => /* @__PURE__ */ React110.createElement(ControlFields2, { control, key: control.bind })));
8270
9000
  };
8271
9001
  var ControlFields2 = ({ control }) => {
8272
9002
  const context = useBoundProp(import_editor_props53.transformOriginPropTypeUtil);
8273
9003
  const rowRef = (0, import_react66.useRef)(null);
8274
- return /* @__PURE__ */ React110.createElement(PropProvider, { ...context }, /* @__PURE__ */ React110.createElement(PropKeyProvider, { bind: control.bind }, /* @__PURE__ */ React110.createElement(PopoverGridContainer, { ref: rowRef }, /* @__PURE__ */ React110.createElement(import_ui93.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React110.createElement(ControlFormLabel, null, control.label)), /* @__PURE__ */ React110.createElement(import_ui93.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React110.createElement(SizeControl, { variant: "length", units: control.units, anchorRef: rowRef })))));
9004
+ return /* @__PURE__ */ React110.createElement(PropProvider, { ...context }, /* @__PURE__ */ React110.createElement(PropKeyProvider, { bind: control.bind }, /* @__PURE__ */ React110.createElement(PopoverGridContainer, { ref: rowRef }, /* @__PURE__ */ React110.createElement(import_ui94.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React110.createElement(ControlFormLabel, null, control.label)), /* @__PURE__ */ React110.createElement(import_ui94.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React110.createElement(SizeControl, { variant: "length", units: control.units, anchorRef: rowRef })))));
8275
9005
  };
8276
9006
 
8277
9007
  // src/controls/transform-control/transform-settings-control.tsx
@@ -8281,12 +9011,12 @@ var TransformSettingsControl = ({
8281
9011
  anchorRef,
8282
9012
  showChildrenPerspective
8283
9013
  }) => {
8284
- const popupProps = (0, import_ui94.bindPopover)({
9014
+ const popupProps = (0, import_ui95.bindPopover)({
8285
9015
  ...popupState,
8286
9016
  anchorEl: anchorRef.current ?? void 0
8287
9017
  });
8288
9018
  return /* @__PURE__ */ React111.createElement(
8289
- import_ui94.Popover,
9019
+ import_ui95.Popover,
8290
9020
  {
8291
9021
  disablePortal: true,
8292
9022
  anchorOrigin: { vertical: "bottom", horizontal: "left" },
@@ -8308,8 +9038,8 @@ var TransformSettingsControl = ({
8308
9038
  icon: /* @__PURE__ */ React111.createElement(import_icons36.AdjustmentsIcon, { fontSize: SIZE10 })
8309
9039
  }
8310
9040
  ),
8311
- /* @__PURE__ */ React111.createElement(import_ui94.Divider, null),
8312
- /* @__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(import_ui94.Box, { sx: { my: 0.5 } }, /* @__PURE__ */ React111.createElement(import_ui94.Divider, null)), /* @__PURE__ */ React111.createElement(ChildrenPerspectiveControl, null)))
9041
+ /* @__PURE__ */ React111.createElement(import_ui95.Divider, null),
9042
+ /* @__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(import_ui95.Box, { sx: { my: 0.5 } }, /* @__PURE__ */ React111.createElement(import_ui95.Divider, null)), /* @__PURE__ */ React111.createElement(ChildrenPerspectiveControl, null)))
8313
9043
  );
8314
9044
  };
8315
9045
 
@@ -8319,7 +9049,7 @@ var TransformRepeaterControl = createControl(
8319
9049
  ({ showChildrenPerspective }) => {
8320
9050
  const context = useBoundProp(import_editor_props54.transformPropTypeUtil);
8321
9051
  const headerRef = (0, import_react67.useRef)(null);
8322
- const popupState = (0, import_ui95.usePopupState)({ variant: "popover" });
9052
+ const popupState = (0, import_ui96.usePopupState)({ variant: "popover" });
8323
9053
  return /* @__PURE__ */ React112.createElement(PropProvider, { ...context }, /* @__PURE__ */ React112.createElement(
8324
9054
  TransformSettingsControl,
8325
9055
  {
@@ -8331,14 +9061,14 @@ var TransformRepeaterControl = createControl(
8331
9061
  }
8332
9062
  );
8333
9063
  var ToolTip = /* @__PURE__ */ React112.createElement(
8334
- import_ui95.Box,
9064
+ import_ui96.Box,
8335
9065
  {
8336
9066
  component: "span",
8337
9067
  "aria-label": void 0,
8338
9068
  sx: { display: "flex", gap: 0.5, p: 2, width: 320, borderRadius: 1 }
8339
9069
  },
8340
9070
  /* @__PURE__ */ React112.createElement(import_icons37.InfoCircleFilledIcon, { sx: { color: "secondary.main" } }),
8341
- /* @__PURE__ */ React112.createElement(import_ui95.Typography, { variant: "body2", color: "text.secondary", fontSize: "14px" }, (0, import_i18n57.__)("You can use each kind of transform only once per element.", "elementor"))
9071
+ /* @__PURE__ */ React112.createElement(import_ui96.Typography, { variant: "body2", color: "text.secondary", fontSize: "14px" }, (0, import_i18n57.__)("You can use each kind of transform only once per element.", "elementor"))
8342
9072
  );
8343
9073
  var Repeater2 = ({
8344
9074
  headerRef,
@@ -8393,7 +9123,7 @@ var TransformBasePopoverTrigger = ({
8393
9123
  }) => {
8394
9124
  const { bind } = useBoundProp();
8395
9125
  const titleLabel = (0, import_i18n57.__)("Transform settings", "elementor");
8396
- return bind !== repeaterBindKey ? null : /* @__PURE__ */ React112.createElement(import_ui95.Tooltip, { title: titleLabel, placement: "top" }, /* @__PURE__ */ React112.createElement(import_ui95.IconButton, { size: SIZE11, "aria-label": titleLabel, ...(0, import_ui95.bindTrigger)(popupState) }, /* @__PURE__ */ React112.createElement(import_icons37.AdjustmentsIcon, { fontSize: SIZE11 })));
9126
+ return bind !== repeaterBindKey ? null : /* @__PURE__ */ React112.createElement(import_ui96.Tooltip, { title: titleLabel, placement: "top" }, /* @__PURE__ */ React112.createElement(import_ui96.IconButton, { size: SIZE11, "aria-label": titleLabel, ...(0, import_ui96.bindTrigger)(popupState) }, /* @__PURE__ */ React112.createElement(import_icons37.AdjustmentsIcon, { fontSize: SIZE11 })));
8397
9127
  };
8398
9128
 
8399
9129
  // src/controls/transition-control/transition-repeater-control.tsx
@@ -8401,7 +9131,7 @@ var React115 = __toESM(require("react"));
8401
9131
  var import_react70 = require("react");
8402
9132
  var import_editor_props57 = require("@elementor/editor-props");
8403
9133
  var import_icons39 = require("@elementor/icons");
8404
- var import_ui98 = require("@elementor/ui");
9134
+ var import_ui99 = require("@elementor/ui");
8405
9135
  var import_utils8 = require("@elementor/utils");
8406
9136
  var import_i18n60 = require("@wordpress/i18n");
8407
9137
 
@@ -8409,7 +9139,7 @@ var import_i18n60 = require("@wordpress/i18n");
8409
9139
  var React113 = __toESM(require("react"));
8410
9140
  var import_react68 = require("react");
8411
9141
  var import_editor_props55 = require("@elementor/editor-props");
8412
- var import_ui96 = require("@elementor/ui");
9142
+ var import_ui97 = require("@elementor/ui");
8413
9143
  var SelectionSizeControl = createControl(
8414
9144
  ({ selectionLabel, sizeLabel, selectionConfig, sizeConfigMap }) => {
8415
9145
  const { value, setValue, propType } = useBoundProp(import_editor_props55.selectionSizePropTypeUtil);
@@ -8426,7 +9156,7 @@ var SelectionSizeControl = createControl(
8426
9156
  }
8427
9157
  }, [value, sizeConfigMap]);
8428
9158
  const SelectionComponent = selectionConfig.component;
8429
- return /* @__PURE__ */ React113.createElement(PropProvider, { value, setValue, propType }, /* @__PURE__ */ React113.createElement(import_ui96.Grid, { container: true, spacing: 1.5, ref: rowRef }, /* @__PURE__ */ React113.createElement(import_ui96.Grid, { item: true, xs: 6, sx: { display: "flex", alignItems: "center" } }, /* @__PURE__ */ React113.createElement(ControlFormLabel, null, selectionLabel)), /* @__PURE__ */ React113.createElement(import_ui96.Grid, { 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(import_ui96.Grid, { item: true, xs: 6, sx: { display: "flex", alignItems: "center" } }, /* @__PURE__ */ React113.createElement(ControlFormLabel, { htmlFor: sizeFieldId }, sizeLabel)), /* @__PURE__ */ React113.createElement(import_ui96.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React113.createElement(PropKeyProvider, { bind: "size" }, /* @__PURE__ */ React113.createElement(
9159
+ return /* @__PURE__ */ React113.createElement(PropProvider, { value, setValue, propType }, /* @__PURE__ */ React113.createElement(import_ui97.Grid, { container: true, spacing: 1.5, ref: rowRef }, /* @__PURE__ */ React113.createElement(import_ui97.Grid, { item: true, xs: 6, sx: { display: "flex", alignItems: "center" } }, /* @__PURE__ */ React113.createElement(ControlFormLabel, null, selectionLabel)), /* @__PURE__ */ React113.createElement(import_ui97.Grid, { 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(import_ui97.Grid, { item: true, xs: 6, sx: { display: "flex", alignItems: "center" } }, /* @__PURE__ */ React113.createElement(ControlFormLabel, { htmlFor: sizeFieldId }, sizeLabel)), /* @__PURE__ */ React113.createElement(import_ui97.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React113.createElement(PropKeyProvider, { bind: "size" }, /* @__PURE__ */ React113.createElement(
8430
9160
  SizeControl,
8431
9161
  {
8432
9162
  anchorRef: rowRef,
@@ -8632,7 +9362,7 @@ var import_react69 = require("react");
8632
9362
  var import_editor_props56 = require("@elementor/editor-props");
8633
9363
  var import_editor_ui15 = require("@elementor/editor-ui");
8634
9364
  var import_icons38 = require("@elementor/icons");
8635
- var import_ui97 = require("@elementor/ui");
9365
+ var import_ui98 = require("@elementor/ui");
8636
9366
  var import_i18n59 = require("@wordpress/i18n");
8637
9367
 
8638
9368
  // src/utils/tracking.ts
@@ -8715,7 +9445,7 @@ var TransitionSelector = ({
8715
9445
  key: { value: transitionLabel }
8716
9446
  } = value;
8717
9447
  const defaultRef = (0, import_react69.useRef)(null);
8718
- const popoverState = (0, import_ui97.usePopupState)({ variant: "popover" });
9448
+ const popoverState = (0, import_ui98.usePopupState)({ variant: "popover" });
8719
9449
  const disabledCategories = (0, import_react69.useMemo)(() => {
8720
9450
  return new Set(
8721
9451
  transitionProperties.filter((cat) => cat.properties.some((prop) => prop.isDisabled)).map((cat) => cat.label)
@@ -8760,21 +9490,21 @@ var TransitionSelector = ({
8760
9490
  left: rect.right + 36
8761
9491
  };
8762
9492
  };
8763
- return /* @__PURE__ */ React114.createElement(import_ui97.Box, { ref: defaultRef }, /* @__PURE__ */ React114.createElement(ControlActions, null, /* @__PURE__ */ React114.createElement(
8764
- import_ui97.UnstableTag,
9493
+ return /* @__PURE__ */ React114.createElement(import_ui98.Box, { ref: defaultRef }, /* @__PURE__ */ React114.createElement(ControlActions, null, /* @__PURE__ */ React114.createElement(
9494
+ import_ui98.UnstableTag,
8765
9495
  {
8766
9496
  variant: "outlined",
8767
9497
  label: transitionLabel,
8768
9498
  endIcon: /* @__PURE__ */ React114.createElement(import_icons38.ChevronDownIcon, { fontSize: "tiny" }),
8769
- ...(0, import_ui97.bindTrigger)(popoverState),
9499
+ ...(0, import_ui98.bindTrigger)(popoverState),
8770
9500
  fullWidth: true
8771
9501
  }
8772
9502
  )), /* @__PURE__ */ React114.createElement(
8773
- import_ui97.Popover,
9503
+ import_ui98.Popover,
8774
9504
  {
8775
9505
  disablePortal: true,
8776
9506
  disableScrollLock: true,
8777
- ...(0, import_ui97.bindPopover)(popoverState),
9507
+ ...(0, import_ui98.bindPopover)(popoverState),
8778
9508
  anchorReference: "anchorPosition",
8779
9509
  anchorPosition: getAnchorPosition(),
8780
9510
  anchorOrigin: { vertical: "top", horizontal: "right" },
@@ -8792,7 +9522,7 @@ var TransitionSelector = ({
8792
9522
  icon: import_icons38.VariationsIcon,
8793
9523
  disabledItems: includeCurrentValueInOptions(value, disabledItems),
8794
9524
  categoryItemContentTemplate: (item) => /* @__PURE__ */ React114.createElement(
8795
- import_ui97.Box,
9525
+ import_ui98.Box,
8796
9526
  {
8797
9527
  sx: {
8798
9528
  display: "flex",
@@ -8924,7 +9654,7 @@ var getInitialValue = (values = []) => {
8924
9654
  return initialTransitionValue;
8925
9655
  };
8926
9656
  var disableAddItemTooltipContent = /* @__PURE__ */ React115.createElement(
8927
- import_ui98.Alert,
9657
+ import_ui99.Alert,
8928
9658
  {
8929
9659
  sx: {
8930
9660
  width: 280,
@@ -8933,8 +9663,8 @@ var disableAddItemTooltipContent = /* @__PURE__ */ React115.createElement(
8933
9663
  color: "secondary",
8934
9664
  icon: /* @__PURE__ */ React115.createElement(import_icons39.InfoCircleFilledIcon, null)
8935
9665
  },
8936
- /* @__PURE__ */ React115.createElement(import_ui98.AlertTitle, null, (0, import_i18n60.__)("Transitions", "elementor")),
8937
- /* @__PURE__ */ React115.createElement(import_ui98.Box, { component: "span" }, /* @__PURE__ */ React115.createElement(import_ui98.Typography, { variant: "body2" }, (0, import_i18n60.__)("Switch to 'Normal' state to add a transition.", "elementor")))
9666
+ /* @__PURE__ */ React115.createElement(import_ui99.AlertTitle, null, (0, import_i18n60.__)("Transitions", "elementor")),
9667
+ /* @__PURE__ */ React115.createElement(import_ui99.Box, { component: "span" }, /* @__PURE__ */ React115.createElement(import_ui99.Typography, { variant: "body2" }, (0, import_i18n60.__)("Switch to 'Normal' state to add a transition.", "elementor")))
8938
9668
  );
8939
9669
  var TransitionRepeaterControl = createControl(
8940
9670
  ({
@@ -9008,7 +9738,7 @@ var React116 = __toESM(require("react"));
9008
9738
  var dayjs = __toESM(require("dayjs"));
9009
9739
  var import_editor_props58 = require("@elementor/editor-props");
9010
9740
  var import_editor_props59 = require("@elementor/editor-props");
9011
- var import_ui99 = require("@elementor/ui");
9741
+ var import_ui100 = require("@elementor/ui");
9012
9742
  var DATE_FORMAT = "YYYY-MM-DD";
9013
9743
  var TIME_FORMAT = "HH:mm";
9014
9744
  var DateTimeControl = createControl(({ inputDisabled }) => {
@@ -9052,8 +9782,8 @@ var DateTimeControl = createControl(({ inputDisabled }) => {
9052
9782
  const base = dayjs.default();
9053
9783
  return base.hour(h).minute(m).second(0).millisecond(0);
9054
9784
  };
9055
- return /* @__PURE__ */ React116.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React116.createElement(ControlActions, null, /* @__PURE__ */ React116.createElement(import_ui99.LocalizationProvider, null, /* @__PURE__ */ React116.createElement(import_ui99.Box, { display: "flex", gap: 1, alignItems: "center" }, /* @__PURE__ */ React116.createElement(PropKeyProvider, { bind: "date" }, /* @__PURE__ */ React116.createElement(
9056
- import_ui99.DatePicker,
9785
+ return /* @__PURE__ */ React116.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React116.createElement(ControlActions, null, /* @__PURE__ */ React116.createElement(import_ui100.LocalizationProvider, null, /* @__PURE__ */ React116.createElement(import_ui100.Box, { display: "flex", gap: 1, alignItems: "center" }, /* @__PURE__ */ React116.createElement(PropKeyProvider, { bind: "date" }, /* @__PURE__ */ React116.createElement(
9786
+ import_ui100.DatePicker,
9057
9787
  {
9058
9788
  value: parseDateValue(import_editor_props58.stringPropTypeUtil.extract(value?.date)),
9059
9789
  onChange: (v) => handleChange({ date: v }, { bind: "date" }),
@@ -9065,7 +9795,7 @@ var DateTimeControl = createControl(({ inputDisabled }) => {
9065
9795
  }
9066
9796
  }
9067
9797
  )), /* @__PURE__ */ React116.createElement(PropKeyProvider, { bind: "time" }, /* @__PURE__ */ React116.createElement(
9068
- import_ui99.TimePicker,
9798
+ import_ui100.TimePicker,
9069
9799
  {
9070
9800
  value: parseTimeValue(import_editor_props58.stringPropTypeUtil.extract(value?.time)),
9071
9801
  onChange: (v) => handleChange({ time: v }, { bind: "time" }),
@@ -9082,13 +9812,13 @@ var DateTimeControl = createControl(({ inputDisabled }) => {
9082
9812
  // src/controls/date-range-control.tsx
9083
9813
  var React118 = __toESM(require("react"));
9084
9814
  var import_editor_props61 = require("@elementor/editor-props");
9085
- var import_ui101 = require("@elementor/ui");
9815
+ var import_ui102 = require("@elementor/ui");
9086
9816
  var import_i18n61 = require("@wordpress/i18n");
9087
9817
 
9088
9818
  // src/controls/date-string-control.tsx
9089
9819
  var React117 = __toESM(require("react"));
9090
9820
  var import_editor_props60 = require("@elementor/editor-props");
9091
- var import_ui100 = require("@elementor/ui");
9821
+ var import_ui101 = require("@elementor/ui");
9092
9822
 
9093
9823
  // src/utils/date-time.ts
9094
9824
  var dayjs2 = __toESM(require("dayjs"));
@@ -9145,8 +9875,8 @@ var DateStringControl = createControl(
9145
9875
  }
9146
9876
  setValue(newValue.format(format));
9147
9877
  };
9148
- return /* @__PURE__ */ React117.createElement(import_ui100.LocalizationProvider, null, /* @__PURE__ */ React117.createElement(ControlActions, null, /* @__PURE__ */ React117.createElement(
9149
- import_ui100.DatePicker,
9878
+ return /* @__PURE__ */ React117.createElement(import_ui101.LocalizationProvider, null, /* @__PURE__ */ React117.createElement(ControlActions, null, /* @__PURE__ */ React117.createElement(
9879
+ import_ui101.DatePicker,
9150
9880
  {
9151
9881
  value: parseDateString(value ?? ""),
9152
9882
  onChange: (newValue) => handleChange(newValue, DATE_FORMAT2),
@@ -9174,21 +9904,21 @@ var DateRangeControl = createControl(() => {
9174
9904
  const minString = import_editor_props61.dateStringPropTypeUtil.extract(value?.min);
9175
9905
  const maxString = import_editor_props61.dateStringPropTypeUtil.extract(value?.max);
9176
9906
  const hasInvalidRange = isMaxBeforeMin(minString, maxString);
9177
- return /* @__PURE__ */ React118.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React118.createElement(import_ui101.Stack, { gap: 0.75 }, /* @__PURE__ */ React118.createElement(import_ui101.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React118.createElement(import_ui101.Grid, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React118.createElement(import_ui101.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React118.createElement(ControlFormLabel, null, RANGE_LABELS.min)), /* @__PURE__ */ React118.createElement(import_ui101.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React118.createElement(
9907
+ return /* @__PURE__ */ React118.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React118.createElement(import_ui102.Stack, { gap: 0.75 }, /* @__PURE__ */ React118.createElement(import_ui102.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React118.createElement(import_ui102.Grid, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React118.createElement(import_ui102.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React118.createElement(ControlFormLabel, null, RANGE_LABELS.min)), /* @__PURE__ */ React118.createElement(import_ui102.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React118.createElement(
9178
9908
  BoundDateStringControl,
9179
9909
  {
9180
9910
  bind: "min",
9181
9911
  ariaLabel: RANGE_LABELS.min,
9182
9912
  error: hasInvalidRange
9183
9913
  }
9184
- ))), /* @__PURE__ */ React118.createElement(import_ui101.Grid, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React118.createElement(import_ui101.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React118.createElement(ControlFormLabel, null, RANGE_LABELS.max)), /* @__PURE__ */ React118.createElement(import_ui101.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React118.createElement(
9914
+ ))), /* @__PURE__ */ React118.createElement(import_ui102.Grid, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React118.createElement(import_ui102.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React118.createElement(ControlFormLabel, null, RANGE_LABELS.max)), /* @__PURE__ */ React118.createElement(import_ui102.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React118.createElement(
9185
9915
  BoundDateStringControl,
9186
9916
  {
9187
9917
  bind: "max",
9188
9918
  ariaLabel: RANGE_LABELS.max,
9189
9919
  error: hasInvalidRange
9190
9920
  }
9191
- )))), hasInvalidRange && /* @__PURE__ */ React118.createElement(import_ui101.FormHelperText, { error: true }, RANGE_ERROR_MESSAGE)));
9921
+ )))), hasInvalidRange && /* @__PURE__ */ React118.createElement(import_ui102.FormHelperText, { error: true }, RANGE_ERROR_MESSAGE)));
9192
9922
  });
9193
9923
  var BoundDateStringControl = ({
9194
9924
  bind,
@@ -9201,7 +9931,7 @@ var BoundDateStringControl = ({
9201
9931
  // src/controls/time-string-control.tsx
9202
9932
  var React119 = __toESM(require("react"));
9203
9933
  var import_editor_props62 = require("@elementor/editor-props");
9204
- var import_ui102 = require("@elementor/ui");
9934
+ var import_ui103 = require("@elementor/ui");
9205
9935
  var TimeStringControl = createControl(
9206
9936
  ({ inputDisabled, ariaLabel, error, coerceInvalidToNull = false }) => {
9207
9937
  const { value, setValue, disabled } = useBoundProp(import_editor_props62.timeStringPropTypeUtil);
@@ -9227,8 +9957,8 @@ var TimeStringControl = createControl(
9227
9957
  }
9228
9958
  setValue(newValue.format(format));
9229
9959
  };
9230
- return /* @__PURE__ */ React119.createElement(import_ui102.LocalizationProvider, null, /* @__PURE__ */ React119.createElement(ControlActions, null, /* @__PURE__ */ React119.createElement(
9231
- import_ui102.TimePicker,
9960
+ return /* @__PURE__ */ React119.createElement(import_ui103.LocalizationProvider, null, /* @__PURE__ */ React119.createElement(ControlActions, null, /* @__PURE__ */ React119.createElement(
9961
+ import_ui103.TimePicker,
9232
9962
  {
9233
9963
  value: parseTimeString(value ?? ""),
9234
9964
  onChange: (newValue) => handleChange(newValue, TIME_FORMAT2),
@@ -9242,7 +9972,7 @@ var TimeStringControl = createControl(
9242
9972
  // src/controls/time-range-control.tsx
9243
9973
  var React120 = __toESM(require("react"));
9244
9974
  var import_editor_props63 = require("@elementor/editor-props");
9245
- var import_ui103 = require("@elementor/ui");
9975
+ var import_ui104 = require("@elementor/ui");
9246
9976
  var import_i18n62 = require("@wordpress/i18n");
9247
9977
  var RANGE_LABELS2 = {
9248
9978
  min: (0, import_i18n62.__)("Start time", "elementor"),
@@ -9250,7 +9980,7 @@ var RANGE_LABELS2 = {
9250
9980
  };
9251
9981
  var TimeRangeControl = createControl(() => {
9252
9982
  const { value, setValue, ...propContext } = useBoundProp(import_editor_props63.timeRangePropTypeUtil);
9253
- return /* @__PURE__ */ React120.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React120.createElement(import_ui103.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React120.createElement(import_ui103.Grid, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React120.createElement(import_ui103.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React120.createElement(ControlFormLabel, null, RANGE_LABELS2.min)), /* @__PURE__ */ React120.createElement(import_ui103.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React120.createElement(BoundTimeStringControl, { bind: "min", ariaLabel: RANGE_LABELS2.min }))), /* @__PURE__ */ React120.createElement(import_ui103.Grid, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React120.createElement(import_ui103.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React120.createElement(ControlFormLabel, null, RANGE_LABELS2.max)), /* @__PURE__ */ React120.createElement(import_ui103.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React120.createElement(BoundTimeStringControl, { bind: "max", ariaLabel: RANGE_LABELS2.max })))));
9983
+ return /* @__PURE__ */ React120.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React120.createElement(import_ui104.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React120.createElement(import_ui104.Grid, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React120.createElement(import_ui104.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React120.createElement(ControlFormLabel, null, RANGE_LABELS2.min)), /* @__PURE__ */ React120.createElement(import_ui104.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React120.createElement(BoundTimeStringControl, { bind: "min", ariaLabel: RANGE_LABELS2.min }))), /* @__PURE__ */ React120.createElement(import_ui104.Grid, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React120.createElement(import_ui104.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React120.createElement(ControlFormLabel, null, RANGE_LABELS2.max)), /* @__PURE__ */ React120.createElement(import_ui104.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React120.createElement(BoundTimeStringControl, { bind: "max", ariaLabel: RANGE_LABELS2.max })))));
9254
9984
  });
9255
9985
  var BoundTimeStringControl = ({ bind, ariaLabel }) => {
9256
9986
  return /* @__PURE__ */ React120.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React120.createElement(TimeStringControl, { ariaLabel, coerceInvalidToNull: true }));
@@ -9260,12 +9990,12 @@ var BoundTimeStringControl = ({ bind, ariaLabel }) => {
9260
9990
  var React124 = __toESM(require("react"));
9261
9991
  var import_react76 = require("react");
9262
9992
  var import_editor_props65 = require("@elementor/editor-props");
9263
- var import_ui107 = require("@elementor/ui");
9993
+ var import_ui108 = require("@elementor/ui");
9264
9994
 
9265
9995
  // src/components/inline-editor.tsx
9266
9996
  var React121 = __toESM(require("react"));
9267
9997
  var import_react71 = require("react");
9268
- var import_ui104 = require("@elementor/ui");
9998
+ var import_ui105 = require("@elementor/ui");
9269
9999
  var import_extension_bold = __toESM(require("@tiptap/extension-bold"));
9270
10000
  var import_extension_document = __toESM(require("@tiptap/extension-document"));
9271
10001
  var import_extension_hard_break = __toESM(require("@tiptap/extension-hard-break"));
@@ -9423,7 +10153,7 @@ var InlineEditor = React121.forwardRef((props, ref) => {
9423
10153
  if (mountElement) {
9424
10154
  return null;
9425
10155
  }
9426
- return /* @__PURE__ */ React121.createElement(import_ui104.Box, { ref: containerRef, sx, className: wrapperClassName }, /* @__PURE__ */ React121.createElement(import_react72.EditorContent, { ref, editor }));
10156
+ return /* @__PURE__ */ React121.createElement(import_ui105.Box, { ref: containerRef, sx, className: wrapperClassName }, /* @__PURE__ */ React121.createElement(import_react72.EditorContent, { ref, editor }));
9427
10157
  });
9428
10158
  var useOnUpdate = (callback, dependencies) => {
9429
10159
  const hasMounted = (0, import_react71.useRef)(false);
@@ -9441,7 +10171,7 @@ var React123 = __toESM(require("react"));
9441
10171
  var import_react74 = require("react");
9442
10172
  var import_editor_elements7 = require("@elementor/editor-elements");
9443
10173
  var import_icons41 = require("@elementor/icons");
9444
- var import_ui106 = require("@elementor/ui");
10174
+ var import_ui107 = require("@elementor/ui");
9445
10175
  var import_react75 = require("@tiptap/react");
9446
10176
  var import_i18n64 = require("@wordpress/i18n");
9447
10177
 
@@ -9449,7 +10179,7 @@ var import_i18n64 = require("@wordpress/i18n");
9449
10179
  var React122 = __toESM(require("react"));
9450
10180
  var import_react73 = require("react");
9451
10181
  var import_icons40 = require("@elementor/icons");
9452
- var import_ui105 = require("@elementor/ui");
10182
+ var import_ui106 = require("@elementor/ui");
9453
10183
  var import_i18n63 = require("@wordpress/i18n");
9454
10184
  var UrlPopover = ({
9455
10185
  popupState,
@@ -9471,18 +10201,18 @@ var UrlPopover = ({
9471
10201
  popupState.close();
9472
10202
  };
9473
10203
  return /* @__PURE__ */ React122.createElement(
9474
- import_ui105.Popover,
10204
+ import_ui106.Popover,
9475
10205
  {
9476
10206
  slotProps: {
9477
10207
  paper: { sx: { borderRadius: "16px", width: anchorRef.current?.offsetWidth + "px", marginTop: -1 } }
9478
10208
  },
9479
- ...(0, import_ui105.bindPopover)(popupState),
10209
+ ...(0, import_ui106.bindPopover)(popupState),
9480
10210
  anchorOrigin: { vertical: "top", horizontal: "left" },
9481
10211
  transformOrigin: { vertical: "top", horizontal: "left" },
9482
10212
  onClose: handleClose
9483
10213
  },
9484
- /* @__PURE__ */ React122.createElement(import_ui105.Stack, { direction: "row", alignItems: "center", gap: 1, sx: { p: 1.5 } }, /* @__PURE__ */ React122.createElement(
9485
- import_ui105.TextField,
10214
+ /* @__PURE__ */ React122.createElement(import_ui106.Stack, { direction: "row", alignItems: "center", gap: 1, sx: { p: 1.5 } }, /* @__PURE__ */ React122.createElement(
10215
+ import_ui106.TextField,
9486
10216
  {
9487
10217
  value,
9488
10218
  onChange,
@@ -9494,8 +10224,8 @@ var UrlPopover = ({
9494
10224
  InputProps: { sx: { borderRadius: "8px" } },
9495
10225
  onKeyUp: (event) => event.key === "Enter" && handleClose()
9496
10226
  }
9497
- ), /* @__PURE__ */ React122.createElement(import_ui105.Tooltip, { title: (0, import_i18n63.__)("Open in a new tab", "elementor") }, /* @__PURE__ */ React122.createElement(
9498
- import_ui105.ToggleButton,
10227
+ ), /* @__PURE__ */ React122.createElement(import_ui106.Tooltip, { title: (0, import_i18n63.__)("Open in a new tab", "elementor") }, /* @__PURE__ */ React122.createElement(
10228
+ import_ui106.ToggleButton,
9499
10229
  {
9500
10230
  size: "tiny",
9501
10231
  value: "newTab",
@@ -9519,7 +10249,7 @@ var InlineEditorToolbar = ({
9519
10249
  const [urlValue, setUrlValue] = (0, import_react74.useState)("");
9520
10250
  const [openInNewTab, setOpenInNewTab] = (0, import_react74.useState)(false);
9521
10251
  const toolbarRef = (0, import_react74.useRef)(null);
9522
- const linkPopupState = (0, import_ui106.usePopupState)({ variant: "popover" });
10252
+ const linkPopupState = (0, import_ui107.usePopupState)({ variant: "popover" });
9523
10253
  const isElementClickable = elementId ? checkIfElementIsClickable(elementId) : false;
9524
10254
  const editorState = (0, import_react75.useEditorState)({
9525
10255
  editor,
@@ -9568,7 +10298,7 @@ var InlineEditorToolbar = ({
9568
10298
  }
9569
10299
  }, [editor, inControlPanel]);
9570
10300
  return /* @__PURE__ */ React123.createElement(
9571
- import_ui106.Box,
10301
+ import_ui107.Box,
9572
10302
  {
9573
10303
  ref: toolbarRef,
9574
10304
  sx: {
@@ -9601,9 +10331,9 @@ var InlineEditorToolbar = ({
9601
10331
  }
9602
10332
  }
9603
10333
  },
9604
- /* @__PURE__ */ React123.createElement(import_ui106.Tooltip, { title: clearButton.label, placement: "top", sx: { borderRadius: "8px" } }, /* @__PURE__ */ React123.createElement(import_ui106.IconButton, { "aria-label": clearButton.label, onClick: () => clearButton.method(editor), size: "tiny" }, clearButton.icon)),
10334
+ /* @__PURE__ */ React123.createElement(import_ui107.Tooltip, { title: clearButton.label, placement: "top", sx: { borderRadius: "8px" } }, /* @__PURE__ */ React123.createElement(import_ui107.IconButton, { "aria-label": clearButton.label, onClick: () => clearButton.method(editor), size: "tiny" }, clearButton.icon)),
9605
10335
  /* @__PURE__ */ React123.createElement(
9606
- import_ui106.ToggleButtonGroup,
10336
+ import_ui107.ToggleButtonGroup,
9607
10337
  {
9608
10338
  value: editorState,
9609
10339
  size: "tiny",
@@ -9611,7 +10341,7 @@ var InlineEditorToolbar = ({
9611
10341
  display: "flex",
9612
10342
  gap: 0.5,
9613
10343
  border: "none",
9614
- [`& .${import_ui106.toggleButtonGroupClasses.firstButton}, & .${import_ui106.toggleButtonGroupClasses.middleButton}, & .${import_ui106.toggleButtonGroupClasses.lastButton}`]: {
10344
+ [`& .${import_ui107.toggleButtonGroupClasses.firstButton}, & .${import_ui107.toggleButtonGroupClasses.middleButton}, & .${import_ui107.toggleButtonGroupClasses.lastButton}`]: {
9615
10345
  borderRadius: "8px",
9616
10346
  border: "none",
9617
10347
  marginLeft: 0,
@@ -9632,8 +10362,8 @@ var InlineEditorToolbar = ({
9632
10362
  }
9633
10363
  }
9634
10364
  },
9635
- formatButtonsList.map((button) => /* @__PURE__ */ React123.createElement(import_ui106.Tooltip, { title: button.label, key: button.action, placement: "top" }, /* @__PURE__ */ React123.createElement(
9636
- import_ui106.ToggleButton,
10365
+ formatButtonsList.map((button) => /* @__PURE__ */ React123.createElement(import_ui107.Tooltip, { title: button.label, key: button.action, placement: "top" }, /* @__PURE__ */ React123.createElement(
10366
+ import_ui107.ToggleButton,
9637
10367
  {
9638
10368
  value: button.action,
9639
10369
  "aria-label": button.label,
@@ -9751,7 +10481,7 @@ var InlineEditingControl = createControl(({ sx, attributes, props, context: { el
9751
10481
  },
9752
10482
  [setValue]
9753
10483
  );
9754
- return /* @__PURE__ */ React124.createElement(ControlActions, null, /* @__PURE__ */ React124.createElement(import_ui107.Box, { sx: { position: "relative" } }, editor && editor.isEditable && /* @__PURE__ */ React124.createElement(
10484
+ return /* @__PURE__ */ React124.createElement(ControlActions, null, /* @__PURE__ */ React124.createElement(import_ui108.Box, { sx: { position: "relative" } }, editor && editor.isEditable && /* @__PURE__ */ React124.createElement(
9755
10485
  InlineEditorToolbar,
9756
10486
  {
9757
10487
  editor,
@@ -9765,7 +10495,7 @@ var InlineEditingControl = createControl(({ sx, attributes, props, context: { el
9765
10495
  inControlPanel: true
9766
10496
  }
9767
10497
  ), /* @__PURE__ */ React124.createElement(
9768
- import_ui107.Box,
10498
+ import_ui108.Box,
9769
10499
  {
9770
10500
  sx: (theme) => ({
9771
10501
  p: 0.8,
@@ -9829,13 +10559,13 @@ var InlineEditingControl = createControl(({ sx, attributes, props, context: { el
9829
10559
  var React128 = __toESM(require("react"));
9830
10560
  var import_editor_props68 = require("@elementor/editor-props");
9831
10561
  var import_editor_ui17 = require("@elementor/editor-ui");
9832
- var import_ui111 = require("@elementor/ui");
10562
+ var import_ui112 = require("@elementor/ui");
9833
10563
  var import_i18n66 = require("@wordpress/i18n");
9834
10564
 
9835
10565
  // src/controls/email-form-action-control/fields.tsx
9836
10566
  var React127 = __toESM(require("react"));
9837
10567
  var import_editor_ui16 = require("@elementor/editor-ui");
9838
- var import_ui110 = require("@elementor/ui");
10568
+ var import_ui111 = require("@elementor/ui");
9839
10569
  var import_i18n65 = require("@wordpress/i18n");
9840
10570
 
9841
10571
  // src/hooks/use-form-field-suggestions.ts
@@ -9928,7 +10658,7 @@ function useFormFieldSuggestions(options) {
9928
10658
  var React125 = __toESM(require("react"));
9929
10659
  var import_react77 = require("react");
9930
10660
  var import_editor_props67 = require("@elementor/editor-props");
9931
- var import_ui108 = require("@elementor/ui");
10661
+ var import_ui109 = require("@elementor/ui");
9932
10662
 
9933
10663
  // src/controls/email-form-action-control/utils.ts
9934
10664
  var import_schema = require("@elementor/schema");
@@ -10003,7 +10733,7 @@ var EmailChipsControl = createControl(({ placeholder, suggestions = [] }) => {
10003
10733
  }
10004
10734
  };
10005
10735
  return /* @__PURE__ */ React125.createElement(ControlActions, null, /* @__PURE__ */ React125.createElement(
10006
- import_ui108.Autocomplete,
10736
+ import_ui109.Autocomplete,
10007
10737
  {
10008
10738
  fullWidth: true,
10009
10739
  multiple: true,
@@ -10027,22 +10757,22 @@ var EmailChipsControl = createControl(({ placeholder, suggestions = [] }) => {
10027
10757
  onBlur: handleBlur,
10028
10758
  getOptionLabel: (option) => option,
10029
10759
  isOptionEqualToValue: (option, val) => option === val,
10030
- renderInput: (params) => /* @__PURE__ */ React125.createElement(import_ui108.TextField, { ...params, placeholder, onKeyDown: handleKeyDown }),
10760
+ renderInput: (params) => /* @__PURE__ */ React125.createElement(import_ui109.TextField, { ...params, placeholder, onKeyDown: handleKeyDown }),
10031
10761
  renderTags: (tagValues, getTagProps) => /* @__PURE__ */ React125.createElement(ChipsList, { getLabel: (option) => option, getTagProps, values: tagValues })
10032
10762
  }
10033
10763
  ));
10034
10764
  });
10035
- var EmailChipsField = ({ fieldLabel, placeholder, suggestions }) => /* @__PURE__ */ React125.createElement(import_ui108.Grid, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React125.createElement(import_ui108.Grid, { item: true }, /* @__PURE__ */ React125.createElement(ControlFormLabel, null, fieldLabel)), /* @__PURE__ */ React125.createElement(import_ui108.Grid, { item: true }, /* @__PURE__ */ React125.createElement(EmailChipsControl, { placeholder, suggestions })));
10765
+ var EmailChipsField = ({ fieldLabel, placeholder, suggestions }) => /* @__PURE__ */ React125.createElement(import_ui109.Grid, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React125.createElement(import_ui109.Grid, { item: true }, /* @__PURE__ */ React125.createElement(ControlFormLabel, null, fieldLabel)), /* @__PURE__ */ React125.createElement(import_ui109.Grid, { item: true }, /* @__PURE__ */ React125.createElement(EmailChipsControl, { placeholder, suggestions })));
10036
10766
 
10037
10767
  // src/controls/email-form-action-control/email-field.tsx
10038
10768
  var React126 = __toESM(require("react"));
10039
- var import_ui109 = require("@elementor/ui");
10040
- var EmailField = ({ bind, label, placeholder }) => /* @__PURE__ */ React126.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React126.createElement(import_ui109.Grid, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React126.createElement(import_ui109.Grid, { item: true }, /* @__PURE__ */ React126.createElement(ControlFormLabel, null, label)), /* @__PURE__ */ React126.createElement(import_ui109.Grid, { item: true }, /* @__PURE__ */ React126.createElement(TextControl, { placeholder }))));
10769
+ var import_ui110 = require("@elementor/ui");
10770
+ var EmailField = ({ bind, label, placeholder }) => /* @__PURE__ */ React126.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React126.createElement(import_ui110.Grid, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React126.createElement(import_ui110.Grid, { item: true }, /* @__PURE__ */ React126.createElement(ControlFormLabel, null, label)), /* @__PURE__ */ React126.createElement(import_ui110.Grid, { item: true }, /* @__PURE__ */ React126.createElement(TextControl, { placeholder }))));
10041
10771
 
10042
10772
  // src/controls/email-form-action-control/fields.tsx
10043
10773
  var SendToField = ({ placeholder }) => {
10044
10774
  const suggestions = useFormFieldSuggestions({ inputType: "email" });
10045
- return /* @__PURE__ */ React127.createElement(PropKeyProvider, { bind: "to" }, /* @__PURE__ */ React127.createElement(import_ui110.Stack, { gap: 0.5 }, /* @__PURE__ */ React127.createElement(
10775
+ return /* @__PURE__ */ React127.createElement(PropKeyProvider, { bind: "to" }, /* @__PURE__ */ React127.createElement(import_ui111.Stack, { gap: 0.5 }, /* @__PURE__ */ React127.createElement(
10046
10776
  EmailChipsField,
10047
10777
  {
10048
10778
  fieldLabel: (0, import_i18n65.__)("Send to", "elementor"),
@@ -10061,7 +10791,7 @@ var SubjectField = () => /* @__PURE__ */ React127.createElement(
10061
10791
  );
10062
10792
  var MessageField = () => {
10063
10793
  const suggestions = useFormFieldSuggestions();
10064
- return /* @__PURE__ */ React127.createElement(PropKeyProvider, { bind: "message" }, /* @__PURE__ */ React127.createElement(import_ui110.Grid, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React127.createElement(import_ui110.Grid, { item: true }, /* @__PURE__ */ React127.createElement(ControlFormLabel, null, (0, import_i18n65.__)("Message", "elementor"))), /* @__PURE__ */ React127.createElement(import_ui110.Grid, { item: true }, /* @__PURE__ */ React127.createElement(MentionTextAreaControl, { suggestions })), /* @__PURE__ */ React127.createElement(import_ui110.Grid, { item: true }, /* @__PURE__ */ React127.createElement(import_editor_ui16.InfoAlert, null, shouldShowMentionsInfo() ? (0, import_i18n65.__)(
10794
+ return /* @__PURE__ */ React127.createElement(PropKeyProvider, { bind: "message" }, /* @__PURE__ */ React127.createElement(import_ui111.Grid, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React127.createElement(import_ui111.Grid, { item: true }, /* @__PURE__ */ React127.createElement(ControlFormLabel, null, (0, import_i18n65.__)("Message", "elementor"))), /* @__PURE__ */ React127.createElement(import_ui111.Grid, { item: true }, /* @__PURE__ */ React127.createElement(MentionTextAreaControl, { suggestions })), /* @__PURE__ */ React127.createElement(import_ui111.Grid, { item: true }, /* @__PURE__ */ React127.createElement(import_editor_ui16.InfoAlert, null, shouldShowMentionsInfo() ? (0, import_i18n65.__)(
10065
10795
  "[all-fields] shortcode sends all fields. Type @ to insert specific fields and customize your message.",
10066
10796
  "elementor"
10067
10797
  ) : (0, import_i18n65.__)("[all-fields] shortcode sends all fields.", "elementor")))));
@@ -10084,7 +10814,7 @@ var FromNameField = () => /* @__PURE__ */ React127.createElement(
10084
10814
  );
10085
10815
  var ReplyToField = () => {
10086
10816
  const emailSuggestions = useFormFieldSuggestions({ inputType: "email" });
10087
- return /* @__PURE__ */ React127.createElement(PropKeyProvider, { bind: "reply-to" }, /* @__PURE__ */ React127.createElement(import_ui110.Grid, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React127.createElement(import_ui110.Grid, { item: true }, /* @__PURE__ */ React127.createElement(ControlFormLabel, null, (0, import_i18n65.__)("Reply-to", "elementor"))), /* @__PURE__ */ React127.createElement(import_ui110.Grid, { item: true }, /* @__PURE__ */ React127.createElement(
10817
+ return /* @__PURE__ */ React127.createElement(PropKeyProvider, { bind: "reply-to" }, /* @__PURE__ */ React127.createElement(import_ui111.Grid, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React127.createElement(import_ui111.Grid, { item: true }, /* @__PURE__ */ React127.createElement(ControlFormLabel, null, (0, import_i18n65.__)("Reply-to", "elementor"))), /* @__PURE__ */ React127.createElement(import_ui111.Grid, { item: true }, /* @__PURE__ */ React127.createElement(
10088
10818
  MentionTextAreaControl,
10089
10819
  {
10090
10820
  suggestions: emailSuggestions,
@@ -10102,7 +10832,7 @@ var BccField = () => {
10102
10832
  const suggestions = useFormFieldSuggestions({ inputType: "email" });
10103
10833
  return /* @__PURE__ */ React127.createElement(PropKeyProvider, { bind: "bcc" }, /* @__PURE__ */ React127.createElement(EmailChipsField, { fieldLabel: (0, import_i18n65.__)("Bcc", "elementor"), suggestions }));
10104
10834
  };
10105
- var MetaDataField = () => /* @__PURE__ */ React127.createElement(PropKeyProvider, { bind: "meta-data" }, /* @__PURE__ */ React127.createElement(import_ui110.Stack, { gap: 0.5 }, /* @__PURE__ */ React127.createElement(ControlFormLabel, null, (0, import_i18n65.__)("Metadata", "elementor")), /* @__PURE__ */ React127.createElement(
10835
+ var MetaDataField = () => /* @__PURE__ */ React127.createElement(PropKeyProvider, { bind: "meta-data" }, /* @__PURE__ */ React127.createElement(import_ui111.Stack, { gap: 0.5 }, /* @__PURE__ */ React127.createElement(ControlFormLabel, null, (0, import_i18n65.__)("Metadata", "elementor")), /* @__PURE__ */ React127.createElement(
10106
10836
  ChipsControl,
10107
10837
  {
10108
10838
  options: [
@@ -10114,7 +10844,7 @@ var MetaDataField = () => /* @__PURE__ */ React127.createElement(PropKeyProvider
10114
10844
  ]
10115
10845
  }
10116
10846
  )));
10117
- var SendAsField = () => /* @__PURE__ */ React127.createElement(PropKeyProvider, { bind: "send-as" }, /* @__PURE__ */ React127.createElement(import_ui110.Grid, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React127.createElement(import_ui110.Grid, { item: true }, /* @__PURE__ */ React127.createElement(ControlFormLabel, null, (0, import_i18n65.__)("Send as", "elementor"))), /* @__PURE__ */ React127.createElement(import_ui110.Grid, { item: true }, /* @__PURE__ */ React127.createElement(
10847
+ var SendAsField = () => /* @__PURE__ */ React127.createElement(PropKeyProvider, { bind: "send-as" }, /* @__PURE__ */ React127.createElement(import_ui111.Grid, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React127.createElement(import_ui111.Grid, { item: true }, /* @__PURE__ */ React127.createElement(ControlFormLabel, null, (0, import_i18n65.__)("Send as", "elementor"))), /* @__PURE__ */ React127.createElement(import_ui111.Grid, { item: true }, /* @__PURE__ */ React127.createElement(
10118
10848
  SelectControl,
10119
10849
  {
10120
10850
  options: [
@@ -10128,18 +10858,18 @@ var SendAsField = () => /* @__PURE__ */ React127.createElement(PropKeyProvider,
10128
10858
  var EmailFormActionControl = createControl(
10129
10859
  ({ toPlaceholder, label }) => {
10130
10860
  const { value, setValue, ...propContext } = useBoundProp(import_editor_props68.emailsPropTypeUtil);
10131
- return /* @__PURE__ */ React128.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React128.createElement(import_ui111.Stack, { gap: 2 }, /* @__PURE__ */ React128.createElement(ControlLabel, null, label ? label + " " + (0, import_i18n66.__)("settings", "elementor") : (0, import_i18n66.__)("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)));
10861
+ return /* @__PURE__ */ React128.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React128.createElement(import_ui112.Stack, { gap: 2 }, /* @__PURE__ */ React128.createElement(ControlLabel, null, label ? label + " " + (0, import_i18n66.__)("settings", "elementor") : (0, import_i18n66.__)("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)));
10132
10862
  }
10133
10863
  );
10134
- var AdvancedSettings = () => /* @__PURE__ */ React128.createElement(import_editor_ui17.CollapsibleContent, { defaultOpen: false }, /* @__PURE__ */ React128.createElement(import_ui111.Box, { sx: { pt: 2 } }, /* @__PURE__ */ React128.createElement(import_ui111.Stack, { 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(import_ui111.Divider, null), /* @__PURE__ */ React128.createElement(MetaDataField, null), /* @__PURE__ */ React128.createElement(SendAsField, null))));
10864
+ var AdvancedSettings = () => /* @__PURE__ */ React128.createElement(import_editor_ui17.CollapsibleContent, { defaultOpen: false }, /* @__PURE__ */ React128.createElement(import_ui112.Box, { sx: { pt: 2 } }, /* @__PURE__ */ React128.createElement(import_ui112.Stack, { 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(import_ui112.Divider, null), /* @__PURE__ */ React128.createElement(MetaDataField, null), /* @__PURE__ */ React128.createElement(SendAsField, null))));
10135
10865
 
10136
10866
  // src/controls/attachment-type-control.tsx
10137
10867
  var React129 = __toESM(require("react"));
10138
10868
  var import_editor_ui18 = require("@elementor/editor-ui");
10139
- var import_ui112 = require("@elementor/ui");
10869
+ var import_ui113 = require("@elementor/ui");
10140
10870
  var import_i18n67 = require("@wordpress/i18n");
10141
10871
  var AttachmentTypeControl = createControl(({ label, options }) => {
10142
- return /* @__PURE__ */ React129.createElement(import_ui112.Grid, { container: true, direction: "column", gap: 1 }, label && /* @__PURE__ */ React129.createElement(import_ui112.Grid, { item: true }, /* @__PURE__ */ React129.createElement(ControlFormLabel, null, label)), /* @__PURE__ */ React129.createElement(import_ui112.Grid, { item: true }, /* @__PURE__ */ React129.createElement(SelectControl, { options })), /* @__PURE__ */ React129.createElement(import_ui112.Grid, { item: true }, /* @__PURE__ */ React129.createElement(import_editor_ui18.InfoAlert, null, (0, import_i18n67.__)(
10872
+ return /* @__PURE__ */ React129.createElement(import_ui113.Grid, { container: true, direction: "column", gap: 1 }, label && /* @__PURE__ */ React129.createElement(import_ui113.Grid, { item: true }, /* @__PURE__ */ React129.createElement(ControlFormLabel, null, label)), /* @__PURE__ */ React129.createElement(import_ui113.Grid, { item: true }, /* @__PURE__ */ React129.createElement(SelectControl, { options })), /* @__PURE__ */ React129.createElement(import_ui113.Grid, { item: true }, /* @__PURE__ */ React129.createElement(import_editor_ui18.InfoAlert, null, (0, import_i18n67.__)(
10143
10873
  "Linked uploads are saved to the server. Direct attachments will not appear under Submissions.",
10144
10874
  "elementor"
10145
10875
  ))));
@@ -10150,8 +10880,8 @@ var React130 = __toESM(require("react"));
10150
10880
  var import_react78 = require("react");
10151
10881
  var import_editor_v1_adapters3 = require("@elementor/editor-v1-adapters");
10152
10882
  var import_icons42 = require("@elementor/icons");
10153
- var import_ui113 = require("@elementor/ui");
10154
- var NoticeTitle = (0, import_ui113.styled)(import_ui113.AlertTitle)({
10883
+ var import_ui114 = require("@elementor/ui");
10884
+ var NoticeTitle = (0, import_ui114.styled)(import_ui114.AlertTitle)({
10155
10885
  "&.MuiAlertTitle-root.MuiAlertTitle-root": {
10156
10886
  marginBottom: 4,
10157
10887
  fontStyle: "italic"
@@ -10190,8 +10920,8 @@ var NoticeControl = createControl(
10190
10920
  markNoticeAsDismissedInSession(dismissible);
10191
10921
  }
10192
10922
  };
10193
- return /* @__PURE__ */ React130.createElement(import_ui113.Alert, { variant: "outlined", severity, icon, size: "small", onClose: handleDismiss }, heading && /* @__PURE__ */ React130.createElement(NoticeTitle, null, heading), /* @__PURE__ */ React130.createElement(import_ui113.Typography, { variant: "caption", color: "textSecondary", sx: { fontStyle: "italic" } }, content), buttonText && buttonUrl && /* @__PURE__ */ React130.createElement(
10194
- import_ui113.AlertAction,
10923
+ return /* @__PURE__ */ React130.createElement(import_ui114.Alert, { variant: "outlined", severity, icon, size: "small", onClose: handleDismiss }, heading && /* @__PURE__ */ React130.createElement(NoticeTitle, null, heading), /* @__PURE__ */ React130.createElement(import_ui114.Typography, { variant: "caption", color: "textSecondary", sx: { fontStyle: "italic" } }, content), buttonText && buttonUrl && /* @__PURE__ */ React130.createElement(
10924
+ import_ui114.AlertAction,
10195
10925
  {
10196
10926
  variant: "contained",
10197
10927
  color: severity,
@@ -10209,7 +10939,7 @@ var NoticeControl = createControl(
10209
10939
  // src/controls/grid-span-control.tsx
10210
10940
  var React131 = __toESM(require("react"));
10211
10941
  var import_editor_props69 = require("@elementor/editor-props");
10212
- var import_ui114 = require("@elementor/ui");
10942
+ var import_ui115 = require("@elementor/ui");
10213
10943
  var GridSpanControl = createControl(
10214
10944
  ({
10215
10945
  placeholder: propPlaceholder,
@@ -10227,7 +10957,7 @@ var GridSpanControl = createControl(
10227
10957
  };
10228
10958
  const placeholder = propPlaceholder ?? boundPlaceholder ?? `e.g: 'span 2' or '1 / 3'`;
10229
10959
  return /* @__PURE__ */ React131.createElement(ControlActions, null, /* @__PURE__ */ React131.createElement(
10230
- import_ui114.TextField,
10960
+ import_ui115.TextField,
10231
10961
  {
10232
10962
  size: "tiny",
10233
10963
  fullWidth: true,
@@ -10250,14 +10980,14 @@ var GridSpanControl = createControl(
10250
10980
  var React133 = __toESM(require("react"));
10251
10981
  var import_react80 = require("react");
10252
10982
  var import_icons43 = require("@elementor/icons");
10253
- var import_ui116 = require("@elementor/ui");
10983
+ var import_ui117 = require("@elementor/ui");
10254
10984
  var import_i18n68 = require("@wordpress/i18n");
10255
10985
 
10256
10986
  // src/components/promotions/promotion-trigger.tsx
10257
10987
  var React132 = __toESM(require("react"));
10258
10988
  var import_react79 = require("react");
10259
10989
  var import_editor_ui19 = require("@elementor/editor-ui");
10260
- var import_ui115 = require("@elementor/ui");
10990
+ var import_ui116 = require("@elementor/ui");
10261
10991
  function getV4Promotion(key) {
10262
10992
  return window.elementor?.config?.v4Promotions?.[key];
10263
10993
  }
@@ -10289,7 +11019,7 @@ var PromotionTrigger = (0, import_react79.forwardRef)(
10289
11019
  onCtaClick: () => trackUpgradePromotionClick(trackingData)
10290
11020
  },
10291
11021
  /* @__PURE__ */ React132.createElement(
10292
- import_ui115.Box,
11022
+ import_ui116.Box,
10293
11023
  {
10294
11024
  onClick: (e) => {
10295
11025
  e.stopPropagation();
@@ -10309,7 +11039,7 @@ var TRACKING_DATA = { target_name: "display_conditions", location_l2: "general"
10309
11039
  var DisplayConditionsControl = createControl(() => {
10310
11040
  const triggerRef = (0, import_react80.useRef)(null);
10311
11041
  return /* @__PURE__ */ React133.createElement(
10312
- import_ui116.Stack,
11042
+ import_ui117.Stack,
10313
11043
  {
10314
11044
  direction: "row",
10315
11045
  spacing: 2,
@@ -10319,8 +11049,8 @@ var DisplayConditionsControl = createControl(() => {
10319
11049
  }
10320
11050
  },
10321
11051
  /* @__PURE__ */ React133.createElement(PromotionTrigger, { ref: triggerRef, promotionKey: "displayConditions", trackingData: TRACKING_DATA }),
10322
- /* @__PURE__ */ React133.createElement(import_ui116.Tooltip, { title: ARIA_LABEL, placement: "top" }, /* @__PURE__ */ React133.createElement(
10323
- import_ui116.IconButton,
11052
+ /* @__PURE__ */ React133.createElement(import_ui117.Tooltip, { title: ARIA_LABEL, placement: "top" }, /* @__PURE__ */ React133.createElement(
11053
+ import_ui117.IconButton,
10324
11054
  {
10325
11055
  size: "tiny",
10326
11056
  "aria-label": ARIA_LABEL,
@@ -10341,14 +11071,14 @@ var DisplayConditionsControl = createControl(() => {
10341
11071
  var React134 = __toESM(require("react"));
10342
11072
  var import_react81 = require("react");
10343
11073
  var import_icons44 = require("@elementor/icons");
10344
- var import_ui117 = require("@elementor/ui");
11074
+ var import_ui118 = require("@elementor/ui");
10345
11075
  var import_i18n69 = require("@wordpress/i18n");
10346
11076
  var ARIA_LABEL2 = (0, import_i18n69.__)("Attributes", "elementor");
10347
11077
  var TRACKING_DATA2 = { target_name: "attributes", location_l2: "general" };
10348
11078
  var AttributesControl = createControl(() => {
10349
11079
  const triggerRef = (0, import_react81.useRef)(null);
10350
11080
  return /* @__PURE__ */ React134.createElement(
10351
- import_ui117.Stack,
11081
+ import_ui118.Stack,
10352
11082
  {
10353
11083
  direction: "row",
10354
11084
  spacing: 2,
@@ -10358,7 +11088,7 @@ var AttributesControl = createControl(() => {
10358
11088
  }
10359
11089
  },
10360
11090
  /* @__PURE__ */ React134.createElement(PromotionTrigger, { ref: triggerRef, promotionKey: "attributes", trackingData: TRACKING_DATA2 }),
10361
- /* @__PURE__ */ React134.createElement(import_ui117.Tooltip, { title: ARIA_LABEL2, placement: "top" }, /* @__PURE__ */ React134.createElement(
11091
+ /* @__PURE__ */ React134.createElement(import_ui118.Tooltip, { title: ARIA_LABEL2, placement: "top" }, /* @__PURE__ */ React134.createElement(
10362
11092
  import_icons44.PlusIcon,
10363
11093
  {
10364
11094
  "aria-label": ARIA_LABEL2,
@@ -10374,18 +11104,18 @@ var AttributesControl = createControl(() => {
10374
11104
  // src/components/icon-buttons/clear-icon-button.tsx
10375
11105
  var React135 = __toESM(require("react"));
10376
11106
  var import_icons45 = require("@elementor/icons");
10377
- var import_ui118 = require("@elementor/ui");
10378
- var CustomIconButton = (0, import_ui118.styled)(import_ui118.IconButton)(({ theme }) => ({
11107
+ var import_ui119 = require("@elementor/ui");
11108
+ var CustomIconButton = (0, import_ui119.styled)(import_ui119.IconButton)(({ theme }) => ({
10379
11109
  width: theme.spacing(2.5),
10380
11110
  height: theme.spacing(2.5)
10381
11111
  }));
10382
- var ClearIconButton = ({ tooltipText, onClick, disabled, size = "tiny" }) => /* @__PURE__ */ React135.createElement(import_ui118.Tooltip, { title: tooltipText, placement: "top", disableInteractive: true }, /* @__PURE__ */ React135.createElement(CustomIconButton, { "aria-label": tooltipText, size, onClick, disabled }, /* @__PURE__ */ React135.createElement(import_icons45.BrushBigIcon, { fontSize: size })));
11112
+ var ClearIconButton = ({ tooltipText, onClick, disabled, size = "tiny" }) => /* @__PURE__ */ React135.createElement(import_ui119.Tooltip, { title: tooltipText, placement: "top", disableInteractive: true }, /* @__PURE__ */ React135.createElement(CustomIconButton, { "aria-label": tooltipText, size, onClick, disabled }, /* @__PURE__ */ React135.createElement(import_icons45.BrushBigIcon, { fontSize: size })));
10383
11113
 
10384
11114
  // src/components/repeater/repeater.tsx
10385
11115
  var React136 = __toESM(require("react"));
10386
11116
  var import_react82 = require("react");
10387
11117
  var import_icons46 = require("@elementor/icons");
10388
- var import_ui119 = require("@elementor/ui");
11118
+ var import_ui120 = require("@elementor/ui");
10389
11119
  var import_i18n70 = require("@wordpress/i18n");
10390
11120
  var SIZE12 = "tiny";
10391
11121
  var EMPTY_OPEN_ITEM2 = -1;
@@ -10469,7 +11199,7 @@ var Repeater3 = ({
10469
11199
  const isButtonDisabled = disabled || disableAddItemButton;
10470
11200
  const shouldShowInfotip = isButtonDisabled && addButtonInfotipContent;
10471
11201
  const addButton = /* @__PURE__ */ React136.createElement(
10472
- import_ui119.IconButton,
11202
+ import_ui120.IconButton,
10473
11203
  {
10474
11204
  size: SIZE12,
10475
11205
  sx: {
@@ -10482,14 +11212,14 @@ var Repeater3 = ({
10482
11212
  /* @__PURE__ */ React136.createElement(import_icons46.PlusIcon, { fontSize: SIZE12 })
10483
11213
  );
10484
11214
  return /* @__PURE__ */ React136.createElement(SectionContent, { gap: 2 }, /* @__PURE__ */ React136.createElement(RepeaterHeader, { label, adornment }, shouldShowInfotip ? /* @__PURE__ */ React136.createElement(
10485
- import_ui119.Infotip,
11215
+ import_ui120.Infotip,
10486
11216
  {
10487
11217
  placement: "right",
10488
11218
  content: addButtonInfotipContent,
10489
11219
  color: "secondary",
10490
11220
  slotProps: { popper: { sx: { width: 300 } } }
10491
11221
  },
10492
- /* @__PURE__ */ React136.createElement(import_ui119.Box, { sx: { ...isButtonDisabled ? { cursor: "not-allowed" } : {} } }, addButton)
11222
+ /* @__PURE__ */ React136.createElement(import_ui120.Box, { sx: { ...isButtonDisabled ? { cursor: "not-allowed" } : {} } }, addButton)
10493
11223
  ) : addButton), 0 < uniqueKeys.length && /* @__PURE__ */ React136.createElement(SortableProvider, { value: uniqueKeys, onChange: onChangeOrder }, uniqueKeys.map((key) => {
10494
11224
  const index = uniqueKeys.indexOf(key);
10495
11225
  const value = items2[index];
@@ -10556,12 +11286,12 @@ var RepeaterItem = ({
10556
11286
  },
10557
11287
  wrappedOnPopoverClose
10558
11288
  );
10559
- const triggerProps = (0, import_ui119.bindTrigger)(popoverState);
11289
+ const triggerProps = (0, import_ui120.bindTrigger)(popoverState);
10560
11290
  usePopoverDismiss({ isOpen: popoverState.isOpen, onClose: popoverProps.onClose });
10561
11291
  const duplicateLabel = (0, import_i18n70.__)("Duplicate", "elementor");
10562
11292
  const toggleLabel = propDisabled ? (0, import_i18n70.__)("Show", "elementor") : (0, import_i18n70.__)("Hide", "elementor");
10563
11293
  const removeLabel = (0, import_i18n70.__)("Remove", "elementor");
10564
- return /* @__PURE__ */ React136.createElement(import_ui119.Box, { sx: { display: "contents" } }, /* @__PURE__ */ React136.createElement(
11294
+ return /* @__PURE__ */ React136.createElement(import_ui120.Box, { sx: { display: "contents" } }, /* @__PURE__ */ React136.createElement(
10565
11295
  RepeaterTag,
10566
11296
  {
10567
11297
  disabled,
@@ -10576,14 +11306,14 @@ var RepeaterItem = ({
10576
11306
  }
10577
11307
  },
10578
11308
  startIcon,
10579
- actions: /* @__PURE__ */ React136.createElement(React136.Fragment, null, showDuplicate && /* @__PURE__ */ React136.createElement(import_ui119.Tooltip, { title: duplicateLabel, placement: "top" }, /* @__PURE__ */ React136.createElement(import_ui119.IconButton, { size: SIZE12, onClick: duplicateItem, "aria-label": duplicateLabel }, /* @__PURE__ */ React136.createElement(import_icons46.CopyIcon, { fontSize: SIZE12 }))), showToggle && /* @__PURE__ */ React136.createElement(import_ui119.Tooltip, { title: toggleLabel, placement: "top" }, /* @__PURE__ */ React136.createElement(import_ui119.IconButton, { size: SIZE12, onClick: toggleDisableItem, "aria-label": toggleLabel }, propDisabled ? /* @__PURE__ */ React136.createElement(import_icons46.EyeOffIcon, { fontSize: SIZE12 }) : /* @__PURE__ */ React136.createElement(import_icons46.EyeIcon, { fontSize: SIZE12 }))), actions?.(value), showRemove && /* @__PURE__ */ React136.createElement(import_ui119.Tooltip, { title: removeLabel, placement: "top" }, /* @__PURE__ */ React136.createElement(import_ui119.IconButton, { size: SIZE12, onClick: removeItem, "aria-label": removeLabel }, /* @__PURE__ */ React136.createElement(import_icons46.XIcon, { fontSize: SIZE12 }))))
11309
+ actions: /* @__PURE__ */ React136.createElement(React136.Fragment, null, showDuplicate && /* @__PURE__ */ React136.createElement(import_ui120.Tooltip, { title: duplicateLabel, placement: "top" }, /* @__PURE__ */ React136.createElement(import_ui120.IconButton, { size: SIZE12, onClick: duplicateItem, "aria-label": duplicateLabel }, /* @__PURE__ */ React136.createElement(import_icons46.CopyIcon, { fontSize: SIZE12 }))), showToggle && /* @__PURE__ */ React136.createElement(import_ui120.Tooltip, { title: toggleLabel, placement: "top" }, /* @__PURE__ */ React136.createElement(import_ui120.IconButton, { size: SIZE12, onClick: toggleDisableItem, "aria-label": toggleLabel }, propDisabled ? /* @__PURE__ */ React136.createElement(import_icons46.EyeOffIcon, { fontSize: SIZE12 }) : /* @__PURE__ */ React136.createElement(import_icons46.EyeIcon, { fontSize: SIZE12 }))), actions?.(value), showRemove && /* @__PURE__ */ React136.createElement(import_ui120.Tooltip, { title: removeLabel, placement: "top" }, /* @__PURE__ */ React136.createElement(import_ui120.IconButton, { size: SIZE12, onClick: removeItem, "aria-label": removeLabel }, /* @__PURE__ */ React136.createElement(import_icons46.XIcon, { fontSize: SIZE12 }))))
10580
11310
  }
10581
- ), /* @__PURE__ */ React136.createElement(RepeaterPopover, { width: ref?.getBoundingClientRect().width, ...popoverProps, anchorEl: ref }, /* @__PURE__ */ React136.createElement(import_ui119.Box, null, children({ anchorEl: ref }))));
11311
+ ), /* @__PURE__ */ React136.createElement(RepeaterPopover, { width: ref?.getBoundingClientRect().width, ...popoverProps, anchorEl: ref }, /* @__PURE__ */ React136.createElement(import_ui120.Box, null, children({ anchorEl: ref }))));
10582
11312
  };
10583
11313
  var usePopover = (openOnMount, onOpen, onPopoverClose) => {
10584
11314
  const [ref, setRef] = (0, import_react82.useState)(null);
10585
- const popoverState = (0, import_ui119.usePopupState)({ variant: "popover" });
10586
- const popoverProps = (0, import_ui119.bindPopover)(popoverState);
11315
+ const popoverState = (0, import_ui120.usePopupState)({ variant: "popover" });
11316
+ const popoverProps = (0, import_ui120.bindPopover)(popoverState);
10587
11317
  (0, import_react82.useEffect)(() => {
10588
11318
  if (openOnMount && ref) {
10589
11319
  popoverState.open(ref);
@@ -10604,7 +11334,7 @@ var usePopover = (openOnMount, onOpen, onPopoverClose) => {
10604
11334
 
10605
11335
  // src/components/size/unstable-size-field.tsx
10606
11336
  var React139 = __toESM(require("react"));
10607
- var import_ui121 = require("@elementor/ui");
11337
+ var import_ui122 = require("@elementor/ui");
10608
11338
 
10609
11339
  // src/hooks/use-size-value.ts
10610
11340
  var DEFAULT_UNIT2 = "px";
@@ -10649,14 +11379,14 @@ var differsFromExternal = (newState, externalState) => {
10649
11379
  var React137 = __toESM(require("react"));
10650
11380
  var import_react83 = require("react");
10651
11381
  var import_editor_ui20 = require("@elementor/editor-ui");
10652
- var import_ui120 = require("@elementor/ui");
11382
+ var import_ui121 = require("@elementor/ui");
10653
11383
  var menuItemContentStyles2 = {
10654
11384
  display: "flex",
10655
11385
  flexDirection: "column",
10656
11386
  justifyContent: "center"
10657
11387
  };
10658
11388
  var UnitSelect = ({ value, showPrimaryColor, onClick, options }) => {
10659
- const popupState = (0, import_ui120.usePopupState)({
11389
+ const popupState = (0, import_ui121.usePopupState)({
10660
11390
  variant: "popover",
10661
11391
  popupId: (0, import_react83.useId)()
10662
11392
  });
@@ -10664,7 +11394,7 @@ var UnitSelect = ({ value, showPrimaryColor, onClick, options }) => {
10664
11394
  onClick(options[index]);
10665
11395
  popupState.close();
10666
11396
  };
10667
- return /* @__PURE__ */ React137.createElement(React137.Fragment, null, /* @__PURE__ */ React137.createElement(StyledButton3, { isPrimaryColor: showPrimaryColor, size: "small", ...(0, import_ui120.bindTrigger)(popupState) }, value), /* @__PURE__ */ React137.createElement(import_ui120.Menu, { MenuListProps: { dense: true }, ...(0, import_ui120.bindMenu)(popupState) }, options.map((option, index) => /* @__PURE__ */ React137.createElement(
11397
+ return /* @__PURE__ */ React137.createElement(React137.Fragment, null, /* @__PURE__ */ React137.createElement(StyledButton3, { isPrimaryColor: showPrimaryColor, size: "small", ...(0, import_ui121.bindTrigger)(popupState) }, value), /* @__PURE__ */ React137.createElement(import_ui121.Menu, { MenuListProps: { dense: true }, ...(0, import_ui121.bindMenu)(popupState) }, options.map((option, index) => /* @__PURE__ */ React137.createElement(
10668
11398
  import_editor_ui20.MenuListItem,
10669
11399
  {
10670
11400
  key: option,
@@ -10683,7 +11413,7 @@ var UnitSelect = ({ value, showPrimaryColor, onClick, options }) => {
10683
11413
  option.toUpperCase()
10684
11414
  ))));
10685
11415
  };
10686
- var StyledButton3 = (0, import_ui120.styled)(import_ui120.Button, {
11416
+ var StyledButton3 = (0, import_ui121.styled)(import_ui121.Button, {
10687
11417
  shouldForwardProp: (prop) => prop !== "isPrimaryColor"
10688
11418
  })(({ isPrimaryColor, theme }) => ({
10689
11419
  color: isPrimaryColor ? theme.palette.text.primary : theme.palette.text.tertiary,
@@ -10744,8 +11474,8 @@ var UnstableSizeField = ({
10744
11474
  onChange: (event) => setSize(event.target.value),
10745
11475
  InputProps: {
10746
11476
  ...InputProps,
10747
- startAdornment: startIcon && /* @__PURE__ */ React139.createElement(import_ui121.InputAdornment, { position: "start" }, startIcon),
10748
- endAdornment: /* @__PURE__ */ React139.createElement(import_ui121.InputAdornment, { position: "end" }, /* @__PURE__ */ React139.createElement(
11477
+ startAdornment: startIcon && /* @__PURE__ */ React139.createElement(import_ui122.InputAdornment, { position: "start" }, startIcon),
11478
+ endAdornment: /* @__PURE__ */ React139.createElement(import_ui122.InputAdornment, { position: "end" }, /* @__PURE__ */ React139.createElement(
10749
11479
  UnitSelect,
10750
11480
  {
10751
11481
  options: units2,
@@ -10873,9 +11603,11 @@ var useFontFamilies = () => {
10873
11603
  injectIntoRepeaterItemActions,
10874
11604
  injectIntoRepeaterItemIcon,
10875
11605
  injectIntoRepeaterItemLabel,
11606
+ isDeletedCustomIconLibrary,
10876
11607
  isUnitExtendedOption,
10877
11608
  registerControlReplacement,
10878
11609
  resetFontAwesome7IconsCache,
11610
+ resolveCustomIconSvg,
10879
11611
  resolveFontAwesome7Icon,
10880
11612
  trackUpgradePromotionClick,
10881
11613
  trackViewPromotion,