@elementor/editor-editing-panel 1.9.0 → 1.10.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 +32 -0
- package/dist/index.d.mts +1 -35
- package/dist/index.d.ts +1 -35
- package/dist/index.js +577 -635
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +490 -546
- package/dist/index.mjs.map +1 -1
- package/package.json +12 -11
- package/src/components/css-class-menu.tsx +28 -52
- package/src/components/css-class-selector.tsx +23 -18
- package/src/contexts/style-context.tsx +36 -5
- package/src/controls-registry/control.tsx +3 -12
- package/src/errors.ts +22 -0
- package/src/hooks/use-styles-fields.ts +49 -11
- package/src/hooks/use-unapply-class.ts +4 -0
- package/src/index.ts +0 -1
- package/src/init.ts +0 -2
- package/src/components/conditional-tooltip-wrapper.tsx +0 -58
- package/src/contexts/css-class-item-context.tsx +0 -31
- package/src/css-classes.ts +0 -45
package/dist/index.mjs
CHANGED
|
@@ -5,75 +5,151 @@ import { useBoundProp as useBoundProp6 } from "@elementor/editor-controls";
|
|
|
5
5
|
import { createControlReplacement } from "@elementor/editor-controls";
|
|
6
6
|
var { replaceControl, getControlReplacement } = createControlReplacement();
|
|
7
7
|
|
|
8
|
-
// src/components/css-class-
|
|
9
|
-
import * as
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
8
|
+
// src/components/css-class-selector.tsx
|
|
9
|
+
import * as React7 from "react";
|
|
10
|
+
import { useId as useId2, useRef as useRef2 } from "react";
|
|
11
|
+
import { getElementSetting, updateElementSettings as updateElementSettings2, useElementSetting as useElementSetting2 } from "@elementor/editor-elements";
|
|
12
|
+
import { classesPropTypeUtil } from "@elementor/editor-props";
|
|
12
13
|
import {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
ELEMENTS_STYLES_PROVIDER_KEY,
|
|
15
|
+
stylesRepository as stylesRepository2,
|
|
16
|
+
useCreateActionsByProvider,
|
|
17
|
+
useProviders
|
|
18
|
+
} from "@elementor/editor-styles-repository";
|
|
19
|
+
import { EllipsisWithTooltip } from "@elementor/editor-ui";
|
|
20
|
+
import { DotsVerticalIcon } from "@elementor/icons";
|
|
21
|
+
import { createLocation } from "@elementor/locations";
|
|
22
|
+
import {
|
|
23
|
+
bindTrigger,
|
|
24
|
+
Chip,
|
|
25
|
+
Stack,
|
|
26
|
+
Typography,
|
|
27
|
+
UnstableChipGroup,
|
|
28
|
+
usePopupState
|
|
21
29
|
} from "@elementor/ui";
|
|
22
|
-
import { __ } from "@wordpress/i18n";
|
|
30
|
+
import { __ as __2 } from "@wordpress/i18n";
|
|
23
31
|
|
|
24
|
-
// src/contexts/
|
|
32
|
+
// src/contexts/classes-prop-context.tsx
|
|
25
33
|
import * as React from "react";
|
|
26
34
|
import { createContext, useContext } from "react";
|
|
27
|
-
var
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
isActive: false
|
|
31
|
-
});
|
|
32
|
-
function CssClassItemProvider({ styleId, isGlobal, isActive, children }) {
|
|
33
|
-
return /* @__PURE__ */ React.createElement(ClassItemContext.Provider, { value: { styleId, isGlobal, isActive } }, children);
|
|
35
|
+
var Context = createContext(null);
|
|
36
|
+
function ClassesPropProvider({ children, prop }) {
|
|
37
|
+
return /* @__PURE__ */ React.createElement(Context.Provider, { value: { prop } }, children);
|
|
34
38
|
}
|
|
35
|
-
function
|
|
36
|
-
const context = useContext(
|
|
39
|
+
function useClassesProp() {
|
|
40
|
+
const context = useContext(Context);
|
|
37
41
|
if (!context) {
|
|
38
|
-
throw new Error("
|
|
42
|
+
throw new Error("useClassesProp must be used within a ClassesPropProvider");
|
|
39
43
|
}
|
|
40
|
-
return context;
|
|
44
|
+
return context.prop;
|
|
41
45
|
}
|
|
42
46
|
|
|
43
|
-
// src/contexts/
|
|
47
|
+
// src/contexts/element-context.tsx
|
|
44
48
|
import * as React2 from "react";
|
|
45
49
|
import { createContext as createContext2, useContext as useContext2 } from "react";
|
|
46
|
-
var
|
|
47
|
-
function
|
|
48
|
-
return /* @__PURE__ */ React2.createElement(
|
|
50
|
+
var Context2 = createContext2(null);
|
|
51
|
+
function ElementProvider({ children, element, elementType }) {
|
|
52
|
+
return /* @__PURE__ */ React2.createElement(Context2.Provider, { value: { element, elementType } }, children);
|
|
53
|
+
}
|
|
54
|
+
function useElement() {
|
|
55
|
+
const context = useContext2(Context2);
|
|
56
|
+
if (!context) {
|
|
57
|
+
throw new Error("useElement must be used within a ElementProvider");
|
|
58
|
+
}
|
|
59
|
+
return context;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// src/contexts/style-context.tsx
|
|
63
|
+
import * as React3 from "react";
|
|
64
|
+
import { createContext as createContext3, useContext as useContext3 } from "react";
|
|
65
|
+
import { stylesRepository } from "@elementor/editor-styles-repository";
|
|
66
|
+
|
|
67
|
+
// src/errors.ts
|
|
68
|
+
import { createError } from "@elementor/utils";
|
|
69
|
+
var ControlTypeNotFoundError = createError({
|
|
70
|
+
code: "control_type_not_found",
|
|
71
|
+
message: "Control type not found."
|
|
72
|
+
});
|
|
73
|
+
var StylesProviderNotFoundError = createError({
|
|
74
|
+
code: "provider_not_found",
|
|
75
|
+
message: "Styles provider not found."
|
|
76
|
+
});
|
|
77
|
+
var StylesProviderCannotUpdatePropsError = createError({
|
|
78
|
+
code: "provider_cannot_update_props",
|
|
79
|
+
message: "Styles provider doesn't support updating props."
|
|
80
|
+
});
|
|
81
|
+
var StyleNotFoundUnderProviderError = createError({
|
|
82
|
+
code: "style_not_found_under_provider",
|
|
83
|
+
message: "Style not found under the provider."
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
// src/contexts/style-context.tsx
|
|
87
|
+
var Context3 = createContext3(null);
|
|
88
|
+
function StyleProvider({ children, ...props }) {
|
|
89
|
+
const provider = props.id === null ? null : getProviderByStyleId(props.id);
|
|
90
|
+
if (props.id && !provider) {
|
|
91
|
+
throw new StylesProviderNotFoundError({ context: { styleId: props.id } });
|
|
92
|
+
}
|
|
93
|
+
return /* @__PURE__ */ React3.createElement(Context3.Provider, { value: { ...props, provider } }, children);
|
|
49
94
|
}
|
|
50
95
|
function useStyle() {
|
|
51
|
-
const context =
|
|
96
|
+
const context = useContext3(Context3);
|
|
52
97
|
if (!context) {
|
|
53
98
|
throw new Error("useStyle must be used within a StyleProvider");
|
|
54
99
|
}
|
|
55
100
|
return context;
|
|
56
101
|
}
|
|
102
|
+
function getProviderByStyleId(styleId) {
|
|
103
|
+
const styleProvider = stylesRepository.getProviders().find((provider) => {
|
|
104
|
+
return provider.actions.get().find((style) => style.id === styleId);
|
|
105
|
+
});
|
|
106
|
+
return styleProvider ?? null;
|
|
107
|
+
}
|
|
57
108
|
|
|
58
109
|
// src/components/css-class-menu.tsx
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
110
|
+
import * as React4 from "react";
|
|
111
|
+
import { CheckIcon } from "@elementor/icons";
|
|
112
|
+
import {
|
|
113
|
+
bindMenu,
|
|
114
|
+
Divider,
|
|
115
|
+
ListItemIcon,
|
|
116
|
+
ListItemText,
|
|
117
|
+
ListSubheader,
|
|
118
|
+
Menu,
|
|
119
|
+
MenuItem,
|
|
120
|
+
styled
|
|
121
|
+
} from "@elementor/ui";
|
|
122
|
+
import { __ } from "@wordpress/i18n";
|
|
123
|
+
|
|
124
|
+
// src/hooks/use-unapply-class.ts
|
|
125
|
+
import { updateElementSettings, useElementSetting } from "@elementor/editor-elements";
|
|
126
|
+
var useUnapplyClass = (classId) => {
|
|
127
|
+
const { element } = useElement();
|
|
128
|
+
const { setId: setStyleId } = useStyle();
|
|
129
|
+
const classesProp = useClassesProp();
|
|
130
|
+
const classes = useElementSetting(element.id, classesProp);
|
|
131
|
+
const filteredClasses = classes?.value.filter((className) => className !== classId) ?? [];
|
|
132
|
+
return () => {
|
|
133
|
+
updateElementSettings({
|
|
134
|
+
id: element.id,
|
|
135
|
+
props: {
|
|
136
|
+
[classesProp]: {
|
|
137
|
+
$$type: "classes",
|
|
138
|
+
value: filteredClasses
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
setStyleId(null);
|
|
143
|
+
};
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
// src/components/css-class-menu.tsx
|
|
147
|
+
var STATES = ["hover", "focus", "active"];
|
|
148
|
+
function CssClassMenu({ styleId, isFixed = false, popupState }) {
|
|
149
|
+
const handleKeyDown = (e) => {
|
|
150
|
+
e.stopPropagation();
|
|
151
|
+
};
|
|
152
|
+
return /* @__PURE__ */ React4.createElement(
|
|
77
153
|
Menu,
|
|
78
154
|
{
|
|
79
155
|
MenuListProps: { dense: true },
|
|
@@ -82,23 +158,29 @@ function CssClassMenu({
|
|
|
82
158
|
vertical: "top",
|
|
83
159
|
horizontal: "right"
|
|
84
160
|
},
|
|
85
|
-
|
|
161
|
+
onKeyDown: handleKeyDown
|
|
86
162
|
},
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
163
|
+
!isFixed && [
|
|
164
|
+
/* @__PURE__ */ React4.createElement(UnapplyClassMenuItem, { key: "unapply-class", styleId }),
|
|
165
|
+
/* @__PURE__ */ React4.createElement(Divider, { key: "global-class-items-divider" })
|
|
166
|
+
],
|
|
167
|
+
/* @__PURE__ */ React4.createElement(ListSubheader, null, __("Add a pseudo selector", "elementor")),
|
|
168
|
+
/* @__PURE__ */ React4.createElement(StateMenuItem, { key: "normal", state: null, styleId }),
|
|
169
|
+
STATES.map((state) => {
|
|
170
|
+
return /* @__PURE__ */ React4.createElement(StateMenuItem, { key: state, state, styleId });
|
|
171
|
+
})
|
|
90
172
|
);
|
|
91
173
|
}
|
|
92
|
-
function StateMenuItem({ state,
|
|
93
|
-
const {
|
|
94
|
-
const { setId: setActiveId, setMetaState: setActiveMetaState, meta } = useStyle();
|
|
174
|
+
function StateMenuItem({ state, styleId, ...props }) {
|
|
175
|
+
const { id: activeId, setId: setActiveId, setMetaState: setActiveMetaState, meta } = useStyle();
|
|
95
176
|
const { state: activeState } = meta;
|
|
177
|
+
const isActive = styleId === activeId;
|
|
96
178
|
const isSelected = state === activeState && isActive;
|
|
97
|
-
return /* @__PURE__ */
|
|
179
|
+
return /* @__PURE__ */ React4.createElement(
|
|
98
180
|
StyledMenuItem,
|
|
99
181
|
{
|
|
100
|
-
|
|
101
|
-
|
|
182
|
+
...props,
|
|
183
|
+
selected: isSelected,
|
|
102
184
|
onClick: () => {
|
|
103
185
|
if (!isActive) {
|
|
104
186
|
setActiveId(styleId);
|
|
@@ -106,16 +188,14 @@ function StateMenuItem({ state, disabled }) {
|
|
|
106
188
|
setActiveMetaState(state);
|
|
107
189
|
}
|
|
108
190
|
},
|
|
109
|
-
isSelected && /* @__PURE__ */
|
|
110
|
-
/* @__PURE__ */
|
|
191
|
+
isSelected && /* @__PURE__ */ React4.createElement(ListItemIcon, null, /* @__PURE__ */ React4.createElement(CheckIcon, null)),
|
|
192
|
+
/* @__PURE__ */ React4.createElement(ListItemText, { primary: state ? `:${state}` : "Normal" })
|
|
111
193
|
);
|
|
112
194
|
}
|
|
113
|
-
function
|
|
114
|
-
|
|
195
|
+
function UnapplyClassMenuItem({ styleId, ...props }) {
|
|
196
|
+
const unapplyClass = useUnapplyClass(styleId);
|
|
197
|
+
return /* @__PURE__ */ React4.createElement(StyledMenuItem, { ...props, onClick: unapplyClass }, /* @__PURE__ */ React4.createElement(ListItemText, { primary: "Remove" }));
|
|
115
198
|
}
|
|
116
|
-
var GlobalClassMenuSection = styled(Box)(({ theme }) => ({
|
|
117
|
-
borderBottom: `1px solid ${theme?.palette.divider}`
|
|
118
|
-
}));
|
|
119
199
|
var StyledMenuItem = styled(MenuItem)({
|
|
120
200
|
"&:hover": {
|
|
121
201
|
color: "text.primary"
|
|
@@ -123,99 +203,11 @@ var StyledMenuItem = styled(MenuItem)({
|
|
|
123
203
|
}
|
|
124
204
|
});
|
|
125
205
|
|
|
126
|
-
// src/components/css-class-selector.tsx
|
|
127
|
-
import * as React9 from "react";
|
|
128
|
-
import { useId as useId2, useRef as useRef3 } from "react";
|
|
129
|
-
import { getElementSetting, updateElementSettings, useElementSetting } from "@elementor/editor-elements";
|
|
130
|
-
import { classesPropTypeUtil } from "@elementor/editor-props";
|
|
131
|
-
import {
|
|
132
|
-
ELEMENTS_STYLES_PROVIDER_KEY,
|
|
133
|
-
stylesRepository,
|
|
134
|
-
useAllStylesByProvider,
|
|
135
|
-
useCreateActionsByProvider
|
|
136
|
-
} from "@elementor/editor-styles-repository";
|
|
137
|
-
import { DotsVerticalIcon } from "@elementor/icons";
|
|
138
|
-
import { createLocation } from "@elementor/locations";
|
|
139
|
-
import {
|
|
140
|
-
bindTrigger,
|
|
141
|
-
Chip,
|
|
142
|
-
Stack,
|
|
143
|
-
Typography,
|
|
144
|
-
UnstableChipGroup,
|
|
145
|
-
usePopupState
|
|
146
|
-
} from "@elementor/ui";
|
|
147
|
-
import { __ as __2 } from "@wordpress/i18n";
|
|
148
|
-
|
|
149
|
-
// src/contexts/classes-prop-context.tsx
|
|
150
|
-
import * as React4 from "react";
|
|
151
|
-
import { createContext as createContext3, useContext as useContext3 } from "react";
|
|
152
|
-
var Context2 = createContext3(null);
|
|
153
|
-
function ClassesPropProvider({ children, prop }) {
|
|
154
|
-
return /* @__PURE__ */ React4.createElement(Context2.Provider, { value: { prop } }, children);
|
|
155
|
-
}
|
|
156
|
-
function useClassesProp() {
|
|
157
|
-
const context = useContext3(Context2);
|
|
158
|
-
if (!context) {
|
|
159
|
-
throw new Error("useClassesProp must be used within a ClassesPropProvider");
|
|
160
|
-
}
|
|
161
|
-
return context.prop;
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
// src/contexts/element-context.tsx
|
|
165
|
-
import * as React5 from "react";
|
|
166
|
-
import { createContext as createContext4, useContext as useContext4 } from "react";
|
|
167
|
-
var Context3 = createContext4(null);
|
|
168
|
-
function ElementProvider({ children, element, elementType }) {
|
|
169
|
-
return /* @__PURE__ */ React5.createElement(Context3.Provider, { value: { element, elementType } }, children);
|
|
170
|
-
}
|
|
171
|
-
function useElement() {
|
|
172
|
-
const context = useContext4(Context3);
|
|
173
|
-
if (!context) {
|
|
174
|
-
throw new Error("useElement must be used within a ElementProvider");
|
|
175
|
-
}
|
|
176
|
-
return context;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
// src/components/conditional-tooltip-wrapper.tsx
|
|
180
|
-
import { useEffect, useRef, useState } from "react";
|
|
181
|
-
import * as React6 from "react";
|
|
182
|
-
import { Box as Box2, Tooltip } from "@elementor/ui";
|
|
183
|
-
var ConditionalTooltipWrapper = ({ maxWidth, title }) => {
|
|
184
|
-
const elRef = useRef(null);
|
|
185
|
-
const [isOverflown, setIsOverflown] = useState(false);
|
|
186
|
-
useEffect(() => {
|
|
187
|
-
const onResize = () => {
|
|
188
|
-
const element = elRef.current;
|
|
189
|
-
if (element) {
|
|
190
|
-
setIsOverflown(element.scrollWidth > element.clientWidth);
|
|
191
|
-
}
|
|
192
|
-
};
|
|
193
|
-
onResize();
|
|
194
|
-
window.addEventListener("resize", onResize);
|
|
195
|
-
return () => {
|
|
196
|
-
window.removeEventListener("resize", onResize);
|
|
197
|
-
};
|
|
198
|
-
}, []);
|
|
199
|
-
if (isOverflown) {
|
|
200
|
-
return /* @__PURE__ */ React6.createElement(Tooltip, { title, placement: "top" }, /* @__PURE__ */ React6.createElement(Content, { maxWidth, ref: elRef }, title));
|
|
201
|
-
}
|
|
202
|
-
return /* @__PURE__ */ React6.createElement(Content, { maxWidth, ref: elRef }, title);
|
|
203
|
-
};
|
|
204
|
-
var Content = React6.forwardRef(({ maxWidth, ...tooltipProps }, ref) => /* @__PURE__ */ React6.createElement(
|
|
205
|
-
Box2,
|
|
206
|
-
{
|
|
207
|
-
ref,
|
|
208
|
-
position: "relative",
|
|
209
|
-
sx: { overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap", maxWidth },
|
|
210
|
-
...tooltipProps
|
|
211
|
-
}
|
|
212
|
-
));
|
|
213
|
-
|
|
214
206
|
// src/components/editable-field.tsx
|
|
215
|
-
import * as
|
|
216
|
-
import { createContext as
|
|
217
|
-
import { Tooltip
|
|
218
|
-
var Context4 =
|
|
207
|
+
import * as React5 from "react";
|
|
208
|
+
import { createContext as createContext4, useContext as useContext4, useEffect, useRef, useState } from "react";
|
|
209
|
+
import { Tooltip } from "@elementor/ui";
|
|
210
|
+
var Context4 = createContext4(null);
|
|
219
211
|
var EditableFieldProvider = ({
|
|
220
212
|
children,
|
|
221
213
|
value,
|
|
@@ -223,9 +215,9 @@ var EditableFieldProvider = ({
|
|
|
223
215
|
validation,
|
|
224
216
|
editable
|
|
225
217
|
}) => {
|
|
226
|
-
const [isEditing, setIsEditing] =
|
|
227
|
-
const [submitting, setSubmitting] =
|
|
228
|
-
const [error, setError] =
|
|
218
|
+
const [isEditing, setIsEditing] = useState(false);
|
|
219
|
+
const [submitting, setSubmitting] = useState(false);
|
|
220
|
+
const [error, setError] = useState(null);
|
|
229
221
|
const openEditMode = () => {
|
|
230
222
|
setIsEditing(true);
|
|
231
223
|
};
|
|
@@ -250,7 +242,7 @@ var EditableFieldProvider = ({
|
|
|
250
242
|
setError(validation(newValue));
|
|
251
243
|
}
|
|
252
244
|
};
|
|
253
|
-
return /* @__PURE__ */
|
|
245
|
+
return /* @__PURE__ */ React5.createElement(
|
|
254
246
|
Context4.Provider,
|
|
255
247
|
{
|
|
256
248
|
value: {
|
|
@@ -269,9 +261,9 @@ var EditableFieldProvider = ({
|
|
|
269
261
|
);
|
|
270
262
|
};
|
|
271
263
|
var EditableField = ({ children, onClick, ...props }) => {
|
|
272
|
-
const ref =
|
|
264
|
+
const ref = useRef(null);
|
|
273
265
|
const { isEditing, closeEditMode, value, onChange, error, submit, editable } = useEditableField();
|
|
274
|
-
|
|
266
|
+
useEffect(() => {
|
|
275
267
|
if (isEditing) {
|
|
276
268
|
ref.current?.focus();
|
|
277
269
|
selectAll();
|
|
@@ -306,7 +298,7 @@ var EditableField = ({ children, onClick, ...props }) => {
|
|
|
306
298
|
if (!editable) {
|
|
307
299
|
return children;
|
|
308
300
|
}
|
|
309
|
-
return /* @__PURE__ */
|
|
301
|
+
return /* @__PURE__ */ React5.createElement(Tooltip, { open: !!error, title: error, placement: "top" }, /* @__PURE__ */ React5.createElement("div", { onKeyDown: handleKeyDown, onClick: handleClick, ...props }, /* @__PURE__ */ React5.createElement(
|
|
310
302
|
"span",
|
|
311
303
|
{
|
|
312
304
|
ref,
|
|
@@ -320,7 +312,7 @@ var EditableField = ({ children, onClick, ...props }) => {
|
|
|
320
312
|
)));
|
|
321
313
|
};
|
|
322
314
|
var useEditableField = () => {
|
|
323
|
-
const contextValue =
|
|
315
|
+
const contextValue = useContext4(Context4);
|
|
324
316
|
if (!contextValue) {
|
|
325
317
|
throw new Error("useEditableField must be used within a EditableFieldProvider");
|
|
326
318
|
}
|
|
@@ -328,11 +320,11 @@ var useEditableField = () => {
|
|
|
328
320
|
};
|
|
329
321
|
|
|
330
322
|
// src/components/multi-combobox.tsx
|
|
331
|
-
import * as
|
|
332
|
-
import { useId, useState as
|
|
323
|
+
import * as React6 from "react";
|
|
324
|
+
import { useId, useState as useState2 } from "react";
|
|
333
325
|
import {
|
|
334
326
|
Autocomplete,
|
|
335
|
-
Box
|
|
327
|
+
Box,
|
|
336
328
|
createFilterOptions,
|
|
337
329
|
styled as styled2,
|
|
338
330
|
TextField
|
|
@@ -346,7 +338,7 @@ function MultiCombobox({
|
|
|
346
338
|
}) {
|
|
347
339
|
const filter = useFilterOptions();
|
|
348
340
|
const { run, loading } = useActionRunner();
|
|
349
|
-
return /* @__PURE__ */
|
|
341
|
+
return /* @__PURE__ */ React6.createElement(
|
|
350
342
|
Autocomplete,
|
|
351
343
|
{
|
|
352
344
|
...props,
|
|
@@ -359,8 +351,8 @@ function MultiCombobox({
|
|
|
359
351
|
disabled: loading,
|
|
360
352
|
value: selected,
|
|
361
353
|
options: options10,
|
|
362
|
-
renderGroup: (params) => /* @__PURE__ */
|
|
363
|
-
renderInput: (params) => /* @__PURE__ */
|
|
354
|
+
renderGroup: (params) => /* @__PURE__ */ React6.createElement(Group, { ...params }),
|
|
355
|
+
renderInput: (params) => /* @__PURE__ */ React6.createElement(TextField, { ...params }),
|
|
364
356
|
onChange: (_, selectedOrInputValue, reason) => {
|
|
365
357
|
const inputValue = selectedOrInputValue.find((option) => typeof option === "string");
|
|
366
358
|
const optionsAndActions = selectedOrInputValue.filter((option) => typeof option !== "string");
|
|
@@ -400,14 +392,14 @@ function MultiCombobox({
|
|
|
400
392
|
}
|
|
401
393
|
var Group = (params) => {
|
|
402
394
|
const id = `combobox-group-${useId().replace(/:/g, "_")}`;
|
|
403
|
-
return /* @__PURE__ */
|
|
395
|
+
return /* @__PURE__ */ React6.createElement(StyledGroup, { role: "group", "aria-labelledby": id }, /* @__PURE__ */ React6.createElement(StyledGroupHeader, { id }, " ", params.group), /* @__PURE__ */ React6.createElement(StyledGroupItems, { role: "listbox" }, params.children));
|
|
404
396
|
};
|
|
405
397
|
var StyledGroup = styled2("li")`
|
|
406
398
|
&:not( :last-of-type ) {
|
|
407
399
|
border-bottom: 1px solid ${({ theme }) => theme.palette.divider};
|
|
408
400
|
}
|
|
409
401
|
`;
|
|
410
|
-
var StyledGroupHeader = styled2(
|
|
402
|
+
var StyledGroupHeader = styled2(Box)(({ theme }) => ({
|
|
411
403
|
position: "sticky",
|
|
412
404
|
top: "-8px",
|
|
413
405
|
padding: theme.spacing(1, 2),
|
|
@@ -417,10 +409,10 @@ var StyledGroupItems = styled2("ul")`
|
|
|
417
409
|
padding: 0;
|
|
418
410
|
`;
|
|
419
411
|
function useFilterOptions() {
|
|
420
|
-
return
|
|
412
|
+
return useState2(() => createFilterOptions())[0];
|
|
421
413
|
}
|
|
422
414
|
function useActionRunner() {
|
|
423
|
-
const [loading, setLoading] =
|
|
415
|
+
const [loading, setLoading] = useState2(false);
|
|
424
416
|
const run = async (apply, value) => {
|
|
425
417
|
setLoading(true);
|
|
426
418
|
try {
|
|
@@ -462,10 +454,9 @@ function CssClassSelector() {
|
|
|
462
454
|
const { id: activeId, setId: setActiveId } = useStyle();
|
|
463
455
|
const actions = useCreateActions({ pushAppliedId, setActiveId });
|
|
464
456
|
const handleApply = useHandleApply(appliedIds, setAppliedIds);
|
|
465
|
-
const handleActivate = ({ value }) => setActiveId(value);
|
|
466
457
|
const applied = useAppliedOptions(options10, appliedIds);
|
|
467
458
|
const active = applied.find((option) => option.value === activeId) ?? EMPTY_OPTION;
|
|
468
|
-
return /* @__PURE__ */
|
|
459
|
+
return /* @__PURE__ */ React7.createElement(Stack, { gap: 1, p: 2 }, /* @__PURE__ */ React7.createElement(Stack, { direction: "row", gap: 1, alignItems: "center", justifyContent: "space-between" }, /* @__PURE__ */ React7.createElement(Typography, { component: "label", variant: "caption", htmlFor: ID }, __2("CSS Classes", "elementor")), /* @__PURE__ */ React7.createElement(Stack, { direction: "row", gap: 1 }, /* @__PURE__ */ React7.createElement(ClassSelectorActionsSlot, null))), /* @__PURE__ */ React7.createElement(
|
|
469
460
|
MultiCombobox,
|
|
470
461
|
{
|
|
471
462
|
id: ID,
|
|
@@ -475,35 +466,36 @@ function CssClassSelector() {
|
|
|
475
466
|
onSelect: handleApply,
|
|
476
467
|
limitTags: TAGS_LIMIT,
|
|
477
468
|
actions,
|
|
478
|
-
getLimitTagsText: (more) => /* @__PURE__ */
|
|
469
|
+
getLimitTagsText: (more) => /* @__PURE__ */ React7.createElement(Chip, { size: "tiny", variant: "standard", label: `+${more}`, clickable: true }),
|
|
479
470
|
renderTags: (values, getTagProps) => values.map((value, index) => {
|
|
480
471
|
const chipProps = getTagProps({ index });
|
|
481
472
|
const isActive = value.value === active?.value;
|
|
473
|
+
const isElementsProvider = value.provider === ELEMENTS_STYLES_PROVIDER_KEY;
|
|
482
474
|
const renameLabel = (newLabel) => {
|
|
483
475
|
return updateClassByProvider(value.provider, { label: newLabel, id: value.value });
|
|
484
476
|
};
|
|
485
|
-
return /* @__PURE__ */
|
|
477
|
+
return /* @__PURE__ */ React7.createElement(
|
|
486
478
|
EditableFieldProvider,
|
|
487
479
|
{
|
|
488
480
|
key: chipProps.key,
|
|
489
481
|
value: value.label,
|
|
490
482
|
onSubmit: renameLabel,
|
|
491
|
-
editable: value.
|
|
483
|
+
editable: !value.fixed,
|
|
492
484
|
validation: (newLabel) => renameValidation(
|
|
493
485
|
newLabel,
|
|
494
486
|
options10.filter((option) => option.value !== value.value)
|
|
495
487
|
)
|
|
496
488
|
},
|
|
497
|
-
/* @__PURE__ */
|
|
489
|
+
/* @__PURE__ */ React7.createElement(
|
|
498
490
|
CssClassItem,
|
|
499
491
|
{
|
|
500
492
|
label: value.label,
|
|
501
493
|
id: value.value,
|
|
502
494
|
isActive,
|
|
503
|
-
|
|
495
|
+
isFixed: value.fixed,
|
|
504
496
|
color: isActive && value.color ? value.color : "default",
|
|
505
497
|
chipProps,
|
|
506
|
-
onClickActive: () =>
|
|
498
|
+
onClickActive: () => setActiveId(isElementsProvider ? null : value.value)
|
|
507
499
|
}
|
|
508
500
|
)
|
|
509
501
|
);
|
|
@@ -516,7 +508,7 @@ function CssClassItem({
|
|
|
516
508
|
id,
|
|
517
509
|
label,
|
|
518
510
|
isActive,
|
|
519
|
-
|
|
511
|
+
isFixed = false,
|
|
520
512
|
color: colorProp,
|
|
521
513
|
chipProps,
|
|
522
514
|
onClickActive
|
|
@@ -524,16 +516,16 @@ function CssClassItem({
|
|
|
524
516
|
const { meta } = useStyle();
|
|
525
517
|
const popupId = useId2().replace(/:/g, "_");
|
|
526
518
|
const popupState = usePopupState({ variant: "popover", popupId });
|
|
527
|
-
const chipRef =
|
|
519
|
+
const chipRef = useRef2(null);
|
|
528
520
|
const { onDelete, ...chipGroupProps } = chipProps;
|
|
529
521
|
const { isEditing, openEditMode, error, submitting } = useEditableField();
|
|
530
522
|
const color = error ? "error" : colorProp;
|
|
531
|
-
return /* @__PURE__ */
|
|
523
|
+
return /* @__PURE__ */ React7.createElement(React7.Fragment, null, /* @__PURE__ */ React7.createElement(UnstableChipGroup, { ref: chipRef, ...chipGroupProps, "aria-label": `Edit ${label}`, role: "group" }, /* @__PURE__ */ React7.createElement(
|
|
532
524
|
Chip,
|
|
533
525
|
{
|
|
534
526
|
disabled: submitting,
|
|
535
527
|
size: CHIP_SIZE,
|
|
536
|
-
label: /* @__PURE__ */
|
|
528
|
+
label: /* @__PURE__ */ React7.createElement(
|
|
537
529
|
EditableField,
|
|
538
530
|
{
|
|
539
531
|
onDoubleClick: () => {
|
|
@@ -547,7 +539,7 @@ function CssClassItem({
|
|
|
547
539
|
}
|
|
548
540
|
}
|
|
549
541
|
},
|
|
550
|
-
/* @__PURE__ */
|
|
542
|
+
/* @__PURE__ */ React7.createElement(EllipsisWithTooltip, { maxWidth: "10ch", title: label })
|
|
551
543
|
),
|
|
552
544
|
variant: isActive && !meta.state ? "filled" : "standard",
|
|
553
545
|
color,
|
|
@@ -559,21 +551,21 @@ function CssClassItem({
|
|
|
559
551
|
}
|
|
560
552
|
}
|
|
561
553
|
}
|
|
562
|
-
), !isEditing && /* @__PURE__ */
|
|
554
|
+
), !isEditing && /* @__PURE__ */ React7.createElement(
|
|
563
555
|
Chip,
|
|
564
556
|
{
|
|
565
557
|
disabled: submitting,
|
|
566
558
|
size: CHIP_SIZE,
|
|
567
|
-
label: /* @__PURE__ */
|
|
559
|
+
label: /* @__PURE__ */ React7.createElement(Stack, { direction: "row", gap: 0.5, alignItems: "center" }, isActive && meta.state && /* @__PURE__ */ React7.createElement(Typography, { variant: "inherit" }, meta.state), /* @__PURE__ */ React7.createElement(DotsVerticalIcon, { fontSize: "inherit" })),
|
|
568
560
|
variant: "filled",
|
|
569
561
|
color,
|
|
570
562
|
...bindTrigger(popupState),
|
|
571
563
|
"aria-label": __2("Open CSS Class Menu", "elementor")
|
|
572
564
|
}
|
|
573
|
-
)), /* @__PURE__ */
|
|
565
|
+
)), /* @__PURE__ */ React7.createElement(CssClassMenu, { styleId: id, popupState, isFixed }));
|
|
574
566
|
}
|
|
575
567
|
var updateClassByProvider = (provider, data) => {
|
|
576
|
-
const providerInstance =
|
|
568
|
+
const providerInstance = stylesRepository2.getProviderByKey(provider);
|
|
577
569
|
if (!providerInstance) {
|
|
578
570
|
return;
|
|
579
571
|
}
|
|
@@ -597,24 +589,24 @@ var isNameExist = (newLabel, options10) => {
|
|
|
597
589
|
var isCharactersNotSupported = (newLabel) => !VALID_SELECTOR_REGEX.test(newLabel);
|
|
598
590
|
function useOptions() {
|
|
599
591
|
const { element } = useElement();
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
return styleDefs.map((styleDef) => {
|
|
607
|
-
return {
|
|
608
|
-
label: styleDef.label,
|
|
609
|
-
value: styleDef.id,
|
|
610
|
-
fixed: isElements,
|
|
611
|
-
color: isElements ? "primary" : "global",
|
|
612
|
-
provider: provider.key,
|
|
613
|
-
group: provider.labels?.plural
|
|
614
|
-
};
|
|
615
|
-
});
|
|
592
|
+
const isProviderEditable = (provider) => !!provider.actions.updateProps;
|
|
593
|
+
return useProviders().filter(isProviderEditable).flatMap((provider) => {
|
|
594
|
+
const isElements = provider.key === ELEMENTS_STYLES_PROVIDER_KEY;
|
|
595
|
+
const styleDefs = provider.actions.get({ elementId: element.id });
|
|
596
|
+
if (isElements && styleDefs.length === 0) {
|
|
597
|
+
return [EMPTY_OPTION];
|
|
616
598
|
}
|
|
617
|
-
|
|
599
|
+
return styleDefs.map((styleDef) => {
|
|
600
|
+
return {
|
|
601
|
+
label: styleDef.label,
|
|
602
|
+
value: styleDef.id,
|
|
603
|
+
fixed: isElements,
|
|
604
|
+
color: isElements ? "primary" : "global",
|
|
605
|
+
provider: provider.key,
|
|
606
|
+
group: provider.labels?.plural
|
|
607
|
+
};
|
|
608
|
+
});
|
|
609
|
+
});
|
|
618
610
|
}
|
|
619
611
|
function useCreateActions({
|
|
620
612
|
pushAppliedId,
|
|
@@ -656,9 +648,9 @@ function useAppliedOptions(options10, appliedIds) {
|
|
|
656
648
|
function useAppliedClassesIds() {
|
|
657
649
|
const { element } = useElement();
|
|
658
650
|
const currentClassesProp = useClassesProp();
|
|
659
|
-
const value =
|
|
651
|
+
const value = useElementSetting2(element.id, currentClassesProp)?.value || [];
|
|
660
652
|
const setValue = (ids) => {
|
|
661
|
-
|
|
653
|
+
updateElementSettings2({
|
|
662
654
|
id: element.id,
|
|
663
655
|
props: {
|
|
664
656
|
[currentClassesProp]: classesPropTypeUtil.create(ids)
|
|
@@ -700,7 +692,7 @@ function useHandleApply(appliedIds, setAppliedIds) {
|
|
|
700
692
|
import { __createPanel as createPanel } from "@elementor/editor-panels";
|
|
701
693
|
|
|
702
694
|
// src/components/editing-panel.tsx
|
|
703
|
-
import * as
|
|
695
|
+
import * as React60 from "react";
|
|
704
696
|
import { ControlActionsProvider, ControlReplacementProvider } from "@elementor/editor-controls";
|
|
705
697
|
import { useSelectedElement } from "@elementor/editor-elements";
|
|
706
698
|
import { Panel, PanelBody, PanelHeader, PanelHeaderTitle } from "@elementor/editor-panels";
|
|
@@ -709,13 +701,13 @@ import { ErrorBoundary } from "@elementor/ui";
|
|
|
709
701
|
import { __ as __40 } from "@wordpress/i18n";
|
|
710
702
|
|
|
711
703
|
// src/controls-actions.ts
|
|
712
|
-
import { createMenu
|
|
704
|
+
import { createMenu } from "@elementor/menus";
|
|
713
705
|
|
|
714
706
|
// src/popover-action.tsx
|
|
715
|
-
import * as
|
|
707
|
+
import * as React8 from "react";
|
|
716
708
|
import { useId as useId3 } from "react";
|
|
717
709
|
import { XIcon } from "@elementor/icons";
|
|
718
|
-
import { bindPopover, bindToggle, IconButton, Popover, Stack as Stack2, Tooltip as
|
|
710
|
+
import { bindPopover, bindToggle, IconButton, Popover, Stack as Stack2, Tooltip as Tooltip2, Typography as Typography2, usePopupState as usePopupState2 } from "@elementor/ui";
|
|
719
711
|
var SIZE = "tiny";
|
|
720
712
|
function PopoverAction({
|
|
721
713
|
title,
|
|
@@ -731,7 +723,7 @@ function PopoverAction({
|
|
|
731
723
|
if (!visible) {
|
|
732
724
|
return null;
|
|
733
725
|
}
|
|
734
|
-
return /* @__PURE__ */
|
|
726
|
+
return /* @__PURE__ */ React8.createElement(React8.Fragment, null, /* @__PURE__ */ React8.createElement(Tooltip2, { placement: "top", title }, /* @__PURE__ */ React8.createElement(IconButton, { "aria-label": title, key: id, size: SIZE, ...bindToggle(popupState) }, /* @__PURE__ */ React8.createElement(Icon, { fontSize: SIZE }))), /* @__PURE__ */ React8.createElement(
|
|
735
727
|
Popover,
|
|
736
728
|
{
|
|
737
729
|
disablePortal: true,
|
|
@@ -742,39 +734,38 @@ function PopoverAction({
|
|
|
742
734
|
},
|
|
743
735
|
...bindPopover(popupState)
|
|
744
736
|
},
|
|
745
|
-
/* @__PURE__ */
|
|
746
|
-
/* @__PURE__ */
|
|
737
|
+
/* @__PURE__ */ React8.createElement(Stack2, { direction: "row", alignItems: "center", pl: 1.5, pr: 0.5, py: 1.5 }, /* @__PURE__ */ React8.createElement(Icon, { fontSize: SIZE, sx: { mr: 0.5 } }), /* @__PURE__ */ React8.createElement(Typography2, { variant: "subtitle2" }, title), /* @__PURE__ */ React8.createElement(IconButton, { sx: { ml: "auto" }, size: SIZE, onClick: popupState.close }, /* @__PURE__ */ React8.createElement(XIcon, { fontSize: SIZE }))),
|
|
738
|
+
/* @__PURE__ */ React8.createElement(PopoverContent, { closePopover: popupState.close })
|
|
747
739
|
));
|
|
748
740
|
}
|
|
749
741
|
|
|
750
742
|
// src/controls-actions.ts
|
|
751
|
-
var controlActionsMenu =
|
|
743
|
+
var controlActionsMenu = createMenu({
|
|
752
744
|
components: {
|
|
753
745
|
PopoverAction
|
|
754
746
|
}
|
|
755
747
|
});
|
|
756
748
|
|
|
757
749
|
// src/components/editing-panel-error-fallback.tsx
|
|
758
|
-
import * as
|
|
759
|
-
import { Alert, Box as
|
|
750
|
+
import * as React9 from "react";
|
|
751
|
+
import { Alert, Box as Box2 } from "@elementor/ui";
|
|
760
752
|
function EditorPanelErrorFallback() {
|
|
761
|
-
return /* @__PURE__ */
|
|
753
|
+
return /* @__PURE__ */ React9.createElement(Box2, { role: "alert", sx: { minHeight: "100%", p: 2 } }, /* @__PURE__ */ React9.createElement(Alert, { severity: "error", sx: { mb: 2, maxWidth: 400, textAlign: "center" } }, /* @__PURE__ */ React9.createElement("strong", null, "Something went wrong")));
|
|
762
754
|
}
|
|
763
755
|
|
|
764
756
|
// src/components/editing-panel-tabs.tsx
|
|
765
|
-
import * as
|
|
766
|
-
import { Fragment as
|
|
767
|
-
import { Divider as
|
|
757
|
+
import * as React59 from "react";
|
|
758
|
+
import { Fragment as Fragment8 } from "react";
|
|
759
|
+
import { Divider as Divider9, Stack as Stack19, Tab, TabPanel, Tabs, useTabs } from "@elementor/ui";
|
|
768
760
|
import { __ as __39 } from "@wordpress/i18n";
|
|
769
761
|
|
|
770
762
|
// src/components/settings-tab.tsx
|
|
771
|
-
import * as
|
|
763
|
+
import * as React15 from "react";
|
|
772
764
|
import { ControlLabel } from "@elementor/editor-controls";
|
|
773
765
|
import { SessionStorageProvider } from "@elementor/session";
|
|
774
766
|
|
|
775
767
|
// src/controls-registry/control.tsx
|
|
776
|
-
import * as
|
|
777
|
-
import { createError } from "@elementor/utils";
|
|
768
|
+
import * as React10 from "react";
|
|
778
769
|
|
|
779
770
|
// src/controls-registry/controls-registry.tsx
|
|
780
771
|
import {
|
|
@@ -799,31 +790,27 @@ var getControlByType = (type) => controlTypes[type]?.component;
|
|
|
799
790
|
var getLayoutByType = (type) => controlTypes[type].layout;
|
|
800
791
|
|
|
801
792
|
// src/controls-registry/control.tsx
|
|
802
|
-
var ControlTypeError = createError({
|
|
803
|
-
code: "CONTROL_TYPE_NOT_FOUND",
|
|
804
|
-
message: `Control type not found.`
|
|
805
|
-
});
|
|
806
793
|
var Control = ({ props, type }) => {
|
|
807
794
|
const ControlByType = getControlByType(type);
|
|
808
795
|
if (!ControlByType) {
|
|
809
|
-
throw new
|
|
810
|
-
context: { type }
|
|
796
|
+
throw new ControlTypeNotFoundError({
|
|
797
|
+
context: { controlType: type }
|
|
811
798
|
});
|
|
812
799
|
}
|
|
813
|
-
return /* @__PURE__ */
|
|
800
|
+
return /* @__PURE__ */ React10.createElement(ControlByType, { ...props });
|
|
814
801
|
};
|
|
815
802
|
|
|
816
803
|
// src/controls-registry/control-type-container.tsx
|
|
817
|
-
import * as
|
|
818
|
-
import { Box as
|
|
804
|
+
import * as React11 from "react";
|
|
805
|
+
import { Box as Box3, styled as styled3 } from "@elementor/ui";
|
|
819
806
|
var ControlTypeContainer = ({
|
|
820
807
|
controlType,
|
|
821
808
|
children
|
|
822
809
|
}) => {
|
|
823
810
|
const layout = getLayoutByType(controlType);
|
|
824
|
-
return /* @__PURE__ */
|
|
811
|
+
return /* @__PURE__ */ React11.createElement(StyledContainer, { layout }, children);
|
|
825
812
|
};
|
|
826
|
-
var StyledContainer = styled3(
|
|
813
|
+
var StyledContainer = styled3(Box3, {
|
|
827
814
|
shouldForwardProp: (prop) => !["layout"].includes(prop)
|
|
828
815
|
})(({ layout, theme }) => ({
|
|
829
816
|
display: "grid",
|
|
@@ -839,9 +826,9 @@ var getGridLayout = (layout) => ({
|
|
|
839
826
|
});
|
|
840
827
|
|
|
841
828
|
// src/controls-registry/settings-field.tsx
|
|
842
|
-
import * as
|
|
829
|
+
import * as React12 from "react";
|
|
843
830
|
import { PropKeyProvider, PropProvider } from "@elementor/editor-controls";
|
|
844
|
-
import { updateElementSettings as
|
|
831
|
+
import { updateElementSettings as updateElementSettings3, useElementSetting as useElementSetting3 } from "@elementor/editor-elements";
|
|
845
832
|
|
|
846
833
|
// src/controls-registry/create-top-level-object-type.ts
|
|
847
834
|
var createTopLevelOjectType = ({ schema }) => {
|
|
@@ -859,22 +846,22 @@ var createTopLevelOjectType = ({ schema }) => {
|
|
|
859
846
|
// src/controls-registry/settings-field.tsx
|
|
860
847
|
var SettingsField = ({ bind, children }) => {
|
|
861
848
|
const { element, elementType } = useElement();
|
|
862
|
-
const settingsValue =
|
|
849
|
+
const settingsValue = useElementSetting3(element.id, bind);
|
|
863
850
|
const value = { [bind]: settingsValue };
|
|
864
851
|
const propType = createTopLevelOjectType({ schema: elementType.propsSchema });
|
|
865
852
|
const setValue = (newValue) => {
|
|
866
|
-
|
|
853
|
+
updateElementSettings3({
|
|
867
854
|
id: element.id,
|
|
868
855
|
props: { ...newValue }
|
|
869
856
|
});
|
|
870
857
|
};
|
|
871
|
-
return /* @__PURE__ */
|
|
858
|
+
return /* @__PURE__ */ React12.createElement(PropProvider, { propType, value, setValue }, /* @__PURE__ */ React12.createElement(PropKeyProvider, { bind }, children));
|
|
872
859
|
};
|
|
873
860
|
|
|
874
861
|
// src/components/section.tsx
|
|
875
|
-
import * as
|
|
876
|
-
import { useId as useId4, useState as
|
|
877
|
-
import { Collapse, Divider, ListItemButton, ListItemText as ListItemText2, Stack as Stack3 } from "@elementor/ui";
|
|
862
|
+
import * as React13 from "react";
|
|
863
|
+
import { useId as useId4, useState as useState3 } from "react";
|
|
864
|
+
import { Collapse, Divider as Divider2, ListItemButton, ListItemText as ListItemText2, Stack as Stack3 } from "@elementor/ui";
|
|
878
865
|
|
|
879
866
|
// src/components/collapse-icon.tsx
|
|
880
867
|
import { ChevronDownIcon } from "@elementor/icons";
|
|
@@ -890,40 +877,40 @@ var CollapseIcon = styled4(ChevronDownIcon, {
|
|
|
890
877
|
|
|
891
878
|
// src/components/section.tsx
|
|
892
879
|
function Section({ title, children, defaultExpanded = false }) {
|
|
893
|
-
const [isOpen, setIsOpen] =
|
|
880
|
+
const [isOpen, setIsOpen] = useState3(!!defaultExpanded);
|
|
894
881
|
const id = useId4();
|
|
895
882
|
const labelId = `label-${id}`;
|
|
896
883
|
const contentId = `content-${id}`;
|
|
897
|
-
return /* @__PURE__ */
|
|
884
|
+
return /* @__PURE__ */ React13.createElement(React13.Fragment, null, /* @__PURE__ */ React13.createElement(
|
|
898
885
|
ListItemButton,
|
|
899
886
|
{
|
|
900
887
|
id: labelId,
|
|
901
888
|
"aria-controls": contentId,
|
|
902
889
|
onClick: () => setIsOpen((prev) => !prev)
|
|
903
890
|
},
|
|
904
|
-
/* @__PURE__ */
|
|
905
|
-
/* @__PURE__ */
|
|
906
|
-
), /* @__PURE__ */
|
|
891
|
+
/* @__PURE__ */ React13.createElement(ListItemText2, { secondary: title }),
|
|
892
|
+
/* @__PURE__ */ React13.createElement(CollapseIcon, { open: isOpen, color: "secondary" })
|
|
893
|
+
), /* @__PURE__ */ React13.createElement(Collapse, { id: contentId, "aria-labelledby": labelId, in: isOpen, timeout: "auto", unmountOnExit: true }, /* @__PURE__ */ React13.createElement(Stack3, { gap: 2.5, p: 2 }, children)), /* @__PURE__ */ React13.createElement(Divider2, null));
|
|
907
894
|
}
|
|
908
895
|
|
|
909
896
|
// src/components/sections-list.tsx
|
|
910
|
-
import * as
|
|
897
|
+
import * as React14 from "react";
|
|
911
898
|
import { List } from "@elementor/ui";
|
|
912
899
|
function SectionsList(props) {
|
|
913
|
-
return /* @__PURE__ */
|
|
900
|
+
return /* @__PURE__ */ React14.createElement(List, { disablePadding: true, component: "div", ...props });
|
|
914
901
|
}
|
|
915
902
|
|
|
916
903
|
// src/components/settings-tab.tsx
|
|
917
904
|
var SettingsTab = () => {
|
|
918
905
|
const { elementType, element } = useElement();
|
|
919
|
-
return /* @__PURE__ */
|
|
906
|
+
return /* @__PURE__ */ React15.createElement(SessionStorageProvider, { prefix: element.id }, /* @__PURE__ */ React15.createElement(SectionsList, null, elementType.controls.map(({ type, value }, index) => {
|
|
920
907
|
if (type === "control") {
|
|
921
|
-
return /* @__PURE__ */
|
|
908
|
+
return /* @__PURE__ */ React15.createElement(Control2, { key: value.bind, control: value });
|
|
922
909
|
}
|
|
923
910
|
if (type === "section") {
|
|
924
|
-
return /* @__PURE__ */
|
|
911
|
+
return /* @__PURE__ */ React15.createElement(Section, { title: value.label, key: type + "." + index, defaultExpanded: true }, value.items?.map((item) => {
|
|
925
912
|
if (item.type === "control") {
|
|
926
|
-
return /* @__PURE__ */
|
|
913
|
+
return /* @__PURE__ */ React15.createElement(Control2, { key: item.value.bind, control: item.value });
|
|
927
914
|
}
|
|
928
915
|
return null;
|
|
929
916
|
}));
|
|
@@ -935,37 +922,42 @@ var Control2 = ({ control }) => {
|
|
|
935
922
|
if (!getControlByType(control.type)) {
|
|
936
923
|
return null;
|
|
937
924
|
}
|
|
938
|
-
return /* @__PURE__ */
|
|
925
|
+
return /* @__PURE__ */ React15.createElement(SettingsField, { bind: control.bind }, /* @__PURE__ */ React15.createElement(ControlTypeContainer, { controlType: control.type }, control.label ? /* @__PURE__ */ React15.createElement(ControlLabel, null, control.label) : null, /* @__PURE__ */ React15.createElement(Control, { type: control.type, props: control.props })));
|
|
939
926
|
};
|
|
940
927
|
|
|
941
928
|
// src/components/style-tab.tsx
|
|
942
|
-
import * as
|
|
943
|
-
import { useState as
|
|
944
|
-
import { useElementSetting as
|
|
929
|
+
import * as React58 from "react";
|
|
930
|
+
import { useState as useState8 } from "react";
|
|
931
|
+
import { useElementSetting as useElementSetting4, useElementStyles } from "@elementor/editor-elements";
|
|
945
932
|
import { useActiveBreakpoint } from "@elementor/editor-responsive";
|
|
946
933
|
import { SessionStorageProvider as SessionStorageProvider2 } from "@elementor/session";
|
|
947
|
-
import { Divider as
|
|
934
|
+
import { Divider as Divider8 } from "@elementor/ui";
|
|
948
935
|
import { __ as __38 } from "@wordpress/i18n";
|
|
949
936
|
|
|
950
937
|
// src/components/style-sections/background-section/background-section.tsx
|
|
951
|
-
import * as
|
|
938
|
+
import * as React17 from "react";
|
|
952
939
|
import { BackgroundControl } from "@elementor/editor-controls";
|
|
953
940
|
|
|
954
941
|
// src/controls-registry/styles-field.tsx
|
|
955
|
-
import * as
|
|
942
|
+
import * as React16 from "react";
|
|
956
943
|
import { PropKeyProvider as PropKeyProvider2, PropProvider as PropProvider2 } from "@elementor/editor-controls";
|
|
957
944
|
import { getStylesSchema } from "@elementor/editor-styles";
|
|
958
945
|
|
|
959
946
|
// src/hooks/use-styles-fields.ts
|
|
960
|
-
import {
|
|
947
|
+
import { useEffect as useEffect2, useReducer } from "react";
|
|
948
|
+
import { createElementStyle } from "@elementor/editor-elements";
|
|
949
|
+
import { getVariantByMeta } from "@elementor/editor-styles";
|
|
961
950
|
import { __ as __3 } from "@wordpress/i18n";
|
|
962
951
|
function useStylesFields(propNames) {
|
|
963
952
|
const { element } = useElement();
|
|
964
|
-
const { id, meta } = useStyle();
|
|
953
|
+
const { id, meta, provider } = useStyle();
|
|
965
954
|
const classesProp = useClassesProp();
|
|
966
|
-
const
|
|
967
|
-
|
|
968
|
-
|
|
955
|
+
const [, reRender] = useReducer((p) => !p, false);
|
|
956
|
+
useEffect2(() => provider?.subscribe(reRender), [provider]);
|
|
957
|
+
const value = getProps({
|
|
958
|
+
elementId: element.id,
|
|
959
|
+
styleId: id,
|
|
960
|
+
provider,
|
|
969
961
|
meta,
|
|
970
962
|
propNames
|
|
971
963
|
});
|
|
@@ -980,15 +972,26 @@ function useStylesFields(propNames) {
|
|
|
980
972
|
});
|
|
981
973
|
return;
|
|
982
974
|
}
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
meta
|
|
988
|
-
});
|
|
975
|
+
if (!provider.actions.updateProps) {
|
|
976
|
+
throw new StylesProviderCannotUpdatePropsError({ context: { providerKey: provider.key } });
|
|
977
|
+
}
|
|
978
|
+
provider.actions.updateProps({ id, meta, props }, { elementId: element.id });
|
|
989
979
|
};
|
|
990
980
|
return [value, setValue];
|
|
991
981
|
}
|
|
982
|
+
function getProps({ styleId, elementId, provider, meta, propNames }) {
|
|
983
|
+
if (!provider || !styleId) {
|
|
984
|
+
return null;
|
|
985
|
+
}
|
|
986
|
+
const style = provider.actions.getById?.(styleId, { elementId });
|
|
987
|
+
if (!style) {
|
|
988
|
+
throw new StyleNotFoundUnderProviderError({ context: { styleId, providerKey: provider.key } });
|
|
989
|
+
}
|
|
990
|
+
const variant = getVariantByMeta(style, meta);
|
|
991
|
+
return Object.fromEntries(
|
|
992
|
+
propNames.map((key) => [key, variant?.props[key] ?? null])
|
|
993
|
+
);
|
|
994
|
+
}
|
|
992
995
|
|
|
993
996
|
// src/hooks/use-styles-field.ts
|
|
994
997
|
function useStylesField(propName) {
|
|
@@ -1011,30 +1014,30 @@ var StylesField = ({ bind, children }) => {
|
|
|
1011
1014
|
const setValues = (newValue) => {
|
|
1012
1015
|
setValue(newValue[bind]);
|
|
1013
1016
|
};
|
|
1014
|
-
return /* @__PURE__ */
|
|
1017
|
+
return /* @__PURE__ */ React16.createElement(PropProvider2, { propType, value: values, setValue: setValues }, /* @__PURE__ */ React16.createElement(PropKeyProvider2, { bind }, children));
|
|
1015
1018
|
};
|
|
1016
1019
|
|
|
1017
1020
|
// src/components/style-sections/background-section/background-section.tsx
|
|
1018
1021
|
var BackgroundSection = () => {
|
|
1019
|
-
return /* @__PURE__ */
|
|
1022
|
+
return /* @__PURE__ */ React17.createElement(StylesField, { bind: "background" }, /* @__PURE__ */ React17.createElement(BackgroundControl, null));
|
|
1020
1023
|
};
|
|
1021
1024
|
|
|
1022
1025
|
// src/components/style-sections/border-section/border-section.tsx
|
|
1023
|
-
import * as
|
|
1024
|
-
import { Divider as
|
|
1026
|
+
import * as React24 from "react";
|
|
1027
|
+
import { Divider as Divider3, Stack as Stack5 } from "@elementor/ui";
|
|
1025
1028
|
|
|
1026
1029
|
// src/components/style-sections/border-section/border-field.tsx
|
|
1027
|
-
import * as
|
|
1030
|
+
import * as React22 from "react";
|
|
1028
1031
|
import { __ as __7 } from "@wordpress/i18n";
|
|
1029
1032
|
|
|
1030
1033
|
// src/components/add-or-remove-content.tsx
|
|
1031
|
-
import * as
|
|
1034
|
+
import * as React18 from "react";
|
|
1032
1035
|
import { ControlLabel as ControlLabel2 } from "@elementor/editor-controls";
|
|
1033
1036
|
import { MinusIcon, PlusIcon } from "@elementor/icons";
|
|
1034
1037
|
import { Collapse as Collapse2, IconButton as IconButton2, Stack as Stack4 } from "@elementor/ui";
|
|
1035
1038
|
var SIZE2 = "tiny";
|
|
1036
1039
|
var AddOrRemoveContent = ({ isAdded, label, onAdd, onRemove, children }) => {
|
|
1037
|
-
return /* @__PURE__ */
|
|
1040
|
+
return /* @__PURE__ */ React18.createElement(Stack4, { gap: 1.5 }, /* @__PURE__ */ React18.createElement(
|
|
1038
1041
|
Stack4,
|
|
1039
1042
|
{
|
|
1040
1043
|
direction: "row",
|
|
@@ -1043,22 +1046,22 @@ var AddOrRemoveContent = ({ isAdded, label, onAdd, onRemove, children }) => {
|
|
|
1043
1046
|
alignItems: "center"
|
|
1044
1047
|
}
|
|
1045
1048
|
},
|
|
1046
|
-
/* @__PURE__ */
|
|
1047
|
-
isAdded ? /* @__PURE__ */
|
|
1048
|
-
), /* @__PURE__ */
|
|
1049
|
+
/* @__PURE__ */ React18.createElement(ControlLabel2, null, label),
|
|
1050
|
+
isAdded ? /* @__PURE__ */ React18.createElement(IconButton2, { size: SIZE2, onClick: onRemove, "aria-label": "Remove" }, /* @__PURE__ */ React18.createElement(MinusIcon, { fontSize: SIZE2 })) : /* @__PURE__ */ React18.createElement(IconButton2, { size: SIZE2, onClick: onAdd, "aria-label": "Add" }, /* @__PURE__ */ React18.createElement(PlusIcon, { fontSize: SIZE2 }))
|
|
1051
|
+
), /* @__PURE__ */ React18.createElement(Collapse2, { in: isAdded, unmountOnExit: true }, /* @__PURE__ */ React18.createElement(Stack4, { gap: 1.5 }, children)));
|
|
1049
1052
|
};
|
|
1050
1053
|
|
|
1051
1054
|
// src/components/style-sections/border-section/border-color-field.tsx
|
|
1052
|
-
import * as
|
|
1055
|
+
import * as React19 from "react";
|
|
1053
1056
|
import { ColorControl, ControlLabel as ControlLabel3 } from "@elementor/editor-controls";
|
|
1054
1057
|
import { Grid } from "@elementor/ui";
|
|
1055
1058
|
import { __ as __4 } from "@wordpress/i18n";
|
|
1056
1059
|
var BorderColorField = () => {
|
|
1057
|
-
return /* @__PURE__ */
|
|
1060
|
+
return /* @__PURE__ */ React19.createElement(StylesField, { bind: "border-color" }, /* @__PURE__ */ React19.createElement(Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React19.createElement(Grid, { item: true, xs: 6 }, /* @__PURE__ */ React19.createElement(ControlLabel3, null, __4("Border Color", "elementor"))), /* @__PURE__ */ React19.createElement(Grid, { item: true, xs: 6 }, /* @__PURE__ */ React19.createElement(ColorControl, null))));
|
|
1058
1061
|
};
|
|
1059
1062
|
|
|
1060
1063
|
// src/components/style-sections/border-section/border-style-field.tsx
|
|
1061
|
-
import * as
|
|
1064
|
+
import * as React20 from "react";
|
|
1062
1065
|
import { ControlLabel as ControlLabel4, SelectControl as SelectControl2 } from "@elementor/editor-controls";
|
|
1063
1066
|
import { Grid as Grid2 } from "@elementor/ui";
|
|
1064
1067
|
import { __ as __5 } from "@wordpress/i18n";
|
|
@@ -1074,11 +1077,11 @@ var borderStyles = [
|
|
|
1074
1077
|
{ value: "outset", label: __5("Outset", "elementor") }
|
|
1075
1078
|
];
|
|
1076
1079
|
var BorderStyleField = () => {
|
|
1077
|
-
return /* @__PURE__ */
|
|
1080
|
+
return /* @__PURE__ */ React20.createElement(StylesField, { bind: "border-style" }, /* @__PURE__ */ React20.createElement(Grid2, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React20.createElement(Grid2, { item: true, xs: 6 }, /* @__PURE__ */ React20.createElement(ControlLabel4, null, __5("Border Type", "elementor"))), /* @__PURE__ */ React20.createElement(Grid2, { item: true, xs: 6 }, /* @__PURE__ */ React20.createElement(SelectControl2, { options: borderStyles }))));
|
|
1078
1081
|
};
|
|
1079
1082
|
|
|
1080
1083
|
// src/components/style-sections/border-section/border-width-field.tsx
|
|
1081
|
-
import * as
|
|
1084
|
+
import * as React21 from "react";
|
|
1082
1085
|
import { EqualUnequalSizesControl } from "@elementor/editor-controls";
|
|
1083
1086
|
import { borderWidthPropTypeUtil } from "@elementor/editor-props";
|
|
1084
1087
|
import { SideAllIcon, SideBottomIcon, SideLeftIcon, SideRightIcon, SideTopIcon } from "@elementor/icons";
|
|
@@ -1086,32 +1089,32 @@ import { __ as __6 } from "@wordpress/i18n";
|
|
|
1086
1089
|
var edges = [
|
|
1087
1090
|
{
|
|
1088
1091
|
label: __6("Top", "elementor"),
|
|
1089
|
-
icon: /* @__PURE__ */
|
|
1092
|
+
icon: /* @__PURE__ */ React21.createElement(SideTopIcon, { fontSize: "tiny" }),
|
|
1090
1093
|
bind: "top"
|
|
1091
1094
|
},
|
|
1092
1095
|
{
|
|
1093
1096
|
label: __6("Right", "elementor"),
|
|
1094
|
-
icon: /* @__PURE__ */
|
|
1097
|
+
icon: /* @__PURE__ */ React21.createElement(SideRightIcon, { fontSize: "tiny" }),
|
|
1095
1098
|
bind: "right"
|
|
1096
1099
|
},
|
|
1097
1100
|
{
|
|
1098
1101
|
label: __6("Bottom", "elementor"),
|
|
1099
|
-
icon: /* @__PURE__ */
|
|
1102
|
+
icon: /* @__PURE__ */ React21.createElement(SideBottomIcon, { fontSize: "tiny" }),
|
|
1100
1103
|
bind: "bottom"
|
|
1101
1104
|
},
|
|
1102
1105
|
{
|
|
1103
1106
|
label: __6("Left", "elementor"),
|
|
1104
|
-
icon: /* @__PURE__ */
|
|
1107
|
+
icon: /* @__PURE__ */ React21.createElement(SideLeftIcon, { fontSize: "tiny" }),
|
|
1105
1108
|
bind: "left"
|
|
1106
1109
|
}
|
|
1107
1110
|
];
|
|
1108
1111
|
var BorderWidthField = () => {
|
|
1109
|
-
return /* @__PURE__ */
|
|
1112
|
+
return /* @__PURE__ */ React21.createElement(StylesField, { bind: "border-width" }, /* @__PURE__ */ React21.createElement(
|
|
1110
1113
|
EqualUnequalSizesControl,
|
|
1111
1114
|
{
|
|
1112
1115
|
items: edges,
|
|
1113
1116
|
label: __6("Border Width", "elementor"),
|
|
1114
|
-
icon: /* @__PURE__ */
|
|
1117
|
+
icon: /* @__PURE__ */ React21.createElement(SideAllIcon, { fontSize: "tiny" }),
|
|
1115
1118
|
multiSizePropTypeUtil: borderWidthPropTypeUtil
|
|
1116
1119
|
}
|
|
1117
1120
|
));
|
|
@@ -1136,7 +1139,7 @@ var BorderField = () => {
|
|
|
1136
1139
|
});
|
|
1137
1140
|
};
|
|
1138
1141
|
const hasBorder = Object.values(border ?? {}).some(Boolean);
|
|
1139
|
-
return /* @__PURE__ */
|
|
1142
|
+
return /* @__PURE__ */ React22.createElement(
|
|
1140
1143
|
AddOrRemoveContent,
|
|
1141
1144
|
{
|
|
1142
1145
|
label: __7("Border", "elementor"),
|
|
@@ -1144,14 +1147,14 @@ var BorderField = () => {
|
|
|
1144
1147
|
onAdd: addBorder,
|
|
1145
1148
|
onRemove: removeBorder
|
|
1146
1149
|
},
|
|
1147
|
-
/* @__PURE__ */
|
|
1148
|
-
/* @__PURE__ */
|
|
1149
|
-
/* @__PURE__ */
|
|
1150
|
+
/* @__PURE__ */ React22.createElement(BorderWidthField, null),
|
|
1151
|
+
/* @__PURE__ */ React22.createElement(BorderColorField, null),
|
|
1152
|
+
/* @__PURE__ */ React22.createElement(BorderStyleField, null)
|
|
1150
1153
|
);
|
|
1151
1154
|
};
|
|
1152
1155
|
|
|
1153
1156
|
// src/components/style-sections/border-section/border-radius-field.tsx
|
|
1154
|
-
import * as
|
|
1157
|
+
import * as React23 from "react";
|
|
1155
1158
|
import { EqualUnequalSizesControl as EqualUnequalSizesControl2 } from "@elementor/editor-controls";
|
|
1156
1159
|
import { borderRadiusPropTypeUtil } from "@elementor/editor-props";
|
|
1157
1160
|
import {
|
|
@@ -1165,53 +1168,53 @@ import { __ as __8 } from "@wordpress/i18n";
|
|
|
1165
1168
|
var corners = [
|
|
1166
1169
|
{
|
|
1167
1170
|
label: __8("Top Left", "elementor"),
|
|
1168
|
-
icon: /* @__PURE__ */
|
|
1171
|
+
icon: /* @__PURE__ */ React23.createElement(RadiusTopLeftIcon, { fontSize: "tiny" }),
|
|
1169
1172
|
bind: "top-left"
|
|
1170
1173
|
},
|
|
1171
1174
|
{
|
|
1172
1175
|
label: __8("Top Right", "elementor"),
|
|
1173
|
-
icon: /* @__PURE__ */
|
|
1176
|
+
icon: /* @__PURE__ */ React23.createElement(RadiusTopRightIcon, { fontSize: "tiny" }),
|
|
1174
1177
|
bind: "top-right"
|
|
1175
1178
|
},
|
|
1176
1179
|
{
|
|
1177
1180
|
label: __8("Bottom Right", "elementor"),
|
|
1178
|
-
icon: /* @__PURE__ */
|
|
1181
|
+
icon: /* @__PURE__ */ React23.createElement(RadiusBottomRightIcon, { fontSize: "tiny" }),
|
|
1179
1182
|
bind: "bottom-right"
|
|
1180
1183
|
},
|
|
1181
1184
|
{
|
|
1182
1185
|
label: __8("Bottom Left", "elementor"),
|
|
1183
|
-
icon: /* @__PURE__ */
|
|
1186
|
+
icon: /* @__PURE__ */ React23.createElement(RadiusBottomLeftIcon, { fontSize: "tiny" }),
|
|
1184
1187
|
bind: "bottom-left"
|
|
1185
1188
|
}
|
|
1186
1189
|
];
|
|
1187
1190
|
var BorderRadiusField = () => {
|
|
1188
|
-
return /* @__PURE__ */
|
|
1191
|
+
return /* @__PURE__ */ React23.createElement(StylesField, { bind: "border-radius" }, /* @__PURE__ */ React23.createElement(
|
|
1189
1192
|
EqualUnequalSizesControl2,
|
|
1190
1193
|
{
|
|
1191
1194
|
items: corners,
|
|
1192
1195
|
label: __8("Border Radius", "elementor"),
|
|
1193
|
-
icon: /* @__PURE__ */
|
|
1196
|
+
icon: /* @__PURE__ */ React23.createElement(BorderCornersIcon, { fontSize: "tiny" }),
|
|
1194
1197
|
multiSizePropTypeUtil: borderRadiusPropTypeUtil
|
|
1195
1198
|
}
|
|
1196
1199
|
));
|
|
1197
1200
|
};
|
|
1198
1201
|
|
|
1199
1202
|
// src/components/style-sections/border-section/border-section.tsx
|
|
1200
|
-
var BorderSection = () => /* @__PURE__ */
|
|
1203
|
+
var BorderSection = () => /* @__PURE__ */ React24.createElement(Stack5, { gap: 1.5 }, /* @__PURE__ */ React24.createElement(BorderRadiusField, null), /* @__PURE__ */ React24.createElement(Divider3, null), /* @__PURE__ */ React24.createElement(BorderField, null));
|
|
1201
1204
|
|
|
1202
1205
|
// src/components/style-sections/effects-section/effects-section.tsx
|
|
1203
|
-
import * as
|
|
1206
|
+
import * as React25 from "react";
|
|
1204
1207
|
import { BoxShadowRepeaterControl } from "@elementor/editor-controls";
|
|
1205
1208
|
import { Stack as Stack6 } from "@elementor/ui";
|
|
1206
1209
|
var EffectsSection = () => {
|
|
1207
|
-
return /* @__PURE__ */
|
|
1210
|
+
return /* @__PURE__ */ React25.createElement(Stack6, { gap: 1.5 }, /* @__PURE__ */ React25.createElement(StylesField, { bind: "box-shadow" }, /* @__PURE__ */ React25.createElement(BoxShadowRepeaterControl, null)));
|
|
1208
1211
|
};
|
|
1209
1212
|
|
|
1210
1213
|
// src/components/style-sections/layout-section/layout-section.tsx
|
|
1211
|
-
import * as
|
|
1214
|
+
import * as React36 from "react";
|
|
1212
1215
|
import { ControlLabel as ControlLabel13 } from "@elementor/editor-controls";
|
|
1213
1216
|
import { useParentElement } from "@elementor/editor-elements";
|
|
1214
|
-
import { Divider as
|
|
1217
|
+
import { Divider as Divider4, Stack as Stack12 } from "@elementor/ui";
|
|
1215
1218
|
import { __ as __18 } from "@wordpress/i18n";
|
|
1216
1219
|
|
|
1217
1220
|
// src/hooks/use-computed-style.ts
|
|
@@ -1240,7 +1243,7 @@ function useComputedStyle(elementId) {
|
|
|
1240
1243
|
}
|
|
1241
1244
|
|
|
1242
1245
|
// src/components/style-sections/layout-section/align-items-field.tsx
|
|
1243
|
-
import * as
|
|
1246
|
+
import * as React27 from "react";
|
|
1244
1247
|
import { ControlLabel as ControlLabel5, ToggleControl } from "@elementor/editor-controls";
|
|
1245
1248
|
import {
|
|
1246
1249
|
LayoutAlignCenterIcon as CenterIcon,
|
|
@@ -1260,8 +1263,8 @@ function useDirection() {
|
|
|
1260
1263
|
}
|
|
1261
1264
|
|
|
1262
1265
|
// src/components/style-sections/layout-section/utils/rotated-icon.tsx
|
|
1263
|
-
import * as
|
|
1264
|
-
import { useRef as
|
|
1266
|
+
import * as React26 from "react";
|
|
1267
|
+
import { useRef as useRef3 } from "react";
|
|
1265
1268
|
import { useTheme as useTheme2 } from "@elementor/ui";
|
|
1266
1269
|
var CLOCKWISE_ANGLES = {
|
|
1267
1270
|
row: 0,
|
|
@@ -1276,9 +1279,9 @@ var COUNTER_CLOCKWISE_ANGLES = {
|
|
|
1276
1279
|
"column-reverse": -270
|
|
1277
1280
|
};
|
|
1278
1281
|
var RotatedIcon = ({ icon: Icon, size, isClockwise = true, offset = 0 }) => {
|
|
1279
|
-
const rotate =
|
|
1282
|
+
const rotate = useRef3(useGetTargetAngle(isClockwise, offset));
|
|
1280
1283
|
rotate.current = useGetTargetAngle(isClockwise, offset, rotate);
|
|
1281
|
-
return /* @__PURE__ */
|
|
1284
|
+
return /* @__PURE__ */ React26.createElement(Icon, { fontSize: size, sx: { transition: ".3s", rotate: `${rotate.current}deg` } });
|
|
1282
1285
|
};
|
|
1283
1286
|
var useGetTargetAngle = (isClockwise, offset, existingRef) => {
|
|
1284
1287
|
const [direction] = useStylesField("flex-direction");
|
|
@@ -1303,35 +1306,35 @@ var options = [
|
|
|
1303
1306
|
{
|
|
1304
1307
|
value: "start",
|
|
1305
1308
|
label: __9("Start", "elementor"),
|
|
1306
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1309
|
+
renderContent: ({ size }) => /* @__PURE__ */ React27.createElement(RotatedIcon, { icon: StartIcon, size, ...iconProps }),
|
|
1307
1310
|
showTooltip: true
|
|
1308
1311
|
},
|
|
1309
1312
|
{
|
|
1310
1313
|
value: "center",
|
|
1311
1314
|
label: __9("Center", "elementor"),
|
|
1312
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1315
|
+
renderContent: ({ size }) => /* @__PURE__ */ React27.createElement(RotatedIcon, { icon: CenterIcon, size, ...iconProps }),
|
|
1313
1316
|
showTooltip: true
|
|
1314
1317
|
},
|
|
1315
1318
|
{
|
|
1316
1319
|
value: "end",
|
|
1317
1320
|
label: __9("End", "elementor"),
|
|
1318
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1321
|
+
renderContent: ({ size }) => /* @__PURE__ */ React27.createElement(RotatedIcon, { icon: EndIcon, size, ...iconProps }),
|
|
1319
1322
|
showTooltip: true
|
|
1320
1323
|
},
|
|
1321
1324
|
{
|
|
1322
1325
|
value: "stretch",
|
|
1323
1326
|
label: __9("Stretch", "elementor"),
|
|
1324
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1327
|
+
renderContent: ({ size }) => /* @__PURE__ */ React27.createElement(RotatedIcon, { icon: JustifyIcon, size, ...iconProps }),
|
|
1325
1328
|
showTooltip: true
|
|
1326
1329
|
}
|
|
1327
1330
|
];
|
|
1328
1331
|
var AlignItemsField = () => {
|
|
1329
1332
|
const { isSiteRtl } = useDirection();
|
|
1330
|
-
return /* @__PURE__ */
|
|
1333
|
+
return /* @__PURE__ */ React27.createElement(DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React27.createElement(ThemeProvider, null, /* @__PURE__ */ React27.createElement(StylesField, { bind: "align-items" }, /* @__PURE__ */ React27.createElement(Grid3, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React27.createElement(Grid3, { item: true, xs: 6 }, /* @__PURE__ */ React27.createElement(ControlLabel5, null, __9("Align items", "elementor"))), /* @__PURE__ */ React27.createElement(Grid3, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React27.createElement(ToggleControl, { options }))))));
|
|
1331
1334
|
};
|
|
1332
1335
|
|
|
1333
1336
|
// src/components/style-sections/layout-section/align-self-child-field.tsx
|
|
1334
|
-
import * as
|
|
1337
|
+
import * as React28 from "react";
|
|
1335
1338
|
import { ControlLabel as ControlLabel6, ToggleControl as ToggleControl2 } from "@elementor/editor-controls";
|
|
1336
1339
|
import {
|
|
1337
1340
|
LayoutAlignCenterIcon as CenterIcon2,
|
|
@@ -1351,35 +1354,35 @@ var options2 = [
|
|
|
1351
1354
|
{
|
|
1352
1355
|
value: "start",
|
|
1353
1356
|
label: __10("Start", "elementor"),
|
|
1354
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1357
|
+
renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(RotatedIcon, { icon: StartIcon2, size, ...iconProps2 }),
|
|
1355
1358
|
showTooltip: true
|
|
1356
1359
|
},
|
|
1357
1360
|
{
|
|
1358
1361
|
value: "center",
|
|
1359
1362
|
label: __10("Center", "elementor"),
|
|
1360
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1363
|
+
renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(RotatedIcon, { icon: CenterIcon2, size, ...iconProps2 }),
|
|
1361
1364
|
showTooltip: true
|
|
1362
1365
|
},
|
|
1363
1366
|
{
|
|
1364
1367
|
value: "end",
|
|
1365
1368
|
label: __10("End", "elementor"),
|
|
1366
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1369
|
+
renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(RotatedIcon, { icon: EndIcon2, size, ...iconProps2 }),
|
|
1367
1370
|
showTooltip: true
|
|
1368
1371
|
},
|
|
1369
1372
|
{
|
|
1370
1373
|
value: "stretch",
|
|
1371
1374
|
label: __10("Stretch", "elementor"),
|
|
1372
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1375
|
+
renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(RotatedIcon, { icon: JustifyIcon2, size, ...iconProps2 }),
|
|
1373
1376
|
showTooltip: true
|
|
1374
1377
|
}
|
|
1375
1378
|
];
|
|
1376
1379
|
var AlignSelfChild = () => {
|
|
1377
1380
|
const { isSiteRtl } = useDirection();
|
|
1378
|
-
return /* @__PURE__ */
|
|
1381
|
+
return /* @__PURE__ */ React28.createElement(DirectionProvider2, { rtl: isSiteRtl }, /* @__PURE__ */ React28.createElement(ThemeProvider2, null, /* @__PURE__ */ React28.createElement(StylesField, { bind: "align-self" }, /* @__PURE__ */ React28.createElement(Grid4, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React28.createElement(Grid4, { item: true, xs: 6 }, /* @__PURE__ */ React28.createElement(ControlLabel6, null, __10("Align self", "elementor"))), /* @__PURE__ */ React28.createElement(Grid4, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React28.createElement(ToggleControl2, { options: options2 }))))));
|
|
1379
1382
|
};
|
|
1380
1383
|
|
|
1381
1384
|
// src/components/style-sections/layout-section/display-field.tsx
|
|
1382
|
-
import * as
|
|
1385
|
+
import * as React29 from "react";
|
|
1383
1386
|
import { ControlLabel as ControlLabel7, ToggleControl as ToggleControl3 } from "@elementor/editor-controls";
|
|
1384
1387
|
import { Stack as Stack7 } from "@elementor/ui";
|
|
1385
1388
|
import { __ as __11 } from "@wordpress/i18n";
|
|
@@ -1396,11 +1399,11 @@ var DisplayField = () => {
|
|
|
1396
1399
|
label: __11("Flex", "elementor")
|
|
1397
1400
|
}
|
|
1398
1401
|
];
|
|
1399
|
-
return /* @__PURE__ */
|
|
1402
|
+
return /* @__PURE__ */ React29.createElement(StylesField, { bind: "display" }, /* @__PURE__ */ React29.createElement(Stack7, { gap: 1 }, /* @__PURE__ */ React29.createElement(ControlLabel7, null, __11("Display", "elementor")), /* @__PURE__ */ React29.createElement(ToggleControl3, { options: options10, fullWidth: true })));
|
|
1400
1403
|
};
|
|
1401
1404
|
|
|
1402
1405
|
// src/components/style-sections/layout-section/flex-direction-field.tsx
|
|
1403
|
-
import * as
|
|
1406
|
+
import * as React30 from "react";
|
|
1404
1407
|
import { ControlLabel as ControlLabel8, ToggleControl as ToggleControl4 } from "@elementor/editor-controls";
|
|
1405
1408
|
import { ArrowDownSmallIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpSmallIcon } from "@elementor/icons";
|
|
1406
1409
|
import { DirectionProvider as DirectionProvider3, Grid as Grid5, ThemeProvider as ThemeProvider3, withDirection as withDirection3 } from "@elementor/ui";
|
|
@@ -1411,14 +1414,14 @@ var options3 = [
|
|
|
1411
1414
|
label: __12("Row", "elementor"),
|
|
1412
1415
|
renderContent: ({ size }) => {
|
|
1413
1416
|
const StartIcon4 = withDirection3(ArrowRightIcon);
|
|
1414
|
-
return /* @__PURE__ */
|
|
1417
|
+
return /* @__PURE__ */ React30.createElement(StartIcon4, { fontSize: size });
|
|
1415
1418
|
},
|
|
1416
1419
|
showTooltip: true
|
|
1417
1420
|
},
|
|
1418
1421
|
{
|
|
1419
1422
|
value: "column",
|
|
1420
1423
|
label: __12("Column", "elementor"),
|
|
1421
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1424
|
+
renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(ArrowDownSmallIcon, { fontSize: size }),
|
|
1422
1425
|
showTooltip: true
|
|
1423
1426
|
},
|
|
1424
1427
|
{
|
|
@@ -1426,25 +1429,25 @@ var options3 = [
|
|
|
1426
1429
|
label: __12("Reversed row", "elementor"),
|
|
1427
1430
|
renderContent: ({ size }) => {
|
|
1428
1431
|
const EndIcon4 = withDirection3(ArrowLeftIcon);
|
|
1429
|
-
return /* @__PURE__ */
|
|
1432
|
+
return /* @__PURE__ */ React30.createElement(EndIcon4, { fontSize: size });
|
|
1430
1433
|
},
|
|
1431
1434
|
showTooltip: true
|
|
1432
1435
|
},
|
|
1433
1436
|
{
|
|
1434
1437
|
value: "column-reverse",
|
|
1435
1438
|
label: __12("Reversed column", "elementor"),
|
|
1436
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1439
|
+
renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(ArrowUpSmallIcon, { fontSize: size }),
|
|
1437
1440
|
showTooltip: true
|
|
1438
1441
|
}
|
|
1439
1442
|
];
|
|
1440
1443
|
var FlexDirectionField = () => {
|
|
1441
1444
|
const { isSiteRtl } = useDirection();
|
|
1442
|
-
return /* @__PURE__ */
|
|
1445
|
+
return /* @__PURE__ */ React30.createElement(DirectionProvider3, { rtl: isSiteRtl }, /* @__PURE__ */ React30.createElement(ThemeProvider3, null, /* @__PURE__ */ React30.createElement(StylesField, { bind: "flex-direction" }, /* @__PURE__ */ React30.createElement(Grid5, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React30.createElement(Grid5, { item: true, xs: 6 }, /* @__PURE__ */ React30.createElement(ControlLabel8, null, __12("Direction", "elementor"))), /* @__PURE__ */ React30.createElement(Grid5, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React30.createElement(ToggleControl4, { options: options3 }))))));
|
|
1443
1446
|
};
|
|
1444
1447
|
|
|
1445
1448
|
// src/components/style-sections/layout-section/flex-order-field.tsx
|
|
1446
|
-
import * as
|
|
1447
|
-
import { useState as
|
|
1449
|
+
import * as React31 from "react";
|
|
1450
|
+
import { useState as useState4 } from "react";
|
|
1448
1451
|
import {
|
|
1449
1452
|
ControlLabel as ControlLabel9,
|
|
1450
1453
|
ControlToggleButtonGroup,
|
|
@@ -1466,25 +1469,25 @@ var items = [
|
|
|
1466
1469
|
{
|
|
1467
1470
|
value: FIRST,
|
|
1468
1471
|
label: __13("First", "elementor"),
|
|
1469
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1472
|
+
renderContent: ({ size }) => /* @__PURE__ */ React31.createElement(ArrowUpSmallIcon2, { fontSize: size }),
|
|
1470
1473
|
showTooltip: true
|
|
1471
1474
|
},
|
|
1472
1475
|
{
|
|
1473
1476
|
value: LAST,
|
|
1474
1477
|
label: __13("Last", "elementor"),
|
|
1475
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1478
|
+
renderContent: ({ size }) => /* @__PURE__ */ React31.createElement(ArrowDownSmallIcon2, { fontSize: size }),
|
|
1476
1479
|
showTooltip: true
|
|
1477
1480
|
},
|
|
1478
1481
|
{
|
|
1479
1482
|
value: CUSTOM,
|
|
1480
1483
|
label: __13("Custom", "elementor"),
|
|
1481
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1484
|
+
renderContent: ({ size }) => /* @__PURE__ */ React31.createElement(PencilIcon, { fontSize: size }),
|
|
1482
1485
|
showTooltip: true
|
|
1483
1486
|
}
|
|
1484
1487
|
];
|
|
1485
1488
|
var FlexOrderField = () => {
|
|
1486
1489
|
const { isSiteRtl } = useDirection(), [order, setOrder] = useStylesField("order");
|
|
1487
|
-
const [groupControlValue, setGroupControlValue] =
|
|
1490
|
+
const [groupControlValue, setGroupControlValue] = useState4(getGroupControlValue(order?.value || null));
|
|
1488
1491
|
const handleToggleButtonChange = (group) => {
|
|
1489
1492
|
setGroupControlValue(group);
|
|
1490
1493
|
if (!group || group === CUSTOM) {
|
|
@@ -1493,7 +1496,7 @@ var FlexOrderField = () => {
|
|
|
1493
1496
|
}
|
|
1494
1497
|
setOrder({ $$type: "number", value: orderValueMap[group] });
|
|
1495
1498
|
};
|
|
1496
|
-
return /* @__PURE__ */
|
|
1499
|
+
return /* @__PURE__ */ React31.createElement(DirectionProvider4, { rtl: isSiteRtl }, /* @__PURE__ */ React31.createElement(ThemeProvider4, null, /* @__PURE__ */ React31.createElement(Stack8, { gap: 2 }, /* @__PURE__ */ React31.createElement(Grid6, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React31.createElement(Grid6, { item: true, xs: 6 }, /* @__PURE__ */ React31.createElement(ControlLabel9, null, __13("Order", "elementor"))), /* @__PURE__ */ React31.createElement(Grid6, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React31.createElement(
|
|
1497
1500
|
ControlToggleButtonGroup,
|
|
1498
1501
|
{
|
|
1499
1502
|
items,
|
|
@@ -1501,7 +1504,7 @@ var FlexOrderField = () => {
|
|
|
1501
1504
|
onChange: handleToggleButtonChange,
|
|
1502
1505
|
exclusive: true
|
|
1503
1506
|
}
|
|
1504
|
-
))), CUSTOM === groupControlValue && /* @__PURE__ */
|
|
1507
|
+
))), CUSTOM === groupControlValue && /* @__PURE__ */ React31.createElement(StylesField, { bind: "order" }, /* @__PURE__ */ React31.createElement(Grid6, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React31.createElement(Grid6, { item: true, xs: 6 }, /* @__PURE__ */ React31.createElement(ControlLabel9, null, __13("Custom order", "elementor"))), /* @__PURE__ */ React31.createElement(Grid6, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React31.createElement(
|
|
1505
1508
|
NumberControl,
|
|
1506
1509
|
{
|
|
1507
1510
|
min: FIRST_DEFAULT_VALUE + 1,
|
|
@@ -1521,8 +1524,8 @@ var getGroupControlValue = (order) => {
|
|
|
1521
1524
|
};
|
|
1522
1525
|
|
|
1523
1526
|
// src/components/style-sections/layout-section/flex-size-field.tsx
|
|
1524
|
-
import * as
|
|
1525
|
-
import { useMemo, useState as
|
|
1527
|
+
import * as React32 from "react";
|
|
1528
|
+
import { useMemo, useState as useState5 } from "react";
|
|
1526
1529
|
import {
|
|
1527
1530
|
ControlLabel as ControlLabel10,
|
|
1528
1531
|
ControlToggleButtonGroup as ControlToggleButtonGroup2,
|
|
@@ -1537,26 +1540,26 @@ var items2 = [
|
|
|
1537
1540
|
{
|
|
1538
1541
|
value: "flex-grow",
|
|
1539
1542
|
label: __14("Grow", "elementor"),
|
|
1540
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1543
|
+
renderContent: ({ size }) => /* @__PURE__ */ React32.createElement(ExpandIcon, { fontSize: size }),
|
|
1541
1544
|
showTooltip: true
|
|
1542
1545
|
},
|
|
1543
1546
|
{
|
|
1544
1547
|
value: "flex-shrink",
|
|
1545
1548
|
label: __14("Shrink", "elementor"),
|
|
1546
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1549
|
+
renderContent: ({ size }) => /* @__PURE__ */ React32.createElement(ShrinkIcon, { fontSize: size }),
|
|
1547
1550
|
showTooltip: true
|
|
1548
1551
|
},
|
|
1549
1552
|
{
|
|
1550
1553
|
value: "custom",
|
|
1551
1554
|
label: __14("Custom", "elementor"),
|
|
1552
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1555
|
+
renderContent: ({ size }) => /* @__PURE__ */ React32.createElement(PencilIcon2, { fontSize: size }),
|
|
1553
1556
|
showTooltip: true
|
|
1554
1557
|
}
|
|
1555
1558
|
];
|
|
1556
1559
|
var FlexSizeField = () => {
|
|
1557
1560
|
const { isSiteRtl } = useDirection(), [growField, setGrowField] = useStylesField("flex-grow"), [shrinkField, setShrinkField] = useStylesField("flex-shrink"), [basisField, setBasisField] = useStylesField("flex-basis");
|
|
1558
1561
|
const grow = growField?.value || null, shrink = shrinkField?.value || null, basis = basisField?.value || null;
|
|
1559
|
-
const currentGroup = useMemo(() => getActiveGroup({ grow, shrink, basis }), [grow, shrink, basis]), [activeGroup, setActiveGroup] =
|
|
1562
|
+
const currentGroup = useMemo(() => getActiveGroup({ grow, shrink, basis }), [grow, shrink, basis]), [activeGroup, setActiveGroup] = useState5(currentGroup);
|
|
1560
1563
|
const onChangeGroup = (group = null) => {
|
|
1561
1564
|
setActiveGroup(group);
|
|
1562
1565
|
setBasisField(null);
|
|
@@ -1573,7 +1576,7 @@ var FlexSizeField = () => {
|
|
|
1573
1576
|
setGrowField(null);
|
|
1574
1577
|
setShrinkField({ $$type: "number", value: DEFAULT });
|
|
1575
1578
|
};
|
|
1576
|
-
return /* @__PURE__ */
|
|
1579
|
+
return /* @__PURE__ */ React32.createElement(DirectionProvider5, { rtl: isSiteRtl }, /* @__PURE__ */ React32.createElement(ThemeProvider5, null, /* @__PURE__ */ React32.createElement(Stack9, { gap: 2 }, /* @__PURE__ */ React32.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React32.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React32.createElement(ControlLabel10, null, __14("Size", "elementor"))), /* @__PURE__ */ React32.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React32.createElement(
|
|
1577
1580
|
ControlToggleButtonGroup2,
|
|
1578
1581
|
{
|
|
1579
1582
|
value: activeGroup,
|
|
@@ -1581,9 +1584,9 @@ var FlexSizeField = () => {
|
|
|
1581
1584
|
items: items2,
|
|
1582
1585
|
exclusive: true
|
|
1583
1586
|
}
|
|
1584
|
-
))), "custom" === activeGroup && /* @__PURE__ */
|
|
1587
|
+
))), "custom" === activeGroup && /* @__PURE__ */ React32.createElement(FlexCustomField, null))));
|
|
1585
1588
|
};
|
|
1586
|
-
var FlexCustomField = () => /* @__PURE__ */
|
|
1589
|
+
var FlexCustomField = () => /* @__PURE__ */ React32.createElement(React32.Fragment, null, /* @__PURE__ */ React32.createElement(StylesField, { bind: "flex-grow" }, /* @__PURE__ */ React32.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React32.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React32.createElement(ControlLabel10, null, __14("Grow", "elementor"))), /* @__PURE__ */ React32.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React32.createElement(NumberControl2, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React32.createElement(StylesField, { bind: "flex-shrink" }, /* @__PURE__ */ React32.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React32.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React32.createElement(ControlLabel10, null, __14("Shrink", "elementor"))), /* @__PURE__ */ React32.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React32.createElement(NumberControl2, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React32.createElement(StylesField, { bind: "flex-basis" }, /* @__PURE__ */ React32.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React32.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React32.createElement(ControlLabel10, null, __14("Basis", "elementor"))), /* @__PURE__ */ React32.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React32.createElement(SizeControl2, null)))));
|
|
1587
1590
|
var getActiveGroup = ({
|
|
1588
1591
|
grow,
|
|
1589
1592
|
shrink,
|
|
@@ -1605,16 +1608,16 @@ var getActiveGroup = ({
|
|
|
1605
1608
|
};
|
|
1606
1609
|
|
|
1607
1610
|
// src/components/style-sections/layout-section/gap-control-field.tsx
|
|
1608
|
-
import * as
|
|
1611
|
+
import * as React33 from "react";
|
|
1609
1612
|
import { GapControl } from "@elementor/editor-controls";
|
|
1610
1613
|
import { Stack as Stack10 } from "@elementor/ui";
|
|
1611
1614
|
import { __ as __15 } from "@wordpress/i18n";
|
|
1612
1615
|
var GapControlField = () => {
|
|
1613
|
-
return /* @__PURE__ */
|
|
1616
|
+
return /* @__PURE__ */ React33.createElement(Stack10, { gap: 1 }, /* @__PURE__ */ React33.createElement(StylesField, { bind: "gap" }, /* @__PURE__ */ React33.createElement(GapControl, { label: __15("Gaps", "elementor") })));
|
|
1614
1617
|
};
|
|
1615
1618
|
|
|
1616
1619
|
// src/components/style-sections/layout-section/justify-content-field.tsx
|
|
1617
|
-
import * as
|
|
1620
|
+
import * as React34 from "react";
|
|
1618
1621
|
import { ControlLabel as ControlLabel11, ToggleControl as ToggleControl5 } from "@elementor/editor-controls";
|
|
1619
1622
|
import {
|
|
1620
1623
|
JustifyBottomIcon,
|
|
@@ -1636,47 +1639,47 @@ var options4 = [
|
|
|
1636
1639
|
{
|
|
1637
1640
|
value: "start",
|
|
1638
1641
|
label: __16("Start", "elementor"),
|
|
1639
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1642
|
+
renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: StartIcon3, size, ...iconProps3 }),
|
|
1640
1643
|
showTooltip: true
|
|
1641
1644
|
},
|
|
1642
1645
|
{
|
|
1643
1646
|
value: "center",
|
|
1644
1647
|
label: __16("Center", "elementor"),
|
|
1645
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1648
|
+
renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: CenterIcon3, size, ...iconProps3 }),
|
|
1646
1649
|
showTooltip: true
|
|
1647
1650
|
},
|
|
1648
1651
|
{
|
|
1649
1652
|
value: "end",
|
|
1650
1653
|
label: __16("End", "elementor"),
|
|
1651
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1654
|
+
renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: EndIcon3, size, ...iconProps3 }),
|
|
1652
1655
|
showTooltip: true
|
|
1653
1656
|
},
|
|
1654
1657
|
{
|
|
1655
1658
|
value: "space-between",
|
|
1656
1659
|
label: __16("Space between", "elementor"),
|
|
1657
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1660
|
+
renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: BetweenIcon, size, ...iconProps3 }),
|
|
1658
1661
|
showTooltip: true
|
|
1659
1662
|
},
|
|
1660
1663
|
{
|
|
1661
1664
|
value: "space-around",
|
|
1662
1665
|
label: __16("Space around", "elementor"),
|
|
1663
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1666
|
+
renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: AroundIcon, size, ...iconProps3 }),
|
|
1664
1667
|
showTooltip: true
|
|
1665
1668
|
},
|
|
1666
1669
|
{
|
|
1667
1670
|
value: "space-evenly",
|
|
1668
1671
|
label: __16("Space evenly", "elementor"),
|
|
1669
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1672
|
+
renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: EvenlyIcon, size, ...iconProps3 }),
|
|
1670
1673
|
showTooltip: true
|
|
1671
1674
|
}
|
|
1672
1675
|
];
|
|
1673
1676
|
var JustifyContentField = () => {
|
|
1674
1677
|
const { isSiteRtl } = useDirection();
|
|
1675
|
-
return /* @__PURE__ */
|
|
1678
|
+
return /* @__PURE__ */ React34.createElement(DirectionProvider6, { rtl: isSiteRtl }, /* @__PURE__ */ React34.createElement(ThemeProvider6, null, /* @__PURE__ */ React34.createElement(StylesField, { bind: "justify-content" }, /* @__PURE__ */ React34.createElement(Stack11, { gap: 1 }, /* @__PURE__ */ React34.createElement(ControlLabel11, null, __16("Justify content", "elementor")), /* @__PURE__ */ React34.createElement(ToggleControl5, { options: options4, fullWidth: true })))));
|
|
1676
1679
|
};
|
|
1677
1680
|
|
|
1678
1681
|
// src/components/style-sections/layout-section/wrap-field.tsx
|
|
1679
|
-
import * as
|
|
1682
|
+
import * as React35 from "react";
|
|
1680
1683
|
import { ControlLabel as ControlLabel12, ToggleControl as ToggleControl6 } from "@elementor/editor-controls";
|
|
1681
1684
|
import { ArrowBackIcon, ArrowForwardIcon, ArrowRightIcon as ArrowRightIcon2 } from "@elementor/icons";
|
|
1682
1685
|
import { DirectionProvider as DirectionProvider7, Grid as Grid8, ThemeProvider as ThemeProvider7 } from "@elementor/ui";
|
|
@@ -1685,25 +1688,25 @@ var options5 = [
|
|
|
1685
1688
|
{
|
|
1686
1689
|
value: "nowrap",
|
|
1687
1690
|
label: __17("No wrap", "elementor"),
|
|
1688
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1691
|
+
renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(ArrowRightIcon2, { fontSize: size }),
|
|
1689
1692
|
showTooltip: true
|
|
1690
1693
|
},
|
|
1691
1694
|
{
|
|
1692
1695
|
value: "wrap",
|
|
1693
1696
|
label: __17("Wrap", "elementor"),
|
|
1694
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1697
|
+
renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(ArrowBackIcon, { fontSize: size }),
|
|
1695
1698
|
showTooltip: true
|
|
1696
1699
|
},
|
|
1697
1700
|
{
|
|
1698
1701
|
value: "wrap-reverse",
|
|
1699
1702
|
label: __17("Reversed wrap", "elementor"),
|
|
1700
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1703
|
+
renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(ArrowForwardIcon, { fontSize: size }),
|
|
1701
1704
|
showTooltip: true
|
|
1702
1705
|
}
|
|
1703
1706
|
];
|
|
1704
1707
|
var WrapField = () => {
|
|
1705
1708
|
const { isSiteRtl } = useDirection();
|
|
1706
|
-
return /* @__PURE__ */
|
|
1709
|
+
return /* @__PURE__ */ React35.createElement(DirectionProvider7, { rtl: isSiteRtl }, /* @__PURE__ */ React35.createElement(ThemeProvider7, null, /* @__PURE__ */ React35.createElement(StylesField, { bind: "flex-wrap" }, /* @__PURE__ */ React35.createElement(Grid8, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React35.createElement(Grid8, { item: true, xs: 6 }, /* @__PURE__ */ React35.createElement(ControlLabel12, null, __17("Wrap", "elementor"))), /* @__PURE__ */ React35.createElement(Grid8, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React35.createElement(ToggleControl6, { options: options5 }))))));
|
|
1707
1710
|
};
|
|
1708
1711
|
|
|
1709
1712
|
// src/components/style-sections/layout-section/layout-section.tsx
|
|
@@ -1712,21 +1715,21 @@ var LayoutSection = () => {
|
|
|
1712
1715
|
const { element } = useElement();
|
|
1713
1716
|
const parent = useParentElement(element.id);
|
|
1714
1717
|
const parentStyle = useComputedStyle(parent?.id || null);
|
|
1715
|
-
return /* @__PURE__ */
|
|
1718
|
+
return /* @__PURE__ */ React36.createElement(Stack12, { gap: 2 }, /* @__PURE__ */ React36.createElement(DisplayField, null), "flex" === display?.value && /* @__PURE__ */ React36.createElement(FlexFields, null), "flex" === parentStyle?.display && /* @__PURE__ */ React36.createElement(FlexChildFields, null));
|
|
1716
1719
|
};
|
|
1717
|
-
var FlexFields = () => /* @__PURE__ */
|
|
1718
|
-
var FlexChildFields = () => /* @__PURE__ */
|
|
1720
|
+
var FlexFields = () => /* @__PURE__ */ React36.createElement(React36.Fragment, null, /* @__PURE__ */ React36.createElement(FlexDirectionField, null), /* @__PURE__ */ React36.createElement(JustifyContentField, null), /* @__PURE__ */ React36.createElement(AlignItemsField, null), /* @__PURE__ */ React36.createElement(Divider4, null), /* @__PURE__ */ React36.createElement(GapControlField, null), /* @__PURE__ */ React36.createElement(WrapField, null));
|
|
1721
|
+
var FlexChildFields = () => /* @__PURE__ */ React36.createElement(React36.Fragment, null, /* @__PURE__ */ React36.createElement(Divider4, null), /* @__PURE__ */ React36.createElement(ControlLabel13, null, __18("Flex child", "elementor")), /* @__PURE__ */ React36.createElement(AlignSelfChild, null), /* @__PURE__ */ React36.createElement(FlexOrderField, null), /* @__PURE__ */ React36.createElement(FlexSizeField, null));
|
|
1719
1722
|
|
|
1720
1723
|
// src/components/style-sections/position-section/position-section.tsx
|
|
1721
|
-
import * as
|
|
1724
|
+
import * as React40 from "react";
|
|
1722
1725
|
import { Stack as Stack14 } from "@elementor/ui";
|
|
1723
1726
|
|
|
1724
1727
|
// src/hooks/use-session-storage.ts
|
|
1725
|
-
import { useEffect as useEffect3, useState as
|
|
1728
|
+
import { useEffect as useEffect3, useState as useState6 } from "react";
|
|
1726
1729
|
import { getSessionStorageItem, removeSessionStorageItem, setSessionStorageItem } from "@elementor/utils";
|
|
1727
1730
|
var useSessionStorage = (key) => {
|
|
1728
1731
|
const prefixedKey = `elementor/${key}`;
|
|
1729
|
-
const [value, setValue] =
|
|
1732
|
+
const [value, setValue] = useState6();
|
|
1730
1733
|
useEffect3(() => {
|
|
1731
1734
|
return subscribeToSessionStorage(prefixedKey, (newValue) => {
|
|
1732
1735
|
setValue(newValue ?? null);
|
|
@@ -1759,26 +1762,26 @@ var subscribeToSessionStorage = (key, subscriber) => {
|
|
|
1759
1762
|
};
|
|
1760
1763
|
|
|
1761
1764
|
// src/components/style-sections/position-section/dimensions-field.tsx
|
|
1762
|
-
import * as
|
|
1765
|
+
import * as React37 from "react";
|
|
1763
1766
|
import { ControlLabel as ControlLabel14, SizeControl as SizeControl3 } from "@elementor/editor-controls";
|
|
1764
1767
|
import { SideBottomIcon as SideBottomIcon2, SideLeftIcon as SideLeftIcon2, SideRightIcon as SideRightIcon2, SideTopIcon as SideTopIcon2 } from "@elementor/icons";
|
|
1765
1768
|
import { Grid as Grid9, Stack as Stack13 } from "@elementor/ui";
|
|
1766
1769
|
import { __ as __19 } from "@wordpress/i18n";
|
|
1767
1770
|
var sideIcons = {
|
|
1768
|
-
left: /* @__PURE__ */
|
|
1769
|
-
right: /* @__PURE__ */
|
|
1770
|
-
top: /* @__PURE__ */
|
|
1771
|
-
bottom: /* @__PURE__ */
|
|
1771
|
+
left: /* @__PURE__ */ React37.createElement(SideLeftIcon2, { fontSize: "tiny" }),
|
|
1772
|
+
right: /* @__PURE__ */ React37.createElement(SideRightIcon2, { fontSize: "tiny" }),
|
|
1773
|
+
top: /* @__PURE__ */ React37.createElement(SideTopIcon2, { fontSize: "tiny" }),
|
|
1774
|
+
bottom: /* @__PURE__ */ React37.createElement(SideBottomIcon2, { fontSize: "tiny" })
|
|
1772
1775
|
};
|
|
1773
1776
|
var DimensionsField = () => {
|
|
1774
|
-
return /* @__PURE__ */
|
|
1777
|
+
return /* @__PURE__ */ React37.createElement(React37.Fragment, null, /* @__PURE__ */ React37.createElement(Stack13, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React37.createElement(DimensionField, { side: "top", label: __19("Top", "elementor") }), /* @__PURE__ */ React37.createElement(DimensionField, { side: "right", label: __19("Right", "elementor") })), /* @__PURE__ */ React37.createElement(Stack13, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React37.createElement(DimensionField, { side: "bottom", label: __19("Bottom", "elementor") }), /* @__PURE__ */ React37.createElement(DimensionField, { side: "left", label: __19("Left", "elementor") })));
|
|
1775
1778
|
};
|
|
1776
1779
|
var DimensionField = ({ side, label }) => {
|
|
1777
|
-
return /* @__PURE__ */
|
|
1780
|
+
return /* @__PURE__ */ React37.createElement(Grid9, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React37.createElement(Grid9, { item: true, xs: 12 }, /* @__PURE__ */ React37.createElement(ControlLabel14, null, label)), /* @__PURE__ */ React37.createElement(Grid9, { item: true, xs: 12 }, /* @__PURE__ */ React37.createElement(StylesField, { bind: side }, /* @__PURE__ */ React37.createElement(SizeControl3, { startIcon: sideIcons[side] }))));
|
|
1778
1781
|
};
|
|
1779
1782
|
|
|
1780
1783
|
// src/components/style-sections/position-section/position-field.tsx
|
|
1781
|
-
import * as
|
|
1784
|
+
import * as React38 from "react";
|
|
1782
1785
|
import { ControlLabel as ControlLabel15, SelectControl as SelectControl3 } from "@elementor/editor-controls";
|
|
1783
1786
|
import { Grid as Grid10 } from "@elementor/ui";
|
|
1784
1787
|
import { __ as __20 } from "@wordpress/i18n";
|
|
@@ -1790,16 +1793,16 @@ var positionOptions = [
|
|
|
1790
1793
|
{ label: __20("Sticky", "elementor"), value: "sticky" }
|
|
1791
1794
|
];
|
|
1792
1795
|
var PositionField = ({ onChange }) => {
|
|
1793
|
-
return /* @__PURE__ */
|
|
1796
|
+
return /* @__PURE__ */ React38.createElement(StylesField, { bind: "position" }, /* @__PURE__ */ React38.createElement(Grid10, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React38.createElement(Grid10, { item: true, xs: 6 }, /* @__PURE__ */ React38.createElement(ControlLabel15, null, __20("Position", "elementor"))), /* @__PURE__ */ React38.createElement(Grid10, { item: true, xs: 6 }, /* @__PURE__ */ React38.createElement(SelectControl3, { options: positionOptions, onChange }))));
|
|
1794
1797
|
};
|
|
1795
1798
|
|
|
1796
1799
|
// src/components/style-sections/position-section/z-index-field.tsx
|
|
1797
|
-
import * as
|
|
1800
|
+
import * as React39 from "react";
|
|
1798
1801
|
import { ControlLabel as ControlLabel16, NumberControl as NumberControl3 } from "@elementor/editor-controls";
|
|
1799
1802
|
import { Grid as Grid11 } from "@elementor/ui";
|
|
1800
1803
|
import { __ as __21 } from "@wordpress/i18n";
|
|
1801
1804
|
var ZIndexField = () => {
|
|
1802
|
-
return /* @__PURE__ */
|
|
1805
|
+
return /* @__PURE__ */ React39.createElement(StylesField, { bind: "z-index" }, /* @__PURE__ */ React39.createElement(Grid11, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React39.createElement(Grid11, { item: true, xs: 6 }, /* @__PURE__ */ React39.createElement(ControlLabel16, null, __21("Z-Index", "elementor"))), /* @__PURE__ */ React39.createElement(Grid11, { item: true, xs: 6 }, /* @__PURE__ */ React39.createElement(NumberControl3, null))));
|
|
1803
1806
|
};
|
|
1804
1807
|
|
|
1805
1808
|
// src/components/style-sections/position-section/position-section.tsx
|
|
@@ -1831,7 +1834,7 @@ var PositionSection = () => {
|
|
|
1831
1834
|
}
|
|
1832
1835
|
};
|
|
1833
1836
|
const isNotStatic = positionValue && positionValue?.value !== "static";
|
|
1834
|
-
return /* @__PURE__ */
|
|
1837
|
+
return /* @__PURE__ */ React40.createElement(Stack14, { gap: 1.5 }, /* @__PURE__ */ React40.createElement(PositionField, { onChange: onPositionChange }), isNotStatic ? /* @__PURE__ */ React40.createElement(React40.Fragment, null, /* @__PURE__ */ React40.createElement(DimensionsField, null), /* @__PURE__ */ React40.createElement(ZIndexField, null)) : null);
|
|
1835
1838
|
};
|
|
1836
1839
|
var usePersistDimensions = () => {
|
|
1837
1840
|
const { id: styleDefID, meta } = useStyle();
|
|
@@ -1841,13 +1844,13 @@ var usePersistDimensions = () => {
|
|
|
1841
1844
|
};
|
|
1842
1845
|
|
|
1843
1846
|
// src/components/style-sections/size-section/size-section.tsx
|
|
1844
|
-
import * as
|
|
1847
|
+
import * as React42 from "react";
|
|
1845
1848
|
import { ControlLabel as ControlLabel18, SizeControl as SizeControl4 } from "@elementor/editor-controls";
|
|
1846
|
-
import { Divider as
|
|
1849
|
+
import { Divider as Divider5, Grid as Grid13, Stack as Stack15 } from "@elementor/ui";
|
|
1847
1850
|
import { __ as __23 } from "@wordpress/i18n";
|
|
1848
1851
|
|
|
1849
1852
|
// src/components/style-sections/size-section/overflow-field.tsx
|
|
1850
|
-
import * as
|
|
1853
|
+
import * as React41 from "react";
|
|
1851
1854
|
import { ControlLabel as ControlLabel17, ToggleControl as ToggleControl7 } from "@elementor/editor-controls";
|
|
1852
1855
|
import { ExpandBottomIcon, EyeIcon, EyeOffIcon } from "@elementor/icons";
|
|
1853
1856
|
import { Grid as Grid12 } from "@elementor/ui";
|
|
@@ -1856,58 +1859,58 @@ var options6 = [
|
|
|
1856
1859
|
{
|
|
1857
1860
|
value: "visible",
|
|
1858
1861
|
label: __22("Visible", "elementor"),
|
|
1859
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1862
|
+
renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(EyeIcon, { fontSize: size }),
|
|
1860
1863
|
showTooltip: true
|
|
1861
1864
|
},
|
|
1862
1865
|
{
|
|
1863
1866
|
value: "hidden",
|
|
1864
1867
|
label: __22("Hidden", "elementor"),
|
|
1865
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1868
|
+
renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(EyeOffIcon, { fontSize: size }),
|
|
1866
1869
|
showTooltip: true
|
|
1867
1870
|
},
|
|
1868
1871
|
{
|
|
1869
1872
|
value: "auto",
|
|
1870
1873
|
label: __22("Auto", "elementor"),
|
|
1871
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1874
|
+
renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(ExpandBottomIcon, { fontSize: size }),
|
|
1872
1875
|
showTooltip: true
|
|
1873
1876
|
}
|
|
1874
1877
|
];
|
|
1875
1878
|
var OverflowField = () => {
|
|
1876
|
-
return /* @__PURE__ */
|
|
1879
|
+
return /* @__PURE__ */ React41.createElement(StylesField, { bind: "overflow" }, /* @__PURE__ */ React41.createElement(Grid12, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React41.createElement(Grid12, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(ControlLabel17, null, __22("Overflow", "elementor"))), /* @__PURE__ */ React41.createElement(Grid12, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React41.createElement(ToggleControl7, { options: options6 }))));
|
|
1877
1880
|
};
|
|
1878
1881
|
|
|
1879
1882
|
// src/components/style-sections/size-section/size-section.tsx
|
|
1880
1883
|
var SizeSection = () => {
|
|
1881
|
-
return /* @__PURE__ */
|
|
1884
|
+
return /* @__PURE__ */ React42.createElement(Stack15, { gap: 1.5 }, /* @__PURE__ */ React42.createElement(Grid13, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React42.createElement(Grid13, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(SizeField, { bind: "width", label: __23("Width", "elementor") })), /* @__PURE__ */ React42.createElement(Grid13, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(SizeField, { bind: "height", label: __23("Height", "elementor") }))), /* @__PURE__ */ React42.createElement(Grid13, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React42.createElement(Grid13, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(SizeField, { bind: "min-width", label: __23("Min. Width", "elementor") })), /* @__PURE__ */ React42.createElement(Grid13, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(SizeField, { bind: "min-height", label: __23("Min. Height", "elementor") }))), /* @__PURE__ */ React42.createElement(Grid13, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React42.createElement(Grid13, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(SizeField, { bind: "max-width", label: __23("Max. Width", "elementor") })), /* @__PURE__ */ React42.createElement(Grid13, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(SizeField, { bind: "max-height", label: __23("Max. Height", "elementor") }))), /* @__PURE__ */ React42.createElement(Divider5, null), /* @__PURE__ */ React42.createElement(Stack15, null, /* @__PURE__ */ React42.createElement(OverflowField, null)));
|
|
1882
1885
|
};
|
|
1883
1886
|
var SizeField = ({ label, bind }) => {
|
|
1884
|
-
return /* @__PURE__ */
|
|
1887
|
+
return /* @__PURE__ */ React42.createElement(StylesField, { bind }, /* @__PURE__ */ React42.createElement(Grid13, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React42.createElement(Grid13, { item: true, xs: 12 }, /* @__PURE__ */ React42.createElement(ControlLabel18, null, label)), /* @__PURE__ */ React42.createElement(Grid13, { item: true, xs: 12 }, /* @__PURE__ */ React42.createElement(SizeControl4, null))));
|
|
1885
1888
|
};
|
|
1886
1889
|
|
|
1887
1890
|
// src/components/style-sections/spacing-section/spacing-section.tsx
|
|
1888
|
-
import * as
|
|
1891
|
+
import * as React43 from "react";
|
|
1889
1892
|
import { LinkedDimensionsControl } from "@elementor/editor-controls";
|
|
1890
|
-
import { Divider as
|
|
1893
|
+
import { Divider as Divider6, Stack as Stack16 } from "@elementor/ui";
|
|
1891
1894
|
import { __ as __24 } from "@wordpress/i18n";
|
|
1892
1895
|
var SpacingSection = () => {
|
|
1893
|
-
return /* @__PURE__ */
|
|
1896
|
+
return /* @__PURE__ */ React43.createElement(Stack16, { gap: 1.5 }, /* @__PURE__ */ React43.createElement(StylesField, { bind: "padding" }, /* @__PURE__ */ React43.createElement(LinkedDimensionsControl, { label: __24("Padding", "elementor") })), /* @__PURE__ */ React43.createElement(Divider6, null), /* @__PURE__ */ React43.createElement(StylesField, { bind: "margin" }, /* @__PURE__ */ React43.createElement(LinkedDimensionsControl, { label: __24("Margin", "elementor") })));
|
|
1894
1897
|
};
|
|
1895
1898
|
|
|
1896
1899
|
// src/components/style-sections/typography-section/typography-section.tsx
|
|
1897
|
-
import * as
|
|
1898
|
-
import { Divider as
|
|
1900
|
+
import * as React57 from "react";
|
|
1901
|
+
import { Divider as Divider7, Stack as Stack18 } from "@elementor/ui";
|
|
1899
1902
|
|
|
1900
1903
|
// src/components/collapsible-content.tsx
|
|
1901
|
-
import * as
|
|
1902
|
-
import { useState as
|
|
1904
|
+
import * as React44 from "react";
|
|
1905
|
+
import { useState as useState7 } from "react";
|
|
1903
1906
|
import { Button, Collapse as Collapse3, Stack as Stack17 } from "@elementor/ui";
|
|
1904
1907
|
import { __ as __25 } from "@wordpress/i18n";
|
|
1905
1908
|
var CollapsibleContent = ({ children, defaultOpen = false }) => {
|
|
1906
|
-
const [open, setOpen] =
|
|
1909
|
+
const [open, setOpen] = useState7(defaultOpen);
|
|
1907
1910
|
const handleToggle = () => {
|
|
1908
1911
|
setOpen((prevOpen) => !prevOpen);
|
|
1909
1912
|
};
|
|
1910
|
-
return /* @__PURE__ */
|
|
1913
|
+
return /* @__PURE__ */ React44.createElement(Stack17, { sx: { py: 0.5 } }, /* @__PURE__ */ React44.createElement(
|
|
1911
1914
|
Button,
|
|
1912
1915
|
{
|
|
1913
1916
|
fullWidth: true,
|
|
@@ -1915,14 +1918,14 @@ var CollapsibleContent = ({ children, defaultOpen = false }) => {
|
|
|
1915
1918
|
color: "secondary",
|
|
1916
1919
|
variant: "outlined",
|
|
1917
1920
|
onClick: handleToggle,
|
|
1918
|
-
endIcon: /* @__PURE__ */
|
|
1921
|
+
endIcon: /* @__PURE__ */ React44.createElement(CollapseIcon, { open })
|
|
1919
1922
|
},
|
|
1920
1923
|
open ? __25("Show less", "elementor") : __25("Show more", "elementor")
|
|
1921
|
-
), /* @__PURE__ */
|
|
1924
|
+
), /* @__PURE__ */ React44.createElement(Collapse3, { in: open, timeout: "auto", unmountOnExit: true }, children));
|
|
1922
1925
|
};
|
|
1923
1926
|
|
|
1924
1927
|
// src/components/style-sections/typography-section/font-family-field.tsx
|
|
1925
|
-
import * as
|
|
1928
|
+
import * as React45 from "react";
|
|
1926
1929
|
import { ControlLabel as ControlLabel19, FontFamilyControl } from "@elementor/editor-controls";
|
|
1927
1930
|
import { Grid as Grid14 } from "@elementor/ui";
|
|
1928
1931
|
import { __ as __26 } from "@wordpress/i18n";
|
|
@@ -1939,7 +1942,7 @@ var FontFamilyField = () => {
|
|
|
1939
1942
|
if (!fontFamilies) {
|
|
1940
1943
|
return null;
|
|
1941
1944
|
}
|
|
1942
|
-
return /* @__PURE__ */
|
|
1945
|
+
return /* @__PURE__ */ React45.createElement(StylesField, { bind: "font-family" }, /* @__PURE__ */ React45.createElement(Grid14, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React45.createElement(Grid14, { item: true, xs: 6 }, /* @__PURE__ */ React45.createElement(ControlLabel19, null, __26("Font Family", "elementor"))), /* @__PURE__ */ React45.createElement(Grid14, { item: true, xs: 6 }, /* @__PURE__ */ React45.createElement(FontFamilyControl, { fontFamilies }))));
|
|
1943
1946
|
};
|
|
1944
1947
|
var getFontFamilies = () => {
|
|
1945
1948
|
const { controls } = getElementorConfig();
|
|
@@ -1951,16 +1954,16 @@ var getFontFamilies = () => {
|
|
|
1951
1954
|
};
|
|
1952
1955
|
|
|
1953
1956
|
// src/components/style-sections/typography-section/font-size-field.tsx
|
|
1954
|
-
import * as
|
|
1957
|
+
import * as React46 from "react";
|
|
1955
1958
|
import { ControlLabel as ControlLabel20, SizeControl as SizeControl5 } from "@elementor/editor-controls";
|
|
1956
1959
|
import { Grid as Grid15 } from "@elementor/ui";
|
|
1957
1960
|
import { __ as __27 } from "@wordpress/i18n";
|
|
1958
1961
|
var FontSizeField = () => {
|
|
1959
|
-
return /* @__PURE__ */
|
|
1962
|
+
return /* @__PURE__ */ React46.createElement(StylesField, { bind: "font-size" }, /* @__PURE__ */ React46.createElement(Grid15, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React46.createElement(Grid15, { item: true, xs: 6 }, /* @__PURE__ */ React46.createElement(ControlLabel20, null, __27("Font Size", "elementor"))), /* @__PURE__ */ React46.createElement(Grid15, { item: true, xs: 6 }, /* @__PURE__ */ React46.createElement(SizeControl5, null))));
|
|
1960
1963
|
};
|
|
1961
1964
|
|
|
1962
1965
|
// src/components/style-sections/typography-section/font-weight-field.tsx
|
|
1963
|
-
import * as
|
|
1966
|
+
import * as React47 from "react";
|
|
1964
1967
|
import { ControlLabel as ControlLabel21, SelectControl as SelectControl4 } from "@elementor/editor-controls";
|
|
1965
1968
|
import { Grid as Grid16 } from "@elementor/ui";
|
|
1966
1969
|
import { __ as __28 } from "@wordpress/i18n";
|
|
@@ -1972,29 +1975,29 @@ var fontWeightOptions = [
|
|
|
1972
1975
|
{ label: __28("Black - 900", "elementor"), value: "900" }
|
|
1973
1976
|
];
|
|
1974
1977
|
var FontWeightField = () => {
|
|
1975
|
-
return /* @__PURE__ */
|
|
1978
|
+
return /* @__PURE__ */ React47.createElement(StylesField, { bind: "font-weight" }, /* @__PURE__ */ React47.createElement(Grid16, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React47.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(ControlLabel21, null, __28("Font Weight", "elementor"))), /* @__PURE__ */ React47.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(SelectControl4, { options: fontWeightOptions }))));
|
|
1976
1979
|
};
|
|
1977
1980
|
|
|
1978
1981
|
// src/components/style-sections/typography-section/letter-spacing-field.tsx
|
|
1979
|
-
import * as
|
|
1982
|
+
import * as React48 from "react";
|
|
1980
1983
|
import { ControlLabel as ControlLabel22, SizeControl as SizeControl6 } from "@elementor/editor-controls";
|
|
1981
1984
|
import { Grid as Grid17 } from "@elementor/ui";
|
|
1982
1985
|
import { __ as __29 } from "@wordpress/i18n";
|
|
1983
1986
|
var LetterSpacingField = () => {
|
|
1984
|
-
return /* @__PURE__ */
|
|
1987
|
+
return /* @__PURE__ */ React48.createElement(StylesField, { bind: "letter-spacing" }, /* @__PURE__ */ React48.createElement(Grid17, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React48.createElement(Grid17, { item: true, xs: 6 }, /* @__PURE__ */ React48.createElement(ControlLabel22, null, __29("Letter Spacing", "elementor"))), /* @__PURE__ */ React48.createElement(Grid17, { item: true, xs: 6 }, /* @__PURE__ */ React48.createElement(SizeControl6, null))));
|
|
1985
1988
|
};
|
|
1986
1989
|
|
|
1987
1990
|
// src/components/style-sections/typography-section/line-height-field.tsx
|
|
1988
|
-
import * as
|
|
1991
|
+
import * as React49 from "react";
|
|
1989
1992
|
import { ControlLabel as ControlLabel23, SizeControl as SizeControl7 } from "@elementor/editor-controls";
|
|
1990
1993
|
import { Grid as Grid18 } from "@elementor/ui";
|
|
1991
1994
|
import { __ as __30 } from "@wordpress/i18n";
|
|
1992
1995
|
var LineHeightField = () => {
|
|
1993
|
-
return /* @__PURE__ */
|
|
1996
|
+
return /* @__PURE__ */ React49.createElement(StylesField, { bind: "line-height" }, /* @__PURE__ */ React49.createElement(Grid18, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React49.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(ControlLabel23, null, __30("Line Height", "elementor"))), /* @__PURE__ */ React49.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(SizeControl7, null))));
|
|
1994
1997
|
};
|
|
1995
1998
|
|
|
1996
1999
|
// src/components/style-sections/typography-section/text-alignment-field.tsx
|
|
1997
|
-
import * as
|
|
2000
|
+
import * as React50 from "react";
|
|
1998
2001
|
import { ControlLabel as ControlLabel24, ToggleControl as ToggleControl8 } from "@elementor/editor-controls";
|
|
1999
2002
|
import { AlignCenterIcon, AlignJustifiedIcon, AlignLeftIcon, AlignRightIcon } from "@elementor/icons";
|
|
2000
2003
|
import { Grid as Grid19 } from "@elementor/ui";
|
|
@@ -2003,39 +2006,39 @@ var options7 = [
|
|
|
2003
2006
|
{
|
|
2004
2007
|
value: "left",
|
|
2005
2008
|
label: __31("Left", "elementor"),
|
|
2006
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2009
|
+
renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(AlignLeftIcon, { fontSize: size })
|
|
2007
2010
|
},
|
|
2008
2011
|
{
|
|
2009
2012
|
value: "center",
|
|
2010
2013
|
label: __31("Center", "elementor"),
|
|
2011
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2014
|
+
renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(AlignCenterIcon, { fontSize: size })
|
|
2012
2015
|
},
|
|
2013
2016
|
{
|
|
2014
2017
|
value: "right",
|
|
2015
2018
|
label: __31("Right", "elementor"),
|
|
2016
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2019
|
+
renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(AlignRightIcon, { fontSize: size })
|
|
2017
2020
|
},
|
|
2018
2021
|
{
|
|
2019
2022
|
value: "justify",
|
|
2020
2023
|
label: __31("Justify", "elementor"),
|
|
2021
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2024
|
+
renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(AlignJustifiedIcon, { fontSize: size })
|
|
2022
2025
|
}
|
|
2023
2026
|
];
|
|
2024
2027
|
var TextAlignmentField = () => {
|
|
2025
|
-
return /* @__PURE__ */
|
|
2028
|
+
return /* @__PURE__ */ React50.createElement(StylesField, { bind: "text-align" }, /* @__PURE__ */ React50.createElement(Grid19, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React50.createElement(Grid19, { item: true, xs: 6 }, /* @__PURE__ */ React50.createElement(ControlLabel24, null, __31("Alignment", "elementor"))), /* @__PURE__ */ React50.createElement(Grid19, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React50.createElement(ToggleControl8, { options: options7 }))));
|
|
2026
2029
|
};
|
|
2027
2030
|
|
|
2028
2031
|
// src/components/style-sections/typography-section/text-color-field.tsx
|
|
2029
|
-
import * as
|
|
2032
|
+
import * as React51 from "react";
|
|
2030
2033
|
import { ColorControl as ColorControl2, ControlLabel as ControlLabel25 } from "@elementor/editor-controls";
|
|
2031
2034
|
import { Grid as Grid20 } from "@elementor/ui";
|
|
2032
2035
|
import { __ as __32 } from "@wordpress/i18n";
|
|
2033
2036
|
var TextColorField = () => {
|
|
2034
|
-
return /* @__PURE__ */
|
|
2037
|
+
return /* @__PURE__ */ React51.createElement(StylesField, { bind: "color" }, /* @__PURE__ */ React51.createElement(Grid20, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React51.createElement(Grid20, { item: true, xs: 6 }, /* @__PURE__ */ React51.createElement(ControlLabel25, null, __32("Text Color", "elementor"))), /* @__PURE__ */ React51.createElement(Grid20, { item: true, xs: 6 }, /* @__PURE__ */ React51.createElement(ColorControl2, null))));
|
|
2035
2038
|
};
|
|
2036
2039
|
|
|
2037
2040
|
// src/components/style-sections/typography-section/text-direction-field.tsx
|
|
2038
|
-
import * as
|
|
2041
|
+
import * as React52 from "react";
|
|
2039
2042
|
import { ControlLabel as ControlLabel26, ToggleControl as ToggleControl9 } from "@elementor/editor-controls";
|
|
2040
2043
|
import { TextDirectionLtrIcon, TextDirectionRtlIcon } from "@elementor/icons";
|
|
2041
2044
|
import { Grid as Grid21 } from "@elementor/ui";
|
|
@@ -2044,20 +2047,20 @@ var options8 = [
|
|
|
2044
2047
|
{
|
|
2045
2048
|
value: "ltr",
|
|
2046
2049
|
label: __33("Left to Right", "elementor"),
|
|
2047
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2050
|
+
renderContent: ({ size }) => /* @__PURE__ */ React52.createElement(TextDirectionLtrIcon, { fontSize: size })
|
|
2048
2051
|
},
|
|
2049
2052
|
{
|
|
2050
2053
|
value: "rtl",
|
|
2051
2054
|
label: __33("Right to Left", "elementor"),
|
|
2052
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2055
|
+
renderContent: ({ size }) => /* @__PURE__ */ React52.createElement(TextDirectionRtlIcon, { fontSize: size })
|
|
2053
2056
|
}
|
|
2054
2057
|
];
|
|
2055
2058
|
var TextDirectionField = () => {
|
|
2056
|
-
return /* @__PURE__ */
|
|
2059
|
+
return /* @__PURE__ */ React52.createElement(StylesField, { bind: "direction" }, /* @__PURE__ */ React52.createElement(Grid21, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React52.createElement(Grid21, { item: true, xs: 6 }, /* @__PURE__ */ React52.createElement(ControlLabel26, null, __33("Direction", "elementor"))), /* @__PURE__ */ React52.createElement(Grid21, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React52.createElement(ToggleControl9, { options: options8 }))));
|
|
2057
2060
|
};
|
|
2058
2061
|
|
|
2059
2062
|
// src/components/style-sections/typography-section/text-stroke-field.tsx
|
|
2060
|
-
import * as
|
|
2063
|
+
import * as React53 from "react";
|
|
2061
2064
|
import { StrokeControl } from "@elementor/editor-controls";
|
|
2062
2065
|
import { __ as __34 } from "@wordpress/i18n";
|
|
2063
2066
|
var initTextStroke = {
|
|
@@ -2085,7 +2088,7 @@ var TextStrokeField = () => {
|
|
|
2085
2088
|
setTextStroke(null);
|
|
2086
2089
|
};
|
|
2087
2090
|
const hasTextStroke = Boolean(textStroke);
|
|
2088
|
-
return /* @__PURE__ */
|
|
2091
|
+
return /* @__PURE__ */ React53.createElement(
|
|
2089
2092
|
AddOrRemoveContent,
|
|
2090
2093
|
{
|
|
2091
2094
|
label: __34("Text Stroke", "elementor"),
|
|
@@ -2093,12 +2096,12 @@ var TextStrokeField = () => {
|
|
|
2093
2096
|
onAdd: addTextStroke,
|
|
2094
2097
|
onRemove: removeTextStroke
|
|
2095
2098
|
},
|
|
2096
|
-
/* @__PURE__ */
|
|
2099
|
+
/* @__PURE__ */ React53.createElement(StylesField, { bind: "-webkit-text-stroke" }, /* @__PURE__ */ React53.createElement(StrokeControl, null))
|
|
2097
2100
|
);
|
|
2098
2101
|
};
|
|
2099
2102
|
|
|
2100
2103
|
// src/components/style-sections/typography-section/text-style-field.tsx
|
|
2101
|
-
import * as
|
|
2104
|
+
import * as React54 from "react";
|
|
2102
2105
|
import { ControlLabel as ControlLabel27 } from "@elementor/editor-controls";
|
|
2103
2106
|
import { ItalicIcon, StrikethroughIcon, UnderlineIcon } from "@elementor/icons";
|
|
2104
2107
|
import { Grid as Grid22, ToggleButton as ToggleButtonBase, ToggleButtonGroup } from "@elementor/ui";
|
|
@@ -2126,7 +2129,7 @@ var TextStyleField = () => {
|
|
|
2126
2129
|
value: newValue
|
|
2127
2130
|
});
|
|
2128
2131
|
};
|
|
2129
|
-
return /* @__PURE__ */
|
|
2132
|
+
return /* @__PURE__ */ React54.createElement(Grid22, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React54.createElement(Grid22, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(ControlLabel27, null, __35("Style", "elementor"))), /* @__PURE__ */ React54.createElement(Grid22, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React54.createElement(ToggleButtonGroup, { value: formats }, /* @__PURE__ */ React54.createElement(
|
|
2130
2133
|
ToggleButton,
|
|
2131
2134
|
{
|
|
2132
2135
|
value: "italic",
|
|
@@ -2134,8 +2137,8 @@ var TextStyleField = () => {
|
|
|
2134
2137
|
"aria-label": "italic",
|
|
2135
2138
|
sx: { marginLeft: "auto" }
|
|
2136
2139
|
},
|
|
2137
|
-
/* @__PURE__ */
|
|
2138
|
-
), /* @__PURE__ */
|
|
2140
|
+
/* @__PURE__ */ React54.createElement(ItalicIcon, { fontSize: buttonSize })
|
|
2141
|
+
), /* @__PURE__ */ React54.createElement(
|
|
2139
2142
|
ShorthandControl,
|
|
2140
2143
|
{
|
|
2141
2144
|
value: "line-through",
|
|
@@ -2143,8 +2146,8 @@ var TextStyleField = () => {
|
|
|
2143
2146
|
updateValues: handleSetTextDecoration,
|
|
2144
2147
|
"aria-label": "line-through"
|
|
2145
2148
|
},
|
|
2146
|
-
/* @__PURE__ */
|
|
2147
|
-
), /* @__PURE__ */
|
|
2149
|
+
/* @__PURE__ */ React54.createElement(StrikethroughIcon, { fontSize: buttonSize })
|
|
2150
|
+
), /* @__PURE__ */ React54.createElement(
|
|
2148
2151
|
ShorthandControl,
|
|
2149
2152
|
{
|
|
2150
2153
|
value: "underline",
|
|
@@ -2152,7 +2155,7 @@ var TextStyleField = () => {
|
|
|
2152
2155
|
updateValues: handleSetTextDecoration,
|
|
2153
2156
|
"aria-label": "underline"
|
|
2154
2157
|
},
|
|
2155
|
-
/* @__PURE__ */
|
|
2158
|
+
/* @__PURE__ */ React54.createElement(UnderlineIcon, { fontSize: buttonSize })
|
|
2156
2159
|
))));
|
|
2157
2160
|
};
|
|
2158
2161
|
var ShorthandControl = ({
|
|
@@ -2171,17 +2174,17 @@ var ShorthandControl = ({
|
|
|
2171
2174
|
updateValues([...valuesArr, newValue].join(" "));
|
|
2172
2175
|
}
|
|
2173
2176
|
};
|
|
2174
|
-
return /* @__PURE__ */
|
|
2177
|
+
return /* @__PURE__ */ React54.createElement(ToggleButton, { value, onChange: toggleValue, selected, "aria-label": ariaLabel }, children);
|
|
2175
2178
|
};
|
|
2176
2179
|
var ToggleButton = ({ onChange, ...props }) => {
|
|
2177
2180
|
const handleChange = (_e, newValue) => {
|
|
2178
2181
|
onChange(newValue);
|
|
2179
2182
|
};
|
|
2180
|
-
return /* @__PURE__ */
|
|
2183
|
+
return /* @__PURE__ */ React54.createElement(ToggleButtonBase, { ...props, onChange: handleChange, size: buttonSize });
|
|
2181
2184
|
};
|
|
2182
2185
|
|
|
2183
2186
|
// src/components/style-sections/typography-section/transform-field.tsx
|
|
2184
|
-
import * as
|
|
2187
|
+
import * as React55 from "react";
|
|
2185
2188
|
import { ControlLabel as ControlLabel28, ToggleControl as ToggleControl10 } from "@elementor/editor-controls";
|
|
2186
2189
|
import { LetterCaseIcon, LetterCaseLowerIcon, LetterCaseUpperIcon } from "@elementor/icons";
|
|
2187
2190
|
import { Grid as Grid23 } from "@elementor/ui";
|
|
@@ -2190,33 +2193,33 @@ var options9 = [
|
|
|
2190
2193
|
{
|
|
2191
2194
|
value: "capitalize",
|
|
2192
2195
|
label: __36("Capitalize", "elementor"),
|
|
2193
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2196
|
+
renderContent: ({ size }) => /* @__PURE__ */ React55.createElement(LetterCaseIcon, { fontSize: size })
|
|
2194
2197
|
},
|
|
2195
2198
|
{
|
|
2196
2199
|
value: "uppercase",
|
|
2197
2200
|
label: __36("Uppercase", "elementor"),
|
|
2198
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2201
|
+
renderContent: ({ size }) => /* @__PURE__ */ React55.createElement(LetterCaseUpperIcon, { fontSize: size })
|
|
2199
2202
|
},
|
|
2200
2203
|
{
|
|
2201
2204
|
value: "lowercase",
|
|
2202
2205
|
label: __36("Lowercase", "elementor"),
|
|
2203
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2206
|
+
renderContent: ({ size }) => /* @__PURE__ */ React55.createElement(LetterCaseLowerIcon, { fontSize: size })
|
|
2204
2207
|
}
|
|
2205
2208
|
];
|
|
2206
|
-
var TransformField = () => /* @__PURE__ */
|
|
2209
|
+
var TransformField = () => /* @__PURE__ */ React55.createElement(StylesField, { bind: "text-transform" }, /* @__PURE__ */ React55.createElement(Grid23, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React55.createElement(Grid23, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(ControlLabel28, null, __36("Transform", "elementor"))), /* @__PURE__ */ React55.createElement(Grid23, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React55.createElement(ToggleControl10, { options: options9 }))));
|
|
2207
2210
|
|
|
2208
2211
|
// src/components/style-sections/typography-section/word-spacing-field.tsx
|
|
2209
|
-
import * as
|
|
2212
|
+
import * as React56 from "react";
|
|
2210
2213
|
import { ControlLabel as ControlLabel29, SizeControl as SizeControl8 } from "@elementor/editor-controls";
|
|
2211
2214
|
import { Grid as Grid24 } from "@elementor/ui";
|
|
2212
2215
|
import { __ as __37 } from "@wordpress/i18n";
|
|
2213
2216
|
var WordSpacingField = () => {
|
|
2214
|
-
return /* @__PURE__ */
|
|
2217
|
+
return /* @__PURE__ */ React56.createElement(StylesField, { bind: "word-spacing" }, /* @__PURE__ */ React56.createElement(Grid24, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React56.createElement(Grid24, { item: true, xs: 6 }, /* @__PURE__ */ React56.createElement(ControlLabel29, null, __37("Word Spacing", "elementor"))), /* @__PURE__ */ React56.createElement(Grid24, { item: true, xs: 6 }, /* @__PURE__ */ React56.createElement(SizeControl8, null))));
|
|
2215
2218
|
};
|
|
2216
2219
|
|
|
2217
2220
|
// src/components/style-sections/typography-section/typography-section.tsx
|
|
2218
2221
|
var TypographySection = () => {
|
|
2219
|
-
return /* @__PURE__ */
|
|
2222
|
+
return /* @__PURE__ */ React57.createElement(Stack18, { gap: 1.5 }, /* @__PURE__ */ React57.createElement(FontFamilyField, null), /* @__PURE__ */ React57.createElement(FontWeightField, null), /* @__PURE__ */ React57.createElement(FontSizeField, null), /* @__PURE__ */ React57.createElement(Divider7, null), /* @__PURE__ */ React57.createElement(TextAlignmentField, null), /* @__PURE__ */ React57.createElement(TextColorField, null), /* @__PURE__ */ React57.createElement(CollapsibleContent, null, /* @__PURE__ */ React57.createElement(Stack18, { gap: 1.5, sx: { pt: 1.5 } }, /* @__PURE__ */ React57.createElement(LineHeightField, null), /* @__PURE__ */ React57.createElement(LetterSpacingField, null), /* @__PURE__ */ React57.createElement(WordSpacingField, null), /* @__PURE__ */ React57.createElement(Divider7, null), /* @__PURE__ */ React57.createElement(TextStyleField, null), /* @__PURE__ */ React57.createElement(TransformField, null), /* @__PURE__ */ React57.createElement(TextDirectionField, null), /* @__PURE__ */ React57.createElement(TextStrokeField, null))));
|
|
2220
2223
|
};
|
|
2221
2224
|
|
|
2222
2225
|
// src/components/style-tab.tsx
|
|
@@ -2224,9 +2227,9 @@ var CLASSES_PROP_KEY = "classes";
|
|
|
2224
2227
|
var StyleTab = () => {
|
|
2225
2228
|
const currentClassesProp = useCurrentClassesProp();
|
|
2226
2229
|
const [activeStyleDefId, setActiveStyleDefId] = useActiveStyleDefId(currentClassesProp);
|
|
2227
|
-
const [activeStyleState, setActiveStyleState] =
|
|
2230
|
+
const [activeStyleState, setActiveStyleState] = useState8(null);
|
|
2228
2231
|
const breakpoint = useActiveBreakpoint();
|
|
2229
|
-
return /* @__PURE__ */
|
|
2232
|
+
return /* @__PURE__ */ React58.createElement(ClassesPropProvider, { prop: currentClassesProp }, /* @__PURE__ */ React58.createElement(
|
|
2230
2233
|
StyleProvider,
|
|
2231
2234
|
{
|
|
2232
2235
|
meta: { breakpoint, state: activeStyleState },
|
|
@@ -2237,17 +2240,17 @@ var StyleTab = () => {
|
|
|
2237
2240
|
},
|
|
2238
2241
|
setMetaState: setActiveStyleState
|
|
2239
2242
|
},
|
|
2240
|
-
/* @__PURE__ */
|
|
2243
|
+
/* @__PURE__ */ React58.createElement(SessionStorageProvider2, { prefix: activeStyleDefId ?? "" }, /* @__PURE__ */ React58.createElement(CssClassSelector, null), /* @__PURE__ */ React58.createElement(Divider8, null), /* @__PURE__ */ React58.createElement(SectionsList, null, /* @__PURE__ */ React58.createElement(Section, { title: __38("Layout", "elementor") }, /* @__PURE__ */ React58.createElement(LayoutSection, null)), /* @__PURE__ */ React58.createElement(Section, { title: __38("Spacing", "elementor") }, /* @__PURE__ */ React58.createElement(SpacingSection, null)), /* @__PURE__ */ React58.createElement(Section, { title: __38("Size", "elementor") }, /* @__PURE__ */ React58.createElement(SizeSection, null)), /* @__PURE__ */ React58.createElement(Section, { title: __38("Position", "elementor") }, /* @__PURE__ */ React58.createElement(PositionSection, null)), /* @__PURE__ */ React58.createElement(Section, { title: __38("Typography", "elementor") }, /* @__PURE__ */ React58.createElement(TypographySection, null)), /* @__PURE__ */ React58.createElement(Section, { title: __38("Background", "elementor") }, /* @__PURE__ */ React58.createElement(BackgroundSection, null)), /* @__PURE__ */ React58.createElement(Section, { title: __38("Border", "elementor") }, /* @__PURE__ */ React58.createElement(BorderSection, null)), /* @__PURE__ */ React58.createElement(Section, { title: __38("Effects", "elementor") }, /* @__PURE__ */ React58.createElement(EffectsSection, null))))
|
|
2241
2244
|
));
|
|
2242
2245
|
};
|
|
2243
2246
|
function useActiveStyleDefId(currentClassesProp) {
|
|
2244
|
-
const [activeStyledDefId, setActiveStyledDefId] =
|
|
2247
|
+
const [activeStyledDefId, setActiveStyledDefId] = useState8(null);
|
|
2245
2248
|
const fallback = useFirstElementStyleDef(currentClassesProp);
|
|
2246
2249
|
return [activeStyledDefId || fallback?.id || null, setActiveStyledDefId];
|
|
2247
2250
|
}
|
|
2248
2251
|
function useFirstElementStyleDef(currentClassesProp) {
|
|
2249
2252
|
const { element } = useElement();
|
|
2250
|
-
const classesIds =
|
|
2253
|
+
const classesIds = useElementSetting4(element.id, currentClassesProp)?.value || [];
|
|
2251
2254
|
const stylesDefs = useElementStyles(element.id);
|
|
2252
2255
|
return Object.values(stylesDefs).find((styleDef) => classesIds.includes(styleDef.id));
|
|
2253
2256
|
}
|
|
@@ -2269,7 +2272,7 @@ var EditingPanelTabs = () => {
|
|
|
2269
2272
|
return (
|
|
2270
2273
|
// When switching between elements, the local states should be reset. We are using key to rerender the tabs.
|
|
2271
2274
|
// Reference: https://react.dev/learn/preserving-and-resetting-state#resetting-a-form-with-a-key
|
|
2272
|
-
/* @__PURE__ */
|
|
2275
|
+
/* @__PURE__ */ React59.createElement(Fragment8, { key: element.id }, /* @__PURE__ */ React59.createElement(Stack19, { direction: "column", sx: { width: "100%" } }, /* @__PURE__ */ React59.createElement(Tabs, { variant: "fullWidth", indicatorColor: "secondary", textColor: "inherit", ...getTabsProps() }, /* @__PURE__ */ React59.createElement(Tab, { label: __39("General", "elementor"), ...getTabProps("settings") }), /* @__PURE__ */ React59.createElement(Tab, { label: __39("Style", "elementor"), ...getTabProps("style") })), /* @__PURE__ */ React59.createElement(Divider9, null), /* @__PURE__ */ React59.createElement(TabPanel, { ...getTabPanelProps("settings"), disablePadding: true }, /* @__PURE__ */ React59.createElement(SettingsTab, null)), /* @__PURE__ */ React59.createElement(TabPanel, { ...getTabPanelProps("style"), disablePadding: true }, /* @__PURE__ */ React59.createElement(StyleTab, null))))
|
|
2273
2276
|
);
|
|
2274
2277
|
};
|
|
2275
2278
|
|
|
@@ -2283,7 +2286,7 @@ var EditingPanel = () => {
|
|
|
2283
2286
|
return null;
|
|
2284
2287
|
}
|
|
2285
2288
|
const panelTitle = __40("Edit %s", "elementor").replace("%s", elementType.title);
|
|
2286
|
-
return /* @__PURE__ */
|
|
2289
|
+
return /* @__PURE__ */ React60.createElement(ErrorBoundary, { fallback: /* @__PURE__ */ React60.createElement(EditorPanelErrorFallback, null) }, /* @__PURE__ */ React60.createElement(SessionStorageProvider3, { prefix: "elementor" }, /* @__PURE__ */ React60.createElement(Panel, null, /* @__PURE__ */ React60.createElement(PanelHeader, null, /* @__PURE__ */ React60.createElement(PanelHeaderTitle, null, panelTitle)), /* @__PURE__ */ React60.createElement(PanelBody, null, /* @__PURE__ */ React60.createElement(ControlActionsProvider, { items: menuItems }, /* @__PURE__ */ React60.createElement(ControlReplacementProvider, { ...controlReplacement }, /* @__PURE__ */ React60.createElement(ElementProvider, { element, elementType }, /* @__PURE__ */ React60.createElement(EditingPanelTabs, null))))))));
|
|
2287
2290
|
};
|
|
2288
2291
|
|
|
2289
2292
|
// src/panel.ts
|
|
@@ -2349,72 +2352,16 @@ var EditingPanelHooks = () => {
|
|
|
2349
2352
|
return null;
|
|
2350
2353
|
};
|
|
2351
2354
|
|
|
2352
|
-
// src/hooks/use-unapply-class.ts
|
|
2353
|
-
import { updateElementSettings as updateElementSettings3, useElementSetting as useElementSetting4 } from "@elementor/editor-elements";
|
|
2354
|
-
var useUnapplyClass = (classId) => {
|
|
2355
|
-
const { element } = useElement();
|
|
2356
|
-
const classesProp = useClassesProp();
|
|
2357
|
-
const classes = useElementSetting4(element.id, classesProp);
|
|
2358
|
-
const filteredClasses = classes?.value.filter((className) => className !== classId) ?? [];
|
|
2359
|
-
return () => {
|
|
2360
|
-
updateElementSettings3({
|
|
2361
|
-
id: element.id,
|
|
2362
|
-
props: {
|
|
2363
|
-
[classesProp]: {
|
|
2364
|
-
$$type: "classes",
|
|
2365
|
-
value: filteredClasses
|
|
2366
|
-
}
|
|
2367
|
-
}
|
|
2368
|
-
});
|
|
2369
|
-
};
|
|
2370
|
-
};
|
|
2371
|
-
|
|
2372
|
-
// src/css-classes.ts
|
|
2373
|
-
var STATES = ["hover", "focus", "active"];
|
|
2374
|
-
function initCssClasses() {
|
|
2375
|
-
registerStateItems();
|
|
2376
|
-
registerGlobalClassItems();
|
|
2377
|
-
}
|
|
2378
|
-
function registerStateItems() {
|
|
2379
|
-
registerStateMenuItem({
|
|
2380
|
-
id: "normal",
|
|
2381
|
-
props: {
|
|
2382
|
-
state: null
|
|
2383
|
-
}
|
|
2384
|
-
});
|
|
2385
|
-
STATES.forEach((state) => {
|
|
2386
|
-
registerStateMenuItem({
|
|
2387
|
-
id: state,
|
|
2388
|
-
props: {
|
|
2389
|
-
state
|
|
2390
|
-
}
|
|
2391
|
-
});
|
|
2392
|
-
});
|
|
2393
|
-
}
|
|
2394
|
-
function registerGlobalClassItems() {
|
|
2395
|
-
registerGlobalClassMenuItem({
|
|
2396
|
-
id: "unapply-class",
|
|
2397
|
-
useProps: () => {
|
|
2398
|
-
const { styleId: currentClass } = useCssClassItem();
|
|
2399
|
-
const unapplyClass = useUnapplyClass(currentClass);
|
|
2400
|
-
return {
|
|
2401
|
-
text: "Remove",
|
|
2402
|
-
onClick: unapplyClass
|
|
2403
|
-
};
|
|
2404
|
-
}
|
|
2405
|
-
});
|
|
2406
|
-
}
|
|
2407
|
-
|
|
2408
2355
|
// src/dynamics/components/dynamic-selection-control.tsx
|
|
2409
|
-
import * as
|
|
2356
|
+
import * as React63 from "react";
|
|
2410
2357
|
import { useId as useId5 } from "react";
|
|
2411
2358
|
import { ControlLabel as ControlLabel30, useBoundProp as useBoundProp4 } from "@elementor/editor-controls";
|
|
2412
2359
|
import { DatabaseIcon, SettingsIcon, XIcon as XIcon2 } from "@elementor/icons";
|
|
2413
2360
|
import {
|
|
2414
2361
|
bindPopover as bindPopover2,
|
|
2415
2362
|
bindTrigger as bindTrigger2,
|
|
2416
|
-
Box as
|
|
2417
|
-
Divider as
|
|
2363
|
+
Box as Box5,
|
|
2364
|
+
Divider as Divider11,
|
|
2418
2365
|
IconButton as IconButton3,
|
|
2419
2366
|
Paper,
|
|
2420
2367
|
Popover as Popover2,
|
|
@@ -2437,7 +2384,7 @@ var usePersistDynamicValue = (propKey) => {
|
|
|
2437
2384
|
};
|
|
2438
2385
|
|
|
2439
2386
|
// src/dynamics/dynamic-control.tsx
|
|
2440
|
-
import * as
|
|
2387
|
+
import * as React61 from "react";
|
|
2441
2388
|
import { PropKeyProvider as PropKeyProvider3, PropProvider as PropProvider3, useBoundProp as useBoundProp2 } from "@elementor/editor-controls";
|
|
2442
2389
|
|
|
2443
2390
|
// src/dynamics/hooks/use-dynamic-tag.ts
|
|
@@ -2539,17 +2486,17 @@ var DynamicControl = ({ bind, children }) => {
|
|
|
2539
2486
|
});
|
|
2540
2487
|
};
|
|
2541
2488
|
const propType = createTopLevelOjectType({ schema: dynamicTag.props_schema });
|
|
2542
|
-
return /* @__PURE__ */
|
|
2489
|
+
return /* @__PURE__ */ React61.createElement(PropProvider3, { propType, setValue: setDynamicValue, value: { [bind]: dynamicValue } }, /* @__PURE__ */ React61.createElement(PropKeyProvider3, { bind }, children));
|
|
2543
2490
|
};
|
|
2544
2491
|
|
|
2545
2492
|
// src/dynamics/components/dynamic-selection.tsx
|
|
2546
|
-
import * as
|
|
2547
|
-
import { Fragment as
|
|
2493
|
+
import * as React62 from "react";
|
|
2494
|
+
import { Fragment as Fragment9, useState as useState9 } from "react";
|
|
2548
2495
|
import { useBoundProp as useBoundProp3 } from "@elementor/editor-controls";
|
|
2549
2496
|
import { PhotoIcon, SearchIcon } from "@elementor/icons";
|
|
2550
2497
|
import {
|
|
2551
|
-
Box as
|
|
2552
|
-
Divider as
|
|
2498
|
+
Box as Box4,
|
|
2499
|
+
Divider as Divider10,
|
|
2553
2500
|
InputAdornment,
|
|
2554
2501
|
Link,
|
|
2555
2502
|
ListSubheader as ListSubheader2,
|
|
@@ -2562,7 +2509,7 @@ import {
|
|
|
2562
2509
|
import { __ as __41 } from "@wordpress/i18n";
|
|
2563
2510
|
var SIZE3 = "tiny";
|
|
2564
2511
|
var DynamicSelection = ({ onSelect }) => {
|
|
2565
|
-
const [searchValue, setSearchValue] =
|
|
2512
|
+
const [searchValue, setSearchValue] = useState9("");
|
|
2566
2513
|
const { groups: dynamicGroups } = getAtomicDynamicTags() || {};
|
|
2567
2514
|
const { value: anyValue } = useBoundProp3();
|
|
2568
2515
|
const { bind, value: dynamicValue, setValue } = useBoundProp3(dynamicPropTypeUtil);
|
|
@@ -2579,7 +2526,7 @@ var DynamicSelection = ({ onSelect }) => {
|
|
|
2579
2526
|
setValue({ name: value, settings: {} });
|
|
2580
2527
|
onSelect?.();
|
|
2581
2528
|
};
|
|
2582
|
-
return /* @__PURE__ */
|
|
2529
|
+
return /* @__PURE__ */ React62.createElement(Stack20, null, /* @__PURE__ */ React62.createElement(Box4, { px: 1.5, pb: 1 }, /* @__PURE__ */ React62.createElement(
|
|
2583
2530
|
TextField2,
|
|
2584
2531
|
{
|
|
2585
2532
|
fullWidth: true,
|
|
@@ -2588,12 +2535,12 @@ var DynamicSelection = ({ onSelect }) => {
|
|
|
2588
2535
|
onChange: handleSearch,
|
|
2589
2536
|
placeholder: __41("Search dynamic tag", "elementor"),
|
|
2590
2537
|
InputProps: {
|
|
2591
|
-
startAdornment: /* @__PURE__ */
|
|
2538
|
+
startAdornment: /* @__PURE__ */ React62.createElement(InputAdornment, { position: "start" }, /* @__PURE__ */ React62.createElement(SearchIcon, { fontSize: SIZE3 }))
|
|
2592
2539
|
}
|
|
2593
2540
|
}
|
|
2594
|
-
)), /* @__PURE__ */
|
|
2541
|
+
)), /* @__PURE__ */ React62.createElement(Divider10, null), /* @__PURE__ */ React62.createElement(Box4, { sx: { overflowY: "auto", height: 260, width: 220 } }, options10.length > 0 ? /* @__PURE__ */ React62.createElement(MenuList, { role: "listbox", tabIndex: 0 }, options10.map(([category, items3], index) => /* @__PURE__ */ React62.createElement(Fragment9, { key: index }, /* @__PURE__ */ React62.createElement(ListSubheader2, { sx: { typography: "caption", color: "text.tertiary" } }, dynamicGroups?.[category]?.title || category), items3.map(({ value, label: tagLabel }) => {
|
|
2595
2542
|
const isSelected = isCurrentValueDynamic && value === dynamicValue?.name;
|
|
2596
|
-
return /* @__PURE__ */
|
|
2543
|
+
return /* @__PURE__ */ React62.createElement(
|
|
2597
2544
|
MenuItem2,
|
|
2598
2545
|
{
|
|
2599
2546
|
key: value,
|
|
@@ -2604,7 +2551,7 @@ var DynamicSelection = ({ onSelect }) => {
|
|
|
2604
2551
|
},
|
|
2605
2552
|
tagLabel
|
|
2606
2553
|
);
|
|
2607
|
-
})))) : /* @__PURE__ */
|
|
2554
|
+
})))) : /* @__PURE__ */ React62.createElement(Stack20, { alignItems: "center", p: 2.5, gap: 1.5 }, /* @__PURE__ */ React62.createElement(PhotoIcon, { fontSize: "large" }), /* @__PURE__ */ React62.createElement(Typography3, { align: "center", variant: "caption", color: "text.secondary" }, __41("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React62.createElement("br", null), "\u201C", searchValue, "\u201D."), /* @__PURE__ */ React62.createElement(Typography3, { align: "center", variant: "caption", color: "text.secondary" }, /* @__PURE__ */ React62.createElement(
|
|
2608
2555
|
Link,
|
|
2609
2556
|
{
|
|
2610
2557
|
color: "secondary",
|
|
@@ -2647,25 +2594,25 @@ var DynamicSelectionControl = () => {
|
|
|
2647
2594
|
if (!dynamicTag) {
|
|
2648
2595
|
throw new Error(`Dynamic tag ${tagName} not found`);
|
|
2649
2596
|
}
|
|
2650
|
-
return /* @__PURE__ */
|
|
2597
|
+
return /* @__PURE__ */ React63.createElement(Box5, null, /* @__PURE__ */ React63.createElement(
|
|
2651
2598
|
Tag,
|
|
2652
2599
|
{
|
|
2653
2600
|
fullWidth: true,
|
|
2654
2601
|
showActionsOnHover: true,
|
|
2655
2602
|
label: dynamicTag.label,
|
|
2656
|
-
startIcon: /* @__PURE__ */
|
|
2603
|
+
startIcon: /* @__PURE__ */ React63.createElement(DatabaseIcon, { fontSize: SIZE4 }),
|
|
2657
2604
|
...bindTrigger2(selectionPopoverState),
|
|
2658
|
-
actions: /* @__PURE__ */
|
|
2605
|
+
actions: /* @__PURE__ */ React63.createElement(React63.Fragment, null, /* @__PURE__ */ React63.createElement(DynamicSettingsPopover, { dynamicTag }), /* @__PURE__ */ React63.createElement(
|
|
2659
2606
|
IconButton3,
|
|
2660
2607
|
{
|
|
2661
2608
|
size: SIZE4,
|
|
2662
2609
|
onClick: removeDynamicTag,
|
|
2663
2610
|
"aria-label": __42("Remove dynamic value", "elementor")
|
|
2664
2611
|
},
|
|
2665
|
-
/* @__PURE__ */
|
|
2612
|
+
/* @__PURE__ */ React63.createElement(XIcon2, { fontSize: SIZE4 })
|
|
2666
2613
|
))
|
|
2667
2614
|
}
|
|
2668
|
-
), /* @__PURE__ */
|
|
2615
|
+
), /* @__PURE__ */ React63.createElement(
|
|
2669
2616
|
Popover2,
|
|
2670
2617
|
{
|
|
2671
2618
|
disablePortal: true,
|
|
@@ -2673,7 +2620,7 @@ var DynamicSelectionControl = () => {
|
|
|
2673
2620
|
anchorOrigin: { vertical: "bottom", horizontal: "left" },
|
|
2674
2621
|
...bindPopover2(selectionPopoverState)
|
|
2675
2622
|
},
|
|
2676
|
-
/* @__PURE__ */
|
|
2623
|
+
/* @__PURE__ */ React63.createElement(Stack21, null, /* @__PURE__ */ React63.createElement(Stack21, { direction: "row", alignItems: "center", pl: 1.5, pr: 0.5, py: 1.5 }, /* @__PURE__ */ React63.createElement(DatabaseIcon, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React63.createElement(Typography4, { variant: "subtitle2" }, __42("Dynamic Tags", "elementor")), /* @__PURE__ */ React63.createElement(IconButton3, { size: SIZE4, sx: { ml: "auto" }, onClick: selectionPopoverState.close }, /* @__PURE__ */ React63.createElement(XIcon2, { fontSize: SIZE4 }))), /* @__PURE__ */ React63.createElement(DynamicSelection, { onSelect: selectionPopoverState.close }))
|
|
2677
2624
|
));
|
|
2678
2625
|
};
|
|
2679
2626
|
var DynamicSettingsPopover = ({ dynamicTag }) => {
|
|
@@ -2683,22 +2630,22 @@ var DynamicSettingsPopover = ({ dynamicTag }) => {
|
|
|
2683
2630
|
if (!hasDynamicSettings) {
|
|
2684
2631
|
return null;
|
|
2685
2632
|
}
|
|
2686
|
-
return /* @__PURE__ */
|
|
2633
|
+
return /* @__PURE__ */ React63.createElement(React63.Fragment, null, /* @__PURE__ */ React63.createElement(
|
|
2687
2634
|
IconButton3,
|
|
2688
2635
|
{
|
|
2689
2636
|
size: SIZE4,
|
|
2690
2637
|
...bindTrigger2(settingsPopupState),
|
|
2691
2638
|
"aria-label": __42("Settings", "elementor")
|
|
2692
2639
|
},
|
|
2693
|
-
/* @__PURE__ */
|
|
2694
|
-
), /* @__PURE__ */
|
|
2640
|
+
/* @__PURE__ */ React63.createElement(SettingsIcon, { fontSize: SIZE4 })
|
|
2641
|
+
), /* @__PURE__ */ React63.createElement(
|
|
2695
2642
|
Popover2,
|
|
2696
2643
|
{
|
|
2697
2644
|
disableScrollLock: true,
|
|
2698
2645
|
anchorOrigin: { vertical: "bottom", horizontal: "center" },
|
|
2699
2646
|
...bindPopover2(settingsPopupState)
|
|
2700
2647
|
},
|
|
2701
|
-
/* @__PURE__ */
|
|
2648
|
+
/* @__PURE__ */ React63.createElement(Paper, { component: Stack21, sx: { minHeight: "300px", width: "220px" } }, /* @__PURE__ */ React63.createElement(Stack21, { direction: "row", alignItems: "center", px: 1.5, pt: 2, pb: 1 }, /* @__PURE__ */ React63.createElement(DatabaseIcon, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React63.createElement(Typography4, { variant: "subtitle2" }, dynamicTag.label), /* @__PURE__ */ React63.createElement(IconButton3, { sx: { ml: "auto" }, size: SIZE4, onClick: settingsPopupState.close }, /* @__PURE__ */ React63.createElement(XIcon2, { fontSize: SIZE4 }))), /* @__PURE__ */ React63.createElement(DynamicSettings, { controls: dynamicTag.atomic_controls }))
|
|
2702
2649
|
));
|
|
2703
2650
|
};
|
|
2704
2651
|
var DynamicSettings = ({ controls }) => {
|
|
@@ -2707,10 +2654,10 @@ var DynamicSettings = ({ controls }) => {
|
|
|
2707
2654
|
if (!tabs.length) {
|
|
2708
2655
|
return null;
|
|
2709
2656
|
}
|
|
2710
|
-
return /* @__PURE__ */
|
|
2711
|
-
return /* @__PURE__ */
|
|
2657
|
+
return /* @__PURE__ */ React63.createElement(React63.Fragment, null, /* @__PURE__ */ React63.createElement(Tabs2, { indicatorColor: "secondary", textColor: "secondary", ...getTabsProps() }, tabs.map(({ value }, index) => /* @__PURE__ */ React63.createElement(Tab2, { key: index, label: value.label, sx: { px: 1, py: 0.5 }, ...getTabProps(index) }))), /* @__PURE__ */ React63.createElement(Divider11, null), tabs.map(({ value }, index) => {
|
|
2658
|
+
return /* @__PURE__ */ React63.createElement(TabPanel2, { key: index, sx: { flexGrow: 1 }, ...getTabPanelProps(index) }, /* @__PURE__ */ React63.createElement(Stack21, { gap: 1, px: 2 }, value.items.map((item) => {
|
|
2712
2659
|
if (item.type === "control") {
|
|
2713
|
-
return /* @__PURE__ */
|
|
2660
|
+
return /* @__PURE__ */ React63.createElement(Control3, { key: item.value.bind, control: item.value });
|
|
2714
2661
|
}
|
|
2715
2662
|
return null;
|
|
2716
2663
|
})));
|
|
@@ -2720,11 +2667,11 @@ var Control3 = ({ control }) => {
|
|
|
2720
2667
|
if (!getControlByType(control.type)) {
|
|
2721
2668
|
return null;
|
|
2722
2669
|
}
|
|
2723
|
-
return /* @__PURE__ */
|
|
2670
|
+
return /* @__PURE__ */ React63.createElement(DynamicControl, { bind: control.bind }, control.label ? /* @__PURE__ */ React63.createElement(ControlLabel30, null, control.label) : null, /* @__PURE__ */ React63.createElement(Control, { type: control.type, props: control.props }));
|
|
2724
2671
|
};
|
|
2725
2672
|
|
|
2726
2673
|
// src/dynamics/hooks/use-prop-dynamic-action.tsx
|
|
2727
|
-
import * as
|
|
2674
|
+
import * as React64 from "react";
|
|
2728
2675
|
import { useBoundProp as useBoundProp5 } from "@elementor/editor-controls";
|
|
2729
2676
|
import { DatabaseIcon as DatabaseIcon2 } from "@elementor/icons";
|
|
2730
2677
|
import { __ as __43 } from "@wordpress/i18n";
|
|
@@ -2735,7 +2682,7 @@ var usePropDynamicAction = () => {
|
|
|
2735
2682
|
visible,
|
|
2736
2683
|
icon: DatabaseIcon2,
|
|
2737
2684
|
title: __43("Dynamic Tags", "elementor"),
|
|
2738
|
-
popoverContent: ({ closePopover }) => /* @__PURE__ */
|
|
2685
|
+
popoverContent: ({ closePopover }) => /* @__PURE__ */ React64.createElement(DynamicSelection, { onSelect: closePopover })
|
|
2739
2686
|
};
|
|
2740
2687
|
};
|
|
2741
2688
|
|
|
@@ -2761,7 +2708,6 @@ function init2() {
|
|
|
2761
2708
|
component: EditingPanelHooks
|
|
2762
2709
|
});
|
|
2763
2710
|
init();
|
|
2764
|
-
initCssClasses();
|
|
2765
2711
|
}
|
|
2766
2712
|
var blockV1Panel = () => {
|
|
2767
2713
|
blockDataCommand({
|
|
@@ -2774,8 +2720,6 @@ var blockV1Panel = () => {
|
|
|
2774
2720
|
init2();
|
|
2775
2721
|
export {
|
|
2776
2722
|
injectIntoClassSelectorActions,
|
|
2777
|
-
registerGlobalClassMenuItem,
|
|
2778
|
-
registerStateMenuItem,
|
|
2779
2723
|
replaceControl,
|
|
2780
2724
|
useBoundProp6 as useBoundProp,
|
|
2781
2725
|
usePanelActions,
|