@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.d.mts +4 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.js +1069 -337
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +874 -142
- package/dist/index.mjs.map +1 -1
- package/package.json +16 -16
- package/src/controls/icon-library/custom-icon-libraries.ts +556 -0
- package/src/controls/icon-library/font-awesome-7-catalog.ts +16 -7
- package/src/controls/icon-library/font-awesome-7-data.ts +2 -0
- package/src/controls/icon-library/font-awesome-glyph.tsx +62 -17
- package/src/controls/icon-library/fontello-svg-font.ts +227 -0
- package/src/controls/icon-library/icomoon-selection.ts +104 -0
- package/src/controls/icon-library/icon-library-filter.tsx +126 -61
- package/src/controls/icon-library/icon-library-grid.tsx +5 -7
- package/src/controls/icon-library/icon-library-popover.tsx +7 -5
- package/src/controls/icon-library/sanitize-icon-svg-markup.ts +53 -0
- package/src/controls/svg-media-preview.tsx +7 -2
- package/src/index.ts +1 -0
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
|
|
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
|
|
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, "&").replace(/"/g, """).replace(/</g, "<").replace(/>/g, ">");
|
|
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, "&").replace(/"/g, """).replace(/</g, "<").replace(/>/g, ">");
|
|
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
|
-
|
|
5745
|
-
if (!selectedId || !library) {
|
|
6340
|
+
if (!iconClass || !library) {
|
|
5746
6341
|
return void 0;
|
|
5747
6342
|
}
|
|
5748
|
-
const
|
|
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
|
-
|
|
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
|
-
|
|
5770
|
-
|
|
5771
|
-
|
|
5772
|
-
|
|
5773
|
-
|
|
5774
|
-
|
|
5775
|
-
|
|
5776
|
-
|
|
5777
|
-
|
|
5778
|
-
|
|
5779
|
-
|
|
5780
|
-
|
|
5781
|
-
|
|
5782
|
-
|
|
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
|
|
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
|
|
5801
|
-
|
|
5802
|
-
|
|
5803
|
-
|
|
5804
|
-
|
|
5805
|
-
|
|
5806
|
-
"
|
|
5807
|
-
|
|
5808
|
-
|
|
5809
|
-
|
|
5810
|
-
},
|
|
5811
|
-
"fa-
|
|
5812
|
-
|
|
5813
|
-
|
|
5814
|
-
|
|
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,
|
|
6508
|
+
const popupState = (0, import_ui65.usePopupState)({
|
|
5825
6509
|
variant: "popover",
|
|
5826
6510
|
popupId
|
|
5827
6511
|
});
|
|
5828
|
-
const
|
|
5829
|
-
|
|
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 ===
|
|
6518
|
+
onChange(nextValue.length === selectableValues.length ? [] : nextValue);
|
|
5842
6519
|
};
|
|
5843
6520
|
return /* @__PURE__ */ React82.createElement(React82.Fragment, null, /* @__PURE__ */ React82.createElement(
|
|
5844
|
-
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
6559
|
+
import_ui65.Menu,
|
|
5883
6560
|
{
|
|
5884
|
-
...(0,
|
|
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
|
-
|
|
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:
|
|
6601
|
+
key: entry.value,
|
|
5906
6602
|
role: "menuitemcheckbox",
|
|
5907
|
-
"aria-checked":
|
|
5908
|
-
selected:
|
|
5909
|
-
onClick: () =>
|
|
6603
|
+
"aria-checked": isSelected,
|
|
6604
|
+
selected: isSelected,
|
|
6605
|
+
onClick: () => onLibraryClick(entry.value)
|
|
5910
6606
|
},
|
|
5911
|
-
renderFilterMenuItemContent(label,
|
|
5912
|
-
)
|
|
5913
|
-
|
|
6607
|
+
renderFilterMenuItemContent(entry.label, getFilterIcon(entry.icon), isSelected)
|
|
6608
|
+
)
|
|
6609
|
+
];
|
|
5914
6610
|
};
|
|
5915
|
-
var
|
|
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
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
)
|
|
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
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
6981
|
+
import_ui67.Menu,
|
|
6249
6982
|
{
|
|
6250
|
-
...(0,
|
|
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(
|
|
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
|
|
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,
|
|
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,
|
|
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:
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
6457
|
-
|
|
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
|
-
|
|
6473
|
-
), /* @__PURE__ */ React85.createElement(
|
|
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(
|
|
6476
|
-
var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */ React85.createElement(
|
|
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
|
|
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,
|
|
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(
|
|
6529
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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
|
|
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:
|
|
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
|
-
|
|
6609
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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,
|
|
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,
|
|
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(
|
|
6758
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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(
|
|
6867
|
-
|
|
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(
|
|
6883
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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(
|
|
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
|
|
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(
|
|
7075
|
-
|
|
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(
|
|
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(
|
|
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
|
|
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(
|
|
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
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
|
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,
|
|
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(
|
|
7330
|
-
|
|
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(
|
|
7338
|
-
/* @__PURE__ */ React95.createElement(
|
|
7339
|
-
/* @__PURE__ */ React95.createElement(
|
|
7340
|
-
)), /* @__PURE__ */ React95.createElement(
|
|
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
|
-
|
|
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,
|
|
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(
|
|
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(
|
|
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
|
|
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(
|
|
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
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
|
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(
|
|
7776
|
-
|
|
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(
|
|
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(
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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(
|
|
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(
|
|
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
|
|
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(
|
|
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
|
|
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
|
|
8702
|
+
var import_ui87 = require("@elementor/ui");
|
|
7973
8703
|
var ScaleAxisRow = ({ label, bind, startIcon, anchorRef }) => {
|
|
7974
|
-
return /* @__PURE__ */ React103.createElement(
|
|
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(
|
|
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
|
|
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(
|
|
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
|
|
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,
|
|
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(
|
|
8125
|
-
|
|
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(
|
|
8138
|
-
/* @__PURE__ */ React106.createElement(
|
|
8139
|
-
/* @__PURE__ */ React106.createElement(
|
|
8140
|
-
/* @__PURE__ */ React106.createElement(
|
|
8141
|
-
)), /* @__PURE__ */ React106.createElement(
|
|
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
|
|
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(
|
|
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
|
|
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
|
|
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(
|
|
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(
|
|
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
|
|
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(
|
|
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(
|
|
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,
|
|
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
|
-
|
|
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(
|
|
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(
|
|
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,
|
|
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
|
-
|
|
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(
|
|
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(
|
|
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
|
|
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
|
|
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(
|
|
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
|
|
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,
|
|
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(
|
|
8764
|
-
|
|
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,
|
|
9499
|
+
...(0, import_ui98.bindTrigger)(popoverState),
|
|
8770
9500
|
fullWidth: true
|
|
8771
9501
|
}
|
|
8772
9502
|
)), /* @__PURE__ */ React114.createElement(
|
|
8773
|
-
|
|
9503
|
+
import_ui98.Popover,
|
|
8774
9504
|
{
|
|
8775
9505
|
disablePortal: true,
|
|
8776
9506
|
disableScrollLock: true,
|
|
8777
|
-
...(0,
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
8937
|
-
/* @__PURE__ */ React115.createElement(
|
|
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
|
|
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(
|
|
9056
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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(
|
|
9149
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
|
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(
|
|
9231
|
-
|
|
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
|
|
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(
|
|
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
|
|
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
|
|
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(
|
|
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
|
|
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
|
|
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
|
-
|
|
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,
|
|
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(
|
|
9485
|
-
|
|
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(
|
|
9498
|
-
|
|
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,
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
-
[`& .${
|
|
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(
|
|
9636
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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(
|
|
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(
|
|
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
|
|
10040
|
-
var EmailField = ({ bind, label, placeholder }) => /* @__PURE__ */ React126.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React126.createElement(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
|
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(
|
|
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
|
|
10154
|
-
var NoticeTitle = (0,
|
|
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(
|
|
10194
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
10323
|
-
|
|
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
|
|
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
|
-
|
|
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(
|
|
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
|
|
10378
|
-
var CustomIconButton = (0,
|
|
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(
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
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,
|
|
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(
|
|
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(
|
|
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(
|
|
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,
|
|
10586
|
-
const popoverProps = (0,
|
|
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
|
|
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
|
|
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,
|
|
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,
|
|
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,
|
|
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(
|
|
10748
|
-
endAdornment: /* @__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,
|