@elementor/editor-editing-panel 1.35.0 → 1.37.0
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/CHANGELOG.md +29 -0
- package/dist/index.js +472 -394
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +377 -299
- package/dist/index.mjs.map +1 -1
- package/package.json +11 -11
- package/src/components/creatable-autocomplete/creatable-autocomplete.tsx +27 -15
- package/src/components/creatable-autocomplete/use-autocomplete-states.ts +15 -1
- package/src/components/css-classes/css-class-item.tsx +4 -1
- package/src/components/css-classes/css-class-selector.tsx +58 -44
- package/src/components/style-sections/layout-section/display-field.tsx +1 -1
- package/src/components/style-sections/position-section/position-section.tsx +1 -1
- package/src/components/style-sections/size-section/object-fit-field.tsx +34 -0
- package/src/components/style-sections/size-section/object-position-field.tsx +38 -0
- package/src/components/style-sections/size-section/size-section.tsx +26 -0
- package/src/hooks/use-state-by-element.ts +3 -1
- package/src/styles-inheritance/styles-inheritance-indicator.tsx +1 -1
- package/src/sync/get-elementor-globals.ts +0 -6
- package/src/sync/is-experiment-active.ts +0 -7
package/dist/index.mjs
CHANGED
|
@@ -7,6 +7,7 @@ var { registerControlReplacement, getControlReplacements } = createControlReplac
|
|
|
7
7
|
|
|
8
8
|
// src/components/css-classes/css-class-selector.tsx
|
|
9
9
|
import * as React7 from "react";
|
|
10
|
+
import { useRef, useState as useState4 } from "react";
|
|
10
11
|
import { getElementSetting, updateElementSettings as updateElementSettings2, useElementSetting as useElementSetting2 } from "@elementor/editor-elements";
|
|
11
12
|
import { classesPropTypeUtil } from "@elementor/editor-props";
|
|
12
13
|
import {
|
|
@@ -16,6 +17,7 @@ import {
|
|
|
16
17
|
useProviders,
|
|
17
18
|
validateStyleLabel as validateStyleLabel2
|
|
18
19
|
} from "@elementor/editor-styles-repository";
|
|
20
|
+
import { WarningInfotip } from "@elementor/editor-ui";
|
|
19
21
|
import { MapPinIcon } from "@elementor/icons";
|
|
20
22
|
import { createLocation } from "@elementor/locations";
|
|
21
23
|
import { Chip as Chip3, FormLabel, Stack as Stack3 } from "@elementor/ui";
|
|
@@ -186,7 +188,20 @@ function useInputState(validate) {
|
|
|
186
188
|
setError(errorMessage);
|
|
187
189
|
}
|
|
188
190
|
};
|
|
189
|
-
|
|
191
|
+
const handleInputBlur = () => {
|
|
192
|
+
setInputValue("");
|
|
193
|
+
setError(null);
|
|
194
|
+
};
|
|
195
|
+
return {
|
|
196
|
+
inputValue,
|
|
197
|
+
setInputValue,
|
|
198
|
+
error,
|
|
199
|
+
setError,
|
|
200
|
+
inputHandlers: {
|
|
201
|
+
onChange: handleInputChange,
|
|
202
|
+
onBlur: handleInputBlur
|
|
203
|
+
}
|
|
204
|
+
};
|
|
190
205
|
}
|
|
191
206
|
function useOpenState(initialOpen = false) {
|
|
192
207
|
const [open, setOpen] = useState(initialOpen);
|
|
@@ -253,7 +268,8 @@ function useFilterOptions(parameters) {
|
|
|
253
268
|
}
|
|
254
269
|
|
|
255
270
|
// src/components/creatable-autocomplete/creatable-autocomplete.tsx
|
|
256
|
-
|
|
271
|
+
var CreatableAutocomplete = React4.forwardRef(CreatableAutocompleteInner);
|
|
272
|
+
function CreatableAutocompleteInner({
|
|
257
273
|
selected,
|
|
258
274
|
options: options12,
|
|
259
275
|
entityName,
|
|
@@ -262,8 +278,8 @@ function CreatableAutocomplete({
|
|
|
262
278
|
onCreate,
|
|
263
279
|
validate,
|
|
264
280
|
...props
|
|
265
|
-
}) {
|
|
266
|
-
const { inputValue, setInputValue, error, setError,
|
|
281
|
+
}, ref) {
|
|
282
|
+
const { inputValue, setInputValue, error, setError, inputHandlers } = useInputState(validate);
|
|
267
283
|
const { open, openDropdown, closeDropdown } = useOpenState(props.open);
|
|
268
284
|
const { createOption, loading } = useCreateOption({ onCreate, validate, setInputValue, setError, closeDropdown });
|
|
269
285
|
const [internalOptions, internalSelected] = useMemo(
|
|
@@ -293,6 +309,7 @@ function CreatableAutocomplete({
|
|
|
293
309
|
));
|
|
294
310
|
},
|
|
295
311
|
...props,
|
|
312
|
+
ref,
|
|
296
313
|
freeSolo: true,
|
|
297
314
|
multiple: true,
|
|
298
315
|
clearOnBlur: true,
|
|
@@ -306,7 +323,7 @@ function CreatableAutocomplete({
|
|
|
306
323
|
disableCloseOnSelect: true,
|
|
307
324
|
value: internalSelected,
|
|
308
325
|
options: internalOptions,
|
|
309
|
-
ListboxComponent: error ? React4.forwardRef((_,
|
|
326
|
+
ListboxComponent: error ? React4.forwardRef((_, errorTextRef) => /* @__PURE__ */ React4.createElement(ErrorText, { ref: errorTextRef, error })) : void 0,
|
|
310
327
|
renderGroup: (params) => /* @__PURE__ */ React4.createElement(Group, { ...params }),
|
|
311
328
|
inputValue,
|
|
312
329
|
renderInput: (params) => {
|
|
@@ -316,7 +333,7 @@ function CreatableAutocomplete({
|
|
|
316
333
|
...params,
|
|
317
334
|
placeholder,
|
|
318
335
|
error: Boolean(error),
|
|
319
|
-
|
|
336
|
+
...inputHandlers,
|
|
320
337
|
sx: (theme) => ({
|
|
321
338
|
".MuiAutocomplete-inputRoot.MuiInputBase-adornedStart": {
|
|
322
339
|
paddingLeft: theme.spacing(0.25),
|
|
@@ -364,7 +381,7 @@ var ErrorText = React4.forwardRef(({ error = "error" }, ref) => {
|
|
|
364
381
|
padding: theme.spacing(2)
|
|
365
382
|
})
|
|
366
383
|
},
|
|
367
|
-
/* @__PURE__ */ React4.createElement(Typography, { variant: "caption", sx: { color: "error.main" } }, error)
|
|
384
|
+
/* @__PURE__ */ React4.createElement(Typography, { variant: "caption", sx: { color: "error.main", display: "inline-block" } }, error)
|
|
368
385
|
);
|
|
369
386
|
});
|
|
370
387
|
var StyledGroup = styled("li")`
|
|
@@ -613,7 +630,8 @@ function CssClassItem({
|
|
|
613
630
|
icon,
|
|
614
631
|
chipProps,
|
|
615
632
|
onClickActive,
|
|
616
|
-
renameLabel
|
|
633
|
+
renameLabel,
|
|
634
|
+
setError
|
|
617
635
|
}) {
|
|
618
636
|
const { meta, setMetaState } = useStyle();
|
|
619
637
|
const popupState = usePopupState({ variant: "popover" });
|
|
@@ -628,7 +646,8 @@ function CssClassItem({
|
|
|
628
646
|
} = useEditable({
|
|
629
647
|
value: label,
|
|
630
648
|
onSubmit: renameLabel,
|
|
631
|
-
validation: validateLabel
|
|
649
|
+
validation: validateLabel,
|
|
650
|
+
onError: setError
|
|
632
651
|
});
|
|
633
652
|
const color = error ? "error" : colorProp;
|
|
634
653
|
const providerActions = provider ? stylesRepository3.getProviderByKey(provider)?.actions : null;
|
|
@@ -649,7 +668,7 @@ function CssClassItem({
|
|
|
649
668
|
Chip2,
|
|
650
669
|
{
|
|
651
670
|
size: CHIP_SIZE,
|
|
652
|
-
label: isEditing ? /* @__PURE__ */ React6.createElement(EditableField, { ref,
|
|
671
|
+
label: isEditing ? /* @__PURE__ */ React6.createElement(EditableField, { ref, ...getEditableProps() }) : /* @__PURE__ */ React6.createElement(EllipsisWithTooltip, { maxWidth: "10ch", title: label, as: "div" }),
|
|
653
672
|
variant: isActive && !meta.state && !isEditing ? "filled" : "standard",
|
|
654
673
|
shape: "rounded",
|
|
655
674
|
icon,
|
|
@@ -730,51 +749,65 @@ function CssClassSelector() {
|
|
|
730
749
|
const options12 = useOptions();
|
|
731
750
|
const { value: appliedIds, setValue: setAppliedIds, pushValue: pushAppliedId } = useAppliedClassesIds();
|
|
732
751
|
const { id: activeId, setId: setActiveId } = useStyle();
|
|
752
|
+
const autocompleteRef = useRef(null);
|
|
753
|
+
const [renameError, setRenameError] = useState4(null);
|
|
733
754
|
const handleApply = useHandleApply(appliedIds, setAppliedIds);
|
|
734
755
|
const { create, validate, entityName } = useCreateAction({ pushAppliedId, setActiveId });
|
|
735
756
|
const applied = useAppliedOptions(options12, appliedIds);
|
|
736
757
|
const active = applied.find((option) => option.value === activeId) ?? EMPTY_OPTION;
|
|
737
758
|
const showPlaceholder = applied.every(({ fixed }) => fixed);
|
|
738
759
|
return /* @__PURE__ */ React7.createElement(Stack3, { p: 2 }, /* @__PURE__ */ React7.createElement(Stack3, { direction: "row", gap: 1, alignItems: "center", justifyContent: "space-between" }, /* @__PURE__ */ React7.createElement(FormLabel, { htmlFor: ID, size: "small" }, __3("Classes", "elementor")), /* @__PURE__ */ React7.createElement(Stack3, { direction: "row", gap: 1 }, /* @__PURE__ */ React7.createElement(ClassSelectorActionsSlot, null))), /* @__PURE__ */ React7.createElement(
|
|
739
|
-
|
|
760
|
+
WarningInfotip,
|
|
740
761
|
{
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
{
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
762
|
+
open: Boolean(renameError),
|
|
763
|
+
text: renameError ?? "",
|
|
764
|
+
placement: "bottom",
|
|
765
|
+
width: autocompleteRef.current?.getBoundingClientRect().width,
|
|
766
|
+
offset: [0, -15]
|
|
767
|
+
},
|
|
768
|
+
/* @__PURE__ */ React7.createElement(
|
|
769
|
+
CreatableAutocomplete,
|
|
770
|
+
{
|
|
771
|
+
id: ID,
|
|
772
|
+
ref: autocompleteRef,
|
|
773
|
+
size: "tiny",
|
|
774
|
+
placeholder: showPlaceholder ? __3("Type class name", "elementor") : void 0,
|
|
775
|
+
options: options12,
|
|
776
|
+
selected: applied,
|
|
777
|
+
entityName,
|
|
778
|
+
onSelect: handleApply,
|
|
779
|
+
onCreate: create ?? void 0,
|
|
780
|
+
validate: validate ?? void 0,
|
|
781
|
+
limitTags: TAGS_LIMIT,
|
|
782
|
+
getLimitTagsText: (more) => /* @__PURE__ */ React7.createElement(Chip3, { size: "tiny", variant: "standard", label: `+${more}`, clickable: true }),
|
|
783
|
+
renderTags: (values, getTagProps) => values.map((value, index) => {
|
|
784
|
+
const chipProps = getTagProps({ index });
|
|
785
|
+
const isActive = value.value === active?.value;
|
|
786
|
+
const renameLabel = (newLabel) => {
|
|
787
|
+
if (!value.value) {
|
|
788
|
+
throw new Error(`Cannot rename a class without style id`);
|
|
789
|
+
}
|
|
790
|
+
return updateClassByProvider(value.provider, { label: newLabel, id: value.value });
|
|
791
|
+
};
|
|
792
|
+
return /* @__PURE__ */ React7.createElement(
|
|
793
|
+
CssClassItem,
|
|
794
|
+
{
|
|
795
|
+
key: chipProps.key,
|
|
796
|
+
label: value.label,
|
|
797
|
+
provider: value.provider,
|
|
798
|
+
id: value.value,
|
|
799
|
+
isActive,
|
|
800
|
+
color: isActive && value.color ? value.color : "default",
|
|
801
|
+
icon: value.icon,
|
|
802
|
+
chipProps,
|
|
803
|
+
onClickActive: () => setActiveId(value.value),
|
|
804
|
+
renameLabel,
|
|
805
|
+
setError: setRenameError
|
|
806
|
+
}
|
|
807
|
+
);
|
|
808
|
+
})
|
|
809
|
+
}
|
|
810
|
+
)
|
|
778
811
|
));
|
|
779
812
|
}
|
|
780
813
|
var updateClassByProvider = (provider, data) => {
|
|
@@ -896,7 +929,7 @@ function useHandleApply(appliedIds, setAppliedIds) {
|
|
|
896
929
|
import { __createPanel as createPanel } from "@elementor/editor-panels";
|
|
897
930
|
|
|
898
931
|
// src/components/editing-panel.tsx
|
|
899
|
-
import * as
|
|
932
|
+
import * as React72 from "react";
|
|
900
933
|
import { ControlActionsProvider, ControlReplacementsProvider } from "@elementor/editor-controls";
|
|
901
934
|
import { useSelectedElement } from "@elementor/editor-elements";
|
|
902
935
|
import { Panel, PanelBody, PanelHeader, PanelHeaderTitle } from "@elementor/editor-panels";
|
|
@@ -904,7 +937,7 @@ import { ThemeProvider as ThemeProvider9 } from "@elementor/editor-ui";
|
|
|
904
937
|
import { AtomIcon } from "@elementor/icons";
|
|
905
938
|
import { SessionStorageProvider as SessionStorageProvider3 } from "@elementor/session";
|
|
906
939
|
import { ErrorBoundary } from "@elementor/ui";
|
|
907
|
-
import { __ as
|
|
940
|
+
import { __ as __48 } from "@wordpress/i18n";
|
|
908
941
|
|
|
909
942
|
// src/controls-actions.ts
|
|
910
943
|
import { createMenu } from "@elementor/menus";
|
|
@@ -960,14 +993,14 @@ function EditorPanelErrorFallback() {
|
|
|
960
993
|
}
|
|
961
994
|
|
|
962
995
|
// src/components/editing-panel-tabs.tsx
|
|
963
|
-
import * as
|
|
996
|
+
import * as React71 from "react";
|
|
964
997
|
import { Fragment as Fragment8 } from "react";
|
|
965
998
|
import { Divider as Divider6, Stack as Stack17, Tab, TabPanel, Tabs, useTabs } from "@elementor/ui";
|
|
966
|
-
import { __ as
|
|
999
|
+
import { __ as __47 } from "@wordpress/i18n";
|
|
967
1000
|
|
|
968
1001
|
// src/contexts/scroll-context.tsx
|
|
969
1002
|
import * as React10 from "react";
|
|
970
|
-
import { createContext as createContext4, useContext as useContext4, useEffect, useRef, useState as
|
|
1003
|
+
import { createContext as createContext4, useContext as useContext4, useEffect, useRef as useRef2, useState as useState5 } from "react";
|
|
971
1004
|
import { styled as styled3 } from "@elementor/ui";
|
|
972
1005
|
var ScrollContext = createContext4(void 0);
|
|
973
1006
|
var ScrollPanel = styled3("div")`
|
|
@@ -976,9 +1009,9 @@ var ScrollPanel = styled3("div")`
|
|
|
976
1009
|
`;
|
|
977
1010
|
var DEFAULT_SCROLL_DIRECTION = "up";
|
|
978
1011
|
function ScrollProvider({ children }) {
|
|
979
|
-
const [direction, setDirection] =
|
|
980
|
-
const ref =
|
|
981
|
-
const scrollPos =
|
|
1012
|
+
const [direction, setDirection] = useState5(DEFAULT_SCROLL_DIRECTION);
|
|
1013
|
+
const ref = useRef2(null);
|
|
1014
|
+
const scrollPos = useRef2(0);
|
|
982
1015
|
useEffect(() => {
|
|
983
1016
|
const scrollElement = ref.current;
|
|
984
1017
|
if (!scrollElement) {
|
|
@@ -1005,13 +1038,15 @@ function useScrollDirection() {
|
|
|
1005
1038
|
}
|
|
1006
1039
|
|
|
1007
1040
|
// src/hooks/use-state-by-element.ts
|
|
1008
|
-
import { useState as
|
|
1041
|
+
import { useState as useState6 } from "react";
|
|
1042
|
+
import { isExperimentActive } from "@elementor/editor-v1-adapters";
|
|
1009
1043
|
import { getSessionStorageItem, setSessionStorageItem } from "@elementor/session";
|
|
1010
1044
|
var useStateByElement = (key, initialValue) => {
|
|
1011
1045
|
const { element } = useElement();
|
|
1046
|
+
const isFeatureActive = isExperimentActive("e_v_3_30");
|
|
1012
1047
|
const lookup = `elementor/editor-state/${element.id}/${key}`;
|
|
1013
|
-
const storedValue = getSessionStorageItem(lookup);
|
|
1014
|
-
const [value, setValue] =
|
|
1048
|
+
const storedValue = isFeatureActive ? getSessionStorageItem(lookup) : initialValue;
|
|
1049
|
+
const [value, setValue] = useState6(storedValue ?? initialValue);
|
|
1015
1050
|
const doUpdate = (newValue) => {
|
|
1016
1051
|
setSessionStorageItem(lookup, newValue);
|
|
1017
1052
|
setValue(newValue);
|
|
@@ -1194,13 +1229,13 @@ var Control2 = ({ control }) => {
|
|
|
1194
1229
|
};
|
|
1195
1230
|
|
|
1196
1231
|
// src/components/style-tab.tsx
|
|
1197
|
-
import * as
|
|
1198
|
-
import { useState as
|
|
1232
|
+
import * as React70 from "react";
|
|
1233
|
+
import { useState as useState13 } from "react";
|
|
1199
1234
|
import { CLASSES_PROP_KEY } from "@elementor/editor-props";
|
|
1200
1235
|
import { useActiveBreakpoint } from "@elementor/editor-responsive";
|
|
1201
1236
|
import { SessionStorageProvider as SessionStorageProvider2 } from "@elementor/session";
|
|
1202
1237
|
import { Divider as Divider5, Stack as Stack16 } from "@elementor/ui";
|
|
1203
|
-
import { __ as
|
|
1238
|
+
import { __ as __46 } from "@wordpress/i18n";
|
|
1204
1239
|
|
|
1205
1240
|
// src/contexts/styles-inheritance-context.tsx
|
|
1206
1241
|
import * as React17 from "react";
|
|
@@ -1418,10 +1453,10 @@ var useBaseStyles = () => {
|
|
|
1418
1453
|
};
|
|
1419
1454
|
|
|
1420
1455
|
// src/hooks/use-active-style-def-id.ts
|
|
1421
|
-
import { useState as
|
|
1456
|
+
import { useState as useState7 } from "react";
|
|
1422
1457
|
import { getElementStyles, useElementSetting as useElementSetting5 } from "@elementor/editor-elements";
|
|
1423
1458
|
function useActiveStyleDefId(classProp) {
|
|
1424
|
-
const [activeStyledDefId, setActiveStyledDefId] =
|
|
1459
|
+
const [activeStyledDefId, setActiveStyledDefId] = useState7(null);
|
|
1425
1460
|
const appliedClassesIds = useAppliedClassesIds2(classProp)?.value || [];
|
|
1426
1461
|
const fallback = useFirstAppliedClass(appliedClassesIds);
|
|
1427
1462
|
const activeAndAppliedClassId = useActiveAndAppliedClassId(activeStyledDefId, appliedClassesIds);
|
|
@@ -1592,32 +1627,13 @@ function useStylesField(propName) {
|
|
|
1592
1627
|
|
|
1593
1628
|
// src/styles-inheritance/styles-inheritance-indicator.tsx
|
|
1594
1629
|
import * as React19 from "react";
|
|
1595
|
-
import { useState as
|
|
1630
|
+
import { useState as useState9 } from "react";
|
|
1596
1631
|
import { useBoundProp } from "@elementor/editor-controls";
|
|
1597
1632
|
import { ELEMENTS_BASE_STYLES_PROVIDER_KEY, isElementsStylesProvider as isElementsStylesProvider3 } from "@elementor/editor-styles-repository";
|
|
1633
|
+
import { isExperimentActive as isExperimentActive2 } from "@elementor/editor-v1-adapters";
|
|
1598
1634
|
import { IconButton as IconButton2, Infotip } from "@elementor/ui";
|
|
1599
1635
|
import { __ as __5 } from "@wordpress/i18n";
|
|
1600
1636
|
|
|
1601
|
-
// src/sync/get-elementor-globals.ts
|
|
1602
|
-
var getElementorConfig = () => {
|
|
1603
|
-
const extendedWindow = window;
|
|
1604
|
-
return extendedWindow.elementor?.config ?? {};
|
|
1605
|
-
};
|
|
1606
|
-
var getElementorFrontendConfig = () => {
|
|
1607
|
-
const extendedWindow = window;
|
|
1608
|
-
return extendedWindow.elementorFrontend?.config ?? {};
|
|
1609
|
-
};
|
|
1610
|
-
var getElementorCommonConfig = () => {
|
|
1611
|
-
const extendedWindow = window;
|
|
1612
|
-
return extendedWindow.elementorCommon?.config ?? {};
|
|
1613
|
-
};
|
|
1614
|
-
|
|
1615
|
-
// src/sync/is-experiment-active.ts
|
|
1616
|
-
var isExperimentActive = (experiment) => {
|
|
1617
|
-
const allFeatures = getElementorCommonConfig()?.experimentalFeatures ?? {};
|
|
1618
|
-
return !!allFeatures?.[experiment];
|
|
1619
|
-
};
|
|
1620
|
-
|
|
1621
1637
|
// src/styles-inheritance/styles-inheritance-infotip.tsx
|
|
1622
1638
|
import * as React18 from "react";
|
|
1623
1639
|
import { useMemo as useMemo3 } from "react";
|
|
@@ -1626,10 +1642,10 @@ import { getStylesSchema } from "@elementor/editor-styles";
|
|
|
1626
1642
|
import { Card, CardContent, List as List2, ListItem, ListItemText as ListItemText2 } from "@elementor/ui";
|
|
1627
1643
|
|
|
1628
1644
|
// src/hooks/use-normalized-inheritance-chain-items.tsx
|
|
1629
|
-
import { useEffect as useEffect3, useState as
|
|
1645
|
+
import { useEffect as useEffect3, useState as useState8 } from "react";
|
|
1630
1646
|
var MAXIMUM_ITEMS = 2;
|
|
1631
1647
|
var useNormalizedInheritanceChainItems = (inheritanceChain, bind, resolve) => {
|
|
1632
|
-
const [items3, setItems] =
|
|
1648
|
+
const [items3, setItems] = useState8([]);
|
|
1633
1649
|
useEffect3(() => {
|
|
1634
1650
|
(async () => {
|
|
1635
1651
|
const normalizedItems = await Promise.all(
|
|
@@ -1685,7 +1701,7 @@ var StyleIndicatorInfotip = ({ inheritanceChain, bind }) => {
|
|
|
1685
1701
|
|
|
1686
1702
|
// src/styles-inheritance/styles-inheritance-indicator.tsx
|
|
1687
1703
|
var StylesInheritanceIndicator = () => {
|
|
1688
|
-
const [open, setOpen] =
|
|
1704
|
+
const [open, setOpen] = useState9(false);
|
|
1689
1705
|
const { value, path } = useBoundProp();
|
|
1690
1706
|
const { id: currentStyleId, provider: currentStyleProvider, meta: currentStyleMeta } = useStyle();
|
|
1691
1707
|
const [bind] = path;
|
|
@@ -1702,7 +1718,7 @@ var StylesInheritanceIndicator = () => {
|
|
|
1702
1718
|
const hasValue = value !== null && value !== void 0;
|
|
1703
1719
|
const label = getLabel({ isFinalValue, hasValue });
|
|
1704
1720
|
const variantType = getVariant({ isFinalValue, hasValue, currentStyleProvider });
|
|
1705
|
-
const eIndicationsPopover =
|
|
1721
|
+
const eIndicationsPopover = isExperimentActive2("e_indications_popover");
|
|
1706
1722
|
if (!eIndicationsPopover) {
|
|
1707
1723
|
return /* @__PURE__ */ React19.createElement(StyleIndicator, { variant: variantType, "aria-label": label });
|
|
1708
1724
|
}
|
|
@@ -1867,6 +1883,18 @@ import { __ as __8 } from "@wordpress/i18n";
|
|
|
1867
1883
|
|
|
1868
1884
|
// src/hooks/use-direction.ts
|
|
1869
1885
|
import { useTheme } from "@elementor/ui";
|
|
1886
|
+
|
|
1887
|
+
// src/sync/get-elementor-globals.ts
|
|
1888
|
+
var getElementorConfig = () => {
|
|
1889
|
+
const extendedWindow = window;
|
|
1890
|
+
return extendedWindow.elementor?.config ?? {};
|
|
1891
|
+
};
|
|
1892
|
+
var getElementorFrontendConfig = () => {
|
|
1893
|
+
const extendedWindow = window;
|
|
1894
|
+
return extendedWindow.elementorFrontend?.config ?? {};
|
|
1895
|
+
};
|
|
1896
|
+
|
|
1897
|
+
// src/hooks/use-direction.ts
|
|
1870
1898
|
function useDirection() {
|
|
1871
1899
|
const theme = useTheme();
|
|
1872
1900
|
const isUiRtl = "rtl" === theme.direction, isSiteRtl = !!getElementorFrontendConfig()?.is_rtl;
|
|
@@ -2059,7 +2087,7 @@ import { __ as __11 } from "@wordpress/i18n";
|
|
|
2059
2087
|
|
|
2060
2088
|
// src/components/style-sections/layout-section/utils/rotated-icon.tsx
|
|
2061
2089
|
import * as React33 from "react";
|
|
2062
|
-
import { useRef as
|
|
2090
|
+
import { useRef as useRef3 } from "react";
|
|
2063
2091
|
import { useTheme as useTheme2 } from "@elementor/ui";
|
|
2064
2092
|
var CLOCKWISE_ANGLES = {
|
|
2065
2093
|
row: 0,
|
|
@@ -2080,7 +2108,7 @@ var RotatedIcon = ({
|
|
|
2080
2108
|
offset = 0,
|
|
2081
2109
|
disableRotationForReversed = false
|
|
2082
2110
|
}) => {
|
|
2083
|
-
const rotate =
|
|
2111
|
+
const rotate = useRef3(useGetTargetAngle(isClockwise, offset, disableRotationForReversed));
|
|
2084
2112
|
rotate.current = useGetTargetAngle(isClockwise, offset, disableRotationForReversed, rotate);
|
|
2085
2113
|
return /* @__PURE__ */ React33.createElement(Icon, { fontSize: size, sx: { transition: ".3s", rotate: `${rotate.current}deg` } });
|
|
2086
2114
|
};
|
|
@@ -2287,6 +2315,7 @@ var AlignSelfChild = ({ parentStyleDirection }) => {
|
|
|
2287
2315
|
// src/components/style-sections/layout-section/display-field.tsx
|
|
2288
2316
|
import * as React37 from "react";
|
|
2289
2317
|
import { ToggleControl as ToggleControl4 } from "@elementor/editor-controls";
|
|
2318
|
+
import { isExperimentActive as isExperimentActive3 } from "@elementor/editor-v1-adapters";
|
|
2290
2319
|
import { Stack as Stack10 } from "@elementor/ui";
|
|
2291
2320
|
import { __ as __14 } from "@wordpress/i18n";
|
|
2292
2321
|
var displayFieldItems = [
|
|
@@ -2310,7 +2339,7 @@ var displayFieldItems = [
|
|
|
2310
2339
|
}
|
|
2311
2340
|
];
|
|
2312
2341
|
var DisplayField = () => {
|
|
2313
|
-
const isDisplayNoneFeatureActive =
|
|
2342
|
+
const isDisplayNoneFeatureActive = isExperimentActive3("e_v_3_30");
|
|
2314
2343
|
const items3 = [...displayFieldItems];
|
|
2315
2344
|
if (isDisplayNoneFeatureActive) {
|
|
2316
2345
|
items3.push({
|
|
@@ -2376,7 +2405,7 @@ var FlexDirectionField = () => {
|
|
|
2376
2405
|
|
|
2377
2406
|
// src/components/style-sections/layout-section/flex-order-field.tsx
|
|
2378
2407
|
import * as React39 from "react";
|
|
2379
|
-
import { useState as
|
|
2408
|
+
import { useState as useState10 } from "react";
|
|
2380
2409
|
import { ControlToggleButtonGroup, NumberControl } from "@elementor/editor-controls";
|
|
2381
2410
|
import { ArrowDownSmallIcon as ArrowDownSmallIcon2, ArrowUpSmallIcon as ArrowUpSmallIcon2, PencilIcon } from "@elementor/icons";
|
|
2382
2411
|
import { DirectionProvider as DirectionProvider5, Grid as Grid6, ThemeProvider as ThemeProvider5 } from "@elementor/ui";
|
|
@@ -2412,7 +2441,7 @@ var items = [
|
|
|
2412
2441
|
];
|
|
2413
2442
|
var FlexOrderField = () => {
|
|
2414
2443
|
const { isSiteRtl } = useDirection(), [order, setOrder] = useStylesField("order");
|
|
2415
|
-
const [groupControlValue, setGroupControlValue] =
|
|
2444
|
+
const [groupControlValue, setGroupControlValue] = useState10(getGroupControlValue(order?.value || null));
|
|
2416
2445
|
const handleToggleButtonChange = (group) => {
|
|
2417
2446
|
setGroupControlValue(group);
|
|
2418
2447
|
if (!group || group === CUSTOM) {
|
|
@@ -2450,7 +2479,7 @@ var getGroupControlValue = (order) => {
|
|
|
2450
2479
|
|
|
2451
2480
|
// src/components/style-sections/layout-section/flex-size-field.tsx
|
|
2452
2481
|
import * as React40 from "react";
|
|
2453
|
-
import { useMemo as useMemo4, useState as
|
|
2482
|
+
import { useMemo as useMemo4, useState as useState11 } from "react";
|
|
2454
2483
|
import {
|
|
2455
2484
|
ControlToggleButtonGroup as ControlToggleButtonGroup2,
|
|
2456
2485
|
NumberControl as NumberControl2,
|
|
@@ -2487,7 +2516,7 @@ var FlexSizeField = () => {
|
|
|
2487
2516
|
const grow = fields?.["flex-grow"]?.value || null;
|
|
2488
2517
|
const shrink = fields?.["flex-shrink"]?.value || null;
|
|
2489
2518
|
const basis = fields?.["flex-basis"]?.value || null;
|
|
2490
|
-
const currentGroup = useMemo4(() => getActiveGroup({ grow, shrink, basis }), [grow, shrink, basis]), [activeGroup, setActiveGroup] =
|
|
2519
|
+
const currentGroup = useMemo4(() => getActiveGroup({ grow, shrink, basis }), [grow, shrink, basis]), [activeGroup, setActiveGroup] = useState11(currentGroup);
|
|
2491
2520
|
const onChangeGroup = (group = null) => {
|
|
2492
2521
|
setActiveGroup(group);
|
|
2493
2522
|
if (!group || group === "custom") {
|
|
@@ -2671,6 +2700,7 @@ var shouldDisplayFlexFields = (display, local) => {
|
|
|
2671
2700
|
|
|
2672
2701
|
// src/components/style-sections/position-section/position-section.tsx
|
|
2673
2702
|
import * as React49 from "react";
|
|
2703
|
+
import { isExperimentActive as isExperimentActive4 } from "@elementor/editor-v1-adapters";
|
|
2674
2704
|
import { useSessionStorage } from "@elementor/session";
|
|
2675
2705
|
|
|
2676
2706
|
// src/components/style-sections/position-section/dimensions-field.tsx
|
|
@@ -2741,7 +2771,7 @@ var PositionSection = () => {
|
|
|
2741
2771
|
"inset-inline-end"
|
|
2742
2772
|
]);
|
|
2743
2773
|
const [dimensionsValuesFromHistory, updateDimensionsHistory, clearDimensionsHistory] = usePersistDimensions();
|
|
2744
|
-
const isCssIdFeatureActive =
|
|
2774
|
+
const isCssIdFeatureActive = isExperimentActive4("e_v_3_30");
|
|
2745
2775
|
const onPositionChange = (newPosition, previousPosition) => {
|
|
2746
2776
|
if (newPosition === "static") {
|
|
2747
2777
|
if (dimensionsValues) {
|
|
@@ -2771,120 +2801,168 @@ var usePersistDimensions = () => {
|
|
|
2771
2801
|
};
|
|
2772
2802
|
|
|
2773
2803
|
// src/components/style-sections/size-section/size-section.tsx
|
|
2774
|
-
import * as
|
|
2804
|
+
import * as React54 from "react";
|
|
2775
2805
|
import { SizeControl as SizeControl5 } from "@elementor/editor-controls";
|
|
2776
|
-
import {
|
|
2806
|
+
import { isExperimentActive as isExperimentActive5 } from "@elementor/editor-v1-adapters";
|
|
2807
|
+
import { Grid as Grid16, Stack as Stack15 } from "@elementor/ui";
|
|
2808
|
+
import { __ as __30 } from "@wordpress/i18n";
|
|
2809
|
+
|
|
2810
|
+
// src/components/collapsible-content.tsx
|
|
2811
|
+
import * as React50 from "react";
|
|
2812
|
+
import { useState as useState12 } from "react";
|
|
2813
|
+
import { Button, Collapse as Collapse3, Stack as Stack14 } from "@elementor/ui";
|
|
2814
|
+
import { __ as __26 } from "@wordpress/i18n";
|
|
2815
|
+
var CollapsibleContent = ({ children, defaultOpen = false }) => {
|
|
2816
|
+
const [open, setOpen] = useState12(defaultOpen);
|
|
2817
|
+
const handleToggle = () => {
|
|
2818
|
+
setOpen((prevOpen) => !prevOpen);
|
|
2819
|
+
};
|
|
2820
|
+
return /* @__PURE__ */ React50.createElement(Stack14, null, /* @__PURE__ */ React50.createElement(
|
|
2821
|
+
Button,
|
|
2822
|
+
{
|
|
2823
|
+
fullWidth: true,
|
|
2824
|
+
size: "small",
|
|
2825
|
+
color: "secondary",
|
|
2826
|
+
variant: "outlined",
|
|
2827
|
+
onClick: handleToggle,
|
|
2828
|
+
endIcon: /* @__PURE__ */ React50.createElement(CollapseIcon, { open }),
|
|
2829
|
+
sx: { my: 0.5 }
|
|
2830
|
+
},
|
|
2831
|
+
open ? __26("Show less", "elementor") : __26("Show more", "elementor")
|
|
2832
|
+
), /* @__PURE__ */ React50.createElement(Collapse3, { in: open, timeout: "auto", unmountOnExit: true }, children));
|
|
2833
|
+
};
|
|
2834
|
+
|
|
2835
|
+
// src/components/style-sections/size-section/object-fit-field.tsx
|
|
2836
|
+
import * as React51 from "react";
|
|
2837
|
+
import { SelectControl as SelectControl4 } from "@elementor/editor-controls";
|
|
2838
|
+
import { Grid as Grid13 } from "@elementor/ui";
|
|
2777
2839
|
import { __ as __27 } from "@wordpress/i18n";
|
|
2840
|
+
var positionOptions2 = [
|
|
2841
|
+
{ label: __27("Fill", "elementor"), value: "fill" },
|
|
2842
|
+
{ label: __27("Cover", "elementor"), value: "cover" },
|
|
2843
|
+
{ label: __27("Contain", "elementor"), value: "contain" },
|
|
2844
|
+
{ label: __27("None", "elementor"), value: "none" },
|
|
2845
|
+
{ label: __27("Scale down", "elementor"), value: "scale-down" }
|
|
2846
|
+
];
|
|
2847
|
+
var ObjectFitField = ({ onChange }) => {
|
|
2848
|
+
return /* @__PURE__ */ React51.createElement(StylesField, { bind: "object-fit" }, /* @__PURE__ */ React51.createElement(Grid13, { container: true, pt: 2, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React51.createElement(Grid13, { item: true, xs: 6 }, /* @__PURE__ */ React51.createElement(ControlLabel, null, __27("Object fit", "elementor"))), /* @__PURE__ */ React51.createElement(Grid13, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React51.createElement(SelectControl4, { options: positionOptions2, onChange }))));
|
|
2849
|
+
};
|
|
2850
|
+
|
|
2851
|
+
// src/components/style-sections/size-section/object-position-field.tsx
|
|
2852
|
+
import * as React52 from "react";
|
|
2853
|
+
import { SelectControl as SelectControl5 } from "@elementor/editor-controls";
|
|
2854
|
+
import { Grid as Grid14 } from "@elementor/ui";
|
|
2855
|
+
import { __ as __28 } from "@wordpress/i18n";
|
|
2856
|
+
var positionOptions3 = [
|
|
2857
|
+
{ label: __28("Center center", "elementor"), value: "center center" },
|
|
2858
|
+
{ label: __28("Center left", "elementor"), value: "center left" },
|
|
2859
|
+
{ label: __28("Center right", "elementor"), value: "center right" },
|
|
2860
|
+
{ label: __28("Top center", "elementor"), value: "top center" },
|
|
2861
|
+
{ label: __28("Top left", "elementor"), value: "top left" },
|
|
2862
|
+
{ label: __28("Top right", "elementor"), value: "top right" },
|
|
2863
|
+
{ label: __28("Bottom center", "elementor"), value: "bottom center" },
|
|
2864
|
+
{ label: __28("Bottom left", "elementor"), value: "bottom left" },
|
|
2865
|
+
{ label: __28("Bottom right", "elementor"), value: "bottom right" }
|
|
2866
|
+
];
|
|
2867
|
+
var ObjectPositionField = ({ onChange }) => {
|
|
2868
|
+
return /* @__PURE__ */ React52.createElement(StylesField, { bind: "object-position" }, /* @__PURE__ */ React52.createElement(Grid14, { container: true, pt: 2, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React52.createElement(Grid14, { item: true, xs: 6 }, /* @__PURE__ */ React52.createElement(ControlLabel, null, __28("Object position", "elementor"))), /* @__PURE__ */ React52.createElement(Grid14, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React52.createElement(SelectControl5, { options: positionOptions3, onChange }))));
|
|
2869
|
+
};
|
|
2778
2870
|
|
|
2779
2871
|
// src/components/style-sections/size-section/overflow-field.tsx
|
|
2780
|
-
import * as
|
|
2872
|
+
import * as React53 from "react";
|
|
2781
2873
|
import { ToggleControl as ToggleControl8 } from "@elementor/editor-controls";
|
|
2782
2874
|
import { EyeIcon, EyeOffIcon, LetterAIcon } from "@elementor/icons";
|
|
2783
|
-
import { Grid as
|
|
2784
|
-
import { __ as
|
|
2875
|
+
import { Grid as Grid15 } from "@elementor/ui";
|
|
2876
|
+
import { __ as __29 } from "@wordpress/i18n";
|
|
2785
2877
|
var options6 = [
|
|
2786
2878
|
{
|
|
2787
2879
|
value: "visible",
|
|
2788
|
-
label:
|
|
2789
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2880
|
+
label: __29("Visible", "elementor"),
|
|
2881
|
+
renderContent: ({ size }) => /* @__PURE__ */ React53.createElement(EyeIcon, { fontSize: size }),
|
|
2790
2882
|
showTooltip: true
|
|
2791
2883
|
},
|
|
2792
2884
|
{
|
|
2793
2885
|
value: "hidden",
|
|
2794
|
-
label:
|
|
2795
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2886
|
+
label: __29("Hidden", "elementor"),
|
|
2887
|
+
renderContent: ({ size }) => /* @__PURE__ */ React53.createElement(EyeOffIcon, { fontSize: size }),
|
|
2796
2888
|
showTooltip: true
|
|
2797
2889
|
},
|
|
2798
2890
|
{
|
|
2799
2891
|
value: "auto",
|
|
2800
|
-
label:
|
|
2801
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2892
|
+
label: __29("Auto", "elementor"),
|
|
2893
|
+
renderContent: ({ size }) => /* @__PURE__ */ React53.createElement(LetterAIcon, { fontSize: size }),
|
|
2802
2894
|
showTooltip: true
|
|
2803
2895
|
}
|
|
2804
2896
|
];
|
|
2805
2897
|
var OverflowField = () => {
|
|
2806
|
-
return /* @__PURE__ */
|
|
2898
|
+
return /* @__PURE__ */ React53.createElement(StylesField, { bind: "overflow" }, /* @__PURE__ */ React53.createElement(Grid15, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React53.createElement(Grid15, { item: true, xs: 6 }, /* @__PURE__ */ React53.createElement(ControlLabel, null, __29("Overflow", "elementor"))), /* @__PURE__ */ React53.createElement(Grid15, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React53.createElement(ToggleControl8, { options: options6 }))));
|
|
2807
2899
|
};
|
|
2808
2900
|
|
|
2809
2901
|
// src/components/style-sections/size-section/size-section.tsx
|
|
2810
2902
|
var SizeSection = () => {
|
|
2811
|
-
|
|
2903
|
+
const [fitValue, setFitValue] = useStylesField("object-fit");
|
|
2904
|
+
const isNotFill = fitValue && fitValue?.value !== "fill";
|
|
2905
|
+
const onFitChange = (newFit, previousValue) => {
|
|
2906
|
+
if (newFit && newFit !== previousValue) {
|
|
2907
|
+
setFitValue({
|
|
2908
|
+
value: newFit,
|
|
2909
|
+
$$type: "string"
|
|
2910
|
+
});
|
|
2911
|
+
}
|
|
2912
|
+
};
|
|
2913
|
+
const isVersion330Active = isExperimentActive5("e_v_3_30");
|
|
2914
|
+
return /* @__PURE__ */ React54.createElement(SectionContent, null, /* @__PURE__ */ React54.createElement(Grid16, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React54.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(SizeField, { bind: "width", label: __30("Width", "elementor"), extendedValues: ["auto"] })), /* @__PURE__ */ React54.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(SizeField, { bind: "height", label: __30("Height", "elementor"), extendedValues: ["auto"] }))), /* @__PURE__ */ React54.createElement(Grid16, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React54.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(
|
|
2812
2915
|
SizeField,
|
|
2813
2916
|
{
|
|
2814
2917
|
bind: "min-width",
|
|
2815
|
-
label:
|
|
2918
|
+
label: __30("Min width", "elementor"),
|
|
2816
2919
|
extendedValues: ["auto"]
|
|
2817
2920
|
}
|
|
2818
|
-
)), /* @__PURE__ */
|
|
2921
|
+
)), /* @__PURE__ */ React54.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(
|
|
2819
2922
|
SizeField,
|
|
2820
2923
|
{
|
|
2821
2924
|
bind: "min-height",
|
|
2822
|
-
label:
|
|
2925
|
+
label: __30("Min height", "elementor"),
|
|
2823
2926
|
extendedValues: ["auto"]
|
|
2824
2927
|
}
|
|
2825
|
-
))), /* @__PURE__ */
|
|
2928
|
+
))), /* @__PURE__ */ React54.createElement(Grid16, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React54.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(SizeField, { bind: "max-width", label: __30("Max width", "elementor") })), /* @__PURE__ */ React54.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(SizeField, { bind: "max-height", label: __30("Max height", "elementor") }))), /* @__PURE__ */ React54.createElement(PanelDivider, null), /* @__PURE__ */ React54.createElement(Stack15, null, /* @__PURE__ */ React54.createElement(OverflowField, null)), isVersion330Active && /* @__PURE__ */ React54.createElement(CollapsibleContent, null, /* @__PURE__ */ React54.createElement(ObjectFitField, { onChange: onFitChange }), /* @__PURE__ */ React54.createElement(Grid16, { item: true, xs: 6 }, isNotFill && /* @__PURE__ */ React54.createElement(ObjectPositionField, null))));
|
|
2826
2929
|
};
|
|
2827
2930
|
var SizeField = ({ label, bind, extendedValues }) => {
|
|
2828
|
-
return /* @__PURE__ */
|
|
2931
|
+
return /* @__PURE__ */ React54.createElement(StylesField, { bind }, /* @__PURE__ */ React54.createElement(Grid16, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React54.createElement(Grid16, { item: true, xs: 12 }, /* @__PURE__ */ React54.createElement(ControlLabel, null, label)), /* @__PURE__ */ React54.createElement(Grid16, { item: true, xs: 12 }, /* @__PURE__ */ React54.createElement(SizeControl5, { extendedValues }))));
|
|
2829
2932
|
};
|
|
2830
2933
|
|
|
2831
2934
|
// src/components/style-sections/spacing-section/spacing-section.tsx
|
|
2832
|
-
import * as
|
|
2935
|
+
import * as React55 from "react";
|
|
2833
2936
|
import { LinkedDimensionsControl } from "@elementor/editor-controls";
|
|
2834
|
-
import { __ as
|
|
2937
|
+
import { __ as __31 } from "@wordpress/i18n";
|
|
2835
2938
|
var SpacingSection = () => {
|
|
2836
2939
|
const { isSiteRtl } = useDirection();
|
|
2837
|
-
return /* @__PURE__ */
|
|
2940
|
+
return /* @__PURE__ */ React55.createElement(SectionContent, null, /* @__PURE__ */ React55.createElement(StylesField, { bind: "margin" }, /* @__PURE__ */ React55.createElement(
|
|
2838
2941
|
LinkedDimensionsControl,
|
|
2839
2942
|
{
|
|
2840
|
-
label:
|
|
2943
|
+
label: __31("Margin", "elementor"),
|
|
2841
2944
|
isSiteRtl,
|
|
2842
2945
|
extendedValues: ["auto"]
|
|
2843
2946
|
}
|
|
2844
|
-
)), /* @__PURE__ */
|
|
2947
|
+
)), /* @__PURE__ */ React55.createElement(PanelDivider, null), /* @__PURE__ */ React55.createElement(StylesField, { bind: "padding" }, /* @__PURE__ */ React55.createElement(LinkedDimensionsControl, { label: __31("Padding", "elementor"), isSiteRtl })));
|
|
2845
2948
|
};
|
|
2846
2949
|
|
|
2847
2950
|
// src/components/style-sections/typography-section/typography-section.tsx
|
|
2848
|
-
import * as
|
|
2849
|
-
|
|
2850
|
-
// src/components/collapsible-content.tsx
|
|
2851
|
-
import * as React53 from "react";
|
|
2852
|
-
import { useState as useState11 } from "react";
|
|
2853
|
-
import { Button, Collapse as Collapse3, Stack as Stack15 } from "@elementor/ui";
|
|
2854
|
-
import { __ as __29 } from "@wordpress/i18n";
|
|
2855
|
-
var CollapsibleContent = ({ children, defaultOpen = false }) => {
|
|
2856
|
-
const [open, setOpen] = useState11(defaultOpen);
|
|
2857
|
-
const handleToggle = () => {
|
|
2858
|
-
setOpen((prevOpen) => !prevOpen);
|
|
2859
|
-
};
|
|
2860
|
-
return /* @__PURE__ */ React53.createElement(Stack15, null, /* @__PURE__ */ React53.createElement(
|
|
2861
|
-
Button,
|
|
2862
|
-
{
|
|
2863
|
-
fullWidth: true,
|
|
2864
|
-
size: "small",
|
|
2865
|
-
color: "secondary",
|
|
2866
|
-
variant: "outlined",
|
|
2867
|
-
onClick: handleToggle,
|
|
2868
|
-
endIcon: /* @__PURE__ */ React53.createElement(CollapseIcon, { open }),
|
|
2869
|
-
sx: { my: 0.5 }
|
|
2870
|
-
},
|
|
2871
|
-
open ? __29("Show less", "elementor") : __29("Show more", "elementor")
|
|
2872
|
-
), /* @__PURE__ */ React53.createElement(Collapse3, { in: open, timeout: "auto", unmountOnExit: true }, children));
|
|
2873
|
-
};
|
|
2951
|
+
import * as React69 from "react";
|
|
2874
2952
|
|
|
2875
2953
|
// src/components/style-sections/typography-section/font-family-field.tsx
|
|
2876
|
-
import * as
|
|
2954
|
+
import * as React56 from "react";
|
|
2877
2955
|
import { FontFamilyControl } from "@elementor/editor-controls";
|
|
2878
|
-
import { Grid as
|
|
2879
|
-
import { __ as
|
|
2956
|
+
import { Grid as Grid17 } from "@elementor/ui";
|
|
2957
|
+
import { __ as __33 } from "@wordpress/i18n";
|
|
2880
2958
|
|
|
2881
2959
|
// src/components/style-sections/typography-section/hooks/use-font-families.ts
|
|
2882
2960
|
import { useMemo as useMemo5 } from "react";
|
|
2883
|
-
import { __ as
|
|
2961
|
+
import { __ as __32 } from "@wordpress/i18n";
|
|
2884
2962
|
var supportedCategories = {
|
|
2885
|
-
system:
|
|
2886
|
-
custom:
|
|
2887
|
-
googlefonts:
|
|
2963
|
+
system: __32("System", "elementor"),
|
|
2964
|
+
custom: __32("Custom Fonts", "elementor"),
|
|
2965
|
+
googlefonts: __32("Google Fonts", "elementor")
|
|
2888
2966
|
};
|
|
2889
2967
|
var getFontFamilies = () => {
|
|
2890
2968
|
const { controls } = getElementorConfig();
|
|
@@ -2921,188 +2999,188 @@ var FontFamilyField = () => {
|
|
|
2921
2999
|
if (fontFamilies.length === 0) {
|
|
2922
3000
|
return null;
|
|
2923
3001
|
}
|
|
2924
|
-
return /* @__PURE__ */
|
|
3002
|
+
return /* @__PURE__ */ React56.createElement(StylesField, { bind: "font-family" }, /* @__PURE__ */ React56.createElement(Grid17, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React56.createElement(Grid17, { item: true, xs: 6 }, /* @__PURE__ */ React56.createElement(ControlLabel, null, __33("Font family", "elementor"))), /* @__PURE__ */ React56.createElement(Grid17, { item: true, xs: 6, sx: { minWidth: 0 } }, /* @__PURE__ */ React56.createElement(FontFamilyControl, { fontFamilies }))));
|
|
2925
3003
|
};
|
|
2926
3004
|
|
|
2927
3005
|
// src/components/style-sections/typography-section/font-size-field.tsx
|
|
2928
|
-
import * as
|
|
3006
|
+
import * as React57 from "react";
|
|
2929
3007
|
import { SizeControl as SizeControl6 } from "@elementor/editor-controls";
|
|
2930
|
-
import { Grid as
|
|
2931
|
-
import { __ as
|
|
3008
|
+
import { Grid as Grid18 } from "@elementor/ui";
|
|
3009
|
+
import { __ as __34 } from "@wordpress/i18n";
|
|
2932
3010
|
var FontSizeField = () => {
|
|
2933
|
-
return /* @__PURE__ */
|
|
3011
|
+
return /* @__PURE__ */ React57.createElement(StylesField, { bind: "font-size" }, /* @__PURE__ */ React57.createElement(Grid18, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React57.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React57.createElement(ControlLabel, null, __34("Font size", "elementor"))), /* @__PURE__ */ React57.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React57.createElement(SizeControl6, null))));
|
|
2934
3012
|
};
|
|
2935
3013
|
|
|
2936
3014
|
// src/components/style-sections/typography-section/font-style-field.tsx
|
|
2937
|
-
import * as
|
|
3015
|
+
import * as React58 from "react";
|
|
2938
3016
|
import { ControlFormLabel as ControlFormLabel4, ToggleControl as ToggleControl9 } from "@elementor/editor-controls";
|
|
2939
3017
|
import { ItalicIcon, MinusIcon as MinusIcon2 } from "@elementor/icons";
|
|
2940
|
-
import { Grid as
|
|
2941
|
-
import { __ as
|
|
3018
|
+
import { Grid as Grid19 } from "@elementor/ui";
|
|
3019
|
+
import { __ as __35 } from "@wordpress/i18n";
|
|
2942
3020
|
var options7 = [
|
|
2943
3021
|
{
|
|
2944
3022
|
value: "normal",
|
|
2945
|
-
label:
|
|
2946
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3023
|
+
label: __35("Normal", "elementor"),
|
|
3024
|
+
renderContent: ({ size }) => /* @__PURE__ */ React58.createElement(MinusIcon2, { fontSize: size }),
|
|
2947
3025
|
showTooltip: true
|
|
2948
3026
|
},
|
|
2949
3027
|
{
|
|
2950
3028
|
value: "italic",
|
|
2951
|
-
label:
|
|
2952
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3029
|
+
label: __35("Italic", "elementor"),
|
|
3030
|
+
renderContent: ({ size }) => /* @__PURE__ */ React58.createElement(ItalicIcon, { fontSize: size }),
|
|
2953
3031
|
showTooltip: true
|
|
2954
3032
|
}
|
|
2955
3033
|
];
|
|
2956
|
-
var FontStyleField = () => /* @__PURE__ */
|
|
3034
|
+
var FontStyleField = () => /* @__PURE__ */ React58.createElement(StylesField, { bind: "font-style" }, /* @__PURE__ */ React58.createElement(Grid19, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React58.createElement(Grid19, { item: true, xs: 6 }, /* @__PURE__ */ React58.createElement(ControlFormLabel4, null, __35("Font style", "elementor"))), /* @__PURE__ */ React58.createElement(Grid19, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React58.createElement(ToggleControl9, { options: options7 }))));
|
|
2957
3035
|
|
|
2958
3036
|
// src/components/style-sections/typography-section/font-weight-field.tsx
|
|
2959
|
-
import * as
|
|
2960
|
-
import { SelectControl as
|
|
2961
|
-
import { Grid as
|
|
2962
|
-
import { __ as
|
|
3037
|
+
import * as React59 from "react";
|
|
3038
|
+
import { SelectControl as SelectControl6 } from "@elementor/editor-controls";
|
|
3039
|
+
import { Grid as Grid20 } from "@elementor/ui";
|
|
3040
|
+
import { __ as __36 } from "@wordpress/i18n";
|
|
2963
3041
|
var fontWeightOptions = [
|
|
2964
|
-
{ value: "100", label:
|
|
2965
|
-
{ value: "200", label:
|
|
2966
|
-
{ value: "300", label:
|
|
2967
|
-
{ value: "400", label:
|
|
2968
|
-
{ value: "500", label:
|
|
2969
|
-
{ value: "600", label:
|
|
2970
|
-
{ value: "700", label:
|
|
2971
|
-
{ value: "800", label:
|
|
2972
|
-
{ value: "900", label:
|
|
3042
|
+
{ value: "100", label: __36("100 - Thin", "elementor") },
|
|
3043
|
+
{ value: "200", label: __36("200 - Extra light", "elementor") },
|
|
3044
|
+
{ value: "300", label: __36("300 - Light", "elementor") },
|
|
3045
|
+
{ value: "400", label: __36("400 - Normal", "elementor") },
|
|
3046
|
+
{ value: "500", label: __36("500 - Medium", "elementor") },
|
|
3047
|
+
{ value: "600", label: __36("600 - Semi bold", "elementor") },
|
|
3048
|
+
{ value: "700", label: __36("700 - Bold", "elementor") },
|
|
3049
|
+
{ value: "800", label: __36("800 - Extra bold", "elementor") },
|
|
3050
|
+
{ value: "900", label: __36("900 - Black", "elementor") }
|
|
2973
3051
|
];
|
|
2974
3052
|
var FontWeightField = () => {
|
|
2975
|
-
return /* @__PURE__ */
|
|
3053
|
+
return /* @__PURE__ */ React59.createElement(StylesField, { bind: "font-weight" }, /* @__PURE__ */ React59.createElement(Grid20, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React59.createElement(Grid20, { item: true, xs: 6 }, /* @__PURE__ */ React59.createElement(ControlLabel, null, __36("Font weight", "elementor"))), /* @__PURE__ */ React59.createElement(Grid20, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React59.createElement(SelectControl6, { options: fontWeightOptions }))));
|
|
2976
3054
|
};
|
|
2977
3055
|
|
|
2978
3056
|
// src/components/style-sections/typography-section/letter-spacing-field.tsx
|
|
2979
|
-
import * as
|
|
3057
|
+
import * as React60 from "react";
|
|
2980
3058
|
import { SizeControl as SizeControl7 } from "@elementor/editor-controls";
|
|
2981
|
-
import { Grid as
|
|
2982
|
-
import { __ as
|
|
3059
|
+
import { Grid as Grid21 } from "@elementor/ui";
|
|
3060
|
+
import { __ as __37 } from "@wordpress/i18n";
|
|
2983
3061
|
var LetterSpacingField = () => {
|
|
2984
|
-
return /* @__PURE__ */
|
|
3062
|
+
return /* @__PURE__ */ React60.createElement(StylesField, { bind: "letter-spacing" }, /* @__PURE__ */ React60.createElement(Grid21, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React60.createElement(Grid21, { item: true, xs: 6 }, /* @__PURE__ */ React60.createElement(ControlLabel, null, __37("Letter spacing", "elementor"))), /* @__PURE__ */ React60.createElement(Grid21, { item: true, xs: 6 }, /* @__PURE__ */ React60.createElement(SizeControl7, null))));
|
|
2985
3063
|
};
|
|
2986
3064
|
|
|
2987
3065
|
// src/components/style-sections/typography-section/line-height-field.tsx
|
|
2988
|
-
import * as
|
|
3066
|
+
import * as React61 from "react";
|
|
2989
3067
|
import { SizeControl as SizeControl8 } from "@elementor/editor-controls";
|
|
2990
|
-
import { Grid as
|
|
2991
|
-
import { __ as
|
|
3068
|
+
import { Grid as Grid22 } from "@elementor/ui";
|
|
3069
|
+
import { __ as __38 } from "@wordpress/i18n";
|
|
2992
3070
|
var LineHeightField = () => {
|
|
2993
|
-
return /* @__PURE__ */
|
|
3071
|
+
return /* @__PURE__ */ React61.createElement(StylesField, { bind: "line-height" }, /* @__PURE__ */ React61.createElement(Grid22, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React61.createElement(Grid22, { item: true, xs: 6 }, /* @__PURE__ */ React61.createElement(ControlLabel, null, __38("Line height", "elementor"))), /* @__PURE__ */ React61.createElement(Grid22, { item: true, xs: 6 }, /* @__PURE__ */ React61.createElement(SizeControl8, null))));
|
|
2994
3072
|
};
|
|
2995
3073
|
|
|
2996
3074
|
// src/components/style-sections/typography-section/text-alignment-field.tsx
|
|
2997
|
-
import * as
|
|
3075
|
+
import * as React62 from "react";
|
|
2998
3076
|
import { ToggleControl as ToggleControl10 } from "@elementor/editor-controls";
|
|
2999
3077
|
import { AlignCenterIcon, AlignJustifiedIcon, AlignLeftIcon, AlignRightIcon } from "@elementor/icons";
|
|
3000
|
-
import { Grid as
|
|
3001
|
-
import { __ as
|
|
3078
|
+
import { Grid as Grid23, withDirection as withDirection9 } from "@elementor/ui";
|
|
3079
|
+
import { __ as __39 } from "@wordpress/i18n";
|
|
3002
3080
|
var AlignStartIcon = withDirection9(AlignLeftIcon);
|
|
3003
3081
|
var AlignEndIcon = withDirection9(AlignRightIcon);
|
|
3004
3082
|
var options8 = [
|
|
3005
3083
|
{
|
|
3006
3084
|
value: "start",
|
|
3007
|
-
label:
|
|
3008
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3085
|
+
label: __39("Start", "elementor"),
|
|
3086
|
+
renderContent: ({ size }) => /* @__PURE__ */ React62.createElement(AlignStartIcon, { fontSize: size }),
|
|
3009
3087
|
showTooltip: true
|
|
3010
3088
|
},
|
|
3011
3089
|
{
|
|
3012
3090
|
value: "center",
|
|
3013
|
-
label:
|
|
3014
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3091
|
+
label: __39("Center", "elementor"),
|
|
3092
|
+
renderContent: ({ size }) => /* @__PURE__ */ React62.createElement(AlignCenterIcon, { fontSize: size }),
|
|
3015
3093
|
showTooltip: true
|
|
3016
3094
|
},
|
|
3017
3095
|
{
|
|
3018
3096
|
value: "end",
|
|
3019
|
-
label:
|
|
3020
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3097
|
+
label: __39("End", "elementor"),
|
|
3098
|
+
renderContent: ({ size }) => /* @__PURE__ */ React62.createElement(AlignEndIcon, { fontSize: size }),
|
|
3021
3099
|
showTooltip: true
|
|
3022
3100
|
},
|
|
3023
3101
|
{
|
|
3024
3102
|
value: "justify",
|
|
3025
|
-
label:
|
|
3026
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3103
|
+
label: __39("Justify", "elementor"),
|
|
3104
|
+
renderContent: ({ size }) => /* @__PURE__ */ React62.createElement(AlignJustifiedIcon, { fontSize: size }),
|
|
3027
3105
|
showTooltip: true
|
|
3028
3106
|
}
|
|
3029
3107
|
];
|
|
3030
3108
|
var TextAlignmentField = () => {
|
|
3031
|
-
return /* @__PURE__ */
|
|
3109
|
+
return /* @__PURE__ */ React62.createElement(StylesField, { bind: "text-align" }, /* @__PURE__ */ React62.createElement(Grid23, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React62.createElement(Grid23, { item: true, xs: 6 }, /* @__PURE__ */ React62.createElement(ControlLabel, null, __39("Text align", "elementor"))), /* @__PURE__ */ React62.createElement(Grid23, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React62.createElement(ToggleControl10, { options: options8 }))));
|
|
3032
3110
|
};
|
|
3033
3111
|
|
|
3034
3112
|
// src/components/style-sections/typography-section/text-color-field.tsx
|
|
3035
|
-
import * as
|
|
3113
|
+
import * as React63 from "react";
|
|
3036
3114
|
import { ColorControl as ColorControl2 } from "@elementor/editor-controls";
|
|
3037
|
-
import { Grid as
|
|
3038
|
-
import { __ as
|
|
3115
|
+
import { Grid as Grid24 } from "@elementor/ui";
|
|
3116
|
+
import { __ as __40 } from "@wordpress/i18n";
|
|
3039
3117
|
var TextColorField = () => {
|
|
3040
|
-
return /* @__PURE__ */
|
|
3118
|
+
return /* @__PURE__ */ React63.createElement(StylesField, { bind: "color" }, /* @__PURE__ */ React63.createElement(Grid24, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React63.createElement(Grid24, { item: true, xs: 6 }, /* @__PURE__ */ React63.createElement(ControlLabel, null, __40("Text color", "elementor"))), /* @__PURE__ */ React63.createElement(Grid24, { item: true, xs: 6 }, /* @__PURE__ */ React63.createElement(ColorControl2, null))));
|
|
3041
3119
|
};
|
|
3042
3120
|
|
|
3043
3121
|
// src/components/style-sections/typography-section/text-decoration-field.tsx
|
|
3044
|
-
import * as
|
|
3122
|
+
import * as React64 from "react";
|
|
3045
3123
|
import { ToggleControl as ToggleControl11 } from "@elementor/editor-controls";
|
|
3046
3124
|
import { MinusIcon as MinusIcon3, OverlineIcon, StrikethroughIcon, UnderlineIcon } from "@elementor/icons";
|
|
3047
|
-
import { Grid as
|
|
3048
|
-
import { __ as
|
|
3125
|
+
import { Grid as Grid25 } from "@elementor/ui";
|
|
3126
|
+
import { __ as __41 } from "@wordpress/i18n";
|
|
3049
3127
|
var options9 = [
|
|
3050
3128
|
{
|
|
3051
3129
|
value: "none",
|
|
3052
|
-
label:
|
|
3053
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3130
|
+
label: __41("None", "elementor"),
|
|
3131
|
+
renderContent: ({ size }) => /* @__PURE__ */ React64.createElement(MinusIcon3, { fontSize: size }),
|
|
3054
3132
|
showTooltip: true,
|
|
3055
3133
|
exclusive: true
|
|
3056
3134
|
},
|
|
3057
3135
|
{
|
|
3058
3136
|
value: "underline",
|
|
3059
|
-
label:
|
|
3060
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3137
|
+
label: __41("Underline", "elementor"),
|
|
3138
|
+
renderContent: ({ size }) => /* @__PURE__ */ React64.createElement(UnderlineIcon, { fontSize: size }),
|
|
3061
3139
|
showTooltip: true
|
|
3062
3140
|
},
|
|
3063
3141
|
{
|
|
3064
3142
|
value: "line-through",
|
|
3065
|
-
label:
|
|
3066
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3143
|
+
label: __41("Line-through", "elementor"),
|
|
3144
|
+
renderContent: ({ size }) => /* @__PURE__ */ React64.createElement(StrikethroughIcon, { fontSize: size }),
|
|
3067
3145
|
showTooltip: true
|
|
3068
3146
|
},
|
|
3069
3147
|
{
|
|
3070
3148
|
value: "overline",
|
|
3071
|
-
label:
|
|
3072
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3149
|
+
label: __41("Overline", "elementor"),
|
|
3150
|
+
renderContent: ({ size }) => /* @__PURE__ */ React64.createElement(OverlineIcon, { fontSize: size }),
|
|
3073
3151
|
showTooltip: true
|
|
3074
3152
|
}
|
|
3075
3153
|
];
|
|
3076
|
-
var TextDecorationField = () => /* @__PURE__ */
|
|
3154
|
+
var TextDecorationField = () => /* @__PURE__ */ React64.createElement(StylesField, { bind: "text-decoration" }, /* @__PURE__ */ React64.createElement(Grid25, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React64.createElement(Grid25, { item: true, xs: 6 }, /* @__PURE__ */ React64.createElement(ControlLabel, null, __41("Line decoration", "elementor"))), /* @__PURE__ */ React64.createElement(Grid25, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React64.createElement(ToggleControl11, { options: options9, exclusive: false }))));
|
|
3077
3155
|
|
|
3078
3156
|
// src/components/style-sections/typography-section/text-direction-field.tsx
|
|
3079
|
-
import * as
|
|
3157
|
+
import * as React65 from "react";
|
|
3080
3158
|
import { ToggleControl as ToggleControl12 } from "@elementor/editor-controls";
|
|
3081
3159
|
import { TextDirectionLtrIcon, TextDirectionRtlIcon } from "@elementor/icons";
|
|
3082
|
-
import { Grid as
|
|
3083
|
-
import { __ as
|
|
3160
|
+
import { Grid as Grid26 } from "@elementor/ui";
|
|
3161
|
+
import { __ as __42 } from "@wordpress/i18n";
|
|
3084
3162
|
var options10 = [
|
|
3085
3163
|
{
|
|
3086
3164
|
value: "ltr",
|
|
3087
|
-
label:
|
|
3088
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3165
|
+
label: __42("Left to right", "elementor"),
|
|
3166
|
+
renderContent: ({ size }) => /* @__PURE__ */ React65.createElement(TextDirectionLtrIcon, { fontSize: size }),
|
|
3089
3167
|
showTooltip: true
|
|
3090
3168
|
},
|
|
3091
3169
|
{
|
|
3092
3170
|
value: "rtl",
|
|
3093
|
-
label:
|
|
3094
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3171
|
+
label: __42("Right to left", "elementor"),
|
|
3172
|
+
renderContent: ({ size }) => /* @__PURE__ */ React65.createElement(TextDirectionRtlIcon, { fontSize: size }),
|
|
3095
3173
|
showTooltip: true
|
|
3096
3174
|
}
|
|
3097
3175
|
];
|
|
3098
3176
|
var TextDirectionField = () => {
|
|
3099
|
-
return /* @__PURE__ */
|
|
3177
|
+
return /* @__PURE__ */ React65.createElement(StylesField, { bind: "direction" }, /* @__PURE__ */ React65.createElement(Grid26, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React65.createElement(Grid26, { item: true, xs: 6 }, /* @__PURE__ */ React65.createElement(ControlLabel, null, __42("Direction", "elementor"))), /* @__PURE__ */ React65.createElement(Grid26, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React65.createElement(ToggleControl12, { options: options10 }))));
|
|
3100
3178
|
};
|
|
3101
3179
|
|
|
3102
3180
|
// src/components/style-sections/typography-section/text-stroke-field.tsx
|
|
3103
|
-
import * as
|
|
3181
|
+
import * as React66 from "react";
|
|
3104
3182
|
import { StrokeControl } from "@elementor/editor-controls";
|
|
3105
|
-
import { __ as
|
|
3183
|
+
import { __ as __43 } from "@wordpress/i18n";
|
|
3106
3184
|
var initTextStroke = {
|
|
3107
3185
|
$$type: "stroke",
|
|
3108
3186
|
value: {
|
|
@@ -3128,64 +3206,64 @@ var TextStrokeField = () => {
|
|
|
3128
3206
|
setTextStroke(null);
|
|
3129
3207
|
};
|
|
3130
3208
|
const hasTextStroke = Boolean(textStroke);
|
|
3131
|
-
return /* @__PURE__ */
|
|
3209
|
+
return /* @__PURE__ */ React66.createElement(StylesField, { bind: "stroke" }, /* @__PURE__ */ React66.createElement(
|
|
3132
3210
|
AddOrRemoveContent,
|
|
3133
3211
|
{
|
|
3134
|
-
label:
|
|
3212
|
+
label: __43("Text stroke", "elementor"),
|
|
3135
3213
|
isAdded: hasTextStroke,
|
|
3136
3214
|
onAdd: addTextStroke,
|
|
3137
3215
|
onRemove: removeTextStroke
|
|
3138
3216
|
},
|
|
3139
|
-
/* @__PURE__ */
|
|
3217
|
+
/* @__PURE__ */ React66.createElement(StrokeControl, null)
|
|
3140
3218
|
));
|
|
3141
3219
|
};
|
|
3142
3220
|
|
|
3143
3221
|
// src/components/style-sections/typography-section/transform-field.tsx
|
|
3144
|
-
import * as
|
|
3222
|
+
import * as React67 from "react";
|
|
3145
3223
|
import { ToggleControl as ToggleControl13 } from "@elementor/editor-controls";
|
|
3146
3224
|
import { LetterCaseIcon, LetterCaseLowerIcon, LetterCaseUpperIcon, MinusIcon as MinusIcon4 } from "@elementor/icons";
|
|
3147
|
-
import { Grid as
|
|
3148
|
-
import { __ as
|
|
3225
|
+
import { Grid as Grid27 } from "@elementor/ui";
|
|
3226
|
+
import { __ as __44 } from "@wordpress/i18n";
|
|
3149
3227
|
var options11 = [
|
|
3150
3228
|
{
|
|
3151
3229
|
value: "none",
|
|
3152
|
-
label:
|
|
3153
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3230
|
+
label: __44("None", "elementor"),
|
|
3231
|
+
renderContent: ({ size }) => /* @__PURE__ */ React67.createElement(MinusIcon4, { fontSize: size }),
|
|
3154
3232
|
showTooltip: true
|
|
3155
3233
|
},
|
|
3156
3234
|
{
|
|
3157
3235
|
value: "capitalize",
|
|
3158
|
-
label:
|
|
3159
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3236
|
+
label: __44("Capitalize", "elementor"),
|
|
3237
|
+
renderContent: ({ size }) => /* @__PURE__ */ React67.createElement(LetterCaseIcon, { fontSize: size }),
|
|
3160
3238
|
showTooltip: true
|
|
3161
3239
|
},
|
|
3162
3240
|
{
|
|
3163
3241
|
value: "uppercase",
|
|
3164
|
-
label:
|
|
3165
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3242
|
+
label: __44("Uppercase", "elementor"),
|
|
3243
|
+
renderContent: ({ size }) => /* @__PURE__ */ React67.createElement(LetterCaseUpperIcon, { fontSize: size }),
|
|
3166
3244
|
showTooltip: true
|
|
3167
3245
|
},
|
|
3168
3246
|
{
|
|
3169
3247
|
value: "lowercase",
|
|
3170
|
-
label:
|
|
3171
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3248
|
+
label: __44("Lowercase", "elementor"),
|
|
3249
|
+
renderContent: ({ size }) => /* @__PURE__ */ React67.createElement(LetterCaseLowerIcon, { fontSize: size }),
|
|
3172
3250
|
showTooltip: true
|
|
3173
3251
|
}
|
|
3174
3252
|
];
|
|
3175
|
-
var TransformField = () => /* @__PURE__ */
|
|
3253
|
+
var TransformField = () => /* @__PURE__ */ React67.createElement(StylesField, { bind: "text-transform" }, /* @__PURE__ */ React67.createElement(Grid27, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React67.createElement(Grid27, { item: true, xs: 6 }, /* @__PURE__ */ React67.createElement(ControlLabel, null, __44("Text transform", "elementor"))), /* @__PURE__ */ React67.createElement(Grid27, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React67.createElement(ToggleControl13, { options: options11 }))));
|
|
3176
3254
|
|
|
3177
3255
|
// src/components/style-sections/typography-section/word-spacing-field.tsx
|
|
3178
|
-
import * as
|
|
3256
|
+
import * as React68 from "react";
|
|
3179
3257
|
import { SizeControl as SizeControl9 } from "@elementor/editor-controls";
|
|
3180
|
-
import { Grid as
|
|
3181
|
-
import { __ as
|
|
3258
|
+
import { Grid as Grid28 } from "@elementor/ui";
|
|
3259
|
+
import { __ as __45 } from "@wordpress/i18n";
|
|
3182
3260
|
var WordSpacingField = () => {
|
|
3183
|
-
return /* @__PURE__ */
|
|
3261
|
+
return /* @__PURE__ */ React68.createElement(StylesField, { bind: "word-spacing" }, /* @__PURE__ */ React68.createElement(Grid28, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React68.createElement(Grid28, { item: true, xs: 6 }, /* @__PURE__ */ React68.createElement(ControlLabel, null, __45("Word spacing", "elementor"))), /* @__PURE__ */ React68.createElement(Grid28, { item: true, xs: 6 }, /* @__PURE__ */ React68.createElement(SizeControl9, null))));
|
|
3184
3262
|
};
|
|
3185
3263
|
|
|
3186
3264
|
// src/components/style-sections/typography-section/typography-section.tsx
|
|
3187
3265
|
var TypographySection = () => {
|
|
3188
|
-
return /* @__PURE__ */
|
|
3266
|
+
return /* @__PURE__ */ React69.createElement(SectionContent, null, /* @__PURE__ */ React69.createElement(FontFamilyField, null), /* @__PURE__ */ React69.createElement(FontWeightField, null), /* @__PURE__ */ React69.createElement(FontSizeField, null), /* @__PURE__ */ React69.createElement(PanelDivider, null), /* @__PURE__ */ React69.createElement(TextAlignmentField, null), /* @__PURE__ */ React69.createElement(TextColorField, null), /* @__PURE__ */ React69.createElement(CollapsibleContent, null, /* @__PURE__ */ React69.createElement(SectionContent, { sx: { pt: 2 } }, /* @__PURE__ */ React69.createElement(LineHeightField, null), /* @__PURE__ */ React69.createElement(LetterSpacingField, null), /* @__PURE__ */ React69.createElement(WordSpacingField, null), /* @__PURE__ */ React69.createElement(PanelDivider, null), /* @__PURE__ */ React69.createElement(TextDecorationField, null), /* @__PURE__ */ React69.createElement(TransformField, null), /* @__PURE__ */ React69.createElement(TextDirectionField, null), /* @__PURE__ */ React69.createElement(FontStyleField, null), /* @__PURE__ */ React69.createElement(TextStrokeField, null))));
|
|
3189
3267
|
};
|
|
3190
3268
|
|
|
3191
3269
|
// src/components/style-tab.tsx
|
|
@@ -3200,9 +3278,9 @@ var stickyHeaderStyles = {
|
|
|
3200
3278
|
var StyleTab = () => {
|
|
3201
3279
|
const currentClassesProp = useCurrentClassesProp();
|
|
3202
3280
|
const [activeStyleDefId, setActiveStyleDefId] = useActiveStyleDefId(currentClassesProp);
|
|
3203
|
-
const [activeStyleState, setActiveStyleState] =
|
|
3281
|
+
const [activeStyleState, setActiveStyleState] = useState13(null);
|
|
3204
3282
|
const breakpoint = useActiveBreakpoint();
|
|
3205
|
-
return /* @__PURE__ */
|
|
3283
|
+
return /* @__PURE__ */ React70.createElement(ClassesPropProvider, { prop: currentClassesProp }, /* @__PURE__ */ React70.createElement(
|
|
3206
3284
|
StyleProvider,
|
|
3207
3285
|
{
|
|
3208
3286
|
meta: { breakpoint, state: activeStyleState },
|
|
@@ -3213,12 +3291,12 @@ var StyleTab = () => {
|
|
|
3213
3291
|
},
|
|
3214
3292
|
setMetaState: setActiveStyleState
|
|
3215
3293
|
},
|
|
3216
|
-
/* @__PURE__ */
|
|
3294
|
+
/* @__PURE__ */ React70.createElement(SessionStorageProvider2, { prefix: activeStyleDefId ?? "" }, /* @__PURE__ */ React70.createElement(StyleInheritanceProvider, null, /* @__PURE__ */ React70.createElement(ClassesHeader, null, /* @__PURE__ */ React70.createElement(CssClassSelector, null), /* @__PURE__ */ React70.createElement(Divider5, null)), /* @__PURE__ */ React70.createElement(SectionsList, null, /* @__PURE__ */ React70.createElement(Section, { title: __46("Layout", "elementor") }, /* @__PURE__ */ React70.createElement(LayoutSection, null)), /* @__PURE__ */ React70.createElement(Section, { title: __46("Spacing", "elementor") }, /* @__PURE__ */ React70.createElement(SpacingSection, null)), /* @__PURE__ */ React70.createElement(Section, { title: __46("Size", "elementor") }, /* @__PURE__ */ React70.createElement(SizeSection, null)), /* @__PURE__ */ React70.createElement(Section, { title: __46("Position", "elementor") }, /* @__PURE__ */ React70.createElement(PositionSection, null)), /* @__PURE__ */ React70.createElement(Section, { title: __46("Typography", "elementor") }, /* @__PURE__ */ React70.createElement(TypographySection, null)), /* @__PURE__ */ React70.createElement(Section, { title: __46("Background", "elementor") }, /* @__PURE__ */ React70.createElement(BackgroundSection, null)), /* @__PURE__ */ React70.createElement(Section, { title: __46("Border", "elementor") }, /* @__PURE__ */ React70.createElement(BorderSection, null)), /* @__PURE__ */ React70.createElement(Section, { title: __46("Effects", "elementor") }, /* @__PURE__ */ React70.createElement(EffectsSection, null)))))
|
|
3217
3295
|
));
|
|
3218
3296
|
};
|
|
3219
3297
|
function ClassesHeader({ children }) {
|
|
3220
3298
|
const scrollDirection = useScrollDirection();
|
|
3221
|
-
return /* @__PURE__ */
|
|
3299
|
+
return /* @__PURE__ */ React70.createElement(Stack16, { sx: { ...stickyHeaderStyles, top: scrollDirection === "up" ? TABS_HEADER_HEIGHT : 0 } }, children);
|
|
3222
3300
|
}
|
|
3223
3301
|
function useCurrentClassesProp() {
|
|
3224
3302
|
const { elementType } = useElement();
|
|
@@ -3237,14 +3315,14 @@ var EditingPanelTabs = () => {
|
|
|
3237
3315
|
return (
|
|
3238
3316
|
// When switching between elements, the local states should be reset. We are using key to rerender the tabs.
|
|
3239
3317
|
// Reference: https://react.dev/learn/preserving-and-resetting-state#resetting-a-form-with-a-key
|
|
3240
|
-
/* @__PURE__ */
|
|
3318
|
+
/* @__PURE__ */ React71.createElement(Fragment8, { key: element.id }, /* @__PURE__ */ React71.createElement(PanelTabContent, null))
|
|
3241
3319
|
);
|
|
3242
3320
|
};
|
|
3243
3321
|
var PanelTabContent = () => {
|
|
3244
3322
|
const defaultComponentTab = "settings";
|
|
3245
3323
|
const [currentTab, setCurrentTab] = useStateByElement("tab", defaultComponentTab);
|
|
3246
3324
|
const { getTabProps, getTabPanelProps, getTabsProps } = useTabs(currentTab);
|
|
3247
|
-
return /* @__PURE__ */
|
|
3325
|
+
return /* @__PURE__ */ React71.createElement(ScrollProvider, null, /* @__PURE__ */ React71.createElement(Stack17, { direction: "column", sx: { width: "100%" } }, /* @__PURE__ */ React71.createElement(Stack17, { sx: { ...stickyHeaderStyles, top: 0 } }, /* @__PURE__ */ React71.createElement(
|
|
3248
3326
|
Tabs,
|
|
3249
3327
|
{
|
|
3250
3328
|
variant: "fullWidth",
|
|
@@ -3256,9 +3334,9 @@ var PanelTabContent = () => {
|
|
|
3256
3334
|
setCurrentTab(newValue);
|
|
3257
3335
|
}
|
|
3258
3336
|
},
|
|
3259
|
-
/* @__PURE__ */
|
|
3260
|
-
/* @__PURE__ */
|
|
3261
|
-
), /* @__PURE__ */
|
|
3337
|
+
/* @__PURE__ */ React71.createElement(Tab, { label: __47("General", "elementor"), ...getTabProps("settings") }),
|
|
3338
|
+
/* @__PURE__ */ React71.createElement(Tab, { label: __47("Style", "elementor"), ...getTabProps("style") })
|
|
3339
|
+
), /* @__PURE__ */ React71.createElement(Divider6, null)), /* @__PURE__ */ React71.createElement(TabPanel, { ...getTabPanelProps("settings"), disablePadding: true }, /* @__PURE__ */ React71.createElement(SettingsTab, null)), /* @__PURE__ */ React71.createElement(TabPanel, { ...getTabPanelProps("style"), disablePadding: true }, /* @__PURE__ */ React71.createElement(StyleTab, null))));
|
|
3262
3340
|
};
|
|
3263
3341
|
|
|
3264
3342
|
// src/components/editing-panel.tsx
|
|
@@ -3270,8 +3348,8 @@ var EditingPanel = () => {
|
|
|
3270
3348
|
if (!element || !elementType) {
|
|
3271
3349
|
return null;
|
|
3272
3350
|
}
|
|
3273
|
-
const panelTitle =
|
|
3274
|
-
return /* @__PURE__ */
|
|
3351
|
+
const panelTitle = __48("Edit %s", "elementor").replace("%s", elementType.title);
|
|
3352
|
+
return /* @__PURE__ */ React72.createElement(ErrorBoundary, { fallback: /* @__PURE__ */ React72.createElement(EditorPanelErrorFallback, null) }, /* @__PURE__ */ React72.createElement(SessionStorageProvider3, { prefix: "elementor" }, /* @__PURE__ */ React72.createElement(ThemeProvider9, null, /* @__PURE__ */ React72.createElement(Panel, null, /* @__PURE__ */ React72.createElement(PanelHeader, null, /* @__PURE__ */ React72.createElement(PanelHeaderTitle, null, panelTitle), /* @__PURE__ */ React72.createElement(AtomIcon, { fontSize: "small", sx: { color: "text.tertiary" } })), /* @__PURE__ */ React72.createElement(PanelBody, null, /* @__PURE__ */ React72.createElement(ControlActionsProvider, { items: menuItems }, /* @__PURE__ */ React72.createElement(ControlReplacementsProvider, { replacements: controlReplacements }, /* @__PURE__ */ React72.createElement(ElementProvider, { element, elementType }, /* @__PURE__ */ React72.createElement(EditingPanelTabs, null)))))))));
|
|
3275
3353
|
};
|
|
3276
3354
|
|
|
3277
3355
|
// src/panel.ts
|
|
@@ -3323,7 +3401,7 @@ var EditingPanelHooks = () => {
|
|
|
3323
3401
|
import { settingsTransformersRegistry, styleTransformersRegistry as styleTransformersRegistry2 } from "@elementor/editor-canvas";
|
|
3324
3402
|
|
|
3325
3403
|
// src/dynamics/components/dynamic-selection-control.tsx
|
|
3326
|
-
import * as
|
|
3404
|
+
import * as React76 from "react";
|
|
3327
3405
|
import { ControlFormLabel as ControlFormLabel5, useBoundProp as useBoundProp5 } from "@elementor/editor-controls";
|
|
3328
3406
|
import { DatabaseIcon as DatabaseIcon2, SettingsIcon, XIcon as XIcon2 } from "@elementor/icons";
|
|
3329
3407
|
import {
|
|
@@ -3331,7 +3409,7 @@ import {
|
|
|
3331
3409
|
bindTrigger as bindTrigger2,
|
|
3332
3410
|
Box as Box5,
|
|
3333
3411
|
Divider as Divider8,
|
|
3334
|
-
Grid as
|
|
3412
|
+
Grid as Grid29,
|
|
3335
3413
|
IconButton as IconButton4,
|
|
3336
3414
|
Paper,
|
|
3337
3415
|
Popover as Popover2,
|
|
@@ -3344,12 +3422,12 @@ import {
|
|
|
3344
3422
|
usePopupState as usePopupState3,
|
|
3345
3423
|
useTabs as useTabs2
|
|
3346
3424
|
} from "@elementor/ui";
|
|
3347
|
-
import { __ as
|
|
3425
|
+
import { __ as __50 } from "@wordpress/i18n";
|
|
3348
3426
|
|
|
3349
3427
|
// src/components/popover-content.tsx
|
|
3350
|
-
import * as
|
|
3428
|
+
import * as React73 from "react";
|
|
3351
3429
|
import { Stack as Stack18 } from "@elementor/ui";
|
|
3352
|
-
var PopoverContent = ({ alignItems, gap = 1.5, p, children }) => /* @__PURE__ */
|
|
3430
|
+
var PopoverContent = ({ alignItems, gap = 1.5, p, children }) => /* @__PURE__ */ React73.createElement(Stack18, { alignItems, gap, p }, children);
|
|
3353
3431
|
|
|
3354
3432
|
// src/hooks/use-persist-dynamic-value.ts
|
|
3355
3433
|
import { useSessionStorage as useSessionStorage2 } from "@elementor/session";
|
|
@@ -3360,7 +3438,7 @@ var usePersistDynamicValue = (propKey) => {
|
|
|
3360
3438
|
};
|
|
3361
3439
|
|
|
3362
3440
|
// src/dynamics/dynamic-control.tsx
|
|
3363
|
-
import * as
|
|
3441
|
+
import * as React74 from "react";
|
|
3364
3442
|
import { PropKeyProvider as PropKeyProvider3, PropProvider as PropProvider3, useBoundProp as useBoundProp3 } from "@elementor/editor-controls";
|
|
3365
3443
|
|
|
3366
3444
|
// src/dynamics/hooks/use-dynamic-tag.ts
|
|
@@ -3462,12 +3540,12 @@ var DynamicControl = ({ bind, children }) => {
|
|
|
3462
3540
|
});
|
|
3463
3541
|
};
|
|
3464
3542
|
const propType = createTopLevelOjectType({ schema: dynamicTag.props_schema });
|
|
3465
|
-
return /* @__PURE__ */
|
|
3543
|
+
return /* @__PURE__ */ React74.createElement(PropProvider3, { propType, setValue: setDynamicValue, value: { [bind]: dynamicValue } }, /* @__PURE__ */ React74.createElement(PropKeyProvider3, { bind }, children));
|
|
3466
3544
|
};
|
|
3467
3545
|
|
|
3468
3546
|
// src/dynamics/components/dynamic-selection.tsx
|
|
3469
|
-
import * as
|
|
3470
|
-
import { Fragment as Fragment9, useState as
|
|
3547
|
+
import * as React75 from "react";
|
|
3548
|
+
import { Fragment as Fragment9, useState as useState14 } from "react";
|
|
3471
3549
|
import { useBoundProp as useBoundProp4 } from "@elementor/editor-controls";
|
|
3472
3550
|
import { DatabaseIcon, SearchIcon } from "@elementor/icons";
|
|
3473
3551
|
import {
|
|
@@ -3482,10 +3560,10 @@ import {
|
|
|
3482
3560
|
TextField as TextField2,
|
|
3483
3561
|
Typography as Typography4
|
|
3484
3562
|
} from "@elementor/ui";
|
|
3485
|
-
import { __ as
|
|
3563
|
+
import { __ as __49 } from "@wordpress/i18n";
|
|
3486
3564
|
var SIZE3 = "tiny";
|
|
3487
3565
|
var DynamicSelection = ({ onSelect }) => {
|
|
3488
|
-
const [searchValue, setSearchValue] =
|
|
3566
|
+
const [searchValue, setSearchValue] = useState14("");
|
|
3489
3567
|
const { groups: dynamicGroups } = getAtomicDynamicTags() || {};
|
|
3490
3568
|
const { value: anyValue } = useBoundProp4();
|
|
3491
3569
|
const { bind, value: dynamicValue, setValue } = useBoundProp4(dynamicPropTypeUtil);
|
|
@@ -3503,19 +3581,19 @@ var DynamicSelection = ({ onSelect }) => {
|
|
|
3503
3581
|
setValue({ name: value, settings: { label } });
|
|
3504
3582
|
onSelect?.();
|
|
3505
3583
|
};
|
|
3506
|
-
return /* @__PURE__ */
|
|
3584
|
+
return /* @__PURE__ */ React75.createElement(Stack19, null, hasNoDynamicTags ? /* @__PURE__ */ React75.createElement(NoDynamicTags, null) : /* @__PURE__ */ React75.createElement(Fragment9, null, /* @__PURE__ */ React75.createElement(Box4, { px: 1.5, pb: 1 }, /* @__PURE__ */ React75.createElement(
|
|
3507
3585
|
TextField2,
|
|
3508
3586
|
{
|
|
3509
3587
|
fullWidth: true,
|
|
3510
3588
|
size: SIZE3,
|
|
3511
3589
|
value: searchValue,
|
|
3512
3590
|
onChange: handleSearch,
|
|
3513
|
-
placeholder:
|
|
3591
|
+
placeholder: __49("Search dynamic tags\u2026", "elementor"),
|
|
3514
3592
|
InputProps: {
|
|
3515
|
-
startAdornment: /* @__PURE__ */
|
|
3593
|
+
startAdornment: /* @__PURE__ */ React75.createElement(InputAdornment, { position: "start" }, /* @__PURE__ */ React75.createElement(SearchIcon, { fontSize: SIZE3 }))
|
|
3516
3594
|
}
|
|
3517
3595
|
}
|
|
3518
|
-
)), /* @__PURE__ */
|
|
3596
|
+
)), /* @__PURE__ */ React75.createElement(Divider7, null), /* @__PURE__ */ React75.createElement(Box4, { sx: { overflowY: "auto", height: 260, width: 220 } }, options12.length > 0 ? /* @__PURE__ */ React75.createElement(MenuList, { role: "listbox", tabIndex: 0 }, options12.map(([category, items3], index) => /* @__PURE__ */ React75.createElement(Fragment9, { key: index }, /* @__PURE__ */ React75.createElement(
|
|
3519
3597
|
MenuSubheader2,
|
|
3520
3598
|
{
|
|
3521
3599
|
sx: { px: 1.5, typography: "caption", color: "text.tertiary" }
|
|
@@ -3523,7 +3601,7 @@ var DynamicSelection = ({ onSelect }) => {
|
|
|
3523
3601
|
dynamicGroups?.[category]?.title || category
|
|
3524
3602
|
), items3.map(({ value, label: tagLabel }) => {
|
|
3525
3603
|
const isSelected = isCurrentValueDynamic && value === dynamicValue?.name;
|
|
3526
|
-
return /* @__PURE__ */
|
|
3604
|
+
return /* @__PURE__ */ React75.createElement(
|
|
3527
3605
|
MenuItem,
|
|
3528
3606
|
{
|
|
3529
3607
|
key: value,
|
|
@@ -3534,9 +3612,9 @@ var DynamicSelection = ({ onSelect }) => {
|
|
|
3534
3612
|
},
|
|
3535
3613
|
tagLabel
|
|
3536
3614
|
);
|
|
3537
|
-
})))) : /* @__PURE__ */
|
|
3615
|
+
})))) : /* @__PURE__ */ React75.createElement(NoResults, { searchValue, onClear: () => setSearchValue("") }))));
|
|
3538
3616
|
};
|
|
3539
|
-
var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */
|
|
3617
|
+
var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */ React75.createElement(
|
|
3540
3618
|
Stack19,
|
|
3541
3619
|
{
|
|
3542
3620
|
gap: 1,
|
|
@@ -3547,11 +3625,11 @@ var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */ React73.createElem
|
|
|
3547
3625
|
color: "text.secondary",
|
|
3548
3626
|
sx: { pb: 3.5 }
|
|
3549
3627
|
},
|
|
3550
|
-
/* @__PURE__ */
|
|
3551
|
-
/* @__PURE__ */
|
|
3552
|
-
/* @__PURE__ */
|
|
3628
|
+
/* @__PURE__ */ React75.createElement(DatabaseIcon, { fontSize: "large" }),
|
|
3629
|
+
/* @__PURE__ */ React75.createElement(Typography4, { align: "center", variant: "subtitle2" }, __49("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React75.createElement("br", null), "\u201C", searchValue, "\u201D."),
|
|
3630
|
+
/* @__PURE__ */ React75.createElement(Typography4, { align: "center", variant: "caption" }, __49("Try something else.", "elementor"), "\xA0", /* @__PURE__ */ React75.createElement(Link, { color: "text.secondary", variant: "caption", component: "button", onClick: onClear }, __49("Clear & try again", "elementor")))
|
|
3553
3631
|
);
|
|
3554
|
-
var NoDynamicTags = () => /* @__PURE__ */
|
|
3632
|
+
var NoDynamicTags = () => /* @__PURE__ */ React75.createElement(Box4, { sx: { overflowY: "hidden", height: 297, width: 220 } }, /* @__PURE__ */ React75.createElement(Divider7, null), /* @__PURE__ */ React75.createElement(
|
|
3555
3633
|
Stack19,
|
|
3556
3634
|
{
|
|
3557
3635
|
gap: 1,
|
|
@@ -3562,9 +3640,9 @@ var NoDynamicTags = () => /* @__PURE__ */ React73.createElement(Box4, { sx: { ov
|
|
|
3562
3640
|
color: "text.secondary",
|
|
3563
3641
|
sx: { pb: 3.5 }
|
|
3564
3642
|
},
|
|
3565
|
-
/* @__PURE__ */
|
|
3566
|
-
/* @__PURE__ */
|
|
3567
|
-
/* @__PURE__ */
|
|
3643
|
+
/* @__PURE__ */ React75.createElement(DatabaseIcon, { fontSize: "large" }),
|
|
3644
|
+
/* @__PURE__ */ React75.createElement(Typography4, { align: "center", variant: "subtitle2" }, __49("Streamline your workflow with dynamic tags", "elementor")),
|
|
3645
|
+
/* @__PURE__ */ React75.createElement(Typography4, { align: "center", variant: "caption" }, __49("You\u2019ll need Elementor Pro to use this feature.", "elementor"))
|
|
3568
3646
|
));
|
|
3569
3647
|
var useFilteredOptions = (searchValue) => {
|
|
3570
3648
|
const dynamicTags = usePropDynamicTags();
|
|
@@ -3597,25 +3675,25 @@ var DynamicSelectionControl = () => {
|
|
|
3597
3675
|
if (!dynamicTag) {
|
|
3598
3676
|
throw new Error(`Dynamic tag ${tagName} not found`);
|
|
3599
3677
|
}
|
|
3600
|
-
return /* @__PURE__ */
|
|
3678
|
+
return /* @__PURE__ */ React76.createElement(Box5, null, /* @__PURE__ */ React76.createElement(
|
|
3601
3679
|
Tag,
|
|
3602
3680
|
{
|
|
3603
3681
|
fullWidth: true,
|
|
3604
3682
|
showActionsOnHover: true,
|
|
3605
3683
|
label: dynamicTag.label,
|
|
3606
|
-
startIcon: /* @__PURE__ */
|
|
3684
|
+
startIcon: /* @__PURE__ */ React76.createElement(DatabaseIcon2, { fontSize: SIZE4 }),
|
|
3607
3685
|
...bindTrigger2(selectionPopoverState),
|
|
3608
|
-
actions: /* @__PURE__ */
|
|
3686
|
+
actions: /* @__PURE__ */ React76.createElement(React76.Fragment, null, /* @__PURE__ */ React76.createElement(DynamicSettingsPopover, { dynamicTag }), /* @__PURE__ */ React76.createElement(
|
|
3609
3687
|
IconButton4,
|
|
3610
3688
|
{
|
|
3611
3689
|
size: SIZE4,
|
|
3612
3690
|
onClick: removeDynamicTag,
|
|
3613
|
-
"aria-label":
|
|
3691
|
+
"aria-label": __50("Remove dynamic value", "elementor")
|
|
3614
3692
|
},
|
|
3615
|
-
/* @__PURE__ */
|
|
3693
|
+
/* @__PURE__ */ React76.createElement(XIcon2, { fontSize: SIZE4 })
|
|
3616
3694
|
))
|
|
3617
3695
|
}
|
|
3618
|
-
), /* @__PURE__ */
|
|
3696
|
+
), /* @__PURE__ */ React76.createElement(
|
|
3619
3697
|
Popover2,
|
|
3620
3698
|
{
|
|
3621
3699
|
disablePortal: true,
|
|
@@ -3623,7 +3701,7 @@ var DynamicSelectionControl = () => {
|
|
|
3623
3701
|
anchorOrigin: { vertical: "bottom", horizontal: "left" },
|
|
3624
3702
|
...bindPopover2(selectionPopoverState)
|
|
3625
3703
|
},
|
|
3626
|
-
/* @__PURE__ */
|
|
3704
|
+
/* @__PURE__ */ React76.createElement(Stack20, null, /* @__PURE__ */ React76.createElement(Stack20, { direction: "row", alignItems: "center", pl: 1.5, pr: 0.5, py: 1.5 }, /* @__PURE__ */ React76.createElement(DatabaseIcon2, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React76.createElement(Typography5, { variant: "subtitle2" }, __50("Dynamic tags", "elementor")), /* @__PURE__ */ React76.createElement(IconButton4, { size: SIZE4, sx: { ml: "auto" }, onClick: selectionPopoverState.close }, /* @__PURE__ */ React76.createElement(XIcon2, { fontSize: SIZE4 }))), /* @__PURE__ */ React76.createElement(DynamicSelection, { onSelect: selectionPopoverState.close }))
|
|
3627
3705
|
));
|
|
3628
3706
|
};
|
|
3629
3707
|
var DynamicSettingsPopover = ({ dynamicTag }) => {
|
|
@@ -3632,7 +3710,7 @@ var DynamicSettingsPopover = ({ dynamicTag }) => {
|
|
|
3632
3710
|
if (!hasDynamicSettings) {
|
|
3633
3711
|
return null;
|
|
3634
3712
|
}
|
|
3635
|
-
return /* @__PURE__ */
|
|
3713
|
+
return /* @__PURE__ */ React76.createElement(React76.Fragment, null, /* @__PURE__ */ React76.createElement(IconButton4, { size: SIZE4, ...bindTrigger2(popupState), "aria-label": __50("Settings", "elementor") }, /* @__PURE__ */ React76.createElement(SettingsIcon, { fontSize: SIZE4 })), /* @__PURE__ */ React76.createElement(
|
|
3636
3714
|
Popover2,
|
|
3637
3715
|
{
|
|
3638
3716
|
disablePortal: true,
|
|
@@ -3640,7 +3718,7 @@ var DynamicSettingsPopover = ({ dynamicTag }) => {
|
|
|
3640
3718
|
anchorOrigin: { vertical: "bottom", horizontal: "center" },
|
|
3641
3719
|
...bindPopover2(popupState)
|
|
3642
3720
|
},
|
|
3643
|
-
/* @__PURE__ */
|
|
3721
|
+
/* @__PURE__ */ React76.createElement(Paper, { component: Stack20, sx: { minHeight: "300px", width: "220px" } }, /* @__PURE__ */ React76.createElement(Stack20, { direction: "row", alignItems: "center", px: 1.5, pt: 2, pb: 1 }, /* @__PURE__ */ React76.createElement(DatabaseIcon2, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React76.createElement(Typography5, { variant: "subtitle2" }, dynamicTag.label), /* @__PURE__ */ React76.createElement(IconButton4, { sx: { ml: "auto" }, size: SIZE4, onClick: popupState.close }, /* @__PURE__ */ React76.createElement(XIcon2, { fontSize: SIZE4 }))), /* @__PURE__ */ React76.createElement(DynamicSettings, { controls: dynamicTag.atomic_controls }))
|
|
3644
3722
|
));
|
|
3645
3723
|
};
|
|
3646
3724
|
var DynamicSettings = ({ controls }) => {
|
|
@@ -3649,10 +3727,10 @@ var DynamicSettings = ({ controls }) => {
|
|
|
3649
3727
|
if (!tabs.length) {
|
|
3650
3728
|
return null;
|
|
3651
3729
|
}
|
|
3652
|
-
return /* @__PURE__ */
|
|
3653
|
-
return /* @__PURE__ */
|
|
3730
|
+
return /* @__PURE__ */ React76.createElement(React76.Fragment, null, /* @__PURE__ */ React76.createElement(Tabs2, { size: "small", variant: "fullWidth", ...getTabsProps() }, tabs.map(({ value }, index) => /* @__PURE__ */ React76.createElement(Tab2, { key: index, label: value.label, sx: { px: 1, py: 0.5 }, ...getTabProps(index) }))), /* @__PURE__ */ React76.createElement(Divider8, null), tabs.map(({ value }, index) => {
|
|
3731
|
+
return /* @__PURE__ */ React76.createElement(TabPanel2, { key: index, sx: { flexGrow: 1, py: 0 }, ...getTabPanelProps(index) }, /* @__PURE__ */ React76.createElement(PopoverContent, { p: 2, gap: 2 }, value.items.map((item) => {
|
|
3654
3732
|
if (item.type === "control") {
|
|
3655
|
-
return /* @__PURE__ */
|
|
3733
|
+
return /* @__PURE__ */ React76.createElement(Control3, { key: item.value.bind, control: item.value });
|
|
3656
3734
|
}
|
|
3657
3735
|
return null;
|
|
3658
3736
|
})));
|
|
@@ -3662,7 +3740,7 @@ var Control3 = ({ control }) => {
|
|
|
3662
3740
|
if (!getControl(control.type)) {
|
|
3663
3741
|
return null;
|
|
3664
3742
|
}
|
|
3665
|
-
return /* @__PURE__ */
|
|
3743
|
+
return /* @__PURE__ */ React76.createElement(DynamicControl, { bind: control.bind }, /* @__PURE__ */ React76.createElement(Grid29, { container: true, gap: 0.75 }, control.label ? /* @__PURE__ */ React76.createElement(Grid29, { item: true, xs: 12 }, /* @__PURE__ */ React76.createElement(ControlFormLabel5, null, control.label)) : null, /* @__PURE__ */ React76.createElement(Grid29, { item: true, xs: 12 }, /* @__PURE__ */ React76.createElement(Control, { type: control.type, props: control.props }))));
|
|
3666
3744
|
};
|
|
3667
3745
|
|
|
3668
3746
|
// src/dynamics/dynamic-transformer.ts
|
|
@@ -3715,18 +3793,18 @@ function getDynamicValue(name, settings) {
|
|
|
3715
3793
|
}
|
|
3716
3794
|
|
|
3717
3795
|
// src/dynamics/hooks/use-prop-dynamic-action.tsx
|
|
3718
|
-
import * as
|
|
3796
|
+
import * as React77 from "react";
|
|
3719
3797
|
import { useBoundProp as useBoundProp6 } from "@elementor/editor-controls";
|
|
3720
3798
|
import { DatabaseIcon as DatabaseIcon3 } from "@elementor/icons";
|
|
3721
|
-
import { __ as
|
|
3799
|
+
import { __ as __51 } from "@wordpress/i18n";
|
|
3722
3800
|
var usePropDynamicAction = () => {
|
|
3723
3801
|
const { propType } = useBoundProp6();
|
|
3724
3802
|
const visible = !!propType && supportsDynamic(propType);
|
|
3725
3803
|
return {
|
|
3726
3804
|
visible,
|
|
3727
3805
|
icon: DatabaseIcon3,
|
|
3728
|
-
title:
|
|
3729
|
-
popoverContent: ({ closePopover }) => /* @__PURE__ */
|
|
3806
|
+
title: __51("Dynamic tags", "elementor"),
|
|
3807
|
+
popoverContent: ({ closePopover }) => /* @__PURE__ */ React77.createElement(DynamicSelection, { onSelect: closePopover })
|
|
3730
3808
|
};
|
|
3731
3809
|
};
|
|
3732
3810
|
|