@elementor/editor-editing-panel 1.39.0 → 1.41.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 +44 -0
- package/dist/index.d.mts +9 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +1182 -735
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1075 -617
- package/dist/index.mjs.map +1 -1
- package/package.json +7 -6
- package/src/action.tsx +26 -0
- package/src/components/add-or-remove-content.tsx +11 -3
- package/src/components/creatable-autocomplete/creatable-autocomplete.tsx +6 -2
- package/src/components/css-classes/css-class-item.tsx +3 -2
- package/src/components/css-classes/css-class-menu.tsx +15 -5
- package/src/components/css-classes/css-class-selector.tsx +2 -1
- package/src/components/css-classes/use-apply-and-unapply-class.ts +8 -4
- package/src/components/section-content.tsx +16 -6
- package/src/components/style-sections/background-section/background-section.tsx +6 -3
- package/src/components/style-sections/border-section/border-field.tsx +3 -0
- package/src/components/style-sections/layout-section/display-field.tsx +2 -1
- package/src/components/style-sections/layout-section/flex-order-field.tsx +5 -2
- package/src/components/style-sections/layout-section/flex-size-field.tsx +16 -12
- package/src/components/style-sections/size-section/object-fit-field.tsx +1 -1
- package/src/components/style-sections/size-section/object-position-field.tsx +1 -1
- package/src/components/style-sections/size-section/size-section.tsx +12 -11
- package/src/components/style-sections/typography-section/text-stroke-field.tsx +3 -0
- package/src/components/style-tab.tsx +1 -1
- package/src/contexts/style-context.tsx +11 -2
- package/src/contexts/styles-inheritance-context.tsx +9 -7
- package/src/controls-actions.ts +2 -0
- package/src/controls-registry/styles-field.tsx +3 -0
- package/src/init.ts +11 -1
- package/src/reset-style-props.tsx +31 -0
- package/src/styles-inheritance/components/action-icons.tsx +8 -0
- package/src/styles-inheritance/components/breakpoint-icon.tsx +47 -0
- package/src/styles-inheritance/components/index.ts +4 -0
- package/src/styles-inheritance/components/label-chip.tsx +43 -0
- package/src/styles-inheritance/components/value-component.tsx +25 -0
- package/src/styles-inheritance/consts.ts +17 -0
- package/src/styles-inheritance/create-styles-inheritance.ts +50 -12
- package/src/{hooks → styles-inheritance/hooks}/use-normalized-inheritance-chain-items.tsx +41 -11
- package/src/styles-inheritance/init-styles-inheritance-transformers.ts +38 -0
- package/src/styles-inheritance/init.ts +8 -0
- package/src/styles-inheritance/styles-inheritance-indicator.tsx +35 -32
- package/src/styles-inheritance/styles-inheritance-infotip.tsx +113 -19
- package/src/styles-inheritance/styles-inheritance-transformers-registry.tsx +3 -0
- package/src/styles-inheritance/transformers/background-color-overlay-transformer.tsx +27 -0
- package/src/styles-inheritance/transformers/background-gradient-overlay-transformer.tsx +50 -0
- package/src/styles-inheritance/transformers/background-image-overlay-transformer.tsx +79 -0
- package/src/styles-inheritance/transformers/background-overlay-transformer.tsx +20 -0
- package/src/styles-inheritance/types.ts +6 -2
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// src/index.ts
|
|
2
|
-
import { useBoundProp as
|
|
2
|
+
import { useBoundProp as useBoundProp8 } from "@elementor/editor-controls";
|
|
3
3
|
|
|
4
4
|
// src/control-replacement.tsx
|
|
5
5
|
import { createControlReplacementsRegistry } from "@elementor/editor-controls";
|
|
@@ -56,7 +56,7 @@ function useElement() {
|
|
|
56
56
|
// src/contexts/style-context.tsx
|
|
57
57
|
import * as React3 from "react";
|
|
58
58
|
import { createContext as createContext3, useContext as useContext3 } from "react";
|
|
59
|
-
import { stylesRepository } from "@elementor/editor-styles-repository";
|
|
59
|
+
import { stylesRepository, useUserStylesCapability } from "@elementor/editor-styles-repository";
|
|
60
60
|
|
|
61
61
|
// src/errors.ts
|
|
62
62
|
import { createError } from "@elementor/utils";
|
|
@@ -81,10 +81,12 @@ var StyleNotFoundUnderProviderError = createError({
|
|
|
81
81
|
var Context3 = createContext3(null);
|
|
82
82
|
function StyleProvider({ children, ...props }) {
|
|
83
83
|
const provider = props.id === null ? null : getProviderByStyleId(props.id);
|
|
84
|
+
const { userCan } = useUserStylesCapability();
|
|
84
85
|
if (props.id && !provider) {
|
|
85
86
|
throw new StylesProviderNotFoundError({ context: { styleId: props.id } });
|
|
86
87
|
}
|
|
87
|
-
|
|
88
|
+
const canEdit = userCan(provider?.getKey() ?? "").updateProps;
|
|
89
|
+
return /* @__PURE__ */ React3.createElement(Context3.Provider, { value: { ...props, provider, canEdit } }, children);
|
|
88
90
|
}
|
|
89
91
|
function useStyle() {
|
|
90
92
|
const context = useContext3(Context3);
|
|
@@ -99,6 +101,9 @@ function getProviderByStyleId(styleId) {
|
|
|
99
101
|
});
|
|
100
102
|
return styleProvider ?? null;
|
|
101
103
|
}
|
|
104
|
+
function useIsStyle() {
|
|
105
|
+
return !!useContext3(Context3);
|
|
106
|
+
}
|
|
102
107
|
|
|
103
108
|
// src/components/creatable-autocomplete/creatable-autocomplete.tsx
|
|
104
109
|
import * as React4 from "react";
|
|
@@ -283,6 +288,7 @@ function useFilterOptions(parameters) {
|
|
|
283
288
|
}
|
|
284
289
|
|
|
285
290
|
// src/components/creatable-autocomplete/creatable-autocomplete.tsx
|
|
291
|
+
var MIN_INPUT_LENGTH = 2;
|
|
286
292
|
var CreatableAutocomplete = React4.forwardRef(CreatableAutocompleteInner);
|
|
287
293
|
function CreatableAutocompleteInner({
|
|
288
294
|
selected,
|
|
@@ -311,6 +317,7 @@ function CreatableAutocompleteInner({
|
|
|
311
317
|
});
|
|
312
318
|
const filterOptions = useFilterOptions({ options: options12, selected, onCreate, entityName });
|
|
313
319
|
const isCreatable = Boolean(onCreate);
|
|
320
|
+
const freeSolo = isCreatable || inputValue.length < MIN_INPUT_LENGTH || void 0;
|
|
314
321
|
return /* @__PURE__ */ React4.createElement(
|
|
315
322
|
Autocomplete,
|
|
316
323
|
{
|
|
@@ -327,8 +334,8 @@ function CreatableAutocompleteInner({
|
|
|
327
334
|
},
|
|
328
335
|
...props,
|
|
329
336
|
ref,
|
|
330
|
-
freeSolo
|
|
331
|
-
forcePopupIcon:
|
|
337
|
+
freeSolo,
|
|
338
|
+
forcePopupIcon: false,
|
|
332
339
|
multiple: true,
|
|
333
340
|
clearOnBlur: true,
|
|
334
341
|
selectOnFocus: true,
|
|
@@ -467,7 +474,7 @@ import * as React6 from "react";
|
|
|
467
474
|
import {
|
|
468
475
|
isElementsStylesProvider,
|
|
469
476
|
stylesRepository as stylesRepository2,
|
|
470
|
-
useUserStylesCapability
|
|
477
|
+
useUserStylesCapability as useUserStylesCapability2
|
|
471
478
|
} from "@elementor/editor-styles-repository";
|
|
472
479
|
import { MenuItemInfotip, MenuListItem } from "@elementor/editor-ui";
|
|
473
480
|
import { bindMenu, Divider, Menu, MenuSubheader, Stack } from "@elementor/ui";
|
|
@@ -514,7 +521,6 @@ function useApplyClass() {
|
|
|
514
521
|
do: ({ classId }) => {
|
|
515
522
|
const prevActiveId = activeId;
|
|
516
523
|
applyClass(classId);
|
|
517
|
-
setDocumentModifiedStatus(true);
|
|
518
524
|
return prevActiveId;
|
|
519
525
|
},
|
|
520
526
|
undo: ({ classId }, prevActiveId) => {
|
|
@@ -550,7 +556,6 @@ function useUnapplyClass() {
|
|
|
550
556
|
do: ({ classId }) => {
|
|
551
557
|
const prevActiveId = activeId;
|
|
552
558
|
unapplyClass(classId);
|
|
553
|
-
setDocumentModifiedStatus(true);
|
|
554
559
|
return prevActiveId;
|
|
555
560
|
},
|
|
556
561
|
undo: ({ classId }, prevActiveId) => {
|
|
@@ -617,20 +622,24 @@ function useUnapply() {
|
|
|
617
622
|
function useSetClasses() {
|
|
618
623
|
const { element } = useElement();
|
|
619
624
|
const currentClassesProp = useClassesProp();
|
|
625
|
+
const isVersion330Active = isExperimentActive("e_v_3_30");
|
|
620
626
|
return useMemo2(() => {
|
|
621
627
|
const setClasses = (ids) => {
|
|
622
628
|
updateElementSettings({
|
|
623
629
|
id: element.id,
|
|
624
630
|
props: { [currentClassesProp]: classesPropTypeUtil.create(ids) },
|
|
625
|
-
withHistory: false
|
|
631
|
+
withHistory: isVersion330Active ? false : true
|
|
626
632
|
});
|
|
633
|
+
if (isVersion330Active) {
|
|
634
|
+
setDocumentModifiedStatus(true);
|
|
635
|
+
}
|
|
627
636
|
};
|
|
628
637
|
const getAppliedClasses = () => getElementSetting(element.id, currentClassesProp)?.value || [];
|
|
629
638
|
return {
|
|
630
639
|
setClasses,
|
|
631
640
|
getAppliedClasses
|
|
632
641
|
};
|
|
633
|
-
}, [currentClassesProp, element.id]);
|
|
642
|
+
}, [currentClassesProp, element.id, isVersion330Active]);
|
|
634
643
|
}
|
|
635
644
|
|
|
636
645
|
// src/components/css-classes/css-class-menu.tsx
|
|
@@ -640,7 +649,7 @@ var STATES = [
|
|
|
640
649
|
{ key: "focus", value: "focus" },
|
|
641
650
|
{ key: "active", value: "active" }
|
|
642
651
|
];
|
|
643
|
-
function CssClassMenu({ popupState, anchorEl }) {
|
|
652
|
+
function CssClassMenu({ popupState, anchorEl, fixed }) {
|
|
644
653
|
const { provider } = useCssClass();
|
|
645
654
|
const handleKeyDown = (e) => {
|
|
646
655
|
e.stopPropagation();
|
|
@@ -662,7 +671,7 @@ function CssClassMenu({ popupState, anchorEl }) {
|
|
|
662
671
|
onKeyDown: handleKeyDown,
|
|
663
672
|
disableAutoFocusItem: true
|
|
664
673
|
},
|
|
665
|
-
getMenuItemsByProvider({ provider, closeMenu: popupState.close }),
|
|
674
|
+
getMenuItemsByProvider({ provider, closeMenu: popupState.close, fixed }),
|
|
666
675
|
/* @__PURE__ */ React6.createElement(MenuSubheader, { sx: { typography: "caption", color: "text.secondary", pb: 0.5, pt: 1 } }, __2("States", "elementor")),
|
|
667
676
|
STATES.map((state) => {
|
|
668
677
|
return /* @__PURE__ */ React6.createElement(StateMenuItem, { key: state.key, state: state.value, closeMenu: popupState.close });
|
|
@@ -676,16 +685,21 @@ function useModifiedStates(styleId) {
|
|
|
676
685
|
styleDef?.variants.filter((variant) => meta.breakpoint === variant.meta.breakpoint).map((variant) => [variant.meta.state ?? "normal", true]) ?? []
|
|
677
686
|
);
|
|
678
687
|
}
|
|
679
|
-
function getMenuItemsByProvider({
|
|
688
|
+
function getMenuItemsByProvider({
|
|
689
|
+
provider,
|
|
690
|
+
closeMenu,
|
|
691
|
+
fixed
|
|
692
|
+
}) {
|
|
680
693
|
if (!provider) {
|
|
681
694
|
return [];
|
|
682
695
|
}
|
|
683
696
|
const providerInstance = stylesRepository2.getProviderByKey(provider);
|
|
684
697
|
const providerActions = providerInstance?.actions;
|
|
685
|
-
const
|
|
698
|
+
const canUpdate = providerActions?.update;
|
|
699
|
+
const canUnapply = !fixed;
|
|
686
700
|
const actions = [
|
|
687
701
|
canUpdate && /* @__PURE__ */ React6.createElement(RenameClassMenuItem, { key: "rename-class", closeMenu }),
|
|
688
|
-
|
|
702
|
+
canUnapply && /* @__PURE__ */ React6.createElement(UnapplyClassMenuItem, { key: "unapply-class", closeMenu })
|
|
689
703
|
].filter(Boolean);
|
|
690
704
|
if (actions.length) {
|
|
691
705
|
actions.unshift(
|
|
@@ -706,7 +720,7 @@ function StateMenuItem({ state, closeMenu, ...props }) {
|
|
|
706
720
|
const { id: styleId, provider } = useCssClass();
|
|
707
721
|
const { id: activeId, setId: setActiveId, setMetaState: setActiveMetaState, meta } = useStyle();
|
|
708
722
|
const { state: activeState } = meta;
|
|
709
|
-
const { userCan } =
|
|
723
|
+
const { userCan } = useUserStylesCapability2();
|
|
710
724
|
const modifiedStates = useModifiedStates(styleId);
|
|
711
725
|
const isUpdateAllowed = userCan(provider ?? "").updateProps;
|
|
712
726
|
const indicatorVariant = !provider || isElementsStylesProvider(provider) ? "local" : "global";
|
|
@@ -756,7 +770,7 @@ function UnapplyClassMenuItem({ closeMenu, ...props }) {
|
|
|
756
770
|
}
|
|
757
771
|
function RenameClassMenuItem({ closeMenu }) {
|
|
758
772
|
const { handleRename, provider } = useCssClass();
|
|
759
|
-
const { userCan } =
|
|
773
|
+
const { userCan } = useUserStylesCapability2();
|
|
760
774
|
if (!provider) {
|
|
761
775
|
return null;
|
|
762
776
|
}
|
|
@@ -787,7 +801,7 @@ function RenameClassMenuItem({ closeMenu }) {
|
|
|
787
801
|
// src/components/css-classes/css-class-item.tsx
|
|
788
802
|
var CHIP_SIZE = "tiny";
|
|
789
803
|
function CssClassItem(props) {
|
|
790
|
-
const { chipProps, icon, color: colorProp, ...classProps } = props;
|
|
804
|
+
const { chipProps, icon, color: colorProp, fixed, ...classProps } = props;
|
|
791
805
|
const { id, provider, label, isActive, onClickActive, renameLabel, setError } = classProps;
|
|
792
806
|
const { meta, setMetaState } = useStyle();
|
|
793
807
|
const popupState = usePopupState({ variant: "popover" });
|
|
@@ -870,7 +884,7 @@ function CssClassItem(props) {
|
|
|
870
884
|
})
|
|
871
885
|
}
|
|
872
886
|
)
|
|
873
|
-
), /* @__PURE__ */ React7.createElement(CssClassProvider, { ...classProps, handleRename: openEditMode }, /* @__PURE__ */ React7.createElement(CssClassMenu, { popupState, anchorEl: chipRef })));
|
|
887
|
+
), /* @__PURE__ */ React7.createElement(CssClassProvider, { ...classProps, handleRename: openEditMode }, /* @__PURE__ */ React7.createElement(CssClassMenu, { popupState, anchorEl: chipRef, fixed })));
|
|
874
888
|
}
|
|
875
889
|
var validateLabel = (newLabel) => {
|
|
876
890
|
const result = validateStyleLabel(newLabel, "rename");
|
|
@@ -941,6 +955,7 @@ function CssClassSelector() {
|
|
|
941
955
|
CssClassItem,
|
|
942
956
|
{
|
|
943
957
|
key: chipProps.key,
|
|
958
|
+
fixed: value.fixed,
|
|
944
959
|
label: value.label,
|
|
945
960
|
provider: value.provider,
|
|
946
961
|
id: value.value,
|
|
@@ -969,7 +984,7 @@ var EmptyState = ({ searchValue, onClear }) => /* @__PURE__ */ React8.createElem
|
|
|
969
984
|
},
|
|
970
985
|
/* @__PURE__ */ React8.createElement(ColorSwatchIcon, { sx: { transform: "rotate(90deg)" }, fontSize: "large" }),
|
|
971
986
|
/* @__PURE__ */ React8.createElement(Typography3, { align: "center", variant: "subtitle2" }, __4("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React8.createElement("br", null), "\u201C", searchValue, "\u201D."),
|
|
972
|
-
/* @__PURE__ */ React8.createElement(Typography3, { align: "center", variant: "caption", sx: { mb: 2 } }, __4("With your role
|
|
987
|
+
/* @__PURE__ */ React8.createElement(Typography3, { align: "center", variant: "caption", sx: { mb: 2 } }, __4("With your current role,", "elementor"), /* @__PURE__ */ React8.createElement("br", null), __4("you can only use existing classes.", "elementor")),
|
|
973
988
|
/* @__PURE__ */ React8.createElement(Link, { color: "text.secondary", variant: "caption", component: "button", onClick: onClear }, __4("Clear & try again", "elementor"))
|
|
974
989
|
));
|
|
975
990
|
var updateClassByProvider = (provider, data) => {
|
|
@@ -1087,7 +1102,7 @@ function useHandleSelect() {
|
|
|
1087
1102
|
import { __createPanel as createPanel } from "@elementor/editor-panels";
|
|
1088
1103
|
|
|
1089
1104
|
// src/components/editing-panel.tsx
|
|
1090
|
-
import * as
|
|
1105
|
+
import * as React80 from "react";
|
|
1091
1106
|
import { ControlActionsProvider, ControlReplacementsProvider } from "@elementor/editor-controls";
|
|
1092
1107
|
import { useSelectedElement } from "@elementor/editor-elements";
|
|
1093
1108
|
import { Panel, PanelBody, PanelHeader, PanelHeaderTitle } from "@elementor/editor-panels";
|
|
@@ -1095,17 +1110,28 @@ import { ThemeProvider as ThemeProvider9 } from "@elementor/editor-ui";
|
|
|
1095
1110
|
import { AtomIcon } from "@elementor/icons";
|
|
1096
1111
|
import { SessionStorageProvider as SessionStorageProvider3 } from "@elementor/session";
|
|
1097
1112
|
import { ErrorBoundary } from "@elementor/ui";
|
|
1098
|
-
import { __ as
|
|
1113
|
+
import { __ as __54 } from "@wordpress/i18n";
|
|
1099
1114
|
|
|
1100
1115
|
// src/controls-actions.ts
|
|
1101
1116
|
import { createMenu } from "@elementor/menus";
|
|
1102
1117
|
|
|
1103
|
-
// src/
|
|
1118
|
+
// src/action.tsx
|
|
1104
1119
|
import * as React9 from "react";
|
|
1120
|
+
import { IconButton, Tooltip } from "@elementor/ui";
|
|
1121
|
+
var SIZE = "tiny";
|
|
1122
|
+
function Action({ title, visible = true, icon: Icon, onClick }) {
|
|
1123
|
+
if (!visible) {
|
|
1124
|
+
return null;
|
|
1125
|
+
}
|
|
1126
|
+
return /* @__PURE__ */ React9.createElement(Tooltip, { placement: "bottom", title, arrow: true }, /* @__PURE__ */ React9.createElement(IconButton, { "aria-label": title, size: SIZE, onClick }, /* @__PURE__ */ React9.createElement(Icon, { fontSize: SIZE })));
|
|
1127
|
+
}
|
|
1128
|
+
|
|
1129
|
+
// src/popover-action.tsx
|
|
1130
|
+
import * as React10 from "react";
|
|
1105
1131
|
import { useId as useId2 } from "react";
|
|
1106
1132
|
import { XIcon } from "@elementor/icons";
|
|
1107
|
-
import { bindPopover, bindToggle, IconButton, Popover, Stack as Stack4, Tooltip, Typography as Typography4, usePopupState as usePopupState2 } from "@elementor/ui";
|
|
1108
|
-
var
|
|
1133
|
+
import { bindPopover, bindToggle, IconButton as IconButton2, Popover, Stack as Stack4, Tooltip as Tooltip2, Typography as Typography4, usePopupState as usePopupState2 } from "@elementor/ui";
|
|
1134
|
+
var SIZE2 = "tiny";
|
|
1109
1135
|
function PopoverAction({
|
|
1110
1136
|
title,
|
|
1111
1137
|
visible = true,
|
|
@@ -1120,7 +1146,7 @@ function PopoverAction({
|
|
|
1120
1146
|
if (!visible) {
|
|
1121
1147
|
return null;
|
|
1122
1148
|
}
|
|
1123
|
-
return /* @__PURE__ */
|
|
1149
|
+
return /* @__PURE__ */ React10.createElement(React10.Fragment, null, /* @__PURE__ */ React10.createElement(Tooltip2, { placement: "top", title }, /* @__PURE__ */ React10.createElement(IconButton2, { "aria-label": title, key: id, size: SIZE2, ...bindToggle(popupState) }, /* @__PURE__ */ React10.createElement(Icon, { fontSize: SIZE2 }))), /* @__PURE__ */ React10.createElement(
|
|
1124
1150
|
Popover,
|
|
1125
1151
|
{
|
|
1126
1152
|
disablePortal: true,
|
|
@@ -1131,34 +1157,35 @@ function PopoverAction({
|
|
|
1131
1157
|
},
|
|
1132
1158
|
...bindPopover(popupState)
|
|
1133
1159
|
},
|
|
1134
|
-
/* @__PURE__ */
|
|
1135
|
-
/* @__PURE__ */
|
|
1160
|
+
/* @__PURE__ */ React10.createElement(Stack4, { direction: "row", alignItems: "center", pl: 1.5, pr: 0.5, py: 1.5 }, /* @__PURE__ */ React10.createElement(Icon, { fontSize: SIZE2, sx: { mr: 0.5 } }), /* @__PURE__ */ React10.createElement(Typography4, { variant: "subtitle2" }, title), /* @__PURE__ */ React10.createElement(IconButton2, { sx: { ml: "auto" }, size: SIZE2, onClick: popupState.close }, /* @__PURE__ */ React10.createElement(XIcon, { fontSize: SIZE2 }))),
|
|
1161
|
+
/* @__PURE__ */ React10.createElement(PopoverContent2, { closePopover: popupState.close })
|
|
1136
1162
|
));
|
|
1137
1163
|
}
|
|
1138
1164
|
|
|
1139
1165
|
// src/controls-actions.ts
|
|
1140
1166
|
var controlActionsMenu = createMenu({
|
|
1141
1167
|
components: {
|
|
1168
|
+
Action,
|
|
1142
1169
|
PopoverAction
|
|
1143
1170
|
}
|
|
1144
1171
|
});
|
|
1145
1172
|
|
|
1146
1173
|
// src/components/editing-panel-error-fallback.tsx
|
|
1147
|
-
import * as
|
|
1174
|
+
import * as React11 from "react";
|
|
1148
1175
|
import { Alert, Box as Box3 } from "@elementor/ui";
|
|
1149
1176
|
function EditorPanelErrorFallback() {
|
|
1150
|
-
return /* @__PURE__ */
|
|
1177
|
+
return /* @__PURE__ */ React11.createElement(Box3, { role: "alert", sx: { minHeight: "100%", p: 2 } }, /* @__PURE__ */ React11.createElement(Alert, { severity: "error", sx: { mb: 2, maxWidth: 400, textAlign: "center" } }, /* @__PURE__ */ React11.createElement("strong", null, "Something went wrong")));
|
|
1151
1178
|
}
|
|
1152
1179
|
|
|
1153
1180
|
// src/components/editing-panel-tabs.tsx
|
|
1154
|
-
import * as
|
|
1181
|
+
import * as React79 from "react";
|
|
1155
1182
|
import { Fragment as Fragment9 } from "react";
|
|
1156
|
-
import { isExperimentActive as
|
|
1157
|
-
import { Divider as Divider6, Stack as
|
|
1158
|
-
import { __ as
|
|
1183
|
+
import { isExperimentActive as isExperimentActive11 } from "@elementor/editor-v1-adapters";
|
|
1184
|
+
import { Divider as Divider6, Stack as Stack18, Tab, TabPanel, Tabs, useTabs } from "@elementor/ui";
|
|
1185
|
+
import { __ as __53 } from "@wordpress/i18n";
|
|
1159
1186
|
|
|
1160
1187
|
// src/contexts/scroll-context.tsx
|
|
1161
|
-
import * as
|
|
1188
|
+
import * as React12 from "react";
|
|
1162
1189
|
import { createContext as createContext5, useContext as useContext5, useEffect, useRef as useRef2, useState as useState5 } from "react";
|
|
1163
1190
|
import { styled as styled3 } from "@elementor/ui";
|
|
1164
1191
|
var ScrollContext = createContext5(void 0);
|
|
@@ -1190,7 +1217,7 @@ function ScrollProvider({ children }) {
|
|
|
1190
1217
|
scrollElement.removeEventListener("scroll", handleScroll);
|
|
1191
1218
|
};
|
|
1192
1219
|
});
|
|
1193
|
-
return /* @__PURE__ */
|
|
1220
|
+
return /* @__PURE__ */ React12.createElement(ScrollContext.Provider, { value: { direction } }, /* @__PURE__ */ React12.createElement(ScrollPanel, { ref }, children));
|
|
1194
1221
|
}
|
|
1195
1222
|
function useScrollDirection() {
|
|
1196
1223
|
return useContext5(ScrollContext)?.direction ?? DEFAULT_SCROLL_DIRECTION;
|
|
@@ -1246,14 +1273,14 @@ var useStateByElement = (key, initialValue) => {
|
|
|
1246
1273
|
};
|
|
1247
1274
|
|
|
1248
1275
|
// src/components/settings-tab.tsx
|
|
1249
|
-
import * as
|
|
1276
|
+
import * as React18 from "react";
|
|
1250
1277
|
import { ControlFormLabel } from "@elementor/editor-controls";
|
|
1251
1278
|
import { isExperimentActive as isExperimentActive3 } from "@elementor/editor-v1-adapters";
|
|
1252
1279
|
import { SessionStorageProvider } from "@elementor/session";
|
|
1253
1280
|
import { Divider as Divider3 } from "@elementor/ui";
|
|
1254
1281
|
|
|
1255
1282
|
// src/controls-registry/control.tsx
|
|
1256
|
-
import * as
|
|
1283
|
+
import * as React13 from "react";
|
|
1257
1284
|
|
|
1258
1285
|
// src/controls-registry/controls-registry.tsx
|
|
1259
1286
|
import {
|
|
@@ -1290,14 +1317,14 @@ var Control = ({ props, type }) => {
|
|
|
1290
1317
|
context: { controlType: type }
|
|
1291
1318
|
});
|
|
1292
1319
|
}
|
|
1293
|
-
return /* @__PURE__ */
|
|
1320
|
+
return /* @__PURE__ */ React13.createElement(ControlByType, { ...props, context: { elementId: element.id } });
|
|
1294
1321
|
};
|
|
1295
1322
|
|
|
1296
1323
|
// src/controls-registry/control-type-container.tsx
|
|
1297
|
-
import * as
|
|
1324
|
+
import * as React14 from "react";
|
|
1298
1325
|
import { Box as Box4, styled as styled4 } from "@elementor/ui";
|
|
1299
1326
|
var ControlTypeContainer = ({ children, layout }) => {
|
|
1300
|
-
return /* @__PURE__ */
|
|
1327
|
+
return /* @__PURE__ */ React14.createElement(StyledContainer, { layout }, children);
|
|
1301
1328
|
};
|
|
1302
1329
|
var StyledContainer = styled4(Box4, {
|
|
1303
1330
|
shouldForwardProp: (prop) => !["layout"].includes(prop)
|
|
@@ -1315,7 +1342,7 @@ var getGridLayout = (layout) => ({
|
|
|
1315
1342
|
});
|
|
1316
1343
|
|
|
1317
1344
|
// src/controls-registry/settings-field.tsx
|
|
1318
|
-
import * as
|
|
1345
|
+
import * as React15 from "react";
|
|
1319
1346
|
import { PropKeyProvider, PropProvider } from "@elementor/editor-controls";
|
|
1320
1347
|
import { updateElementSettings as updateElementSettings3, useElementSetting as useElementSetting2 } from "@elementor/editor-elements";
|
|
1321
1348
|
|
|
@@ -1344,11 +1371,11 @@ var SettingsField = ({ bind, children }) => {
|
|
|
1344
1371
|
props: { ...newValue }
|
|
1345
1372
|
});
|
|
1346
1373
|
};
|
|
1347
|
-
return /* @__PURE__ */
|
|
1374
|
+
return /* @__PURE__ */ React15.createElement(PropProvider, { propType, value, setValue }, /* @__PURE__ */ React15.createElement(PropKeyProvider, { bind }, children));
|
|
1348
1375
|
};
|
|
1349
1376
|
|
|
1350
1377
|
// src/components/section.tsx
|
|
1351
|
-
import * as
|
|
1378
|
+
import * as React16 from "react";
|
|
1352
1379
|
import { useId as useId3 } from "react";
|
|
1353
1380
|
import { Collapse, Divider as Divider2, ListItemButton, ListItemText, Stack as Stack5 } from "@elementor/ui";
|
|
1354
1381
|
|
|
@@ -1370,7 +1397,7 @@ function Section({ title, children, defaultExpanded = false }) {
|
|
|
1370
1397
|
const id = useId3();
|
|
1371
1398
|
const labelId = `label-${id}`;
|
|
1372
1399
|
const contentId = `content-${id}`;
|
|
1373
|
-
return /* @__PURE__ */
|
|
1400
|
+
return /* @__PURE__ */ React16.createElement(React16.Fragment, null, /* @__PURE__ */ React16.createElement(
|
|
1374
1401
|
ListItemButton,
|
|
1375
1402
|
{
|
|
1376
1403
|
id: labelId,
|
|
@@ -1378,22 +1405,22 @@ function Section({ title, children, defaultExpanded = false }) {
|
|
|
1378
1405
|
onClick: () => setIsOpen(!isOpen),
|
|
1379
1406
|
sx: { "&:hover": { backgroundColor: "transparent" } }
|
|
1380
1407
|
},
|
|
1381
|
-
/* @__PURE__ */
|
|
1408
|
+
/* @__PURE__ */ React16.createElement(
|
|
1382
1409
|
ListItemText,
|
|
1383
1410
|
{
|
|
1384
1411
|
secondary: title,
|
|
1385
1412
|
secondaryTypographyProps: { color: "text.primary", variant: "caption", fontWeight: "bold" }
|
|
1386
1413
|
}
|
|
1387
1414
|
),
|
|
1388
|
-
/* @__PURE__ */
|
|
1389
|
-
), /* @__PURE__ */
|
|
1415
|
+
/* @__PURE__ */ React16.createElement(CollapseIcon, { open: isOpen, color: "secondary", fontSize: "tiny" })
|
|
1416
|
+
), /* @__PURE__ */ React16.createElement(Collapse, { id: contentId, "aria-labelledby": labelId, in: isOpen, timeout: "auto", unmountOnExit: true }, /* @__PURE__ */ React16.createElement(Stack5, { gap: 2.5, p: 2 }, children)), /* @__PURE__ */ React16.createElement(Divider2, null));
|
|
1390
1417
|
}
|
|
1391
1418
|
|
|
1392
1419
|
// src/components/sections-list.tsx
|
|
1393
|
-
import * as
|
|
1420
|
+
import * as React17 from "react";
|
|
1394
1421
|
import { List } from "@elementor/ui";
|
|
1395
1422
|
function SectionsList(props) {
|
|
1396
|
-
return /* @__PURE__ */
|
|
1423
|
+
return /* @__PURE__ */ React17.createElement(List, { disablePadding: true, component: "div", ...props });
|
|
1397
1424
|
}
|
|
1398
1425
|
|
|
1399
1426
|
// src/components/settings-tab.tsx
|
|
@@ -1401,12 +1428,12 @@ var SettingsTab = () => {
|
|
|
1401
1428
|
const { elementType, element } = useElement();
|
|
1402
1429
|
const settingsDefault = useDefaultPanelSettings();
|
|
1403
1430
|
const isDefaultExpanded = (sectionId) => isExperimentActive3(EXPERIMENTAL_FEATURES.V_3_30) ? settingsDefault.defaultSectionsExpanded.settings?.includes(sectionId) : true;
|
|
1404
|
-
return /* @__PURE__ */
|
|
1431
|
+
return /* @__PURE__ */ React18.createElement(SessionStorageProvider, { prefix: element.id }, /* @__PURE__ */ React18.createElement(SectionsList, null, elementType.controls.map(({ type, value }, index) => {
|
|
1405
1432
|
if (type === "control") {
|
|
1406
|
-
return /* @__PURE__ */
|
|
1433
|
+
return /* @__PURE__ */ React18.createElement(Control2, { key: value.bind, control: value });
|
|
1407
1434
|
}
|
|
1408
1435
|
if (type === "section") {
|
|
1409
|
-
return /* @__PURE__ */
|
|
1436
|
+
return /* @__PURE__ */ React18.createElement(
|
|
1410
1437
|
Section,
|
|
1411
1438
|
{
|
|
1412
1439
|
title: value.label,
|
|
@@ -1415,7 +1442,7 @@ var SettingsTab = () => {
|
|
|
1415
1442
|
},
|
|
1416
1443
|
value.items?.map((item) => {
|
|
1417
1444
|
if (item.type === "control") {
|
|
1418
|
-
return /* @__PURE__ */
|
|
1445
|
+
return /* @__PURE__ */ React18.createElement(Control2, { key: item.value.bind, control: item.value });
|
|
1419
1446
|
}
|
|
1420
1447
|
return null;
|
|
1421
1448
|
})
|
|
@@ -1429,25 +1456,26 @@ var Control2 = ({ control }) => {
|
|
|
1429
1456
|
return null;
|
|
1430
1457
|
}
|
|
1431
1458
|
const layout = control.meta?.layout || getDefaultLayout(control.type);
|
|
1432
|
-
return /* @__PURE__ */
|
|
1459
|
+
return /* @__PURE__ */ React18.createElement(SettingsField, { bind: control.bind }, control.meta?.topDivider && /* @__PURE__ */ React18.createElement(Divider3, null), /* @__PURE__ */ React18.createElement(ControlTypeContainer, { layout }, control.label ? /* @__PURE__ */ React18.createElement(ControlFormLabel, null, control.label) : null, /* @__PURE__ */ React18.createElement(Control, { type: control.type, props: control.props })));
|
|
1433
1460
|
};
|
|
1434
1461
|
|
|
1435
1462
|
// src/components/style-tab.tsx
|
|
1436
|
-
import * as
|
|
1463
|
+
import * as React78 from "react";
|
|
1437
1464
|
import { useState as useState12 } from "react";
|
|
1438
1465
|
import { CLASSES_PROP_KEY } from "@elementor/editor-props";
|
|
1439
1466
|
import { useActiveBreakpoint } from "@elementor/editor-responsive";
|
|
1440
|
-
import { isExperimentActive as
|
|
1467
|
+
import { isExperimentActive as isExperimentActive10 } from "@elementor/editor-v1-adapters";
|
|
1441
1468
|
import { SessionStorageProvider as SessionStorageProvider2 } from "@elementor/session";
|
|
1442
|
-
import { Divider as Divider5, Stack as
|
|
1443
|
-
import { __ as
|
|
1469
|
+
import { Divider as Divider5, Stack as Stack17 } from "@elementor/ui";
|
|
1470
|
+
import { __ as __52 } from "@wordpress/i18n";
|
|
1444
1471
|
|
|
1445
1472
|
// src/contexts/styles-inheritance-context.tsx
|
|
1446
|
-
import * as
|
|
1473
|
+
import * as React19 from "react";
|
|
1447
1474
|
import { createContext as createContext7, useContext as useContext7 } from "react";
|
|
1448
1475
|
import { getWidgetsCache, useElementSetting as useElementSetting3 } from "@elementor/editor-elements";
|
|
1449
1476
|
import { classesPropTypeUtil as classesPropTypeUtil3 } from "@elementor/editor-props";
|
|
1450
1477
|
import { getBreakpointsTree } from "@elementor/editor-responsive";
|
|
1478
|
+
import { getStylesSchema } from "@elementor/editor-styles";
|
|
1451
1479
|
import { stylesRepository as stylesRepository5 } from "@elementor/editor-styles-repository";
|
|
1452
1480
|
|
|
1453
1481
|
// src/hooks/use-styles-rerender.ts
|
|
@@ -1459,7 +1487,10 @@ var useStylesRerender = () => {
|
|
|
1459
1487
|
};
|
|
1460
1488
|
|
|
1461
1489
|
// src/styles-inheritance/create-styles-inheritance.ts
|
|
1462
|
-
import {
|
|
1490
|
+
import {
|
|
1491
|
+
isEmpty,
|
|
1492
|
+
isTransformable
|
|
1493
|
+
} from "@elementor/editor-props";
|
|
1463
1494
|
|
|
1464
1495
|
// src/styles-inheritance/create-snapshots-manager.ts
|
|
1465
1496
|
import { filterEmptyValues } from "@elementor/editor-props";
|
|
@@ -1592,13 +1623,14 @@ function createStylesInheritance(styleDefs, breakpointsRoot) {
|
|
|
1592
1623
|
const getStyles = ({ breakpoint, state }) => styleVariantsByMeta?.[getBreakpointKey(breakpoint)]?.[getStateKey(state)] ?? [];
|
|
1593
1624
|
return {
|
|
1594
1625
|
getSnapshot: createSnapshotsManager(getStyles, breakpointsRoot),
|
|
1595
|
-
getInheritanceChain: (snapshot, path) => {
|
|
1626
|
+
getInheritanceChain: (snapshot, path, topLevelPropType) => {
|
|
1596
1627
|
const [field, ...nextFields] = path;
|
|
1597
1628
|
let inheritanceChain = snapshot[field] ?? [];
|
|
1598
1629
|
if (nextFields.length > 0) {
|
|
1630
|
+
const filterPropType = getFilterPropType(topLevelPropType, nextFields);
|
|
1599
1631
|
inheritanceChain = inheritanceChain.map(({ value: styleValue, ...rest }) => ({
|
|
1600
1632
|
...rest,
|
|
1601
|
-
value: getValueByPath(styleValue, nextFields)
|
|
1633
|
+
value: getValueByPath(styleValue, nextFields, filterPropType)
|
|
1602
1634
|
})).filter(({ value: styleValue }) => !isEmpty(styleValue));
|
|
1603
1635
|
}
|
|
1604
1636
|
return inheritanceChain;
|
|
@@ -1630,23 +1662,46 @@ function buildStyleVariantsByMetaMapping(styleDefs) {
|
|
|
1630
1662
|
});
|
|
1631
1663
|
return breakpointStateSlots;
|
|
1632
1664
|
}
|
|
1633
|
-
function getValueByPath(value, path) {
|
|
1665
|
+
function getValueByPath(value, path, filterPropType) {
|
|
1634
1666
|
if (!value || typeof value !== "object") {
|
|
1635
1667
|
return null;
|
|
1636
1668
|
}
|
|
1669
|
+
if (shouldUseOriginalValue(filterPropType, value)) {
|
|
1670
|
+
return value;
|
|
1671
|
+
}
|
|
1637
1672
|
return path.reduce((currentScope, key) => {
|
|
1638
1673
|
if (!currentScope) {
|
|
1639
1674
|
return null;
|
|
1640
1675
|
}
|
|
1641
1676
|
if (isTransformable(currentScope)) {
|
|
1642
|
-
return currentScope.value?.[key];
|
|
1677
|
+
return currentScope.value?.[key] ?? null;
|
|
1643
1678
|
}
|
|
1644
1679
|
if (typeof currentScope === "object") {
|
|
1645
|
-
return currentScope[key];
|
|
1680
|
+
return currentScope[key] ?? null;
|
|
1646
1681
|
}
|
|
1647
1682
|
return null;
|
|
1648
1683
|
}, value);
|
|
1649
1684
|
}
|
|
1685
|
+
function shouldUseOriginalValue(filterPropType, value) {
|
|
1686
|
+
return !!filterPropType && isTransformable(value) && filterPropType.key !== value.$$type;
|
|
1687
|
+
}
|
|
1688
|
+
var getFilterPropType = (propType, path) => {
|
|
1689
|
+
if (!propType || propType.kind !== "union") {
|
|
1690
|
+
return null;
|
|
1691
|
+
}
|
|
1692
|
+
return Object.values(propType.prop_types).find((type) => {
|
|
1693
|
+
return !!path.reduce((currentScope, key) => {
|
|
1694
|
+
if (currentScope?.kind !== "object") {
|
|
1695
|
+
return null;
|
|
1696
|
+
}
|
|
1697
|
+
const { shape } = currentScope;
|
|
1698
|
+
if (shape[key]) {
|
|
1699
|
+
return shape[key];
|
|
1700
|
+
}
|
|
1701
|
+
return null;
|
|
1702
|
+
}, type);
|
|
1703
|
+
}) ?? null;
|
|
1704
|
+
};
|
|
1650
1705
|
|
|
1651
1706
|
// src/contexts/styles-inheritance-context.tsx
|
|
1652
1707
|
var Context4 = createContext7(null);
|
|
@@ -1654,7 +1709,7 @@ function StyleInheritanceProvider({ children }) {
|
|
|
1654
1709
|
const styleDefs = useAppliedStyles();
|
|
1655
1710
|
const breakpointsTree = getBreakpointsTree();
|
|
1656
1711
|
const { getSnapshot, getInheritanceChain } = createStylesInheritance(styleDefs, breakpointsTree);
|
|
1657
|
-
return /* @__PURE__ */
|
|
1712
|
+
return /* @__PURE__ */ React19.createElement(Context4.Provider, { value: { getSnapshot, getInheritanceChain } }, children);
|
|
1658
1713
|
}
|
|
1659
1714
|
function useStylesInheritanceSnapshot() {
|
|
1660
1715
|
const context = useContext7(Context4);
|
|
@@ -1672,11 +1727,13 @@ function useStylesInheritanceChain(path) {
|
|
|
1672
1727
|
if (!context) {
|
|
1673
1728
|
throw new Error("useStylesInheritanceChain must be used within a StyleInheritanceProvider");
|
|
1674
1729
|
}
|
|
1730
|
+
const schema = getStylesSchema();
|
|
1731
|
+
const topLevelPropType = schema?.[path[0]];
|
|
1675
1732
|
const snapshot = useStylesInheritanceSnapshot();
|
|
1676
1733
|
if (!snapshot) {
|
|
1677
1734
|
return [];
|
|
1678
1735
|
}
|
|
1679
|
-
return context.getInheritanceChain(snapshot, path);
|
|
1736
|
+
return context.getInheritanceChain(snapshot, path, topLevelPropType);
|
|
1680
1737
|
}
|
|
1681
1738
|
var useAppliedStyles = () => {
|
|
1682
1739
|
const { element } = useElement();
|
|
@@ -1684,14 +1741,14 @@ var useAppliedStyles = () => {
|
|
|
1684
1741
|
const baseStyles = useBaseStyles();
|
|
1685
1742
|
useStylesRerender();
|
|
1686
1743
|
const classesProp = useElementSetting3(element.id, currentClassesProp);
|
|
1687
|
-
const appliedStyles = classesPropTypeUtil3.extract(classesProp);
|
|
1688
|
-
return stylesRepository5.all().filter((style) => appliedStyles
|
|
1744
|
+
const appliedStyles = classesPropTypeUtil3.extract(classesProp) ?? [];
|
|
1745
|
+
return stylesRepository5.all().filter((style) => [...baseStyles, ...appliedStyles].includes(style.id));
|
|
1689
1746
|
};
|
|
1690
1747
|
var useBaseStyles = () => {
|
|
1691
1748
|
const { elementType } = useElement();
|
|
1692
1749
|
const widgetsCache = getWidgetsCache();
|
|
1693
1750
|
const widgetCache = widgetsCache?.[elementType.key];
|
|
1694
|
-
return Object.
|
|
1751
|
+
return Object.keys(widgetCache?.base_styles ?? {});
|
|
1695
1752
|
};
|
|
1696
1753
|
|
|
1697
1754
|
// src/hooks/use-active-style-def-id.ts
|
|
@@ -1721,13 +1778,13 @@ function useActiveAndAppliedClassId(id, appliedClassesIds) {
|
|
|
1721
1778
|
}
|
|
1722
1779
|
|
|
1723
1780
|
// src/components/style-sections/background-section/background-section.tsx
|
|
1724
|
-
import * as
|
|
1781
|
+
import * as React28 from "react";
|
|
1725
1782
|
import { BackgroundControl } from "@elementor/editor-controls";
|
|
1726
1783
|
|
|
1727
1784
|
// src/controls-registry/styles-field.tsx
|
|
1728
|
-
import * as
|
|
1785
|
+
import * as React27 from "react";
|
|
1729
1786
|
import { ControlAdornmentsProvider, PropKeyProvider as PropKeyProvider2, PropProvider as PropProvider2 } from "@elementor/editor-controls";
|
|
1730
|
-
import { getStylesSchema } from "@elementor/editor-styles";
|
|
1787
|
+
import { getStylesSchema as getStylesSchema2 } from "@elementor/editor-styles";
|
|
1731
1788
|
|
|
1732
1789
|
// src/hooks/use-styles-fields.ts
|
|
1733
1790
|
import { useMemo as useMemo3 } from "react";
|
|
@@ -1870,44 +1927,196 @@ function useStylesField(propName) {
|
|
|
1870
1927
|
}
|
|
1871
1928
|
|
|
1872
1929
|
// src/styles-inheritance/styles-inheritance-indicator.tsx
|
|
1873
|
-
import * as
|
|
1874
|
-
import { useState as useState8 } from "react";
|
|
1930
|
+
import * as React26 from "react";
|
|
1875
1931
|
import { useBoundProp } from "@elementor/editor-controls";
|
|
1876
1932
|
import { isEmpty as isEmpty2 } from "@elementor/editor-props";
|
|
1877
|
-
import { ELEMENTS_BASE_STYLES_PROVIDER_KEY, isElementsStylesProvider as isElementsStylesProvider3 } from "@elementor/editor-styles-repository";
|
|
1933
|
+
import { ELEMENTS_BASE_STYLES_PROVIDER_KEY as ELEMENTS_BASE_STYLES_PROVIDER_KEY3, isElementsStylesProvider as isElementsStylesProvider3 } from "@elementor/editor-styles-repository";
|
|
1934
|
+
import { isExperimentActive as isExperimentActive5 } from "@elementor/editor-v1-adapters";
|
|
1935
|
+
import { Tooltip as Tooltip5 } from "@elementor/ui";
|
|
1936
|
+
import { __ as __9 } from "@wordpress/i18n";
|
|
1937
|
+
|
|
1938
|
+
// src/styles-inheritance/consts.ts
|
|
1878
1939
|
import { isExperimentActive as isExperimentActive4 } from "@elementor/editor-v1-adapters";
|
|
1879
|
-
|
|
1880
|
-
|
|
1940
|
+
var excludePropTypeTransformers = /* @__PURE__ */ new Set([
|
|
1941
|
+
"background-color-overlay",
|
|
1942
|
+
"background-image-overlay",
|
|
1943
|
+
"background-gradient-overlay",
|
|
1944
|
+
"gradient-color-stop",
|
|
1945
|
+
"color-stop",
|
|
1946
|
+
"background-image-position-offset",
|
|
1947
|
+
"background-image-size-scale",
|
|
1948
|
+
"image-src",
|
|
1949
|
+
"image",
|
|
1950
|
+
"background-overlay"
|
|
1951
|
+
]);
|
|
1952
|
+
var isUsingIndicatorPopover = () => isExperimentActive4("e_indications_popover");
|
|
1881
1953
|
|
|
1882
1954
|
// src/styles-inheritance/styles-inheritance-infotip.tsx
|
|
1883
|
-
import * as
|
|
1884
|
-
import { useMemo as useMemo4 } from "react";
|
|
1885
|
-
import { createPropsResolver
|
|
1886
|
-
import { Card, CardContent,
|
|
1955
|
+
import * as React25 from "react";
|
|
1956
|
+
import { useMemo as useMemo4, useState as useState8 } from "react";
|
|
1957
|
+
import { createPropsResolver } from "@elementor/editor-canvas";
|
|
1958
|
+
import { Box as Box6, Card, CardContent, CloseButton, IconButton as IconButton3, Infotip, Stack as Stack7, Typography as Typography6 } from "@elementor/ui";
|
|
1959
|
+
import { __ as __8 } from "@wordpress/i18n";
|
|
1960
|
+
|
|
1961
|
+
// src/components/section-content.tsx
|
|
1962
|
+
import { createContext as createContext8, useContext as useContext8, useRef as useRef3 } from "react";
|
|
1963
|
+
import * as React20 from "react";
|
|
1964
|
+
import { Stack as Stack6 } from "@elementor/ui";
|
|
1965
|
+
var SectionContentRefContext = createContext8(null);
|
|
1966
|
+
var useSectionContentRef = () => useContext8(SectionContentRefContext);
|
|
1967
|
+
var SectionContent = ({ gap = 2, sx, children }) => {
|
|
1968
|
+
const ref = useRef3(null);
|
|
1969
|
+
return /* @__PURE__ */ React20.createElement(SectionContentRefContext.Provider, { value: ref }, /* @__PURE__ */ React20.createElement(Stack6, { gap, sx: { ...sx }, ref }, children));
|
|
1970
|
+
};
|
|
1971
|
+
|
|
1972
|
+
// src/hooks/use-direction.ts
|
|
1973
|
+
import { useTheme } from "@elementor/ui";
|
|
1974
|
+
|
|
1975
|
+
// src/sync/get-elementor-globals.ts
|
|
1976
|
+
var getElementorConfig = () => {
|
|
1977
|
+
const extendedWindow = window;
|
|
1978
|
+
return extendedWindow.elementor?.config ?? {};
|
|
1979
|
+
};
|
|
1980
|
+
var getElementorFrontendConfig = () => {
|
|
1981
|
+
const extendedWindow = window;
|
|
1982
|
+
return extendedWindow.elementorFrontend?.config ?? {};
|
|
1983
|
+
};
|
|
1984
|
+
|
|
1985
|
+
// src/hooks/use-direction.ts
|
|
1986
|
+
function useDirection() {
|
|
1987
|
+
const theme = useTheme();
|
|
1988
|
+
const isUiRtl = "rtl" === theme.direction, isSiteRtl = !!getElementorFrontendConfig()?.is_rtl;
|
|
1989
|
+
return { isSiteRtl, isUiRtl };
|
|
1990
|
+
}
|
|
1991
|
+
|
|
1992
|
+
// src/styles-inheritance/components/breakpoint-icon.tsx
|
|
1993
|
+
import * as React21 from "react";
|
|
1994
|
+
import { useBreakpoints } from "@elementor/editor-responsive";
|
|
1995
|
+
import {
|
|
1996
|
+
DesktopIcon,
|
|
1997
|
+
LaptopIcon,
|
|
1998
|
+
MobileLandscapeIcon,
|
|
1999
|
+
MobilePortraitIcon,
|
|
2000
|
+
TabletLandscapeIcon,
|
|
2001
|
+
TabletPortraitIcon,
|
|
2002
|
+
WidescreenIcon
|
|
2003
|
+
} from "@elementor/icons";
|
|
2004
|
+
import { Tooltip as Tooltip3 } from "@elementor/ui";
|
|
2005
|
+
var SIZE3 = "tiny";
|
|
2006
|
+
var DEFAULT_BREAKPOINT2 = "desktop";
|
|
2007
|
+
var breakpointIconMap = {
|
|
2008
|
+
widescreen: WidescreenIcon,
|
|
2009
|
+
desktop: DesktopIcon,
|
|
2010
|
+
laptop: LaptopIcon,
|
|
2011
|
+
tablet_extra: TabletLandscapeIcon,
|
|
2012
|
+
tablet: TabletPortraitIcon,
|
|
2013
|
+
mobile_extra: MobileLandscapeIcon,
|
|
2014
|
+
mobile: MobilePortraitIcon
|
|
2015
|
+
};
|
|
2016
|
+
var BreakpointIcon = ({ breakpoint }) => {
|
|
2017
|
+
const breakpoints = useBreakpoints();
|
|
2018
|
+
const currentBreakpoint = breakpoint || DEFAULT_BREAKPOINT2;
|
|
2019
|
+
const IconComponent = breakpointIconMap[currentBreakpoint];
|
|
2020
|
+
if (!IconComponent) {
|
|
2021
|
+
return null;
|
|
2022
|
+
}
|
|
2023
|
+
const breakpointLabel = breakpoints.find((breakpointItem) => breakpointItem.id === currentBreakpoint)?.label;
|
|
2024
|
+
return /* @__PURE__ */ React21.createElement(Tooltip3, { title: breakpointLabel, placement: "top" }, /* @__PURE__ */ React21.createElement(IconComponent, { fontSize: SIZE3, sx: { mt: "2px" } }));
|
|
2025
|
+
};
|
|
2026
|
+
|
|
2027
|
+
// src/styles-inheritance/components/label-chip.tsx
|
|
2028
|
+
import * as React22 from "react";
|
|
2029
|
+
import { ELEMENTS_BASE_STYLES_PROVIDER_KEY } from "@elementor/editor-styles-repository";
|
|
2030
|
+
import { InfoCircleIcon } from "@elementor/icons";
|
|
2031
|
+
import { Chip as Chip4, Tooltip as Tooltip4 } from "@elementor/ui";
|
|
2032
|
+
import { __ as __6 } from "@wordpress/i18n";
|
|
2033
|
+
var SIZE4 = "tiny";
|
|
2034
|
+
var LabelChip = ({ displayLabel, provider }) => {
|
|
2035
|
+
return /* @__PURE__ */ React22.createElement(
|
|
2036
|
+
Chip4,
|
|
2037
|
+
{
|
|
2038
|
+
label: displayLabel,
|
|
2039
|
+
size: SIZE4,
|
|
2040
|
+
color: "global",
|
|
2041
|
+
variant: "standard",
|
|
2042
|
+
state: "enabled",
|
|
2043
|
+
icon: provider === ELEMENTS_BASE_STYLES_PROVIDER_KEY ? /* @__PURE__ */ React22.createElement(Tooltip4, { title: __6("Inherited from base styles", "elementor"), placement: "top" }, /* @__PURE__ */ React22.createElement(InfoCircleIcon, { fontSize: SIZE4 })) : void 0,
|
|
2044
|
+
sx: (theme) => ({
|
|
2045
|
+
lineHeight: 1,
|
|
2046
|
+
flexWrap: "nowrap",
|
|
2047
|
+
alignItems: "center",
|
|
2048
|
+
borderRadius: `${theme.shape.borderRadius * 0.75}px`,
|
|
2049
|
+
flexDirection: "row-reverse",
|
|
2050
|
+
".MuiChip-label": {
|
|
2051
|
+
overflow: "hidden",
|
|
2052
|
+
textOverflow: "ellipsis",
|
|
2053
|
+
whiteSpace: "nowrap"
|
|
2054
|
+
}
|
|
2055
|
+
})
|
|
2056
|
+
}
|
|
2057
|
+
);
|
|
2058
|
+
};
|
|
1887
2059
|
|
|
1888
|
-
// src/
|
|
1889
|
-
import
|
|
2060
|
+
// src/styles-inheritance/components/value-component.tsx
|
|
2061
|
+
import * as React23 from "react";
|
|
2062
|
+
import { Typography as Typography5 } from "@elementor/ui";
|
|
2063
|
+
var ValueComponent = ({ index, value }) => {
|
|
2064
|
+
return /* @__PURE__ */ React23.createElement(
|
|
2065
|
+
Typography5,
|
|
2066
|
+
{
|
|
2067
|
+
variant: "caption",
|
|
2068
|
+
color: "text.tertiary",
|
|
2069
|
+
sx: {
|
|
2070
|
+
mt: "1px",
|
|
2071
|
+
textDecoration: index === 0 ? "none" : "line-through",
|
|
2072
|
+
overflow: "hidden",
|
|
2073
|
+
textOverflow: "ellipsis",
|
|
2074
|
+
whiteSpace: "nowrap"
|
|
2075
|
+
}
|
|
2076
|
+
},
|
|
2077
|
+
value
|
|
2078
|
+
);
|
|
2079
|
+
};
|
|
2080
|
+
|
|
2081
|
+
// src/styles-inheritance/components/action-icons.tsx
|
|
2082
|
+
import * as React24 from "react";
|
|
2083
|
+
import { Box as Box5 } from "@elementor/ui";
|
|
2084
|
+
var ActionIcons = () => /* @__PURE__ */ React24.createElement(Box5, { display: "flex", gap: 0.5, alignItems: "center" });
|
|
2085
|
+
|
|
2086
|
+
// src/styles-inheritance/hooks/use-normalized-inheritance-chain-items.tsx
|
|
2087
|
+
import { isValidElement, useEffect as useEffect3, useState as useState7 } from "react";
|
|
2088
|
+
import { ELEMENTS_BASE_STYLES_PROVIDER_KEY as ELEMENTS_BASE_STYLES_PROVIDER_KEY2 } from "@elementor/editor-styles-repository";
|
|
2089
|
+
import { __ as __7 } from "@wordpress/i18n";
|
|
1890
2090
|
var MAXIMUM_ITEMS = 2;
|
|
1891
2091
|
var useNormalizedInheritanceChainItems = (inheritanceChain, bind, resolve) => {
|
|
1892
2092
|
const [items3, setItems] = useState7([]);
|
|
1893
2093
|
useEffect3(() => {
|
|
1894
2094
|
(async () => {
|
|
1895
2095
|
const normalizedItems = await Promise.all(
|
|
1896
|
-
inheritanceChain.filter((
|
|
2096
|
+
inheritanceChain.filter(({ style }) => style).map((item, index) => normalizeInheritanceItem(item, index, bind, resolve))
|
|
1897
2097
|
);
|
|
1898
|
-
const validItems = normalizedItems.
|
|
2098
|
+
const validItems = normalizedItems.map((item) => ({
|
|
2099
|
+
...item,
|
|
2100
|
+
displayLabel: ELEMENTS_BASE_STYLES_PROVIDER_KEY2 !== item.provider ? item.displayLabel : __7("Base", "elementor")
|
|
2101
|
+
})).filter((item) => !item.value || item.displayLabel !== "").slice(0, MAXIMUM_ITEMS);
|
|
1899
2102
|
setItems(validItems);
|
|
1900
2103
|
})();
|
|
1901
2104
|
}, [inheritanceChain, bind, resolve]);
|
|
1902
2105
|
return items3;
|
|
1903
2106
|
};
|
|
2107
|
+
var DEFAULT_BREAKPOINT3 = "desktop";
|
|
1904
2108
|
var normalizeInheritanceItem = async (item, index, bind, resolve) => {
|
|
1905
|
-
const
|
|
1906
|
-
|
|
1907
|
-
|
|
2109
|
+
const {
|
|
2110
|
+
variant: {
|
|
2111
|
+
meta: { state, breakpoint }
|
|
2112
|
+
},
|
|
2113
|
+
style: { label, id }
|
|
2114
|
+
} = item;
|
|
2115
|
+
const displayLabel = `${label}${state ? ":" + state : ""}`;
|
|
1908
2116
|
return {
|
|
1909
|
-
id:
|
|
1910
|
-
|
|
2117
|
+
id: id ? id + (state ?? "") : index,
|
|
2118
|
+
provider: item.provider || "",
|
|
2119
|
+
breakpoint: breakpoint ?? DEFAULT_BREAKPOINT3,
|
|
1911
2120
|
displayLabel,
|
|
1912
2121
|
value: await getTransformedValue(item, bind, resolve)
|
|
1913
2122
|
};
|
|
@@ -1919,75 +2128,171 @@ var getTransformedValue = async (item, bind, resolve) => {
|
|
|
1919
2128
|
[bind]: item.value
|
|
1920
2129
|
}
|
|
1921
2130
|
});
|
|
1922
|
-
|
|
2131
|
+
const value = result?.[bind] ?? result;
|
|
2132
|
+
if (isValidElement(value)) {
|
|
2133
|
+
return value;
|
|
2134
|
+
}
|
|
2135
|
+
if (typeof value === "object") {
|
|
2136
|
+
return JSON.stringify(value);
|
|
2137
|
+
}
|
|
2138
|
+
return String(value);
|
|
1923
2139
|
} catch {
|
|
1924
2140
|
return "";
|
|
1925
2141
|
}
|
|
1926
2142
|
};
|
|
1927
2143
|
|
|
2144
|
+
// src/styles-inheritance/styles-inheritance-transformers-registry.tsx
|
|
2145
|
+
import { createTransformersRegistry } from "@elementor/editor-canvas";
|
|
2146
|
+
var stylesInheritanceTransformersRegistry = createTransformersRegistry();
|
|
2147
|
+
|
|
1928
2148
|
// src/styles-inheritance/styles-inheritance-infotip.tsx
|
|
1929
|
-
var
|
|
2149
|
+
var SIZE5 = "tiny";
|
|
2150
|
+
var StyleIndicatorInfotip = ({ inheritanceChain, propType, path, label, children }) => {
|
|
2151
|
+
const [open, setOpen] = useState8(false);
|
|
2152
|
+
const { isSiteRtl } = useDirection();
|
|
1930
2153
|
const key = path.join(".");
|
|
2154
|
+
const sectionContentRef = useSectionContentRef();
|
|
2155
|
+
const sectionContentWidth = sectionContentRef?.current?.offsetWidth ?? 320;
|
|
1931
2156
|
const resolve = useMemo4(() => {
|
|
1932
2157
|
return createPropsResolver({
|
|
1933
|
-
transformers:
|
|
2158
|
+
transformers: stylesInheritanceTransformersRegistry,
|
|
1934
2159
|
schema: { [key]: propType }
|
|
1935
2160
|
});
|
|
1936
2161
|
}, [key, propType]);
|
|
1937
2162
|
const items3 = useNormalizedInheritanceChainItems(inheritanceChain, key, resolve);
|
|
1938
|
-
|
|
1939
|
-
|
|
2163
|
+
const toggleOpen = () => setOpen((prev) => !prev);
|
|
2164
|
+
const closeInfotip = () => {
|
|
2165
|
+
setOpen(false);
|
|
2166
|
+
};
|
|
2167
|
+
const forceInfotipAlignLeft = isSiteRtl ? 9999999 : -9999999;
|
|
2168
|
+
const infotipContent = /* @__PURE__ */ React25.createElement(
|
|
2169
|
+
Card,
|
|
1940
2170
|
{
|
|
1941
|
-
|
|
1942
|
-
|
|
1943
|
-
|
|
2171
|
+
elevation: 0,
|
|
2172
|
+
sx: {
|
|
2173
|
+
width: `${sectionContentWidth}px`,
|
|
2174
|
+
maxWidth: 500,
|
|
2175
|
+
overflowX: "hidden"
|
|
2176
|
+
}
|
|
2177
|
+
},
|
|
2178
|
+
/* @__PURE__ */ React25.createElement(
|
|
2179
|
+
CardContent,
|
|
2180
|
+
{
|
|
2181
|
+
sx: {
|
|
2182
|
+
display: "flex",
|
|
2183
|
+
gap: 0.5,
|
|
2184
|
+
flexDirection: "column",
|
|
2185
|
+
p: 0,
|
|
2186
|
+
"&:last-child": {
|
|
2187
|
+
pb: 0
|
|
2188
|
+
}
|
|
2189
|
+
}
|
|
2190
|
+
},
|
|
2191
|
+
/* @__PURE__ */ React25.createElement(Stack7, { direction: "row", alignItems: "center", sx: { pl: 1.5, pr: 0.5, minHeight: 36, py: 0.5 } }, /* @__PURE__ */ React25.createElement(Typography6, { variant: "subtitle2", color: "secondary", sx: { fontSize: 12, fontWeight: "500" } }, __8("Style origin", "elementor")), /* @__PURE__ */ React25.createElement(
|
|
2192
|
+
CloseButton,
|
|
2193
|
+
{
|
|
2194
|
+
slotProps: { icon: { fontSize: SIZE5 } },
|
|
2195
|
+
sx: { ml: "auto" },
|
|
2196
|
+
onClick: closeInfotip
|
|
2197
|
+
}
|
|
2198
|
+
)),
|
|
2199
|
+
/* @__PURE__ */ React25.createElement(Stack7, { gap: 1.5, sx: { pl: 2, pr: 1, pb: 2, overflowX: "hidden", overflowY: "auto" }, role: "list" }, items3.map((item, index) => {
|
|
2200
|
+
return /* @__PURE__ */ React25.createElement(
|
|
2201
|
+
Box6,
|
|
2202
|
+
{
|
|
2203
|
+
key: item.id,
|
|
2204
|
+
display: "flex",
|
|
2205
|
+
gap: 0.5,
|
|
2206
|
+
role: "listitem",
|
|
2207
|
+
"aria-label": __8("Inheritance item: %s", "elementor").replace(
|
|
2208
|
+
"%s",
|
|
2209
|
+
item.displayLabel
|
|
2210
|
+
)
|
|
2211
|
+
},
|
|
2212
|
+
/* @__PURE__ */ React25.createElement(Box6, { display: "flex", gap: 0.5, sx: { flexWrap: "wrap", width: "100%" } }, /* @__PURE__ */ React25.createElement(BreakpointIcon, { breakpoint: item.breakpoint }), /* @__PURE__ */ React25.createElement(LabelChip, { displayLabel: item.displayLabel, provider: item.provider }), /* @__PURE__ */ React25.createElement(ValueComponent, { index, value: item.value })),
|
|
2213
|
+
/* @__PURE__ */ React25.createElement(ActionIcons, null)
|
|
2214
|
+
);
|
|
2215
|
+
}))
|
|
2216
|
+
)
|
|
2217
|
+
);
|
|
2218
|
+
return /* @__PURE__ */ React25.createElement(
|
|
2219
|
+
Infotip,
|
|
2220
|
+
{
|
|
2221
|
+
placement: "top",
|
|
2222
|
+
content: infotipContent,
|
|
2223
|
+
open,
|
|
2224
|
+
onClose: closeInfotip,
|
|
2225
|
+
disableHoverListener: true,
|
|
2226
|
+
componentsProps: {
|
|
2227
|
+
tooltip: {
|
|
2228
|
+
sx: {
|
|
2229
|
+
mx: 2
|
|
2230
|
+
}
|
|
2231
|
+
}
|
|
2232
|
+
},
|
|
2233
|
+
slotProps: {
|
|
2234
|
+
popper: {
|
|
2235
|
+
modifiers: [
|
|
2236
|
+
{
|
|
2237
|
+
name: "offset",
|
|
2238
|
+
options: { offset: [forceInfotipAlignLeft, 0] }
|
|
2239
|
+
}
|
|
2240
|
+
]
|
|
2241
|
+
}
|
|
2242
|
+
}
|
|
2243
|
+
},
|
|
2244
|
+
/* @__PURE__ */ React25.createElement(IconButton3, { onClick: toggleOpen, "aria-label": label, sx: { my: "-1px" } }, children)
|
|
2245
|
+
);
|
|
1944
2246
|
};
|
|
1945
2247
|
|
|
1946
2248
|
// src/styles-inheritance/styles-inheritance-indicator.tsx
|
|
1947
2249
|
var StylesInheritanceIndicator = () => {
|
|
1948
|
-
const
|
|
1949
|
-
const { value, path, propType } = useBoundProp();
|
|
2250
|
+
const { path, propType } = useBoundProp();
|
|
1950
2251
|
const { id: currentStyleId, provider: currentStyleProvider, meta: currentStyleMeta } = useStyle();
|
|
1951
|
-
const isUsingNestedProps =
|
|
2252
|
+
const isUsingNestedProps = isExperimentActive5(EXPERIMENTAL_FEATURES.V_3_30);
|
|
1952
2253
|
const finalPath = isUsingNestedProps ? path : path.slice(0, 1);
|
|
1953
2254
|
const inheritanceChain = useStylesInheritanceChain(finalPath);
|
|
1954
2255
|
if (!inheritanceChain.length) {
|
|
1955
2256
|
return null;
|
|
1956
2257
|
}
|
|
1957
|
-
const
|
|
1958
|
-
|
|
2258
|
+
const currentItem = inheritanceChain.find(
|
|
2259
|
+
({
|
|
2260
|
+
style,
|
|
2261
|
+
variant: {
|
|
2262
|
+
meta: { breakpoint, state }
|
|
2263
|
+
}
|
|
2264
|
+
}) => style.id === currentStyleId && breakpoint === currentStyleMeta.breakpoint && state === currentStyleMeta.state
|
|
2265
|
+
);
|
|
2266
|
+
const hasValue = !isEmpty2(currentItem?.value);
|
|
2267
|
+
const [actualStyle] = inheritanceChain;
|
|
2268
|
+
if (actualStyle.provider === ELEMENTS_BASE_STYLES_PROVIDER_KEY3) {
|
|
1959
2269
|
return null;
|
|
1960
2270
|
}
|
|
1961
|
-
const
|
|
1962
|
-
const isFinalValue = style.id === currentStyleId && breakpoint === currentStyleMeta.breakpoint && state === currentStyleMeta.state;
|
|
1963
|
-
const hasValue = !isEmpty2(value);
|
|
2271
|
+
const isFinalValue = currentItem === actualStyle;
|
|
1964
2272
|
const label = getLabel({ isFinalValue, hasValue });
|
|
1965
2273
|
const variantType = getVariant({ isFinalValue, hasValue, currentStyleProvider });
|
|
1966
|
-
|
|
1967
|
-
|
|
1968
|
-
return /* @__PURE__ */ React20.createElement(StyleIndicator, { variant: variantType, "aria-label": label });
|
|
2274
|
+
if (!isUsingIndicatorPopover()) {
|
|
2275
|
+
return /* @__PURE__ */ React26.createElement(Tooltip5, { title: __9("Style origin", "elementor"), placement: "top" }, /* @__PURE__ */ React26.createElement(StyleIndicator, { variant: variantType, "aria-label": label }));
|
|
1969
2276
|
}
|
|
1970
|
-
|
|
1971
|
-
|
|
1972
|
-
Infotip,
|
|
2277
|
+
return /* @__PURE__ */ React26.createElement(
|
|
2278
|
+
StyleIndicatorInfotip,
|
|
1973
2279
|
{
|
|
1974
|
-
|
|
1975
|
-
|
|
1976
|
-
|
|
1977
|
-
|
|
1978
|
-
trigger: "manual"
|
|
2280
|
+
inheritanceChain,
|
|
2281
|
+
path: finalPath,
|
|
2282
|
+
propType,
|
|
2283
|
+
label
|
|
1979
2284
|
},
|
|
1980
|
-
/* @__PURE__ */
|
|
2285
|
+
/* @__PURE__ */ React26.createElement(StyleIndicator, { variant: variantType })
|
|
1981
2286
|
);
|
|
1982
2287
|
};
|
|
1983
2288
|
var getLabel = ({ isFinalValue, hasValue }) => {
|
|
1984
2289
|
if (isFinalValue) {
|
|
1985
|
-
return
|
|
2290
|
+
return __9("This is the final value", "elementor");
|
|
1986
2291
|
}
|
|
1987
2292
|
if (hasValue) {
|
|
1988
|
-
return
|
|
2293
|
+
return __9("This value is overridden by another style", "elementor");
|
|
1989
2294
|
}
|
|
1990
|
-
return
|
|
2295
|
+
return __9("This has value from another style", "elementor");
|
|
1991
2296
|
};
|
|
1992
2297
|
var getVariant = ({
|
|
1993
2298
|
isFinalValue,
|
|
@@ -2006,14 +2311,15 @@ var getVariant = ({
|
|
|
2006
2311
|
// src/controls-registry/styles-field.tsx
|
|
2007
2312
|
var StylesField = ({ bind, placeholder, children }) => {
|
|
2008
2313
|
const [value, setValue] = useStylesField(bind);
|
|
2009
|
-
const
|
|
2314
|
+
const { canEdit } = useStyle();
|
|
2315
|
+
const stylesSchema = getStylesSchema2();
|
|
2010
2316
|
const propType = createTopLevelOjectType({ schema: stylesSchema });
|
|
2011
2317
|
const values = { [bind]: value };
|
|
2012
2318
|
const placeholderValues = { [bind]: placeholder };
|
|
2013
2319
|
const setValues = (newValue) => {
|
|
2014
2320
|
setValue(newValue[bind]);
|
|
2015
2321
|
};
|
|
2016
|
-
return /* @__PURE__ */
|
|
2322
|
+
return /* @__PURE__ */ React27.createElement(
|
|
2017
2323
|
ControlAdornmentsProvider,
|
|
2018
2324
|
{
|
|
2019
2325
|
items: [
|
|
@@ -2023,59 +2329,62 @@ var StylesField = ({ bind, placeholder, children }) => {
|
|
|
2023
2329
|
}
|
|
2024
2330
|
]
|
|
2025
2331
|
},
|
|
2026
|
-
/* @__PURE__ */
|
|
2332
|
+
/* @__PURE__ */ React27.createElement(
|
|
2027
2333
|
PropProvider2,
|
|
2028
2334
|
{
|
|
2029
2335
|
propType,
|
|
2030
2336
|
value: values,
|
|
2031
2337
|
setValue: setValues,
|
|
2032
|
-
placeholder: placeholderValues
|
|
2338
|
+
placeholder: placeholderValues,
|
|
2339
|
+
disabled: !canEdit
|
|
2033
2340
|
},
|
|
2034
|
-
/* @__PURE__ */
|
|
2341
|
+
/* @__PURE__ */ React27.createElement(PropKeyProvider2, { bind }, children)
|
|
2035
2342
|
)
|
|
2036
2343
|
);
|
|
2037
2344
|
};
|
|
2038
2345
|
|
|
2039
2346
|
// src/components/style-sections/background-section/background-section.tsx
|
|
2040
2347
|
var BackgroundSection = () => {
|
|
2041
|
-
return /* @__PURE__ */
|
|
2348
|
+
return /* @__PURE__ */ React28.createElement(SectionContent, null, /* @__PURE__ */ React28.createElement(StylesField, { bind: "background" }, /* @__PURE__ */ React28.createElement(BackgroundControl, null)));
|
|
2042
2349
|
};
|
|
2043
2350
|
|
|
2044
2351
|
// src/components/style-sections/border-section/border-section.tsx
|
|
2045
|
-
import * as
|
|
2352
|
+
import * as React37 from "react";
|
|
2046
2353
|
|
|
2047
2354
|
// src/components/panel-divider.tsx
|
|
2048
|
-
import * as
|
|
2355
|
+
import * as React29 from "react";
|
|
2049
2356
|
import { Divider as Divider4 } from "@elementor/ui";
|
|
2050
|
-
var PanelDivider = () => /* @__PURE__ */
|
|
2051
|
-
|
|
2052
|
-
// src/components/section-content.tsx
|
|
2053
|
-
import * as React24 from "react";
|
|
2054
|
-
import { Stack as Stack6 } from "@elementor/ui";
|
|
2055
|
-
var SectionContent = ({ gap = 2, sx, children }) => /* @__PURE__ */ React24.createElement(Stack6, { gap, sx: { ...sx } }, children);
|
|
2357
|
+
var PanelDivider = () => /* @__PURE__ */ React29.createElement(Divider4, { sx: { my: 0.5 } });
|
|
2056
2358
|
|
|
2057
2359
|
// src/components/style-sections/border-section/border-field.tsx
|
|
2058
|
-
import * as
|
|
2059
|
-
import { __ as
|
|
2360
|
+
import * as React35 from "react";
|
|
2361
|
+
import { __ as __13 } from "@wordpress/i18n";
|
|
2060
2362
|
|
|
2061
2363
|
// src/components/add-or-remove-content.tsx
|
|
2062
|
-
import * as
|
|
2364
|
+
import * as React31 from "react";
|
|
2063
2365
|
import { MinusIcon, PlusIcon } from "@elementor/icons";
|
|
2064
|
-
import { Collapse as Collapse2, IconButton as
|
|
2366
|
+
import { Collapse as Collapse2, IconButton as IconButton4, Stack as Stack9 } from "@elementor/ui";
|
|
2065
2367
|
|
|
2066
2368
|
// src/components/control-label.tsx
|
|
2067
|
-
import * as
|
|
2369
|
+
import * as React30 from "react";
|
|
2068
2370
|
import { ControlAdornments, ControlFormLabel as ControlFormLabel2 } from "@elementor/editor-controls";
|
|
2069
|
-
import { Stack as
|
|
2371
|
+
import { Stack as Stack8 } from "@elementor/ui";
|
|
2070
2372
|
var ControlLabel = ({ children }) => {
|
|
2071
|
-
return /* @__PURE__ */
|
|
2373
|
+
return /* @__PURE__ */ React30.createElement(Stack8, { direction: "row", alignItems: "center", justifyItems: "start", gap: 1 }, /* @__PURE__ */ React30.createElement(ControlFormLabel2, null, children), /* @__PURE__ */ React30.createElement(ControlAdornments, null));
|
|
2072
2374
|
};
|
|
2073
2375
|
|
|
2074
2376
|
// src/components/add-or-remove-content.tsx
|
|
2075
|
-
var
|
|
2076
|
-
var AddOrRemoveContent = ({
|
|
2077
|
-
|
|
2078
|
-
|
|
2377
|
+
var SIZE6 = "tiny";
|
|
2378
|
+
var AddOrRemoveContent = ({
|
|
2379
|
+
isAdded,
|
|
2380
|
+
label,
|
|
2381
|
+
onAdd,
|
|
2382
|
+
onRemove,
|
|
2383
|
+
children,
|
|
2384
|
+
disabled
|
|
2385
|
+
}) => {
|
|
2386
|
+
return /* @__PURE__ */ React31.createElement(SectionContent, null, /* @__PURE__ */ React31.createElement(
|
|
2387
|
+
Stack9,
|
|
2079
2388
|
{
|
|
2080
2389
|
direction: "row",
|
|
2081
2390
|
sx: {
|
|
@@ -2084,102 +2393,80 @@ var AddOrRemoveContent = ({ isAdded, label, onAdd, onRemove, children }) => {
|
|
|
2084
2393
|
marginInlineEnd: -0.75
|
|
2085
2394
|
}
|
|
2086
2395
|
},
|
|
2087
|
-
/* @__PURE__ */
|
|
2088
|
-
isAdded ? /* @__PURE__ */
|
|
2089
|
-
), /* @__PURE__ */
|
|
2396
|
+
/* @__PURE__ */ React31.createElement(ControlLabel, null, label),
|
|
2397
|
+
isAdded ? /* @__PURE__ */ React31.createElement(IconButton4, { size: SIZE6, onClick: onRemove, "aria-label": "Remove", disabled }, /* @__PURE__ */ React31.createElement(MinusIcon, { fontSize: SIZE6 })) : /* @__PURE__ */ React31.createElement(IconButton4, { size: SIZE6, onClick: onAdd, "aria-label": "Add", disabled }, /* @__PURE__ */ React31.createElement(PlusIcon, { fontSize: SIZE6 }))
|
|
2398
|
+
), /* @__PURE__ */ React31.createElement(Collapse2, { in: isAdded, unmountOnExit: true }, /* @__PURE__ */ React31.createElement(SectionContent, null, children)));
|
|
2090
2399
|
};
|
|
2091
2400
|
|
|
2092
2401
|
// src/components/style-sections/border-section/border-color-field.tsx
|
|
2093
|
-
import * as
|
|
2402
|
+
import * as React32 from "react";
|
|
2094
2403
|
import { ColorControl } from "@elementor/editor-controls";
|
|
2095
2404
|
import { Grid } from "@elementor/ui";
|
|
2096
|
-
import { __ as
|
|
2405
|
+
import { __ as __10 } from "@wordpress/i18n";
|
|
2097
2406
|
var BorderColorField = () => {
|
|
2098
|
-
return /* @__PURE__ */
|
|
2407
|
+
return /* @__PURE__ */ React32.createElement(StylesField, { bind: "border-color" }, /* @__PURE__ */ React32.createElement(Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React32.createElement(Grid, { item: true, xs: 6 }, /* @__PURE__ */ React32.createElement(ControlLabel, null, __10("Border color", "elementor"))), /* @__PURE__ */ React32.createElement(Grid, { item: true, xs: 6 }, /* @__PURE__ */ React32.createElement(ColorControl, null))));
|
|
2099
2408
|
};
|
|
2100
2409
|
|
|
2101
2410
|
// src/components/style-sections/border-section/border-style-field.tsx
|
|
2102
|
-
import * as
|
|
2411
|
+
import * as React33 from "react";
|
|
2103
2412
|
import { SelectControl as SelectControl2 } from "@elementor/editor-controls";
|
|
2104
2413
|
import { Grid as Grid2 } from "@elementor/ui";
|
|
2105
|
-
import { __ as
|
|
2414
|
+
import { __ as __11 } from "@wordpress/i18n";
|
|
2106
2415
|
var borderStyles = [
|
|
2107
|
-
{ value: "none", label:
|
|
2108
|
-
{ value: "solid", label:
|
|
2109
|
-
{ value: "dashed", label:
|
|
2110
|
-
{ value: "dotted", label:
|
|
2111
|
-
{ value: "double", label:
|
|
2112
|
-
{ value: "groove", label:
|
|
2113
|
-
{ value: "ridge", label:
|
|
2114
|
-
{ value: "inset", label:
|
|
2115
|
-
{ value: "outset", label:
|
|
2416
|
+
{ value: "none", label: __11("None", "elementor") },
|
|
2417
|
+
{ value: "solid", label: __11("Solid", "elementor") },
|
|
2418
|
+
{ value: "dashed", label: __11("Dashed", "elementor") },
|
|
2419
|
+
{ value: "dotted", label: __11("Dotted", "elementor") },
|
|
2420
|
+
{ value: "double", label: __11("Double", "elementor") },
|
|
2421
|
+
{ value: "groove", label: __11("Groove", "elementor") },
|
|
2422
|
+
{ value: "ridge", label: __11("Ridge", "elementor") },
|
|
2423
|
+
{ value: "inset", label: __11("Inset", "elementor") },
|
|
2424
|
+
{ value: "outset", label: __11("Outset", "elementor") }
|
|
2116
2425
|
];
|
|
2117
2426
|
var BorderStyleField = () => {
|
|
2118
|
-
return /* @__PURE__ */
|
|
2427
|
+
return /* @__PURE__ */ React33.createElement(StylesField, { bind: "border-style" }, /* @__PURE__ */ React33.createElement(Grid2, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React33.createElement(Grid2, { item: true, xs: 6 }, /* @__PURE__ */ React33.createElement(ControlLabel, null, __11("Border type", "elementor"))), /* @__PURE__ */ React33.createElement(Grid2, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React33.createElement(SelectControl2, { options: borderStyles }))));
|
|
2119
2428
|
};
|
|
2120
2429
|
|
|
2121
2430
|
// src/components/style-sections/border-section/border-width-field.tsx
|
|
2122
|
-
import * as
|
|
2431
|
+
import * as React34 from "react";
|
|
2123
2432
|
import { EqualUnequalSizesControl } from "@elementor/editor-controls";
|
|
2124
2433
|
import { borderWidthPropTypeUtil } from "@elementor/editor-props";
|
|
2125
2434
|
import { SideAllIcon, SideBottomIcon, SideLeftIcon, SideRightIcon, SideTopIcon } from "@elementor/icons";
|
|
2126
2435
|
import { withDirection } from "@elementor/ui";
|
|
2127
|
-
import { __ as
|
|
2128
|
-
|
|
2129
|
-
// src/hooks/use-direction.ts
|
|
2130
|
-
import { useTheme } from "@elementor/ui";
|
|
2131
|
-
|
|
2132
|
-
// src/sync/get-elementor-globals.ts
|
|
2133
|
-
var getElementorConfig = () => {
|
|
2134
|
-
const extendedWindow = window;
|
|
2135
|
-
return extendedWindow.elementor?.config ?? {};
|
|
2136
|
-
};
|
|
2137
|
-
var getElementorFrontendConfig = () => {
|
|
2138
|
-
const extendedWindow = window;
|
|
2139
|
-
return extendedWindow.elementorFrontend?.config ?? {};
|
|
2140
|
-
};
|
|
2141
|
-
|
|
2142
|
-
// src/hooks/use-direction.ts
|
|
2143
|
-
function useDirection() {
|
|
2144
|
-
const theme = useTheme();
|
|
2145
|
-
const isUiRtl = "rtl" === theme.direction, isSiteRtl = !!getElementorFrontendConfig()?.is_rtl;
|
|
2146
|
-
return { isSiteRtl, isUiRtl };
|
|
2147
|
-
}
|
|
2148
|
-
|
|
2149
|
-
// src/components/style-sections/border-section/border-width-field.tsx
|
|
2436
|
+
import { __ as __12 } from "@wordpress/i18n";
|
|
2150
2437
|
var InlineStartIcon = withDirection(SideRightIcon);
|
|
2151
2438
|
var InlineEndIcon = withDirection(SideLeftIcon);
|
|
2152
2439
|
var getEdges = (isSiteRtl) => [
|
|
2153
2440
|
{
|
|
2154
|
-
label:
|
|
2155
|
-
icon: /* @__PURE__ */
|
|
2441
|
+
label: __12("Top", "elementor"),
|
|
2442
|
+
icon: /* @__PURE__ */ React34.createElement(SideTopIcon, { fontSize: "tiny" }),
|
|
2156
2443
|
bind: "block-start"
|
|
2157
2444
|
},
|
|
2158
2445
|
{
|
|
2159
|
-
label: isSiteRtl ?
|
|
2160
|
-
icon: /* @__PURE__ */
|
|
2446
|
+
label: isSiteRtl ? __12("Left", "elementor") : __12("Right", "elementor"),
|
|
2447
|
+
icon: /* @__PURE__ */ React34.createElement(InlineStartIcon, { fontSize: "tiny" }),
|
|
2161
2448
|
bind: "inline-end"
|
|
2162
2449
|
},
|
|
2163
2450
|
{
|
|
2164
|
-
label:
|
|
2165
|
-
icon: /* @__PURE__ */
|
|
2451
|
+
label: __12("Bottom", "elementor"),
|
|
2452
|
+
icon: /* @__PURE__ */ React34.createElement(SideBottomIcon, { fontSize: "tiny" }),
|
|
2166
2453
|
bind: "block-end"
|
|
2167
2454
|
},
|
|
2168
2455
|
{
|
|
2169
|
-
label: isSiteRtl ?
|
|
2170
|
-
icon: /* @__PURE__ */
|
|
2456
|
+
label: isSiteRtl ? __12("Right", "elementor") : __12("Left", "elementor"),
|
|
2457
|
+
icon: /* @__PURE__ */ React34.createElement(InlineEndIcon, { fontSize: "tiny" }),
|
|
2171
2458
|
bind: "inline-start"
|
|
2172
2459
|
}
|
|
2173
2460
|
];
|
|
2174
2461
|
var BorderWidthField = () => {
|
|
2175
2462
|
const { isSiteRtl } = useDirection();
|
|
2176
|
-
return /* @__PURE__ */
|
|
2463
|
+
return /* @__PURE__ */ React34.createElement(StylesField, { bind: "border-width" }, /* @__PURE__ */ React34.createElement(
|
|
2177
2464
|
EqualUnequalSizesControl,
|
|
2178
2465
|
{
|
|
2179
2466
|
items: getEdges(isSiteRtl),
|
|
2180
|
-
label:
|
|
2181
|
-
icon: /* @__PURE__ */
|
|
2182
|
-
tooltipLabel:
|
|
2467
|
+
label: __12("Border width", "elementor"),
|
|
2468
|
+
icon: /* @__PURE__ */ React34.createElement(SideAllIcon, { fontSize: "tiny" }),
|
|
2469
|
+
tooltipLabel: __12("Adjust borders", "elementor"),
|
|
2183
2470
|
multiSizePropTypeUtil: borderWidthPropTypeUtil
|
|
2184
2471
|
}
|
|
2185
2472
|
));
|
|
@@ -2192,6 +2479,7 @@ var initialBorder = {
|
|
|
2192
2479
|
"border-style": { $$type: "string", value: "solid" }
|
|
2193
2480
|
};
|
|
2194
2481
|
var BorderField = () => {
|
|
2482
|
+
const { canEdit } = useStyle();
|
|
2195
2483
|
const [border, setBorder] = useStylesFields(Object.keys(initialBorder));
|
|
2196
2484
|
const addBorder = () => {
|
|
2197
2485
|
setBorder(initialBorder);
|
|
@@ -2204,22 +2492,23 @@ var BorderField = () => {
|
|
|
2204
2492
|
});
|
|
2205
2493
|
};
|
|
2206
2494
|
const hasBorder = Object.values(border ?? {}).some(Boolean);
|
|
2207
|
-
return /* @__PURE__ */
|
|
2495
|
+
return /* @__PURE__ */ React35.createElement(
|
|
2208
2496
|
AddOrRemoveContent,
|
|
2209
2497
|
{
|
|
2210
|
-
label:
|
|
2498
|
+
label: __13("Border", "elementor"),
|
|
2211
2499
|
isAdded: hasBorder,
|
|
2212
2500
|
onAdd: addBorder,
|
|
2213
|
-
onRemove: removeBorder
|
|
2501
|
+
onRemove: removeBorder,
|
|
2502
|
+
disabled: !canEdit
|
|
2214
2503
|
},
|
|
2215
|
-
/* @__PURE__ */
|
|
2216
|
-
/* @__PURE__ */
|
|
2217
|
-
/* @__PURE__ */
|
|
2504
|
+
/* @__PURE__ */ React35.createElement(BorderWidthField, null),
|
|
2505
|
+
/* @__PURE__ */ React35.createElement(BorderColorField, null),
|
|
2506
|
+
/* @__PURE__ */ React35.createElement(BorderStyleField, null)
|
|
2218
2507
|
);
|
|
2219
2508
|
};
|
|
2220
2509
|
|
|
2221
2510
|
// src/components/style-sections/border-section/border-radius-field.tsx
|
|
2222
|
-
import * as
|
|
2511
|
+
import * as React36 from "react";
|
|
2223
2512
|
import { EqualUnequalSizesControl as EqualUnequalSizesControl2 } from "@elementor/editor-controls";
|
|
2224
2513
|
import { borderRadiusPropTypeUtil } from "@elementor/editor-props";
|
|
2225
2514
|
import {
|
|
@@ -2230,66 +2519,66 @@ import {
|
|
|
2230
2519
|
RadiusTopRightIcon
|
|
2231
2520
|
} from "@elementor/icons";
|
|
2232
2521
|
import { withDirection as withDirection2 } from "@elementor/ui";
|
|
2233
|
-
import { __ as
|
|
2522
|
+
import { __ as __14 } from "@wordpress/i18n";
|
|
2234
2523
|
var StartStartIcon = withDirection2(RadiusTopLeftIcon);
|
|
2235
2524
|
var StartEndIcon = withDirection2(RadiusTopRightIcon);
|
|
2236
2525
|
var EndStartIcon = withDirection2(RadiusBottomLeftIcon);
|
|
2237
2526
|
var EndEndIcon = withDirection2(RadiusBottomRightIcon);
|
|
2238
|
-
var getStartStartLabel = (isSiteRtl) => isSiteRtl ?
|
|
2239
|
-
var getStartEndLabel = (isSiteRtl) => isSiteRtl ?
|
|
2240
|
-
var getEndStartLabel = (isSiteRtl) => isSiteRtl ?
|
|
2241
|
-
var getEndEndLabel = (isSiteRtl) => isSiteRtl ?
|
|
2527
|
+
var getStartStartLabel = (isSiteRtl) => isSiteRtl ? __14("Top right", "elementor") : __14("Top left", "elementor");
|
|
2528
|
+
var getStartEndLabel = (isSiteRtl) => isSiteRtl ? __14("Top left", "elementor") : __14("Top right", "elementor");
|
|
2529
|
+
var getEndStartLabel = (isSiteRtl) => isSiteRtl ? __14("Bottom right", "elementor") : __14("Bottom left", "elementor");
|
|
2530
|
+
var getEndEndLabel = (isSiteRtl) => isSiteRtl ? __14("Bottom left", "elementor") : __14("Bottom right", "elementor");
|
|
2242
2531
|
var getCorners = (isSiteRtl) => [
|
|
2243
2532
|
{
|
|
2244
2533
|
label: getStartStartLabel(isSiteRtl),
|
|
2245
|
-
icon: /* @__PURE__ */
|
|
2534
|
+
icon: /* @__PURE__ */ React36.createElement(StartStartIcon, { fontSize: "tiny" }),
|
|
2246
2535
|
bind: "start-start"
|
|
2247
2536
|
},
|
|
2248
2537
|
{
|
|
2249
2538
|
label: getStartEndLabel(isSiteRtl),
|
|
2250
|
-
icon: /* @__PURE__ */
|
|
2539
|
+
icon: /* @__PURE__ */ React36.createElement(StartEndIcon, { fontSize: "tiny" }),
|
|
2251
2540
|
bind: "start-end"
|
|
2252
2541
|
},
|
|
2253
2542
|
{
|
|
2254
2543
|
label: getEndStartLabel(isSiteRtl),
|
|
2255
|
-
icon: /* @__PURE__ */
|
|
2544
|
+
icon: /* @__PURE__ */ React36.createElement(EndStartIcon, { fontSize: "tiny" }),
|
|
2256
2545
|
bind: "end-start"
|
|
2257
2546
|
},
|
|
2258
2547
|
{
|
|
2259
2548
|
label: getEndEndLabel(isSiteRtl),
|
|
2260
|
-
icon: /* @__PURE__ */
|
|
2549
|
+
icon: /* @__PURE__ */ React36.createElement(EndEndIcon, { fontSize: "tiny" }),
|
|
2261
2550
|
bind: "end-end"
|
|
2262
2551
|
}
|
|
2263
2552
|
];
|
|
2264
2553
|
var BorderRadiusField = () => {
|
|
2265
2554
|
const { isSiteRtl } = useDirection();
|
|
2266
|
-
return /* @__PURE__ */
|
|
2555
|
+
return /* @__PURE__ */ React36.createElement(StylesField, { bind: "border-radius" }, /* @__PURE__ */ React36.createElement(
|
|
2267
2556
|
EqualUnequalSizesControl2,
|
|
2268
2557
|
{
|
|
2269
2558
|
items: getCorners(isSiteRtl),
|
|
2270
|
-
label:
|
|
2271
|
-
icon: /* @__PURE__ */
|
|
2272
|
-
tooltipLabel:
|
|
2559
|
+
label: __14("Border radius", "elementor"),
|
|
2560
|
+
icon: /* @__PURE__ */ React36.createElement(BorderCornersIcon, { fontSize: "tiny" }),
|
|
2561
|
+
tooltipLabel: __14("Adjust corners", "elementor"),
|
|
2273
2562
|
multiSizePropTypeUtil: borderRadiusPropTypeUtil
|
|
2274
2563
|
}
|
|
2275
2564
|
));
|
|
2276
2565
|
};
|
|
2277
2566
|
|
|
2278
2567
|
// src/components/style-sections/border-section/border-section.tsx
|
|
2279
|
-
var BorderSection = () => /* @__PURE__ */
|
|
2568
|
+
var BorderSection = () => /* @__PURE__ */ React37.createElement(SectionContent, null, /* @__PURE__ */ React37.createElement(BorderRadiusField, null), /* @__PURE__ */ React37.createElement(PanelDivider, null), /* @__PURE__ */ React37.createElement(BorderField, null));
|
|
2280
2569
|
|
|
2281
2570
|
// src/components/style-sections/effects-section/effects-section.tsx
|
|
2282
|
-
import * as
|
|
2571
|
+
import * as React38 from "react";
|
|
2283
2572
|
import { BoxShadowRepeaterControl } from "@elementor/editor-controls";
|
|
2284
2573
|
var EffectsSection = () => {
|
|
2285
|
-
return /* @__PURE__ */
|
|
2574
|
+
return /* @__PURE__ */ React38.createElement(SectionContent, null, /* @__PURE__ */ React38.createElement(StylesField, { bind: "box-shadow" }, /* @__PURE__ */ React38.createElement(BoxShadowRepeaterControl, null)));
|
|
2286
2575
|
};
|
|
2287
2576
|
|
|
2288
2577
|
// src/components/style-sections/layout-section/layout-section.tsx
|
|
2289
|
-
import * as
|
|
2578
|
+
import * as React50 from "react";
|
|
2290
2579
|
import { ControlFormLabel as ControlFormLabel3 } from "@elementor/editor-controls";
|
|
2291
2580
|
import { useParentElement } from "@elementor/editor-elements";
|
|
2292
|
-
import { __ as
|
|
2581
|
+
import { __ as __25 } from "@wordpress/i18n";
|
|
2293
2582
|
|
|
2294
2583
|
// src/hooks/use-computed-style.ts
|
|
2295
2584
|
import { __privateUseListenTo as useListenTo, commandEndEvent, windowEvent } from "@elementor/editor-v1-adapters";
|
|
@@ -2317,7 +2606,7 @@ function useComputedStyle(elementId) {
|
|
|
2317
2606
|
}
|
|
2318
2607
|
|
|
2319
2608
|
// src/components/style-sections/layout-section/align-content-field.tsx
|
|
2320
|
-
import * as
|
|
2609
|
+
import * as React40 from "react";
|
|
2321
2610
|
import { ToggleControl } from "@elementor/editor-controls";
|
|
2322
2611
|
import {
|
|
2323
2612
|
JustifyBottomIcon,
|
|
@@ -2327,12 +2616,12 @@ import {
|
|
|
2327
2616
|
JustifySpaceBetweenVerticalIcon as BetweenIcon,
|
|
2328
2617
|
JustifyTopIcon
|
|
2329
2618
|
} from "@elementor/icons";
|
|
2330
|
-
import { DirectionProvider, Stack as
|
|
2331
|
-
import { __ as
|
|
2619
|
+
import { DirectionProvider, Stack as Stack10, ThemeProvider, withDirection as withDirection3 } from "@elementor/ui";
|
|
2620
|
+
import { __ as __15 } from "@wordpress/i18n";
|
|
2332
2621
|
|
|
2333
2622
|
// src/components/style-sections/layout-section/utils/rotated-icon.tsx
|
|
2334
|
-
import * as
|
|
2335
|
-
import { useRef as
|
|
2623
|
+
import * as React39 from "react";
|
|
2624
|
+
import { useRef as useRef4 } from "react";
|
|
2336
2625
|
import { useTheme as useTheme2 } from "@elementor/ui";
|
|
2337
2626
|
var CLOCKWISE_ANGLES = {
|
|
2338
2627
|
row: 0,
|
|
@@ -2353,9 +2642,9 @@ var RotatedIcon = ({
|
|
|
2353
2642
|
offset = 0,
|
|
2354
2643
|
disableRotationForReversed = false
|
|
2355
2644
|
}) => {
|
|
2356
|
-
const rotate =
|
|
2645
|
+
const rotate = useRef4(useGetTargetAngle(isClockwise, offset, disableRotationForReversed));
|
|
2357
2646
|
rotate.current = useGetTargetAngle(isClockwise, offset, disableRotationForReversed, rotate);
|
|
2358
|
-
return /* @__PURE__ */
|
|
2647
|
+
return /* @__PURE__ */ React39.createElement(Icon, { fontSize: size, sx: { transition: ".3s", rotate: `${rotate.current}deg` } });
|
|
2359
2648
|
};
|
|
2360
2649
|
var useGetTargetAngle = (isClockwise, offset, disableRotationForReversed, existingRef) => {
|
|
2361
2650
|
const [direction] = useStylesField("flex-direction");
|
|
@@ -2384,48 +2673,48 @@ var iconProps = {
|
|
|
2384
2673
|
var options = [
|
|
2385
2674
|
{
|
|
2386
2675
|
value: "start",
|
|
2387
|
-
label:
|
|
2388
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2676
|
+
label: __15("Start", "elementor"),
|
|
2677
|
+
renderContent: ({ size }) => /* @__PURE__ */ React40.createElement(RotatedIcon, { icon: StartIcon, size, ...iconProps }),
|
|
2389
2678
|
showTooltip: true
|
|
2390
2679
|
},
|
|
2391
2680
|
{
|
|
2392
2681
|
value: "center",
|
|
2393
|
-
label:
|
|
2394
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2682
|
+
label: __15("Center", "elementor"),
|
|
2683
|
+
renderContent: ({ size }) => /* @__PURE__ */ React40.createElement(RotatedIcon, { icon: CenterIcon, size, ...iconProps }),
|
|
2395
2684
|
showTooltip: true
|
|
2396
2685
|
},
|
|
2397
2686
|
{
|
|
2398
2687
|
value: "end",
|
|
2399
|
-
label:
|
|
2400
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2688
|
+
label: __15("End", "elementor"),
|
|
2689
|
+
renderContent: ({ size }) => /* @__PURE__ */ React40.createElement(RotatedIcon, { icon: EndIcon, size, ...iconProps }),
|
|
2401
2690
|
showTooltip: true
|
|
2402
2691
|
},
|
|
2403
2692
|
{
|
|
2404
2693
|
value: "space-between",
|
|
2405
|
-
label:
|
|
2406
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2694
|
+
label: __15("Space between", "elementor"),
|
|
2695
|
+
renderContent: ({ size }) => /* @__PURE__ */ React40.createElement(RotatedIcon, { icon: BetweenIcon, size, ...iconProps }),
|
|
2407
2696
|
showTooltip: true
|
|
2408
2697
|
},
|
|
2409
2698
|
{
|
|
2410
2699
|
value: "space-around",
|
|
2411
|
-
label:
|
|
2412
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2700
|
+
label: __15("Space around", "elementor"),
|
|
2701
|
+
renderContent: ({ size }) => /* @__PURE__ */ React40.createElement(RotatedIcon, { icon: AroundIcon, size, ...iconProps }),
|
|
2413
2702
|
showTooltip: true
|
|
2414
2703
|
},
|
|
2415
2704
|
{
|
|
2416
2705
|
value: "space-evenly",
|
|
2417
|
-
label:
|
|
2418
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2706
|
+
label: __15("Space evenly", "elementor"),
|
|
2707
|
+
renderContent: ({ size }) => /* @__PURE__ */ React40.createElement(RotatedIcon, { icon: EvenlyIcon, size, ...iconProps }),
|
|
2419
2708
|
showTooltip: true
|
|
2420
2709
|
}
|
|
2421
2710
|
];
|
|
2422
2711
|
var AlignContentField = () => {
|
|
2423
2712
|
const { isSiteRtl } = useDirection();
|
|
2424
|
-
return /* @__PURE__ */
|
|
2713
|
+
return /* @__PURE__ */ React40.createElement(DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React40.createElement(ThemeProvider, null, /* @__PURE__ */ React40.createElement(StylesField, { bind: "align-content" }, /* @__PURE__ */ React40.createElement(Stack10, { gap: 1 }, /* @__PURE__ */ React40.createElement(ControlLabel, null, __15("Align content", "elementor")), /* @__PURE__ */ React40.createElement(ToggleControl, { options, fullWidth: true })))));
|
|
2425
2714
|
};
|
|
2426
2715
|
|
|
2427
2716
|
// src/components/style-sections/layout-section/align-items-field.tsx
|
|
2428
|
-
import * as
|
|
2717
|
+
import * as React41 from "react";
|
|
2429
2718
|
import { ToggleControl as ToggleControl2 } from "@elementor/editor-controls";
|
|
2430
2719
|
import {
|
|
2431
2720
|
LayoutAlignCenterIcon as CenterIcon2,
|
|
@@ -2434,7 +2723,7 @@ import {
|
|
|
2434
2723
|
LayoutDistributeVerticalIcon as JustifyIcon
|
|
2435
2724
|
} from "@elementor/icons";
|
|
2436
2725
|
import { DirectionProvider as DirectionProvider2, Grid as Grid3, ThemeProvider as ThemeProvider2, withDirection as withDirection4 } from "@elementor/ui";
|
|
2437
|
-
import { __ as
|
|
2726
|
+
import { __ as __16 } from "@wordpress/i18n";
|
|
2438
2727
|
var StartIcon2 = withDirection4(LayoutAlignLeftIcon);
|
|
2439
2728
|
var EndIcon2 = withDirection4(LayoutAlignRightIcon);
|
|
2440
2729
|
var iconProps2 = {
|
|
@@ -2444,36 +2733,36 @@ var iconProps2 = {
|
|
|
2444
2733
|
var options2 = [
|
|
2445
2734
|
{
|
|
2446
2735
|
value: "start",
|
|
2447
|
-
label:
|
|
2448
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2736
|
+
label: __16("Start", "elementor"),
|
|
2737
|
+
renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(RotatedIcon, { icon: StartIcon2, size, ...iconProps2 }),
|
|
2449
2738
|
showTooltip: true
|
|
2450
2739
|
},
|
|
2451
2740
|
{
|
|
2452
2741
|
value: "center",
|
|
2453
|
-
label:
|
|
2454
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2742
|
+
label: __16("Center", "elementor"),
|
|
2743
|
+
renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(RotatedIcon, { icon: CenterIcon2, size, ...iconProps2 }),
|
|
2455
2744
|
showTooltip: true
|
|
2456
2745
|
},
|
|
2457
2746
|
{
|
|
2458
2747
|
value: "end",
|
|
2459
|
-
label:
|
|
2460
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2748
|
+
label: __16("End", "elementor"),
|
|
2749
|
+
renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(RotatedIcon, { icon: EndIcon2, size, ...iconProps2 }),
|
|
2461
2750
|
showTooltip: true
|
|
2462
2751
|
},
|
|
2463
2752
|
{
|
|
2464
2753
|
value: "stretch",
|
|
2465
|
-
label:
|
|
2466
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2754
|
+
label: __16("Stretch", "elementor"),
|
|
2755
|
+
renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(RotatedIcon, { icon: JustifyIcon, size, ...iconProps2 }),
|
|
2467
2756
|
showTooltip: true
|
|
2468
2757
|
}
|
|
2469
2758
|
];
|
|
2470
2759
|
var AlignItemsField = () => {
|
|
2471
2760
|
const { isSiteRtl } = useDirection();
|
|
2472
|
-
return /* @__PURE__ */
|
|
2761
|
+
return /* @__PURE__ */ React41.createElement(DirectionProvider2, { rtl: isSiteRtl }, /* @__PURE__ */ React41.createElement(ThemeProvider2, null, /* @__PURE__ */ React41.createElement(StylesField, { bind: "align-items" }, /* @__PURE__ */ React41.createElement(Grid3, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React41.createElement(Grid3, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(ControlLabel, null, __16("Align items", "elementor"))), /* @__PURE__ */ React41.createElement(Grid3, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React41.createElement(ToggleControl2, { options: options2 }))))));
|
|
2473
2762
|
};
|
|
2474
2763
|
|
|
2475
2764
|
// src/components/style-sections/layout-section/align-self-child-field.tsx
|
|
2476
|
-
import * as
|
|
2765
|
+
import * as React42 from "react";
|
|
2477
2766
|
import { ToggleControl as ToggleControl3 } from "@elementor/editor-controls";
|
|
2478
2767
|
import {
|
|
2479
2768
|
LayoutAlignCenterIcon as CenterIcon3,
|
|
@@ -2482,7 +2771,7 @@ import {
|
|
|
2482
2771
|
LayoutDistributeVerticalIcon as JustifyIcon2
|
|
2483
2772
|
} from "@elementor/icons";
|
|
2484
2773
|
import { DirectionProvider as DirectionProvider3, Grid as Grid4, ThemeProvider as ThemeProvider3, withDirection as withDirection5 } from "@elementor/ui";
|
|
2485
|
-
import { __ as
|
|
2774
|
+
import { __ as __17 } from "@wordpress/i18n";
|
|
2486
2775
|
var ALIGN_SELF_CHILD_OFFSET_MAP = {
|
|
2487
2776
|
row: 90,
|
|
2488
2777
|
"row-reverse": 90,
|
|
@@ -2497,8 +2786,8 @@ var iconProps3 = {
|
|
|
2497
2786
|
var getOptions = (parentStyleDirection) => [
|
|
2498
2787
|
{
|
|
2499
2788
|
value: "start",
|
|
2500
|
-
label:
|
|
2501
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2789
|
+
label: __17("Start", "elementor"),
|
|
2790
|
+
renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(
|
|
2502
2791
|
RotatedIcon,
|
|
2503
2792
|
{
|
|
2504
2793
|
icon: StartIcon3,
|
|
@@ -2511,8 +2800,8 @@ var getOptions = (parentStyleDirection) => [
|
|
|
2511
2800
|
},
|
|
2512
2801
|
{
|
|
2513
2802
|
value: "center",
|
|
2514
|
-
label:
|
|
2515
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2803
|
+
label: __17("Center", "elementor"),
|
|
2804
|
+
renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(
|
|
2516
2805
|
RotatedIcon,
|
|
2517
2806
|
{
|
|
2518
2807
|
icon: CenterIcon3,
|
|
@@ -2525,8 +2814,8 @@ var getOptions = (parentStyleDirection) => [
|
|
|
2525
2814
|
},
|
|
2526
2815
|
{
|
|
2527
2816
|
value: "end",
|
|
2528
|
-
label:
|
|
2529
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2817
|
+
label: __17("End", "elementor"),
|
|
2818
|
+
renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(
|
|
2530
2819
|
RotatedIcon,
|
|
2531
2820
|
{
|
|
2532
2821
|
icon: EndIcon3,
|
|
@@ -2539,8 +2828,8 @@ var getOptions = (parentStyleDirection) => [
|
|
|
2539
2828
|
},
|
|
2540
2829
|
{
|
|
2541
2830
|
value: "stretch",
|
|
2542
|
-
label:
|
|
2543
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2831
|
+
label: __17("Stretch", "elementor"),
|
|
2832
|
+
renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(
|
|
2544
2833
|
RotatedIcon,
|
|
2545
2834
|
{
|
|
2546
2835
|
icon: JustifyIcon2,
|
|
@@ -2554,107 +2843,107 @@ var getOptions = (parentStyleDirection) => [
|
|
|
2554
2843
|
];
|
|
2555
2844
|
var AlignSelfChild = ({ parentStyleDirection }) => {
|
|
2556
2845
|
const { isSiteRtl } = useDirection();
|
|
2557
|
-
return /* @__PURE__ */
|
|
2846
|
+
return /* @__PURE__ */ React42.createElement(DirectionProvider3, { rtl: isSiteRtl }, /* @__PURE__ */ React42.createElement(ThemeProvider3, null, /* @__PURE__ */ React42.createElement(StylesField, { bind: "align-self" }, /* @__PURE__ */ React42.createElement(Grid4, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React42.createElement(Grid4, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(ControlLabel, null, __17("Align self", "elementor"))), /* @__PURE__ */ React42.createElement(Grid4, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React42.createElement(ToggleControl3, { options: getOptions(parentStyleDirection) }))))));
|
|
2558
2847
|
};
|
|
2559
2848
|
|
|
2560
2849
|
// src/components/style-sections/layout-section/display-field.tsx
|
|
2561
|
-
import * as
|
|
2850
|
+
import * as React43 from "react";
|
|
2562
2851
|
import { ToggleControl as ToggleControl4 } from "@elementor/editor-controls";
|
|
2563
|
-
import { isExperimentActive as
|
|
2564
|
-
import { Stack as
|
|
2565
|
-
import { __ as
|
|
2852
|
+
import { isExperimentActive as isExperimentActive6 } from "@elementor/editor-v1-adapters";
|
|
2853
|
+
import { Stack as Stack11 } from "@elementor/ui";
|
|
2854
|
+
import { __ as __18 } from "@wordpress/i18n";
|
|
2566
2855
|
var displayFieldItems = [
|
|
2567
2856
|
{
|
|
2568
2857
|
value: "block",
|
|
2569
|
-
renderContent: () =>
|
|
2570
|
-
label:
|
|
2858
|
+
renderContent: () => __18("Block", "elementor"),
|
|
2859
|
+
label: __18("Block", "elementor"),
|
|
2571
2860
|
showTooltip: true
|
|
2572
2861
|
},
|
|
2573
2862
|
{
|
|
2574
2863
|
value: "flex",
|
|
2575
|
-
renderContent: () =>
|
|
2576
|
-
label:
|
|
2864
|
+
renderContent: () => __18("Flex", "elementor"),
|
|
2865
|
+
label: __18("Flex", "elementor"),
|
|
2577
2866
|
showTooltip: true
|
|
2578
2867
|
},
|
|
2579
2868
|
{
|
|
2580
2869
|
value: "inline-block",
|
|
2581
|
-
renderContent: () =>
|
|
2582
|
-
label:
|
|
2870
|
+
renderContent: () => __18("In-blk", "elementor"),
|
|
2871
|
+
label: __18("Inline-block", "elementor"),
|
|
2583
2872
|
showTooltip: true
|
|
2584
2873
|
}
|
|
2585
2874
|
];
|
|
2586
2875
|
var DisplayField = () => {
|
|
2587
|
-
const isDisplayNoneFeatureActive =
|
|
2876
|
+
const isDisplayNoneFeatureActive = isExperimentActive6(EXPERIMENTAL_FEATURES.V_3_30);
|
|
2588
2877
|
const items3 = [...displayFieldItems];
|
|
2589
2878
|
if (isDisplayNoneFeatureActive) {
|
|
2590
2879
|
items3.push({
|
|
2591
2880
|
value: "none",
|
|
2592
|
-
renderContent: () =>
|
|
2593
|
-
label:
|
|
2881
|
+
renderContent: () => __18("None", "elementor"),
|
|
2882
|
+
label: __18("None", "elementor"),
|
|
2594
2883
|
showTooltip: true
|
|
2595
2884
|
});
|
|
2596
2885
|
}
|
|
2597
2886
|
items3.push({
|
|
2598
2887
|
value: "inline-flex",
|
|
2599
|
-
renderContent: () =>
|
|
2600
|
-
label:
|
|
2888
|
+
renderContent: () => __18("In-flx", "elementor"),
|
|
2889
|
+
label: __18("Inline-flex", "elementor"),
|
|
2601
2890
|
showTooltip: true
|
|
2602
2891
|
});
|
|
2603
2892
|
const placeholder = useDisplayPlaceholderValue();
|
|
2604
|
-
return /* @__PURE__ */
|
|
2893
|
+
return /* @__PURE__ */ React43.createElement(StylesField, { bind: "display", placeholder }, /* @__PURE__ */ React43.createElement(Stack11, { gap: 0.75 }, /* @__PURE__ */ React43.createElement(ControlLabel, null, __18("Display", "elementor")), /* @__PURE__ */ React43.createElement(ToggleControl4, { options: items3, maxItems: 4, fullWidth: true })));
|
|
2605
2894
|
};
|
|
2606
2895
|
var useDisplayPlaceholderValue = () => useStylesInheritanceChain(["display"])[0]?.value ?? void 0;
|
|
2607
2896
|
|
|
2608
2897
|
// src/components/style-sections/layout-section/flex-direction-field.tsx
|
|
2609
|
-
import * as
|
|
2898
|
+
import * as React44 from "react";
|
|
2610
2899
|
import { ToggleControl as ToggleControl5 } from "@elementor/editor-controls";
|
|
2611
2900
|
import { ArrowDownSmallIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpSmallIcon } from "@elementor/icons";
|
|
2612
2901
|
import { DirectionProvider as DirectionProvider4, Grid as Grid5, ThemeProvider as ThemeProvider4, withDirection as withDirection6 } from "@elementor/ui";
|
|
2613
|
-
import { __ as
|
|
2902
|
+
import { __ as __19 } from "@wordpress/i18n";
|
|
2614
2903
|
var options3 = [
|
|
2615
2904
|
{
|
|
2616
2905
|
value: "row",
|
|
2617
|
-
label:
|
|
2906
|
+
label: __19("Row", "elementor"),
|
|
2618
2907
|
renderContent: ({ size }) => {
|
|
2619
2908
|
const StartIcon5 = withDirection6(ArrowRightIcon);
|
|
2620
|
-
return /* @__PURE__ */
|
|
2909
|
+
return /* @__PURE__ */ React44.createElement(StartIcon5, { fontSize: size });
|
|
2621
2910
|
},
|
|
2622
2911
|
showTooltip: true
|
|
2623
2912
|
},
|
|
2624
2913
|
{
|
|
2625
2914
|
value: "column",
|
|
2626
|
-
label:
|
|
2627
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2915
|
+
label: __19("Column", "elementor"),
|
|
2916
|
+
renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(ArrowDownSmallIcon, { fontSize: size }),
|
|
2628
2917
|
showTooltip: true
|
|
2629
2918
|
},
|
|
2630
2919
|
{
|
|
2631
2920
|
value: "row-reverse",
|
|
2632
|
-
label:
|
|
2921
|
+
label: __19("Reversed row", "elementor"),
|
|
2633
2922
|
renderContent: ({ size }) => {
|
|
2634
2923
|
const EndIcon5 = withDirection6(ArrowLeftIcon);
|
|
2635
|
-
return /* @__PURE__ */
|
|
2924
|
+
return /* @__PURE__ */ React44.createElement(EndIcon5, { fontSize: size });
|
|
2636
2925
|
},
|
|
2637
2926
|
showTooltip: true
|
|
2638
2927
|
},
|
|
2639
2928
|
{
|
|
2640
2929
|
value: "column-reverse",
|
|
2641
|
-
label:
|
|
2642
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2930
|
+
label: __19("Reversed column", "elementor"),
|
|
2931
|
+
renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(ArrowUpSmallIcon, { fontSize: size }),
|
|
2643
2932
|
showTooltip: true
|
|
2644
2933
|
}
|
|
2645
2934
|
];
|
|
2646
2935
|
var FlexDirectionField = () => {
|
|
2647
2936
|
const { isSiteRtl } = useDirection();
|
|
2648
|
-
return /* @__PURE__ */
|
|
2937
|
+
return /* @__PURE__ */ React44.createElement(DirectionProvider4, { rtl: isSiteRtl }, /* @__PURE__ */ React44.createElement(ThemeProvider4, null, /* @__PURE__ */ React44.createElement(StylesField, { bind: "flex-direction" }, /* @__PURE__ */ React44.createElement(Grid5, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React44.createElement(Grid5, { item: true, xs: 6 }, /* @__PURE__ */ React44.createElement(ControlLabel, null, __19("Direction", "elementor"))), /* @__PURE__ */ React44.createElement(Grid5, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React44.createElement(ToggleControl5, { options: options3 }))))));
|
|
2649
2938
|
};
|
|
2650
2939
|
|
|
2651
2940
|
// src/components/style-sections/layout-section/flex-order-field.tsx
|
|
2652
|
-
import * as
|
|
2941
|
+
import * as React45 from "react";
|
|
2653
2942
|
import { useState as useState9 } from "react";
|
|
2654
2943
|
import { ControlToggleButtonGroup, NumberControl } from "@elementor/editor-controls";
|
|
2655
2944
|
import { ArrowDownSmallIcon as ArrowDownSmallIcon2, ArrowUpSmallIcon as ArrowUpSmallIcon2, PencilIcon } from "@elementor/icons";
|
|
2656
2945
|
import { DirectionProvider as DirectionProvider5, Grid as Grid6, ThemeProvider as ThemeProvider5 } from "@elementor/ui";
|
|
2657
|
-
import { __ as
|
|
2946
|
+
import { __ as __20 } from "@wordpress/i18n";
|
|
2658
2947
|
var FIRST_DEFAULT_VALUE = -99999;
|
|
2659
2948
|
var LAST_DEFAULT_VALUE = 99999;
|
|
2660
2949
|
var FIRST = "first";
|
|
@@ -2667,25 +2956,27 @@ var orderValueMap = {
|
|
|
2667
2956
|
var items = [
|
|
2668
2957
|
{
|
|
2669
2958
|
value: FIRST,
|
|
2670
|
-
label:
|
|
2671
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2959
|
+
label: __20("First", "elementor"),
|
|
2960
|
+
renderContent: ({ size }) => /* @__PURE__ */ React45.createElement(ArrowUpSmallIcon2, { fontSize: size }),
|
|
2672
2961
|
showTooltip: true
|
|
2673
2962
|
},
|
|
2674
2963
|
{
|
|
2675
2964
|
value: LAST,
|
|
2676
|
-
label:
|
|
2677
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2965
|
+
label: __20("Last", "elementor"),
|
|
2966
|
+
renderContent: ({ size }) => /* @__PURE__ */ React45.createElement(ArrowDownSmallIcon2, { fontSize: size }),
|
|
2678
2967
|
showTooltip: true
|
|
2679
2968
|
},
|
|
2680
2969
|
{
|
|
2681
2970
|
value: CUSTOM,
|
|
2682
|
-
label:
|
|
2683
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2971
|
+
label: __20("Custom", "elementor"),
|
|
2972
|
+
renderContent: ({ size }) => /* @__PURE__ */ React45.createElement(PencilIcon, { fontSize: size }),
|
|
2684
2973
|
showTooltip: true
|
|
2685
2974
|
}
|
|
2686
2975
|
];
|
|
2687
2976
|
var FlexOrderField = () => {
|
|
2688
|
-
const { isSiteRtl } = useDirection()
|
|
2977
|
+
const { isSiteRtl } = useDirection();
|
|
2978
|
+
const [order, setOrder] = useStylesField("order");
|
|
2979
|
+
const { canEdit } = useStyle();
|
|
2689
2980
|
const [groupControlValue, setGroupControlValue] = useState9(getGroupControlValue(order?.value || null));
|
|
2690
2981
|
const handleToggleButtonChange = (group) => {
|
|
2691
2982
|
setGroupControlValue(group);
|
|
@@ -2695,15 +2986,16 @@ var FlexOrderField = () => {
|
|
|
2695
2986
|
}
|
|
2696
2987
|
setOrder({ $$type: "number", value: orderValueMap[group] });
|
|
2697
2988
|
};
|
|
2698
|
-
return /* @__PURE__ */
|
|
2989
|
+
return /* @__PURE__ */ React45.createElement(DirectionProvider5, { rtl: isSiteRtl }, /* @__PURE__ */ React45.createElement(ThemeProvider5, null, /* @__PURE__ */ React45.createElement(StylesField, { bind: "order" }, /* @__PURE__ */ React45.createElement(SectionContent, null, /* @__PURE__ */ React45.createElement(Grid6, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React45.createElement(Grid6, { item: true, xs: 6 }, /* @__PURE__ */ React45.createElement(ControlLabel, null, __20("Order", "elementor"))), /* @__PURE__ */ React45.createElement(Grid6, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React45.createElement(
|
|
2699
2990
|
ControlToggleButtonGroup,
|
|
2700
2991
|
{
|
|
2701
2992
|
items,
|
|
2702
2993
|
value: groupControlValue,
|
|
2703
2994
|
onChange: handleToggleButtonChange,
|
|
2704
|
-
exclusive: true
|
|
2995
|
+
exclusive: true,
|
|
2996
|
+
disabled: !canEdit
|
|
2705
2997
|
}
|
|
2706
|
-
))), CUSTOM === groupControlValue && /* @__PURE__ */
|
|
2998
|
+
))), CUSTOM === groupControlValue && /* @__PURE__ */ React45.createElement(Grid6, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React45.createElement(Grid6, { item: true, xs: 6 }, /* @__PURE__ */ React45.createElement(ControlLabel, null, __20("Custom order", "elementor"))), /* @__PURE__ */ React45.createElement(Grid6, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React45.createElement(
|
|
2707
2999
|
NumberControl,
|
|
2708
3000
|
{
|
|
2709
3001
|
min: FIRST_DEFAULT_VALUE + 1,
|
|
@@ -2723,7 +3015,7 @@ var getGroupControlValue = (order) => {
|
|
|
2723
3015
|
};
|
|
2724
3016
|
|
|
2725
3017
|
// src/components/style-sections/layout-section/flex-size-field.tsx
|
|
2726
|
-
import * as
|
|
3018
|
+
import * as React46 from "react";
|
|
2727
3019
|
import { useMemo as useMemo5, useState as useState10 } from "react";
|
|
2728
3020
|
import {
|
|
2729
3021
|
ControlToggleButtonGroup as ControlToggleButtonGroup2,
|
|
@@ -2733,30 +3025,31 @@ import {
|
|
|
2733
3025
|
import { numberPropTypeUtil } from "@elementor/editor-props";
|
|
2734
3026
|
import { ExpandIcon, PencilIcon as PencilIcon2, ShrinkIcon } from "@elementor/icons";
|
|
2735
3027
|
import { DirectionProvider as DirectionProvider6, Grid as Grid7, ThemeProvider as ThemeProvider6 } from "@elementor/ui";
|
|
2736
|
-
import { __ as
|
|
3028
|
+
import { __ as __21 } from "@wordpress/i18n";
|
|
2737
3029
|
var DEFAULT = 1;
|
|
2738
3030
|
var items2 = [
|
|
2739
3031
|
{
|
|
2740
3032
|
value: "flex-grow",
|
|
2741
|
-
label:
|
|
2742
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3033
|
+
label: __21("Grow", "elementor"),
|
|
3034
|
+
renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(ExpandIcon, { fontSize: size }),
|
|
2743
3035
|
showTooltip: true
|
|
2744
3036
|
},
|
|
2745
3037
|
{
|
|
2746
3038
|
value: "flex-shrink",
|
|
2747
|
-
label:
|
|
2748
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3039
|
+
label: __21("Shrink", "elementor"),
|
|
3040
|
+
renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(ShrinkIcon, { fontSize: size }),
|
|
2749
3041
|
showTooltip: true
|
|
2750
3042
|
},
|
|
2751
3043
|
{
|
|
2752
3044
|
value: "custom",
|
|
2753
|
-
label:
|
|
2754
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3045
|
+
label: __21("Custom", "elementor"),
|
|
3046
|
+
renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(PencilIcon2, { fontSize: size }),
|
|
2755
3047
|
showTooltip: true
|
|
2756
3048
|
}
|
|
2757
3049
|
];
|
|
2758
3050
|
var FlexSizeField = () => {
|
|
2759
3051
|
const { isSiteRtl } = useDirection();
|
|
3052
|
+
const { canEdit } = useStyle();
|
|
2760
3053
|
const [fields, setFields] = useStylesFields(["flex-grow", "flex-shrink", "flex-basis"]);
|
|
2761
3054
|
const grow = fields?.["flex-grow"]?.value || null;
|
|
2762
3055
|
const shrink = fields?.["flex-shrink"]?.value || null;
|
|
@@ -2786,17 +3079,18 @@ var FlexSizeField = () => {
|
|
|
2786
3079
|
"flex-shrink": numberPropTypeUtil.create(DEFAULT)
|
|
2787
3080
|
});
|
|
2788
3081
|
};
|
|
2789
|
-
return /* @__PURE__ */
|
|
3082
|
+
return /* @__PURE__ */ React46.createElement(DirectionProvider6, { rtl: isSiteRtl }, /* @__PURE__ */ React46.createElement(ThemeProvider6, null, /* @__PURE__ */ React46.createElement(SectionContent, null, /* @__PURE__ */ React46.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React46.createElement(StylesField, { bind: activeGroup ?? "" }, /* @__PURE__ */ React46.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React46.createElement(ControlLabel, null, __21("Size", "elementor"))), /* @__PURE__ */ React46.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React46.createElement(
|
|
2790
3083
|
ControlToggleButtonGroup2,
|
|
2791
3084
|
{
|
|
2792
3085
|
value: activeGroup,
|
|
2793
3086
|
onChange: onChangeGroup,
|
|
3087
|
+
disabled: !canEdit,
|
|
2794
3088
|
items: items2,
|
|
2795
3089
|
exclusive: true
|
|
2796
3090
|
}
|
|
2797
|
-
))), "custom" === activeGroup && /* @__PURE__ */
|
|
3091
|
+
)))), "custom" === activeGroup && /* @__PURE__ */ React46.createElement(FlexCustomField, null))));
|
|
2798
3092
|
};
|
|
2799
|
-
var FlexCustomField = () => /* @__PURE__ */
|
|
3093
|
+
var FlexCustomField = () => /* @__PURE__ */ React46.createElement(React46.Fragment, null, /* @__PURE__ */ React46.createElement(StylesField, { bind: "flex-grow" }, /* @__PURE__ */ React46.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React46.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React46.createElement(ControlLabel, null, __21("Grow", "elementor"))), /* @__PURE__ */ React46.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React46.createElement(NumberControl2, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React46.createElement(StylesField, { bind: "flex-shrink" }, /* @__PURE__ */ React46.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React46.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React46.createElement(ControlLabel, null, __21("Shrink", "elementor"))), /* @__PURE__ */ React46.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React46.createElement(NumberControl2, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React46.createElement(StylesField, { bind: "flex-basis" }, /* @__PURE__ */ React46.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React46.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React46.createElement(ControlLabel, null, __21("Basis", "elementor"))), /* @__PURE__ */ React46.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React46.createElement(SizeControl2, { extendedValues: ["auto"] })))));
|
|
2800
3094
|
var getActiveGroup = ({
|
|
2801
3095
|
grow,
|
|
2802
3096
|
shrink,
|
|
@@ -2818,16 +3112,16 @@ var getActiveGroup = ({
|
|
|
2818
3112
|
};
|
|
2819
3113
|
|
|
2820
3114
|
// src/components/style-sections/layout-section/gap-control-field.tsx
|
|
2821
|
-
import * as
|
|
3115
|
+
import * as React47 from "react";
|
|
2822
3116
|
import { GapControl } from "@elementor/editor-controls";
|
|
2823
|
-
import { Stack as
|
|
2824
|
-
import { __ as
|
|
3117
|
+
import { Stack as Stack12 } from "@elementor/ui";
|
|
3118
|
+
import { __ as __22 } from "@wordpress/i18n";
|
|
2825
3119
|
var GapControlField = () => {
|
|
2826
|
-
return /* @__PURE__ */
|
|
3120
|
+
return /* @__PURE__ */ React47.createElement(Stack12, { gap: 1 }, /* @__PURE__ */ React47.createElement(StylesField, { bind: "gap" }, /* @__PURE__ */ React47.createElement(GapControl, { label: __22("Gaps", "elementor") })));
|
|
2827
3121
|
};
|
|
2828
3122
|
|
|
2829
3123
|
// src/components/style-sections/layout-section/justify-content-field.tsx
|
|
2830
|
-
import * as
|
|
3124
|
+
import * as React48 from "react";
|
|
2831
3125
|
import { ToggleControl as ToggleControl6 } from "@elementor/editor-controls";
|
|
2832
3126
|
import {
|
|
2833
3127
|
JustifyBottomIcon as JustifyBottomIcon2,
|
|
@@ -2837,8 +3131,8 @@ import {
|
|
|
2837
3131
|
JustifySpaceBetweenVerticalIcon as BetweenIcon2,
|
|
2838
3132
|
JustifyTopIcon as JustifyTopIcon2
|
|
2839
3133
|
} from "@elementor/icons";
|
|
2840
|
-
import { DirectionProvider as DirectionProvider7, Stack as
|
|
2841
|
-
import { __ as
|
|
3134
|
+
import { DirectionProvider as DirectionProvider7, Stack as Stack13, ThemeProvider as ThemeProvider7, withDirection as withDirection7 } from "@elementor/ui";
|
|
3135
|
+
import { __ as __23 } from "@wordpress/i18n";
|
|
2842
3136
|
var StartIcon4 = withDirection7(JustifyTopIcon2);
|
|
2843
3137
|
var EndIcon4 = withDirection7(JustifyBottomIcon2);
|
|
2844
3138
|
var iconProps4 = {
|
|
@@ -2848,75 +3142,75 @@ var iconProps4 = {
|
|
|
2848
3142
|
var options4 = [
|
|
2849
3143
|
{
|
|
2850
3144
|
value: "flex-start",
|
|
2851
|
-
label:
|
|
2852
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3145
|
+
label: __23("Start", "elementor"),
|
|
3146
|
+
renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(RotatedIcon, { icon: StartIcon4, size, ...iconProps4 }),
|
|
2853
3147
|
showTooltip: true
|
|
2854
3148
|
},
|
|
2855
3149
|
{
|
|
2856
3150
|
value: "center",
|
|
2857
|
-
label:
|
|
2858
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3151
|
+
label: __23("Center", "elementor"),
|
|
3152
|
+
renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(RotatedIcon, { icon: CenterIcon4, size, ...iconProps4 }),
|
|
2859
3153
|
showTooltip: true
|
|
2860
3154
|
},
|
|
2861
3155
|
{
|
|
2862
3156
|
value: "flex-end",
|
|
2863
|
-
label:
|
|
2864
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3157
|
+
label: __23("End", "elementor"),
|
|
3158
|
+
renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(RotatedIcon, { icon: EndIcon4, size, ...iconProps4 }),
|
|
2865
3159
|
showTooltip: true
|
|
2866
3160
|
},
|
|
2867
3161
|
{
|
|
2868
3162
|
value: "space-between",
|
|
2869
|
-
label:
|
|
2870
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3163
|
+
label: __23("Space between", "elementor"),
|
|
3164
|
+
renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(RotatedIcon, { icon: BetweenIcon2, size, ...iconProps4 }),
|
|
2871
3165
|
showTooltip: true
|
|
2872
3166
|
},
|
|
2873
3167
|
{
|
|
2874
3168
|
value: "space-around",
|
|
2875
|
-
label:
|
|
2876
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3169
|
+
label: __23("Space around", "elementor"),
|
|
3170
|
+
renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(RotatedIcon, { icon: AroundIcon2, size, ...iconProps4 }),
|
|
2877
3171
|
showTooltip: true
|
|
2878
3172
|
},
|
|
2879
3173
|
{
|
|
2880
3174
|
value: "space-evenly",
|
|
2881
|
-
label:
|
|
2882
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3175
|
+
label: __23("Space evenly", "elementor"),
|
|
3176
|
+
renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(RotatedIcon, { icon: EvenlyIcon2, size, ...iconProps4 }),
|
|
2883
3177
|
showTooltip: true
|
|
2884
3178
|
}
|
|
2885
3179
|
];
|
|
2886
3180
|
var JustifyContentField = () => {
|
|
2887
3181
|
const { isSiteRtl } = useDirection();
|
|
2888
|
-
return /* @__PURE__ */
|
|
3182
|
+
return /* @__PURE__ */ React48.createElement(DirectionProvider7, { rtl: isSiteRtl }, /* @__PURE__ */ React48.createElement(ThemeProvider7, null, /* @__PURE__ */ React48.createElement(StylesField, { bind: "justify-content" }, /* @__PURE__ */ React48.createElement(Stack13, { gap: 0.75 }, /* @__PURE__ */ React48.createElement(ControlLabel, null, __23("Justify content", "elementor")), /* @__PURE__ */ React48.createElement(ToggleControl6, { options: options4, fullWidth: true })))));
|
|
2889
3183
|
};
|
|
2890
3184
|
|
|
2891
3185
|
// src/components/style-sections/layout-section/wrap-field.tsx
|
|
2892
|
-
import * as
|
|
3186
|
+
import * as React49 from "react";
|
|
2893
3187
|
import { ToggleControl as ToggleControl7 } from "@elementor/editor-controls";
|
|
2894
3188
|
import { ArrowBackIcon, ArrowForwardIcon, ArrowRightIcon as ArrowRightIcon2 } from "@elementor/icons";
|
|
2895
3189
|
import { DirectionProvider as DirectionProvider8, Grid as Grid8, ThemeProvider as ThemeProvider8 } from "@elementor/ui";
|
|
2896
|
-
import { __ as
|
|
3190
|
+
import { __ as __24 } from "@wordpress/i18n";
|
|
2897
3191
|
var options5 = [
|
|
2898
3192
|
{
|
|
2899
3193
|
value: "nowrap",
|
|
2900
|
-
label:
|
|
2901
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3194
|
+
label: __24("No wrap", "elementor"),
|
|
3195
|
+
renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(ArrowRightIcon2, { fontSize: size }),
|
|
2902
3196
|
showTooltip: true
|
|
2903
3197
|
},
|
|
2904
3198
|
{
|
|
2905
3199
|
value: "wrap",
|
|
2906
|
-
label:
|
|
2907
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3200
|
+
label: __24("Wrap", "elementor"),
|
|
3201
|
+
renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(ArrowBackIcon, { fontSize: size }),
|
|
2908
3202
|
showTooltip: true
|
|
2909
3203
|
},
|
|
2910
3204
|
{
|
|
2911
3205
|
value: "wrap-reverse",
|
|
2912
|
-
label:
|
|
2913
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3206
|
+
label: __24("Reversed wrap", "elementor"),
|
|
3207
|
+
renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(ArrowForwardIcon, { fontSize: size }),
|
|
2914
3208
|
showTooltip: true
|
|
2915
3209
|
}
|
|
2916
3210
|
];
|
|
2917
3211
|
var WrapField = () => {
|
|
2918
3212
|
const { isSiteRtl } = useDirection();
|
|
2919
|
-
return /* @__PURE__ */
|
|
3213
|
+
return /* @__PURE__ */ React49.createElement(DirectionProvider8, { rtl: isSiteRtl }, /* @__PURE__ */ React49.createElement(ThemeProvider8, null, /* @__PURE__ */ React49.createElement(StylesField, { bind: "flex-wrap" }, /* @__PURE__ */ React49.createElement(Grid8, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React49.createElement(Grid8, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(ControlLabel, null, __24("Wrap", "elementor"))), /* @__PURE__ */ React49.createElement(Grid8, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React49.createElement(ToggleControl7, { options: options5 }))))));
|
|
2920
3214
|
};
|
|
2921
3215
|
|
|
2922
3216
|
// src/components/style-sections/layout-section/layout-section.tsx
|
|
@@ -2928,13 +3222,13 @@ var LayoutSection = () => {
|
|
|
2928
3222
|
const parent = useParentElement(element.id);
|
|
2929
3223
|
const parentStyle = useComputedStyle(parent?.id || null);
|
|
2930
3224
|
const parentStyleDirection = parentStyle?.flexDirection ?? "row";
|
|
2931
|
-
return /* @__PURE__ */
|
|
3225
|
+
return /* @__PURE__ */ React50.createElement(SectionContent, null, /* @__PURE__ */ React50.createElement(DisplayField, null), isDisplayFlex && /* @__PURE__ */ React50.createElement(FlexFields, null), "flex" === parentStyle?.display && /* @__PURE__ */ React50.createElement(FlexChildFields, { parentStyleDirection }));
|
|
2932
3226
|
};
|
|
2933
3227
|
var FlexFields = () => {
|
|
2934
3228
|
const [flexWrap] = useStylesField("flex-wrap");
|
|
2935
|
-
return /* @__PURE__ */
|
|
3229
|
+
return /* @__PURE__ */ React50.createElement(React50.Fragment, null, /* @__PURE__ */ React50.createElement(FlexDirectionField, null), /* @__PURE__ */ React50.createElement(JustifyContentField, null), /* @__PURE__ */ React50.createElement(AlignItemsField, null), /* @__PURE__ */ React50.createElement(PanelDivider, null), /* @__PURE__ */ React50.createElement(GapControlField, null), /* @__PURE__ */ React50.createElement(WrapField, null), ["wrap", "wrap-reverse"].includes(flexWrap?.value) && /* @__PURE__ */ React50.createElement(AlignContentField, null));
|
|
2936
3230
|
};
|
|
2937
|
-
var FlexChildFields = ({ parentStyleDirection }) => /* @__PURE__ */
|
|
3231
|
+
var FlexChildFields = ({ parentStyleDirection }) => /* @__PURE__ */ React50.createElement(React50.Fragment, null, /* @__PURE__ */ React50.createElement(PanelDivider, null), /* @__PURE__ */ React50.createElement(ControlFormLabel3, null, __25("Flex child", "elementor")), /* @__PURE__ */ React50.createElement(AlignSelfChild, { parentStyleDirection }), /* @__PURE__ */ React50.createElement(FlexOrderField, null), /* @__PURE__ */ React50.createElement(FlexSizeField, null));
|
|
2938
3232
|
var shouldDisplayFlexFields = (display, local) => {
|
|
2939
3233
|
const value = display?.value ?? local?.value;
|
|
2940
3234
|
if (!value) {
|
|
@@ -2944,66 +3238,66 @@ var shouldDisplayFlexFields = (display, local) => {
|
|
|
2944
3238
|
};
|
|
2945
3239
|
|
|
2946
3240
|
// src/components/style-sections/position-section/position-section.tsx
|
|
2947
|
-
import * as
|
|
2948
|
-
import { isExperimentActive as
|
|
3241
|
+
import * as React55 from "react";
|
|
3242
|
+
import { isExperimentActive as isExperimentActive7 } from "@elementor/editor-v1-adapters";
|
|
2949
3243
|
import { useSessionStorage } from "@elementor/session";
|
|
2950
3244
|
|
|
2951
3245
|
// src/components/style-sections/position-section/dimensions-field.tsx
|
|
2952
|
-
import * as
|
|
3246
|
+
import * as React51 from "react";
|
|
2953
3247
|
import { SizeControl as SizeControl3 } from "@elementor/editor-controls";
|
|
2954
3248
|
import { SideBottomIcon as SideBottomIcon2, SideLeftIcon as SideLeftIcon2, SideRightIcon as SideRightIcon2, SideTopIcon as SideTopIcon2 } from "@elementor/icons";
|
|
2955
|
-
import { Grid as Grid9, Stack as
|
|
2956
|
-
import { __ as
|
|
3249
|
+
import { Grid as Grid9, Stack as Stack14, withDirection as withDirection8 } from "@elementor/ui";
|
|
3250
|
+
import { __ as __26 } from "@wordpress/i18n";
|
|
2957
3251
|
var InlineStartIcon2 = withDirection8(SideLeftIcon2);
|
|
2958
3252
|
var InlineEndIcon2 = withDirection8(SideRightIcon2);
|
|
2959
3253
|
var sideIcons = {
|
|
2960
|
-
"inset-block-start": /* @__PURE__ */
|
|
2961
|
-
"inset-block-end": /* @__PURE__ */
|
|
2962
|
-
"inset-inline-start": /* @__PURE__ */
|
|
2963
|
-
"inset-inline-end": /* @__PURE__ */
|
|
3254
|
+
"inset-block-start": /* @__PURE__ */ React51.createElement(SideTopIcon2, { fontSize: "tiny" }),
|
|
3255
|
+
"inset-block-end": /* @__PURE__ */ React51.createElement(SideBottomIcon2, { fontSize: "tiny" }),
|
|
3256
|
+
"inset-inline-start": /* @__PURE__ */ React51.createElement(RotatedIcon, { icon: InlineStartIcon2, size: "tiny" }),
|
|
3257
|
+
"inset-inline-end": /* @__PURE__ */ React51.createElement(RotatedIcon, { icon: InlineEndIcon2, size: "tiny" })
|
|
2964
3258
|
};
|
|
2965
|
-
var getInlineStartLabel = (isSiteRtl) => isSiteRtl ?
|
|
2966
|
-
var getInlineEndLabel = (isSiteRtl) => isSiteRtl ?
|
|
3259
|
+
var getInlineStartLabel = (isSiteRtl) => isSiteRtl ? __26("Right", "elementor") : __26("Left", "elementor");
|
|
3260
|
+
var getInlineEndLabel = (isSiteRtl) => isSiteRtl ? __26("Left", "elementor") : __26("Right", "elementor");
|
|
2967
3261
|
var DimensionsField = () => {
|
|
2968
3262
|
const { isSiteRtl } = useDirection();
|
|
2969
|
-
return /* @__PURE__ */
|
|
3263
|
+
return /* @__PURE__ */ React51.createElement(React51.Fragment, null, /* @__PURE__ */ React51.createElement(Stack14, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React51.createElement(DimensionField, { side: "inset-block-start", label: __26("Top", "elementor") }), /* @__PURE__ */ React51.createElement(DimensionField, { side: "inset-inline-end", label: getInlineEndLabel(isSiteRtl) })), /* @__PURE__ */ React51.createElement(Stack14, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React51.createElement(DimensionField, { side: "inset-block-end", label: __26("Bottom", "elementor") }), /* @__PURE__ */ React51.createElement(DimensionField, { side: "inset-inline-start", label: getInlineStartLabel(isSiteRtl) })));
|
|
2970
3264
|
};
|
|
2971
3265
|
var DimensionField = ({ side, label }) => {
|
|
2972
|
-
return /* @__PURE__ */
|
|
3266
|
+
return /* @__PURE__ */ React51.createElement(Grid9, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React51.createElement(Grid9, { item: true, xs: 12 }, /* @__PURE__ */ React51.createElement(ControlLabel, null, label)), /* @__PURE__ */ React51.createElement(Grid9, { item: true, xs: 12 }, /* @__PURE__ */ React51.createElement(StylesField, { bind: side }, /* @__PURE__ */ React51.createElement(SizeControl3, { startIcon: sideIcons[side], extendedValues: ["auto"] }))));
|
|
2973
3267
|
};
|
|
2974
3268
|
|
|
2975
3269
|
// src/components/style-sections/position-section/offset-field.tsx
|
|
2976
|
-
import * as
|
|
3270
|
+
import * as React52 from "react";
|
|
2977
3271
|
import { SizeControl as SizeControl4 } from "@elementor/editor-controls";
|
|
2978
3272
|
import { Grid as Grid10 } from "@elementor/ui";
|
|
2979
|
-
import { __ as
|
|
3273
|
+
import { __ as __27 } from "@wordpress/i18n";
|
|
2980
3274
|
var OffsetField = () => {
|
|
2981
|
-
return /* @__PURE__ */
|
|
3275
|
+
return /* @__PURE__ */ React52.createElement(StylesField, { bind: "scroll-margin-top" }, /* @__PURE__ */ React52.createElement(Grid10, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React52.createElement(Grid10, { item: true, xs: 6 }, /* @__PURE__ */ React52.createElement(ControlLabel, null, __27("Anchor offset", "elementor"))), /* @__PURE__ */ React52.createElement(Grid10, { item: true, xs: 6 }, /* @__PURE__ */ React52.createElement(SizeControl4, { units: ["px", "em", "rem", "vw", "vh"] }))));
|
|
2982
3276
|
};
|
|
2983
3277
|
|
|
2984
3278
|
// src/components/style-sections/position-section/position-field.tsx
|
|
2985
|
-
import * as
|
|
3279
|
+
import * as React53 from "react";
|
|
2986
3280
|
import { SelectControl as SelectControl3 } from "@elementor/editor-controls";
|
|
2987
3281
|
import { Grid as Grid11 } from "@elementor/ui";
|
|
2988
|
-
import { __ as
|
|
3282
|
+
import { __ as __28 } from "@wordpress/i18n";
|
|
2989
3283
|
var positionOptions = [
|
|
2990
|
-
{ label:
|
|
2991
|
-
{ label:
|
|
2992
|
-
{ label:
|
|
2993
|
-
{ label:
|
|
2994
|
-
{ label:
|
|
3284
|
+
{ label: __28("Static", "elementor"), value: "static" },
|
|
3285
|
+
{ label: __28("Relative", "elementor"), value: "relative" },
|
|
3286
|
+
{ label: __28("Absolute", "elementor"), value: "absolute" },
|
|
3287
|
+
{ label: __28("Fixed", "elementor"), value: "fixed" },
|
|
3288
|
+
{ label: __28("Sticky", "elementor"), value: "sticky" }
|
|
2995
3289
|
];
|
|
2996
3290
|
var PositionField = ({ onChange }) => {
|
|
2997
|
-
return /* @__PURE__ */
|
|
3291
|
+
return /* @__PURE__ */ React53.createElement(StylesField, { bind: "position" }, /* @__PURE__ */ React53.createElement(Grid11, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React53.createElement(Grid11, { item: true, xs: 6 }, /* @__PURE__ */ React53.createElement(ControlLabel, null, __28("Position", "elementor"))), /* @__PURE__ */ React53.createElement(Grid11, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React53.createElement(SelectControl3, { options: positionOptions, onChange }))));
|
|
2998
3292
|
};
|
|
2999
3293
|
|
|
3000
3294
|
// src/components/style-sections/position-section/z-index-field.tsx
|
|
3001
|
-
import * as
|
|
3295
|
+
import * as React54 from "react";
|
|
3002
3296
|
import { NumberControl as NumberControl3 } from "@elementor/editor-controls";
|
|
3003
3297
|
import { Grid as Grid12 } from "@elementor/ui";
|
|
3004
|
-
import { __ as
|
|
3298
|
+
import { __ as __29 } from "@wordpress/i18n";
|
|
3005
3299
|
var ZIndexField = () => {
|
|
3006
|
-
return /* @__PURE__ */
|
|
3300
|
+
return /* @__PURE__ */ React54.createElement(StylesField, { bind: "z-index" }, /* @__PURE__ */ React54.createElement(Grid12, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React54.createElement(Grid12, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(ControlLabel, null, __29("Z-index", "elementor"))), /* @__PURE__ */ React54.createElement(Grid12, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(NumberControl3, null))));
|
|
3007
3301
|
};
|
|
3008
3302
|
|
|
3009
3303
|
// src/components/style-sections/position-section/position-section.tsx
|
|
@@ -3016,7 +3310,7 @@ var PositionSection = () => {
|
|
|
3016
3310
|
"inset-inline-end"
|
|
3017
3311
|
]);
|
|
3018
3312
|
const [dimensionsValuesFromHistory, updateDimensionsHistory, clearDimensionsHistory] = usePersistDimensions();
|
|
3019
|
-
const isCssIdFeatureActive =
|
|
3313
|
+
const isCssIdFeatureActive = isExperimentActive7("e_v_3_30");
|
|
3020
3314
|
const onPositionChange = (newPosition, previousPosition) => {
|
|
3021
3315
|
if (newPosition === "static") {
|
|
3022
3316
|
if (dimensionsValues) {
|
|
@@ -3036,7 +3330,7 @@ var PositionSection = () => {
|
|
|
3036
3330
|
}
|
|
3037
3331
|
};
|
|
3038
3332
|
const isNotStatic = positionValue && positionValue?.value !== "static";
|
|
3039
|
-
return /* @__PURE__ */
|
|
3333
|
+
return /* @__PURE__ */ React55.createElement(SectionContent, null, /* @__PURE__ */ React55.createElement(PositionField, { onChange: onPositionChange }), isNotStatic ? /* @__PURE__ */ React55.createElement(React55.Fragment, null, /* @__PURE__ */ React55.createElement(DimensionsField, null), /* @__PURE__ */ React55.createElement(ZIndexField, null)) : null, isCssIdFeatureActive && /* @__PURE__ */ React55.createElement(React55.Fragment, null, /* @__PURE__ */ React55.createElement(PanelDivider, null), /* @__PURE__ */ React55.createElement(OffsetField, null)));
|
|
3040
3334
|
};
|
|
3041
3335
|
var usePersistDimensions = () => {
|
|
3042
3336
|
const { id: styleDefID, meta } = useStyle();
|
|
@@ -3046,23 +3340,23 @@ var usePersistDimensions = () => {
|
|
|
3046
3340
|
};
|
|
3047
3341
|
|
|
3048
3342
|
// src/components/style-sections/size-section/size-section.tsx
|
|
3049
|
-
import * as
|
|
3343
|
+
import * as React60 from "react";
|
|
3050
3344
|
import { AspectRatioControl, SizeControl as SizeControl5 } from "@elementor/editor-controls";
|
|
3051
|
-
import { isExperimentActive as
|
|
3052
|
-
import { Grid as Grid16, Stack as
|
|
3053
|
-
import { __ as
|
|
3345
|
+
import { isExperimentActive as isExperimentActive8 } from "@elementor/editor-v1-adapters";
|
|
3346
|
+
import { Grid as Grid16, Stack as Stack16 } from "@elementor/ui";
|
|
3347
|
+
import { __ as __34 } from "@wordpress/i18n";
|
|
3054
3348
|
|
|
3055
3349
|
// src/components/collapsible-content.tsx
|
|
3056
|
-
import * as
|
|
3350
|
+
import * as React56 from "react";
|
|
3057
3351
|
import { useState as useState11 } from "react";
|
|
3058
|
-
import { Button, Collapse as Collapse3, Stack as
|
|
3059
|
-
import { __ as
|
|
3352
|
+
import { Button, Collapse as Collapse3, Stack as Stack15 } from "@elementor/ui";
|
|
3353
|
+
import { __ as __30 } from "@wordpress/i18n";
|
|
3060
3354
|
var CollapsibleContent = ({ children, defaultOpen = false }) => {
|
|
3061
3355
|
const [open, setOpen] = useState11(defaultOpen);
|
|
3062
3356
|
const handleToggle = () => {
|
|
3063
3357
|
setOpen((prevOpen) => !prevOpen);
|
|
3064
3358
|
};
|
|
3065
|
-
return /* @__PURE__ */
|
|
3359
|
+
return /* @__PURE__ */ React56.createElement(Stack15, null, /* @__PURE__ */ React56.createElement(
|
|
3066
3360
|
Button,
|
|
3067
3361
|
{
|
|
3068
3362
|
fullWidth: true,
|
|
@@ -3070,77 +3364,77 @@ var CollapsibleContent = ({ children, defaultOpen = false }) => {
|
|
|
3070
3364
|
color: "secondary",
|
|
3071
3365
|
variant: "outlined",
|
|
3072
3366
|
onClick: handleToggle,
|
|
3073
|
-
endIcon: /* @__PURE__ */
|
|
3367
|
+
endIcon: /* @__PURE__ */ React56.createElement(CollapseIcon, { open }),
|
|
3074
3368
|
sx: { my: 0.5 }
|
|
3075
3369
|
},
|
|
3076
|
-
open ?
|
|
3077
|
-
), /* @__PURE__ */
|
|
3370
|
+
open ? __30("Show less", "elementor") : __30("Show more", "elementor")
|
|
3371
|
+
), /* @__PURE__ */ React56.createElement(Collapse3, { in: open, timeout: "auto", unmountOnExit: true }, children));
|
|
3078
3372
|
};
|
|
3079
3373
|
|
|
3080
3374
|
// src/components/style-sections/size-section/object-fit-field.tsx
|
|
3081
|
-
import * as
|
|
3375
|
+
import * as React57 from "react";
|
|
3082
3376
|
import { SelectControl as SelectControl4 } from "@elementor/editor-controls";
|
|
3083
3377
|
import { Grid as Grid13 } from "@elementor/ui";
|
|
3084
|
-
import { __ as
|
|
3378
|
+
import { __ as __31 } from "@wordpress/i18n";
|
|
3085
3379
|
var positionOptions2 = [
|
|
3086
|
-
{ label:
|
|
3087
|
-
{ label:
|
|
3088
|
-
{ label:
|
|
3089
|
-
{ label:
|
|
3090
|
-
{ label:
|
|
3380
|
+
{ label: __31("Fill", "elementor"), value: "fill" },
|
|
3381
|
+
{ label: __31("Cover", "elementor"), value: "cover" },
|
|
3382
|
+
{ label: __31("Contain", "elementor"), value: "contain" },
|
|
3383
|
+
{ label: __31("None", "elementor"), value: "none" },
|
|
3384
|
+
{ label: __31("Scale down", "elementor"), value: "scale-down" }
|
|
3091
3385
|
];
|
|
3092
3386
|
var ObjectFitField = ({ onChange }) => {
|
|
3093
|
-
return /* @__PURE__ */
|
|
3387
|
+
return /* @__PURE__ */ React57.createElement(StylesField, { bind: "object-fit" }, /* @__PURE__ */ React57.createElement(Grid13, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React57.createElement(Grid13, { item: true, xs: 6 }, /* @__PURE__ */ React57.createElement(ControlLabel, null, __31("Object fit", "elementor"))), /* @__PURE__ */ React57.createElement(Grid13, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React57.createElement(SelectControl4, { options: positionOptions2, onChange }))));
|
|
3094
3388
|
};
|
|
3095
3389
|
|
|
3096
3390
|
// src/components/style-sections/size-section/object-position-field.tsx
|
|
3097
|
-
import * as
|
|
3391
|
+
import * as React58 from "react";
|
|
3098
3392
|
import { SelectControl as SelectControl5 } from "@elementor/editor-controls";
|
|
3099
3393
|
import { Grid as Grid14 } from "@elementor/ui";
|
|
3100
|
-
import { __ as
|
|
3394
|
+
import { __ as __32 } from "@wordpress/i18n";
|
|
3101
3395
|
var positionOptions3 = [
|
|
3102
|
-
{ label:
|
|
3103
|
-
{ label:
|
|
3104
|
-
{ label:
|
|
3105
|
-
{ label:
|
|
3106
|
-
{ label:
|
|
3107
|
-
{ label:
|
|
3108
|
-
{ label:
|
|
3109
|
-
{ label:
|
|
3110
|
-
{ label:
|
|
3396
|
+
{ label: __32("Center center", "elementor"), value: "center center" },
|
|
3397
|
+
{ label: __32("Center left", "elementor"), value: "center left" },
|
|
3398
|
+
{ label: __32("Center right", "elementor"), value: "center right" },
|
|
3399
|
+
{ label: __32("Top center", "elementor"), value: "top center" },
|
|
3400
|
+
{ label: __32("Top left", "elementor"), value: "top left" },
|
|
3401
|
+
{ label: __32("Top right", "elementor"), value: "top right" },
|
|
3402
|
+
{ label: __32("Bottom center", "elementor"), value: "bottom center" },
|
|
3403
|
+
{ label: __32("Bottom left", "elementor"), value: "bottom left" },
|
|
3404
|
+
{ label: __32("Bottom right", "elementor"), value: "bottom right" }
|
|
3111
3405
|
];
|
|
3112
3406
|
var ObjectPositionField = ({ onChange }) => {
|
|
3113
|
-
return /* @__PURE__ */
|
|
3407
|
+
return /* @__PURE__ */ React58.createElement(StylesField, { bind: "object-position" }, /* @__PURE__ */ React58.createElement(Grid14, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React58.createElement(Grid14, { item: true, xs: 6 }, /* @__PURE__ */ React58.createElement(ControlLabel, null, __32("Object position", "elementor"))), /* @__PURE__ */ React58.createElement(Grid14, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React58.createElement(SelectControl5, { options: positionOptions3, onChange }))));
|
|
3114
3408
|
};
|
|
3115
3409
|
|
|
3116
3410
|
// src/components/style-sections/size-section/overflow-field.tsx
|
|
3117
|
-
import * as
|
|
3411
|
+
import * as React59 from "react";
|
|
3118
3412
|
import { ToggleControl as ToggleControl8 } from "@elementor/editor-controls";
|
|
3119
3413
|
import { EyeIcon, EyeOffIcon, LetterAIcon } from "@elementor/icons";
|
|
3120
3414
|
import { Grid as Grid15 } from "@elementor/ui";
|
|
3121
|
-
import { __ as
|
|
3415
|
+
import { __ as __33 } from "@wordpress/i18n";
|
|
3122
3416
|
var options6 = [
|
|
3123
3417
|
{
|
|
3124
3418
|
value: "visible",
|
|
3125
|
-
label:
|
|
3126
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3419
|
+
label: __33("Visible", "elementor"),
|
|
3420
|
+
renderContent: ({ size }) => /* @__PURE__ */ React59.createElement(EyeIcon, { fontSize: size }),
|
|
3127
3421
|
showTooltip: true
|
|
3128
3422
|
},
|
|
3129
3423
|
{
|
|
3130
3424
|
value: "hidden",
|
|
3131
|
-
label:
|
|
3132
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3425
|
+
label: __33("Hidden", "elementor"),
|
|
3426
|
+
renderContent: ({ size }) => /* @__PURE__ */ React59.createElement(EyeOffIcon, { fontSize: size }),
|
|
3133
3427
|
showTooltip: true
|
|
3134
3428
|
},
|
|
3135
3429
|
{
|
|
3136
3430
|
value: "auto",
|
|
3137
|
-
label:
|
|
3138
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3431
|
+
label: __33("Auto", "elementor"),
|
|
3432
|
+
renderContent: ({ size }) => /* @__PURE__ */ React59.createElement(LetterAIcon, { fontSize: size }),
|
|
3139
3433
|
showTooltip: true
|
|
3140
3434
|
}
|
|
3141
3435
|
];
|
|
3142
3436
|
var OverflowField = () => {
|
|
3143
|
-
return /* @__PURE__ */
|
|
3437
|
+
return /* @__PURE__ */ React59.createElement(StylesField, { bind: "overflow" }, /* @__PURE__ */ React59.createElement(Grid15, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React59.createElement(Grid15, { item: true, xs: 6 }, /* @__PURE__ */ React59.createElement(ControlLabel, null, __33("Overflow", "elementor"))), /* @__PURE__ */ React59.createElement(Grid15, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React59.createElement(ToggleControl8, { options: options6 }))));
|
|
3144
3438
|
};
|
|
3145
3439
|
|
|
3146
3440
|
// src/components/style-sections/size-section/size-section.tsx
|
|
@@ -3155,78 +3449,78 @@ var SizeSection = () => {
|
|
|
3155
3449
|
});
|
|
3156
3450
|
}
|
|
3157
3451
|
};
|
|
3158
|
-
const isVersion330Active =
|
|
3159
|
-
return /* @__PURE__ */
|
|
3452
|
+
const isVersion330Active = isExperimentActive8("e_v_3_30");
|
|
3453
|
+
return /* @__PURE__ */ React60.createElement(SectionContent, null, /* @__PURE__ */ React60.createElement(Grid16, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React60.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React60.createElement(SizeField, { bind: "width", label: __34("Width", "elementor"), extendedValues: ["auto"] })), /* @__PURE__ */ React60.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React60.createElement(SizeField, { bind: "height", label: __34("Height", "elementor"), extendedValues: ["auto"] }))), /* @__PURE__ */ React60.createElement(Grid16, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React60.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React60.createElement(
|
|
3160
3454
|
SizeField,
|
|
3161
3455
|
{
|
|
3162
3456
|
bind: "min-width",
|
|
3163
|
-
label:
|
|
3457
|
+
label: __34("Min width", "elementor"),
|
|
3164
3458
|
extendedValues: ["auto"]
|
|
3165
3459
|
}
|
|
3166
|
-
)), /* @__PURE__ */
|
|
3460
|
+
)), /* @__PURE__ */ React60.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React60.createElement(
|
|
3167
3461
|
SizeField,
|
|
3168
3462
|
{
|
|
3169
3463
|
bind: "min-height",
|
|
3170
|
-
label:
|
|
3464
|
+
label: __34("Min height", "elementor"),
|
|
3171
3465
|
extendedValues: ["auto"]
|
|
3172
3466
|
}
|
|
3173
|
-
))), /* @__PURE__ */
|
|
3467
|
+
))), /* @__PURE__ */ React60.createElement(Grid16, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React60.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React60.createElement(SizeField, { bind: "max-width", label: __34("Max width", "elementor") })), /* @__PURE__ */ React60.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React60.createElement(SizeField, { bind: "max-height", label: __34("Max height", "elementor") }))), /* @__PURE__ */ React60.createElement(PanelDivider, null), /* @__PURE__ */ React60.createElement(Stack16, null, /* @__PURE__ */ React60.createElement(OverflowField, null)), isVersion330Active && /* @__PURE__ */ React60.createElement(CollapsibleContent, null, /* @__PURE__ */ React60.createElement(Stack16, { gap: 2 }, /* @__PURE__ */ React60.createElement(StylesField, { bind: "aspect-ratio" }, /* @__PURE__ */ React60.createElement(AspectRatioControl, { label: __34("Aspect Ratio", "elementor") })), /* @__PURE__ */ React60.createElement(PanelDivider, null), /* @__PURE__ */ React60.createElement(ObjectFitField, { onChange: onFitChange }), isNotFill && /* @__PURE__ */ React60.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React60.createElement(ObjectPositionField, null)))));
|
|
3174
3468
|
};
|
|
3175
3469
|
var SizeField = ({ label, bind, extendedValues }) => {
|
|
3176
|
-
return /* @__PURE__ */
|
|
3470
|
+
return /* @__PURE__ */ React60.createElement(StylesField, { bind }, /* @__PURE__ */ React60.createElement(Grid16, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React60.createElement(Grid16, { item: true, xs: 12 }, /* @__PURE__ */ React60.createElement(ControlLabel, null, label)), /* @__PURE__ */ React60.createElement(Grid16, { item: true, xs: 12 }, /* @__PURE__ */ React60.createElement(SizeControl5, { extendedValues }))));
|
|
3177
3471
|
};
|
|
3178
3472
|
|
|
3179
3473
|
// src/components/style-sections/spacing-section/spacing-section.tsx
|
|
3180
|
-
import * as
|
|
3474
|
+
import * as React61 from "react";
|
|
3181
3475
|
import { LinkedDimensionsControl } from "@elementor/editor-controls";
|
|
3182
|
-
import { __ as
|
|
3476
|
+
import { __ as __35 } from "@wordpress/i18n";
|
|
3183
3477
|
var SpacingSection = () => {
|
|
3184
3478
|
const { isSiteRtl } = useDirection();
|
|
3185
|
-
return /* @__PURE__ */
|
|
3479
|
+
return /* @__PURE__ */ React61.createElement(SectionContent, null, /* @__PURE__ */ React61.createElement(StylesField, { bind: "margin" }, /* @__PURE__ */ React61.createElement(
|
|
3186
3480
|
LinkedDimensionsControl,
|
|
3187
3481
|
{
|
|
3188
|
-
label:
|
|
3482
|
+
label: __35("Margin", "elementor"),
|
|
3189
3483
|
isSiteRtl,
|
|
3190
3484
|
extendedValues: ["auto"]
|
|
3191
3485
|
}
|
|
3192
|
-
)), /* @__PURE__ */
|
|
3486
|
+
)), /* @__PURE__ */ React61.createElement(PanelDivider, null), /* @__PURE__ */ React61.createElement(StylesField, { bind: "padding" }, /* @__PURE__ */ React61.createElement(LinkedDimensionsControl, { label: __35("Padding", "elementor"), isSiteRtl })));
|
|
3193
3487
|
};
|
|
3194
3488
|
|
|
3195
3489
|
// src/components/style-sections/typography-section/typography-section.tsx
|
|
3196
|
-
import * as
|
|
3197
|
-
import { isExperimentActive as
|
|
3490
|
+
import * as React77 from "react";
|
|
3491
|
+
import { isExperimentActive as isExperimentActive9 } from "@elementor/editor-v1-adapters";
|
|
3198
3492
|
|
|
3199
3493
|
// src/components/style-sections/typography-section/column-count-field.tsx
|
|
3200
|
-
import * as
|
|
3494
|
+
import * as React62 from "react";
|
|
3201
3495
|
import { NumberControl as NumberControl4 } from "@elementor/editor-controls";
|
|
3202
3496
|
import { Grid as Grid17 } from "@elementor/ui";
|
|
3203
|
-
import { __ as
|
|
3497
|
+
import { __ as __36 } from "@wordpress/i18n";
|
|
3204
3498
|
var ColumnCountField = () => {
|
|
3205
|
-
return /* @__PURE__ */
|
|
3499
|
+
return /* @__PURE__ */ React62.createElement(StylesField, { bind: "column-count" }, /* @__PURE__ */ React62.createElement(Grid17, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React62.createElement(Grid17, { item: true, xs: 6 }, /* @__PURE__ */ React62.createElement(ControlLabel, null, __36("Columns", "elementor"))), /* @__PURE__ */ React62.createElement(Grid17, { item: true, xs: 6 }, /* @__PURE__ */ React62.createElement(NumberControl4, { shouldForceInt: true, min: 0, step: 1 }))));
|
|
3206
3500
|
};
|
|
3207
3501
|
|
|
3208
3502
|
// src/components/style-sections/typography-section/column-gap-field.tsx
|
|
3209
|
-
import * as
|
|
3503
|
+
import * as React63 from "react";
|
|
3210
3504
|
import { SizeControl as SizeControl6 } from "@elementor/editor-controls";
|
|
3211
3505
|
import { Grid as Grid18 } from "@elementor/ui";
|
|
3212
|
-
import { __ as
|
|
3506
|
+
import { __ as __37 } from "@wordpress/i18n";
|
|
3213
3507
|
var ColumnGapField = () => {
|
|
3214
|
-
return /* @__PURE__ */
|
|
3508
|
+
return /* @__PURE__ */ React63.createElement(StylesField, { bind: "column-gap" }, /* @__PURE__ */ React63.createElement(Grid18, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React63.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React63.createElement(ControlLabel, null, __37("Column gap", "elementor"))), /* @__PURE__ */ React63.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React63.createElement(SizeControl6, null))));
|
|
3215
3509
|
};
|
|
3216
3510
|
|
|
3217
3511
|
// src/components/style-sections/typography-section/font-family-field.tsx
|
|
3218
|
-
import * as
|
|
3512
|
+
import * as React64 from "react";
|
|
3219
3513
|
import { FontFamilyControl } from "@elementor/editor-controls";
|
|
3220
3514
|
import { Grid as Grid19 } from "@elementor/ui";
|
|
3221
|
-
import { __ as
|
|
3515
|
+
import { __ as __39 } from "@wordpress/i18n";
|
|
3222
3516
|
|
|
3223
3517
|
// src/components/style-sections/typography-section/hooks/use-font-families.ts
|
|
3224
3518
|
import { useMemo as useMemo6 } from "react";
|
|
3225
|
-
import { __ as
|
|
3519
|
+
import { __ as __38 } from "@wordpress/i18n";
|
|
3226
3520
|
var supportedCategories = {
|
|
3227
|
-
system:
|
|
3228
|
-
custom:
|
|
3229
|
-
googlefonts:
|
|
3521
|
+
system: __38("System", "elementor"),
|
|
3522
|
+
custom: __38("Custom Fonts", "elementor"),
|
|
3523
|
+
googlefonts: __38("Google Fonts", "elementor")
|
|
3230
3524
|
};
|
|
3231
3525
|
var getFontFamilies = () => {
|
|
3232
3526
|
const { controls } = getElementorConfig();
|
|
@@ -3263,188 +3557,188 @@ var FontFamilyField = () => {
|
|
|
3263
3557
|
if (fontFamilies.length === 0) {
|
|
3264
3558
|
return null;
|
|
3265
3559
|
}
|
|
3266
|
-
return /* @__PURE__ */
|
|
3560
|
+
return /* @__PURE__ */ React64.createElement(StylesField, { bind: "font-family" }, /* @__PURE__ */ React64.createElement(Grid19, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React64.createElement(Grid19, { item: true, xs: 6 }, /* @__PURE__ */ React64.createElement(ControlLabel, null, __39("Font family", "elementor"))), /* @__PURE__ */ React64.createElement(Grid19, { item: true, xs: 6, sx: { minWidth: 0 } }, /* @__PURE__ */ React64.createElement(FontFamilyControl, { fontFamilies }))));
|
|
3267
3561
|
};
|
|
3268
3562
|
|
|
3269
3563
|
// src/components/style-sections/typography-section/font-size-field.tsx
|
|
3270
|
-
import * as
|
|
3564
|
+
import * as React65 from "react";
|
|
3271
3565
|
import { SizeControl as SizeControl7 } from "@elementor/editor-controls";
|
|
3272
3566
|
import { Grid as Grid20 } from "@elementor/ui";
|
|
3273
|
-
import { __ as
|
|
3567
|
+
import { __ as __40 } from "@wordpress/i18n";
|
|
3274
3568
|
var FontSizeField = () => {
|
|
3275
|
-
return /* @__PURE__ */
|
|
3569
|
+
return /* @__PURE__ */ React65.createElement(StylesField, { bind: "font-size" }, /* @__PURE__ */ React65.createElement(Grid20, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React65.createElement(Grid20, { item: true, xs: 6 }, /* @__PURE__ */ React65.createElement(ControlLabel, null, __40("Font size", "elementor"))), /* @__PURE__ */ React65.createElement(Grid20, { item: true, xs: 6 }, /* @__PURE__ */ React65.createElement(SizeControl7, null))));
|
|
3276
3570
|
};
|
|
3277
3571
|
|
|
3278
3572
|
// src/components/style-sections/typography-section/font-style-field.tsx
|
|
3279
|
-
import * as
|
|
3573
|
+
import * as React66 from "react";
|
|
3280
3574
|
import { ControlFormLabel as ControlFormLabel4, ToggleControl as ToggleControl9 } from "@elementor/editor-controls";
|
|
3281
3575
|
import { ItalicIcon, MinusIcon as MinusIcon2 } from "@elementor/icons";
|
|
3282
3576
|
import { Grid as Grid21 } from "@elementor/ui";
|
|
3283
|
-
import { __ as
|
|
3577
|
+
import { __ as __41 } from "@wordpress/i18n";
|
|
3284
3578
|
var options7 = [
|
|
3285
3579
|
{
|
|
3286
3580
|
value: "normal",
|
|
3287
|
-
label:
|
|
3288
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3581
|
+
label: __41("Normal", "elementor"),
|
|
3582
|
+
renderContent: ({ size }) => /* @__PURE__ */ React66.createElement(MinusIcon2, { fontSize: size }),
|
|
3289
3583
|
showTooltip: true
|
|
3290
3584
|
},
|
|
3291
3585
|
{
|
|
3292
3586
|
value: "italic",
|
|
3293
|
-
label:
|
|
3294
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3587
|
+
label: __41("Italic", "elementor"),
|
|
3588
|
+
renderContent: ({ size }) => /* @__PURE__ */ React66.createElement(ItalicIcon, { fontSize: size }),
|
|
3295
3589
|
showTooltip: true
|
|
3296
3590
|
}
|
|
3297
3591
|
];
|
|
3298
|
-
var FontStyleField = () => /* @__PURE__ */
|
|
3592
|
+
var FontStyleField = () => /* @__PURE__ */ React66.createElement(StylesField, { bind: "font-style" }, /* @__PURE__ */ React66.createElement(Grid21, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React66.createElement(Grid21, { item: true, xs: 6 }, /* @__PURE__ */ React66.createElement(ControlFormLabel4, null, __41("Font style", "elementor"))), /* @__PURE__ */ React66.createElement(Grid21, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React66.createElement(ToggleControl9, { options: options7 }))));
|
|
3299
3593
|
|
|
3300
3594
|
// src/components/style-sections/typography-section/font-weight-field.tsx
|
|
3301
|
-
import * as
|
|
3595
|
+
import * as React67 from "react";
|
|
3302
3596
|
import { SelectControl as SelectControl6 } from "@elementor/editor-controls";
|
|
3303
3597
|
import { Grid as Grid22 } from "@elementor/ui";
|
|
3304
|
-
import { __ as
|
|
3598
|
+
import { __ as __42 } from "@wordpress/i18n";
|
|
3305
3599
|
var fontWeightOptions = [
|
|
3306
|
-
{ value: "100", label:
|
|
3307
|
-
{ value: "200", label:
|
|
3308
|
-
{ value: "300", label:
|
|
3309
|
-
{ value: "400", label:
|
|
3310
|
-
{ value: "500", label:
|
|
3311
|
-
{ value: "600", label:
|
|
3312
|
-
{ value: "700", label:
|
|
3313
|
-
{ value: "800", label:
|
|
3314
|
-
{ value: "900", label:
|
|
3600
|
+
{ value: "100", label: __42("100 - Thin", "elementor") },
|
|
3601
|
+
{ value: "200", label: __42("200 - Extra light", "elementor") },
|
|
3602
|
+
{ value: "300", label: __42("300 - Light", "elementor") },
|
|
3603
|
+
{ value: "400", label: __42("400 - Normal", "elementor") },
|
|
3604
|
+
{ value: "500", label: __42("500 - Medium", "elementor") },
|
|
3605
|
+
{ value: "600", label: __42("600 - Semi bold", "elementor") },
|
|
3606
|
+
{ value: "700", label: __42("700 - Bold", "elementor") },
|
|
3607
|
+
{ value: "800", label: __42("800 - Extra bold", "elementor") },
|
|
3608
|
+
{ value: "900", label: __42("900 - Black", "elementor") }
|
|
3315
3609
|
];
|
|
3316
3610
|
var FontWeightField = () => {
|
|
3317
|
-
return /* @__PURE__ */
|
|
3611
|
+
return /* @__PURE__ */ React67.createElement(StylesField, { bind: "font-weight" }, /* @__PURE__ */ React67.createElement(Grid22, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React67.createElement(Grid22, { item: true, xs: 6 }, /* @__PURE__ */ React67.createElement(ControlLabel, null, __42("Font weight", "elementor"))), /* @__PURE__ */ React67.createElement(Grid22, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React67.createElement(SelectControl6, { options: fontWeightOptions }))));
|
|
3318
3612
|
};
|
|
3319
3613
|
|
|
3320
3614
|
// src/components/style-sections/typography-section/letter-spacing-field.tsx
|
|
3321
|
-
import * as
|
|
3615
|
+
import * as React68 from "react";
|
|
3322
3616
|
import { SizeControl as SizeControl8 } from "@elementor/editor-controls";
|
|
3323
3617
|
import { Grid as Grid23 } from "@elementor/ui";
|
|
3324
|
-
import { __ as
|
|
3618
|
+
import { __ as __43 } from "@wordpress/i18n";
|
|
3325
3619
|
var LetterSpacingField = () => {
|
|
3326
|
-
return /* @__PURE__ */
|
|
3620
|
+
return /* @__PURE__ */ React68.createElement(StylesField, { bind: "letter-spacing" }, /* @__PURE__ */ React68.createElement(Grid23, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React68.createElement(Grid23, { item: true, xs: 6 }, /* @__PURE__ */ React68.createElement(ControlLabel, null, __43("Letter spacing", "elementor"))), /* @__PURE__ */ React68.createElement(Grid23, { item: true, xs: 6 }, /* @__PURE__ */ React68.createElement(SizeControl8, null))));
|
|
3327
3621
|
};
|
|
3328
3622
|
|
|
3329
3623
|
// src/components/style-sections/typography-section/line-height-field.tsx
|
|
3330
|
-
import * as
|
|
3624
|
+
import * as React69 from "react";
|
|
3331
3625
|
import { SizeControl as SizeControl9 } from "@elementor/editor-controls";
|
|
3332
3626
|
import { Grid as Grid24 } from "@elementor/ui";
|
|
3333
|
-
import { __ as
|
|
3627
|
+
import { __ as __44 } from "@wordpress/i18n";
|
|
3334
3628
|
var LineHeightField = () => {
|
|
3335
|
-
return /* @__PURE__ */
|
|
3629
|
+
return /* @__PURE__ */ React69.createElement(StylesField, { bind: "line-height" }, /* @__PURE__ */ React69.createElement(Grid24, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React69.createElement(Grid24, { item: true, xs: 6 }, /* @__PURE__ */ React69.createElement(ControlLabel, null, __44("Line height", "elementor"))), /* @__PURE__ */ React69.createElement(Grid24, { item: true, xs: 6 }, /* @__PURE__ */ React69.createElement(SizeControl9, null))));
|
|
3336
3630
|
};
|
|
3337
3631
|
|
|
3338
3632
|
// src/components/style-sections/typography-section/text-alignment-field.tsx
|
|
3339
|
-
import * as
|
|
3633
|
+
import * as React70 from "react";
|
|
3340
3634
|
import { ToggleControl as ToggleControl10 } from "@elementor/editor-controls";
|
|
3341
3635
|
import { AlignCenterIcon, AlignJustifiedIcon, AlignLeftIcon, AlignRightIcon } from "@elementor/icons";
|
|
3342
3636
|
import { Grid as Grid25, withDirection as withDirection9 } from "@elementor/ui";
|
|
3343
|
-
import { __ as
|
|
3637
|
+
import { __ as __45 } from "@wordpress/i18n";
|
|
3344
3638
|
var AlignStartIcon = withDirection9(AlignLeftIcon);
|
|
3345
3639
|
var AlignEndIcon = withDirection9(AlignRightIcon);
|
|
3346
3640
|
var options8 = [
|
|
3347
3641
|
{
|
|
3348
3642
|
value: "start",
|
|
3349
|
-
label:
|
|
3350
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3643
|
+
label: __45("Start", "elementor"),
|
|
3644
|
+
renderContent: ({ size }) => /* @__PURE__ */ React70.createElement(AlignStartIcon, { fontSize: size }),
|
|
3351
3645
|
showTooltip: true
|
|
3352
3646
|
},
|
|
3353
3647
|
{
|
|
3354
3648
|
value: "center",
|
|
3355
|
-
label:
|
|
3356
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3649
|
+
label: __45("Center", "elementor"),
|
|
3650
|
+
renderContent: ({ size }) => /* @__PURE__ */ React70.createElement(AlignCenterIcon, { fontSize: size }),
|
|
3357
3651
|
showTooltip: true
|
|
3358
3652
|
},
|
|
3359
3653
|
{
|
|
3360
3654
|
value: "end",
|
|
3361
|
-
label:
|
|
3362
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3655
|
+
label: __45("End", "elementor"),
|
|
3656
|
+
renderContent: ({ size }) => /* @__PURE__ */ React70.createElement(AlignEndIcon, { fontSize: size }),
|
|
3363
3657
|
showTooltip: true
|
|
3364
3658
|
},
|
|
3365
3659
|
{
|
|
3366
3660
|
value: "justify",
|
|
3367
|
-
label:
|
|
3368
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3661
|
+
label: __45("Justify", "elementor"),
|
|
3662
|
+
renderContent: ({ size }) => /* @__PURE__ */ React70.createElement(AlignJustifiedIcon, { fontSize: size }),
|
|
3369
3663
|
showTooltip: true
|
|
3370
3664
|
}
|
|
3371
3665
|
];
|
|
3372
3666
|
var TextAlignmentField = () => {
|
|
3373
|
-
return /* @__PURE__ */
|
|
3667
|
+
return /* @__PURE__ */ React70.createElement(StylesField, { bind: "text-align" }, /* @__PURE__ */ React70.createElement(Grid25, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React70.createElement(Grid25, { item: true, xs: 6 }, /* @__PURE__ */ React70.createElement(ControlLabel, null, __45("Text align", "elementor"))), /* @__PURE__ */ React70.createElement(Grid25, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React70.createElement(ToggleControl10, { options: options8 }))));
|
|
3374
3668
|
};
|
|
3375
3669
|
|
|
3376
3670
|
// src/components/style-sections/typography-section/text-color-field.tsx
|
|
3377
|
-
import * as
|
|
3671
|
+
import * as React71 from "react";
|
|
3378
3672
|
import { ColorControl as ColorControl2 } from "@elementor/editor-controls";
|
|
3379
3673
|
import { Grid as Grid26 } from "@elementor/ui";
|
|
3380
|
-
import { __ as
|
|
3674
|
+
import { __ as __46 } from "@wordpress/i18n";
|
|
3381
3675
|
var TextColorField = () => {
|
|
3382
|
-
return /* @__PURE__ */
|
|
3676
|
+
return /* @__PURE__ */ React71.createElement(StylesField, { bind: "color" }, /* @__PURE__ */ React71.createElement(Grid26, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React71.createElement(Grid26, { item: true, xs: 6 }, /* @__PURE__ */ React71.createElement(ControlLabel, null, __46("Text color", "elementor"))), /* @__PURE__ */ React71.createElement(Grid26, { item: true, xs: 6 }, /* @__PURE__ */ React71.createElement(ColorControl2, null))));
|
|
3383
3677
|
};
|
|
3384
3678
|
|
|
3385
3679
|
// src/components/style-sections/typography-section/text-decoration-field.tsx
|
|
3386
|
-
import * as
|
|
3680
|
+
import * as React72 from "react";
|
|
3387
3681
|
import { ToggleControl as ToggleControl11 } from "@elementor/editor-controls";
|
|
3388
3682
|
import { MinusIcon as MinusIcon3, OverlineIcon, StrikethroughIcon, UnderlineIcon } from "@elementor/icons";
|
|
3389
3683
|
import { Grid as Grid27 } from "@elementor/ui";
|
|
3390
|
-
import { __ as
|
|
3684
|
+
import { __ as __47 } from "@wordpress/i18n";
|
|
3391
3685
|
var options9 = [
|
|
3392
3686
|
{
|
|
3393
3687
|
value: "none",
|
|
3394
|
-
label:
|
|
3395
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3688
|
+
label: __47("None", "elementor"),
|
|
3689
|
+
renderContent: ({ size }) => /* @__PURE__ */ React72.createElement(MinusIcon3, { fontSize: size }),
|
|
3396
3690
|
showTooltip: true,
|
|
3397
3691
|
exclusive: true
|
|
3398
3692
|
},
|
|
3399
3693
|
{
|
|
3400
3694
|
value: "underline",
|
|
3401
|
-
label:
|
|
3402
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3695
|
+
label: __47("Underline", "elementor"),
|
|
3696
|
+
renderContent: ({ size }) => /* @__PURE__ */ React72.createElement(UnderlineIcon, { fontSize: size }),
|
|
3403
3697
|
showTooltip: true
|
|
3404
3698
|
},
|
|
3405
3699
|
{
|
|
3406
3700
|
value: "line-through",
|
|
3407
|
-
label:
|
|
3408
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3701
|
+
label: __47("Line-through", "elementor"),
|
|
3702
|
+
renderContent: ({ size }) => /* @__PURE__ */ React72.createElement(StrikethroughIcon, { fontSize: size }),
|
|
3409
3703
|
showTooltip: true
|
|
3410
3704
|
},
|
|
3411
3705
|
{
|
|
3412
3706
|
value: "overline",
|
|
3413
|
-
label:
|
|
3414
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3707
|
+
label: __47("Overline", "elementor"),
|
|
3708
|
+
renderContent: ({ size }) => /* @__PURE__ */ React72.createElement(OverlineIcon, { fontSize: size }),
|
|
3415
3709
|
showTooltip: true
|
|
3416
3710
|
}
|
|
3417
3711
|
];
|
|
3418
|
-
var TextDecorationField = () => /* @__PURE__ */
|
|
3712
|
+
var TextDecorationField = () => /* @__PURE__ */ React72.createElement(StylesField, { bind: "text-decoration" }, /* @__PURE__ */ React72.createElement(Grid27, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React72.createElement(Grid27, { item: true, xs: 6 }, /* @__PURE__ */ React72.createElement(ControlLabel, null, __47("Line decoration", "elementor"))), /* @__PURE__ */ React72.createElement(Grid27, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React72.createElement(ToggleControl11, { options: options9, exclusive: false }))));
|
|
3419
3713
|
|
|
3420
3714
|
// src/components/style-sections/typography-section/text-direction-field.tsx
|
|
3421
|
-
import * as
|
|
3715
|
+
import * as React73 from "react";
|
|
3422
3716
|
import { ToggleControl as ToggleControl12 } from "@elementor/editor-controls";
|
|
3423
3717
|
import { TextDirectionLtrIcon, TextDirectionRtlIcon } from "@elementor/icons";
|
|
3424
3718
|
import { Grid as Grid28 } from "@elementor/ui";
|
|
3425
|
-
import { __ as
|
|
3719
|
+
import { __ as __48 } from "@wordpress/i18n";
|
|
3426
3720
|
var options10 = [
|
|
3427
3721
|
{
|
|
3428
3722
|
value: "ltr",
|
|
3429
|
-
label:
|
|
3430
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3723
|
+
label: __48("Left to right", "elementor"),
|
|
3724
|
+
renderContent: ({ size }) => /* @__PURE__ */ React73.createElement(TextDirectionLtrIcon, { fontSize: size }),
|
|
3431
3725
|
showTooltip: true
|
|
3432
3726
|
},
|
|
3433
3727
|
{
|
|
3434
3728
|
value: "rtl",
|
|
3435
|
-
label:
|
|
3436
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3729
|
+
label: __48("Right to left", "elementor"),
|
|
3730
|
+
renderContent: ({ size }) => /* @__PURE__ */ React73.createElement(TextDirectionRtlIcon, { fontSize: size }),
|
|
3437
3731
|
showTooltip: true
|
|
3438
3732
|
}
|
|
3439
3733
|
];
|
|
3440
3734
|
var TextDirectionField = () => {
|
|
3441
|
-
return /* @__PURE__ */
|
|
3735
|
+
return /* @__PURE__ */ React73.createElement(StylesField, { bind: "direction" }, /* @__PURE__ */ React73.createElement(Grid28, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React73.createElement(Grid28, { item: true, xs: 6 }, /* @__PURE__ */ React73.createElement(ControlLabel, null, __48("Direction", "elementor"))), /* @__PURE__ */ React73.createElement(Grid28, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React73.createElement(ToggleControl12, { options: options10 }))));
|
|
3442
3736
|
};
|
|
3443
3737
|
|
|
3444
3738
|
// src/components/style-sections/typography-section/text-stroke-field.tsx
|
|
3445
|
-
import * as
|
|
3739
|
+
import * as React74 from "react";
|
|
3446
3740
|
import { StrokeControl } from "@elementor/editor-controls";
|
|
3447
|
-
import { __ as
|
|
3741
|
+
import { __ as __49 } from "@wordpress/i18n";
|
|
3448
3742
|
var initTextStroke = {
|
|
3449
3743
|
$$type: "stroke",
|
|
3450
3744
|
value: {
|
|
@@ -3462,6 +3756,7 @@ var initTextStroke = {
|
|
|
3462
3756
|
}
|
|
3463
3757
|
};
|
|
3464
3758
|
var TextStrokeField = () => {
|
|
3759
|
+
const { canEdit } = useStyle();
|
|
3465
3760
|
const [textStroke, setTextStroke] = useStylesField("stroke");
|
|
3466
3761
|
const addTextStroke = () => {
|
|
3467
3762
|
setTextStroke(initTextStroke);
|
|
@@ -3470,67 +3765,68 @@ var TextStrokeField = () => {
|
|
|
3470
3765
|
setTextStroke(null);
|
|
3471
3766
|
};
|
|
3472
3767
|
const hasTextStroke = Boolean(textStroke);
|
|
3473
|
-
return /* @__PURE__ */
|
|
3768
|
+
return /* @__PURE__ */ React74.createElement(StylesField, { bind: "stroke" }, /* @__PURE__ */ React74.createElement(
|
|
3474
3769
|
AddOrRemoveContent,
|
|
3475
3770
|
{
|
|
3476
|
-
label:
|
|
3771
|
+
label: __49("Text stroke", "elementor"),
|
|
3477
3772
|
isAdded: hasTextStroke,
|
|
3478
3773
|
onAdd: addTextStroke,
|
|
3479
|
-
onRemove: removeTextStroke
|
|
3774
|
+
onRemove: removeTextStroke,
|
|
3775
|
+
disabled: !canEdit
|
|
3480
3776
|
},
|
|
3481
|
-
/* @__PURE__ */
|
|
3777
|
+
/* @__PURE__ */ React74.createElement(StrokeControl, null)
|
|
3482
3778
|
));
|
|
3483
3779
|
};
|
|
3484
3780
|
|
|
3485
3781
|
// src/components/style-sections/typography-section/transform-field.tsx
|
|
3486
|
-
import * as
|
|
3782
|
+
import * as React75 from "react";
|
|
3487
3783
|
import { ToggleControl as ToggleControl13 } from "@elementor/editor-controls";
|
|
3488
3784
|
import { LetterCaseIcon, LetterCaseLowerIcon, LetterCaseUpperIcon, MinusIcon as MinusIcon4 } from "@elementor/icons";
|
|
3489
3785
|
import { Grid as Grid29 } from "@elementor/ui";
|
|
3490
|
-
import { __ as
|
|
3786
|
+
import { __ as __50 } from "@wordpress/i18n";
|
|
3491
3787
|
var options11 = [
|
|
3492
3788
|
{
|
|
3493
3789
|
value: "none",
|
|
3494
|
-
label:
|
|
3495
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3790
|
+
label: __50("None", "elementor"),
|
|
3791
|
+
renderContent: ({ size }) => /* @__PURE__ */ React75.createElement(MinusIcon4, { fontSize: size }),
|
|
3496
3792
|
showTooltip: true
|
|
3497
3793
|
},
|
|
3498
3794
|
{
|
|
3499
3795
|
value: "capitalize",
|
|
3500
|
-
label:
|
|
3501
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3796
|
+
label: __50("Capitalize", "elementor"),
|
|
3797
|
+
renderContent: ({ size }) => /* @__PURE__ */ React75.createElement(LetterCaseIcon, { fontSize: size }),
|
|
3502
3798
|
showTooltip: true
|
|
3503
3799
|
},
|
|
3504
3800
|
{
|
|
3505
3801
|
value: "uppercase",
|
|
3506
|
-
label:
|
|
3507
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3802
|
+
label: __50("Uppercase", "elementor"),
|
|
3803
|
+
renderContent: ({ size }) => /* @__PURE__ */ React75.createElement(LetterCaseUpperIcon, { fontSize: size }),
|
|
3508
3804
|
showTooltip: true
|
|
3509
3805
|
},
|
|
3510
3806
|
{
|
|
3511
3807
|
value: "lowercase",
|
|
3512
|
-
label:
|
|
3513
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3808
|
+
label: __50("Lowercase", "elementor"),
|
|
3809
|
+
renderContent: ({ size }) => /* @__PURE__ */ React75.createElement(LetterCaseLowerIcon, { fontSize: size }),
|
|
3514
3810
|
showTooltip: true
|
|
3515
3811
|
}
|
|
3516
3812
|
];
|
|
3517
|
-
var TransformField = () => /* @__PURE__ */
|
|
3813
|
+
var TransformField = () => /* @__PURE__ */ React75.createElement(StylesField, { bind: "text-transform" }, /* @__PURE__ */ React75.createElement(Grid29, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React75.createElement(Grid29, { item: true, xs: 6 }, /* @__PURE__ */ React75.createElement(ControlLabel, null, __50("Text transform", "elementor"))), /* @__PURE__ */ React75.createElement(Grid29, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React75.createElement(ToggleControl13, { options: options11 }))));
|
|
3518
3814
|
|
|
3519
3815
|
// src/components/style-sections/typography-section/word-spacing-field.tsx
|
|
3520
|
-
import * as
|
|
3816
|
+
import * as React76 from "react";
|
|
3521
3817
|
import { SizeControl as SizeControl10 } from "@elementor/editor-controls";
|
|
3522
3818
|
import { Grid as Grid30 } from "@elementor/ui";
|
|
3523
|
-
import { __ as
|
|
3819
|
+
import { __ as __51 } from "@wordpress/i18n";
|
|
3524
3820
|
var WordSpacingField = () => {
|
|
3525
|
-
return /* @__PURE__ */
|
|
3821
|
+
return /* @__PURE__ */ React76.createElement(StylesField, { bind: "word-spacing" }, /* @__PURE__ */ React76.createElement(Grid30, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React76.createElement(Grid30, { item: true, xs: 6 }, /* @__PURE__ */ React76.createElement(ControlLabel, null, __51("Word spacing", "elementor"))), /* @__PURE__ */ React76.createElement(Grid30, { item: true, xs: 6 }, /* @__PURE__ */ React76.createElement(SizeControl10, null))));
|
|
3526
3822
|
};
|
|
3527
3823
|
|
|
3528
3824
|
// src/components/style-sections/typography-section/typography-section.tsx
|
|
3529
3825
|
var TypographySection = () => {
|
|
3530
3826
|
const [columnCount] = useStylesField("column-count");
|
|
3531
|
-
const isVersion330Active =
|
|
3827
|
+
const isVersion330Active = isExperimentActive9("e_v_3_30");
|
|
3532
3828
|
const hasMultiColumns = !!(columnCount?.value && columnCount?.value > 1);
|
|
3533
|
-
return /* @__PURE__ */
|
|
3829
|
+
return /* @__PURE__ */ React77.createElement(SectionContent, null, /* @__PURE__ */ React77.createElement(FontFamilyField, null), /* @__PURE__ */ React77.createElement(FontWeightField, null), /* @__PURE__ */ React77.createElement(FontSizeField, null), /* @__PURE__ */ React77.createElement(PanelDivider, null), /* @__PURE__ */ React77.createElement(TextAlignmentField, null), /* @__PURE__ */ React77.createElement(TextColorField, null), /* @__PURE__ */ React77.createElement(CollapsibleContent, null, /* @__PURE__ */ React77.createElement(SectionContent, { sx: { pt: 2 } }, /* @__PURE__ */ React77.createElement(LineHeightField, null), /* @__PURE__ */ React77.createElement(LetterSpacingField, null), /* @__PURE__ */ React77.createElement(WordSpacingField, null), isVersion330Active && /* @__PURE__ */ React77.createElement(React77.Fragment, null, /* @__PURE__ */ React77.createElement(ColumnCountField, null), hasMultiColumns && /* @__PURE__ */ React77.createElement(ColumnGapField, null)), /* @__PURE__ */ React77.createElement(PanelDivider, null), /* @__PURE__ */ React77.createElement(TextDecorationField, null), /* @__PURE__ */ React77.createElement(TransformField, null), /* @__PURE__ */ React77.createElement(TextDirectionField, null), /* @__PURE__ */ React77.createElement(FontStyleField, null), /* @__PURE__ */ React77.createElement(TextStrokeField, null))));
|
|
3534
3830
|
};
|
|
3535
3831
|
|
|
3536
3832
|
// src/components/style-tab.tsx
|
|
@@ -3546,15 +3842,15 @@ var PanelSection = ({ section }) => {
|
|
|
3546
3842
|
const { component, name, title } = section;
|
|
3547
3843
|
const tabDefaults = useDefaultPanelSettings();
|
|
3548
3844
|
const SectionComponent = component;
|
|
3549
|
-
const isExpanded =
|
|
3550
|
-
return /* @__PURE__ */
|
|
3845
|
+
const isExpanded = isExperimentActive10(EXPERIMENTAL_FEATURES.V_3_30) ? tabDefaults.defaultSectionsExpanded.style?.includes(name) : false;
|
|
3846
|
+
return /* @__PURE__ */ React78.createElement(Section, { title, defaultExpanded: isExpanded }, /* @__PURE__ */ React78.createElement(SectionComponent, null));
|
|
3551
3847
|
};
|
|
3552
3848
|
var StyleTab = () => {
|
|
3553
3849
|
const currentClassesProp = useCurrentClassesProp();
|
|
3554
3850
|
const [activeStyleDefId, setActiveStyleDefId] = useActiveStyleDefId(currentClassesProp);
|
|
3555
3851
|
const [activeStyleState, setActiveStyleState] = useState12(null);
|
|
3556
3852
|
const breakpoint = useActiveBreakpoint();
|
|
3557
|
-
return /* @__PURE__ */
|
|
3853
|
+
return /* @__PURE__ */ React78.createElement(ClassesPropProvider, { prop: currentClassesProp }, /* @__PURE__ */ React78.createElement(
|
|
3558
3854
|
StyleProvider,
|
|
3559
3855
|
{
|
|
3560
3856
|
meta: { breakpoint, state: activeStyleState },
|
|
@@ -3565,76 +3861,76 @@ var StyleTab = () => {
|
|
|
3565
3861
|
},
|
|
3566
3862
|
setMetaState: setActiveStyleState
|
|
3567
3863
|
},
|
|
3568
|
-
/* @__PURE__ */
|
|
3864
|
+
/* @__PURE__ */ React78.createElement(SessionStorageProvider2, { prefix: activeStyleDefId ?? "" }, /* @__PURE__ */ React78.createElement(StyleInheritanceProvider, null, /* @__PURE__ */ React78.createElement(ClassesHeader, null, /* @__PURE__ */ React78.createElement(CssClassSelector, null), /* @__PURE__ */ React78.createElement(Divider5, null)), /* @__PURE__ */ React78.createElement(SectionsList, null, /* @__PURE__ */ React78.createElement(
|
|
3569
3865
|
PanelSection,
|
|
3570
3866
|
{
|
|
3571
3867
|
section: {
|
|
3572
3868
|
component: LayoutSection,
|
|
3573
3869
|
name: "Layout",
|
|
3574
|
-
title:
|
|
3870
|
+
title: __52("Layout", "elementor")
|
|
3575
3871
|
}
|
|
3576
3872
|
}
|
|
3577
|
-
), /* @__PURE__ */
|
|
3873
|
+
), /* @__PURE__ */ React78.createElement(
|
|
3578
3874
|
PanelSection,
|
|
3579
3875
|
{
|
|
3580
3876
|
section: {
|
|
3581
3877
|
component: SpacingSection,
|
|
3582
3878
|
name: "Spacing",
|
|
3583
|
-
title:
|
|
3879
|
+
title: __52("Spacing", "elementor")
|
|
3584
3880
|
}
|
|
3585
3881
|
}
|
|
3586
|
-
), /* @__PURE__ */
|
|
3882
|
+
), /* @__PURE__ */ React78.createElement(
|
|
3587
3883
|
PanelSection,
|
|
3588
3884
|
{
|
|
3589
3885
|
section: {
|
|
3590
3886
|
component: SizeSection,
|
|
3591
3887
|
name: "Size",
|
|
3592
|
-
title:
|
|
3888
|
+
title: __52("Size", "elementor")
|
|
3593
3889
|
}
|
|
3594
3890
|
}
|
|
3595
|
-
), /* @__PURE__ */
|
|
3891
|
+
), /* @__PURE__ */ React78.createElement(
|
|
3596
3892
|
PanelSection,
|
|
3597
3893
|
{
|
|
3598
3894
|
section: {
|
|
3599
3895
|
component: PositionSection,
|
|
3600
3896
|
name: "Position",
|
|
3601
|
-
title:
|
|
3897
|
+
title: __52("Position", "elementor")
|
|
3602
3898
|
}
|
|
3603
3899
|
}
|
|
3604
|
-
), /* @__PURE__ */
|
|
3900
|
+
), /* @__PURE__ */ React78.createElement(
|
|
3605
3901
|
PanelSection,
|
|
3606
3902
|
{
|
|
3607
3903
|
section: {
|
|
3608
3904
|
component: TypographySection,
|
|
3609
3905
|
name: "Typography",
|
|
3610
|
-
title:
|
|
3906
|
+
title: __52("Typography", "elementor")
|
|
3611
3907
|
}
|
|
3612
3908
|
}
|
|
3613
|
-
), /* @__PURE__ */
|
|
3909
|
+
), /* @__PURE__ */ React78.createElement(
|
|
3614
3910
|
PanelSection,
|
|
3615
3911
|
{
|
|
3616
3912
|
section: {
|
|
3617
3913
|
component: BackgroundSection,
|
|
3618
3914
|
name: "Background",
|
|
3619
|
-
title:
|
|
3915
|
+
title: __52("Background", "elementor")
|
|
3620
3916
|
}
|
|
3621
3917
|
}
|
|
3622
|
-
), /* @__PURE__ */
|
|
3918
|
+
), /* @__PURE__ */ React78.createElement(
|
|
3623
3919
|
PanelSection,
|
|
3624
3920
|
{
|
|
3625
3921
|
section: {
|
|
3626
3922
|
component: BorderSection,
|
|
3627
3923
|
name: "Border",
|
|
3628
|
-
title:
|
|
3924
|
+
title: __52("Border", "elementor")
|
|
3629
3925
|
}
|
|
3630
3926
|
}
|
|
3631
|
-
), /* @__PURE__ */
|
|
3927
|
+
), /* @__PURE__ */ React78.createElement(
|
|
3632
3928
|
PanelSection,
|
|
3633
3929
|
{
|
|
3634
3930
|
section: {
|
|
3635
3931
|
component: EffectsSection,
|
|
3636
3932
|
name: "Effects",
|
|
3637
|
-
title:
|
|
3933
|
+
title: __52("Effects", "elementor")
|
|
3638
3934
|
}
|
|
3639
3935
|
}
|
|
3640
3936
|
))))
|
|
@@ -3642,7 +3938,7 @@ var StyleTab = () => {
|
|
|
3642
3938
|
};
|
|
3643
3939
|
function ClassesHeader({ children }) {
|
|
3644
3940
|
const scrollDirection = useScrollDirection();
|
|
3645
|
-
return /* @__PURE__ */
|
|
3941
|
+
return /* @__PURE__ */ React78.createElement(Stack17, { sx: { ...stickyHeaderStyles, top: scrollDirection === "up" ? TABS_HEADER_HEIGHT : 0 } }, children);
|
|
3646
3942
|
}
|
|
3647
3943
|
function useCurrentClassesProp() {
|
|
3648
3944
|
const { elementType } = useElement();
|
|
@@ -3661,15 +3957,15 @@ var EditingPanelTabs = () => {
|
|
|
3661
3957
|
return (
|
|
3662
3958
|
// When switching between elements, the local states should be reset. We are using key to rerender the tabs.
|
|
3663
3959
|
// Reference: https://react.dev/learn/preserving-and-resetting-state#resetting-a-form-with-a-key
|
|
3664
|
-
/* @__PURE__ */
|
|
3960
|
+
/* @__PURE__ */ React79.createElement(Fragment9, { key: element.id }, /* @__PURE__ */ React79.createElement(PanelTabContent, null))
|
|
3665
3961
|
);
|
|
3666
3962
|
};
|
|
3667
3963
|
var PanelTabContent = () => {
|
|
3668
3964
|
const editorDefaults = useDefaultPanelSettings();
|
|
3669
|
-
const defaultComponentTab =
|
|
3965
|
+
const defaultComponentTab = isExperimentActive11(EXPERIMENTAL_FEATURES.V_3_30) ? editorDefaults.defaultTab : "settings";
|
|
3670
3966
|
const [currentTab, setCurrentTab] = useStateByElement("tab", defaultComponentTab);
|
|
3671
3967
|
const { getTabProps, getTabPanelProps, getTabsProps } = useTabs(currentTab);
|
|
3672
|
-
return /* @__PURE__ */
|
|
3968
|
+
return /* @__PURE__ */ React79.createElement(ScrollProvider, null, /* @__PURE__ */ React79.createElement(Stack18, { direction: "column", sx: { width: "100%" } }, /* @__PURE__ */ React79.createElement(Stack18, { sx: { ...stickyHeaderStyles, top: 0 } }, /* @__PURE__ */ React79.createElement(
|
|
3673
3969
|
Tabs,
|
|
3674
3970
|
{
|
|
3675
3971
|
variant: "fullWidth",
|
|
@@ -3681,9 +3977,9 @@ var PanelTabContent = () => {
|
|
|
3681
3977
|
setCurrentTab(newValue);
|
|
3682
3978
|
}
|
|
3683
3979
|
},
|
|
3684
|
-
/* @__PURE__ */
|
|
3685
|
-
/* @__PURE__ */
|
|
3686
|
-
), /* @__PURE__ */
|
|
3980
|
+
/* @__PURE__ */ React79.createElement(Tab, { label: __53("General", "elementor"), ...getTabProps("settings") }),
|
|
3981
|
+
/* @__PURE__ */ React79.createElement(Tab, { label: __53("Style", "elementor"), ...getTabProps("style") })
|
|
3982
|
+
), /* @__PURE__ */ React79.createElement(Divider6, null)), /* @__PURE__ */ React79.createElement(TabPanel, { ...getTabPanelProps("settings"), disablePadding: true }, /* @__PURE__ */ React79.createElement(SettingsTab, null)), /* @__PURE__ */ React79.createElement(TabPanel, { ...getTabPanelProps("style"), disablePadding: true }, /* @__PURE__ */ React79.createElement(StyleTab, null))));
|
|
3687
3983
|
};
|
|
3688
3984
|
|
|
3689
3985
|
// src/components/editing-panel.tsx
|
|
@@ -3695,8 +3991,8 @@ var EditingPanel = () => {
|
|
|
3695
3991
|
if (!element || !elementType) {
|
|
3696
3992
|
return null;
|
|
3697
3993
|
}
|
|
3698
|
-
const panelTitle =
|
|
3699
|
-
return /* @__PURE__ */
|
|
3994
|
+
const panelTitle = __54("Edit %s", "elementor").replace("%s", elementType.title);
|
|
3995
|
+
return /* @__PURE__ */ React80.createElement(ErrorBoundary, { fallback: /* @__PURE__ */ React80.createElement(EditorPanelErrorFallback, null) }, /* @__PURE__ */ React80.createElement(SessionStorageProvider3, { prefix: "elementor" }, /* @__PURE__ */ React80.createElement(ThemeProvider9, null, /* @__PURE__ */ React80.createElement(Panel, null, /* @__PURE__ */ React80.createElement(PanelHeader, null, /* @__PURE__ */ React80.createElement(PanelHeaderTitle, null, panelTitle), /* @__PURE__ */ React80.createElement(AtomIcon, { fontSize: "small", sx: { color: "text.tertiary" } })), /* @__PURE__ */ React80.createElement(PanelBody, null, /* @__PURE__ */ React80.createElement(ControlActionsProvider, { items: menuItems }, /* @__PURE__ */ React80.createElement(ControlReplacementsProvider, { replacements: controlReplacements }, /* @__PURE__ */ React80.createElement(ElementProvider, { element, elementType }, /* @__PURE__ */ React80.createElement(EditingPanelTabs, null)))))))));
|
|
3700
3996
|
};
|
|
3701
3997
|
|
|
3702
3998
|
// src/panel.ts
|
|
@@ -3709,7 +4005,7 @@ var { panel, usePanelActions, usePanelStatus } = createPanel({
|
|
|
3709
4005
|
import { injectIntoLogic } from "@elementor/editor";
|
|
3710
4006
|
import { PrefetchUserData } from "@elementor/editor-current-user";
|
|
3711
4007
|
import { __registerPanel as registerPanel } from "@elementor/editor-panels";
|
|
3712
|
-
import { blockCommand } from "@elementor/editor-v1-adapters";
|
|
4008
|
+
import { blockCommand, isExperimentActive as isExperimentActive12 } from "@elementor/editor-v1-adapters";
|
|
3713
4009
|
|
|
3714
4010
|
// src/hooks/use-open-editor-panel.ts
|
|
3715
4011
|
import { useEffect as useEffect4 } from "react";
|
|
@@ -3745,36 +4041,36 @@ var EditingPanelHooks = () => {
|
|
|
3745
4041
|
};
|
|
3746
4042
|
|
|
3747
4043
|
// src/dynamics/init.ts
|
|
3748
|
-
import { settingsTransformersRegistry, styleTransformersRegistry
|
|
4044
|
+
import { settingsTransformersRegistry, styleTransformersRegistry } from "@elementor/editor-canvas";
|
|
3749
4045
|
|
|
3750
4046
|
// src/dynamics/components/dynamic-selection-control.tsx
|
|
3751
|
-
import * as
|
|
4047
|
+
import * as React84 from "react";
|
|
3752
4048
|
import { ControlFormLabel as ControlFormLabel5, useBoundProp as useBoundProp5 } from "@elementor/editor-controls";
|
|
3753
4049
|
import { DatabaseIcon as DatabaseIcon2, SettingsIcon, XIcon as XIcon2 } from "@elementor/icons";
|
|
3754
4050
|
import {
|
|
3755
4051
|
bindPopover as bindPopover2,
|
|
3756
4052
|
bindTrigger as bindTrigger2,
|
|
3757
|
-
Box as
|
|
4053
|
+
Box as Box8,
|
|
3758
4054
|
Divider as Divider8,
|
|
3759
4055
|
Grid as Grid31,
|
|
3760
|
-
IconButton as
|
|
4056
|
+
IconButton as IconButton5,
|
|
3761
4057
|
Paper,
|
|
3762
4058
|
Popover as Popover2,
|
|
3763
|
-
Stack as
|
|
4059
|
+
Stack as Stack21,
|
|
3764
4060
|
Tab as Tab2,
|
|
3765
4061
|
TabPanel as TabPanel2,
|
|
3766
4062
|
Tabs as Tabs2,
|
|
3767
|
-
Typography as
|
|
4063
|
+
Typography as Typography8,
|
|
3768
4064
|
UnstableTag as Tag,
|
|
3769
4065
|
usePopupState as usePopupState3,
|
|
3770
4066
|
useTabs as useTabs2
|
|
3771
4067
|
} from "@elementor/ui";
|
|
3772
|
-
import { __ as
|
|
4068
|
+
import { __ as __56 } from "@wordpress/i18n";
|
|
3773
4069
|
|
|
3774
4070
|
// src/components/popover-content.tsx
|
|
3775
|
-
import * as
|
|
3776
|
-
import { Stack as
|
|
3777
|
-
var PopoverContent = ({ alignItems, gap = 1.5, p, children }) => /* @__PURE__ */
|
|
4071
|
+
import * as React81 from "react";
|
|
4072
|
+
import { Stack as Stack19 } from "@elementor/ui";
|
|
4073
|
+
var PopoverContent = ({ alignItems, gap = 1.5, p, children }) => /* @__PURE__ */ React81.createElement(Stack19, { alignItems, gap, p }, children);
|
|
3778
4074
|
|
|
3779
4075
|
// src/hooks/use-persist-dynamic-value.ts
|
|
3780
4076
|
import { useSessionStorage as useSessionStorage2 } from "@elementor/session";
|
|
@@ -3785,7 +4081,7 @@ var usePersistDynamicValue = (propKey) => {
|
|
|
3785
4081
|
};
|
|
3786
4082
|
|
|
3787
4083
|
// src/dynamics/dynamic-control.tsx
|
|
3788
|
-
import * as
|
|
4084
|
+
import * as React82 from "react";
|
|
3789
4085
|
import { PropKeyProvider as PropKeyProvider3, PropProvider as PropProvider3, useBoundProp as useBoundProp3 } from "@elementor/editor-controls";
|
|
3790
4086
|
|
|
3791
4087
|
// src/dynamics/hooks/use-dynamic-tag.ts
|
|
@@ -3887,28 +4183,28 @@ var DynamicControl = ({ bind, children }) => {
|
|
|
3887
4183
|
});
|
|
3888
4184
|
};
|
|
3889
4185
|
const propType = createTopLevelOjectType({ schema: dynamicTag.props_schema });
|
|
3890
|
-
return /* @__PURE__ */
|
|
4186
|
+
return /* @__PURE__ */ React82.createElement(PropProvider3, { propType, setValue: setDynamicValue, value: { [bind]: dynamicValue } }, /* @__PURE__ */ React82.createElement(PropKeyProvider3, { bind }, children));
|
|
3891
4187
|
};
|
|
3892
4188
|
|
|
3893
4189
|
// src/dynamics/components/dynamic-selection.tsx
|
|
3894
|
-
import * as
|
|
4190
|
+
import * as React83 from "react";
|
|
3895
4191
|
import { Fragment as Fragment10, useState as useState13 } from "react";
|
|
3896
4192
|
import { useBoundProp as useBoundProp4 } from "@elementor/editor-controls";
|
|
3897
4193
|
import { DatabaseIcon, SearchIcon } from "@elementor/icons";
|
|
3898
4194
|
import {
|
|
3899
|
-
Box as
|
|
4195
|
+
Box as Box7,
|
|
3900
4196
|
Divider as Divider7,
|
|
3901
4197
|
InputAdornment,
|
|
3902
4198
|
Link as Link2,
|
|
3903
4199
|
MenuItem,
|
|
3904
4200
|
MenuList,
|
|
3905
4201
|
MenuSubheader as MenuSubheader2,
|
|
3906
|
-
Stack as
|
|
4202
|
+
Stack as Stack20,
|
|
3907
4203
|
TextField as TextField2,
|
|
3908
|
-
Typography as
|
|
4204
|
+
Typography as Typography7
|
|
3909
4205
|
} from "@elementor/ui";
|
|
3910
|
-
import { __ as
|
|
3911
|
-
var
|
|
4206
|
+
import { __ as __55 } from "@wordpress/i18n";
|
|
4207
|
+
var SIZE7 = "tiny";
|
|
3912
4208
|
var DynamicSelection = ({ onSelect }) => {
|
|
3913
4209
|
const [searchValue, setSearchValue] = useState13("");
|
|
3914
4210
|
const { groups: dynamicGroups } = getAtomicDynamicTags() || {};
|
|
@@ -3928,19 +4224,19 @@ var DynamicSelection = ({ onSelect }) => {
|
|
|
3928
4224
|
setValue({ name: value, settings: { label } });
|
|
3929
4225
|
onSelect?.();
|
|
3930
4226
|
};
|
|
3931
|
-
return /* @__PURE__ */
|
|
4227
|
+
return /* @__PURE__ */ React83.createElement(Stack20, null, hasNoDynamicTags ? /* @__PURE__ */ React83.createElement(NoDynamicTags, null) : /* @__PURE__ */ React83.createElement(Fragment10, null, /* @__PURE__ */ React83.createElement(Box7, { px: 1.5, pb: 1 }, /* @__PURE__ */ React83.createElement(
|
|
3932
4228
|
TextField2,
|
|
3933
4229
|
{
|
|
3934
4230
|
fullWidth: true,
|
|
3935
|
-
size:
|
|
4231
|
+
size: SIZE7,
|
|
3936
4232
|
value: searchValue,
|
|
3937
4233
|
onChange: handleSearch,
|
|
3938
|
-
placeholder:
|
|
4234
|
+
placeholder: __55("Search dynamic tags\u2026", "elementor"),
|
|
3939
4235
|
InputProps: {
|
|
3940
|
-
startAdornment: /* @__PURE__ */
|
|
4236
|
+
startAdornment: /* @__PURE__ */ React83.createElement(InputAdornment, { position: "start" }, /* @__PURE__ */ React83.createElement(SearchIcon, { fontSize: SIZE7 }))
|
|
3941
4237
|
}
|
|
3942
4238
|
}
|
|
3943
|
-
)), /* @__PURE__ */
|
|
4239
|
+
)), /* @__PURE__ */ React83.createElement(Divider7, null), /* @__PURE__ */ React83.createElement(Box7, { sx: { overflowY: "auto", height: 260, width: 220 } }, options12.length > 0 ? /* @__PURE__ */ React83.createElement(MenuList, { role: "listbox", tabIndex: 0 }, options12.map(([category, items3], index) => /* @__PURE__ */ React83.createElement(Fragment10, { key: index }, /* @__PURE__ */ React83.createElement(
|
|
3944
4240
|
MenuSubheader2,
|
|
3945
4241
|
{
|
|
3946
4242
|
sx: { px: 1.5, typography: "caption", color: "text.tertiary" }
|
|
@@ -3948,7 +4244,7 @@ var DynamicSelection = ({ onSelect }) => {
|
|
|
3948
4244
|
dynamicGroups?.[category]?.title || category
|
|
3949
4245
|
), items3.map(({ value, label: tagLabel }) => {
|
|
3950
4246
|
const isSelected = isCurrentValueDynamic && value === dynamicValue?.name;
|
|
3951
|
-
return /* @__PURE__ */
|
|
4247
|
+
return /* @__PURE__ */ React83.createElement(
|
|
3952
4248
|
MenuItem,
|
|
3953
4249
|
{
|
|
3954
4250
|
key: value,
|
|
@@ -3959,10 +4255,10 @@ var DynamicSelection = ({ onSelect }) => {
|
|
|
3959
4255
|
},
|
|
3960
4256
|
tagLabel
|
|
3961
4257
|
);
|
|
3962
|
-
})))) : /* @__PURE__ */
|
|
4258
|
+
})))) : /* @__PURE__ */ React83.createElement(NoResults, { searchValue, onClear: () => setSearchValue("") }))));
|
|
3963
4259
|
};
|
|
3964
|
-
var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */
|
|
3965
|
-
|
|
4260
|
+
var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */ React83.createElement(
|
|
4261
|
+
Stack20,
|
|
3966
4262
|
{
|
|
3967
4263
|
gap: 1,
|
|
3968
4264
|
alignItems: "center",
|
|
@@ -3972,12 +4268,12 @@ var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */ React78.createElem
|
|
|
3972
4268
|
color: "text.secondary",
|
|
3973
4269
|
sx: { pb: 3.5 }
|
|
3974
4270
|
},
|
|
3975
|
-
/* @__PURE__ */
|
|
3976
|
-
/* @__PURE__ */
|
|
3977
|
-
/* @__PURE__ */
|
|
4271
|
+
/* @__PURE__ */ React83.createElement(DatabaseIcon, { fontSize: "large" }),
|
|
4272
|
+
/* @__PURE__ */ React83.createElement(Typography7, { align: "center", variant: "subtitle2" }, __55("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React83.createElement("br", null), "\u201C", searchValue, "\u201D."),
|
|
4273
|
+
/* @__PURE__ */ React83.createElement(Typography7, { align: "center", variant: "caption" }, __55("Try something else.", "elementor"), "\xA0", /* @__PURE__ */ React83.createElement(Link2, { color: "text.secondary", variant: "caption", component: "button", onClick: onClear }, __55("Clear & try again", "elementor")))
|
|
3978
4274
|
);
|
|
3979
|
-
var NoDynamicTags = () => /* @__PURE__ */
|
|
3980
|
-
|
|
4275
|
+
var NoDynamicTags = () => /* @__PURE__ */ React83.createElement(Box7, { sx: { overflowY: "hidden", height: 297, width: 220 } }, /* @__PURE__ */ React83.createElement(Divider7, null), /* @__PURE__ */ React83.createElement(
|
|
4276
|
+
Stack20,
|
|
3981
4277
|
{
|
|
3982
4278
|
gap: 1,
|
|
3983
4279
|
alignItems: "center",
|
|
@@ -3987,9 +4283,9 @@ var NoDynamicTags = () => /* @__PURE__ */ React78.createElement(Box5, { sx: { ov
|
|
|
3987
4283
|
color: "text.secondary",
|
|
3988
4284
|
sx: { pb: 3.5 }
|
|
3989
4285
|
},
|
|
3990
|
-
/* @__PURE__ */
|
|
3991
|
-
/* @__PURE__ */
|
|
3992
|
-
/* @__PURE__ */
|
|
4286
|
+
/* @__PURE__ */ React83.createElement(DatabaseIcon, { fontSize: "large" }),
|
|
4287
|
+
/* @__PURE__ */ React83.createElement(Typography7, { align: "center", variant: "subtitle2" }, __55("Streamline your workflow with dynamic tags", "elementor")),
|
|
4288
|
+
/* @__PURE__ */ React83.createElement(Typography7, { align: "center", variant: "caption" }, __55("You\u2019ll need Elementor Pro to use this feature.", "elementor"))
|
|
3993
4289
|
));
|
|
3994
4290
|
var useFilteredOptions = (searchValue) => {
|
|
3995
4291
|
const dynamicTags = usePropDynamicTags();
|
|
@@ -4008,7 +4304,7 @@ var useFilteredOptions = (searchValue) => {
|
|
|
4008
4304
|
};
|
|
4009
4305
|
|
|
4010
4306
|
// src/dynamics/components/dynamic-selection-control.tsx
|
|
4011
|
-
var
|
|
4307
|
+
var SIZE8 = "tiny";
|
|
4012
4308
|
var DynamicSelectionControl = () => {
|
|
4013
4309
|
const { setValue: setAnyValue } = useBoundProp5();
|
|
4014
4310
|
const { bind, value } = useBoundProp5(dynamicPropTypeUtil);
|
|
@@ -4022,25 +4318,25 @@ var DynamicSelectionControl = () => {
|
|
|
4022
4318
|
if (!dynamicTag) {
|
|
4023
4319
|
throw new Error(`Dynamic tag ${tagName} not found`);
|
|
4024
4320
|
}
|
|
4025
|
-
return /* @__PURE__ */
|
|
4321
|
+
return /* @__PURE__ */ React84.createElement(Box8, null, /* @__PURE__ */ React84.createElement(
|
|
4026
4322
|
Tag,
|
|
4027
4323
|
{
|
|
4028
4324
|
fullWidth: true,
|
|
4029
4325
|
showActionsOnHover: true,
|
|
4030
4326
|
label: dynamicTag.label,
|
|
4031
|
-
startIcon: /* @__PURE__ */
|
|
4327
|
+
startIcon: /* @__PURE__ */ React84.createElement(DatabaseIcon2, { fontSize: SIZE8 }),
|
|
4032
4328
|
...bindTrigger2(selectionPopoverState),
|
|
4033
|
-
actions: /* @__PURE__ */
|
|
4034
|
-
|
|
4329
|
+
actions: /* @__PURE__ */ React84.createElement(React84.Fragment, null, /* @__PURE__ */ React84.createElement(DynamicSettingsPopover, { dynamicTag }), /* @__PURE__ */ React84.createElement(
|
|
4330
|
+
IconButton5,
|
|
4035
4331
|
{
|
|
4036
|
-
size:
|
|
4332
|
+
size: SIZE8,
|
|
4037
4333
|
onClick: removeDynamicTag,
|
|
4038
|
-
"aria-label":
|
|
4334
|
+
"aria-label": __56("Remove dynamic value", "elementor")
|
|
4039
4335
|
},
|
|
4040
|
-
/* @__PURE__ */
|
|
4336
|
+
/* @__PURE__ */ React84.createElement(XIcon2, { fontSize: SIZE8 })
|
|
4041
4337
|
))
|
|
4042
4338
|
}
|
|
4043
|
-
), /* @__PURE__ */
|
|
4339
|
+
), /* @__PURE__ */ React84.createElement(
|
|
4044
4340
|
Popover2,
|
|
4045
4341
|
{
|
|
4046
4342
|
disablePortal: true,
|
|
@@ -4048,7 +4344,7 @@ var DynamicSelectionControl = () => {
|
|
|
4048
4344
|
anchorOrigin: { vertical: "bottom", horizontal: "left" },
|
|
4049
4345
|
...bindPopover2(selectionPopoverState)
|
|
4050
4346
|
},
|
|
4051
|
-
/* @__PURE__ */
|
|
4347
|
+
/* @__PURE__ */ React84.createElement(Stack21, null, /* @__PURE__ */ React84.createElement(Stack21, { direction: "row", alignItems: "center", pl: 1.5, pr: 0.5, py: 1.5 }, /* @__PURE__ */ React84.createElement(DatabaseIcon2, { fontSize: SIZE8, sx: { mr: 0.5 } }), /* @__PURE__ */ React84.createElement(Typography8, { variant: "subtitle2" }, __56("Dynamic tags", "elementor")), /* @__PURE__ */ React84.createElement(IconButton5, { size: SIZE8, sx: { ml: "auto" }, onClick: selectionPopoverState.close }, /* @__PURE__ */ React84.createElement(XIcon2, { fontSize: SIZE8 }))), /* @__PURE__ */ React84.createElement(DynamicSelection, { onSelect: selectionPopoverState.close }))
|
|
4052
4348
|
));
|
|
4053
4349
|
};
|
|
4054
4350
|
var DynamicSettingsPopover = ({ dynamicTag }) => {
|
|
@@ -4057,7 +4353,7 @@ var DynamicSettingsPopover = ({ dynamicTag }) => {
|
|
|
4057
4353
|
if (!hasDynamicSettings) {
|
|
4058
4354
|
return null;
|
|
4059
4355
|
}
|
|
4060
|
-
return /* @__PURE__ */
|
|
4356
|
+
return /* @__PURE__ */ React84.createElement(React84.Fragment, null, /* @__PURE__ */ React84.createElement(IconButton5, { size: SIZE8, ...bindTrigger2(popupState), "aria-label": __56("Settings", "elementor") }, /* @__PURE__ */ React84.createElement(SettingsIcon, { fontSize: SIZE8 })), /* @__PURE__ */ React84.createElement(
|
|
4061
4357
|
Popover2,
|
|
4062
4358
|
{
|
|
4063
4359
|
disablePortal: true,
|
|
@@ -4065,7 +4361,7 @@ var DynamicSettingsPopover = ({ dynamicTag }) => {
|
|
|
4065
4361
|
anchorOrigin: { vertical: "bottom", horizontal: "center" },
|
|
4066
4362
|
...bindPopover2(popupState)
|
|
4067
4363
|
},
|
|
4068
|
-
/* @__PURE__ */
|
|
4364
|
+
/* @__PURE__ */ React84.createElement(Paper, { component: Stack21, sx: { minHeight: "300px", width: "220px" } }, /* @__PURE__ */ React84.createElement(Stack21, { direction: "row", alignItems: "center", px: 1.5, pt: 2, pb: 1 }, /* @__PURE__ */ React84.createElement(DatabaseIcon2, { fontSize: SIZE8, sx: { mr: 0.5 } }), /* @__PURE__ */ React84.createElement(Typography8, { variant: "subtitle2" }, dynamicTag.label), /* @__PURE__ */ React84.createElement(IconButton5, { sx: { ml: "auto" }, size: SIZE8, onClick: popupState.close }, /* @__PURE__ */ React84.createElement(XIcon2, { fontSize: SIZE8 }))), /* @__PURE__ */ React84.createElement(DynamicSettings, { controls: dynamicTag.atomic_controls }))
|
|
4069
4365
|
));
|
|
4070
4366
|
};
|
|
4071
4367
|
var DynamicSettings = ({ controls }) => {
|
|
@@ -4074,10 +4370,10 @@ var DynamicSettings = ({ controls }) => {
|
|
|
4074
4370
|
if (!tabs.length) {
|
|
4075
4371
|
return null;
|
|
4076
4372
|
}
|
|
4077
|
-
return /* @__PURE__ */
|
|
4078
|
-
return /* @__PURE__ */
|
|
4373
|
+
return /* @__PURE__ */ React84.createElement(React84.Fragment, null, /* @__PURE__ */ React84.createElement(Tabs2, { size: "small", variant: "fullWidth", ...getTabsProps() }, tabs.map(({ value }, index) => /* @__PURE__ */ React84.createElement(Tab2, { key: index, label: value.label, sx: { px: 1, py: 0.5 }, ...getTabProps(index) }))), /* @__PURE__ */ React84.createElement(Divider8, null), tabs.map(({ value }, index) => {
|
|
4374
|
+
return /* @__PURE__ */ React84.createElement(TabPanel2, { key: index, sx: { flexGrow: 1, py: 0 }, ...getTabPanelProps(index) }, /* @__PURE__ */ React84.createElement(PopoverContent, { p: 2, gap: 2 }, value.items.map((item) => {
|
|
4079
4375
|
if (item.type === "control") {
|
|
4080
|
-
return /* @__PURE__ */
|
|
4376
|
+
return /* @__PURE__ */ React84.createElement(Control3, { key: item.value.bind, control: item.value });
|
|
4081
4377
|
}
|
|
4082
4378
|
return null;
|
|
4083
4379
|
})));
|
|
@@ -4087,7 +4383,7 @@ var Control3 = ({ control }) => {
|
|
|
4087
4383
|
if (!getControl(control.type)) {
|
|
4088
4384
|
return null;
|
|
4089
4385
|
}
|
|
4090
|
-
return /* @__PURE__ */
|
|
4386
|
+
return /* @__PURE__ */ React84.createElement(DynamicControl, { bind: control.bind }, /* @__PURE__ */ React84.createElement(Grid31, { container: true, gap: 0.75 }, control.label ? /* @__PURE__ */ React84.createElement(Grid31, { item: true, xs: 12 }, /* @__PURE__ */ React84.createElement(ControlFormLabel5, null, control.label)) : null, /* @__PURE__ */ React84.createElement(Grid31, { item: true, xs: 12 }, /* @__PURE__ */ React84.createElement(Control, { type: control.type, props: control.props }))));
|
|
4091
4387
|
};
|
|
4092
4388
|
|
|
4093
4389
|
// src/dynamics/dynamic-transformer.ts
|
|
@@ -4140,18 +4436,18 @@ function getDynamicValue(name, settings) {
|
|
|
4140
4436
|
}
|
|
4141
4437
|
|
|
4142
4438
|
// src/dynamics/hooks/use-prop-dynamic-action.tsx
|
|
4143
|
-
import * as
|
|
4439
|
+
import * as React85 from "react";
|
|
4144
4440
|
import { useBoundProp as useBoundProp6 } from "@elementor/editor-controls";
|
|
4145
4441
|
import { DatabaseIcon as DatabaseIcon3 } from "@elementor/icons";
|
|
4146
|
-
import { __ as
|
|
4442
|
+
import { __ as __57 } from "@wordpress/i18n";
|
|
4147
4443
|
var usePropDynamicAction = () => {
|
|
4148
4444
|
const { propType } = useBoundProp6();
|
|
4149
4445
|
const visible = !!propType && supportsDynamic(propType);
|
|
4150
4446
|
return {
|
|
4151
4447
|
visible,
|
|
4152
4448
|
icon: DatabaseIcon3,
|
|
4153
|
-
title:
|
|
4154
|
-
popoverContent: ({ closePopover }) => /* @__PURE__ */
|
|
4449
|
+
title: __57("Dynamic tags", "elementor"),
|
|
4450
|
+
popoverContent: ({ closePopover }) => /* @__PURE__ */ React85.createElement(DynamicSelection, { onSelect: closePopover })
|
|
4155
4451
|
};
|
|
4156
4452
|
};
|
|
4157
4453
|
|
|
@@ -4166,12 +4462,170 @@ var init = () => {
|
|
|
4166
4462
|
id: "dynamic-tags",
|
|
4167
4463
|
useProps: usePropDynamicAction
|
|
4168
4464
|
});
|
|
4169
|
-
|
|
4465
|
+
styleTransformersRegistry.register("dynamic", dynamicTransformer);
|
|
4170
4466
|
settingsTransformersRegistry.register("dynamic", dynamicTransformer);
|
|
4171
4467
|
};
|
|
4172
4468
|
|
|
4469
|
+
// src/reset-style-props.tsx
|
|
4470
|
+
import { useBoundProp as useBoundProp7 } from "@elementor/editor-controls";
|
|
4471
|
+
import { BrushBigIcon } from "@elementor/icons";
|
|
4472
|
+
import { __ as __58 } from "@wordpress/i18n";
|
|
4473
|
+
var { registerAction } = controlActionsMenu;
|
|
4474
|
+
function initResetStyleProps() {
|
|
4475
|
+
registerAction({
|
|
4476
|
+
id: "reset-style-value",
|
|
4477
|
+
useProps: useResetStyleValueProps
|
|
4478
|
+
});
|
|
4479
|
+
}
|
|
4480
|
+
var EXCLUDED_BINDS = ["order", "flex-grow", "flex-shrink", "flex-basis"];
|
|
4481
|
+
function useResetStyleValueProps() {
|
|
4482
|
+
const isStyle = useIsStyle();
|
|
4483
|
+
const { value, setValue, path, bind } = useBoundProp7();
|
|
4484
|
+
return {
|
|
4485
|
+
visible: isStyle && value !== null && value !== void 0 && path.length <= 2 && !EXCLUDED_BINDS.includes(bind),
|
|
4486
|
+
title: __58("Clear", "elementor"),
|
|
4487
|
+
icon: BrushBigIcon,
|
|
4488
|
+
onClick: () => setValue(null)
|
|
4489
|
+
};
|
|
4490
|
+
}
|
|
4491
|
+
|
|
4492
|
+
// src/styles-inheritance/init-styles-inheritance-transformers.ts
|
|
4493
|
+
import { createTransformer as createTransformer6, styleTransformersRegistry as styleTransformersRegistry2 } from "@elementor/editor-canvas";
|
|
4494
|
+
|
|
4495
|
+
// src/styles-inheritance/transformers/background-color-overlay-transformer.tsx
|
|
4496
|
+
import * as React86 from "react";
|
|
4497
|
+
import { createTransformer as createTransformer2 } from "@elementor/editor-canvas";
|
|
4498
|
+
import { Stack as Stack22, styled as styled6, UnstableColorIndicator } from "@elementor/ui";
|
|
4499
|
+
var backgroundColorOverlayTransformer = createTransformer2((value) => /* @__PURE__ */ React86.createElement(Stack22, { direction: "row", gap: 10 }, /* @__PURE__ */ React86.createElement(ItemIconColor, { value }), /* @__PURE__ */ React86.createElement(ItemLabelColor, { value })));
|
|
4500
|
+
var ItemIconColor = ({ value }) => {
|
|
4501
|
+
const { color } = value;
|
|
4502
|
+
return /* @__PURE__ */ React86.createElement(StyledUnstableColorIndicator, { size: "inherit", component: "span", value: color });
|
|
4503
|
+
};
|
|
4504
|
+
var ItemLabelColor = ({ value: { color } }) => {
|
|
4505
|
+
return /* @__PURE__ */ React86.createElement("span", null, color);
|
|
4506
|
+
};
|
|
4507
|
+
var StyledUnstableColorIndicator = styled6(UnstableColorIndicator)(({ theme }) => ({
|
|
4508
|
+
borderRadius: `${theme.shape.borderRadius / 2}px`
|
|
4509
|
+
}));
|
|
4510
|
+
|
|
4511
|
+
// src/styles-inheritance/transformers/background-gradient-overlay-transformer.tsx
|
|
4512
|
+
import * as React87 from "react";
|
|
4513
|
+
import { createTransformer as createTransformer3 } from "@elementor/editor-canvas";
|
|
4514
|
+
import { Stack as Stack23 } from "@elementor/ui";
|
|
4515
|
+
import { __ as __59 } from "@wordpress/i18n";
|
|
4516
|
+
var backgroundGradientOverlayTransformer = createTransformer3((value) => /* @__PURE__ */ React87.createElement(Stack23, { direction: "row", gap: 10 }, /* @__PURE__ */ React87.createElement(ItemIconGradient, { value }), /* @__PURE__ */ React87.createElement(ItemLabelGradient, { value })));
|
|
4517
|
+
var ItemIconGradient = ({ value }) => {
|
|
4518
|
+
const gradient = getGradientValue(value);
|
|
4519
|
+
return /* @__PURE__ */ React87.createElement(StyledUnstableColorIndicator, { size: "inherit", component: "span", value: gradient });
|
|
4520
|
+
};
|
|
4521
|
+
var ItemLabelGradient = ({ value }) => {
|
|
4522
|
+
if (value.type === "linear") {
|
|
4523
|
+
return /* @__PURE__ */ React87.createElement("span", null, __59("Linear Gradient", "elementor"));
|
|
4524
|
+
}
|
|
4525
|
+
return /* @__PURE__ */ React87.createElement("span", null, __59("Radial Gradient", "elementor"));
|
|
4526
|
+
};
|
|
4527
|
+
var getGradientValue = (gradient) => {
|
|
4528
|
+
const stops = gradient.stops?.map(({ color, offset }) => `${color} ${offset ?? 0}%`)?.join(",");
|
|
4529
|
+
if (gradient.type === "linear") {
|
|
4530
|
+
return `linear-gradient(${gradient.angle}deg, ${stops})`;
|
|
4531
|
+
}
|
|
4532
|
+
return `radial-gradient(circle at ${gradient.positions}, ${stops})`;
|
|
4533
|
+
};
|
|
4534
|
+
|
|
4535
|
+
// src/styles-inheritance/transformers/background-image-overlay-transformer.tsx
|
|
4536
|
+
import * as React88 from "react";
|
|
4537
|
+
import { createTransformer as createTransformer4 } from "@elementor/editor-canvas";
|
|
4538
|
+
import { EllipsisWithTooltip as EllipsisWithTooltip2 } from "@elementor/editor-ui";
|
|
4539
|
+
import { CardMedia, Stack as Stack24 } from "@elementor/ui";
|
|
4540
|
+
import { useWpMediaAttachment } from "@elementor/wp-media";
|
|
4541
|
+
var backgroundImageOverlayTransformer = createTransformer4((value) => /* @__PURE__ */ React88.createElement(Stack24, { direction: "row", gap: 10 }, /* @__PURE__ */ React88.createElement(ItemIconImage, { value }), /* @__PURE__ */ React88.createElement(ItemLabelImage, { value })));
|
|
4542
|
+
var ItemIconImage = ({ value }) => {
|
|
4543
|
+
const { imageUrl } = useImage(value);
|
|
4544
|
+
return /* @__PURE__ */ React88.createElement(
|
|
4545
|
+
CardMedia,
|
|
4546
|
+
{
|
|
4547
|
+
image: imageUrl,
|
|
4548
|
+
sx: (theme) => ({
|
|
4549
|
+
height: "1em",
|
|
4550
|
+
width: "1em",
|
|
4551
|
+
borderRadius: `${theme.shape.borderRadius / 2}px`,
|
|
4552
|
+
outline: `1px solid ${theme.palette.action.disabled}`
|
|
4553
|
+
})
|
|
4554
|
+
}
|
|
4555
|
+
);
|
|
4556
|
+
};
|
|
4557
|
+
var ItemLabelImage = ({ value }) => {
|
|
4558
|
+
const { imageTitle } = useImage(value);
|
|
4559
|
+
return /* @__PURE__ */ React88.createElement(EllipsisWithTooltip2, { title: imageTitle }, /* @__PURE__ */ React88.createElement("span", null, imageTitle));
|
|
4560
|
+
};
|
|
4561
|
+
var useImage = (image) => {
|
|
4562
|
+
let imageTitle, imageUrl = null;
|
|
4563
|
+
const imageSrc = image?.image.src;
|
|
4564
|
+
const { data: attachment } = useWpMediaAttachment(imageSrc.id || null);
|
|
4565
|
+
if (imageSrc.id) {
|
|
4566
|
+
const imageFileTypeExtension = getFileExtensionFromFilename(attachment?.filename);
|
|
4567
|
+
imageTitle = `${attachment?.title}${imageFileTypeExtension}` || null;
|
|
4568
|
+
imageUrl = attachment?.url || null;
|
|
4569
|
+
} else if (imageSrc.url) {
|
|
4570
|
+
imageUrl = imageSrc.url;
|
|
4571
|
+
imageTitle = imageUrl?.substring(imageUrl.lastIndexOf("/") + 1) || null;
|
|
4572
|
+
}
|
|
4573
|
+
return { imageTitle, imageUrl };
|
|
4574
|
+
};
|
|
4575
|
+
var getFileExtensionFromFilename = (filename) => {
|
|
4576
|
+
if (!filename) {
|
|
4577
|
+
return "";
|
|
4578
|
+
}
|
|
4579
|
+
const extension = filename.substring(filename.lastIndexOf(".") + 1);
|
|
4580
|
+
return `.${extension}`;
|
|
4581
|
+
};
|
|
4582
|
+
|
|
4583
|
+
// src/styles-inheritance/transformers/background-overlay-transformer.tsx
|
|
4584
|
+
import * as React89 from "react";
|
|
4585
|
+
import { createTransformer as createTransformer5 } from "@elementor/editor-canvas";
|
|
4586
|
+
import { Stack as Stack25 } from "@elementor/ui";
|
|
4587
|
+
var backgroundOverlayTransformer = createTransformer5((values) => {
|
|
4588
|
+
if (!values || values.length === 0) {
|
|
4589
|
+
return null;
|
|
4590
|
+
}
|
|
4591
|
+
return /* @__PURE__ */ React89.createElement(Stack25, { direction: "column" }, values.map((item, index) => /* @__PURE__ */ React89.createElement(Stack25, { key: index }, item)));
|
|
4592
|
+
});
|
|
4593
|
+
|
|
4594
|
+
// src/styles-inheritance/init-styles-inheritance-transformers.ts
|
|
4595
|
+
function initStylesInheritanceTransformers() {
|
|
4596
|
+
const originalStyleTransformers = styleTransformersRegistry2.all();
|
|
4597
|
+
Object.entries(originalStyleTransformers).forEach(([propType, transformer]) => {
|
|
4598
|
+
if (excludePropTypeTransformers.has(propType)) {
|
|
4599
|
+
return;
|
|
4600
|
+
}
|
|
4601
|
+
stylesInheritanceTransformersRegistry.register(propType, transformer);
|
|
4602
|
+
});
|
|
4603
|
+
stylesInheritanceTransformersRegistry.registerFallback(
|
|
4604
|
+
createTransformer6((value) => {
|
|
4605
|
+
return value;
|
|
4606
|
+
})
|
|
4607
|
+
);
|
|
4608
|
+
registerCustomTransformers();
|
|
4609
|
+
}
|
|
4610
|
+
function registerCustomTransformers() {
|
|
4611
|
+
stylesInheritanceTransformersRegistry.register("background-color-overlay", backgroundColorOverlayTransformer);
|
|
4612
|
+
stylesInheritanceTransformersRegistry.register(
|
|
4613
|
+
"background-gradient-overlay",
|
|
4614
|
+
backgroundGradientOverlayTransformer
|
|
4615
|
+
);
|
|
4616
|
+
stylesInheritanceTransformersRegistry.register("background-image-overlay", backgroundImageOverlayTransformer);
|
|
4617
|
+
stylesInheritanceTransformersRegistry.register("background-overlay", backgroundOverlayTransformer);
|
|
4618
|
+
}
|
|
4619
|
+
|
|
4620
|
+
// src/styles-inheritance/init.ts
|
|
4621
|
+
var init2 = () => {
|
|
4622
|
+
if (isUsingIndicatorPopover()) {
|
|
4623
|
+
initStylesInheritanceTransformers();
|
|
4624
|
+
}
|
|
4625
|
+
};
|
|
4626
|
+
|
|
4173
4627
|
// src/init.ts
|
|
4174
|
-
function
|
|
4628
|
+
function init3() {
|
|
4175
4629
|
registerPanel(panel);
|
|
4176
4630
|
blockV1Panel();
|
|
4177
4631
|
injectIntoLogic({
|
|
@@ -4183,6 +4637,10 @@ function init2() {
|
|
|
4183
4637
|
component: PrefetchUserData
|
|
4184
4638
|
});
|
|
4185
4639
|
init();
|
|
4640
|
+
init2();
|
|
4641
|
+
if (isExperimentActive12(EXPERIMENTAL_FEATURES.V_3_30)) {
|
|
4642
|
+
initResetStyleProps();
|
|
4643
|
+
}
|
|
4186
4644
|
}
|
|
4187
4645
|
var blockV1Panel = () => {
|
|
4188
4646
|
blockCommand({
|
|
@@ -4192,10 +4650,10 @@ var blockV1Panel = () => {
|
|
|
4192
4650
|
};
|
|
4193
4651
|
export {
|
|
4194
4652
|
controlActionsMenu,
|
|
4195
|
-
|
|
4653
|
+
init3 as init,
|
|
4196
4654
|
injectIntoClassSelectorActions,
|
|
4197
4655
|
registerControlReplacement,
|
|
4198
|
-
|
|
4656
|
+
useBoundProp8 as useBoundProp,
|
|
4199
4657
|
usePanelActions,
|
|
4200
4658
|
usePanelStatus
|
|
4201
4659
|
};
|