@elementor/editor-editing-panel 1.10.0 → 1.11.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 +73 -0
- package/dist/index.js +680 -685
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +632 -641
- package/dist/index.mjs.map +1 -1
- package/package.json +18 -15
- package/src/components/css-classes/css-class-item.tsx +130 -0
- package/src/components/css-classes/css-class-menu.tsx +151 -0
- package/src/components/{css-class-selector.tsx → css-classes/css-class-selector.tsx} +23 -154
- package/src/components/style-sections/layout-section/display-field.tsx +9 -1
- package/src/components/style-sections/layout-section/flex-order-field.tsx +5 -5
- package/src/components/style-sections/layout-section/flex-size-field.tsx +1 -1
- package/src/components/style-sections/layout-section/gap-control-field.tsx +0 -2
- package/src/components/style-sections/position-section/dimensions-field.tsx +1 -1
- package/src/components/style-sections/position-section/position-section.tsx +1 -1
- package/src/components/style-sections/typography-section/font-weight-field.tsx +9 -5
- package/src/components/style-sections/typography-section/text-alignment-field.tsx +16 -8
- package/src/components/style-sections/typography-section/transform-field.tsx +12 -3
- package/src/components/style-tab.tsx +1 -1
- package/src/controls-registry/controls-registry.tsx +3 -1
- package/src/controls-registry/settings-field.tsx +8 -1
- package/src/dynamics/components/dynamic-selection.tsx +1 -1
- package/src/dynamics/dynamic-control.tsx +1 -1
- package/src/dynamics/types.ts +2 -2
- package/src/dynamics/utils.ts +2 -2
- package/src/hooks/use-persist-dynamic-value.ts +1 -1
- package/src/hooks/use-styles-fields.ts +113 -9
- package/src/index.ts +1 -1
- package/src/init.ts +2 -2
- package/src/sync/types.ts +4 -3
- package/src/components/collapsible-field.tsx +0 -36
- package/src/components/css-class-menu.tsx +0 -101
- package/src/components/editable-field.tsx +0 -166
- package/src/hooks/use-session-storage.ts +0 -46
- package/src/sync/enqueue-font.ts +0 -7
package/dist/index.mjs
CHANGED
|
@@ -5,29 +5,19 @@ 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-selector.tsx
|
|
8
|
+
// src/components/css-classes/css-class-selector.tsx
|
|
9
9
|
import * as React7 from "react";
|
|
10
|
-
import { useId as useId2, useRef as useRef2 } from "react";
|
|
11
10
|
import { getElementSetting, updateElementSettings as updateElementSettings2, useElementSetting as useElementSetting2 } from "@elementor/editor-elements";
|
|
12
11
|
import { classesPropTypeUtil } from "@elementor/editor-props";
|
|
13
12
|
import {
|
|
14
13
|
ELEMENTS_STYLES_PROVIDER_KEY,
|
|
15
|
-
stylesRepository as
|
|
14
|
+
stylesRepository as stylesRepository4,
|
|
16
15
|
useCreateActionsByProvider,
|
|
17
16
|
useProviders
|
|
18
17
|
} from "@elementor/editor-styles-repository";
|
|
19
|
-
import { EllipsisWithTooltip } from "@elementor/editor-ui";
|
|
20
|
-
import { DotsVerticalIcon } from "@elementor/icons";
|
|
21
18
|
import { createLocation } from "@elementor/locations";
|
|
22
|
-
import {
|
|
23
|
-
|
|
24
|
-
Chip,
|
|
25
|
-
Stack,
|
|
26
|
-
Typography,
|
|
27
|
-
UnstableChipGroup,
|
|
28
|
-
usePopupState
|
|
29
|
-
} from "@elementor/ui";
|
|
30
|
-
import { __ as __2 } from "@wordpress/i18n";
|
|
19
|
+
import { Chip as Chip2, Stack as Stack2, Typography as Typography2 } from "@elementor/ui";
|
|
20
|
+
import { __ as __3 } from "@wordpress/i18n";
|
|
31
21
|
|
|
32
22
|
// src/contexts/classes-prop-context.tsx
|
|
33
23
|
import * as React from "react";
|
|
@@ -106,227 +96,14 @@ function getProviderByStyleId(styleId) {
|
|
|
106
96
|
return styleProvider ?? null;
|
|
107
97
|
}
|
|
108
98
|
|
|
109
|
-
// src/components/css-class-menu.tsx
|
|
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(
|
|
153
|
-
Menu,
|
|
154
|
-
{
|
|
155
|
-
MenuListProps: { dense: true },
|
|
156
|
-
...bindMenu(popupState),
|
|
157
|
-
anchorOrigin: {
|
|
158
|
-
vertical: "top",
|
|
159
|
-
horizontal: "right"
|
|
160
|
-
},
|
|
161
|
-
onKeyDown: handleKeyDown
|
|
162
|
-
},
|
|
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
|
-
})
|
|
172
|
-
);
|
|
173
|
-
}
|
|
174
|
-
function StateMenuItem({ state, styleId, ...props }) {
|
|
175
|
-
const { id: activeId, setId: setActiveId, setMetaState: setActiveMetaState, meta } = useStyle();
|
|
176
|
-
const { state: activeState } = meta;
|
|
177
|
-
const isActive = styleId === activeId;
|
|
178
|
-
const isSelected = state === activeState && isActive;
|
|
179
|
-
return /* @__PURE__ */ React4.createElement(
|
|
180
|
-
StyledMenuItem,
|
|
181
|
-
{
|
|
182
|
-
...props,
|
|
183
|
-
selected: isSelected,
|
|
184
|
-
onClick: () => {
|
|
185
|
-
if (!isActive) {
|
|
186
|
-
setActiveId(styleId);
|
|
187
|
-
}
|
|
188
|
-
setActiveMetaState(state);
|
|
189
|
-
}
|
|
190
|
-
},
|
|
191
|
-
isSelected && /* @__PURE__ */ React4.createElement(ListItemIcon, null, /* @__PURE__ */ React4.createElement(CheckIcon, null)),
|
|
192
|
-
/* @__PURE__ */ React4.createElement(ListItemText, { primary: state ? `:${state}` : "Normal" })
|
|
193
|
-
);
|
|
194
|
-
}
|
|
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" }));
|
|
198
|
-
}
|
|
199
|
-
var StyledMenuItem = styled(MenuItem)({
|
|
200
|
-
"&:hover": {
|
|
201
|
-
color: "text.primary"
|
|
202
|
-
// Overriding global CSS from the editor.
|
|
203
|
-
}
|
|
204
|
-
});
|
|
205
|
-
|
|
206
|
-
// src/components/editable-field.tsx
|
|
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);
|
|
211
|
-
var EditableFieldProvider = ({
|
|
212
|
-
children,
|
|
213
|
-
value,
|
|
214
|
-
onSubmit,
|
|
215
|
-
validation,
|
|
216
|
-
editable
|
|
217
|
-
}) => {
|
|
218
|
-
const [isEditing, setIsEditing] = useState(false);
|
|
219
|
-
const [submitting, setSubmitting] = useState(false);
|
|
220
|
-
const [error, setError] = useState(null);
|
|
221
|
-
const openEditMode = () => {
|
|
222
|
-
setIsEditing(true);
|
|
223
|
-
};
|
|
224
|
-
const closeEditMode = () => {
|
|
225
|
-
setError(null);
|
|
226
|
-
setIsEditing(false);
|
|
227
|
-
};
|
|
228
|
-
const submit = async (newValue) => {
|
|
229
|
-
if (!error) {
|
|
230
|
-
setSubmitting(true);
|
|
231
|
-
try {
|
|
232
|
-
await onSubmit(newValue);
|
|
233
|
-
} finally {
|
|
234
|
-
setSubmitting(false);
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
closeEditMode();
|
|
238
|
-
};
|
|
239
|
-
const onChange = (event) => {
|
|
240
|
-
const { innerText: newValue } = event.target;
|
|
241
|
-
if (validation) {
|
|
242
|
-
setError(validation(newValue));
|
|
243
|
-
}
|
|
244
|
-
};
|
|
245
|
-
return /* @__PURE__ */ React5.createElement(
|
|
246
|
-
Context4.Provider,
|
|
247
|
-
{
|
|
248
|
-
value: {
|
|
249
|
-
isEditing,
|
|
250
|
-
openEditMode,
|
|
251
|
-
closeEditMode,
|
|
252
|
-
onChange,
|
|
253
|
-
value,
|
|
254
|
-
error,
|
|
255
|
-
submit,
|
|
256
|
-
editable,
|
|
257
|
-
submitting
|
|
258
|
-
}
|
|
259
|
-
},
|
|
260
|
-
children
|
|
261
|
-
);
|
|
262
|
-
};
|
|
263
|
-
var EditableField = ({ children, onClick, ...props }) => {
|
|
264
|
-
const ref = useRef(null);
|
|
265
|
-
const { isEditing, closeEditMode, value, onChange, error, submit, editable } = useEditableField();
|
|
266
|
-
useEffect(() => {
|
|
267
|
-
if (isEditing) {
|
|
268
|
-
ref.current?.focus();
|
|
269
|
-
selectAll();
|
|
270
|
-
}
|
|
271
|
-
}, [isEditing]);
|
|
272
|
-
const handleKeyDown = (event) => {
|
|
273
|
-
event.stopPropagation();
|
|
274
|
-
if (["Escape"].includes(event.key)) {
|
|
275
|
-
return closeEditMode();
|
|
276
|
-
}
|
|
277
|
-
if (["Enter"].includes(event.key)) {
|
|
278
|
-
event.preventDefault();
|
|
279
|
-
return submit(event.target.innerText);
|
|
280
|
-
}
|
|
281
|
-
};
|
|
282
|
-
const handleClick = (event) => {
|
|
283
|
-
if (isEditing) {
|
|
284
|
-
event.stopPropagation();
|
|
285
|
-
}
|
|
286
|
-
onClick?.(event);
|
|
287
|
-
};
|
|
288
|
-
const selectAll = () => {
|
|
289
|
-
const selection = getSelection();
|
|
290
|
-
if (!selection || !ref.current) {
|
|
291
|
-
return;
|
|
292
|
-
}
|
|
293
|
-
const range = document.createRange();
|
|
294
|
-
range.selectNodeContents(ref.current);
|
|
295
|
-
selection.removeAllRanges();
|
|
296
|
-
selection.addRange(range);
|
|
297
|
-
};
|
|
298
|
-
if (!editable) {
|
|
299
|
-
return children;
|
|
300
|
-
}
|
|
301
|
-
return /* @__PURE__ */ React5.createElement(Tooltip, { open: !!error, title: error, placement: "top" }, /* @__PURE__ */ React5.createElement("div", { onKeyDown: handleKeyDown, onClick: handleClick, ...props }, /* @__PURE__ */ React5.createElement(
|
|
302
|
-
"span",
|
|
303
|
-
{
|
|
304
|
-
ref,
|
|
305
|
-
role: "textbox",
|
|
306
|
-
onInput: onChange,
|
|
307
|
-
contentEditable: isEditing,
|
|
308
|
-
suppressContentEditableWarning: true,
|
|
309
|
-
onBlur: closeEditMode
|
|
310
|
-
},
|
|
311
|
-
isEditing ? value : children
|
|
312
|
-
)));
|
|
313
|
-
};
|
|
314
|
-
var useEditableField = () => {
|
|
315
|
-
const contextValue = useContext4(Context4);
|
|
316
|
-
if (!contextValue) {
|
|
317
|
-
throw new Error("useEditableField must be used within a EditableFieldProvider");
|
|
318
|
-
}
|
|
319
|
-
return contextValue;
|
|
320
|
-
};
|
|
321
|
-
|
|
322
99
|
// src/components/multi-combobox.tsx
|
|
323
|
-
import * as
|
|
324
|
-
import { useId, useState
|
|
100
|
+
import * as React4 from "react";
|
|
101
|
+
import { useId, useState } from "react";
|
|
325
102
|
import {
|
|
326
103
|
Autocomplete,
|
|
327
104
|
Box,
|
|
328
105
|
createFilterOptions,
|
|
329
|
-
styled
|
|
106
|
+
styled,
|
|
330
107
|
TextField
|
|
331
108
|
} from "@elementor/ui";
|
|
332
109
|
function MultiCombobox({
|
|
@@ -338,7 +115,7 @@ function MultiCombobox({
|
|
|
338
115
|
}) {
|
|
339
116
|
const filter = useFilterOptions();
|
|
340
117
|
const { run, loading } = useActionRunner();
|
|
341
|
-
return /* @__PURE__ */
|
|
118
|
+
return /* @__PURE__ */ React4.createElement(
|
|
342
119
|
Autocomplete,
|
|
343
120
|
{
|
|
344
121
|
...props,
|
|
@@ -351,8 +128,8 @@ function MultiCombobox({
|
|
|
351
128
|
disabled: loading,
|
|
352
129
|
value: selected,
|
|
353
130
|
options: options10,
|
|
354
|
-
renderGroup: (params) => /* @__PURE__ */
|
|
355
|
-
renderInput: (params) => /* @__PURE__ */
|
|
131
|
+
renderGroup: (params) => /* @__PURE__ */ React4.createElement(Group, { ...params }),
|
|
132
|
+
renderInput: (params) => /* @__PURE__ */ React4.createElement(TextField, { ...params }),
|
|
356
133
|
onChange: (_, selectedOrInputValue, reason) => {
|
|
357
134
|
const inputValue = selectedOrInputValue.find((option) => typeof option === "string");
|
|
358
135
|
const optionsAndActions = selectedOrInputValue.filter((option) => typeof option !== "string");
|
|
@@ -392,27 +169,27 @@ function MultiCombobox({
|
|
|
392
169
|
}
|
|
393
170
|
var Group = (params) => {
|
|
394
171
|
const id = `combobox-group-${useId().replace(/:/g, "_")}`;
|
|
395
|
-
return /* @__PURE__ */
|
|
172
|
+
return /* @__PURE__ */ React4.createElement(StyledGroup, { role: "group", "aria-labelledby": id }, /* @__PURE__ */ React4.createElement(StyledGroupHeader, { id }, " ", params.group), /* @__PURE__ */ React4.createElement(StyledGroupItems, { role: "listbox" }, params.children));
|
|
396
173
|
};
|
|
397
|
-
var StyledGroup =
|
|
174
|
+
var StyledGroup = styled("li")`
|
|
398
175
|
&:not( :last-of-type ) {
|
|
399
176
|
border-bottom: 1px solid ${({ theme }) => theme.palette.divider};
|
|
400
177
|
}
|
|
401
178
|
`;
|
|
402
|
-
var StyledGroupHeader =
|
|
179
|
+
var StyledGroupHeader = styled(Box)(({ theme }) => ({
|
|
403
180
|
position: "sticky",
|
|
404
181
|
top: "-8px",
|
|
405
182
|
padding: theme.spacing(1, 2),
|
|
406
183
|
color: theme.palette.text.tertiary
|
|
407
184
|
}));
|
|
408
|
-
var StyledGroupItems =
|
|
185
|
+
var StyledGroupItems = styled("ul")`
|
|
409
186
|
padding: 0;
|
|
410
187
|
`;
|
|
411
188
|
function useFilterOptions() {
|
|
412
|
-
return
|
|
189
|
+
return useState(() => createFilterOptions())[0];
|
|
413
190
|
}
|
|
414
191
|
function useActionRunner() {
|
|
415
|
-
const [loading, setLoading] =
|
|
192
|
+
const [loading, setLoading] = useState(false);
|
|
416
193
|
const run = async (apply, value) => {
|
|
417
194
|
setLoading(true);
|
|
418
195
|
try {
|
|
@@ -437,11 +214,236 @@ function isAction(option) {
|
|
|
437
214
|
return "apply" in option && "condition" in option;
|
|
438
215
|
}
|
|
439
216
|
|
|
440
|
-
// src/components/css-class-
|
|
217
|
+
// src/components/css-classes/css-class-item.tsx
|
|
218
|
+
import * as React6 from "react";
|
|
219
|
+
import { useState as useState2 } from "react";
|
|
220
|
+
import { stylesRepository as stylesRepository3 } from "@elementor/editor-styles-repository";
|
|
221
|
+
import { EditableField, EllipsisWithTooltip, useEditable } from "@elementor/editor-ui";
|
|
222
|
+
import { DotsVerticalIcon } from "@elementor/icons";
|
|
223
|
+
import {
|
|
224
|
+
bindTrigger,
|
|
225
|
+
Chip,
|
|
226
|
+
Stack,
|
|
227
|
+
Typography,
|
|
228
|
+
UnstableChipGroup,
|
|
229
|
+
usePopupState
|
|
230
|
+
} from "@elementor/ui";
|
|
231
|
+
import { __ as __2 } from "@wordpress/i18n";
|
|
232
|
+
|
|
233
|
+
// src/components/css-classes/css-class-menu.tsx
|
|
234
|
+
import * as React5 from "react";
|
|
235
|
+
import { stylesRepository as stylesRepository2 } from "@elementor/editor-styles-repository";
|
|
236
|
+
import { bindMenu, Divider, ListSubheader, Menu, MenuItem } from "@elementor/ui";
|
|
237
|
+
import { __ } from "@wordpress/i18n";
|
|
238
|
+
|
|
239
|
+
// src/hooks/use-unapply-class.ts
|
|
240
|
+
import { updateElementSettings, useElementSetting } from "@elementor/editor-elements";
|
|
241
|
+
var useUnapplyClass = (classId) => {
|
|
242
|
+
const { element } = useElement();
|
|
243
|
+
const { setId: setStyleId } = useStyle();
|
|
244
|
+
const classesProp = useClassesProp();
|
|
245
|
+
const classes = useElementSetting(element.id, classesProp);
|
|
246
|
+
const filteredClasses = classes?.value.filter((className) => className !== classId) ?? [];
|
|
247
|
+
return () => {
|
|
248
|
+
updateElementSettings({
|
|
249
|
+
id: element.id,
|
|
250
|
+
props: {
|
|
251
|
+
[classesProp]: {
|
|
252
|
+
$$type: "classes",
|
|
253
|
+
value: filteredClasses
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
});
|
|
257
|
+
setStyleId(null);
|
|
258
|
+
};
|
|
259
|
+
};
|
|
260
|
+
|
|
261
|
+
// src/components/css-classes/css-class-menu.tsx
|
|
262
|
+
var STATES = ["hover", "focus", "active"];
|
|
263
|
+
function CssClassMenu({ styleId, provider, popupState, handleRename, anchorEl }) {
|
|
264
|
+
const handleKeyDown = (e) => {
|
|
265
|
+
e.stopPropagation();
|
|
266
|
+
};
|
|
267
|
+
return /* @__PURE__ */ React5.createElement(
|
|
268
|
+
Menu,
|
|
269
|
+
{
|
|
270
|
+
MenuListProps: { dense: true },
|
|
271
|
+
...bindMenu(popupState),
|
|
272
|
+
anchorEl,
|
|
273
|
+
anchorOrigin: {
|
|
274
|
+
vertical: "bottom",
|
|
275
|
+
horizontal: "left"
|
|
276
|
+
},
|
|
277
|
+
transformOrigin: {
|
|
278
|
+
horizontal: "left",
|
|
279
|
+
vertical: -4
|
|
280
|
+
},
|
|
281
|
+
onKeyDown: handleKeyDown
|
|
282
|
+
},
|
|
283
|
+
getMenuItemsByProvider({ provider, styleId, handleRename, closeMenu: popupState.close }),
|
|
284
|
+
/* @__PURE__ */ React5.createElement(ListSubheader, { sx: { typography: "caption", color: "text.secondary", pb: 0.5, pt: 1 } }, __("Pseudo selector", "elementor")),
|
|
285
|
+
STATES.map((state) => {
|
|
286
|
+
return /* @__PURE__ */ React5.createElement(StateMenuItem, { key: state, state, styleId });
|
|
287
|
+
})
|
|
288
|
+
);
|
|
289
|
+
}
|
|
290
|
+
function getMenuItemsByProvider({
|
|
291
|
+
provider,
|
|
292
|
+
styleId,
|
|
293
|
+
handleRename,
|
|
294
|
+
closeMenu
|
|
295
|
+
}) {
|
|
296
|
+
const providerInstance = stylesRepository2.getProviderByKey(provider);
|
|
297
|
+
const providerActions = providerInstance?.actions;
|
|
298
|
+
const [canUpdate, canDelete] = [providerActions?.update, providerActions?.delete];
|
|
299
|
+
const actions = [
|
|
300
|
+
canUpdate && /* @__PURE__ */ React5.createElement(RenameClassMenuItem, { key: "rename-class", handleRename, closeMenu }),
|
|
301
|
+
canDelete && /* @__PURE__ */ React5.createElement(UnapplyClassMenuItem, { key: "unapply-class", styleId })
|
|
302
|
+
].filter(Boolean);
|
|
303
|
+
if (actions.length) {
|
|
304
|
+
actions.unshift(
|
|
305
|
+
/* @__PURE__ */ React5.createElement(
|
|
306
|
+
ListSubheader,
|
|
307
|
+
{
|
|
308
|
+
key: "provider-label",
|
|
309
|
+
sx: { typography: "caption", color: "text.secondary", pb: 0.5, pt: 1 }
|
|
310
|
+
},
|
|
311
|
+
providerInstance?.labels?.singular
|
|
312
|
+
)
|
|
313
|
+
);
|
|
314
|
+
actions.push(/* @__PURE__ */ React5.createElement(Divider, { key: "provider-actions-divider" }));
|
|
315
|
+
}
|
|
316
|
+
return actions;
|
|
317
|
+
}
|
|
318
|
+
function StateMenuItem({ state, styleId, ...props }) {
|
|
319
|
+
const { id: activeId, setId: setActiveId, setMetaState: setActiveMetaState, meta } = useStyle();
|
|
320
|
+
const { state: activeState } = meta;
|
|
321
|
+
const isActive = styleId === activeId;
|
|
322
|
+
const isSelected = state === activeState && isActive;
|
|
323
|
+
return /* @__PURE__ */ React5.createElement(
|
|
324
|
+
StyledMenuItem,
|
|
325
|
+
{
|
|
326
|
+
...props,
|
|
327
|
+
selected: isSelected,
|
|
328
|
+
sx: { textTransform: "capitalize" },
|
|
329
|
+
onClick: () => {
|
|
330
|
+
if (!isActive) {
|
|
331
|
+
setActiveId(styleId);
|
|
332
|
+
}
|
|
333
|
+
setActiveMetaState(state);
|
|
334
|
+
}
|
|
335
|
+
},
|
|
336
|
+
state
|
|
337
|
+
);
|
|
338
|
+
}
|
|
339
|
+
function UnapplyClassMenuItem({ styleId, ...props }) {
|
|
340
|
+
const unapplyClass = useUnapplyClass(styleId);
|
|
341
|
+
return /* @__PURE__ */ React5.createElement(StyledMenuItem, { ...props, onClick: unapplyClass }, __("Remove", "elementor"));
|
|
342
|
+
}
|
|
343
|
+
function RenameClassMenuItem({
|
|
344
|
+
handleRename,
|
|
345
|
+
closeMenu,
|
|
346
|
+
...props
|
|
347
|
+
}) {
|
|
348
|
+
return /* @__PURE__ */ React5.createElement(
|
|
349
|
+
StyledMenuItem,
|
|
350
|
+
{
|
|
351
|
+
...props,
|
|
352
|
+
onClick: () => {
|
|
353
|
+
closeMenu();
|
|
354
|
+
handleRename();
|
|
355
|
+
}
|
|
356
|
+
},
|
|
357
|
+
__("Rename", "elementor")
|
|
358
|
+
);
|
|
359
|
+
}
|
|
360
|
+
var StyledMenuItem = ({ ...props }) => /* @__PURE__ */ React5.createElement(MenuItem, { ...props, sx: { ...props.sx ?? {}, typography: "caption", color: "text.primary" } });
|
|
361
|
+
|
|
362
|
+
// src/components/css-classes/css-class-item.tsx
|
|
363
|
+
var CHIP_SIZE = "tiny";
|
|
364
|
+
function CssClassItem({
|
|
365
|
+
id,
|
|
366
|
+
label,
|
|
367
|
+
provider,
|
|
368
|
+
isActive,
|
|
369
|
+
color: colorProp,
|
|
370
|
+
chipProps,
|
|
371
|
+
onClickActive,
|
|
372
|
+
renameLabel
|
|
373
|
+
}) {
|
|
374
|
+
const { meta } = useStyle();
|
|
375
|
+
const popupState = usePopupState({ variant: "popover" });
|
|
376
|
+
const [chipRef, setChipRef] = useState2(null);
|
|
377
|
+
const { onDelete, ...chipGroupProps } = chipProps;
|
|
378
|
+
const {
|
|
379
|
+
ref,
|
|
380
|
+
isEditing,
|
|
381
|
+
openEditMode,
|
|
382
|
+
error,
|
|
383
|
+
getProps: getEditableProps
|
|
384
|
+
} = useEditable({
|
|
385
|
+
value: label,
|
|
386
|
+
onSubmit: renameLabel,
|
|
387
|
+
validation: validateLabel
|
|
388
|
+
});
|
|
389
|
+
const color = error ? "error" : colorProp;
|
|
390
|
+
const providerActions = stylesRepository3.getProviderByKey(provider)?.actions;
|
|
391
|
+
const allowRename = Boolean(providerActions?.update);
|
|
392
|
+
return /* @__PURE__ */ React6.createElement(React6.Fragment, null, /* @__PURE__ */ React6.createElement(UnstableChipGroup, { ref: setChipRef, ...chipGroupProps, "aria-label": `Edit ${label}`, role: "group" }, /* @__PURE__ */ React6.createElement(
|
|
393
|
+
Chip,
|
|
394
|
+
{
|
|
395
|
+
size: CHIP_SIZE,
|
|
396
|
+
label: isEditing ? /* @__PURE__ */ React6.createElement(EditableField, { ref, error, ...getEditableProps() }) : /* @__PURE__ */ React6.createElement(EllipsisWithTooltip, { maxWidth: "10ch", title: label, as: "div" }),
|
|
397
|
+
variant: isActive && !meta.state ? "filled" : "standard",
|
|
398
|
+
color,
|
|
399
|
+
onClick: () => {
|
|
400
|
+
if (isActive && allowRename) {
|
|
401
|
+
openEditMode();
|
|
402
|
+
}
|
|
403
|
+
onClickActive(id);
|
|
404
|
+
},
|
|
405
|
+
"aria-pressed": isActive,
|
|
406
|
+
sx: {
|
|
407
|
+
"&.Mui-focusVisible": {
|
|
408
|
+
boxShadow: "none !important"
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
), !isEditing && /* @__PURE__ */ React6.createElement(
|
|
413
|
+
Chip,
|
|
414
|
+
{
|
|
415
|
+
size: CHIP_SIZE,
|
|
416
|
+
label: /* @__PURE__ */ React6.createElement(Stack, { direction: "row", gap: 0.5, alignItems: "center" }, isActive && meta.state && /* @__PURE__ */ React6.createElement(Typography, { variant: "inherit" }, meta.state), /* @__PURE__ */ React6.createElement(DotsVerticalIcon, { fontSize: "inherit" })),
|
|
417
|
+
variant: "filled",
|
|
418
|
+
color,
|
|
419
|
+
...bindTrigger(popupState),
|
|
420
|
+
"aria-label": __2("Open CSS Class Menu", "elementor")
|
|
421
|
+
}
|
|
422
|
+
)), /* @__PURE__ */ React6.createElement(
|
|
423
|
+
CssClassMenu,
|
|
424
|
+
{
|
|
425
|
+
styleId: id,
|
|
426
|
+
popupState,
|
|
427
|
+
provider,
|
|
428
|
+
handleRename: openEditMode,
|
|
429
|
+
anchorEl: chipRef
|
|
430
|
+
}
|
|
431
|
+
));
|
|
432
|
+
}
|
|
433
|
+
var validateLabel = (newLabel) => {
|
|
434
|
+
if (!stylesRepository3.isLabelValid(newLabel)) {
|
|
435
|
+
return __2("Format is not valid", "elementor");
|
|
436
|
+
}
|
|
437
|
+
if (stylesRepository3.isLabelExist(newLabel)) {
|
|
438
|
+
return __2("Existing name", "elementor");
|
|
439
|
+
}
|
|
440
|
+
};
|
|
441
|
+
|
|
442
|
+
// src/components/css-classes/css-class-selector.tsx
|
|
441
443
|
var ID = "elementor-css-class-selector";
|
|
442
444
|
var TAGS_LIMIT = 8;
|
|
443
445
|
var EMPTY_OPTION = {
|
|
444
|
-
label:
|
|
446
|
+
label: __3("local", "elementor"),
|
|
445
447
|
value: "",
|
|
446
448
|
fixed: true,
|
|
447
449
|
color: "primary",
|
|
@@ -456,7 +458,7 @@ function CssClassSelector() {
|
|
|
456
458
|
const handleApply = useHandleApply(appliedIds, setAppliedIds);
|
|
457
459
|
const applied = useAppliedOptions(options10, appliedIds);
|
|
458
460
|
const active = applied.find((option) => option.value === activeId) ?? EMPTY_OPTION;
|
|
459
|
-
return /* @__PURE__ */ React7.createElement(
|
|
461
|
+
return /* @__PURE__ */ React7.createElement(Stack2, { gap: 1, p: 2 }, /* @__PURE__ */ React7.createElement(Stack2, { direction: "row", gap: 1, alignItems: "center", justifyContent: "space-between" }, /* @__PURE__ */ React7.createElement(Typography2, { component: "label", variant: "caption", htmlFor: ID }, __3("CSS Classes", "elementor")), /* @__PURE__ */ React7.createElement(Stack2, { direction: "row", gap: 1 }, /* @__PURE__ */ React7.createElement(ClassSelectorActionsSlot, null))), /* @__PURE__ */ React7.createElement(
|
|
460
462
|
MultiCombobox,
|
|
461
463
|
{
|
|
462
464
|
id: ID,
|
|
@@ -466,7 +468,7 @@ function CssClassSelector() {
|
|
|
466
468
|
onSelect: handleApply,
|
|
467
469
|
limitTags: TAGS_LIMIT,
|
|
468
470
|
actions,
|
|
469
|
-
getLimitTagsText: (more) => /* @__PURE__ */ React7.createElement(
|
|
471
|
+
getLimitTagsText: (more) => /* @__PURE__ */ React7.createElement(Chip2, { size: "tiny", variant: "standard", label: `+${more}`, clickable: true }),
|
|
470
472
|
renderTags: (values, getTagProps) => values.map((value, index) => {
|
|
471
473
|
const chipProps = getTagProps({ index });
|
|
472
474
|
const isActive = value.value === active?.value;
|
|
@@ -475,118 +477,30 @@ function CssClassSelector() {
|
|
|
475
477
|
return updateClassByProvider(value.provider, { label: newLabel, id: value.value });
|
|
476
478
|
};
|
|
477
479
|
return /* @__PURE__ */ React7.createElement(
|
|
478
|
-
|
|
480
|
+
CssClassItem,
|
|
479
481
|
{
|
|
480
482
|
key: chipProps.key,
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
)
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
CssClassItem,
|
|
491
|
-
{
|
|
492
|
-
label: value.label,
|
|
493
|
-
id: value.value,
|
|
494
|
-
isActive,
|
|
495
|
-
isFixed: value.fixed,
|
|
496
|
-
color: isActive && value.color ? value.color : "default",
|
|
497
|
-
chipProps,
|
|
498
|
-
onClickActive: () => setActiveId(isElementsProvider ? null : value.value)
|
|
499
|
-
}
|
|
500
|
-
)
|
|
483
|
+
label: value.label,
|
|
484
|
+
provider: value.provider,
|
|
485
|
+
id: value.value,
|
|
486
|
+
isActive,
|
|
487
|
+
color: isActive && value.color ? value.color : "default",
|
|
488
|
+
chipProps,
|
|
489
|
+
onClickActive: () => setActiveId(isElementsProvider ? null : value.value),
|
|
490
|
+
renameLabel
|
|
491
|
+
}
|
|
501
492
|
);
|
|
502
493
|
})
|
|
503
494
|
}
|
|
504
495
|
));
|
|
505
496
|
}
|
|
506
|
-
var CHIP_SIZE = "tiny";
|
|
507
|
-
function CssClassItem({
|
|
508
|
-
id,
|
|
509
|
-
label,
|
|
510
|
-
isActive,
|
|
511
|
-
isFixed = false,
|
|
512
|
-
color: colorProp,
|
|
513
|
-
chipProps,
|
|
514
|
-
onClickActive
|
|
515
|
-
}) {
|
|
516
|
-
const { meta } = useStyle();
|
|
517
|
-
const popupId = useId2().replace(/:/g, "_");
|
|
518
|
-
const popupState = usePopupState({ variant: "popover", popupId });
|
|
519
|
-
const chipRef = useRef2(null);
|
|
520
|
-
const { onDelete, ...chipGroupProps } = chipProps;
|
|
521
|
-
const { isEditing, openEditMode, error, submitting } = useEditableField();
|
|
522
|
-
const color = error ? "error" : colorProp;
|
|
523
|
-
return /* @__PURE__ */ React7.createElement(React7.Fragment, null, /* @__PURE__ */ React7.createElement(UnstableChipGroup, { ref: chipRef, ...chipGroupProps, "aria-label": `Edit ${label}`, role: "group" }, /* @__PURE__ */ React7.createElement(
|
|
524
|
-
Chip,
|
|
525
|
-
{
|
|
526
|
-
disabled: submitting,
|
|
527
|
-
size: CHIP_SIZE,
|
|
528
|
-
label: /* @__PURE__ */ React7.createElement(
|
|
529
|
-
EditableField,
|
|
530
|
-
{
|
|
531
|
-
onDoubleClick: () => {
|
|
532
|
-
if (!isActive) {
|
|
533
|
-
openEditMode();
|
|
534
|
-
}
|
|
535
|
-
},
|
|
536
|
-
onClick: () => {
|
|
537
|
-
if (isActive) {
|
|
538
|
-
openEditMode();
|
|
539
|
-
}
|
|
540
|
-
}
|
|
541
|
-
},
|
|
542
|
-
/* @__PURE__ */ React7.createElement(EllipsisWithTooltip, { maxWidth: "10ch", title: label })
|
|
543
|
-
),
|
|
544
|
-
variant: isActive && !meta.state ? "filled" : "standard",
|
|
545
|
-
color,
|
|
546
|
-
onClick: () => onClickActive(id),
|
|
547
|
-
"aria-pressed": isActive,
|
|
548
|
-
sx: {
|
|
549
|
-
"&.Mui-focusVisible": {
|
|
550
|
-
boxShadow: "none !important"
|
|
551
|
-
}
|
|
552
|
-
}
|
|
553
|
-
}
|
|
554
|
-
), !isEditing && /* @__PURE__ */ React7.createElement(
|
|
555
|
-
Chip,
|
|
556
|
-
{
|
|
557
|
-
disabled: submitting,
|
|
558
|
-
size: CHIP_SIZE,
|
|
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" })),
|
|
560
|
-
variant: "filled",
|
|
561
|
-
color,
|
|
562
|
-
...bindTrigger(popupState),
|
|
563
|
-
"aria-label": __2("Open CSS Class Menu", "elementor")
|
|
564
|
-
}
|
|
565
|
-
)), /* @__PURE__ */ React7.createElement(CssClassMenu, { styleId: id, popupState, isFixed }));
|
|
566
|
-
}
|
|
567
497
|
var updateClassByProvider = (provider, data) => {
|
|
568
|
-
const providerInstance =
|
|
498
|
+
const providerInstance = stylesRepository4.getProviderByKey(provider);
|
|
569
499
|
if (!providerInstance) {
|
|
570
500
|
return;
|
|
571
501
|
}
|
|
572
502
|
return providerInstance.actions.update?.(data);
|
|
573
503
|
};
|
|
574
|
-
var VALID_SELECTOR_REGEX = /^[a-zA-Z0-9_-]+$/;
|
|
575
|
-
var renameValidation = (newLabel, options10) => {
|
|
576
|
-
if (isNameExist(newLabel, options10)) {
|
|
577
|
-
return __2("Existing name", "elementor");
|
|
578
|
-
}
|
|
579
|
-
if (isCharactersNotSupported(newLabel)) {
|
|
580
|
-
return __2("Format is not valid", "elementor");
|
|
581
|
-
}
|
|
582
|
-
};
|
|
583
|
-
var isNameExist = (newLabel, options10) => {
|
|
584
|
-
if (!options10?.length) {
|
|
585
|
-
return false;
|
|
586
|
-
}
|
|
587
|
-
return options10.some((option) => option.label.toLowerCase() === newLabel.toLowerCase());
|
|
588
|
-
};
|
|
589
|
-
var isCharactersNotSupported = (newLabel) => !VALID_SELECTOR_REGEX.test(newLabel);
|
|
590
504
|
function useOptions() {
|
|
591
505
|
const { element } = useElement();
|
|
592
506
|
const isProviderEditable = (provider) => !!provider.actions.updateProps;
|
|
@@ -615,14 +529,14 @@ function useCreateActions({
|
|
|
615
529
|
return useCreateActionsByProvider().map(([provider, create]) => {
|
|
616
530
|
return {
|
|
617
531
|
// translators: %s is the label of the new class.
|
|
618
|
-
label: (value) =>
|
|
619
|
-
apply:
|
|
620
|
-
const
|
|
621
|
-
if (!
|
|
532
|
+
label: (value) => __3('Create new "%s"', "elementor").replace("%s", value),
|
|
533
|
+
apply: (label) => {
|
|
534
|
+
const createdId = create(label);
|
|
535
|
+
if (!createdId) {
|
|
622
536
|
return;
|
|
623
537
|
}
|
|
624
|
-
pushAppliedId(
|
|
625
|
-
setActiveId(
|
|
538
|
+
pushAppliedId(createdId);
|
|
539
|
+
setActiveId(createdId);
|
|
626
540
|
},
|
|
627
541
|
condition: (options10, inputValue) => {
|
|
628
542
|
const isUniqueLabel = !options10.some(
|
|
@@ -631,7 +545,7 @@ function useCreateActions({
|
|
|
631
545
|
return !!inputValue && isUniqueLabel;
|
|
632
546
|
},
|
|
633
547
|
// translators: %s is the singular label of css class provider (e.g "Global CSS Class").
|
|
634
|
-
group:
|
|
548
|
+
group: __3("Create New %s", "elementor").replace("%s", provider.labels?.singular ?? "")
|
|
635
549
|
};
|
|
636
550
|
});
|
|
637
551
|
}
|
|
@@ -698,16 +612,16 @@ import { useSelectedElement } from "@elementor/editor-elements";
|
|
|
698
612
|
import { Panel, PanelBody, PanelHeader, PanelHeaderTitle } from "@elementor/editor-panels";
|
|
699
613
|
import { SessionStorageProvider as SessionStorageProvider3 } from "@elementor/session";
|
|
700
614
|
import { ErrorBoundary } from "@elementor/ui";
|
|
701
|
-
import { __ as
|
|
615
|
+
import { __ as __41 } from "@wordpress/i18n";
|
|
702
616
|
|
|
703
617
|
// src/controls-actions.ts
|
|
704
618
|
import { createMenu } from "@elementor/menus";
|
|
705
619
|
|
|
706
620
|
// src/popover-action.tsx
|
|
707
621
|
import * as React8 from "react";
|
|
708
|
-
import { useId as
|
|
622
|
+
import { useId as useId2 } from "react";
|
|
709
623
|
import { XIcon } from "@elementor/icons";
|
|
710
|
-
import { bindPopover, bindToggle, IconButton, Popover, Stack as
|
|
624
|
+
import { bindPopover, bindToggle, IconButton, Popover, Stack as Stack3, Tooltip, Typography as Typography3, usePopupState as usePopupState2 } from "@elementor/ui";
|
|
711
625
|
var SIZE = "tiny";
|
|
712
626
|
function PopoverAction({
|
|
713
627
|
title,
|
|
@@ -715,7 +629,7 @@ function PopoverAction({
|
|
|
715
629
|
icon: Icon,
|
|
716
630
|
popoverContent: PopoverContent
|
|
717
631
|
}) {
|
|
718
|
-
const id =
|
|
632
|
+
const id = useId2();
|
|
719
633
|
const popupState = usePopupState2({
|
|
720
634
|
variant: "popover",
|
|
721
635
|
popupId: `elementor-popover-action-${id}`
|
|
@@ -723,7 +637,7 @@ function PopoverAction({
|
|
|
723
637
|
if (!visible) {
|
|
724
638
|
return null;
|
|
725
639
|
}
|
|
726
|
-
return /* @__PURE__ */ React8.createElement(React8.Fragment, null, /* @__PURE__ */ React8.createElement(
|
|
640
|
+
return /* @__PURE__ */ React8.createElement(React8.Fragment, null, /* @__PURE__ */ React8.createElement(Tooltip, { 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(
|
|
727
641
|
Popover,
|
|
728
642
|
{
|
|
729
643
|
disablePortal: true,
|
|
@@ -734,7 +648,7 @@ function PopoverAction({
|
|
|
734
648
|
},
|
|
735
649
|
...bindPopover(popupState)
|
|
736
650
|
},
|
|
737
|
-
/* @__PURE__ */ React8.createElement(
|
|
651
|
+
/* @__PURE__ */ React8.createElement(Stack3, { 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(Typography3, { variant: "subtitle2" }, title), /* @__PURE__ */ React8.createElement(IconButton, { sx: { ml: "auto" }, size: SIZE, onClick: popupState.close }, /* @__PURE__ */ React8.createElement(XIcon, { fontSize: SIZE }))),
|
|
738
652
|
/* @__PURE__ */ React8.createElement(PopoverContent, { closePopover: popupState.close })
|
|
739
653
|
));
|
|
740
654
|
}
|
|
@@ -756,8 +670,8 @@ function EditorPanelErrorFallback() {
|
|
|
756
670
|
// src/components/editing-panel-tabs.tsx
|
|
757
671
|
import * as React59 from "react";
|
|
758
672
|
import { Fragment as Fragment8 } from "react";
|
|
759
|
-
import { Divider as Divider9, Stack as
|
|
760
|
-
import { __ as
|
|
673
|
+
import { Divider as Divider9, Stack as Stack20, Tab, TabPanel, Tabs, useTabs } from "@elementor/ui";
|
|
674
|
+
import { __ as __40 } from "@wordpress/i18n";
|
|
761
675
|
|
|
762
676
|
// src/components/settings-tab.tsx
|
|
763
677
|
import * as React15 from "react";
|
|
@@ -773,13 +687,15 @@ import {
|
|
|
773
687
|
LinkControl,
|
|
774
688
|
SelectControl,
|
|
775
689
|
SizeControl,
|
|
690
|
+
SvgMediaControl,
|
|
776
691
|
TextAreaControl,
|
|
777
692
|
TextControl,
|
|
778
693
|
UrlControl
|
|
779
694
|
} from "@elementor/editor-controls";
|
|
780
695
|
var controlTypes = {
|
|
781
696
|
image: { component: ImageControl, layout: "full" },
|
|
782
|
-
|
|
697
|
+
"svg-media": { component: SvgMediaControl, layout: "full" },
|
|
698
|
+
text: { component: TextControl, layout: "full" },
|
|
783
699
|
textarea: { component: TextAreaControl, layout: "full" },
|
|
784
700
|
size: { component: SizeControl, layout: "two-columns" },
|
|
785
701
|
select: { component: SelectControl, layout: "two-columns" },
|
|
@@ -802,7 +718,7 @@ var Control = ({ props, type }) => {
|
|
|
802
718
|
|
|
803
719
|
// src/controls-registry/control-type-container.tsx
|
|
804
720
|
import * as React11 from "react";
|
|
805
|
-
import { Box as Box3, styled as
|
|
721
|
+
import { Box as Box3, styled as styled2 } from "@elementor/ui";
|
|
806
722
|
var ControlTypeContainer = ({
|
|
807
723
|
controlType,
|
|
808
724
|
children
|
|
@@ -810,7 +726,7 @@ var ControlTypeContainer = ({
|
|
|
810
726
|
const layout = getLayoutByType(controlType);
|
|
811
727
|
return /* @__PURE__ */ React11.createElement(StyledContainer, { layout }, children);
|
|
812
728
|
};
|
|
813
|
-
var StyledContainer =
|
|
729
|
+
var StyledContainer = styled2(Box3, {
|
|
814
730
|
shouldForwardProp: (prop) => !["layout"].includes(prop)
|
|
815
731
|
})(({ layout, theme }) => ({
|
|
816
732
|
display: "grid",
|
|
@@ -847,8 +763,12 @@ var createTopLevelOjectType = ({ schema }) => {
|
|
|
847
763
|
var SettingsField = ({ bind, children }) => {
|
|
848
764
|
const { element, elementType } = useElement();
|
|
849
765
|
const settingsValue = useElementSetting3(element.id, bind);
|
|
766
|
+
const linkValue = useElementSetting3(element.id, "link");
|
|
850
767
|
const value = { [bind]: settingsValue };
|
|
851
768
|
const propType = createTopLevelOjectType({ schema: elementType.propsSchema });
|
|
769
|
+
if (bind === "tag" && linkValue?.value && "div-block" === elementType.key) {
|
|
770
|
+
return null;
|
|
771
|
+
}
|
|
852
772
|
const setValue = (newValue) => {
|
|
853
773
|
updateElementSettings3({
|
|
854
774
|
id: element.id,
|
|
@@ -860,13 +780,13 @@ var SettingsField = ({ bind, children }) => {
|
|
|
860
780
|
|
|
861
781
|
// src/components/section.tsx
|
|
862
782
|
import * as React13 from "react";
|
|
863
|
-
import { useId as
|
|
864
|
-
import { Collapse, Divider as Divider2, ListItemButton, ListItemText
|
|
783
|
+
import { useId as useId3, useState as useState3 } from "react";
|
|
784
|
+
import { Collapse, Divider as Divider2, ListItemButton, ListItemText, Stack as Stack4 } from "@elementor/ui";
|
|
865
785
|
|
|
866
786
|
// src/components/collapse-icon.tsx
|
|
867
787
|
import { ChevronDownIcon } from "@elementor/icons";
|
|
868
|
-
import { styled as
|
|
869
|
-
var CollapseIcon =
|
|
788
|
+
import { styled as styled3 } from "@elementor/ui";
|
|
789
|
+
var CollapseIcon = styled3(ChevronDownIcon, {
|
|
870
790
|
shouldForwardProp: (prop) => prop !== "open"
|
|
871
791
|
})(({ theme, open }) => ({
|
|
872
792
|
transform: open ? "rotate(180deg)" : "rotate(0deg)",
|
|
@@ -878,7 +798,7 @@ var CollapseIcon = styled4(ChevronDownIcon, {
|
|
|
878
798
|
// src/components/section.tsx
|
|
879
799
|
function Section({ title, children, defaultExpanded = false }) {
|
|
880
800
|
const [isOpen, setIsOpen] = useState3(!!defaultExpanded);
|
|
881
|
-
const id =
|
|
801
|
+
const id = useId3();
|
|
882
802
|
const labelId = `label-${id}`;
|
|
883
803
|
const contentId = `content-${id}`;
|
|
884
804
|
return /* @__PURE__ */ React13.createElement(React13.Fragment, null, /* @__PURE__ */ React13.createElement(
|
|
@@ -888,9 +808,9 @@ function Section({ title, children, defaultExpanded = false }) {
|
|
|
888
808
|
"aria-controls": contentId,
|
|
889
809
|
onClick: () => setIsOpen((prev) => !prev)
|
|
890
810
|
},
|
|
891
|
-
/* @__PURE__ */ React13.createElement(
|
|
811
|
+
/* @__PURE__ */ React13.createElement(ListItemText, { secondary: title }),
|
|
892
812
|
/* @__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(
|
|
813
|
+
), /* @__PURE__ */ React13.createElement(Collapse, { id: contentId, "aria-labelledby": labelId, in: isOpen, timeout: "auto", unmountOnExit: true }, /* @__PURE__ */ React13.createElement(Stack4, { gap: 2.5, p: 2 }, children)), /* @__PURE__ */ React13.createElement(Divider2, null));
|
|
894
814
|
}
|
|
895
815
|
|
|
896
816
|
// src/components/sections-list.tsx
|
|
@@ -927,12 +847,12 @@ var Control2 = ({ control }) => {
|
|
|
927
847
|
|
|
928
848
|
// src/components/style-tab.tsx
|
|
929
849
|
import * as React58 from "react";
|
|
930
|
-
import { useState as
|
|
850
|
+
import { useState as useState7 } from "react";
|
|
931
851
|
import { useElementSetting as useElementSetting4, useElementStyles } from "@elementor/editor-elements";
|
|
932
852
|
import { useActiveBreakpoint } from "@elementor/editor-responsive";
|
|
933
853
|
import { SessionStorageProvider as SessionStorageProvider2 } from "@elementor/session";
|
|
934
854
|
import { Divider as Divider8 } from "@elementor/ui";
|
|
935
|
-
import { __ as
|
|
855
|
+
import { __ as __39 } from "@wordpress/i18n";
|
|
936
856
|
|
|
937
857
|
// src/components/style-sections/background-section/background-section.tsx
|
|
938
858
|
import * as React17 from "react";
|
|
@@ -944,16 +864,24 @@ import { PropKeyProvider as PropKeyProvider2, PropProvider as PropProvider2 } fr
|
|
|
944
864
|
import { getStylesSchema } from "@elementor/editor-styles";
|
|
945
865
|
|
|
946
866
|
// src/hooks/use-styles-fields.ts
|
|
947
|
-
import { useEffect
|
|
948
|
-
import {
|
|
867
|
+
import { useEffect, useMemo, useReducer } from "react";
|
|
868
|
+
import {
|
|
869
|
+
createElementStyle,
|
|
870
|
+
deleteElementStyle,
|
|
871
|
+
getElementLabel
|
|
872
|
+
} from "@elementor/editor-elements";
|
|
949
873
|
import { getVariantByMeta } from "@elementor/editor-styles";
|
|
950
|
-
import {
|
|
874
|
+
import { LOCAL_STYLES_RESERVED_LABEL } from "@elementor/editor-styles-repository";
|
|
875
|
+
import { undoable } from "@elementor/editor-v1-adapters";
|
|
876
|
+
import { __ as __4 } from "@wordpress/i18n";
|
|
951
877
|
function useStylesFields(propNames) {
|
|
952
878
|
const { element } = useElement();
|
|
953
879
|
const { id, meta, provider } = useStyle();
|
|
954
880
|
const classesProp = useClassesProp();
|
|
881
|
+
const undoableUpdateStyle = useUndoableUpdateStyle();
|
|
882
|
+
const undoableCreateElementStyle = useUndoableCreateElementStyle();
|
|
955
883
|
const [, reRender] = useReducer((p) => !p, false);
|
|
956
|
-
|
|
884
|
+
useEffect(() => provider?.subscribe(reRender), [provider]);
|
|
957
885
|
const value = getProps({
|
|
958
886
|
elementId: element.id,
|
|
959
887
|
styleId: id,
|
|
@@ -963,19 +891,21 @@ function useStylesFields(propNames) {
|
|
|
963
891
|
});
|
|
964
892
|
const setValue = (props) => {
|
|
965
893
|
if (id === null) {
|
|
966
|
-
|
|
894
|
+
undoableCreateElementStyle({
|
|
967
895
|
elementId: element.id,
|
|
968
896
|
classesProp,
|
|
969
897
|
meta,
|
|
970
|
-
props
|
|
971
|
-
label: __3("local", "elementor")
|
|
898
|
+
props
|
|
972
899
|
});
|
|
973
900
|
return;
|
|
974
901
|
}
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
902
|
+
undoableUpdateStyle({
|
|
903
|
+
elementId: element.id,
|
|
904
|
+
styleId: id,
|
|
905
|
+
provider,
|
|
906
|
+
meta,
|
|
907
|
+
props
|
|
908
|
+
});
|
|
979
909
|
};
|
|
980
910
|
return [value, setValue];
|
|
981
911
|
}
|
|
@@ -992,6 +922,75 @@ function getProps({ styleId, elementId, provider, meta, propNames }) {
|
|
|
992
922
|
propNames.map((key) => [key, variant?.props[key] ?? null])
|
|
993
923
|
);
|
|
994
924
|
}
|
|
925
|
+
function useUndoableCreateElementStyle() {
|
|
926
|
+
return useMemo(() => {
|
|
927
|
+
return undoable(
|
|
928
|
+
{
|
|
929
|
+
do: (payload) => {
|
|
930
|
+
return createElementStyle({
|
|
931
|
+
...payload,
|
|
932
|
+
label: LOCAL_STYLES_RESERVED_LABEL
|
|
933
|
+
});
|
|
934
|
+
},
|
|
935
|
+
undo: ({ elementId }, styleId) => {
|
|
936
|
+
deleteElementStyle(elementId, styleId);
|
|
937
|
+
},
|
|
938
|
+
redo: (payload, styleId) => {
|
|
939
|
+
return createElementStyle({
|
|
940
|
+
...payload,
|
|
941
|
+
styleId,
|
|
942
|
+
label: LOCAL_STYLES_RESERVED_LABEL
|
|
943
|
+
});
|
|
944
|
+
}
|
|
945
|
+
},
|
|
946
|
+
{
|
|
947
|
+
title: ({ elementId }) => getElementLabel(elementId),
|
|
948
|
+
subtitle: __4("Style edited", "elementor")
|
|
949
|
+
}
|
|
950
|
+
);
|
|
951
|
+
}, []);
|
|
952
|
+
}
|
|
953
|
+
function useUndoableUpdateStyle() {
|
|
954
|
+
return useMemo(() => {
|
|
955
|
+
return undoable(
|
|
956
|
+
{
|
|
957
|
+
do: ({ elementId, styleId, provider, meta, props }) => {
|
|
958
|
+
if (!provider.actions.updateProps) {
|
|
959
|
+
throw new StylesProviderCannotUpdatePropsError({
|
|
960
|
+
context: { providerKey: provider.key }
|
|
961
|
+
});
|
|
962
|
+
}
|
|
963
|
+
const style = provider.actions.getById(styleId, { elementId });
|
|
964
|
+
const prevProps = getCurrentProps(style, meta);
|
|
965
|
+
provider.actions.updateProps(
|
|
966
|
+
{
|
|
967
|
+
id: styleId,
|
|
968
|
+
meta,
|
|
969
|
+
props
|
|
970
|
+
},
|
|
971
|
+
{ elementId }
|
|
972
|
+
);
|
|
973
|
+
return prevProps;
|
|
974
|
+
},
|
|
975
|
+
undo: ({ elementId, styleId, meta, provider }, prevProps) => {
|
|
976
|
+
provider.actions.updateProps?.({ id: styleId, meta, props: prevProps }, { elementId });
|
|
977
|
+
}
|
|
978
|
+
},
|
|
979
|
+
{
|
|
980
|
+
title: ({ elementId }) => getElementLabel(elementId),
|
|
981
|
+
subtitle: __4("Style edited", "elementor")
|
|
982
|
+
}
|
|
983
|
+
);
|
|
984
|
+
}, []);
|
|
985
|
+
}
|
|
986
|
+
function getCurrentProps(style, meta) {
|
|
987
|
+
if (!style) {
|
|
988
|
+
return {};
|
|
989
|
+
}
|
|
990
|
+
const variant = getVariantByMeta(style, meta);
|
|
991
|
+
const props = variant?.props ?? {};
|
|
992
|
+
return structuredClone(props);
|
|
993
|
+
}
|
|
995
994
|
|
|
996
995
|
// src/hooks/use-styles-field.ts
|
|
997
996
|
function useStylesField(propName) {
|
|
@@ -1024,21 +1023,21 @@ var BackgroundSection = () => {
|
|
|
1024
1023
|
|
|
1025
1024
|
// src/components/style-sections/border-section/border-section.tsx
|
|
1026
1025
|
import * as React24 from "react";
|
|
1027
|
-
import { Divider as Divider3, Stack as
|
|
1026
|
+
import { Divider as Divider3, Stack as Stack6 } from "@elementor/ui";
|
|
1028
1027
|
|
|
1029
1028
|
// src/components/style-sections/border-section/border-field.tsx
|
|
1030
1029
|
import * as React22 from "react";
|
|
1031
|
-
import { __ as
|
|
1030
|
+
import { __ as __8 } from "@wordpress/i18n";
|
|
1032
1031
|
|
|
1033
1032
|
// src/components/add-or-remove-content.tsx
|
|
1034
1033
|
import * as React18 from "react";
|
|
1035
1034
|
import { ControlLabel as ControlLabel2 } from "@elementor/editor-controls";
|
|
1036
1035
|
import { MinusIcon, PlusIcon } from "@elementor/icons";
|
|
1037
|
-
import { Collapse as Collapse2, IconButton as IconButton2, Stack as
|
|
1036
|
+
import { Collapse as Collapse2, IconButton as IconButton2, Stack as Stack5 } from "@elementor/ui";
|
|
1038
1037
|
var SIZE2 = "tiny";
|
|
1039
1038
|
var AddOrRemoveContent = ({ isAdded, label, onAdd, onRemove, children }) => {
|
|
1040
|
-
return /* @__PURE__ */ React18.createElement(
|
|
1041
|
-
|
|
1039
|
+
return /* @__PURE__ */ React18.createElement(Stack5, { gap: 1.5 }, /* @__PURE__ */ React18.createElement(
|
|
1040
|
+
Stack5,
|
|
1042
1041
|
{
|
|
1043
1042
|
direction: "row",
|
|
1044
1043
|
sx: {
|
|
@@ -1048,36 +1047,36 @@ var AddOrRemoveContent = ({ isAdded, label, onAdd, onRemove, children }) => {
|
|
|
1048
1047
|
},
|
|
1049
1048
|
/* @__PURE__ */ React18.createElement(ControlLabel2, null, label),
|
|
1050
1049
|
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(
|
|
1050
|
+
), /* @__PURE__ */ React18.createElement(Collapse2, { in: isAdded, unmountOnExit: true }, /* @__PURE__ */ React18.createElement(Stack5, { gap: 1.5 }, children)));
|
|
1052
1051
|
};
|
|
1053
1052
|
|
|
1054
1053
|
// src/components/style-sections/border-section/border-color-field.tsx
|
|
1055
1054
|
import * as React19 from "react";
|
|
1056
1055
|
import { ColorControl, ControlLabel as ControlLabel3 } from "@elementor/editor-controls";
|
|
1057
1056
|
import { Grid } from "@elementor/ui";
|
|
1058
|
-
import { __ as
|
|
1057
|
+
import { __ as __5 } from "@wordpress/i18n";
|
|
1059
1058
|
var BorderColorField = () => {
|
|
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,
|
|
1059
|
+
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, __5("Border Color", "elementor"))), /* @__PURE__ */ React19.createElement(Grid, { item: true, xs: 6 }, /* @__PURE__ */ React19.createElement(ColorControl, null))));
|
|
1061
1060
|
};
|
|
1062
1061
|
|
|
1063
1062
|
// src/components/style-sections/border-section/border-style-field.tsx
|
|
1064
1063
|
import * as React20 from "react";
|
|
1065
1064
|
import { ControlLabel as ControlLabel4, SelectControl as SelectControl2 } from "@elementor/editor-controls";
|
|
1066
1065
|
import { Grid as Grid2 } from "@elementor/ui";
|
|
1067
|
-
import { __ as
|
|
1066
|
+
import { __ as __6 } from "@wordpress/i18n";
|
|
1068
1067
|
var borderStyles = [
|
|
1069
|
-
{ value: "none", label:
|
|
1070
|
-
{ value: "solid", label:
|
|
1071
|
-
{ value: "dashed", label:
|
|
1072
|
-
{ value: "dotted", label:
|
|
1073
|
-
{ value: "double", label:
|
|
1074
|
-
{ value: "groove", label:
|
|
1075
|
-
{ value: "ridge", label:
|
|
1076
|
-
{ value: "inset", label:
|
|
1077
|
-
{ value: "outset", label:
|
|
1068
|
+
{ value: "none", label: __6("None", "elementor") },
|
|
1069
|
+
{ value: "solid", label: __6("Solid", "elementor") },
|
|
1070
|
+
{ value: "dashed", label: __6("Dashed", "elementor") },
|
|
1071
|
+
{ value: "dotted", label: __6("Dotted", "elementor") },
|
|
1072
|
+
{ value: "double", label: __6("Double", "elementor") },
|
|
1073
|
+
{ value: "groove", label: __6("Groove", "elementor") },
|
|
1074
|
+
{ value: "ridge", label: __6("Ridge", "elementor") },
|
|
1075
|
+
{ value: "inset", label: __6("Inset", "elementor") },
|
|
1076
|
+
{ value: "outset", label: __6("Outset", "elementor") }
|
|
1078
1077
|
];
|
|
1079
1078
|
var BorderStyleField = () => {
|
|
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,
|
|
1079
|
+
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, __6("Border Type", "elementor"))), /* @__PURE__ */ React20.createElement(Grid2, { item: true, xs: 6 }, /* @__PURE__ */ React20.createElement(SelectControl2, { options: borderStyles }))));
|
|
1081
1080
|
};
|
|
1082
1081
|
|
|
1083
1082
|
// src/components/style-sections/border-section/border-width-field.tsx
|
|
@@ -1085,25 +1084,25 @@ import * as React21 from "react";
|
|
|
1085
1084
|
import { EqualUnequalSizesControl } from "@elementor/editor-controls";
|
|
1086
1085
|
import { borderWidthPropTypeUtil } from "@elementor/editor-props";
|
|
1087
1086
|
import { SideAllIcon, SideBottomIcon, SideLeftIcon, SideRightIcon, SideTopIcon } from "@elementor/icons";
|
|
1088
|
-
import { __ as
|
|
1087
|
+
import { __ as __7 } from "@wordpress/i18n";
|
|
1089
1088
|
var edges = [
|
|
1090
1089
|
{
|
|
1091
|
-
label:
|
|
1090
|
+
label: __7("Top", "elementor"),
|
|
1092
1091
|
icon: /* @__PURE__ */ React21.createElement(SideTopIcon, { fontSize: "tiny" }),
|
|
1093
1092
|
bind: "top"
|
|
1094
1093
|
},
|
|
1095
1094
|
{
|
|
1096
|
-
label:
|
|
1095
|
+
label: __7("Right", "elementor"),
|
|
1097
1096
|
icon: /* @__PURE__ */ React21.createElement(SideRightIcon, { fontSize: "tiny" }),
|
|
1098
1097
|
bind: "right"
|
|
1099
1098
|
},
|
|
1100
1099
|
{
|
|
1101
|
-
label:
|
|
1100
|
+
label: __7("Bottom", "elementor"),
|
|
1102
1101
|
icon: /* @__PURE__ */ React21.createElement(SideBottomIcon, { fontSize: "tiny" }),
|
|
1103
1102
|
bind: "bottom"
|
|
1104
1103
|
},
|
|
1105
1104
|
{
|
|
1106
|
-
label:
|
|
1105
|
+
label: __7("Left", "elementor"),
|
|
1107
1106
|
icon: /* @__PURE__ */ React21.createElement(SideLeftIcon, { fontSize: "tiny" }),
|
|
1108
1107
|
bind: "left"
|
|
1109
1108
|
}
|
|
@@ -1113,7 +1112,7 @@ var BorderWidthField = () => {
|
|
|
1113
1112
|
EqualUnequalSizesControl,
|
|
1114
1113
|
{
|
|
1115
1114
|
items: edges,
|
|
1116
|
-
label:
|
|
1115
|
+
label: __7("Border Width", "elementor"),
|
|
1117
1116
|
icon: /* @__PURE__ */ React21.createElement(SideAllIcon, { fontSize: "tiny" }),
|
|
1118
1117
|
multiSizePropTypeUtil: borderWidthPropTypeUtil
|
|
1119
1118
|
}
|
|
@@ -1142,7 +1141,7 @@ var BorderField = () => {
|
|
|
1142
1141
|
return /* @__PURE__ */ React22.createElement(
|
|
1143
1142
|
AddOrRemoveContent,
|
|
1144
1143
|
{
|
|
1145
|
-
label:
|
|
1144
|
+
label: __8("Border", "elementor"),
|
|
1146
1145
|
isAdded: hasBorder,
|
|
1147
1146
|
onAdd: addBorder,
|
|
1148
1147
|
onRemove: removeBorder
|
|
@@ -1164,25 +1163,25 @@ import {
|
|
|
1164
1163
|
RadiusTopLeftIcon,
|
|
1165
1164
|
RadiusTopRightIcon
|
|
1166
1165
|
} from "@elementor/icons";
|
|
1167
|
-
import { __ as
|
|
1166
|
+
import { __ as __9 } from "@wordpress/i18n";
|
|
1168
1167
|
var corners = [
|
|
1169
1168
|
{
|
|
1170
|
-
label:
|
|
1169
|
+
label: __9("Top Left", "elementor"),
|
|
1171
1170
|
icon: /* @__PURE__ */ React23.createElement(RadiusTopLeftIcon, { fontSize: "tiny" }),
|
|
1172
1171
|
bind: "top-left"
|
|
1173
1172
|
},
|
|
1174
1173
|
{
|
|
1175
|
-
label:
|
|
1174
|
+
label: __9("Top Right", "elementor"),
|
|
1176
1175
|
icon: /* @__PURE__ */ React23.createElement(RadiusTopRightIcon, { fontSize: "tiny" }),
|
|
1177
1176
|
bind: "top-right"
|
|
1178
1177
|
},
|
|
1179
1178
|
{
|
|
1180
|
-
label:
|
|
1179
|
+
label: __9("Bottom Right", "elementor"),
|
|
1181
1180
|
icon: /* @__PURE__ */ React23.createElement(RadiusBottomRightIcon, { fontSize: "tiny" }),
|
|
1182
1181
|
bind: "bottom-right"
|
|
1183
1182
|
},
|
|
1184
1183
|
{
|
|
1185
|
-
label:
|
|
1184
|
+
label: __9("Bottom Left", "elementor"),
|
|
1186
1185
|
icon: /* @__PURE__ */ React23.createElement(RadiusBottomLeftIcon, { fontSize: "tiny" }),
|
|
1187
1186
|
bind: "bottom-left"
|
|
1188
1187
|
}
|
|
@@ -1192,7 +1191,7 @@ var BorderRadiusField = () => {
|
|
|
1192
1191
|
EqualUnequalSizesControl2,
|
|
1193
1192
|
{
|
|
1194
1193
|
items: corners,
|
|
1195
|
-
label:
|
|
1194
|
+
label: __9("Border Radius", "elementor"),
|
|
1196
1195
|
icon: /* @__PURE__ */ React23.createElement(BorderCornersIcon, { fontSize: "tiny" }),
|
|
1197
1196
|
multiSizePropTypeUtil: borderRadiusPropTypeUtil
|
|
1198
1197
|
}
|
|
@@ -1200,22 +1199,22 @@ var BorderRadiusField = () => {
|
|
|
1200
1199
|
};
|
|
1201
1200
|
|
|
1202
1201
|
// src/components/style-sections/border-section/border-section.tsx
|
|
1203
|
-
var BorderSection = () => /* @__PURE__ */ React24.createElement(
|
|
1202
|
+
var BorderSection = () => /* @__PURE__ */ React24.createElement(Stack6, { gap: 1.5 }, /* @__PURE__ */ React24.createElement(BorderRadiusField, null), /* @__PURE__ */ React24.createElement(Divider3, null), /* @__PURE__ */ React24.createElement(BorderField, null));
|
|
1204
1203
|
|
|
1205
1204
|
// src/components/style-sections/effects-section/effects-section.tsx
|
|
1206
1205
|
import * as React25 from "react";
|
|
1207
1206
|
import { BoxShadowRepeaterControl } from "@elementor/editor-controls";
|
|
1208
|
-
import { Stack as
|
|
1207
|
+
import { Stack as Stack7 } from "@elementor/ui";
|
|
1209
1208
|
var EffectsSection = () => {
|
|
1210
|
-
return /* @__PURE__ */ React25.createElement(
|
|
1209
|
+
return /* @__PURE__ */ React25.createElement(Stack7, { gap: 1.5 }, /* @__PURE__ */ React25.createElement(StylesField, { bind: "box-shadow" }, /* @__PURE__ */ React25.createElement(BoxShadowRepeaterControl, null)));
|
|
1211
1210
|
};
|
|
1212
1211
|
|
|
1213
1212
|
// src/components/style-sections/layout-section/layout-section.tsx
|
|
1214
1213
|
import * as React36 from "react";
|
|
1215
1214
|
import { ControlLabel as ControlLabel13 } from "@elementor/editor-controls";
|
|
1216
1215
|
import { useParentElement } from "@elementor/editor-elements";
|
|
1217
|
-
import { Divider as Divider4, Stack as
|
|
1218
|
-
import { __ as
|
|
1216
|
+
import { Divider as Divider4, Stack as Stack13 } from "@elementor/ui";
|
|
1217
|
+
import { __ as __19 } from "@wordpress/i18n";
|
|
1219
1218
|
|
|
1220
1219
|
// src/hooks/use-computed-style.ts
|
|
1221
1220
|
import { __privateUseListenTo as useListenTo, commandEndEvent, windowEvent } from "@elementor/editor-v1-adapters";
|
|
@@ -1252,7 +1251,7 @@ import {
|
|
|
1252
1251
|
LayoutDistributeVerticalIcon as JustifyIcon
|
|
1253
1252
|
} from "@elementor/icons";
|
|
1254
1253
|
import { DirectionProvider, Grid as Grid3, ThemeProvider, withDirection } from "@elementor/ui";
|
|
1255
|
-
import { __ as
|
|
1254
|
+
import { __ as __10 } from "@wordpress/i18n";
|
|
1256
1255
|
|
|
1257
1256
|
// src/hooks/use-direction.ts
|
|
1258
1257
|
import { useTheme } from "@elementor/ui";
|
|
@@ -1264,7 +1263,7 @@ function useDirection() {
|
|
|
1264
1263
|
|
|
1265
1264
|
// src/components/style-sections/layout-section/utils/rotated-icon.tsx
|
|
1266
1265
|
import * as React26 from "react";
|
|
1267
|
-
import { useRef
|
|
1266
|
+
import { useRef } from "react";
|
|
1268
1267
|
import { useTheme as useTheme2 } from "@elementor/ui";
|
|
1269
1268
|
var CLOCKWISE_ANGLES = {
|
|
1270
1269
|
row: 0,
|
|
@@ -1279,7 +1278,7 @@ var COUNTER_CLOCKWISE_ANGLES = {
|
|
|
1279
1278
|
"column-reverse": -270
|
|
1280
1279
|
};
|
|
1281
1280
|
var RotatedIcon = ({ icon: Icon, size, isClockwise = true, offset = 0 }) => {
|
|
1282
|
-
const rotate =
|
|
1281
|
+
const rotate = useRef(useGetTargetAngle(isClockwise, offset));
|
|
1283
1282
|
rotate.current = useGetTargetAngle(isClockwise, offset, rotate);
|
|
1284
1283
|
return /* @__PURE__ */ React26.createElement(Icon, { fontSize: size, sx: { transition: ".3s", rotate: `${rotate.current}deg` } });
|
|
1285
1284
|
};
|
|
@@ -1305,32 +1304,32 @@ var iconProps = {
|
|
|
1305
1304
|
var options = [
|
|
1306
1305
|
{
|
|
1307
1306
|
value: "start",
|
|
1308
|
-
label:
|
|
1307
|
+
label: __10("Start", "elementor"),
|
|
1309
1308
|
renderContent: ({ size }) => /* @__PURE__ */ React27.createElement(RotatedIcon, { icon: StartIcon, size, ...iconProps }),
|
|
1310
1309
|
showTooltip: true
|
|
1311
1310
|
},
|
|
1312
1311
|
{
|
|
1313
1312
|
value: "center",
|
|
1314
|
-
label:
|
|
1313
|
+
label: __10("Center", "elementor"),
|
|
1315
1314
|
renderContent: ({ size }) => /* @__PURE__ */ React27.createElement(RotatedIcon, { icon: CenterIcon, size, ...iconProps }),
|
|
1316
1315
|
showTooltip: true
|
|
1317
1316
|
},
|
|
1318
1317
|
{
|
|
1319
1318
|
value: "end",
|
|
1320
|
-
label:
|
|
1319
|
+
label: __10("End", "elementor"),
|
|
1321
1320
|
renderContent: ({ size }) => /* @__PURE__ */ React27.createElement(RotatedIcon, { icon: EndIcon, size, ...iconProps }),
|
|
1322
1321
|
showTooltip: true
|
|
1323
1322
|
},
|
|
1324
1323
|
{
|
|
1325
1324
|
value: "stretch",
|
|
1326
|
-
label:
|
|
1325
|
+
label: __10("Stretch", "elementor"),
|
|
1327
1326
|
renderContent: ({ size }) => /* @__PURE__ */ React27.createElement(RotatedIcon, { icon: JustifyIcon, size, ...iconProps }),
|
|
1328
1327
|
showTooltip: true
|
|
1329
1328
|
}
|
|
1330
1329
|
];
|
|
1331
1330
|
var AlignItemsField = () => {
|
|
1332
1331
|
const { isSiteRtl } = useDirection();
|
|
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,
|
|
1332
|
+
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, __10("Align items", "elementor"))), /* @__PURE__ */ React27.createElement(Grid3, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React27.createElement(ToggleControl, { options }))))));
|
|
1334
1333
|
};
|
|
1335
1334
|
|
|
1336
1335
|
// src/components/style-sections/layout-section/align-self-child-field.tsx
|
|
@@ -1343,7 +1342,7 @@ import {
|
|
|
1343
1342
|
LayoutDistributeVerticalIcon as JustifyIcon2
|
|
1344
1343
|
} from "@elementor/icons";
|
|
1345
1344
|
import { DirectionProvider as DirectionProvider2, Grid as Grid4, ThemeProvider as ThemeProvider2, withDirection as withDirection2 } from "@elementor/ui";
|
|
1346
|
-
import { __ as
|
|
1345
|
+
import { __ as __11 } from "@wordpress/i18n";
|
|
1347
1346
|
var StartIcon2 = withDirection2(LayoutAlignLeftIcon2);
|
|
1348
1347
|
var EndIcon2 = withDirection2(LayoutAlignRightIcon2);
|
|
1349
1348
|
var iconProps2 = {
|
|
@@ -1353,53 +1352,61 @@ var iconProps2 = {
|
|
|
1353
1352
|
var options2 = [
|
|
1354
1353
|
{
|
|
1355
1354
|
value: "start",
|
|
1356
|
-
label:
|
|
1355
|
+
label: __11("Start", "elementor"),
|
|
1357
1356
|
renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(RotatedIcon, { icon: StartIcon2, size, ...iconProps2 }),
|
|
1358
1357
|
showTooltip: true
|
|
1359
1358
|
},
|
|
1360
1359
|
{
|
|
1361
1360
|
value: "center",
|
|
1362
|
-
label:
|
|
1361
|
+
label: __11("Center", "elementor"),
|
|
1363
1362
|
renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(RotatedIcon, { icon: CenterIcon2, size, ...iconProps2 }),
|
|
1364
1363
|
showTooltip: true
|
|
1365
1364
|
},
|
|
1366
1365
|
{
|
|
1367
1366
|
value: "end",
|
|
1368
|
-
label:
|
|
1367
|
+
label: __11("End", "elementor"),
|
|
1369
1368
|
renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(RotatedIcon, { icon: EndIcon2, size, ...iconProps2 }),
|
|
1370
1369
|
showTooltip: true
|
|
1371
1370
|
},
|
|
1372
1371
|
{
|
|
1373
1372
|
value: "stretch",
|
|
1374
|
-
label:
|
|
1373
|
+
label: __11("Stretch", "elementor"),
|
|
1375
1374
|
renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(RotatedIcon, { icon: JustifyIcon2, size, ...iconProps2 }),
|
|
1376
1375
|
showTooltip: true
|
|
1377
1376
|
}
|
|
1378
1377
|
];
|
|
1379
1378
|
var AlignSelfChild = () => {
|
|
1380
1379
|
const { isSiteRtl } = useDirection();
|
|
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,
|
|
1380
|
+
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, __11("Align self", "elementor"))), /* @__PURE__ */ React28.createElement(Grid4, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React28.createElement(ToggleControl2, { options: options2 }))))));
|
|
1382
1381
|
};
|
|
1383
1382
|
|
|
1384
1383
|
// src/components/style-sections/layout-section/display-field.tsx
|
|
1385
1384
|
import * as React29 from "react";
|
|
1386
1385
|
import { ControlLabel as ControlLabel7, ToggleControl as ToggleControl3 } from "@elementor/editor-controls";
|
|
1387
|
-
import { Stack as
|
|
1388
|
-
import { __ as
|
|
1386
|
+
import { Stack as Stack8 } from "@elementor/ui";
|
|
1387
|
+
import { __ as __12 } from "@wordpress/i18n";
|
|
1389
1388
|
var DisplayField = () => {
|
|
1390
1389
|
const options10 = [
|
|
1391
1390
|
{
|
|
1392
1391
|
value: "block",
|
|
1393
|
-
renderContent: () =>
|
|
1394
|
-
label:
|
|
1392
|
+
renderContent: () => __12("Block", "elementor"),
|
|
1393
|
+
label: __12("Block", "elementor"),
|
|
1394
|
+
showTooltip: true
|
|
1395
1395
|
},
|
|
1396
1396
|
{
|
|
1397
1397
|
value: "flex",
|
|
1398
|
-
renderContent: () =>
|
|
1399
|
-
label:
|
|
1398
|
+
renderContent: () => __12("Flex", "elementor"),
|
|
1399
|
+
label: __12("Flex", "elementor"),
|
|
1400
|
+
showTooltip: true
|
|
1401
|
+
},
|
|
1402
|
+
{
|
|
1403
|
+
value: "inline-block",
|
|
1404
|
+
renderContent: () => __12("In-blk", "elementor"),
|
|
1405
|
+
label: __12("Inline-block", "elementor"),
|
|
1406
|
+
showTooltip: true
|
|
1400
1407
|
}
|
|
1401
1408
|
];
|
|
1402
|
-
return /* @__PURE__ */ React29.createElement(StylesField, { bind: "display" }, /* @__PURE__ */ React29.createElement(
|
|
1409
|
+
return /* @__PURE__ */ React29.createElement(StylesField, { bind: "display" }, /* @__PURE__ */ React29.createElement(Stack8, { gap: 1 }, /* @__PURE__ */ React29.createElement(ControlLabel7, null, __12("Display", "elementor")), /* @__PURE__ */ React29.createElement(ToggleControl3, { options: options10, fullWidth: true })));
|
|
1403
1410
|
};
|
|
1404
1411
|
|
|
1405
1412
|
// src/components/style-sections/layout-section/flex-direction-field.tsx
|
|
@@ -1407,42 +1414,42 @@ import * as React30 from "react";
|
|
|
1407
1414
|
import { ControlLabel as ControlLabel8, ToggleControl as ToggleControl4 } from "@elementor/editor-controls";
|
|
1408
1415
|
import { ArrowDownSmallIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpSmallIcon } from "@elementor/icons";
|
|
1409
1416
|
import { DirectionProvider as DirectionProvider3, Grid as Grid5, ThemeProvider as ThemeProvider3, withDirection as withDirection3 } from "@elementor/ui";
|
|
1410
|
-
import { __ as
|
|
1417
|
+
import { __ as __13 } from "@wordpress/i18n";
|
|
1411
1418
|
var options3 = [
|
|
1412
1419
|
{
|
|
1413
1420
|
value: "row",
|
|
1414
|
-
label:
|
|
1421
|
+
label: __13("Row", "elementor"),
|
|
1415
1422
|
renderContent: ({ size }) => {
|
|
1416
|
-
const
|
|
1417
|
-
return /* @__PURE__ */ React30.createElement(
|
|
1423
|
+
const StartIcon5 = withDirection3(ArrowRightIcon);
|
|
1424
|
+
return /* @__PURE__ */ React30.createElement(StartIcon5, { fontSize: size });
|
|
1418
1425
|
},
|
|
1419
1426
|
showTooltip: true
|
|
1420
1427
|
},
|
|
1421
1428
|
{
|
|
1422
1429
|
value: "column",
|
|
1423
|
-
label:
|
|
1430
|
+
label: __13("Column", "elementor"),
|
|
1424
1431
|
renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(ArrowDownSmallIcon, { fontSize: size }),
|
|
1425
1432
|
showTooltip: true
|
|
1426
1433
|
},
|
|
1427
1434
|
{
|
|
1428
1435
|
value: "row-reverse",
|
|
1429
|
-
label:
|
|
1436
|
+
label: __13("Reversed row", "elementor"),
|
|
1430
1437
|
renderContent: ({ size }) => {
|
|
1431
|
-
const
|
|
1432
|
-
return /* @__PURE__ */ React30.createElement(
|
|
1438
|
+
const EndIcon5 = withDirection3(ArrowLeftIcon);
|
|
1439
|
+
return /* @__PURE__ */ React30.createElement(EndIcon5, { fontSize: size });
|
|
1433
1440
|
},
|
|
1434
1441
|
showTooltip: true
|
|
1435
1442
|
},
|
|
1436
1443
|
{
|
|
1437
1444
|
value: "column-reverse",
|
|
1438
|
-
label:
|
|
1445
|
+
label: __13("Reversed column", "elementor"),
|
|
1439
1446
|
renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(ArrowUpSmallIcon, { fontSize: size }),
|
|
1440
1447
|
showTooltip: true
|
|
1441
1448
|
}
|
|
1442
1449
|
];
|
|
1443
1450
|
var FlexDirectionField = () => {
|
|
1444
1451
|
const { isSiteRtl } = useDirection();
|
|
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,
|
|
1452
|
+
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, __13("Direction", "elementor"))), /* @__PURE__ */ React30.createElement(Grid5, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React30.createElement(ToggleControl4, { options: options3 }))))));
|
|
1446
1453
|
};
|
|
1447
1454
|
|
|
1448
1455
|
// src/components/style-sections/layout-section/flex-order-field.tsx
|
|
@@ -1454,8 +1461,8 @@ import {
|
|
|
1454
1461
|
NumberControl
|
|
1455
1462
|
} from "@elementor/editor-controls";
|
|
1456
1463
|
import { ArrowDownSmallIcon as ArrowDownSmallIcon2, ArrowUpSmallIcon as ArrowUpSmallIcon2, PencilIcon } from "@elementor/icons";
|
|
1457
|
-
import { DirectionProvider as DirectionProvider4, Grid as Grid6, Stack as
|
|
1458
|
-
import { __ as
|
|
1464
|
+
import { DirectionProvider as DirectionProvider4, Grid as Grid6, Stack as Stack9, ThemeProvider as ThemeProvider4 } from "@elementor/ui";
|
|
1465
|
+
import { __ as __14 } from "@wordpress/i18n";
|
|
1459
1466
|
var FIRST_DEFAULT_VALUE = -99999;
|
|
1460
1467
|
var LAST_DEFAULT_VALUE = 99999;
|
|
1461
1468
|
var FIRST = "first";
|
|
@@ -1468,19 +1475,19 @@ var orderValueMap = {
|
|
|
1468
1475
|
var items = [
|
|
1469
1476
|
{
|
|
1470
1477
|
value: FIRST,
|
|
1471
|
-
label:
|
|
1478
|
+
label: __14("First", "elementor"),
|
|
1472
1479
|
renderContent: ({ size }) => /* @__PURE__ */ React31.createElement(ArrowUpSmallIcon2, { fontSize: size }),
|
|
1473
1480
|
showTooltip: true
|
|
1474
1481
|
},
|
|
1475
1482
|
{
|
|
1476
1483
|
value: LAST,
|
|
1477
|
-
label:
|
|
1484
|
+
label: __14("Last", "elementor"),
|
|
1478
1485
|
renderContent: ({ size }) => /* @__PURE__ */ React31.createElement(ArrowDownSmallIcon2, { fontSize: size }),
|
|
1479
1486
|
showTooltip: true
|
|
1480
1487
|
},
|
|
1481
1488
|
{
|
|
1482
1489
|
value: CUSTOM,
|
|
1483
|
-
label:
|
|
1490
|
+
label: __14("Custom", "elementor"),
|
|
1484
1491
|
renderContent: ({ size }) => /* @__PURE__ */ React31.createElement(PencilIcon, { fontSize: size }),
|
|
1485
1492
|
showTooltip: true
|
|
1486
1493
|
}
|
|
@@ -1496,7 +1503,7 @@ var FlexOrderField = () => {
|
|
|
1496
1503
|
}
|
|
1497
1504
|
setOrder({ $$type: "number", value: orderValueMap[group] });
|
|
1498
1505
|
};
|
|
1499
|
-
return /* @__PURE__ */ React31.createElement(DirectionProvider4, { rtl: isSiteRtl }, /* @__PURE__ */ React31.createElement(ThemeProvider4, null, /* @__PURE__ */ React31.createElement(
|
|
1506
|
+
return /* @__PURE__ */ React31.createElement(DirectionProvider4, { rtl: isSiteRtl }, /* @__PURE__ */ React31.createElement(ThemeProvider4, null, /* @__PURE__ */ React31.createElement(Stack9, { 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, __14("Order", "elementor"))), /* @__PURE__ */ React31.createElement(Grid6, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React31.createElement(
|
|
1500
1507
|
ControlToggleButtonGroup,
|
|
1501
1508
|
{
|
|
1502
1509
|
items,
|
|
@@ -1504,7 +1511,7 @@ var FlexOrderField = () => {
|
|
|
1504
1511
|
onChange: handleToggleButtonChange,
|
|
1505
1512
|
exclusive: true
|
|
1506
1513
|
}
|
|
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,
|
|
1514
|
+
))), 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, __14("Custom order", "elementor"))), /* @__PURE__ */ React31.createElement(Grid6, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React31.createElement(
|
|
1508
1515
|
NumberControl,
|
|
1509
1516
|
{
|
|
1510
1517
|
min: FIRST_DEFAULT_VALUE + 1,
|
|
@@ -1525,7 +1532,7 @@ var getGroupControlValue = (order) => {
|
|
|
1525
1532
|
|
|
1526
1533
|
// src/components/style-sections/layout-section/flex-size-field.tsx
|
|
1527
1534
|
import * as React32 from "react";
|
|
1528
|
-
import { useMemo, useState as useState5 } from "react";
|
|
1535
|
+
import { useMemo as useMemo2, useState as useState5 } from "react";
|
|
1529
1536
|
import {
|
|
1530
1537
|
ControlLabel as ControlLabel10,
|
|
1531
1538
|
ControlToggleButtonGroup as ControlToggleButtonGroup2,
|
|
@@ -1533,25 +1540,25 @@ import {
|
|
|
1533
1540
|
SizeControl as SizeControl2
|
|
1534
1541
|
} from "@elementor/editor-controls";
|
|
1535
1542
|
import { ExpandIcon, PencilIcon as PencilIcon2, ShrinkIcon } from "@elementor/icons";
|
|
1536
|
-
import { DirectionProvider as DirectionProvider5, Grid as Grid7, Stack as
|
|
1537
|
-
import { __ as
|
|
1543
|
+
import { DirectionProvider as DirectionProvider5, Grid as Grid7, Stack as Stack10, ThemeProvider as ThemeProvider5 } from "@elementor/ui";
|
|
1544
|
+
import { __ as __15 } from "@wordpress/i18n";
|
|
1538
1545
|
var DEFAULT = 1;
|
|
1539
1546
|
var items2 = [
|
|
1540
1547
|
{
|
|
1541
1548
|
value: "flex-grow",
|
|
1542
|
-
label:
|
|
1549
|
+
label: __15("Grow", "elementor"),
|
|
1543
1550
|
renderContent: ({ size }) => /* @__PURE__ */ React32.createElement(ExpandIcon, { fontSize: size }),
|
|
1544
1551
|
showTooltip: true
|
|
1545
1552
|
},
|
|
1546
1553
|
{
|
|
1547
1554
|
value: "flex-shrink",
|
|
1548
|
-
label:
|
|
1555
|
+
label: __15("Shrink", "elementor"),
|
|
1549
1556
|
renderContent: ({ size }) => /* @__PURE__ */ React32.createElement(ShrinkIcon, { fontSize: size }),
|
|
1550
1557
|
showTooltip: true
|
|
1551
1558
|
},
|
|
1552
1559
|
{
|
|
1553
1560
|
value: "custom",
|
|
1554
|
-
label:
|
|
1561
|
+
label: __15("Custom", "elementor"),
|
|
1555
1562
|
renderContent: ({ size }) => /* @__PURE__ */ React32.createElement(PencilIcon2, { fontSize: size }),
|
|
1556
1563
|
showTooltip: true
|
|
1557
1564
|
}
|
|
@@ -1559,7 +1566,7 @@ var items2 = [
|
|
|
1559
1566
|
var FlexSizeField = () => {
|
|
1560
1567
|
const { isSiteRtl } = useDirection(), [growField, setGrowField] = useStylesField("flex-grow"), [shrinkField, setShrinkField] = useStylesField("flex-shrink"), [basisField, setBasisField] = useStylesField("flex-basis");
|
|
1561
1568
|
const grow = growField?.value || null, shrink = shrinkField?.value || null, basis = basisField?.value || null;
|
|
1562
|
-
const currentGroup =
|
|
1569
|
+
const currentGroup = useMemo2(() => getActiveGroup({ grow, shrink, basis }), [grow, shrink, basis]), [activeGroup, setActiveGroup] = useState5(currentGroup);
|
|
1563
1570
|
const onChangeGroup = (group = null) => {
|
|
1564
1571
|
setActiveGroup(group);
|
|
1565
1572
|
setBasisField(null);
|
|
@@ -1576,7 +1583,7 @@ var FlexSizeField = () => {
|
|
|
1576
1583
|
setGrowField(null);
|
|
1577
1584
|
setShrinkField({ $$type: "number", value: DEFAULT });
|
|
1578
1585
|
};
|
|
1579
|
-
return /* @__PURE__ */ React32.createElement(DirectionProvider5, { rtl: isSiteRtl }, /* @__PURE__ */ React32.createElement(ThemeProvider5, null, /* @__PURE__ */ React32.createElement(
|
|
1586
|
+
return /* @__PURE__ */ React32.createElement(DirectionProvider5, { rtl: isSiteRtl }, /* @__PURE__ */ React32.createElement(ThemeProvider5, null, /* @__PURE__ */ React32.createElement(Stack10, { 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, __15("Size", "elementor"))), /* @__PURE__ */ React32.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React32.createElement(
|
|
1580
1587
|
ControlToggleButtonGroup2,
|
|
1581
1588
|
{
|
|
1582
1589
|
value: activeGroup,
|
|
@@ -1586,7 +1593,7 @@ var FlexSizeField = () => {
|
|
|
1586
1593
|
}
|
|
1587
1594
|
))), "custom" === activeGroup && /* @__PURE__ */ React32.createElement(FlexCustomField, null))));
|
|
1588
1595
|
};
|
|
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,
|
|
1596
|
+
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, __15("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, __15("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, __15("Basis", "elementor"))), /* @__PURE__ */ React32.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React32.createElement(SizeControl2, null)))));
|
|
1590
1597
|
var getActiveGroup = ({
|
|
1591
1598
|
grow,
|
|
1592
1599
|
shrink,
|
|
@@ -1610,10 +1617,10 @@ var getActiveGroup = ({
|
|
|
1610
1617
|
// src/components/style-sections/layout-section/gap-control-field.tsx
|
|
1611
1618
|
import * as React33 from "react";
|
|
1612
1619
|
import { GapControl } from "@elementor/editor-controls";
|
|
1613
|
-
import { Stack as
|
|
1614
|
-
import { __ as
|
|
1620
|
+
import { Stack as Stack11 } from "@elementor/ui";
|
|
1621
|
+
import { __ as __16 } from "@wordpress/i18n";
|
|
1615
1622
|
var GapControlField = () => {
|
|
1616
|
-
return /* @__PURE__ */ React33.createElement(
|
|
1623
|
+
return /* @__PURE__ */ React33.createElement(Stack11, { gap: 1 }, /* @__PURE__ */ React33.createElement(StylesField, { bind: "gap" }, /* @__PURE__ */ React33.createElement(GapControl, { label: __16("Gaps", "elementor") })));
|
|
1617
1624
|
};
|
|
1618
1625
|
|
|
1619
1626
|
// src/components/style-sections/layout-section/justify-content-field.tsx
|
|
@@ -1627,8 +1634,8 @@ import {
|
|
|
1627
1634
|
JustifySpaceBetweenVerticalIcon as BetweenIcon,
|
|
1628
1635
|
JustifyTopIcon
|
|
1629
1636
|
} from "@elementor/icons";
|
|
1630
|
-
import { DirectionProvider as DirectionProvider6, Stack as
|
|
1631
|
-
import { __ as
|
|
1637
|
+
import { DirectionProvider as DirectionProvider6, Stack as Stack12, ThemeProvider as ThemeProvider6, withDirection as withDirection4 } from "@elementor/ui";
|
|
1638
|
+
import { __ as __17 } from "@wordpress/i18n";
|
|
1632
1639
|
var StartIcon3 = withDirection4(JustifyTopIcon);
|
|
1633
1640
|
var EndIcon3 = withDirection4(JustifyBottomIcon);
|
|
1634
1641
|
var iconProps3 = {
|
|
@@ -1638,44 +1645,44 @@ var iconProps3 = {
|
|
|
1638
1645
|
var options4 = [
|
|
1639
1646
|
{
|
|
1640
1647
|
value: "start",
|
|
1641
|
-
label:
|
|
1648
|
+
label: __17("Start", "elementor"),
|
|
1642
1649
|
renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: StartIcon3, size, ...iconProps3 }),
|
|
1643
1650
|
showTooltip: true
|
|
1644
1651
|
},
|
|
1645
1652
|
{
|
|
1646
1653
|
value: "center",
|
|
1647
|
-
label:
|
|
1654
|
+
label: __17("Center", "elementor"),
|
|
1648
1655
|
renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: CenterIcon3, size, ...iconProps3 }),
|
|
1649
1656
|
showTooltip: true
|
|
1650
1657
|
},
|
|
1651
1658
|
{
|
|
1652
1659
|
value: "end",
|
|
1653
|
-
label:
|
|
1660
|
+
label: __17("End", "elementor"),
|
|
1654
1661
|
renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: EndIcon3, size, ...iconProps3 }),
|
|
1655
1662
|
showTooltip: true
|
|
1656
1663
|
},
|
|
1657
1664
|
{
|
|
1658
1665
|
value: "space-between",
|
|
1659
|
-
label:
|
|
1666
|
+
label: __17("Space between", "elementor"),
|
|
1660
1667
|
renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: BetweenIcon, size, ...iconProps3 }),
|
|
1661
1668
|
showTooltip: true
|
|
1662
1669
|
},
|
|
1663
1670
|
{
|
|
1664
1671
|
value: "space-around",
|
|
1665
|
-
label:
|
|
1672
|
+
label: __17("Space around", "elementor"),
|
|
1666
1673
|
renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: AroundIcon, size, ...iconProps3 }),
|
|
1667
1674
|
showTooltip: true
|
|
1668
1675
|
},
|
|
1669
1676
|
{
|
|
1670
1677
|
value: "space-evenly",
|
|
1671
|
-
label:
|
|
1678
|
+
label: __17("Space evenly", "elementor"),
|
|
1672
1679
|
renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: EvenlyIcon, size, ...iconProps3 }),
|
|
1673
1680
|
showTooltip: true
|
|
1674
1681
|
}
|
|
1675
1682
|
];
|
|
1676
1683
|
var JustifyContentField = () => {
|
|
1677
1684
|
const { isSiteRtl } = useDirection();
|
|
1678
|
-
return /* @__PURE__ */ React34.createElement(DirectionProvider6, { rtl: isSiteRtl }, /* @__PURE__ */ React34.createElement(ThemeProvider6, null, /* @__PURE__ */ React34.createElement(StylesField, { bind: "justify-content" }, /* @__PURE__ */ React34.createElement(
|
|
1685
|
+
return /* @__PURE__ */ React34.createElement(DirectionProvider6, { rtl: isSiteRtl }, /* @__PURE__ */ React34.createElement(ThemeProvider6, null, /* @__PURE__ */ React34.createElement(StylesField, { bind: "justify-content" }, /* @__PURE__ */ React34.createElement(Stack12, { gap: 1 }, /* @__PURE__ */ React34.createElement(ControlLabel11, null, __17("Justify content", "elementor")), /* @__PURE__ */ React34.createElement(ToggleControl5, { options: options4, fullWidth: true })))));
|
|
1679
1686
|
};
|
|
1680
1687
|
|
|
1681
1688
|
// src/components/style-sections/layout-section/wrap-field.tsx
|
|
@@ -1683,30 +1690,30 @@ import * as React35 from "react";
|
|
|
1683
1690
|
import { ControlLabel as ControlLabel12, ToggleControl as ToggleControl6 } from "@elementor/editor-controls";
|
|
1684
1691
|
import { ArrowBackIcon, ArrowForwardIcon, ArrowRightIcon as ArrowRightIcon2 } from "@elementor/icons";
|
|
1685
1692
|
import { DirectionProvider as DirectionProvider7, Grid as Grid8, ThemeProvider as ThemeProvider7 } from "@elementor/ui";
|
|
1686
|
-
import { __ as
|
|
1693
|
+
import { __ as __18 } from "@wordpress/i18n";
|
|
1687
1694
|
var options5 = [
|
|
1688
1695
|
{
|
|
1689
1696
|
value: "nowrap",
|
|
1690
|
-
label:
|
|
1697
|
+
label: __18("No wrap", "elementor"),
|
|
1691
1698
|
renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(ArrowRightIcon2, { fontSize: size }),
|
|
1692
1699
|
showTooltip: true
|
|
1693
1700
|
},
|
|
1694
1701
|
{
|
|
1695
1702
|
value: "wrap",
|
|
1696
|
-
label:
|
|
1703
|
+
label: __18("Wrap", "elementor"),
|
|
1697
1704
|
renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(ArrowBackIcon, { fontSize: size }),
|
|
1698
1705
|
showTooltip: true
|
|
1699
1706
|
},
|
|
1700
1707
|
{
|
|
1701
1708
|
value: "wrap-reverse",
|
|
1702
|
-
label:
|
|
1709
|
+
label: __18("Reversed wrap", "elementor"),
|
|
1703
1710
|
renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(ArrowForwardIcon, { fontSize: size }),
|
|
1704
1711
|
showTooltip: true
|
|
1705
1712
|
}
|
|
1706
1713
|
];
|
|
1707
1714
|
var WrapField = () => {
|
|
1708
1715
|
const { isSiteRtl } = useDirection();
|
|
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,
|
|
1716
|
+
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, __18("Wrap", "elementor"))), /* @__PURE__ */ React35.createElement(Grid8, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React35.createElement(ToggleControl6, { options: options5 }))))));
|
|
1710
1717
|
};
|
|
1711
1718
|
|
|
1712
1719
|
// src/components/style-sections/layout-section/layout-section.tsx
|
|
@@ -1715,58 +1722,22 @@ var LayoutSection = () => {
|
|
|
1715
1722
|
const { element } = useElement();
|
|
1716
1723
|
const parent = useParentElement(element.id);
|
|
1717
1724
|
const parentStyle = useComputedStyle(parent?.id || null);
|
|
1718
|
-
return /* @__PURE__ */ React36.createElement(
|
|
1725
|
+
return /* @__PURE__ */ React36.createElement(Stack13, { gap: 2 }, /* @__PURE__ */ React36.createElement(DisplayField, null), "flex" === display?.value && /* @__PURE__ */ React36.createElement(FlexFields, null), "flex" === parentStyle?.display && /* @__PURE__ */ React36.createElement(FlexChildFields, null));
|
|
1719
1726
|
};
|
|
1720
1727
|
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,
|
|
1728
|
+
var FlexChildFields = () => /* @__PURE__ */ React36.createElement(React36.Fragment, null, /* @__PURE__ */ React36.createElement(Divider4, null), /* @__PURE__ */ React36.createElement(ControlLabel13, null, __19("Flex child", "elementor")), /* @__PURE__ */ React36.createElement(AlignSelfChild, null), /* @__PURE__ */ React36.createElement(FlexOrderField, null), /* @__PURE__ */ React36.createElement(FlexSizeField, null));
|
|
1722
1729
|
|
|
1723
1730
|
// src/components/style-sections/position-section/position-section.tsx
|
|
1724
1731
|
import * as React40 from "react";
|
|
1725
|
-
import {
|
|
1726
|
-
|
|
1727
|
-
// src/hooks/use-session-storage.ts
|
|
1728
|
-
import { useEffect as useEffect3, useState as useState6 } from "react";
|
|
1729
|
-
import { getSessionStorageItem, removeSessionStorageItem, setSessionStorageItem } from "@elementor/utils";
|
|
1730
|
-
var useSessionStorage = (key) => {
|
|
1731
|
-
const prefixedKey = `elementor/${key}`;
|
|
1732
|
-
const [value, setValue] = useState6();
|
|
1733
|
-
useEffect3(() => {
|
|
1734
|
-
return subscribeToSessionStorage(prefixedKey, (newValue) => {
|
|
1735
|
-
setValue(newValue ?? null);
|
|
1736
|
-
});
|
|
1737
|
-
}, [prefixedKey]);
|
|
1738
|
-
const saveValue = (newValue) => {
|
|
1739
|
-
setSessionStorageItem(prefixedKey, newValue);
|
|
1740
|
-
};
|
|
1741
|
-
const removeValue = () => {
|
|
1742
|
-
removeSessionStorageItem(prefixedKey);
|
|
1743
|
-
};
|
|
1744
|
-
return [value, saveValue, removeValue];
|
|
1745
|
-
};
|
|
1746
|
-
var subscribeToSessionStorage = (key, subscriber) => {
|
|
1747
|
-
subscriber(getSessionStorageItem(key));
|
|
1748
|
-
const abortController = new AbortController();
|
|
1749
|
-
window.addEventListener(
|
|
1750
|
-
"storage",
|
|
1751
|
-
(e) => {
|
|
1752
|
-
if (e.key !== key || e.storageArea !== sessionStorage) {
|
|
1753
|
-
return;
|
|
1754
|
-
}
|
|
1755
|
-
subscriber(getSessionStorageItem(key));
|
|
1756
|
-
},
|
|
1757
|
-
{ signal: abortController.signal }
|
|
1758
|
-
);
|
|
1759
|
-
return () => {
|
|
1760
|
-
abortController.abort();
|
|
1761
|
-
};
|
|
1762
|
-
};
|
|
1732
|
+
import { useSessionStorage } from "@elementor/session";
|
|
1733
|
+
import { Stack as Stack15 } from "@elementor/ui";
|
|
1763
1734
|
|
|
1764
1735
|
// src/components/style-sections/position-section/dimensions-field.tsx
|
|
1765
1736
|
import * as React37 from "react";
|
|
1766
1737
|
import { ControlLabel as ControlLabel14, SizeControl as SizeControl3 } from "@elementor/editor-controls";
|
|
1767
1738
|
import { SideBottomIcon as SideBottomIcon2, SideLeftIcon as SideLeftIcon2, SideRightIcon as SideRightIcon2, SideTopIcon as SideTopIcon2 } from "@elementor/icons";
|
|
1768
|
-
import { Grid as Grid9, Stack as
|
|
1769
|
-
import { __ as
|
|
1739
|
+
import { Grid as Grid9, Stack as Stack14 } from "@elementor/ui";
|
|
1740
|
+
import { __ as __20 } from "@wordpress/i18n";
|
|
1770
1741
|
var sideIcons = {
|
|
1771
1742
|
left: /* @__PURE__ */ React37.createElement(SideLeftIcon2, { fontSize: "tiny" }),
|
|
1772
1743
|
right: /* @__PURE__ */ React37.createElement(SideRightIcon2, { fontSize: "tiny" }),
|
|
@@ -1774,7 +1745,7 @@ var sideIcons = {
|
|
|
1774
1745
|
bottom: /* @__PURE__ */ React37.createElement(SideBottomIcon2, { fontSize: "tiny" })
|
|
1775
1746
|
};
|
|
1776
1747
|
var DimensionsField = () => {
|
|
1777
|
-
return /* @__PURE__ */ React37.createElement(React37.Fragment, null, /* @__PURE__ */ React37.createElement(
|
|
1748
|
+
return /* @__PURE__ */ React37.createElement(React37.Fragment, null, /* @__PURE__ */ React37.createElement(Stack14, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React37.createElement(DimensionField, { side: "top", label: __20("Top", "elementor") }), /* @__PURE__ */ React37.createElement(DimensionField, { side: "right", label: __20("Right", "elementor") })), /* @__PURE__ */ React37.createElement(Stack14, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React37.createElement(DimensionField, { side: "bottom", label: __20("Bottom", "elementor") }), /* @__PURE__ */ React37.createElement(DimensionField, { side: "left", label: __20("Left", "elementor") })));
|
|
1778
1749
|
};
|
|
1779
1750
|
var DimensionField = ({ side, label }) => {
|
|
1780
1751
|
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] }))));
|
|
@@ -1784,25 +1755,25 @@ var DimensionField = ({ side, label }) => {
|
|
|
1784
1755
|
import * as React38 from "react";
|
|
1785
1756
|
import { ControlLabel as ControlLabel15, SelectControl as SelectControl3 } from "@elementor/editor-controls";
|
|
1786
1757
|
import { Grid as Grid10 } from "@elementor/ui";
|
|
1787
|
-
import { __ as
|
|
1758
|
+
import { __ as __21 } from "@wordpress/i18n";
|
|
1788
1759
|
var positionOptions = [
|
|
1789
|
-
{ label:
|
|
1790
|
-
{ label:
|
|
1791
|
-
{ label:
|
|
1792
|
-
{ label:
|
|
1793
|
-
{ label:
|
|
1760
|
+
{ label: __21("Static", "elementor"), value: "static" },
|
|
1761
|
+
{ label: __21("Relative", "elementor"), value: "relative" },
|
|
1762
|
+
{ label: __21("Absolute", "elementor"), value: "absolute" },
|
|
1763
|
+
{ label: __21("Fixed", "elementor"), value: "fixed" },
|
|
1764
|
+
{ label: __21("Sticky", "elementor"), value: "sticky" }
|
|
1794
1765
|
];
|
|
1795
1766
|
var PositionField = ({ onChange }) => {
|
|
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,
|
|
1767
|
+
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, __21("Position", "elementor"))), /* @__PURE__ */ React38.createElement(Grid10, { item: true, xs: 6 }, /* @__PURE__ */ React38.createElement(SelectControl3, { options: positionOptions, onChange }))));
|
|
1797
1768
|
};
|
|
1798
1769
|
|
|
1799
1770
|
// src/components/style-sections/position-section/z-index-field.tsx
|
|
1800
1771
|
import * as React39 from "react";
|
|
1801
1772
|
import { ControlLabel as ControlLabel16, NumberControl as NumberControl3 } from "@elementor/editor-controls";
|
|
1802
1773
|
import { Grid as Grid11 } from "@elementor/ui";
|
|
1803
|
-
import { __ as
|
|
1774
|
+
import { __ as __22 } from "@wordpress/i18n";
|
|
1804
1775
|
var ZIndexField = () => {
|
|
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,
|
|
1776
|
+
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, __22("Z-Index", "elementor"))), /* @__PURE__ */ React39.createElement(Grid11, { item: true, xs: 6 }, /* @__PURE__ */ React39.createElement(NumberControl3, null))));
|
|
1806
1777
|
};
|
|
1807
1778
|
|
|
1808
1779
|
// src/components/style-sections/position-section/position-section.tsx
|
|
@@ -1834,7 +1805,7 @@ var PositionSection = () => {
|
|
|
1834
1805
|
}
|
|
1835
1806
|
};
|
|
1836
1807
|
const isNotStatic = positionValue && positionValue?.value !== "static";
|
|
1837
|
-
return /* @__PURE__ */ React40.createElement(
|
|
1808
|
+
return /* @__PURE__ */ React40.createElement(Stack15, { 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);
|
|
1838
1809
|
};
|
|
1839
1810
|
var usePersistDimensions = () => {
|
|
1840
1811
|
const { id: styleDefID, meta } = useStyle();
|
|
@@ -1846,42 +1817,42 @@ var usePersistDimensions = () => {
|
|
|
1846
1817
|
// src/components/style-sections/size-section/size-section.tsx
|
|
1847
1818
|
import * as React42 from "react";
|
|
1848
1819
|
import { ControlLabel as ControlLabel18, SizeControl as SizeControl4 } from "@elementor/editor-controls";
|
|
1849
|
-
import { Divider as Divider5, Grid as Grid13, Stack as
|
|
1850
|
-
import { __ as
|
|
1820
|
+
import { Divider as Divider5, Grid as Grid13, Stack as Stack16 } from "@elementor/ui";
|
|
1821
|
+
import { __ as __24 } from "@wordpress/i18n";
|
|
1851
1822
|
|
|
1852
1823
|
// src/components/style-sections/size-section/overflow-field.tsx
|
|
1853
1824
|
import * as React41 from "react";
|
|
1854
1825
|
import { ControlLabel as ControlLabel17, ToggleControl as ToggleControl7 } from "@elementor/editor-controls";
|
|
1855
1826
|
import { ExpandBottomIcon, EyeIcon, EyeOffIcon } from "@elementor/icons";
|
|
1856
1827
|
import { Grid as Grid12 } from "@elementor/ui";
|
|
1857
|
-
import { __ as
|
|
1828
|
+
import { __ as __23 } from "@wordpress/i18n";
|
|
1858
1829
|
var options6 = [
|
|
1859
1830
|
{
|
|
1860
1831
|
value: "visible",
|
|
1861
|
-
label:
|
|
1832
|
+
label: __23("Visible", "elementor"),
|
|
1862
1833
|
renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(EyeIcon, { fontSize: size }),
|
|
1863
1834
|
showTooltip: true
|
|
1864
1835
|
},
|
|
1865
1836
|
{
|
|
1866
1837
|
value: "hidden",
|
|
1867
|
-
label:
|
|
1838
|
+
label: __23("Hidden", "elementor"),
|
|
1868
1839
|
renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(EyeOffIcon, { fontSize: size }),
|
|
1869
1840
|
showTooltip: true
|
|
1870
1841
|
},
|
|
1871
1842
|
{
|
|
1872
1843
|
value: "auto",
|
|
1873
|
-
label:
|
|
1844
|
+
label: __23("Auto", "elementor"),
|
|
1874
1845
|
renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(ExpandBottomIcon, { fontSize: size }),
|
|
1875
1846
|
showTooltip: true
|
|
1876
1847
|
}
|
|
1877
1848
|
];
|
|
1878
1849
|
var OverflowField = () => {
|
|
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,
|
|
1850
|
+
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, __23("Overflow", "elementor"))), /* @__PURE__ */ React41.createElement(Grid12, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React41.createElement(ToggleControl7, { options: options6 }))));
|
|
1880
1851
|
};
|
|
1881
1852
|
|
|
1882
1853
|
// src/components/style-sections/size-section/size-section.tsx
|
|
1883
1854
|
var SizeSection = () => {
|
|
1884
|
-
return /* @__PURE__ */ React42.createElement(
|
|
1855
|
+
return /* @__PURE__ */ React42.createElement(Stack16, { 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: __24("Width", "elementor") })), /* @__PURE__ */ React42.createElement(Grid13, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(SizeField, { bind: "height", label: __24("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: __24("Min. Width", "elementor") })), /* @__PURE__ */ React42.createElement(Grid13, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(SizeField, { bind: "min-height", label: __24("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: __24("Max. Width", "elementor") })), /* @__PURE__ */ React42.createElement(Grid13, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(SizeField, { bind: "max-height", label: __24("Max. Height", "elementor") }))), /* @__PURE__ */ React42.createElement(Divider5, null), /* @__PURE__ */ React42.createElement(Stack16, null, /* @__PURE__ */ React42.createElement(OverflowField, null)));
|
|
1885
1856
|
};
|
|
1886
1857
|
var SizeField = ({ label, bind }) => {
|
|
1887
1858
|
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))));
|
|
@@ -1890,27 +1861,27 @@ var SizeField = ({ label, bind }) => {
|
|
|
1890
1861
|
// src/components/style-sections/spacing-section/spacing-section.tsx
|
|
1891
1862
|
import * as React43 from "react";
|
|
1892
1863
|
import { LinkedDimensionsControl } from "@elementor/editor-controls";
|
|
1893
|
-
import { Divider as Divider6, Stack as
|
|
1894
|
-
import { __ as
|
|
1864
|
+
import { Divider as Divider6, Stack as Stack17 } from "@elementor/ui";
|
|
1865
|
+
import { __ as __25 } from "@wordpress/i18n";
|
|
1895
1866
|
var SpacingSection = () => {
|
|
1896
|
-
return /* @__PURE__ */ React43.createElement(
|
|
1867
|
+
return /* @__PURE__ */ React43.createElement(Stack17, { gap: 1.5 }, /* @__PURE__ */ React43.createElement(StylesField, { bind: "padding" }, /* @__PURE__ */ React43.createElement(LinkedDimensionsControl, { label: __25("Padding", "elementor") })), /* @__PURE__ */ React43.createElement(Divider6, null), /* @__PURE__ */ React43.createElement(StylesField, { bind: "margin" }, /* @__PURE__ */ React43.createElement(LinkedDimensionsControl, { label: __25("Margin", "elementor") })));
|
|
1897
1868
|
};
|
|
1898
1869
|
|
|
1899
1870
|
// src/components/style-sections/typography-section/typography-section.tsx
|
|
1900
1871
|
import * as React57 from "react";
|
|
1901
|
-
import { Divider as Divider7, Stack as
|
|
1872
|
+
import { Divider as Divider7, Stack as Stack19 } from "@elementor/ui";
|
|
1902
1873
|
|
|
1903
1874
|
// src/components/collapsible-content.tsx
|
|
1904
1875
|
import * as React44 from "react";
|
|
1905
|
-
import { useState as
|
|
1906
|
-
import { Button, Collapse as Collapse3, Stack as
|
|
1907
|
-
import { __ as
|
|
1876
|
+
import { useState as useState6 } from "react";
|
|
1877
|
+
import { Button, Collapse as Collapse3, Stack as Stack18 } from "@elementor/ui";
|
|
1878
|
+
import { __ as __26 } from "@wordpress/i18n";
|
|
1908
1879
|
var CollapsibleContent = ({ children, defaultOpen = false }) => {
|
|
1909
|
-
const [open, setOpen] =
|
|
1880
|
+
const [open, setOpen] = useState6(defaultOpen);
|
|
1910
1881
|
const handleToggle = () => {
|
|
1911
1882
|
setOpen((prevOpen) => !prevOpen);
|
|
1912
1883
|
};
|
|
1913
|
-
return /* @__PURE__ */ React44.createElement(
|
|
1884
|
+
return /* @__PURE__ */ React44.createElement(Stack18, { sx: { py: 0.5 } }, /* @__PURE__ */ React44.createElement(
|
|
1914
1885
|
Button,
|
|
1915
1886
|
{
|
|
1916
1887
|
fullWidth: true,
|
|
@@ -1920,7 +1891,7 @@ var CollapsibleContent = ({ children, defaultOpen = false }) => {
|
|
|
1920
1891
|
onClick: handleToggle,
|
|
1921
1892
|
endIcon: /* @__PURE__ */ React44.createElement(CollapseIcon, { open })
|
|
1922
1893
|
},
|
|
1923
|
-
open ?
|
|
1894
|
+
open ? __26("Show less", "elementor") : __26("Show more", "elementor")
|
|
1924
1895
|
), /* @__PURE__ */ React44.createElement(Collapse3, { in: open, timeout: "auto", unmountOnExit: true }, children));
|
|
1925
1896
|
};
|
|
1926
1897
|
|
|
@@ -1928,7 +1899,7 @@ var CollapsibleContent = ({ children, defaultOpen = false }) => {
|
|
|
1928
1899
|
import * as React45 from "react";
|
|
1929
1900
|
import { ControlLabel as ControlLabel19, FontFamilyControl } from "@elementor/editor-controls";
|
|
1930
1901
|
import { Grid as Grid14 } from "@elementor/ui";
|
|
1931
|
-
import { __ as
|
|
1902
|
+
import { __ as __27 } from "@wordpress/i18n";
|
|
1932
1903
|
|
|
1933
1904
|
// src/sync/get-elementor-config.ts
|
|
1934
1905
|
var getElementorConfig = () => {
|
|
@@ -1942,7 +1913,7 @@ var FontFamilyField = () => {
|
|
|
1942
1913
|
if (!fontFamilies) {
|
|
1943
1914
|
return null;
|
|
1944
1915
|
}
|
|
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,
|
|
1916
|
+
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, __27("Font Family", "elementor"))), /* @__PURE__ */ React45.createElement(Grid14, { item: true, xs: 6 }, /* @__PURE__ */ React45.createElement(FontFamilyControl, { fontFamilies }))));
|
|
1946
1917
|
};
|
|
1947
1918
|
var getFontFamilies = () => {
|
|
1948
1919
|
const { controls } = getElementorConfig();
|
|
@@ -1957,84 +1928,94 @@ var getFontFamilies = () => {
|
|
|
1957
1928
|
import * as React46 from "react";
|
|
1958
1929
|
import { ControlLabel as ControlLabel20, SizeControl as SizeControl5 } from "@elementor/editor-controls";
|
|
1959
1930
|
import { Grid as Grid15 } from "@elementor/ui";
|
|
1960
|
-
import { __ as
|
|
1931
|
+
import { __ as __28 } from "@wordpress/i18n";
|
|
1961
1932
|
var FontSizeField = () => {
|
|
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,
|
|
1933
|
+
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, __28("Font Size", "elementor"))), /* @__PURE__ */ React46.createElement(Grid15, { item: true, xs: 6 }, /* @__PURE__ */ React46.createElement(SizeControl5, null))));
|
|
1963
1934
|
};
|
|
1964
1935
|
|
|
1965
1936
|
// src/components/style-sections/typography-section/font-weight-field.tsx
|
|
1966
1937
|
import * as React47 from "react";
|
|
1967
1938
|
import { ControlLabel as ControlLabel21, SelectControl as SelectControl4 } from "@elementor/editor-controls";
|
|
1968
1939
|
import { Grid as Grid16 } from "@elementor/ui";
|
|
1969
|
-
import { __ as
|
|
1940
|
+
import { __ as __29 } from "@wordpress/i18n";
|
|
1970
1941
|
var fontWeightOptions = [
|
|
1971
|
-
{ label:
|
|
1972
|
-
{ label:
|
|
1973
|
-
{ label:
|
|
1974
|
-
{ label:
|
|
1975
|
-
{ label:
|
|
1942
|
+
{ value: "100", label: __29("100 - Thin", "elementor") },
|
|
1943
|
+
{ value: "200", label: __29("200 - Extra Light", "elementor") },
|
|
1944
|
+
{ value: "300", label: __29("300 - Light", "elementor") },
|
|
1945
|
+
{ value: "400", label: __29("400 - Normal", "elementor") },
|
|
1946
|
+
{ value: "500", label: __29("500 - Medium", "elementor") },
|
|
1947
|
+
{ value: "600", label: __29("600 - Semi Bold", "elementor") },
|
|
1948
|
+
{ value: "700", label: __29("700 - Bold", "elementor") },
|
|
1949
|
+
{ value: "800", label: __29("800 - Extra Bold", "elementor") },
|
|
1950
|
+
{ value: "900", label: __29("900 - Black", "elementor") }
|
|
1976
1951
|
];
|
|
1977
1952
|
var FontWeightField = () => {
|
|
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,
|
|
1953
|
+
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, __29("Font Weight", "elementor"))), /* @__PURE__ */ React47.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(SelectControl4, { options: fontWeightOptions }))));
|
|
1979
1954
|
};
|
|
1980
1955
|
|
|
1981
1956
|
// src/components/style-sections/typography-section/letter-spacing-field.tsx
|
|
1982
1957
|
import * as React48 from "react";
|
|
1983
1958
|
import { ControlLabel as ControlLabel22, SizeControl as SizeControl6 } from "@elementor/editor-controls";
|
|
1984
1959
|
import { Grid as Grid17 } from "@elementor/ui";
|
|
1985
|
-
import { __ as
|
|
1960
|
+
import { __ as __30 } from "@wordpress/i18n";
|
|
1986
1961
|
var LetterSpacingField = () => {
|
|
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,
|
|
1962
|
+
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, __30("Letter Spacing", "elementor"))), /* @__PURE__ */ React48.createElement(Grid17, { item: true, xs: 6 }, /* @__PURE__ */ React48.createElement(SizeControl6, null))));
|
|
1988
1963
|
};
|
|
1989
1964
|
|
|
1990
1965
|
// src/components/style-sections/typography-section/line-height-field.tsx
|
|
1991
1966
|
import * as React49 from "react";
|
|
1992
1967
|
import { ControlLabel as ControlLabel23, SizeControl as SizeControl7 } from "@elementor/editor-controls";
|
|
1993
1968
|
import { Grid as Grid18 } from "@elementor/ui";
|
|
1994
|
-
import { __ as
|
|
1969
|
+
import { __ as __31 } from "@wordpress/i18n";
|
|
1995
1970
|
var LineHeightField = () => {
|
|
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,
|
|
1971
|
+
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, __31("Line Height", "elementor"))), /* @__PURE__ */ React49.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(SizeControl7, null))));
|
|
1997
1972
|
};
|
|
1998
1973
|
|
|
1999
1974
|
// src/components/style-sections/typography-section/text-alignment-field.tsx
|
|
2000
1975
|
import * as React50 from "react";
|
|
2001
1976
|
import { ControlLabel as ControlLabel24, ToggleControl as ToggleControl8 } from "@elementor/editor-controls";
|
|
2002
1977
|
import { AlignCenterIcon, AlignJustifiedIcon, AlignLeftIcon, AlignRightIcon } from "@elementor/icons";
|
|
2003
|
-
import { Grid as Grid19 } from "@elementor/ui";
|
|
2004
|
-
import { __ as
|
|
1978
|
+
import { Grid as Grid19, withDirection as withDirection5 } from "@elementor/ui";
|
|
1979
|
+
import { __ as __32 } from "@wordpress/i18n";
|
|
1980
|
+
var StartIcon4 = withDirection5(AlignLeftIcon);
|
|
1981
|
+
var EndIcon4 = withDirection5(AlignRightIcon);
|
|
2005
1982
|
var options7 = [
|
|
2006
1983
|
{
|
|
2007
|
-
value: "
|
|
2008
|
-
label:
|
|
2009
|
-
renderContent: (
|
|
1984
|
+
value: "start",
|
|
1985
|
+
label: __32("Start", "elementor"),
|
|
1986
|
+
renderContent: () => /* @__PURE__ */ React50.createElement(RotatedIcon, { icon: StartIcon4, size: "tiny" }),
|
|
1987
|
+
showTooltip: true
|
|
2010
1988
|
},
|
|
2011
1989
|
{
|
|
2012
1990
|
value: "center",
|
|
2013
|
-
label:
|
|
2014
|
-
renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(AlignCenterIcon, { fontSize: size })
|
|
1991
|
+
label: __32("Center", "elementor"),
|
|
1992
|
+
renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(AlignCenterIcon, { fontSize: size }),
|
|
1993
|
+
showTooltip: true
|
|
2015
1994
|
},
|
|
2016
1995
|
{
|
|
2017
|
-
value: "
|
|
2018
|
-
label:
|
|
2019
|
-
renderContent: (
|
|
1996
|
+
value: "end",
|
|
1997
|
+
label: __32("End", "elementor"),
|
|
1998
|
+
renderContent: () => /* @__PURE__ */ React50.createElement(RotatedIcon, { icon: EndIcon4, size: "tiny" }),
|
|
1999
|
+
showTooltip: true
|
|
2020
2000
|
},
|
|
2021
2001
|
{
|
|
2022
2002
|
value: "justify",
|
|
2023
|
-
label:
|
|
2024
|
-
renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(AlignJustifiedIcon, { fontSize: size })
|
|
2003
|
+
label: __32("Justify", "elementor"),
|
|
2004
|
+
renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(AlignJustifiedIcon, { fontSize: size }),
|
|
2005
|
+
showTooltip: true
|
|
2025
2006
|
}
|
|
2026
2007
|
];
|
|
2027
2008
|
var TextAlignmentField = () => {
|
|
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,
|
|
2009
|
+
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, __32("Alignment", "elementor"))), /* @__PURE__ */ React50.createElement(Grid19, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React50.createElement(ToggleControl8, { options: options7 }))));
|
|
2029
2010
|
};
|
|
2030
2011
|
|
|
2031
2012
|
// src/components/style-sections/typography-section/text-color-field.tsx
|
|
2032
2013
|
import * as React51 from "react";
|
|
2033
2014
|
import { ColorControl as ColorControl2, ControlLabel as ControlLabel25 } from "@elementor/editor-controls";
|
|
2034
2015
|
import { Grid as Grid20 } from "@elementor/ui";
|
|
2035
|
-
import { __ as
|
|
2016
|
+
import { __ as __33 } from "@wordpress/i18n";
|
|
2036
2017
|
var TextColorField = () => {
|
|
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,
|
|
2018
|
+
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, __33("Text Color", "elementor"))), /* @__PURE__ */ React51.createElement(Grid20, { item: true, xs: 6 }, /* @__PURE__ */ React51.createElement(ColorControl2, null))));
|
|
2038
2019
|
};
|
|
2039
2020
|
|
|
2040
2021
|
// src/components/style-sections/typography-section/text-direction-field.tsx
|
|
@@ -2042,27 +2023,27 @@ import * as React52 from "react";
|
|
|
2042
2023
|
import { ControlLabel as ControlLabel26, ToggleControl as ToggleControl9 } from "@elementor/editor-controls";
|
|
2043
2024
|
import { TextDirectionLtrIcon, TextDirectionRtlIcon } from "@elementor/icons";
|
|
2044
2025
|
import { Grid as Grid21 } from "@elementor/ui";
|
|
2045
|
-
import { __ as
|
|
2026
|
+
import { __ as __34 } from "@wordpress/i18n";
|
|
2046
2027
|
var options8 = [
|
|
2047
2028
|
{
|
|
2048
2029
|
value: "ltr",
|
|
2049
|
-
label:
|
|
2030
|
+
label: __34("Left to Right", "elementor"),
|
|
2050
2031
|
renderContent: ({ size }) => /* @__PURE__ */ React52.createElement(TextDirectionLtrIcon, { fontSize: size })
|
|
2051
2032
|
},
|
|
2052
2033
|
{
|
|
2053
2034
|
value: "rtl",
|
|
2054
|
-
label:
|
|
2035
|
+
label: __34("Right to Left", "elementor"),
|
|
2055
2036
|
renderContent: ({ size }) => /* @__PURE__ */ React52.createElement(TextDirectionRtlIcon, { fontSize: size })
|
|
2056
2037
|
}
|
|
2057
2038
|
];
|
|
2058
2039
|
var TextDirectionField = () => {
|
|
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,
|
|
2040
|
+
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, __34("Direction", "elementor"))), /* @__PURE__ */ React52.createElement(Grid21, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React52.createElement(ToggleControl9, { options: options8 }))));
|
|
2060
2041
|
};
|
|
2061
2042
|
|
|
2062
2043
|
// src/components/style-sections/typography-section/text-stroke-field.tsx
|
|
2063
2044
|
import * as React53 from "react";
|
|
2064
2045
|
import { StrokeControl } from "@elementor/editor-controls";
|
|
2065
|
-
import { __ as
|
|
2046
|
+
import { __ as __35 } from "@wordpress/i18n";
|
|
2066
2047
|
var initTextStroke = {
|
|
2067
2048
|
$$type: "stroke",
|
|
2068
2049
|
value: {
|
|
@@ -2091,7 +2072,7 @@ var TextStrokeField = () => {
|
|
|
2091
2072
|
return /* @__PURE__ */ React53.createElement(
|
|
2092
2073
|
AddOrRemoveContent,
|
|
2093
2074
|
{
|
|
2094
|
-
label:
|
|
2075
|
+
label: __35("Text Stroke", "elementor"),
|
|
2095
2076
|
isAdded: hasTextStroke,
|
|
2096
2077
|
onAdd: addTextStroke,
|
|
2097
2078
|
onRemove: removeTextStroke
|
|
@@ -2105,7 +2086,7 @@ import * as React54 from "react";
|
|
|
2105
2086
|
import { ControlLabel as ControlLabel27 } from "@elementor/editor-controls";
|
|
2106
2087
|
import { ItalicIcon, StrikethroughIcon, UnderlineIcon } from "@elementor/icons";
|
|
2107
2088
|
import { Grid as Grid22, ToggleButton as ToggleButtonBase, ToggleButtonGroup } from "@elementor/ui";
|
|
2108
|
-
import { __ as
|
|
2089
|
+
import { __ as __36 } from "@wordpress/i18n";
|
|
2109
2090
|
var buttonSize = "tiny";
|
|
2110
2091
|
var TextStyleField = () => {
|
|
2111
2092
|
const [fontStyle, setFontStyle] = useStylesField("font-style");
|
|
@@ -2129,7 +2110,7 @@ var TextStyleField = () => {
|
|
|
2129
2110
|
value: newValue
|
|
2130
2111
|
});
|
|
2131
2112
|
};
|
|
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,
|
|
2113
|
+
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, __36("Style", "elementor"))), /* @__PURE__ */ React54.createElement(Grid22, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React54.createElement(ToggleButtonGroup, { value: formats }, /* @__PURE__ */ React54.createElement(
|
|
2133
2114
|
ToggleButton,
|
|
2134
2115
|
{
|
|
2135
2116
|
value: "italic",
|
|
@@ -2186,40 +2167,49 @@ var ToggleButton = ({ onChange, ...props }) => {
|
|
|
2186
2167
|
// src/components/style-sections/typography-section/transform-field.tsx
|
|
2187
2168
|
import * as React55 from "react";
|
|
2188
2169
|
import { ControlLabel as ControlLabel28, ToggleControl as ToggleControl10 } from "@elementor/editor-controls";
|
|
2189
|
-
import { LetterCaseIcon, LetterCaseLowerIcon, LetterCaseUpperIcon } from "@elementor/icons";
|
|
2170
|
+
import { LetterCaseIcon, LetterCaseLowerIcon, LetterCaseUpperIcon, MinusIcon as MinusIcon2 } from "@elementor/icons";
|
|
2190
2171
|
import { Grid as Grid23 } from "@elementor/ui";
|
|
2191
|
-
import { __ as
|
|
2172
|
+
import { __ as __37 } from "@wordpress/i18n";
|
|
2192
2173
|
var options9 = [
|
|
2174
|
+
{
|
|
2175
|
+
value: "none",
|
|
2176
|
+
label: __37("None", "elementor"),
|
|
2177
|
+
renderContent: ({ size }) => /* @__PURE__ */ React55.createElement(MinusIcon2, { fontSize: size }),
|
|
2178
|
+
showTooltip: true
|
|
2179
|
+
},
|
|
2193
2180
|
{
|
|
2194
2181
|
value: "capitalize",
|
|
2195
|
-
label:
|
|
2196
|
-
renderContent: ({ size }) => /* @__PURE__ */ React55.createElement(LetterCaseIcon, { fontSize: size })
|
|
2182
|
+
label: __37("Capitalize", "elementor"),
|
|
2183
|
+
renderContent: ({ size }) => /* @__PURE__ */ React55.createElement(LetterCaseIcon, { fontSize: size }),
|
|
2184
|
+
showTooltip: true
|
|
2197
2185
|
},
|
|
2198
2186
|
{
|
|
2199
2187
|
value: "uppercase",
|
|
2200
|
-
label:
|
|
2201
|
-
renderContent: ({ size }) => /* @__PURE__ */ React55.createElement(LetterCaseUpperIcon, { fontSize: size })
|
|
2188
|
+
label: __37("Uppercase", "elementor"),
|
|
2189
|
+
renderContent: ({ size }) => /* @__PURE__ */ React55.createElement(LetterCaseUpperIcon, { fontSize: size }),
|
|
2190
|
+
showTooltip: true
|
|
2202
2191
|
},
|
|
2203
2192
|
{
|
|
2204
2193
|
value: "lowercase",
|
|
2205
|
-
label:
|
|
2206
|
-
renderContent: ({ size }) => /* @__PURE__ */ React55.createElement(LetterCaseLowerIcon, { fontSize: size })
|
|
2194
|
+
label: __37("Lowercase", "elementor"),
|
|
2195
|
+
renderContent: ({ size }) => /* @__PURE__ */ React55.createElement(LetterCaseLowerIcon, { fontSize: size }),
|
|
2196
|
+
showTooltip: true
|
|
2207
2197
|
}
|
|
2208
2198
|
];
|
|
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,
|
|
2199
|
+
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, __37("Text Transform", "elementor"))), /* @__PURE__ */ React55.createElement(Grid23, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React55.createElement(ToggleControl10, { options: options9 }))));
|
|
2210
2200
|
|
|
2211
2201
|
// src/components/style-sections/typography-section/word-spacing-field.tsx
|
|
2212
2202
|
import * as React56 from "react";
|
|
2213
2203
|
import { ControlLabel as ControlLabel29, SizeControl as SizeControl8 } from "@elementor/editor-controls";
|
|
2214
2204
|
import { Grid as Grid24 } from "@elementor/ui";
|
|
2215
|
-
import { __ as
|
|
2205
|
+
import { __ as __38 } from "@wordpress/i18n";
|
|
2216
2206
|
var WordSpacingField = () => {
|
|
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,
|
|
2207
|
+
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, __38("Word Spacing", "elementor"))), /* @__PURE__ */ React56.createElement(Grid24, { item: true, xs: 6 }, /* @__PURE__ */ React56.createElement(SizeControl8, null))));
|
|
2218
2208
|
};
|
|
2219
2209
|
|
|
2220
2210
|
// src/components/style-sections/typography-section/typography-section.tsx
|
|
2221
2211
|
var TypographySection = () => {
|
|
2222
|
-
return /* @__PURE__ */ React57.createElement(
|
|
2212
|
+
return /* @__PURE__ */ React57.createElement(Stack19, { 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(Stack19, { 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))));
|
|
2223
2213
|
};
|
|
2224
2214
|
|
|
2225
2215
|
// src/components/style-tab.tsx
|
|
@@ -2227,7 +2217,7 @@ var CLASSES_PROP_KEY = "classes";
|
|
|
2227
2217
|
var StyleTab = () => {
|
|
2228
2218
|
const currentClassesProp = useCurrentClassesProp();
|
|
2229
2219
|
const [activeStyleDefId, setActiveStyleDefId] = useActiveStyleDefId(currentClassesProp);
|
|
2230
|
-
const [activeStyleState, setActiveStyleState] =
|
|
2220
|
+
const [activeStyleState, setActiveStyleState] = useState7(null);
|
|
2231
2221
|
const breakpoint = useActiveBreakpoint();
|
|
2232
2222
|
return /* @__PURE__ */ React58.createElement(ClassesPropProvider, { prop: currentClassesProp }, /* @__PURE__ */ React58.createElement(
|
|
2233
2223
|
StyleProvider,
|
|
@@ -2240,11 +2230,11 @@ var StyleTab = () => {
|
|
|
2240
2230
|
},
|
|
2241
2231
|
setMetaState: setActiveStyleState
|
|
2242
2232
|
},
|
|
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:
|
|
2233
|
+
/* @__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: __39("Layout", "elementor") }, /* @__PURE__ */ React58.createElement(LayoutSection, null)), /* @__PURE__ */ React58.createElement(Section, { title: __39("Spacing", "elementor") }, /* @__PURE__ */ React58.createElement(SpacingSection, null)), /* @__PURE__ */ React58.createElement(Section, { title: __39("Size", "elementor") }, /* @__PURE__ */ React58.createElement(SizeSection, null)), /* @__PURE__ */ React58.createElement(Section, { title: __39("Position", "elementor") }, /* @__PURE__ */ React58.createElement(PositionSection, null)), /* @__PURE__ */ React58.createElement(Section, { title: __39("Typography", "elementor") }, /* @__PURE__ */ React58.createElement(TypographySection, null)), /* @__PURE__ */ React58.createElement(Section, { title: __39("Background", "elementor") }, /* @__PURE__ */ React58.createElement(BackgroundSection, null)), /* @__PURE__ */ React58.createElement(Section, { title: __39("Border", "elementor") }, /* @__PURE__ */ React58.createElement(BorderSection, null)), /* @__PURE__ */ React58.createElement(Section, { title: __39("Effects", "elementor") }, /* @__PURE__ */ React58.createElement(EffectsSection, null))))
|
|
2244
2234
|
));
|
|
2245
2235
|
};
|
|
2246
2236
|
function useActiveStyleDefId(currentClassesProp) {
|
|
2247
|
-
const [activeStyledDefId, setActiveStyledDefId] =
|
|
2237
|
+
const [activeStyledDefId, setActiveStyledDefId] = useState7(null);
|
|
2248
2238
|
const fallback = useFirstElementStyleDef(currentClassesProp);
|
|
2249
2239
|
return [activeStyledDefId || fallback?.id || null, setActiveStyledDefId];
|
|
2250
2240
|
}
|
|
@@ -2272,7 +2262,7 @@ var EditingPanelTabs = () => {
|
|
|
2272
2262
|
return (
|
|
2273
2263
|
// When switching between elements, the local states should be reset. We are using key to rerender the tabs.
|
|
2274
2264
|
// Reference: https://react.dev/learn/preserving-and-resetting-state#resetting-a-form-with-a-key
|
|
2275
|
-
/* @__PURE__ */ React59.createElement(Fragment8, { key: element.id }, /* @__PURE__ */ React59.createElement(
|
|
2265
|
+
/* @__PURE__ */ React59.createElement(Fragment8, { key: element.id }, /* @__PURE__ */ React59.createElement(Stack20, { direction: "column", sx: { width: "100%" } }, /* @__PURE__ */ React59.createElement(Tabs, { variant: "fullWidth", indicatorColor: "secondary", textColor: "inherit", ...getTabsProps() }, /* @__PURE__ */ React59.createElement(Tab, { label: __40("General", "elementor"), ...getTabProps("settings") }), /* @__PURE__ */ React59.createElement(Tab, { label: __40("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))))
|
|
2276
2266
|
);
|
|
2277
2267
|
};
|
|
2278
2268
|
|
|
@@ -2285,7 +2275,7 @@ var EditingPanel = () => {
|
|
|
2285
2275
|
if (!element || !elementType) {
|
|
2286
2276
|
return null;
|
|
2287
2277
|
}
|
|
2288
|
-
const panelTitle =
|
|
2278
|
+
const panelTitle = __41("Edit %s", "elementor").replace("%s", elementType.title);
|
|
2289
2279
|
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))))))));
|
|
2290
2280
|
};
|
|
2291
2281
|
|
|
@@ -2298,10 +2288,10 @@ var { panel, usePanelActions, usePanelStatus } = createPanel({
|
|
|
2298
2288
|
// src/init.ts
|
|
2299
2289
|
import { injectIntoLogic } from "@elementor/editor";
|
|
2300
2290
|
import { __registerPanel as registerPanel } from "@elementor/editor-panels";
|
|
2301
|
-
import {
|
|
2291
|
+
import { blockCommand } from "@elementor/editor-v1-adapters";
|
|
2302
2292
|
|
|
2303
2293
|
// src/hooks/use-close-editor-panel.ts
|
|
2304
|
-
import { useEffect as
|
|
2294
|
+
import { useEffect as useEffect2 } from "react";
|
|
2305
2295
|
import { getSelectedElements as getSelectedElements2, isElementInContainer } from "@elementor/editor-elements";
|
|
2306
2296
|
import { __privateListenTo as listenTo, commandStartEvent } from "@elementor/editor-v1-adapters";
|
|
2307
2297
|
|
|
@@ -2319,7 +2309,7 @@ var isAtomicWidgetSelected = () => {
|
|
|
2319
2309
|
// src/hooks/use-close-editor-panel.ts
|
|
2320
2310
|
var useCloseEditorPanel = () => {
|
|
2321
2311
|
const { close } = usePanelActions();
|
|
2322
|
-
return
|
|
2312
|
+
return useEffect2(() => {
|
|
2323
2313
|
return listenTo(commandStartEvent("document/elements/delete"), (e) => {
|
|
2324
2314
|
const selectedElement = getSelectedElements2()[0];
|
|
2325
2315
|
const { container: deletedContainer } = e?.args;
|
|
@@ -2332,11 +2322,11 @@ var useCloseEditorPanel = () => {
|
|
|
2332
2322
|
};
|
|
2333
2323
|
|
|
2334
2324
|
// src/hooks/use-open-editor-panel.ts
|
|
2335
|
-
import { useEffect as
|
|
2325
|
+
import { useEffect as useEffect3 } from "react";
|
|
2336
2326
|
import { __privateListenTo as listenTo2, commandStartEvent as commandStartEvent2 } from "@elementor/editor-v1-adapters";
|
|
2337
2327
|
var useOpenEditorPanel = () => {
|
|
2338
2328
|
const { open } = usePanelActions();
|
|
2339
|
-
|
|
2329
|
+
useEffect3(() => {
|
|
2340
2330
|
return listenTo2(commandStartEvent2("panel/editor/open"), () => {
|
|
2341
2331
|
if (isAtomicWidgetSelected()) {
|
|
2342
2332
|
open();
|
|
@@ -2354,7 +2344,7 @@ var EditingPanelHooks = () => {
|
|
|
2354
2344
|
|
|
2355
2345
|
// src/dynamics/components/dynamic-selection-control.tsx
|
|
2356
2346
|
import * as React63 from "react";
|
|
2357
|
-
import { useId as
|
|
2347
|
+
import { useId as useId4 } from "react";
|
|
2358
2348
|
import { ControlLabel as ControlLabel30, useBoundProp as useBoundProp4 } from "@elementor/editor-controls";
|
|
2359
2349
|
import { DatabaseIcon, SettingsIcon, XIcon as XIcon2 } from "@elementor/icons";
|
|
2360
2350
|
import {
|
|
@@ -2365,22 +2355,23 @@ import {
|
|
|
2365
2355
|
IconButton as IconButton3,
|
|
2366
2356
|
Paper,
|
|
2367
2357
|
Popover as Popover2,
|
|
2368
|
-
Stack as
|
|
2358
|
+
Stack as Stack22,
|
|
2369
2359
|
Tab as Tab2,
|
|
2370
2360
|
TabPanel as TabPanel2,
|
|
2371
2361
|
Tabs as Tabs2,
|
|
2372
|
-
Typography as
|
|
2362
|
+
Typography as Typography5,
|
|
2373
2363
|
UnstableTag as Tag,
|
|
2374
2364
|
usePopupState as usePopupState3,
|
|
2375
2365
|
useTabs as useTabs2
|
|
2376
2366
|
} from "@elementor/ui";
|
|
2377
|
-
import { __ as
|
|
2367
|
+
import { __ as __43 } from "@wordpress/i18n";
|
|
2378
2368
|
|
|
2379
2369
|
// src/hooks/use-persist-dynamic-value.ts
|
|
2370
|
+
import { useSessionStorage as useSessionStorage2 } from "@elementor/session";
|
|
2380
2371
|
var usePersistDynamicValue = (propKey) => {
|
|
2381
2372
|
const { element } = useElement();
|
|
2382
2373
|
const prefixedKey = `dynamic/non-dynamic-values-history/${element.id}/${propKey}`;
|
|
2383
|
-
return
|
|
2374
|
+
return useSessionStorage2(prefixedKey);
|
|
2384
2375
|
};
|
|
2385
2376
|
|
|
2386
2377
|
// src/dynamics/dynamic-control.tsx
|
|
@@ -2388,10 +2379,10 @@ import * as React61 from "react";
|
|
|
2388
2379
|
import { PropKeyProvider as PropKeyProvider3, PropProvider as PropProvider3, useBoundProp as useBoundProp2 } from "@elementor/editor-controls";
|
|
2389
2380
|
|
|
2390
2381
|
// src/dynamics/hooks/use-dynamic-tag.ts
|
|
2391
|
-
import { useMemo as
|
|
2382
|
+
import { useMemo as useMemo4 } from "react";
|
|
2392
2383
|
|
|
2393
2384
|
// src/dynamics/hooks/use-prop-dynamic-tags.ts
|
|
2394
|
-
import { useMemo as
|
|
2385
|
+
import { useMemo as useMemo3 } from "react";
|
|
2395
2386
|
import { useBoundProp } from "@elementor/editor-controls";
|
|
2396
2387
|
|
|
2397
2388
|
// src/dynamics/sync/get-elementor-config.ts
|
|
@@ -2446,7 +2437,7 @@ var usePropDynamicTags = () => {
|
|
|
2446
2437
|
const propDynamicType = getDynamicPropType(propType);
|
|
2447
2438
|
categories = propDynamicType?.settings.categories || [];
|
|
2448
2439
|
}
|
|
2449
|
-
return
|
|
2440
|
+
return useMemo3(() => getDynamicTagsByCategories(categories), [categories.join()]);
|
|
2450
2441
|
};
|
|
2451
2442
|
var getDynamicTagsByCategories = (categories) => {
|
|
2452
2443
|
const dynamicTags = getAtomicDynamicTags();
|
|
@@ -2462,7 +2453,7 @@ var getDynamicTagsByCategories = (categories) => {
|
|
|
2462
2453
|
// src/dynamics/hooks/use-dynamic-tag.ts
|
|
2463
2454
|
var useDynamicTag = (tagName) => {
|
|
2464
2455
|
const dynamicTags = usePropDynamicTags();
|
|
2465
|
-
return
|
|
2456
|
+
return useMemo4(() => dynamicTags.find((tag) => tag.name === tagName) ?? null, [dynamicTags, tagName]);
|
|
2466
2457
|
};
|
|
2467
2458
|
|
|
2468
2459
|
// src/dynamics/dynamic-control.tsx
|
|
@@ -2491,7 +2482,7 @@ var DynamicControl = ({ bind, children }) => {
|
|
|
2491
2482
|
|
|
2492
2483
|
// src/dynamics/components/dynamic-selection.tsx
|
|
2493
2484
|
import * as React62 from "react";
|
|
2494
|
-
import { Fragment as Fragment9, useState as
|
|
2485
|
+
import { Fragment as Fragment9, useState as useState8 } from "react";
|
|
2495
2486
|
import { useBoundProp as useBoundProp3 } from "@elementor/editor-controls";
|
|
2496
2487
|
import { PhotoIcon, SearchIcon } from "@elementor/icons";
|
|
2497
2488
|
import {
|
|
@@ -2502,14 +2493,14 @@ import {
|
|
|
2502
2493
|
ListSubheader as ListSubheader2,
|
|
2503
2494
|
MenuItem as MenuItem2,
|
|
2504
2495
|
MenuList,
|
|
2505
|
-
Stack as
|
|
2496
|
+
Stack as Stack21,
|
|
2506
2497
|
TextField as TextField2,
|
|
2507
|
-
Typography as
|
|
2498
|
+
Typography as Typography4
|
|
2508
2499
|
} from "@elementor/ui";
|
|
2509
|
-
import { __ as
|
|
2500
|
+
import { __ as __42 } from "@wordpress/i18n";
|
|
2510
2501
|
var SIZE3 = "tiny";
|
|
2511
2502
|
var DynamicSelection = ({ onSelect }) => {
|
|
2512
|
-
const [searchValue, setSearchValue] =
|
|
2503
|
+
const [searchValue, setSearchValue] = useState8("");
|
|
2513
2504
|
const { groups: dynamicGroups } = getAtomicDynamicTags() || {};
|
|
2514
2505
|
const { value: anyValue } = useBoundProp3();
|
|
2515
2506
|
const { bind, value: dynamicValue, setValue } = useBoundProp3(dynamicPropTypeUtil);
|
|
@@ -2526,14 +2517,14 @@ var DynamicSelection = ({ onSelect }) => {
|
|
|
2526
2517
|
setValue({ name: value, settings: {} });
|
|
2527
2518
|
onSelect?.();
|
|
2528
2519
|
};
|
|
2529
|
-
return /* @__PURE__ */ React62.createElement(
|
|
2520
|
+
return /* @__PURE__ */ React62.createElement(Stack21, null, /* @__PURE__ */ React62.createElement(Box4, { px: 1.5, pb: 1 }, /* @__PURE__ */ React62.createElement(
|
|
2530
2521
|
TextField2,
|
|
2531
2522
|
{
|
|
2532
2523
|
fullWidth: true,
|
|
2533
2524
|
size: SIZE3,
|
|
2534
2525
|
value: searchValue,
|
|
2535
2526
|
onChange: handleSearch,
|
|
2536
|
-
placeholder:
|
|
2527
|
+
placeholder: __42("Search dynamic tag", "elementor"),
|
|
2537
2528
|
InputProps: {
|
|
2538
2529
|
startAdornment: /* @__PURE__ */ React62.createElement(InputAdornment, { position: "start" }, /* @__PURE__ */ React62.createElement(SearchIcon, { fontSize: SIZE3 }))
|
|
2539
2530
|
}
|
|
@@ -2551,7 +2542,7 @@ var DynamicSelection = ({ onSelect }) => {
|
|
|
2551
2542
|
},
|
|
2552
2543
|
tagLabel
|
|
2553
2544
|
);
|
|
2554
|
-
})))) : /* @__PURE__ */ React62.createElement(
|
|
2545
|
+
})))) : /* @__PURE__ */ React62.createElement(Stack21, { alignItems: "center", p: 2.5, gap: 1.5 }, /* @__PURE__ */ React62.createElement(PhotoIcon, { fontSize: "large" }), /* @__PURE__ */ React62.createElement(Typography4, { align: "center", variant: "caption", color: "text.secondary" }, __42("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React62.createElement("br", null), "\u201C", searchValue, "\u201D."), /* @__PURE__ */ React62.createElement(Typography4, { align: "center", variant: "caption", color: "text.secondary" }, /* @__PURE__ */ React62.createElement(
|
|
2555
2546
|
Link,
|
|
2556
2547
|
{
|
|
2557
2548
|
color: "secondary",
|
|
@@ -2559,8 +2550,8 @@ var DynamicSelection = ({ onSelect }) => {
|
|
|
2559
2550
|
component: "button",
|
|
2560
2551
|
onClick: () => setSearchValue("")
|
|
2561
2552
|
},
|
|
2562
|
-
|
|
2563
|
-
), "\xA0",
|
|
2553
|
+
__42("Clear the filters", "elementor")
|
|
2554
|
+
), "\xA0", __42("and try again.", "elementor")))));
|
|
2564
2555
|
};
|
|
2565
2556
|
var useFilteredOptions = (searchValue) => {
|
|
2566
2557
|
const dynamicTags = usePropDynamicTags();
|
|
@@ -2585,7 +2576,7 @@ var DynamicSelectionControl = () => {
|
|
|
2585
2576
|
const { bind, value } = useBoundProp4(dynamicPropTypeUtil);
|
|
2586
2577
|
const [propValueFromHistory] = usePersistDynamicValue(bind);
|
|
2587
2578
|
const { name: tagName = "" } = value;
|
|
2588
|
-
const selectionPopoverId =
|
|
2579
|
+
const selectionPopoverId = useId4();
|
|
2589
2580
|
const selectionPopoverState = usePopupState3({ variant: "popover", popupId: selectionPopoverId });
|
|
2590
2581
|
const dynamicTag = useDynamicTag(tagName);
|
|
2591
2582
|
const removeDynamicTag = () => {
|
|
@@ -2607,7 +2598,7 @@ var DynamicSelectionControl = () => {
|
|
|
2607
2598
|
{
|
|
2608
2599
|
size: SIZE4,
|
|
2609
2600
|
onClick: removeDynamicTag,
|
|
2610
|
-
"aria-label":
|
|
2601
|
+
"aria-label": __43("Remove dynamic value", "elementor")
|
|
2611
2602
|
},
|
|
2612
2603
|
/* @__PURE__ */ React63.createElement(XIcon2, { fontSize: SIZE4 })
|
|
2613
2604
|
))
|
|
@@ -2620,11 +2611,11 @@ var DynamicSelectionControl = () => {
|
|
|
2620
2611
|
anchorOrigin: { vertical: "bottom", horizontal: "left" },
|
|
2621
2612
|
...bindPopover2(selectionPopoverState)
|
|
2622
2613
|
},
|
|
2623
|
-
/* @__PURE__ */ React63.createElement(
|
|
2614
|
+
/* @__PURE__ */ React63.createElement(Stack22, null, /* @__PURE__ */ React63.createElement(Stack22, { 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(Typography5, { variant: "subtitle2" }, __43("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 }))
|
|
2624
2615
|
));
|
|
2625
2616
|
};
|
|
2626
2617
|
var DynamicSettingsPopover = ({ dynamicTag }) => {
|
|
2627
|
-
const popupId =
|
|
2618
|
+
const popupId = useId4();
|
|
2628
2619
|
const settingsPopupState = usePopupState3({ variant: "popover", popupId });
|
|
2629
2620
|
const hasDynamicSettings = !!dynamicTag.atomic_controls.length;
|
|
2630
2621
|
if (!hasDynamicSettings) {
|
|
@@ -2635,7 +2626,7 @@ var DynamicSettingsPopover = ({ dynamicTag }) => {
|
|
|
2635
2626
|
{
|
|
2636
2627
|
size: SIZE4,
|
|
2637
2628
|
...bindTrigger2(settingsPopupState),
|
|
2638
|
-
"aria-label":
|
|
2629
|
+
"aria-label": __43("Settings", "elementor")
|
|
2639
2630
|
},
|
|
2640
2631
|
/* @__PURE__ */ React63.createElement(SettingsIcon, { fontSize: SIZE4 })
|
|
2641
2632
|
), /* @__PURE__ */ React63.createElement(
|
|
@@ -2645,7 +2636,7 @@ var DynamicSettingsPopover = ({ dynamicTag }) => {
|
|
|
2645
2636
|
anchorOrigin: { vertical: "bottom", horizontal: "center" },
|
|
2646
2637
|
...bindPopover2(settingsPopupState)
|
|
2647
2638
|
},
|
|
2648
|
-
/* @__PURE__ */ React63.createElement(Paper, { component:
|
|
2639
|
+
/* @__PURE__ */ React63.createElement(Paper, { component: Stack22, sx: { minHeight: "300px", width: "220px" } }, /* @__PURE__ */ React63.createElement(Stack22, { direction: "row", alignItems: "center", px: 1.5, pt: 2, pb: 1 }, /* @__PURE__ */ React63.createElement(DatabaseIcon, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React63.createElement(Typography5, { 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 }))
|
|
2649
2640
|
));
|
|
2650
2641
|
};
|
|
2651
2642
|
var DynamicSettings = ({ controls }) => {
|
|
@@ -2655,7 +2646,7 @@ var DynamicSettings = ({ controls }) => {
|
|
|
2655
2646
|
return null;
|
|
2656
2647
|
}
|
|
2657
2648
|
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(
|
|
2649
|
+
return /* @__PURE__ */ React63.createElement(TabPanel2, { key: index, sx: { flexGrow: 1 }, ...getTabPanelProps(index) }, /* @__PURE__ */ React63.createElement(Stack22, { gap: 1, px: 2 }, value.items.map((item) => {
|
|
2659
2650
|
if (item.type === "control") {
|
|
2660
2651
|
return /* @__PURE__ */ React63.createElement(Control3, { key: item.value.bind, control: item.value });
|
|
2661
2652
|
}
|
|
@@ -2674,14 +2665,14 @@ var Control3 = ({ control }) => {
|
|
|
2674
2665
|
import * as React64 from "react";
|
|
2675
2666
|
import { useBoundProp as useBoundProp5 } from "@elementor/editor-controls";
|
|
2676
2667
|
import { DatabaseIcon as DatabaseIcon2 } from "@elementor/icons";
|
|
2677
|
-
import { __ as
|
|
2668
|
+
import { __ as __44 } from "@wordpress/i18n";
|
|
2678
2669
|
var usePropDynamicAction = () => {
|
|
2679
2670
|
const { propType } = useBoundProp5();
|
|
2680
2671
|
const visible = !!propType && supportsDynamic(propType);
|
|
2681
2672
|
return {
|
|
2682
2673
|
visible,
|
|
2683
2674
|
icon: DatabaseIcon2,
|
|
2684
|
-
title:
|
|
2675
|
+
title: __44("Dynamic Tags", "elementor"),
|
|
2685
2676
|
popoverContent: ({ closePopover }) => /* @__PURE__ */ React64.createElement(DynamicSelection, { onSelect: closePopover })
|
|
2686
2677
|
};
|
|
2687
2678
|
};
|
|
@@ -2710,7 +2701,7 @@ function init2() {
|
|
|
2710
2701
|
init();
|
|
2711
2702
|
}
|
|
2712
2703
|
var blockV1Panel = () => {
|
|
2713
|
-
|
|
2704
|
+
blockCommand({
|
|
2714
2705
|
command: "panel/editor/open",
|
|
2715
2706
|
condition: isAtomicWidgetSelected
|
|
2716
2707
|
});
|