@elementor/editor-editing-panel 1.10.0 → 1.11.1
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 +89 -0
- package/dist/index.js +809 -804
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +712 -711
- 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/border-section/border-radius-field.tsx +33 -14
- 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/text-stroke-field.tsx +2 -2
- 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.js
CHANGED
|
@@ -43,17 +43,14 @@ var import_editor_controls47 = require("@elementor/editor-controls");
|
|
|
43
43
|
var import_editor_controls = require("@elementor/editor-controls");
|
|
44
44
|
var { replaceControl, getControlReplacement } = (0, import_editor_controls.createControlReplacement)();
|
|
45
45
|
|
|
46
|
-
// src/components/css-class-selector.tsx
|
|
46
|
+
// src/components/css-classes/css-class-selector.tsx
|
|
47
47
|
var React7 = __toESM(require("react"));
|
|
48
|
-
var import_react6 = require("react");
|
|
49
48
|
var import_editor_elements2 = require("@elementor/editor-elements");
|
|
50
49
|
var import_editor_props = require("@elementor/editor-props");
|
|
51
|
-
var
|
|
52
|
-
var import_editor_ui = require("@elementor/editor-ui");
|
|
53
|
-
var import_icons2 = require("@elementor/icons");
|
|
50
|
+
var import_editor_styles_repository4 = require("@elementor/editor-styles-repository");
|
|
54
51
|
var import_locations = require("@elementor/locations");
|
|
55
52
|
var import_ui4 = require("@elementor/ui");
|
|
56
|
-
var
|
|
53
|
+
var import_i18n3 = require("@wordpress/i18n");
|
|
57
54
|
|
|
58
55
|
// src/contexts/classes-prop-context.tsx
|
|
59
56
|
var React = __toESM(require("react"));
|
|
@@ -132,214 +129,10 @@ function getProviderByStyleId(styleId) {
|
|
|
132
129
|
return styleProvider ?? null;
|
|
133
130
|
}
|
|
134
131
|
|
|
135
|
-
// src/components/
|
|
132
|
+
// src/components/multi-combobox.tsx
|
|
136
133
|
var React4 = __toESM(require("react"));
|
|
137
|
-
var import_icons = require("@elementor/icons");
|
|
138
|
-
var import_ui = require("@elementor/ui");
|
|
139
|
-
var import_i18n = require("@wordpress/i18n");
|
|
140
|
-
|
|
141
|
-
// src/hooks/use-unapply-class.ts
|
|
142
|
-
var import_editor_elements = require("@elementor/editor-elements");
|
|
143
|
-
var useUnapplyClass = (classId) => {
|
|
144
|
-
const { element } = useElement();
|
|
145
|
-
const { setId: setStyleId } = useStyle();
|
|
146
|
-
const classesProp = useClassesProp();
|
|
147
|
-
const classes = (0, import_editor_elements.useElementSetting)(element.id, classesProp);
|
|
148
|
-
const filteredClasses = classes?.value.filter((className) => className !== classId) ?? [];
|
|
149
|
-
return () => {
|
|
150
|
-
(0, import_editor_elements.updateElementSettings)({
|
|
151
|
-
id: element.id,
|
|
152
|
-
props: {
|
|
153
|
-
[classesProp]: {
|
|
154
|
-
$$type: "classes",
|
|
155
|
-
value: filteredClasses
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
});
|
|
159
|
-
setStyleId(null);
|
|
160
|
-
};
|
|
161
|
-
};
|
|
162
|
-
|
|
163
|
-
// src/components/css-class-menu.tsx
|
|
164
|
-
var STATES = ["hover", "focus", "active"];
|
|
165
|
-
function CssClassMenu({ styleId, isFixed = false, popupState }) {
|
|
166
|
-
const handleKeyDown = (e) => {
|
|
167
|
-
e.stopPropagation();
|
|
168
|
-
};
|
|
169
|
-
return /* @__PURE__ */ React4.createElement(
|
|
170
|
-
import_ui.Menu,
|
|
171
|
-
{
|
|
172
|
-
MenuListProps: { dense: true },
|
|
173
|
-
...(0, import_ui.bindMenu)(popupState),
|
|
174
|
-
anchorOrigin: {
|
|
175
|
-
vertical: "top",
|
|
176
|
-
horizontal: "right"
|
|
177
|
-
},
|
|
178
|
-
onKeyDown: handleKeyDown
|
|
179
|
-
},
|
|
180
|
-
!isFixed && [
|
|
181
|
-
/* @__PURE__ */ React4.createElement(UnapplyClassMenuItem, { key: "unapply-class", styleId }),
|
|
182
|
-
/* @__PURE__ */ React4.createElement(import_ui.Divider, { key: "global-class-items-divider" })
|
|
183
|
-
],
|
|
184
|
-
/* @__PURE__ */ React4.createElement(import_ui.ListSubheader, null, (0, import_i18n.__)("Add a pseudo selector", "elementor")),
|
|
185
|
-
/* @__PURE__ */ React4.createElement(StateMenuItem, { key: "normal", state: null, styleId }),
|
|
186
|
-
STATES.map((state) => {
|
|
187
|
-
return /* @__PURE__ */ React4.createElement(StateMenuItem, { key: state, state, styleId });
|
|
188
|
-
})
|
|
189
|
-
);
|
|
190
|
-
}
|
|
191
|
-
function StateMenuItem({ state, styleId, ...props }) {
|
|
192
|
-
const { id: activeId, setId: setActiveId, setMetaState: setActiveMetaState, meta } = useStyle();
|
|
193
|
-
const { state: activeState } = meta;
|
|
194
|
-
const isActive = styleId === activeId;
|
|
195
|
-
const isSelected = state === activeState && isActive;
|
|
196
|
-
return /* @__PURE__ */ React4.createElement(
|
|
197
|
-
StyledMenuItem,
|
|
198
|
-
{
|
|
199
|
-
...props,
|
|
200
|
-
selected: isSelected,
|
|
201
|
-
onClick: () => {
|
|
202
|
-
if (!isActive) {
|
|
203
|
-
setActiveId(styleId);
|
|
204
|
-
}
|
|
205
|
-
setActiveMetaState(state);
|
|
206
|
-
}
|
|
207
|
-
},
|
|
208
|
-
isSelected && /* @__PURE__ */ React4.createElement(import_ui.ListItemIcon, null, /* @__PURE__ */ React4.createElement(import_icons.CheckIcon, null)),
|
|
209
|
-
/* @__PURE__ */ React4.createElement(import_ui.ListItemText, { primary: state ? `:${state}` : "Normal" })
|
|
210
|
-
);
|
|
211
|
-
}
|
|
212
|
-
function UnapplyClassMenuItem({ styleId, ...props }) {
|
|
213
|
-
const unapplyClass = useUnapplyClass(styleId);
|
|
214
|
-
return /* @__PURE__ */ React4.createElement(StyledMenuItem, { ...props, onClick: unapplyClass }, /* @__PURE__ */ React4.createElement(import_ui.ListItemText, { primary: "Remove" }));
|
|
215
|
-
}
|
|
216
|
-
var StyledMenuItem = (0, import_ui.styled)(import_ui.MenuItem)({
|
|
217
|
-
"&:hover": {
|
|
218
|
-
color: "text.primary"
|
|
219
|
-
// Overriding global CSS from the editor.
|
|
220
|
-
}
|
|
221
|
-
});
|
|
222
|
-
|
|
223
|
-
// src/components/editable-field.tsx
|
|
224
|
-
var React5 = __toESM(require("react"));
|
|
225
134
|
var import_react4 = require("react");
|
|
226
|
-
var
|
|
227
|
-
var Context4 = (0, import_react4.createContext)(null);
|
|
228
|
-
var EditableFieldProvider = ({
|
|
229
|
-
children,
|
|
230
|
-
value,
|
|
231
|
-
onSubmit,
|
|
232
|
-
validation,
|
|
233
|
-
editable
|
|
234
|
-
}) => {
|
|
235
|
-
const [isEditing, setIsEditing] = (0, import_react4.useState)(false);
|
|
236
|
-
const [submitting, setSubmitting] = (0, import_react4.useState)(false);
|
|
237
|
-
const [error, setError] = (0, import_react4.useState)(null);
|
|
238
|
-
const openEditMode = () => {
|
|
239
|
-
setIsEditing(true);
|
|
240
|
-
};
|
|
241
|
-
const closeEditMode = () => {
|
|
242
|
-
setError(null);
|
|
243
|
-
setIsEditing(false);
|
|
244
|
-
};
|
|
245
|
-
const submit = async (newValue) => {
|
|
246
|
-
if (!error) {
|
|
247
|
-
setSubmitting(true);
|
|
248
|
-
try {
|
|
249
|
-
await onSubmit(newValue);
|
|
250
|
-
} finally {
|
|
251
|
-
setSubmitting(false);
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
closeEditMode();
|
|
255
|
-
};
|
|
256
|
-
const onChange = (event) => {
|
|
257
|
-
const { innerText: newValue } = event.target;
|
|
258
|
-
if (validation) {
|
|
259
|
-
setError(validation(newValue));
|
|
260
|
-
}
|
|
261
|
-
};
|
|
262
|
-
return /* @__PURE__ */ React5.createElement(
|
|
263
|
-
Context4.Provider,
|
|
264
|
-
{
|
|
265
|
-
value: {
|
|
266
|
-
isEditing,
|
|
267
|
-
openEditMode,
|
|
268
|
-
closeEditMode,
|
|
269
|
-
onChange,
|
|
270
|
-
value,
|
|
271
|
-
error,
|
|
272
|
-
submit,
|
|
273
|
-
editable,
|
|
274
|
-
submitting
|
|
275
|
-
}
|
|
276
|
-
},
|
|
277
|
-
children
|
|
278
|
-
);
|
|
279
|
-
};
|
|
280
|
-
var EditableField = ({ children, onClick, ...props }) => {
|
|
281
|
-
const ref = (0, import_react4.useRef)(null);
|
|
282
|
-
const { isEditing, closeEditMode, value, onChange, error, submit, editable } = useEditableField();
|
|
283
|
-
(0, import_react4.useEffect)(() => {
|
|
284
|
-
if (isEditing) {
|
|
285
|
-
ref.current?.focus();
|
|
286
|
-
selectAll();
|
|
287
|
-
}
|
|
288
|
-
}, [isEditing]);
|
|
289
|
-
const handleKeyDown = (event) => {
|
|
290
|
-
event.stopPropagation();
|
|
291
|
-
if (["Escape"].includes(event.key)) {
|
|
292
|
-
return closeEditMode();
|
|
293
|
-
}
|
|
294
|
-
if (["Enter"].includes(event.key)) {
|
|
295
|
-
event.preventDefault();
|
|
296
|
-
return submit(event.target.innerText);
|
|
297
|
-
}
|
|
298
|
-
};
|
|
299
|
-
const handleClick = (event) => {
|
|
300
|
-
if (isEditing) {
|
|
301
|
-
event.stopPropagation();
|
|
302
|
-
}
|
|
303
|
-
onClick?.(event);
|
|
304
|
-
};
|
|
305
|
-
const selectAll = () => {
|
|
306
|
-
const selection = getSelection();
|
|
307
|
-
if (!selection || !ref.current) {
|
|
308
|
-
return;
|
|
309
|
-
}
|
|
310
|
-
const range = document.createRange();
|
|
311
|
-
range.selectNodeContents(ref.current);
|
|
312
|
-
selection.removeAllRanges();
|
|
313
|
-
selection.addRange(range);
|
|
314
|
-
};
|
|
315
|
-
if (!editable) {
|
|
316
|
-
return children;
|
|
317
|
-
}
|
|
318
|
-
return /* @__PURE__ */ React5.createElement(import_ui2.Tooltip, { open: !!error, title: error, placement: "top" }, /* @__PURE__ */ React5.createElement("div", { onKeyDown: handleKeyDown, onClick: handleClick, ...props }, /* @__PURE__ */ React5.createElement(
|
|
319
|
-
"span",
|
|
320
|
-
{
|
|
321
|
-
ref,
|
|
322
|
-
role: "textbox",
|
|
323
|
-
onInput: onChange,
|
|
324
|
-
contentEditable: isEditing,
|
|
325
|
-
suppressContentEditableWarning: true,
|
|
326
|
-
onBlur: closeEditMode
|
|
327
|
-
},
|
|
328
|
-
isEditing ? value : children
|
|
329
|
-
)));
|
|
330
|
-
};
|
|
331
|
-
var useEditableField = () => {
|
|
332
|
-
const contextValue = (0, import_react4.useContext)(Context4);
|
|
333
|
-
if (!contextValue) {
|
|
334
|
-
throw new Error("useEditableField must be used within a EditableFieldProvider");
|
|
335
|
-
}
|
|
336
|
-
return contextValue;
|
|
337
|
-
};
|
|
338
|
-
|
|
339
|
-
// src/components/multi-combobox.tsx
|
|
340
|
-
var React6 = __toESM(require("react"));
|
|
341
|
-
var import_react5 = require("react");
|
|
342
|
-
var import_ui3 = require("@elementor/ui");
|
|
135
|
+
var import_ui = require("@elementor/ui");
|
|
343
136
|
function MultiCombobox({
|
|
344
137
|
actions = [],
|
|
345
138
|
selected,
|
|
@@ -349,8 +142,8 @@ function MultiCombobox({
|
|
|
349
142
|
}) {
|
|
350
143
|
const filter = useFilterOptions();
|
|
351
144
|
const { run, loading } = useActionRunner();
|
|
352
|
-
return /* @__PURE__ */
|
|
353
|
-
|
|
145
|
+
return /* @__PURE__ */ React4.createElement(
|
|
146
|
+
import_ui.Autocomplete,
|
|
354
147
|
{
|
|
355
148
|
...props,
|
|
356
149
|
freeSolo: true,
|
|
@@ -362,8 +155,8 @@ function MultiCombobox({
|
|
|
362
155
|
disabled: loading,
|
|
363
156
|
value: selected,
|
|
364
157
|
options: options10,
|
|
365
|
-
renderGroup: (params) => /* @__PURE__ */
|
|
366
|
-
renderInput: (params) => /* @__PURE__ */
|
|
158
|
+
renderGroup: (params) => /* @__PURE__ */ React4.createElement(Group, { ...params }),
|
|
159
|
+
renderInput: (params) => /* @__PURE__ */ React4.createElement(import_ui.TextField, { ...params }),
|
|
367
160
|
onChange: (_, selectedOrInputValue, reason) => {
|
|
368
161
|
const inputValue = selectedOrInputValue.find((option) => typeof option === "string");
|
|
369
162
|
const optionsAndActions = selectedOrInputValue.filter((option) => typeof option !== "string");
|
|
@@ -402,28 +195,28 @@ function MultiCombobox({
|
|
|
402
195
|
);
|
|
403
196
|
}
|
|
404
197
|
var Group = (params) => {
|
|
405
|
-
const id = `combobox-group-${(0,
|
|
406
|
-
return /* @__PURE__ */
|
|
198
|
+
const id = `combobox-group-${(0, import_react4.useId)().replace(/:/g, "_")}`;
|
|
199
|
+
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));
|
|
407
200
|
};
|
|
408
|
-
var StyledGroup = (0,
|
|
201
|
+
var StyledGroup = (0, import_ui.styled)("li")`
|
|
409
202
|
&:not( :last-of-type ) {
|
|
410
203
|
border-bottom: 1px solid ${({ theme }) => theme.palette.divider};
|
|
411
204
|
}
|
|
412
205
|
`;
|
|
413
|
-
var StyledGroupHeader = (0,
|
|
206
|
+
var StyledGroupHeader = (0, import_ui.styled)(import_ui.Box)(({ theme }) => ({
|
|
414
207
|
position: "sticky",
|
|
415
208
|
top: "-8px",
|
|
416
209
|
padding: theme.spacing(1, 2),
|
|
417
210
|
color: theme.palette.text.tertiary
|
|
418
211
|
}));
|
|
419
|
-
var StyledGroupItems = (0,
|
|
212
|
+
var StyledGroupItems = (0, import_ui.styled)("ul")`
|
|
420
213
|
padding: 0;
|
|
421
214
|
`;
|
|
422
215
|
function useFilterOptions() {
|
|
423
|
-
return (0,
|
|
216
|
+
return (0, import_react4.useState)(() => (0, import_ui.createFilterOptions)())[0];
|
|
424
217
|
}
|
|
425
218
|
function useActionRunner() {
|
|
426
|
-
const [loading, setLoading] = (0,
|
|
219
|
+
const [loading, setLoading] = (0, import_react4.useState)(false);
|
|
427
220
|
const run = async (apply, value) => {
|
|
428
221
|
setLoading(true);
|
|
429
222
|
try {
|
|
@@ -448,15 +241,233 @@ function isAction(option) {
|
|
|
448
241
|
return "apply" in option && "condition" in option;
|
|
449
242
|
}
|
|
450
243
|
|
|
451
|
-
// src/components/css-class-
|
|
244
|
+
// src/components/css-classes/css-class-item.tsx
|
|
245
|
+
var React6 = __toESM(require("react"));
|
|
246
|
+
var import_react5 = require("react");
|
|
247
|
+
var import_editor_styles_repository3 = require("@elementor/editor-styles-repository");
|
|
248
|
+
var import_editor_ui = require("@elementor/editor-ui");
|
|
249
|
+
var import_icons = require("@elementor/icons");
|
|
250
|
+
var import_ui3 = require("@elementor/ui");
|
|
251
|
+
var import_i18n2 = require("@wordpress/i18n");
|
|
252
|
+
|
|
253
|
+
// src/components/css-classes/css-class-menu.tsx
|
|
254
|
+
var React5 = __toESM(require("react"));
|
|
255
|
+
var import_editor_styles_repository2 = require("@elementor/editor-styles-repository");
|
|
256
|
+
var import_ui2 = require("@elementor/ui");
|
|
257
|
+
var import_i18n = require("@wordpress/i18n");
|
|
258
|
+
|
|
259
|
+
// src/hooks/use-unapply-class.ts
|
|
260
|
+
var import_editor_elements = require("@elementor/editor-elements");
|
|
261
|
+
var useUnapplyClass = (classId) => {
|
|
262
|
+
const { element } = useElement();
|
|
263
|
+
const { setId: setStyleId } = useStyle();
|
|
264
|
+
const classesProp = useClassesProp();
|
|
265
|
+
const classes = (0, import_editor_elements.useElementSetting)(element.id, classesProp);
|
|
266
|
+
const filteredClasses = classes?.value.filter((className) => className !== classId) ?? [];
|
|
267
|
+
return () => {
|
|
268
|
+
(0, import_editor_elements.updateElementSettings)({
|
|
269
|
+
id: element.id,
|
|
270
|
+
props: {
|
|
271
|
+
[classesProp]: {
|
|
272
|
+
$$type: "classes",
|
|
273
|
+
value: filteredClasses
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
});
|
|
277
|
+
setStyleId(null);
|
|
278
|
+
};
|
|
279
|
+
};
|
|
280
|
+
|
|
281
|
+
// src/components/css-classes/css-class-menu.tsx
|
|
282
|
+
var STATES = ["hover", "focus", "active"];
|
|
283
|
+
function CssClassMenu({ styleId, provider, popupState, handleRename, anchorEl }) {
|
|
284
|
+
const handleKeyDown = (e) => {
|
|
285
|
+
e.stopPropagation();
|
|
286
|
+
};
|
|
287
|
+
return /* @__PURE__ */ React5.createElement(
|
|
288
|
+
import_ui2.Menu,
|
|
289
|
+
{
|
|
290
|
+
MenuListProps: { dense: true },
|
|
291
|
+
...(0, import_ui2.bindMenu)(popupState),
|
|
292
|
+
anchorEl,
|
|
293
|
+
anchorOrigin: {
|
|
294
|
+
vertical: "bottom",
|
|
295
|
+
horizontal: "left"
|
|
296
|
+
},
|
|
297
|
+
transformOrigin: {
|
|
298
|
+
horizontal: "left",
|
|
299
|
+
vertical: -4
|
|
300
|
+
},
|
|
301
|
+
onKeyDown: handleKeyDown
|
|
302
|
+
},
|
|
303
|
+
getMenuItemsByProvider({ provider, styleId, handleRename, closeMenu: popupState.close }),
|
|
304
|
+
/* @__PURE__ */ React5.createElement(import_ui2.ListSubheader, { sx: { typography: "caption", color: "text.secondary", pb: 0.5, pt: 1 } }, (0, import_i18n.__)("Pseudo selector", "elementor")),
|
|
305
|
+
STATES.map((state) => {
|
|
306
|
+
return /* @__PURE__ */ React5.createElement(StateMenuItem, { key: state, state, styleId });
|
|
307
|
+
})
|
|
308
|
+
);
|
|
309
|
+
}
|
|
310
|
+
function getMenuItemsByProvider({
|
|
311
|
+
provider,
|
|
312
|
+
styleId,
|
|
313
|
+
handleRename,
|
|
314
|
+
closeMenu
|
|
315
|
+
}) {
|
|
316
|
+
const providerInstance = import_editor_styles_repository2.stylesRepository.getProviderByKey(provider);
|
|
317
|
+
const providerActions = providerInstance?.actions;
|
|
318
|
+
const [canUpdate, canDelete] = [providerActions?.update, providerActions?.delete];
|
|
319
|
+
const actions = [
|
|
320
|
+
canUpdate && /* @__PURE__ */ React5.createElement(RenameClassMenuItem, { key: "rename-class", handleRename, closeMenu }),
|
|
321
|
+
canDelete && /* @__PURE__ */ React5.createElement(UnapplyClassMenuItem, { key: "unapply-class", styleId })
|
|
322
|
+
].filter(Boolean);
|
|
323
|
+
if (actions.length) {
|
|
324
|
+
actions.unshift(
|
|
325
|
+
/* @__PURE__ */ React5.createElement(
|
|
326
|
+
import_ui2.ListSubheader,
|
|
327
|
+
{
|
|
328
|
+
key: "provider-label",
|
|
329
|
+
sx: { typography: "caption", color: "text.secondary", pb: 0.5, pt: 1 }
|
|
330
|
+
},
|
|
331
|
+
providerInstance?.labels?.singular
|
|
332
|
+
)
|
|
333
|
+
);
|
|
334
|
+
actions.push(/* @__PURE__ */ React5.createElement(import_ui2.Divider, { key: "provider-actions-divider" }));
|
|
335
|
+
}
|
|
336
|
+
return actions;
|
|
337
|
+
}
|
|
338
|
+
function StateMenuItem({ state, styleId, ...props }) {
|
|
339
|
+
const { id: activeId, setId: setActiveId, setMetaState: setActiveMetaState, meta } = useStyle();
|
|
340
|
+
const { state: activeState } = meta;
|
|
341
|
+
const isActive = styleId === activeId;
|
|
342
|
+
const isSelected = state === activeState && isActive;
|
|
343
|
+
return /* @__PURE__ */ React5.createElement(
|
|
344
|
+
StyledMenuItem,
|
|
345
|
+
{
|
|
346
|
+
...props,
|
|
347
|
+
selected: isSelected,
|
|
348
|
+
sx: { textTransform: "capitalize" },
|
|
349
|
+
onClick: () => {
|
|
350
|
+
if (!isActive) {
|
|
351
|
+
setActiveId(styleId);
|
|
352
|
+
}
|
|
353
|
+
setActiveMetaState(state);
|
|
354
|
+
}
|
|
355
|
+
},
|
|
356
|
+
state
|
|
357
|
+
);
|
|
358
|
+
}
|
|
359
|
+
function UnapplyClassMenuItem({ styleId, ...props }) {
|
|
360
|
+
const unapplyClass = useUnapplyClass(styleId);
|
|
361
|
+
return /* @__PURE__ */ React5.createElement(StyledMenuItem, { ...props, onClick: unapplyClass }, (0, import_i18n.__)("Remove", "elementor"));
|
|
362
|
+
}
|
|
363
|
+
function RenameClassMenuItem({
|
|
364
|
+
handleRename,
|
|
365
|
+
closeMenu,
|
|
366
|
+
...props
|
|
367
|
+
}) {
|
|
368
|
+
return /* @__PURE__ */ React5.createElement(
|
|
369
|
+
StyledMenuItem,
|
|
370
|
+
{
|
|
371
|
+
...props,
|
|
372
|
+
onClick: () => {
|
|
373
|
+
closeMenu();
|
|
374
|
+
handleRename();
|
|
375
|
+
}
|
|
376
|
+
},
|
|
377
|
+
(0, import_i18n.__)("Rename", "elementor")
|
|
378
|
+
);
|
|
379
|
+
}
|
|
380
|
+
var StyledMenuItem = ({ ...props }) => /* @__PURE__ */ React5.createElement(import_ui2.MenuItem, { ...props, sx: { ...props.sx ?? {}, typography: "caption", color: "text.primary" } });
|
|
381
|
+
|
|
382
|
+
// src/components/css-classes/css-class-item.tsx
|
|
383
|
+
var CHIP_SIZE = "tiny";
|
|
384
|
+
function CssClassItem({
|
|
385
|
+
id,
|
|
386
|
+
label,
|
|
387
|
+
provider,
|
|
388
|
+
isActive,
|
|
389
|
+
color: colorProp,
|
|
390
|
+
chipProps,
|
|
391
|
+
onClickActive,
|
|
392
|
+
renameLabel
|
|
393
|
+
}) {
|
|
394
|
+
const { meta } = useStyle();
|
|
395
|
+
const popupState = (0, import_ui3.usePopupState)({ variant: "popover" });
|
|
396
|
+
const [chipRef, setChipRef] = (0, import_react5.useState)(null);
|
|
397
|
+
const { onDelete, ...chipGroupProps } = chipProps;
|
|
398
|
+
const {
|
|
399
|
+
ref,
|
|
400
|
+
isEditing,
|
|
401
|
+
openEditMode,
|
|
402
|
+
error,
|
|
403
|
+
getProps: getEditableProps
|
|
404
|
+
} = (0, import_editor_ui.useEditable)({
|
|
405
|
+
value: label,
|
|
406
|
+
onSubmit: renameLabel,
|
|
407
|
+
validation: validateLabel
|
|
408
|
+
});
|
|
409
|
+
const color = error ? "error" : colorProp;
|
|
410
|
+
const providerActions = import_editor_styles_repository3.stylesRepository.getProviderByKey(provider)?.actions;
|
|
411
|
+
const allowRename = Boolean(providerActions?.update);
|
|
412
|
+
return /* @__PURE__ */ React6.createElement(React6.Fragment, null, /* @__PURE__ */ React6.createElement(import_ui3.UnstableChipGroup, { ref: setChipRef, ...chipGroupProps, "aria-label": `Edit ${label}`, role: "group" }, /* @__PURE__ */ React6.createElement(
|
|
413
|
+
import_ui3.Chip,
|
|
414
|
+
{
|
|
415
|
+
size: CHIP_SIZE,
|
|
416
|
+
label: isEditing ? /* @__PURE__ */ React6.createElement(import_editor_ui.EditableField, { ref, error, ...getEditableProps() }) : /* @__PURE__ */ React6.createElement(import_editor_ui.EllipsisWithTooltip, { maxWidth: "10ch", title: label, as: "div" }),
|
|
417
|
+
variant: isActive && !meta.state ? "filled" : "standard",
|
|
418
|
+
color,
|
|
419
|
+
onClick: () => {
|
|
420
|
+
if (isActive && allowRename) {
|
|
421
|
+
openEditMode();
|
|
422
|
+
}
|
|
423
|
+
onClickActive(id);
|
|
424
|
+
},
|
|
425
|
+
"aria-pressed": isActive,
|
|
426
|
+
sx: {
|
|
427
|
+
"&.Mui-focusVisible": {
|
|
428
|
+
boxShadow: "none !important"
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
), !isEditing && /* @__PURE__ */ React6.createElement(
|
|
433
|
+
import_ui3.Chip,
|
|
434
|
+
{
|
|
435
|
+
size: CHIP_SIZE,
|
|
436
|
+
label: /* @__PURE__ */ React6.createElement(import_ui3.Stack, { direction: "row", gap: 0.5, alignItems: "center" }, isActive && meta.state && /* @__PURE__ */ React6.createElement(import_ui3.Typography, { variant: "inherit" }, meta.state), /* @__PURE__ */ React6.createElement(import_icons.DotsVerticalIcon, { fontSize: "inherit" })),
|
|
437
|
+
variant: "filled",
|
|
438
|
+
color,
|
|
439
|
+
...(0, import_ui3.bindTrigger)(popupState),
|
|
440
|
+
"aria-label": (0, import_i18n2.__)("Open CSS Class Menu", "elementor")
|
|
441
|
+
}
|
|
442
|
+
)), /* @__PURE__ */ React6.createElement(
|
|
443
|
+
CssClassMenu,
|
|
444
|
+
{
|
|
445
|
+
styleId: id,
|
|
446
|
+
popupState,
|
|
447
|
+
provider,
|
|
448
|
+
handleRename: openEditMode,
|
|
449
|
+
anchorEl: chipRef
|
|
450
|
+
}
|
|
451
|
+
));
|
|
452
|
+
}
|
|
453
|
+
var validateLabel = (newLabel) => {
|
|
454
|
+
if (!import_editor_styles_repository3.stylesRepository.isLabelValid(newLabel)) {
|
|
455
|
+
return (0, import_i18n2.__)("Format is not valid", "elementor");
|
|
456
|
+
}
|
|
457
|
+
if (import_editor_styles_repository3.stylesRepository.isLabelExist(newLabel)) {
|
|
458
|
+
return (0, import_i18n2.__)("Existing name", "elementor");
|
|
459
|
+
}
|
|
460
|
+
};
|
|
461
|
+
|
|
462
|
+
// src/components/css-classes/css-class-selector.tsx
|
|
452
463
|
var ID = "elementor-css-class-selector";
|
|
453
464
|
var TAGS_LIMIT = 8;
|
|
454
465
|
var EMPTY_OPTION = {
|
|
455
|
-
label: (0,
|
|
466
|
+
label: (0, import_i18n3.__)("local", "elementor"),
|
|
456
467
|
value: "",
|
|
457
468
|
fixed: true,
|
|
458
469
|
color: "primary",
|
|
459
|
-
provider:
|
|
470
|
+
provider: import_editor_styles_repository4.ELEMENTS_STYLES_PROVIDER_KEY
|
|
460
471
|
};
|
|
461
472
|
var { Slot: ClassSelectorActionsSlot, inject: injectIntoClassSelectorActions } = (0, import_locations.createLocation)();
|
|
462
473
|
function CssClassSelector() {
|
|
@@ -467,7 +478,7 @@ function CssClassSelector() {
|
|
|
467
478
|
const handleApply = useHandleApply(appliedIds, setAppliedIds);
|
|
468
479
|
const applied = useAppliedOptions(options10, appliedIds);
|
|
469
480
|
const active = applied.find((option) => option.value === activeId) ?? EMPTY_OPTION;
|
|
470
|
-
return /* @__PURE__ */ React7.createElement(import_ui4.Stack, { gap: 1, p: 2 }, /* @__PURE__ */ React7.createElement(import_ui4.Stack, { direction: "row", gap: 1, alignItems: "center", justifyContent: "space-between" }, /* @__PURE__ */ React7.createElement(import_ui4.Typography, { component: "label", variant: "caption", htmlFor: ID }, (0,
|
|
481
|
+
return /* @__PURE__ */ React7.createElement(import_ui4.Stack, { gap: 1, p: 2 }, /* @__PURE__ */ React7.createElement(import_ui4.Stack, { direction: "row", gap: 1, alignItems: "center", justifyContent: "space-between" }, /* @__PURE__ */ React7.createElement(import_ui4.Typography, { component: "label", variant: "caption", htmlFor: ID }, (0, import_i18n3.__)("CSS Classes", "elementor")), /* @__PURE__ */ React7.createElement(import_ui4.Stack, { direction: "row", gap: 1 }, /* @__PURE__ */ React7.createElement(ClassSelectorActionsSlot, null))), /* @__PURE__ */ React7.createElement(
|
|
471
482
|
MultiCombobox,
|
|
472
483
|
{
|
|
473
484
|
id: ID,
|
|
@@ -481,128 +492,40 @@ function CssClassSelector() {
|
|
|
481
492
|
renderTags: (values, getTagProps) => values.map((value, index) => {
|
|
482
493
|
const chipProps = getTagProps({ index });
|
|
483
494
|
const isActive = value.value === active?.value;
|
|
484
|
-
const isElementsProvider = value.provider ===
|
|
495
|
+
const isElementsProvider = value.provider === import_editor_styles_repository4.ELEMENTS_STYLES_PROVIDER_KEY;
|
|
485
496
|
const renameLabel = (newLabel) => {
|
|
486
497
|
return updateClassByProvider(value.provider, { label: newLabel, id: value.value });
|
|
487
498
|
};
|
|
488
499
|
return /* @__PURE__ */ React7.createElement(
|
|
489
|
-
|
|
500
|
+
CssClassItem,
|
|
490
501
|
{
|
|
491
502
|
key: chipProps.key,
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
)
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
CssClassItem,
|
|
502
|
-
{
|
|
503
|
-
label: value.label,
|
|
504
|
-
id: value.value,
|
|
505
|
-
isActive,
|
|
506
|
-
isFixed: value.fixed,
|
|
507
|
-
color: isActive && value.color ? value.color : "default",
|
|
508
|
-
chipProps,
|
|
509
|
-
onClickActive: () => setActiveId(isElementsProvider ? null : value.value)
|
|
510
|
-
}
|
|
511
|
-
)
|
|
503
|
+
label: value.label,
|
|
504
|
+
provider: value.provider,
|
|
505
|
+
id: value.value,
|
|
506
|
+
isActive,
|
|
507
|
+
color: isActive && value.color ? value.color : "default",
|
|
508
|
+
chipProps,
|
|
509
|
+
onClickActive: () => setActiveId(isElementsProvider ? null : value.value),
|
|
510
|
+
renameLabel
|
|
511
|
+
}
|
|
512
512
|
);
|
|
513
513
|
})
|
|
514
514
|
}
|
|
515
515
|
));
|
|
516
516
|
}
|
|
517
|
-
var CHIP_SIZE = "tiny";
|
|
518
|
-
function CssClassItem({
|
|
519
|
-
id,
|
|
520
|
-
label,
|
|
521
|
-
isActive,
|
|
522
|
-
isFixed = false,
|
|
523
|
-
color: colorProp,
|
|
524
|
-
chipProps,
|
|
525
|
-
onClickActive
|
|
526
|
-
}) {
|
|
527
|
-
const { meta } = useStyle();
|
|
528
|
-
const popupId = (0, import_react6.useId)().replace(/:/g, "_");
|
|
529
|
-
const popupState = (0, import_ui4.usePopupState)({ variant: "popover", popupId });
|
|
530
|
-
const chipRef = (0, import_react6.useRef)(null);
|
|
531
|
-
const { onDelete, ...chipGroupProps } = chipProps;
|
|
532
|
-
const { isEditing, openEditMode, error, submitting } = useEditableField();
|
|
533
|
-
const color = error ? "error" : colorProp;
|
|
534
|
-
return /* @__PURE__ */ React7.createElement(React7.Fragment, null, /* @__PURE__ */ React7.createElement(import_ui4.UnstableChipGroup, { ref: chipRef, ...chipGroupProps, "aria-label": `Edit ${label}`, role: "group" }, /* @__PURE__ */ React7.createElement(
|
|
535
|
-
import_ui4.Chip,
|
|
536
|
-
{
|
|
537
|
-
disabled: submitting,
|
|
538
|
-
size: CHIP_SIZE,
|
|
539
|
-
label: /* @__PURE__ */ React7.createElement(
|
|
540
|
-
EditableField,
|
|
541
|
-
{
|
|
542
|
-
onDoubleClick: () => {
|
|
543
|
-
if (!isActive) {
|
|
544
|
-
openEditMode();
|
|
545
|
-
}
|
|
546
|
-
},
|
|
547
|
-
onClick: () => {
|
|
548
|
-
if (isActive) {
|
|
549
|
-
openEditMode();
|
|
550
|
-
}
|
|
551
|
-
}
|
|
552
|
-
},
|
|
553
|
-
/* @__PURE__ */ React7.createElement(import_editor_ui.EllipsisWithTooltip, { maxWidth: "10ch", title: label })
|
|
554
|
-
),
|
|
555
|
-
variant: isActive && !meta.state ? "filled" : "standard",
|
|
556
|
-
color,
|
|
557
|
-
onClick: () => onClickActive(id),
|
|
558
|
-
"aria-pressed": isActive,
|
|
559
|
-
sx: {
|
|
560
|
-
"&.Mui-focusVisible": {
|
|
561
|
-
boxShadow: "none !important"
|
|
562
|
-
}
|
|
563
|
-
}
|
|
564
|
-
}
|
|
565
|
-
), !isEditing && /* @__PURE__ */ React7.createElement(
|
|
566
|
-
import_ui4.Chip,
|
|
567
|
-
{
|
|
568
|
-
disabled: submitting,
|
|
569
|
-
size: CHIP_SIZE,
|
|
570
|
-
label: /* @__PURE__ */ React7.createElement(import_ui4.Stack, { direction: "row", gap: 0.5, alignItems: "center" }, isActive && meta.state && /* @__PURE__ */ React7.createElement(import_ui4.Typography, { variant: "inherit" }, meta.state), /* @__PURE__ */ React7.createElement(import_icons2.DotsVerticalIcon, { fontSize: "inherit" })),
|
|
571
|
-
variant: "filled",
|
|
572
|
-
color,
|
|
573
|
-
...(0, import_ui4.bindTrigger)(popupState),
|
|
574
|
-
"aria-label": (0, import_i18n2.__)("Open CSS Class Menu", "elementor")
|
|
575
|
-
}
|
|
576
|
-
)), /* @__PURE__ */ React7.createElement(CssClassMenu, { styleId: id, popupState, isFixed }));
|
|
577
|
-
}
|
|
578
517
|
var updateClassByProvider = (provider, data) => {
|
|
579
|
-
const providerInstance =
|
|
518
|
+
const providerInstance = import_editor_styles_repository4.stylesRepository.getProviderByKey(provider);
|
|
580
519
|
if (!providerInstance) {
|
|
581
520
|
return;
|
|
582
521
|
}
|
|
583
522
|
return providerInstance.actions.update?.(data);
|
|
584
523
|
};
|
|
585
|
-
var VALID_SELECTOR_REGEX = /^[a-zA-Z0-9_-]+$/;
|
|
586
|
-
var renameValidation = (newLabel, options10) => {
|
|
587
|
-
if (isNameExist(newLabel, options10)) {
|
|
588
|
-
return (0, import_i18n2.__)("Existing name", "elementor");
|
|
589
|
-
}
|
|
590
|
-
if (isCharactersNotSupported(newLabel)) {
|
|
591
|
-
return (0, import_i18n2.__)("Format is not valid", "elementor");
|
|
592
|
-
}
|
|
593
|
-
};
|
|
594
|
-
var isNameExist = (newLabel, options10) => {
|
|
595
|
-
if (!options10?.length) {
|
|
596
|
-
return false;
|
|
597
|
-
}
|
|
598
|
-
return options10.some((option) => option.label.toLowerCase() === newLabel.toLowerCase());
|
|
599
|
-
};
|
|
600
|
-
var isCharactersNotSupported = (newLabel) => !VALID_SELECTOR_REGEX.test(newLabel);
|
|
601
524
|
function useOptions() {
|
|
602
525
|
const { element } = useElement();
|
|
603
526
|
const isProviderEditable = (provider) => !!provider.actions.updateProps;
|
|
604
|
-
return (0,
|
|
605
|
-
const isElements = provider.key ===
|
|
527
|
+
return (0, import_editor_styles_repository4.useProviders)().filter(isProviderEditable).flatMap((provider) => {
|
|
528
|
+
const isElements = provider.key === import_editor_styles_repository4.ELEMENTS_STYLES_PROVIDER_KEY;
|
|
606
529
|
const styleDefs = provider.actions.get({ elementId: element.id });
|
|
607
530
|
if (isElements && styleDefs.length === 0) {
|
|
608
531
|
return [EMPTY_OPTION];
|
|
@@ -623,17 +546,17 @@ function useCreateActions({
|
|
|
623
546
|
pushAppliedId,
|
|
624
547
|
setActiveId
|
|
625
548
|
}) {
|
|
626
|
-
return (0,
|
|
549
|
+
return (0, import_editor_styles_repository4.useCreateActionsByProvider)().map(([provider, create]) => {
|
|
627
550
|
return {
|
|
628
551
|
// translators: %s is the label of the new class.
|
|
629
|
-
label: (value) => (0,
|
|
630
|
-
apply:
|
|
631
|
-
const
|
|
632
|
-
if (!
|
|
552
|
+
label: (value) => (0, import_i18n3.__)('Create new "%s"', "elementor").replace("%s", value),
|
|
553
|
+
apply: (label) => {
|
|
554
|
+
const createdId = create(label);
|
|
555
|
+
if (!createdId) {
|
|
633
556
|
return;
|
|
634
557
|
}
|
|
635
|
-
pushAppliedId(
|
|
636
|
-
setActiveId(
|
|
558
|
+
pushAppliedId(createdId);
|
|
559
|
+
setActiveId(createdId);
|
|
637
560
|
},
|
|
638
561
|
condition: (options10, inputValue) => {
|
|
639
562
|
const isUniqueLabel = !options10.some(
|
|
@@ -642,14 +565,14 @@ function useCreateActions({
|
|
|
642
565
|
return !!inputValue && isUniqueLabel;
|
|
643
566
|
},
|
|
644
567
|
// translators: %s is the singular label of css class provider (e.g "Global CSS Class").
|
|
645
|
-
group: (0,
|
|
568
|
+
group: (0, import_i18n3.__)("Create New %s", "elementor").replace("%s", provider.labels?.singular ?? "")
|
|
646
569
|
};
|
|
647
570
|
});
|
|
648
571
|
}
|
|
649
572
|
function useAppliedOptions(options10, appliedIds) {
|
|
650
573
|
const applied = options10.filter((option) => appliedIds.includes(option.value));
|
|
651
574
|
const hasElementsProviderStyleApplied = applied.some(
|
|
652
|
-
(option) => option.provider ===
|
|
575
|
+
(option) => option.provider === import_editor_styles_repository4.ELEMENTS_STYLES_PROVIDER_KEY
|
|
653
576
|
);
|
|
654
577
|
if (!hasElementsProviderStyleApplied) {
|
|
655
578
|
applied.unshift(EMPTY_OPTION);
|
|
@@ -707,17 +630,17 @@ var React60 = __toESM(require("react"));
|
|
|
707
630
|
var import_editor_controls41 = require("@elementor/editor-controls");
|
|
708
631
|
var import_editor_elements7 = require("@elementor/editor-elements");
|
|
709
632
|
var import_editor_panels = require("@elementor/editor-panels");
|
|
710
|
-
var
|
|
711
|
-
var
|
|
712
|
-
var
|
|
633
|
+
var import_session4 = require("@elementor/session");
|
|
634
|
+
var import_ui51 = require("@elementor/ui");
|
|
635
|
+
var import_i18n41 = require("@wordpress/i18n");
|
|
713
636
|
|
|
714
637
|
// src/controls-actions.ts
|
|
715
638
|
var import_menus = require("@elementor/menus");
|
|
716
639
|
|
|
717
640
|
// src/popover-action.tsx
|
|
718
641
|
var React8 = __toESM(require("react"));
|
|
719
|
-
var
|
|
720
|
-
var
|
|
642
|
+
var import_react6 = require("react");
|
|
643
|
+
var import_icons2 = require("@elementor/icons");
|
|
721
644
|
var import_ui5 = require("@elementor/ui");
|
|
722
645
|
var SIZE = "tiny";
|
|
723
646
|
function PopoverAction({
|
|
@@ -726,7 +649,7 @@ function PopoverAction({
|
|
|
726
649
|
icon: Icon,
|
|
727
650
|
popoverContent: PopoverContent
|
|
728
651
|
}) {
|
|
729
|
-
const id = (0,
|
|
652
|
+
const id = (0, import_react6.useId)();
|
|
730
653
|
const popupState = (0, import_ui5.usePopupState)({
|
|
731
654
|
variant: "popover",
|
|
732
655
|
popupId: `elementor-popover-action-${id}`
|
|
@@ -745,7 +668,7 @@ function PopoverAction({
|
|
|
745
668
|
},
|
|
746
669
|
...(0, import_ui5.bindPopover)(popupState)
|
|
747
670
|
},
|
|
748
|
-
/* @__PURE__ */ React8.createElement(import_ui5.Stack, { 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(import_ui5.Typography, { variant: "subtitle2" }, title), /* @__PURE__ */ React8.createElement(import_ui5.IconButton, { sx: { ml: "auto" }, size: SIZE, onClick: popupState.close }, /* @__PURE__ */ React8.createElement(
|
|
671
|
+
/* @__PURE__ */ React8.createElement(import_ui5.Stack, { 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(import_ui5.Typography, { variant: "subtitle2" }, title), /* @__PURE__ */ React8.createElement(import_ui5.IconButton, { sx: { ml: "auto" }, size: SIZE, onClick: popupState.close }, /* @__PURE__ */ React8.createElement(import_icons2.XIcon, { fontSize: SIZE }))),
|
|
749
672
|
/* @__PURE__ */ React8.createElement(PopoverContent, { closePopover: popupState.close })
|
|
750
673
|
));
|
|
751
674
|
}
|
|
@@ -766,9 +689,9 @@ function EditorPanelErrorFallback() {
|
|
|
766
689
|
|
|
767
690
|
// src/components/editing-panel-tabs.tsx
|
|
768
691
|
var React59 = __toESM(require("react"));
|
|
769
|
-
var
|
|
770
|
-
var
|
|
771
|
-
var
|
|
692
|
+
var import_react14 = require("react");
|
|
693
|
+
var import_ui50 = require("@elementor/ui");
|
|
694
|
+
var import_i18n40 = require("@wordpress/i18n");
|
|
772
695
|
|
|
773
696
|
// src/components/settings-tab.tsx
|
|
774
697
|
var React15 = __toESM(require("react"));
|
|
@@ -782,7 +705,8 @@ var React10 = __toESM(require("react"));
|
|
|
782
705
|
var import_editor_controls2 = require("@elementor/editor-controls");
|
|
783
706
|
var controlTypes = {
|
|
784
707
|
image: { component: import_editor_controls2.ImageControl, layout: "full" },
|
|
785
|
-
|
|
708
|
+
"svg-media": { component: import_editor_controls2.SvgMediaControl, layout: "full" },
|
|
709
|
+
text: { component: import_editor_controls2.TextControl, layout: "full" },
|
|
786
710
|
textarea: { component: import_editor_controls2.TextAreaControl, layout: "full" },
|
|
787
711
|
size: { component: import_editor_controls2.SizeControl, layout: "two-columns" },
|
|
788
712
|
select: { component: import_editor_controls2.SelectControl, layout: "two-columns" },
|
|
@@ -850,8 +774,12 @@ var createTopLevelOjectType = ({ schema }) => {
|
|
|
850
774
|
var SettingsField = ({ bind, children }) => {
|
|
851
775
|
const { element, elementType } = useElement();
|
|
852
776
|
const settingsValue = (0, import_editor_elements3.useElementSetting)(element.id, bind);
|
|
777
|
+
const linkValue = (0, import_editor_elements3.useElementSetting)(element.id, "link");
|
|
853
778
|
const value = { [bind]: settingsValue };
|
|
854
779
|
const propType = createTopLevelOjectType({ schema: elementType.propsSchema });
|
|
780
|
+
if (bind === "tag" && linkValue?.value && "div-block" === elementType.key) {
|
|
781
|
+
return null;
|
|
782
|
+
}
|
|
855
783
|
const setValue = (newValue) => {
|
|
856
784
|
(0, import_editor_elements3.updateElementSettings)({
|
|
857
785
|
id: element.id,
|
|
@@ -863,13 +791,13 @@ var SettingsField = ({ bind, children }) => {
|
|
|
863
791
|
|
|
864
792
|
// src/components/section.tsx
|
|
865
793
|
var React13 = __toESM(require("react"));
|
|
866
|
-
var
|
|
794
|
+
var import_react7 = require("react");
|
|
867
795
|
var import_ui9 = require("@elementor/ui");
|
|
868
796
|
|
|
869
797
|
// src/components/collapse-icon.tsx
|
|
870
|
-
var
|
|
798
|
+
var import_icons3 = require("@elementor/icons");
|
|
871
799
|
var import_ui8 = require("@elementor/ui");
|
|
872
|
-
var CollapseIcon = (0, import_ui8.styled)(
|
|
800
|
+
var CollapseIcon = (0, import_ui8.styled)(import_icons3.ChevronDownIcon, {
|
|
873
801
|
shouldForwardProp: (prop) => prop !== "open"
|
|
874
802
|
})(({ theme, open }) => ({
|
|
875
803
|
transform: open ? "rotate(180deg)" : "rotate(0deg)",
|
|
@@ -880,8 +808,8 @@ var CollapseIcon = (0, import_ui8.styled)(import_icons4.ChevronDownIcon, {
|
|
|
880
808
|
|
|
881
809
|
// src/components/section.tsx
|
|
882
810
|
function Section({ title, children, defaultExpanded = false }) {
|
|
883
|
-
const [isOpen, setIsOpen] = (0,
|
|
884
|
-
const id = (0,
|
|
811
|
+
const [isOpen, setIsOpen] = (0, import_react7.useState)(!!defaultExpanded);
|
|
812
|
+
const id = (0, import_react7.useId)();
|
|
885
813
|
const labelId = `label-${id}`;
|
|
886
814
|
const contentId = `content-${id}`;
|
|
887
815
|
return /* @__PURE__ */ React13.createElement(React13.Fragment, null, /* @__PURE__ */ React13.createElement(
|
|
@@ -930,12 +858,12 @@ var Control2 = ({ control }) => {
|
|
|
930
858
|
|
|
931
859
|
// src/components/style-tab.tsx
|
|
932
860
|
var React58 = __toESM(require("react"));
|
|
933
|
-
var
|
|
861
|
+
var import_react13 = require("react");
|
|
934
862
|
var import_editor_elements6 = require("@elementor/editor-elements");
|
|
935
863
|
var import_editor_responsive = require("@elementor/editor-responsive");
|
|
936
|
-
var
|
|
937
|
-
var
|
|
938
|
-
var
|
|
864
|
+
var import_session3 = require("@elementor/session");
|
|
865
|
+
var import_ui49 = require("@elementor/ui");
|
|
866
|
+
var import_i18n39 = require("@wordpress/i18n");
|
|
939
867
|
|
|
940
868
|
// src/components/style-sections/background-section/background-section.tsx
|
|
941
869
|
var React17 = __toESM(require("react"));
|
|
@@ -947,16 +875,20 @@ var import_editor_controls5 = require("@elementor/editor-controls");
|
|
|
947
875
|
var import_editor_styles2 = require("@elementor/editor-styles");
|
|
948
876
|
|
|
949
877
|
// src/hooks/use-styles-fields.ts
|
|
950
|
-
var
|
|
878
|
+
var import_react8 = require("react");
|
|
951
879
|
var import_editor_elements4 = require("@elementor/editor-elements");
|
|
952
880
|
var import_editor_styles = require("@elementor/editor-styles");
|
|
953
|
-
var
|
|
881
|
+
var import_editor_styles_repository5 = require("@elementor/editor-styles-repository");
|
|
882
|
+
var import_editor_v1_adapters = require("@elementor/editor-v1-adapters");
|
|
883
|
+
var import_i18n4 = require("@wordpress/i18n");
|
|
954
884
|
function useStylesFields(propNames) {
|
|
955
885
|
const { element } = useElement();
|
|
956
886
|
const { id, meta, provider } = useStyle();
|
|
957
887
|
const classesProp = useClassesProp();
|
|
958
|
-
const
|
|
959
|
-
|
|
888
|
+
const undoableUpdateStyle = useUndoableUpdateStyle();
|
|
889
|
+
const undoableCreateElementStyle = useUndoableCreateElementStyle();
|
|
890
|
+
const [, reRender] = (0, import_react8.useReducer)((p) => !p, false);
|
|
891
|
+
(0, import_react8.useEffect)(() => provider?.subscribe(reRender), [provider]);
|
|
960
892
|
const value = getProps({
|
|
961
893
|
elementId: element.id,
|
|
962
894
|
styleId: id,
|
|
@@ -966,19 +898,21 @@ function useStylesFields(propNames) {
|
|
|
966
898
|
});
|
|
967
899
|
const setValue = (props) => {
|
|
968
900
|
if (id === null) {
|
|
969
|
-
(
|
|
901
|
+
undoableCreateElementStyle({
|
|
970
902
|
elementId: element.id,
|
|
971
903
|
classesProp,
|
|
972
904
|
meta,
|
|
973
|
-
props
|
|
974
|
-
label: (0, import_i18n3.__)("local", "elementor")
|
|
905
|
+
props
|
|
975
906
|
});
|
|
976
907
|
return;
|
|
977
908
|
}
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
909
|
+
undoableUpdateStyle({
|
|
910
|
+
elementId: element.id,
|
|
911
|
+
styleId: id,
|
|
912
|
+
provider,
|
|
913
|
+
meta,
|
|
914
|
+
props
|
|
915
|
+
});
|
|
982
916
|
};
|
|
983
917
|
return [value, setValue];
|
|
984
918
|
}
|
|
@@ -995,6 +929,75 @@ function getProps({ styleId, elementId, provider, meta, propNames }) {
|
|
|
995
929
|
propNames.map((key) => [key, variant?.props[key] ?? null])
|
|
996
930
|
);
|
|
997
931
|
}
|
|
932
|
+
function useUndoableCreateElementStyle() {
|
|
933
|
+
return (0, import_react8.useMemo)(() => {
|
|
934
|
+
return (0, import_editor_v1_adapters.undoable)(
|
|
935
|
+
{
|
|
936
|
+
do: (payload) => {
|
|
937
|
+
return (0, import_editor_elements4.createElementStyle)({
|
|
938
|
+
...payload,
|
|
939
|
+
label: import_editor_styles_repository5.LOCAL_STYLES_RESERVED_LABEL
|
|
940
|
+
});
|
|
941
|
+
},
|
|
942
|
+
undo: ({ elementId }, styleId) => {
|
|
943
|
+
(0, import_editor_elements4.deleteElementStyle)(elementId, styleId);
|
|
944
|
+
},
|
|
945
|
+
redo: (payload, styleId) => {
|
|
946
|
+
return (0, import_editor_elements4.createElementStyle)({
|
|
947
|
+
...payload,
|
|
948
|
+
styleId,
|
|
949
|
+
label: import_editor_styles_repository5.LOCAL_STYLES_RESERVED_LABEL
|
|
950
|
+
});
|
|
951
|
+
}
|
|
952
|
+
},
|
|
953
|
+
{
|
|
954
|
+
title: ({ elementId }) => (0, import_editor_elements4.getElementLabel)(elementId),
|
|
955
|
+
subtitle: (0, import_i18n4.__)("Style edited", "elementor")
|
|
956
|
+
}
|
|
957
|
+
);
|
|
958
|
+
}, []);
|
|
959
|
+
}
|
|
960
|
+
function useUndoableUpdateStyle() {
|
|
961
|
+
return (0, import_react8.useMemo)(() => {
|
|
962
|
+
return (0, import_editor_v1_adapters.undoable)(
|
|
963
|
+
{
|
|
964
|
+
do: ({ elementId, styleId, provider, meta, props }) => {
|
|
965
|
+
if (!provider.actions.updateProps) {
|
|
966
|
+
throw new StylesProviderCannotUpdatePropsError({
|
|
967
|
+
context: { providerKey: provider.key }
|
|
968
|
+
});
|
|
969
|
+
}
|
|
970
|
+
const style = provider.actions.getById(styleId, { elementId });
|
|
971
|
+
const prevProps = getCurrentProps(style, meta);
|
|
972
|
+
provider.actions.updateProps(
|
|
973
|
+
{
|
|
974
|
+
id: styleId,
|
|
975
|
+
meta,
|
|
976
|
+
props
|
|
977
|
+
},
|
|
978
|
+
{ elementId }
|
|
979
|
+
);
|
|
980
|
+
return prevProps;
|
|
981
|
+
},
|
|
982
|
+
undo: ({ elementId, styleId, meta, provider }, prevProps) => {
|
|
983
|
+
provider.actions.updateProps?.({ id: styleId, meta, props: prevProps }, { elementId });
|
|
984
|
+
}
|
|
985
|
+
},
|
|
986
|
+
{
|
|
987
|
+
title: ({ elementId }) => (0, import_editor_elements4.getElementLabel)(elementId),
|
|
988
|
+
subtitle: (0, import_i18n4.__)("Style edited", "elementor")
|
|
989
|
+
}
|
|
990
|
+
);
|
|
991
|
+
}, []);
|
|
992
|
+
}
|
|
993
|
+
function getCurrentProps(style, meta) {
|
|
994
|
+
if (!style) {
|
|
995
|
+
return {};
|
|
996
|
+
}
|
|
997
|
+
const variant = (0, import_editor_styles.getVariantByMeta)(style, meta);
|
|
998
|
+
const props = variant?.props ?? {};
|
|
999
|
+
return structuredClone(props);
|
|
1000
|
+
}
|
|
998
1001
|
|
|
999
1002
|
// src/hooks/use-styles-field.ts
|
|
1000
1003
|
function useStylesField(propName) {
|
|
@@ -1026,17 +1029,17 @@ var BackgroundSection = () => {
|
|
|
1026
1029
|
};
|
|
1027
1030
|
|
|
1028
1031
|
// src/components/style-sections/border-section/border-section.tsx
|
|
1029
|
-
var
|
|
1030
|
-
var
|
|
1032
|
+
var React25 = __toESM(require("react"));
|
|
1033
|
+
var import_ui17 = require("@elementor/ui");
|
|
1031
1034
|
|
|
1032
1035
|
// src/components/style-sections/border-section/border-field.tsx
|
|
1033
1036
|
var React22 = __toESM(require("react"));
|
|
1034
|
-
var
|
|
1037
|
+
var import_i18n8 = require("@wordpress/i18n");
|
|
1035
1038
|
|
|
1036
1039
|
// src/components/add-or-remove-content.tsx
|
|
1037
1040
|
var React18 = __toESM(require("react"));
|
|
1038
1041
|
var import_editor_controls7 = require("@elementor/editor-controls");
|
|
1039
|
-
var
|
|
1042
|
+
var import_icons4 = require("@elementor/icons");
|
|
1040
1043
|
var import_ui11 = require("@elementor/ui");
|
|
1041
1044
|
var SIZE2 = "tiny";
|
|
1042
1045
|
var AddOrRemoveContent = ({ isAdded, label, onAdd, onRemove, children }) => {
|
|
@@ -1050,7 +1053,7 @@ var AddOrRemoveContent = ({ isAdded, label, onAdd, onRemove, children }) => {
|
|
|
1050
1053
|
}
|
|
1051
1054
|
},
|
|
1052
1055
|
/* @__PURE__ */ React18.createElement(import_editor_controls7.ControlLabel, null, label),
|
|
1053
|
-
isAdded ? /* @__PURE__ */ React18.createElement(import_ui11.IconButton, { size: SIZE2, onClick: onRemove, "aria-label": "Remove" }, /* @__PURE__ */ React18.createElement(
|
|
1056
|
+
isAdded ? /* @__PURE__ */ React18.createElement(import_ui11.IconButton, { size: SIZE2, onClick: onRemove, "aria-label": "Remove" }, /* @__PURE__ */ React18.createElement(import_icons4.MinusIcon, { fontSize: SIZE2 })) : /* @__PURE__ */ React18.createElement(import_ui11.IconButton, { size: SIZE2, onClick: onAdd, "aria-label": "Add" }, /* @__PURE__ */ React18.createElement(import_icons4.PlusIcon, { fontSize: SIZE2 }))
|
|
1054
1057
|
), /* @__PURE__ */ React18.createElement(import_ui11.Collapse, { in: isAdded, unmountOnExit: true }, /* @__PURE__ */ React18.createElement(import_ui11.Stack, { gap: 1.5 }, children)));
|
|
1055
1058
|
};
|
|
1056
1059
|
|
|
@@ -1058,56 +1061,56 @@ var AddOrRemoveContent = ({ isAdded, label, onAdd, onRemove, children }) => {
|
|
|
1058
1061
|
var React19 = __toESM(require("react"));
|
|
1059
1062
|
var import_editor_controls8 = require("@elementor/editor-controls");
|
|
1060
1063
|
var import_ui12 = require("@elementor/ui");
|
|
1061
|
-
var
|
|
1064
|
+
var import_i18n5 = require("@wordpress/i18n");
|
|
1062
1065
|
var BorderColorField = () => {
|
|
1063
|
-
return /* @__PURE__ */ React19.createElement(StylesField, { bind: "border-color" }, /* @__PURE__ */ React19.createElement(import_ui12.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React19.createElement(import_ui12.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React19.createElement(import_editor_controls8.ControlLabel, null, (0,
|
|
1066
|
+
return /* @__PURE__ */ React19.createElement(StylesField, { bind: "border-color" }, /* @__PURE__ */ React19.createElement(import_ui12.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React19.createElement(import_ui12.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React19.createElement(import_editor_controls8.ControlLabel, null, (0, import_i18n5.__)("Border Color", "elementor"))), /* @__PURE__ */ React19.createElement(import_ui12.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React19.createElement(import_editor_controls8.ColorControl, null))));
|
|
1064
1067
|
};
|
|
1065
1068
|
|
|
1066
1069
|
// src/components/style-sections/border-section/border-style-field.tsx
|
|
1067
1070
|
var React20 = __toESM(require("react"));
|
|
1068
1071
|
var import_editor_controls9 = require("@elementor/editor-controls");
|
|
1069
1072
|
var import_ui13 = require("@elementor/ui");
|
|
1070
|
-
var
|
|
1073
|
+
var import_i18n6 = require("@wordpress/i18n");
|
|
1071
1074
|
var borderStyles = [
|
|
1072
|
-
{ value: "none", label: (0,
|
|
1073
|
-
{ value: "solid", label: (0,
|
|
1074
|
-
{ value: "dashed", label: (0,
|
|
1075
|
-
{ value: "dotted", label: (0,
|
|
1076
|
-
{ value: "double", label: (0,
|
|
1077
|
-
{ value: "groove", label: (0,
|
|
1078
|
-
{ value: "ridge", label: (0,
|
|
1079
|
-
{ value: "inset", label: (0,
|
|
1080
|
-
{ value: "outset", label: (0,
|
|
1075
|
+
{ value: "none", label: (0, import_i18n6.__)("None", "elementor") },
|
|
1076
|
+
{ value: "solid", label: (0, import_i18n6.__)("Solid", "elementor") },
|
|
1077
|
+
{ value: "dashed", label: (0, import_i18n6.__)("Dashed", "elementor") },
|
|
1078
|
+
{ value: "dotted", label: (0, import_i18n6.__)("Dotted", "elementor") },
|
|
1079
|
+
{ value: "double", label: (0, import_i18n6.__)("Double", "elementor") },
|
|
1080
|
+
{ value: "groove", label: (0, import_i18n6.__)("Groove", "elementor") },
|
|
1081
|
+
{ value: "ridge", label: (0, import_i18n6.__)("Ridge", "elementor") },
|
|
1082
|
+
{ value: "inset", label: (0, import_i18n6.__)("Inset", "elementor") },
|
|
1083
|
+
{ value: "outset", label: (0, import_i18n6.__)("Outset", "elementor") }
|
|
1081
1084
|
];
|
|
1082
1085
|
var BorderStyleField = () => {
|
|
1083
|
-
return /* @__PURE__ */ React20.createElement(StylesField, { bind: "border-style" }, /* @__PURE__ */ React20.createElement(import_ui13.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React20.createElement(import_ui13.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React20.createElement(import_editor_controls9.ControlLabel, null, (0,
|
|
1086
|
+
return /* @__PURE__ */ React20.createElement(StylesField, { bind: "border-style" }, /* @__PURE__ */ React20.createElement(import_ui13.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React20.createElement(import_ui13.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React20.createElement(import_editor_controls9.ControlLabel, null, (0, import_i18n6.__)("Border Type", "elementor"))), /* @__PURE__ */ React20.createElement(import_ui13.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React20.createElement(import_editor_controls9.SelectControl, { options: borderStyles }))));
|
|
1084
1087
|
};
|
|
1085
1088
|
|
|
1086
1089
|
// src/components/style-sections/border-section/border-width-field.tsx
|
|
1087
1090
|
var React21 = __toESM(require("react"));
|
|
1088
1091
|
var import_editor_controls10 = require("@elementor/editor-controls");
|
|
1089
1092
|
var import_editor_props2 = require("@elementor/editor-props");
|
|
1090
|
-
var
|
|
1091
|
-
var
|
|
1093
|
+
var import_icons5 = require("@elementor/icons");
|
|
1094
|
+
var import_i18n7 = require("@wordpress/i18n");
|
|
1092
1095
|
var edges = [
|
|
1093
1096
|
{
|
|
1094
|
-
label: (0,
|
|
1095
|
-
icon: /* @__PURE__ */ React21.createElement(
|
|
1097
|
+
label: (0, import_i18n7.__)("Top", "elementor"),
|
|
1098
|
+
icon: /* @__PURE__ */ React21.createElement(import_icons5.SideTopIcon, { fontSize: "tiny" }),
|
|
1096
1099
|
bind: "top"
|
|
1097
1100
|
},
|
|
1098
1101
|
{
|
|
1099
|
-
label: (0,
|
|
1100
|
-
icon: /* @__PURE__ */ React21.createElement(
|
|
1102
|
+
label: (0, import_i18n7.__)("Right", "elementor"),
|
|
1103
|
+
icon: /* @__PURE__ */ React21.createElement(import_icons5.SideRightIcon, { fontSize: "tiny" }),
|
|
1101
1104
|
bind: "right"
|
|
1102
1105
|
},
|
|
1103
1106
|
{
|
|
1104
|
-
label: (0,
|
|
1105
|
-
icon: /* @__PURE__ */ React21.createElement(
|
|
1107
|
+
label: (0, import_i18n7.__)("Bottom", "elementor"),
|
|
1108
|
+
icon: /* @__PURE__ */ React21.createElement(import_icons5.SideBottomIcon, { fontSize: "tiny" }),
|
|
1106
1109
|
bind: "bottom"
|
|
1107
1110
|
},
|
|
1108
1111
|
{
|
|
1109
|
-
label: (0,
|
|
1110
|
-
icon: /* @__PURE__ */ React21.createElement(
|
|
1112
|
+
label: (0, import_i18n7.__)("Left", "elementor"),
|
|
1113
|
+
icon: /* @__PURE__ */ React21.createElement(import_icons5.SideLeftIcon, { fontSize: "tiny" }),
|
|
1111
1114
|
bind: "left"
|
|
1112
1115
|
}
|
|
1113
1116
|
];
|
|
@@ -1116,8 +1119,8 @@ var BorderWidthField = () => {
|
|
|
1116
1119
|
import_editor_controls10.EqualUnequalSizesControl,
|
|
1117
1120
|
{
|
|
1118
1121
|
items: edges,
|
|
1119
|
-
label: (0,
|
|
1120
|
-
icon: /* @__PURE__ */ React21.createElement(
|
|
1122
|
+
label: (0, import_i18n7.__)("Border Width", "elementor"),
|
|
1123
|
+
icon: /* @__PURE__ */ React21.createElement(import_icons5.SideAllIcon, { fontSize: "tiny" }),
|
|
1121
1124
|
multiSizePropTypeUtil: import_editor_props2.borderWidthPropTypeUtil
|
|
1122
1125
|
}
|
|
1123
1126
|
));
|
|
@@ -1145,7 +1148,7 @@ var BorderField = () => {
|
|
|
1145
1148
|
return /* @__PURE__ */ React22.createElement(
|
|
1146
1149
|
AddOrRemoveContent,
|
|
1147
1150
|
{
|
|
1148
|
-
label: (0,
|
|
1151
|
+
label: (0, import_i18n8.__)("Border", "elementor"),
|
|
1149
1152
|
isAdded: hasBorder,
|
|
1150
1153
|
onAdd: addBorder,
|
|
1151
1154
|
onRemove: removeBorder
|
|
@@ -1157,72 +1160,125 @@ var BorderField = () => {
|
|
|
1157
1160
|
};
|
|
1158
1161
|
|
|
1159
1162
|
// src/components/style-sections/border-section/border-radius-field.tsx
|
|
1160
|
-
var
|
|
1163
|
+
var React24 = __toESM(require("react"));
|
|
1161
1164
|
var import_editor_controls11 = require("@elementor/editor-controls");
|
|
1162
1165
|
var import_editor_props3 = require("@elementor/editor-props");
|
|
1163
|
-
var
|
|
1164
|
-
var
|
|
1165
|
-
var
|
|
1166
|
+
var import_icons6 = require("@elementor/icons");
|
|
1167
|
+
var import_ui16 = require("@elementor/ui");
|
|
1168
|
+
var import_i18n9 = require("@wordpress/i18n");
|
|
1169
|
+
|
|
1170
|
+
// src/hooks/use-direction.ts
|
|
1171
|
+
var import_ui14 = require("@elementor/ui");
|
|
1172
|
+
function useDirection() {
|
|
1173
|
+
const theme = (0, import_ui14.useTheme)(), extendedWindow = window;
|
|
1174
|
+
const isUiRtl = "rtl" === theme.direction, isSiteRtl = !!extendedWindow.elementorFrontend?.config?.is_rtl;
|
|
1175
|
+
return { isSiteRtl, isUiRtl };
|
|
1176
|
+
}
|
|
1177
|
+
|
|
1178
|
+
// src/components/style-sections/layout-section/utils/rotated-icon.tsx
|
|
1179
|
+
var React23 = __toESM(require("react"));
|
|
1180
|
+
var import_react9 = require("react");
|
|
1181
|
+
var import_ui15 = require("@elementor/ui");
|
|
1182
|
+
var CLOCKWISE_ANGLES = {
|
|
1183
|
+
row: 0,
|
|
1184
|
+
column: 90,
|
|
1185
|
+
"row-reverse": 180,
|
|
1186
|
+
"column-reverse": 270
|
|
1187
|
+
};
|
|
1188
|
+
var COUNTER_CLOCKWISE_ANGLES = {
|
|
1189
|
+
row: 0,
|
|
1190
|
+
column: -90,
|
|
1191
|
+
"row-reverse": -180,
|
|
1192
|
+
"column-reverse": -270
|
|
1193
|
+
};
|
|
1194
|
+
var RotatedIcon = ({ icon: Icon, size, isClockwise = true, offset = 0 }) => {
|
|
1195
|
+
const rotate = (0, import_react9.useRef)(useGetTargetAngle(isClockwise, offset));
|
|
1196
|
+
rotate.current = useGetTargetAngle(isClockwise, offset, rotate);
|
|
1197
|
+
return /* @__PURE__ */ React23.createElement(Icon, { fontSize: size, sx: { transition: ".3s", rotate: `${rotate.current}deg` } });
|
|
1198
|
+
};
|
|
1199
|
+
var useGetTargetAngle = (isClockwise, offset, existingRef) => {
|
|
1200
|
+
const [direction] = useStylesField("flex-direction");
|
|
1201
|
+
const isRtl = "rtl" === (0, import_ui15.useTheme)().direction;
|
|
1202
|
+
const rotationMultiplier = isRtl ? -1 : 1;
|
|
1203
|
+
const angleMap = isClockwise ? CLOCKWISE_ANGLES : COUNTER_CLOCKWISE_ANGLES;
|
|
1204
|
+
const currentAngle = existingRef ? existingRef.current * rotationMultiplier : angleMap[direction?.value || "row"] + offset;
|
|
1205
|
+
const targetAngle = angleMap[direction?.value || "row"] + offset;
|
|
1206
|
+
const diffToTargetAngle = (targetAngle - currentAngle + 360) % 360;
|
|
1207
|
+
const formattedDiff = (diffToTargetAngle + 180) % 360 - 180;
|
|
1208
|
+
return (currentAngle + formattedDiff) * rotationMultiplier;
|
|
1209
|
+
};
|
|
1210
|
+
|
|
1211
|
+
// src/components/style-sections/border-section/border-radius-field.tsx
|
|
1212
|
+
var StartStartIcon = (0, import_ui16.withDirection)(import_icons6.RadiusTopLeftIcon);
|
|
1213
|
+
var StartEndIcon = (0, import_ui16.withDirection)(import_icons6.RadiusTopRightIcon);
|
|
1214
|
+
var EndStartIcon = (0, import_ui16.withDirection)(import_icons6.RadiusBottomLeftIcon);
|
|
1215
|
+
var EndEndIcon = (0, import_ui16.withDirection)(import_icons6.RadiusBottomRightIcon);
|
|
1216
|
+
var getStartStartLabel = (isSiteRtl) => isSiteRtl ? (0, import_i18n9.__)("Top Right", "elementor") : (0, import_i18n9.__)("Top Left", "elementor");
|
|
1217
|
+
var getStartEndLabel = (isSiteRtl) => isSiteRtl ? (0, import_i18n9.__)("Top Left", "elementor") : (0, import_i18n9.__)("Top Right", "elementor");
|
|
1218
|
+
var getEndStartLabel = (isSiteRtl) => isSiteRtl ? (0, import_i18n9.__)("Bottom Right", "elementor") : (0, import_i18n9.__)("Bottom Left", "elementor");
|
|
1219
|
+
var getEndEndLabel = (isSiteRtl) => isSiteRtl ? (0, import_i18n9.__)("Bottom Left", "elementor") : (0, import_i18n9.__)("Bottom Right", "elementor");
|
|
1220
|
+
var getCorners = (isSiteRtl) => [
|
|
1166
1221
|
{
|
|
1167
|
-
label: (
|
|
1168
|
-
icon: /* @__PURE__ */
|
|
1169
|
-
bind: "
|
|
1222
|
+
label: getStartStartLabel(isSiteRtl),
|
|
1223
|
+
icon: /* @__PURE__ */ React24.createElement(RotatedIcon, { icon: StartStartIcon, size: "tiny" }),
|
|
1224
|
+
bind: "start-start"
|
|
1170
1225
|
},
|
|
1171
1226
|
{
|
|
1172
|
-
label: (
|
|
1173
|
-
icon: /* @__PURE__ */
|
|
1174
|
-
bind: "
|
|
1227
|
+
label: getStartEndLabel(isSiteRtl),
|
|
1228
|
+
icon: /* @__PURE__ */ React24.createElement(RotatedIcon, { icon: StartEndIcon, size: "tiny" }),
|
|
1229
|
+
bind: "start-end"
|
|
1175
1230
|
},
|
|
1176
1231
|
{
|
|
1177
|
-
label: (
|
|
1178
|
-
icon: /* @__PURE__ */
|
|
1179
|
-
bind: "
|
|
1232
|
+
label: getEndEndLabel(isSiteRtl),
|
|
1233
|
+
icon: /* @__PURE__ */ React24.createElement(RotatedIcon, { icon: EndEndIcon, size: "tiny" }),
|
|
1234
|
+
bind: "end-end"
|
|
1180
1235
|
},
|
|
1181
1236
|
{
|
|
1182
|
-
label: (
|
|
1183
|
-
icon: /* @__PURE__ */
|
|
1184
|
-
bind: "
|
|
1237
|
+
label: getEndStartLabel(isSiteRtl),
|
|
1238
|
+
icon: /* @__PURE__ */ React24.createElement(RotatedIcon, { icon: EndStartIcon, size: "tiny" }),
|
|
1239
|
+
bind: "end-start"
|
|
1185
1240
|
}
|
|
1186
1241
|
];
|
|
1187
1242
|
var BorderRadiusField = () => {
|
|
1188
|
-
|
|
1243
|
+
const { isSiteRtl } = useDirection();
|
|
1244
|
+
return /* @__PURE__ */ React24.createElement(StylesField, { bind: "border-radius" }, /* @__PURE__ */ React24.createElement(
|
|
1189
1245
|
import_editor_controls11.EqualUnequalSizesControl,
|
|
1190
1246
|
{
|
|
1191
|
-
items:
|
|
1192
|
-
label: (0,
|
|
1193
|
-
icon: /* @__PURE__ */
|
|
1247
|
+
items: getCorners(isSiteRtl),
|
|
1248
|
+
label: (0, import_i18n9.__)("Border Radius", "elementor"),
|
|
1249
|
+
icon: /* @__PURE__ */ React24.createElement(import_icons6.BorderCornersIcon, { fontSize: "tiny" }),
|
|
1194
1250
|
multiSizePropTypeUtil: import_editor_props3.borderRadiusPropTypeUtil
|
|
1195
1251
|
}
|
|
1196
1252
|
));
|
|
1197
1253
|
};
|
|
1198
1254
|
|
|
1199
1255
|
// src/components/style-sections/border-section/border-section.tsx
|
|
1200
|
-
var BorderSection = () => /* @__PURE__ */
|
|
1256
|
+
var BorderSection = () => /* @__PURE__ */ React25.createElement(import_ui17.Stack, { gap: 1.5 }, /* @__PURE__ */ React25.createElement(BorderRadiusField, null), /* @__PURE__ */ React25.createElement(import_ui17.Divider, null), /* @__PURE__ */ React25.createElement(BorderField, null));
|
|
1201
1257
|
|
|
1202
1258
|
// src/components/style-sections/effects-section/effects-section.tsx
|
|
1203
|
-
var
|
|
1259
|
+
var React26 = __toESM(require("react"));
|
|
1204
1260
|
var import_editor_controls12 = require("@elementor/editor-controls");
|
|
1205
|
-
var
|
|
1261
|
+
var import_ui18 = require("@elementor/ui");
|
|
1206
1262
|
var EffectsSection = () => {
|
|
1207
|
-
return /* @__PURE__ */
|
|
1263
|
+
return /* @__PURE__ */ React26.createElement(import_ui18.Stack, { gap: 1.5 }, /* @__PURE__ */ React26.createElement(StylesField, { bind: "box-shadow" }, /* @__PURE__ */ React26.createElement(import_editor_controls12.BoxShadowRepeaterControl, null)));
|
|
1208
1264
|
};
|
|
1209
1265
|
|
|
1210
1266
|
// src/components/style-sections/layout-section/layout-section.tsx
|
|
1211
1267
|
var React36 = __toESM(require("react"));
|
|
1212
1268
|
var import_editor_controls22 = require("@elementor/editor-controls");
|
|
1213
1269
|
var import_editor_elements5 = require("@elementor/editor-elements");
|
|
1214
|
-
var
|
|
1215
|
-
var
|
|
1270
|
+
var import_ui28 = require("@elementor/ui");
|
|
1271
|
+
var import_i18n19 = require("@wordpress/i18n");
|
|
1216
1272
|
|
|
1217
1273
|
// src/hooks/use-computed-style.ts
|
|
1218
|
-
var
|
|
1274
|
+
var import_editor_v1_adapters2 = require("@elementor/editor-v1-adapters");
|
|
1219
1275
|
function useComputedStyle(elementId) {
|
|
1220
|
-
return (0,
|
|
1276
|
+
return (0, import_editor_v1_adapters2.__privateUseListenTo)(
|
|
1221
1277
|
[
|
|
1222
|
-
(0,
|
|
1223
|
-
(0,
|
|
1224
|
-
(0,
|
|
1225
|
-
(0,
|
|
1278
|
+
(0, import_editor_v1_adapters2.windowEvent)("elementor/device-mode/change"),
|
|
1279
|
+
(0, import_editor_v1_adapters2.commandEndEvent)("document/elements/reset-style"),
|
|
1280
|
+
(0, import_editor_v1_adapters2.commandEndEvent)("document/elements/settings"),
|
|
1281
|
+
(0, import_editor_v1_adapters2.commandEndEvent)("document/elements/paste-style")
|
|
1226
1282
|
],
|
|
1227
1283
|
() => {
|
|
1228
1284
|
if (!elementId) {
|
|
@@ -1242,54 +1298,11 @@ function useComputedStyle(elementId) {
|
|
|
1242
1298
|
// src/components/style-sections/layout-section/align-items-field.tsx
|
|
1243
1299
|
var React27 = __toESM(require("react"));
|
|
1244
1300
|
var import_editor_controls13 = require("@elementor/editor-controls");
|
|
1245
|
-
var
|
|
1246
|
-
var
|
|
1247
|
-
var
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
var import_ui16 = require("@elementor/ui");
|
|
1251
|
-
function useDirection() {
|
|
1252
|
-
const theme = (0, import_ui16.useTheme)(), extendedWindow = window;
|
|
1253
|
-
const isUiRtl = "rtl" === theme.direction, isSiteRtl = !!extendedWindow.elementorFrontend?.config?.is_rtl;
|
|
1254
|
-
return { isSiteRtl, isUiRtl };
|
|
1255
|
-
}
|
|
1256
|
-
|
|
1257
|
-
// src/components/style-sections/layout-section/utils/rotated-icon.tsx
|
|
1258
|
-
var React26 = __toESM(require("react"));
|
|
1259
|
-
var import_react10 = require("react");
|
|
1260
|
-
var import_ui17 = require("@elementor/ui");
|
|
1261
|
-
var CLOCKWISE_ANGLES = {
|
|
1262
|
-
row: 0,
|
|
1263
|
-
column: 90,
|
|
1264
|
-
"row-reverse": 180,
|
|
1265
|
-
"column-reverse": 270
|
|
1266
|
-
};
|
|
1267
|
-
var COUNTER_CLOCKWISE_ANGLES = {
|
|
1268
|
-
row: 0,
|
|
1269
|
-
column: -90,
|
|
1270
|
-
"row-reverse": -180,
|
|
1271
|
-
"column-reverse": -270
|
|
1272
|
-
};
|
|
1273
|
-
var RotatedIcon = ({ icon: Icon, size, isClockwise = true, offset = 0 }) => {
|
|
1274
|
-
const rotate = (0, import_react10.useRef)(useGetTargetAngle(isClockwise, offset));
|
|
1275
|
-
rotate.current = useGetTargetAngle(isClockwise, offset, rotate);
|
|
1276
|
-
return /* @__PURE__ */ React26.createElement(Icon, { fontSize: size, sx: { transition: ".3s", rotate: `${rotate.current}deg` } });
|
|
1277
|
-
};
|
|
1278
|
-
var useGetTargetAngle = (isClockwise, offset, existingRef) => {
|
|
1279
|
-
const [direction] = useStylesField("flex-direction");
|
|
1280
|
-
const isRtl = "rtl" === (0, import_ui17.useTheme)().direction;
|
|
1281
|
-
const rotationMultiplier = isRtl ? -1 : 1;
|
|
1282
|
-
const angleMap = isClockwise ? CLOCKWISE_ANGLES : COUNTER_CLOCKWISE_ANGLES;
|
|
1283
|
-
const currentAngle = existingRef ? existingRef.current * rotationMultiplier : angleMap[direction?.value || "row"] + offset;
|
|
1284
|
-
const targetAngle = angleMap[direction?.value || "row"] + offset;
|
|
1285
|
-
const diffToTargetAngle = (targetAngle - currentAngle + 360) % 360;
|
|
1286
|
-
const formattedDiff = (diffToTargetAngle + 180) % 360 - 180;
|
|
1287
|
-
return (currentAngle + formattedDiff) * rotationMultiplier;
|
|
1288
|
-
};
|
|
1289
|
-
|
|
1290
|
-
// src/components/style-sections/layout-section/align-items-field.tsx
|
|
1291
|
-
var StartIcon = (0, import_ui18.withDirection)(import_icons8.LayoutAlignLeftIcon);
|
|
1292
|
-
var EndIcon = (0, import_ui18.withDirection)(import_icons8.LayoutAlignRightIcon);
|
|
1301
|
+
var import_icons7 = require("@elementor/icons");
|
|
1302
|
+
var import_ui19 = require("@elementor/ui");
|
|
1303
|
+
var import_i18n10 = require("@wordpress/i18n");
|
|
1304
|
+
var StartIcon = (0, import_ui19.withDirection)(import_icons7.LayoutAlignLeftIcon);
|
|
1305
|
+
var EndIcon = (0, import_ui19.withDirection)(import_icons7.LayoutAlignRightIcon);
|
|
1293
1306
|
var iconProps = {
|
|
1294
1307
|
isClockwise: false,
|
|
1295
1308
|
offset: 90
|
|
@@ -1297,42 +1310,42 @@ var iconProps = {
|
|
|
1297
1310
|
var options = [
|
|
1298
1311
|
{
|
|
1299
1312
|
value: "start",
|
|
1300
|
-
label: (0,
|
|
1313
|
+
label: (0, import_i18n10.__)("Start", "elementor"),
|
|
1301
1314
|
renderContent: ({ size }) => /* @__PURE__ */ React27.createElement(RotatedIcon, { icon: StartIcon, size, ...iconProps }),
|
|
1302
1315
|
showTooltip: true
|
|
1303
1316
|
},
|
|
1304
1317
|
{
|
|
1305
1318
|
value: "center",
|
|
1306
|
-
label: (0,
|
|
1307
|
-
renderContent: ({ size }) => /* @__PURE__ */ React27.createElement(RotatedIcon, { icon:
|
|
1319
|
+
label: (0, import_i18n10.__)("Center", "elementor"),
|
|
1320
|
+
renderContent: ({ size }) => /* @__PURE__ */ React27.createElement(RotatedIcon, { icon: import_icons7.LayoutAlignCenterIcon, size, ...iconProps }),
|
|
1308
1321
|
showTooltip: true
|
|
1309
1322
|
},
|
|
1310
1323
|
{
|
|
1311
1324
|
value: "end",
|
|
1312
|
-
label: (0,
|
|
1325
|
+
label: (0, import_i18n10.__)("End", "elementor"),
|
|
1313
1326
|
renderContent: ({ size }) => /* @__PURE__ */ React27.createElement(RotatedIcon, { icon: EndIcon, size, ...iconProps }),
|
|
1314
1327
|
showTooltip: true
|
|
1315
1328
|
},
|
|
1316
1329
|
{
|
|
1317
1330
|
value: "stretch",
|
|
1318
|
-
label: (0,
|
|
1319
|
-
renderContent: ({ size }) => /* @__PURE__ */ React27.createElement(RotatedIcon, { icon:
|
|
1331
|
+
label: (0, import_i18n10.__)("Stretch", "elementor"),
|
|
1332
|
+
renderContent: ({ size }) => /* @__PURE__ */ React27.createElement(RotatedIcon, { icon: import_icons7.LayoutDistributeVerticalIcon, size, ...iconProps }),
|
|
1320
1333
|
showTooltip: true
|
|
1321
1334
|
}
|
|
1322
1335
|
];
|
|
1323
1336
|
var AlignItemsField = () => {
|
|
1324
1337
|
const { isSiteRtl } = useDirection();
|
|
1325
|
-
return /* @__PURE__ */ React27.createElement(
|
|
1338
|
+
return /* @__PURE__ */ React27.createElement(import_ui19.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React27.createElement(import_ui19.ThemeProvider, null, /* @__PURE__ */ React27.createElement(StylesField, { bind: "align-items" }, /* @__PURE__ */ React27.createElement(import_ui19.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React27.createElement(import_ui19.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React27.createElement(import_editor_controls13.ControlLabel, null, (0, import_i18n10.__)("Align items", "elementor"))), /* @__PURE__ */ React27.createElement(import_ui19.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React27.createElement(import_editor_controls13.ToggleControl, { options }))))));
|
|
1326
1339
|
};
|
|
1327
1340
|
|
|
1328
1341
|
// src/components/style-sections/layout-section/align-self-child-field.tsx
|
|
1329
1342
|
var React28 = __toESM(require("react"));
|
|
1330
1343
|
var import_editor_controls14 = require("@elementor/editor-controls");
|
|
1331
|
-
var
|
|
1332
|
-
var
|
|
1333
|
-
var
|
|
1334
|
-
var StartIcon2 = (0,
|
|
1335
|
-
var EndIcon2 = (0,
|
|
1344
|
+
var import_icons8 = require("@elementor/icons");
|
|
1345
|
+
var import_ui20 = require("@elementor/ui");
|
|
1346
|
+
var import_i18n11 = require("@wordpress/i18n");
|
|
1347
|
+
var StartIcon2 = (0, import_ui20.withDirection)(import_icons8.LayoutAlignLeftIcon);
|
|
1348
|
+
var EndIcon2 = (0, import_ui20.withDirection)(import_icons8.LayoutAlignRightIcon);
|
|
1336
1349
|
var iconProps2 = {
|
|
1337
1350
|
isClockwise: false,
|
|
1338
1351
|
offset: 90
|
|
@@ -1340,105 +1353,113 @@ var iconProps2 = {
|
|
|
1340
1353
|
var options2 = [
|
|
1341
1354
|
{
|
|
1342
1355
|
value: "start",
|
|
1343
|
-
label: (0,
|
|
1356
|
+
label: (0, import_i18n11.__)("Start", "elementor"),
|
|
1344
1357
|
renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(RotatedIcon, { icon: StartIcon2, size, ...iconProps2 }),
|
|
1345
1358
|
showTooltip: true
|
|
1346
1359
|
},
|
|
1347
1360
|
{
|
|
1348
1361
|
value: "center",
|
|
1349
|
-
label: (0,
|
|
1350
|
-
renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(RotatedIcon, { icon:
|
|
1362
|
+
label: (0, import_i18n11.__)("Center", "elementor"),
|
|
1363
|
+
renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(RotatedIcon, { icon: import_icons8.LayoutAlignCenterIcon, size, ...iconProps2 }),
|
|
1351
1364
|
showTooltip: true
|
|
1352
1365
|
},
|
|
1353
1366
|
{
|
|
1354
1367
|
value: "end",
|
|
1355
|
-
label: (0,
|
|
1368
|
+
label: (0, import_i18n11.__)("End", "elementor"),
|
|
1356
1369
|
renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(RotatedIcon, { icon: EndIcon2, size, ...iconProps2 }),
|
|
1357
1370
|
showTooltip: true
|
|
1358
1371
|
},
|
|
1359
1372
|
{
|
|
1360
1373
|
value: "stretch",
|
|
1361
|
-
label: (0,
|
|
1362
|
-
renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(RotatedIcon, { icon:
|
|
1374
|
+
label: (0, import_i18n11.__)("Stretch", "elementor"),
|
|
1375
|
+
renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(RotatedIcon, { icon: import_icons8.LayoutDistributeVerticalIcon, size, ...iconProps2 }),
|
|
1363
1376
|
showTooltip: true
|
|
1364
1377
|
}
|
|
1365
1378
|
];
|
|
1366
1379
|
var AlignSelfChild = () => {
|
|
1367
1380
|
const { isSiteRtl } = useDirection();
|
|
1368
|
-
return /* @__PURE__ */ React28.createElement(
|
|
1381
|
+
return /* @__PURE__ */ React28.createElement(import_ui20.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React28.createElement(import_ui20.ThemeProvider, null, /* @__PURE__ */ React28.createElement(StylesField, { bind: "align-self" }, /* @__PURE__ */ React28.createElement(import_ui20.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React28.createElement(import_ui20.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React28.createElement(import_editor_controls14.ControlLabel, null, (0, import_i18n11.__)("Align self", "elementor"))), /* @__PURE__ */ React28.createElement(import_ui20.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React28.createElement(import_editor_controls14.ToggleControl, { options: options2 }))))));
|
|
1369
1382
|
};
|
|
1370
1383
|
|
|
1371
1384
|
// src/components/style-sections/layout-section/display-field.tsx
|
|
1372
1385
|
var React29 = __toESM(require("react"));
|
|
1373
1386
|
var import_editor_controls15 = require("@elementor/editor-controls");
|
|
1374
|
-
var
|
|
1375
|
-
var
|
|
1387
|
+
var import_ui21 = require("@elementor/ui");
|
|
1388
|
+
var import_i18n12 = require("@wordpress/i18n");
|
|
1376
1389
|
var DisplayField = () => {
|
|
1377
1390
|
const options10 = [
|
|
1378
1391
|
{
|
|
1379
1392
|
value: "block",
|
|
1380
|
-
renderContent: () => (0,
|
|
1381
|
-
label: (0,
|
|
1393
|
+
renderContent: () => (0, import_i18n12.__)("Block", "elementor"),
|
|
1394
|
+
label: (0, import_i18n12.__)("Block", "elementor"),
|
|
1395
|
+
showTooltip: true
|
|
1382
1396
|
},
|
|
1383
1397
|
{
|
|
1384
1398
|
value: "flex",
|
|
1385
|
-
renderContent: () => (0,
|
|
1386
|
-
label: (0,
|
|
1399
|
+
renderContent: () => (0, import_i18n12.__)("Flex", "elementor"),
|
|
1400
|
+
label: (0, import_i18n12.__)("Flex", "elementor"),
|
|
1401
|
+
showTooltip: true
|
|
1402
|
+
},
|
|
1403
|
+
{
|
|
1404
|
+
value: "inline-block",
|
|
1405
|
+
renderContent: () => (0, import_i18n12.__)("In-blk", "elementor"),
|
|
1406
|
+
label: (0, import_i18n12.__)("Inline-block", "elementor"),
|
|
1407
|
+
showTooltip: true
|
|
1387
1408
|
}
|
|
1388
1409
|
];
|
|
1389
|
-
return /* @__PURE__ */ React29.createElement(StylesField, { bind: "display" }, /* @__PURE__ */ React29.createElement(
|
|
1410
|
+
return /* @__PURE__ */ React29.createElement(StylesField, { bind: "display" }, /* @__PURE__ */ React29.createElement(import_ui21.Stack, { gap: 1 }, /* @__PURE__ */ React29.createElement(import_editor_controls15.ControlLabel, null, (0, import_i18n12.__)("Display", "elementor")), /* @__PURE__ */ React29.createElement(import_editor_controls15.ToggleControl, { options: options10, fullWidth: true })));
|
|
1390
1411
|
};
|
|
1391
1412
|
|
|
1392
1413
|
// src/components/style-sections/layout-section/flex-direction-field.tsx
|
|
1393
1414
|
var React30 = __toESM(require("react"));
|
|
1394
1415
|
var import_editor_controls16 = require("@elementor/editor-controls");
|
|
1395
|
-
var
|
|
1396
|
-
var
|
|
1397
|
-
var
|
|
1416
|
+
var import_icons9 = require("@elementor/icons");
|
|
1417
|
+
var import_ui22 = require("@elementor/ui");
|
|
1418
|
+
var import_i18n13 = require("@wordpress/i18n");
|
|
1398
1419
|
var options3 = [
|
|
1399
1420
|
{
|
|
1400
1421
|
value: "row",
|
|
1401
|
-
label: (0,
|
|
1422
|
+
label: (0, import_i18n13.__)("Row", "elementor"),
|
|
1402
1423
|
renderContent: ({ size }) => {
|
|
1403
|
-
const
|
|
1404
|
-
return /* @__PURE__ */ React30.createElement(
|
|
1424
|
+
const StartIcon5 = (0, import_ui22.withDirection)(import_icons9.ArrowRightIcon);
|
|
1425
|
+
return /* @__PURE__ */ React30.createElement(StartIcon5, { fontSize: size });
|
|
1405
1426
|
},
|
|
1406
1427
|
showTooltip: true
|
|
1407
1428
|
},
|
|
1408
1429
|
{
|
|
1409
1430
|
value: "column",
|
|
1410
|
-
label: (0,
|
|
1411
|
-
renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(
|
|
1431
|
+
label: (0, import_i18n13.__)("Column", "elementor"),
|
|
1432
|
+
renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(import_icons9.ArrowDownSmallIcon, { fontSize: size }),
|
|
1412
1433
|
showTooltip: true
|
|
1413
1434
|
},
|
|
1414
1435
|
{
|
|
1415
1436
|
value: "row-reverse",
|
|
1416
|
-
label: (0,
|
|
1437
|
+
label: (0, import_i18n13.__)("Reversed row", "elementor"),
|
|
1417
1438
|
renderContent: ({ size }) => {
|
|
1418
|
-
const
|
|
1419
|
-
return /* @__PURE__ */ React30.createElement(
|
|
1439
|
+
const EndIcon5 = (0, import_ui22.withDirection)(import_icons9.ArrowLeftIcon);
|
|
1440
|
+
return /* @__PURE__ */ React30.createElement(EndIcon5, { fontSize: size });
|
|
1420
1441
|
},
|
|
1421
1442
|
showTooltip: true
|
|
1422
1443
|
},
|
|
1423
1444
|
{
|
|
1424
1445
|
value: "column-reverse",
|
|
1425
|
-
label: (0,
|
|
1426
|
-
renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(
|
|
1446
|
+
label: (0, import_i18n13.__)("Reversed column", "elementor"),
|
|
1447
|
+
renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(import_icons9.ArrowUpSmallIcon, { fontSize: size }),
|
|
1427
1448
|
showTooltip: true
|
|
1428
1449
|
}
|
|
1429
1450
|
];
|
|
1430
1451
|
var FlexDirectionField = () => {
|
|
1431
1452
|
const { isSiteRtl } = useDirection();
|
|
1432
|
-
return /* @__PURE__ */ React30.createElement(
|
|
1453
|
+
return /* @__PURE__ */ React30.createElement(import_ui22.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React30.createElement(import_ui22.ThemeProvider, null, /* @__PURE__ */ React30.createElement(StylesField, { bind: "flex-direction" }, /* @__PURE__ */ React30.createElement(import_ui22.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React30.createElement(import_ui22.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React30.createElement(import_editor_controls16.ControlLabel, null, (0, import_i18n13.__)("Direction", "elementor"))), /* @__PURE__ */ React30.createElement(import_ui22.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React30.createElement(import_editor_controls16.ToggleControl, { options: options3 }))))));
|
|
1433
1454
|
};
|
|
1434
1455
|
|
|
1435
1456
|
// src/components/style-sections/layout-section/flex-order-field.tsx
|
|
1436
1457
|
var React31 = __toESM(require("react"));
|
|
1437
|
-
var
|
|
1458
|
+
var import_react10 = require("react");
|
|
1438
1459
|
var import_editor_controls17 = require("@elementor/editor-controls");
|
|
1439
|
-
var
|
|
1440
|
-
var
|
|
1441
|
-
var
|
|
1460
|
+
var import_icons10 = require("@elementor/icons");
|
|
1461
|
+
var import_ui23 = require("@elementor/ui");
|
|
1462
|
+
var import_i18n14 = require("@wordpress/i18n");
|
|
1442
1463
|
var FIRST_DEFAULT_VALUE = -99999;
|
|
1443
1464
|
var LAST_DEFAULT_VALUE = 99999;
|
|
1444
1465
|
var FIRST = "first";
|
|
@@ -1451,26 +1472,26 @@ var orderValueMap = {
|
|
|
1451
1472
|
var items = [
|
|
1452
1473
|
{
|
|
1453
1474
|
value: FIRST,
|
|
1454
|
-
label: (0,
|
|
1455
|
-
renderContent: ({ size }) => /* @__PURE__ */ React31.createElement(
|
|
1475
|
+
label: (0, import_i18n14.__)("First", "elementor"),
|
|
1476
|
+
renderContent: ({ size }) => /* @__PURE__ */ React31.createElement(import_icons10.ArrowUpSmallIcon, { fontSize: size }),
|
|
1456
1477
|
showTooltip: true
|
|
1457
1478
|
},
|
|
1458
1479
|
{
|
|
1459
1480
|
value: LAST,
|
|
1460
|
-
label: (0,
|
|
1461
|
-
renderContent: ({ size }) => /* @__PURE__ */ React31.createElement(
|
|
1481
|
+
label: (0, import_i18n14.__)("Last", "elementor"),
|
|
1482
|
+
renderContent: ({ size }) => /* @__PURE__ */ React31.createElement(import_icons10.ArrowDownSmallIcon, { fontSize: size }),
|
|
1462
1483
|
showTooltip: true
|
|
1463
1484
|
},
|
|
1464
1485
|
{
|
|
1465
1486
|
value: CUSTOM,
|
|
1466
|
-
label: (0,
|
|
1467
|
-
renderContent: ({ size }) => /* @__PURE__ */ React31.createElement(
|
|
1487
|
+
label: (0, import_i18n14.__)("Custom", "elementor"),
|
|
1488
|
+
renderContent: ({ size }) => /* @__PURE__ */ React31.createElement(import_icons10.PencilIcon, { fontSize: size }),
|
|
1468
1489
|
showTooltip: true
|
|
1469
1490
|
}
|
|
1470
1491
|
];
|
|
1471
1492
|
var FlexOrderField = () => {
|
|
1472
1493
|
const { isSiteRtl } = useDirection(), [order, setOrder] = useStylesField("order");
|
|
1473
|
-
const [groupControlValue, setGroupControlValue] = (0,
|
|
1494
|
+
const [groupControlValue, setGroupControlValue] = (0, import_react10.useState)(getGroupControlValue(order?.value || null));
|
|
1474
1495
|
const handleToggleButtonChange = (group) => {
|
|
1475
1496
|
setGroupControlValue(group);
|
|
1476
1497
|
if (!group || group === CUSTOM) {
|
|
@@ -1479,7 +1500,7 @@ var FlexOrderField = () => {
|
|
|
1479
1500
|
}
|
|
1480
1501
|
setOrder({ $$type: "number", value: orderValueMap[group] });
|
|
1481
1502
|
};
|
|
1482
|
-
return /* @__PURE__ */ React31.createElement(
|
|
1503
|
+
return /* @__PURE__ */ React31.createElement(import_ui23.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React31.createElement(import_ui23.ThemeProvider, null, /* @__PURE__ */ React31.createElement(import_ui23.Stack, { gap: 2 }, /* @__PURE__ */ React31.createElement(import_ui23.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React31.createElement(import_ui23.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React31.createElement(import_editor_controls17.ControlLabel, null, (0, import_i18n14.__)("Order", "elementor"))), /* @__PURE__ */ React31.createElement(import_ui23.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React31.createElement(
|
|
1483
1504
|
import_editor_controls17.ControlToggleButtonGroup,
|
|
1484
1505
|
{
|
|
1485
1506
|
items,
|
|
@@ -1487,7 +1508,7 @@ var FlexOrderField = () => {
|
|
|
1487
1508
|
onChange: handleToggleButtonChange,
|
|
1488
1509
|
exclusive: true
|
|
1489
1510
|
}
|
|
1490
|
-
))), CUSTOM === groupControlValue && /* @__PURE__ */ React31.createElement(StylesField, { bind: "order" }, /* @__PURE__ */ React31.createElement(
|
|
1511
|
+
))), CUSTOM === groupControlValue && /* @__PURE__ */ React31.createElement(StylesField, { bind: "order" }, /* @__PURE__ */ React31.createElement(import_ui23.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React31.createElement(import_ui23.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React31.createElement(import_editor_controls17.ControlLabel, null, (0, import_i18n14.__)("Custom order", "elementor"))), /* @__PURE__ */ React31.createElement(import_ui23.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React31.createElement(
|
|
1491
1512
|
import_editor_controls17.NumberControl,
|
|
1492
1513
|
{
|
|
1493
1514
|
min: FIRST_DEFAULT_VALUE + 1,
|
|
@@ -1508,36 +1529,36 @@ var getGroupControlValue = (order) => {
|
|
|
1508
1529
|
|
|
1509
1530
|
// src/components/style-sections/layout-section/flex-size-field.tsx
|
|
1510
1531
|
var React32 = __toESM(require("react"));
|
|
1511
|
-
var
|
|
1532
|
+
var import_react11 = require("react");
|
|
1512
1533
|
var import_editor_controls18 = require("@elementor/editor-controls");
|
|
1513
|
-
var
|
|
1514
|
-
var
|
|
1515
|
-
var
|
|
1534
|
+
var import_icons11 = require("@elementor/icons");
|
|
1535
|
+
var import_ui24 = require("@elementor/ui");
|
|
1536
|
+
var import_i18n15 = require("@wordpress/i18n");
|
|
1516
1537
|
var DEFAULT = 1;
|
|
1517
1538
|
var items2 = [
|
|
1518
1539
|
{
|
|
1519
1540
|
value: "flex-grow",
|
|
1520
|
-
label: (0,
|
|
1521
|
-
renderContent: ({ size }) => /* @__PURE__ */ React32.createElement(
|
|
1541
|
+
label: (0, import_i18n15.__)("Grow", "elementor"),
|
|
1542
|
+
renderContent: ({ size }) => /* @__PURE__ */ React32.createElement(import_icons11.ExpandIcon, { fontSize: size }),
|
|
1522
1543
|
showTooltip: true
|
|
1523
1544
|
},
|
|
1524
1545
|
{
|
|
1525
1546
|
value: "flex-shrink",
|
|
1526
|
-
label: (0,
|
|
1527
|
-
renderContent: ({ size }) => /* @__PURE__ */ React32.createElement(
|
|
1547
|
+
label: (0, import_i18n15.__)("Shrink", "elementor"),
|
|
1548
|
+
renderContent: ({ size }) => /* @__PURE__ */ React32.createElement(import_icons11.ShrinkIcon, { fontSize: size }),
|
|
1528
1549
|
showTooltip: true
|
|
1529
1550
|
},
|
|
1530
1551
|
{
|
|
1531
1552
|
value: "custom",
|
|
1532
|
-
label: (0,
|
|
1533
|
-
renderContent: ({ size }) => /* @__PURE__ */ React32.createElement(
|
|
1553
|
+
label: (0, import_i18n15.__)("Custom", "elementor"),
|
|
1554
|
+
renderContent: ({ size }) => /* @__PURE__ */ React32.createElement(import_icons11.PencilIcon, { fontSize: size }),
|
|
1534
1555
|
showTooltip: true
|
|
1535
1556
|
}
|
|
1536
1557
|
];
|
|
1537
1558
|
var FlexSizeField = () => {
|
|
1538
1559
|
const { isSiteRtl } = useDirection(), [growField, setGrowField] = useStylesField("flex-grow"), [shrinkField, setShrinkField] = useStylesField("flex-shrink"), [basisField, setBasisField] = useStylesField("flex-basis");
|
|
1539
1560
|
const grow = growField?.value || null, shrink = shrinkField?.value || null, basis = basisField?.value || null;
|
|
1540
|
-
const currentGroup = (0,
|
|
1561
|
+
const currentGroup = (0, import_react11.useMemo)(() => getActiveGroup({ grow, shrink, basis }), [grow, shrink, basis]), [activeGroup, setActiveGroup] = (0, import_react11.useState)(currentGroup);
|
|
1541
1562
|
const onChangeGroup = (group = null) => {
|
|
1542
1563
|
setActiveGroup(group);
|
|
1543
1564
|
setBasisField(null);
|
|
@@ -1554,7 +1575,7 @@ var FlexSizeField = () => {
|
|
|
1554
1575
|
setGrowField(null);
|
|
1555
1576
|
setShrinkField({ $$type: "number", value: DEFAULT });
|
|
1556
1577
|
};
|
|
1557
|
-
return /* @__PURE__ */ React32.createElement(
|
|
1578
|
+
return /* @__PURE__ */ React32.createElement(import_ui24.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React32.createElement(import_ui24.ThemeProvider, null, /* @__PURE__ */ React32.createElement(import_ui24.Stack, { gap: 2 }, /* @__PURE__ */ React32.createElement(import_ui24.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React32.createElement(import_ui24.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React32.createElement(import_editor_controls18.ControlLabel, null, (0, import_i18n15.__)("Size", "elementor"))), /* @__PURE__ */ React32.createElement(import_ui24.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React32.createElement(
|
|
1558
1579
|
import_editor_controls18.ControlToggleButtonGroup,
|
|
1559
1580
|
{
|
|
1560
1581
|
value: activeGroup,
|
|
@@ -1564,7 +1585,7 @@ var FlexSizeField = () => {
|
|
|
1564
1585
|
}
|
|
1565
1586
|
))), "custom" === activeGroup && /* @__PURE__ */ React32.createElement(FlexCustomField, null))));
|
|
1566
1587
|
};
|
|
1567
|
-
var FlexCustomField = () => /* @__PURE__ */ React32.createElement(React32.Fragment, null, /* @__PURE__ */ React32.createElement(StylesField, { bind: "flex-grow" }, /* @__PURE__ */ React32.createElement(
|
|
1588
|
+
var FlexCustomField = () => /* @__PURE__ */ React32.createElement(React32.Fragment, null, /* @__PURE__ */ React32.createElement(StylesField, { bind: "flex-grow" }, /* @__PURE__ */ React32.createElement(import_ui24.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React32.createElement(import_ui24.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React32.createElement(import_editor_controls18.ControlLabel, null, (0, import_i18n15.__)("Grow", "elementor"))), /* @__PURE__ */ React32.createElement(import_ui24.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React32.createElement(import_editor_controls18.NumberControl, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React32.createElement(StylesField, { bind: "flex-shrink" }, /* @__PURE__ */ React32.createElement(import_ui24.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React32.createElement(import_ui24.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React32.createElement(import_editor_controls18.ControlLabel, null, (0, import_i18n15.__)("Shrink", "elementor"))), /* @__PURE__ */ React32.createElement(import_ui24.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React32.createElement(import_editor_controls18.NumberControl, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React32.createElement(StylesField, { bind: "flex-basis" }, /* @__PURE__ */ React32.createElement(import_ui24.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React32.createElement(import_ui24.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React32.createElement(import_editor_controls18.ControlLabel, null, (0, import_i18n15.__)("Basis", "elementor"))), /* @__PURE__ */ React32.createElement(import_ui24.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React32.createElement(import_editor_controls18.SizeControl, null)))));
|
|
1568
1589
|
var getActiveGroup = ({
|
|
1569
1590
|
grow,
|
|
1570
1591
|
shrink,
|
|
@@ -1588,20 +1609,20 @@ var getActiveGroup = ({
|
|
|
1588
1609
|
// src/components/style-sections/layout-section/gap-control-field.tsx
|
|
1589
1610
|
var React33 = __toESM(require("react"));
|
|
1590
1611
|
var import_editor_controls19 = require("@elementor/editor-controls");
|
|
1591
|
-
var
|
|
1592
|
-
var
|
|
1612
|
+
var import_ui25 = require("@elementor/ui");
|
|
1613
|
+
var import_i18n16 = require("@wordpress/i18n");
|
|
1593
1614
|
var GapControlField = () => {
|
|
1594
|
-
return /* @__PURE__ */ React33.createElement(
|
|
1615
|
+
return /* @__PURE__ */ React33.createElement(import_ui25.Stack, { gap: 1 }, /* @__PURE__ */ React33.createElement(StylesField, { bind: "gap" }, /* @__PURE__ */ React33.createElement(import_editor_controls19.GapControl, { label: (0, import_i18n16.__)("Gaps", "elementor") })));
|
|
1595
1616
|
};
|
|
1596
1617
|
|
|
1597
1618
|
// src/components/style-sections/layout-section/justify-content-field.tsx
|
|
1598
1619
|
var React34 = __toESM(require("react"));
|
|
1599
1620
|
var import_editor_controls20 = require("@elementor/editor-controls");
|
|
1600
|
-
var
|
|
1601
|
-
var
|
|
1602
|
-
var
|
|
1603
|
-
var StartIcon3 = (0,
|
|
1604
|
-
var EndIcon3 = (0,
|
|
1621
|
+
var import_icons12 = require("@elementor/icons");
|
|
1622
|
+
var import_ui26 = require("@elementor/ui");
|
|
1623
|
+
var import_i18n17 = require("@wordpress/i18n");
|
|
1624
|
+
var StartIcon3 = (0, import_ui26.withDirection)(import_icons12.JustifyTopIcon);
|
|
1625
|
+
var EndIcon3 = (0, import_ui26.withDirection)(import_icons12.JustifyBottomIcon);
|
|
1605
1626
|
var iconProps3 = {
|
|
1606
1627
|
isClockwise: true,
|
|
1607
1628
|
offset: -90
|
|
@@ -1609,75 +1630,75 @@ var iconProps3 = {
|
|
|
1609
1630
|
var options4 = [
|
|
1610
1631
|
{
|
|
1611
1632
|
value: "start",
|
|
1612
|
-
label: (0,
|
|
1633
|
+
label: (0, import_i18n17.__)("Start", "elementor"),
|
|
1613
1634
|
renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: StartIcon3, size, ...iconProps3 }),
|
|
1614
1635
|
showTooltip: true
|
|
1615
1636
|
},
|
|
1616
1637
|
{
|
|
1617
1638
|
value: "center",
|
|
1618
|
-
label: (0,
|
|
1619
|
-
renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon:
|
|
1639
|
+
label: (0, import_i18n17.__)("Center", "elementor"),
|
|
1640
|
+
renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: import_icons12.JustifyCenterIcon, size, ...iconProps3 }),
|
|
1620
1641
|
showTooltip: true
|
|
1621
1642
|
},
|
|
1622
1643
|
{
|
|
1623
1644
|
value: "end",
|
|
1624
|
-
label: (0,
|
|
1645
|
+
label: (0, import_i18n17.__)("End", "elementor"),
|
|
1625
1646
|
renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: EndIcon3, size, ...iconProps3 }),
|
|
1626
1647
|
showTooltip: true
|
|
1627
1648
|
},
|
|
1628
1649
|
{
|
|
1629
1650
|
value: "space-between",
|
|
1630
|
-
label: (0,
|
|
1631
|
-
renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon:
|
|
1651
|
+
label: (0, import_i18n17.__)("Space between", "elementor"),
|
|
1652
|
+
renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: import_icons12.JustifySpaceBetweenVerticalIcon, size, ...iconProps3 }),
|
|
1632
1653
|
showTooltip: true
|
|
1633
1654
|
},
|
|
1634
1655
|
{
|
|
1635
1656
|
value: "space-around",
|
|
1636
|
-
label: (0,
|
|
1637
|
-
renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon:
|
|
1657
|
+
label: (0, import_i18n17.__)("Space around", "elementor"),
|
|
1658
|
+
renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: import_icons12.JustifySpaceAroundVerticalIcon, size, ...iconProps3 }),
|
|
1638
1659
|
showTooltip: true
|
|
1639
1660
|
},
|
|
1640
1661
|
{
|
|
1641
1662
|
value: "space-evenly",
|
|
1642
|
-
label: (0,
|
|
1643
|
-
renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon:
|
|
1663
|
+
label: (0, import_i18n17.__)("Space evenly", "elementor"),
|
|
1664
|
+
renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: import_icons12.JustifyDistributeVerticalIcon, size, ...iconProps3 }),
|
|
1644
1665
|
showTooltip: true
|
|
1645
1666
|
}
|
|
1646
1667
|
];
|
|
1647
1668
|
var JustifyContentField = () => {
|
|
1648
1669
|
const { isSiteRtl } = useDirection();
|
|
1649
|
-
return /* @__PURE__ */ React34.createElement(
|
|
1670
|
+
return /* @__PURE__ */ React34.createElement(import_ui26.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React34.createElement(import_ui26.ThemeProvider, null, /* @__PURE__ */ React34.createElement(StylesField, { bind: "justify-content" }, /* @__PURE__ */ React34.createElement(import_ui26.Stack, { gap: 1 }, /* @__PURE__ */ React34.createElement(import_editor_controls20.ControlLabel, null, (0, import_i18n17.__)("Justify content", "elementor")), /* @__PURE__ */ React34.createElement(import_editor_controls20.ToggleControl, { options: options4, fullWidth: true })))));
|
|
1650
1671
|
};
|
|
1651
1672
|
|
|
1652
1673
|
// src/components/style-sections/layout-section/wrap-field.tsx
|
|
1653
1674
|
var React35 = __toESM(require("react"));
|
|
1654
1675
|
var import_editor_controls21 = require("@elementor/editor-controls");
|
|
1655
|
-
var
|
|
1656
|
-
var
|
|
1657
|
-
var
|
|
1676
|
+
var import_icons13 = require("@elementor/icons");
|
|
1677
|
+
var import_ui27 = require("@elementor/ui");
|
|
1678
|
+
var import_i18n18 = require("@wordpress/i18n");
|
|
1658
1679
|
var options5 = [
|
|
1659
1680
|
{
|
|
1660
1681
|
value: "nowrap",
|
|
1661
|
-
label: (0,
|
|
1662
|
-
renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(
|
|
1682
|
+
label: (0, import_i18n18.__)("No wrap", "elementor"),
|
|
1683
|
+
renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(import_icons13.ArrowRightIcon, { fontSize: size }),
|
|
1663
1684
|
showTooltip: true
|
|
1664
1685
|
},
|
|
1665
1686
|
{
|
|
1666
1687
|
value: "wrap",
|
|
1667
|
-
label: (0,
|
|
1668
|
-
renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(
|
|
1688
|
+
label: (0, import_i18n18.__)("Wrap", "elementor"),
|
|
1689
|
+
renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(import_icons13.ArrowBackIcon, { fontSize: size }),
|
|
1669
1690
|
showTooltip: true
|
|
1670
1691
|
},
|
|
1671
1692
|
{
|
|
1672
1693
|
value: "wrap-reverse",
|
|
1673
|
-
label: (0,
|
|
1674
|
-
renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(
|
|
1694
|
+
label: (0, import_i18n18.__)("Reversed wrap", "elementor"),
|
|
1695
|
+
renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(import_icons13.ArrowForwardIcon, { fontSize: size }),
|
|
1675
1696
|
showTooltip: true
|
|
1676
1697
|
}
|
|
1677
1698
|
];
|
|
1678
1699
|
var WrapField = () => {
|
|
1679
1700
|
const { isSiteRtl } = useDirection();
|
|
1680
|
-
return /* @__PURE__ */ React35.createElement(
|
|
1701
|
+
return /* @__PURE__ */ React35.createElement(import_ui27.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React35.createElement(import_ui27.ThemeProvider, null, /* @__PURE__ */ React35.createElement(StylesField, { bind: "flex-wrap" }, /* @__PURE__ */ React35.createElement(import_ui27.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React35.createElement(import_ui27.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React35.createElement(import_editor_controls21.ControlLabel, null, (0, import_i18n18.__)("Wrap", "elementor"))), /* @__PURE__ */ React35.createElement(import_ui27.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React35.createElement(import_editor_controls21.ToggleControl, { options: options5 }))))));
|
|
1681
1702
|
};
|
|
1682
1703
|
|
|
1683
1704
|
// src/components/style-sections/layout-section/layout-section.tsx
|
|
@@ -1686,94 +1707,58 @@ var LayoutSection = () => {
|
|
|
1686
1707
|
const { element } = useElement();
|
|
1687
1708
|
const parent = (0, import_editor_elements5.useParentElement)(element.id);
|
|
1688
1709
|
const parentStyle = useComputedStyle(parent?.id || null);
|
|
1689
|
-
return /* @__PURE__ */ React36.createElement(
|
|
1710
|
+
return /* @__PURE__ */ React36.createElement(import_ui28.Stack, { gap: 2 }, /* @__PURE__ */ React36.createElement(DisplayField, null), "flex" === display?.value && /* @__PURE__ */ React36.createElement(FlexFields, null), "flex" === parentStyle?.display && /* @__PURE__ */ React36.createElement(FlexChildFields, null));
|
|
1690
1711
|
};
|
|
1691
|
-
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(
|
|
1692
|
-
var FlexChildFields = () => /* @__PURE__ */ React36.createElement(React36.Fragment, null, /* @__PURE__ */ React36.createElement(
|
|
1712
|
+
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(import_ui28.Divider, null), /* @__PURE__ */ React36.createElement(GapControlField, null), /* @__PURE__ */ React36.createElement(WrapField, null));
|
|
1713
|
+
var FlexChildFields = () => /* @__PURE__ */ React36.createElement(React36.Fragment, null, /* @__PURE__ */ React36.createElement(import_ui28.Divider, null), /* @__PURE__ */ React36.createElement(import_editor_controls22.ControlLabel, null, (0, import_i18n19.__)("Flex child", "elementor")), /* @__PURE__ */ React36.createElement(AlignSelfChild, null), /* @__PURE__ */ React36.createElement(FlexOrderField, null), /* @__PURE__ */ React36.createElement(FlexSizeField, null));
|
|
1693
1714
|
|
|
1694
1715
|
// src/components/style-sections/position-section/position-section.tsx
|
|
1695
1716
|
var React40 = __toESM(require("react"));
|
|
1696
|
-
var
|
|
1697
|
-
|
|
1698
|
-
// src/hooks/use-session-storage.ts
|
|
1699
|
-
var import_react13 = require("react");
|
|
1700
|
-
var import_utils2 = require("@elementor/utils");
|
|
1701
|
-
var useSessionStorage = (key) => {
|
|
1702
|
-
const prefixedKey = `elementor/${key}`;
|
|
1703
|
-
const [value, setValue] = (0, import_react13.useState)();
|
|
1704
|
-
(0, import_react13.useEffect)(() => {
|
|
1705
|
-
return subscribeToSessionStorage(prefixedKey, (newValue) => {
|
|
1706
|
-
setValue(newValue ?? null);
|
|
1707
|
-
});
|
|
1708
|
-
}, [prefixedKey]);
|
|
1709
|
-
const saveValue = (newValue) => {
|
|
1710
|
-
(0, import_utils2.setSessionStorageItem)(prefixedKey, newValue);
|
|
1711
|
-
};
|
|
1712
|
-
const removeValue = () => {
|
|
1713
|
-
(0, import_utils2.removeSessionStorageItem)(prefixedKey);
|
|
1714
|
-
};
|
|
1715
|
-
return [value, saveValue, removeValue];
|
|
1716
|
-
};
|
|
1717
|
-
var subscribeToSessionStorage = (key, subscriber) => {
|
|
1718
|
-
subscriber((0, import_utils2.getSessionStorageItem)(key));
|
|
1719
|
-
const abortController = new AbortController();
|
|
1720
|
-
window.addEventListener(
|
|
1721
|
-
"storage",
|
|
1722
|
-
(e) => {
|
|
1723
|
-
if (e.key !== key || e.storageArea !== sessionStorage) {
|
|
1724
|
-
return;
|
|
1725
|
-
}
|
|
1726
|
-
subscriber((0, import_utils2.getSessionStorageItem)(key));
|
|
1727
|
-
},
|
|
1728
|
-
{ signal: abortController.signal }
|
|
1729
|
-
);
|
|
1730
|
-
return () => {
|
|
1731
|
-
abortController.abort();
|
|
1732
|
-
};
|
|
1733
|
-
};
|
|
1717
|
+
var import_session2 = require("@elementor/session");
|
|
1718
|
+
var import_ui32 = require("@elementor/ui");
|
|
1734
1719
|
|
|
1735
1720
|
// src/components/style-sections/position-section/dimensions-field.tsx
|
|
1736
1721
|
var React37 = __toESM(require("react"));
|
|
1737
1722
|
var import_editor_controls23 = require("@elementor/editor-controls");
|
|
1738
|
-
var
|
|
1739
|
-
var
|
|
1740
|
-
var
|
|
1723
|
+
var import_icons14 = require("@elementor/icons");
|
|
1724
|
+
var import_ui29 = require("@elementor/ui");
|
|
1725
|
+
var import_i18n20 = require("@wordpress/i18n");
|
|
1741
1726
|
var sideIcons = {
|
|
1742
|
-
left: /* @__PURE__ */ React37.createElement(
|
|
1743
|
-
right: /* @__PURE__ */ React37.createElement(
|
|
1744
|
-
top: /* @__PURE__ */ React37.createElement(
|
|
1745
|
-
bottom: /* @__PURE__ */ React37.createElement(
|
|
1727
|
+
left: /* @__PURE__ */ React37.createElement(import_icons14.SideLeftIcon, { fontSize: "tiny" }),
|
|
1728
|
+
right: /* @__PURE__ */ React37.createElement(import_icons14.SideRightIcon, { fontSize: "tiny" }),
|
|
1729
|
+
top: /* @__PURE__ */ React37.createElement(import_icons14.SideTopIcon, { fontSize: "tiny" }),
|
|
1730
|
+
bottom: /* @__PURE__ */ React37.createElement(import_icons14.SideBottomIcon, { fontSize: "tiny" })
|
|
1746
1731
|
};
|
|
1747
1732
|
var DimensionsField = () => {
|
|
1748
|
-
return /* @__PURE__ */ React37.createElement(React37.Fragment, null, /* @__PURE__ */ React37.createElement(
|
|
1733
|
+
return /* @__PURE__ */ React37.createElement(React37.Fragment, null, /* @__PURE__ */ React37.createElement(import_ui29.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React37.createElement(DimensionField, { side: "top", label: (0, import_i18n20.__)("Top", "elementor") }), /* @__PURE__ */ React37.createElement(DimensionField, { side: "right", label: (0, import_i18n20.__)("Right", "elementor") })), /* @__PURE__ */ React37.createElement(import_ui29.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React37.createElement(DimensionField, { side: "bottom", label: (0, import_i18n20.__)("Bottom", "elementor") }), /* @__PURE__ */ React37.createElement(DimensionField, { side: "left", label: (0, import_i18n20.__)("Left", "elementor") })));
|
|
1749
1734
|
};
|
|
1750
1735
|
var DimensionField = ({ side, label }) => {
|
|
1751
|
-
return /* @__PURE__ */ React37.createElement(
|
|
1736
|
+
return /* @__PURE__ */ React37.createElement(import_ui29.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React37.createElement(import_ui29.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React37.createElement(import_editor_controls23.ControlLabel, null, label)), /* @__PURE__ */ React37.createElement(import_ui29.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React37.createElement(StylesField, { bind: side }, /* @__PURE__ */ React37.createElement(import_editor_controls23.SizeControl, { startIcon: sideIcons[side] }))));
|
|
1752
1737
|
};
|
|
1753
1738
|
|
|
1754
1739
|
// src/components/style-sections/position-section/position-field.tsx
|
|
1755
1740
|
var React38 = __toESM(require("react"));
|
|
1756
1741
|
var import_editor_controls24 = require("@elementor/editor-controls");
|
|
1757
|
-
var
|
|
1758
|
-
var
|
|
1742
|
+
var import_ui30 = require("@elementor/ui");
|
|
1743
|
+
var import_i18n21 = require("@wordpress/i18n");
|
|
1759
1744
|
var positionOptions = [
|
|
1760
|
-
{ label: (0,
|
|
1761
|
-
{ label: (0,
|
|
1762
|
-
{ label: (0,
|
|
1763
|
-
{ label: (0,
|
|
1764
|
-
{ label: (0,
|
|
1745
|
+
{ label: (0, import_i18n21.__)("Static", "elementor"), value: "static" },
|
|
1746
|
+
{ label: (0, import_i18n21.__)("Relative", "elementor"), value: "relative" },
|
|
1747
|
+
{ label: (0, import_i18n21.__)("Absolute", "elementor"), value: "absolute" },
|
|
1748
|
+
{ label: (0, import_i18n21.__)("Fixed", "elementor"), value: "fixed" },
|
|
1749
|
+
{ label: (0, import_i18n21.__)("Sticky", "elementor"), value: "sticky" }
|
|
1765
1750
|
];
|
|
1766
1751
|
var PositionField = ({ onChange }) => {
|
|
1767
|
-
return /* @__PURE__ */ React38.createElement(StylesField, { bind: "position" }, /* @__PURE__ */ React38.createElement(
|
|
1752
|
+
return /* @__PURE__ */ React38.createElement(StylesField, { bind: "position" }, /* @__PURE__ */ React38.createElement(import_ui30.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React38.createElement(import_ui30.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React38.createElement(import_editor_controls24.ControlLabel, null, (0, import_i18n21.__)("Position", "elementor"))), /* @__PURE__ */ React38.createElement(import_ui30.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React38.createElement(import_editor_controls24.SelectControl, { options: positionOptions, onChange }))));
|
|
1768
1753
|
};
|
|
1769
1754
|
|
|
1770
1755
|
// src/components/style-sections/position-section/z-index-field.tsx
|
|
1771
1756
|
var React39 = __toESM(require("react"));
|
|
1772
1757
|
var import_editor_controls25 = require("@elementor/editor-controls");
|
|
1773
|
-
var
|
|
1774
|
-
var
|
|
1758
|
+
var import_ui31 = require("@elementor/ui");
|
|
1759
|
+
var import_i18n22 = require("@wordpress/i18n");
|
|
1775
1760
|
var ZIndexField = () => {
|
|
1776
|
-
return /* @__PURE__ */ React39.createElement(StylesField, { bind: "z-index" }, /* @__PURE__ */ React39.createElement(
|
|
1761
|
+
return /* @__PURE__ */ React39.createElement(StylesField, { bind: "z-index" }, /* @__PURE__ */ React39.createElement(import_ui31.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React39.createElement(import_ui31.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React39.createElement(import_editor_controls25.ControlLabel, null, (0, import_i18n22.__)("Z-Index", "elementor"))), /* @__PURE__ */ React39.createElement(import_ui31.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React39.createElement(import_editor_controls25.NumberControl, null))));
|
|
1777
1762
|
};
|
|
1778
1763
|
|
|
1779
1764
|
// src/components/style-sections/position-section/position-section.tsx
|
|
@@ -1805,84 +1790,84 @@ var PositionSection = () => {
|
|
|
1805
1790
|
}
|
|
1806
1791
|
};
|
|
1807
1792
|
const isNotStatic = positionValue && positionValue?.value !== "static";
|
|
1808
|
-
return /* @__PURE__ */ React40.createElement(
|
|
1793
|
+
return /* @__PURE__ */ React40.createElement(import_ui32.Stack, { 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);
|
|
1809
1794
|
};
|
|
1810
1795
|
var usePersistDimensions = () => {
|
|
1811
1796
|
const { id: styleDefID, meta } = useStyle();
|
|
1812
1797
|
const styleVariantPath = `styles/${styleDefID}/${meta.breakpoint || "desktop"}/${meta.state || "null"}`;
|
|
1813
1798
|
const dimensionsPath = `${styleVariantPath}/dimensions`;
|
|
1814
|
-
return useSessionStorage(dimensionsPath);
|
|
1799
|
+
return (0, import_session2.useSessionStorage)(dimensionsPath);
|
|
1815
1800
|
};
|
|
1816
1801
|
|
|
1817
1802
|
// src/components/style-sections/size-section/size-section.tsx
|
|
1818
1803
|
var React42 = __toESM(require("react"));
|
|
1819
1804
|
var import_editor_controls27 = require("@elementor/editor-controls");
|
|
1820
|
-
var
|
|
1821
|
-
var
|
|
1805
|
+
var import_ui34 = require("@elementor/ui");
|
|
1806
|
+
var import_i18n24 = require("@wordpress/i18n");
|
|
1822
1807
|
|
|
1823
1808
|
// src/components/style-sections/size-section/overflow-field.tsx
|
|
1824
1809
|
var React41 = __toESM(require("react"));
|
|
1825
1810
|
var import_editor_controls26 = require("@elementor/editor-controls");
|
|
1826
|
-
var
|
|
1827
|
-
var
|
|
1828
|
-
var
|
|
1811
|
+
var import_icons15 = require("@elementor/icons");
|
|
1812
|
+
var import_ui33 = require("@elementor/ui");
|
|
1813
|
+
var import_i18n23 = require("@wordpress/i18n");
|
|
1829
1814
|
var options6 = [
|
|
1830
1815
|
{
|
|
1831
1816
|
value: "visible",
|
|
1832
|
-
label: (0,
|
|
1833
|
-
renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(
|
|
1817
|
+
label: (0, import_i18n23.__)("Visible", "elementor"),
|
|
1818
|
+
renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(import_icons15.EyeIcon, { fontSize: size }),
|
|
1834
1819
|
showTooltip: true
|
|
1835
1820
|
},
|
|
1836
1821
|
{
|
|
1837
1822
|
value: "hidden",
|
|
1838
|
-
label: (0,
|
|
1839
|
-
renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(
|
|
1823
|
+
label: (0, import_i18n23.__)("Hidden", "elementor"),
|
|
1824
|
+
renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(import_icons15.EyeOffIcon, { fontSize: size }),
|
|
1840
1825
|
showTooltip: true
|
|
1841
1826
|
},
|
|
1842
1827
|
{
|
|
1843
1828
|
value: "auto",
|
|
1844
|
-
label: (0,
|
|
1845
|
-
renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(
|
|
1829
|
+
label: (0, import_i18n23.__)("Auto", "elementor"),
|
|
1830
|
+
renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(import_icons15.ExpandBottomIcon, { fontSize: size }),
|
|
1846
1831
|
showTooltip: true
|
|
1847
1832
|
}
|
|
1848
1833
|
];
|
|
1849
1834
|
var OverflowField = () => {
|
|
1850
|
-
return /* @__PURE__ */ React41.createElement(StylesField, { bind: "overflow" }, /* @__PURE__ */ React41.createElement(
|
|
1835
|
+
return /* @__PURE__ */ React41.createElement(StylesField, { bind: "overflow" }, /* @__PURE__ */ React41.createElement(import_ui33.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React41.createElement(import_ui33.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(import_editor_controls26.ControlLabel, null, (0, import_i18n23.__)("Overflow", "elementor"))), /* @__PURE__ */ React41.createElement(import_ui33.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React41.createElement(import_editor_controls26.ToggleControl, { options: options6 }))));
|
|
1851
1836
|
};
|
|
1852
1837
|
|
|
1853
1838
|
// src/components/style-sections/size-section/size-section.tsx
|
|
1854
1839
|
var SizeSection = () => {
|
|
1855
|
-
return /* @__PURE__ */ React42.createElement(
|
|
1840
|
+
return /* @__PURE__ */ React42.createElement(import_ui34.Stack, { gap: 1.5 }, /* @__PURE__ */ React42.createElement(import_ui34.Grid, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React42.createElement(import_ui34.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(SizeField, { bind: "width", label: (0, import_i18n24.__)("Width", "elementor") })), /* @__PURE__ */ React42.createElement(import_ui34.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(SizeField, { bind: "height", label: (0, import_i18n24.__)("Height", "elementor") }))), /* @__PURE__ */ React42.createElement(import_ui34.Grid, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React42.createElement(import_ui34.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(SizeField, { bind: "min-width", label: (0, import_i18n24.__)("Min. Width", "elementor") })), /* @__PURE__ */ React42.createElement(import_ui34.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(SizeField, { bind: "min-height", label: (0, import_i18n24.__)("Min. Height", "elementor") }))), /* @__PURE__ */ React42.createElement(import_ui34.Grid, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React42.createElement(import_ui34.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(SizeField, { bind: "max-width", label: (0, import_i18n24.__)("Max. Width", "elementor") })), /* @__PURE__ */ React42.createElement(import_ui34.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(SizeField, { bind: "max-height", label: (0, import_i18n24.__)("Max. Height", "elementor") }))), /* @__PURE__ */ React42.createElement(import_ui34.Divider, null), /* @__PURE__ */ React42.createElement(import_ui34.Stack, null, /* @__PURE__ */ React42.createElement(OverflowField, null)));
|
|
1856
1841
|
};
|
|
1857
1842
|
var SizeField = ({ label, bind }) => {
|
|
1858
|
-
return /* @__PURE__ */ React42.createElement(StylesField, { bind }, /* @__PURE__ */ React42.createElement(
|
|
1843
|
+
return /* @__PURE__ */ React42.createElement(StylesField, { bind }, /* @__PURE__ */ React42.createElement(import_ui34.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React42.createElement(import_ui34.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React42.createElement(import_editor_controls27.ControlLabel, null, label)), /* @__PURE__ */ React42.createElement(import_ui34.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React42.createElement(import_editor_controls27.SizeControl, null))));
|
|
1859
1844
|
};
|
|
1860
1845
|
|
|
1861
1846
|
// src/components/style-sections/spacing-section/spacing-section.tsx
|
|
1862
1847
|
var React43 = __toESM(require("react"));
|
|
1863
1848
|
var import_editor_controls28 = require("@elementor/editor-controls");
|
|
1864
|
-
var
|
|
1865
|
-
var
|
|
1849
|
+
var import_ui35 = require("@elementor/ui");
|
|
1850
|
+
var import_i18n25 = require("@wordpress/i18n");
|
|
1866
1851
|
var SpacingSection = () => {
|
|
1867
|
-
return /* @__PURE__ */ React43.createElement(
|
|
1852
|
+
return /* @__PURE__ */ React43.createElement(import_ui35.Stack, { gap: 1.5 }, /* @__PURE__ */ React43.createElement(StylesField, { bind: "padding" }, /* @__PURE__ */ React43.createElement(import_editor_controls28.LinkedDimensionsControl, { label: (0, import_i18n25.__)("Padding", "elementor") })), /* @__PURE__ */ React43.createElement(import_ui35.Divider, null), /* @__PURE__ */ React43.createElement(StylesField, { bind: "margin" }, /* @__PURE__ */ React43.createElement(import_editor_controls28.LinkedDimensionsControl, { label: (0, import_i18n25.__)("Margin", "elementor") })));
|
|
1868
1853
|
};
|
|
1869
1854
|
|
|
1870
1855
|
// src/components/style-sections/typography-section/typography-section.tsx
|
|
1871
1856
|
var React57 = __toESM(require("react"));
|
|
1872
|
-
var
|
|
1857
|
+
var import_ui48 = require("@elementor/ui");
|
|
1873
1858
|
|
|
1874
1859
|
// src/components/collapsible-content.tsx
|
|
1875
1860
|
var React44 = __toESM(require("react"));
|
|
1876
|
-
var
|
|
1877
|
-
var
|
|
1878
|
-
var
|
|
1861
|
+
var import_react12 = require("react");
|
|
1862
|
+
var import_ui36 = require("@elementor/ui");
|
|
1863
|
+
var import_i18n26 = require("@wordpress/i18n");
|
|
1879
1864
|
var CollapsibleContent = ({ children, defaultOpen = false }) => {
|
|
1880
|
-
const [open, setOpen] = (0,
|
|
1865
|
+
const [open, setOpen] = (0, import_react12.useState)(defaultOpen);
|
|
1881
1866
|
const handleToggle = () => {
|
|
1882
1867
|
setOpen((prevOpen) => !prevOpen);
|
|
1883
1868
|
};
|
|
1884
|
-
return /* @__PURE__ */ React44.createElement(
|
|
1885
|
-
|
|
1869
|
+
return /* @__PURE__ */ React44.createElement(import_ui36.Stack, { sx: { py: 0.5 } }, /* @__PURE__ */ React44.createElement(
|
|
1870
|
+
import_ui36.Button,
|
|
1886
1871
|
{
|
|
1887
1872
|
fullWidth: true,
|
|
1888
1873
|
size: "small",
|
|
@@ -1891,15 +1876,15 @@ var CollapsibleContent = ({ children, defaultOpen = false }) => {
|
|
|
1891
1876
|
onClick: handleToggle,
|
|
1892
1877
|
endIcon: /* @__PURE__ */ React44.createElement(CollapseIcon, { open })
|
|
1893
1878
|
},
|
|
1894
|
-
open ? (0,
|
|
1895
|
-
), /* @__PURE__ */ React44.createElement(
|
|
1879
|
+
open ? (0, import_i18n26.__)("Show less", "elementor") : (0, import_i18n26.__)("Show more", "elementor")
|
|
1880
|
+
), /* @__PURE__ */ React44.createElement(import_ui36.Collapse, { in: open, timeout: "auto", unmountOnExit: true }, children));
|
|
1896
1881
|
};
|
|
1897
1882
|
|
|
1898
1883
|
// src/components/style-sections/typography-section/font-family-field.tsx
|
|
1899
1884
|
var React45 = __toESM(require("react"));
|
|
1900
1885
|
var import_editor_controls29 = require("@elementor/editor-controls");
|
|
1901
|
-
var
|
|
1902
|
-
var
|
|
1886
|
+
var import_ui37 = require("@elementor/ui");
|
|
1887
|
+
var import_i18n27 = require("@wordpress/i18n");
|
|
1903
1888
|
|
|
1904
1889
|
// src/sync/get-elementor-config.ts
|
|
1905
1890
|
var getElementorConfig = () => {
|
|
@@ -1913,7 +1898,7 @@ var FontFamilyField = () => {
|
|
|
1913
1898
|
if (!fontFamilies) {
|
|
1914
1899
|
return null;
|
|
1915
1900
|
}
|
|
1916
|
-
return /* @__PURE__ */ React45.createElement(StylesField, { bind: "font-family" }, /* @__PURE__ */ React45.createElement(
|
|
1901
|
+
return /* @__PURE__ */ React45.createElement(StylesField, { bind: "font-family" }, /* @__PURE__ */ React45.createElement(import_ui37.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React45.createElement(import_ui37.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React45.createElement(import_editor_controls29.ControlLabel, null, (0, import_i18n27.__)("Font Family", "elementor"))), /* @__PURE__ */ React45.createElement(import_ui37.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React45.createElement(import_editor_controls29.FontFamilyControl, { fontFamilies }))));
|
|
1917
1902
|
};
|
|
1918
1903
|
var getFontFamilies = () => {
|
|
1919
1904
|
const { controls } = getElementorConfig();
|
|
@@ -1927,113 +1912,123 @@ var getFontFamilies = () => {
|
|
|
1927
1912
|
// src/components/style-sections/typography-section/font-size-field.tsx
|
|
1928
1913
|
var React46 = __toESM(require("react"));
|
|
1929
1914
|
var import_editor_controls30 = require("@elementor/editor-controls");
|
|
1930
|
-
var
|
|
1931
|
-
var
|
|
1915
|
+
var import_ui38 = require("@elementor/ui");
|
|
1916
|
+
var import_i18n28 = require("@wordpress/i18n");
|
|
1932
1917
|
var FontSizeField = () => {
|
|
1933
|
-
return /* @__PURE__ */ React46.createElement(StylesField, { bind: "font-size" }, /* @__PURE__ */ React46.createElement(
|
|
1918
|
+
return /* @__PURE__ */ React46.createElement(StylesField, { bind: "font-size" }, /* @__PURE__ */ React46.createElement(import_ui38.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React46.createElement(import_ui38.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React46.createElement(import_editor_controls30.ControlLabel, null, (0, import_i18n28.__)("Font Size", "elementor"))), /* @__PURE__ */ React46.createElement(import_ui38.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React46.createElement(import_editor_controls30.SizeControl, null))));
|
|
1934
1919
|
};
|
|
1935
1920
|
|
|
1936
1921
|
// src/components/style-sections/typography-section/font-weight-field.tsx
|
|
1937
1922
|
var React47 = __toESM(require("react"));
|
|
1938
1923
|
var import_editor_controls31 = require("@elementor/editor-controls");
|
|
1939
|
-
var
|
|
1940
|
-
var
|
|
1924
|
+
var import_ui39 = require("@elementor/ui");
|
|
1925
|
+
var import_i18n29 = require("@wordpress/i18n");
|
|
1941
1926
|
var fontWeightOptions = [
|
|
1942
|
-
{ label: (0,
|
|
1943
|
-
{ label: (0,
|
|
1944
|
-
{ label: (0,
|
|
1945
|
-
{ label: (0,
|
|
1946
|
-
{ label: (0,
|
|
1927
|
+
{ value: "100", label: (0, import_i18n29.__)("100 - Thin", "elementor") },
|
|
1928
|
+
{ value: "200", label: (0, import_i18n29.__)("200 - Extra Light", "elementor") },
|
|
1929
|
+
{ value: "300", label: (0, import_i18n29.__)("300 - Light", "elementor") },
|
|
1930
|
+
{ value: "400", label: (0, import_i18n29.__)("400 - Normal", "elementor") },
|
|
1931
|
+
{ value: "500", label: (0, import_i18n29.__)("500 - Medium", "elementor") },
|
|
1932
|
+
{ value: "600", label: (0, import_i18n29.__)("600 - Semi Bold", "elementor") },
|
|
1933
|
+
{ value: "700", label: (0, import_i18n29.__)("700 - Bold", "elementor") },
|
|
1934
|
+
{ value: "800", label: (0, import_i18n29.__)("800 - Extra Bold", "elementor") },
|
|
1935
|
+
{ value: "900", label: (0, import_i18n29.__)("900 - Black", "elementor") }
|
|
1947
1936
|
];
|
|
1948
1937
|
var FontWeightField = () => {
|
|
1949
|
-
return /* @__PURE__ */ React47.createElement(StylesField, { bind: "font-weight" }, /* @__PURE__ */ React47.createElement(
|
|
1938
|
+
return /* @__PURE__ */ React47.createElement(StylesField, { bind: "font-weight" }, /* @__PURE__ */ React47.createElement(import_ui39.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React47.createElement(import_ui39.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(import_editor_controls31.ControlLabel, null, (0, import_i18n29.__)("Font Weight", "elementor"))), /* @__PURE__ */ React47.createElement(import_ui39.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(import_editor_controls31.SelectControl, { options: fontWeightOptions }))));
|
|
1950
1939
|
};
|
|
1951
1940
|
|
|
1952
1941
|
// src/components/style-sections/typography-section/letter-spacing-field.tsx
|
|
1953
1942
|
var React48 = __toESM(require("react"));
|
|
1954
1943
|
var import_editor_controls32 = require("@elementor/editor-controls");
|
|
1955
|
-
var
|
|
1956
|
-
var
|
|
1944
|
+
var import_ui40 = require("@elementor/ui");
|
|
1945
|
+
var import_i18n30 = require("@wordpress/i18n");
|
|
1957
1946
|
var LetterSpacingField = () => {
|
|
1958
|
-
return /* @__PURE__ */ React48.createElement(StylesField, { bind: "letter-spacing" }, /* @__PURE__ */ React48.createElement(
|
|
1947
|
+
return /* @__PURE__ */ React48.createElement(StylesField, { bind: "letter-spacing" }, /* @__PURE__ */ React48.createElement(import_ui40.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React48.createElement(import_ui40.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React48.createElement(import_editor_controls32.ControlLabel, null, (0, import_i18n30.__)("Letter Spacing", "elementor"))), /* @__PURE__ */ React48.createElement(import_ui40.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React48.createElement(import_editor_controls32.SizeControl, null))));
|
|
1959
1948
|
};
|
|
1960
1949
|
|
|
1961
1950
|
// src/components/style-sections/typography-section/line-height-field.tsx
|
|
1962
1951
|
var React49 = __toESM(require("react"));
|
|
1963
1952
|
var import_editor_controls33 = require("@elementor/editor-controls");
|
|
1964
|
-
var
|
|
1965
|
-
var
|
|
1953
|
+
var import_ui41 = require("@elementor/ui");
|
|
1954
|
+
var import_i18n31 = require("@wordpress/i18n");
|
|
1966
1955
|
var LineHeightField = () => {
|
|
1967
|
-
return /* @__PURE__ */ React49.createElement(StylesField, { bind: "line-height" }, /* @__PURE__ */ React49.createElement(
|
|
1956
|
+
return /* @__PURE__ */ React49.createElement(StylesField, { bind: "line-height" }, /* @__PURE__ */ React49.createElement(import_ui41.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React49.createElement(import_ui41.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(import_editor_controls33.ControlLabel, null, (0, import_i18n31.__)("Line Height", "elementor"))), /* @__PURE__ */ React49.createElement(import_ui41.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(import_editor_controls33.SizeControl, null))));
|
|
1968
1957
|
};
|
|
1969
1958
|
|
|
1970
1959
|
// src/components/style-sections/typography-section/text-alignment-field.tsx
|
|
1971
1960
|
var React50 = __toESM(require("react"));
|
|
1972
1961
|
var import_editor_controls34 = require("@elementor/editor-controls");
|
|
1973
|
-
var
|
|
1974
|
-
var
|
|
1975
|
-
var
|
|
1962
|
+
var import_icons16 = require("@elementor/icons");
|
|
1963
|
+
var import_ui42 = require("@elementor/ui");
|
|
1964
|
+
var import_i18n32 = require("@wordpress/i18n");
|
|
1965
|
+
var StartIcon4 = (0, import_ui42.withDirection)(import_icons16.AlignLeftIcon);
|
|
1966
|
+
var EndIcon4 = (0, import_ui42.withDirection)(import_icons16.AlignRightIcon);
|
|
1976
1967
|
var options7 = [
|
|
1977
1968
|
{
|
|
1978
|
-
value: "
|
|
1979
|
-
label: (0,
|
|
1980
|
-
renderContent: (
|
|
1969
|
+
value: "start",
|
|
1970
|
+
label: (0, import_i18n32.__)("Start", "elementor"),
|
|
1971
|
+
renderContent: () => /* @__PURE__ */ React50.createElement(RotatedIcon, { icon: StartIcon4, size: "tiny" }),
|
|
1972
|
+
showTooltip: true
|
|
1981
1973
|
},
|
|
1982
1974
|
{
|
|
1983
1975
|
value: "center",
|
|
1984
|
-
label: (0,
|
|
1985
|
-
renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(
|
|
1976
|
+
label: (0, import_i18n32.__)("Center", "elementor"),
|
|
1977
|
+
renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(import_icons16.AlignCenterIcon, { fontSize: size }),
|
|
1978
|
+
showTooltip: true
|
|
1986
1979
|
},
|
|
1987
1980
|
{
|
|
1988
|
-
value: "
|
|
1989
|
-
label: (0,
|
|
1990
|
-
renderContent: (
|
|
1981
|
+
value: "end",
|
|
1982
|
+
label: (0, import_i18n32.__)("End", "elementor"),
|
|
1983
|
+
renderContent: () => /* @__PURE__ */ React50.createElement(RotatedIcon, { icon: EndIcon4, size: "tiny" }),
|
|
1984
|
+
showTooltip: true
|
|
1991
1985
|
},
|
|
1992
1986
|
{
|
|
1993
1987
|
value: "justify",
|
|
1994
|
-
label: (0,
|
|
1995
|
-
renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(
|
|
1988
|
+
label: (0, import_i18n32.__)("Justify", "elementor"),
|
|
1989
|
+
renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(import_icons16.AlignJustifiedIcon, { fontSize: size }),
|
|
1990
|
+
showTooltip: true
|
|
1996
1991
|
}
|
|
1997
1992
|
];
|
|
1998
1993
|
var TextAlignmentField = () => {
|
|
1999
|
-
return /* @__PURE__ */ React50.createElement(StylesField, { bind: "text-align" }, /* @__PURE__ */ React50.createElement(
|
|
1994
|
+
return /* @__PURE__ */ React50.createElement(StylesField, { bind: "text-align" }, /* @__PURE__ */ React50.createElement(import_ui42.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React50.createElement(import_ui42.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React50.createElement(import_editor_controls34.ControlLabel, null, (0, import_i18n32.__)("Alignment", "elementor"))), /* @__PURE__ */ React50.createElement(import_ui42.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React50.createElement(import_editor_controls34.ToggleControl, { options: options7 }))));
|
|
2000
1995
|
};
|
|
2001
1996
|
|
|
2002
1997
|
// src/components/style-sections/typography-section/text-color-field.tsx
|
|
2003
1998
|
var React51 = __toESM(require("react"));
|
|
2004
1999
|
var import_editor_controls35 = require("@elementor/editor-controls");
|
|
2005
|
-
var
|
|
2006
|
-
var
|
|
2000
|
+
var import_ui43 = require("@elementor/ui");
|
|
2001
|
+
var import_i18n33 = require("@wordpress/i18n");
|
|
2007
2002
|
var TextColorField = () => {
|
|
2008
|
-
return /* @__PURE__ */ React51.createElement(StylesField, { bind: "color" }, /* @__PURE__ */ React51.createElement(
|
|
2003
|
+
return /* @__PURE__ */ React51.createElement(StylesField, { bind: "color" }, /* @__PURE__ */ React51.createElement(import_ui43.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React51.createElement(import_ui43.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React51.createElement(import_editor_controls35.ControlLabel, null, (0, import_i18n33.__)("Text Color", "elementor"))), /* @__PURE__ */ React51.createElement(import_ui43.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React51.createElement(import_editor_controls35.ColorControl, null))));
|
|
2009
2004
|
};
|
|
2010
2005
|
|
|
2011
2006
|
// src/components/style-sections/typography-section/text-direction-field.tsx
|
|
2012
2007
|
var React52 = __toESM(require("react"));
|
|
2013
2008
|
var import_editor_controls36 = require("@elementor/editor-controls");
|
|
2014
|
-
var
|
|
2015
|
-
var
|
|
2016
|
-
var
|
|
2009
|
+
var import_icons17 = require("@elementor/icons");
|
|
2010
|
+
var import_ui44 = require("@elementor/ui");
|
|
2011
|
+
var import_i18n34 = require("@wordpress/i18n");
|
|
2017
2012
|
var options8 = [
|
|
2018
2013
|
{
|
|
2019
2014
|
value: "ltr",
|
|
2020
|
-
label: (0,
|
|
2021
|
-
renderContent: ({ size }) => /* @__PURE__ */ React52.createElement(
|
|
2015
|
+
label: (0, import_i18n34.__)("Left to Right", "elementor"),
|
|
2016
|
+
renderContent: ({ size }) => /* @__PURE__ */ React52.createElement(import_icons17.TextDirectionLtrIcon, { fontSize: size })
|
|
2022
2017
|
},
|
|
2023
2018
|
{
|
|
2024
2019
|
value: "rtl",
|
|
2025
|
-
label: (0,
|
|
2026
|
-
renderContent: ({ size }) => /* @__PURE__ */ React52.createElement(
|
|
2020
|
+
label: (0, import_i18n34.__)("Right to Left", "elementor"),
|
|
2021
|
+
renderContent: ({ size }) => /* @__PURE__ */ React52.createElement(import_icons17.TextDirectionRtlIcon, { fontSize: size })
|
|
2027
2022
|
}
|
|
2028
2023
|
];
|
|
2029
2024
|
var TextDirectionField = () => {
|
|
2030
|
-
return /* @__PURE__ */ React52.createElement(StylesField, { bind: "direction" }, /* @__PURE__ */ React52.createElement(
|
|
2025
|
+
return /* @__PURE__ */ React52.createElement(StylesField, { bind: "direction" }, /* @__PURE__ */ React52.createElement(import_ui44.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React52.createElement(import_ui44.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React52.createElement(import_editor_controls36.ControlLabel, null, (0, import_i18n34.__)("Direction", "elementor"))), /* @__PURE__ */ React52.createElement(import_ui44.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React52.createElement(import_editor_controls36.ToggleControl, { options: options8 }))));
|
|
2031
2026
|
};
|
|
2032
2027
|
|
|
2033
2028
|
// src/components/style-sections/typography-section/text-stroke-field.tsx
|
|
2034
2029
|
var React53 = __toESM(require("react"));
|
|
2035
2030
|
var import_editor_controls37 = require("@elementor/editor-controls");
|
|
2036
|
-
var
|
|
2031
|
+
var import_i18n35 = require("@wordpress/i18n");
|
|
2037
2032
|
var initTextStroke = {
|
|
2038
2033
|
$$type: "stroke",
|
|
2039
2034
|
value: {
|
|
@@ -2051,7 +2046,7 @@ var initTextStroke = {
|
|
|
2051
2046
|
}
|
|
2052
2047
|
};
|
|
2053
2048
|
var TextStrokeField = () => {
|
|
2054
|
-
const [textStroke, setTextStroke] = useStylesField("
|
|
2049
|
+
const [textStroke, setTextStroke] = useStylesField("stroke");
|
|
2055
2050
|
const addTextStroke = () => {
|
|
2056
2051
|
setTextStroke(initTextStroke);
|
|
2057
2052
|
};
|
|
@@ -2062,21 +2057,21 @@ var TextStrokeField = () => {
|
|
|
2062
2057
|
return /* @__PURE__ */ React53.createElement(
|
|
2063
2058
|
AddOrRemoveContent,
|
|
2064
2059
|
{
|
|
2065
|
-
label: (0,
|
|
2060
|
+
label: (0, import_i18n35.__)("Text Stroke", "elementor"),
|
|
2066
2061
|
isAdded: hasTextStroke,
|
|
2067
2062
|
onAdd: addTextStroke,
|
|
2068
2063
|
onRemove: removeTextStroke
|
|
2069
2064
|
},
|
|
2070
|
-
/* @__PURE__ */ React53.createElement(StylesField, { bind: "
|
|
2065
|
+
/* @__PURE__ */ React53.createElement(StylesField, { bind: "stroke" }, /* @__PURE__ */ React53.createElement(import_editor_controls37.StrokeControl, null))
|
|
2071
2066
|
);
|
|
2072
2067
|
};
|
|
2073
2068
|
|
|
2074
2069
|
// src/components/style-sections/typography-section/text-style-field.tsx
|
|
2075
2070
|
var React54 = __toESM(require("react"));
|
|
2076
2071
|
var import_editor_controls38 = require("@elementor/editor-controls");
|
|
2077
|
-
var
|
|
2078
|
-
var
|
|
2079
|
-
var
|
|
2072
|
+
var import_icons18 = require("@elementor/icons");
|
|
2073
|
+
var import_ui45 = require("@elementor/ui");
|
|
2074
|
+
var import_i18n36 = require("@wordpress/i18n");
|
|
2080
2075
|
var buttonSize = "tiny";
|
|
2081
2076
|
var TextStyleField = () => {
|
|
2082
2077
|
const [fontStyle, setFontStyle] = useStylesField("font-style");
|
|
@@ -2100,7 +2095,7 @@ var TextStyleField = () => {
|
|
|
2100
2095
|
value: newValue
|
|
2101
2096
|
});
|
|
2102
2097
|
};
|
|
2103
|
-
return /* @__PURE__ */ React54.createElement(
|
|
2098
|
+
return /* @__PURE__ */ React54.createElement(import_ui45.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React54.createElement(import_ui45.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(import_editor_controls38.ControlLabel, null, (0, import_i18n36.__)("Style", "elementor"))), /* @__PURE__ */ React54.createElement(import_ui45.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React54.createElement(import_ui45.ToggleButtonGroup, { value: formats }, /* @__PURE__ */ React54.createElement(
|
|
2104
2099
|
ToggleButton,
|
|
2105
2100
|
{
|
|
2106
2101
|
value: "italic",
|
|
@@ -2108,7 +2103,7 @@ var TextStyleField = () => {
|
|
|
2108
2103
|
"aria-label": "italic",
|
|
2109
2104
|
sx: { marginLeft: "auto" }
|
|
2110
2105
|
},
|
|
2111
|
-
/* @__PURE__ */ React54.createElement(
|
|
2106
|
+
/* @__PURE__ */ React54.createElement(import_icons18.ItalicIcon, { fontSize: buttonSize })
|
|
2112
2107
|
), /* @__PURE__ */ React54.createElement(
|
|
2113
2108
|
ShorthandControl,
|
|
2114
2109
|
{
|
|
@@ -2117,7 +2112,7 @@ var TextStyleField = () => {
|
|
|
2117
2112
|
updateValues: handleSetTextDecoration,
|
|
2118
2113
|
"aria-label": "line-through"
|
|
2119
2114
|
},
|
|
2120
|
-
/* @__PURE__ */ React54.createElement(
|
|
2115
|
+
/* @__PURE__ */ React54.createElement(import_icons18.StrikethroughIcon, { fontSize: buttonSize })
|
|
2121
2116
|
), /* @__PURE__ */ React54.createElement(
|
|
2122
2117
|
ShorthandControl,
|
|
2123
2118
|
{
|
|
@@ -2126,7 +2121,7 @@ var TextStyleField = () => {
|
|
|
2126
2121
|
updateValues: handleSetTextDecoration,
|
|
2127
2122
|
"aria-label": "underline"
|
|
2128
2123
|
},
|
|
2129
|
-
/* @__PURE__ */ React54.createElement(
|
|
2124
|
+
/* @__PURE__ */ React54.createElement(import_icons18.UnderlineIcon, { fontSize: buttonSize })
|
|
2130
2125
|
))));
|
|
2131
2126
|
};
|
|
2132
2127
|
var ShorthandControl = ({
|
|
@@ -2151,46 +2146,55 @@ var ToggleButton = ({ onChange, ...props }) => {
|
|
|
2151
2146
|
const handleChange = (_e, newValue) => {
|
|
2152
2147
|
onChange(newValue);
|
|
2153
2148
|
};
|
|
2154
|
-
return /* @__PURE__ */ React54.createElement(
|
|
2149
|
+
return /* @__PURE__ */ React54.createElement(import_ui45.ToggleButton, { ...props, onChange: handleChange, size: buttonSize });
|
|
2155
2150
|
};
|
|
2156
2151
|
|
|
2157
2152
|
// src/components/style-sections/typography-section/transform-field.tsx
|
|
2158
2153
|
var React55 = __toESM(require("react"));
|
|
2159
2154
|
var import_editor_controls39 = require("@elementor/editor-controls");
|
|
2160
|
-
var
|
|
2161
|
-
var
|
|
2162
|
-
var
|
|
2155
|
+
var import_icons19 = require("@elementor/icons");
|
|
2156
|
+
var import_ui46 = require("@elementor/ui");
|
|
2157
|
+
var import_i18n37 = require("@wordpress/i18n");
|
|
2163
2158
|
var options9 = [
|
|
2159
|
+
{
|
|
2160
|
+
value: "none",
|
|
2161
|
+
label: (0, import_i18n37.__)("None", "elementor"),
|
|
2162
|
+
renderContent: ({ size }) => /* @__PURE__ */ React55.createElement(import_icons19.MinusIcon, { fontSize: size }),
|
|
2163
|
+
showTooltip: true
|
|
2164
|
+
},
|
|
2164
2165
|
{
|
|
2165
2166
|
value: "capitalize",
|
|
2166
|
-
label: (0,
|
|
2167
|
-
renderContent: ({ size }) => /* @__PURE__ */ React55.createElement(
|
|
2167
|
+
label: (0, import_i18n37.__)("Capitalize", "elementor"),
|
|
2168
|
+
renderContent: ({ size }) => /* @__PURE__ */ React55.createElement(import_icons19.LetterCaseIcon, { fontSize: size }),
|
|
2169
|
+
showTooltip: true
|
|
2168
2170
|
},
|
|
2169
2171
|
{
|
|
2170
2172
|
value: "uppercase",
|
|
2171
|
-
label: (0,
|
|
2172
|
-
renderContent: ({ size }) => /* @__PURE__ */ React55.createElement(
|
|
2173
|
+
label: (0, import_i18n37.__)("Uppercase", "elementor"),
|
|
2174
|
+
renderContent: ({ size }) => /* @__PURE__ */ React55.createElement(import_icons19.LetterCaseUpperIcon, { fontSize: size }),
|
|
2175
|
+
showTooltip: true
|
|
2173
2176
|
},
|
|
2174
2177
|
{
|
|
2175
2178
|
value: "lowercase",
|
|
2176
|
-
label: (0,
|
|
2177
|
-
renderContent: ({ size }) => /* @__PURE__ */ React55.createElement(
|
|
2179
|
+
label: (0, import_i18n37.__)("Lowercase", "elementor"),
|
|
2180
|
+
renderContent: ({ size }) => /* @__PURE__ */ React55.createElement(import_icons19.LetterCaseLowerIcon, { fontSize: size }),
|
|
2181
|
+
showTooltip: true
|
|
2178
2182
|
}
|
|
2179
2183
|
];
|
|
2180
|
-
var TransformField = () => /* @__PURE__ */ React55.createElement(StylesField, { bind: "text-transform" }, /* @__PURE__ */ React55.createElement(
|
|
2184
|
+
var TransformField = () => /* @__PURE__ */ React55.createElement(StylesField, { bind: "text-transform" }, /* @__PURE__ */ React55.createElement(import_ui46.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React55.createElement(import_ui46.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(import_editor_controls39.ControlLabel, null, (0, import_i18n37.__)("Text Transform", "elementor"))), /* @__PURE__ */ React55.createElement(import_ui46.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React55.createElement(import_editor_controls39.ToggleControl, { options: options9 }))));
|
|
2181
2185
|
|
|
2182
2186
|
// src/components/style-sections/typography-section/word-spacing-field.tsx
|
|
2183
2187
|
var React56 = __toESM(require("react"));
|
|
2184
2188
|
var import_editor_controls40 = require("@elementor/editor-controls");
|
|
2185
|
-
var
|
|
2186
|
-
var
|
|
2189
|
+
var import_ui47 = require("@elementor/ui");
|
|
2190
|
+
var import_i18n38 = require("@wordpress/i18n");
|
|
2187
2191
|
var WordSpacingField = () => {
|
|
2188
|
-
return /* @__PURE__ */ React56.createElement(StylesField, { bind: "word-spacing" }, /* @__PURE__ */ React56.createElement(
|
|
2192
|
+
return /* @__PURE__ */ React56.createElement(StylesField, { bind: "word-spacing" }, /* @__PURE__ */ React56.createElement(import_ui47.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React56.createElement(import_ui47.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React56.createElement(import_editor_controls40.ControlLabel, null, (0, import_i18n38.__)("Word Spacing", "elementor"))), /* @__PURE__ */ React56.createElement(import_ui47.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React56.createElement(import_editor_controls40.SizeControl, null))));
|
|
2189
2193
|
};
|
|
2190
2194
|
|
|
2191
2195
|
// src/components/style-sections/typography-section/typography-section.tsx
|
|
2192
2196
|
var TypographySection = () => {
|
|
2193
|
-
return /* @__PURE__ */ React57.createElement(
|
|
2197
|
+
return /* @__PURE__ */ React57.createElement(import_ui48.Stack, { gap: 1.5 }, /* @__PURE__ */ React57.createElement(FontFamilyField, null), /* @__PURE__ */ React57.createElement(FontWeightField, null), /* @__PURE__ */ React57.createElement(FontSizeField, null), /* @__PURE__ */ React57.createElement(import_ui48.Divider, null), /* @__PURE__ */ React57.createElement(TextAlignmentField, null), /* @__PURE__ */ React57.createElement(TextColorField, null), /* @__PURE__ */ React57.createElement(CollapsibleContent, null, /* @__PURE__ */ React57.createElement(import_ui48.Stack, { 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(import_ui48.Divider, null), /* @__PURE__ */ React57.createElement(TextStyleField, null), /* @__PURE__ */ React57.createElement(TransformField, null), /* @__PURE__ */ React57.createElement(TextDirectionField, null), /* @__PURE__ */ React57.createElement(TextStrokeField, null))));
|
|
2194
2198
|
};
|
|
2195
2199
|
|
|
2196
2200
|
// src/components/style-tab.tsx
|
|
@@ -2198,7 +2202,7 @@ var CLASSES_PROP_KEY = "classes";
|
|
|
2198
2202
|
var StyleTab = () => {
|
|
2199
2203
|
const currentClassesProp = useCurrentClassesProp();
|
|
2200
2204
|
const [activeStyleDefId, setActiveStyleDefId] = useActiveStyleDefId(currentClassesProp);
|
|
2201
|
-
const [activeStyleState, setActiveStyleState] = (0,
|
|
2205
|
+
const [activeStyleState, setActiveStyleState] = (0, import_react13.useState)(null);
|
|
2202
2206
|
const breakpoint = (0, import_editor_responsive.useActiveBreakpoint)();
|
|
2203
2207
|
return /* @__PURE__ */ React58.createElement(ClassesPropProvider, { prop: currentClassesProp }, /* @__PURE__ */ React58.createElement(
|
|
2204
2208
|
StyleProvider,
|
|
@@ -2211,11 +2215,11 @@ var StyleTab = () => {
|
|
|
2211
2215
|
},
|
|
2212
2216
|
setMetaState: setActiveStyleState
|
|
2213
2217
|
},
|
|
2214
|
-
/* @__PURE__ */ React58.createElement(
|
|
2218
|
+
/* @__PURE__ */ React58.createElement(import_session3.SessionStorageProvider, { prefix: activeStyleDefId ?? "" }, /* @__PURE__ */ React58.createElement(CssClassSelector, null), /* @__PURE__ */ React58.createElement(import_ui49.Divider, null), /* @__PURE__ */ React58.createElement(SectionsList, null, /* @__PURE__ */ React58.createElement(Section, { title: (0, import_i18n39.__)("Layout", "elementor") }, /* @__PURE__ */ React58.createElement(LayoutSection, null)), /* @__PURE__ */ React58.createElement(Section, { title: (0, import_i18n39.__)("Spacing", "elementor") }, /* @__PURE__ */ React58.createElement(SpacingSection, null)), /* @__PURE__ */ React58.createElement(Section, { title: (0, import_i18n39.__)("Size", "elementor") }, /* @__PURE__ */ React58.createElement(SizeSection, null)), /* @__PURE__ */ React58.createElement(Section, { title: (0, import_i18n39.__)("Position", "elementor") }, /* @__PURE__ */ React58.createElement(PositionSection, null)), /* @__PURE__ */ React58.createElement(Section, { title: (0, import_i18n39.__)("Typography", "elementor") }, /* @__PURE__ */ React58.createElement(TypographySection, null)), /* @__PURE__ */ React58.createElement(Section, { title: (0, import_i18n39.__)("Background", "elementor") }, /* @__PURE__ */ React58.createElement(BackgroundSection, null)), /* @__PURE__ */ React58.createElement(Section, { title: (0, import_i18n39.__)("Border", "elementor") }, /* @__PURE__ */ React58.createElement(BorderSection, null)), /* @__PURE__ */ React58.createElement(Section, { title: (0, import_i18n39.__)("Effects", "elementor") }, /* @__PURE__ */ React58.createElement(EffectsSection, null))))
|
|
2215
2219
|
));
|
|
2216
2220
|
};
|
|
2217
2221
|
function useActiveStyleDefId(currentClassesProp) {
|
|
2218
|
-
const [activeStyledDefId, setActiveStyledDefId] = (0,
|
|
2222
|
+
const [activeStyledDefId, setActiveStyledDefId] = (0, import_react13.useState)(null);
|
|
2219
2223
|
const fallback = useFirstElementStyleDef(currentClassesProp);
|
|
2220
2224
|
return [activeStyledDefId || fallback?.id || null, setActiveStyledDefId];
|
|
2221
2225
|
}
|
|
@@ -2239,11 +2243,11 @@ function useCurrentClassesProp() {
|
|
|
2239
2243
|
// src/components/editing-panel-tabs.tsx
|
|
2240
2244
|
var EditingPanelTabs = () => {
|
|
2241
2245
|
const { element } = useElement();
|
|
2242
|
-
const { getTabProps, getTabPanelProps, getTabsProps } = (0,
|
|
2246
|
+
const { getTabProps, getTabPanelProps, getTabsProps } = (0, import_ui50.useTabs)("settings");
|
|
2243
2247
|
return (
|
|
2244
2248
|
// When switching between elements, the local states should be reset. We are using key to rerender the tabs.
|
|
2245
2249
|
// Reference: https://react.dev/learn/preserving-and-resetting-state#resetting-a-form-with-a-key
|
|
2246
|
-
/* @__PURE__ */ React59.createElement(
|
|
2250
|
+
/* @__PURE__ */ React59.createElement(import_react14.Fragment, { key: element.id }, /* @__PURE__ */ React59.createElement(import_ui50.Stack, { direction: "column", sx: { width: "100%" } }, /* @__PURE__ */ React59.createElement(import_ui50.Tabs, { variant: "fullWidth", indicatorColor: "secondary", textColor: "inherit", ...getTabsProps() }, /* @__PURE__ */ React59.createElement(import_ui50.Tab, { label: (0, import_i18n40.__)("General", "elementor"), ...getTabProps("settings") }), /* @__PURE__ */ React59.createElement(import_ui50.Tab, { label: (0, import_i18n40.__)("Style", "elementor"), ...getTabProps("style") })), /* @__PURE__ */ React59.createElement(import_ui50.Divider, null), /* @__PURE__ */ React59.createElement(import_ui50.TabPanel, { ...getTabPanelProps("settings"), disablePadding: true }, /* @__PURE__ */ React59.createElement(SettingsTab, null)), /* @__PURE__ */ React59.createElement(import_ui50.TabPanel, { ...getTabPanelProps("style"), disablePadding: true }, /* @__PURE__ */ React59.createElement(StyleTab, null))))
|
|
2247
2251
|
);
|
|
2248
2252
|
};
|
|
2249
2253
|
|
|
@@ -2256,8 +2260,8 @@ var EditingPanel = () => {
|
|
|
2256
2260
|
if (!element || !elementType) {
|
|
2257
2261
|
return null;
|
|
2258
2262
|
}
|
|
2259
|
-
const panelTitle = (0,
|
|
2260
|
-
return /* @__PURE__ */ React60.createElement(
|
|
2263
|
+
const panelTitle = (0, import_i18n41.__)("Edit %s", "elementor").replace("%s", elementType.title);
|
|
2264
|
+
return /* @__PURE__ */ React60.createElement(import_ui51.ErrorBoundary, { fallback: /* @__PURE__ */ React60.createElement(EditorPanelErrorFallback, null) }, /* @__PURE__ */ React60.createElement(import_session4.SessionStorageProvider, { prefix: "elementor" }, /* @__PURE__ */ React60.createElement(import_editor_panels.Panel, null, /* @__PURE__ */ React60.createElement(import_editor_panels.PanelHeader, null, /* @__PURE__ */ React60.createElement(import_editor_panels.PanelHeaderTitle, null, panelTitle)), /* @__PURE__ */ React60.createElement(import_editor_panels.PanelBody, null, /* @__PURE__ */ React60.createElement(import_editor_controls41.ControlActionsProvider, { items: menuItems }, /* @__PURE__ */ React60.createElement(import_editor_controls41.ControlReplacementProvider, { ...controlReplacement }, /* @__PURE__ */ React60.createElement(ElementProvider, { element, elementType }, /* @__PURE__ */ React60.createElement(EditingPanelTabs, null))))))));
|
|
2261
2265
|
};
|
|
2262
2266
|
|
|
2263
2267
|
// src/panel.ts
|
|
@@ -2269,12 +2273,12 @@ var { panel, usePanelActions, usePanelStatus } = (0, import_editor_panels2.__cre
|
|
|
2269
2273
|
// src/init.ts
|
|
2270
2274
|
var import_editor = require("@elementor/editor");
|
|
2271
2275
|
var import_editor_panels3 = require("@elementor/editor-panels");
|
|
2272
|
-
var
|
|
2276
|
+
var import_editor_v1_adapters5 = require("@elementor/editor-v1-adapters");
|
|
2273
2277
|
|
|
2274
2278
|
// src/hooks/use-close-editor-panel.ts
|
|
2275
|
-
var
|
|
2279
|
+
var import_react15 = require("react");
|
|
2276
2280
|
var import_editor_elements9 = require("@elementor/editor-elements");
|
|
2277
|
-
var
|
|
2281
|
+
var import_editor_v1_adapters3 = require("@elementor/editor-v1-adapters");
|
|
2278
2282
|
|
|
2279
2283
|
// src/sync/is-atomic-widget-selected.ts
|
|
2280
2284
|
var import_editor_elements8 = require("@elementor/editor-elements");
|
|
@@ -2290,8 +2294,8 @@ var isAtomicWidgetSelected = () => {
|
|
|
2290
2294
|
// src/hooks/use-close-editor-panel.ts
|
|
2291
2295
|
var useCloseEditorPanel = () => {
|
|
2292
2296
|
const { close } = usePanelActions();
|
|
2293
|
-
return (0,
|
|
2294
|
-
return (0,
|
|
2297
|
+
return (0, import_react15.useEffect)(() => {
|
|
2298
|
+
return (0, import_editor_v1_adapters3.__privateListenTo)((0, import_editor_v1_adapters3.commandStartEvent)("document/elements/delete"), (e) => {
|
|
2295
2299
|
const selectedElement = (0, import_editor_elements9.getSelectedElements)()[0];
|
|
2296
2300
|
const { container: deletedContainer } = e?.args;
|
|
2297
2301
|
const isSelectedElementInDeletedContainer = deletedContainer && selectedElement && (0, import_editor_elements9.isElementInContainer)(selectedElement, deletedContainer);
|
|
@@ -2303,12 +2307,12 @@ var useCloseEditorPanel = () => {
|
|
|
2303
2307
|
};
|
|
2304
2308
|
|
|
2305
2309
|
// src/hooks/use-open-editor-panel.ts
|
|
2306
|
-
var
|
|
2307
|
-
var
|
|
2310
|
+
var import_react16 = require("react");
|
|
2311
|
+
var import_editor_v1_adapters4 = require("@elementor/editor-v1-adapters");
|
|
2308
2312
|
var useOpenEditorPanel = () => {
|
|
2309
2313
|
const { open } = usePanelActions();
|
|
2310
|
-
(0,
|
|
2311
|
-
return (0,
|
|
2314
|
+
(0, import_react16.useEffect)(() => {
|
|
2315
|
+
return (0, import_editor_v1_adapters4.__privateListenTo)((0, import_editor_v1_adapters4.commandStartEvent)("panel/editor/open"), () => {
|
|
2312
2316
|
if (isAtomicWidgetSelected()) {
|
|
2313
2317
|
open();
|
|
2314
2318
|
}
|
|
@@ -2325,17 +2329,18 @@ var EditingPanelHooks = () => {
|
|
|
2325
2329
|
|
|
2326
2330
|
// src/dynamics/components/dynamic-selection-control.tsx
|
|
2327
2331
|
var React63 = __toESM(require("react"));
|
|
2328
|
-
var
|
|
2332
|
+
var import_react20 = require("react");
|
|
2329
2333
|
var import_editor_controls45 = require("@elementor/editor-controls");
|
|
2330
|
-
var
|
|
2331
|
-
var
|
|
2332
|
-
var
|
|
2334
|
+
var import_icons21 = require("@elementor/icons");
|
|
2335
|
+
var import_ui53 = require("@elementor/ui");
|
|
2336
|
+
var import_i18n43 = require("@wordpress/i18n");
|
|
2333
2337
|
|
|
2334
2338
|
// src/hooks/use-persist-dynamic-value.ts
|
|
2339
|
+
var import_session5 = require("@elementor/session");
|
|
2335
2340
|
var usePersistDynamicValue = (propKey) => {
|
|
2336
2341
|
const { element } = useElement();
|
|
2337
2342
|
const prefixedKey = `dynamic/non-dynamic-values-history/${element.id}/${propKey}`;
|
|
2338
|
-
return useSessionStorage(prefixedKey);
|
|
2343
|
+
return (0, import_session5.useSessionStorage)(prefixedKey);
|
|
2339
2344
|
};
|
|
2340
2345
|
|
|
2341
2346
|
// src/dynamics/dynamic-control.tsx
|
|
@@ -2343,10 +2348,10 @@ var React61 = __toESM(require("react"));
|
|
|
2343
2348
|
var import_editor_controls43 = require("@elementor/editor-controls");
|
|
2344
2349
|
|
|
2345
2350
|
// src/dynamics/hooks/use-dynamic-tag.ts
|
|
2346
|
-
var
|
|
2351
|
+
var import_react18 = require("react");
|
|
2347
2352
|
|
|
2348
2353
|
// src/dynamics/hooks/use-prop-dynamic-tags.ts
|
|
2349
|
-
var
|
|
2354
|
+
var import_react17 = require("react");
|
|
2350
2355
|
var import_editor_controls42 = require("@elementor/editor-controls");
|
|
2351
2356
|
|
|
2352
2357
|
// src/dynamics/sync/get-elementor-config.ts
|
|
@@ -2398,7 +2403,7 @@ var usePropDynamicTags = () => {
|
|
|
2398
2403
|
const propDynamicType = getDynamicPropType(propType);
|
|
2399
2404
|
categories = propDynamicType?.settings.categories || [];
|
|
2400
2405
|
}
|
|
2401
|
-
return (0,
|
|
2406
|
+
return (0, import_react17.useMemo)(() => getDynamicTagsByCategories(categories), [categories.join()]);
|
|
2402
2407
|
};
|
|
2403
2408
|
var getDynamicTagsByCategories = (categories) => {
|
|
2404
2409
|
const dynamicTags = getAtomicDynamicTags();
|
|
@@ -2414,7 +2419,7 @@ var getDynamicTagsByCategories = (categories) => {
|
|
|
2414
2419
|
// src/dynamics/hooks/use-dynamic-tag.ts
|
|
2415
2420
|
var useDynamicTag = (tagName) => {
|
|
2416
2421
|
const dynamicTags = usePropDynamicTags();
|
|
2417
|
-
return (0,
|
|
2422
|
+
return (0, import_react18.useMemo)(() => dynamicTags.find((tag) => tag.name === tagName) ?? null, [dynamicTags, tagName]);
|
|
2418
2423
|
};
|
|
2419
2424
|
|
|
2420
2425
|
// src/dynamics/dynamic-control.tsx
|
|
@@ -2443,14 +2448,14 @@ var DynamicControl = ({ bind, children }) => {
|
|
|
2443
2448
|
|
|
2444
2449
|
// src/dynamics/components/dynamic-selection.tsx
|
|
2445
2450
|
var React62 = __toESM(require("react"));
|
|
2446
|
-
var
|
|
2451
|
+
var import_react19 = require("react");
|
|
2447
2452
|
var import_editor_controls44 = require("@elementor/editor-controls");
|
|
2448
|
-
var
|
|
2449
|
-
var
|
|
2450
|
-
var
|
|
2453
|
+
var import_icons20 = require("@elementor/icons");
|
|
2454
|
+
var import_ui52 = require("@elementor/ui");
|
|
2455
|
+
var import_i18n42 = require("@wordpress/i18n");
|
|
2451
2456
|
var SIZE3 = "tiny";
|
|
2452
2457
|
var DynamicSelection = ({ onSelect }) => {
|
|
2453
|
-
const [searchValue, setSearchValue] = (0,
|
|
2458
|
+
const [searchValue, setSearchValue] = (0, import_react19.useState)("");
|
|
2454
2459
|
const { groups: dynamicGroups } = getAtomicDynamicTags() || {};
|
|
2455
2460
|
const { value: anyValue } = (0, import_editor_controls44.useBoundProp)();
|
|
2456
2461
|
const { bind, value: dynamicValue, setValue } = (0, import_editor_controls44.useBoundProp)(dynamicPropTypeUtil);
|
|
@@ -2467,22 +2472,22 @@ var DynamicSelection = ({ onSelect }) => {
|
|
|
2467
2472
|
setValue({ name: value, settings: {} });
|
|
2468
2473
|
onSelect?.();
|
|
2469
2474
|
};
|
|
2470
|
-
return /* @__PURE__ */ React62.createElement(
|
|
2471
|
-
|
|
2475
|
+
return /* @__PURE__ */ React62.createElement(import_ui52.Stack, null, /* @__PURE__ */ React62.createElement(import_ui52.Box, { px: 1.5, pb: 1 }, /* @__PURE__ */ React62.createElement(
|
|
2476
|
+
import_ui52.TextField,
|
|
2472
2477
|
{
|
|
2473
2478
|
fullWidth: true,
|
|
2474
2479
|
size: SIZE3,
|
|
2475
2480
|
value: searchValue,
|
|
2476
2481
|
onChange: handleSearch,
|
|
2477
|
-
placeholder: (0,
|
|
2482
|
+
placeholder: (0, import_i18n42.__)("Search dynamic tag", "elementor"),
|
|
2478
2483
|
InputProps: {
|
|
2479
|
-
startAdornment: /* @__PURE__ */ React62.createElement(
|
|
2484
|
+
startAdornment: /* @__PURE__ */ React62.createElement(import_ui52.InputAdornment, { position: "start" }, /* @__PURE__ */ React62.createElement(import_icons20.SearchIcon, { fontSize: SIZE3 }))
|
|
2480
2485
|
}
|
|
2481
2486
|
}
|
|
2482
|
-
)), /* @__PURE__ */ React62.createElement(
|
|
2487
|
+
)), /* @__PURE__ */ React62.createElement(import_ui52.Divider, null), /* @__PURE__ */ React62.createElement(import_ui52.Box, { sx: { overflowY: "auto", height: 260, width: 220 } }, options10.length > 0 ? /* @__PURE__ */ React62.createElement(import_ui52.MenuList, { role: "listbox", tabIndex: 0 }, options10.map(([category, items3], index) => /* @__PURE__ */ React62.createElement(import_react19.Fragment, { key: index }, /* @__PURE__ */ React62.createElement(import_ui52.ListSubheader, { sx: { typography: "caption", color: "text.tertiary" } }, dynamicGroups?.[category]?.title || category), items3.map(({ value, label: tagLabel }) => {
|
|
2483
2488
|
const isSelected = isCurrentValueDynamic && value === dynamicValue?.name;
|
|
2484
2489
|
return /* @__PURE__ */ React62.createElement(
|
|
2485
|
-
|
|
2490
|
+
import_ui52.MenuItem,
|
|
2486
2491
|
{
|
|
2487
2492
|
key: value,
|
|
2488
2493
|
selected: isSelected,
|
|
@@ -2492,16 +2497,16 @@ var DynamicSelection = ({ onSelect }) => {
|
|
|
2492
2497
|
},
|
|
2493
2498
|
tagLabel
|
|
2494
2499
|
);
|
|
2495
|
-
})))) : /* @__PURE__ */ React62.createElement(
|
|
2496
|
-
|
|
2500
|
+
})))) : /* @__PURE__ */ React62.createElement(import_ui52.Stack, { alignItems: "center", p: 2.5, gap: 1.5 }, /* @__PURE__ */ React62.createElement(import_icons20.PhotoIcon, { fontSize: "large" }), /* @__PURE__ */ React62.createElement(import_ui52.Typography, { align: "center", variant: "caption", color: "text.secondary" }, (0, import_i18n42.__)("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React62.createElement("br", null), "\u201C", searchValue, "\u201D."), /* @__PURE__ */ React62.createElement(import_ui52.Typography, { align: "center", variant: "caption", color: "text.secondary" }, /* @__PURE__ */ React62.createElement(
|
|
2501
|
+
import_ui52.Link,
|
|
2497
2502
|
{
|
|
2498
2503
|
color: "secondary",
|
|
2499
2504
|
variant: "caption",
|
|
2500
2505
|
component: "button",
|
|
2501
2506
|
onClick: () => setSearchValue("")
|
|
2502
2507
|
},
|
|
2503
|
-
(0,
|
|
2504
|
-
), "\xA0", (0,
|
|
2508
|
+
(0, import_i18n42.__)("Clear the filters", "elementor")
|
|
2509
|
+
), "\xA0", (0, import_i18n42.__)("and try again.", "elementor")))));
|
|
2505
2510
|
};
|
|
2506
2511
|
var useFilteredOptions = (searchValue) => {
|
|
2507
2512
|
const dynamicTags = usePropDynamicTags();
|
|
@@ -2526,8 +2531,8 @@ var DynamicSelectionControl = () => {
|
|
|
2526
2531
|
const { bind, value } = (0, import_editor_controls45.useBoundProp)(dynamicPropTypeUtil);
|
|
2527
2532
|
const [propValueFromHistory] = usePersistDynamicValue(bind);
|
|
2528
2533
|
const { name: tagName = "" } = value;
|
|
2529
|
-
const selectionPopoverId = (0,
|
|
2530
|
-
const selectionPopoverState = (0,
|
|
2534
|
+
const selectionPopoverId = (0, import_react20.useId)();
|
|
2535
|
+
const selectionPopoverState = (0, import_ui53.usePopupState)({ variant: "popover", popupId: selectionPopoverId });
|
|
2531
2536
|
const dynamicTag = useDynamicTag(tagName);
|
|
2532
2537
|
const removeDynamicTag = () => {
|
|
2533
2538
|
setAnyValue(propValueFromHistory ?? null);
|
|
@@ -2535,68 +2540,68 @@ var DynamicSelectionControl = () => {
|
|
|
2535
2540
|
if (!dynamicTag) {
|
|
2536
2541
|
throw new Error(`Dynamic tag ${tagName} not found`);
|
|
2537
2542
|
}
|
|
2538
|
-
return /* @__PURE__ */ React63.createElement(
|
|
2539
|
-
|
|
2543
|
+
return /* @__PURE__ */ React63.createElement(import_ui53.Box, null, /* @__PURE__ */ React63.createElement(
|
|
2544
|
+
import_ui53.UnstableTag,
|
|
2540
2545
|
{
|
|
2541
2546
|
fullWidth: true,
|
|
2542
2547
|
showActionsOnHover: true,
|
|
2543
2548
|
label: dynamicTag.label,
|
|
2544
|
-
startIcon: /* @__PURE__ */ React63.createElement(
|
|
2545
|
-
...(0,
|
|
2549
|
+
startIcon: /* @__PURE__ */ React63.createElement(import_icons21.DatabaseIcon, { fontSize: SIZE4 }),
|
|
2550
|
+
...(0, import_ui53.bindTrigger)(selectionPopoverState),
|
|
2546
2551
|
actions: /* @__PURE__ */ React63.createElement(React63.Fragment, null, /* @__PURE__ */ React63.createElement(DynamicSettingsPopover, { dynamicTag }), /* @__PURE__ */ React63.createElement(
|
|
2547
|
-
|
|
2552
|
+
import_ui53.IconButton,
|
|
2548
2553
|
{
|
|
2549
2554
|
size: SIZE4,
|
|
2550
2555
|
onClick: removeDynamicTag,
|
|
2551
|
-
"aria-label": (0,
|
|
2556
|
+
"aria-label": (0, import_i18n43.__)("Remove dynamic value", "elementor")
|
|
2552
2557
|
},
|
|
2553
|
-
/* @__PURE__ */ React63.createElement(
|
|
2558
|
+
/* @__PURE__ */ React63.createElement(import_icons21.XIcon, { fontSize: SIZE4 })
|
|
2554
2559
|
))
|
|
2555
2560
|
}
|
|
2556
2561
|
), /* @__PURE__ */ React63.createElement(
|
|
2557
|
-
|
|
2562
|
+
import_ui53.Popover,
|
|
2558
2563
|
{
|
|
2559
2564
|
disablePortal: true,
|
|
2560
2565
|
disableScrollLock: true,
|
|
2561
2566
|
anchorOrigin: { vertical: "bottom", horizontal: "left" },
|
|
2562
|
-
...(0,
|
|
2567
|
+
...(0, import_ui53.bindPopover)(selectionPopoverState)
|
|
2563
2568
|
},
|
|
2564
|
-
/* @__PURE__ */ React63.createElement(
|
|
2569
|
+
/* @__PURE__ */ React63.createElement(import_ui53.Stack, null, /* @__PURE__ */ React63.createElement(import_ui53.Stack, { direction: "row", alignItems: "center", pl: 1.5, pr: 0.5, py: 1.5 }, /* @__PURE__ */ React63.createElement(import_icons21.DatabaseIcon, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React63.createElement(import_ui53.Typography, { variant: "subtitle2" }, (0, import_i18n43.__)("Dynamic Tags", "elementor")), /* @__PURE__ */ React63.createElement(import_ui53.IconButton, { size: SIZE4, sx: { ml: "auto" }, onClick: selectionPopoverState.close }, /* @__PURE__ */ React63.createElement(import_icons21.XIcon, { fontSize: SIZE4 }))), /* @__PURE__ */ React63.createElement(DynamicSelection, { onSelect: selectionPopoverState.close }))
|
|
2565
2570
|
));
|
|
2566
2571
|
};
|
|
2567
2572
|
var DynamicSettingsPopover = ({ dynamicTag }) => {
|
|
2568
|
-
const popupId = (0,
|
|
2569
|
-
const settingsPopupState = (0,
|
|
2573
|
+
const popupId = (0, import_react20.useId)();
|
|
2574
|
+
const settingsPopupState = (0, import_ui53.usePopupState)({ variant: "popover", popupId });
|
|
2570
2575
|
const hasDynamicSettings = !!dynamicTag.atomic_controls.length;
|
|
2571
2576
|
if (!hasDynamicSettings) {
|
|
2572
2577
|
return null;
|
|
2573
2578
|
}
|
|
2574
2579
|
return /* @__PURE__ */ React63.createElement(React63.Fragment, null, /* @__PURE__ */ React63.createElement(
|
|
2575
|
-
|
|
2580
|
+
import_ui53.IconButton,
|
|
2576
2581
|
{
|
|
2577
2582
|
size: SIZE4,
|
|
2578
|
-
...(0,
|
|
2579
|
-
"aria-label": (0,
|
|
2583
|
+
...(0, import_ui53.bindTrigger)(settingsPopupState),
|
|
2584
|
+
"aria-label": (0, import_i18n43.__)("Settings", "elementor")
|
|
2580
2585
|
},
|
|
2581
|
-
/* @__PURE__ */ React63.createElement(
|
|
2586
|
+
/* @__PURE__ */ React63.createElement(import_icons21.SettingsIcon, { fontSize: SIZE4 })
|
|
2582
2587
|
), /* @__PURE__ */ React63.createElement(
|
|
2583
|
-
|
|
2588
|
+
import_ui53.Popover,
|
|
2584
2589
|
{
|
|
2585
2590
|
disableScrollLock: true,
|
|
2586
2591
|
anchorOrigin: { vertical: "bottom", horizontal: "center" },
|
|
2587
|
-
...(0,
|
|
2592
|
+
...(0, import_ui53.bindPopover)(settingsPopupState)
|
|
2588
2593
|
},
|
|
2589
|
-
/* @__PURE__ */ React63.createElement(
|
|
2594
|
+
/* @__PURE__ */ React63.createElement(import_ui53.Paper, { component: import_ui53.Stack, sx: { minHeight: "300px", width: "220px" } }, /* @__PURE__ */ React63.createElement(import_ui53.Stack, { direction: "row", alignItems: "center", px: 1.5, pt: 2, pb: 1 }, /* @__PURE__ */ React63.createElement(import_icons21.DatabaseIcon, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React63.createElement(import_ui53.Typography, { variant: "subtitle2" }, dynamicTag.label), /* @__PURE__ */ React63.createElement(import_ui53.IconButton, { sx: { ml: "auto" }, size: SIZE4, onClick: settingsPopupState.close }, /* @__PURE__ */ React63.createElement(import_icons21.XIcon, { fontSize: SIZE4 }))), /* @__PURE__ */ React63.createElement(DynamicSettings, { controls: dynamicTag.atomic_controls }))
|
|
2590
2595
|
));
|
|
2591
2596
|
};
|
|
2592
2597
|
var DynamicSettings = ({ controls }) => {
|
|
2593
2598
|
const tabs = controls.filter(({ type }) => type === "section");
|
|
2594
|
-
const { getTabsProps, getTabProps, getTabPanelProps } = (0,
|
|
2599
|
+
const { getTabsProps, getTabProps, getTabPanelProps } = (0, import_ui53.useTabs)(0);
|
|
2595
2600
|
if (!tabs.length) {
|
|
2596
2601
|
return null;
|
|
2597
2602
|
}
|
|
2598
|
-
return /* @__PURE__ */ React63.createElement(React63.Fragment, null, /* @__PURE__ */ React63.createElement(
|
|
2599
|
-
return /* @__PURE__ */ React63.createElement(
|
|
2603
|
+
return /* @__PURE__ */ React63.createElement(React63.Fragment, null, /* @__PURE__ */ React63.createElement(import_ui53.Tabs, { indicatorColor: "secondary", textColor: "secondary", ...getTabsProps() }, tabs.map(({ value }, index) => /* @__PURE__ */ React63.createElement(import_ui53.Tab, { key: index, label: value.label, sx: { px: 1, py: 0.5 }, ...getTabProps(index) }))), /* @__PURE__ */ React63.createElement(import_ui53.Divider, null), tabs.map(({ value }, index) => {
|
|
2604
|
+
return /* @__PURE__ */ React63.createElement(import_ui53.TabPanel, { key: index, sx: { flexGrow: 1 }, ...getTabPanelProps(index) }, /* @__PURE__ */ React63.createElement(import_ui53.Stack, { gap: 1, px: 2 }, value.items.map((item) => {
|
|
2600
2605
|
if (item.type === "control") {
|
|
2601
2606
|
return /* @__PURE__ */ React63.createElement(Control3, { key: item.value.bind, control: item.value });
|
|
2602
2607
|
}
|
|
@@ -2614,15 +2619,15 @@ var Control3 = ({ control }) => {
|
|
|
2614
2619
|
// src/dynamics/hooks/use-prop-dynamic-action.tsx
|
|
2615
2620
|
var React64 = __toESM(require("react"));
|
|
2616
2621
|
var import_editor_controls46 = require("@elementor/editor-controls");
|
|
2617
|
-
var
|
|
2618
|
-
var
|
|
2622
|
+
var import_icons22 = require("@elementor/icons");
|
|
2623
|
+
var import_i18n44 = require("@wordpress/i18n");
|
|
2619
2624
|
var usePropDynamicAction = () => {
|
|
2620
2625
|
const { propType } = (0, import_editor_controls46.useBoundProp)();
|
|
2621
2626
|
const visible = !!propType && supportsDynamic(propType);
|
|
2622
2627
|
return {
|
|
2623
2628
|
visible,
|
|
2624
|
-
icon:
|
|
2625
|
-
title: (0,
|
|
2629
|
+
icon: import_icons22.DatabaseIcon,
|
|
2630
|
+
title: (0, import_i18n44.__)("Dynamic Tags", "elementor"),
|
|
2626
2631
|
popoverContent: ({ closePopover }) => /* @__PURE__ */ React64.createElement(DynamicSelection, { onSelect: closePopover })
|
|
2627
2632
|
};
|
|
2628
2633
|
};
|
|
@@ -2651,7 +2656,7 @@ function init2() {
|
|
|
2651
2656
|
init();
|
|
2652
2657
|
}
|
|
2653
2658
|
var blockV1Panel = () => {
|
|
2654
|
-
(0,
|
|
2659
|
+
(0, import_editor_v1_adapters5.blockCommand)({
|
|
2655
2660
|
command: "panel/editor/open",
|
|
2656
2661
|
condition: isAtomicWidgetSelected
|
|
2657
2662
|
});
|