@elementor/editor-controls 4.1.0-manual → 4.2.0-839
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 +43 -21
- package/dist/index.d.ts +43 -21
- package/dist/index.js +675 -369
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +606 -305
- package/dist/index.mjs.map +1 -1
- package/package.json +16 -16
- package/src/components/control-repeater/context/repeater-context.tsx +13 -0
- package/src/components/repeater/repeater.tsx +6 -10
- package/src/controls/attachment-type-control.tsx +36 -0
- package/src/controls/date-range-control.tsx +83 -0
- package/src/controls/date-string-control.tsx +62 -0
- package/src/controls/email-form-action-control.tsx +21 -1
- package/src/controls/image-media-control.tsx +23 -1
- package/src/controls/mention-text-area-control.tsx +32 -11
- package/src/controls/number-control.tsx +4 -2
- package/src/controls/position-control.tsx +7 -0
- package/src/controls/select-control.tsx +1 -1
- package/src/controls/size-control/size-field.tsx +1 -1
- package/src/controls/time-range-control.tsx +49 -0
- package/src/controls/time-string-control.tsx +62 -0
- package/src/controls/transform-control/transform-base-controls/transform-origin-control.tsx +1 -1
- package/src/hooks/use-form-field-suggestions.ts +23 -2
- package/src/hooks/use-repeater-popover-dismiss.ts +53 -0
- package/src/index.ts +4 -0
- package/src/utils/date-time.ts +41 -0
package/dist/index.mjs
CHANGED
|
@@ -351,7 +351,7 @@ var formatResponse = (response) => {
|
|
|
351
351
|
|
|
352
352
|
// src/controls/image-media-control.tsx
|
|
353
353
|
import * as React11 from "react";
|
|
354
|
-
import { imageSrcPropTypeUtil } from "@elementor/editor-props";
|
|
354
|
+
import { imageSrcPropTypeUtil, stringPropTypeUtil, urlPropTypeUtil } from "@elementor/editor-props";
|
|
355
355
|
import { UploadIcon } from "@elementor/icons";
|
|
356
356
|
import { Button, Card, CardMedia, CardOverlay, CircularProgress, Stack as Stack2 } from "@elementor/ui";
|
|
357
357
|
import { useWpMediaAttachment, useWpMediaFrame } from "@elementor/wp-media";
|
|
@@ -392,10 +392,14 @@ var ImageMediaControl = createControl(({ mediaTypes = ["image"] }) => {
|
|
|
392
392
|
const { data: attachment, isFetching } = useWpMediaAttachment(id?.value || null);
|
|
393
393
|
const { data: placeholderAttachment } = useWpMediaAttachment(placeholder?.id?.value || null);
|
|
394
394
|
const src = attachment?.url ?? url?.value ?? placeholderAttachment?.url ?? null;
|
|
395
|
+
const defaultUrl = imageSrcPropTypeUtil.extract(propType.default ?? null)?.url?.value;
|
|
396
|
+
const currentUrlForModal = url?.value && url.value !== defaultUrl ? url.value : void 0;
|
|
397
|
+
const currentAltForModal = value?.alt?.value;
|
|
395
398
|
const { open } = useWpMediaFrame({
|
|
396
399
|
mediaTypes,
|
|
397
400
|
multiple: false,
|
|
398
401
|
selected: id?.value || null,
|
|
402
|
+
allowUrlImport: true,
|
|
399
403
|
onSelect: (selectedAttachment) => {
|
|
400
404
|
setValue({
|
|
401
405
|
id: {
|
|
@@ -404,6 +408,13 @@ var ImageMediaControl = createControl(({ mediaTypes = ["image"] }) => {
|
|
|
404
408
|
},
|
|
405
409
|
url: null
|
|
406
410
|
});
|
|
411
|
+
},
|
|
412
|
+
onSelectUrl: (selectedUrl, alt) => {
|
|
413
|
+
setValue({
|
|
414
|
+
id: null,
|
|
415
|
+
url: urlPropTypeUtil.create(selectedUrl),
|
|
416
|
+
alt: alt ? stringPropTypeUtil.create(alt) : null
|
|
417
|
+
});
|
|
407
418
|
}
|
|
408
419
|
});
|
|
409
420
|
return /* @__PURE__ */ React11.createElement(ControlActions, null, /* @__PURE__ */ React11.createElement(Card, { variant: "outlined" }, /* @__PURE__ */ React11.createElement(CardMedia, { image: src, sx: { height: propType.meta.isDynamic ? 134 : 150 } }, isFetching ? /* @__PURE__ */ React11.createElement(Stack2, { justifyContent: "center", alignItems: "center", width: "100%", height: "100%" }, /* @__PURE__ */ React11.createElement(CircularProgress, null)) : /* @__PURE__ */ React11.createElement(React11.Fragment, null)), /* @__PURE__ */ React11.createElement(CardOverlay, null, /* @__PURE__ */ React11.createElement(Stack2, { gap: 1 }, /* @__PURE__ */ React11.createElement(
|
|
@@ -425,12 +436,21 @@ var ImageMediaControl = createControl(({ mediaTypes = ["image"] }) => {
|
|
|
425
436
|
onClick: () => open({ mode: "upload" })
|
|
426
437
|
},
|
|
427
438
|
__("Upload", "elementor")
|
|
439
|
+
), /* @__PURE__ */ React11.createElement(
|
|
440
|
+
Button,
|
|
441
|
+
{
|
|
442
|
+
size: "tiny",
|
|
443
|
+
variant: "text",
|
|
444
|
+
color: "inherit",
|
|
445
|
+
onClick: () => open({ mode: "url", currentUrl: currentUrlForModal, currentAlt: currentAltForModal })
|
|
446
|
+
},
|
|
447
|
+
__("Insert from URL", "elementor")
|
|
428
448
|
)))));
|
|
429
449
|
});
|
|
430
450
|
|
|
431
451
|
// src/controls/select-control.tsx
|
|
432
452
|
import * as React12 from "react";
|
|
433
|
-
import { stringPropTypeUtil } from "@elementor/editor-props";
|
|
453
|
+
import { stringPropTypeUtil as stringPropTypeUtil2 } from "@elementor/editor-props";
|
|
434
454
|
import { MenuListItem } from "@elementor/editor-ui";
|
|
435
455
|
import { Select, Typography } from "@elementor/ui";
|
|
436
456
|
var DEFAULT_MENU_PROPS = {
|
|
@@ -442,7 +462,7 @@ var DEFAULT_MENU_PROPS = {
|
|
|
442
462
|
};
|
|
443
463
|
var SelectControl = createControl(
|
|
444
464
|
({ options, onChange, MenuProps = DEFAULT_MENU_PROPS, ariaLabel }) => {
|
|
445
|
-
const { value, setValue, disabled, placeholder } = useBoundProp(
|
|
465
|
+
const { value, setValue, disabled, placeholder } = useBoundProp(stringPropTypeUtil2);
|
|
446
466
|
const handleChange = (event) => {
|
|
447
467
|
const newValue = event.target.value || null;
|
|
448
468
|
onChange?.(newValue, value);
|
|
@@ -498,7 +518,7 @@ var ImageSizeControl = ({ sizes }) => {
|
|
|
498
518
|
|
|
499
519
|
// src/controls/text-control.tsx
|
|
500
520
|
import * as React14 from "react";
|
|
501
|
-
import { stringPropTypeUtil as
|
|
521
|
+
import { stringPropTypeUtil as stringPropTypeUtil3 } from "@elementor/editor-props";
|
|
502
522
|
import { TextField } from "@elementor/ui";
|
|
503
523
|
var TextControl = createControl(
|
|
504
524
|
({
|
|
@@ -510,7 +530,7 @@ var TextControl = createControl(
|
|
|
510
530
|
sx,
|
|
511
531
|
ariaLabel
|
|
512
532
|
}) => {
|
|
513
|
-
const { value, setValue, disabled, placeholder: boundPlaceholder } = useBoundProp(
|
|
533
|
+
const { value, setValue, disabled, placeholder: boundPlaceholder } = useBoundProp(stringPropTypeUtil3);
|
|
514
534
|
const handleChange = (event) => setValue(event.target.value);
|
|
515
535
|
const placeholder = propPlaceholder ?? boundPlaceholder ?? void 0;
|
|
516
536
|
return /* @__PURE__ */ React14.createElement(ControlActions, null, /* @__PURE__ */ React14.createElement(
|
|
@@ -535,10 +555,10 @@ var TextControl = createControl(
|
|
|
535
555
|
|
|
536
556
|
// src/controls/text-area-control.tsx
|
|
537
557
|
import * as React15 from "react";
|
|
538
|
-
import { stringPropTypeUtil as
|
|
558
|
+
import { stringPropTypeUtil as stringPropTypeUtil4 } from "@elementor/editor-props";
|
|
539
559
|
import { TextField as TextField2 } from "@elementor/ui";
|
|
540
560
|
var TextAreaControl = createControl(({ placeholder: propPlaceholder, ariaLabel }) => {
|
|
541
|
-
const { value, setValue, disabled, placeholder: boundPlaceholder } = useBoundProp(
|
|
561
|
+
const { value, setValue, disabled, placeholder: boundPlaceholder } = useBoundProp(stringPropTypeUtil4);
|
|
542
562
|
const handleChange = (event) => {
|
|
543
563
|
setValue(event.target.value);
|
|
544
564
|
};
|
|
@@ -565,7 +585,7 @@ var TextAreaControl = createControl(({ placeholder: propPlaceholder, ariaLabel }
|
|
|
565
585
|
import * as React16 from "react";
|
|
566
586
|
import { useCallback, useState as useState2 } from "react";
|
|
567
587
|
import { Mention } from "primereact/mention";
|
|
568
|
-
import { stringPropTypeUtil as
|
|
588
|
+
import { stringPropTypeUtil as stringPropTypeUtil5 } from "@elementor/editor-props";
|
|
569
589
|
import { styled } from "@elementor/ui";
|
|
570
590
|
var MentionWrapper = styled("div")(({ theme }) => ({
|
|
571
591
|
position: "relative",
|
|
@@ -633,25 +653,30 @@ var MentionWrapper = styled("div")(({ theme }) => ({
|
|
|
633
653
|
"&.p-highlight": {
|
|
634
654
|
backgroundColor: theme.palette.action.selected
|
|
635
655
|
}
|
|
656
|
+
},
|
|
657
|
+
'&[data-single-line="true"] textarea': {
|
|
658
|
+
resize: "none"
|
|
636
659
|
}
|
|
637
660
|
}));
|
|
661
|
+
function createMentionPattern(value, triggerPosition) {
|
|
662
|
+
const escaped = value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
663
|
+
const prefix = "start" === triggerPosition ? "^" : "";
|
|
664
|
+
return new RegExp(`${prefix}@${escaped}(?=\\s|$|[^a-zA-Z0-9_-])`, "g");
|
|
665
|
+
}
|
|
638
666
|
var MentionTextAreaControl = createControl(
|
|
639
|
-
({ placeholder, ariaLabel, suggestions: allSuggestions }) => {
|
|
640
|
-
const { value, setValue, disabled } = useBoundProp(
|
|
667
|
+
({ placeholder, ariaLabel, suggestions: allSuggestions, rows = 5, triggerPosition = "auto" }) => {
|
|
668
|
+
const { value, setValue, disabled } = useBoundProp(stringPropTypeUtil5);
|
|
641
669
|
const [filteredSuggestions, setFilteredSuggestions] = useState2([]);
|
|
642
670
|
const transformMentionsToShortcodes = useCallback(
|
|
643
671
|
(text) => {
|
|
644
672
|
let result = text;
|
|
645
673
|
for (const suggestion of allSuggestions) {
|
|
646
|
-
const
|
|
647
|
-
|
|
648
|
-
"g"
|
|
649
|
-
);
|
|
650
|
-
result = result.replace(mentionPattern, `[${suggestion.value}]`);
|
|
674
|
+
const pattern = createMentionPattern(suggestion.value, triggerPosition);
|
|
675
|
+
result = result.replace(pattern, `[${suggestion.value}]`);
|
|
651
676
|
}
|
|
652
677
|
return result;
|
|
653
678
|
},
|
|
654
|
-
[allSuggestions]
|
|
679
|
+
[allSuggestions, triggerPosition]
|
|
655
680
|
);
|
|
656
681
|
const handleChange = useCallback(
|
|
657
682
|
(e) => {
|
|
@@ -663,15 +688,23 @@ var MentionTextAreaControl = createControl(
|
|
|
663
688
|
);
|
|
664
689
|
const handleSearch = useCallback(
|
|
665
690
|
(event) => {
|
|
691
|
+
if ("start" === triggerPosition) {
|
|
692
|
+
const target = event.originalEvent.target;
|
|
693
|
+
const triggerIndex = target.selectionStart - event.query.length - event.trigger.length;
|
|
694
|
+
if (triggerIndex !== 0) {
|
|
695
|
+
setFilteredSuggestions([]);
|
|
696
|
+
return;
|
|
697
|
+
}
|
|
698
|
+
}
|
|
666
699
|
const query = event.query.toLowerCase();
|
|
667
700
|
const filtered = allSuggestions.filter(
|
|
668
701
|
(item) => item.label.toLowerCase().includes(query) || item.value.toLowerCase().includes(query)
|
|
669
702
|
);
|
|
670
703
|
setFilteredSuggestions(filtered);
|
|
671
704
|
},
|
|
672
|
-
[allSuggestions]
|
|
705
|
+
[allSuggestions, triggerPosition]
|
|
673
706
|
);
|
|
674
|
-
return /* @__PURE__ */ React16.createElement(ControlActions, null, /* @__PURE__ */ React16.createElement(MentionWrapper,
|
|
707
|
+
return /* @__PURE__ */ React16.createElement(ControlActions, null, /* @__PURE__ */ React16.createElement(MentionWrapper, { "data-single-line": rows === 1 ? "true" : void 0 }, /* @__PURE__ */ React16.createElement(
|
|
675
708
|
Mention,
|
|
676
709
|
{
|
|
677
710
|
value: value ?? "",
|
|
@@ -680,7 +713,7 @@ var MentionTextAreaControl = createControl(
|
|
|
680
713
|
onSearch: handleSearch,
|
|
681
714
|
field: "value",
|
|
682
715
|
trigger: "@",
|
|
683
|
-
rows
|
|
716
|
+
rows,
|
|
684
717
|
disabled,
|
|
685
718
|
placeholder,
|
|
686
719
|
itemTemplate: SuggestionItem,
|
|
@@ -1370,7 +1403,7 @@ var Control = forwardRef3(({ bind, label, children }, ref) => /* @__PURE__ */ Re
|
|
|
1370
1403
|
|
|
1371
1404
|
// src/controls/box-shadow-repeater-control.tsx
|
|
1372
1405
|
import * as React40 from "react";
|
|
1373
|
-
import { useRef as
|
|
1406
|
+
import { useRef as useRef5 } from "react";
|
|
1374
1407
|
import { boxShadowPropTypeUtil, shadowPropTypeUtil } from "@elementor/editor-props";
|
|
1375
1408
|
import { FormLabel as FormLabel2, Grid as Grid4, styled as styled4, UnstableColorIndicator } from "@elementor/ui";
|
|
1376
1409
|
import { __ as __11 } from "@wordpress/i18n";
|
|
@@ -1383,9 +1416,53 @@ import { __ as __5, sprintf } from "@wordpress/i18n";
|
|
|
1383
1416
|
|
|
1384
1417
|
// src/components/control-repeater/context/repeater-context.tsx
|
|
1385
1418
|
import * as React25 from "react";
|
|
1386
|
-
import { createContext as createContext7, useContext as useContext6, useEffect as
|
|
1419
|
+
import { createContext as createContext7, useContext as useContext6, useEffect as useEffect6, useMemo as useMemo4, useState as useState5 } from "react";
|
|
1387
1420
|
import { usePopupState as usePopupState3 } from "@elementor/ui";
|
|
1388
1421
|
|
|
1422
|
+
// src/hooks/use-repeater-popover-dismiss.ts
|
|
1423
|
+
import { useEffect as useEffect5, useMemo as useMemo3, useRef as useRef4 } from "react";
|
|
1424
|
+
import { useActiveBreakpoint as useActiveBreakpoint2, useBreakpoints } from "@elementor/editor-responsive";
|
|
1425
|
+
var serializeBreakpoints = (breakpoints) => breakpoints.map((b) => [b.id, b.width ?? "", b.type ?? ""].join(":")).join("|");
|
|
1426
|
+
var usePopoverDismiss = ({ isOpen, onClose }) => {
|
|
1427
|
+
const onCloseRef = useRef4(onClose);
|
|
1428
|
+
onCloseRef.current = onClose;
|
|
1429
|
+
const activeBreakpoint = useActiveBreakpoint2();
|
|
1430
|
+
const breakpoints = useBreakpoints();
|
|
1431
|
+
const breakpointsSignature = useMemo3(() => serializeBreakpoints(breakpoints), [breakpoints]);
|
|
1432
|
+
const prevActiveBreakpointRef = useRef4(void 0);
|
|
1433
|
+
const prevBreakpointsSignatureRef = useRef4(null);
|
|
1434
|
+
useEffect5(() => {
|
|
1435
|
+
if (!isOpen) {
|
|
1436
|
+
prevActiveBreakpointRef.current = activeBreakpoint;
|
|
1437
|
+
prevBreakpointsSignatureRef.current = breakpointsSignature;
|
|
1438
|
+
return;
|
|
1439
|
+
}
|
|
1440
|
+
const previousBreakpoint = prevActiveBreakpointRef.current;
|
|
1441
|
+
const previousSignature = prevBreakpointsSignatureRef.current;
|
|
1442
|
+
const breakpointChanged = previousBreakpoint !== void 0 && previousBreakpoint !== activeBreakpoint;
|
|
1443
|
+
const breakpointsChanged = previousSignature !== null && previousSignature !== breakpointsSignature;
|
|
1444
|
+
if (breakpointChanged || breakpointsChanged) {
|
|
1445
|
+
onCloseRef.current();
|
|
1446
|
+
}
|
|
1447
|
+
prevActiveBreakpointRef.current = activeBreakpoint;
|
|
1448
|
+
prevBreakpointsSignatureRef.current = breakpointsSignature;
|
|
1449
|
+
}, [activeBreakpoint, breakpointsSignature, isOpen]);
|
|
1450
|
+
useEffect5(() => {
|
|
1451
|
+
if (!isOpen) {
|
|
1452
|
+
return;
|
|
1453
|
+
}
|
|
1454
|
+
const onKeyDown = (event) => {
|
|
1455
|
+
if (event.key === "Escape" && !event.defaultPrevented) {
|
|
1456
|
+
onCloseRef.current();
|
|
1457
|
+
}
|
|
1458
|
+
};
|
|
1459
|
+
document.addEventListener("keydown", onKeyDown);
|
|
1460
|
+
return () => {
|
|
1461
|
+
document.removeEventListener("keydown", onKeyDown);
|
|
1462
|
+
};
|
|
1463
|
+
}, [isOpen]);
|
|
1464
|
+
};
|
|
1465
|
+
|
|
1389
1466
|
// src/services/event-bus.ts
|
|
1390
1467
|
var EventBus = class {
|
|
1391
1468
|
listeners = /* @__PURE__ */ new Map();
|
|
@@ -1454,7 +1531,7 @@ var RepeaterContextProvider = ({
|
|
|
1454
1531
|
const [uniqueKeys, setUniqueKeys] = useState5(() => {
|
|
1455
1532
|
return items2?.map(() => generateUniqueKey()) ?? [];
|
|
1456
1533
|
});
|
|
1457
|
-
|
|
1534
|
+
useEffect6(() => {
|
|
1458
1535
|
const nextLength = items2?.length ?? 0;
|
|
1459
1536
|
setUniqueKeys((prev) => {
|
|
1460
1537
|
const prevLength = prev.length;
|
|
@@ -1467,7 +1544,7 @@ var RepeaterContextProvider = ({
|
|
|
1467
1544
|
return [...prev, ...Array.from({ length: nextLength - prevLength }, generateUniqueKey)];
|
|
1468
1545
|
});
|
|
1469
1546
|
}, [items2?.length]);
|
|
1470
|
-
const itemsWithKeys =
|
|
1547
|
+
const itemsWithKeys = useMemo4(
|
|
1471
1548
|
() => uniqueKeys.map((key, index) => ({
|
|
1472
1549
|
key,
|
|
1473
1550
|
item: items2[index]
|
|
@@ -1507,6 +1584,15 @@ var RepeaterContextProvider = ({
|
|
|
1507
1584
|
const newItems = [...items2.slice(0, index), updatedItem, ...items2.slice(index + 1)];
|
|
1508
1585
|
setItems(newItems);
|
|
1509
1586
|
};
|
|
1587
|
+
const closePopover = () => {
|
|
1588
|
+
if (!isOpen) {
|
|
1589
|
+
return;
|
|
1590
|
+
}
|
|
1591
|
+
setOpenItemIndex(EMPTY_OPEN_ITEM);
|
|
1592
|
+
setRowRef(null);
|
|
1593
|
+
popoverState.close();
|
|
1594
|
+
};
|
|
1595
|
+
usePopoverDismiss({ isOpen, onClose: closePopover });
|
|
1510
1596
|
return /* @__PURE__ */ React25.createElement(
|
|
1511
1597
|
RepeaterContext.Provider,
|
|
1512
1598
|
{
|
|
@@ -1956,7 +2042,7 @@ var StyledUnstableColorIndicator = styled4(UnstableColorIndicator)(({ theme }) =
|
|
|
1956
2042
|
var ItemIcon = ({ value }) => /* @__PURE__ */ React40.createElement(StyledUnstableColorIndicator, { size: "inherit", component: "span", value: value.value.color?.value });
|
|
1957
2043
|
var Content = () => {
|
|
1958
2044
|
const context = useBoundProp(shadowPropTypeUtil);
|
|
1959
|
-
const rowRef = [
|
|
2045
|
+
const rowRef = [useRef5(null), useRef5(null)];
|
|
1960
2046
|
const { rowRef: anchorEl } = useRepeaterContext();
|
|
1961
2047
|
return /* @__PURE__ */ React40.createElement(PropProvider, { ...context }, /* @__PURE__ */ React40.createElement(PopoverContent, { p: 1.5 }, /* @__PURE__ */ React40.createElement(PopoverGridContainer, null, /* @__PURE__ */ React40.createElement(Control2, { bind: "color", label: __11("Color", "elementor") }, /* @__PURE__ */ React40.createElement(ColorControl, { anchorEl })), /* @__PURE__ */ React40.createElement(Control2, { bind: "position", label: __11("Position", "elementor"), sx: { overflow: "hidden" } }, /* @__PURE__ */ React40.createElement(
|
|
1962
2048
|
SelectControl,
|
|
@@ -2031,7 +2117,7 @@ import { __ as __17 } from "@wordpress/i18n";
|
|
|
2031
2117
|
|
|
2032
2118
|
// src/controls/filter-control/context/filter-config-context.tsx
|
|
2033
2119
|
import * as React41 from "react";
|
|
2034
|
-
import { createContext as createContext9, useContext as useContext9, useMemo as
|
|
2120
|
+
import { createContext as createContext9, useContext as useContext9, useMemo as useMemo5 } from "react";
|
|
2035
2121
|
import { cssFilterFunctionPropUtil } from "@elementor/editor-props";
|
|
2036
2122
|
|
|
2037
2123
|
// src/controls/filter-control/utils.ts
|
|
@@ -2133,7 +2219,7 @@ function extractPropType(propType, filterFunctionGroup) {
|
|
|
2133
2219
|
var FilterConfigContext = createContext9(null);
|
|
2134
2220
|
function FilterConfigProvider({ children }) {
|
|
2135
2221
|
const propContext = useBoundProp(cssFilterFunctionPropUtil);
|
|
2136
|
-
const contextValue =
|
|
2222
|
+
const contextValue = useMemo5(() => {
|
|
2137
2223
|
const config = buildFilterConfig(propContext.propType.item_prop_type);
|
|
2138
2224
|
const filterOptions = Object.entries(config).map(([key, conf]) => ({
|
|
2139
2225
|
value: key,
|
|
@@ -2166,7 +2252,7 @@ import { __ as __15 } from "@wordpress/i18n";
|
|
|
2166
2252
|
|
|
2167
2253
|
// src/controls/filter-control/drop-shadow/drop-shadow-item-content.tsx
|
|
2168
2254
|
import * as React42 from "react";
|
|
2169
|
-
import { useRef as
|
|
2255
|
+
import { useRef as useRef6 } from "react";
|
|
2170
2256
|
import { dropShadowFilterPropTypeUtil } from "@elementor/editor-props";
|
|
2171
2257
|
import { Grid as Grid5 } from "@elementor/ui";
|
|
2172
2258
|
import { __ as __14 } from "@wordpress/i18n";
|
|
@@ -2194,7 +2280,7 @@ var items = [
|
|
|
2194
2280
|
];
|
|
2195
2281
|
var DropShadowItemContent = ({ anchorEl }) => {
|
|
2196
2282
|
const context = useBoundProp(dropShadowFilterPropTypeUtil);
|
|
2197
|
-
const rowRefs = [
|
|
2283
|
+
const rowRefs = [useRef6(null), useRef6(null)];
|
|
2198
2284
|
return /* @__PURE__ */ React42.createElement(PropProvider, { ...context }, items.map((item) => /* @__PURE__ */ React42.createElement(PopoverGridContainer, { key: item.bind, ref: rowRefs[item.rowIndex] ?? null }, /* @__PURE__ */ React42.createElement(PropKeyProvider, { bind: item.bind }, /* @__PURE__ */ React42.createElement(Grid5, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(ControlFormLabel, null, item.label)), /* @__PURE__ */ React42.createElement(Grid5, { item: true, xs: 6 }, item.bind === "color" ? /* @__PURE__ */ React42.createElement(ColorControl, { anchorEl }) : /* @__PURE__ */ React42.createElement(
|
|
2199
2285
|
SizeControl,
|
|
2200
2286
|
{
|
|
@@ -2207,7 +2293,7 @@ var DropShadowItemContent = ({ anchorEl }) => {
|
|
|
2207
2293
|
};
|
|
2208
2294
|
|
|
2209
2295
|
// src/controls/filter-control/single-size/single-size-item-content.tsx
|
|
2210
|
-
import { useRef as
|
|
2296
|
+
import { useRef as useRef7 } from "react";
|
|
2211
2297
|
import * as React43 from "react";
|
|
2212
2298
|
import {
|
|
2213
2299
|
blurFilterPropTypeUtil,
|
|
@@ -2223,7 +2309,7 @@ var propTypeMap = {
|
|
|
2223
2309
|
"color-tone": colorToneFilterPropTypeUtil
|
|
2224
2310
|
};
|
|
2225
2311
|
var SingleSizeItemContent = ({ filterFunc }) => {
|
|
2226
|
-
const rowRef =
|
|
2312
|
+
const rowRef = useRef7(null);
|
|
2227
2313
|
const { getFilterFunctionConfig } = useFilterConfig();
|
|
2228
2314
|
const { valueName, filterFunctionGroup } = getFilterFunctionConfig(filterFunc);
|
|
2229
2315
|
const context = useBoundProp(propTypeMap[filterFunctionGroup]);
|
|
@@ -2364,7 +2450,7 @@ function ensureFilterConfig(name) {
|
|
|
2364
2450
|
|
|
2365
2451
|
// src/controls/select-control-wrapper.tsx
|
|
2366
2452
|
import * as React50 from "react";
|
|
2367
|
-
import { useEffect as
|
|
2453
|
+
import { useEffect as useEffect7, useState as useState6 } from "react";
|
|
2368
2454
|
var getOffCanvasElements = () => {
|
|
2369
2455
|
const extendedWindow = window;
|
|
2370
2456
|
const documentId = extendedWindow.elementor.config.document.id;
|
|
@@ -2401,7 +2487,7 @@ var collectionMethods = {
|
|
|
2401
2487
|
};
|
|
2402
2488
|
var useDynamicOptions = (collectionId, initialOptions) => {
|
|
2403
2489
|
const [options, setOptions] = useState6(initialOptions ?? []);
|
|
2404
|
-
|
|
2490
|
+
useEffect7(() => {
|
|
2405
2491
|
if (!collectionId || !collectionMethods[collectionId]) {
|
|
2406
2492
|
setOptions(initialOptions ?? []);
|
|
2407
2493
|
return;
|
|
@@ -2419,15 +2505,15 @@ var SelectControlWrapper = createControl(
|
|
|
2419
2505
|
|
|
2420
2506
|
// src/controls/chips-control.tsx
|
|
2421
2507
|
import * as React51 from "react";
|
|
2422
|
-
import { stringArrayPropTypeUtil, stringPropTypeUtil as
|
|
2508
|
+
import { stringArrayPropTypeUtil, stringPropTypeUtil as stringPropTypeUtil6 } from "@elementor/editor-props";
|
|
2423
2509
|
import { Autocomplete, Chip, TextField as TextField5 } from "@elementor/ui";
|
|
2424
2510
|
var SIZE6 = "tiny";
|
|
2425
2511
|
var ChipsControl = createControl(({ options }) => {
|
|
2426
2512
|
const { value, setValue, disabled } = useBoundProp(stringArrayPropTypeUtil);
|
|
2427
|
-
const selectedValues = (value || []).map((item) =>
|
|
2513
|
+
const selectedValues = (value || []).map((item) => stringPropTypeUtil6.extract(item)).filter((val) => val !== null);
|
|
2428
2514
|
const selectedOptions = selectedValues.map((val) => options.find((opt) => opt.value === val)).filter((opt) => opt !== void 0);
|
|
2429
2515
|
const handleChange = (_, newValue) => {
|
|
2430
|
-
const values = newValue.map((option) =>
|
|
2516
|
+
const values = newValue.map((option) => stringPropTypeUtil6.create(option.value));
|
|
2431
2517
|
setValue(values);
|
|
2432
2518
|
};
|
|
2433
2519
|
return /* @__PURE__ */ React51.createElement(ControlActions, null, /* @__PURE__ */ React51.createElement(
|
|
@@ -2453,11 +2539,11 @@ var ChipsControl = createControl(({ options }) => {
|
|
|
2453
2539
|
|
|
2454
2540
|
// src/controls/toggle-control.tsx
|
|
2455
2541
|
import * as React55 from "react";
|
|
2456
|
-
import { stringPropTypeUtil as
|
|
2542
|
+
import { stringPropTypeUtil as stringPropTypeUtil7 } from "@elementor/editor-props";
|
|
2457
2543
|
|
|
2458
2544
|
// src/components/control-toggle-button-group.tsx
|
|
2459
2545
|
import * as React53 from "react";
|
|
2460
|
-
import { useEffect as
|
|
2546
|
+
import { useEffect as useEffect8, useMemo as useMemo6, useRef as useRef8, useState as useState7 } from "react";
|
|
2461
2547
|
import { ChevronDownIcon } from "@elementor/icons";
|
|
2462
2548
|
import {
|
|
2463
2549
|
ListItemText,
|
|
@@ -2530,7 +2616,7 @@ var ToggleButtonGroupUi = React53.forwardRef(
|
|
|
2530
2616
|
const handleChange = (_, newValue) => {
|
|
2531
2617
|
onChange(newValue);
|
|
2532
2618
|
};
|
|
2533
|
-
const getGridTemplateColumns =
|
|
2619
|
+
const getGridTemplateColumns = useMemo6(() => {
|
|
2534
2620
|
const isOffLimits = menuItems?.length;
|
|
2535
2621
|
const itemsCount = isOffLimits ? fixedItems.length + 1 : fixedItems.length;
|
|
2536
2622
|
const templateColumnsSuffix = isOffLimits ? "auto" : "";
|
|
@@ -2629,7 +2715,7 @@ var SplitButtonGroup = ({
|
|
|
2629
2715
|
}) => {
|
|
2630
2716
|
const previewButton = usePreviewButton(items2, value);
|
|
2631
2717
|
const [isMenuOpen, setIsMenuOpen] = useState7(false);
|
|
2632
|
-
const menuButtonRef =
|
|
2718
|
+
const menuButtonRef = useRef8(null);
|
|
2633
2719
|
const onMenuToggle = (ev) => {
|
|
2634
2720
|
setIsMenuOpen((prev) => !prev);
|
|
2635
2721
|
ev.preventDefault();
|
|
@@ -2700,7 +2786,7 @@ var usePreviewButton = (items2, value) => {
|
|
|
2700
2786
|
const [previewButton, setPreviewButton] = useState7(
|
|
2701
2787
|
items2.find((item) => item.value === value) ?? items2[0]
|
|
2702
2788
|
);
|
|
2703
|
-
|
|
2789
|
+
useEffect8(() => {
|
|
2704
2790
|
const selectedButton = items2.find((item) => item.value === value);
|
|
2705
2791
|
if (selectedButton) {
|
|
2706
2792
|
setPreviewButton(selectedButton);
|
|
@@ -2741,7 +2827,7 @@ var ToggleControl = createControl(
|
|
|
2741
2827
|
maxItems,
|
|
2742
2828
|
convertOptions = false
|
|
2743
2829
|
}) => {
|
|
2744
|
-
const { value, setValue, placeholder, disabled } = useBoundProp(
|
|
2830
|
+
const { value, setValue, placeholder, disabled } = useBoundProp(stringPropTypeUtil7);
|
|
2745
2831
|
const processedOptions = convertOptions ? convertToggleOptionsToAtomic(options) : options;
|
|
2746
2832
|
const exclusiveValues = processedOptions.filter((option) => option.exclusive).map((option) => option.value);
|
|
2747
2833
|
const handleNonExclusiveToggle = (selectedValues) => {
|
|
@@ -2797,7 +2883,8 @@ var NumberControl = createControl(
|
|
|
2797
2883
|
min = -Number.MAX_SAFE_INTEGER,
|
|
2798
2884
|
step = 1,
|
|
2799
2885
|
shouldForceInt = false,
|
|
2800
|
-
startIcon
|
|
2886
|
+
startIcon,
|
|
2887
|
+
disabled: inputDisabled
|
|
2801
2888
|
}) => {
|
|
2802
2889
|
const { value, setValue, placeholder, disabled, restoreValue, propType } = useBoundProp(numberPropTypeUtil);
|
|
2803
2890
|
const handleChange = (event) => {
|
|
@@ -2823,14 +2910,14 @@ var NumberControl = createControl(
|
|
|
2823
2910
|
size: "tiny",
|
|
2824
2911
|
type: "number",
|
|
2825
2912
|
fullWidth: true,
|
|
2826
|
-
disabled,
|
|
2913
|
+
disabled: inputDisabled ?? disabled,
|
|
2827
2914
|
value: isEmptyOrNaN(value) ? "" : value,
|
|
2828
2915
|
onInput: handleChange,
|
|
2829
2916
|
onBlur: restoreValue,
|
|
2830
2917
|
placeholder: labelPlaceholder ?? (isEmptyOrNaN(placeholder) ? "" : String(placeholder)),
|
|
2831
2918
|
inputProps: { step, min },
|
|
2832
2919
|
InputProps: {
|
|
2833
|
-
startAdornment: startIcon ? /* @__PURE__ */ React56.createElement(InputAdornment3, { position: "start", disabled }, startIcon) : void 0,
|
|
2920
|
+
startAdornment: startIcon ? /* @__PURE__ */ React56.createElement(InputAdornment3, { position: "start", disabled: inputDisabled ?? disabled }, startIcon) : void 0,
|
|
2834
2921
|
endAdornment: renderSuffix(propType)
|
|
2835
2922
|
}
|
|
2836
2923
|
}
|
|
@@ -2840,7 +2927,7 @@ var NumberControl = createControl(
|
|
|
2840
2927
|
|
|
2841
2928
|
// src/controls/equal-unequal-sizes-control.tsx
|
|
2842
2929
|
import * as React57 from "react";
|
|
2843
|
-
import { useId as useId2, useRef as
|
|
2930
|
+
import { useId as useId2, useRef as useRef9 } from "react";
|
|
2844
2931
|
import { bindPopover as bindPopover3, bindToggle, Box as Box7, Grid as Grid8, Popover as Popover3, Stack as Stack7, Tooltip as Tooltip5, usePopupState as usePopupState4 } from "@elementor/ui";
|
|
2845
2932
|
import { __ as __18 } from "@wordpress/i18n";
|
|
2846
2933
|
function EqualUnequalSizesControl({
|
|
@@ -2852,7 +2939,7 @@ function EqualUnequalSizesControl({
|
|
|
2852
2939
|
}) {
|
|
2853
2940
|
const popupId = useId2();
|
|
2854
2941
|
const popupState = usePopupState4({ variant: "popover", popupId });
|
|
2855
|
-
const rowRefs = [
|
|
2942
|
+
const rowRefs = [useRef9(null), useRef9(null)];
|
|
2856
2943
|
const { propType: multiSizePropType, disabled: multiSizeDisabled } = useBoundProp(multiSizePropTypeUtil);
|
|
2857
2944
|
const { value: masterValue, setValue: setMasterValue, placeholder: masterPlaceholder } = useBoundProp();
|
|
2858
2945
|
const getMultiSizeValues = (sourceValue) => {
|
|
@@ -2947,25 +3034,25 @@ var MultiSizeValueControl = ({ item, rowRef }) => {
|
|
|
2947
3034
|
|
|
2948
3035
|
// src/controls/linked-dimensions-control.tsx
|
|
2949
3036
|
import * as React64 from "react";
|
|
2950
|
-
import { useLayoutEffect, useRef as
|
|
3037
|
+
import { useLayoutEffect, useRef as useRef12, useState as useState9 } from "react";
|
|
2951
3038
|
import {
|
|
2952
3039
|
dimensionsPropTypeUtil,
|
|
2953
3040
|
sizePropTypeUtil as sizePropTypeUtil5
|
|
2954
3041
|
} from "@elementor/editor-props";
|
|
2955
|
-
import { useActiveBreakpoint as
|
|
3042
|
+
import { useActiveBreakpoint as useActiveBreakpoint4 } from "@elementor/editor-responsive";
|
|
2956
3043
|
import { DetachIcon, LinkIcon, SideBottomIcon, SideLeftIcon, SideRightIcon, SideTopIcon } from "@elementor/icons";
|
|
2957
3044
|
import { Grid as Grid9, Stack as Stack8, Tooltip as Tooltip6 } from "@elementor/ui";
|
|
2958
3045
|
import { __ as __20, sprintf as sprintf2 } from "@wordpress/i18n";
|
|
2959
3046
|
|
|
2960
3047
|
// src/controls/size-control/unstable-size-control.tsx
|
|
2961
3048
|
import * as React63 from "react";
|
|
2962
|
-
import { useRef as
|
|
3049
|
+
import { useRef as useRef11 } from "react";
|
|
2963
3050
|
import { sizePropTypeUtil as sizePropTypeUtil4 } from "@elementor/editor-props";
|
|
2964
3051
|
|
|
2965
3052
|
// src/controls/size-control/size-component.tsx
|
|
2966
3053
|
import * as React62 from "react";
|
|
2967
|
-
import { useEffect as
|
|
2968
|
-
import { useActiveBreakpoint as
|
|
3054
|
+
import { useEffect as useEffect11 } from "react";
|
|
3055
|
+
import { useActiveBreakpoint as useActiveBreakpoint3 } from "@elementor/editor-responsive";
|
|
2969
3056
|
import { Box as Box8, usePopupState as usePopupState6 } from "@elementor/ui";
|
|
2970
3057
|
|
|
2971
3058
|
// src/controls/size-control/size-field.tsx
|
|
@@ -3034,7 +3121,7 @@ var isNumericValue = (value) => {
|
|
|
3034
3121
|
};
|
|
3035
3122
|
|
|
3036
3123
|
// src/controls/size-control/hooks/use-size-value.ts
|
|
3037
|
-
import { useMemo as
|
|
3124
|
+
import { useMemo as useMemo7 } from "react";
|
|
3038
3125
|
|
|
3039
3126
|
// src/controls/size-control/utils/resolve-size-value.ts
|
|
3040
3127
|
var DEFAULT_SIZE2 = "";
|
|
@@ -3086,10 +3173,10 @@ var sanitizeSize = (size) => {
|
|
|
3086
3173
|
};
|
|
3087
3174
|
|
|
3088
3175
|
// src/controls/size-control/hooks/use-unit-sync.ts
|
|
3089
|
-
import { useEffect as
|
|
3176
|
+
import { useEffect as useEffect9, useState as useState8 } from "react";
|
|
3090
3177
|
var useUnitSync = ({ sizeValue, setUnit, persistWhen }) => {
|
|
3091
3178
|
const [state, setState] = useState8(sizeValue.unit);
|
|
3092
|
-
|
|
3179
|
+
useEffect9(() => {
|
|
3093
3180
|
if (sizeValue.unit !== state) {
|
|
3094
3181
|
setState(sizeValue.unit);
|
|
3095
3182
|
}
|
|
@@ -3110,7 +3197,7 @@ var useSizeValue = ({
|
|
|
3110
3197
|
units: units2,
|
|
3111
3198
|
defaultUnit
|
|
3112
3199
|
}) => {
|
|
3113
|
-
const resolvedValue =
|
|
3200
|
+
const resolvedValue = useMemo7(
|
|
3114
3201
|
() => resolveSizeValue(value, { units: units2, defaultUnit }),
|
|
3115
3202
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
3116
3203
|
[value?.size, value?.unit, defaultUnit]
|
|
@@ -3335,7 +3422,7 @@ var SizeField = ({
|
|
|
3335
3422
|
}
|
|
3336
3423
|
))
|
|
3337
3424
|
},
|
|
3338
|
-
inputProps: { min, step: "any", "
|
|
3425
|
+
inputProps: { min, step: "any", "aria-label": ariaLabel }
|
|
3339
3426
|
}
|
|
3340
3427
|
);
|
|
3341
3428
|
};
|
|
@@ -3351,15 +3438,15 @@ var shouldHighlightUnit = (value) => {
|
|
|
3351
3438
|
|
|
3352
3439
|
// src/controls/size-control/ui/text-field-popover.tsx
|
|
3353
3440
|
import * as React61 from "react";
|
|
3354
|
-
import { useEffect as
|
|
3441
|
+
import { useEffect as useEffect10, useRef as useRef10 } from "react";
|
|
3355
3442
|
import { PopoverHeader as PopoverHeader2 } from "@elementor/editor-ui";
|
|
3356
3443
|
import { MathFunctionIcon as MathFunctionIcon4 } from "@elementor/icons";
|
|
3357
3444
|
import { bindPopover as bindPopover4, Popover as Popover4, TextField as TextField6 } from "@elementor/ui";
|
|
3358
3445
|
import { __ as __19 } from "@wordpress/i18n";
|
|
3359
3446
|
var SIZE7 = "tiny";
|
|
3360
3447
|
var TextFieldPopover2 = ({ popupState, anchorRef, value, onChange, onClose }) => {
|
|
3361
|
-
const inputRef =
|
|
3362
|
-
|
|
3448
|
+
const inputRef = useRef10(null);
|
|
3449
|
+
useEffect10(() => {
|
|
3363
3450
|
if (popupState.isOpen) {
|
|
3364
3451
|
requestAnimationFrame(() => {
|
|
3365
3452
|
if (inputRef.current) {
|
|
@@ -3423,10 +3510,10 @@ var TextFieldPopover2 = ({ popupState, anchorRef, value, onChange, onClose }) =>
|
|
|
3423
3510
|
// src/controls/size-control/size-component.tsx
|
|
3424
3511
|
var SizeComponent = ({ anchorRef, SizeFieldWrapper = React62.Fragment, ...sizeFieldProps }) => {
|
|
3425
3512
|
const popupState = usePopupState6({ variant: "popover" });
|
|
3426
|
-
const activeBreakpoint =
|
|
3513
|
+
const activeBreakpoint = useActiveBreakpoint3();
|
|
3427
3514
|
const isCustomUnit = sizeFieldProps?.value?.unit === EXTENDED_UNITS.custom;
|
|
3428
3515
|
const hasCustomUnitOption = sizeFieldProps.units.includes(EXTENDED_UNITS.custom);
|
|
3429
|
-
|
|
3516
|
+
useEffect11(() => {
|
|
3430
3517
|
if (popupState && popupState.isOpen) {
|
|
3431
3518
|
popupState.close();
|
|
3432
3519
|
}
|
|
@@ -3563,7 +3650,7 @@ var UnstableSizeControl = createControl(
|
|
|
3563
3650
|
placeholder: boundPropPlaceholder,
|
|
3564
3651
|
restoreValue
|
|
3565
3652
|
} = useBoundProp(sizePropTypeUtil4);
|
|
3566
|
-
const lastNonAutoValue =
|
|
3653
|
+
const lastNonAutoValue = useRef11(null);
|
|
3567
3654
|
const { sizeValue, placeholder } = resolveBoundPropValue(
|
|
3568
3655
|
value ?? lastNonAutoValue.current,
|
|
3569
3656
|
boundPropPlaceholder,
|
|
@@ -3620,7 +3707,7 @@ var isTransitioningFromExtendedUnit = (nextValue, previousValue) => {
|
|
|
3620
3707
|
|
|
3621
3708
|
// src/controls/linked-dimensions-control.tsx
|
|
3622
3709
|
var LinkedDimensionsControl = ({ label, isSiteRtl = false, min }) => {
|
|
3623
|
-
const gridRowRefs = [
|
|
3710
|
+
const gridRowRefs = [useRef12(null), useRef12(null)];
|
|
3624
3711
|
const { disabled: sizeDisabled } = useBoundProp(sizePropTypeUtil5);
|
|
3625
3712
|
const {
|
|
3626
3713
|
value: dimensionsValue,
|
|
@@ -3640,7 +3727,7 @@ var LinkedDimensionsControl = ({ label, isSiteRtl = false, min }) => {
|
|
|
3640
3727
|
return true;
|
|
3641
3728
|
};
|
|
3642
3729
|
const [isLinked, setIsLinked] = useState9(() => inferIsLinked());
|
|
3643
|
-
const activeBreakpoint =
|
|
3730
|
+
const activeBreakpoint = useActiveBreakpoint4();
|
|
3644
3731
|
const isCurrentlyDimensions = dimensionsPropTypeUtil.isValid(masterValue ?? masterPlaceholder);
|
|
3645
3732
|
useLayoutEffect(() => {
|
|
3646
3733
|
setIsLinked(inferIsLinked);
|
|
@@ -3813,15 +3900,15 @@ function getCssDimensionProps(label, isSiteRtl) {
|
|
|
3813
3900
|
|
|
3814
3901
|
// src/controls/font-family-control/font-family-control.tsx
|
|
3815
3902
|
import * as React66 from "react";
|
|
3816
|
-
import { useMemo as
|
|
3817
|
-
import { stringPropTypeUtil as
|
|
3903
|
+
import { useMemo as useMemo8 } from "react";
|
|
3904
|
+
import { stringPropTypeUtil as stringPropTypeUtil8 } from "@elementor/editor-props";
|
|
3818
3905
|
import { ChevronDownIcon as ChevronDownIcon2, TextIcon } from "@elementor/icons";
|
|
3819
3906
|
import { bindPopover as bindPopover5, bindTrigger as bindTrigger4, Popover as Popover5, UnstableTag as UnstableTag2, usePopupState as usePopupState7 } from "@elementor/ui";
|
|
3820
3907
|
import { __ as __22 } from "@wordpress/i18n";
|
|
3821
3908
|
|
|
3822
3909
|
// src/components/item-selector.tsx
|
|
3823
3910
|
import * as React65 from "react";
|
|
3824
|
-
import { useCallback as useCallback3, useEffect as
|
|
3911
|
+
import { useCallback as useCallback3, useEffect as useEffect12, useState as useState10 } from "react";
|
|
3825
3912
|
import { PopoverBody, PopoverHeader as PopoverHeader3, PopoverMenuList, SearchField } from "@elementor/editor-ui";
|
|
3826
3913
|
import { Box as Box9, Divider as Divider2, Link, Stack as Stack9, Typography as Typography5 } from "@elementor/ui";
|
|
3827
3914
|
import { debounce } from "@elementor/utils";
|
|
@@ -3975,7 +4062,7 @@ var ItemList = ({
|
|
|
3975
4062
|
};
|
|
3976
4063
|
var useDebounce = (fn, delay) => {
|
|
3977
4064
|
const [debouncedFn] = useState10(() => debounce(fn, delay));
|
|
3978
|
-
|
|
4065
|
+
useEffect12(() => () => debouncedFn.cancel(), [debouncedFn]);
|
|
3979
4066
|
return debouncedFn;
|
|
3980
4067
|
};
|
|
3981
4068
|
|
|
@@ -3993,10 +4080,10 @@ var FontFamilyControl = createControl(
|
|
|
3993
4080
|
setValue: setFontFamily,
|
|
3994
4081
|
disabled,
|
|
3995
4082
|
placeholder
|
|
3996
|
-
} = useBoundProp(
|
|
4083
|
+
} = useBoundProp(stringPropTypeUtil8);
|
|
3997
4084
|
const popoverState = usePopupState7({ variant: "popover" });
|
|
3998
4085
|
const isShowingPlaceholder = !fontFamily && placeholder;
|
|
3999
|
-
const mapFontSubs =
|
|
4086
|
+
const mapFontSubs = useMemo8(() => {
|
|
4000
4087
|
return fontFamilies.map(({ label, fonts }) => ({
|
|
4001
4088
|
label,
|
|
4002
4089
|
items: fonts
|
|
@@ -4051,11 +4138,11 @@ var FontFamilyControl = createControl(
|
|
|
4051
4138
|
|
|
4052
4139
|
// src/controls/url-control.tsx
|
|
4053
4140
|
import * as React67 from "react";
|
|
4054
|
-
import { urlPropTypeUtil } from "@elementor/editor-props";
|
|
4141
|
+
import { urlPropTypeUtil as urlPropTypeUtil2 } from "@elementor/editor-props";
|
|
4055
4142
|
import { TextField as TextField7 } from "@elementor/ui";
|
|
4056
4143
|
var UrlControl = createControl(
|
|
4057
4144
|
({ placeholder: propPlaceholder, ariaLabel }) => {
|
|
4058
|
-
const { value, setValue, disabled, placeholder: boundPlaceholder } = useBoundProp(
|
|
4145
|
+
const { value, setValue, disabled, placeholder: boundPlaceholder } = useBoundProp(urlPropTypeUtil2);
|
|
4059
4146
|
const handleChange = (event) => setValue(event.target.value);
|
|
4060
4147
|
const placeholder = propPlaceholder ?? boundPlaceholder ?? void 0;
|
|
4061
4148
|
return /* @__PURE__ */ React67.createElement(ControlActions, null, /* @__PURE__ */ React67.createElement(
|
|
@@ -4077,7 +4164,7 @@ var UrlControl = createControl(
|
|
|
4077
4164
|
|
|
4078
4165
|
// src/controls/link-control.tsx
|
|
4079
4166
|
import * as React72 from "react";
|
|
4080
|
-
import { useEffect as
|
|
4167
|
+
import { useEffect as useEffect13, useMemo as useMemo10, useState as useState12 } from "react";
|
|
4081
4168
|
import { getLinkInLinkRestriction } from "@elementor/editor-elements";
|
|
4082
4169
|
import { linkPropTypeUtil } from "@elementor/editor-props";
|
|
4083
4170
|
import { MinusIcon, PlusIcon as PlusIcon2 } from "@elementor/icons";
|
|
@@ -4151,12 +4238,12 @@ var RestrictedLinkInfotip = ({
|
|
|
4151
4238
|
|
|
4152
4239
|
// src/controls/query-control.tsx
|
|
4153
4240
|
import * as React70 from "react";
|
|
4154
|
-
import { useMemo as
|
|
4241
|
+
import { useMemo as useMemo9, useState as useState11 } from "react";
|
|
4155
4242
|
import {
|
|
4156
4243
|
numberPropTypeUtil as numberPropTypeUtil2,
|
|
4157
4244
|
queryPropTypeUtil,
|
|
4158
|
-
stringPropTypeUtil as
|
|
4159
|
-
urlPropTypeUtil as
|
|
4245
|
+
stringPropTypeUtil as stringPropTypeUtil9,
|
|
4246
|
+
urlPropTypeUtil as urlPropTypeUtil3
|
|
4160
4247
|
} from "@elementor/editor-props";
|
|
4161
4248
|
import { httpService as httpService2 } from "@elementor/http-client";
|
|
4162
4249
|
import { SearchIcon } from "@elementor/icons";
|
|
@@ -4297,7 +4384,7 @@ function factoryFilter(newValue, options, minInputLength) {
|
|
|
4297
4384
|
// src/controls/query-control.tsx
|
|
4298
4385
|
var QueryControl = createControl((props) => {
|
|
4299
4386
|
const { value: queryValue, setValue: setQueryValue } = useBoundProp(queryPropTypeUtil);
|
|
4300
|
-
const { value: urlValue, setValue: setUrlValue, placeholder: urlPlaceholder } = useBoundProp(
|
|
4387
|
+
const { value: urlValue, setValue: setUrlValue, placeholder: urlPlaceholder } = useBoundProp(urlPropTypeUtil3);
|
|
4301
4388
|
const {
|
|
4302
4389
|
allowCustomValues = true,
|
|
4303
4390
|
queryOptions: { url, params = {} },
|
|
@@ -4317,7 +4404,7 @@ var QueryControl = createControl((props) => {
|
|
|
4317
4404
|
}
|
|
4318
4405
|
const newQueryValue = {
|
|
4319
4406
|
id: numberPropTypeUtil2.create(newValue),
|
|
4320
|
-
label:
|
|
4407
|
+
label: stringPropTypeUtil9.create(findMatchingOption(options, newValue)?.label || null)
|
|
4321
4408
|
};
|
|
4322
4409
|
setQueryValue(newQueryValue);
|
|
4323
4410
|
onSetValue?.(queryPropTypeUtil.create(newQueryValue));
|
|
@@ -4330,7 +4417,7 @@ var QueryControl = createControl((props) => {
|
|
|
4330
4417
|
return;
|
|
4331
4418
|
}
|
|
4332
4419
|
setUrlValue(trimmedValue);
|
|
4333
|
-
onSetValue?.(
|
|
4420
|
+
onSetValue?.(urlPropTypeUtil3.create(trimmedValue));
|
|
4334
4421
|
updateOptions(newValue);
|
|
4335
4422
|
};
|
|
4336
4423
|
const updateOptions = (newValue) => {
|
|
@@ -4340,7 +4427,7 @@ var QueryControl = createControl((props) => {
|
|
|
4340
4427
|
}
|
|
4341
4428
|
debounceFetch({ ...params, term: newValue });
|
|
4342
4429
|
};
|
|
4343
|
-
const debounceFetch =
|
|
4430
|
+
const debounceFetch = useMemo9(
|
|
4344
4431
|
() => debounce2(
|
|
4345
4432
|
(queryParams) => fetchOptions(url, queryParams).then((newOptions) => {
|
|
4346
4433
|
setOptions(formatOptions(newOptions));
|
|
@@ -4438,7 +4525,7 @@ var LinkControl = createControl((props) => {
|
|
|
4438
4525
|
getLinkInLinkRestriction(elementId, value ?? linkPlaceholder)
|
|
4439
4526
|
);
|
|
4440
4527
|
const shouldDisableAddingLink = !isActive && linkInLinkRestriction.shouldRestrict;
|
|
4441
|
-
const debouncedCheckRestriction =
|
|
4528
|
+
const debouncedCheckRestriction = useMemo10(
|
|
4442
4529
|
() => debounce3(() => {
|
|
4443
4530
|
const newRestriction = getLinkInLinkRestriction(elementId, value ?? linkPlaceholder);
|
|
4444
4531
|
if (newRestriction.shouldRestrict && isActive && !linkPlaceholder) {
|
|
@@ -4448,7 +4535,7 @@ var LinkControl = createControl((props) => {
|
|
|
4448
4535
|
}, 300),
|
|
4449
4536
|
[elementId, isActive, value, linkPlaceholder]
|
|
4450
4537
|
);
|
|
4451
|
-
|
|
4538
|
+
useEffect13(() => {
|
|
4452
4539
|
debouncedCheckRestriction();
|
|
4453
4540
|
const handleInlineLinkChanged = (event) => {
|
|
4454
4541
|
const customEvent = event;
|
|
@@ -4524,7 +4611,7 @@ var LinkControl = createControl((props) => {
|
|
|
4524
4611
|
// src/controls/html-tag-control.tsx
|
|
4525
4612
|
import * as React74 from "react";
|
|
4526
4613
|
import { getElementLabel } from "@elementor/editor-elements";
|
|
4527
|
-
import { stringPropTypeUtil as
|
|
4614
|
+
import { stringPropTypeUtil as stringPropTypeUtil10 } from "@elementor/editor-props";
|
|
4528
4615
|
import { MenuListItem as MenuListItem4 } from "@elementor/editor-ui";
|
|
4529
4616
|
import { Select as Select2, styled as styled8, Typography as Typography6 } from "@elementor/ui";
|
|
4530
4617
|
import { __ as __26 } from "@wordpress/i18n";
|
|
@@ -4582,7 +4669,7 @@ var HtmlTagControl = createControl((props) => {
|
|
|
4582
4669
|
fallbackLabels = {},
|
|
4583
4670
|
context: { elementId }
|
|
4584
4671
|
} = props;
|
|
4585
|
-
const { value, setValue, disabled, placeholder } = useBoundProp(
|
|
4672
|
+
const { value, setValue, disabled, placeholder } = useBoundProp(stringPropTypeUtil10);
|
|
4586
4673
|
const handleChange = (event) => {
|
|
4587
4674
|
const newValue = event.target.value || null;
|
|
4588
4675
|
onChange?.(newValue, value);
|
|
@@ -4628,17 +4715,17 @@ var HtmlTagControl = createControl((props) => {
|
|
|
4628
4715
|
|
|
4629
4716
|
// src/controls/gap-control.tsx
|
|
4630
4717
|
import * as React75 from "react";
|
|
4631
|
-
import { useLayoutEffect as useLayoutEffect2, useRef as
|
|
4718
|
+
import { useLayoutEffect as useLayoutEffect2, useRef as useRef13, useState as useState13 } from "react";
|
|
4632
4719
|
import {
|
|
4633
4720
|
layoutDirectionPropTypeUtil,
|
|
4634
4721
|
sizePropTypeUtil as sizePropTypeUtil6
|
|
4635
4722
|
} from "@elementor/editor-props";
|
|
4636
|
-
import { useActiveBreakpoint as
|
|
4723
|
+
import { useActiveBreakpoint as useActiveBreakpoint5 } from "@elementor/editor-responsive";
|
|
4637
4724
|
import { DetachIcon as DetachIcon2, LinkIcon as LinkIcon2 } from "@elementor/icons";
|
|
4638
4725
|
import { Grid as Grid11, Stack as Stack11, Tooltip as Tooltip7 } from "@elementor/ui";
|
|
4639
4726
|
import { __ as __27 } from "@wordpress/i18n";
|
|
4640
4727
|
var GapControl = ({ label }) => {
|
|
4641
|
-
const stackRef =
|
|
4728
|
+
const stackRef = useRef13(null);
|
|
4642
4729
|
const { disabled: sizeDisabled } = useBoundProp(sizePropTypeUtil6);
|
|
4643
4730
|
const {
|
|
4644
4731
|
value: directionValue,
|
|
@@ -4659,7 +4746,7 @@ var GapControl = ({ label }) => {
|
|
|
4659
4746
|
};
|
|
4660
4747
|
const [isLinked, setIsLinked] = useState13(() => inferIsLinked());
|
|
4661
4748
|
const isCurrentlyDirection = layoutDirectionPropTypeUtil.isValid(masterValue ?? masterPlaceholder);
|
|
4662
|
-
const activeBreakpoint =
|
|
4749
|
+
const activeBreakpoint = useActiveBreakpoint5();
|
|
4663
4750
|
useLayoutEffect2(() => {
|
|
4664
4751
|
setIsLinked(inferIsLinked());
|
|
4665
4752
|
}, [activeBreakpoint, isCurrentlyDirection]);
|
|
@@ -4753,8 +4840,8 @@ var Control4 = ({
|
|
|
4753
4840
|
|
|
4754
4841
|
// src/controls/aspect-ratio-control.tsx
|
|
4755
4842
|
import * as React76 from "react";
|
|
4756
|
-
import { useEffect as
|
|
4757
|
-
import { stringPropTypeUtil as
|
|
4843
|
+
import { useEffect as useEffect14, useState as useState14 } from "react";
|
|
4844
|
+
import { stringPropTypeUtil as stringPropTypeUtil11 } from "@elementor/editor-props";
|
|
4758
4845
|
import { MenuListItem as MenuListItem5 } from "@elementor/editor-ui";
|
|
4759
4846
|
import { ArrowsMoveHorizontalIcon, ArrowsMoveVerticalIcon } from "@elementor/icons";
|
|
4760
4847
|
import { Grid as Grid12, Select as Select3, Stack as Stack12, TextField as TextField9 } from "@elementor/ui";
|
|
@@ -4776,7 +4863,7 @@ var AspectRatioControl = createControl(({ label }) => {
|
|
|
4776
4863
|
setValue: setAspectRatioValue,
|
|
4777
4864
|
disabled,
|
|
4778
4865
|
placeholder: externalPlaceholder
|
|
4779
|
-
} = useBoundProp(
|
|
4866
|
+
} = useBoundProp(stringPropTypeUtil11);
|
|
4780
4867
|
const aspectRatioValue = currentPropValue ?? externalPlaceholder;
|
|
4781
4868
|
const isCustomSelected = aspectRatioValue && !RATIO_OPTIONS.some((option) => option.value === aspectRatioValue);
|
|
4782
4869
|
const [initialWidth, initialHeight] = isCustomSelected ? aspectRatioValue.split("/") : ["", ""];
|
|
@@ -4786,7 +4873,7 @@ var AspectRatioControl = createControl(({ label }) => {
|
|
|
4786
4873
|
const [selectedValue, setSelectedValue] = useState14(
|
|
4787
4874
|
isCustomSelected ? CUSTOM_RATIO : aspectRatioValue || ""
|
|
4788
4875
|
);
|
|
4789
|
-
|
|
4876
|
+
useEffect14(() => {
|
|
4790
4877
|
const isCustomValue = aspectRatioValue && !RATIO_OPTIONS.some((option) => option.value === aspectRatioValue);
|
|
4791
4878
|
if (isCustomValue) {
|
|
4792
4879
|
const [width, height] = aspectRatioValue.split("/");
|
|
@@ -4875,7 +4962,7 @@ var AspectRatioControl = createControl(({ label }) => {
|
|
|
4875
4962
|
import * as React78 from "react";
|
|
4876
4963
|
import { useState as useState16 } from "react";
|
|
4877
4964
|
import { useCurrentUserCapabilities } from "@elementor/editor-current-user";
|
|
4878
|
-
import { svgSrcPropTypeUtil, urlPropTypeUtil as
|
|
4965
|
+
import { svgSrcPropTypeUtil, urlPropTypeUtil as urlPropTypeUtil4 } from "@elementor/editor-props";
|
|
4879
4966
|
import { UploadIcon as UploadIcon2 } from "@elementor/icons";
|
|
4880
4967
|
import { Button as Button5, Card as Card2, CardMedia as CardMedia2, CardOverlay as CardOverlay2, CircularProgress as CircularProgress3, Stack as Stack13, styled as styled9, ThemeProvider } from "@elementor/ui";
|
|
4881
4968
|
import { useWpMediaAttachment as useWpMediaAttachment2, useWpMediaFrame as useWpMediaFrame2 } from "@elementor/wp-media";
|
|
@@ -4985,7 +5072,7 @@ var SvgMediaControl = createControl(() => {
|
|
|
4985
5072
|
$$type: "image-attachment-id",
|
|
4986
5073
|
value: selectedAttachment.id
|
|
4987
5074
|
},
|
|
4988
|
-
url:
|
|
5075
|
+
url: urlPropTypeUtil4.create(selectedAttachment.url)
|
|
4989
5076
|
});
|
|
4990
5077
|
}
|
|
4991
5078
|
});
|
|
@@ -5167,7 +5254,7 @@ import {
|
|
|
5167
5254
|
colorStopPropTypeUtil,
|
|
5168
5255
|
gradientColorStopPropTypeUtil,
|
|
5169
5256
|
numberPropTypeUtil as numberPropTypeUtil3,
|
|
5170
|
-
stringPropTypeUtil as
|
|
5257
|
+
stringPropTypeUtil as stringPropTypeUtil12
|
|
5171
5258
|
} from "@elementor/editor-props";
|
|
5172
5259
|
import { UnstableGradientBox } from "@elementor/ui";
|
|
5173
5260
|
var BackgroundGradientColorControl = createControl(() => {
|
|
@@ -5175,13 +5262,13 @@ var BackgroundGradientColorControl = createControl(() => {
|
|
|
5175
5262
|
const handleChange = (newValue) => {
|
|
5176
5263
|
const transformedValue = createTransformableValue(newValue);
|
|
5177
5264
|
if (transformedValue.positions) {
|
|
5178
|
-
transformedValue.positions =
|
|
5265
|
+
transformedValue.positions = stringPropTypeUtil12.create(newValue.positions.join(" "));
|
|
5179
5266
|
}
|
|
5180
5267
|
setValue(transformedValue);
|
|
5181
5268
|
};
|
|
5182
5269
|
const createTransformableValue = (newValue) => ({
|
|
5183
5270
|
...newValue,
|
|
5184
|
-
type:
|
|
5271
|
+
type: stringPropTypeUtil12.create(newValue.type),
|
|
5185
5272
|
angle: numberPropTypeUtil3.create(newValue.angle),
|
|
5186
5273
|
stops: gradientColorStopPropTypeUtil.create(
|
|
5187
5274
|
newValue.stops.map(
|
|
@@ -5217,7 +5304,7 @@ var BackgroundGradientColorControl = createControl(() => {
|
|
|
5217
5304
|
);
|
|
5218
5305
|
});
|
|
5219
5306
|
var initialBackgroundGradientOverlay = backgroundGradientOverlayPropTypeUtil.create({
|
|
5220
|
-
type:
|
|
5307
|
+
type: stringPropTypeUtil12.create("linear"),
|
|
5221
5308
|
angle: numberPropTypeUtil3.create(180),
|
|
5222
5309
|
stops: gradientColorStopPropTypeUtil.create([
|
|
5223
5310
|
colorStopPropTypeUtil.create({
|
|
@@ -5256,8 +5343,8 @@ var BackgroundImageOverlayAttachment = () => {
|
|
|
5256
5343
|
|
|
5257
5344
|
// src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-position.tsx
|
|
5258
5345
|
import * as React82 from "react";
|
|
5259
|
-
import { useRef as
|
|
5260
|
-
import { backgroundImagePositionOffsetPropTypeUtil, stringPropTypeUtil as
|
|
5346
|
+
import { useRef as useRef14 } from "react";
|
|
5347
|
+
import { backgroundImagePositionOffsetPropTypeUtil, stringPropTypeUtil as stringPropTypeUtil13 } from "@elementor/editor-props";
|
|
5261
5348
|
import { MenuListItem as MenuListItem6 } from "@elementor/editor-ui";
|
|
5262
5349
|
import { LetterXIcon, LetterYIcon } from "@elementor/icons";
|
|
5263
5350
|
import { Grid as Grid14, Select as Select4 } from "@elementor/ui";
|
|
@@ -5276,9 +5363,9 @@ var backgroundPositionOptions = [
|
|
|
5276
5363
|
];
|
|
5277
5364
|
var BackgroundImageOverlayPosition = () => {
|
|
5278
5365
|
const backgroundImageOffsetContext = useBoundProp(backgroundImagePositionOffsetPropTypeUtil);
|
|
5279
|
-
const stringPropContext = useBoundProp(
|
|
5366
|
+
const stringPropContext = useBoundProp(stringPropTypeUtil13);
|
|
5280
5367
|
const isCustom = !!backgroundImageOffsetContext.value;
|
|
5281
|
-
const rowRef =
|
|
5368
|
+
const rowRef = useRef14(null);
|
|
5282
5369
|
const handlePositionChange = (event) => {
|
|
5283
5370
|
const value = event.target.value || null;
|
|
5284
5371
|
if (value === "custom") {
|
|
@@ -5351,8 +5438,8 @@ var BackgroundImageOverlayRepeat = () => {
|
|
|
5351
5438
|
|
|
5352
5439
|
// src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-size.tsx
|
|
5353
5440
|
import * as React84 from "react";
|
|
5354
|
-
import { useRef as
|
|
5355
|
-
import { backgroundImageSizeScalePropTypeUtil, stringPropTypeUtil as
|
|
5441
|
+
import { useRef as useRef15 } from "react";
|
|
5442
|
+
import { backgroundImageSizeScalePropTypeUtil, stringPropTypeUtil as stringPropTypeUtil14 } from "@elementor/editor-props";
|
|
5356
5443
|
import {
|
|
5357
5444
|
ArrowBarBothIcon,
|
|
5358
5445
|
ArrowsMaximizeIcon,
|
|
@@ -5391,9 +5478,9 @@ var sizeControlOptions = [
|
|
|
5391
5478
|
];
|
|
5392
5479
|
var BackgroundImageOverlaySize = () => {
|
|
5393
5480
|
const backgroundImageScaleContext = useBoundProp(backgroundImageSizeScalePropTypeUtil);
|
|
5394
|
-
const stringPropContext = useBoundProp(
|
|
5481
|
+
const stringPropContext = useBoundProp(stringPropTypeUtil14);
|
|
5395
5482
|
const isCustom = !!backgroundImageScaleContext.value;
|
|
5396
|
-
const rowRef =
|
|
5483
|
+
const rowRef = useRef15(null);
|
|
5397
5484
|
const handleSizeChange = (size) => {
|
|
5398
5485
|
if (size === "custom") {
|
|
5399
5486
|
backgroundImageScaleContext.setValue({ width: null, height: null });
|
|
@@ -5428,7 +5515,7 @@ var BackgroundImageOverlaySize = () => {
|
|
|
5428
5515
|
};
|
|
5429
5516
|
|
|
5430
5517
|
// src/controls/background-control/background-overlay/use-background-tabs-history.ts
|
|
5431
|
-
import { useRef as
|
|
5518
|
+
import { useRef as useRef16 } from "react";
|
|
5432
5519
|
import {
|
|
5433
5520
|
backgroundColorOverlayPropTypeUtil,
|
|
5434
5521
|
backgroundGradientOverlayPropTypeUtil as backgroundGradientOverlayPropTypeUtil2,
|
|
@@ -5453,7 +5540,7 @@ var useBackgroundTabsHistory = ({
|
|
|
5453
5540
|
return "image";
|
|
5454
5541
|
};
|
|
5455
5542
|
const { getTabsProps, getTabProps, getTabPanelProps } = useTabs(getCurrentOverlayType());
|
|
5456
|
-
const valuesHistory =
|
|
5543
|
+
const valuesHistory = useRef16({
|
|
5457
5544
|
image: initialBackgroundImageOverlay,
|
|
5458
5545
|
color: initialBackgroundColorOverlay2,
|
|
5459
5546
|
gradient: initialBackgroundGradientOverlay2
|
|
@@ -5698,7 +5785,7 @@ var BackgroundClipField = () => {
|
|
|
5698
5785
|
|
|
5699
5786
|
// src/controls/repeatable-control.tsx
|
|
5700
5787
|
import * as React87 from "react";
|
|
5701
|
-
import { useMemo as
|
|
5788
|
+
import { useMemo as useMemo11 } from "react";
|
|
5702
5789
|
import { createArrayPropUtils } from "@elementor/editor-props";
|
|
5703
5790
|
import { Box as Box15 } from "@elementor/ui";
|
|
5704
5791
|
var PLACEHOLDER_REGEX = /\$\{([^}]+)\}/g;
|
|
@@ -5719,11 +5806,11 @@ var RepeatableControl = createControl(
|
|
|
5719
5806
|
if (!childPropTypeUtil) {
|
|
5720
5807
|
return null;
|
|
5721
5808
|
}
|
|
5722
|
-
const childArrayPropTypeUtil2 =
|
|
5809
|
+
const childArrayPropTypeUtil2 = useMemo11(
|
|
5723
5810
|
() => createArrayPropUtils(childPropTypeUtil.key, childPropTypeUtil.schema, propKey),
|
|
5724
5811
|
[childPropTypeUtil.key, childPropTypeUtil.schema, propKey]
|
|
5725
5812
|
);
|
|
5726
|
-
const contextValue =
|
|
5813
|
+
const contextValue = useMemo11(
|
|
5727
5814
|
() => ({
|
|
5728
5815
|
...childControlConfig,
|
|
5729
5816
|
placeholder: placeholder || "",
|
|
@@ -5855,11 +5942,11 @@ var getAllProperties = (pattern) => {
|
|
|
5855
5942
|
|
|
5856
5943
|
// src/controls/key-value-control.tsx
|
|
5857
5944
|
import * as React88 from "react";
|
|
5858
|
-
import { useMemo as
|
|
5945
|
+
import { useMemo as useMemo12, useState as useState17 } from "react";
|
|
5859
5946
|
import {
|
|
5860
5947
|
isTransformable,
|
|
5861
5948
|
keyValuePropTypeUtil,
|
|
5862
|
-
stringPropTypeUtil as
|
|
5949
|
+
stringPropTypeUtil as stringPropTypeUtil15
|
|
5863
5950
|
} from "@elementor/editor-props";
|
|
5864
5951
|
import { FormHelperText, FormLabel as FormLabel3, Grid as Grid18 } from "@elementor/ui";
|
|
5865
5952
|
import { __ as __38 } from "@wordpress/i18n";
|
|
@@ -5898,7 +5985,7 @@ var KeyValueControl = createControl((props = {}) => {
|
|
|
5898
5985
|
keyHelper: void 0,
|
|
5899
5986
|
valueHelper: void 0
|
|
5900
5987
|
};
|
|
5901
|
-
const [keyRegex, valueRegex, errMsg] =
|
|
5988
|
+
const [keyRegex, valueRegex, errMsg] = useMemo12(
|
|
5902
5989
|
() => [
|
|
5903
5990
|
props.regexKey ? new RegExp(props.regexKey) : void 0,
|
|
5904
5991
|
props.regexValue ? new RegExp(props.regexValue) : void 0,
|
|
@@ -5931,7 +6018,7 @@ var KeyValueControl = createControl((props = {}) => {
|
|
|
5931
6018
|
});
|
|
5932
6019
|
return;
|
|
5933
6020
|
}
|
|
5934
|
-
const extractedValue =
|
|
6021
|
+
const extractedValue = stringPropTypeUtil15.extract(newChangedValue);
|
|
5935
6022
|
setSessionState((prev) => ({
|
|
5936
6023
|
...prev,
|
|
5937
6024
|
[fieldType]: extractedValue
|
|
@@ -5971,7 +6058,7 @@ var KeyValueControl = createControl((props = {}) => {
|
|
|
5971
6058
|
|
|
5972
6059
|
// src/controls/position-control.tsx
|
|
5973
6060
|
import * as React89 from "react";
|
|
5974
|
-
import { positionPropTypeUtil, stringPropTypeUtil as
|
|
6061
|
+
import { positionPropTypeUtil, stringPropTypeUtil as stringPropTypeUtil16 } from "@elementor/editor-props";
|
|
5975
6062
|
import { MenuListItem as MenuListItem7 } from "@elementor/editor-ui";
|
|
5976
6063
|
import { LetterXIcon as LetterXIcon2, LetterYIcon as LetterYIcon2 } from "@elementor/icons";
|
|
5977
6064
|
import { Grid as Grid19, Select as Select5 } from "@elementor/ui";
|
|
@@ -5990,8 +6077,9 @@ var positionOptions = [
|
|
|
5990
6077
|
];
|
|
5991
6078
|
var PositionControl = () => {
|
|
5992
6079
|
const positionContext = useBoundProp(positionPropTypeUtil);
|
|
5993
|
-
const stringPropContext = useBoundProp(
|
|
6080
|
+
const stringPropContext = useBoundProp(stringPropTypeUtil16);
|
|
5994
6081
|
const isCustom = !!positionContext.value;
|
|
6082
|
+
const placeholder = positionContext.placeholder ? "custom" : stringPropContext.placeholder ?? null;
|
|
5995
6083
|
const handlePositionChange = (event) => {
|
|
5996
6084
|
const value = event.target.value || null;
|
|
5997
6085
|
if (value === "custom") {
|
|
@@ -6004,9 +6092,11 @@ var PositionControl = () => {
|
|
|
6004
6092
|
Select5,
|
|
6005
6093
|
{
|
|
6006
6094
|
size: "tiny",
|
|
6095
|
+
displayEmpty: true,
|
|
6007
6096
|
disabled: stringPropContext.disabled,
|
|
6008
6097
|
value: (positionContext.value ? "custom" : stringPropContext.value) ?? "",
|
|
6009
6098
|
onChange: handlePositionChange,
|
|
6099
|
+
renderValue: (selectedValue) => getSelectRenderValue(positionOptions, placeholder, selectedValue),
|
|
6010
6100
|
fullWidth: true
|
|
6011
6101
|
},
|
|
6012
6102
|
positionOptions.map(({ label, value }) => /* @__PURE__ */ React89.createElement(MenuListItem7, { key: value, value: value ?? "" }, label))
|
|
@@ -6027,7 +6117,7 @@ var PositionControl = () => {
|
|
|
6027
6117
|
|
|
6028
6118
|
// src/controls/transform-control/transform-repeater-control.tsx
|
|
6029
6119
|
import * as React102 from "react";
|
|
6030
|
-
import { useRef as
|
|
6120
|
+
import { useRef as useRef24 } from "react";
|
|
6031
6121
|
import { transformFunctionsPropTypeUtil, transformPropTypeUtil } from "@elementor/editor-props";
|
|
6032
6122
|
import { AdjustmentsIcon as AdjustmentsIcon2, InfoCircleFilledIcon as InfoCircleFilledIcon2 } from "@elementor/icons";
|
|
6033
6123
|
import { bindTrigger as bindTrigger5, Box as Box19, IconButton as IconButton7, Tooltip as Tooltip8, Typography as Typography7, usePopupState as usePopupState8 } from "@elementor/ui";
|
|
@@ -6091,7 +6181,7 @@ import { __ as __44 } from "@wordpress/i18n";
|
|
|
6091
6181
|
|
|
6092
6182
|
// src/controls/transform-control/functions/move.tsx
|
|
6093
6183
|
import * as React91 from "react";
|
|
6094
|
-
import { useRef as
|
|
6184
|
+
import { useRef as useRef17 } from "react";
|
|
6095
6185
|
import { moveTransformPropTypeUtil } from "@elementor/editor-props";
|
|
6096
6186
|
import { ArrowDownLeftIcon, ArrowDownSmallIcon, ArrowRightIcon } from "@elementor/icons";
|
|
6097
6187
|
import { Grid as Grid21 } from "@elementor/ui";
|
|
@@ -6138,7 +6228,7 @@ var moveAxisControls = [
|
|
|
6138
6228
|
];
|
|
6139
6229
|
var Move = () => {
|
|
6140
6230
|
const context = useBoundProp(moveTransformPropTypeUtil);
|
|
6141
|
-
const rowRefs = [
|
|
6231
|
+
const rowRefs = [useRef17(null), useRef17(null), useRef17(null)];
|
|
6142
6232
|
return /* @__PURE__ */ React91.createElement(Grid21, { container: true, spacing: 1.5 }, /* @__PURE__ */ React91.createElement(PropProvider, { ...context }, /* @__PURE__ */ React91.createElement(PropKeyProvider, { bind: TransformFunctionKeys.move }, moveAxisControls.map((control, index) => /* @__PURE__ */ React91.createElement(
|
|
6143
6233
|
AxisRow,
|
|
6144
6234
|
{
|
|
@@ -6153,7 +6243,7 @@ var Move = () => {
|
|
|
6153
6243
|
|
|
6154
6244
|
// src/controls/transform-control/functions/rotate.tsx
|
|
6155
6245
|
import * as React92 from "react";
|
|
6156
|
-
import { useRef as
|
|
6246
|
+
import { useRef as useRef18 } from "react";
|
|
6157
6247
|
import { rotateTransformPropTypeUtil as rotateTransformPropTypeUtil2 } from "@elementor/editor-props";
|
|
6158
6248
|
import { Arrow360Icon, RotateClockwiseIcon } from "@elementor/icons";
|
|
6159
6249
|
import { Grid as Grid22 } from "@elementor/ui";
|
|
@@ -6178,7 +6268,7 @@ var rotateAxisControls = [
|
|
|
6178
6268
|
var rotateUnits = ["deg", "rad", "grad", "turn"];
|
|
6179
6269
|
var Rotate = () => {
|
|
6180
6270
|
const context = useBoundProp(rotateTransformPropTypeUtil2);
|
|
6181
|
-
const rowRefs = [
|
|
6271
|
+
const rowRefs = [useRef18(null), useRef18(null), useRef18(null)];
|
|
6182
6272
|
return /* @__PURE__ */ React92.createElement(Grid22, { container: true, spacing: 1.5 }, /* @__PURE__ */ React92.createElement(PropProvider, { ...context }, /* @__PURE__ */ React92.createElement(PropKeyProvider, { bind: TransformFunctionKeys.rotate }, rotateAxisControls.map((control, index) => /* @__PURE__ */ React92.createElement(
|
|
6183
6273
|
AxisRow,
|
|
6184
6274
|
{
|
|
@@ -6192,7 +6282,7 @@ var Rotate = () => {
|
|
|
6192
6282
|
|
|
6193
6283
|
// src/controls/transform-control/functions/scale.tsx
|
|
6194
6284
|
import * as React94 from "react";
|
|
6195
|
-
import { useRef as
|
|
6285
|
+
import { useRef as useRef19 } from "react";
|
|
6196
6286
|
import { scaleTransformPropTypeUtil as scaleTransformPropTypeUtil2 } from "@elementor/editor-props";
|
|
6197
6287
|
import { ArrowDownLeftIcon as ArrowDownLeftIcon2, ArrowDownSmallIcon as ArrowDownSmallIcon2, ArrowRightIcon as ArrowRightIcon2 } from "@elementor/icons";
|
|
6198
6288
|
import { Grid as Grid24 } from "@elementor/ui";
|
|
@@ -6225,13 +6315,13 @@ var scaleAxisControls = [
|
|
|
6225
6315
|
];
|
|
6226
6316
|
var Scale = () => {
|
|
6227
6317
|
const context = useBoundProp(scaleTransformPropTypeUtil2);
|
|
6228
|
-
const rowRefs = [
|
|
6318
|
+
const rowRefs = [useRef19(null), useRef19(null), useRef19(null)];
|
|
6229
6319
|
return /* @__PURE__ */ React94.createElement(Grid24, { container: true, spacing: 1.5 }, /* @__PURE__ */ React94.createElement(PropProvider, { ...context }, /* @__PURE__ */ React94.createElement(PropKeyProvider, { bind: TransformFunctionKeys.scale }, scaleAxisControls.map((control, index) => /* @__PURE__ */ React94.createElement(ScaleAxisRow, { key: control.bind, ...control, anchorRef: rowRefs[index] })))));
|
|
6230
6320
|
};
|
|
6231
6321
|
|
|
6232
6322
|
// src/controls/transform-control/functions/skew.tsx
|
|
6233
6323
|
import * as React95 from "react";
|
|
6234
|
-
import { useRef as
|
|
6324
|
+
import { useRef as useRef20 } from "react";
|
|
6235
6325
|
import { skewTransformPropTypeUtil as skewTransformPropTypeUtil2 } from "@elementor/editor-props";
|
|
6236
6326
|
import { ArrowLeftIcon, ArrowRightIcon as ArrowRightIcon3 } from "@elementor/icons";
|
|
6237
6327
|
import { Grid as Grid25 } from "@elementor/ui";
|
|
@@ -6251,7 +6341,7 @@ var skewAxisControls = [
|
|
|
6251
6341
|
var skewUnits = ["deg", "rad", "grad", "turn"];
|
|
6252
6342
|
var Skew = () => {
|
|
6253
6343
|
const context = useBoundProp(skewTransformPropTypeUtil2);
|
|
6254
|
-
const rowRefs = [
|
|
6344
|
+
const rowRefs = [useRef20(null), useRef20(null), useRef20(null)];
|
|
6255
6345
|
return /* @__PURE__ */ React95.createElement(Grid25, { container: true, spacing: 1.5 }, /* @__PURE__ */ React95.createElement(PropProvider, { ...context }, /* @__PURE__ */ React95.createElement(PropKeyProvider, { bind: TransformFunctionKeys.skew }, skewAxisControls.map((control, index) => /* @__PURE__ */ React95.createElement(
|
|
6256
6346
|
AxisRow,
|
|
6257
6347
|
{
|
|
@@ -6264,7 +6354,7 @@ var Skew = () => {
|
|
|
6264
6354
|
};
|
|
6265
6355
|
|
|
6266
6356
|
// src/controls/transform-control/use-transform-tabs-history.tsx
|
|
6267
|
-
import { useRef as
|
|
6357
|
+
import { useRef as useRef21 } from "react";
|
|
6268
6358
|
import {
|
|
6269
6359
|
moveTransformPropTypeUtil as moveTransformPropTypeUtil2,
|
|
6270
6360
|
rotateTransformPropTypeUtil as rotateTransformPropTypeUtil3,
|
|
@@ -6296,7 +6386,7 @@ var useTransformTabsHistory = ({
|
|
|
6296
6386
|
}
|
|
6297
6387
|
};
|
|
6298
6388
|
const { getTabsProps, getTabProps, getTabPanelProps } = useTabs2(getCurrentTransformType());
|
|
6299
|
-
const valuesHistory =
|
|
6389
|
+
const valuesHistory = useRef21({
|
|
6300
6390
|
move: initialMove,
|
|
6301
6391
|
scale: initialScale,
|
|
6302
6392
|
rotate: initialRotate,
|
|
@@ -6440,7 +6530,7 @@ import { __ as __48 } from "@wordpress/i18n";
|
|
|
6440
6530
|
|
|
6441
6531
|
// src/controls/transform-control/transform-base-controls/children-perspective-control.tsx
|
|
6442
6532
|
import * as React99 from "react";
|
|
6443
|
-
import { useRef as
|
|
6533
|
+
import { useRef as useRef22 } from "react";
|
|
6444
6534
|
import { perspectiveOriginPropTypeUtil } from "@elementor/editor-props";
|
|
6445
6535
|
import { Grid as Grid26, Stack as Stack15 } from "@elementor/ui";
|
|
6446
6536
|
import { __ as __46 } from "@wordpress/i18n";
|
|
@@ -6472,13 +6562,13 @@ var PerspectiveOriginControlProvider = () => {
|
|
|
6472
6562
|
return /* @__PURE__ */ React99.createElement(PropProvider, { ...context }, CHILDREN_PERSPECTIVE_FIELDS.map((control) => /* @__PURE__ */ React99.createElement(PropKeyProvider, { bind: control.bind, key: control.bind }, /* @__PURE__ */ React99.createElement(ControlFields, { control }))));
|
|
6473
6563
|
};
|
|
6474
6564
|
var ControlFields = ({ control }) => {
|
|
6475
|
-
const rowRef =
|
|
6565
|
+
const rowRef = useRef22(null);
|
|
6476
6566
|
return /* @__PURE__ */ React99.createElement(PopoverGridContainer, { ref: rowRef }, /* @__PURE__ */ React99.createElement(Grid26, { item: true, xs: 6 }, /* @__PURE__ */ React99.createElement(ControlFormLabel, null, control.label)), /* @__PURE__ */ React99.createElement(Grid26, { item: true, xs: 6 }, /* @__PURE__ */ React99.createElement(SizeControl, { variant: "length", units: control.units, anchorRef: rowRef, disableCustom: true })));
|
|
6477
6567
|
};
|
|
6478
6568
|
|
|
6479
6569
|
// src/controls/transform-control/transform-base-controls/transform-origin-control.tsx
|
|
6480
6570
|
import * as React100 from "react";
|
|
6481
|
-
import { useRef as
|
|
6571
|
+
import { useRef as useRef23 } from "react";
|
|
6482
6572
|
import { transformOriginPropTypeUtil } from "@elementor/editor-props";
|
|
6483
6573
|
import { Grid as Grid27, Stack as Stack16 } from "@elementor/ui";
|
|
6484
6574
|
import { __ as __47 } from "@wordpress/i18n";
|
|
@@ -6506,8 +6596,8 @@ var TransformOriginControl = () => {
|
|
|
6506
6596
|
};
|
|
6507
6597
|
var ControlFields2 = ({ control }) => {
|
|
6508
6598
|
const context = useBoundProp(transformOriginPropTypeUtil);
|
|
6509
|
-
const rowRef =
|
|
6510
|
-
return /* @__PURE__ */ React100.createElement(PropProvider, { ...context }, /* @__PURE__ */ React100.createElement(PropKeyProvider, { bind: control.bind }, /* @__PURE__ */ React100.createElement(PopoverGridContainer, { ref: rowRef }, /* @__PURE__ */ React100.createElement(Grid27, { item: true, xs: 6 }, /* @__PURE__ */ React100.createElement(ControlFormLabel, null, control.label)), /* @__PURE__ */ React100.createElement(Grid27, { item: true, xs: 6 }, /* @__PURE__ */ React100.createElement(SizeControl, { variant: "length", units: control.units, anchorRef: rowRef
|
|
6599
|
+
const rowRef = useRef23(null);
|
|
6600
|
+
return /* @__PURE__ */ React100.createElement(PropProvider, { ...context }, /* @__PURE__ */ React100.createElement(PropKeyProvider, { bind: control.bind }, /* @__PURE__ */ React100.createElement(PopoverGridContainer, { ref: rowRef }, /* @__PURE__ */ React100.createElement(Grid27, { item: true, xs: 6 }, /* @__PURE__ */ React100.createElement(ControlFormLabel, null, control.label)), /* @__PURE__ */ React100.createElement(Grid27, { item: true, xs: 6 }, /* @__PURE__ */ React100.createElement(SizeControl, { variant: "length", units: control.units, anchorRef: rowRef })))));
|
|
6511
6601
|
};
|
|
6512
6602
|
|
|
6513
6603
|
// src/controls/transform-control/transform-settings-control.tsx
|
|
@@ -6554,7 +6644,7 @@ var SIZE10 = "tiny";
|
|
|
6554
6644
|
var TransformRepeaterControl = createControl(
|
|
6555
6645
|
({ showChildrenPerspective }) => {
|
|
6556
6646
|
const context = useBoundProp(transformPropTypeUtil);
|
|
6557
|
-
const headerRef =
|
|
6647
|
+
const headerRef = useRef24(null);
|
|
6558
6648
|
const popupState = usePopupState8({ variant: "popover" });
|
|
6559
6649
|
return /* @__PURE__ */ React102.createElement(PropProvider, { ...context }, /* @__PURE__ */ React102.createElement(
|
|
6560
6650
|
TransformSettingsControl,
|
|
@@ -6634,7 +6724,7 @@ var TransformBasePopoverTrigger = ({
|
|
|
6634
6724
|
|
|
6635
6725
|
// src/controls/transition-control/transition-repeater-control.tsx
|
|
6636
6726
|
import * as React105 from "react";
|
|
6637
|
-
import { useEffect as
|
|
6727
|
+
import { useEffect as useEffect15, useMemo as useMemo15, useState as useState18 } from "react";
|
|
6638
6728
|
import {
|
|
6639
6729
|
createArrayPropUtils as createArrayPropUtils2,
|
|
6640
6730
|
selectionSizePropTypeUtil as selectionSizePropTypeUtil2
|
|
@@ -6646,15 +6736,15 @@ import { __ as __52 } from "@wordpress/i18n";
|
|
|
6646
6736
|
|
|
6647
6737
|
// src/controls/selection-size-control.tsx
|
|
6648
6738
|
import * as React103 from "react";
|
|
6649
|
-
import { useMemo as
|
|
6739
|
+
import { useMemo as useMemo13, useRef as useRef25 } from "react";
|
|
6650
6740
|
import { selectionSizePropTypeUtil } from "@elementor/editor-props";
|
|
6651
6741
|
import { Grid as Grid28 } from "@elementor/ui";
|
|
6652
6742
|
var SelectionSizeControl = createControl(
|
|
6653
6743
|
({ selectionLabel, sizeLabel, selectionConfig, sizeConfigMap }) => {
|
|
6654
6744
|
const { value, setValue, propType } = useBoundProp(selectionSizePropTypeUtil);
|
|
6655
|
-
const rowRef =
|
|
6745
|
+
const rowRef = useRef25(null);
|
|
6656
6746
|
const sizeFieldId = sizeLabel.replace(/\s+/g, "-").toLowerCase();
|
|
6657
|
-
const currentSizeConfig =
|
|
6747
|
+
const currentSizeConfig = useMemo13(() => {
|
|
6658
6748
|
switch (value.selection.$$type) {
|
|
6659
6749
|
case "key-value":
|
|
6660
6750
|
return sizeConfigMap[value?.selection?.value.value.value || ""];
|
|
@@ -6867,7 +6957,7 @@ function subscribeToTransitionEvent() {
|
|
|
6867
6957
|
|
|
6868
6958
|
// src/controls/transition-control/transition-selector.tsx
|
|
6869
6959
|
import * as React104 from "react";
|
|
6870
|
-
import { useMemo as
|
|
6960
|
+
import { useMemo as useMemo14, useRef as useRef26 } from "react";
|
|
6871
6961
|
import { keyValuePropTypeUtil as keyValuePropTypeUtil2 } from "@elementor/editor-props";
|
|
6872
6962
|
import { PromotionAlert, PromotionChip } from "@elementor/editor-ui";
|
|
6873
6963
|
import { ChevronDownIcon as ChevronDownIcon3, VariationsIcon } from "@elementor/icons";
|
|
@@ -6954,9 +7044,9 @@ var TransitionSelector = ({
|
|
|
6954
7044
|
const {
|
|
6955
7045
|
key: { value: transitionLabel }
|
|
6956
7046
|
} = value;
|
|
6957
|
-
const defaultRef =
|
|
7047
|
+
const defaultRef = useRef26(null);
|
|
6958
7048
|
const popoverState = usePopupState9({ variant: "popover" });
|
|
6959
|
-
const disabledCategories =
|
|
7049
|
+
const disabledCategories = useMemo14(() => {
|
|
6960
7050
|
return new Set(
|
|
6961
7051
|
transitionProperties.filter((cat) => cat.properties.some((prop) => prop.isDisabled)).map((cat) => cat.label)
|
|
6962
7052
|
);
|
|
@@ -7185,11 +7275,11 @@ var TransitionRepeaterControl = createControl(
|
|
|
7185
7275
|
const [recentlyUsedList, setRecentlyUsedList] = useState18([]);
|
|
7186
7276
|
const proInstalled = hasProInstalled2();
|
|
7187
7277
|
const { value, setValue } = useBoundProp(childArrayPropTypeUtil);
|
|
7188
|
-
const { allDisabled: disabledItems, proDisabled: proDisabledItems } =
|
|
7278
|
+
const { allDisabled: disabledItems, proDisabled: proDisabledItems } = useMemo15(
|
|
7189
7279
|
() => getDisabledItemLabels(value),
|
|
7190
7280
|
[value]
|
|
7191
7281
|
);
|
|
7192
|
-
const allowedTransitionSet =
|
|
7282
|
+
const allowedTransitionSet = useMemo15(() => {
|
|
7193
7283
|
const set = /* @__PURE__ */ new Set();
|
|
7194
7284
|
transitionProperties.forEach((category) => {
|
|
7195
7285
|
category.properties.forEach((prop) => {
|
|
@@ -7200,7 +7290,7 @@ var TransitionRepeaterControl = createControl(
|
|
|
7200
7290
|
});
|
|
7201
7291
|
return set;
|
|
7202
7292
|
}, [proInstalled]);
|
|
7203
|
-
|
|
7293
|
+
useEffect15(() => {
|
|
7204
7294
|
if (!value || value.length === 0) {
|
|
7205
7295
|
return;
|
|
7206
7296
|
}
|
|
@@ -7212,10 +7302,10 @@ var TransitionRepeaterControl = createControl(
|
|
|
7212
7302
|
setValue(sanitized);
|
|
7213
7303
|
}
|
|
7214
7304
|
}, [allowedTransitionSet]);
|
|
7215
|
-
|
|
7305
|
+
useEffect15(() => {
|
|
7216
7306
|
recentlyUsedListGetter().then(setRecentlyUsedList);
|
|
7217
7307
|
}, [recentlyUsedListGetter]);
|
|
7218
|
-
const allPropertiesUsed =
|
|
7308
|
+
const allPropertiesUsed = useMemo15(() => areAllPropertiesUsed(value), [value]);
|
|
7219
7309
|
const isAddItemDisabled = !currentStyleIsNormal || allPropertiesUsed;
|
|
7220
7310
|
return /* @__PURE__ */ React105.createElement(
|
|
7221
7311
|
RepeatableControl,
|
|
@@ -7246,7 +7336,7 @@ var TransitionRepeaterControl = createControl(
|
|
|
7246
7336
|
// src/controls/date-time-control.tsx
|
|
7247
7337
|
import * as React106 from "react";
|
|
7248
7338
|
import * as dayjs from "dayjs";
|
|
7249
|
-
import { isTransformable as isTransformable2, stringPropTypeUtil as
|
|
7339
|
+
import { isTransformable as isTransformable2, stringPropTypeUtil as stringPropTypeUtil17 } from "@elementor/editor-props";
|
|
7250
7340
|
import { DateTimePropTypeUtil } from "@elementor/editor-props";
|
|
7251
7341
|
import { Box as Box22, DatePicker, LocalizationProvider, TimePicker } from "@elementor/ui";
|
|
7252
7342
|
var DATE_FORMAT = "YYYY-MM-DD";
|
|
@@ -7295,7 +7385,7 @@ var DateTimeControl = createControl(({ inputDisabled }) => {
|
|
|
7295
7385
|
return /* @__PURE__ */ React106.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React106.createElement(ControlActions, null, /* @__PURE__ */ React106.createElement(LocalizationProvider, null, /* @__PURE__ */ React106.createElement(Box22, { display: "flex", gap: 1, alignItems: "center" }, /* @__PURE__ */ React106.createElement(PropKeyProvider, { bind: "date" }, /* @__PURE__ */ React106.createElement(
|
|
7296
7386
|
DatePicker,
|
|
7297
7387
|
{
|
|
7298
|
-
value: parseDateValue(
|
|
7388
|
+
value: parseDateValue(stringPropTypeUtil17.extract(value?.date)),
|
|
7299
7389
|
onChange: (v) => handleChange({ date: v }, { bind: "date" }),
|
|
7300
7390
|
disabled: inputDisabled,
|
|
7301
7391
|
slotProps: {
|
|
@@ -7307,7 +7397,7 @@ var DateTimeControl = createControl(({ inputDisabled }) => {
|
|
|
7307
7397
|
)), /* @__PURE__ */ React106.createElement(PropKeyProvider, { bind: "time" }, /* @__PURE__ */ React106.createElement(
|
|
7308
7398
|
TimePicker,
|
|
7309
7399
|
{
|
|
7310
|
-
value: parseTimeValue(
|
|
7400
|
+
value: parseTimeValue(stringPropTypeUtil17.extract(value?.time)),
|
|
7311
7401
|
onChange: (v) => handleChange({ time: v }, { bind: "time" }),
|
|
7312
7402
|
disabled: inputDisabled,
|
|
7313
7403
|
slotProps: {
|
|
@@ -7319,16 +7409,193 @@ var DateTimeControl = createControl(({ inputDisabled }) => {
|
|
|
7319
7409
|
))))));
|
|
7320
7410
|
});
|
|
7321
7411
|
|
|
7322
|
-
// src/controls/
|
|
7412
|
+
// src/controls/date-range-control.tsx
|
|
7323
7413
|
import * as React108 from "react";
|
|
7324
|
-
import {
|
|
7325
|
-
import {
|
|
7414
|
+
import { dateRangePropTypeUtil, dateStringPropTypeUtil as dateStringPropTypeUtil2 } from "@elementor/editor-props";
|
|
7415
|
+
import { FormHelperText as FormHelperText2, Grid as Grid29, Stack as Stack17 } from "@elementor/ui";
|
|
7416
|
+
import { __ as __53 } from "@wordpress/i18n";
|
|
7417
|
+
|
|
7418
|
+
// src/controls/date-string-control.tsx
|
|
7419
|
+
import * as React107 from "react";
|
|
7420
|
+
import { dateStringPropTypeUtil } from "@elementor/editor-props";
|
|
7421
|
+
import { DatePicker as DatePicker2, LocalizationProvider as LocalizationProvider2 } from "@elementor/ui";
|
|
7422
|
+
|
|
7423
|
+
// src/utils/date-time.ts
|
|
7424
|
+
import * as dayjs2 from "dayjs";
|
|
7425
|
+
var DATE_FORMAT2 = "YYYY-MM-DD";
|
|
7426
|
+
var TIME_FORMAT2 = "HH:mm";
|
|
7427
|
+
function isValidDayjs(value) {
|
|
7428
|
+
return !!value && typeof value.isValid === "function" && value.isValid();
|
|
7429
|
+
}
|
|
7430
|
+
function parseDateString(raw) {
|
|
7431
|
+
if (!raw) {
|
|
7432
|
+
return null;
|
|
7433
|
+
}
|
|
7434
|
+
const parsed = dayjs2.default(raw);
|
|
7435
|
+
return isValidDayjs(parsed) ? parsed : null;
|
|
7436
|
+
}
|
|
7437
|
+
function parseTimeString(raw) {
|
|
7438
|
+
if (!raw) {
|
|
7439
|
+
return null;
|
|
7440
|
+
}
|
|
7441
|
+
const [hours, minutes, seconds] = raw.split(":");
|
|
7442
|
+
const h = Number.parseInt(hours ?? "", 10);
|
|
7443
|
+
const m = Number.parseInt(minutes ?? "", 10);
|
|
7444
|
+
const s = Number.parseInt(seconds ?? "0", 10);
|
|
7445
|
+
if (Number.isNaN(h) || Number.isNaN(m)) {
|
|
7446
|
+
return null;
|
|
7447
|
+
}
|
|
7448
|
+
const base = dayjs2.default();
|
|
7449
|
+
return base.hour(h).minute(m).second(Number.isNaN(s) ? 0 : s).millisecond(0);
|
|
7450
|
+
}
|
|
7451
|
+
|
|
7452
|
+
// src/controls/date-string-control.tsx
|
|
7453
|
+
var DateStringControl = createControl(
|
|
7454
|
+
({ inputDisabled, ariaLabel, error, coerceInvalidToNull = false }) => {
|
|
7455
|
+
const { value, setValue, disabled } = useBoundProp(dateStringPropTypeUtil);
|
|
7456
|
+
const isDisabled = inputDisabled ?? disabled;
|
|
7457
|
+
const slotProps = {
|
|
7458
|
+
textField: {
|
|
7459
|
+
size: "tiny",
|
|
7460
|
+
fullWidth: true,
|
|
7461
|
+
error,
|
|
7462
|
+
inputProps: ariaLabel ? { "aria-label": ariaLabel } : void 0
|
|
7463
|
+
},
|
|
7464
|
+
openPickerButton: { size: "tiny" },
|
|
7465
|
+
openPickerIcon: { fontSize: "tiny" }
|
|
7466
|
+
};
|
|
7467
|
+
const handleChange = (newValue, format) => {
|
|
7468
|
+
if (!newValue) {
|
|
7469
|
+
setValue(null);
|
|
7470
|
+
return;
|
|
7471
|
+
}
|
|
7472
|
+
if (coerceInvalidToNull && !isValidDayjs(newValue)) {
|
|
7473
|
+
setValue(null);
|
|
7474
|
+
return;
|
|
7475
|
+
}
|
|
7476
|
+
setValue(newValue.format(format));
|
|
7477
|
+
};
|
|
7478
|
+
return /* @__PURE__ */ React107.createElement(LocalizationProvider2, null, /* @__PURE__ */ React107.createElement(ControlActions, null, /* @__PURE__ */ React107.createElement(
|
|
7479
|
+
DatePicker2,
|
|
7480
|
+
{
|
|
7481
|
+
value: parseDateString(value ?? ""),
|
|
7482
|
+
onChange: (newValue) => handleChange(newValue, DATE_FORMAT2),
|
|
7483
|
+
disabled: isDisabled,
|
|
7484
|
+
slotProps
|
|
7485
|
+
}
|
|
7486
|
+
)));
|
|
7487
|
+
}
|
|
7488
|
+
);
|
|
7489
|
+
|
|
7490
|
+
// src/controls/date-range-control.tsx
|
|
7491
|
+
var RANGE_LABELS = {
|
|
7492
|
+
min: __53("Min date", "elementor"),
|
|
7493
|
+
max: __53("Max date", "elementor")
|
|
7494
|
+
};
|
|
7495
|
+
var isMaxBeforeMin = (minIso, maxIso) => {
|
|
7496
|
+
if (!minIso || !maxIso) {
|
|
7497
|
+
return false;
|
|
7498
|
+
}
|
|
7499
|
+
return maxIso < minIso;
|
|
7500
|
+
};
|
|
7501
|
+
var RANGE_ERROR_MESSAGE = __53("Max date must be on or after Min date", "elementor");
|
|
7502
|
+
var DateRangeControl = createControl(() => {
|
|
7503
|
+
const { value, setValue, ...propContext } = useBoundProp(dateRangePropTypeUtil);
|
|
7504
|
+
const minString = dateStringPropTypeUtil2.extract(value?.min);
|
|
7505
|
+
const maxString = dateStringPropTypeUtil2.extract(value?.max);
|
|
7506
|
+
const hasInvalidRange = isMaxBeforeMin(minString, maxString);
|
|
7507
|
+
return /* @__PURE__ */ React108.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React108.createElement(Stack17, { gap: 0.75 }, /* @__PURE__ */ React108.createElement(Stack17, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React108.createElement(Grid29, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React108.createElement(Grid29, { item: true, xs: 12 }, /* @__PURE__ */ React108.createElement(ControlFormLabel, null, RANGE_LABELS.min)), /* @__PURE__ */ React108.createElement(Grid29, { item: true, xs: 12 }, /* @__PURE__ */ React108.createElement(
|
|
7508
|
+
BoundDateStringControl,
|
|
7509
|
+
{
|
|
7510
|
+
bind: "min",
|
|
7511
|
+
ariaLabel: RANGE_LABELS.min,
|
|
7512
|
+
error: hasInvalidRange
|
|
7513
|
+
}
|
|
7514
|
+
))), /* @__PURE__ */ React108.createElement(Grid29, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React108.createElement(Grid29, { item: true, xs: 12 }, /* @__PURE__ */ React108.createElement(ControlFormLabel, null, RANGE_LABELS.max)), /* @__PURE__ */ React108.createElement(Grid29, { item: true, xs: 12 }, /* @__PURE__ */ React108.createElement(
|
|
7515
|
+
BoundDateStringControl,
|
|
7516
|
+
{
|
|
7517
|
+
bind: "max",
|
|
7518
|
+
ariaLabel: RANGE_LABELS.max,
|
|
7519
|
+
error: hasInvalidRange
|
|
7520
|
+
}
|
|
7521
|
+
)))), hasInvalidRange && /* @__PURE__ */ React108.createElement(FormHelperText2, { error: true }, RANGE_ERROR_MESSAGE)));
|
|
7522
|
+
});
|
|
7523
|
+
var BoundDateStringControl = ({
|
|
7524
|
+
bind,
|
|
7525
|
+
ariaLabel,
|
|
7526
|
+
error
|
|
7527
|
+
}) => {
|
|
7528
|
+
return /* @__PURE__ */ React108.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React108.createElement(DateStringControl, { ariaLabel, error, coerceInvalidToNull: true }));
|
|
7529
|
+
};
|
|
7530
|
+
|
|
7531
|
+
// src/controls/time-string-control.tsx
|
|
7532
|
+
import * as React109 from "react";
|
|
7533
|
+
import { timeStringPropTypeUtil } from "@elementor/editor-props";
|
|
7534
|
+
import { LocalizationProvider as LocalizationProvider3, TimePicker as TimePicker2 } from "@elementor/ui";
|
|
7535
|
+
var TimeStringControl = createControl(
|
|
7536
|
+
({ inputDisabled, ariaLabel, error, coerceInvalidToNull = false }) => {
|
|
7537
|
+
const { value, setValue, disabled } = useBoundProp(timeStringPropTypeUtil);
|
|
7538
|
+
const isDisabled = inputDisabled ?? disabled;
|
|
7539
|
+
const slotProps = {
|
|
7540
|
+
textField: {
|
|
7541
|
+
size: "tiny",
|
|
7542
|
+
fullWidth: true,
|
|
7543
|
+
error,
|
|
7544
|
+
inputProps: ariaLabel ? { "aria-label": ariaLabel } : void 0
|
|
7545
|
+
},
|
|
7546
|
+
openPickerButton: { size: "tiny" },
|
|
7547
|
+
openPickerIcon: { fontSize: "tiny" }
|
|
7548
|
+
};
|
|
7549
|
+
const handleChange = (newValue, format) => {
|
|
7550
|
+
if (!newValue) {
|
|
7551
|
+
setValue(null);
|
|
7552
|
+
return;
|
|
7553
|
+
}
|
|
7554
|
+
if (coerceInvalidToNull && !isValidDayjs(newValue)) {
|
|
7555
|
+
setValue(null);
|
|
7556
|
+
return;
|
|
7557
|
+
}
|
|
7558
|
+
setValue(newValue.format(format));
|
|
7559
|
+
};
|
|
7560
|
+
return /* @__PURE__ */ React109.createElement(LocalizationProvider3, null, /* @__PURE__ */ React109.createElement(ControlActions, null, /* @__PURE__ */ React109.createElement(
|
|
7561
|
+
TimePicker2,
|
|
7562
|
+
{
|
|
7563
|
+
value: parseTimeString(value ?? ""),
|
|
7564
|
+
onChange: (newValue) => handleChange(newValue, TIME_FORMAT2),
|
|
7565
|
+
disabled: isDisabled,
|
|
7566
|
+
slotProps
|
|
7567
|
+
}
|
|
7568
|
+
)));
|
|
7569
|
+
}
|
|
7570
|
+
);
|
|
7571
|
+
|
|
7572
|
+
// src/controls/time-range-control.tsx
|
|
7573
|
+
import * as React110 from "react";
|
|
7574
|
+
import { timeRangePropTypeUtil } from "@elementor/editor-props";
|
|
7575
|
+
import { Grid as Grid30, Stack as Stack18 } from "@elementor/ui";
|
|
7576
|
+
import { __ as __54 } from "@wordpress/i18n";
|
|
7577
|
+
var RANGE_LABELS2 = {
|
|
7578
|
+
min: __54("Start time", "elementor"),
|
|
7579
|
+
max: __54("End time", "elementor")
|
|
7580
|
+
};
|
|
7581
|
+
var TimeRangeControl = createControl(() => {
|
|
7582
|
+
const { value, setValue, ...propContext } = useBoundProp(timeRangePropTypeUtil);
|
|
7583
|
+
return /* @__PURE__ */ React110.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React110.createElement(Stack18, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React110.createElement(Grid30, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React110.createElement(Grid30, { item: true, xs: 12 }, /* @__PURE__ */ React110.createElement(ControlFormLabel, null, RANGE_LABELS2.min)), /* @__PURE__ */ React110.createElement(Grid30, { item: true, xs: 12 }, /* @__PURE__ */ React110.createElement(BoundTimeStringControl, { bind: "min", ariaLabel: RANGE_LABELS2.min }))), /* @__PURE__ */ React110.createElement(Grid30, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React110.createElement(Grid30, { item: true, xs: 12 }, /* @__PURE__ */ React110.createElement(ControlFormLabel, null, RANGE_LABELS2.max)), /* @__PURE__ */ React110.createElement(Grid30, { item: true, xs: 12 }, /* @__PURE__ */ React110.createElement(BoundTimeStringControl, { bind: "max", ariaLabel: RANGE_LABELS2.max })))));
|
|
7584
|
+
});
|
|
7585
|
+
var BoundTimeStringControl = ({ bind, ariaLabel }) => {
|
|
7586
|
+
return /* @__PURE__ */ React110.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React110.createElement(TimeStringControl, { ariaLabel, coerceInvalidToNull: true }));
|
|
7587
|
+
};
|
|
7588
|
+
|
|
7589
|
+
// src/controls/inline-editing-control.tsx
|
|
7590
|
+
import * as React112 from "react";
|
|
7591
|
+
import { useCallback as useCallback4, useEffect as useEffect17, useMemo as useMemo16 } from "react";
|
|
7592
|
+
import { htmlV3PropTypeUtil, parseHtmlChildren, stringPropTypeUtil as stringPropTypeUtil18 } from "@elementor/editor-props";
|
|
7326
7593
|
import { Box as Box24 } from "@elementor/ui";
|
|
7327
7594
|
import { debounce as debounce4 } from "@elementor/utils";
|
|
7328
7595
|
|
|
7329
7596
|
// src/components/inline-editor.tsx
|
|
7330
|
-
import * as
|
|
7331
|
-
import { useEffect as
|
|
7597
|
+
import * as React111 from "react";
|
|
7598
|
+
import { useEffect as useEffect16, useRef as useRef27 } from "react";
|
|
7332
7599
|
import { Box as Box23 } from "@elementor/ui";
|
|
7333
7600
|
import Bold from "@tiptap/extension-bold";
|
|
7334
7601
|
import Document from "@tiptap/extension-document";
|
|
@@ -7366,7 +7633,7 @@ function htmlToPlainText(html) {
|
|
|
7366
7633
|
var ITALIC_KEYBOARD_SHORTCUT = "i";
|
|
7367
7634
|
var BOLD_KEYBOARD_SHORTCUT = "b";
|
|
7368
7635
|
var UNDERLINE_KEYBOARD_SHORTCUT = "u";
|
|
7369
|
-
var InlineEditor =
|
|
7636
|
+
var InlineEditor = React111.forwardRef((props, ref) => {
|
|
7370
7637
|
const {
|
|
7371
7638
|
value,
|
|
7372
7639
|
setValue,
|
|
@@ -7382,8 +7649,8 @@ var InlineEditor = React107.forwardRef((props, ref) => {
|
|
|
7382
7649
|
onSelectionEnd,
|
|
7383
7650
|
mountElement = null
|
|
7384
7651
|
} = props;
|
|
7385
|
-
const containerRef =
|
|
7386
|
-
const onBlurRef =
|
|
7652
|
+
const containerRef = useRef27(null);
|
|
7653
|
+
const onBlurRef = useRef27(onBlur);
|
|
7387
7654
|
onBlurRef.current = onBlur;
|
|
7388
7655
|
const documentContentSettings = !!expectedTag ? "block+" : "inline*";
|
|
7389
7656
|
const onUpdate = ({ editor: updatedEditor }) => {
|
|
@@ -7477,11 +7744,11 @@ var InlineEditor = React107.forwardRef((props, ref) => {
|
|
|
7477
7744
|
if (mountElement) {
|
|
7478
7745
|
return null;
|
|
7479
7746
|
}
|
|
7480
|
-
return /* @__PURE__ */
|
|
7747
|
+
return /* @__PURE__ */ React111.createElement(Box23, { ref: containerRef, sx, className: wrapperClassName }, /* @__PURE__ */ React111.createElement(EditorContent, { ref, editor }));
|
|
7481
7748
|
});
|
|
7482
7749
|
var useOnUpdate = (callback, dependencies) => {
|
|
7483
|
-
const hasMounted =
|
|
7484
|
-
|
|
7750
|
+
const hasMounted = useRef27(false);
|
|
7751
|
+
useEffect16(() => {
|
|
7485
7752
|
if (hasMounted.current) {
|
|
7486
7753
|
callback();
|
|
7487
7754
|
} else {
|
|
@@ -7499,12 +7766,12 @@ var InlineEditingControl = createControl(
|
|
|
7499
7766
|
props
|
|
7500
7767
|
}) => {
|
|
7501
7768
|
const { value, setValue, placeholder } = useBoundProp(htmlV3PropTypeUtil);
|
|
7502
|
-
const content =
|
|
7503
|
-
const debouncedParse =
|
|
7769
|
+
const content = stringPropTypeUtil18.extract(value?.content ?? null) ?? "";
|
|
7770
|
+
const debouncedParse = useMemo16(
|
|
7504
7771
|
() => debounce4((html) => {
|
|
7505
7772
|
const parsed = parseHtmlChildren(html);
|
|
7506
7773
|
setValue({
|
|
7507
|
-
content: parsed.content ?
|
|
7774
|
+
content: parsed.content ? stringPropTypeUtil18.create(parsed.content) : null,
|
|
7508
7775
|
children: parsed.children
|
|
7509
7776
|
});
|
|
7510
7777
|
}, CHILDREN_PARSE_DEBOUNCE_MS),
|
|
@@ -7514,15 +7781,15 @@ var InlineEditingControl = createControl(
|
|
|
7514
7781
|
(newValue) => {
|
|
7515
7782
|
const html = newValue ?? "";
|
|
7516
7783
|
setValue({
|
|
7517
|
-
content: html ?
|
|
7784
|
+
content: html ? stringPropTypeUtil18.create(html) : null,
|
|
7518
7785
|
children: value?.children ?? []
|
|
7519
7786
|
});
|
|
7520
7787
|
debouncedParse(html);
|
|
7521
7788
|
},
|
|
7522
7789
|
[setValue, value?.children, debouncedParse]
|
|
7523
7790
|
);
|
|
7524
|
-
|
|
7525
|
-
return /* @__PURE__ */
|
|
7791
|
+
useEffect17(() => () => debouncedParse.cancel(), [debouncedParse]);
|
|
7792
|
+
return /* @__PURE__ */ React112.createElement(ControlActions, null, /* @__PURE__ */ React112.createElement(
|
|
7526
7793
|
Box24,
|
|
7527
7794
|
{
|
|
7528
7795
|
sx: {
|
|
@@ -7567,7 +7834,7 @@ var InlineEditingControl = createControl(
|
|
|
7567
7834
|
...attributes,
|
|
7568
7835
|
...props
|
|
7569
7836
|
},
|
|
7570
|
-
/* @__PURE__ */
|
|
7837
|
+
/* @__PURE__ */ React112.createElement(
|
|
7571
7838
|
InlineEditor,
|
|
7572
7839
|
{
|
|
7573
7840
|
value: content,
|
|
@@ -7580,19 +7847,27 @@ var InlineEditingControl = createControl(
|
|
|
7580
7847
|
);
|
|
7581
7848
|
|
|
7582
7849
|
// src/controls/email-form-action-control.tsx
|
|
7583
|
-
import * as
|
|
7850
|
+
import * as React113 from "react";
|
|
7584
7851
|
import { emailPropTypeUtil } from "@elementor/editor-props";
|
|
7585
7852
|
import { CollapsibleContent, InfoAlert as InfoAlert2 } from "@elementor/editor-ui";
|
|
7586
|
-
import { Box as Box25, Divider as Divider5, Grid as
|
|
7853
|
+
import { Box as Box25, Divider as Divider5, Grid as Grid31, Stack as Stack19 } from "@elementor/ui";
|
|
7587
7854
|
import { hasProInstalled as hasProInstalled3, isVersionGreaterOrEqual as isVersionGreaterOrEqual2 } from "@elementor/utils";
|
|
7588
|
-
import { __ as
|
|
7855
|
+
import { __ as __55 } from "@wordpress/i18n";
|
|
7589
7856
|
|
|
7590
7857
|
// src/hooks/use-form-field-suggestions.ts
|
|
7591
7858
|
import { getContainer, getSelectedElements as getSelectedElements3 } from "@elementor/editor-elements";
|
|
7592
7859
|
import { isTransformable as isTransformable3 } from "@elementor/editor-props";
|
|
7593
7860
|
import { __privateUseListenTo as useListenTo, commandEndEvent, v1ReadyEvent } from "@elementor/editor-v1-adapters";
|
|
7594
|
-
var FORM_FIELD_WIDGET_TYPES = [
|
|
7595
|
-
|
|
7861
|
+
var FORM_FIELD_WIDGET_TYPES = [
|
|
7862
|
+
"e-form-input",
|
|
7863
|
+
"e-form-textarea",
|
|
7864
|
+
"e-form-checkbox",
|
|
7865
|
+
"e-form-radio-button",
|
|
7866
|
+
"e-form-select",
|
|
7867
|
+
"e-form-date-picker",
|
|
7868
|
+
"e-form-time-picker"
|
|
7869
|
+
];
|
|
7870
|
+
function useFormFieldSuggestions(options) {
|
|
7596
7871
|
return useListenTo(
|
|
7597
7872
|
[
|
|
7598
7873
|
v1ReadyEvent(),
|
|
@@ -7616,6 +7891,13 @@ function useFormFieldSuggestions() {
|
|
|
7616
7891
|
if (!widgetType || !FORM_FIELD_WIDGET_TYPES.includes(widgetType)) {
|
|
7617
7892
|
return;
|
|
7618
7893
|
}
|
|
7894
|
+
if (options?.inputType) {
|
|
7895
|
+
const typeProp = child.settings.get("type");
|
|
7896
|
+
const typeValue = isTransformable3(typeProp) ? typeProp.value : typeProp;
|
|
7897
|
+
if (typeValue !== options.inputType) {
|
|
7898
|
+
return;
|
|
7899
|
+
}
|
|
7900
|
+
}
|
|
7619
7901
|
const cssIdProp = child.settings.get("_cssid");
|
|
7620
7902
|
const fieldId = isTransformable3(cssIdProp) ? cssIdProp.value : cssIdProp;
|
|
7621
7903
|
if (fieldId && typeof fieldId === "string") {
|
|
@@ -7629,14 +7911,14 @@ function useFormFieldSuggestions() {
|
|
|
7629
7911
|
}
|
|
7630
7912
|
|
|
7631
7913
|
// src/controls/email-form-action-control.tsx
|
|
7632
|
-
var EmailField = ({ bind, label, placeholder }) => /* @__PURE__ */
|
|
7633
|
-
var SendToField = ({ placeholder }) => /* @__PURE__ */
|
|
7634
|
-
var SubjectField = () => /* @__PURE__ */
|
|
7914
|
+
var EmailField = ({ bind, label, placeholder }) => /* @__PURE__ */ React113.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React113.createElement(Grid31, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React113.createElement(Grid31, { item: true }, /* @__PURE__ */ React113.createElement(ControlFormLabel, null, label)), /* @__PURE__ */ React113.createElement(Grid31, { item: true }, /* @__PURE__ */ React113.createElement(TextControl, { placeholder }))));
|
|
7915
|
+
var SendToField = ({ placeholder }) => /* @__PURE__ */ React113.createElement(EmailField, { bind: "to", label: __55("Send to", "elementor"), placeholder });
|
|
7916
|
+
var SubjectField = () => /* @__PURE__ */ React113.createElement(
|
|
7635
7917
|
EmailField,
|
|
7636
7918
|
{
|
|
7637
7919
|
bind: "subject",
|
|
7638
|
-
label:
|
|
7639
|
-
placeholder:
|
|
7920
|
+
label: __55("Email subject", "elementor"),
|
|
7921
|
+
placeholder: __55("New form submission", "elementor")
|
|
7640
7922
|
}
|
|
7641
7923
|
);
|
|
7642
7924
|
var MIN_PRO_VERSION_FOR_MENTIONS = "4.1.0";
|
|
@@ -7652,66 +7934,89 @@ var shouldShowMentionsInfo = () => {
|
|
|
7652
7934
|
};
|
|
7653
7935
|
var MessageField = () => {
|
|
7654
7936
|
const suggestions = useFormFieldSuggestions();
|
|
7655
|
-
return /* @__PURE__ */
|
|
7937
|
+
return /* @__PURE__ */ React113.createElement(PropKeyProvider, { bind: "message" }, /* @__PURE__ */ React113.createElement(Grid31, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React113.createElement(Grid31, { item: true }, /* @__PURE__ */ React113.createElement(ControlFormLabel, null, __55("Message", "elementor"))), /* @__PURE__ */ React113.createElement(Grid31, { item: true }, /* @__PURE__ */ React113.createElement(MentionTextAreaControl, { suggestions })), /* @__PURE__ */ React113.createElement(Grid31, { item: true }, /* @__PURE__ */ React113.createElement(InfoAlert2, null, shouldShowMentionsInfo() ? __55(
|
|
7656
7938
|
"[all-fields] shortcode sends all fields. Type @ to insert specific fields and customize your message.",
|
|
7657
7939
|
"elementor"
|
|
7658
|
-
) :
|
|
7940
|
+
) : __55("[all-fields] shortcode sends all fields.", "elementor")))));
|
|
7659
7941
|
};
|
|
7660
|
-
var FromEmailField = () => /* @__PURE__ */
|
|
7942
|
+
var FromEmailField = () => /* @__PURE__ */ React113.createElement(
|
|
7661
7943
|
EmailField,
|
|
7662
7944
|
{
|
|
7663
7945
|
bind: "from",
|
|
7664
|
-
label:
|
|
7665
|
-
placeholder:
|
|
7946
|
+
label: __55("From email", "elementor"),
|
|
7947
|
+
placeholder: __55("What email should appear as the sender?", "elementor")
|
|
7666
7948
|
}
|
|
7667
7949
|
);
|
|
7668
|
-
var FromNameField = () => /* @__PURE__ */
|
|
7950
|
+
var FromNameField = () => /* @__PURE__ */ React113.createElement(
|
|
7669
7951
|
EmailField,
|
|
7670
7952
|
{
|
|
7671
7953
|
bind: "from-name",
|
|
7672
|
-
label:
|
|
7673
|
-
placeholder:
|
|
7954
|
+
label: __55("From name", "elementor"),
|
|
7955
|
+
placeholder: __55("What name should appear as the sender?", "elementor")
|
|
7674
7956
|
}
|
|
7675
7957
|
);
|
|
7676
|
-
var ReplyToField = () =>
|
|
7677
|
-
|
|
7678
|
-
|
|
7679
|
-
|
|
7958
|
+
var ReplyToField = () => {
|
|
7959
|
+
const emailSuggestions = useFormFieldSuggestions({ inputType: "email" });
|
|
7960
|
+
return /* @__PURE__ */ React113.createElement(PropKeyProvider, { bind: "reply-to" }, /* @__PURE__ */ React113.createElement(Grid31, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React113.createElement(Grid31, { item: true }, /* @__PURE__ */ React113.createElement(ControlFormLabel, null, __55("Reply-to", "elementor"))), /* @__PURE__ */ React113.createElement(Grid31, { item: true }, /* @__PURE__ */ React113.createElement(
|
|
7961
|
+
MentionTextAreaControl,
|
|
7962
|
+
{
|
|
7963
|
+
suggestions: emailSuggestions,
|
|
7964
|
+
rows: 1,
|
|
7965
|
+
triggerPosition: "start",
|
|
7966
|
+
placeholder: __55("You can type @ to insert an email field", "elementor")
|
|
7967
|
+
}
|
|
7968
|
+
))));
|
|
7969
|
+
};
|
|
7970
|
+
var CcField = () => /* @__PURE__ */ React113.createElement(EmailField, { bind: "cc", label: __55("Cc", "elementor") });
|
|
7971
|
+
var BccField = () => /* @__PURE__ */ React113.createElement(EmailField, { bind: "bcc", label: __55("Bcc", "elementor") });
|
|
7972
|
+
var MetaDataField = () => /* @__PURE__ */ React113.createElement(PropKeyProvider, { bind: "meta-data" }, /* @__PURE__ */ React113.createElement(Stack19, { gap: 0.5 }, /* @__PURE__ */ React113.createElement(ControlFormLabel, null, __55("Metadata", "elementor")), /* @__PURE__ */ React113.createElement(
|
|
7680
7973
|
ChipsControl,
|
|
7681
7974
|
{
|
|
7682
7975
|
options: [
|
|
7683
|
-
{ label:
|
|
7684
|
-
{ label:
|
|
7685
|
-
{ label:
|
|
7686
|
-
{ label:
|
|
7687
|
-
{ label:
|
|
7976
|
+
{ label: __55("Date", "elementor"), value: "date" },
|
|
7977
|
+
{ label: __55("Time", "elementor"), value: "time" },
|
|
7978
|
+
{ label: __55("Page URL", "elementor"), value: "page-url" },
|
|
7979
|
+
{ label: __55("User agent", "elementor"), value: "user-agent" },
|
|
7980
|
+
{ label: __55("Credit", "elementor"), value: "credit" }
|
|
7688
7981
|
]
|
|
7689
7982
|
}
|
|
7690
7983
|
)));
|
|
7691
|
-
var SendAsField = () => /* @__PURE__ */
|
|
7984
|
+
var SendAsField = () => /* @__PURE__ */ React113.createElement(PropKeyProvider, { bind: "send-as" }, /* @__PURE__ */ React113.createElement(Grid31, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React113.createElement(Grid31, { item: true }, /* @__PURE__ */ React113.createElement(ControlFormLabel, null, __55("Send as", "elementor"))), /* @__PURE__ */ React113.createElement(Grid31, { item: true }, /* @__PURE__ */ React113.createElement(
|
|
7692
7985
|
SelectControl,
|
|
7693
7986
|
{
|
|
7694
7987
|
options: [
|
|
7695
|
-
{ label:
|
|
7696
|
-
{ label:
|
|
7988
|
+
{ label: __55("HTML", "elementor"), value: "html" },
|
|
7989
|
+
{ label: __55("Plain Text", "elementor"), value: "plain" }
|
|
7697
7990
|
]
|
|
7698
7991
|
}
|
|
7699
7992
|
))));
|
|
7700
|
-
var AdvancedSettings = () => /* @__PURE__ */
|
|
7993
|
+
var AdvancedSettings = () => /* @__PURE__ */ React113.createElement(CollapsibleContent, { defaultOpen: false }, /* @__PURE__ */ React113.createElement(Box25, { sx: { pt: 2 } }, /* @__PURE__ */ React113.createElement(Stack19, { gap: 2 }, /* @__PURE__ */ React113.createElement(FromNameField, null), /* @__PURE__ */ React113.createElement(ReplyToField, null), /* @__PURE__ */ React113.createElement(CcField, null), /* @__PURE__ */ React113.createElement(BccField, null), /* @__PURE__ */ React113.createElement(Divider5, null), /* @__PURE__ */ React113.createElement(MetaDataField, null), /* @__PURE__ */ React113.createElement(SendAsField, null))));
|
|
7701
7994
|
var EmailFormActionControl = createControl(({ toPlaceholder }) => {
|
|
7702
7995
|
const { value, setValue, ...propContext } = useBoundProp(emailPropTypeUtil);
|
|
7703
|
-
return /* @__PURE__ */
|
|
7996
|
+
return /* @__PURE__ */ React113.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React113.createElement(Stack19, { gap: 2 }, /* @__PURE__ */ React113.createElement(ControlLabel, null, __55("Email settings", "elementor")), /* @__PURE__ */ React113.createElement(SendToField, { placeholder: toPlaceholder }), /* @__PURE__ */ React113.createElement(SubjectField, null), /* @__PURE__ */ React113.createElement(MessageField, null), /* @__PURE__ */ React113.createElement(FromEmailField, null), /* @__PURE__ */ React113.createElement(AdvancedSettings, null)));
|
|
7997
|
+
});
|
|
7998
|
+
|
|
7999
|
+
// src/controls/attachment-type-control.tsx
|
|
8000
|
+
import * as React114 from "react";
|
|
8001
|
+
import { InfoAlert as InfoAlert3 } from "@elementor/editor-ui";
|
|
8002
|
+
import { Grid as Grid32 } from "@elementor/ui";
|
|
8003
|
+
import { __ as __56 } from "@wordpress/i18n";
|
|
8004
|
+
var AttachmentTypeControl = createControl(({ label, options }) => {
|
|
8005
|
+
return /* @__PURE__ */ React114.createElement(Grid32, { container: true, direction: "column", gap: 1 }, label && /* @__PURE__ */ React114.createElement(Grid32, { item: true }, /* @__PURE__ */ React114.createElement(ControlFormLabel, null, label)), /* @__PURE__ */ React114.createElement(Grid32, { item: true }, /* @__PURE__ */ React114.createElement(SelectControl, { options })), /* @__PURE__ */ React114.createElement(Grid32, { item: true }, /* @__PURE__ */ React114.createElement(InfoAlert3, null, __56(
|
|
8006
|
+
"Linked uploads are saved to the server. Direct attachments will not appear under Submissions.",
|
|
8007
|
+
"elementor"
|
|
8008
|
+
))));
|
|
7704
8009
|
});
|
|
7705
8010
|
|
|
7706
8011
|
// src/components/promotions/display-conditions-control.tsx
|
|
7707
|
-
import * as
|
|
7708
|
-
import { useRef as
|
|
8012
|
+
import * as React116 from "react";
|
|
8013
|
+
import { useRef as useRef28 } from "react";
|
|
7709
8014
|
import { SitemapIcon } from "@elementor/icons";
|
|
7710
|
-
import { IconButton as IconButton8, Stack as
|
|
7711
|
-
import { __ as
|
|
8015
|
+
import { IconButton as IconButton8, Stack as Stack20, Tooltip as Tooltip9 } from "@elementor/ui";
|
|
8016
|
+
import { __ as __57 } from "@wordpress/i18n";
|
|
7712
8017
|
|
|
7713
8018
|
// src/components/promotions/promotion-trigger.tsx
|
|
7714
|
-
import * as
|
|
8019
|
+
import * as React115 from "react";
|
|
7715
8020
|
import { forwardRef as forwardRef12, useCallback as useCallback5, useImperativeHandle, useState as useState19 } from "react";
|
|
7716
8021
|
import { PromotionChip as PromotionChip2, PromotionInfotip } from "@elementor/editor-ui";
|
|
7717
8022
|
import { Box as Box26 } from "@elementor/ui";
|
|
@@ -7731,7 +8036,7 @@ var PromotionTrigger = forwardRef12(
|
|
|
7731
8036
|
});
|
|
7732
8037
|
}, [trackingData]);
|
|
7733
8038
|
useImperativeHandle(ref, () => ({ toggle }), [toggle]);
|
|
7734
|
-
return /* @__PURE__ */
|
|
8039
|
+
return /* @__PURE__ */ React115.createElement(React115.Fragment, null, promotion && /* @__PURE__ */ React115.createElement(
|
|
7735
8040
|
PromotionInfotip,
|
|
7736
8041
|
{
|
|
7737
8042
|
title: promotion.title,
|
|
@@ -7745,7 +8050,7 @@ var PromotionTrigger = forwardRef12(
|
|
|
7745
8050
|
},
|
|
7746
8051
|
onCtaClick: () => trackUpgradePromotionClick(trackingData)
|
|
7747
8052
|
},
|
|
7748
|
-
/* @__PURE__ */
|
|
8053
|
+
/* @__PURE__ */ React115.createElement(
|
|
7749
8054
|
Box26,
|
|
7750
8055
|
{
|
|
7751
8056
|
onClick: (e) => {
|
|
@@ -7754,19 +8059,19 @@ var PromotionTrigger = forwardRef12(
|
|
|
7754
8059
|
},
|
|
7755
8060
|
sx: { cursor: "pointer", display: "inline-flex" }
|
|
7756
8061
|
},
|
|
7757
|
-
children ?? /* @__PURE__ */
|
|
8062
|
+
children ?? /* @__PURE__ */ React115.createElement(PromotionChip2, null)
|
|
7758
8063
|
)
|
|
7759
8064
|
));
|
|
7760
8065
|
}
|
|
7761
8066
|
);
|
|
7762
8067
|
|
|
7763
8068
|
// src/components/promotions/display-conditions-control.tsx
|
|
7764
|
-
var ARIA_LABEL =
|
|
8069
|
+
var ARIA_LABEL = __57("Display Conditions", "elementor");
|
|
7765
8070
|
var TRACKING_DATA = { target_name: "display_conditions", location_l2: "general" };
|
|
7766
8071
|
var DisplayConditionsControl = createControl(() => {
|
|
7767
|
-
const triggerRef =
|
|
7768
|
-
return /* @__PURE__ */
|
|
7769
|
-
|
|
8072
|
+
const triggerRef = useRef28(null);
|
|
8073
|
+
return /* @__PURE__ */ React116.createElement(
|
|
8074
|
+
Stack20,
|
|
7770
8075
|
{
|
|
7771
8076
|
direction: "row",
|
|
7772
8077
|
spacing: 2,
|
|
@@ -7775,8 +8080,8 @@ var DisplayConditionsControl = createControl(() => {
|
|
|
7775
8080
|
alignItems: "center"
|
|
7776
8081
|
}
|
|
7777
8082
|
},
|
|
7778
|
-
/* @__PURE__ */
|
|
7779
|
-
/* @__PURE__ */
|
|
8083
|
+
/* @__PURE__ */ React116.createElement(PromotionTrigger, { ref: triggerRef, promotionKey: "displayConditions", trackingData: TRACKING_DATA }),
|
|
8084
|
+
/* @__PURE__ */ React116.createElement(Tooltip9, { title: ARIA_LABEL, placement: "top" }, /* @__PURE__ */ React116.createElement(
|
|
7780
8085
|
IconButton8,
|
|
7781
8086
|
{
|
|
7782
8087
|
size: "tiny",
|
|
@@ -7789,23 +8094,23 @@ var DisplayConditionsControl = createControl(() => {
|
|
|
7789
8094
|
borderRadius: 1
|
|
7790
8095
|
}
|
|
7791
8096
|
},
|
|
7792
|
-
/* @__PURE__ */
|
|
8097
|
+
/* @__PURE__ */ React116.createElement(SitemapIcon, { fontSize: "tiny", color: "disabled" })
|
|
7793
8098
|
))
|
|
7794
8099
|
);
|
|
7795
8100
|
});
|
|
7796
8101
|
|
|
7797
8102
|
// src/components/promotions/attributes-control.tsx
|
|
7798
|
-
import * as
|
|
7799
|
-
import { useRef as
|
|
8103
|
+
import * as React117 from "react";
|
|
8104
|
+
import { useRef as useRef29 } from "react";
|
|
7800
8105
|
import { PlusIcon as PlusIcon3 } from "@elementor/icons";
|
|
7801
|
-
import { Stack as
|
|
7802
|
-
import { __ as
|
|
7803
|
-
var ARIA_LABEL2 =
|
|
8106
|
+
import { Stack as Stack21, Tooltip as Tooltip10 } from "@elementor/ui";
|
|
8107
|
+
import { __ as __58 } from "@wordpress/i18n";
|
|
8108
|
+
var ARIA_LABEL2 = __58("Attributes", "elementor");
|
|
7804
8109
|
var TRACKING_DATA2 = { target_name: "attributes", location_l2: "general" };
|
|
7805
8110
|
var AttributesControl = createControl(() => {
|
|
7806
|
-
const triggerRef =
|
|
7807
|
-
return /* @__PURE__ */
|
|
7808
|
-
|
|
8111
|
+
const triggerRef = useRef29(null);
|
|
8112
|
+
return /* @__PURE__ */ React117.createElement(
|
|
8113
|
+
Stack21,
|
|
7809
8114
|
{
|
|
7810
8115
|
direction: "row",
|
|
7811
8116
|
spacing: 2,
|
|
@@ -7814,8 +8119,8 @@ var AttributesControl = createControl(() => {
|
|
|
7814
8119
|
alignItems: "center"
|
|
7815
8120
|
}
|
|
7816
8121
|
},
|
|
7817
|
-
/* @__PURE__ */
|
|
7818
|
-
/* @__PURE__ */
|
|
8122
|
+
/* @__PURE__ */ React117.createElement(PromotionTrigger, { ref: triggerRef, promotionKey: "attributes", trackingData: TRACKING_DATA2 }),
|
|
8123
|
+
/* @__PURE__ */ React117.createElement(Tooltip10, { title: ARIA_LABEL2, placement: "top" }, /* @__PURE__ */ React117.createElement(
|
|
7819
8124
|
PlusIcon3,
|
|
7820
8125
|
{
|
|
7821
8126
|
"aria-label": ARIA_LABEL2,
|
|
@@ -7829,30 +8134,29 @@ var AttributesControl = createControl(() => {
|
|
|
7829
8134
|
});
|
|
7830
8135
|
|
|
7831
8136
|
// src/components/icon-buttons/clear-icon-button.tsx
|
|
7832
|
-
import * as
|
|
8137
|
+
import * as React118 from "react";
|
|
7833
8138
|
import { BrushBigIcon } from "@elementor/icons";
|
|
7834
8139
|
import { IconButton as IconButton9, styled as styled11, Tooltip as Tooltip11 } from "@elementor/ui";
|
|
7835
8140
|
var CustomIconButton = styled11(IconButton9)(({ theme }) => ({
|
|
7836
8141
|
width: theme.spacing(2.5),
|
|
7837
8142
|
height: theme.spacing(2.5)
|
|
7838
8143
|
}));
|
|
7839
|
-
var ClearIconButton = ({ tooltipText, onClick, disabled, size = "tiny" }) => /* @__PURE__ */
|
|
8144
|
+
var ClearIconButton = ({ tooltipText, onClick, disabled, size = "tiny" }) => /* @__PURE__ */ React118.createElement(Tooltip11, { title: tooltipText, placement: "top", disableInteractive: true }, /* @__PURE__ */ React118.createElement(CustomIconButton, { "aria-label": tooltipText, size, onClick, disabled }, /* @__PURE__ */ React118.createElement(BrushBigIcon, { fontSize: size })));
|
|
7840
8145
|
|
|
7841
8146
|
// src/components/repeater/repeater.tsx
|
|
7842
|
-
import * as
|
|
7843
|
-
import { useEffect as
|
|
8147
|
+
import * as React119 from "react";
|
|
8148
|
+
import { useEffect as useEffect18, useState as useState20 } from "react";
|
|
7844
8149
|
import { CopyIcon as CopyIcon2, EyeIcon as EyeIcon2, EyeOffIcon as EyeOffIcon2, PlusIcon as PlusIcon4, XIcon as XIcon4 } from "@elementor/icons";
|
|
7845
8150
|
import {
|
|
7846
8151
|
bindPopover as bindPopover8,
|
|
7847
8152
|
bindTrigger as bindTrigger7,
|
|
7848
8153
|
Box as Box27,
|
|
7849
|
-
ClickAwayListener,
|
|
7850
8154
|
IconButton as IconButton10,
|
|
7851
8155
|
Infotip as Infotip4,
|
|
7852
8156
|
Tooltip as Tooltip12,
|
|
7853
8157
|
usePopupState as usePopupState10
|
|
7854
8158
|
} from "@elementor/ui";
|
|
7855
|
-
import { __ as
|
|
8159
|
+
import { __ as __59 } from "@wordpress/i18n";
|
|
7856
8160
|
var SIZE11 = "tiny";
|
|
7857
8161
|
var EMPTY_OPEN_ITEM2 = -1;
|
|
7858
8162
|
var Repeater3 = ({
|
|
@@ -7933,7 +8237,7 @@ var Repeater3 = ({
|
|
|
7933
8237
|
};
|
|
7934
8238
|
const isButtonDisabled = disabled || disableAddItemButton;
|
|
7935
8239
|
const shouldShowInfotip = isButtonDisabled && addButtonInfotipContent;
|
|
7936
|
-
const addButton = /* @__PURE__ */
|
|
8240
|
+
const addButton = /* @__PURE__ */ React119.createElement(
|
|
7937
8241
|
IconButton10,
|
|
7938
8242
|
{
|
|
7939
8243
|
size: SIZE11,
|
|
@@ -7942,11 +8246,11 @@ var Repeater3 = ({
|
|
|
7942
8246
|
},
|
|
7943
8247
|
disabled: isButtonDisabled,
|
|
7944
8248
|
onClick: addRepeaterItem,
|
|
7945
|
-
"aria-label":
|
|
8249
|
+
"aria-label": __59("Add item", "elementor")
|
|
7946
8250
|
},
|
|
7947
|
-
/* @__PURE__ */
|
|
8251
|
+
/* @__PURE__ */ React119.createElement(PlusIcon4, { fontSize: SIZE11 })
|
|
7948
8252
|
);
|
|
7949
|
-
return /* @__PURE__ */
|
|
8253
|
+
return /* @__PURE__ */ React119.createElement(SectionContent, { gap: 2 }, /* @__PURE__ */ React119.createElement(RepeaterHeader, { label, adornment: ControlAdornments }, shouldShowInfotip ? /* @__PURE__ */ React119.createElement(
|
|
7950
8254
|
Infotip4,
|
|
7951
8255
|
{
|
|
7952
8256
|
placement: "right",
|
|
@@ -7954,20 +8258,20 @@ var Repeater3 = ({
|
|
|
7954
8258
|
color: "secondary",
|
|
7955
8259
|
slotProps: { popper: { sx: { width: 300 } } }
|
|
7956
8260
|
},
|
|
7957
|
-
/* @__PURE__ */
|
|
7958
|
-
) : addButton), 0 < uniqueKeys.length && /* @__PURE__ */
|
|
8261
|
+
/* @__PURE__ */ React119.createElement(Box27, { sx: { ...isButtonDisabled ? { cursor: "not-allowed" } : {} } }, addButton)
|
|
8262
|
+
) : addButton), 0 < uniqueKeys.length && /* @__PURE__ */ React119.createElement(SortableProvider, { value: uniqueKeys, onChange: onChangeOrder }, uniqueKeys.map((key) => {
|
|
7959
8263
|
const index = uniqueKeys.indexOf(key);
|
|
7960
8264
|
const value = items2[index];
|
|
7961
8265
|
if (!value) {
|
|
7962
8266
|
return null;
|
|
7963
8267
|
}
|
|
7964
|
-
return /* @__PURE__ */
|
|
8268
|
+
return /* @__PURE__ */ React119.createElement(SortableItem, { id: key, key: `sortable-${key}`, disabled: !isSortable }, /* @__PURE__ */ React119.createElement(
|
|
7965
8269
|
RepeaterItem,
|
|
7966
8270
|
{
|
|
7967
8271
|
disabled,
|
|
7968
8272
|
propDisabled: value?.disabled,
|
|
7969
|
-
label: /* @__PURE__ */
|
|
7970
|
-
startIcon: /* @__PURE__ */
|
|
8273
|
+
label: /* @__PURE__ */ React119.createElement(RepeaterItemLabelSlot, { value }, /* @__PURE__ */ React119.createElement(itemSettings.Label, { value, index })),
|
|
8274
|
+
startIcon: /* @__PURE__ */ React119.createElement(RepeaterItemIconSlot, { value }, /* @__PURE__ */ React119.createElement(itemSettings.Icon, { value })),
|
|
7971
8275
|
removeItem: () => removeRepeaterItem(index),
|
|
7972
8276
|
duplicateItem: () => duplicateRepeaterItem(index),
|
|
7973
8277
|
toggleDisableItem: () => toggleDisableRepeaterItem(index),
|
|
@@ -7981,7 +8285,7 @@ var Repeater3 = ({
|
|
|
7981
8285
|
actions: itemSettings.actions,
|
|
7982
8286
|
value
|
|
7983
8287
|
},
|
|
7984
|
-
(props) => /* @__PURE__ */
|
|
8288
|
+
(props) => /* @__PURE__ */ React119.createElement(
|
|
7985
8289
|
itemSettings.Content,
|
|
7986
8290
|
{
|
|
7987
8291
|
...props,
|
|
@@ -8022,16 +8326,17 @@ var RepeaterItem = ({
|
|
|
8022
8326
|
wrappedOnPopoverClose
|
|
8023
8327
|
);
|
|
8024
8328
|
const triggerProps = bindTrigger7(popoverState);
|
|
8025
|
-
|
|
8026
|
-
const
|
|
8027
|
-
const
|
|
8028
|
-
|
|
8329
|
+
usePopoverDismiss({ isOpen: popoverState.isOpen, onClose: popoverProps.onClose });
|
|
8330
|
+
const duplicateLabel = __59("Duplicate", "elementor");
|
|
8331
|
+
const toggleLabel = propDisabled ? __59("Show", "elementor") : __59("Hide", "elementor");
|
|
8332
|
+
const removeLabel = __59("Remove", "elementor");
|
|
8333
|
+
return /* @__PURE__ */ React119.createElement(Box27, { sx: { display: "contents" } }, /* @__PURE__ */ React119.createElement(
|
|
8029
8334
|
RepeaterTag,
|
|
8030
8335
|
{
|
|
8031
8336
|
disabled,
|
|
8032
8337
|
label,
|
|
8033
8338
|
ref: setRef,
|
|
8034
|
-
"aria-label":
|
|
8339
|
+
"aria-label": __59("Open item", "elementor"),
|
|
8035
8340
|
...triggerProps,
|
|
8036
8341
|
onClick: (e) => {
|
|
8037
8342
|
triggerProps.onClick(e);
|
|
@@ -8040,23 +8345,15 @@ var RepeaterItem = ({
|
|
|
8040
8345
|
}
|
|
8041
8346
|
},
|
|
8042
8347
|
startIcon,
|
|
8043
|
-
actions: /* @__PURE__ */
|
|
8348
|
+
actions: /* @__PURE__ */ React119.createElement(React119.Fragment, null, showDuplicate && /* @__PURE__ */ React119.createElement(Tooltip12, { title: duplicateLabel, placement: "top" }, /* @__PURE__ */ React119.createElement(IconButton10, { size: SIZE11, onClick: duplicateItem, "aria-label": duplicateLabel }, /* @__PURE__ */ React119.createElement(CopyIcon2, { fontSize: SIZE11 }))), showToggle && /* @__PURE__ */ React119.createElement(Tooltip12, { title: toggleLabel, placement: "top" }, /* @__PURE__ */ React119.createElement(IconButton10, { size: SIZE11, onClick: toggleDisableItem, "aria-label": toggleLabel }, propDisabled ? /* @__PURE__ */ React119.createElement(EyeOffIcon2, { fontSize: SIZE11 }) : /* @__PURE__ */ React119.createElement(EyeIcon2, { fontSize: SIZE11 }))), actions?.(value), showRemove && /* @__PURE__ */ React119.createElement(Tooltip12, { title: removeLabel, placement: "top" }, /* @__PURE__ */ React119.createElement(IconButton10, { size: SIZE11, onClick: removeItem, "aria-label": removeLabel }, /* @__PURE__ */ React119.createElement(XIcon4, { fontSize: SIZE11 }))))
|
|
8044
8349
|
}
|
|
8045
|
-
), /* @__PURE__ */
|
|
8046
|
-
ClickAwayListener,
|
|
8047
|
-
{
|
|
8048
|
-
mouseEvent: "onMouseDown",
|
|
8049
|
-
touchEvent: "onTouchStart",
|
|
8050
|
-
onClickAway: popoverProps.onClose
|
|
8051
|
-
},
|
|
8052
|
-
/* @__PURE__ */ React114.createElement(Box27, null, children({ anchorEl: ref }))
|
|
8053
|
-
)));
|
|
8350
|
+
), /* @__PURE__ */ React119.createElement(RepeaterPopover, { width: ref?.getBoundingClientRect().width, ...popoverProps, anchorEl: ref }, /* @__PURE__ */ React119.createElement(Box27, null, children({ anchorEl: ref }))));
|
|
8054
8351
|
};
|
|
8055
8352
|
var usePopover = (openOnMount, onOpen, onPopoverClose) => {
|
|
8056
8353
|
const [ref, setRef] = useState20(null);
|
|
8057
8354
|
const popoverState = usePopupState10({ variant: "popover" });
|
|
8058
8355
|
const popoverProps = bindPopover8(popoverState);
|
|
8059
|
-
|
|
8356
|
+
useEffect18(() => {
|
|
8060
8357
|
if (openOnMount && ref) {
|
|
8061
8358
|
popoverState.open(ref);
|
|
8062
8359
|
onOpen?.();
|
|
@@ -8075,8 +8372,8 @@ var usePopover = (openOnMount, onOpen, onPopoverClose) => {
|
|
|
8075
8372
|
};
|
|
8076
8373
|
|
|
8077
8374
|
// src/components/inline-editor-toolbar.tsx
|
|
8078
|
-
import * as
|
|
8079
|
-
import { useEffect as
|
|
8375
|
+
import * as React121 from "react";
|
|
8376
|
+
import { useEffect as useEffect20, useMemo as useMemo17, useRef as useRef31, useState as useState21 } from "react";
|
|
8080
8377
|
import { getContainer as getContainer2, getElementSetting } from "@elementor/editor-elements";
|
|
8081
8378
|
import {
|
|
8082
8379
|
BoldIcon,
|
|
@@ -8098,14 +8395,14 @@ import {
|
|
|
8098
8395
|
usePopupState as usePopupState11
|
|
8099
8396
|
} from "@elementor/ui";
|
|
8100
8397
|
import { useEditorState } from "@tiptap/react";
|
|
8101
|
-
import { __ as
|
|
8398
|
+
import { __ as __61 } from "@wordpress/i18n";
|
|
8102
8399
|
|
|
8103
8400
|
// src/components/url-popover.tsx
|
|
8104
|
-
import * as
|
|
8105
|
-
import { useEffect as
|
|
8401
|
+
import * as React120 from "react";
|
|
8402
|
+
import { useEffect as useEffect19, useRef as useRef30 } from "react";
|
|
8106
8403
|
import { ExternalLinkIcon } from "@elementor/icons";
|
|
8107
|
-
import { bindPopover as bindPopover9, Popover as Popover8, Stack as
|
|
8108
|
-
import { __ as
|
|
8404
|
+
import { bindPopover as bindPopover9, Popover as Popover8, Stack as Stack22, TextField as TextField10, ToggleButton as ToggleButton2, Tooltip as Tooltip13 } from "@elementor/ui";
|
|
8405
|
+
import { __ as __60 } from "@wordpress/i18n";
|
|
8109
8406
|
var UrlPopover = ({
|
|
8110
8407
|
popupState,
|
|
8111
8408
|
restoreValue,
|
|
@@ -8115,8 +8412,8 @@ var UrlPopover = ({
|
|
|
8115
8412
|
openInNewTab,
|
|
8116
8413
|
onToggleNewTab
|
|
8117
8414
|
}) => {
|
|
8118
|
-
const inputRef =
|
|
8119
|
-
|
|
8415
|
+
const inputRef = useRef30(null);
|
|
8416
|
+
useEffect19(() => {
|
|
8120
8417
|
if (popupState.isOpen) {
|
|
8121
8418
|
requestAnimationFrame(() => inputRef.current?.focus());
|
|
8122
8419
|
}
|
|
@@ -8125,7 +8422,7 @@ var UrlPopover = ({
|
|
|
8125
8422
|
restoreValue();
|
|
8126
8423
|
popupState.close();
|
|
8127
8424
|
};
|
|
8128
|
-
return /* @__PURE__ */
|
|
8425
|
+
return /* @__PURE__ */ React120.createElement(
|
|
8129
8426
|
Popover8,
|
|
8130
8427
|
{
|
|
8131
8428
|
slotProps: {
|
|
@@ -8136,30 +8433,30 @@ var UrlPopover = ({
|
|
|
8136
8433
|
transformOrigin: { vertical: "top", horizontal: "left" },
|
|
8137
8434
|
onClose: handleClose
|
|
8138
8435
|
},
|
|
8139
|
-
/* @__PURE__ */
|
|
8436
|
+
/* @__PURE__ */ React120.createElement(Stack22, { direction: "row", alignItems: "center", gap: 1, sx: { p: 1.5 } }, /* @__PURE__ */ React120.createElement(
|
|
8140
8437
|
TextField10,
|
|
8141
8438
|
{
|
|
8142
8439
|
value,
|
|
8143
8440
|
onChange,
|
|
8144
8441
|
size: "tiny",
|
|
8145
8442
|
fullWidth: true,
|
|
8146
|
-
placeholder:
|
|
8443
|
+
placeholder: __60("Type a URL", "elementor"),
|
|
8147
8444
|
inputProps: { ref: inputRef },
|
|
8148
8445
|
color: "secondary",
|
|
8149
8446
|
InputProps: { sx: { borderRadius: "8px" } },
|
|
8150
8447
|
onKeyUp: (event) => event.key === "Enter" && handleClose()
|
|
8151
8448
|
}
|
|
8152
|
-
), /* @__PURE__ */
|
|
8449
|
+
), /* @__PURE__ */ React120.createElement(Tooltip13, { title: __60("Open in a new tab", "elementor") }, /* @__PURE__ */ React120.createElement(
|
|
8153
8450
|
ToggleButton2,
|
|
8154
8451
|
{
|
|
8155
8452
|
size: "tiny",
|
|
8156
8453
|
value: "newTab",
|
|
8157
8454
|
selected: openInNewTab,
|
|
8158
8455
|
onClick: onToggleNewTab,
|
|
8159
|
-
"aria-label":
|
|
8456
|
+
"aria-label": __60("Open in a new tab", "elementor"),
|
|
8160
8457
|
sx: { borderRadius: "8px" }
|
|
8161
8458
|
},
|
|
8162
|
-
/* @__PURE__ */
|
|
8459
|
+
/* @__PURE__ */ React120.createElement(ExternalLinkIcon, { fontSize: "tiny" })
|
|
8163
8460
|
)))
|
|
8164
8461
|
);
|
|
8165
8462
|
};
|
|
@@ -8168,14 +8465,14 @@ var UrlPopover = ({
|
|
|
8168
8465
|
var InlineEditorToolbar = ({ editor, elementId, sx = {} }) => {
|
|
8169
8466
|
const [urlValue, setUrlValue] = useState21("");
|
|
8170
8467
|
const [openInNewTab, setOpenInNewTab] = useState21(false);
|
|
8171
|
-
const toolbarRef =
|
|
8468
|
+
const toolbarRef = useRef31(null);
|
|
8172
8469
|
const linkPopupState = usePopupState11({ variant: "popover" });
|
|
8173
8470
|
const isElementClickable = elementId ? checkIfElementIsClickable(elementId) : false;
|
|
8174
8471
|
const editorState = useEditorState({
|
|
8175
8472
|
editor,
|
|
8176
8473
|
selector: (ctx) => possibleFormats.filter((format) => ctx.editor.isActive(format))
|
|
8177
8474
|
});
|
|
8178
|
-
const formatButtonsList =
|
|
8475
|
+
const formatButtonsList = useMemo17(() => {
|
|
8179
8476
|
const buttons = Object.values(formatButtons);
|
|
8180
8477
|
if (isElementClickable) {
|
|
8181
8478
|
return buttons.filter((button) => button.action !== "link");
|
|
@@ -8212,10 +8509,10 @@ var InlineEditorToolbar = ({ editor, elementId, sx = {} }) => {
|
|
|
8212
8509
|
}
|
|
8213
8510
|
linkPopupState.close();
|
|
8214
8511
|
};
|
|
8215
|
-
|
|
8512
|
+
useEffect20(() => {
|
|
8216
8513
|
editor?.commands?.focus();
|
|
8217
8514
|
}, [editor]);
|
|
8218
|
-
return /* @__PURE__ */
|
|
8515
|
+
return /* @__PURE__ */ React121.createElement(
|
|
8219
8516
|
Box28,
|
|
8220
8517
|
{
|
|
8221
8518
|
ref: toolbarRef,
|
|
@@ -8232,8 +8529,8 @@ var InlineEditorToolbar = ({ editor, elementId, sx = {} }) => {
|
|
|
8232
8529
|
...sx
|
|
8233
8530
|
}
|
|
8234
8531
|
},
|
|
8235
|
-
/* @__PURE__ */
|
|
8236
|
-
/* @__PURE__ */
|
|
8532
|
+
/* @__PURE__ */ React121.createElement(Tooltip14, { title: clearButton.label, placement: "top", sx: { borderRadius: "8px" } }, /* @__PURE__ */ React121.createElement(IconButton11, { "aria-label": clearButton.label, onClick: () => clearButton.method(editor), size: "tiny" }, clearButton.icon)),
|
|
8533
|
+
/* @__PURE__ */ React121.createElement(
|
|
8237
8534
|
ToggleButtonGroup2,
|
|
8238
8535
|
{
|
|
8239
8536
|
value: editorState,
|
|
@@ -8255,7 +8552,7 @@ var InlineEditorToolbar = ({ editor, elementId, sx = {} }) => {
|
|
|
8255
8552
|
}
|
|
8256
8553
|
}
|
|
8257
8554
|
},
|
|
8258
|
-
formatButtonsList.map((button) => /* @__PURE__ */
|
|
8555
|
+
formatButtonsList.map((button) => /* @__PURE__ */ React121.createElement(Tooltip14, { title: button.label, key: button.action, placement: "top" }, /* @__PURE__ */ React121.createElement(
|
|
8259
8556
|
ToggleButton3,
|
|
8260
8557
|
{
|
|
8261
8558
|
value: button.action,
|
|
@@ -8273,7 +8570,7 @@ var InlineEditorToolbar = ({ editor, elementId, sx = {} }) => {
|
|
|
8273
8570
|
button.icon
|
|
8274
8571
|
)))
|
|
8275
8572
|
),
|
|
8276
|
-
/* @__PURE__ */
|
|
8573
|
+
/* @__PURE__ */ React121.createElement(
|
|
8277
8574
|
UrlPopover,
|
|
8278
8575
|
{
|
|
8279
8576
|
popupState: linkPopupState,
|
|
@@ -8296,64 +8593,64 @@ var checkIfElementIsClickable = (elementId) => {
|
|
|
8296
8593
|
};
|
|
8297
8594
|
var toolbarButtons = {
|
|
8298
8595
|
clear: {
|
|
8299
|
-
label:
|
|
8300
|
-
icon: /* @__PURE__ */
|
|
8596
|
+
label: __61("Clear", "elementor"),
|
|
8597
|
+
icon: /* @__PURE__ */ React121.createElement(MinusIcon2, { fontSize: "tiny" }),
|
|
8301
8598
|
action: "clear",
|
|
8302
8599
|
method: (editor) => {
|
|
8303
8600
|
editor.chain().focus().clearNodes().unsetAllMarks().run();
|
|
8304
8601
|
}
|
|
8305
8602
|
},
|
|
8306
8603
|
bold: {
|
|
8307
|
-
label:
|
|
8308
|
-
icon: /* @__PURE__ */
|
|
8604
|
+
label: __61("Bold", "elementor"),
|
|
8605
|
+
icon: /* @__PURE__ */ React121.createElement(BoldIcon, { fontSize: "tiny" }),
|
|
8309
8606
|
action: "bold",
|
|
8310
8607
|
method: (editor) => {
|
|
8311
8608
|
editor.chain().focus().toggleBold().run();
|
|
8312
8609
|
}
|
|
8313
8610
|
},
|
|
8314
8611
|
italic: {
|
|
8315
|
-
label:
|
|
8316
|
-
icon: /* @__PURE__ */
|
|
8612
|
+
label: __61("Italic", "elementor"),
|
|
8613
|
+
icon: /* @__PURE__ */ React121.createElement(ItalicIcon, { fontSize: "tiny" }),
|
|
8317
8614
|
action: "italic",
|
|
8318
8615
|
method: (editor) => {
|
|
8319
8616
|
editor.chain().focus().toggleItalic().run();
|
|
8320
8617
|
}
|
|
8321
8618
|
},
|
|
8322
8619
|
underline: {
|
|
8323
|
-
label:
|
|
8324
|
-
icon: /* @__PURE__ */
|
|
8620
|
+
label: __61("Underline", "elementor"),
|
|
8621
|
+
icon: /* @__PURE__ */ React121.createElement(UnderlineIcon, { fontSize: "tiny" }),
|
|
8325
8622
|
action: "underline",
|
|
8326
8623
|
method: (editor) => {
|
|
8327
8624
|
editor.chain().focus().toggleUnderline().run();
|
|
8328
8625
|
}
|
|
8329
8626
|
},
|
|
8330
8627
|
strike: {
|
|
8331
|
-
label:
|
|
8332
|
-
icon: /* @__PURE__ */
|
|
8628
|
+
label: __61("Strikethrough", "elementor"),
|
|
8629
|
+
icon: /* @__PURE__ */ React121.createElement(StrikethroughIcon, { fontSize: "tiny" }),
|
|
8333
8630
|
action: "strike",
|
|
8334
8631
|
method: (editor) => {
|
|
8335
8632
|
editor.chain().focus().toggleStrike().run();
|
|
8336
8633
|
}
|
|
8337
8634
|
},
|
|
8338
8635
|
superscript: {
|
|
8339
|
-
label:
|
|
8340
|
-
icon: /* @__PURE__ */
|
|
8636
|
+
label: __61("Superscript", "elementor"),
|
|
8637
|
+
icon: /* @__PURE__ */ React121.createElement(SuperscriptIcon, { fontSize: "tiny" }),
|
|
8341
8638
|
action: "superscript",
|
|
8342
8639
|
method: (editor) => {
|
|
8343
8640
|
editor.chain().focus().toggleSuperscript().run();
|
|
8344
8641
|
}
|
|
8345
8642
|
},
|
|
8346
8643
|
subscript: {
|
|
8347
|
-
label:
|
|
8348
|
-
icon: /* @__PURE__ */
|
|
8644
|
+
label: __61("Subscript", "elementor"),
|
|
8645
|
+
icon: /* @__PURE__ */ React121.createElement(SubscriptIcon, { fontSize: "tiny" }),
|
|
8349
8646
|
action: "subscript",
|
|
8350
8647
|
method: (editor) => {
|
|
8351
8648
|
editor.chain().focus().toggleSubscript().run();
|
|
8352
8649
|
}
|
|
8353
8650
|
},
|
|
8354
8651
|
link: {
|
|
8355
|
-
label:
|
|
8356
|
-
icon: /* @__PURE__ */
|
|
8652
|
+
label: __61("Link", "elementor"),
|
|
8653
|
+
icon: /* @__PURE__ */ React121.createElement(LinkIcon3, { fontSize: "tiny" }),
|
|
8357
8654
|
action: "link",
|
|
8358
8655
|
method: null
|
|
8359
8656
|
}
|
|
@@ -8362,7 +8659,7 @@ var { clear: clearButton, ...formatButtons } = toolbarButtons;
|
|
|
8362
8659
|
var possibleFormats = Object.keys(formatButtons);
|
|
8363
8660
|
|
|
8364
8661
|
// src/components/size/unstable-size-field.tsx
|
|
8365
|
-
import * as
|
|
8662
|
+
import * as React124 from "react";
|
|
8366
8663
|
import { InputAdornment as InputAdornment6 } from "@elementor/ui";
|
|
8367
8664
|
|
|
8368
8665
|
// src/hooks/use-size-value.ts
|
|
@@ -8405,7 +8702,7 @@ var differsFromExternal = (newState, externalState) => {
|
|
|
8405
8702
|
};
|
|
8406
8703
|
|
|
8407
8704
|
// src/components/size/unit-select.tsx
|
|
8408
|
-
import * as
|
|
8705
|
+
import * as React122 from "react";
|
|
8409
8706
|
import { useId as useId4 } from "react";
|
|
8410
8707
|
import { MenuListItem as MenuListItem8 } from "@elementor/editor-ui";
|
|
8411
8708
|
import { bindMenu as bindMenu3, bindTrigger as bindTrigger8, Button as Button7, Menu as Menu4, styled as styled12, usePopupState as usePopupState12 } from "@elementor/ui";
|
|
@@ -8423,7 +8720,7 @@ var UnitSelect = ({ value, showPrimaryColor, onClick, options }) => {
|
|
|
8423
8720
|
onClick(options[index]);
|
|
8424
8721
|
popupState.close();
|
|
8425
8722
|
};
|
|
8426
|
-
return /* @__PURE__ */
|
|
8723
|
+
return /* @__PURE__ */ React122.createElement(React122.Fragment, null, /* @__PURE__ */ React122.createElement(StyledButton3, { isPrimaryColor: showPrimaryColor, size: "small", ...bindTrigger8(popupState) }, value), /* @__PURE__ */ React122.createElement(Menu4, { MenuListProps: { dense: true }, ...bindMenu3(popupState) }, options.map((option, index) => /* @__PURE__ */ React122.createElement(
|
|
8427
8724
|
MenuListItem8,
|
|
8428
8725
|
{
|
|
8429
8726
|
key: option,
|
|
@@ -8452,11 +8749,11 @@ var StyledButton3 = styled12(Button7, {
|
|
|
8452
8749
|
}));
|
|
8453
8750
|
|
|
8454
8751
|
// src/components/size/unstable-size-input.tsx
|
|
8455
|
-
import * as
|
|
8752
|
+
import * as React123 from "react";
|
|
8456
8753
|
import { forwardRef as forwardRef13 } from "react";
|
|
8457
8754
|
var UnstableSizeInput = forwardRef13(
|
|
8458
8755
|
({ type, value, onChange, onKeyDown, onKeyUp, InputProps, onBlur, focused, disabled }, ref) => {
|
|
8459
|
-
return /* @__PURE__ */
|
|
8756
|
+
return /* @__PURE__ */ React123.createElement(
|
|
8460
8757
|
NumberInput,
|
|
8461
8758
|
{
|
|
8462
8759
|
ref,
|
|
@@ -8494,7 +8791,7 @@ var UnstableSizeField = ({
|
|
|
8494
8791
|
const shouldHighlightUnit2 = () => {
|
|
8495
8792
|
return hasValue(size);
|
|
8496
8793
|
};
|
|
8497
|
-
return /* @__PURE__ */
|
|
8794
|
+
return /* @__PURE__ */ React124.createElement(
|
|
8498
8795
|
UnstableSizeInput,
|
|
8499
8796
|
{
|
|
8500
8797
|
type: "number",
|
|
@@ -8503,8 +8800,8 @@ var UnstableSizeField = ({
|
|
|
8503
8800
|
onChange: (event) => setSize(event.target.value),
|
|
8504
8801
|
InputProps: {
|
|
8505
8802
|
...InputProps,
|
|
8506
|
-
startAdornment: startIcon && /* @__PURE__ */
|
|
8507
|
-
endAdornment: /* @__PURE__ */
|
|
8803
|
+
startAdornment: startIcon && /* @__PURE__ */ React124.createElement(InputAdornment6, { position: "start" }, startIcon),
|
|
8804
|
+
endAdornment: /* @__PURE__ */ React124.createElement(InputAdornment6, { position: "end" }, /* @__PURE__ */ React124.createElement(
|
|
8508
8805
|
UnitSelect,
|
|
8509
8806
|
{
|
|
8510
8807
|
options: units2,
|
|
@@ -8522,7 +8819,7 @@ var hasValue = (value) => {
|
|
|
8522
8819
|
};
|
|
8523
8820
|
|
|
8524
8821
|
// src/hooks/use-font-families.ts
|
|
8525
|
-
import { useMemo as
|
|
8822
|
+
import { useMemo as useMemo18 } from "react";
|
|
8526
8823
|
import { getElementorConfig } from "@elementor/editor-v1-adapters";
|
|
8527
8824
|
var getFontControlConfig = () => {
|
|
8528
8825
|
const { controls } = getElementorConfig();
|
|
@@ -8530,7 +8827,7 @@ var getFontControlConfig = () => {
|
|
|
8530
8827
|
};
|
|
8531
8828
|
var useFontFamilies = () => {
|
|
8532
8829
|
const { groups, options } = getFontControlConfig();
|
|
8533
|
-
return
|
|
8830
|
+
return useMemo18(() => {
|
|
8534
8831
|
if (!groups || !options) {
|
|
8535
8832
|
return [];
|
|
8536
8833
|
}
|
|
@@ -8554,6 +8851,7 @@ var useFontFamilies = () => {
|
|
|
8554
8851
|
};
|
|
8555
8852
|
export {
|
|
8556
8853
|
AspectRatioControl,
|
|
8854
|
+
AttachmentTypeControl,
|
|
8557
8855
|
AttributesControl,
|
|
8558
8856
|
BackgroundControl,
|
|
8559
8857
|
BoxShadowRepeaterControl,
|
|
@@ -8566,6 +8864,7 @@ export {
|
|
|
8566
8864
|
ControlFormLabel,
|
|
8567
8865
|
ControlReplacementsProvider,
|
|
8568
8866
|
ControlToggleButtonGroup,
|
|
8867
|
+
DateRangeControl,
|
|
8569
8868
|
DateTimeControl,
|
|
8570
8869
|
DisplayConditionsControl,
|
|
8571
8870
|
EmailFormActionControl,
|
|
@@ -8605,6 +8904,8 @@ export {
|
|
|
8605
8904
|
SwitchControl,
|
|
8606
8905
|
TextAreaControl,
|
|
8607
8906
|
TextControl,
|
|
8907
|
+
TimeRangeControl,
|
|
8908
|
+
TimeStringControl,
|
|
8608
8909
|
ToggleButtonGroupUi,
|
|
8609
8910
|
ToggleControl,
|
|
8610
8911
|
TransformRepeaterControl,
|