@elementor/editor-editing-panel 1.38.1 → 1.40.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +42 -0
- package/dist/index.js +1038 -754
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1014 -725
- package/dist/index.mjs.map +1 -1
- package/package.json +10 -9
- package/src/components/creatable-autocomplete/autocomplete-option-internal-properties.ts +3 -6
- package/src/components/creatable-autocomplete/creatable-autocomplete.tsx +25 -2
- package/src/components/creatable-autocomplete/types.ts +13 -4
- package/src/components/creatable-autocomplete/use-autocomplete-change.ts +59 -46
- package/src/components/creatable-autocomplete/use-create-option.ts +4 -4
- package/src/components/css-classes/css-class-context.tsx +30 -0
- package/src/components/css-classes/css-class-item.tsx +8 -19
- package/src/components/css-classes/css-class-menu.tsx +78 -78
- package/src/components/css-classes/css-class-selector.tsx +46 -32
- package/src/components/css-classes/use-apply-and-unapply-class.ts +178 -0
- package/src/components/editing-panel-tabs.tsx +7 -1
- package/src/components/settings-tab.tsx +14 -1
- package/src/components/style-indicator.tsx +1 -1
- package/src/components/style-sections/size-section/object-fit-field.tsx +1 -1
- package/src/components/style-sections/size-section/object-position-field.tsx +1 -1
- package/src/components/style-sections/size-section/size-section.tsx +13 -5
- package/src/components/style-sections/typography-section/typography-section.tsx +1 -1
- package/src/components/style-tab.tsx +82 -24
- package/src/controls-registry/controls-registry.tsx +2 -0
- package/src/hooks/use-active-style-def-id.ts +5 -2
- package/src/hooks/use-default-panel-settings.ts +33 -0
- package/src/hooks/use-state-by-element.ts +2 -1
- package/src/sync/experiments-flags.ts +4 -0
- package/src/hooks/use-unapply-class.ts +0 -29
package/dist/index.mjs
CHANGED
|
@@ -6,10 +6,10 @@ import { createControlReplacementsRegistry } from "@elementor/editor-controls";
|
|
|
6
6
|
var { registerControlReplacement, getControlReplacements } = createControlReplacementsRegistry();
|
|
7
7
|
|
|
8
8
|
// src/components/css-classes/css-class-selector.tsx
|
|
9
|
-
import * as
|
|
9
|
+
import * as React8 from "react";
|
|
10
10
|
import { useRef, useState as useState4 } from "react";
|
|
11
|
-
import { getElementSetting, updateElementSettings as updateElementSettings2, useElementSetting
|
|
12
|
-
import { classesPropTypeUtil } from "@elementor/editor-props";
|
|
11
|
+
import { getElementSetting as getElementSetting2, updateElementSettings as updateElementSettings2, useElementSetting } from "@elementor/editor-elements";
|
|
12
|
+
import { classesPropTypeUtil as classesPropTypeUtil2 } from "@elementor/editor-props";
|
|
13
13
|
import {
|
|
14
14
|
isElementsStylesProvider as isElementsStylesProvider2,
|
|
15
15
|
stylesRepository as stylesRepository4,
|
|
@@ -18,10 +18,10 @@ import {
|
|
|
18
18
|
validateStyleLabel as validateStyleLabel2
|
|
19
19
|
} from "@elementor/editor-styles-repository";
|
|
20
20
|
import { WarningInfotip } from "@elementor/editor-ui";
|
|
21
|
-
import { MapPinIcon } from "@elementor/icons";
|
|
21
|
+
import { ColorSwatchIcon, MapPinIcon } from "@elementor/icons";
|
|
22
22
|
import { createLocation } from "@elementor/locations";
|
|
23
|
-
import { Chip as Chip3, FormLabel, Stack as Stack3 } from "@elementor/ui";
|
|
24
|
-
import { __ as
|
|
23
|
+
import { Box as Box2, Chip as Chip3, FormLabel, Link, Stack as Stack3, Typography as Typography3 } from "@elementor/ui";
|
|
24
|
+
import { __ as __4 } from "@wordpress/i18n";
|
|
25
25
|
|
|
26
26
|
// src/contexts/classes-prop-context.tsx
|
|
27
27
|
import * as React from "react";
|
|
@@ -121,48 +121,63 @@ function addGroupToOptions(options12, pluralEntityName) {
|
|
|
121
121
|
};
|
|
122
122
|
});
|
|
123
123
|
}
|
|
124
|
-
function
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
return rest;
|
|
128
|
-
});
|
|
124
|
+
function removeInternalKeys(option) {
|
|
125
|
+
const { _group, _action, ...rest } = option;
|
|
126
|
+
return rest;
|
|
129
127
|
}
|
|
130
128
|
|
|
131
129
|
// src/components/creatable-autocomplete/use-autocomplete-change.ts
|
|
132
130
|
function useAutocompleteChange(params) {
|
|
133
131
|
const { options: options12, onSelect, createOption, setInputValue, closeDropdown } = params;
|
|
134
|
-
|
|
132
|
+
if (!onSelect && !createOption) {
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
const handleChange = async (_, selectedOrInputValue, reason, details) => {
|
|
136
|
+
const changedOption = details?.option;
|
|
137
|
+
if (!changedOption || typeof changedOption === "object" && changedOption.fixed) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
135
140
|
const selectedOptions = selectedOrInputValue.filter((option) => typeof option !== "string");
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
+
switch (reason) {
|
|
142
|
+
case "removeOption":
|
|
143
|
+
const removedOption = changedOption;
|
|
144
|
+
updateSelectedOptions(selectedOptions, "removeOption", removedOption);
|
|
145
|
+
break;
|
|
146
|
+
// User clicked an option. It's either an existing option, or "Create <new option>".
|
|
147
|
+
case "selectOption": {
|
|
148
|
+
const selectedOption = changedOption;
|
|
149
|
+
if (selectedOption._action === "create") {
|
|
150
|
+
const newOption = selectedOption.value;
|
|
151
|
+
return createOption?.(newOption);
|
|
152
|
+
}
|
|
153
|
+
updateSelectedOptions(selectedOptions, "selectOption", selectedOption);
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
156
|
+
// User pressed "Enter" after typing input. The input is either matching existing option or a new option to create.
|
|
157
|
+
case "createOption": {
|
|
158
|
+
const inputValue = changedOption;
|
|
159
|
+
const matchingOption = options12.find(
|
|
160
|
+
(option) => option.label.toLocaleLowerCase() === inputValue.toLocaleLowerCase()
|
|
161
|
+
);
|
|
162
|
+
if (matchingOption) {
|
|
163
|
+
selectedOptions.push(matchingOption);
|
|
164
|
+
updateSelectedOptions(selectedOptions, "selectOption", matchingOption);
|
|
165
|
+
} else {
|
|
166
|
+
return createOption?.(inputValue);
|
|
167
|
+
}
|
|
168
|
+
break;
|
|
141
169
|
}
|
|
142
|
-
return acc;
|
|
143
|
-
}, null);
|
|
144
|
-
const inputValueMatchesExistingOption = newInputValue && options12.find((option) => option.label === newInputValue);
|
|
145
|
-
if (newInputValue && shouldCreateNewOption(reason, selectedOptions, newInputValue, Boolean(inputValueMatchesExistingOption))) {
|
|
146
|
-
return createOption(newInputValue);
|
|
147
|
-
}
|
|
148
|
-
if (reason === "createOption" && inputValueMatchesExistingOption) {
|
|
149
|
-
selectedOptions.push(inputValueMatchesExistingOption);
|
|
150
170
|
}
|
|
151
|
-
updateSelectedOptions(selectedOptions);
|
|
152
171
|
setInputValue("");
|
|
153
172
|
closeDropdown();
|
|
154
173
|
};
|
|
155
174
|
return handleChange;
|
|
156
|
-
function
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
function updateSelectedOptions(selectedOptions) {
|
|
163
|
-
const fixedOptions = options12.filter((option) => !!option.fixed);
|
|
164
|
-
const updatedOptions = [...fixedOptions, ...selectedOptions.filter((option) => !option.fixed)];
|
|
165
|
-
onSelect?.(removeOptionsInternalKeys(updatedOptions));
|
|
175
|
+
function updateSelectedOptions(selectedOptions, reason, changedOption) {
|
|
176
|
+
onSelect?.(
|
|
177
|
+
selectedOptions.map((option) => removeInternalKeys(option)),
|
|
178
|
+
reason,
|
|
179
|
+
removeInternalKeys(changedOption)
|
|
180
|
+
);
|
|
166
181
|
}
|
|
167
182
|
}
|
|
168
183
|
|
|
@@ -215,10 +230,10 @@ import { useState as useState2 } from "react";
|
|
|
215
230
|
function useCreateOption(params) {
|
|
216
231
|
const { onCreate, validate, setInputValue, setError, closeDropdown } = params;
|
|
217
232
|
const [loading, setLoading] = useState2(false);
|
|
233
|
+
if (!onCreate) {
|
|
234
|
+
return { createOption: null, loading: false };
|
|
235
|
+
}
|
|
218
236
|
const createOption = async (value) => {
|
|
219
|
-
if (!onCreate) {
|
|
220
|
-
return;
|
|
221
|
-
}
|
|
222
237
|
setLoading(true);
|
|
223
238
|
if (validate) {
|
|
224
239
|
const { isValid, errorMessage } = validate(value, "create");
|
|
@@ -268,6 +283,7 @@ function useFilterOptions(parameters) {
|
|
|
268
283
|
}
|
|
269
284
|
|
|
270
285
|
// src/components/creatable-autocomplete/creatable-autocomplete.tsx
|
|
286
|
+
var MIN_INPUT_LENGTH = 2;
|
|
271
287
|
var CreatableAutocomplete = React4.forwardRef(CreatableAutocompleteInner);
|
|
272
288
|
function CreatableAutocompleteInner({
|
|
273
289
|
selected,
|
|
@@ -277,6 +293,7 @@ function CreatableAutocompleteInner({
|
|
|
277
293
|
placeholder,
|
|
278
294
|
onCreate,
|
|
279
295
|
validate,
|
|
296
|
+
renderEmptyState,
|
|
280
297
|
...props
|
|
281
298
|
}, ref) {
|
|
282
299
|
const { inputValue, setInputValue, error, setError, inputHandlers } = useInputState(validate);
|
|
@@ -294,6 +311,8 @@ function CreatableAutocompleteInner({
|
|
|
294
311
|
closeDropdown
|
|
295
312
|
});
|
|
296
313
|
const filterOptions = useFilterOptions({ options: options12, selected, onCreate, entityName });
|
|
314
|
+
const isCreatable = Boolean(onCreate);
|
|
315
|
+
const freeSolo = isCreatable || inputValue.length < MIN_INPUT_LENGTH || void 0;
|
|
297
316
|
return /* @__PURE__ */ React4.createElement(
|
|
298
317
|
Autocomplete,
|
|
299
318
|
{
|
|
@@ -310,7 +329,8 @@ function CreatableAutocompleteInner({
|
|
|
310
329
|
},
|
|
311
330
|
...props,
|
|
312
331
|
ref,
|
|
313
|
-
freeSolo
|
|
332
|
+
freeSolo,
|
|
333
|
+
forcePopupIcon: false,
|
|
314
334
|
multiple: true,
|
|
315
335
|
clearOnBlur: true,
|
|
316
336
|
selectOnFocus: true,
|
|
@@ -331,8 +351,8 @@ function CreatableAutocompleteInner({
|
|
|
331
351
|
TextField,
|
|
332
352
|
{
|
|
333
353
|
...params,
|
|
334
|
-
placeholder,
|
|
335
354
|
error: Boolean(error),
|
|
355
|
+
placeholder,
|
|
336
356
|
...inputHandlers,
|
|
337
357
|
sx: (theme) => ({
|
|
338
358
|
".MuiAutocomplete-inputRoot.MuiInputBase-adornedStart": {
|
|
@@ -364,6 +384,19 @@ function CreatableAutocompleteInner({
|
|
|
364
384
|
},
|
|
365
385
|
label
|
|
366
386
|
);
|
|
387
|
+
},
|
|
388
|
+
noOptionsText: renderEmptyState?.({
|
|
389
|
+
searchValue: inputValue,
|
|
390
|
+
onClear: () => {
|
|
391
|
+
setInputValue("");
|
|
392
|
+
closeDropdown();
|
|
393
|
+
}
|
|
394
|
+
}),
|
|
395
|
+
isOptionEqualToValue: (option, value) => {
|
|
396
|
+
if (typeof option === "string") {
|
|
397
|
+
return option === value;
|
|
398
|
+
}
|
|
399
|
+
return option.value === value.value;
|
|
367
400
|
}
|
|
368
401
|
}
|
|
369
402
|
);
|
|
@@ -401,7 +434,7 @@ var StyledGroupItems = styled("ul")`
|
|
|
401
434
|
`;
|
|
402
435
|
|
|
403
436
|
// src/components/css-classes/css-class-item.tsx
|
|
404
|
-
import * as
|
|
437
|
+
import * as React7 from "react";
|
|
405
438
|
import { useState as useState3 } from "react";
|
|
406
439
|
import { stylesRepository as stylesRepository3, validateStyleLabel } from "@elementor/editor-styles-repository";
|
|
407
440
|
import { EditableField, EllipsisWithTooltip, useEditable } from "@elementor/editor-ui";
|
|
@@ -414,36 +447,33 @@ import {
|
|
|
414
447
|
UnstableChipGroup,
|
|
415
448
|
usePopupState
|
|
416
449
|
} from "@elementor/ui";
|
|
417
|
-
import { __ as
|
|
450
|
+
import { __ as __3 } from "@wordpress/i18n";
|
|
418
451
|
|
|
419
|
-
// src/components/css-classes/css-class-
|
|
452
|
+
// src/components/css-classes/css-class-context.tsx
|
|
420
453
|
import * as React5 from "react";
|
|
421
|
-
import {
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
const { element } = useElement();
|
|
430
|
-
const { setId: setStyleId } = useStyle();
|
|
431
|
-
const classesProp = useClassesProp();
|
|
432
|
-
const classes = useElementSetting(element.id, classesProp);
|
|
433
|
-
const filteredClasses = classes?.value.filter((className) => className !== classId) ?? [];
|
|
434
|
-
return () => {
|
|
435
|
-
updateElementSettings({
|
|
436
|
-
id: element.id,
|
|
437
|
-
props: {
|
|
438
|
-
[classesProp]: {
|
|
439
|
-
$$type: "classes",
|
|
440
|
-
value: filteredClasses
|
|
441
|
-
}
|
|
442
|
-
}
|
|
443
|
-
});
|
|
444
|
-
setStyleId(null);
|
|
445
|
-
};
|
|
454
|
+
import { createContext as createContext4, useContext as useContext4 } from "react";
|
|
455
|
+
var CssClassContext = createContext4(null);
|
|
456
|
+
var useCssClass = () => {
|
|
457
|
+
const context = useContext4(CssClassContext);
|
|
458
|
+
if (!context) {
|
|
459
|
+
throw new Error("useCssClass must be used within a CssClassProvider");
|
|
460
|
+
}
|
|
461
|
+
return context;
|
|
446
462
|
};
|
|
463
|
+
function CssClassProvider({ children, ...contextValue }) {
|
|
464
|
+
return /* @__PURE__ */ React5.createElement(CssClassContext.Provider, { value: contextValue }, children);
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
// src/components/css-classes/css-class-menu.tsx
|
|
468
|
+
import * as React6 from "react";
|
|
469
|
+
import {
|
|
470
|
+
isElementsStylesProvider,
|
|
471
|
+
stylesRepository as stylesRepository2,
|
|
472
|
+
useUserStylesCapability
|
|
473
|
+
} from "@elementor/editor-styles-repository";
|
|
474
|
+
import { MenuItemInfotip, MenuListItem } from "@elementor/editor-ui";
|
|
475
|
+
import { bindMenu, Divider, Menu, MenuSubheader, Stack } from "@elementor/ui";
|
|
476
|
+
import { __ as __2 } from "@wordpress/i18n";
|
|
447
477
|
|
|
448
478
|
// src/components/style-indicator.tsx
|
|
449
479
|
import { styled as styled2 } from "@elementor/ui";
|
|
@@ -467,15 +497,157 @@ var StyleIndicator = styled2("div", {
|
|
|
467
497
|
}};
|
|
468
498
|
`;
|
|
469
499
|
|
|
500
|
+
// src/components/css-classes/use-apply-and-unapply-class.ts
|
|
501
|
+
import { useCallback, useMemo as useMemo2 } from "react";
|
|
502
|
+
import { setDocumentModifiedStatus } from "@elementor/editor-documents";
|
|
503
|
+
import { getElementLabel, getElementSetting, updateElementSettings } from "@elementor/editor-elements";
|
|
504
|
+
import { classesPropTypeUtil } from "@elementor/editor-props";
|
|
505
|
+
import { isExperimentActive, undoable } from "@elementor/editor-v1-adapters";
|
|
506
|
+
import { __ } from "@wordpress/i18n";
|
|
507
|
+
function useApplyClass() {
|
|
508
|
+
const { id: activeId, setId: setActiveId } = useStyle();
|
|
509
|
+
const { element } = useElement();
|
|
510
|
+
const isVersion330Active = isExperimentActive("e_v_3_30");
|
|
511
|
+
const applyClass = useApply();
|
|
512
|
+
const unapplyClass = useUnapply();
|
|
513
|
+
const undoableApply = useMemo2(() => {
|
|
514
|
+
return undoable(
|
|
515
|
+
{
|
|
516
|
+
do: ({ classId }) => {
|
|
517
|
+
const prevActiveId = activeId;
|
|
518
|
+
applyClass(classId);
|
|
519
|
+
setDocumentModifiedStatus(true);
|
|
520
|
+
return prevActiveId;
|
|
521
|
+
},
|
|
522
|
+
undo: ({ classId }, prevActiveId) => {
|
|
523
|
+
unapplyClass(classId);
|
|
524
|
+
setActiveId(prevActiveId);
|
|
525
|
+
}
|
|
526
|
+
},
|
|
527
|
+
{
|
|
528
|
+
title: getElementLabel(element.id),
|
|
529
|
+
subtitle: ({ classLabel }) => {
|
|
530
|
+
return __(`class %s applied`, "elementor").replace("%s", classLabel);
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
);
|
|
534
|
+
}, [activeId, applyClass, element.id, unapplyClass, setActiveId]);
|
|
535
|
+
const applyWithoutHistory = useCallback(
|
|
536
|
+
({ classId }) => {
|
|
537
|
+
applyClass(classId);
|
|
538
|
+
},
|
|
539
|
+
[applyClass]
|
|
540
|
+
);
|
|
541
|
+
return isVersion330Active ? undoableApply : applyWithoutHistory;
|
|
542
|
+
}
|
|
543
|
+
function useUnapplyClass() {
|
|
544
|
+
const { id: activeId, setId: setActiveId } = useStyle();
|
|
545
|
+
const { element } = useElement();
|
|
546
|
+
const isVersion330Active = isExperimentActive("e_v_3_30");
|
|
547
|
+
const applyClass = useApply();
|
|
548
|
+
const unapplyClass = useUnapply();
|
|
549
|
+
const undoableUnapply = useMemo2(() => {
|
|
550
|
+
return undoable(
|
|
551
|
+
{
|
|
552
|
+
do: ({ classId }) => {
|
|
553
|
+
const prevActiveId = activeId;
|
|
554
|
+
unapplyClass(classId);
|
|
555
|
+
setDocumentModifiedStatus(true);
|
|
556
|
+
return prevActiveId;
|
|
557
|
+
},
|
|
558
|
+
undo: ({ classId }, prevActiveId) => {
|
|
559
|
+
applyClass(classId);
|
|
560
|
+
setActiveId(prevActiveId);
|
|
561
|
+
}
|
|
562
|
+
},
|
|
563
|
+
{
|
|
564
|
+
title: getElementLabel(element.id),
|
|
565
|
+
subtitle: ({ classLabel }) => {
|
|
566
|
+
return __(`class %s removed`, "elementor").replace("%s", classLabel);
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
);
|
|
570
|
+
}, [activeId, applyClass, element.id, unapplyClass, setActiveId]);
|
|
571
|
+
const unapplyWithoutHistory = useCallback(
|
|
572
|
+
({ classId }) => {
|
|
573
|
+
unapplyClass(classId);
|
|
574
|
+
},
|
|
575
|
+
[unapplyClass]
|
|
576
|
+
);
|
|
577
|
+
return isVersion330Active ? undoableUnapply : unapplyWithoutHistory;
|
|
578
|
+
}
|
|
579
|
+
function useApply() {
|
|
580
|
+
const { element } = useElement();
|
|
581
|
+
const { setId: setActiveId } = useStyle();
|
|
582
|
+
const { setClasses, getAppliedClasses } = useSetClasses();
|
|
583
|
+
return useCallback(
|
|
584
|
+
(classIDToApply) => {
|
|
585
|
+
const appliedClasses = getAppliedClasses();
|
|
586
|
+
if (appliedClasses.includes(classIDToApply)) {
|
|
587
|
+
throw new Error(
|
|
588
|
+
`Class ${classIDToApply} is already applied to element ${element.id}, cannot re-apply.`
|
|
589
|
+
);
|
|
590
|
+
}
|
|
591
|
+
const updatedClassesIds = [...appliedClasses, classIDToApply];
|
|
592
|
+
setClasses(updatedClassesIds);
|
|
593
|
+
setActiveId(classIDToApply);
|
|
594
|
+
},
|
|
595
|
+
[element.id, getAppliedClasses, setActiveId, setClasses]
|
|
596
|
+
);
|
|
597
|
+
}
|
|
598
|
+
function useUnapply() {
|
|
599
|
+
const { element } = useElement();
|
|
600
|
+
const { id: activeId, setId: setActiveId } = useStyle();
|
|
601
|
+
const { setClasses, getAppliedClasses } = useSetClasses();
|
|
602
|
+
return useCallback(
|
|
603
|
+
(classIDToUnapply) => {
|
|
604
|
+
const appliedClasses = getAppliedClasses();
|
|
605
|
+
if (!appliedClasses.includes(classIDToUnapply)) {
|
|
606
|
+
throw new Error(
|
|
607
|
+
`Class ${classIDToUnapply} is not applied to element ${element.id}, cannot unapply it.`
|
|
608
|
+
);
|
|
609
|
+
}
|
|
610
|
+
const updatedClassesIds = appliedClasses.filter((id) => id !== classIDToUnapply);
|
|
611
|
+
setClasses(updatedClassesIds);
|
|
612
|
+
if (activeId === classIDToUnapply) {
|
|
613
|
+
setActiveId(updatedClassesIds[0] ?? null);
|
|
614
|
+
}
|
|
615
|
+
},
|
|
616
|
+
[activeId, element.id, getAppliedClasses, setActiveId, setClasses]
|
|
617
|
+
);
|
|
618
|
+
}
|
|
619
|
+
function useSetClasses() {
|
|
620
|
+
const { element } = useElement();
|
|
621
|
+
const currentClassesProp = useClassesProp();
|
|
622
|
+
return useMemo2(() => {
|
|
623
|
+
const setClasses = (ids) => {
|
|
624
|
+
updateElementSettings({
|
|
625
|
+
id: element.id,
|
|
626
|
+
props: { [currentClassesProp]: classesPropTypeUtil.create(ids) },
|
|
627
|
+
withHistory: false
|
|
628
|
+
});
|
|
629
|
+
};
|
|
630
|
+
const getAppliedClasses = () => getElementSetting(element.id, currentClassesProp)?.value || [];
|
|
631
|
+
return {
|
|
632
|
+
setClasses,
|
|
633
|
+
getAppliedClasses
|
|
634
|
+
};
|
|
635
|
+
}, [currentClassesProp, element.id]);
|
|
636
|
+
}
|
|
637
|
+
|
|
470
638
|
// src/components/css-classes/css-class-menu.tsx
|
|
471
|
-
var STATES = [
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
639
|
+
var STATES = [
|
|
640
|
+
{ key: "normal", value: null },
|
|
641
|
+
{ key: "hover", value: "hover" },
|
|
642
|
+
{ key: "focus", value: "focus" },
|
|
643
|
+
{ key: "active", value: "active" }
|
|
644
|
+
];
|
|
645
|
+
function CssClassMenu({ popupState, anchorEl }) {
|
|
646
|
+
const { provider } = useCssClass();
|
|
475
647
|
const handleKeyDown = (e) => {
|
|
476
648
|
e.stopPropagation();
|
|
477
649
|
};
|
|
478
|
-
return /* @__PURE__ */
|
|
650
|
+
return /* @__PURE__ */ React6.createElement(
|
|
479
651
|
Menu,
|
|
480
652
|
{
|
|
481
653
|
MenuListProps: { dense: true, sx: { minWidth: "160px" } },
|
|
@@ -492,60 +664,34 @@ function CssClassMenu({ styleId, provider, popupState, handleRename, anchorEl })
|
|
|
492
664
|
onKeyDown: handleKeyDown,
|
|
493
665
|
disableAutoFocusItem: true
|
|
494
666
|
},
|
|
495
|
-
getMenuItemsByProvider({ provider,
|
|
496
|
-
/* @__PURE__ */
|
|
497
|
-
/* @__PURE__ */ React5.createElement(
|
|
498
|
-
StateMenuItem,
|
|
499
|
-
{
|
|
500
|
-
key: "normal",
|
|
501
|
-
state: null,
|
|
502
|
-
styleId,
|
|
503
|
-
closeMenu: popupState.close,
|
|
504
|
-
isStyled: styledStates.normal,
|
|
505
|
-
indicatorVariant
|
|
506
|
-
}
|
|
507
|
-
),
|
|
667
|
+
getMenuItemsByProvider({ provider, closeMenu: popupState.close }),
|
|
668
|
+
/* @__PURE__ */ React6.createElement(MenuSubheader, { sx: { typography: "caption", color: "text.secondary", pb: 0.5, pt: 1 } }, __2("States", "elementor")),
|
|
508
669
|
STATES.map((state) => {
|
|
509
|
-
return /* @__PURE__ */
|
|
510
|
-
StateMenuItem,
|
|
511
|
-
{
|
|
512
|
-
key: state,
|
|
513
|
-
state,
|
|
514
|
-
styleId,
|
|
515
|
-
closeMenu: popupState.close,
|
|
516
|
-
isStyled: styledStates[state],
|
|
517
|
-
indicatorVariant
|
|
518
|
-
}
|
|
519
|
-
);
|
|
670
|
+
return /* @__PURE__ */ React6.createElement(StateMenuItem, { key: state.key, state: state.value, closeMenu: popupState.close });
|
|
520
671
|
})
|
|
521
672
|
);
|
|
522
673
|
}
|
|
523
|
-
function
|
|
674
|
+
function useModifiedStates(styleId) {
|
|
524
675
|
const { meta } = useStyle();
|
|
525
676
|
const styleDef = stylesRepository2.all().find((style) => style.id === styleId);
|
|
526
677
|
return Object.fromEntries(
|
|
527
678
|
styleDef?.variants.filter((variant) => meta.breakpoint === variant.meta.breakpoint).map((variant) => [variant.meta.state ?? "normal", true]) ?? []
|
|
528
679
|
);
|
|
529
680
|
}
|
|
530
|
-
function getMenuItemsByProvider({
|
|
531
|
-
provider
|
|
532
|
-
styleId,
|
|
533
|
-
handleRename,
|
|
534
|
-
closeMenu
|
|
535
|
-
}) {
|
|
536
|
-
if (!styleId || !provider) {
|
|
681
|
+
function getMenuItemsByProvider({ provider, closeMenu }) {
|
|
682
|
+
if (!provider) {
|
|
537
683
|
return [];
|
|
538
684
|
}
|
|
539
685
|
const providerInstance = stylesRepository2.getProviderByKey(provider);
|
|
540
686
|
const providerActions = providerInstance?.actions;
|
|
541
687
|
const [canUpdate, canDelete] = [providerActions?.update, providerActions?.delete];
|
|
542
688
|
const actions = [
|
|
543
|
-
canUpdate && /* @__PURE__ */
|
|
544
|
-
canDelete && /* @__PURE__ */
|
|
689
|
+
canUpdate && /* @__PURE__ */ React6.createElement(RenameClassMenuItem, { key: "rename-class", closeMenu }),
|
|
690
|
+
canDelete && /* @__PURE__ */ React6.createElement(UnapplyClassMenuItem, { key: "unapply-class", closeMenu })
|
|
545
691
|
].filter(Boolean);
|
|
546
692
|
if (actions.length) {
|
|
547
693
|
actions.unshift(
|
|
548
|
-
/* @__PURE__ */
|
|
694
|
+
/* @__PURE__ */ React6.createElement(
|
|
549
695
|
MenuSubheader,
|
|
550
696
|
{
|
|
551
697
|
key: "provider-label",
|
|
@@ -554,27 +700,28 @@ function getMenuItemsByProvider({
|
|
|
554
700
|
providerInstance?.labels?.singular
|
|
555
701
|
)
|
|
556
702
|
);
|
|
557
|
-
actions.push(/* @__PURE__ */
|
|
703
|
+
actions.push(/* @__PURE__ */ React6.createElement(Divider, { key: "provider-actions-divider" }));
|
|
558
704
|
}
|
|
559
705
|
return actions;
|
|
560
706
|
}
|
|
561
|
-
function StateMenuItem({
|
|
562
|
-
|
|
563
|
-
styleId,
|
|
564
|
-
closeMenu,
|
|
565
|
-
isStyled = false,
|
|
566
|
-
indicatorVariant,
|
|
567
|
-
...props
|
|
568
|
-
}) {
|
|
707
|
+
function StateMenuItem({ state, closeMenu, ...props }) {
|
|
708
|
+
const { id: styleId, provider } = useCssClass();
|
|
569
709
|
const { id: activeId, setId: setActiveId, setMetaState: setActiveMetaState, meta } = useStyle();
|
|
570
710
|
const { state: activeState } = meta;
|
|
711
|
+
const { userCan } = useUserStylesCapability();
|
|
712
|
+
const modifiedStates = useModifiedStates(styleId);
|
|
713
|
+
const isUpdateAllowed = userCan(provider ?? "").updateProps;
|
|
714
|
+
const indicatorVariant = !provider || isElementsStylesProvider(provider) ? "local" : "global";
|
|
715
|
+
const isStyled = modifiedStates[state ?? "normal"] ?? false;
|
|
716
|
+
const disabled = isUpdateAllowed ? false : !isStyled;
|
|
571
717
|
const isActive = styleId === activeId;
|
|
572
718
|
const isSelected = state === activeState && isActive;
|
|
573
|
-
return /* @__PURE__ */
|
|
719
|
+
return /* @__PURE__ */ React6.createElement(
|
|
574
720
|
MenuListItem,
|
|
575
721
|
{
|
|
576
722
|
...props,
|
|
577
723
|
selected: isSelected,
|
|
724
|
+
disabled,
|
|
578
725
|
sx: { textTransform: "capitalize" },
|
|
579
726
|
onClick: () => {
|
|
580
727
|
if (!isActive) {
|
|
@@ -584,55 +731,66 @@ function StateMenuItem({
|
|
|
584
731
|
closeMenu();
|
|
585
732
|
}
|
|
586
733
|
},
|
|
587
|
-
/* @__PURE__ */
|
|
734
|
+
/* @__PURE__ */ React6.createElement(
|
|
735
|
+
MenuItemInfotip,
|
|
736
|
+
{
|
|
737
|
+
showInfoTip: disabled,
|
|
738
|
+
content: __2("With your role as an editor, you can only use existing states.", "elementor")
|
|
739
|
+
},
|
|
740
|
+
/* @__PURE__ */ React6.createElement(Stack, { gap: 0.75, direction: "row", alignItems: "center" }, isStyled && /* @__PURE__ */ React6.createElement(StyleIndicator, { "aria-label": __2("Has style", "elementor"), variant: indicatorVariant }), state ?? "normal")
|
|
741
|
+
)
|
|
588
742
|
);
|
|
589
743
|
}
|
|
590
|
-
function UnapplyClassMenuItem({
|
|
591
|
-
const
|
|
592
|
-
|
|
744
|
+
function UnapplyClassMenuItem({ closeMenu, ...props }) {
|
|
745
|
+
const { id: classId, label: classLabel } = useCssClass();
|
|
746
|
+
const unapplyClass = useUnapplyClass();
|
|
747
|
+
return classId ? /* @__PURE__ */ React6.createElement(
|
|
593
748
|
MenuListItem,
|
|
594
749
|
{
|
|
595
750
|
...props,
|
|
596
751
|
onClick: () => {
|
|
597
|
-
unapplyClass();
|
|
752
|
+
unapplyClass({ classId, classLabel });
|
|
598
753
|
closeMenu();
|
|
599
754
|
}
|
|
600
755
|
},
|
|
601
|
-
|
|
602
|
-
);
|
|
756
|
+
__2("Remove", "elementor")
|
|
757
|
+
) : null;
|
|
603
758
|
}
|
|
604
|
-
function RenameClassMenuItem({
|
|
605
|
-
handleRename,
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
759
|
+
function RenameClassMenuItem({ closeMenu }) {
|
|
760
|
+
const { handleRename, provider } = useCssClass();
|
|
761
|
+
const { userCan } = useUserStylesCapability();
|
|
762
|
+
if (!provider) {
|
|
763
|
+
return null;
|
|
764
|
+
}
|
|
765
|
+
const isAllowed = userCan(provider).update;
|
|
766
|
+
return /* @__PURE__ */ React6.createElement(
|
|
610
767
|
MenuListItem,
|
|
611
768
|
{
|
|
612
|
-
|
|
769
|
+
disabled: !isAllowed,
|
|
613
770
|
onClick: () => {
|
|
614
771
|
closeMenu();
|
|
615
772
|
handleRename();
|
|
616
773
|
}
|
|
617
774
|
},
|
|
618
|
-
|
|
775
|
+
/* @__PURE__ */ React6.createElement(
|
|
776
|
+
MenuItemInfotip,
|
|
777
|
+
{
|
|
778
|
+
showInfoTip: !isAllowed,
|
|
779
|
+
content: __2(
|
|
780
|
+
"With your role as an editor, you can use existing classes but can\u2019t modify them.",
|
|
781
|
+
"elementor"
|
|
782
|
+
)
|
|
783
|
+
},
|
|
784
|
+
__2("Rename", "elementor")
|
|
785
|
+
)
|
|
619
786
|
);
|
|
620
787
|
}
|
|
621
788
|
|
|
622
789
|
// src/components/css-classes/css-class-item.tsx
|
|
623
790
|
var CHIP_SIZE = "tiny";
|
|
624
|
-
function CssClassItem({
|
|
625
|
-
|
|
626
|
-
provider,
|
|
627
|
-
label,
|
|
628
|
-
isActive,
|
|
629
|
-
color: colorProp,
|
|
630
|
-
icon,
|
|
631
|
-
chipProps,
|
|
632
|
-
onClickActive,
|
|
633
|
-
renameLabel,
|
|
634
|
-
setError
|
|
635
|
-
}) {
|
|
791
|
+
function CssClassItem(props) {
|
|
792
|
+
const { chipProps, icon, color: colorProp, ...classProps } = props;
|
|
793
|
+
const { id, provider, label, isActive, onClickActive, renameLabel, setError } = classProps;
|
|
636
794
|
const { meta, setMetaState } = useStyle();
|
|
637
795
|
const popupState = usePopupState({ variant: "popover" });
|
|
638
796
|
const [chipRef, setChipRef] = useState3(null);
|
|
@@ -653,7 +811,7 @@ function CssClassItem({
|
|
|
653
811
|
const providerActions = provider ? stylesRepository3.getProviderByKey(provider)?.actions : null;
|
|
654
812
|
const allowRename = Boolean(providerActions?.update);
|
|
655
813
|
const isShowingState = isActive && meta.state;
|
|
656
|
-
return /* @__PURE__ */
|
|
814
|
+
return /* @__PURE__ */ React7.createElement(React7.Fragment, null, /* @__PURE__ */ React7.createElement(
|
|
657
815
|
UnstableChipGroup,
|
|
658
816
|
{
|
|
659
817
|
ref: setChipRef,
|
|
@@ -664,11 +822,11 @@ function CssClassItem({
|
|
|
664
822
|
"&.MuiChipGroup-root.MuiAutocomplete-tag": { margin: theme.spacing(0.125) }
|
|
665
823
|
})
|
|
666
824
|
},
|
|
667
|
-
/* @__PURE__ */
|
|
825
|
+
/* @__PURE__ */ React7.createElement(
|
|
668
826
|
Chip2,
|
|
669
827
|
{
|
|
670
828
|
size: CHIP_SIZE,
|
|
671
|
-
label: isEditing ? /* @__PURE__ */
|
|
829
|
+
label: isEditing ? /* @__PURE__ */ React7.createElement(EditableField, { ref, ...getEditableProps() }) : /* @__PURE__ */ React7.createElement(EllipsisWithTooltip, { maxWidth: "10ch", title: label, as: "div" }),
|
|
672
830
|
variant: isActive && !meta.state && !isEditing ? "filled" : "standard",
|
|
673
831
|
shape: "rounded",
|
|
674
832
|
icon,
|
|
@@ -695,17 +853,17 @@ function CssClassItem({
|
|
|
695
853
|
})
|
|
696
854
|
}
|
|
697
855
|
),
|
|
698
|
-
!isEditing && /* @__PURE__ */
|
|
856
|
+
!isEditing && /* @__PURE__ */ React7.createElement(
|
|
699
857
|
Chip2,
|
|
700
858
|
{
|
|
701
|
-
icon: isShowingState ? void 0 : /* @__PURE__ */
|
|
859
|
+
icon: isShowingState ? void 0 : /* @__PURE__ */ React7.createElement(DotsVerticalIcon, { fontSize: "tiny" }),
|
|
702
860
|
size: CHIP_SIZE,
|
|
703
|
-
label: isShowingState ? /* @__PURE__ */
|
|
861
|
+
label: isShowingState ? /* @__PURE__ */ React7.createElement(Stack2, { direction: "row", gap: 0.5, alignItems: "center" }, /* @__PURE__ */ React7.createElement(Typography2, { variant: "inherit" }, meta.state), /* @__PURE__ */ React7.createElement(DotsVerticalIcon, { fontSize: "tiny" })) : void 0,
|
|
704
862
|
variant: "filled",
|
|
705
863
|
shape: "rounded",
|
|
706
864
|
color,
|
|
707
865
|
...bindTrigger(popupState),
|
|
708
|
-
"aria-label":
|
|
866
|
+
"aria-label": __3("Open CSS Class Menu", "elementor"),
|
|
709
867
|
sx: (theme) => ({
|
|
710
868
|
borderRadius: `${theme.shape.borderRadius * 0.75}px`,
|
|
711
869
|
paddingRight: 0,
|
|
@@ -714,16 +872,7 @@ function CssClassItem({
|
|
|
714
872
|
})
|
|
715
873
|
}
|
|
716
874
|
)
|
|
717
|
-
), /* @__PURE__ */
|
|
718
|
-
CssClassMenu,
|
|
719
|
-
{
|
|
720
|
-
styleId: id,
|
|
721
|
-
popupState,
|
|
722
|
-
provider,
|
|
723
|
-
handleRename: openEditMode,
|
|
724
|
-
anchorEl: chipRef
|
|
725
|
-
}
|
|
726
|
-
));
|
|
875
|
+
), /* @__PURE__ */ React7.createElement(CssClassProvider, { ...classProps, handleRename: openEditMode }, /* @__PURE__ */ React7.createElement(CssClassMenu, { popupState, anchorEl: chipRef })));
|
|
727
876
|
}
|
|
728
877
|
var validateLabel = (newLabel) => {
|
|
729
878
|
const result = validateStyleLabel(newLabel, "rename");
|
|
@@ -737,26 +886,26 @@ var validateLabel = (newLabel) => {
|
|
|
737
886
|
var ID = "elementor-css-class-selector";
|
|
738
887
|
var TAGS_LIMIT = 50;
|
|
739
888
|
var EMPTY_OPTION = {
|
|
740
|
-
label:
|
|
889
|
+
label: __4("local", "elementor"),
|
|
741
890
|
value: null,
|
|
742
891
|
fixed: true,
|
|
743
892
|
color: "accent",
|
|
744
|
-
icon: /* @__PURE__ */
|
|
893
|
+
icon: /* @__PURE__ */ React8.createElement(MapPinIcon, null),
|
|
745
894
|
provider: null
|
|
746
895
|
};
|
|
747
896
|
var { Slot: ClassSelectorActionsSlot, inject: injectIntoClassSelectorActions } = createLocation();
|
|
748
897
|
function CssClassSelector() {
|
|
749
898
|
const options12 = useOptions();
|
|
750
|
-
const { value: appliedIds,
|
|
899
|
+
const { value: appliedIds, pushValue: pushAppliedId } = useAppliedClassesIds();
|
|
751
900
|
const { id: activeId, setId: setActiveId } = useStyle();
|
|
752
901
|
const autocompleteRef = useRef(null);
|
|
753
902
|
const [renameError, setRenameError] = useState4(null);
|
|
754
|
-
const
|
|
903
|
+
const handleSelect = useHandleSelect();
|
|
755
904
|
const { create, validate, entityName } = useCreateAction({ pushAppliedId, setActiveId });
|
|
756
905
|
const applied = useAppliedOptions(options12, appliedIds);
|
|
757
906
|
const active = applied.find((option) => option.value === activeId) ?? EMPTY_OPTION;
|
|
758
907
|
const showPlaceholder = applied.every(({ fixed }) => fixed);
|
|
759
|
-
return /* @__PURE__ */
|
|
908
|
+
return /* @__PURE__ */ React8.createElement(Stack3, { p: 2 }, /* @__PURE__ */ React8.createElement(Stack3, { direction: "row", gap: 1, alignItems: "center", justifyContent: "space-between" }, /* @__PURE__ */ React8.createElement(FormLabel, { htmlFor: ID, size: "small" }, __4("Classes", "elementor")), /* @__PURE__ */ React8.createElement(Stack3, { direction: "row", gap: 1 }, /* @__PURE__ */ React8.createElement(ClassSelectorActionsSlot, null))), /* @__PURE__ */ React8.createElement(
|
|
760
909
|
WarningInfotip,
|
|
761
910
|
{
|
|
762
911
|
open: Boolean(renameError),
|
|
@@ -765,21 +914,22 @@ function CssClassSelector() {
|
|
|
765
914
|
width: autocompleteRef.current?.getBoundingClientRect().width,
|
|
766
915
|
offset: [0, -15]
|
|
767
916
|
},
|
|
768
|
-
/* @__PURE__ */
|
|
917
|
+
/* @__PURE__ */ React8.createElement(
|
|
769
918
|
CreatableAutocomplete,
|
|
770
919
|
{
|
|
771
920
|
id: ID,
|
|
772
921
|
ref: autocompleteRef,
|
|
773
922
|
size: "tiny",
|
|
774
|
-
placeholder: showPlaceholder ?
|
|
923
|
+
placeholder: showPlaceholder ? __4("Type class name", "elementor") : void 0,
|
|
775
924
|
options: options12,
|
|
776
925
|
selected: applied,
|
|
777
926
|
entityName,
|
|
778
|
-
onSelect:
|
|
927
|
+
onSelect: handleSelect,
|
|
779
928
|
onCreate: create ?? void 0,
|
|
780
929
|
validate: validate ?? void 0,
|
|
781
930
|
limitTags: TAGS_LIMIT,
|
|
782
|
-
|
|
931
|
+
renderEmptyState: EmptyState,
|
|
932
|
+
getLimitTagsText: (more) => /* @__PURE__ */ React8.createElement(Chip3, { size: "tiny", variant: "standard", label: `+${more}`, clickable: true }),
|
|
783
933
|
renderTags: (values, getTagProps) => values.map((value, index) => {
|
|
784
934
|
const chipProps = getTagProps({ index });
|
|
785
935
|
const isActive = value.value === active?.value;
|
|
@@ -789,7 +939,7 @@ function CssClassSelector() {
|
|
|
789
939
|
}
|
|
790
940
|
return updateClassByProvider(value.provider, { label: newLabel, id: value.value });
|
|
791
941
|
};
|
|
792
|
-
return /* @__PURE__ */
|
|
942
|
+
return /* @__PURE__ */ React8.createElement(
|
|
793
943
|
CssClassItem,
|
|
794
944
|
{
|
|
795
945
|
key: chipProps.key,
|
|
@@ -810,6 +960,20 @@ function CssClassSelector() {
|
|
|
810
960
|
)
|
|
811
961
|
));
|
|
812
962
|
}
|
|
963
|
+
var EmptyState = ({ searchValue, onClear }) => /* @__PURE__ */ React8.createElement(Box2, { sx: { py: 4 } }, /* @__PURE__ */ React8.createElement(
|
|
964
|
+
Stack3,
|
|
965
|
+
{
|
|
966
|
+
gap: 1,
|
|
967
|
+
alignItems: "center",
|
|
968
|
+
color: "text.secondary",
|
|
969
|
+
justifyContent: "center",
|
|
970
|
+
sx: { px: 2, m: "auto", maxWidth: "236px" }
|
|
971
|
+
},
|
|
972
|
+
/* @__PURE__ */ React8.createElement(ColorSwatchIcon, { sx: { transform: "rotate(90deg)" }, fontSize: "large" }),
|
|
973
|
+
/* @__PURE__ */ React8.createElement(Typography3, { align: "center", variant: "subtitle2" }, __4("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React8.createElement("br", null), "\u201C", searchValue, "\u201D."),
|
|
974
|
+
/* @__PURE__ */ React8.createElement(Typography3, { align: "center", variant: "caption", sx: { mb: 2 } }, __4("With your current role,", "elementor"), /* @__PURE__ */ React8.createElement("br", null), __4("you can only use existing classes.", "elementor")),
|
|
975
|
+
/* @__PURE__ */ React8.createElement(Link, { color: "text.secondary", variant: "caption", component: "button", onClick: onClear }, __4("Clear & try again", "elementor"))
|
|
976
|
+
));
|
|
813
977
|
var updateClassByProvider = (provider, data) => {
|
|
814
978
|
if (!provider) {
|
|
815
979
|
return;
|
|
@@ -835,7 +999,7 @@ function useOptions() {
|
|
|
835
999
|
value: styleDef.id,
|
|
836
1000
|
fixed: isElements,
|
|
837
1001
|
color: isElements ? "accent" : "global",
|
|
838
|
-
icon: isElements ? /* @__PURE__ */
|
|
1002
|
+
icon: isElements ? /* @__PURE__ */ React8.createElement(MapPinIcon, null) : null,
|
|
839
1003
|
provider: provider.getKey()
|
|
840
1004
|
};
|
|
841
1005
|
});
|
|
@@ -858,7 +1022,7 @@ function useCreateAction({
|
|
|
858
1022
|
if (hasReachedLimit(provider)) {
|
|
859
1023
|
return {
|
|
860
1024
|
isValid: false,
|
|
861
|
-
errorMessage:
|
|
1025
|
+
errorMessage: __4(
|
|
862
1026
|
"You\u2019ve reached the limit of 50 classes. Please remove an existing one to create a new class.",
|
|
863
1027
|
"elementor"
|
|
864
1028
|
)
|
|
@@ -885,42 +1049,38 @@ function useAppliedOptions(options12, appliedIds) {
|
|
|
885
1049
|
function useAppliedClassesIds() {
|
|
886
1050
|
const { element } = useElement();
|
|
887
1051
|
const currentClassesProp = useClassesProp();
|
|
888
|
-
const value =
|
|
1052
|
+
const value = useElementSetting(element.id, currentClassesProp)?.value || [];
|
|
889
1053
|
const setValue = (ids) => {
|
|
890
1054
|
updateElementSettings2({
|
|
891
1055
|
id: element.id,
|
|
892
1056
|
props: {
|
|
893
|
-
[currentClassesProp]:
|
|
1057
|
+
[currentClassesProp]: classesPropTypeUtil2.create(ids)
|
|
894
1058
|
}
|
|
895
1059
|
});
|
|
896
1060
|
};
|
|
897
1061
|
const pushValue = (id) => {
|
|
898
|
-
const ids =
|
|
1062
|
+
const ids = getElementSetting2(element.id, currentClassesProp)?.value || [];
|
|
899
1063
|
setValue([...ids, id]);
|
|
900
1064
|
};
|
|
901
1065
|
return {
|
|
902
1066
|
value,
|
|
903
|
-
setValue,
|
|
904
1067
|
pushValue
|
|
905
1068
|
};
|
|
906
1069
|
}
|
|
907
|
-
function
|
|
908
|
-
const
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
if (isSameClassesAlreadyApplied) {
|
|
913
|
-
return;
|
|
914
|
-
}
|
|
915
|
-
setAppliedIds(selectedValues);
|
|
916
|
-
const addedValue = selectedValues.find((id) => !appliedIds.includes(id));
|
|
917
|
-
if (addedValue) {
|
|
918
|
-
setActiveId(addedValue);
|
|
1070
|
+
function useHandleSelect() {
|
|
1071
|
+
const apply = useApplyClass();
|
|
1072
|
+
const unapply = useUnapplyClass();
|
|
1073
|
+
return (_selectedOptions, reason, option) => {
|
|
1074
|
+
if (!option.value) {
|
|
919
1075
|
return;
|
|
920
1076
|
}
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
1077
|
+
switch (reason) {
|
|
1078
|
+
case "selectOption":
|
|
1079
|
+
apply({ classId: option.value, classLabel: option.label });
|
|
1080
|
+
break;
|
|
1081
|
+
case "removeOption":
|
|
1082
|
+
unapply({ classId: option.value, classLabel: option.label });
|
|
1083
|
+
break;
|
|
924
1084
|
}
|
|
925
1085
|
};
|
|
926
1086
|
}
|
|
@@ -929,7 +1089,7 @@ function useHandleApply(appliedIds, setAppliedIds) {
|
|
|
929
1089
|
import { __createPanel as createPanel } from "@elementor/editor-panels";
|
|
930
1090
|
|
|
931
1091
|
// src/components/editing-panel.tsx
|
|
932
|
-
import * as
|
|
1092
|
+
import * as React75 from "react";
|
|
933
1093
|
import { ControlActionsProvider, ControlReplacementsProvider } from "@elementor/editor-controls";
|
|
934
1094
|
import { useSelectedElement } from "@elementor/editor-elements";
|
|
935
1095
|
import { Panel, PanelBody, PanelHeader, PanelHeaderTitle } from "@elementor/editor-panels";
|
|
@@ -937,16 +1097,16 @@ import { ThemeProvider as ThemeProvider9 } from "@elementor/editor-ui";
|
|
|
937
1097
|
import { AtomIcon } from "@elementor/icons";
|
|
938
1098
|
import { SessionStorageProvider as SessionStorageProvider3 } from "@elementor/session";
|
|
939
1099
|
import { ErrorBoundary } from "@elementor/ui";
|
|
940
|
-
import { __ as
|
|
1100
|
+
import { __ as __51 } from "@wordpress/i18n";
|
|
941
1101
|
|
|
942
1102
|
// src/controls-actions.ts
|
|
943
1103
|
import { createMenu } from "@elementor/menus";
|
|
944
1104
|
|
|
945
1105
|
// src/popover-action.tsx
|
|
946
|
-
import * as
|
|
1106
|
+
import * as React9 from "react";
|
|
947
1107
|
import { useId as useId2 } from "react";
|
|
948
1108
|
import { XIcon } from "@elementor/icons";
|
|
949
|
-
import { bindPopover, bindToggle, IconButton, Popover, Stack as Stack4, Tooltip, Typography as
|
|
1109
|
+
import { bindPopover, bindToggle, IconButton, Popover, Stack as Stack4, Tooltip, Typography as Typography4, usePopupState as usePopupState2 } from "@elementor/ui";
|
|
950
1110
|
var SIZE = "tiny";
|
|
951
1111
|
function PopoverAction({
|
|
952
1112
|
title,
|
|
@@ -962,7 +1122,7 @@ function PopoverAction({
|
|
|
962
1122
|
if (!visible) {
|
|
963
1123
|
return null;
|
|
964
1124
|
}
|
|
965
|
-
return /* @__PURE__ */
|
|
1125
|
+
return /* @__PURE__ */ React9.createElement(React9.Fragment, null, /* @__PURE__ */ React9.createElement(Tooltip, { placement: "top", title }, /* @__PURE__ */ React9.createElement(IconButton, { "aria-label": title, key: id, size: SIZE, ...bindToggle(popupState) }, /* @__PURE__ */ React9.createElement(Icon, { fontSize: SIZE }))), /* @__PURE__ */ React9.createElement(
|
|
966
1126
|
Popover,
|
|
967
1127
|
{
|
|
968
1128
|
disablePortal: true,
|
|
@@ -973,8 +1133,8 @@ function PopoverAction({
|
|
|
973
1133
|
},
|
|
974
1134
|
...bindPopover(popupState)
|
|
975
1135
|
},
|
|
976
|
-
/* @__PURE__ */
|
|
977
|
-
/* @__PURE__ */
|
|
1136
|
+
/* @__PURE__ */ React9.createElement(Stack4, { direction: "row", alignItems: "center", pl: 1.5, pr: 0.5, py: 1.5 }, /* @__PURE__ */ React9.createElement(Icon, { fontSize: SIZE, sx: { mr: 0.5 } }), /* @__PURE__ */ React9.createElement(Typography4, { variant: "subtitle2" }, title), /* @__PURE__ */ React9.createElement(IconButton, { sx: { ml: "auto" }, size: SIZE, onClick: popupState.close }, /* @__PURE__ */ React9.createElement(XIcon, { fontSize: SIZE }))),
|
|
1137
|
+
/* @__PURE__ */ React9.createElement(PopoverContent2, { closePopover: popupState.close })
|
|
978
1138
|
));
|
|
979
1139
|
}
|
|
980
1140
|
|
|
@@ -986,23 +1146,24 @@ var controlActionsMenu = createMenu({
|
|
|
986
1146
|
});
|
|
987
1147
|
|
|
988
1148
|
// src/components/editing-panel-error-fallback.tsx
|
|
989
|
-
import * as
|
|
990
|
-
import { Alert, Box as
|
|
1149
|
+
import * as React10 from "react";
|
|
1150
|
+
import { Alert, Box as Box3 } from "@elementor/ui";
|
|
991
1151
|
function EditorPanelErrorFallback() {
|
|
992
|
-
return /* @__PURE__ */
|
|
1152
|
+
return /* @__PURE__ */ React10.createElement(Box3, { role: "alert", sx: { minHeight: "100%", p: 2 } }, /* @__PURE__ */ React10.createElement(Alert, { severity: "error", sx: { mb: 2, maxWidth: 400, textAlign: "center" } }, /* @__PURE__ */ React10.createElement("strong", null, "Something went wrong")));
|
|
993
1153
|
}
|
|
994
1154
|
|
|
995
1155
|
// src/components/editing-panel-tabs.tsx
|
|
996
|
-
import * as
|
|
1156
|
+
import * as React74 from "react";
|
|
997
1157
|
import { Fragment as Fragment9 } from "react";
|
|
1158
|
+
import { isExperimentActive as isExperimentActive10 } from "@elementor/editor-v1-adapters";
|
|
998
1159
|
import { Divider as Divider6, Stack as Stack17, Tab, TabPanel, Tabs, useTabs } from "@elementor/ui";
|
|
999
|
-
import { __ as
|
|
1160
|
+
import { __ as __50 } from "@wordpress/i18n";
|
|
1000
1161
|
|
|
1001
1162
|
// src/contexts/scroll-context.tsx
|
|
1002
|
-
import * as
|
|
1003
|
-
import { createContext as
|
|
1163
|
+
import * as React11 from "react";
|
|
1164
|
+
import { createContext as createContext5, useContext as useContext5, useEffect, useRef as useRef2, useState as useState5 } from "react";
|
|
1004
1165
|
import { styled as styled3 } from "@elementor/ui";
|
|
1005
|
-
var ScrollContext =
|
|
1166
|
+
var ScrollContext = createContext5(void 0);
|
|
1006
1167
|
var ScrollPanel = styled3("div")`
|
|
1007
1168
|
height: 100%;
|
|
1008
1169
|
overflow-y: auto;
|
|
@@ -1031,19 +1192,51 @@ function ScrollProvider({ children }) {
|
|
|
1031
1192
|
scrollElement.removeEventListener("scroll", handleScroll);
|
|
1032
1193
|
};
|
|
1033
1194
|
});
|
|
1034
|
-
return /* @__PURE__ */
|
|
1195
|
+
return /* @__PURE__ */ React11.createElement(ScrollContext.Provider, { value: { direction } }, /* @__PURE__ */ React11.createElement(ScrollPanel, { ref }, children));
|
|
1035
1196
|
}
|
|
1036
1197
|
function useScrollDirection() {
|
|
1037
|
-
return
|
|
1198
|
+
return useContext5(ScrollContext)?.direction ?? DEFAULT_SCROLL_DIRECTION;
|
|
1038
1199
|
}
|
|
1039
1200
|
|
|
1201
|
+
// src/hooks/use-default-panel-settings.ts
|
|
1202
|
+
import { createContext as createContext6, useContext as useContext6 } from "react";
|
|
1203
|
+
var fallbackEditorSettings = {
|
|
1204
|
+
defaultSectionsExpanded: {
|
|
1205
|
+
settings: ["Content", "Settings"],
|
|
1206
|
+
style: []
|
|
1207
|
+
},
|
|
1208
|
+
defaultTab: "settings"
|
|
1209
|
+
};
|
|
1210
|
+
var defaultPanelSettingsContext = createContext6({
|
|
1211
|
+
"e-div-block": {
|
|
1212
|
+
defaultSectionsExpanded: fallbackEditorSettings.defaultSectionsExpanded,
|
|
1213
|
+
defaultTab: "style"
|
|
1214
|
+
},
|
|
1215
|
+
"e-flexbox": {
|
|
1216
|
+
defaultSectionsExpanded: fallbackEditorSettings.defaultSectionsExpanded,
|
|
1217
|
+
defaultTab: "style"
|
|
1218
|
+
}
|
|
1219
|
+
});
|
|
1220
|
+
var useDefaultPanelSettings = () => {
|
|
1221
|
+
const { element } = useElement();
|
|
1222
|
+
const defaults = useContext6(defaultPanelSettingsContext)[element.type];
|
|
1223
|
+
return defaults || fallbackEditorSettings;
|
|
1224
|
+
};
|
|
1225
|
+
|
|
1040
1226
|
// src/hooks/use-state-by-element.ts
|
|
1041
1227
|
import { useState as useState6 } from "react";
|
|
1042
|
-
import { isExperimentActive } from "@elementor/editor-v1-adapters";
|
|
1228
|
+
import { isExperimentActive as isExperimentActive2 } from "@elementor/editor-v1-adapters";
|
|
1043
1229
|
import { getSessionStorageItem, setSessionStorageItem } from "@elementor/session";
|
|
1230
|
+
|
|
1231
|
+
// src/sync/experiments-flags.ts
|
|
1232
|
+
var EXPERIMENTAL_FEATURES = {
|
|
1233
|
+
V_3_30: "e_v_3_30"
|
|
1234
|
+
};
|
|
1235
|
+
|
|
1236
|
+
// src/hooks/use-state-by-element.ts
|
|
1044
1237
|
var useStateByElement = (key, initialValue) => {
|
|
1045
1238
|
const { element } = useElement();
|
|
1046
|
-
const isFeatureActive =
|
|
1239
|
+
const isFeatureActive = isExperimentActive2(EXPERIMENTAL_FEATURES.V_3_30);
|
|
1047
1240
|
const lookup = `elementor/editor-state/${element.id}/${key}`;
|
|
1048
1241
|
const storedValue = isFeatureActive ? getSessionStorageItem(lookup) : initialValue;
|
|
1049
1242
|
const [value, setValue] = useState6(storedValue ?? initialValue);
|
|
@@ -1055,13 +1248,14 @@ var useStateByElement = (key, initialValue) => {
|
|
|
1055
1248
|
};
|
|
1056
1249
|
|
|
1057
1250
|
// src/components/settings-tab.tsx
|
|
1058
|
-
import * as
|
|
1251
|
+
import * as React17 from "react";
|
|
1059
1252
|
import { ControlFormLabel } from "@elementor/editor-controls";
|
|
1253
|
+
import { isExperimentActive as isExperimentActive3 } from "@elementor/editor-v1-adapters";
|
|
1060
1254
|
import { SessionStorageProvider } from "@elementor/session";
|
|
1061
1255
|
import { Divider as Divider3 } from "@elementor/ui";
|
|
1062
1256
|
|
|
1063
1257
|
// src/controls-registry/control.tsx
|
|
1064
|
-
import * as
|
|
1258
|
+
import * as React12 from "react";
|
|
1065
1259
|
|
|
1066
1260
|
// src/controls-registry/controls-registry.tsx
|
|
1067
1261
|
import {
|
|
@@ -1070,6 +1264,7 @@ import {
|
|
|
1070
1264
|
SelectControl,
|
|
1071
1265
|
SizeControl,
|
|
1072
1266
|
SvgMediaControl,
|
|
1267
|
+
SwitchControl,
|
|
1073
1268
|
TextAreaControl,
|
|
1074
1269
|
TextControl,
|
|
1075
1270
|
UrlControl
|
|
@@ -1082,7 +1277,8 @@ var controlTypes = {
|
|
|
1082
1277
|
size: { component: SizeControl, layout: "two-columns" },
|
|
1083
1278
|
select: { component: SelectControl, layout: "two-columns" },
|
|
1084
1279
|
link: { component: LinkControl, layout: "full" },
|
|
1085
|
-
url: { component: UrlControl, layout: "full" }
|
|
1280
|
+
url: { component: UrlControl, layout: "full" },
|
|
1281
|
+
switch: { component: SwitchControl, layout: "two-columns" }
|
|
1086
1282
|
};
|
|
1087
1283
|
var getControl = (type) => controlTypes[type]?.component;
|
|
1088
1284
|
var getDefaultLayout = (type) => controlTypes[type].layout;
|
|
@@ -1096,16 +1292,16 @@ var Control = ({ props, type }) => {
|
|
|
1096
1292
|
context: { controlType: type }
|
|
1097
1293
|
});
|
|
1098
1294
|
}
|
|
1099
|
-
return /* @__PURE__ */
|
|
1295
|
+
return /* @__PURE__ */ React12.createElement(ControlByType, { ...props, context: { elementId: element.id } });
|
|
1100
1296
|
};
|
|
1101
1297
|
|
|
1102
1298
|
// src/controls-registry/control-type-container.tsx
|
|
1103
|
-
import * as
|
|
1104
|
-
import { Box as
|
|
1299
|
+
import * as React13 from "react";
|
|
1300
|
+
import { Box as Box4, styled as styled4 } from "@elementor/ui";
|
|
1105
1301
|
var ControlTypeContainer = ({ children, layout }) => {
|
|
1106
|
-
return /* @__PURE__ */
|
|
1302
|
+
return /* @__PURE__ */ React13.createElement(StyledContainer, { layout }, children);
|
|
1107
1303
|
};
|
|
1108
|
-
var StyledContainer = styled4(
|
|
1304
|
+
var StyledContainer = styled4(Box4, {
|
|
1109
1305
|
shouldForwardProp: (prop) => !["layout"].includes(prop)
|
|
1110
1306
|
})(({ layout, theme }) => ({
|
|
1111
1307
|
display: "grid",
|
|
@@ -1121,9 +1317,9 @@ var getGridLayout = (layout) => ({
|
|
|
1121
1317
|
});
|
|
1122
1318
|
|
|
1123
1319
|
// src/controls-registry/settings-field.tsx
|
|
1124
|
-
import * as
|
|
1320
|
+
import * as React14 from "react";
|
|
1125
1321
|
import { PropKeyProvider, PropProvider } from "@elementor/editor-controls";
|
|
1126
|
-
import { updateElementSettings as updateElementSettings3, useElementSetting as
|
|
1322
|
+
import { updateElementSettings as updateElementSettings3, useElementSetting as useElementSetting2 } from "@elementor/editor-elements";
|
|
1127
1323
|
|
|
1128
1324
|
// src/controls-registry/create-top-level-object-type.ts
|
|
1129
1325
|
var createTopLevelOjectType = ({ schema }) => {
|
|
@@ -1141,7 +1337,7 @@ var createTopLevelOjectType = ({ schema }) => {
|
|
|
1141
1337
|
// src/controls-registry/settings-field.tsx
|
|
1142
1338
|
var SettingsField = ({ bind, children }) => {
|
|
1143
1339
|
const { element, elementType } = useElement();
|
|
1144
|
-
const settingsValue =
|
|
1340
|
+
const settingsValue = useElementSetting2(element.id, bind);
|
|
1145
1341
|
const value = { [bind]: settingsValue };
|
|
1146
1342
|
const propType = createTopLevelOjectType({ schema: elementType.propsSchema });
|
|
1147
1343
|
const setValue = (newValue) => {
|
|
@@ -1150,11 +1346,11 @@ var SettingsField = ({ bind, children }) => {
|
|
|
1150
1346
|
props: { ...newValue }
|
|
1151
1347
|
});
|
|
1152
1348
|
};
|
|
1153
|
-
return /* @__PURE__ */
|
|
1349
|
+
return /* @__PURE__ */ React14.createElement(PropProvider, { propType, value, setValue }, /* @__PURE__ */ React14.createElement(PropKeyProvider, { bind }, children));
|
|
1154
1350
|
};
|
|
1155
1351
|
|
|
1156
1352
|
// src/components/section.tsx
|
|
1157
|
-
import * as
|
|
1353
|
+
import * as React15 from "react";
|
|
1158
1354
|
import { useId as useId3 } from "react";
|
|
1159
1355
|
import { Collapse, Divider as Divider2, ListItemButton, ListItemText, Stack as Stack5 } from "@elementor/ui";
|
|
1160
1356
|
|
|
@@ -1176,7 +1372,7 @@ function Section({ title, children, defaultExpanded = false }) {
|
|
|
1176
1372
|
const id = useId3();
|
|
1177
1373
|
const labelId = `label-${id}`;
|
|
1178
1374
|
const contentId = `content-${id}`;
|
|
1179
|
-
return /* @__PURE__ */
|
|
1375
|
+
return /* @__PURE__ */ React15.createElement(React15.Fragment, null, /* @__PURE__ */ React15.createElement(
|
|
1180
1376
|
ListItemButton,
|
|
1181
1377
|
{
|
|
1182
1378
|
id: labelId,
|
|
@@ -1184,38 +1380,48 @@ function Section({ title, children, defaultExpanded = false }) {
|
|
|
1184
1380
|
onClick: () => setIsOpen(!isOpen),
|
|
1185
1381
|
sx: { "&:hover": { backgroundColor: "transparent" } }
|
|
1186
1382
|
},
|
|
1187
|
-
/* @__PURE__ */
|
|
1383
|
+
/* @__PURE__ */ React15.createElement(
|
|
1188
1384
|
ListItemText,
|
|
1189
1385
|
{
|
|
1190
1386
|
secondary: title,
|
|
1191
1387
|
secondaryTypographyProps: { color: "text.primary", variant: "caption", fontWeight: "bold" }
|
|
1192
1388
|
}
|
|
1193
1389
|
),
|
|
1194
|
-
/* @__PURE__ */
|
|
1195
|
-
), /* @__PURE__ */
|
|
1390
|
+
/* @__PURE__ */ React15.createElement(CollapseIcon, { open: isOpen, color: "secondary", fontSize: "tiny" })
|
|
1391
|
+
), /* @__PURE__ */ React15.createElement(Collapse, { id: contentId, "aria-labelledby": labelId, in: isOpen, timeout: "auto", unmountOnExit: true }, /* @__PURE__ */ React15.createElement(Stack5, { gap: 2.5, p: 2 }, children)), /* @__PURE__ */ React15.createElement(Divider2, null));
|
|
1196
1392
|
}
|
|
1197
1393
|
|
|
1198
1394
|
// src/components/sections-list.tsx
|
|
1199
|
-
import * as
|
|
1395
|
+
import * as React16 from "react";
|
|
1200
1396
|
import { List } from "@elementor/ui";
|
|
1201
1397
|
function SectionsList(props) {
|
|
1202
|
-
return /* @__PURE__ */
|
|
1398
|
+
return /* @__PURE__ */ React16.createElement(List, { disablePadding: true, component: "div", ...props });
|
|
1203
1399
|
}
|
|
1204
1400
|
|
|
1205
1401
|
// src/components/settings-tab.tsx
|
|
1206
1402
|
var SettingsTab = () => {
|
|
1207
1403
|
const { elementType, element } = useElement();
|
|
1208
|
-
|
|
1404
|
+
const settingsDefault = useDefaultPanelSettings();
|
|
1405
|
+
const isDefaultExpanded = (sectionId) => isExperimentActive3(EXPERIMENTAL_FEATURES.V_3_30) ? settingsDefault.defaultSectionsExpanded.settings?.includes(sectionId) : true;
|
|
1406
|
+
return /* @__PURE__ */ React17.createElement(SessionStorageProvider, { prefix: element.id }, /* @__PURE__ */ React17.createElement(SectionsList, null, elementType.controls.map(({ type, value }, index) => {
|
|
1209
1407
|
if (type === "control") {
|
|
1210
|
-
return /* @__PURE__ */
|
|
1408
|
+
return /* @__PURE__ */ React17.createElement(Control2, { key: value.bind, control: value });
|
|
1211
1409
|
}
|
|
1212
1410
|
if (type === "section") {
|
|
1213
|
-
return /* @__PURE__ */
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1411
|
+
return /* @__PURE__ */ React17.createElement(
|
|
1412
|
+
Section,
|
|
1413
|
+
{
|
|
1414
|
+
title: value.label,
|
|
1415
|
+
key: type + "." + index,
|
|
1416
|
+
defaultExpanded: isDefaultExpanded(value.label)
|
|
1417
|
+
},
|
|
1418
|
+
value.items?.map((item) => {
|
|
1419
|
+
if (item.type === "control") {
|
|
1420
|
+
return /* @__PURE__ */ React17.createElement(Control2, { key: item.value.bind, control: item.value });
|
|
1421
|
+
}
|
|
1422
|
+
return null;
|
|
1423
|
+
})
|
|
1424
|
+
);
|
|
1219
1425
|
}
|
|
1220
1426
|
return null;
|
|
1221
1427
|
})));
|
|
@@ -1225,23 +1431,24 @@ var Control2 = ({ control }) => {
|
|
|
1225
1431
|
return null;
|
|
1226
1432
|
}
|
|
1227
1433
|
const layout = control.meta?.layout || getDefaultLayout(control.type);
|
|
1228
|
-
return /* @__PURE__ */
|
|
1434
|
+
return /* @__PURE__ */ React17.createElement(SettingsField, { bind: control.bind }, control.meta?.topDivider && /* @__PURE__ */ React17.createElement(Divider3, null), /* @__PURE__ */ React17.createElement(ControlTypeContainer, { layout }, control.label ? /* @__PURE__ */ React17.createElement(ControlFormLabel, null, control.label) : null, /* @__PURE__ */ React17.createElement(Control, { type: control.type, props: control.props })));
|
|
1229
1435
|
};
|
|
1230
1436
|
|
|
1231
1437
|
// src/components/style-tab.tsx
|
|
1232
|
-
import * as
|
|
1233
|
-
import { useState as
|
|
1438
|
+
import * as React73 from "react";
|
|
1439
|
+
import { useState as useState12 } from "react";
|
|
1234
1440
|
import { CLASSES_PROP_KEY } from "@elementor/editor-props";
|
|
1235
1441
|
import { useActiveBreakpoint } from "@elementor/editor-responsive";
|
|
1442
|
+
import { isExperimentActive as isExperimentActive9 } from "@elementor/editor-v1-adapters";
|
|
1236
1443
|
import { SessionStorageProvider as SessionStorageProvider2 } from "@elementor/session";
|
|
1237
1444
|
import { Divider as Divider5, Stack as Stack16 } from "@elementor/ui";
|
|
1238
|
-
import { __ as
|
|
1445
|
+
import { __ as __49 } from "@wordpress/i18n";
|
|
1239
1446
|
|
|
1240
1447
|
// src/contexts/styles-inheritance-context.tsx
|
|
1241
|
-
import * as
|
|
1242
|
-
import { createContext as
|
|
1243
|
-
import { getWidgetsCache, useElementSetting as
|
|
1244
|
-
import { classesPropTypeUtil as
|
|
1448
|
+
import * as React18 from "react";
|
|
1449
|
+
import { createContext as createContext7, useContext as useContext7 } from "react";
|
|
1450
|
+
import { getWidgetsCache, useElementSetting as useElementSetting3 } from "@elementor/editor-elements";
|
|
1451
|
+
import { classesPropTypeUtil as classesPropTypeUtil3 } from "@elementor/editor-props";
|
|
1245
1452
|
import { getBreakpointsTree } from "@elementor/editor-responsive";
|
|
1246
1453
|
import { stylesRepository as stylesRepository5 } from "@elementor/editor-styles-repository";
|
|
1247
1454
|
|
|
@@ -1444,15 +1651,15 @@ function getValueByPath(value, path) {
|
|
|
1444
1651
|
}
|
|
1445
1652
|
|
|
1446
1653
|
// src/contexts/styles-inheritance-context.tsx
|
|
1447
|
-
var Context4 =
|
|
1654
|
+
var Context4 = createContext7(null);
|
|
1448
1655
|
function StyleInheritanceProvider({ children }) {
|
|
1449
1656
|
const styleDefs = useAppliedStyles();
|
|
1450
1657
|
const breakpointsTree = getBreakpointsTree();
|
|
1451
1658
|
const { getSnapshot, getInheritanceChain } = createStylesInheritance(styleDefs, breakpointsTree);
|
|
1452
|
-
return /* @__PURE__ */
|
|
1659
|
+
return /* @__PURE__ */ React18.createElement(Context4.Provider, { value: { getSnapshot, getInheritanceChain } }, children);
|
|
1453
1660
|
}
|
|
1454
1661
|
function useStylesInheritanceSnapshot() {
|
|
1455
|
-
const context =
|
|
1662
|
+
const context = useContext7(Context4);
|
|
1456
1663
|
const { meta } = useStyle();
|
|
1457
1664
|
if (!context) {
|
|
1458
1665
|
throw new Error("useStylesInheritanceSnapshot must be used within a StyleInheritanceProvider");
|
|
@@ -1463,7 +1670,7 @@ function useStylesInheritanceSnapshot() {
|
|
|
1463
1670
|
return context.getSnapshot(meta) ?? null;
|
|
1464
1671
|
}
|
|
1465
1672
|
function useStylesInheritanceChain(path) {
|
|
1466
|
-
const context =
|
|
1673
|
+
const context = useContext7(Context4);
|
|
1467
1674
|
if (!context) {
|
|
1468
1675
|
throw new Error("useStylesInheritanceChain must be used within a StyleInheritanceProvider");
|
|
1469
1676
|
}
|
|
@@ -1478,8 +1685,8 @@ var useAppliedStyles = () => {
|
|
|
1478
1685
|
const currentClassesProp = useClassesProp();
|
|
1479
1686
|
const baseStyles = useBaseStyles();
|
|
1480
1687
|
useStylesRerender();
|
|
1481
|
-
const classesProp =
|
|
1482
|
-
const appliedStyles =
|
|
1688
|
+
const classesProp = useElementSetting3(element.id, currentClassesProp);
|
|
1689
|
+
const appliedStyles = classesPropTypeUtil3.extract(classesProp);
|
|
1483
1690
|
return stylesRepository5.all().filter((style) => appliedStyles?.includes(style.id)).concat(baseStyles);
|
|
1484
1691
|
};
|
|
1485
1692
|
var useBaseStyles = () => {
|
|
@@ -1490,10 +1697,12 @@ var useBaseStyles = () => {
|
|
|
1490
1697
|
};
|
|
1491
1698
|
|
|
1492
1699
|
// src/hooks/use-active-style-def-id.ts
|
|
1493
|
-
import {
|
|
1494
|
-
import { getElementStyles, useElementSetting as useElementSetting5 } from "@elementor/editor-elements";
|
|
1700
|
+
import { getElementStyles, useElementSetting as useElementSetting4 } from "@elementor/editor-elements";
|
|
1495
1701
|
function useActiveStyleDefId(classProp) {
|
|
1496
|
-
const [activeStyledDefId, setActiveStyledDefId] =
|
|
1702
|
+
const [activeStyledDefId, setActiveStyledDefId] = useStateByElement(
|
|
1703
|
+
"active-style-id",
|
|
1704
|
+
null
|
|
1705
|
+
);
|
|
1497
1706
|
const appliedClassesIds = useAppliedClassesIds2(classProp)?.value || [];
|
|
1498
1707
|
const fallback = useFirstAppliedClass(appliedClassesIds);
|
|
1499
1708
|
const activeAndAppliedClassId = useActiveAndAppliedClassId(activeStyledDefId, appliedClassesIds);
|
|
@@ -1506,7 +1715,7 @@ function useFirstAppliedClass(appliedClassesIds) {
|
|
|
1506
1715
|
}
|
|
1507
1716
|
function useAppliedClassesIds2(classProp) {
|
|
1508
1717
|
const { element } = useElement();
|
|
1509
|
-
return
|
|
1718
|
+
return useElementSetting4(element.id, classProp);
|
|
1510
1719
|
}
|
|
1511
1720
|
function useActiveAndAppliedClassId(id, appliedClassesIds) {
|
|
1512
1721
|
const isClassApplied = !!id && appliedClassesIds.includes(id);
|
|
@@ -1514,25 +1723,25 @@ function useActiveAndAppliedClassId(id, appliedClassesIds) {
|
|
|
1514
1723
|
}
|
|
1515
1724
|
|
|
1516
1725
|
// src/components/style-sections/background-section/background-section.tsx
|
|
1517
|
-
import * as
|
|
1726
|
+
import * as React22 from "react";
|
|
1518
1727
|
import { BackgroundControl } from "@elementor/editor-controls";
|
|
1519
1728
|
|
|
1520
1729
|
// src/controls-registry/styles-field.tsx
|
|
1521
|
-
import * as
|
|
1730
|
+
import * as React21 from "react";
|
|
1522
1731
|
import { ControlAdornmentsProvider, PropKeyProvider as PropKeyProvider2, PropProvider as PropProvider2 } from "@elementor/editor-controls";
|
|
1523
1732
|
import { getStylesSchema } from "@elementor/editor-styles";
|
|
1524
1733
|
|
|
1525
1734
|
// src/hooks/use-styles-fields.ts
|
|
1526
|
-
import { useMemo as
|
|
1735
|
+
import { useMemo as useMemo3 } from "react";
|
|
1527
1736
|
import {
|
|
1528
1737
|
createElementStyle,
|
|
1529
1738
|
deleteElementStyle,
|
|
1530
|
-
getElementLabel
|
|
1739
|
+
getElementLabel as getElementLabel2
|
|
1531
1740
|
} from "@elementor/editor-elements";
|
|
1532
1741
|
import { getVariantByMeta } from "@elementor/editor-styles";
|
|
1533
1742
|
import { ELEMENTS_STYLES_RESERVED_LABEL } from "@elementor/editor-styles-repository";
|
|
1534
|
-
import { undoable } from "@elementor/editor-v1-adapters";
|
|
1535
|
-
import { __ as
|
|
1743
|
+
import { undoable as undoable2 } from "@elementor/editor-v1-adapters";
|
|
1744
|
+
import { __ as __5 } from "@wordpress/i18n";
|
|
1536
1745
|
function useStylesFields(propNames) {
|
|
1537
1746
|
const { element } = useElement();
|
|
1538
1747
|
const { id, meta, provider } = useStyle();
|
|
@@ -1581,8 +1790,8 @@ function getProps({ styleId, elementId, provider, meta, propNames }) {
|
|
|
1581
1790
|
);
|
|
1582
1791
|
}
|
|
1583
1792
|
function useUndoableCreateElementStyle() {
|
|
1584
|
-
return
|
|
1585
|
-
return
|
|
1793
|
+
return useMemo3(() => {
|
|
1794
|
+
return undoable2(
|
|
1586
1795
|
{
|
|
1587
1796
|
do: (payload) => {
|
|
1588
1797
|
return createElementStyle({
|
|
@@ -1602,15 +1811,15 @@ function useUndoableCreateElementStyle() {
|
|
|
1602
1811
|
}
|
|
1603
1812
|
},
|
|
1604
1813
|
{
|
|
1605
|
-
title: ({ elementId }) =>
|
|
1606
|
-
subtitle:
|
|
1814
|
+
title: ({ elementId }) => getElementLabel2(elementId),
|
|
1815
|
+
subtitle: __5("Style edited", "elementor")
|
|
1607
1816
|
}
|
|
1608
1817
|
);
|
|
1609
1818
|
}, []);
|
|
1610
1819
|
}
|
|
1611
1820
|
function useUndoableUpdateStyle() {
|
|
1612
|
-
return
|
|
1613
|
-
return
|
|
1821
|
+
return useMemo3(() => {
|
|
1822
|
+
return undoable2(
|
|
1614
1823
|
{
|
|
1615
1824
|
do: ({ elementId, styleId, provider, meta, props }) => {
|
|
1616
1825
|
if (!provider.actions.updateProps) {
|
|
@@ -1635,8 +1844,8 @@ function useUndoableUpdateStyle() {
|
|
|
1635
1844
|
}
|
|
1636
1845
|
},
|
|
1637
1846
|
{
|
|
1638
|
-
title: ({ elementId }) =>
|
|
1639
|
-
subtitle:
|
|
1847
|
+
title: ({ elementId }) => getElementLabel2(elementId),
|
|
1848
|
+
subtitle: __5("Style edited", "elementor")
|
|
1640
1849
|
}
|
|
1641
1850
|
);
|
|
1642
1851
|
}, []);
|
|
@@ -1663,26 +1872,26 @@ function useStylesField(propName) {
|
|
|
1663
1872
|
}
|
|
1664
1873
|
|
|
1665
1874
|
// src/styles-inheritance/styles-inheritance-indicator.tsx
|
|
1666
|
-
import * as
|
|
1667
|
-
import { useState as
|
|
1875
|
+
import * as React20 from "react";
|
|
1876
|
+
import { useState as useState8 } from "react";
|
|
1668
1877
|
import { useBoundProp } from "@elementor/editor-controls";
|
|
1669
1878
|
import { isEmpty as isEmpty2 } from "@elementor/editor-props";
|
|
1670
1879
|
import { ELEMENTS_BASE_STYLES_PROVIDER_KEY, isElementsStylesProvider as isElementsStylesProvider3 } from "@elementor/editor-styles-repository";
|
|
1671
|
-
import { isExperimentActive as
|
|
1880
|
+
import { isExperimentActive as isExperimentActive4 } from "@elementor/editor-v1-adapters";
|
|
1672
1881
|
import { IconButton as IconButton2, Infotip } from "@elementor/ui";
|
|
1673
|
-
import { __ as
|
|
1882
|
+
import { __ as __6 } from "@wordpress/i18n";
|
|
1674
1883
|
|
|
1675
1884
|
// src/styles-inheritance/styles-inheritance-infotip.tsx
|
|
1676
|
-
import * as
|
|
1677
|
-
import { useMemo as
|
|
1885
|
+
import * as React19 from "react";
|
|
1886
|
+
import { useMemo as useMemo4 } from "react";
|
|
1678
1887
|
import { createPropsResolver, styleTransformersRegistry } from "@elementor/editor-canvas";
|
|
1679
1888
|
import { Card, CardContent, List as List2, ListItem, ListItemText as ListItemText2 } from "@elementor/ui";
|
|
1680
1889
|
|
|
1681
1890
|
// src/hooks/use-normalized-inheritance-chain-items.tsx
|
|
1682
|
-
import { useEffect as useEffect3, useState as
|
|
1891
|
+
import { useEffect as useEffect3, useState as useState7 } from "react";
|
|
1683
1892
|
var MAXIMUM_ITEMS = 2;
|
|
1684
1893
|
var useNormalizedInheritanceChainItems = (inheritanceChain, bind, resolve) => {
|
|
1685
|
-
const [items3, setItems] =
|
|
1894
|
+
const [items3, setItems] = useState7([]);
|
|
1686
1895
|
useEffect3(() => {
|
|
1687
1896
|
(async () => {
|
|
1688
1897
|
const normalizedItems = await Promise.all(
|
|
@@ -1721,14 +1930,14 @@ var getTransformedValue = async (item, bind, resolve) => {
|
|
|
1721
1930
|
// src/styles-inheritance/styles-inheritance-infotip.tsx
|
|
1722
1931
|
var StyleIndicatorInfotip = ({ inheritanceChain, propType, path }) => {
|
|
1723
1932
|
const key = path.join(".");
|
|
1724
|
-
const resolve =
|
|
1933
|
+
const resolve = useMemo4(() => {
|
|
1725
1934
|
return createPropsResolver({
|
|
1726
1935
|
transformers: styleTransformersRegistry,
|
|
1727
1936
|
schema: { [key]: propType }
|
|
1728
1937
|
});
|
|
1729
1938
|
}, [key, propType]);
|
|
1730
1939
|
const items3 = useNormalizedInheritanceChainItems(inheritanceChain, key, resolve);
|
|
1731
|
-
return /* @__PURE__ */
|
|
1940
|
+
return /* @__PURE__ */ React19.createElement(Card, { elevation: 0, sx: { maxWidth: 320 } }, /* @__PURE__ */ React19.createElement(CardContent, { sx: { p: 1.5, pb: 2.5 } }, /* @__PURE__ */ React19.createElement(List2, null, items3.map((item) => /* @__PURE__ */ React19.createElement(ListItem, { key: item.id }, /* @__PURE__ */ React19.createElement(
|
|
1732
1941
|
ListItemText2,
|
|
1733
1942
|
{
|
|
1734
1943
|
primary: `${item.breakpoint} | ${item.displayLabel}. ${item.value}`
|
|
@@ -1738,10 +1947,10 @@ var StyleIndicatorInfotip = ({ inheritanceChain, propType, path }) => {
|
|
|
1738
1947
|
|
|
1739
1948
|
// src/styles-inheritance/styles-inheritance-indicator.tsx
|
|
1740
1949
|
var StylesInheritanceIndicator = () => {
|
|
1741
|
-
const [open, setOpen] =
|
|
1950
|
+
const [open, setOpen] = useState8(false);
|
|
1742
1951
|
const { value, path, propType } = useBoundProp();
|
|
1743
1952
|
const { id: currentStyleId, provider: currentStyleProvider, meta: currentStyleMeta } = useStyle();
|
|
1744
|
-
const isUsingNestedProps =
|
|
1953
|
+
const isUsingNestedProps = isExperimentActive4("e_v_3_30");
|
|
1745
1954
|
const finalPath = isUsingNestedProps ? path : path.slice(0, 1);
|
|
1746
1955
|
const inheritanceChain = useStylesInheritanceChain(finalPath);
|
|
1747
1956
|
if (!inheritanceChain.length) {
|
|
@@ -1756,31 +1965,31 @@ var StylesInheritanceIndicator = () => {
|
|
|
1756
1965
|
const hasValue = !isEmpty2(value);
|
|
1757
1966
|
const label = getLabel({ isFinalValue, hasValue });
|
|
1758
1967
|
const variantType = getVariant({ isFinalValue, hasValue, currentStyleProvider });
|
|
1759
|
-
const eIndicationsPopover =
|
|
1968
|
+
const eIndicationsPopover = isExperimentActive4("e_indications_popover");
|
|
1760
1969
|
if (!eIndicationsPopover) {
|
|
1761
|
-
return /* @__PURE__ */
|
|
1970
|
+
return /* @__PURE__ */ React20.createElement(StyleIndicator, { variant: variantType, "aria-label": label });
|
|
1762
1971
|
}
|
|
1763
1972
|
const toggleOpen = () => setOpen((prev) => !prev);
|
|
1764
|
-
return /* @__PURE__ */
|
|
1973
|
+
return /* @__PURE__ */ React20.createElement(
|
|
1765
1974
|
Infotip,
|
|
1766
1975
|
{
|
|
1767
1976
|
placement: "top",
|
|
1768
|
-
content: /* @__PURE__ */
|
|
1977
|
+
content: /* @__PURE__ */ React20.createElement(StyleIndicatorInfotip, { inheritanceChain, path: finalPath, propType }),
|
|
1769
1978
|
open,
|
|
1770
1979
|
onClose: () => setOpen(false),
|
|
1771
1980
|
trigger: "manual"
|
|
1772
1981
|
},
|
|
1773
|
-
/* @__PURE__ */
|
|
1982
|
+
/* @__PURE__ */ React20.createElement(IconButton2, { onClick: toggleOpen, "aria-label": label }, /* @__PURE__ */ React20.createElement(StyleIndicator, { variant: variantType }))
|
|
1774
1983
|
);
|
|
1775
1984
|
};
|
|
1776
1985
|
var getLabel = ({ isFinalValue, hasValue }) => {
|
|
1777
1986
|
if (isFinalValue) {
|
|
1778
|
-
return
|
|
1987
|
+
return __6("This is the final value", "elementor");
|
|
1779
1988
|
}
|
|
1780
1989
|
if (hasValue) {
|
|
1781
|
-
return
|
|
1990
|
+
return __6("This value is overridden by another style", "elementor");
|
|
1782
1991
|
}
|
|
1783
|
-
return
|
|
1992
|
+
return __6("This has value from another style", "elementor");
|
|
1784
1993
|
};
|
|
1785
1994
|
var getVariant = ({
|
|
1786
1995
|
isFinalValue,
|
|
@@ -1806,7 +2015,7 @@ var StylesField = ({ bind, placeholder, children }) => {
|
|
|
1806
2015
|
const setValues = (newValue) => {
|
|
1807
2016
|
setValue(newValue[bind]);
|
|
1808
2017
|
};
|
|
1809
|
-
return /* @__PURE__ */
|
|
2018
|
+
return /* @__PURE__ */ React21.createElement(
|
|
1810
2019
|
ControlAdornmentsProvider,
|
|
1811
2020
|
{
|
|
1812
2021
|
items: [
|
|
@@ -1816,7 +2025,7 @@ var StylesField = ({ bind, placeholder, children }) => {
|
|
|
1816
2025
|
}
|
|
1817
2026
|
]
|
|
1818
2027
|
},
|
|
1819
|
-
/* @__PURE__ */
|
|
2028
|
+
/* @__PURE__ */ React21.createElement(
|
|
1820
2029
|
PropProvider2,
|
|
1821
2030
|
{
|
|
1822
2031
|
propType,
|
|
@@ -1824,50 +2033,50 @@ var StylesField = ({ bind, placeholder, children }) => {
|
|
|
1824
2033
|
setValue: setValues,
|
|
1825
2034
|
placeholder: placeholderValues
|
|
1826
2035
|
},
|
|
1827
|
-
/* @__PURE__ */
|
|
2036
|
+
/* @__PURE__ */ React21.createElement(PropKeyProvider2, { bind }, children)
|
|
1828
2037
|
)
|
|
1829
2038
|
);
|
|
1830
2039
|
};
|
|
1831
2040
|
|
|
1832
2041
|
// src/components/style-sections/background-section/background-section.tsx
|
|
1833
2042
|
var BackgroundSection = () => {
|
|
1834
|
-
return /* @__PURE__ */
|
|
2043
|
+
return /* @__PURE__ */ React22.createElement(StylesField, { bind: "background" }, /* @__PURE__ */ React22.createElement(BackgroundControl, null));
|
|
1835
2044
|
};
|
|
1836
2045
|
|
|
1837
2046
|
// src/components/style-sections/border-section/border-section.tsx
|
|
1838
|
-
import * as
|
|
2047
|
+
import * as React32 from "react";
|
|
1839
2048
|
|
|
1840
2049
|
// src/components/panel-divider.tsx
|
|
1841
|
-
import * as
|
|
2050
|
+
import * as React23 from "react";
|
|
1842
2051
|
import { Divider as Divider4 } from "@elementor/ui";
|
|
1843
|
-
var PanelDivider = () => /* @__PURE__ */
|
|
2052
|
+
var PanelDivider = () => /* @__PURE__ */ React23.createElement(Divider4, { sx: { my: 0.5 } });
|
|
1844
2053
|
|
|
1845
2054
|
// src/components/section-content.tsx
|
|
1846
|
-
import * as
|
|
2055
|
+
import * as React24 from "react";
|
|
1847
2056
|
import { Stack as Stack6 } from "@elementor/ui";
|
|
1848
|
-
var SectionContent = ({ gap = 2, sx, children }) => /* @__PURE__ */
|
|
2057
|
+
var SectionContent = ({ gap = 2, sx, children }) => /* @__PURE__ */ React24.createElement(Stack6, { gap, sx: { ...sx } }, children);
|
|
1849
2058
|
|
|
1850
2059
|
// src/components/style-sections/border-section/border-field.tsx
|
|
1851
|
-
import * as
|
|
1852
|
-
import { __ as
|
|
2060
|
+
import * as React30 from "react";
|
|
2061
|
+
import { __ as __10 } from "@wordpress/i18n";
|
|
1853
2062
|
|
|
1854
2063
|
// src/components/add-or-remove-content.tsx
|
|
1855
|
-
import * as
|
|
2064
|
+
import * as React26 from "react";
|
|
1856
2065
|
import { MinusIcon, PlusIcon } from "@elementor/icons";
|
|
1857
2066
|
import { Collapse as Collapse2, IconButton as IconButton3, Stack as Stack8 } from "@elementor/ui";
|
|
1858
2067
|
|
|
1859
2068
|
// src/components/control-label.tsx
|
|
1860
|
-
import * as
|
|
2069
|
+
import * as React25 from "react";
|
|
1861
2070
|
import { ControlAdornments, ControlFormLabel as ControlFormLabel2 } from "@elementor/editor-controls";
|
|
1862
2071
|
import { Stack as Stack7 } from "@elementor/ui";
|
|
1863
2072
|
var ControlLabel = ({ children }) => {
|
|
1864
|
-
return /* @__PURE__ */
|
|
2073
|
+
return /* @__PURE__ */ React25.createElement(Stack7, { direction: "row", alignItems: "center", justifyItems: "start", gap: 1 }, /* @__PURE__ */ React25.createElement(ControlFormLabel2, null, children), /* @__PURE__ */ React25.createElement(ControlAdornments, null));
|
|
1865
2074
|
};
|
|
1866
2075
|
|
|
1867
2076
|
// src/components/add-or-remove-content.tsx
|
|
1868
2077
|
var SIZE2 = "tiny";
|
|
1869
2078
|
var AddOrRemoveContent = ({ isAdded, label, onAdd, onRemove, children }) => {
|
|
1870
|
-
return /* @__PURE__ */
|
|
2079
|
+
return /* @__PURE__ */ React26.createElement(SectionContent, null, /* @__PURE__ */ React26.createElement(
|
|
1871
2080
|
Stack8,
|
|
1872
2081
|
{
|
|
1873
2082
|
direction: "row",
|
|
@@ -1877,47 +2086,47 @@ var AddOrRemoveContent = ({ isAdded, label, onAdd, onRemove, children }) => {
|
|
|
1877
2086
|
marginInlineEnd: -0.75
|
|
1878
2087
|
}
|
|
1879
2088
|
},
|
|
1880
|
-
/* @__PURE__ */
|
|
1881
|
-
isAdded ? /* @__PURE__ */
|
|
1882
|
-
), /* @__PURE__ */
|
|
2089
|
+
/* @__PURE__ */ React26.createElement(ControlLabel, null, label),
|
|
2090
|
+
isAdded ? /* @__PURE__ */ React26.createElement(IconButton3, { size: SIZE2, onClick: onRemove, "aria-label": "Remove" }, /* @__PURE__ */ React26.createElement(MinusIcon, { fontSize: SIZE2 })) : /* @__PURE__ */ React26.createElement(IconButton3, { size: SIZE2, onClick: onAdd, "aria-label": "Add" }, /* @__PURE__ */ React26.createElement(PlusIcon, { fontSize: SIZE2 }))
|
|
2091
|
+
), /* @__PURE__ */ React26.createElement(Collapse2, { in: isAdded, unmountOnExit: true }, /* @__PURE__ */ React26.createElement(SectionContent, null, children)));
|
|
1883
2092
|
};
|
|
1884
2093
|
|
|
1885
2094
|
// src/components/style-sections/border-section/border-color-field.tsx
|
|
1886
|
-
import * as
|
|
2095
|
+
import * as React27 from "react";
|
|
1887
2096
|
import { ColorControl } from "@elementor/editor-controls";
|
|
1888
2097
|
import { Grid } from "@elementor/ui";
|
|
1889
|
-
import { __ as
|
|
2098
|
+
import { __ as __7 } from "@wordpress/i18n";
|
|
1890
2099
|
var BorderColorField = () => {
|
|
1891
|
-
return /* @__PURE__ */
|
|
2100
|
+
return /* @__PURE__ */ React27.createElement(StylesField, { bind: "border-color" }, /* @__PURE__ */ React27.createElement(Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React27.createElement(Grid, { item: true, xs: 6 }, /* @__PURE__ */ React27.createElement(ControlLabel, null, __7("Border color", "elementor"))), /* @__PURE__ */ React27.createElement(Grid, { item: true, xs: 6 }, /* @__PURE__ */ React27.createElement(ColorControl, null))));
|
|
1892
2101
|
};
|
|
1893
2102
|
|
|
1894
2103
|
// src/components/style-sections/border-section/border-style-field.tsx
|
|
1895
|
-
import * as
|
|
2104
|
+
import * as React28 from "react";
|
|
1896
2105
|
import { SelectControl as SelectControl2 } from "@elementor/editor-controls";
|
|
1897
2106
|
import { Grid as Grid2 } from "@elementor/ui";
|
|
1898
|
-
import { __ as
|
|
2107
|
+
import { __ as __8 } from "@wordpress/i18n";
|
|
1899
2108
|
var borderStyles = [
|
|
1900
|
-
{ value: "none", label:
|
|
1901
|
-
{ value: "solid", label:
|
|
1902
|
-
{ value: "dashed", label:
|
|
1903
|
-
{ value: "dotted", label:
|
|
1904
|
-
{ value: "double", label:
|
|
1905
|
-
{ value: "groove", label:
|
|
1906
|
-
{ value: "ridge", label:
|
|
1907
|
-
{ value: "inset", label:
|
|
1908
|
-
{ value: "outset", label:
|
|
2109
|
+
{ value: "none", label: __8("None", "elementor") },
|
|
2110
|
+
{ value: "solid", label: __8("Solid", "elementor") },
|
|
2111
|
+
{ value: "dashed", label: __8("Dashed", "elementor") },
|
|
2112
|
+
{ value: "dotted", label: __8("Dotted", "elementor") },
|
|
2113
|
+
{ value: "double", label: __8("Double", "elementor") },
|
|
2114
|
+
{ value: "groove", label: __8("Groove", "elementor") },
|
|
2115
|
+
{ value: "ridge", label: __8("Ridge", "elementor") },
|
|
2116
|
+
{ value: "inset", label: __8("Inset", "elementor") },
|
|
2117
|
+
{ value: "outset", label: __8("Outset", "elementor") }
|
|
1909
2118
|
];
|
|
1910
2119
|
var BorderStyleField = () => {
|
|
1911
|
-
return /* @__PURE__ */
|
|
2120
|
+
return /* @__PURE__ */ React28.createElement(StylesField, { bind: "border-style" }, /* @__PURE__ */ React28.createElement(Grid2, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React28.createElement(Grid2, { item: true, xs: 6 }, /* @__PURE__ */ React28.createElement(ControlLabel, null, __8("Border type", "elementor"))), /* @__PURE__ */ React28.createElement(Grid2, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React28.createElement(SelectControl2, { options: borderStyles }))));
|
|
1912
2121
|
};
|
|
1913
2122
|
|
|
1914
2123
|
// src/components/style-sections/border-section/border-width-field.tsx
|
|
1915
|
-
import * as
|
|
2124
|
+
import * as React29 from "react";
|
|
1916
2125
|
import { EqualUnequalSizesControl } from "@elementor/editor-controls";
|
|
1917
2126
|
import { borderWidthPropTypeUtil } from "@elementor/editor-props";
|
|
1918
2127
|
import { SideAllIcon, SideBottomIcon, SideLeftIcon, SideRightIcon, SideTopIcon } from "@elementor/icons";
|
|
1919
2128
|
import { withDirection } from "@elementor/ui";
|
|
1920
|
-
import { __ as
|
|
2129
|
+
import { __ as __9 } from "@wordpress/i18n";
|
|
1921
2130
|
|
|
1922
2131
|
// src/hooks/use-direction.ts
|
|
1923
2132
|
import { useTheme } from "@elementor/ui";
|
|
@@ -1944,35 +2153,35 @@ var InlineStartIcon = withDirection(SideRightIcon);
|
|
|
1944
2153
|
var InlineEndIcon = withDirection(SideLeftIcon);
|
|
1945
2154
|
var getEdges = (isSiteRtl) => [
|
|
1946
2155
|
{
|
|
1947
|
-
label:
|
|
1948
|
-
icon: /* @__PURE__ */
|
|
2156
|
+
label: __9("Top", "elementor"),
|
|
2157
|
+
icon: /* @__PURE__ */ React29.createElement(SideTopIcon, { fontSize: "tiny" }),
|
|
1949
2158
|
bind: "block-start"
|
|
1950
2159
|
},
|
|
1951
2160
|
{
|
|
1952
|
-
label: isSiteRtl ?
|
|
1953
|
-
icon: /* @__PURE__ */
|
|
2161
|
+
label: isSiteRtl ? __9("Left", "elementor") : __9("Right", "elementor"),
|
|
2162
|
+
icon: /* @__PURE__ */ React29.createElement(InlineStartIcon, { fontSize: "tiny" }),
|
|
1954
2163
|
bind: "inline-end"
|
|
1955
2164
|
},
|
|
1956
2165
|
{
|
|
1957
|
-
label:
|
|
1958
|
-
icon: /* @__PURE__ */
|
|
2166
|
+
label: __9("Bottom", "elementor"),
|
|
2167
|
+
icon: /* @__PURE__ */ React29.createElement(SideBottomIcon, { fontSize: "tiny" }),
|
|
1959
2168
|
bind: "block-end"
|
|
1960
2169
|
},
|
|
1961
2170
|
{
|
|
1962
|
-
label: isSiteRtl ?
|
|
1963
|
-
icon: /* @__PURE__ */
|
|
2171
|
+
label: isSiteRtl ? __9("Right", "elementor") : __9("Left", "elementor"),
|
|
2172
|
+
icon: /* @__PURE__ */ React29.createElement(InlineEndIcon, { fontSize: "tiny" }),
|
|
1964
2173
|
bind: "inline-start"
|
|
1965
2174
|
}
|
|
1966
2175
|
];
|
|
1967
2176
|
var BorderWidthField = () => {
|
|
1968
2177
|
const { isSiteRtl } = useDirection();
|
|
1969
|
-
return /* @__PURE__ */
|
|
2178
|
+
return /* @__PURE__ */ React29.createElement(StylesField, { bind: "border-width" }, /* @__PURE__ */ React29.createElement(
|
|
1970
2179
|
EqualUnequalSizesControl,
|
|
1971
2180
|
{
|
|
1972
2181
|
items: getEdges(isSiteRtl),
|
|
1973
|
-
label:
|
|
1974
|
-
icon: /* @__PURE__ */
|
|
1975
|
-
tooltipLabel:
|
|
2182
|
+
label: __9("Border width", "elementor"),
|
|
2183
|
+
icon: /* @__PURE__ */ React29.createElement(SideAllIcon, { fontSize: "tiny" }),
|
|
2184
|
+
tooltipLabel: __9("Adjust borders", "elementor"),
|
|
1976
2185
|
multiSizePropTypeUtil: borderWidthPropTypeUtil
|
|
1977
2186
|
}
|
|
1978
2187
|
));
|
|
@@ -1997,22 +2206,22 @@ var BorderField = () => {
|
|
|
1997
2206
|
});
|
|
1998
2207
|
};
|
|
1999
2208
|
const hasBorder = Object.values(border ?? {}).some(Boolean);
|
|
2000
|
-
return /* @__PURE__ */
|
|
2209
|
+
return /* @__PURE__ */ React30.createElement(
|
|
2001
2210
|
AddOrRemoveContent,
|
|
2002
2211
|
{
|
|
2003
|
-
label:
|
|
2212
|
+
label: __10("Border", "elementor"),
|
|
2004
2213
|
isAdded: hasBorder,
|
|
2005
2214
|
onAdd: addBorder,
|
|
2006
2215
|
onRemove: removeBorder
|
|
2007
2216
|
},
|
|
2008
|
-
/* @__PURE__ */
|
|
2009
|
-
/* @__PURE__ */
|
|
2010
|
-
/* @__PURE__ */
|
|
2217
|
+
/* @__PURE__ */ React30.createElement(BorderWidthField, null),
|
|
2218
|
+
/* @__PURE__ */ React30.createElement(BorderColorField, null),
|
|
2219
|
+
/* @__PURE__ */ React30.createElement(BorderStyleField, null)
|
|
2011
2220
|
);
|
|
2012
2221
|
};
|
|
2013
2222
|
|
|
2014
2223
|
// src/components/style-sections/border-section/border-radius-field.tsx
|
|
2015
|
-
import * as
|
|
2224
|
+
import * as React31 from "react";
|
|
2016
2225
|
import { EqualUnequalSizesControl as EqualUnequalSizesControl2 } from "@elementor/editor-controls";
|
|
2017
2226
|
import { borderRadiusPropTypeUtil } from "@elementor/editor-props";
|
|
2018
2227
|
import {
|
|
@@ -2023,66 +2232,66 @@ import {
|
|
|
2023
2232
|
RadiusTopRightIcon
|
|
2024
2233
|
} from "@elementor/icons";
|
|
2025
2234
|
import { withDirection as withDirection2 } from "@elementor/ui";
|
|
2026
|
-
import { __ as
|
|
2235
|
+
import { __ as __11 } from "@wordpress/i18n";
|
|
2027
2236
|
var StartStartIcon = withDirection2(RadiusTopLeftIcon);
|
|
2028
2237
|
var StartEndIcon = withDirection2(RadiusTopRightIcon);
|
|
2029
2238
|
var EndStartIcon = withDirection2(RadiusBottomLeftIcon);
|
|
2030
2239
|
var EndEndIcon = withDirection2(RadiusBottomRightIcon);
|
|
2031
|
-
var getStartStartLabel = (isSiteRtl) => isSiteRtl ?
|
|
2032
|
-
var getStartEndLabel = (isSiteRtl) => isSiteRtl ?
|
|
2033
|
-
var getEndStartLabel = (isSiteRtl) => isSiteRtl ?
|
|
2034
|
-
var getEndEndLabel = (isSiteRtl) => isSiteRtl ?
|
|
2240
|
+
var getStartStartLabel = (isSiteRtl) => isSiteRtl ? __11("Top right", "elementor") : __11("Top left", "elementor");
|
|
2241
|
+
var getStartEndLabel = (isSiteRtl) => isSiteRtl ? __11("Top left", "elementor") : __11("Top right", "elementor");
|
|
2242
|
+
var getEndStartLabel = (isSiteRtl) => isSiteRtl ? __11("Bottom right", "elementor") : __11("Bottom left", "elementor");
|
|
2243
|
+
var getEndEndLabel = (isSiteRtl) => isSiteRtl ? __11("Bottom left", "elementor") : __11("Bottom right", "elementor");
|
|
2035
2244
|
var getCorners = (isSiteRtl) => [
|
|
2036
2245
|
{
|
|
2037
2246
|
label: getStartStartLabel(isSiteRtl),
|
|
2038
|
-
icon: /* @__PURE__ */
|
|
2247
|
+
icon: /* @__PURE__ */ React31.createElement(StartStartIcon, { fontSize: "tiny" }),
|
|
2039
2248
|
bind: "start-start"
|
|
2040
2249
|
},
|
|
2041
2250
|
{
|
|
2042
2251
|
label: getStartEndLabel(isSiteRtl),
|
|
2043
|
-
icon: /* @__PURE__ */
|
|
2252
|
+
icon: /* @__PURE__ */ React31.createElement(StartEndIcon, { fontSize: "tiny" }),
|
|
2044
2253
|
bind: "start-end"
|
|
2045
2254
|
},
|
|
2046
2255
|
{
|
|
2047
2256
|
label: getEndStartLabel(isSiteRtl),
|
|
2048
|
-
icon: /* @__PURE__ */
|
|
2257
|
+
icon: /* @__PURE__ */ React31.createElement(EndStartIcon, { fontSize: "tiny" }),
|
|
2049
2258
|
bind: "end-start"
|
|
2050
2259
|
},
|
|
2051
2260
|
{
|
|
2052
2261
|
label: getEndEndLabel(isSiteRtl),
|
|
2053
|
-
icon: /* @__PURE__ */
|
|
2262
|
+
icon: /* @__PURE__ */ React31.createElement(EndEndIcon, { fontSize: "tiny" }),
|
|
2054
2263
|
bind: "end-end"
|
|
2055
2264
|
}
|
|
2056
2265
|
];
|
|
2057
2266
|
var BorderRadiusField = () => {
|
|
2058
2267
|
const { isSiteRtl } = useDirection();
|
|
2059
|
-
return /* @__PURE__ */
|
|
2268
|
+
return /* @__PURE__ */ React31.createElement(StylesField, { bind: "border-radius" }, /* @__PURE__ */ React31.createElement(
|
|
2060
2269
|
EqualUnequalSizesControl2,
|
|
2061
2270
|
{
|
|
2062
2271
|
items: getCorners(isSiteRtl),
|
|
2063
|
-
label:
|
|
2064
|
-
icon: /* @__PURE__ */
|
|
2065
|
-
tooltipLabel:
|
|
2272
|
+
label: __11("Border radius", "elementor"),
|
|
2273
|
+
icon: /* @__PURE__ */ React31.createElement(BorderCornersIcon, { fontSize: "tiny" }),
|
|
2274
|
+
tooltipLabel: __11("Adjust corners", "elementor"),
|
|
2066
2275
|
multiSizePropTypeUtil: borderRadiusPropTypeUtil
|
|
2067
2276
|
}
|
|
2068
2277
|
));
|
|
2069
2278
|
};
|
|
2070
2279
|
|
|
2071
2280
|
// src/components/style-sections/border-section/border-section.tsx
|
|
2072
|
-
var BorderSection = () => /* @__PURE__ */
|
|
2281
|
+
var BorderSection = () => /* @__PURE__ */ React32.createElement(SectionContent, null, /* @__PURE__ */ React32.createElement(BorderRadiusField, null), /* @__PURE__ */ React32.createElement(PanelDivider, null), /* @__PURE__ */ React32.createElement(BorderField, null));
|
|
2073
2282
|
|
|
2074
2283
|
// src/components/style-sections/effects-section/effects-section.tsx
|
|
2075
|
-
import * as
|
|
2284
|
+
import * as React33 from "react";
|
|
2076
2285
|
import { BoxShadowRepeaterControl } from "@elementor/editor-controls";
|
|
2077
2286
|
var EffectsSection = () => {
|
|
2078
|
-
return /* @__PURE__ */
|
|
2287
|
+
return /* @__PURE__ */ React33.createElement(SectionContent, null, /* @__PURE__ */ React33.createElement(StylesField, { bind: "box-shadow" }, /* @__PURE__ */ React33.createElement(BoxShadowRepeaterControl, null)));
|
|
2079
2288
|
};
|
|
2080
2289
|
|
|
2081
2290
|
// src/components/style-sections/layout-section/layout-section.tsx
|
|
2082
|
-
import * as
|
|
2291
|
+
import * as React45 from "react";
|
|
2083
2292
|
import { ControlFormLabel as ControlFormLabel3 } from "@elementor/editor-controls";
|
|
2084
2293
|
import { useParentElement } from "@elementor/editor-elements";
|
|
2085
|
-
import { __ as
|
|
2294
|
+
import { __ as __22 } from "@wordpress/i18n";
|
|
2086
2295
|
|
|
2087
2296
|
// src/hooks/use-computed-style.ts
|
|
2088
2297
|
import { __privateUseListenTo as useListenTo, commandEndEvent, windowEvent } from "@elementor/editor-v1-adapters";
|
|
@@ -2110,7 +2319,7 @@ function useComputedStyle(elementId) {
|
|
|
2110
2319
|
}
|
|
2111
2320
|
|
|
2112
2321
|
// src/components/style-sections/layout-section/align-content-field.tsx
|
|
2113
|
-
import * as
|
|
2322
|
+
import * as React35 from "react";
|
|
2114
2323
|
import { ToggleControl } from "@elementor/editor-controls";
|
|
2115
2324
|
import {
|
|
2116
2325
|
JustifyBottomIcon,
|
|
@@ -2121,10 +2330,10 @@ import {
|
|
|
2121
2330
|
JustifyTopIcon
|
|
2122
2331
|
} from "@elementor/icons";
|
|
2123
2332
|
import { DirectionProvider, Stack as Stack9, ThemeProvider, withDirection as withDirection3 } from "@elementor/ui";
|
|
2124
|
-
import { __ as
|
|
2333
|
+
import { __ as __12 } from "@wordpress/i18n";
|
|
2125
2334
|
|
|
2126
2335
|
// src/components/style-sections/layout-section/utils/rotated-icon.tsx
|
|
2127
|
-
import * as
|
|
2336
|
+
import * as React34 from "react";
|
|
2128
2337
|
import { useRef as useRef3 } from "react";
|
|
2129
2338
|
import { useTheme as useTheme2 } from "@elementor/ui";
|
|
2130
2339
|
var CLOCKWISE_ANGLES = {
|
|
@@ -2148,7 +2357,7 @@ var RotatedIcon = ({
|
|
|
2148
2357
|
}) => {
|
|
2149
2358
|
const rotate = useRef3(useGetTargetAngle(isClockwise, offset, disableRotationForReversed));
|
|
2150
2359
|
rotate.current = useGetTargetAngle(isClockwise, offset, disableRotationForReversed, rotate);
|
|
2151
|
-
return /* @__PURE__ */
|
|
2360
|
+
return /* @__PURE__ */ React34.createElement(Icon, { fontSize: size, sx: { transition: ".3s", rotate: `${rotate.current}deg` } });
|
|
2152
2361
|
};
|
|
2153
2362
|
var useGetTargetAngle = (isClockwise, offset, disableRotationForReversed, existingRef) => {
|
|
2154
2363
|
const [direction] = useStylesField("flex-direction");
|
|
@@ -2177,48 +2386,48 @@ var iconProps = {
|
|
|
2177
2386
|
var options = [
|
|
2178
2387
|
{
|
|
2179
2388
|
value: "start",
|
|
2180
|
-
label:
|
|
2181
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2389
|
+
label: __12("Start", "elementor"),
|
|
2390
|
+
renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(RotatedIcon, { icon: StartIcon, size, ...iconProps }),
|
|
2182
2391
|
showTooltip: true
|
|
2183
2392
|
},
|
|
2184
2393
|
{
|
|
2185
2394
|
value: "center",
|
|
2186
|
-
label:
|
|
2187
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2395
|
+
label: __12("Center", "elementor"),
|
|
2396
|
+
renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(RotatedIcon, { icon: CenterIcon, size, ...iconProps }),
|
|
2188
2397
|
showTooltip: true
|
|
2189
2398
|
},
|
|
2190
2399
|
{
|
|
2191
2400
|
value: "end",
|
|
2192
|
-
label:
|
|
2193
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2401
|
+
label: __12("End", "elementor"),
|
|
2402
|
+
renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(RotatedIcon, { icon: EndIcon, size, ...iconProps }),
|
|
2194
2403
|
showTooltip: true
|
|
2195
2404
|
},
|
|
2196
2405
|
{
|
|
2197
2406
|
value: "space-between",
|
|
2198
|
-
label:
|
|
2199
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2407
|
+
label: __12("Space between", "elementor"),
|
|
2408
|
+
renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(RotatedIcon, { icon: BetweenIcon, size, ...iconProps }),
|
|
2200
2409
|
showTooltip: true
|
|
2201
2410
|
},
|
|
2202
2411
|
{
|
|
2203
2412
|
value: "space-around",
|
|
2204
|
-
label:
|
|
2205
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2413
|
+
label: __12("Space around", "elementor"),
|
|
2414
|
+
renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(RotatedIcon, { icon: AroundIcon, size, ...iconProps }),
|
|
2206
2415
|
showTooltip: true
|
|
2207
2416
|
},
|
|
2208
2417
|
{
|
|
2209
2418
|
value: "space-evenly",
|
|
2210
|
-
label:
|
|
2211
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2419
|
+
label: __12("Space evenly", "elementor"),
|
|
2420
|
+
renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(RotatedIcon, { icon: EvenlyIcon, size, ...iconProps }),
|
|
2212
2421
|
showTooltip: true
|
|
2213
2422
|
}
|
|
2214
2423
|
];
|
|
2215
2424
|
var AlignContentField = () => {
|
|
2216
2425
|
const { isSiteRtl } = useDirection();
|
|
2217
|
-
return /* @__PURE__ */
|
|
2426
|
+
return /* @__PURE__ */ React35.createElement(DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React35.createElement(ThemeProvider, null, /* @__PURE__ */ React35.createElement(StylesField, { bind: "align-content" }, /* @__PURE__ */ React35.createElement(Stack9, { gap: 1 }, /* @__PURE__ */ React35.createElement(ControlLabel, null, __12("Align content", "elementor")), /* @__PURE__ */ React35.createElement(ToggleControl, { options, fullWidth: true })))));
|
|
2218
2427
|
};
|
|
2219
2428
|
|
|
2220
2429
|
// src/components/style-sections/layout-section/align-items-field.tsx
|
|
2221
|
-
import * as
|
|
2430
|
+
import * as React36 from "react";
|
|
2222
2431
|
import { ToggleControl as ToggleControl2 } from "@elementor/editor-controls";
|
|
2223
2432
|
import {
|
|
2224
2433
|
LayoutAlignCenterIcon as CenterIcon2,
|
|
@@ -2227,7 +2436,7 @@ import {
|
|
|
2227
2436
|
LayoutDistributeVerticalIcon as JustifyIcon
|
|
2228
2437
|
} from "@elementor/icons";
|
|
2229
2438
|
import { DirectionProvider as DirectionProvider2, Grid as Grid3, ThemeProvider as ThemeProvider2, withDirection as withDirection4 } from "@elementor/ui";
|
|
2230
|
-
import { __ as
|
|
2439
|
+
import { __ as __13 } from "@wordpress/i18n";
|
|
2231
2440
|
var StartIcon2 = withDirection4(LayoutAlignLeftIcon);
|
|
2232
2441
|
var EndIcon2 = withDirection4(LayoutAlignRightIcon);
|
|
2233
2442
|
var iconProps2 = {
|
|
@@ -2237,36 +2446,36 @@ var iconProps2 = {
|
|
|
2237
2446
|
var options2 = [
|
|
2238
2447
|
{
|
|
2239
2448
|
value: "start",
|
|
2240
|
-
label:
|
|
2241
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2449
|
+
label: __13("Start", "elementor"),
|
|
2450
|
+
renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(RotatedIcon, { icon: StartIcon2, size, ...iconProps2 }),
|
|
2242
2451
|
showTooltip: true
|
|
2243
2452
|
},
|
|
2244
2453
|
{
|
|
2245
2454
|
value: "center",
|
|
2246
|
-
label:
|
|
2247
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2455
|
+
label: __13("Center", "elementor"),
|
|
2456
|
+
renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(RotatedIcon, { icon: CenterIcon2, size, ...iconProps2 }),
|
|
2248
2457
|
showTooltip: true
|
|
2249
2458
|
},
|
|
2250
2459
|
{
|
|
2251
2460
|
value: "end",
|
|
2252
|
-
label:
|
|
2253
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2461
|
+
label: __13("End", "elementor"),
|
|
2462
|
+
renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(RotatedIcon, { icon: EndIcon2, size, ...iconProps2 }),
|
|
2254
2463
|
showTooltip: true
|
|
2255
2464
|
},
|
|
2256
2465
|
{
|
|
2257
2466
|
value: "stretch",
|
|
2258
|
-
label:
|
|
2259
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2467
|
+
label: __13("Stretch", "elementor"),
|
|
2468
|
+
renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(RotatedIcon, { icon: JustifyIcon, size, ...iconProps2 }),
|
|
2260
2469
|
showTooltip: true
|
|
2261
2470
|
}
|
|
2262
2471
|
];
|
|
2263
2472
|
var AlignItemsField = () => {
|
|
2264
2473
|
const { isSiteRtl } = useDirection();
|
|
2265
|
-
return /* @__PURE__ */
|
|
2474
|
+
return /* @__PURE__ */ React36.createElement(DirectionProvider2, { rtl: isSiteRtl }, /* @__PURE__ */ React36.createElement(ThemeProvider2, null, /* @__PURE__ */ React36.createElement(StylesField, { bind: "align-items" }, /* @__PURE__ */ React36.createElement(Grid3, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React36.createElement(Grid3, { item: true, xs: 6 }, /* @__PURE__ */ React36.createElement(ControlLabel, null, __13("Align items", "elementor"))), /* @__PURE__ */ React36.createElement(Grid3, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React36.createElement(ToggleControl2, { options: options2 }))))));
|
|
2266
2475
|
};
|
|
2267
2476
|
|
|
2268
2477
|
// src/components/style-sections/layout-section/align-self-child-field.tsx
|
|
2269
|
-
import * as
|
|
2478
|
+
import * as React37 from "react";
|
|
2270
2479
|
import { ToggleControl as ToggleControl3 } from "@elementor/editor-controls";
|
|
2271
2480
|
import {
|
|
2272
2481
|
LayoutAlignCenterIcon as CenterIcon3,
|
|
@@ -2275,7 +2484,7 @@ import {
|
|
|
2275
2484
|
LayoutDistributeVerticalIcon as JustifyIcon2
|
|
2276
2485
|
} from "@elementor/icons";
|
|
2277
2486
|
import { DirectionProvider as DirectionProvider3, Grid as Grid4, ThemeProvider as ThemeProvider3, withDirection as withDirection5 } from "@elementor/ui";
|
|
2278
|
-
import { __ as
|
|
2487
|
+
import { __ as __14 } from "@wordpress/i18n";
|
|
2279
2488
|
var ALIGN_SELF_CHILD_OFFSET_MAP = {
|
|
2280
2489
|
row: 90,
|
|
2281
2490
|
"row-reverse": 90,
|
|
@@ -2290,8 +2499,8 @@ var iconProps3 = {
|
|
|
2290
2499
|
var getOptions = (parentStyleDirection) => [
|
|
2291
2500
|
{
|
|
2292
2501
|
value: "start",
|
|
2293
|
-
label:
|
|
2294
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2502
|
+
label: __14("Start", "elementor"),
|
|
2503
|
+
renderContent: ({ size }) => /* @__PURE__ */ React37.createElement(
|
|
2295
2504
|
RotatedIcon,
|
|
2296
2505
|
{
|
|
2297
2506
|
icon: StartIcon3,
|
|
@@ -2304,8 +2513,8 @@ var getOptions = (parentStyleDirection) => [
|
|
|
2304
2513
|
},
|
|
2305
2514
|
{
|
|
2306
2515
|
value: "center",
|
|
2307
|
-
label:
|
|
2308
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2516
|
+
label: __14("Center", "elementor"),
|
|
2517
|
+
renderContent: ({ size }) => /* @__PURE__ */ React37.createElement(
|
|
2309
2518
|
RotatedIcon,
|
|
2310
2519
|
{
|
|
2311
2520
|
icon: CenterIcon3,
|
|
@@ -2318,8 +2527,8 @@ var getOptions = (parentStyleDirection) => [
|
|
|
2318
2527
|
},
|
|
2319
2528
|
{
|
|
2320
2529
|
value: "end",
|
|
2321
|
-
label:
|
|
2322
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2530
|
+
label: __14("End", "elementor"),
|
|
2531
|
+
renderContent: ({ size }) => /* @__PURE__ */ React37.createElement(
|
|
2323
2532
|
RotatedIcon,
|
|
2324
2533
|
{
|
|
2325
2534
|
icon: EndIcon3,
|
|
@@ -2332,8 +2541,8 @@ var getOptions = (parentStyleDirection) => [
|
|
|
2332
2541
|
},
|
|
2333
2542
|
{
|
|
2334
2543
|
value: "stretch",
|
|
2335
|
-
label:
|
|
2336
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2544
|
+
label: __14("Stretch", "elementor"),
|
|
2545
|
+
renderContent: ({ size }) => /* @__PURE__ */ React37.createElement(
|
|
2337
2546
|
RotatedIcon,
|
|
2338
2547
|
{
|
|
2339
2548
|
icon: JustifyIcon2,
|
|
@@ -2347,107 +2556,107 @@ var getOptions = (parentStyleDirection) => [
|
|
|
2347
2556
|
];
|
|
2348
2557
|
var AlignSelfChild = ({ parentStyleDirection }) => {
|
|
2349
2558
|
const { isSiteRtl } = useDirection();
|
|
2350
|
-
return /* @__PURE__ */
|
|
2559
|
+
return /* @__PURE__ */ React37.createElement(DirectionProvider3, { rtl: isSiteRtl }, /* @__PURE__ */ React37.createElement(ThemeProvider3, null, /* @__PURE__ */ React37.createElement(StylesField, { bind: "align-self" }, /* @__PURE__ */ React37.createElement(Grid4, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React37.createElement(Grid4, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(ControlLabel, null, __14("Align self", "elementor"))), /* @__PURE__ */ React37.createElement(Grid4, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React37.createElement(ToggleControl3, { options: getOptions(parentStyleDirection) }))))));
|
|
2351
2560
|
};
|
|
2352
2561
|
|
|
2353
2562
|
// src/components/style-sections/layout-section/display-field.tsx
|
|
2354
|
-
import * as
|
|
2563
|
+
import * as React38 from "react";
|
|
2355
2564
|
import { ToggleControl as ToggleControl4 } from "@elementor/editor-controls";
|
|
2356
|
-
import { isExperimentActive as
|
|
2565
|
+
import { isExperimentActive as isExperimentActive5 } from "@elementor/editor-v1-adapters";
|
|
2357
2566
|
import { Stack as Stack10 } from "@elementor/ui";
|
|
2358
|
-
import { __ as
|
|
2567
|
+
import { __ as __15 } from "@wordpress/i18n";
|
|
2359
2568
|
var displayFieldItems = [
|
|
2360
2569
|
{
|
|
2361
2570
|
value: "block",
|
|
2362
|
-
renderContent: () =>
|
|
2363
|
-
label:
|
|
2571
|
+
renderContent: () => __15("Block", "elementor"),
|
|
2572
|
+
label: __15("Block", "elementor"),
|
|
2364
2573
|
showTooltip: true
|
|
2365
2574
|
},
|
|
2366
2575
|
{
|
|
2367
2576
|
value: "flex",
|
|
2368
|
-
renderContent: () =>
|
|
2369
|
-
label:
|
|
2577
|
+
renderContent: () => __15("Flex", "elementor"),
|
|
2578
|
+
label: __15("Flex", "elementor"),
|
|
2370
2579
|
showTooltip: true
|
|
2371
2580
|
},
|
|
2372
2581
|
{
|
|
2373
2582
|
value: "inline-block",
|
|
2374
|
-
renderContent: () =>
|
|
2375
|
-
label:
|
|
2583
|
+
renderContent: () => __15("In-blk", "elementor"),
|
|
2584
|
+
label: __15("Inline-block", "elementor"),
|
|
2376
2585
|
showTooltip: true
|
|
2377
2586
|
}
|
|
2378
2587
|
];
|
|
2379
2588
|
var DisplayField = () => {
|
|
2380
|
-
const isDisplayNoneFeatureActive =
|
|
2589
|
+
const isDisplayNoneFeatureActive = isExperimentActive5("e_v_3_30");
|
|
2381
2590
|
const items3 = [...displayFieldItems];
|
|
2382
2591
|
if (isDisplayNoneFeatureActive) {
|
|
2383
2592
|
items3.push({
|
|
2384
2593
|
value: "none",
|
|
2385
|
-
renderContent: () =>
|
|
2386
|
-
label:
|
|
2594
|
+
renderContent: () => __15("None", "elementor"),
|
|
2595
|
+
label: __15("None", "elementor"),
|
|
2387
2596
|
showTooltip: true
|
|
2388
2597
|
});
|
|
2389
2598
|
}
|
|
2390
2599
|
items3.push({
|
|
2391
2600
|
value: "inline-flex",
|
|
2392
|
-
renderContent: () =>
|
|
2393
|
-
label:
|
|
2601
|
+
renderContent: () => __15("In-flx", "elementor"),
|
|
2602
|
+
label: __15("Inline-flex", "elementor"),
|
|
2394
2603
|
showTooltip: true
|
|
2395
2604
|
});
|
|
2396
2605
|
const placeholder = useDisplayPlaceholderValue();
|
|
2397
|
-
return /* @__PURE__ */
|
|
2606
|
+
return /* @__PURE__ */ React38.createElement(StylesField, { bind: "display", placeholder }, /* @__PURE__ */ React38.createElement(Stack10, { gap: 0.75 }, /* @__PURE__ */ React38.createElement(ControlLabel, null, __15("Display", "elementor")), /* @__PURE__ */ React38.createElement(ToggleControl4, { options: items3, maxItems: 4, fullWidth: true })));
|
|
2398
2607
|
};
|
|
2399
2608
|
var useDisplayPlaceholderValue = () => useStylesInheritanceChain(["display"])[0]?.value ?? void 0;
|
|
2400
2609
|
|
|
2401
2610
|
// src/components/style-sections/layout-section/flex-direction-field.tsx
|
|
2402
|
-
import * as
|
|
2611
|
+
import * as React39 from "react";
|
|
2403
2612
|
import { ToggleControl as ToggleControl5 } from "@elementor/editor-controls";
|
|
2404
2613
|
import { ArrowDownSmallIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpSmallIcon } from "@elementor/icons";
|
|
2405
2614
|
import { DirectionProvider as DirectionProvider4, Grid as Grid5, ThemeProvider as ThemeProvider4, withDirection as withDirection6 } from "@elementor/ui";
|
|
2406
|
-
import { __ as
|
|
2615
|
+
import { __ as __16 } from "@wordpress/i18n";
|
|
2407
2616
|
var options3 = [
|
|
2408
2617
|
{
|
|
2409
2618
|
value: "row",
|
|
2410
|
-
label:
|
|
2619
|
+
label: __16("Row", "elementor"),
|
|
2411
2620
|
renderContent: ({ size }) => {
|
|
2412
2621
|
const StartIcon5 = withDirection6(ArrowRightIcon);
|
|
2413
|
-
return /* @__PURE__ */
|
|
2622
|
+
return /* @__PURE__ */ React39.createElement(StartIcon5, { fontSize: size });
|
|
2414
2623
|
},
|
|
2415
2624
|
showTooltip: true
|
|
2416
2625
|
},
|
|
2417
2626
|
{
|
|
2418
2627
|
value: "column",
|
|
2419
|
-
label:
|
|
2420
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2628
|
+
label: __16("Column", "elementor"),
|
|
2629
|
+
renderContent: ({ size }) => /* @__PURE__ */ React39.createElement(ArrowDownSmallIcon, { fontSize: size }),
|
|
2421
2630
|
showTooltip: true
|
|
2422
2631
|
},
|
|
2423
2632
|
{
|
|
2424
2633
|
value: "row-reverse",
|
|
2425
|
-
label:
|
|
2634
|
+
label: __16("Reversed row", "elementor"),
|
|
2426
2635
|
renderContent: ({ size }) => {
|
|
2427
2636
|
const EndIcon5 = withDirection6(ArrowLeftIcon);
|
|
2428
|
-
return /* @__PURE__ */
|
|
2637
|
+
return /* @__PURE__ */ React39.createElement(EndIcon5, { fontSize: size });
|
|
2429
2638
|
},
|
|
2430
2639
|
showTooltip: true
|
|
2431
2640
|
},
|
|
2432
2641
|
{
|
|
2433
2642
|
value: "column-reverse",
|
|
2434
|
-
label:
|
|
2435
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2643
|
+
label: __16("Reversed column", "elementor"),
|
|
2644
|
+
renderContent: ({ size }) => /* @__PURE__ */ React39.createElement(ArrowUpSmallIcon, { fontSize: size }),
|
|
2436
2645
|
showTooltip: true
|
|
2437
2646
|
}
|
|
2438
2647
|
];
|
|
2439
2648
|
var FlexDirectionField = () => {
|
|
2440
2649
|
const { isSiteRtl } = useDirection();
|
|
2441
|
-
return /* @__PURE__ */
|
|
2650
|
+
return /* @__PURE__ */ React39.createElement(DirectionProvider4, { rtl: isSiteRtl }, /* @__PURE__ */ React39.createElement(ThemeProvider4, null, /* @__PURE__ */ React39.createElement(StylesField, { bind: "flex-direction" }, /* @__PURE__ */ React39.createElement(Grid5, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React39.createElement(Grid5, { item: true, xs: 6 }, /* @__PURE__ */ React39.createElement(ControlLabel, null, __16("Direction", "elementor"))), /* @__PURE__ */ React39.createElement(Grid5, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React39.createElement(ToggleControl5, { options: options3 }))))));
|
|
2442
2651
|
};
|
|
2443
2652
|
|
|
2444
2653
|
// src/components/style-sections/layout-section/flex-order-field.tsx
|
|
2445
|
-
import * as
|
|
2446
|
-
import { useState as
|
|
2654
|
+
import * as React40 from "react";
|
|
2655
|
+
import { useState as useState9 } from "react";
|
|
2447
2656
|
import { ControlToggleButtonGroup, NumberControl } from "@elementor/editor-controls";
|
|
2448
2657
|
import { ArrowDownSmallIcon as ArrowDownSmallIcon2, ArrowUpSmallIcon as ArrowUpSmallIcon2, PencilIcon } from "@elementor/icons";
|
|
2449
2658
|
import { DirectionProvider as DirectionProvider5, Grid as Grid6, ThemeProvider as ThemeProvider5 } from "@elementor/ui";
|
|
2450
|
-
import { __ as
|
|
2659
|
+
import { __ as __17 } from "@wordpress/i18n";
|
|
2451
2660
|
var FIRST_DEFAULT_VALUE = -99999;
|
|
2452
2661
|
var LAST_DEFAULT_VALUE = 99999;
|
|
2453
2662
|
var FIRST = "first";
|
|
@@ -2460,26 +2669,26 @@ var orderValueMap = {
|
|
|
2460
2669
|
var items = [
|
|
2461
2670
|
{
|
|
2462
2671
|
value: FIRST,
|
|
2463
|
-
label:
|
|
2464
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2672
|
+
label: __17("First", "elementor"),
|
|
2673
|
+
renderContent: ({ size }) => /* @__PURE__ */ React40.createElement(ArrowUpSmallIcon2, { fontSize: size }),
|
|
2465
2674
|
showTooltip: true
|
|
2466
2675
|
},
|
|
2467
2676
|
{
|
|
2468
2677
|
value: LAST,
|
|
2469
|
-
label:
|
|
2470
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2678
|
+
label: __17("Last", "elementor"),
|
|
2679
|
+
renderContent: ({ size }) => /* @__PURE__ */ React40.createElement(ArrowDownSmallIcon2, { fontSize: size }),
|
|
2471
2680
|
showTooltip: true
|
|
2472
2681
|
},
|
|
2473
2682
|
{
|
|
2474
2683
|
value: CUSTOM,
|
|
2475
|
-
label:
|
|
2476
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2684
|
+
label: __17("Custom", "elementor"),
|
|
2685
|
+
renderContent: ({ size }) => /* @__PURE__ */ React40.createElement(PencilIcon, { fontSize: size }),
|
|
2477
2686
|
showTooltip: true
|
|
2478
2687
|
}
|
|
2479
2688
|
];
|
|
2480
2689
|
var FlexOrderField = () => {
|
|
2481
2690
|
const { isSiteRtl } = useDirection(), [order, setOrder] = useStylesField("order");
|
|
2482
|
-
const [groupControlValue, setGroupControlValue] =
|
|
2691
|
+
const [groupControlValue, setGroupControlValue] = useState9(getGroupControlValue(order?.value || null));
|
|
2483
2692
|
const handleToggleButtonChange = (group) => {
|
|
2484
2693
|
setGroupControlValue(group);
|
|
2485
2694
|
if (!group || group === CUSTOM) {
|
|
@@ -2488,7 +2697,7 @@ var FlexOrderField = () => {
|
|
|
2488
2697
|
}
|
|
2489
2698
|
setOrder({ $$type: "number", value: orderValueMap[group] });
|
|
2490
2699
|
};
|
|
2491
|
-
return /* @__PURE__ */
|
|
2700
|
+
return /* @__PURE__ */ React40.createElement(DirectionProvider5, { rtl: isSiteRtl }, /* @__PURE__ */ React40.createElement(ThemeProvider5, null, /* @__PURE__ */ React40.createElement(StylesField, { bind: "order" }, /* @__PURE__ */ React40.createElement(SectionContent, null, /* @__PURE__ */ React40.createElement(Grid6, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React40.createElement(Grid6, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(ControlLabel, null, __17("Order", "elementor"))), /* @__PURE__ */ React40.createElement(Grid6, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React40.createElement(
|
|
2492
2701
|
ControlToggleButtonGroup,
|
|
2493
2702
|
{
|
|
2494
2703
|
items,
|
|
@@ -2496,7 +2705,7 @@ var FlexOrderField = () => {
|
|
|
2496
2705
|
onChange: handleToggleButtonChange,
|
|
2497
2706
|
exclusive: true
|
|
2498
2707
|
}
|
|
2499
|
-
))), CUSTOM === groupControlValue && /* @__PURE__ */
|
|
2708
|
+
))), CUSTOM === groupControlValue && /* @__PURE__ */ React40.createElement(Grid6, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React40.createElement(Grid6, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(ControlLabel, null, __17("Custom order", "elementor"))), /* @__PURE__ */ React40.createElement(Grid6, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React40.createElement(
|
|
2500
2709
|
NumberControl,
|
|
2501
2710
|
{
|
|
2502
2711
|
min: FIRST_DEFAULT_VALUE + 1,
|
|
@@ -2516,8 +2725,8 @@ var getGroupControlValue = (order) => {
|
|
|
2516
2725
|
};
|
|
2517
2726
|
|
|
2518
2727
|
// src/components/style-sections/layout-section/flex-size-field.tsx
|
|
2519
|
-
import * as
|
|
2520
|
-
import { useMemo as
|
|
2728
|
+
import * as React41 from "react";
|
|
2729
|
+
import { useMemo as useMemo5, useState as useState10 } from "react";
|
|
2521
2730
|
import {
|
|
2522
2731
|
ControlToggleButtonGroup as ControlToggleButtonGroup2,
|
|
2523
2732
|
NumberControl as NumberControl2,
|
|
@@ -2526,25 +2735,25 @@ import {
|
|
|
2526
2735
|
import { numberPropTypeUtil } from "@elementor/editor-props";
|
|
2527
2736
|
import { ExpandIcon, PencilIcon as PencilIcon2, ShrinkIcon } from "@elementor/icons";
|
|
2528
2737
|
import { DirectionProvider as DirectionProvider6, Grid as Grid7, ThemeProvider as ThemeProvider6 } from "@elementor/ui";
|
|
2529
|
-
import { __ as
|
|
2738
|
+
import { __ as __18 } from "@wordpress/i18n";
|
|
2530
2739
|
var DEFAULT = 1;
|
|
2531
2740
|
var items2 = [
|
|
2532
2741
|
{
|
|
2533
2742
|
value: "flex-grow",
|
|
2534
|
-
label:
|
|
2535
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2743
|
+
label: __18("Grow", "elementor"),
|
|
2744
|
+
renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(ExpandIcon, { fontSize: size }),
|
|
2536
2745
|
showTooltip: true
|
|
2537
2746
|
},
|
|
2538
2747
|
{
|
|
2539
2748
|
value: "flex-shrink",
|
|
2540
|
-
label:
|
|
2541
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2749
|
+
label: __18("Shrink", "elementor"),
|
|
2750
|
+
renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(ShrinkIcon, { fontSize: size }),
|
|
2542
2751
|
showTooltip: true
|
|
2543
2752
|
},
|
|
2544
2753
|
{
|
|
2545
2754
|
value: "custom",
|
|
2546
|
-
label:
|
|
2547
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2755
|
+
label: __18("Custom", "elementor"),
|
|
2756
|
+
renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(PencilIcon2, { fontSize: size }),
|
|
2548
2757
|
showTooltip: true
|
|
2549
2758
|
}
|
|
2550
2759
|
];
|
|
@@ -2554,7 +2763,7 @@ var FlexSizeField = () => {
|
|
|
2554
2763
|
const grow = fields?.["flex-grow"]?.value || null;
|
|
2555
2764
|
const shrink = fields?.["flex-shrink"]?.value || null;
|
|
2556
2765
|
const basis = fields?.["flex-basis"]?.value || null;
|
|
2557
|
-
const currentGroup =
|
|
2766
|
+
const currentGroup = useMemo5(() => getActiveGroup({ grow, shrink, basis }), [grow, shrink, basis]), [activeGroup, setActiveGroup] = useState10(currentGroup);
|
|
2558
2767
|
const onChangeGroup = (group = null) => {
|
|
2559
2768
|
setActiveGroup(group);
|
|
2560
2769
|
if (!group || group === "custom") {
|
|
@@ -2579,7 +2788,7 @@ var FlexSizeField = () => {
|
|
|
2579
2788
|
"flex-shrink": numberPropTypeUtil.create(DEFAULT)
|
|
2580
2789
|
});
|
|
2581
2790
|
};
|
|
2582
|
-
return /* @__PURE__ */
|
|
2791
|
+
return /* @__PURE__ */ React41.createElement(DirectionProvider6, { rtl: isSiteRtl }, /* @__PURE__ */ React41.createElement(ThemeProvider6, null, /* @__PURE__ */ React41.createElement(SectionContent, null, /* @__PURE__ */ React41.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React41.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(StylesField, { bind: activeGroup ?? "" }, /* @__PURE__ */ React41.createElement(ControlLabel, null, __18("Size", "elementor")))), /* @__PURE__ */ React41.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React41.createElement(
|
|
2583
2792
|
ControlToggleButtonGroup2,
|
|
2584
2793
|
{
|
|
2585
2794
|
value: activeGroup,
|
|
@@ -2587,9 +2796,9 @@ var FlexSizeField = () => {
|
|
|
2587
2796
|
items: items2,
|
|
2588
2797
|
exclusive: true
|
|
2589
2798
|
}
|
|
2590
|
-
))), "custom" === activeGroup && /* @__PURE__ */
|
|
2799
|
+
))), "custom" === activeGroup && /* @__PURE__ */ React41.createElement(FlexCustomField, null))));
|
|
2591
2800
|
};
|
|
2592
|
-
var FlexCustomField = () => /* @__PURE__ */
|
|
2801
|
+
var FlexCustomField = () => /* @__PURE__ */ React41.createElement(React41.Fragment, null, /* @__PURE__ */ React41.createElement(StylesField, { bind: "flex-grow" }, /* @__PURE__ */ React41.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React41.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(ControlLabel, null, __18("Grow", "elementor"))), /* @__PURE__ */ React41.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React41.createElement(NumberControl2, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React41.createElement(StylesField, { bind: "flex-shrink" }, /* @__PURE__ */ React41.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React41.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(ControlLabel, null, __18("Shrink", "elementor"))), /* @__PURE__ */ React41.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React41.createElement(NumberControl2, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React41.createElement(StylesField, { bind: "flex-basis" }, /* @__PURE__ */ React41.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React41.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(ControlLabel, null, __18("Basis", "elementor"))), /* @__PURE__ */ React41.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React41.createElement(SizeControl2, { extendedValues: ["auto"] })))));
|
|
2593
2802
|
var getActiveGroup = ({
|
|
2594
2803
|
grow,
|
|
2595
2804
|
shrink,
|
|
@@ -2611,16 +2820,16 @@ var getActiveGroup = ({
|
|
|
2611
2820
|
};
|
|
2612
2821
|
|
|
2613
2822
|
// src/components/style-sections/layout-section/gap-control-field.tsx
|
|
2614
|
-
import * as
|
|
2823
|
+
import * as React42 from "react";
|
|
2615
2824
|
import { GapControl } from "@elementor/editor-controls";
|
|
2616
2825
|
import { Stack as Stack11 } from "@elementor/ui";
|
|
2617
|
-
import { __ as
|
|
2826
|
+
import { __ as __19 } from "@wordpress/i18n";
|
|
2618
2827
|
var GapControlField = () => {
|
|
2619
|
-
return /* @__PURE__ */
|
|
2828
|
+
return /* @__PURE__ */ React42.createElement(Stack11, { gap: 1 }, /* @__PURE__ */ React42.createElement(StylesField, { bind: "gap" }, /* @__PURE__ */ React42.createElement(GapControl, { label: __19("Gaps", "elementor") })));
|
|
2620
2829
|
};
|
|
2621
2830
|
|
|
2622
2831
|
// src/components/style-sections/layout-section/justify-content-field.tsx
|
|
2623
|
-
import * as
|
|
2832
|
+
import * as React43 from "react";
|
|
2624
2833
|
import { ToggleControl as ToggleControl6 } from "@elementor/editor-controls";
|
|
2625
2834
|
import {
|
|
2626
2835
|
JustifyBottomIcon as JustifyBottomIcon2,
|
|
@@ -2631,7 +2840,7 @@ import {
|
|
|
2631
2840
|
JustifyTopIcon as JustifyTopIcon2
|
|
2632
2841
|
} from "@elementor/icons";
|
|
2633
2842
|
import { DirectionProvider as DirectionProvider7, Stack as Stack12, ThemeProvider as ThemeProvider7, withDirection as withDirection7 } from "@elementor/ui";
|
|
2634
|
-
import { __ as
|
|
2843
|
+
import { __ as __20 } from "@wordpress/i18n";
|
|
2635
2844
|
var StartIcon4 = withDirection7(JustifyTopIcon2);
|
|
2636
2845
|
var EndIcon4 = withDirection7(JustifyBottomIcon2);
|
|
2637
2846
|
var iconProps4 = {
|
|
@@ -2641,75 +2850,75 @@ var iconProps4 = {
|
|
|
2641
2850
|
var options4 = [
|
|
2642
2851
|
{
|
|
2643
2852
|
value: "flex-start",
|
|
2644
|
-
label:
|
|
2645
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2853
|
+
label: __20("Start", "elementor"),
|
|
2854
|
+
renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(RotatedIcon, { icon: StartIcon4, size, ...iconProps4 }),
|
|
2646
2855
|
showTooltip: true
|
|
2647
2856
|
},
|
|
2648
2857
|
{
|
|
2649
2858
|
value: "center",
|
|
2650
|
-
label:
|
|
2651
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2859
|
+
label: __20("Center", "elementor"),
|
|
2860
|
+
renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(RotatedIcon, { icon: CenterIcon4, size, ...iconProps4 }),
|
|
2652
2861
|
showTooltip: true
|
|
2653
2862
|
},
|
|
2654
2863
|
{
|
|
2655
2864
|
value: "flex-end",
|
|
2656
|
-
label:
|
|
2657
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2865
|
+
label: __20("End", "elementor"),
|
|
2866
|
+
renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(RotatedIcon, { icon: EndIcon4, size, ...iconProps4 }),
|
|
2658
2867
|
showTooltip: true
|
|
2659
2868
|
},
|
|
2660
2869
|
{
|
|
2661
2870
|
value: "space-between",
|
|
2662
|
-
label:
|
|
2663
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2871
|
+
label: __20("Space between", "elementor"),
|
|
2872
|
+
renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(RotatedIcon, { icon: BetweenIcon2, size, ...iconProps4 }),
|
|
2664
2873
|
showTooltip: true
|
|
2665
2874
|
},
|
|
2666
2875
|
{
|
|
2667
2876
|
value: "space-around",
|
|
2668
|
-
label:
|
|
2669
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2877
|
+
label: __20("Space around", "elementor"),
|
|
2878
|
+
renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(RotatedIcon, { icon: AroundIcon2, size, ...iconProps4 }),
|
|
2670
2879
|
showTooltip: true
|
|
2671
2880
|
},
|
|
2672
2881
|
{
|
|
2673
2882
|
value: "space-evenly",
|
|
2674
|
-
label:
|
|
2675
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2883
|
+
label: __20("Space evenly", "elementor"),
|
|
2884
|
+
renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(RotatedIcon, { icon: EvenlyIcon2, size, ...iconProps4 }),
|
|
2676
2885
|
showTooltip: true
|
|
2677
2886
|
}
|
|
2678
2887
|
];
|
|
2679
2888
|
var JustifyContentField = () => {
|
|
2680
2889
|
const { isSiteRtl } = useDirection();
|
|
2681
|
-
return /* @__PURE__ */
|
|
2890
|
+
return /* @__PURE__ */ React43.createElement(DirectionProvider7, { rtl: isSiteRtl }, /* @__PURE__ */ React43.createElement(ThemeProvider7, null, /* @__PURE__ */ React43.createElement(StylesField, { bind: "justify-content" }, /* @__PURE__ */ React43.createElement(Stack12, { gap: 0.75 }, /* @__PURE__ */ React43.createElement(ControlLabel, null, __20("Justify content", "elementor")), /* @__PURE__ */ React43.createElement(ToggleControl6, { options: options4, fullWidth: true })))));
|
|
2682
2891
|
};
|
|
2683
2892
|
|
|
2684
2893
|
// src/components/style-sections/layout-section/wrap-field.tsx
|
|
2685
|
-
import * as
|
|
2894
|
+
import * as React44 from "react";
|
|
2686
2895
|
import { ToggleControl as ToggleControl7 } from "@elementor/editor-controls";
|
|
2687
2896
|
import { ArrowBackIcon, ArrowForwardIcon, ArrowRightIcon as ArrowRightIcon2 } from "@elementor/icons";
|
|
2688
2897
|
import { DirectionProvider as DirectionProvider8, Grid as Grid8, ThemeProvider as ThemeProvider8 } from "@elementor/ui";
|
|
2689
|
-
import { __ as
|
|
2898
|
+
import { __ as __21 } from "@wordpress/i18n";
|
|
2690
2899
|
var options5 = [
|
|
2691
2900
|
{
|
|
2692
2901
|
value: "nowrap",
|
|
2693
|
-
label:
|
|
2694
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2902
|
+
label: __21("No wrap", "elementor"),
|
|
2903
|
+
renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(ArrowRightIcon2, { fontSize: size }),
|
|
2695
2904
|
showTooltip: true
|
|
2696
2905
|
},
|
|
2697
2906
|
{
|
|
2698
2907
|
value: "wrap",
|
|
2699
|
-
label:
|
|
2700
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2908
|
+
label: __21("Wrap", "elementor"),
|
|
2909
|
+
renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(ArrowBackIcon, { fontSize: size }),
|
|
2701
2910
|
showTooltip: true
|
|
2702
2911
|
},
|
|
2703
2912
|
{
|
|
2704
2913
|
value: "wrap-reverse",
|
|
2705
|
-
label:
|
|
2706
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2914
|
+
label: __21("Reversed wrap", "elementor"),
|
|
2915
|
+
renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(ArrowForwardIcon, { fontSize: size }),
|
|
2707
2916
|
showTooltip: true
|
|
2708
2917
|
}
|
|
2709
2918
|
];
|
|
2710
2919
|
var WrapField = () => {
|
|
2711
2920
|
const { isSiteRtl } = useDirection();
|
|
2712
|
-
return /* @__PURE__ */
|
|
2921
|
+
return /* @__PURE__ */ React44.createElement(DirectionProvider8, { rtl: isSiteRtl }, /* @__PURE__ */ React44.createElement(ThemeProvider8, null, /* @__PURE__ */ React44.createElement(StylesField, { bind: "flex-wrap" }, /* @__PURE__ */ React44.createElement(Grid8, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React44.createElement(Grid8, { item: true, xs: 6 }, /* @__PURE__ */ React44.createElement(ControlLabel, null, __21("Wrap", "elementor"))), /* @__PURE__ */ React44.createElement(Grid8, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React44.createElement(ToggleControl7, { options: options5 }))))));
|
|
2713
2922
|
};
|
|
2714
2923
|
|
|
2715
2924
|
// src/components/style-sections/layout-section/layout-section.tsx
|
|
@@ -2721,13 +2930,13 @@ var LayoutSection = () => {
|
|
|
2721
2930
|
const parent = useParentElement(element.id);
|
|
2722
2931
|
const parentStyle = useComputedStyle(parent?.id || null);
|
|
2723
2932
|
const parentStyleDirection = parentStyle?.flexDirection ?? "row";
|
|
2724
|
-
return /* @__PURE__ */
|
|
2933
|
+
return /* @__PURE__ */ React45.createElement(SectionContent, null, /* @__PURE__ */ React45.createElement(DisplayField, null), isDisplayFlex && /* @__PURE__ */ React45.createElement(FlexFields, null), "flex" === parentStyle?.display && /* @__PURE__ */ React45.createElement(FlexChildFields, { parentStyleDirection }));
|
|
2725
2934
|
};
|
|
2726
2935
|
var FlexFields = () => {
|
|
2727
2936
|
const [flexWrap] = useStylesField("flex-wrap");
|
|
2728
|
-
return /* @__PURE__ */
|
|
2937
|
+
return /* @__PURE__ */ React45.createElement(React45.Fragment, null, /* @__PURE__ */ React45.createElement(FlexDirectionField, null), /* @__PURE__ */ React45.createElement(JustifyContentField, null), /* @__PURE__ */ React45.createElement(AlignItemsField, null), /* @__PURE__ */ React45.createElement(PanelDivider, null), /* @__PURE__ */ React45.createElement(GapControlField, null), /* @__PURE__ */ React45.createElement(WrapField, null), ["wrap", "wrap-reverse"].includes(flexWrap?.value) && /* @__PURE__ */ React45.createElement(AlignContentField, null));
|
|
2729
2938
|
};
|
|
2730
|
-
var FlexChildFields = ({ parentStyleDirection }) => /* @__PURE__ */
|
|
2939
|
+
var FlexChildFields = ({ parentStyleDirection }) => /* @__PURE__ */ React45.createElement(React45.Fragment, null, /* @__PURE__ */ React45.createElement(PanelDivider, null), /* @__PURE__ */ React45.createElement(ControlFormLabel3, null, __22("Flex child", "elementor")), /* @__PURE__ */ React45.createElement(AlignSelfChild, { parentStyleDirection }), /* @__PURE__ */ React45.createElement(FlexOrderField, null), /* @__PURE__ */ React45.createElement(FlexSizeField, null));
|
|
2731
2940
|
var shouldDisplayFlexFields = (display, local) => {
|
|
2732
2941
|
const value = display?.value ?? local?.value;
|
|
2733
2942
|
if (!value) {
|
|
@@ -2737,66 +2946,66 @@ var shouldDisplayFlexFields = (display, local) => {
|
|
|
2737
2946
|
};
|
|
2738
2947
|
|
|
2739
2948
|
// src/components/style-sections/position-section/position-section.tsx
|
|
2740
|
-
import * as
|
|
2741
|
-
import { isExperimentActive as
|
|
2949
|
+
import * as React50 from "react";
|
|
2950
|
+
import { isExperimentActive as isExperimentActive6 } from "@elementor/editor-v1-adapters";
|
|
2742
2951
|
import { useSessionStorage } from "@elementor/session";
|
|
2743
2952
|
|
|
2744
2953
|
// src/components/style-sections/position-section/dimensions-field.tsx
|
|
2745
|
-
import * as
|
|
2954
|
+
import * as React46 from "react";
|
|
2746
2955
|
import { SizeControl as SizeControl3 } from "@elementor/editor-controls";
|
|
2747
2956
|
import { SideBottomIcon as SideBottomIcon2, SideLeftIcon as SideLeftIcon2, SideRightIcon as SideRightIcon2, SideTopIcon as SideTopIcon2 } from "@elementor/icons";
|
|
2748
2957
|
import { Grid as Grid9, Stack as Stack13, withDirection as withDirection8 } from "@elementor/ui";
|
|
2749
|
-
import { __ as
|
|
2958
|
+
import { __ as __23 } from "@wordpress/i18n";
|
|
2750
2959
|
var InlineStartIcon2 = withDirection8(SideLeftIcon2);
|
|
2751
2960
|
var InlineEndIcon2 = withDirection8(SideRightIcon2);
|
|
2752
2961
|
var sideIcons = {
|
|
2753
|
-
"inset-block-start": /* @__PURE__ */
|
|
2754
|
-
"inset-block-end": /* @__PURE__ */
|
|
2755
|
-
"inset-inline-start": /* @__PURE__ */
|
|
2756
|
-
"inset-inline-end": /* @__PURE__ */
|
|
2962
|
+
"inset-block-start": /* @__PURE__ */ React46.createElement(SideTopIcon2, { fontSize: "tiny" }),
|
|
2963
|
+
"inset-block-end": /* @__PURE__ */ React46.createElement(SideBottomIcon2, { fontSize: "tiny" }),
|
|
2964
|
+
"inset-inline-start": /* @__PURE__ */ React46.createElement(RotatedIcon, { icon: InlineStartIcon2, size: "tiny" }),
|
|
2965
|
+
"inset-inline-end": /* @__PURE__ */ React46.createElement(RotatedIcon, { icon: InlineEndIcon2, size: "tiny" })
|
|
2757
2966
|
};
|
|
2758
|
-
var getInlineStartLabel = (isSiteRtl) => isSiteRtl ?
|
|
2759
|
-
var getInlineEndLabel = (isSiteRtl) => isSiteRtl ?
|
|
2967
|
+
var getInlineStartLabel = (isSiteRtl) => isSiteRtl ? __23("Right", "elementor") : __23("Left", "elementor");
|
|
2968
|
+
var getInlineEndLabel = (isSiteRtl) => isSiteRtl ? __23("Left", "elementor") : __23("Right", "elementor");
|
|
2760
2969
|
var DimensionsField = () => {
|
|
2761
2970
|
const { isSiteRtl } = useDirection();
|
|
2762
|
-
return /* @__PURE__ */
|
|
2971
|
+
return /* @__PURE__ */ React46.createElement(React46.Fragment, null, /* @__PURE__ */ React46.createElement(Stack13, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React46.createElement(DimensionField, { side: "inset-block-start", label: __23("Top", "elementor") }), /* @__PURE__ */ React46.createElement(DimensionField, { side: "inset-inline-end", label: getInlineEndLabel(isSiteRtl) })), /* @__PURE__ */ React46.createElement(Stack13, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React46.createElement(DimensionField, { side: "inset-block-end", label: __23("Bottom", "elementor") }), /* @__PURE__ */ React46.createElement(DimensionField, { side: "inset-inline-start", label: getInlineStartLabel(isSiteRtl) })));
|
|
2763
2972
|
};
|
|
2764
2973
|
var DimensionField = ({ side, label }) => {
|
|
2765
|
-
return /* @__PURE__ */
|
|
2974
|
+
return /* @__PURE__ */ React46.createElement(Grid9, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React46.createElement(Grid9, { item: true, xs: 12 }, /* @__PURE__ */ React46.createElement(ControlLabel, null, label)), /* @__PURE__ */ React46.createElement(Grid9, { item: true, xs: 12 }, /* @__PURE__ */ React46.createElement(StylesField, { bind: side }, /* @__PURE__ */ React46.createElement(SizeControl3, { startIcon: sideIcons[side], extendedValues: ["auto"] }))));
|
|
2766
2975
|
};
|
|
2767
2976
|
|
|
2768
2977
|
// src/components/style-sections/position-section/offset-field.tsx
|
|
2769
|
-
import * as
|
|
2978
|
+
import * as React47 from "react";
|
|
2770
2979
|
import { SizeControl as SizeControl4 } from "@elementor/editor-controls";
|
|
2771
2980
|
import { Grid as Grid10 } from "@elementor/ui";
|
|
2772
|
-
import { __ as
|
|
2981
|
+
import { __ as __24 } from "@wordpress/i18n";
|
|
2773
2982
|
var OffsetField = () => {
|
|
2774
|
-
return /* @__PURE__ */
|
|
2983
|
+
return /* @__PURE__ */ React47.createElement(StylesField, { bind: "scroll-margin-top" }, /* @__PURE__ */ React47.createElement(Grid10, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React47.createElement(Grid10, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(ControlLabel, null, __24("Anchor offset", "elementor"))), /* @__PURE__ */ React47.createElement(Grid10, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(SizeControl4, { units: ["px", "em", "rem", "vw", "vh"] }))));
|
|
2775
2984
|
};
|
|
2776
2985
|
|
|
2777
2986
|
// src/components/style-sections/position-section/position-field.tsx
|
|
2778
|
-
import * as
|
|
2987
|
+
import * as React48 from "react";
|
|
2779
2988
|
import { SelectControl as SelectControl3 } from "@elementor/editor-controls";
|
|
2780
2989
|
import { Grid as Grid11 } from "@elementor/ui";
|
|
2781
|
-
import { __ as
|
|
2990
|
+
import { __ as __25 } from "@wordpress/i18n";
|
|
2782
2991
|
var positionOptions = [
|
|
2783
|
-
{ label:
|
|
2784
|
-
{ label:
|
|
2785
|
-
{ label:
|
|
2786
|
-
{ label:
|
|
2787
|
-
{ label:
|
|
2992
|
+
{ label: __25("Static", "elementor"), value: "static" },
|
|
2993
|
+
{ label: __25("Relative", "elementor"), value: "relative" },
|
|
2994
|
+
{ label: __25("Absolute", "elementor"), value: "absolute" },
|
|
2995
|
+
{ label: __25("Fixed", "elementor"), value: "fixed" },
|
|
2996
|
+
{ label: __25("Sticky", "elementor"), value: "sticky" }
|
|
2788
2997
|
];
|
|
2789
2998
|
var PositionField = ({ onChange }) => {
|
|
2790
|
-
return /* @__PURE__ */
|
|
2999
|
+
return /* @__PURE__ */ React48.createElement(StylesField, { bind: "position" }, /* @__PURE__ */ React48.createElement(Grid11, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React48.createElement(Grid11, { item: true, xs: 6 }, /* @__PURE__ */ React48.createElement(ControlLabel, null, __25("Position", "elementor"))), /* @__PURE__ */ React48.createElement(Grid11, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React48.createElement(SelectControl3, { options: positionOptions, onChange }))));
|
|
2791
3000
|
};
|
|
2792
3001
|
|
|
2793
3002
|
// src/components/style-sections/position-section/z-index-field.tsx
|
|
2794
|
-
import * as
|
|
3003
|
+
import * as React49 from "react";
|
|
2795
3004
|
import { NumberControl as NumberControl3 } from "@elementor/editor-controls";
|
|
2796
3005
|
import { Grid as Grid12 } from "@elementor/ui";
|
|
2797
|
-
import { __ as
|
|
3006
|
+
import { __ as __26 } from "@wordpress/i18n";
|
|
2798
3007
|
var ZIndexField = () => {
|
|
2799
|
-
return /* @__PURE__ */
|
|
3008
|
+
return /* @__PURE__ */ React49.createElement(StylesField, { bind: "z-index" }, /* @__PURE__ */ React49.createElement(Grid12, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React49.createElement(Grid12, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(ControlLabel, null, __26("Z-index", "elementor"))), /* @__PURE__ */ React49.createElement(Grid12, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(NumberControl3, null))));
|
|
2800
3009
|
};
|
|
2801
3010
|
|
|
2802
3011
|
// src/components/style-sections/position-section/position-section.tsx
|
|
@@ -2809,7 +3018,7 @@ var PositionSection = () => {
|
|
|
2809
3018
|
"inset-inline-end"
|
|
2810
3019
|
]);
|
|
2811
3020
|
const [dimensionsValuesFromHistory, updateDimensionsHistory, clearDimensionsHistory] = usePersistDimensions();
|
|
2812
|
-
const isCssIdFeatureActive =
|
|
3021
|
+
const isCssIdFeatureActive = isExperimentActive6("e_v_3_30");
|
|
2813
3022
|
const onPositionChange = (newPosition, previousPosition) => {
|
|
2814
3023
|
if (newPosition === "static") {
|
|
2815
3024
|
if (dimensionsValues) {
|
|
@@ -2829,7 +3038,7 @@ var PositionSection = () => {
|
|
|
2829
3038
|
}
|
|
2830
3039
|
};
|
|
2831
3040
|
const isNotStatic = positionValue && positionValue?.value !== "static";
|
|
2832
|
-
return /* @__PURE__ */
|
|
3041
|
+
return /* @__PURE__ */ React50.createElement(SectionContent, null, /* @__PURE__ */ React50.createElement(PositionField, { onChange: onPositionChange }), isNotStatic ? /* @__PURE__ */ React50.createElement(React50.Fragment, null, /* @__PURE__ */ React50.createElement(DimensionsField, null), /* @__PURE__ */ React50.createElement(ZIndexField, null)) : null, isCssIdFeatureActive && /* @__PURE__ */ React50.createElement(React50.Fragment, null, /* @__PURE__ */ React50.createElement(PanelDivider, null), /* @__PURE__ */ React50.createElement(OffsetField, null)));
|
|
2833
3042
|
};
|
|
2834
3043
|
var usePersistDimensions = () => {
|
|
2835
3044
|
const { id: styleDefID, meta } = useStyle();
|
|
@@ -2839,23 +3048,23 @@ var usePersistDimensions = () => {
|
|
|
2839
3048
|
};
|
|
2840
3049
|
|
|
2841
3050
|
// src/components/style-sections/size-section/size-section.tsx
|
|
2842
|
-
import * as
|
|
2843
|
-
import { SizeControl as SizeControl5 } from "@elementor/editor-controls";
|
|
2844
|
-
import { isExperimentActive as
|
|
3051
|
+
import * as React55 from "react";
|
|
3052
|
+
import { AspectRatioControl, SizeControl as SizeControl5 } from "@elementor/editor-controls";
|
|
3053
|
+
import { isExperimentActive as isExperimentActive7 } from "@elementor/editor-v1-adapters";
|
|
2845
3054
|
import { Grid as Grid16, Stack as Stack15 } from "@elementor/ui";
|
|
2846
|
-
import { __ as
|
|
3055
|
+
import { __ as __31 } from "@wordpress/i18n";
|
|
2847
3056
|
|
|
2848
3057
|
// src/components/collapsible-content.tsx
|
|
2849
|
-
import * as
|
|
2850
|
-
import { useState as
|
|
3058
|
+
import * as React51 from "react";
|
|
3059
|
+
import { useState as useState11 } from "react";
|
|
2851
3060
|
import { Button, Collapse as Collapse3, Stack as Stack14 } from "@elementor/ui";
|
|
2852
|
-
import { __ as
|
|
3061
|
+
import { __ as __27 } from "@wordpress/i18n";
|
|
2853
3062
|
var CollapsibleContent = ({ children, defaultOpen = false }) => {
|
|
2854
|
-
const [open, setOpen] =
|
|
3063
|
+
const [open, setOpen] = useState11(defaultOpen);
|
|
2855
3064
|
const handleToggle = () => {
|
|
2856
3065
|
setOpen((prevOpen) => !prevOpen);
|
|
2857
3066
|
};
|
|
2858
|
-
return /* @__PURE__ */
|
|
3067
|
+
return /* @__PURE__ */ React51.createElement(Stack14, null, /* @__PURE__ */ React51.createElement(
|
|
2859
3068
|
Button,
|
|
2860
3069
|
{
|
|
2861
3070
|
fullWidth: true,
|
|
@@ -2863,77 +3072,77 @@ var CollapsibleContent = ({ children, defaultOpen = false }) => {
|
|
|
2863
3072
|
color: "secondary",
|
|
2864
3073
|
variant: "outlined",
|
|
2865
3074
|
onClick: handleToggle,
|
|
2866
|
-
endIcon: /* @__PURE__ */
|
|
3075
|
+
endIcon: /* @__PURE__ */ React51.createElement(CollapseIcon, { open }),
|
|
2867
3076
|
sx: { my: 0.5 }
|
|
2868
3077
|
},
|
|
2869
|
-
open ?
|
|
2870
|
-
), /* @__PURE__ */
|
|
3078
|
+
open ? __27("Show less", "elementor") : __27("Show more", "elementor")
|
|
3079
|
+
), /* @__PURE__ */ React51.createElement(Collapse3, { in: open, timeout: "auto", unmountOnExit: true }, children));
|
|
2871
3080
|
};
|
|
2872
3081
|
|
|
2873
3082
|
// src/components/style-sections/size-section/object-fit-field.tsx
|
|
2874
|
-
import * as
|
|
3083
|
+
import * as React52 from "react";
|
|
2875
3084
|
import { SelectControl as SelectControl4 } from "@elementor/editor-controls";
|
|
2876
3085
|
import { Grid as Grid13 } from "@elementor/ui";
|
|
2877
|
-
import { __ as
|
|
3086
|
+
import { __ as __28 } from "@wordpress/i18n";
|
|
2878
3087
|
var positionOptions2 = [
|
|
2879
|
-
{ label:
|
|
2880
|
-
{ label:
|
|
2881
|
-
{ label:
|
|
2882
|
-
{ label:
|
|
2883
|
-
{ label:
|
|
3088
|
+
{ label: __28("Fill", "elementor"), value: "fill" },
|
|
3089
|
+
{ label: __28("Cover", "elementor"), value: "cover" },
|
|
3090
|
+
{ label: __28("Contain", "elementor"), value: "contain" },
|
|
3091
|
+
{ label: __28("None", "elementor"), value: "none" },
|
|
3092
|
+
{ label: __28("Scale down", "elementor"), value: "scale-down" }
|
|
2884
3093
|
];
|
|
2885
3094
|
var ObjectFitField = ({ onChange }) => {
|
|
2886
|
-
return /* @__PURE__ */
|
|
3095
|
+
return /* @__PURE__ */ React52.createElement(StylesField, { bind: "object-fit" }, /* @__PURE__ */ React52.createElement(Grid13, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React52.createElement(Grid13, { item: true, xs: 6 }, /* @__PURE__ */ React52.createElement(ControlLabel, null, __28("Object fit", "elementor"))), /* @__PURE__ */ React52.createElement(Grid13, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React52.createElement(SelectControl4, { options: positionOptions2, onChange }))));
|
|
2887
3096
|
};
|
|
2888
3097
|
|
|
2889
3098
|
// src/components/style-sections/size-section/object-position-field.tsx
|
|
2890
|
-
import * as
|
|
3099
|
+
import * as React53 from "react";
|
|
2891
3100
|
import { SelectControl as SelectControl5 } from "@elementor/editor-controls";
|
|
2892
3101
|
import { Grid as Grid14 } from "@elementor/ui";
|
|
2893
|
-
import { __ as
|
|
3102
|
+
import { __ as __29 } from "@wordpress/i18n";
|
|
2894
3103
|
var positionOptions3 = [
|
|
2895
|
-
{ label:
|
|
2896
|
-
{ label:
|
|
2897
|
-
{ label:
|
|
2898
|
-
{ label:
|
|
2899
|
-
{ label:
|
|
2900
|
-
{ label:
|
|
2901
|
-
{ label:
|
|
2902
|
-
{ label:
|
|
2903
|
-
{ label:
|
|
3104
|
+
{ label: __29("Center center", "elementor"), value: "center center" },
|
|
3105
|
+
{ label: __29("Center left", "elementor"), value: "center left" },
|
|
3106
|
+
{ label: __29("Center right", "elementor"), value: "center right" },
|
|
3107
|
+
{ label: __29("Top center", "elementor"), value: "top center" },
|
|
3108
|
+
{ label: __29("Top left", "elementor"), value: "top left" },
|
|
3109
|
+
{ label: __29("Top right", "elementor"), value: "top right" },
|
|
3110
|
+
{ label: __29("Bottom center", "elementor"), value: "bottom center" },
|
|
3111
|
+
{ label: __29("Bottom left", "elementor"), value: "bottom left" },
|
|
3112
|
+
{ label: __29("Bottom right", "elementor"), value: "bottom right" }
|
|
2904
3113
|
];
|
|
2905
3114
|
var ObjectPositionField = ({ onChange }) => {
|
|
2906
|
-
return /* @__PURE__ */
|
|
3115
|
+
return /* @__PURE__ */ React53.createElement(StylesField, { bind: "object-position" }, /* @__PURE__ */ React53.createElement(Grid14, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React53.createElement(Grid14, { item: true, xs: 6 }, /* @__PURE__ */ React53.createElement(ControlLabel, null, __29("Object position", "elementor"))), /* @__PURE__ */ React53.createElement(Grid14, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React53.createElement(SelectControl5, { options: positionOptions3, onChange }))));
|
|
2907
3116
|
};
|
|
2908
3117
|
|
|
2909
3118
|
// src/components/style-sections/size-section/overflow-field.tsx
|
|
2910
|
-
import * as
|
|
3119
|
+
import * as React54 from "react";
|
|
2911
3120
|
import { ToggleControl as ToggleControl8 } from "@elementor/editor-controls";
|
|
2912
3121
|
import { EyeIcon, EyeOffIcon, LetterAIcon } from "@elementor/icons";
|
|
2913
3122
|
import { Grid as Grid15 } from "@elementor/ui";
|
|
2914
|
-
import { __ as
|
|
3123
|
+
import { __ as __30 } from "@wordpress/i18n";
|
|
2915
3124
|
var options6 = [
|
|
2916
3125
|
{
|
|
2917
3126
|
value: "visible",
|
|
2918
|
-
label:
|
|
2919
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3127
|
+
label: __30("Visible", "elementor"),
|
|
3128
|
+
renderContent: ({ size }) => /* @__PURE__ */ React54.createElement(EyeIcon, { fontSize: size }),
|
|
2920
3129
|
showTooltip: true
|
|
2921
3130
|
},
|
|
2922
3131
|
{
|
|
2923
3132
|
value: "hidden",
|
|
2924
|
-
label:
|
|
2925
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3133
|
+
label: __30("Hidden", "elementor"),
|
|
3134
|
+
renderContent: ({ size }) => /* @__PURE__ */ React54.createElement(EyeOffIcon, { fontSize: size }),
|
|
2926
3135
|
showTooltip: true
|
|
2927
3136
|
},
|
|
2928
3137
|
{
|
|
2929
3138
|
value: "auto",
|
|
2930
|
-
label:
|
|
2931
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3139
|
+
label: __30("Auto", "elementor"),
|
|
3140
|
+
renderContent: ({ size }) => /* @__PURE__ */ React54.createElement(LetterAIcon, { fontSize: size }),
|
|
2932
3141
|
showTooltip: true
|
|
2933
3142
|
}
|
|
2934
3143
|
];
|
|
2935
3144
|
var OverflowField = () => {
|
|
2936
|
-
return /* @__PURE__ */
|
|
3145
|
+
return /* @__PURE__ */ React54.createElement(StylesField, { bind: "overflow" }, /* @__PURE__ */ React54.createElement(Grid15, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React54.createElement(Grid15, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(ControlLabel, null, __30("Overflow", "elementor"))), /* @__PURE__ */ React54.createElement(Grid15, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React54.createElement(ToggleControl8, { options: options6 }))));
|
|
2937
3146
|
};
|
|
2938
3147
|
|
|
2939
3148
|
// src/components/style-sections/size-section/size-section.tsx
|
|
@@ -2948,78 +3157,78 @@ var SizeSection = () => {
|
|
|
2948
3157
|
});
|
|
2949
3158
|
}
|
|
2950
3159
|
};
|
|
2951
|
-
const isVersion330Active =
|
|
2952
|
-
return /* @__PURE__ */
|
|
3160
|
+
const isVersion330Active = isExperimentActive7("e_v_3_30");
|
|
3161
|
+
return /* @__PURE__ */ React55.createElement(SectionContent, null, /* @__PURE__ */ React55.createElement(Grid16, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React55.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(SizeField, { bind: "width", label: __31("Width", "elementor"), extendedValues: ["auto"] })), /* @__PURE__ */ React55.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(SizeField, { bind: "height", label: __31("Height", "elementor"), extendedValues: ["auto"] }))), /* @__PURE__ */ React55.createElement(Grid16, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React55.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(
|
|
2953
3162
|
SizeField,
|
|
2954
3163
|
{
|
|
2955
3164
|
bind: "min-width",
|
|
2956
|
-
label:
|
|
3165
|
+
label: __31("Min width", "elementor"),
|
|
2957
3166
|
extendedValues: ["auto"]
|
|
2958
3167
|
}
|
|
2959
|
-
)), /* @__PURE__ */
|
|
3168
|
+
)), /* @__PURE__ */ React55.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(
|
|
2960
3169
|
SizeField,
|
|
2961
3170
|
{
|
|
2962
3171
|
bind: "min-height",
|
|
2963
|
-
label:
|
|
3172
|
+
label: __31("Min height", "elementor"),
|
|
2964
3173
|
extendedValues: ["auto"]
|
|
2965
3174
|
}
|
|
2966
|
-
))), /* @__PURE__ */
|
|
3175
|
+
))), /* @__PURE__ */ React55.createElement(Grid16, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React55.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(SizeField, { bind: "max-width", label: __31("Max width", "elementor") })), /* @__PURE__ */ React55.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(SizeField, { bind: "max-height", label: __31("Max height", "elementor") }))), /* @__PURE__ */ React55.createElement(PanelDivider, null), /* @__PURE__ */ React55.createElement(Stack15, null, /* @__PURE__ */ React55.createElement(OverflowField, null)), isVersion330Active && /* @__PURE__ */ React55.createElement(CollapsibleContent, null, /* @__PURE__ */ React55.createElement(Stack15, { gap: 2 }, /* @__PURE__ */ React55.createElement(StylesField, { bind: "aspect-ratio" }, /* @__PURE__ */ React55.createElement(AspectRatioControl, { label: __31("Aspect Ratio", "elementor") })), /* @__PURE__ */ React55.createElement(PanelDivider, null), /* @__PURE__ */ React55.createElement(ObjectFitField, { onChange: onFitChange }), isNotFill && /* @__PURE__ */ React55.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(ObjectPositionField, null)))));
|
|
2967
3176
|
};
|
|
2968
3177
|
var SizeField = ({ label, bind, extendedValues }) => {
|
|
2969
|
-
return /* @__PURE__ */
|
|
3178
|
+
return /* @__PURE__ */ React55.createElement(StylesField, { bind }, /* @__PURE__ */ React55.createElement(Grid16, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React55.createElement(Grid16, { item: true, xs: 12 }, /* @__PURE__ */ React55.createElement(ControlLabel, null, label)), /* @__PURE__ */ React55.createElement(Grid16, { item: true, xs: 12 }, /* @__PURE__ */ React55.createElement(SizeControl5, { extendedValues }))));
|
|
2970
3179
|
};
|
|
2971
3180
|
|
|
2972
3181
|
// src/components/style-sections/spacing-section/spacing-section.tsx
|
|
2973
|
-
import * as
|
|
3182
|
+
import * as React56 from "react";
|
|
2974
3183
|
import { LinkedDimensionsControl } from "@elementor/editor-controls";
|
|
2975
|
-
import { __ as
|
|
3184
|
+
import { __ as __32 } from "@wordpress/i18n";
|
|
2976
3185
|
var SpacingSection = () => {
|
|
2977
3186
|
const { isSiteRtl } = useDirection();
|
|
2978
|
-
return /* @__PURE__ */
|
|
3187
|
+
return /* @__PURE__ */ React56.createElement(SectionContent, null, /* @__PURE__ */ React56.createElement(StylesField, { bind: "margin" }, /* @__PURE__ */ React56.createElement(
|
|
2979
3188
|
LinkedDimensionsControl,
|
|
2980
3189
|
{
|
|
2981
|
-
label:
|
|
3190
|
+
label: __32("Margin", "elementor"),
|
|
2982
3191
|
isSiteRtl,
|
|
2983
3192
|
extendedValues: ["auto"]
|
|
2984
3193
|
}
|
|
2985
|
-
)), /* @__PURE__ */
|
|
3194
|
+
)), /* @__PURE__ */ React56.createElement(PanelDivider, null), /* @__PURE__ */ React56.createElement(StylesField, { bind: "padding" }, /* @__PURE__ */ React56.createElement(LinkedDimensionsControl, { label: __32("Padding", "elementor"), isSiteRtl })));
|
|
2986
3195
|
};
|
|
2987
3196
|
|
|
2988
3197
|
// src/components/style-sections/typography-section/typography-section.tsx
|
|
2989
|
-
import * as
|
|
2990
|
-
import { isExperimentActive as
|
|
3198
|
+
import * as React72 from "react";
|
|
3199
|
+
import { isExperimentActive as isExperimentActive8 } from "@elementor/editor-v1-adapters";
|
|
2991
3200
|
|
|
2992
3201
|
// src/components/style-sections/typography-section/column-count-field.tsx
|
|
2993
|
-
import * as
|
|
3202
|
+
import * as React57 from "react";
|
|
2994
3203
|
import { NumberControl as NumberControl4 } from "@elementor/editor-controls";
|
|
2995
3204
|
import { Grid as Grid17 } from "@elementor/ui";
|
|
2996
|
-
import { __ as
|
|
3205
|
+
import { __ as __33 } from "@wordpress/i18n";
|
|
2997
3206
|
var ColumnCountField = () => {
|
|
2998
|
-
return /* @__PURE__ */
|
|
3207
|
+
return /* @__PURE__ */ React57.createElement(StylesField, { bind: "column-count" }, /* @__PURE__ */ React57.createElement(Grid17, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React57.createElement(Grid17, { item: true, xs: 6 }, /* @__PURE__ */ React57.createElement(ControlLabel, null, __33("Columns", "elementor"))), /* @__PURE__ */ React57.createElement(Grid17, { item: true, xs: 6 }, /* @__PURE__ */ React57.createElement(NumberControl4, { shouldForceInt: true, min: 0, step: 1 }))));
|
|
2999
3208
|
};
|
|
3000
3209
|
|
|
3001
3210
|
// src/components/style-sections/typography-section/column-gap-field.tsx
|
|
3002
|
-
import * as
|
|
3211
|
+
import * as React58 from "react";
|
|
3003
3212
|
import { SizeControl as SizeControl6 } from "@elementor/editor-controls";
|
|
3004
3213
|
import { Grid as Grid18 } from "@elementor/ui";
|
|
3005
|
-
import { __ as
|
|
3214
|
+
import { __ as __34 } from "@wordpress/i18n";
|
|
3006
3215
|
var ColumnGapField = () => {
|
|
3007
|
-
return /* @__PURE__ */
|
|
3216
|
+
return /* @__PURE__ */ React58.createElement(StylesField, { bind: "column-gap" }, /* @__PURE__ */ React58.createElement(Grid18, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React58.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React58.createElement(ControlLabel, null, __34("Column gap", "elementor"))), /* @__PURE__ */ React58.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React58.createElement(SizeControl6, null))));
|
|
3008
3217
|
};
|
|
3009
3218
|
|
|
3010
3219
|
// src/components/style-sections/typography-section/font-family-field.tsx
|
|
3011
|
-
import * as
|
|
3220
|
+
import * as React59 from "react";
|
|
3012
3221
|
import { FontFamilyControl } from "@elementor/editor-controls";
|
|
3013
3222
|
import { Grid as Grid19 } from "@elementor/ui";
|
|
3014
|
-
import { __ as
|
|
3223
|
+
import { __ as __36 } from "@wordpress/i18n";
|
|
3015
3224
|
|
|
3016
3225
|
// src/components/style-sections/typography-section/hooks/use-font-families.ts
|
|
3017
|
-
import { useMemo as
|
|
3018
|
-
import { __ as
|
|
3226
|
+
import { useMemo as useMemo6 } from "react";
|
|
3227
|
+
import { __ as __35 } from "@wordpress/i18n";
|
|
3019
3228
|
var supportedCategories = {
|
|
3020
|
-
system:
|
|
3021
|
-
custom:
|
|
3022
|
-
googlefonts:
|
|
3229
|
+
system: __35("System", "elementor"),
|
|
3230
|
+
custom: __35("Custom Fonts", "elementor"),
|
|
3231
|
+
googlefonts: __35("Google Fonts", "elementor")
|
|
3023
3232
|
};
|
|
3024
3233
|
var getFontFamilies = () => {
|
|
3025
3234
|
const { controls } = getElementorConfig();
|
|
@@ -3031,7 +3240,7 @@ var getFontFamilies = () => {
|
|
|
3031
3240
|
};
|
|
3032
3241
|
var useFontFamilies = () => {
|
|
3033
3242
|
const fontFamilies = getFontFamilies();
|
|
3034
|
-
return
|
|
3243
|
+
return useMemo6(() => {
|
|
3035
3244
|
const categoriesOrder = ["system", "custom", "googlefonts"];
|
|
3036
3245
|
return Object.entries(fontFamilies || {}).reduce((acc, [font, category]) => {
|
|
3037
3246
|
if (!supportedCategories[category]) {
|
|
@@ -3056,188 +3265,188 @@ var FontFamilyField = () => {
|
|
|
3056
3265
|
if (fontFamilies.length === 0) {
|
|
3057
3266
|
return null;
|
|
3058
3267
|
}
|
|
3059
|
-
return /* @__PURE__ */
|
|
3268
|
+
return /* @__PURE__ */ React59.createElement(StylesField, { bind: "font-family" }, /* @__PURE__ */ React59.createElement(Grid19, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React59.createElement(Grid19, { item: true, xs: 6 }, /* @__PURE__ */ React59.createElement(ControlLabel, null, __36("Font family", "elementor"))), /* @__PURE__ */ React59.createElement(Grid19, { item: true, xs: 6, sx: { minWidth: 0 } }, /* @__PURE__ */ React59.createElement(FontFamilyControl, { fontFamilies }))));
|
|
3060
3269
|
};
|
|
3061
3270
|
|
|
3062
3271
|
// src/components/style-sections/typography-section/font-size-field.tsx
|
|
3063
|
-
import * as
|
|
3272
|
+
import * as React60 from "react";
|
|
3064
3273
|
import { SizeControl as SizeControl7 } from "@elementor/editor-controls";
|
|
3065
3274
|
import { Grid as Grid20 } from "@elementor/ui";
|
|
3066
|
-
import { __ as
|
|
3275
|
+
import { __ as __37 } from "@wordpress/i18n";
|
|
3067
3276
|
var FontSizeField = () => {
|
|
3068
|
-
return /* @__PURE__ */
|
|
3277
|
+
return /* @__PURE__ */ React60.createElement(StylesField, { bind: "font-size" }, /* @__PURE__ */ React60.createElement(Grid20, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React60.createElement(Grid20, { item: true, xs: 6 }, /* @__PURE__ */ React60.createElement(ControlLabel, null, __37("Font size", "elementor"))), /* @__PURE__ */ React60.createElement(Grid20, { item: true, xs: 6 }, /* @__PURE__ */ React60.createElement(SizeControl7, null))));
|
|
3069
3278
|
};
|
|
3070
3279
|
|
|
3071
3280
|
// src/components/style-sections/typography-section/font-style-field.tsx
|
|
3072
|
-
import * as
|
|
3281
|
+
import * as React61 from "react";
|
|
3073
3282
|
import { ControlFormLabel as ControlFormLabel4, ToggleControl as ToggleControl9 } from "@elementor/editor-controls";
|
|
3074
3283
|
import { ItalicIcon, MinusIcon as MinusIcon2 } from "@elementor/icons";
|
|
3075
3284
|
import { Grid as Grid21 } from "@elementor/ui";
|
|
3076
|
-
import { __ as
|
|
3285
|
+
import { __ as __38 } from "@wordpress/i18n";
|
|
3077
3286
|
var options7 = [
|
|
3078
3287
|
{
|
|
3079
3288
|
value: "normal",
|
|
3080
|
-
label:
|
|
3081
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3289
|
+
label: __38("Normal", "elementor"),
|
|
3290
|
+
renderContent: ({ size }) => /* @__PURE__ */ React61.createElement(MinusIcon2, { fontSize: size }),
|
|
3082
3291
|
showTooltip: true
|
|
3083
3292
|
},
|
|
3084
3293
|
{
|
|
3085
3294
|
value: "italic",
|
|
3086
|
-
label:
|
|
3087
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3295
|
+
label: __38("Italic", "elementor"),
|
|
3296
|
+
renderContent: ({ size }) => /* @__PURE__ */ React61.createElement(ItalicIcon, { fontSize: size }),
|
|
3088
3297
|
showTooltip: true
|
|
3089
3298
|
}
|
|
3090
3299
|
];
|
|
3091
|
-
var FontStyleField = () => /* @__PURE__ */
|
|
3300
|
+
var FontStyleField = () => /* @__PURE__ */ React61.createElement(StylesField, { bind: "font-style" }, /* @__PURE__ */ React61.createElement(Grid21, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React61.createElement(Grid21, { item: true, xs: 6 }, /* @__PURE__ */ React61.createElement(ControlFormLabel4, null, __38("Font style", "elementor"))), /* @__PURE__ */ React61.createElement(Grid21, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React61.createElement(ToggleControl9, { options: options7 }))));
|
|
3092
3301
|
|
|
3093
3302
|
// src/components/style-sections/typography-section/font-weight-field.tsx
|
|
3094
|
-
import * as
|
|
3303
|
+
import * as React62 from "react";
|
|
3095
3304
|
import { SelectControl as SelectControl6 } from "@elementor/editor-controls";
|
|
3096
3305
|
import { Grid as Grid22 } from "@elementor/ui";
|
|
3097
|
-
import { __ as
|
|
3306
|
+
import { __ as __39 } from "@wordpress/i18n";
|
|
3098
3307
|
var fontWeightOptions = [
|
|
3099
|
-
{ value: "100", label:
|
|
3100
|
-
{ value: "200", label:
|
|
3101
|
-
{ value: "300", label:
|
|
3102
|
-
{ value: "400", label:
|
|
3103
|
-
{ value: "500", label:
|
|
3104
|
-
{ value: "600", label:
|
|
3105
|
-
{ value: "700", label:
|
|
3106
|
-
{ value: "800", label:
|
|
3107
|
-
{ value: "900", label:
|
|
3308
|
+
{ value: "100", label: __39("100 - Thin", "elementor") },
|
|
3309
|
+
{ value: "200", label: __39("200 - Extra light", "elementor") },
|
|
3310
|
+
{ value: "300", label: __39("300 - Light", "elementor") },
|
|
3311
|
+
{ value: "400", label: __39("400 - Normal", "elementor") },
|
|
3312
|
+
{ value: "500", label: __39("500 - Medium", "elementor") },
|
|
3313
|
+
{ value: "600", label: __39("600 - Semi bold", "elementor") },
|
|
3314
|
+
{ value: "700", label: __39("700 - Bold", "elementor") },
|
|
3315
|
+
{ value: "800", label: __39("800 - Extra bold", "elementor") },
|
|
3316
|
+
{ value: "900", label: __39("900 - Black", "elementor") }
|
|
3108
3317
|
];
|
|
3109
3318
|
var FontWeightField = () => {
|
|
3110
|
-
return /* @__PURE__ */
|
|
3319
|
+
return /* @__PURE__ */ React62.createElement(StylesField, { bind: "font-weight" }, /* @__PURE__ */ React62.createElement(Grid22, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React62.createElement(Grid22, { item: true, xs: 6 }, /* @__PURE__ */ React62.createElement(ControlLabel, null, __39("Font weight", "elementor"))), /* @__PURE__ */ React62.createElement(Grid22, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React62.createElement(SelectControl6, { options: fontWeightOptions }))));
|
|
3111
3320
|
};
|
|
3112
3321
|
|
|
3113
3322
|
// src/components/style-sections/typography-section/letter-spacing-field.tsx
|
|
3114
|
-
import * as
|
|
3323
|
+
import * as React63 from "react";
|
|
3115
3324
|
import { SizeControl as SizeControl8 } from "@elementor/editor-controls";
|
|
3116
3325
|
import { Grid as Grid23 } from "@elementor/ui";
|
|
3117
|
-
import { __ as
|
|
3326
|
+
import { __ as __40 } from "@wordpress/i18n";
|
|
3118
3327
|
var LetterSpacingField = () => {
|
|
3119
|
-
return /* @__PURE__ */
|
|
3328
|
+
return /* @__PURE__ */ React63.createElement(StylesField, { bind: "letter-spacing" }, /* @__PURE__ */ React63.createElement(Grid23, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React63.createElement(Grid23, { item: true, xs: 6 }, /* @__PURE__ */ React63.createElement(ControlLabel, null, __40("Letter spacing", "elementor"))), /* @__PURE__ */ React63.createElement(Grid23, { item: true, xs: 6 }, /* @__PURE__ */ React63.createElement(SizeControl8, null))));
|
|
3120
3329
|
};
|
|
3121
3330
|
|
|
3122
3331
|
// src/components/style-sections/typography-section/line-height-field.tsx
|
|
3123
|
-
import * as
|
|
3332
|
+
import * as React64 from "react";
|
|
3124
3333
|
import { SizeControl as SizeControl9 } from "@elementor/editor-controls";
|
|
3125
3334
|
import { Grid as Grid24 } from "@elementor/ui";
|
|
3126
|
-
import { __ as
|
|
3335
|
+
import { __ as __41 } from "@wordpress/i18n";
|
|
3127
3336
|
var LineHeightField = () => {
|
|
3128
|
-
return /* @__PURE__ */
|
|
3337
|
+
return /* @__PURE__ */ React64.createElement(StylesField, { bind: "line-height" }, /* @__PURE__ */ React64.createElement(Grid24, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React64.createElement(Grid24, { item: true, xs: 6 }, /* @__PURE__ */ React64.createElement(ControlLabel, null, __41("Line height", "elementor"))), /* @__PURE__ */ React64.createElement(Grid24, { item: true, xs: 6 }, /* @__PURE__ */ React64.createElement(SizeControl9, null))));
|
|
3129
3338
|
};
|
|
3130
3339
|
|
|
3131
3340
|
// src/components/style-sections/typography-section/text-alignment-field.tsx
|
|
3132
|
-
import * as
|
|
3341
|
+
import * as React65 from "react";
|
|
3133
3342
|
import { ToggleControl as ToggleControl10 } from "@elementor/editor-controls";
|
|
3134
3343
|
import { AlignCenterIcon, AlignJustifiedIcon, AlignLeftIcon, AlignRightIcon } from "@elementor/icons";
|
|
3135
3344
|
import { Grid as Grid25, withDirection as withDirection9 } from "@elementor/ui";
|
|
3136
|
-
import { __ as
|
|
3345
|
+
import { __ as __42 } from "@wordpress/i18n";
|
|
3137
3346
|
var AlignStartIcon = withDirection9(AlignLeftIcon);
|
|
3138
3347
|
var AlignEndIcon = withDirection9(AlignRightIcon);
|
|
3139
3348
|
var options8 = [
|
|
3140
3349
|
{
|
|
3141
3350
|
value: "start",
|
|
3142
|
-
label:
|
|
3143
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3351
|
+
label: __42("Start", "elementor"),
|
|
3352
|
+
renderContent: ({ size }) => /* @__PURE__ */ React65.createElement(AlignStartIcon, { fontSize: size }),
|
|
3144
3353
|
showTooltip: true
|
|
3145
3354
|
},
|
|
3146
3355
|
{
|
|
3147
3356
|
value: "center",
|
|
3148
|
-
label:
|
|
3149
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3357
|
+
label: __42("Center", "elementor"),
|
|
3358
|
+
renderContent: ({ size }) => /* @__PURE__ */ React65.createElement(AlignCenterIcon, { fontSize: size }),
|
|
3150
3359
|
showTooltip: true
|
|
3151
3360
|
},
|
|
3152
3361
|
{
|
|
3153
3362
|
value: "end",
|
|
3154
|
-
label:
|
|
3155
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3363
|
+
label: __42("End", "elementor"),
|
|
3364
|
+
renderContent: ({ size }) => /* @__PURE__ */ React65.createElement(AlignEndIcon, { fontSize: size }),
|
|
3156
3365
|
showTooltip: true
|
|
3157
3366
|
},
|
|
3158
3367
|
{
|
|
3159
3368
|
value: "justify",
|
|
3160
|
-
label:
|
|
3161
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3369
|
+
label: __42("Justify", "elementor"),
|
|
3370
|
+
renderContent: ({ size }) => /* @__PURE__ */ React65.createElement(AlignJustifiedIcon, { fontSize: size }),
|
|
3162
3371
|
showTooltip: true
|
|
3163
3372
|
}
|
|
3164
3373
|
];
|
|
3165
3374
|
var TextAlignmentField = () => {
|
|
3166
|
-
return /* @__PURE__ */
|
|
3375
|
+
return /* @__PURE__ */ React65.createElement(StylesField, { bind: "text-align" }, /* @__PURE__ */ React65.createElement(Grid25, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React65.createElement(Grid25, { item: true, xs: 6 }, /* @__PURE__ */ React65.createElement(ControlLabel, null, __42("Text align", "elementor"))), /* @__PURE__ */ React65.createElement(Grid25, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React65.createElement(ToggleControl10, { options: options8 }))));
|
|
3167
3376
|
};
|
|
3168
3377
|
|
|
3169
3378
|
// src/components/style-sections/typography-section/text-color-field.tsx
|
|
3170
|
-
import * as
|
|
3379
|
+
import * as React66 from "react";
|
|
3171
3380
|
import { ColorControl as ColorControl2 } from "@elementor/editor-controls";
|
|
3172
3381
|
import { Grid as Grid26 } from "@elementor/ui";
|
|
3173
|
-
import { __ as
|
|
3382
|
+
import { __ as __43 } from "@wordpress/i18n";
|
|
3174
3383
|
var TextColorField = () => {
|
|
3175
|
-
return /* @__PURE__ */
|
|
3384
|
+
return /* @__PURE__ */ React66.createElement(StylesField, { bind: "color" }, /* @__PURE__ */ React66.createElement(Grid26, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React66.createElement(Grid26, { item: true, xs: 6 }, /* @__PURE__ */ React66.createElement(ControlLabel, null, __43("Text color", "elementor"))), /* @__PURE__ */ React66.createElement(Grid26, { item: true, xs: 6 }, /* @__PURE__ */ React66.createElement(ColorControl2, null))));
|
|
3176
3385
|
};
|
|
3177
3386
|
|
|
3178
3387
|
// src/components/style-sections/typography-section/text-decoration-field.tsx
|
|
3179
|
-
import * as
|
|
3388
|
+
import * as React67 from "react";
|
|
3180
3389
|
import { ToggleControl as ToggleControl11 } from "@elementor/editor-controls";
|
|
3181
3390
|
import { MinusIcon as MinusIcon3, OverlineIcon, StrikethroughIcon, UnderlineIcon } from "@elementor/icons";
|
|
3182
3391
|
import { Grid as Grid27 } from "@elementor/ui";
|
|
3183
|
-
import { __ as
|
|
3392
|
+
import { __ as __44 } from "@wordpress/i18n";
|
|
3184
3393
|
var options9 = [
|
|
3185
3394
|
{
|
|
3186
3395
|
value: "none",
|
|
3187
|
-
label:
|
|
3188
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3396
|
+
label: __44("None", "elementor"),
|
|
3397
|
+
renderContent: ({ size }) => /* @__PURE__ */ React67.createElement(MinusIcon3, { fontSize: size }),
|
|
3189
3398
|
showTooltip: true,
|
|
3190
3399
|
exclusive: true
|
|
3191
3400
|
},
|
|
3192
3401
|
{
|
|
3193
3402
|
value: "underline",
|
|
3194
|
-
label:
|
|
3195
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3403
|
+
label: __44("Underline", "elementor"),
|
|
3404
|
+
renderContent: ({ size }) => /* @__PURE__ */ React67.createElement(UnderlineIcon, { fontSize: size }),
|
|
3196
3405
|
showTooltip: true
|
|
3197
3406
|
},
|
|
3198
3407
|
{
|
|
3199
3408
|
value: "line-through",
|
|
3200
|
-
label:
|
|
3201
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3409
|
+
label: __44("Line-through", "elementor"),
|
|
3410
|
+
renderContent: ({ size }) => /* @__PURE__ */ React67.createElement(StrikethroughIcon, { fontSize: size }),
|
|
3202
3411
|
showTooltip: true
|
|
3203
3412
|
},
|
|
3204
3413
|
{
|
|
3205
3414
|
value: "overline",
|
|
3206
|
-
label:
|
|
3207
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3415
|
+
label: __44("Overline", "elementor"),
|
|
3416
|
+
renderContent: ({ size }) => /* @__PURE__ */ React67.createElement(OverlineIcon, { fontSize: size }),
|
|
3208
3417
|
showTooltip: true
|
|
3209
3418
|
}
|
|
3210
3419
|
];
|
|
3211
|
-
var TextDecorationField = () => /* @__PURE__ */
|
|
3420
|
+
var TextDecorationField = () => /* @__PURE__ */ React67.createElement(StylesField, { bind: "text-decoration" }, /* @__PURE__ */ React67.createElement(Grid27, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React67.createElement(Grid27, { item: true, xs: 6 }, /* @__PURE__ */ React67.createElement(ControlLabel, null, __44("Line decoration", "elementor"))), /* @__PURE__ */ React67.createElement(Grid27, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React67.createElement(ToggleControl11, { options: options9, exclusive: false }))));
|
|
3212
3421
|
|
|
3213
3422
|
// src/components/style-sections/typography-section/text-direction-field.tsx
|
|
3214
|
-
import * as
|
|
3423
|
+
import * as React68 from "react";
|
|
3215
3424
|
import { ToggleControl as ToggleControl12 } from "@elementor/editor-controls";
|
|
3216
3425
|
import { TextDirectionLtrIcon, TextDirectionRtlIcon } from "@elementor/icons";
|
|
3217
3426
|
import { Grid as Grid28 } from "@elementor/ui";
|
|
3218
|
-
import { __ as
|
|
3427
|
+
import { __ as __45 } from "@wordpress/i18n";
|
|
3219
3428
|
var options10 = [
|
|
3220
3429
|
{
|
|
3221
3430
|
value: "ltr",
|
|
3222
|
-
label:
|
|
3223
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3431
|
+
label: __45("Left to right", "elementor"),
|
|
3432
|
+
renderContent: ({ size }) => /* @__PURE__ */ React68.createElement(TextDirectionLtrIcon, { fontSize: size }),
|
|
3224
3433
|
showTooltip: true
|
|
3225
3434
|
},
|
|
3226
3435
|
{
|
|
3227
3436
|
value: "rtl",
|
|
3228
|
-
label:
|
|
3229
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3437
|
+
label: __45("Right to left", "elementor"),
|
|
3438
|
+
renderContent: ({ size }) => /* @__PURE__ */ React68.createElement(TextDirectionRtlIcon, { fontSize: size }),
|
|
3230
3439
|
showTooltip: true
|
|
3231
3440
|
}
|
|
3232
3441
|
];
|
|
3233
3442
|
var TextDirectionField = () => {
|
|
3234
|
-
return /* @__PURE__ */
|
|
3443
|
+
return /* @__PURE__ */ React68.createElement(StylesField, { bind: "direction" }, /* @__PURE__ */ React68.createElement(Grid28, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React68.createElement(Grid28, { item: true, xs: 6 }, /* @__PURE__ */ React68.createElement(ControlLabel, null, __45("Direction", "elementor"))), /* @__PURE__ */ React68.createElement(Grid28, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React68.createElement(ToggleControl12, { options: options10 }))));
|
|
3235
3444
|
};
|
|
3236
3445
|
|
|
3237
3446
|
// src/components/style-sections/typography-section/text-stroke-field.tsx
|
|
3238
|
-
import * as
|
|
3447
|
+
import * as React69 from "react";
|
|
3239
3448
|
import { StrokeControl } from "@elementor/editor-controls";
|
|
3240
|
-
import { __ as
|
|
3449
|
+
import { __ as __46 } from "@wordpress/i18n";
|
|
3241
3450
|
var initTextStroke = {
|
|
3242
3451
|
$$type: "stroke",
|
|
3243
3452
|
value: {
|
|
@@ -3263,67 +3472,67 @@ var TextStrokeField = () => {
|
|
|
3263
3472
|
setTextStroke(null);
|
|
3264
3473
|
};
|
|
3265
3474
|
const hasTextStroke = Boolean(textStroke);
|
|
3266
|
-
return /* @__PURE__ */
|
|
3475
|
+
return /* @__PURE__ */ React69.createElement(StylesField, { bind: "stroke" }, /* @__PURE__ */ React69.createElement(
|
|
3267
3476
|
AddOrRemoveContent,
|
|
3268
3477
|
{
|
|
3269
|
-
label:
|
|
3478
|
+
label: __46("Text stroke", "elementor"),
|
|
3270
3479
|
isAdded: hasTextStroke,
|
|
3271
3480
|
onAdd: addTextStroke,
|
|
3272
3481
|
onRemove: removeTextStroke
|
|
3273
3482
|
},
|
|
3274
|
-
/* @__PURE__ */
|
|
3483
|
+
/* @__PURE__ */ React69.createElement(StrokeControl, null)
|
|
3275
3484
|
));
|
|
3276
3485
|
};
|
|
3277
3486
|
|
|
3278
3487
|
// src/components/style-sections/typography-section/transform-field.tsx
|
|
3279
|
-
import * as
|
|
3488
|
+
import * as React70 from "react";
|
|
3280
3489
|
import { ToggleControl as ToggleControl13 } from "@elementor/editor-controls";
|
|
3281
3490
|
import { LetterCaseIcon, LetterCaseLowerIcon, LetterCaseUpperIcon, MinusIcon as MinusIcon4 } from "@elementor/icons";
|
|
3282
3491
|
import { Grid as Grid29 } from "@elementor/ui";
|
|
3283
|
-
import { __ as
|
|
3492
|
+
import { __ as __47 } from "@wordpress/i18n";
|
|
3284
3493
|
var options11 = [
|
|
3285
3494
|
{
|
|
3286
3495
|
value: "none",
|
|
3287
|
-
label:
|
|
3288
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3496
|
+
label: __47("None", "elementor"),
|
|
3497
|
+
renderContent: ({ size }) => /* @__PURE__ */ React70.createElement(MinusIcon4, { fontSize: size }),
|
|
3289
3498
|
showTooltip: true
|
|
3290
3499
|
},
|
|
3291
3500
|
{
|
|
3292
3501
|
value: "capitalize",
|
|
3293
|
-
label:
|
|
3294
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3502
|
+
label: __47("Capitalize", "elementor"),
|
|
3503
|
+
renderContent: ({ size }) => /* @__PURE__ */ React70.createElement(LetterCaseIcon, { fontSize: size }),
|
|
3295
3504
|
showTooltip: true
|
|
3296
3505
|
},
|
|
3297
3506
|
{
|
|
3298
3507
|
value: "uppercase",
|
|
3299
|
-
label:
|
|
3300
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3508
|
+
label: __47("Uppercase", "elementor"),
|
|
3509
|
+
renderContent: ({ size }) => /* @__PURE__ */ React70.createElement(LetterCaseUpperIcon, { fontSize: size }),
|
|
3301
3510
|
showTooltip: true
|
|
3302
3511
|
},
|
|
3303
3512
|
{
|
|
3304
3513
|
value: "lowercase",
|
|
3305
|
-
label:
|
|
3306
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3514
|
+
label: __47("Lowercase", "elementor"),
|
|
3515
|
+
renderContent: ({ size }) => /* @__PURE__ */ React70.createElement(LetterCaseLowerIcon, { fontSize: size }),
|
|
3307
3516
|
showTooltip: true
|
|
3308
3517
|
}
|
|
3309
3518
|
];
|
|
3310
|
-
var TransformField = () => /* @__PURE__ */
|
|
3519
|
+
var TransformField = () => /* @__PURE__ */ React70.createElement(StylesField, { bind: "text-transform" }, /* @__PURE__ */ React70.createElement(Grid29, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React70.createElement(Grid29, { item: true, xs: 6 }, /* @__PURE__ */ React70.createElement(ControlLabel, null, __47("Text transform", "elementor"))), /* @__PURE__ */ React70.createElement(Grid29, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React70.createElement(ToggleControl13, { options: options11 }))));
|
|
3311
3520
|
|
|
3312
3521
|
// src/components/style-sections/typography-section/word-spacing-field.tsx
|
|
3313
|
-
import * as
|
|
3522
|
+
import * as React71 from "react";
|
|
3314
3523
|
import { SizeControl as SizeControl10 } from "@elementor/editor-controls";
|
|
3315
3524
|
import { Grid as Grid30 } from "@elementor/ui";
|
|
3316
|
-
import { __ as
|
|
3525
|
+
import { __ as __48 } from "@wordpress/i18n";
|
|
3317
3526
|
var WordSpacingField = () => {
|
|
3318
|
-
return /* @__PURE__ */
|
|
3527
|
+
return /* @__PURE__ */ React71.createElement(StylesField, { bind: "word-spacing" }, /* @__PURE__ */ React71.createElement(Grid30, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React71.createElement(Grid30, { item: true, xs: 6 }, /* @__PURE__ */ React71.createElement(ControlLabel, null, __48("Word spacing", "elementor"))), /* @__PURE__ */ React71.createElement(Grid30, { item: true, xs: 6 }, /* @__PURE__ */ React71.createElement(SizeControl10, null))));
|
|
3319
3528
|
};
|
|
3320
3529
|
|
|
3321
3530
|
// src/components/style-sections/typography-section/typography-section.tsx
|
|
3322
3531
|
var TypographySection = () => {
|
|
3323
3532
|
const [columnCount] = useStylesField("column-count");
|
|
3324
|
-
const isVersion330Active =
|
|
3325
|
-
const hasMultiColumns = columnCount?.value && columnCount?.value > 1;
|
|
3326
|
-
return /* @__PURE__ */
|
|
3533
|
+
const isVersion330Active = isExperimentActive8("e_v_3_30");
|
|
3534
|
+
const hasMultiColumns = !!(columnCount?.value && columnCount?.value > 1);
|
|
3535
|
+
return /* @__PURE__ */ React72.createElement(SectionContent, null, /* @__PURE__ */ React72.createElement(FontFamilyField, null), /* @__PURE__ */ React72.createElement(FontWeightField, null), /* @__PURE__ */ React72.createElement(FontSizeField, null), /* @__PURE__ */ React72.createElement(PanelDivider, null), /* @__PURE__ */ React72.createElement(TextAlignmentField, null), /* @__PURE__ */ React72.createElement(TextColorField, null), /* @__PURE__ */ React72.createElement(CollapsibleContent, null, /* @__PURE__ */ React72.createElement(SectionContent, { sx: { pt: 2 } }, /* @__PURE__ */ React72.createElement(LineHeightField, null), /* @__PURE__ */ React72.createElement(LetterSpacingField, null), /* @__PURE__ */ React72.createElement(WordSpacingField, null), isVersion330Active && /* @__PURE__ */ React72.createElement(React72.Fragment, null, /* @__PURE__ */ React72.createElement(ColumnCountField, null), hasMultiColumns && /* @__PURE__ */ React72.createElement(ColumnGapField, null)), /* @__PURE__ */ React72.createElement(PanelDivider, null), /* @__PURE__ */ React72.createElement(TextDecorationField, null), /* @__PURE__ */ React72.createElement(TransformField, null), /* @__PURE__ */ React72.createElement(TextDirectionField, null), /* @__PURE__ */ React72.createElement(FontStyleField, null), /* @__PURE__ */ React72.createElement(TextStrokeField, null))));
|
|
3327
3536
|
};
|
|
3328
3537
|
|
|
3329
3538
|
// src/components/style-tab.tsx
|
|
@@ -3335,12 +3544,19 @@ var stickyHeaderStyles = {
|
|
|
3335
3544
|
backgroundColor: "background.default",
|
|
3336
3545
|
transition: "top 300ms ease"
|
|
3337
3546
|
};
|
|
3547
|
+
var PanelSection = ({ section }) => {
|
|
3548
|
+
const { component, name, title } = section;
|
|
3549
|
+
const tabDefaults = useDefaultPanelSettings();
|
|
3550
|
+
const SectionComponent = component;
|
|
3551
|
+
const isExpanded = isExperimentActive9(EXPERIMENTAL_FEATURES.V_3_30) ? tabDefaults.defaultSectionsExpanded.style?.includes(name) : true;
|
|
3552
|
+
return /* @__PURE__ */ React73.createElement(Section, { title, defaultExpanded: isExpanded }, /* @__PURE__ */ React73.createElement(SectionComponent, null));
|
|
3553
|
+
};
|
|
3338
3554
|
var StyleTab = () => {
|
|
3339
3555
|
const currentClassesProp = useCurrentClassesProp();
|
|
3340
3556
|
const [activeStyleDefId, setActiveStyleDefId] = useActiveStyleDefId(currentClassesProp);
|
|
3341
|
-
const [activeStyleState, setActiveStyleState] =
|
|
3557
|
+
const [activeStyleState, setActiveStyleState] = useState12(null);
|
|
3342
3558
|
const breakpoint = useActiveBreakpoint();
|
|
3343
|
-
return /* @__PURE__ */
|
|
3559
|
+
return /* @__PURE__ */ React73.createElement(ClassesPropProvider, { prop: currentClassesProp }, /* @__PURE__ */ React73.createElement(
|
|
3344
3560
|
StyleProvider,
|
|
3345
3561
|
{
|
|
3346
3562
|
meta: { breakpoint, state: activeStyleState },
|
|
@@ -3351,12 +3567,84 @@ var StyleTab = () => {
|
|
|
3351
3567
|
},
|
|
3352
3568
|
setMetaState: setActiveStyleState
|
|
3353
3569
|
},
|
|
3354
|
-
/* @__PURE__ */
|
|
3570
|
+
/* @__PURE__ */ React73.createElement(SessionStorageProvider2, { prefix: activeStyleDefId ?? "" }, /* @__PURE__ */ React73.createElement(StyleInheritanceProvider, null, /* @__PURE__ */ React73.createElement(ClassesHeader, null, /* @__PURE__ */ React73.createElement(CssClassSelector, null), /* @__PURE__ */ React73.createElement(Divider5, null)), /* @__PURE__ */ React73.createElement(SectionsList, null, /* @__PURE__ */ React73.createElement(
|
|
3571
|
+
PanelSection,
|
|
3572
|
+
{
|
|
3573
|
+
section: {
|
|
3574
|
+
component: LayoutSection,
|
|
3575
|
+
name: "Layout",
|
|
3576
|
+
title: __49("Layout", "elementor")
|
|
3577
|
+
}
|
|
3578
|
+
}
|
|
3579
|
+
), /* @__PURE__ */ React73.createElement(
|
|
3580
|
+
PanelSection,
|
|
3581
|
+
{
|
|
3582
|
+
section: {
|
|
3583
|
+
component: SpacingSection,
|
|
3584
|
+
name: "Spacing",
|
|
3585
|
+
title: __49("Spacing", "elementor")
|
|
3586
|
+
}
|
|
3587
|
+
}
|
|
3588
|
+
), /* @__PURE__ */ React73.createElement(
|
|
3589
|
+
PanelSection,
|
|
3590
|
+
{
|
|
3591
|
+
section: {
|
|
3592
|
+
component: SizeSection,
|
|
3593
|
+
name: "Size",
|
|
3594
|
+
title: __49("Size", "elementor")
|
|
3595
|
+
}
|
|
3596
|
+
}
|
|
3597
|
+
), /* @__PURE__ */ React73.createElement(
|
|
3598
|
+
PanelSection,
|
|
3599
|
+
{
|
|
3600
|
+
section: {
|
|
3601
|
+
component: PositionSection,
|
|
3602
|
+
name: "Position",
|
|
3603
|
+
title: __49("Position", "elementor")
|
|
3604
|
+
}
|
|
3605
|
+
}
|
|
3606
|
+
), /* @__PURE__ */ React73.createElement(
|
|
3607
|
+
PanelSection,
|
|
3608
|
+
{
|
|
3609
|
+
section: {
|
|
3610
|
+
component: TypographySection,
|
|
3611
|
+
name: "Typography",
|
|
3612
|
+
title: __49("Typography", "elementor")
|
|
3613
|
+
}
|
|
3614
|
+
}
|
|
3615
|
+
), /* @__PURE__ */ React73.createElement(
|
|
3616
|
+
PanelSection,
|
|
3617
|
+
{
|
|
3618
|
+
section: {
|
|
3619
|
+
component: BackgroundSection,
|
|
3620
|
+
name: "Background",
|
|
3621
|
+
title: __49("Background", "elementor")
|
|
3622
|
+
}
|
|
3623
|
+
}
|
|
3624
|
+
), /* @__PURE__ */ React73.createElement(
|
|
3625
|
+
PanelSection,
|
|
3626
|
+
{
|
|
3627
|
+
section: {
|
|
3628
|
+
component: BorderSection,
|
|
3629
|
+
name: "Border",
|
|
3630
|
+
title: __49("Border", "elementor")
|
|
3631
|
+
}
|
|
3632
|
+
}
|
|
3633
|
+
), /* @__PURE__ */ React73.createElement(
|
|
3634
|
+
PanelSection,
|
|
3635
|
+
{
|
|
3636
|
+
section: {
|
|
3637
|
+
component: EffectsSection,
|
|
3638
|
+
name: "Effects",
|
|
3639
|
+
title: __49("Effects", "elementor")
|
|
3640
|
+
}
|
|
3641
|
+
}
|
|
3642
|
+
))))
|
|
3355
3643
|
));
|
|
3356
3644
|
};
|
|
3357
3645
|
function ClassesHeader({ children }) {
|
|
3358
3646
|
const scrollDirection = useScrollDirection();
|
|
3359
|
-
return /* @__PURE__ */
|
|
3647
|
+
return /* @__PURE__ */ React73.createElement(Stack16, { sx: { ...stickyHeaderStyles, top: scrollDirection === "up" ? TABS_HEADER_HEIGHT : 0 } }, children);
|
|
3360
3648
|
}
|
|
3361
3649
|
function useCurrentClassesProp() {
|
|
3362
3650
|
const { elementType } = useElement();
|
|
@@ -3375,14 +3663,15 @@ var EditingPanelTabs = () => {
|
|
|
3375
3663
|
return (
|
|
3376
3664
|
// When switching between elements, the local states should be reset. We are using key to rerender the tabs.
|
|
3377
3665
|
// Reference: https://react.dev/learn/preserving-and-resetting-state#resetting-a-form-with-a-key
|
|
3378
|
-
/* @__PURE__ */
|
|
3666
|
+
/* @__PURE__ */ React74.createElement(Fragment9, { key: element.id }, /* @__PURE__ */ React74.createElement(PanelTabContent, null))
|
|
3379
3667
|
);
|
|
3380
3668
|
};
|
|
3381
3669
|
var PanelTabContent = () => {
|
|
3382
|
-
const
|
|
3670
|
+
const editorDefaults = useDefaultPanelSettings();
|
|
3671
|
+
const defaultComponentTab = isExperimentActive10(EXPERIMENTAL_FEATURES.V_3_30) ? editorDefaults.defaultTab : "settings";
|
|
3383
3672
|
const [currentTab, setCurrentTab] = useStateByElement("tab", defaultComponentTab);
|
|
3384
3673
|
const { getTabProps, getTabPanelProps, getTabsProps } = useTabs(currentTab);
|
|
3385
|
-
return /* @__PURE__ */
|
|
3674
|
+
return /* @__PURE__ */ React74.createElement(ScrollProvider, null, /* @__PURE__ */ React74.createElement(Stack17, { direction: "column", sx: { width: "100%" } }, /* @__PURE__ */ React74.createElement(Stack17, { sx: { ...stickyHeaderStyles, top: 0 } }, /* @__PURE__ */ React74.createElement(
|
|
3386
3675
|
Tabs,
|
|
3387
3676
|
{
|
|
3388
3677
|
variant: "fullWidth",
|
|
@@ -3394,9 +3683,9 @@ var PanelTabContent = () => {
|
|
|
3394
3683
|
setCurrentTab(newValue);
|
|
3395
3684
|
}
|
|
3396
3685
|
},
|
|
3397
|
-
/* @__PURE__ */
|
|
3398
|
-
/* @__PURE__ */
|
|
3399
|
-
), /* @__PURE__ */
|
|
3686
|
+
/* @__PURE__ */ React74.createElement(Tab, { label: __50("General", "elementor"), ...getTabProps("settings") }),
|
|
3687
|
+
/* @__PURE__ */ React74.createElement(Tab, { label: __50("Style", "elementor"), ...getTabProps("style") })
|
|
3688
|
+
), /* @__PURE__ */ React74.createElement(Divider6, null)), /* @__PURE__ */ React74.createElement(TabPanel, { ...getTabPanelProps("settings"), disablePadding: true }, /* @__PURE__ */ React74.createElement(SettingsTab, null)), /* @__PURE__ */ React74.createElement(TabPanel, { ...getTabPanelProps("style"), disablePadding: true }, /* @__PURE__ */ React74.createElement(StyleTab, null))));
|
|
3400
3689
|
};
|
|
3401
3690
|
|
|
3402
3691
|
// src/components/editing-panel.tsx
|
|
@@ -3408,8 +3697,8 @@ var EditingPanel = () => {
|
|
|
3408
3697
|
if (!element || !elementType) {
|
|
3409
3698
|
return null;
|
|
3410
3699
|
}
|
|
3411
|
-
const panelTitle =
|
|
3412
|
-
return /* @__PURE__ */
|
|
3700
|
+
const panelTitle = __51("Edit %s", "elementor").replace("%s", elementType.title);
|
|
3701
|
+
return /* @__PURE__ */ React75.createElement(ErrorBoundary, { fallback: /* @__PURE__ */ React75.createElement(EditorPanelErrorFallback, null) }, /* @__PURE__ */ React75.createElement(SessionStorageProvider3, { prefix: "elementor" }, /* @__PURE__ */ React75.createElement(ThemeProvider9, null, /* @__PURE__ */ React75.createElement(Panel, null, /* @__PURE__ */ React75.createElement(PanelHeader, null, /* @__PURE__ */ React75.createElement(PanelHeaderTitle, null, panelTitle), /* @__PURE__ */ React75.createElement(AtomIcon, { fontSize: "small", sx: { color: "text.tertiary" } })), /* @__PURE__ */ React75.createElement(PanelBody, null, /* @__PURE__ */ React75.createElement(ControlActionsProvider, { items: menuItems }, /* @__PURE__ */ React75.createElement(ControlReplacementsProvider, { replacements: controlReplacements }, /* @__PURE__ */ React75.createElement(ElementProvider, { element, elementType }, /* @__PURE__ */ React75.createElement(EditingPanelTabs, null)))))))));
|
|
3413
3702
|
};
|
|
3414
3703
|
|
|
3415
3704
|
// src/panel.ts
|
|
@@ -3461,13 +3750,13 @@ var EditingPanelHooks = () => {
|
|
|
3461
3750
|
import { settingsTransformersRegistry, styleTransformersRegistry as styleTransformersRegistry2 } from "@elementor/editor-canvas";
|
|
3462
3751
|
|
|
3463
3752
|
// src/dynamics/components/dynamic-selection-control.tsx
|
|
3464
|
-
import * as
|
|
3753
|
+
import * as React79 from "react";
|
|
3465
3754
|
import { ControlFormLabel as ControlFormLabel5, useBoundProp as useBoundProp5 } from "@elementor/editor-controls";
|
|
3466
3755
|
import { DatabaseIcon as DatabaseIcon2, SettingsIcon, XIcon as XIcon2 } from "@elementor/icons";
|
|
3467
3756
|
import {
|
|
3468
3757
|
bindPopover as bindPopover2,
|
|
3469
3758
|
bindTrigger as bindTrigger2,
|
|
3470
|
-
Box as
|
|
3759
|
+
Box as Box6,
|
|
3471
3760
|
Divider as Divider8,
|
|
3472
3761
|
Grid as Grid31,
|
|
3473
3762
|
IconButton as IconButton4,
|
|
@@ -3477,17 +3766,17 @@ import {
|
|
|
3477
3766
|
Tab as Tab2,
|
|
3478
3767
|
TabPanel as TabPanel2,
|
|
3479
3768
|
Tabs as Tabs2,
|
|
3480
|
-
Typography as
|
|
3769
|
+
Typography as Typography6,
|
|
3481
3770
|
UnstableTag as Tag,
|
|
3482
3771
|
usePopupState as usePopupState3,
|
|
3483
3772
|
useTabs as useTabs2
|
|
3484
3773
|
} from "@elementor/ui";
|
|
3485
|
-
import { __ as
|
|
3774
|
+
import { __ as __53 } from "@wordpress/i18n";
|
|
3486
3775
|
|
|
3487
3776
|
// src/components/popover-content.tsx
|
|
3488
|
-
import * as
|
|
3777
|
+
import * as React76 from "react";
|
|
3489
3778
|
import { Stack as Stack18 } from "@elementor/ui";
|
|
3490
|
-
var PopoverContent = ({ alignItems, gap = 1.5, p, children }) => /* @__PURE__ */
|
|
3779
|
+
var PopoverContent = ({ alignItems, gap = 1.5, p, children }) => /* @__PURE__ */ React76.createElement(Stack18, { alignItems, gap, p }, children);
|
|
3491
3780
|
|
|
3492
3781
|
// src/hooks/use-persist-dynamic-value.ts
|
|
3493
3782
|
import { useSessionStorage as useSessionStorage2 } from "@elementor/session";
|
|
@@ -3498,14 +3787,14 @@ var usePersistDynamicValue = (propKey) => {
|
|
|
3498
3787
|
};
|
|
3499
3788
|
|
|
3500
3789
|
// src/dynamics/dynamic-control.tsx
|
|
3501
|
-
import * as
|
|
3790
|
+
import * as React77 from "react";
|
|
3502
3791
|
import { PropKeyProvider as PropKeyProvider3, PropProvider as PropProvider3, useBoundProp as useBoundProp3 } from "@elementor/editor-controls";
|
|
3503
3792
|
|
|
3504
3793
|
// src/dynamics/hooks/use-dynamic-tag.ts
|
|
3505
|
-
import { useMemo as
|
|
3794
|
+
import { useMemo as useMemo8 } from "react";
|
|
3506
3795
|
|
|
3507
3796
|
// src/dynamics/hooks/use-prop-dynamic-tags.ts
|
|
3508
|
-
import { useMemo as
|
|
3797
|
+
import { useMemo as useMemo7 } from "react";
|
|
3509
3798
|
import { useBoundProp as useBoundProp2 } from "@elementor/editor-controls";
|
|
3510
3799
|
|
|
3511
3800
|
// src/dynamics/sync/get-elementor-config.ts
|
|
@@ -3560,7 +3849,7 @@ var usePropDynamicTags = () => {
|
|
|
3560
3849
|
const propDynamicType = getDynamicPropType(propType);
|
|
3561
3850
|
categories = propDynamicType?.settings.categories || [];
|
|
3562
3851
|
}
|
|
3563
|
-
return
|
|
3852
|
+
return useMemo7(() => getDynamicTagsByCategories(categories), [categories.join()]);
|
|
3564
3853
|
};
|
|
3565
3854
|
var getDynamicTagsByCategories = (categories) => {
|
|
3566
3855
|
const dynamicTags = getAtomicDynamicTags();
|
|
@@ -3576,7 +3865,7 @@ var getDynamicTagsByCategories = (categories) => {
|
|
|
3576
3865
|
// src/dynamics/hooks/use-dynamic-tag.ts
|
|
3577
3866
|
var useDynamicTag = (tagName) => {
|
|
3578
3867
|
const dynamicTags = usePropDynamicTags();
|
|
3579
|
-
return
|
|
3868
|
+
return useMemo8(() => dynamicTags.find((tag) => tag.name === tagName) ?? null, [dynamicTags, tagName]);
|
|
3580
3869
|
};
|
|
3581
3870
|
|
|
3582
3871
|
// src/dynamics/dynamic-control.tsx
|
|
@@ -3600,30 +3889,30 @@ var DynamicControl = ({ bind, children }) => {
|
|
|
3600
3889
|
});
|
|
3601
3890
|
};
|
|
3602
3891
|
const propType = createTopLevelOjectType({ schema: dynamicTag.props_schema });
|
|
3603
|
-
return /* @__PURE__ */
|
|
3892
|
+
return /* @__PURE__ */ React77.createElement(PropProvider3, { propType, setValue: setDynamicValue, value: { [bind]: dynamicValue } }, /* @__PURE__ */ React77.createElement(PropKeyProvider3, { bind }, children));
|
|
3604
3893
|
};
|
|
3605
3894
|
|
|
3606
3895
|
// src/dynamics/components/dynamic-selection.tsx
|
|
3607
|
-
import * as
|
|
3608
|
-
import { Fragment as Fragment10, useState as
|
|
3896
|
+
import * as React78 from "react";
|
|
3897
|
+
import { Fragment as Fragment10, useState as useState13 } from "react";
|
|
3609
3898
|
import { useBoundProp as useBoundProp4 } from "@elementor/editor-controls";
|
|
3610
3899
|
import { DatabaseIcon, SearchIcon } from "@elementor/icons";
|
|
3611
3900
|
import {
|
|
3612
|
-
Box as
|
|
3901
|
+
Box as Box5,
|
|
3613
3902
|
Divider as Divider7,
|
|
3614
3903
|
InputAdornment,
|
|
3615
|
-
Link,
|
|
3904
|
+
Link as Link2,
|
|
3616
3905
|
MenuItem,
|
|
3617
3906
|
MenuList,
|
|
3618
3907
|
MenuSubheader as MenuSubheader2,
|
|
3619
3908
|
Stack as Stack19,
|
|
3620
3909
|
TextField as TextField2,
|
|
3621
|
-
Typography as
|
|
3910
|
+
Typography as Typography5
|
|
3622
3911
|
} from "@elementor/ui";
|
|
3623
|
-
import { __ as
|
|
3912
|
+
import { __ as __52 } from "@wordpress/i18n";
|
|
3624
3913
|
var SIZE3 = "tiny";
|
|
3625
3914
|
var DynamicSelection = ({ onSelect }) => {
|
|
3626
|
-
const [searchValue, setSearchValue] =
|
|
3915
|
+
const [searchValue, setSearchValue] = useState13("");
|
|
3627
3916
|
const { groups: dynamicGroups } = getAtomicDynamicTags() || {};
|
|
3628
3917
|
const { value: anyValue } = useBoundProp4();
|
|
3629
3918
|
const { bind, value: dynamicValue, setValue } = useBoundProp4(dynamicPropTypeUtil);
|
|
@@ -3641,19 +3930,19 @@ var DynamicSelection = ({ onSelect }) => {
|
|
|
3641
3930
|
setValue({ name: value, settings: { label } });
|
|
3642
3931
|
onSelect?.();
|
|
3643
3932
|
};
|
|
3644
|
-
return /* @__PURE__ */
|
|
3933
|
+
return /* @__PURE__ */ React78.createElement(Stack19, null, hasNoDynamicTags ? /* @__PURE__ */ React78.createElement(NoDynamicTags, null) : /* @__PURE__ */ React78.createElement(Fragment10, null, /* @__PURE__ */ React78.createElement(Box5, { px: 1.5, pb: 1 }, /* @__PURE__ */ React78.createElement(
|
|
3645
3934
|
TextField2,
|
|
3646
3935
|
{
|
|
3647
3936
|
fullWidth: true,
|
|
3648
3937
|
size: SIZE3,
|
|
3649
3938
|
value: searchValue,
|
|
3650
3939
|
onChange: handleSearch,
|
|
3651
|
-
placeholder:
|
|
3940
|
+
placeholder: __52("Search dynamic tags\u2026", "elementor"),
|
|
3652
3941
|
InputProps: {
|
|
3653
|
-
startAdornment: /* @__PURE__ */
|
|
3942
|
+
startAdornment: /* @__PURE__ */ React78.createElement(InputAdornment, { position: "start" }, /* @__PURE__ */ React78.createElement(SearchIcon, { fontSize: SIZE3 }))
|
|
3654
3943
|
}
|
|
3655
3944
|
}
|
|
3656
|
-
)), /* @__PURE__ */
|
|
3945
|
+
)), /* @__PURE__ */ React78.createElement(Divider7, null), /* @__PURE__ */ React78.createElement(Box5, { sx: { overflowY: "auto", height: 260, width: 220 } }, options12.length > 0 ? /* @__PURE__ */ React78.createElement(MenuList, { role: "listbox", tabIndex: 0 }, options12.map(([category, items3], index) => /* @__PURE__ */ React78.createElement(Fragment10, { key: index }, /* @__PURE__ */ React78.createElement(
|
|
3657
3946
|
MenuSubheader2,
|
|
3658
3947
|
{
|
|
3659
3948
|
sx: { px: 1.5, typography: "caption", color: "text.tertiary" }
|
|
@@ -3661,7 +3950,7 @@ var DynamicSelection = ({ onSelect }) => {
|
|
|
3661
3950
|
dynamicGroups?.[category]?.title || category
|
|
3662
3951
|
), items3.map(({ value, label: tagLabel }) => {
|
|
3663
3952
|
const isSelected = isCurrentValueDynamic && value === dynamicValue?.name;
|
|
3664
|
-
return /* @__PURE__ */
|
|
3953
|
+
return /* @__PURE__ */ React78.createElement(
|
|
3665
3954
|
MenuItem,
|
|
3666
3955
|
{
|
|
3667
3956
|
key: value,
|
|
@@ -3672,9 +3961,9 @@ var DynamicSelection = ({ onSelect }) => {
|
|
|
3672
3961
|
},
|
|
3673
3962
|
tagLabel
|
|
3674
3963
|
);
|
|
3675
|
-
})))) : /* @__PURE__ */
|
|
3964
|
+
})))) : /* @__PURE__ */ React78.createElement(NoResults, { searchValue, onClear: () => setSearchValue("") }))));
|
|
3676
3965
|
};
|
|
3677
|
-
var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */
|
|
3966
|
+
var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */ React78.createElement(
|
|
3678
3967
|
Stack19,
|
|
3679
3968
|
{
|
|
3680
3969
|
gap: 1,
|
|
@@ -3685,11 +3974,11 @@ var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */ React77.createElem
|
|
|
3685
3974
|
color: "text.secondary",
|
|
3686
3975
|
sx: { pb: 3.5 }
|
|
3687
3976
|
},
|
|
3688
|
-
/* @__PURE__ */
|
|
3689
|
-
/* @__PURE__ */
|
|
3690
|
-
/* @__PURE__ */
|
|
3977
|
+
/* @__PURE__ */ React78.createElement(DatabaseIcon, { fontSize: "large" }),
|
|
3978
|
+
/* @__PURE__ */ React78.createElement(Typography5, { align: "center", variant: "subtitle2" }, __52("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React78.createElement("br", null), "\u201C", searchValue, "\u201D."),
|
|
3979
|
+
/* @__PURE__ */ React78.createElement(Typography5, { align: "center", variant: "caption" }, __52("Try something else.", "elementor"), "\xA0", /* @__PURE__ */ React78.createElement(Link2, { color: "text.secondary", variant: "caption", component: "button", onClick: onClear }, __52("Clear & try again", "elementor")))
|
|
3691
3980
|
);
|
|
3692
|
-
var NoDynamicTags = () => /* @__PURE__ */
|
|
3981
|
+
var NoDynamicTags = () => /* @__PURE__ */ React78.createElement(Box5, { sx: { overflowY: "hidden", height: 297, width: 220 } }, /* @__PURE__ */ React78.createElement(Divider7, null), /* @__PURE__ */ React78.createElement(
|
|
3693
3982
|
Stack19,
|
|
3694
3983
|
{
|
|
3695
3984
|
gap: 1,
|
|
@@ -3700,9 +3989,9 @@ var NoDynamicTags = () => /* @__PURE__ */ React77.createElement(Box4, { sx: { ov
|
|
|
3700
3989
|
color: "text.secondary",
|
|
3701
3990
|
sx: { pb: 3.5 }
|
|
3702
3991
|
},
|
|
3703
|
-
/* @__PURE__ */
|
|
3704
|
-
/* @__PURE__ */
|
|
3705
|
-
/* @__PURE__ */
|
|
3992
|
+
/* @__PURE__ */ React78.createElement(DatabaseIcon, { fontSize: "large" }),
|
|
3993
|
+
/* @__PURE__ */ React78.createElement(Typography5, { align: "center", variant: "subtitle2" }, __52("Streamline your workflow with dynamic tags", "elementor")),
|
|
3994
|
+
/* @__PURE__ */ React78.createElement(Typography5, { align: "center", variant: "caption" }, __52("You\u2019ll need Elementor Pro to use this feature.", "elementor"))
|
|
3706
3995
|
));
|
|
3707
3996
|
var useFilteredOptions = (searchValue) => {
|
|
3708
3997
|
const dynamicTags = usePropDynamicTags();
|
|
@@ -3735,25 +4024,25 @@ var DynamicSelectionControl = () => {
|
|
|
3735
4024
|
if (!dynamicTag) {
|
|
3736
4025
|
throw new Error(`Dynamic tag ${tagName} not found`);
|
|
3737
4026
|
}
|
|
3738
|
-
return /* @__PURE__ */
|
|
4027
|
+
return /* @__PURE__ */ React79.createElement(Box6, null, /* @__PURE__ */ React79.createElement(
|
|
3739
4028
|
Tag,
|
|
3740
4029
|
{
|
|
3741
4030
|
fullWidth: true,
|
|
3742
4031
|
showActionsOnHover: true,
|
|
3743
4032
|
label: dynamicTag.label,
|
|
3744
|
-
startIcon: /* @__PURE__ */
|
|
4033
|
+
startIcon: /* @__PURE__ */ React79.createElement(DatabaseIcon2, { fontSize: SIZE4 }),
|
|
3745
4034
|
...bindTrigger2(selectionPopoverState),
|
|
3746
|
-
actions: /* @__PURE__ */
|
|
4035
|
+
actions: /* @__PURE__ */ React79.createElement(React79.Fragment, null, /* @__PURE__ */ React79.createElement(DynamicSettingsPopover, { dynamicTag }), /* @__PURE__ */ React79.createElement(
|
|
3747
4036
|
IconButton4,
|
|
3748
4037
|
{
|
|
3749
4038
|
size: SIZE4,
|
|
3750
4039
|
onClick: removeDynamicTag,
|
|
3751
|
-
"aria-label":
|
|
4040
|
+
"aria-label": __53("Remove dynamic value", "elementor")
|
|
3752
4041
|
},
|
|
3753
|
-
/* @__PURE__ */
|
|
4042
|
+
/* @__PURE__ */ React79.createElement(XIcon2, { fontSize: SIZE4 })
|
|
3754
4043
|
))
|
|
3755
4044
|
}
|
|
3756
|
-
), /* @__PURE__ */
|
|
4045
|
+
), /* @__PURE__ */ React79.createElement(
|
|
3757
4046
|
Popover2,
|
|
3758
4047
|
{
|
|
3759
4048
|
disablePortal: true,
|
|
@@ -3761,7 +4050,7 @@ var DynamicSelectionControl = () => {
|
|
|
3761
4050
|
anchorOrigin: { vertical: "bottom", horizontal: "left" },
|
|
3762
4051
|
...bindPopover2(selectionPopoverState)
|
|
3763
4052
|
},
|
|
3764
|
-
/* @__PURE__ */
|
|
4053
|
+
/* @__PURE__ */ React79.createElement(Stack20, null, /* @__PURE__ */ React79.createElement(Stack20, { direction: "row", alignItems: "center", pl: 1.5, pr: 0.5, py: 1.5 }, /* @__PURE__ */ React79.createElement(DatabaseIcon2, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React79.createElement(Typography6, { variant: "subtitle2" }, __53("Dynamic tags", "elementor")), /* @__PURE__ */ React79.createElement(IconButton4, { size: SIZE4, sx: { ml: "auto" }, onClick: selectionPopoverState.close }, /* @__PURE__ */ React79.createElement(XIcon2, { fontSize: SIZE4 }))), /* @__PURE__ */ React79.createElement(DynamicSelection, { onSelect: selectionPopoverState.close }))
|
|
3765
4054
|
));
|
|
3766
4055
|
};
|
|
3767
4056
|
var DynamicSettingsPopover = ({ dynamicTag }) => {
|
|
@@ -3770,7 +4059,7 @@ var DynamicSettingsPopover = ({ dynamicTag }) => {
|
|
|
3770
4059
|
if (!hasDynamicSettings) {
|
|
3771
4060
|
return null;
|
|
3772
4061
|
}
|
|
3773
|
-
return /* @__PURE__ */
|
|
4062
|
+
return /* @__PURE__ */ React79.createElement(React79.Fragment, null, /* @__PURE__ */ React79.createElement(IconButton4, { size: SIZE4, ...bindTrigger2(popupState), "aria-label": __53("Settings", "elementor") }, /* @__PURE__ */ React79.createElement(SettingsIcon, { fontSize: SIZE4 })), /* @__PURE__ */ React79.createElement(
|
|
3774
4063
|
Popover2,
|
|
3775
4064
|
{
|
|
3776
4065
|
disablePortal: true,
|
|
@@ -3778,7 +4067,7 @@ var DynamicSettingsPopover = ({ dynamicTag }) => {
|
|
|
3778
4067
|
anchorOrigin: { vertical: "bottom", horizontal: "center" },
|
|
3779
4068
|
...bindPopover2(popupState)
|
|
3780
4069
|
},
|
|
3781
|
-
/* @__PURE__ */
|
|
4070
|
+
/* @__PURE__ */ React79.createElement(Paper, { component: Stack20, sx: { minHeight: "300px", width: "220px" } }, /* @__PURE__ */ React79.createElement(Stack20, { direction: "row", alignItems: "center", px: 1.5, pt: 2, pb: 1 }, /* @__PURE__ */ React79.createElement(DatabaseIcon2, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React79.createElement(Typography6, { variant: "subtitle2" }, dynamicTag.label), /* @__PURE__ */ React79.createElement(IconButton4, { sx: { ml: "auto" }, size: SIZE4, onClick: popupState.close }, /* @__PURE__ */ React79.createElement(XIcon2, { fontSize: SIZE4 }))), /* @__PURE__ */ React79.createElement(DynamicSettings, { controls: dynamicTag.atomic_controls }))
|
|
3782
4071
|
));
|
|
3783
4072
|
};
|
|
3784
4073
|
var DynamicSettings = ({ controls }) => {
|
|
@@ -3787,10 +4076,10 @@ var DynamicSettings = ({ controls }) => {
|
|
|
3787
4076
|
if (!tabs.length) {
|
|
3788
4077
|
return null;
|
|
3789
4078
|
}
|
|
3790
|
-
return /* @__PURE__ */
|
|
3791
|
-
return /* @__PURE__ */
|
|
4079
|
+
return /* @__PURE__ */ React79.createElement(React79.Fragment, null, /* @__PURE__ */ React79.createElement(Tabs2, { size: "small", variant: "fullWidth", ...getTabsProps() }, tabs.map(({ value }, index) => /* @__PURE__ */ React79.createElement(Tab2, { key: index, label: value.label, sx: { px: 1, py: 0.5 }, ...getTabProps(index) }))), /* @__PURE__ */ React79.createElement(Divider8, null), tabs.map(({ value }, index) => {
|
|
4080
|
+
return /* @__PURE__ */ React79.createElement(TabPanel2, { key: index, sx: { flexGrow: 1, py: 0 }, ...getTabPanelProps(index) }, /* @__PURE__ */ React79.createElement(PopoverContent, { p: 2, gap: 2 }, value.items.map((item) => {
|
|
3792
4081
|
if (item.type === "control") {
|
|
3793
|
-
return /* @__PURE__ */
|
|
4082
|
+
return /* @__PURE__ */ React79.createElement(Control3, { key: item.value.bind, control: item.value });
|
|
3794
4083
|
}
|
|
3795
4084
|
return null;
|
|
3796
4085
|
})));
|
|
@@ -3800,7 +4089,7 @@ var Control3 = ({ control }) => {
|
|
|
3800
4089
|
if (!getControl(control.type)) {
|
|
3801
4090
|
return null;
|
|
3802
4091
|
}
|
|
3803
|
-
return /* @__PURE__ */
|
|
4092
|
+
return /* @__PURE__ */ React79.createElement(DynamicControl, { bind: control.bind }, /* @__PURE__ */ React79.createElement(Grid31, { container: true, gap: 0.75 }, control.label ? /* @__PURE__ */ React79.createElement(Grid31, { item: true, xs: 12 }, /* @__PURE__ */ React79.createElement(ControlFormLabel5, null, control.label)) : null, /* @__PURE__ */ React79.createElement(Grid31, { item: true, xs: 12 }, /* @__PURE__ */ React79.createElement(Control, { type: control.type, props: control.props }))));
|
|
3804
4093
|
};
|
|
3805
4094
|
|
|
3806
4095
|
// src/dynamics/dynamic-transformer.ts
|
|
@@ -3853,18 +4142,18 @@ function getDynamicValue(name, settings) {
|
|
|
3853
4142
|
}
|
|
3854
4143
|
|
|
3855
4144
|
// src/dynamics/hooks/use-prop-dynamic-action.tsx
|
|
3856
|
-
import * as
|
|
4145
|
+
import * as React80 from "react";
|
|
3857
4146
|
import { useBoundProp as useBoundProp6 } from "@elementor/editor-controls";
|
|
3858
4147
|
import { DatabaseIcon as DatabaseIcon3 } from "@elementor/icons";
|
|
3859
|
-
import { __ as
|
|
4148
|
+
import { __ as __54 } from "@wordpress/i18n";
|
|
3860
4149
|
var usePropDynamicAction = () => {
|
|
3861
4150
|
const { propType } = useBoundProp6();
|
|
3862
4151
|
const visible = !!propType && supportsDynamic(propType);
|
|
3863
4152
|
return {
|
|
3864
4153
|
visible,
|
|
3865
4154
|
icon: DatabaseIcon3,
|
|
3866
|
-
title:
|
|
3867
|
-
popoverContent: ({ closePopover }) => /* @__PURE__ */
|
|
4155
|
+
title: __54("Dynamic tags", "elementor"),
|
|
4156
|
+
popoverContent: ({ closePopover }) => /* @__PURE__ */ React80.createElement(DynamicSelection, { onSelect: closePopover })
|
|
3868
4157
|
};
|
|
3869
4158
|
};
|
|
3870
4159
|
|