@elementor/editor-editing-panel 1.2.0 → 1.4.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 +48 -0
- package/dist/index.js +852 -615
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +790 -544
- package/dist/index.mjs.map +1 -1
- package/package.json +13 -11
- package/src/components/conditional-tooltip-wrapper.tsx +52 -0
- package/src/components/css-class-selector.tsx +59 -19
- package/src/components/multi-combobox/types.ts +1 -0
- package/src/components/style-sections/border-section/border-radius-field.tsx +4 -4
- package/src/components/style-sections/border-section/border-width-field.tsx +4 -4
- package/src/components/style-sections/layout-section/align-items-field.tsx +40 -60
- package/src/components/style-sections/layout-section/align-self-child-field.tsx +72 -0
- package/src/components/style-sections/layout-section/flex-direction-field.tsx +2 -2
- package/src/components/style-sections/layout-section/flex-order-field.tsx +14 -8
- package/src/components/style-sections/layout-section/flex-size-field.tsx +164 -0
- package/src/components/style-sections/layout-section/gap-control-field.tsx +18 -0
- package/src/components/style-sections/layout-section/justify-content-field.tsx +51 -78
- package/src/components/style-sections/layout-section/layout-section.tsx +9 -2
- package/src/components/style-sections/layout-section/utils/rotated-icon.tsx +52 -0
- package/src/components/style-sections/layout-section/wrap-field.tsx +1 -1
- package/src/components/style-sections/position-section/position-section.tsx +3 -3
- package/src/components/style-sections/typography-section/line-height-field.tsx +21 -0
- package/src/components/style-sections/typography-section/text-style-field.tsx +31 -8
- package/src/components/style-sections/typography-section/typography-section.tsx +3 -1
- package/src/components/style-tab.tsx +2 -11
- package/src/contexts/style-context.tsx +2 -2
- package/src/controls-registry/controls-registry.tsx +4 -0
- package/src/dynamics/components/dynamic-selection-control.tsx +8 -5
- package/src/dynamics/components/dynamic-selection.tsx +10 -8
- package/src/dynamics/dynamic-control.tsx +9 -11
- package/src/dynamics/utils.ts +20 -3
- package/src/hooks/use-style-prop-history.ts +1 -1
- package/src/hooks/use-styles-field.ts +2 -0
package/dist/index.js
CHANGED
|
@@ -28,13 +28,13 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
29
|
|
|
30
30
|
// src/index.ts
|
|
31
|
-
var
|
|
32
|
-
__export(
|
|
31
|
+
var index_exports = {};
|
|
32
|
+
__export(index_exports, {
|
|
33
33
|
replaceControl: () => replaceControl,
|
|
34
|
-
useBoundProp: () =>
|
|
34
|
+
useBoundProp: () => import_editor_controls47.useBoundProp
|
|
35
35
|
});
|
|
36
|
-
module.exports = __toCommonJS(
|
|
37
|
-
var
|
|
36
|
+
module.exports = __toCommonJS(index_exports);
|
|
37
|
+
var import_editor_controls47 = require("@elementor/editor-controls");
|
|
38
38
|
|
|
39
39
|
// src/control-replacement.tsx
|
|
40
40
|
var import_editor_controls = require("@elementor/editor-controls");
|
|
@@ -46,7 +46,7 @@ var import_editor_panels3 = require("@elementor/editor-panels");
|
|
|
46
46
|
var import_editor_v1_adapters3 = require("@elementor/editor-v1-adapters");
|
|
47
47
|
|
|
48
48
|
// src/hooks/use-close-editor-panel.ts
|
|
49
|
-
var
|
|
49
|
+
var import_react16 = require("react");
|
|
50
50
|
var import_editor_elements8 = require("@elementor/editor-elements");
|
|
51
51
|
var import_editor_v1_adapters = require("@elementor/editor-v1-adapters");
|
|
52
52
|
|
|
@@ -54,12 +54,12 @@ var import_editor_v1_adapters = require("@elementor/editor-v1-adapters");
|
|
|
54
54
|
var import_editor_panels2 = require("@elementor/editor-panels");
|
|
55
55
|
|
|
56
56
|
// src/components/editing-panel.tsx
|
|
57
|
-
var
|
|
58
|
-
var
|
|
57
|
+
var React60 = __toESM(require("react"));
|
|
58
|
+
var import_editor_controls42 = require("@elementor/editor-controls");
|
|
59
59
|
var import_editor_elements6 = require("@elementor/editor-elements");
|
|
60
60
|
var import_editor_panels = require("@elementor/editor-panels");
|
|
61
|
-
var
|
|
62
|
-
var
|
|
61
|
+
var import_ui52 = require("@elementor/ui");
|
|
62
|
+
var import_i18n40 = require("@wordpress/i18n");
|
|
63
63
|
|
|
64
64
|
// src/contexts/element-context.tsx
|
|
65
65
|
var React = __toESM(require("react"));
|
|
@@ -130,10 +130,10 @@ function EditorPanelErrorFallback() {
|
|
|
130
130
|
}
|
|
131
131
|
|
|
132
132
|
// src/components/editing-panel-tabs.tsx
|
|
133
|
-
var
|
|
134
|
-
var
|
|
135
|
-
var
|
|
136
|
-
var
|
|
133
|
+
var React59 = __toESM(require("react"));
|
|
134
|
+
var import_react15 = require("react");
|
|
135
|
+
var import_ui51 = require("@elementor/ui");
|
|
136
|
+
var import_i18n39 = require("@wordpress/i18n");
|
|
137
137
|
|
|
138
138
|
// src/components/settings-tab.tsx
|
|
139
139
|
var React9 = __toESM(require("react"));
|
|
@@ -150,7 +150,9 @@ var controlTypes = {
|
|
|
150
150
|
text: { component: import_editor_controls2.TextControl, layout: "two-columns" },
|
|
151
151
|
textarea: { component: import_editor_controls2.TextAreaControl, layout: "full" },
|
|
152
152
|
size: { component: import_editor_controls2.SizeControl, layout: "two-columns" },
|
|
153
|
-
select: { component: import_editor_controls2.SelectControl, layout: "two-columns" }
|
|
153
|
+
select: { component: import_editor_controls2.SelectControl, layout: "two-columns" },
|
|
154
|
+
link: { component: import_editor_controls2.LinkControl, layout: "full" },
|
|
155
|
+
url: { component: import_editor_controls2.UrlControl, layout: "full" }
|
|
154
156
|
};
|
|
155
157
|
var getControlByType = (type) => controlTypes[type]?.component;
|
|
156
158
|
var getLayoutByType = (type) => controlTypes[type].layout;
|
|
@@ -283,13 +285,12 @@ var Control2 = ({ control }) => {
|
|
|
283
285
|
};
|
|
284
286
|
|
|
285
287
|
// src/components/style-tab.tsx
|
|
286
|
-
var
|
|
287
|
-
var
|
|
288
|
+
var React58 = __toESM(require("react"));
|
|
289
|
+
var import_react14 = require("react");
|
|
288
290
|
var import_editor_elements5 = require("@elementor/editor-elements");
|
|
289
291
|
var import_editor_responsive = require("@elementor/editor-responsive");
|
|
290
|
-
var
|
|
291
|
-
var
|
|
292
|
-
var import_i18n33 = require("@wordpress/i18n");
|
|
292
|
+
var import_ui50 = require("@elementor/ui");
|
|
293
|
+
var import_i18n38 = require("@wordpress/i18n");
|
|
293
294
|
|
|
294
295
|
// src/contexts/classes-prop-context.tsx
|
|
295
296
|
var React10 = __toESM(require("react"));
|
|
@@ -322,18 +323,55 @@ function useStyle() {
|
|
|
322
323
|
}
|
|
323
324
|
|
|
324
325
|
// src/components/css-class-selector.tsx
|
|
325
|
-
var
|
|
326
|
+
var React14 = __toESM(require("react"));
|
|
326
327
|
var import_editor_elements2 = require("@elementor/editor-elements");
|
|
327
328
|
var import_editor_props = require("@elementor/editor-props");
|
|
328
|
-
var
|
|
329
|
+
var import_editor_styles_repository = require("@elementor/editor-styles-repository");
|
|
330
|
+
var import_ui10 = require("@elementor/ui");
|
|
329
331
|
var import_i18n = require("@wordpress/i18n");
|
|
330
332
|
|
|
331
|
-
// src/components/
|
|
333
|
+
// src/components/conditional-tooltip-wrapper.tsx
|
|
334
|
+
var import_react6 = require("react");
|
|
332
335
|
var React12 = __toESM(require("react"));
|
|
333
|
-
var
|
|
336
|
+
var import_ui7 = require("@elementor/ui");
|
|
337
|
+
var ConditionalTooltipWrapper = ({ maxWidth, title }) => {
|
|
338
|
+
const elRef = (0, import_react6.useRef)(null);
|
|
339
|
+
const [isOverflown, setIsOverflown] = (0, import_react6.useState)(false);
|
|
340
|
+
(0, import_react6.useEffect)(() => {
|
|
341
|
+
const onResize = () => {
|
|
342
|
+
const element = elRef.current;
|
|
343
|
+
if (element) {
|
|
344
|
+
setIsOverflown(element.scrollWidth > element.clientWidth);
|
|
345
|
+
}
|
|
346
|
+
};
|
|
347
|
+
onResize();
|
|
348
|
+
window.addEventListener("resize", onResize);
|
|
349
|
+
return () => {
|
|
350
|
+
window.removeEventListener("resize", onResize);
|
|
351
|
+
};
|
|
352
|
+
}, []);
|
|
353
|
+
if (isOverflown) {
|
|
354
|
+
return /* @__PURE__ */ React12.createElement(import_ui7.Tooltip, { title, placement: "top" }, /* @__PURE__ */ React12.createElement(Content, { maxWidth, ref: elRef, title }));
|
|
355
|
+
}
|
|
356
|
+
return /* @__PURE__ */ React12.createElement(Content, { maxWidth, ref: elRef, title });
|
|
357
|
+
};
|
|
358
|
+
var Content = React12.forwardRef(({ maxWidth, title, ...rest }, ref) => /* @__PURE__ */ React12.createElement(
|
|
359
|
+
import_ui7.Box,
|
|
360
|
+
{
|
|
361
|
+
ref,
|
|
362
|
+
position: "relative",
|
|
363
|
+
sx: { overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap", maxWidth },
|
|
364
|
+
...rest
|
|
365
|
+
},
|
|
366
|
+
title
|
|
367
|
+
));
|
|
368
|
+
|
|
369
|
+
// src/components/multi-combobox/multi-combobox.tsx
|
|
370
|
+
var React13 = __toESM(require("react"));
|
|
371
|
+
var import_ui9 = require("@elementor/ui");
|
|
334
372
|
|
|
335
373
|
// src/components/multi-combobox/use-combobox-actions.ts
|
|
336
|
-
var
|
|
374
|
+
var import_ui8 = require("@elementor/ui");
|
|
337
375
|
var useComboboxActions = (applied, actions, optionsLabel, onSelect) => ({
|
|
338
376
|
action: {
|
|
339
377
|
is: (opt) => typeof opt !== "string" && "action" in opt,
|
|
@@ -367,7 +405,7 @@ var useComboboxActions = (applied, actions, optionsLabel, onSelect) => ({
|
|
|
367
405
|
}
|
|
368
406
|
}
|
|
369
407
|
});
|
|
370
|
-
var filter = (0,
|
|
408
|
+
var filter = (0, import_ui8.createFilterOptions)();
|
|
371
409
|
var createActionOption = (groupLabel, action, inputValue) => ({
|
|
372
410
|
value: "",
|
|
373
411
|
label: inputValue,
|
|
@@ -382,7 +420,7 @@ var createActionOption = (groupLabel, action, inputValue) => ({
|
|
|
382
420
|
var MultiCombobox = ({
|
|
383
421
|
actions = {},
|
|
384
422
|
selected,
|
|
385
|
-
options:
|
|
423
|
+
options: options10,
|
|
386
424
|
optionsLabel,
|
|
387
425
|
onSelect,
|
|
388
426
|
onCreate,
|
|
@@ -395,8 +433,8 @@ var MultiCombobox = ({
|
|
|
395
433
|
optionsLabel,
|
|
396
434
|
onSelect
|
|
397
435
|
);
|
|
398
|
-
return /* @__PURE__ */
|
|
399
|
-
|
|
436
|
+
return /* @__PURE__ */ React13.createElement(
|
|
437
|
+
import_ui9.Autocomplete,
|
|
400
438
|
{
|
|
401
439
|
...props,
|
|
402
440
|
freeSolo: true,
|
|
@@ -406,10 +444,10 @@ var MultiCombobox = ({
|
|
|
406
444
|
disableClearable: true,
|
|
407
445
|
handleHomeEndKeys: true,
|
|
408
446
|
value: selected,
|
|
409
|
-
options:
|
|
447
|
+
options: options10,
|
|
410
448
|
renderGroup,
|
|
411
|
-
renderInput: (params) => /* @__PURE__ */
|
|
412
|
-
getLimitTagsText: (more) => /* @__PURE__ */
|
|
449
|
+
renderInput: (params) => /* @__PURE__ */ React13.createElement(import_ui9.TextField, { ...params }),
|
|
450
|
+
getLimitTagsText: (more) => /* @__PURE__ */ React13.createElement(import_ui9.Chip, { size: "tiny", variant: "standard", label: `+${more}`, clickable: true }),
|
|
413
451
|
onChange: (_, selectedOrTypedValue, reason) => {
|
|
414
452
|
if (reason === "createOption") {
|
|
415
453
|
const typedValue = selectedOrTypedValue.find((option) => typeof option === "string");
|
|
@@ -420,7 +458,7 @@ var MultiCombobox = ({
|
|
|
420
458
|
return actionProps.onChange(action);
|
|
421
459
|
}
|
|
422
460
|
const selectedValues = selectedOrTypedValue.filter((v) => typeof v !== "string");
|
|
423
|
-
const fixedValues =
|
|
461
|
+
const fixedValues = options10.filter((option) => option.fixed);
|
|
424
462
|
optionProps.onChange([.../* @__PURE__ */ new Set([...fixedValues, ...selectedValues])]);
|
|
425
463
|
},
|
|
426
464
|
getOptionLabel: (option) => {
|
|
@@ -441,39 +479,46 @@ var MultiCombobox = ({
|
|
|
441
479
|
}
|
|
442
480
|
);
|
|
443
481
|
};
|
|
444
|
-
var renderGroup = (params) => /* @__PURE__ */
|
|
445
|
-
var Group = (0,
|
|
482
|
+
var renderGroup = (params) => /* @__PURE__ */ React13.createElement(Group, { key: params.key }, /* @__PURE__ */ React13.createElement(GroupHeader, null, params.group), /* @__PURE__ */ React13.createElement(GroupItems, null, params.children));
|
|
483
|
+
var Group = (0, import_ui9.styled)("li")`
|
|
446
484
|
&:not( :last-of-type ) {
|
|
447
485
|
border-bottom: 1px solid ${({ theme }) => theme.palette.divider};
|
|
448
486
|
}
|
|
449
487
|
`;
|
|
450
|
-
var GroupHeader = (0,
|
|
488
|
+
var GroupHeader = (0, import_ui9.styled)(import_ui9.Box)(({ theme }) => ({
|
|
451
489
|
position: "sticky",
|
|
452
490
|
top: "-8px",
|
|
453
491
|
padding: theme.spacing(1, 2),
|
|
454
492
|
color: theme.palette.text.tertiary
|
|
455
493
|
}));
|
|
456
|
-
var GroupItems = (0,
|
|
494
|
+
var GroupItems = (0, import_ui9.styled)("ul")`
|
|
457
495
|
padding: 0;
|
|
458
496
|
`;
|
|
459
497
|
|
|
460
498
|
// src/components/css-class-selector.tsx
|
|
461
499
|
var ID = "elementor-css-class-selector";
|
|
462
500
|
var TAGS_LIMIT = 8;
|
|
501
|
+
var EMPTY_OPTION = {
|
|
502
|
+
label: (0, import_i18n.__)("local", "elementor"),
|
|
503
|
+
value: "",
|
|
504
|
+
fixed: true,
|
|
505
|
+
color: "primary",
|
|
506
|
+
provider: import_editor_styles_repository.ELEMENTS_STYLES_PROVIDER_KEY
|
|
507
|
+
};
|
|
463
508
|
function CssClassSelector() {
|
|
464
|
-
const
|
|
509
|
+
const options10 = useOptions();
|
|
510
|
+
const [appliedIds, setAppliedIds] = useAppliedClassesIds();
|
|
465
511
|
const { id: activeId, setId: setActiveId } = useStyle();
|
|
466
|
-
const
|
|
467
|
-
const handleApply = useHandleApply();
|
|
512
|
+
const handleApply = useHandleApply(appliedIds, setAppliedIds);
|
|
468
513
|
const handleActivate = ({ value }) => setActiveId(value);
|
|
469
|
-
const
|
|
470
|
-
const
|
|
471
|
-
return /* @__PURE__ */
|
|
514
|
+
const applied = useAppliedOptions(options10, appliedIds);
|
|
515
|
+
const active = applied.find((option) => option.value === activeId) ?? EMPTY_OPTION;
|
|
516
|
+
return /* @__PURE__ */ React14.createElement(import_ui10.Stack, { gap: 1, p: 2 }, /* @__PURE__ */ React14.createElement(import_ui10.Typography, { component: "label", variant: "caption", htmlFor: ID }, (0, import_i18n.__)("CSS Classes", "elementor")), /* @__PURE__ */ React14.createElement(
|
|
472
517
|
MultiCombobox,
|
|
473
518
|
{
|
|
474
519
|
id: ID,
|
|
475
520
|
size: "tiny",
|
|
476
|
-
options:
|
|
521
|
+
options: options10,
|
|
477
522
|
selected: applied,
|
|
478
523
|
onSelect: handleApply,
|
|
479
524
|
limitTags: TAGS_LIMIT,
|
|
@@ -481,17 +526,18 @@ function CssClassSelector() {
|
|
|
481
526
|
renderTags: (values, getTagProps) => values.map((value, index) => {
|
|
482
527
|
const chipProps = getTagProps({ index });
|
|
483
528
|
const isActive = value.value === active?.value;
|
|
484
|
-
return /* @__PURE__ */
|
|
485
|
-
|
|
529
|
+
return /* @__PURE__ */ React14.createElement(
|
|
530
|
+
import_ui10.Chip,
|
|
486
531
|
{
|
|
487
532
|
...chipProps,
|
|
488
533
|
key: chipProps.key,
|
|
489
534
|
size: "small",
|
|
490
|
-
label: value.label,
|
|
535
|
+
label: /* @__PURE__ */ React14.createElement(ConditionalTooltipWrapper, { maxWidth: "10ch", title: value.label }),
|
|
491
536
|
variant: isActive ? "filled" : "standard",
|
|
492
537
|
color: isActive && value.color ? value.color : "default",
|
|
493
538
|
onClick: () => handleActivate(value),
|
|
494
|
-
onDelete: null
|
|
539
|
+
onDelete: null,
|
|
540
|
+
"aria-pressed": isActive
|
|
495
541
|
}
|
|
496
542
|
);
|
|
497
543
|
})
|
|
@@ -500,13 +546,31 @@ function CssClassSelector() {
|
|
|
500
546
|
}
|
|
501
547
|
function useOptions() {
|
|
502
548
|
const { element } = useElement();
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
549
|
+
return (0, import_editor_styles_repository.useAllStylesByProvider)({ elementId: element.id }).flatMap(([providerKey, styleDefs]) => {
|
|
550
|
+
const isElements = providerKey === import_editor_styles_repository.ELEMENTS_STYLES_PROVIDER_KEY;
|
|
551
|
+
if (isElements && styleDefs.length === 0) {
|
|
552
|
+
return [EMPTY_OPTION];
|
|
553
|
+
}
|
|
554
|
+
return styleDefs.map((styleDef) => {
|
|
555
|
+
return {
|
|
556
|
+
label: styleDef.label,
|
|
557
|
+
value: styleDef.id,
|
|
558
|
+
fixed: isElements,
|
|
559
|
+
color: isElements ? "primary" : "global",
|
|
560
|
+
provider: providerKey
|
|
561
|
+
};
|
|
562
|
+
});
|
|
563
|
+
});
|
|
564
|
+
}
|
|
565
|
+
function useAppliedOptions(options10, appliedIds) {
|
|
566
|
+
const applied = appliedIds.map((id) => options10.find((option) => option.value === id)).filter((option) => !!option);
|
|
567
|
+
const hasElementsProviderStyleApplied = applied.some(
|
|
568
|
+
(option) => option.provider === import_editor_styles_repository.ELEMENTS_STYLES_PROVIDER_KEY
|
|
569
|
+
);
|
|
570
|
+
if (!hasElementsProviderStyleApplied) {
|
|
571
|
+
applied.unshift(EMPTY_OPTION);
|
|
572
|
+
}
|
|
573
|
+
return applied;
|
|
510
574
|
}
|
|
511
575
|
function useAppliedClassesIds() {
|
|
512
576
|
const { element } = useElement();
|
|
@@ -522,11 +586,10 @@ function useAppliedClassesIds() {
|
|
|
522
586
|
};
|
|
523
587
|
return [value, setValue];
|
|
524
588
|
}
|
|
525
|
-
function useHandleApply() {
|
|
589
|
+
function useHandleApply(appliedIds, setAppliedIds) {
|
|
526
590
|
const { id: activeId, setId: setActiveId } = useStyle();
|
|
527
|
-
const [appliedIds, setAppliedIds] = useAppliedClassesIds();
|
|
528
591
|
return (selectedOptions) => {
|
|
529
|
-
const selectedValues = selectedOptions.map(({ value }) => value);
|
|
592
|
+
const selectedValues = selectedOptions.map(({ value }) => value).filter((value) => value !== EMPTY_OPTION.value);
|
|
530
593
|
const isSameClassesAlreadyApplied = selectedValues.length === appliedIds.length && selectedValues.every((value) => appliedIds.includes(value));
|
|
531
594
|
if (isSameClassesAlreadyApplied) {
|
|
532
595
|
return;
|
|
@@ -545,23 +608,24 @@ function useHandleApply() {
|
|
|
545
608
|
}
|
|
546
609
|
|
|
547
610
|
// src/components/style-sections/background-section/background-section.tsx
|
|
548
|
-
var
|
|
611
|
+
var React17 = __toESM(require("react"));
|
|
549
612
|
var import_editor_controls7 = require("@elementor/editor-controls");
|
|
550
|
-
var
|
|
613
|
+
var import_ui12 = require("@elementor/ui");
|
|
551
614
|
|
|
552
615
|
// src/controls-registry/styles-field.tsx
|
|
553
|
-
var
|
|
616
|
+
var React15 = __toESM(require("react"));
|
|
554
617
|
var import_editor_controls5 = require("@elementor/editor-controls");
|
|
555
618
|
|
|
556
619
|
// src/hooks/use-styles-field.ts
|
|
557
|
-
var
|
|
620
|
+
var import_react7 = require("react");
|
|
558
621
|
var import_editor_elements3 = require("@elementor/editor-elements");
|
|
622
|
+
var import_i18n2 = require("@wordpress/i18n");
|
|
559
623
|
var useStylesField = (propName) => {
|
|
560
624
|
const { element } = useElement();
|
|
561
625
|
const { id, meta } = useStyle();
|
|
562
626
|
const classesProp = useClassesProp();
|
|
563
|
-
const previousValue = (0,
|
|
564
|
-
const onChangeCallbacks = (0,
|
|
627
|
+
const previousValue = (0, import_react7.useRef)(null);
|
|
628
|
+
const onChangeCallbacks = (0, import_react7.useRef)(/* @__PURE__ */ new Set());
|
|
565
629
|
const value = (0, import_editor_elements3.useElementStyleProp)({
|
|
566
630
|
elementID: element.id,
|
|
567
631
|
styleDefID: id,
|
|
@@ -574,13 +638,14 @@ var useStylesField = (propName) => {
|
|
|
574
638
|
styleDefID: id,
|
|
575
639
|
props: { [propName]: newValue },
|
|
576
640
|
meta,
|
|
577
|
-
bind: classesProp
|
|
641
|
+
bind: classesProp,
|
|
642
|
+
label: (0, import_i18n2.__)("local", "elementor")
|
|
578
643
|
});
|
|
579
644
|
};
|
|
580
645
|
const registerChangeListener = (callback) => {
|
|
581
646
|
onChangeCallbacks.current.add(callback);
|
|
582
647
|
};
|
|
583
|
-
(0,
|
|
648
|
+
(0, import_react7.useEffect)(() => {
|
|
584
649
|
onChangeCallbacks.current.forEach((cb) => {
|
|
585
650
|
cb(value, previousValue.current);
|
|
586
651
|
});
|
|
@@ -592,40 +657,40 @@ var useStylesField = (propName) => {
|
|
|
592
657
|
// src/controls-registry/styles-field.tsx
|
|
593
658
|
var StylesField = ({ bind, children }) => {
|
|
594
659
|
const [value, setValue] = useStylesField(bind);
|
|
595
|
-
return /* @__PURE__ */
|
|
660
|
+
return /* @__PURE__ */ React15.createElement(import_editor_controls5.BoundPropProvider, { setValue, value, bind }, children);
|
|
596
661
|
};
|
|
597
662
|
|
|
598
663
|
// src/components/style-sections/background-section/background-color-field.tsx
|
|
599
|
-
var
|
|
664
|
+
var React16 = __toESM(require("react"));
|
|
600
665
|
var import_editor_controls6 = require("@elementor/editor-controls");
|
|
601
|
-
var
|
|
602
|
-
var
|
|
666
|
+
var import_ui11 = require("@elementor/ui");
|
|
667
|
+
var import_i18n3 = require("@wordpress/i18n");
|
|
603
668
|
var BackgroundColorField = () => {
|
|
604
|
-
return /* @__PURE__ */
|
|
669
|
+
return /* @__PURE__ */ React16.createElement(StylesField, { bind: "background-color" }, /* @__PURE__ */ React16.createElement(import_ui11.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React16.createElement(import_ui11.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React16.createElement(import_editor_controls6.ControlLabel, null, (0, import_i18n3.__)("Color", "elementor"))), /* @__PURE__ */ React16.createElement(import_ui11.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React16.createElement(import_editor_controls6.ColorControl, null))));
|
|
605
670
|
};
|
|
606
671
|
|
|
607
672
|
// src/components/style-sections/background-section/background-section.tsx
|
|
608
673
|
var BackgroundSection = () => {
|
|
609
|
-
return /* @__PURE__ */
|
|
674
|
+
return /* @__PURE__ */ React17.createElement(import_ui12.Stack, { gap: 1.5 }, /* @__PURE__ */ React17.createElement(StylesField, { bind: "background-image" }, /* @__PURE__ */ React17.createElement(import_editor_controls7.BackgroundOverlayRepeaterControl, null)), /* @__PURE__ */ React17.createElement(BackgroundColorField, null));
|
|
610
675
|
};
|
|
611
676
|
|
|
612
677
|
// src/components/style-sections/border-section/border-section.tsx
|
|
613
|
-
var
|
|
614
|
-
var
|
|
678
|
+
var React24 = __toESM(require("react"));
|
|
679
|
+
var import_ui16 = require("@elementor/ui");
|
|
615
680
|
|
|
616
681
|
// src/components/style-sections/border-section/border-field.tsx
|
|
617
|
-
var
|
|
618
|
-
var
|
|
682
|
+
var React22 = __toESM(require("react"));
|
|
683
|
+
var import_i18n7 = require("@wordpress/i18n");
|
|
619
684
|
|
|
620
685
|
// src/components/add-or-remove-content.tsx
|
|
621
|
-
var
|
|
686
|
+
var React18 = __toESM(require("react"));
|
|
622
687
|
var import_editor_controls8 = require("@elementor/editor-controls");
|
|
623
688
|
var import_icons3 = require("@elementor/icons");
|
|
624
|
-
var
|
|
689
|
+
var import_ui13 = require("@elementor/ui");
|
|
625
690
|
var SIZE2 = "tiny";
|
|
626
691
|
var AddOrRemoveContent = ({ isAdded, label, onAdd, onRemove, children }) => {
|
|
627
|
-
return /* @__PURE__ */
|
|
628
|
-
|
|
692
|
+
return /* @__PURE__ */ React18.createElement(import_ui13.Stack, { gap: 1.5 }, /* @__PURE__ */ React18.createElement(
|
|
693
|
+
import_ui13.Stack,
|
|
629
694
|
{
|
|
630
695
|
direction: "row",
|
|
631
696
|
sx: {
|
|
@@ -633,75 +698,76 @@ var AddOrRemoveContent = ({ isAdded, label, onAdd, onRemove, children }) => {
|
|
|
633
698
|
alignItems: "center"
|
|
634
699
|
}
|
|
635
700
|
},
|
|
636
|
-
/* @__PURE__ */
|
|
637
|
-
isAdded ? /* @__PURE__ */
|
|
638
|
-
), /* @__PURE__ */
|
|
701
|
+
/* @__PURE__ */ React18.createElement(import_editor_controls8.ControlLabel, null, label),
|
|
702
|
+
isAdded ? /* @__PURE__ */ React18.createElement(import_ui13.IconButton, { size: SIZE2, onClick: onRemove }, /* @__PURE__ */ React18.createElement(import_icons3.MinusIcon, { fontSize: SIZE2 })) : /* @__PURE__ */ React18.createElement(import_ui13.IconButton, { size: SIZE2, onClick: onAdd }, /* @__PURE__ */ React18.createElement(import_icons3.PlusIcon, { fontSize: SIZE2 }))
|
|
703
|
+
), /* @__PURE__ */ React18.createElement(import_ui13.Collapse, { in: isAdded, unmountOnExit: true }, /* @__PURE__ */ React18.createElement(import_ui13.Stack, { gap: 1.5 }, children)));
|
|
639
704
|
};
|
|
640
705
|
|
|
641
706
|
// src/components/style-sections/border-section/border-color-field.tsx
|
|
642
|
-
var
|
|
707
|
+
var React19 = __toESM(require("react"));
|
|
643
708
|
var import_editor_controls9 = require("@elementor/editor-controls");
|
|
644
|
-
var
|
|
645
|
-
var
|
|
709
|
+
var import_ui14 = require("@elementor/ui");
|
|
710
|
+
var import_i18n4 = require("@wordpress/i18n");
|
|
646
711
|
var BorderColorField = () => {
|
|
647
|
-
return /* @__PURE__ */
|
|
712
|
+
return /* @__PURE__ */ React19.createElement(StylesField, { bind: "border-color" }, /* @__PURE__ */ React19.createElement(import_ui14.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React19.createElement(import_ui14.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React19.createElement(import_editor_controls9.ControlLabel, null, (0, import_i18n4.__)("Border Color", "elementor"))), /* @__PURE__ */ React19.createElement(import_ui14.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React19.createElement(import_editor_controls9.ColorControl, null))));
|
|
648
713
|
};
|
|
649
714
|
|
|
650
715
|
// src/components/style-sections/border-section/border-style-field.tsx
|
|
651
|
-
var
|
|
716
|
+
var React20 = __toESM(require("react"));
|
|
652
717
|
var import_editor_controls10 = require("@elementor/editor-controls");
|
|
653
|
-
var
|
|
654
|
-
var
|
|
718
|
+
var import_ui15 = require("@elementor/ui");
|
|
719
|
+
var import_i18n5 = require("@wordpress/i18n");
|
|
655
720
|
var borderStyles = [
|
|
656
|
-
{ value: "none", label: (0,
|
|
657
|
-
{ value: "solid", label: (0,
|
|
658
|
-
{ value: "dashed", label: (0,
|
|
659
|
-
{ value: "dotted", label: (0,
|
|
660
|
-
{ value: "double", label: (0,
|
|
661
|
-
{ value: "groove", label: (0,
|
|
662
|
-
{ value: "ridge", label: (0,
|
|
663
|
-
{ value: "inset", label: (0,
|
|
664
|
-
{ value: "outset", label: (0,
|
|
721
|
+
{ value: "none", label: (0, import_i18n5.__)("None", "elementor") },
|
|
722
|
+
{ value: "solid", label: (0, import_i18n5.__)("Solid", "elementor") },
|
|
723
|
+
{ value: "dashed", label: (0, import_i18n5.__)("Dashed", "elementor") },
|
|
724
|
+
{ value: "dotted", label: (0, import_i18n5.__)("Dotted", "elementor") },
|
|
725
|
+
{ value: "double", label: (0, import_i18n5.__)("Double", "elementor") },
|
|
726
|
+
{ value: "groove", label: (0, import_i18n5.__)("Groove", "elementor") },
|
|
727
|
+
{ value: "ridge", label: (0, import_i18n5.__)("Ridge", "elementor") },
|
|
728
|
+
{ value: "inset", label: (0, import_i18n5.__)("Inset", "elementor") },
|
|
729
|
+
{ value: "outset", label: (0, import_i18n5.__)("Outset", "elementor") }
|
|
665
730
|
];
|
|
666
731
|
var BorderStyleField = () => {
|
|
667
|
-
return /* @__PURE__ */
|
|
732
|
+
return /* @__PURE__ */ React20.createElement(StylesField, { bind: "border-style" }, /* @__PURE__ */ React20.createElement(import_ui15.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React20.createElement(import_ui15.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React20.createElement(import_editor_controls10.ControlLabel, null, (0, import_i18n5.__)("Border Type", "elementor"))), /* @__PURE__ */ React20.createElement(import_ui15.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React20.createElement(import_editor_controls10.SelectControl, { options: borderStyles }))));
|
|
668
733
|
};
|
|
669
734
|
|
|
670
735
|
// src/components/style-sections/border-section/border-width-field.tsx
|
|
671
|
-
var
|
|
736
|
+
var React21 = __toESM(require("react"));
|
|
672
737
|
var import_editor_controls11 = require("@elementor/editor-controls");
|
|
738
|
+
var import_editor_props2 = require("@elementor/editor-props");
|
|
673
739
|
var import_icons4 = require("@elementor/icons");
|
|
674
|
-
var
|
|
740
|
+
var import_i18n6 = require("@wordpress/i18n");
|
|
675
741
|
var edges = [
|
|
676
742
|
{
|
|
677
|
-
label: (0,
|
|
678
|
-
icon: /* @__PURE__ */
|
|
743
|
+
label: (0, import_i18n6.__)("Top", "elementor"),
|
|
744
|
+
icon: /* @__PURE__ */ React21.createElement(import_icons4.SideTopIcon, { fontSize: "tiny" }),
|
|
679
745
|
bind: "top"
|
|
680
746
|
},
|
|
681
747
|
{
|
|
682
|
-
label: (0,
|
|
683
|
-
icon: /* @__PURE__ */
|
|
748
|
+
label: (0, import_i18n6.__)("Right", "elementor"),
|
|
749
|
+
icon: /* @__PURE__ */ React21.createElement(import_icons4.SideRightIcon, { fontSize: "tiny" }),
|
|
684
750
|
bind: "right"
|
|
685
751
|
},
|
|
686
752
|
{
|
|
687
|
-
label: (0,
|
|
688
|
-
icon: /* @__PURE__ */
|
|
753
|
+
label: (0, import_i18n6.__)("Bottom", "elementor"),
|
|
754
|
+
icon: /* @__PURE__ */ React21.createElement(import_icons4.SideBottomIcon, { fontSize: "tiny" }),
|
|
689
755
|
bind: "bottom"
|
|
690
756
|
},
|
|
691
757
|
{
|
|
692
|
-
label: (0,
|
|
693
|
-
icon: /* @__PURE__ */
|
|
758
|
+
label: (0, import_i18n6.__)("Left", "elementor"),
|
|
759
|
+
icon: /* @__PURE__ */ React21.createElement(import_icons4.SideLeftIcon, { fontSize: "tiny" }),
|
|
694
760
|
bind: "left"
|
|
695
761
|
}
|
|
696
762
|
];
|
|
697
763
|
var BorderWidthField = () => {
|
|
698
|
-
return /* @__PURE__ */
|
|
764
|
+
return /* @__PURE__ */ React21.createElement(StylesField, { bind: "border-width" }, /* @__PURE__ */ React21.createElement(
|
|
699
765
|
import_editor_controls11.EqualUnequalSizesControl,
|
|
700
766
|
{
|
|
701
|
-
label: (0, import_i18n5.__)("Border Width", "elementor"),
|
|
702
|
-
icon: /* @__PURE__ */ React20.createElement(import_icons4.SideAllIcon, { fontSize: "tiny" }),
|
|
703
767
|
items: edges,
|
|
704
|
-
|
|
768
|
+
label: (0, import_i18n6.__)("Border Width", "elementor"),
|
|
769
|
+
icon: /* @__PURE__ */ React21.createElement(import_icons4.SideAllIcon, { fontSize: "tiny" }),
|
|
770
|
+
multiSizePropTypeUtil: import_editor_props2.borderWidthPropTypeUtil
|
|
705
771
|
}
|
|
706
772
|
));
|
|
707
773
|
};
|
|
@@ -729,260 +795,327 @@ var BorderField = () => {
|
|
|
729
795
|
setBorderStyle(null);
|
|
730
796
|
};
|
|
731
797
|
const hasBorder = Boolean(borderWidth || borderColor || borderStyle);
|
|
732
|
-
return /* @__PURE__ */
|
|
798
|
+
return /* @__PURE__ */ React22.createElement(
|
|
733
799
|
AddOrRemoveContent,
|
|
734
800
|
{
|
|
735
|
-
label: (0,
|
|
801
|
+
label: (0, import_i18n7.__)("Border", "elementor"),
|
|
736
802
|
isAdded: hasBorder,
|
|
737
803
|
onAdd: addBorder,
|
|
738
804
|
onRemove: removeBorder
|
|
739
805
|
},
|
|
740
|
-
/* @__PURE__ */
|
|
741
|
-
/* @__PURE__ */
|
|
742
|
-
/* @__PURE__ */
|
|
806
|
+
/* @__PURE__ */ React22.createElement(BorderWidthField, null),
|
|
807
|
+
/* @__PURE__ */ React22.createElement(BorderColorField, null),
|
|
808
|
+
/* @__PURE__ */ React22.createElement(BorderStyleField, null)
|
|
743
809
|
);
|
|
744
810
|
};
|
|
745
811
|
|
|
746
812
|
// src/components/style-sections/border-section/border-radius-field.tsx
|
|
747
|
-
var
|
|
813
|
+
var React23 = __toESM(require("react"));
|
|
748
814
|
var import_editor_controls12 = require("@elementor/editor-controls");
|
|
815
|
+
var import_editor_props3 = require("@elementor/editor-props");
|
|
749
816
|
var import_icons5 = require("@elementor/icons");
|
|
750
|
-
var
|
|
817
|
+
var import_i18n8 = require("@wordpress/i18n");
|
|
751
818
|
var corners = [
|
|
752
819
|
{
|
|
753
|
-
label: (0,
|
|
754
|
-
icon: /* @__PURE__ */
|
|
820
|
+
label: (0, import_i18n8.__)("Top Left", "elementor"),
|
|
821
|
+
icon: /* @__PURE__ */ React23.createElement(import_icons5.RadiusTopLeftIcon, { fontSize: "tiny" }),
|
|
755
822
|
bind: "top-left"
|
|
756
823
|
},
|
|
757
824
|
{
|
|
758
|
-
label: (0,
|
|
759
|
-
icon: /* @__PURE__ */
|
|
825
|
+
label: (0, import_i18n8.__)("Top Right", "elementor"),
|
|
826
|
+
icon: /* @__PURE__ */ React23.createElement(import_icons5.RadiusTopRightIcon, { fontSize: "tiny" }),
|
|
760
827
|
bind: "top-right"
|
|
761
828
|
},
|
|
762
829
|
{
|
|
763
|
-
label: (0,
|
|
764
|
-
icon: /* @__PURE__ */
|
|
830
|
+
label: (0, import_i18n8.__)("Bottom Right", "elementor"),
|
|
831
|
+
icon: /* @__PURE__ */ React23.createElement(import_icons5.RadiusBottomRightIcon, { fontSize: "tiny" }),
|
|
765
832
|
bind: "bottom-right"
|
|
766
833
|
},
|
|
767
834
|
{
|
|
768
|
-
label: (0,
|
|
769
|
-
icon: /* @__PURE__ */
|
|
835
|
+
label: (0, import_i18n8.__)("Bottom Left", "elementor"),
|
|
836
|
+
icon: /* @__PURE__ */ React23.createElement(import_icons5.RadiusBottomLeftIcon, { fontSize: "tiny" }),
|
|
770
837
|
bind: "bottom-left"
|
|
771
838
|
}
|
|
772
839
|
];
|
|
773
840
|
var BorderRadiusField = () => {
|
|
774
|
-
return /* @__PURE__ */
|
|
841
|
+
return /* @__PURE__ */ React23.createElement(StylesField, { bind: "border-radius" }, /* @__PURE__ */ React23.createElement(
|
|
775
842
|
import_editor_controls12.EqualUnequalSizesControl,
|
|
776
843
|
{
|
|
777
|
-
label: (0, import_i18n7.__)("Border Radius", "elementor"),
|
|
778
|
-
icon: /* @__PURE__ */ React22.createElement(import_icons5.BorderCornersIcon, { fontSize: "tiny" }),
|
|
779
844
|
items: corners,
|
|
780
|
-
|
|
845
|
+
label: (0, import_i18n8.__)("Border Radius", "elementor"),
|
|
846
|
+
icon: /* @__PURE__ */ React23.createElement(import_icons5.BorderCornersIcon, { fontSize: "tiny" }),
|
|
847
|
+
multiSizePropTypeUtil: import_editor_props3.borderRadiusPropTypeUtil
|
|
781
848
|
}
|
|
782
849
|
));
|
|
783
850
|
};
|
|
784
851
|
|
|
785
852
|
// src/components/style-sections/border-section/border-section.tsx
|
|
786
|
-
var BorderSection = () => /* @__PURE__ */
|
|
853
|
+
var BorderSection = () => /* @__PURE__ */ React24.createElement(import_ui16.Stack, { gap: 1.5 }, /* @__PURE__ */ React24.createElement(BorderRadiusField, null), /* @__PURE__ */ React24.createElement(import_ui16.Divider, null), /* @__PURE__ */ React24.createElement(BorderField, null));
|
|
787
854
|
|
|
788
855
|
// src/components/style-sections/effects-section/effects-section.tsx
|
|
789
|
-
var
|
|
856
|
+
var React25 = __toESM(require("react"));
|
|
790
857
|
var import_editor_controls13 = require("@elementor/editor-controls");
|
|
791
|
-
var
|
|
858
|
+
var import_ui17 = require("@elementor/ui");
|
|
792
859
|
var EffectsSection = () => {
|
|
793
|
-
return /* @__PURE__ */
|
|
860
|
+
return /* @__PURE__ */ React25.createElement(import_ui17.Stack, { gap: 1.5 }, /* @__PURE__ */ React25.createElement(StylesField, { bind: "box-shadow" }, /* @__PURE__ */ React25.createElement(import_editor_controls13.BoxShadowRepeaterControl, null)));
|
|
794
861
|
};
|
|
795
862
|
|
|
796
863
|
// src/components/style-sections/layout-section/layout-section.tsx
|
|
797
|
-
var
|
|
798
|
-
var
|
|
799
|
-
var
|
|
800
|
-
var
|
|
864
|
+
var React36 = __toESM(require("react"));
|
|
865
|
+
var import_editor_controls23 = require("@elementor/editor-controls");
|
|
866
|
+
var import_ui29 = require("@elementor/ui");
|
|
867
|
+
var import_i18n18 = require("@wordpress/i18n");
|
|
801
868
|
|
|
802
869
|
// src/components/style-sections/layout-section/align-items-field.tsx
|
|
803
|
-
var
|
|
870
|
+
var React27 = __toESM(require("react"));
|
|
804
871
|
var import_editor_controls14 = require("@elementor/editor-controls");
|
|
805
872
|
var import_icons6 = require("@elementor/icons");
|
|
806
|
-
var
|
|
807
|
-
var
|
|
873
|
+
var import_ui20 = require("@elementor/ui");
|
|
874
|
+
var import_i18n9 = require("@wordpress/i18n");
|
|
808
875
|
|
|
809
876
|
// src/hooks/use-direction.ts
|
|
810
|
-
var
|
|
877
|
+
var import_ui18 = require("@elementor/ui");
|
|
811
878
|
function useDirection() {
|
|
812
|
-
const theme = (0,
|
|
879
|
+
const theme = (0, import_ui18.useTheme)(), extendedWindow = window;
|
|
813
880
|
const isUiRtl = "rtl" === theme.direction, isSiteRtl = !!extendedWindow.elementorFrontend?.config?.is_rtl;
|
|
814
881
|
return { isSiteRtl, isUiRtl };
|
|
815
882
|
}
|
|
816
883
|
|
|
884
|
+
// src/components/style-sections/layout-section/utils/rotated-icon.tsx
|
|
885
|
+
var React26 = __toESM(require("react"));
|
|
886
|
+
var import_react8 = require("react");
|
|
887
|
+
var import_ui19 = require("@elementor/ui");
|
|
888
|
+
var CLOCKWISE_ANGLES = {
|
|
889
|
+
row: 0,
|
|
890
|
+
column: 90,
|
|
891
|
+
"row-reverse": 180,
|
|
892
|
+
"column-reverse": 270
|
|
893
|
+
};
|
|
894
|
+
var COUNTER_CLOCKWISE_ANGLES = {
|
|
895
|
+
row: 0,
|
|
896
|
+
column: -90,
|
|
897
|
+
"row-reverse": -180,
|
|
898
|
+
"column-reverse": -270
|
|
899
|
+
};
|
|
900
|
+
var RotatedIcon = ({ icon: Icon, size, isClockwise = true, offset = 0 }) => {
|
|
901
|
+
const rotate = (0, import_react8.useRef)(useGetTargetAngle(isClockwise, offset));
|
|
902
|
+
rotate.current = useGetTargetAngle(isClockwise, offset, rotate);
|
|
903
|
+
return /* @__PURE__ */ React26.createElement(Icon, { fontSize: size, sx: { transition: ".3s", rotate: `${rotate.current}deg` } });
|
|
904
|
+
};
|
|
905
|
+
var useGetTargetAngle = (isClockwise, offset, existingRef) => {
|
|
906
|
+
const [direction] = useStylesField("flex-direction");
|
|
907
|
+
const isRtl = "rtl" === (0, import_ui19.useTheme)().direction;
|
|
908
|
+
const rotationMultiplier = isRtl ? -1 : 1;
|
|
909
|
+
const angleMap = isClockwise ? CLOCKWISE_ANGLES : COUNTER_CLOCKWISE_ANGLES;
|
|
910
|
+
const currentAngle = existingRef ? existingRef.current * rotationMultiplier : angleMap[direction?.value || "row"] + offset;
|
|
911
|
+
const targetAngle = angleMap[direction?.value || "row"] + offset;
|
|
912
|
+
const diffToTargetAngle = (targetAngle - currentAngle + 360) % 360;
|
|
913
|
+
const formattedDiff = (diffToTargetAngle + 180) % 360 - 180;
|
|
914
|
+
return (currentAngle + formattedDiff) * rotationMultiplier;
|
|
915
|
+
};
|
|
916
|
+
|
|
817
917
|
// src/components/style-sections/layout-section/align-items-field.tsx
|
|
918
|
+
var StartIcon = (0, import_ui20.withDirection)(import_icons6.LayoutAlignLeftIcon);
|
|
919
|
+
var EndIcon = (0, import_ui20.withDirection)(import_icons6.LayoutAlignRightIcon);
|
|
920
|
+
var iconProps = {
|
|
921
|
+
isClockwise: false,
|
|
922
|
+
offset: 90
|
|
923
|
+
};
|
|
924
|
+
var options = [
|
|
925
|
+
{
|
|
926
|
+
value: "start",
|
|
927
|
+
label: (0, import_i18n9.__)("Start", "elementor"),
|
|
928
|
+
renderContent: ({ size }) => /* @__PURE__ */ React27.createElement(RotatedIcon, { icon: StartIcon, size, ...iconProps }),
|
|
929
|
+
showTooltip: true
|
|
930
|
+
},
|
|
931
|
+
{
|
|
932
|
+
value: "center",
|
|
933
|
+
label: (0, import_i18n9.__)("Center", "elementor"),
|
|
934
|
+
renderContent: ({ size }) => /* @__PURE__ */ React27.createElement(RotatedIcon, { icon: import_icons6.LayoutAlignCenterIcon, size, ...iconProps }),
|
|
935
|
+
showTooltip: true
|
|
936
|
+
},
|
|
937
|
+
{
|
|
938
|
+
value: "end",
|
|
939
|
+
label: (0, import_i18n9.__)("End", "elementor"),
|
|
940
|
+
renderContent: ({ size }) => /* @__PURE__ */ React27.createElement(RotatedIcon, { icon: EndIcon, size, ...iconProps }),
|
|
941
|
+
showTooltip: true
|
|
942
|
+
},
|
|
943
|
+
{
|
|
944
|
+
value: "stretch",
|
|
945
|
+
label: (0, import_i18n9.__)("Stretch", "elementor"),
|
|
946
|
+
renderContent: ({ size }) => /* @__PURE__ */ React27.createElement(RotatedIcon, { icon: import_icons6.LayoutDistributeVerticalIcon, size, ...iconProps }),
|
|
947
|
+
showTooltip: true
|
|
948
|
+
}
|
|
949
|
+
];
|
|
818
950
|
var AlignItemsField = () => {
|
|
819
|
-
const
|
|
820
|
-
return /* @__PURE__ */
|
|
951
|
+
const { isSiteRtl } = useDirection();
|
|
952
|
+
return /* @__PURE__ */ React27.createElement(import_ui20.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React27.createElement(import_ui20.ThemeProvider, null, /* @__PURE__ */ React27.createElement(StylesField, { bind: "align-items" }, /* @__PURE__ */ React27.createElement(import_ui20.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React27.createElement(import_ui20.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React27.createElement(import_editor_controls14.ControlLabel, null, (0, import_i18n9.__)("Align items", "elementor"))), /* @__PURE__ */ React27.createElement(import_ui20.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React27.createElement(import_editor_controls14.ToggleControl, { options }))))));
|
|
821
953
|
};
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
renderContent: ({ size }) => /* @__PURE__ */ React25.createElement(RotatedIcon, { icon: import_icons6.LayoutAlignCenterIcon, size }),
|
|
835
|
-
showTooltip: true
|
|
836
|
-
},
|
|
837
|
-
{
|
|
838
|
-
value: "end",
|
|
839
|
-
label: (0, import_i18n8.__)("End", "elementor"),
|
|
840
|
-
renderContent: ({ size }) => /* @__PURE__ */ React25.createElement(RotatedIcon, { icon: EndIcon, size }),
|
|
841
|
-
showTooltip: true
|
|
842
|
-
},
|
|
843
|
-
{
|
|
844
|
-
value: "justify",
|
|
845
|
-
label: (0, import_i18n8.__)("Justify", "elementor"),
|
|
846
|
-
renderContent: ({ size }) => /* @__PURE__ */ React25.createElement(RotatedIcon, { icon: import_icons6.LayoutDistributeVerticalIcon, size }),
|
|
847
|
-
showTooltip: true
|
|
848
|
-
}
|
|
849
|
-
];
|
|
954
|
+
|
|
955
|
+
// src/components/style-sections/layout-section/align-self-child-field.tsx
|
|
956
|
+
var React28 = __toESM(require("react"));
|
|
957
|
+
var import_editor_controls15 = require("@elementor/editor-controls");
|
|
958
|
+
var import_icons7 = require("@elementor/icons");
|
|
959
|
+
var import_ui21 = require("@elementor/ui");
|
|
960
|
+
var import_i18n10 = require("@wordpress/i18n");
|
|
961
|
+
var StartIcon2 = (0, import_ui21.withDirection)(import_icons7.LayoutAlignLeftIcon);
|
|
962
|
+
var EndIcon2 = (0, import_ui21.withDirection)(import_icons7.LayoutAlignRightIcon);
|
|
963
|
+
var iconProps2 = {
|
|
964
|
+
isClockwise: false,
|
|
965
|
+
offset: 90
|
|
850
966
|
};
|
|
851
|
-
var
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
{
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
967
|
+
var options2 = [
|
|
968
|
+
{
|
|
969
|
+
value: "start",
|
|
970
|
+
label: (0, import_i18n10.__)("Start", "elementor"),
|
|
971
|
+
renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(RotatedIcon, { icon: StartIcon2, size, ...iconProps2 }),
|
|
972
|
+
showTooltip: true
|
|
973
|
+
},
|
|
974
|
+
{
|
|
975
|
+
value: "center",
|
|
976
|
+
label: (0, import_i18n10.__)("Center", "elementor"),
|
|
977
|
+
renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(RotatedIcon, { icon: import_icons7.LayoutAlignCenterIcon, size, ...iconProps2 }),
|
|
978
|
+
showTooltip: true
|
|
979
|
+
},
|
|
980
|
+
{
|
|
981
|
+
value: "end",
|
|
982
|
+
label: (0, import_i18n10.__)("End", "elementor"),
|
|
983
|
+
renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(RotatedIcon, { icon: EndIcon2, size, ...iconProps2 }),
|
|
984
|
+
showTooltip: true
|
|
985
|
+
},
|
|
986
|
+
{
|
|
987
|
+
value: "stretch",
|
|
988
|
+
label: (0, import_i18n10.__)("Stretch", "elementor"),
|
|
989
|
+
renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(RotatedIcon, { icon: import_icons7.LayoutDistributeVerticalIcon, size, ...iconProps2 }),
|
|
990
|
+
showTooltip: true
|
|
991
|
+
}
|
|
992
|
+
];
|
|
993
|
+
var AlignSelfChild = () => {
|
|
994
|
+
const { isSiteRtl } = useDirection();
|
|
995
|
+
return /* @__PURE__ */ React28.createElement(import_ui21.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React28.createElement(import_ui21.ThemeProvider, null, /* @__PURE__ */ React28.createElement(StylesField, { bind: "align-self" }, /* @__PURE__ */ React28.createElement(import_ui21.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React28.createElement(import_ui21.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React28.createElement(import_editor_controls15.ControlLabel, null, (0, import_i18n10.__)("Align self", "elementor"))), /* @__PURE__ */ React28.createElement(import_ui21.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React28.createElement(import_editor_controls15.ToggleControl, { options: options2 }))))));
|
|
866
996
|
};
|
|
867
997
|
|
|
868
998
|
// src/components/style-sections/layout-section/display-field.tsx
|
|
869
|
-
var
|
|
870
|
-
var
|
|
871
|
-
var
|
|
872
|
-
var
|
|
999
|
+
var React29 = __toESM(require("react"));
|
|
1000
|
+
var import_editor_controls16 = require("@elementor/editor-controls");
|
|
1001
|
+
var import_ui22 = require("@elementor/ui");
|
|
1002
|
+
var import_i18n11 = require("@wordpress/i18n");
|
|
873
1003
|
var DisplayField = () => {
|
|
874
|
-
const
|
|
1004
|
+
const options10 = [
|
|
875
1005
|
{
|
|
876
1006
|
value: "block",
|
|
877
|
-
renderContent: () => (0,
|
|
878
|
-
label: (0,
|
|
1007
|
+
renderContent: () => (0, import_i18n11.__)("Block", "elementor"),
|
|
1008
|
+
label: (0, import_i18n11.__)("Block", "elementor")
|
|
879
1009
|
},
|
|
880
1010
|
{
|
|
881
1011
|
value: "flex",
|
|
882
|
-
renderContent: () => (0,
|
|
883
|
-
label: (0,
|
|
1012
|
+
renderContent: () => (0, import_i18n11.__)("Flex", "elementor"),
|
|
1013
|
+
label: (0, import_i18n11.__)("Flex", "elementor")
|
|
884
1014
|
}
|
|
885
1015
|
];
|
|
886
|
-
return /* @__PURE__ */
|
|
1016
|
+
return /* @__PURE__ */ React29.createElement(StylesField, { bind: "display" }, /* @__PURE__ */ React29.createElement(import_ui22.Stack, { gap: 1 }, /* @__PURE__ */ React29.createElement(import_editor_controls16.ControlLabel, null, (0, import_i18n11.__)("Display", "elementor")), /* @__PURE__ */ React29.createElement(import_editor_controls16.ToggleControl, { options: options10, fullWidth: true })));
|
|
887
1017
|
};
|
|
888
1018
|
|
|
889
1019
|
// src/components/style-sections/layout-section/flex-direction-field.tsx
|
|
890
|
-
var
|
|
891
|
-
var
|
|
892
|
-
var
|
|
893
|
-
var
|
|
894
|
-
var
|
|
895
|
-
var
|
|
1020
|
+
var React30 = __toESM(require("react"));
|
|
1021
|
+
var import_editor_controls17 = require("@elementor/editor-controls");
|
|
1022
|
+
var import_icons8 = require("@elementor/icons");
|
|
1023
|
+
var import_ui23 = require("@elementor/ui");
|
|
1024
|
+
var import_i18n12 = require("@wordpress/i18n");
|
|
1025
|
+
var options3 = [
|
|
896
1026
|
{
|
|
897
1027
|
value: "row",
|
|
898
|
-
label: (0,
|
|
1028
|
+
label: (0, import_i18n12.__)("Row", "elementor"),
|
|
899
1029
|
renderContent: ({ size }) => {
|
|
900
|
-
const
|
|
901
|
-
return /* @__PURE__ */
|
|
1030
|
+
const StartIcon4 = (0, import_ui23.withDirection)(import_icons8.ArrowRightIcon);
|
|
1031
|
+
return /* @__PURE__ */ React30.createElement(StartIcon4, { fontSize: size });
|
|
902
1032
|
},
|
|
903
1033
|
showTooltip: true
|
|
904
1034
|
},
|
|
905
1035
|
{
|
|
906
1036
|
value: "column",
|
|
907
|
-
label: (0,
|
|
908
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1037
|
+
label: (0, import_i18n12.__)("Column", "elementor"),
|
|
1038
|
+
renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(import_icons8.ArrowDownSmallIcon, { fontSize: size }),
|
|
909
1039
|
showTooltip: true
|
|
910
1040
|
},
|
|
911
1041
|
{
|
|
912
1042
|
value: "row-reverse",
|
|
913
|
-
label: (0,
|
|
1043
|
+
label: (0, import_i18n12.__)("Reversed row", "elementor"),
|
|
914
1044
|
renderContent: ({ size }) => {
|
|
915
|
-
const
|
|
916
|
-
return /* @__PURE__ */
|
|
1045
|
+
const EndIcon4 = (0, import_ui23.withDirection)(import_icons8.ArrowLeftIcon);
|
|
1046
|
+
return /* @__PURE__ */ React30.createElement(EndIcon4, { fontSize: size });
|
|
917
1047
|
},
|
|
918
1048
|
showTooltip: true
|
|
919
1049
|
},
|
|
920
1050
|
{
|
|
921
1051
|
value: "column-reverse",
|
|
922
|
-
label: (0,
|
|
923
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1052
|
+
label: (0, import_i18n12.__)("Reversed column", "elementor"),
|
|
1053
|
+
renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(import_icons8.ArrowUpSmallIcon, { fontSize: size }),
|
|
924
1054
|
showTooltip: true
|
|
925
1055
|
}
|
|
926
1056
|
];
|
|
927
1057
|
var FlexDirectionField = () => {
|
|
928
1058
|
const { isSiteRtl } = useDirection();
|
|
929
|
-
return /* @__PURE__ */
|
|
1059
|
+
return /* @__PURE__ */ React30.createElement(import_ui23.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React30.createElement(import_ui23.ThemeProvider, null, /* @__PURE__ */ React30.createElement(StylesField, { bind: "flex-direction" }, /* @__PURE__ */ React30.createElement(import_ui23.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React30.createElement(import_ui23.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React30.createElement(import_editor_controls17.ControlLabel, null, (0, import_i18n12.__)("Direction", "elementor"))), /* @__PURE__ */ React30.createElement(import_ui23.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React30.createElement(import_editor_controls17.ToggleControl, { options: options3 }))))));
|
|
930
1060
|
};
|
|
931
1061
|
|
|
932
1062
|
// src/components/style-sections/layout-section/flex-order-field.tsx
|
|
933
|
-
var
|
|
934
|
-
var
|
|
935
|
-
var
|
|
936
|
-
var
|
|
937
|
-
var
|
|
938
|
-
var
|
|
1063
|
+
var React31 = __toESM(require("react"));
|
|
1064
|
+
var import_react9 = require("react");
|
|
1065
|
+
var import_editor_controls18 = require("@elementor/editor-controls");
|
|
1066
|
+
var import_icons9 = require("@elementor/icons");
|
|
1067
|
+
var import_ui24 = require("@elementor/ui");
|
|
1068
|
+
var import_i18n13 = require("@wordpress/i18n");
|
|
939
1069
|
var FIRST_DEFAULT_VALUE = -99999;
|
|
940
1070
|
var LAST_DEFAULT_VALUE = 99999;
|
|
941
1071
|
var FIRST = "first";
|
|
942
1072
|
var LAST = "last";
|
|
943
1073
|
var CUSTOM = "custom";
|
|
1074
|
+
var orderValueMap = {
|
|
1075
|
+
[FIRST]: FIRST_DEFAULT_VALUE,
|
|
1076
|
+
[LAST]: LAST_DEFAULT_VALUE
|
|
1077
|
+
};
|
|
944
1078
|
var items = [
|
|
945
1079
|
{
|
|
946
1080
|
value: FIRST,
|
|
947
|
-
label: (0,
|
|
948
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1081
|
+
label: (0, import_i18n13.__)("First", "elementor"),
|
|
1082
|
+
renderContent: ({ size }) => /* @__PURE__ */ React31.createElement(import_icons9.ArrowUpSmallIcon, { fontSize: size }),
|
|
949
1083
|
showTooltip: true
|
|
950
1084
|
},
|
|
951
1085
|
{
|
|
952
1086
|
value: LAST,
|
|
953
|
-
label: (0,
|
|
954
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1087
|
+
label: (0, import_i18n13.__)("Last", "elementor"),
|
|
1088
|
+
renderContent: ({ size }) => /* @__PURE__ */ React31.createElement(import_icons9.ArrowDownSmallIcon, { fontSize: size }),
|
|
955
1089
|
showTooltip: true
|
|
956
1090
|
},
|
|
957
1091
|
{
|
|
958
1092
|
value: CUSTOM,
|
|
959
|
-
label: (0,
|
|
960
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1093
|
+
label: (0, import_i18n13.__)("Custom", "elementor"),
|
|
1094
|
+
renderContent: ({ size }) => /* @__PURE__ */ React31.createElement(import_icons9.PencilIcon, { fontSize: size }),
|
|
961
1095
|
showTooltip: true
|
|
962
1096
|
}
|
|
963
1097
|
];
|
|
964
1098
|
var FlexOrderField = () => {
|
|
965
1099
|
const { isSiteRtl } = useDirection(), [order, setOrder] = useStylesField("order");
|
|
966
|
-
const [groupControlValue, setGroupControlValue] = (0,
|
|
1100
|
+
const [groupControlValue, setGroupControlValue] = (0, import_react9.useState)(getGroupControlValue(order?.value || null));
|
|
967
1101
|
const handleToggleButtonChange = (group) => {
|
|
968
1102
|
setGroupControlValue(group);
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
};
|
|
974
|
-
setOrder(group ? orderValueMap[group] : null);
|
|
1103
|
+
if (!group || group === CUSTOM) {
|
|
1104
|
+
setOrder(null);
|
|
1105
|
+
return;
|
|
1106
|
+
}
|
|
1107
|
+
setOrder({ $$type: "number", value: orderValueMap[group] });
|
|
975
1108
|
};
|
|
976
|
-
return /* @__PURE__ */
|
|
977
|
-
|
|
1109
|
+
return /* @__PURE__ */ React31.createElement(import_ui24.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React31.createElement(import_ui24.ThemeProvider, null, /* @__PURE__ */ React31.createElement(import_ui24.Stack, { gap: 2 }, /* @__PURE__ */ React31.createElement(import_ui24.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React31.createElement(import_editor_controls18.ControlLabel, null, (0, import_i18n13.__)("Order", "elementor"))), /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React31.createElement(
|
|
1110
|
+
import_editor_controls18.ControlToggleButtonGroup,
|
|
978
1111
|
{
|
|
979
1112
|
items,
|
|
980
1113
|
value: groupControlValue,
|
|
981
1114
|
onChange: handleToggleButtonChange,
|
|
982
1115
|
exclusive: true
|
|
983
1116
|
}
|
|
984
|
-
))), CUSTOM === groupControlValue && /* @__PURE__ */
|
|
985
|
-
|
|
1117
|
+
))), CUSTOM === groupControlValue && /* @__PURE__ */ React31.createElement(StylesField, { bind: "order" }, /* @__PURE__ */ React31.createElement(import_ui24.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React31.createElement(import_editor_controls18.ControlLabel, null, (0, import_i18n13.__)("Custom order", "elementor"))), /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React31.createElement(
|
|
1118
|
+
import_editor_controls18.NumberControl,
|
|
986
1119
|
{
|
|
987
1120
|
min: FIRST_DEFAULT_VALUE + 1,
|
|
988
1121
|
max: LAST_DEFAULT_VALUE - 1,
|
|
@@ -1000,139 +1133,213 @@ var getGroupControlValue = (order) => {
|
|
|
1000
1133
|
return 0 === order || order ? CUSTOM : null;
|
|
1001
1134
|
};
|
|
1002
1135
|
|
|
1003
|
-
// src/components/style-sections/layout-section/
|
|
1004
|
-
var
|
|
1005
|
-
var import_editor_controls18 = require("@elementor/editor-controls");
|
|
1006
|
-
var import_icons9 = require("@elementor/icons");
|
|
1007
|
-
var import_ui22 = require("@elementor/ui");
|
|
1008
|
-
var import_i18n12 = require("@wordpress/i18n");
|
|
1009
|
-
var JustifyContentField = () => {
|
|
1010
|
-
const options7 = useOptions3(), { isSiteRtl } = useDirection();
|
|
1011
|
-
return /* @__PURE__ */ React29.createElement(import_ui22.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React29.createElement(import_ui22.ThemeProvider, null, /* @__PURE__ */ React29.createElement(StylesField, { bind: "justify-content" }, /* @__PURE__ */ React29.createElement(import_ui22.Stack, { gap: 1 }, /* @__PURE__ */ React29.createElement(import_editor_controls18.ControlLabel, null, (0, import_i18n12.__)("Justify Content", "elementor")), /* @__PURE__ */ React29.createElement(import_editor_controls18.ToggleControl, { options: options7, fullWidth: true })))));
|
|
1012
|
-
};
|
|
1013
|
-
var useOptions3 = () => {
|
|
1014
|
-
const StartIcon = (0, import_ui22.withDirection)(import_icons9.JustifyTopIcon), EndIcon = (0, import_ui22.withDirection)(import_icons9.JustifyBottomIcon);
|
|
1015
|
-
return [
|
|
1016
|
-
{
|
|
1017
|
-
value: "start",
|
|
1018
|
-
label: (0, import_i18n12.__)("Start", "elementor"),
|
|
1019
|
-
renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon2, { icon: StartIcon, size }),
|
|
1020
|
-
showTooltip: true
|
|
1021
|
-
},
|
|
1022
|
-
{
|
|
1023
|
-
value: "center",
|
|
1024
|
-
label: (0, import_i18n12.__)("Center", "elementor"),
|
|
1025
|
-
renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon2, { icon: import_icons9.JustifyCenterIcon, size }),
|
|
1026
|
-
showTooltip: true
|
|
1027
|
-
},
|
|
1028
|
-
{
|
|
1029
|
-
value: "end",
|
|
1030
|
-
label: (0, import_i18n12.__)("End", "elementor"),
|
|
1031
|
-
renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon2, { icon: EndIcon, size }),
|
|
1032
|
-
showTooltip: true
|
|
1033
|
-
},
|
|
1034
|
-
{
|
|
1035
|
-
value: "space-between",
|
|
1036
|
-
label: (0, import_i18n12.__)("Space between", "elementor"),
|
|
1037
|
-
renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon2, { icon: import_icons9.JustifySpaceBetweenVerticalIcon, size }),
|
|
1038
|
-
showTooltip: true
|
|
1039
|
-
},
|
|
1040
|
-
{
|
|
1041
|
-
value: "space-around",
|
|
1042
|
-
label: (0, import_i18n12.__)("Space around", "elementor"),
|
|
1043
|
-
renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon2, { icon: import_icons9.JustifySpaceAroundVerticalIcon, size }),
|
|
1044
|
-
showTooltip: true
|
|
1045
|
-
},
|
|
1046
|
-
{
|
|
1047
|
-
value: "space-evenly",
|
|
1048
|
-
label: (0, import_i18n12.__)("Space evenly", "elementor"),
|
|
1049
|
-
renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon2, { icon: import_icons9.JustifyDistributeVerticalIcon, size }),
|
|
1050
|
-
showTooltip: true
|
|
1051
|
-
}
|
|
1052
|
-
];
|
|
1053
|
-
};
|
|
1054
|
-
var RotatedIcon2 = ({ icon: Icon, size }) => {
|
|
1055
|
-
const [direction] = useStylesField("flex-direction"), isRtl = "rtl" === (0, import_ui22.useTheme)().direction, rotationMultiplier = isRtl ? -1 : 1;
|
|
1056
|
-
const rotationAngelMap = {
|
|
1057
|
-
row: -90,
|
|
1058
|
-
column: 0,
|
|
1059
|
-
"row-reverse": 90,
|
|
1060
|
-
"column-reverse": 180
|
|
1061
|
-
};
|
|
1062
|
-
return /* @__PURE__ */ React29.createElement(
|
|
1063
|
-
Icon,
|
|
1064
|
-
{
|
|
1065
|
-
fontSize: size,
|
|
1066
|
-
sx: { transition: ".3s", rotate: `${rotationAngelMap[direction || "row"] * rotationMultiplier}deg` }
|
|
1067
|
-
}
|
|
1068
|
-
);
|
|
1069
|
-
};
|
|
1070
|
-
|
|
1071
|
-
// src/components/style-sections/layout-section/wrap-field.tsx
|
|
1072
|
-
var React30 = __toESM(require("react"));
|
|
1136
|
+
// src/components/style-sections/layout-section/flex-size-field.tsx
|
|
1137
|
+
var React32 = __toESM(require("react"));
|
|
1073
1138
|
var import_editor_controls19 = require("@elementor/editor-controls");
|
|
1074
1139
|
var import_icons10 = require("@elementor/icons");
|
|
1075
|
-
var
|
|
1076
|
-
var
|
|
1077
|
-
var
|
|
1140
|
+
var import_ui25 = require("@elementor/ui");
|
|
1141
|
+
var import_i18n14 = require("@wordpress/i18n");
|
|
1142
|
+
var DEFAULT = 1;
|
|
1143
|
+
var items2 = [
|
|
1078
1144
|
{
|
|
1079
|
-
value: "
|
|
1080
|
-
label: (0,
|
|
1081
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1145
|
+
value: "flex-grow",
|
|
1146
|
+
label: (0, import_i18n14.__)("Grow", "elementor"),
|
|
1147
|
+
renderContent: ({ size }) => /* @__PURE__ */ React32.createElement(import_icons10.ExpandIcon, { fontSize: size }),
|
|
1082
1148
|
showTooltip: true
|
|
1083
1149
|
},
|
|
1084
1150
|
{
|
|
1085
|
-
value: "
|
|
1086
|
-
label: (0,
|
|
1087
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1151
|
+
value: "flex-shrink",
|
|
1152
|
+
label: (0, import_i18n14.__)("Shrink", "elementor"),
|
|
1153
|
+
renderContent: ({ size }) => /* @__PURE__ */ React32.createElement(import_icons10.ShrinkIcon, { fontSize: size }),
|
|
1088
1154
|
showTooltip: true
|
|
1089
1155
|
},
|
|
1090
1156
|
{
|
|
1091
|
-
value: "
|
|
1092
|
-
label: (0,
|
|
1093
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1157
|
+
value: "custom",
|
|
1158
|
+
label: (0, import_i18n14.__)("Custom", "elementor"),
|
|
1159
|
+
renderContent: ({ size }) => /* @__PURE__ */ React32.createElement(import_icons10.PencilIcon, { fontSize: size }),
|
|
1160
|
+
showTooltip: true
|
|
1161
|
+
}
|
|
1162
|
+
];
|
|
1163
|
+
var FlexSizeField = () => {
|
|
1164
|
+
const { isSiteRtl } = useDirection(), [growField, setGrowField] = useStylesField("flex-grow"), [shrinkField, setShrinkField] = useStylesField("flex-shrink"), [basisField, setBasisField] = useStylesField("flex-basis");
|
|
1165
|
+
const grow = growField?.value || null, shrink = shrinkField?.value || null, basis = basisField?.value || null;
|
|
1166
|
+
const currentGroup = React32.useMemo(() => getActiveGroup({ grow, shrink, basis }), [grow, shrink, basis]), [activeGroup, setActiveGroup] = React32.useState(currentGroup);
|
|
1167
|
+
const onChangeGroup = (group = null) => {
|
|
1168
|
+
setActiveGroup(group);
|
|
1169
|
+
setBasisField(null);
|
|
1170
|
+
if (!group || group === "custom") {
|
|
1171
|
+
setGrowField(null);
|
|
1172
|
+
setShrinkField(null);
|
|
1173
|
+
return;
|
|
1174
|
+
}
|
|
1175
|
+
if (group === "flex-grow") {
|
|
1176
|
+
setGrowField({ $$type: "number", value: DEFAULT });
|
|
1177
|
+
setShrinkField(null);
|
|
1178
|
+
return;
|
|
1179
|
+
}
|
|
1180
|
+
setGrowField(null);
|
|
1181
|
+
setShrinkField({ $$type: "number", value: DEFAULT });
|
|
1182
|
+
};
|
|
1183
|
+
return /* @__PURE__ */ React32.createElement(import_ui25.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React32.createElement(import_ui25.ThemeProvider, null, /* @__PURE__ */ React32.createElement(import_ui25.Stack, { gap: 2 }, /* @__PURE__ */ React32.createElement(import_ui25.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React32.createElement(import_ui25.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React32.createElement(import_editor_controls19.ControlLabel, null, (0, import_i18n14.__)("Size", "elementor"))), /* @__PURE__ */ React32.createElement(import_ui25.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React32.createElement(
|
|
1184
|
+
import_editor_controls19.ControlToggleButtonGroup,
|
|
1185
|
+
{
|
|
1186
|
+
value: activeGroup,
|
|
1187
|
+
onChange: onChangeGroup,
|
|
1188
|
+
items: items2,
|
|
1189
|
+
exclusive: true
|
|
1190
|
+
}
|
|
1191
|
+
))), "custom" === activeGroup && /* @__PURE__ */ React32.createElement(FlexCustomField, null))));
|
|
1192
|
+
};
|
|
1193
|
+
var FlexCustomField = () => /* @__PURE__ */ React32.createElement(React32.Fragment, null, /* @__PURE__ */ React32.createElement(StylesField, { bind: "flex-grow" }, /* @__PURE__ */ React32.createElement(import_ui25.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React32.createElement(import_ui25.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React32.createElement(import_editor_controls19.ControlLabel, null, (0, import_i18n14.__)("Grow", "elementor"))), /* @__PURE__ */ React32.createElement(import_ui25.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React32.createElement(import_editor_controls19.NumberControl, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React32.createElement(StylesField, { bind: "flex-shrink" }, /* @__PURE__ */ React32.createElement(import_ui25.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React32.createElement(import_ui25.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React32.createElement(import_editor_controls19.ControlLabel, null, (0, import_i18n14.__)("Shrink", "elementor"))), /* @__PURE__ */ React32.createElement(import_ui25.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React32.createElement(import_editor_controls19.NumberControl, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React32.createElement(StylesField, { bind: "flex-basis" }, /* @__PURE__ */ React32.createElement(import_ui25.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React32.createElement(import_ui25.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React32.createElement(import_editor_controls19.ControlLabel, null, (0, import_i18n14.__)("Basis", "elementor"))), /* @__PURE__ */ React32.createElement(import_ui25.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React32.createElement(import_editor_controls19.SizeControl, null)))));
|
|
1194
|
+
var getActiveGroup = ({
|
|
1195
|
+
grow,
|
|
1196
|
+
shrink,
|
|
1197
|
+
basis
|
|
1198
|
+
}) => {
|
|
1199
|
+
if (null === grow && null === shrink && !basis) {
|
|
1200
|
+
return null;
|
|
1201
|
+
}
|
|
1202
|
+
if (shrink && grow || basis) {
|
|
1203
|
+
return "custom";
|
|
1204
|
+
}
|
|
1205
|
+
if (grow === DEFAULT) {
|
|
1206
|
+
return "flex-grow";
|
|
1207
|
+
}
|
|
1208
|
+
if (shrink === DEFAULT) {
|
|
1209
|
+
return "flex-shrink";
|
|
1210
|
+
}
|
|
1211
|
+
return "custom";
|
|
1212
|
+
};
|
|
1213
|
+
|
|
1214
|
+
// src/components/style-sections/layout-section/gap-control-field.tsx
|
|
1215
|
+
var React33 = __toESM(require("react"));
|
|
1216
|
+
var import_editor_controls20 = require("@elementor/editor-controls");
|
|
1217
|
+
var import_ui26 = require("@elementor/ui");
|
|
1218
|
+
var import_i18n15 = require("@wordpress/i18n");
|
|
1219
|
+
var GapControlField = () => {
|
|
1220
|
+
return /* @__PURE__ */ React33.createElement(import_ui26.Stack, { gap: 1 }, /* @__PURE__ */ React33.createElement(StylesField, { bind: "gap" }, /* @__PURE__ */ React33.createElement(import_editor_controls20.GapControl, { label: (0, import_i18n15.__)("Gaps", "elementor") })));
|
|
1221
|
+
};
|
|
1222
|
+
|
|
1223
|
+
// src/components/style-sections/layout-section/justify-content-field.tsx
|
|
1224
|
+
var React34 = __toESM(require("react"));
|
|
1225
|
+
var import_editor_controls21 = require("@elementor/editor-controls");
|
|
1226
|
+
var import_icons11 = require("@elementor/icons");
|
|
1227
|
+
var import_ui27 = require("@elementor/ui");
|
|
1228
|
+
var import_i18n16 = require("@wordpress/i18n");
|
|
1229
|
+
var StartIcon3 = (0, import_ui27.withDirection)(import_icons11.JustifyTopIcon);
|
|
1230
|
+
var EndIcon3 = (0, import_ui27.withDirection)(import_icons11.JustifyBottomIcon);
|
|
1231
|
+
var iconProps3 = {
|
|
1232
|
+
isClockwise: true,
|
|
1233
|
+
offset: -90
|
|
1234
|
+
};
|
|
1235
|
+
var options4 = [
|
|
1236
|
+
{
|
|
1237
|
+
value: "start",
|
|
1238
|
+
label: (0, import_i18n16.__)("Start", "elementor"),
|
|
1239
|
+
renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: StartIcon3, size, ...iconProps3 }),
|
|
1240
|
+
showTooltip: true
|
|
1241
|
+
},
|
|
1242
|
+
{
|
|
1243
|
+
value: "center",
|
|
1244
|
+
label: (0, import_i18n16.__)("Center", "elementor"),
|
|
1245
|
+
renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: import_icons11.JustifyCenterIcon, size, ...iconProps3 }),
|
|
1246
|
+
showTooltip: true
|
|
1247
|
+
},
|
|
1248
|
+
{
|
|
1249
|
+
value: "end",
|
|
1250
|
+
label: (0, import_i18n16.__)("End", "elementor"),
|
|
1251
|
+
renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: EndIcon3, size, ...iconProps3 }),
|
|
1252
|
+
showTooltip: true
|
|
1253
|
+
},
|
|
1254
|
+
{
|
|
1255
|
+
value: "space-between",
|
|
1256
|
+
label: (0, import_i18n16.__)("Space between", "elementor"),
|
|
1257
|
+
renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: import_icons11.JustifySpaceBetweenVerticalIcon, size, ...iconProps3 }),
|
|
1258
|
+
showTooltip: true
|
|
1259
|
+
},
|
|
1260
|
+
{
|
|
1261
|
+
value: "space-around",
|
|
1262
|
+
label: (0, import_i18n16.__)("Space around", "elementor"),
|
|
1263
|
+
renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: import_icons11.JustifySpaceAroundVerticalIcon, size, ...iconProps3 }),
|
|
1264
|
+
showTooltip: true
|
|
1265
|
+
},
|
|
1266
|
+
{
|
|
1267
|
+
value: "space-evenly",
|
|
1268
|
+
label: (0, import_i18n16.__)("Space evenly", "elementor"),
|
|
1269
|
+
renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: import_icons11.JustifyDistributeVerticalIcon, size, ...iconProps3 }),
|
|
1270
|
+
showTooltip: true
|
|
1271
|
+
}
|
|
1272
|
+
];
|
|
1273
|
+
var JustifyContentField = () => {
|
|
1274
|
+
const { isSiteRtl } = useDirection();
|
|
1275
|
+
return /* @__PURE__ */ React34.createElement(import_ui27.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React34.createElement(import_ui27.ThemeProvider, null, /* @__PURE__ */ React34.createElement(StylesField, { bind: "justify-content" }, /* @__PURE__ */ React34.createElement(import_ui27.Stack, { gap: 1 }, /* @__PURE__ */ React34.createElement(import_editor_controls21.ControlLabel, null, (0, import_i18n16.__)("Justify content", "elementor")), /* @__PURE__ */ React34.createElement(import_editor_controls21.ToggleControl, { options: options4, fullWidth: true })))));
|
|
1276
|
+
};
|
|
1277
|
+
|
|
1278
|
+
// src/components/style-sections/layout-section/wrap-field.tsx
|
|
1279
|
+
var React35 = __toESM(require("react"));
|
|
1280
|
+
var import_editor_controls22 = require("@elementor/editor-controls");
|
|
1281
|
+
var import_icons12 = require("@elementor/icons");
|
|
1282
|
+
var import_ui28 = require("@elementor/ui");
|
|
1283
|
+
var import_i18n17 = require("@wordpress/i18n");
|
|
1284
|
+
var options5 = [
|
|
1285
|
+
{
|
|
1286
|
+
value: "nowrap",
|
|
1287
|
+
label: (0, import_i18n17.__)("No wrap", "elementor"),
|
|
1288
|
+
renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(import_icons12.ArrowRightIcon, { fontSize: size }),
|
|
1289
|
+
showTooltip: true
|
|
1290
|
+
},
|
|
1291
|
+
{
|
|
1292
|
+
value: "wrap",
|
|
1293
|
+
label: (0, import_i18n17.__)("Wrap", "elementor"),
|
|
1294
|
+
renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(import_icons12.ArrowBackIcon, { fontSize: size }),
|
|
1295
|
+
showTooltip: true
|
|
1296
|
+
},
|
|
1297
|
+
{
|
|
1298
|
+
value: "wrap-reverse",
|
|
1299
|
+
label: (0, import_i18n17.__)("Reversed wrap", "elementor"),
|
|
1300
|
+
renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(import_icons12.ArrowForwardIcon, { fontSize: size }),
|
|
1094
1301
|
showTooltip: true
|
|
1095
1302
|
}
|
|
1096
1303
|
];
|
|
1097
1304
|
var WrapField = () => {
|
|
1098
1305
|
const { isSiteRtl } = useDirection();
|
|
1099
|
-
return /* @__PURE__ */
|
|
1306
|
+
return /* @__PURE__ */ React35.createElement(import_ui28.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React35.createElement(import_ui28.ThemeProvider, null, /* @__PURE__ */ React35.createElement(StylesField, { bind: "flex-wrap" }, /* @__PURE__ */ React35.createElement(import_ui28.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React35.createElement(import_ui28.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React35.createElement(import_editor_controls22.ControlLabel, null, (0, import_i18n17.__)("Wrap", "elementor"))), /* @__PURE__ */ React35.createElement(import_ui28.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React35.createElement(import_editor_controls22.ToggleControl, { options: options5 }))))));
|
|
1100
1307
|
};
|
|
1101
1308
|
|
|
1102
1309
|
// src/components/style-sections/layout-section/layout-section.tsx
|
|
1103
1310
|
var LayoutSection = () => {
|
|
1104
1311
|
const [display] = useStylesField("display");
|
|
1105
|
-
return /* @__PURE__ */
|
|
1312
|
+
return /* @__PURE__ */ React36.createElement(import_ui29.Stack, { gap: 2 }, /* @__PURE__ */ React36.createElement(DisplayField, null), "flex" === display?.value && /* @__PURE__ */ React36.createElement(FlexFields, null));
|
|
1106
1313
|
};
|
|
1107
|
-
var FlexFields = () => /* @__PURE__ */
|
|
1314
|
+
var FlexFields = () => /* @__PURE__ */ React36.createElement(React36.Fragment, null, /* @__PURE__ */ React36.createElement(FlexDirectionField, null), /* @__PURE__ */ React36.createElement(JustifyContentField, null), /* @__PURE__ */ React36.createElement(AlignItemsField, null), /* @__PURE__ */ React36.createElement(import_ui29.Divider, null), /* @__PURE__ */ React36.createElement(GapControlField, null), /* @__PURE__ */ React36.createElement(WrapField, null), /* @__PURE__ */ React36.createElement(import_ui29.Divider, null), /* @__PURE__ */ React36.createElement(import_editor_controls23.ControlLabel, null, (0, import_i18n18.__)("Flex child", "elementor")), /* @__PURE__ */ React36.createElement(AlignSelfChild, null), /* @__PURE__ */ React36.createElement(FlexOrderField, null), /* @__PURE__ */ React36.createElement(FlexSizeField, null));
|
|
1108
1315
|
|
|
1109
1316
|
// src/components/style-sections/position-section/position-section.tsx
|
|
1110
|
-
var
|
|
1111
|
-
var
|
|
1112
|
-
var
|
|
1317
|
+
var React40 = __toESM(require("react"));
|
|
1318
|
+
var import_react12 = require("react");
|
|
1319
|
+
var import_ui33 = require("@elementor/ui");
|
|
1113
1320
|
|
|
1114
1321
|
// src/hooks/use-style-prop-history.ts
|
|
1115
|
-
var
|
|
1322
|
+
var import_react11 = require("react");
|
|
1116
1323
|
var import_editor_elements4 = require("@elementor/editor-elements");
|
|
1117
1324
|
|
|
1118
1325
|
// src/hooks/use-prop-value-history.ts
|
|
1119
|
-
var
|
|
1326
|
+
var import_react10 = require("react");
|
|
1120
1327
|
var import_utils2 = require("@elementor/utils");
|
|
1121
1328
|
var PROPS_VALUES_HISTORY_PREFIX = "elementor/editor-editing-panel/prop-value-history";
|
|
1122
1329
|
var usePropValueHistory = () => {
|
|
1123
1330
|
const { element } = useElement();
|
|
1124
1331
|
const elementKey = `${PROPS_VALUES_HISTORY_PREFIX}/${element.id}`;
|
|
1125
|
-
const getElementPropsHistory = (0,
|
|
1332
|
+
const getElementPropsHistory = (0, import_react10.useCallback)(() => {
|
|
1126
1333
|
return (0, import_utils2.getSessionStorageItem)(elementKey);
|
|
1127
1334
|
}, [elementKey]);
|
|
1128
|
-
const getPropValue = (0,
|
|
1335
|
+
const getPropValue = (0, import_react10.useCallback)(
|
|
1129
1336
|
(propKey) => {
|
|
1130
1337
|
const elementPropValues = getElementPropsHistory();
|
|
1131
1338
|
return elementPropValues?.[propKey] ?? null;
|
|
1132
1339
|
},
|
|
1133
1340
|
[getElementPropsHistory]
|
|
1134
1341
|
);
|
|
1135
|
-
const setPropValue = (0,
|
|
1342
|
+
const setPropValue = (0, import_react10.useCallback)(
|
|
1136
1343
|
(propKey, propValue) => {
|
|
1137
1344
|
const elementPropValues = getElementPropsHistory();
|
|
1138
1345
|
const updatedElementPropValues = { ...elementPropValues, [propKey]: propValue };
|
|
@@ -1140,7 +1347,7 @@ var usePropValueHistory = () => {
|
|
|
1140
1347
|
},
|
|
1141
1348
|
[getElementPropsHistory, elementKey]
|
|
1142
1349
|
);
|
|
1143
|
-
const removeProp = (0,
|
|
1350
|
+
const removeProp = (0, import_react10.useCallback)(
|
|
1144
1351
|
(propKey) => {
|
|
1145
1352
|
const elementPropValues = getElementPropsHistory();
|
|
1146
1353
|
const updatedElementPropValues = Object.fromEntries(
|
|
@@ -1150,7 +1357,7 @@ var usePropValueHistory = () => {
|
|
|
1150
1357
|
},
|
|
1151
1358
|
[getElementPropsHistory, elementKey]
|
|
1152
1359
|
);
|
|
1153
|
-
return (0,
|
|
1360
|
+
return (0, import_react10.useMemo)(() => ({ getPropValue, setPropValue, removeProp }), [getPropValue, removeProp, setPropValue]);
|
|
1154
1361
|
};
|
|
1155
1362
|
|
|
1156
1363
|
// src/hooks/use-style-prop-history.ts
|
|
@@ -1158,10 +1365,10 @@ var useStylePropsHistory = (props) => {
|
|
|
1158
1365
|
const { element } = useElement();
|
|
1159
1366
|
const { id: styleDefID, meta } = useStyle();
|
|
1160
1367
|
const { getPropValue, setPropValue, removeProp } = usePropValueHistory();
|
|
1161
|
-
const styleDef = (0, import_editor_elements4.getElementStyles)(element.id)?.[styleDefID];
|
|
1368
|
+
const styleDef = styleDefID ? (0, import_editor_elements4.getElementStyles)(element.id)?.[styleDefID] : null;
|
|
1162
1369
|
const styleVariant = styleDef ? (0, import_editor_elements4.getVariantByMeta)(styleDef, meta) : null;
|
|
1163
1370
|
const styleVariantPath = `${styleDefID}-${styleVariant?.meta.breakpoint}-${styleVariant?.meta.state}`;
|
|
1164
|
-
const saveStylePropsHistory = (0,
|
|
1371
|
+
const saveStylePropsHistory = (0, import_react11.useCallback)(() => {
|
|
1165
1372
|
props.forEach((propKey) => {
|
|
1166
1373
|
const propValue = styleVariant?.props[propKey];
|
|
1167
1374
|
if (propValue) {
|
|
@@ -1170,7 +1377,7 @@ var useStylePropsHistory = (props) => {
|
|
|
1170
1377
|
}
|
|
1171
1378
|
});
|
|
1172
1379
|
}, [props, setPropValue, styleVariant?.props, styleVariantPath]);
|
|
1173
|
-
const updateStylePropsFromHistory = (0,
|
|
1380
|
+
const updateStylePropsFromHistory = (0, import_react11.useCallback)(() => {
|
|
1174
1381
|
const propValuesFromHistory = props.reduce((allProps, currentPropKey) => {
|
|
1175
1382
|
const propPath = `${styleVariantPath}-${currentPropKey}`;
|
|
1176
1383
|
const propHistory = getPropValue(propPath);
|
|
@@ -1190,7 +1397,7 @@ var useStylePropsHistory = (props) => {
|
|
|
1190
1397
|
});
|
|
1191
1398
|
}
|
|
1192
1399
|
}, [element.id, getPropValue, meta, props, removeProp, styleDefID, styleVariantPath]);
|
|
1193
|
-
const clearCurrentStyleProps = (0,
|
|
1400
|
+
const clearCurrentStyleProps = (0, import_react11.useCallback)(() => {
|
|
1194
1401
|
const resetValues = props.reduce(
|
|
1195
1402
|
(allProps, currentPropKey) => ({
|
|
1196
1403
|
...allProps,
|
|
@@ -1206,53 +1413,53 @@ var useStylePropsHistory = (props) => {
|
|
|
1206
1413
|
bind: "classes"
|
|
1207
1414
|
});
|
|
1208
1415
|
}, [element.id, meta, props, styleDefID]);
|
|
1209
|
-
return (0,
|
|
1416
|
+
return (0, import_react11.useMemo)(
|
|
1210
1417
|
() => ({ saveStylePropsHistory, updateStylePropsFromHistory, clearCurrentStyleProps }),
|
|
1211
1418
|
[saveStylePropsHistory, updateStylePropsFromHistory, clearCurrentStyleProps]
|
|
1212
1419
|
);
|
|
1213
1420
|
};
|
|
1214
1421
|
|
|
1215
1422
|
// src/components/style-sections/position-section/dimensions-field.tsx
|
|
1216
|
-
var
|
|
1217
|
-
var
|
|
1218
|
-
var
|
|
1219
|
-
var
|
|
1220
|
-
var
|
|
1423
|
+
var React37 = __toESM(require("react"));
|
|
1424
|
+
var import_editor_controls24 = require("@elementor/editor-controls");
|
|
1425
|
+
var import_icons13 = require("@elementor/icons");
|
|
1426
|
+
var import_ui30 = require("@elementor/ui");
|
|
1427
|
+
var import_i18n19 = require("@wordpress/i18n");
|
|
1221
1428
|
var sideIcons = {
|
|
1222
|
-
left: /* @__PURE__ */
|
|
1223
|
-
right: /* @__PURE__ */
|
|
1224
|
-
top: /* @__PURE__ */
|
|
1225
|
-
bottom: /* @__PURE__ */
|
|
1429
|
+
left: /* @__PURE__ */ React37.createElement(import_icons13.SideLeftIcon, { fontSize: "tiny" }),
|
|
1430
|
+
right: /* @__PURE__ */ React37.createElement(import_icons13.SideRightIcon, { fontSize: "tiny" }),
|
|
1431
|
+
top: /* @__PURE__ */ React37.createElement(import_icons13.SideTopIcon, { fontSize: "tiny" }),
|
|
1432
|
+
bottom: /* @__PURE__ */ React37.createElement(import_icons13.SideBottomIcon, { fontSize: "tiny" })
|
|
1226
1433
|
};
|
|
1227
1434
|
var DimensionsField = () => {
|
|
1228
|
-
return /* @__PURE__ */
|
|
1435
|
+
return /* @__PURE__ */ React37.createElement(React37.Fragment, null, /* @__PURE__ */ React37.createElement(import_ui30.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React37.createElement(DimensionField, { side: "top", label: (0, import_i18n19.__)("Top", "elementor") }), /* @__PURE__ */ React37.createElement(DimensionField, { side: "right", label: (0, import_i18n19.__)("Right", "elementor") })), /* @__PURE__ */ React37.createElement(import_ui30.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React37.createElement(DimensionField, { side: "bottom", label: (0, import_i18n19.__)("Bottom", "elementor") }), /* @__PURE__ */ React37.createElement(DimensionField, { side: "left", label: (0, import_i18n19.__)("Left", "elementor") })));
|
|
1229
1436
|
};
|
|
1230
1437
|
var DimensionField = ({ side, label }) => {
|
|
1231
|
-
return /* @__PURE__ */
|
|
1438
|
+
return /* @__PURE__ */ React37.createElement(import_ui30.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React37.createElement(import_ui30.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React37.createElement(import_editor_controls24.ControlLabel, null, label)), /* @__PURE__ */ React37.createElement(import_ui30.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React37.createElement(StylesField, { bind: side }, /* @__PURE__ */ React37.createElement(import_editor_controls24.SizeControl, { startIcon: sideIcons[side] }))));
|
|
1232
1439
|
};
|
|
1233
1440
|
|
|
1234
1441
|
// src/components/style-sections/position-section/position-field.tsx
|
|
1235
|
-
var
|
|
1236
|
-
var
|
|
1237
|
-
var
|
|
1238
|
-
var
|
|
1442
|
+
var React38 = __toESM(require("react"));
|
|
1443
|
+
var import_editor_controls25 = require("@elementor/editor-controls");
|
|
1444
|
+
var import_ui31 = require("@elementor/ui");
|
|
1445
|
+
var import_i18n20 = require("@wordpress/i18n");
|
|
1239
1446
|
var positionOptions = [
|
|
1240
|
-
{ label: (0,
|
|
1241
|
-
{ label: (0,
|
|
1242
|
-
{ label: (0,
|
|
1243
|
-
{ label: (0,
|
|
1447
|
+
{ label: (0, import_i18n20.__)("Static", "elementor"), value: "static" },
|
|
1448
|
+
{ label: (0, import_i18n20.__)("Relative", "elementor"), value: "relative" },
|
|
1449
|
+
{ label: (0, import_i18n20.__)("Absolute", "elementor"), value: "absolute" },
|
|
1450
|
+
{ label: (0, import_i18n20.__)("Fixed", "elementor"), value: "fixed" }
|
|
1244
1451
|
];
|
|
1245
1452
|
var PositionField = () => {
|
|
1246
|
-
return /* @__PURE__ */
|
|
1453
|
+
return /* @__PURE__ */ React38.createElement(StylesField, { bind: "position" }, /* @__PURE__ */ React38.createElement(import_ui31.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React38.createElement(import_ui31.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React38.createElement(import_editor_controls25.ControlLabel, null, (0, import_i18n20.__)("Position", "elementor"))), /* @__PURE__ */ React38.createElement(import_ui31.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React38.createElement(import_editor_controls25.SelectControl, { options: positionOptions }))));
|
|
1247
1454
|
};
|
|
1248
1455
|
|
|
1249
1456
|
// src/components/style-sections/position-section/z-index-field.tsx
|
|
1250
|
-
var
|
|
1251
|
-
var
|
|
1252
|
-
var
|
|
1253
|
-
var
|
|
1457
|
+
var React39 = __toESM(require("react"));
|
|
1458
|
+
var import_editor_controls26 = require("@elementor/editor-controls");
|
|
1459
|
+
var import_ui32 = require("@elementor/ui");
|
|
1460
|
+
var import_i18n21 = require("@wordpress/i18n");
|
|
1254
1461
|
var ZIndexField = () => {
|
|
1255
|
-
return /* @__PURE__ */
|
|
1462
|
+
return /* @__PURE__ */ React39.createElement(StylesField, { bind: "z-index" }, /* @__PURE__ */ React39.createElement(import_ui32.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React39.createElement(import_ui32.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React39.createElement(import_editor_controls26.ControlLabel, null, (0, import_i18n21.__)("Z-Index", "elementor"))), /* @__PURE__ */ React39.createElement(import_ui32.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React39.createElement(import_editor_controls26.NumberControl, null))));
|
|
1256
1463
|
};
|
|
1257
1464
|
|
|
1258
1465
|
// src/components/style-sections/position-section/position-section.tsx
|
|
@@ -1260,12 +1467,12 @@ var dimensionsPropKeys = ["top", "bottom", "left", "right"];
|
|
|
1260
1467
|
var PositionSection = () => {
|
|
1261
1468
|
const [positionValue] = useStylesField("position");
|
|
1262
1469
|
usePositionChangeHandler();
|
|
1263
|
-
const isNotStatic = positionValue && positionValue !== "static";
|
|
1264
|
-
return /* @__PURE__ */
|
|
1470
|
+
const isNotStatic = positionValue && positionValue?.value !== "static";
|
|
1471
|
+
return /* @__PURE__ */ React40.createElement(import_ui33.Stack, { gap: 1.5 }, /* @__PURE__ */ React40.createElement(PositionField, null), isNotStatic ? /* @__PURE__ */ React40.createElement(React40.Fragment, null, /* @__PURE__ */ React40.createElement(DimensionsField, null), /* @__PURE__ */ React40.createElement(ZIndexField, null)) : null);
|
|
1265
1472
|
};
|
|
1266
1473
|
var usePositionChangeHandler = () => {
|
|
1267
1474
|
const dimensionsHistory = useStylePropsHistory(dimensionsPropKeys);
|
|
1268
|
-
const onPositionChange = (0,
|
|
1475
|
+
const onPositionChange = (0, import_react12.useCallback)(
|
|
1269
1476
|
(newPositionValue, previousPosition) => {
|
|
1270
1477
|
if (!dimensionsHistory) {
|
|
1271
1478
|
return;
|
|
@@ -1286,91 +1493,91 @@ var usePositionChangeHandler = () => {
|
|
|
1286
1493
|
};
|
|
1287
1494
|
|
|
1288
1495
|
// src/components/style-sections/size-section/size-section.tsx
|
|
1289
|
-
var
|
|
1290
|
-
var
|
|
1291
|
-
var
|
|
1292
|
-
var
|
|
1496
|
+
var React42 = __toESM(require("react"));
|
|
1497
|
+
var import_editor_controls28 = require("@elementor/editor-controls");
|
|
1498
|
+
var import_ui35 = require("@elementor/ui");
|
|
1499
|
+
var import_i18n23 = require("@wordpress/i18n");
|
|
1293
1500
|
|
|
1294
1501
|
// src/components/style-sections/size-section/overflow-field.tsx
|
|
1295
|
-
var
|
|
1296
|
-
var
|
|
1297
|
-
var
|
|
1298
|
-
var
|
|
1299
|
-
var
|
|
1300
|
-
var
|
|
1502
|
+
var React41 = __toESM(require("react"));
|
|
1503
|
+
var import_editor_controls27 = require("@elementor/editor-controls");
|
|
1504
|
+
var import_icons14 = require("@elementor/icons");
|
|
1505
|
+
var import_ui34 = require("@elementor/ui");
|
|
1506
|
+
var import_i18n22 = require("@wordpress/i18n");
|
|
1507
|
+
var options6 = [
|
|
1301
1508
|
{
|
|
1302
1509
|
value: "visible",
|
|
1303
|
-
label: (0,
|
|
1304
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1510
|
+
label: (0, import_i18n22.__)("Visible", "elementor"),
|
|
1511
|
+
renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(import_icons14.EyeIcon, { fontSize: size }),
|
|
1305
1512
|
showTooltip: true
|
|
1306
1513
|
},
|
|
1307
1514
|
{
|
|
1308
1515
|
value: "hidden",
|
|
1309
|
-
label: (0,
|
|
1310
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1516
|
+
label: (0, import_i18n22.__)("Hidden", "elementor"),
|
|
1517
|
+
renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(import_icons14.EyeOffIcon, { fontSize: size }),
|
|
1311
1518
|
showTooltip: true
|
|
1312
1519
|
},
|
|
1313
1520
|
{
|
|
1314
1521
|
value: "auto",
|
|
1315
|
-
label: (0,
|
|
1316
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1522
|
+
label: (0, import_i18n22.__)("Auto", "elementor"),
|
|
1523
|
+
renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(import_icons14.ExpandBottomIcon, { fontSize: size }),
|
|
1317
1524
|
showTooltip: true
|
|
1318
1525
|
}
|
|
1319
1526
|
];
|
|
1320
1527
|
var OverflowField = () => {
|
|
1321
|
-
return /* @__PURE__ */
|
|
1528
|
+
return /* @__PURE__ */ React41.createElement(StylesField, { bind: "overflow" }, /* @__PURE__ */ React41.createElement(import_ui34.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React41.createElement(import_ui34.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(import_editor_controls27.ControlLabel, null, (0, import_i18n22.__)("Overflow", "elementor"))), /* @__PURE__ */ React41.createElement(import_ui34.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React41.createElement(import_editor_controls27.ToggleControl, { options: options6 }))));
|
|
1322
1529
|
};
|
|
1323
1530
|
|
|
1324
1531
|
// src/components/style-sections/size-section/size-section.tsx
|
|
1325
1532
|
var SizeSection = () => {
|
|
1326
|
-
return /* @__PURE__ */
|
|
1533
|
+
return /* @__PURE__ */ React42.createElement(import_ui35.Stack, { gap: 1.5 }, /* @__PURE__ */ React42.createElement(import_ui35.Grid, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React42.createElement(import_ui35.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(SizeField, { bind: "width", label: (0, import_i18n23.__)("Width", "elementor") })), /* @__PURE__ */ React42.createElement(import_ui35.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(SizeField, { bind: "height", label: (0, import_i18n23.__)("Height", "elementor") }))), /* @__PURE__ */ React42.createElement(import_ui35.Grid, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React42.createElement(import_ui35.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(SizeField, { bind: "min-width", label: (0, import_i18n23.__)("Min. Width", "elementor") })), /* @__PURE__ */ React42.createElement(import_ui35.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(SizeField, { bind: "min-height", label: (0, import_i18n23.__)("Min. Height", "elementor") }))), /* @__PURE__ */ React42.createElement(import_ui35.Grid, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React42.createElement(import_ui35.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(SizeField, { bind: "max-width", label: (0, import_i18n23.__)("Max. Width", "elementor") })), /* @__PURE__ */ React42.createElement(import_ui35.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(SizeField, { bind: "max-height", label: (0, import_i18n23.__)("Max. Height", "elementor") }))), /* @__PURE__ */ React42.createElement(import_ui35.Divider, null), /* @__PURE__ */ React42.createElement(import_ui35.Stack, null, /* @__PURE__ */ React42.createElement(OverflowField, null)));
|
|
1327
1534
|
};
|
|
1328
1535
|
var SizeField = ({ label, bind }) => {
|
|
1329
|
-
return /* @__PURE__ */
|
|
1536
|
+
return /* @__PURE__ */ React42.createElement(StylesField, { bind }, /* @__PURE__ */ React42.createElement(import_ui35.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React42.createElement(import_ui35.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React42.createElement(import_editor_controls28.ControlLabel, null, label)), /* @__PURE__ */ React42.createElement(import_ui35.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React42.createElement(import_editor_controls28.SizeControl, null))));
|
|
1330
1537
|
};
|
|
1331
1538
|
|
|
1332
1539
|
// src/components/style-sections/spacing-section/spacing-section.tsx
|
|
1333
|
-
var
|
|
1334
|
-
var
|
|
1335
|
-
var
|
|
1336
|
-
var
|
|
1540
|
+
var React43 = __toESM(require("react"));
|
|
1541
|
+
var import_editor_controls29 = require("@elementor/editor-controls");
|
|
1542
|
+
var import_ui36 = require("@elementor/ui");
|
|
1543
|
+
var import_i18n24 = require("@wordpress/i18n");
|
|
1337
1544
|
var SpacingSection = () => {
|
|
1338
|
-
return /* @__PURE__ */
|
|
1545
|
+
return /* @__PURE__ */ React43.createElement(import_ui36.Stack, { gap: 1.5 }, /* @__PURE__ */ React43.createElement(StylesField, { bind: "padding" }, /* @__PURE__ */ React43.createElement(import_editor_controls29.LinkedDimensionsControl, { label: (0, import_i18n24.__)("Padding", "elementor") })), /* @__PURE__ */ React43.createElement(import_ui36.Divider, null), /* @__PURE__ */ React43.createElement(StylesField, { bind: "margin" }, /* @__PURE__ */ React43.createElement(import_editor_controls29.LinkedDimensionsControl, { label: (0, import_i18n24.__)("Margin", "elementor") })));
|
|
1339
1546
|
};
|
|
1340
1547
|
|
|
1341
1548
|
// src/components/style-sections/typography-section/typography-section.tsx
|
|
1342
|
-
var
|
|
1343
|
-
var
|
|
1549
|
+
var React57 = __toESM(require("react"));
|
|
1550
|
+
var import_ui49 = require("@elementor/ui");
|
|
1344
1551
|
|
|
1345
1552
|
// src/components/collapsible-content.tsx
|
|
1346
|
-
var
|
|
1347
|
-
var
|
|
1348
|
-
var
|
|
1349
|
-
var
|
|
1553
|
+
var React44 = __toESM(require("react"));
|
|
1554
|
+
var import_react13 = require("react");
|
|
1555
|
+
var import_ui37 = require("@elementor/ui");
|
|
1556
|
+
var import_i18n25 = require("@wordpress/i18n");
|
|
1350
1557
|
var CollapsibleContent = ({ children, defaultOpen = false }) => {
|
|
1351
|
-
const [open, setOpen] = (0,
|
|
1558
|
+
const [open, setOpen] = (0, import_react13.useState)(defaultOpen);
|
|
1352
1559
|
const handleToggle = () => {
|
|
1353
1560
|
setOpen((prevOpen) => !prevOpen);
|
|
1354
1561
|
};
|
|
1355
|
-
return /* @__PURE__ */
|
|
1356
|
-
|
|
1562
|
+
return /* @__PURE__ */ React44.createElement(import_ui37.Stack, { sx: { py: 0.5 } }, /* @__PURE__ */ React44.createElement(
|
|
1563
|
+
import_ui37.Button,
|
|
1357
1564
|
{
|
|
1358
1565
|
fullWidth: true,
|
|
1359
1566
|
size: "small",
|
|
1360
1567
|
color: "secondary",
|
|
1361
1568
|
variant: "outlined",
|
|
1362
1569
|
onClick: handleToggle,
|
|
1363
|
-
endIcon: /* @__PURE__ */
|
|
1570
|
+
endIcon: /* @__PURE__ */ React44.createElement(CollapseIcon, { open })
|
|
1364
1571
|
},
|
|
1365
|
-
open ? (0,
|
|
1366
|
-
), /* @__PURE__ */
|
|
1572
|
+
open ? (0, import_i18n25.__)("Show less", "elementor") : (0, import_i18n25.__)("Show more", "elementor")
|
|
1573
|
+
), /* @__PURE__ */ React44.createElement(import_ui37.Collapse, { in: open, timeout: "auto", unmountOnExit: true }, children));
|
|
1367
1574
|
};
|
|
1368
1575
|
|
|
1369
1576
|
// src/components/style-sections/typography-section/font-family-field.tsx
|
|
1370
|
-
var
|
|
1371
|
-
var
|
|
1372
|
-
var
|
|
1373
|
-
var
|
|
1577
|
+
var React45 = __toESM(require("react"));
|
|
1578
|
+
var import_editor_controls30 = require("@elementor/editor-controls");
|
|
1579
|
+
var import_ui38 = require("@elementor/ui");
|
|
1580
|
+
var import_i18n26 = require("@wordpress/i18n");
|
|
1374
1581
|
|
|
1375
1582
|
// src/sync/get-elementor-config.ts
|
|
1376
1583
|
var getElementorConfig = () => {
|
|
@@ -1384,118 +1591,127 @@ var FontFamilyField = () => {
|
|
|
1384
1591
|
if (!fontFamilies) {
|
|
1385
1592
|
return null;
|
|
1386
1593
|
}
|
|
1387
|
-
return /* @__PURE__ */
|
|
1594
|
+
return /* @__PURE__ */ React45.createElement(StylesField, { bind: "font-family" }, /* @__PURE__ */ React45.createElement(import_ui38.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React45.createElement(import_ui38.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React45.createElement(import_editor_controls30.ControlLabel, null, (0, import_i18n26.__)("Font Family", "elementor"))), /* @__PURE__ */ React45.createElement(import_ui38.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React45.createElement(import_editor_controls30.FontFamilyControl, { fontFamilies }))));
|
|
1388
1595
|
};
|
|
1389
1596
|
var getFontFamilies = () => {
|
|
1390
1597
|
const { controls } = getElementorConfig();
|
|
1391
|
-
const
|
|
1392
|
-
if (!
|
|
1598
|
+
const options10 = controls?.font?.options;
|
|
1599
|
+
if (!options10) {
|
|
1393
1600
|
return null;
|
|
1394
1601
|
}
|
|
1395
|
-
return
|
|
1602
|
+
return options10;
|
|
1396
1603
|
};
|
|
1397
1604
|
|
|
1398
1605
|
// src/components/style-sections/typography-section/font-size-field.tsx
|
|
1399
|
-
var
|
|
1400
|
-
var
|
|
1401
|
-
var
|
|
1402
|
-
var
|
|
1606
|
+
var React46 = __toESM(require("react"));
|
|
1607
|
+
var import_editor_controls31 = require("@elementor/editor-controls");
|
|
1608
|
+
var import_ui39 = require("@elementor/ui");
|
|
1609
|
+
var import_i18n27 = require("@wordpress/i18n");
|
|
1403
1610
|
var FontSizeField = () => {
|
|
1404
|
-
return /* @__PURE__ */
|
|
1611
|
+
return /* @__PURE__ */ React46.createElement(StylesField, { bind: "font-size" }, /* @__PURE__ */ React46.createElement(import_ui39.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React46.createElement(import_ui39.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React46.createElement(import_editor_controls31.ControlLabel, null, (0, import_i18n27.__)("Font Size", "elementor"))), /* @__PURE__ */ React46.createElement(import_ui39.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React46.createElement(import_editor_controls31.SizeControl, null))));
|
|
1405
1612
|
};
|
|
1406
1613
|
|
|
1407
1614
|
// src/components/style-sections/typography-section/font-weight-field.tsx
|
|
1408
|
-
var
|
|
1409
|
-
var
|
|
1410
|
-
var
|
|
1411
|
-
var
|
|
1615
|
+
var React47 = __toESM(require("react"));
|
|
1616
|
+
var import_editor_controls32 = require("@elementor/editor-controls");
|
|
1617
|
+
var import_ui40 = require("@elementor/ui");
|
|
1618
|
+
var import_i18n28 = require("@wordpress/i18n");
|
|
1412
1619
|
var fontWeightOptions = [
|
|
1413
|
-
{ label: (0,
|
|
1414
|
-
{ label: (0,
|
|
1415
|
-
{ label: (0,
|
|
1416
|
-
{ label: (0,
|
|
1417
|
-
{ label: (0,
|
|
1620
|
+
{ label: (0, import_i18n28.__)("Light - 400", "elementor"), value: "400" },
|
|
1621
|
+
{ label: (0, import_i18n28.__)("Regular - 500", "elementor"), value: "500" },
|
|
1622
|
+
{ label: (0, import_i18n28.__)("Semi Bold - 600", "elementor"), value: "600" },
|
|
1623
|
+
{ label: (0, import_i18n28.__)("Bold - 700", "elementor"), value: "700" },
|
|
1624
|
+
{ label: (0, import_i18n28.__)("Black - 900", "elementor"), value: "900" }
|
|
1418
1625
|
];
|
|
1419
1626
|
var FontWeightField = () => {
|
|
1420
|
-
return /* @__PURE__ */
|
|
1627
|
+
return /* @__PURE__ */ React47.createElement(StylesField, { bind: "font-weight" }, /* @__PURE__ */ React47.createElement(import_ui40.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React47.createElement(import_ui40.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(import_editor_controls32.ControlLabel, null, (0, import_i18n28.__)("Font Weight", "elementor"))), /* @__PURE__ */ React47.createElement(import_ui40.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(import_editor_controls32.SelectControl, { options: fontWeightOptions }))));
|
|
1421
1628
|
};
|
|
1422
1629
|
|
|
1423
1630
|
// src/components/style-sections/typography-section/letter-spacing-field.tsx
|
|
1424
|
-
var
|
|
1425
|
-
var
|
|
1426
|
-
var
|
|
1427
|
-
var
|
|
1631
|
+
var React48 = __toESM(require("react"));
|
|
1632
|
+
var import_editor_controls33 = require("@elementor/editor-controls");
|
|
1633
|
+
var import_ui41 = require("@elementor/ui");
|
|
1634
|
+
var import_i18n29 = require("@wordpress/i18n");
|
|
1428
1635
|
var LetterSpacingField = () => {
|
|
1429
|
-
return /* @__PURE__ */
|
|
1636
|
+
return /* @__PURE__ */ React48.createElement(StylesField, { bind: "letter-spacing" }, /* @__PURE__ */ React48.createElement(import_ui41.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React48.createElement(import_ui41.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React48.createElement(import_editor_controls33.ControlLabel, null, (0, import_i18n29.__)("Letter Spacing", "elementor"))), /* @__PURE__ */ React48.createElement(import_ui41.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React48.createElement(import_editor_controls33.SizeControl, null))));
|
|
1637
|
+
};
|
|
1638
|
+
|
|
1639
|
+
// src/components/style-sections/typography-section/line-height-field.tsx
|
|
1640
|
+
var React49 = __toESM(require("react"));
|
|
1641
|
+
var import_editor_controls34 = require("@elementor/editor-controls");
|
|
1642
|
+
var import_ui42 = require("@elementor/ui");
|
|
1643
|
+
var import_i18n30 = require("@wordpress/i18n");
|
|
1644
|
+
var LineHeightField = () => {
|
|
1645
|
+
return /* @__PURE__ */ React49.createElement(StylesField, { bind: "line-height" }, /* @__PURE__ */ React49.createElement(import_ui42.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React49.createElement(import_ui42.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(import_editor_controls34.ControlLabel, null, (0, import_i18n30.__)("Line Height", "elementor"))), /* @__PURE__ */ React49.createElement(import_ui42.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(import_editor_controls34.SizeControl, null))));
|
|
1430
1646
|
};
|
|
1431
1647
|
|
|
1432
1648
|
// src/components/style-sections/typography-section/text-alignment-field.tsx
|
|
1433
|
-
var
|
|
1434
|
-
var
|
|
1435
|
-
var
|
|
1436
|
-
var
|
|
1437
|
-
var
|
|
1438
|
-
var
|
|
1649
|
+
var React50 = __toESM(require("react"));
|
|
1650
|
+
var import_editor_controls35 = require("@elementor/editor-controls");
|
|
1651
|
+
var import_icons15 = require("@elementor/icons");
|
|
1652
|
+
var import_ui43 = require("@elementor/ui");
|
|
1653
|
+
var import_i18n31 = require("@wordpress/i18n");
|
|
1654
|
+
var options7 = [
|
|
1439
1655
|
{
|
|
1440
1656
|
value: "left",
|
|
1441
|
-
label: (0,
|
|
1442
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1657
|
+
label: (0, import_i18n31.__)("Left", "elementor"),
|
|
1658
|
+
renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(import_icons15.AlignLeftIcon, { fontSize: size })
|
|
1443
1659
|
},
|
|
1444
1660
|
{
|
|
1445
1661
|
value: "center",
|
|
1446
|
-
label: (0,
|
|
1447
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1662
|
+
label: (0, import_i18n31.__)("Center", "elementor"),
|
|
1663
|
+
renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(import_icons15.AlignCenterIcon, { fontSize: size })
|
|
1448
1664
|
},
|
|
1449
1665
|
{
|
|
1450
1666
|
value: "right",
|
|
1451
|
-
label: (0,
|
|
1452
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1667
|
+
label: (0, import_i18n31.__)("Right", "elementor"),
|
|
1668
|
+
renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(import_icons15.AlignRightIcon, { fontSize: size })
|
|
1453
1669
|
},
|
|
1454
1670
|
{
|
|
1455
1671
|
value: "justify",
|
|
1456
|
-
label: (0,
|
|
1457
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1672
|
+
label: (0, import_i18n31.__)("Justify", "elementor"),
|
|
1673
|
+
renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(import_icons15.AlignJustifiedIcon, { fontSize: size })
|
|
1458
1674
|
}
|
|
1459
1675
|
];
|
|
1460
1676
|
var TextAlignmentField = () => {
|
|
1461
|
-
return /* @__PURE__ */
|
|
1677
|
+
return /* @__PURE__ */ React50.createElement(StylesField, { bind: "text-align" }, /* @__PURE__ */ React50.createElement(import_ui43.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React50.createElement(import_ui43.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React50.createElement(import_editor_controls35.ControlLabel, null, (0, import_i18n31.__)("Alignment", "elementor"))), /* @__PURE__ */ React50.createElement(import_ui43.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React50.createElement(import_editor_controls35.ToggleControl, { options: options7 }))));
|
|
1462
1678
|
};
|
|
1463
1679
|
|
|
1464
1680
|
// src/components/style-sections/typography-section/text-color-field.tsx
|
|
1465
|
-
var
|
|
1466
|
-
var
|
|
1467
|
-
var
|
|
1468
|
-
var
|
|
1681
|
+
var React51 = __toESM(require("react"));
|
|
1682
|
+
var import_editor_controls36 = require("@elementor/editor-controls");
|
|
1683
|
+
var import_ui44 = require("@elementor/ui");
|
|
1684
|
+
var import_i18n32 = require("@wordpress/i18n");
|
|
1469
1685
|
var TextColorField = () => {
|
|
1470
|
-
return /* @__PURE__ */
|
|
1686
|
+
return /* @__PURE__ */ React51.createElement(StylesField, { bind: "color" }, /* @__PURE__ */ React51.createElement(import_ui44.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React51.createElement(import_ui44.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React51.createElement(import_editor_controls36.ControlLabel, null, (0, import_i18n32.__)("Text Color", "elementor"))), /* @__PURE__ */ React51.createElement(import_ui44.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React51.createElement(import_editor_controls36.ColorControl, null))));
|
|
1471
1687
|
};
|
|
1472
1688
|
|
|
1473
1689
|
// src/components/style-sections/typography-section/text-direction-field.tsx
|
|
1474
|
-
var
|
|
1475
|
-
var
|
|
1476
|
-
var
|
|
1477
|
-
var
|
|
1478
|
-
var
|
|
1479
|
-
var
|
|
1690
|
+
var React52 = __toESM(require("react"));
|
|
1691
|
+
var import_editor_controls37 = require("@elementor/editor-controls");
|
|
1692
|
+
var import_icons16 = require("@elementor/icons");
|
|
1693
|
+
var import_ui45 = require("@elementor/ui");
|
|
1694
|
+
var import_i18n33 = require("@wordpress/i18n");
|
|
1695
|
+
var options8 = [
|
|
1480
1696
|
{
|
|
1481
1697
|
value: "ltr",
|
|
1482
|
-
label: (0,
|
|
1483
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1698
|
+
label: (0, import_i18n33.__)("Left to Right", "elementor"),
|
|
1699
|
+
renderContent: ({ size }) => /* @__PURE__ */ React52.createElement(import_icons16.TextDirectionLtrIcon, { fontSize: size })
|
|
1484
1700
|
},
|
|
1485
1701
|
{
|
|
1486
1702
|
value: "rtl",
|
|
1487
|
-
label: (0,
|
|
1488
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1703
|
+
label: (0, import_i18n33.__)("Right to Left", "elementor"),
|
|
1704
|
+
renderContent: ({ size }) => /* @__PURE__ */ React52.createElement(import_icons16.TextDirectionRtlIcon, { fontSize: size })
|
|
1489
1705
|
}
|
|
1490
1706
|
];
|
|
1491
1707
|
var TextDirectionField = () => {
|
|
1492
|
-
return /* @__PURE__ */
|
|
1708
|
+
return /* @__PURE__ */ React52.createElement(StylesField, { bind: "direction" }, /* @__PURE__ */ React52.createElement(import_ui45.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React52.createElement(import_ui45.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React52.createElement(import_editor_controls37.ControlLabel, null, (0, import_i18n33.__)("Direction", "elementor"))), /* @__PURE__ */ React52.createElement(import_ui45.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React52.createElement(import_editor_controls37.ToggleControl, { options: options8 }))));
|
|
1493
1709
|
};
|
|
1494
1710
|
|
|
1495
1711
|
// src/components/style-sections/typography-section/text-stroke-field.tsx
|
|
1496
|
-
var
|
|
1497
|
-
var
|
|
1498
|
-
var
|
|
1712
|
+
var React53 = __toESM(require("react"));
|
|
1713
|
+
var import_editor_controls38 = require("@elementor/editor-controls");
|
|
1714
|
+
var import_i18n34 = require("@wordpress/i18n");
|
|
1499
1715
|
var initTextStroke = {
|
|
1500
1716
|
$$type: "stroke",
|
|
1501
1717
|
value: {
|
|
@@ -1521,56 +1737,74 @@ var TextStrokeField = () => {
|
|
|
1521
1737
|
setTextStroke(null);
|
|
1522
1738
|
};
|
|
1523
1739
|
const hasTextStroke = Boolean(textStroke);
|
|
1524
|
-
return /* @__PURE__ */
|
|
1740
|
+
return /* @__PURE__ */ React53.createElement(
|
|
1525
1741
|
AddOrRemoveContent,
|
|
1526
1742
|
{
|
|
1527
|
-
label: (0,
|
|
1743
|
+
label: (0, import_i18n34.__)("Text Stroke", "elementor"),
|
|
1528
1744
|
isAdded: hasTextStroke,
|
|
1529
1745
|
onAdd: addTextStroke,
|
|
1530
1746
|
onRemove: removeTextStroke
|
|
1531
1747
|
},
|
|
1532
|
-
/* @__PURE__ */
|
|
1748
|
+
/* @__PURE__ */ React53.createElement(StylesField, { bind: "-webkit-text-stroke" }, /* @__PURE__ */ React53.createElement(import_editor_controls38.StrokeControl, null))
|
|
1533
1749
|
);
|
|
1534
1750
|
};
|
|
1535
1751
|
|
|
1536
1752
|
// src/components/style-sections/typography-section/text-style-field.tsx
|
|
1537
|
-
var
|
|
1538
|
-
var
|
|
1539
|
-
var
|
|
1540
|
-
var
|
|
1541
|
-
var
|
|
1753
|
+
var React54 = __toESM(require("react"));
|
|
1754
|
+
var import_editor_controls39 = require("@elementor/editor-controls");
|
|
1755
|
+
var import_icons17 = require("@elementor/icons");
|
|
1756
|
+
var import_ui46 = require("@elementor/ui");
|
|
1757
|
+
var import_i18n35 = require("@wordpress/i18n");
|
|
1542
1758
|
var buttonSize = "tiny";
|
|
1543
1759
|
var TextStyleField = () => {
|
|
1544
1760
|
const [fontStyle, setFontStyle] = useStylesField("font-style");
|
|
1545
1761
|
const [textDecoration, setTextDecoration] = useStylesField("text-decoration");
|
|
1546
|
-
const formats = [fontStyle, ...(textDecoration || "").split(" ")];
|
|
1547
|
-
|
|
1762
|
+
const formats = [fontStyle?.value, ...(textDecoration?.value || "").split(" ")];
|
|
1763
|
+
const handleSetFontStyle = (newValue) => {
|
|
1764
|
+
if (newValue === null) {
|
|
1765
|
+
return setFontStyle(null);
|
|
1766
|
+
}
|
|
1767
|
+
setFontStyle({
|
|
1768
|
+
$$type: "string",
|
|
1769
|
+
value: newValue
|
|
1770
|
+
});
|
|
1771
|
+
};
|
|
1772
|
+
const handleSetTextDecoration = (newValue) => {
|
|
1773
|
+
if (newValue === null) {
|
|
1774
|
+
return setTextDecoration(null);
|
|
1775
|
+
}
|
|
1776
|
+
setTextDecoration({
|
|
1777
|
+
$$type: "string",
|
|
1778
|
+
value: newValue
|
|
1779
|
+
});
|
|
1780
|
+
};
|
|
1781
|
+
return /* @__PURE__ */ React54.createElement(import_ui46.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React54.createElement(import_ui46.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(import_editor_controls39.ControlLabel, null, (0, import_i18n35.__)("Style", "elementor"))), /* @__PURE__ */ React54.createElement(import_ui46.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React54.createElement(import_ui46.ToggleButtonGroup, { value: formats }, /* @__PURE__ */ React54.createElement(
|
|
1548
1782
|
ToggleButton,
|
|
1549
1783
|
{
|
|
1550
1784
|
value: "italic",
|
|
1551
|
-
onChange: (v) =>
|
|
1785
|
+
onChange: (v) => handleSetFontStyle(fontStyle?.value === v ? null : v),
|
|
1552
1786
|
"aria-label": "italic",
|
|
1553
1787
|
sx: { marginLeft: "auto" }
|
|
1554
1788
|
},
|
|
1555
|
-
/* @__PURE__ */
|
|
1556
|
-
), /* @__PURE__ */
|
|
1789
|
+
/* @__PURE__ */ React54.createElement(import_icons17.ItalicIcon, { fontSize: buttonSize })
|
|
1790
|
+
), /* @__PURE__ */ React54.createElement(
|
|
1557
1791
|
ShorthandControl,
|
|
1558
1792
|
{
|
|
1559
1793
|
value: "line-through",
|
|
1560
|
-
currentValues: textDecoration || "",
|
|
1561
|
-
updateValues:
|
|
1794
|
+
currentValues: textDecoration?.value || "",
|
|
1795
|
+
updateValues: handleSetTextDecoration,
|
|
1562
1796
|
"aria-label": "line-through"
|
|
1563
1797
|
},
|
|
1564
|
-
/* @__PURE__ */
|
|
1565
|
-
), /* @__PURE__ */
|
|
1798
|
+
/* @__PURE__ */ React54.createElement(import_icons17.StrikethroughIcon, { fontSize: buttonSize })
|
|
1799
|
+
), /* @__PURE__ */ React54.createElement(
|
|
1566
1800
|
ShorthandControl,
|
|
1567
1801
|
{
|
|
1568
1802
|
value: "underline",
|
|
1569
|
-
currentValues: textDecoration || "",
|
|
1570
|
-
updateValues:
|
|
1803
|
+
currentValues: textDecoration?.value || "",
|
|
1804
|
+
updateValues: handleSetTextDecoration,
|
|
1571
1805
|
"aria-label": "underline"
|
|
1572
1806
|
},
|
|
1573
|
-
/* @__PURE__ */
|
|
1807
|
+
/* @__PURE__ */ React54.createElement(import_icons17.UnderlineIcon, { fontSize: buttonSize })
|
|
1574
1808
|
))));
|
|
1575
1809
|
};
|
|
1576
1810
|
var ShorthandControl = ({
|
|
@@ -1589,52 +1823,52 @@ var ShorthandControl = ({
|
|
|
1589
1823
|
updateValues([...valuesArr, newValue].join(" "));
|
|
1590
1824
|
}
|
|
1591
1825
|
};
|
|
1592
|
-
return /* @__PURE__ */
|
|
1826
|
+
return /* @__PURE__ */ React54.createElement(ToggleButton, { value, onChange: toggleValue, selected, "aria-label": ariaLabel }, children);
|
|
1593
1827
|
};
|
|
1594
1828
|
var ToggleButton = ({ onChange, ...props }) => {
|
|
1595
1829
|
const handleChange = (_e, newValue) => {
|
|
1596
1830
|
onChange(newValue);
|
|
1597
1831
|
};
|
|
1598
|
-
return /* @__PURE__ */
|
|
1832
|
+
return /* @__PURE__ */ React54.createElement(import_ui46.ToggleButton, { ...props, onChange: handleChange, size: buttonSize });
|
|
1599
1833
|
};
|
|
1600
1834
|
|
|
1601
1835
|
// src/components/style-sections/typography-section/transform-field.tsx
|
|
1602
|
-
var
|
|
1603
|
-
var
|
|
1604
|
-
var
|
|
1605
|
-
var
|
|
1606
|
-
var
|
|
1607
|
-
var
|
|
1836
|
+
var React55 = __toESM(require("react"));
|
|
1837
|
+
var import_editor_controls40 = require("@elementor/editor-controls");
|
|
1838
|
+
var import_icons18 = require("@elementor/icons");
|
|
1839
|
+
var import_ui47 = require("@elementor/ui");
|
|
1840
|
+
var import_i18n36 = require("@wordpress/i18n");
|
|
1841
|
+
var options9 = [
|
|
1608
1842
|
{
|
|
1609
1843
|
value: "capitalize",
|
|
1610
|
-
label: (0,
|
|
1611
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1844
|
+
label: (0, import_i18n36.__)("Capitalize", "elementor"),
|
|
1845
|
+
renderContent: ({ size }) => /* @__PURE__ */ React55.createElement(import_icons18.LetterCaseIcon, { fontSize: size })
|
|
1612
1846
|
},
|
|
1613
1847
|
{
|
|
1614
1848
|
value: "uppercase",
|
|
1615
|
-
label: (0,
|
|
1616
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1849
|
+
label: (0, import_i18n36.__)("Uppercase", "elementor"),
|
|
1850
|
+
renderContent: ({ size }) => /* @__PURE__ */ React55.createElement(import_icons18.LetterCaseUpperIcon, { fontSize: size })
|
|
1617
1851
|
},
|
|
1618
1852
|
{
|
|
1619
1853
|
value: "lowercase",
|
|
1620
|
-
label: (0,
|
|
1621
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1854
|
+
label: (0, import_i18n36.__)("Lowercase", "elementor"),
|
|
1855
|
+
renderContent: ({ size }) => /* @__PURE__ */ React55.createElement(import_icons18.LetterCaseLowerIcon, { fontSize: size })
|
|
1622
1856
|
}
|
|
1623
1857
|
];
|
|
1624
|
-
var TransformField = () => /* @__PURE__ */
|
|
1858
|
+
var TransformField = () => /* @__PURE__ */ React55.createElement(StylesField, { bind: "text-transform" }, /* @__PURE__ */ React55.createElement(import_ui47.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React55.createElement(import_ui47.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(import_editor_controls40.ControlLabel, null, (0, import_i18n36.__)("Transform", "elementor"))), /* @__PURE__ */ React55.createElement(import_ui47.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React55.createElement(import_editor_controls40.ToggleControl, { options: options9 }))));
|
|
1625
1859
|
|
|
1626
1860
|
// src/components/style-sections/typography-section/word-spacing-field.tsx
|
|
1627
|
-
var
|
|
1628
|
-
var
|
|
1629
|
-
var
|
|
1630
|
-
var
|
|
1861
|
+
var React56 = __toESM(require("react"));
|
|
1862
|
+
var import_editor_controls41 = require("@elementor/editor-controls");
|
|
1863
|
+
var import_ui48 = require("@elementor/ui");
|
|
1864
|
+
var import_i18n37 = require("@wordpress/i18n");
|
|
1631
1865
|
var WordSpacingField = () => {
|
|
1632
|
-
return /* @__PURE__ */
|
|
1866
|
+
return /* @__PURE__ */ React56.createElement(StylesField, { bind: "word-spacing" }, /* @__PURE__ */ React56.createElement(import_ui48.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React56.createElement(import_ui48.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React56.createElement(import_editor_controls41.ControlLabel, null, (0, import_i18n37.__)("Word Spacing", "elementor"))), /* @__PURE__ */ React56.createElement(import_ui48.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React56.createElement(import_editor_controls41.SizeControl, null))));
|
|
1633
1867
|
};
|
|
1634
1868
|
|
|
1635
1869
|
// src/components/style-sections/typography-section/typography-section.tsx
|
|
1636
1870
|
var TypographySection = () => {
|
|
1637
|
-
return /* @__PURE__ */
|
|
1871
|
+
return /* @__PURE__ */ React57.createElement(import_ui49.Stack, { gap: 1.5 }, /* @__PURE__ */ React57.createElement(FontFamilyField, null), /* @__PURE__ */ React57.createElement(FontWeightField, null), /* @__PURE__ */ React57.createElement(FontSizeField, null), /* @__PURE__ */ React57.createElement(import_ui49.Divider, null), /* @__PURE__ */ React57.createElement(TextAlignmentField, null), /* @__PURE__ */ React57.createElement(TextColorField, null), /* @__PURE__ */ React57.createElement(CollapsibleContent, null, /* @__PURE__ */ React57.createElement(import_ui49.Stack, { gap: 1.5, sx: { pt: 1.5 } }, /* @__PURE__ */ React57.createElement(LineHeightField, null), /* @__PURE__ */ React57.createElement(LetterSpacingField, null), /* @__PURE__ */ React57.createElement(WordSpacingField, null), /* @__PURE__ */ React57.createElement(import_ui49.Divider, null), /* @__PURE__ */ React57.createElement(TextStyleField, null), /* @__PURE__ */ React57.createElement(TransformField, null), /* @__PURE__ */ React57.createElement(TextDirectionField, null), /* @__PURE__ */ React57.createElement(TextStrokeField, null))));
|
|
1638
1872
|
};
|
|
1639
1873
|
|
|
1640
1874
|
// src/components/style-tab.tsx
|
|
@@ -1643,13 +1877,12 @@ var StyleTab = () => {
|
|
|
1643
1877
|
const currentClassesProp = useCurrentClassesProp();
|
|
1644
1878
|
const [activeStyleDefId, setActiveStyleDefId] = useActiveStyleDefId(currentClassesProp);
|
|
1645
1879
|
const breakpoint = (0, import_editor_responsive.useActiveBreakpoint)();
|
|
1646
|
-
return /* @__PURE__ */
|
|
1880
|
+
return /* @__PURE__ */ React58.createElement(ClassesPropProvider, { prop: currentClassesProp }, /* @__PURE__ */ React58.createElement(StyleProvider, { meta: { breakpoint, state: null }, id: activeStyleDefId, setId: setActiveStyleDefId }, /* @__PURE__ */ React58.createElement(CssClassSelector, null), /* @__PURE__ */ React58.createElement(import_ui50.Divider, null), /* @__PURE__ */ React58.createElement(SectionsList, null, /* @__PURE__ */ React58.createElement(Section, { title: (0, import_i18n38.__)("Layout", "elementor") }, /* @__PURE__ */ React58.createElement(LayoutSection, null)), /* @__PURE__ */ React58.createElement(Section, { title: (0, import_i18n38.__)("Spacing", "elementor") }, /* @__PURE__ */ React58.createElement(SpacingSection, null)), /* @__PURE__ */ React58.createElement(Section, { title: (0, import_i18n38.__)("Size", "elementor") }, /* @__PURE__ */ React58.createElement(SizeSection, null)), /* @__PURE__ */ React58.createElement(Section, { title: (0, import_i18n38.__)("Position", "elementor") }, /* @__PURE__ */ React58.createElement(PositionSection, null)), /* @__PURE__ */ React58.createElement(Section, { title: (0, import_i18n38.__)("Typography", "elementor") }, /* @__PURE__ */ React58.createElement(TypographySection, null)), /* @__PURE__ */ React58.createElement(Section, { title: (0, import_i18n38.__)("Background", "elementor") }, /* @__PURE__ */ React58.createElement(BackgroundSection, null)), /* @__PURE__ */ React58.createElement(Section, { title: (0, import_i18n38.__)("Border", "elementor") }, /* @__PURE__ */ React58.createElement(BorderSection, null)), /* @__PURE__ */ React58.createElement(Section, { title: (0, import_i18n38.__)("Effects", "elementor") }, /* @__PURE__ */ React58.createElement(EffectsSection, null)))));
|
|
1647
1881
|
};
|
|
1648
1882
|
function useActiveStyleDefId(currentClassesProp) {
|
|
1649
|
-
const [activeStyledDefId, setActiveStyledDefId] = (0,
|
|
1883
|
+
const [activeStyledDefId, setActiveStyledDefId] = (0, import_react14.useState)(null);
|
|
1650
1884
|
const fallback = useFirstElementStyleDef(currentClassesProp);
|
|
1651
|
-
|
|
1652
|
-
return [activeStyledDefId || fallback?.id || newId, setActiveStyledDefId];
|
|
1885
|
+
return [activeStyledDefId || fallback?.id || null, setActiveStyledDefId];
|
|
1653
1886
|
}
|
|
1654
1887
|
function useFirstElementStyleDef(currentClassesProp) {
|
|
1655
1888
|
const { element } = useElement();
|
|
@@ -1657,11 +1890,6 @@ function useFirstElementStyleDef(currentClassesProp) {
|
|
|
1657
1890
|
const stylesDefs = (0, import_editor_elements5.useElementStyles)(element.id);
|
|
1658
1891
|
return Object.values(stylesDefs).find((styleDef) => classesIds.includes(styleDef.id));
|
|
1659
1892
|
}
|
|
1660
|
-
function useGeneratedId() {
|
|
1661
|
-
const { element } = useElement();
|
|
1662
|
-
const stylesDefs = (0, import_editor_elements5.useElementStyles)(element.id);
|
|
1663
|
-
return (0, import_editor_styles.generateId)(`e-${element.id}-`, Object.keys(stylesDefs));
|
|
1664
|
-
}
|
|
1665
1893
|
function useCurrentClassesProp() {
|
|
1666
1894
|
const { elementType } = useElement();
|
|
1667
1895
|
const prop = Object.entries(elementType.propsSchema).find(
|
|
@@ -1676,11 +1904,11 @@ function useCurrentClassesProp() {
|
|
|
1676
1904
|
// src/components/editing-panel-tabs.tsx
|
|
1677
1905
|
var EditingPanelTabs = () => {
|
|
1678
1906
|
const { element } = useElement();
|
|
1679
|
-
const { getTabProps, getTabPanelProps, getTabsProps } = (0,
|
|
1907
|
+
const { getTabProps, getTabPanelProps, getTabsProps } = (0, import_ui51.useTabs)("settings");
|
|
1680
1908
|
return (
|
|
1681
1909
|
// When switching between elements, the local states should be reset. We are using key to rerender the tabs.
|
|
1682
1910
|
// Reference: https://react.dev/learn/preserving-and-resetting-state#resetting-a-form-with-a-key
|
|
1683
|
-
/* @__PURE__ */
|
|
1911
|
+
/* @__PURE__ */ React59.createElement(import_react15.Fragment, { key: element.id }, /* @__PURE__ */ React59.createElement(import_ui51.Stack, { direction: "column", sx: { width: "100%" } }, /* @__PURE__ */ React59.createElement(import_ui51.Tabs, { variant: "fullWidth", indicatorColor: "secondary", textColor: "inherit", ...getTabsProps() }, /* @__PURE__ */ React59.createElement(import_ui51.Tab, { label: (0, import_i18n39.__)("General", "elementor"), ...getTabProps("settings") }), /* @__PURE__ */ React59.createElement(import_ui51.Tab, { label: (0, import_i18n39.__)("Style", "elementor"), ...getTabProps("style") })), /* @__PURE__ */ React59.createElement(import_ui51.Divider, null), /* @__PURE__ */ React59.createElement(import_ui51.TabPanel, { ...getTabPanelProps("settings"), disablePadding: true }, /* @__PURE__ */ React59.createElement(SettingsTab, null)), /* @__PURE__ */ React59.createElement(import_ui51.TabPanel, { ...getTabPanelProps("style"), disablePadding: true }, /* @__PURE__ */ React59.createElement(StyleTab, null))))
|
|
1684
1912
|
);
|
|
1685
1913
|
};
|
|
1686
1914
|
|
|
@@ -1693,8 +1921,8 @@ var EditingPanel = () => {
|
|
|
1693
1921
|
if (!element || !elementType) {
|
|
1694
1922
|
return null;
|
|
1695
1923
|
}
|
|
1696
|
-
const panelTitle = (0,
|
|
1697
|
-
return /* @__PURE__ */
|
|
1924
|
+
const panelTitle = (0, import_i18n40.__)("Edit %s", "elementor").replace("%s", elementType.title);
|
|
1925
|
+
return /* @__PURE__ */ React60.createElement(import_ui52.ErrorBoundary, { fallback: /* @__PURE__ */ React60.createElement(EditorPanelErrorFallback, null) }, /* @__PURE__ */ React60.createElement(import_editor_panels.Panel, null, /* @__PURE__ */ React60.createElement(import_editor_panels.PanelHeader, null, /* @__PURE__ */ React60.createElement(import_editor_panels.PanelHeaderTitle, null, panelTitle)), /* @__PURE__ */ React60.createElement(import_editor_panels.PanelBody, null, /* @__PURE__ */ React60.createElement(import_editor_controls42.ControlActionsProvider, { items: menuItems }, /* @__PURE__ */ React60.createElement(import_editor_controls42.ControlReplacementProvider, { ...controlReplacement }, /* @__PURE__ */ React60.createElement(ElementProvider, { element, elementType }, /* @__PURE__ */ React60.createElement(EditingPanelTabs, null)))))));
|
|
1698
1926
|
};
|
|
1699
1927
|
|
|
1700
1928
|
// src/panel.ts
|
|
@@ -1717,7 +1945,7 @@ var isAtomicWidgetSelected = () => {
|
|
|
1717
1945
|
// src/hooks/use-close-editor-panel.ts
|
|
1718
1946
|
var useCloseEditorPanel = () => {
|
|
1719
1947
|
const { close } = usePanelActions();
|
|
1720
|
-
return (0,
|
|
1948
|
+
return (0, import_react16.useEffect)(() => {
|
|
1721
1949
|
return (0, import_editor_v1_adapters.__privateListenTo)((0, import_editor_v1_adapters.commandStartEvent)("document/elements/delete"), (e) => {
|
|
1722
1950
|
const selectedElement = (0, import_editor_elements8.getSelectedElements)()[0];
|
|
1723
1951
|
const { container: deletedContainer } = e?.args;
|
|
@@ -1730,11 +1958,11 @@ var useCloseEditorPanel = () => {
|
|
|
1730
1958
|
};
|
|
1731
1959
|
|
|
1732
1960
|
// src/hooks/use-open-editor-panel.ts
|
|
1733
|
-
var
|
|
1961
|
+
var import_react17 = require("react");
|
|
1734
1962
|
var import_editor_v1_adapters2 = require("@elementor/editor-v1-adapters");
|
|
1735
1963
|
var useOpenEditorPanel = () => {
|
|
1736
1964
|
const { open } = usePanelActions();
|
|
1737
|
-
(0,
|
|
1965
|
+
(0, import_react17.useEffect)(() => {
|
|
1738
1966
|
return (0, import_editor_v1_adapters2.__privateListenTo)((0, import_editor_v1_adapters2.commandStartEvent)("panel/editor/open"), () => {
|
|
1739
1967
|
if (isAtomicWidgetSelected()) {
|
|
1740
1968
|
open();
|
|
@@ -1751,22 +1979,23 @@ var EditingPanelHooks = () => {
|
|
|
1751
1979
|
};
|
|
1752
1980
|
|
|
1753
1981
|
// src/dynamics/components/dynamic-selection-control.tsx
|
|
1754
|
-
var
|
|
1755
|
-
var
|
|
1756
|
-
var
|
|
1757
|
-
var
|
|
1758
|
-
var
|
|
1759
|
-
var
|
|
1982
|
+
var React63 = __toESM(require("react"));
|
|
1983
|
+
var import_react21 = require("react");
|
|
1984
|
+
var import_editor_controls45 = require("@elementor/editor-controls");
|
|
1985
|
+
var import_icons20 = require("@elementor/icons");
|
|
1986
|
+
var import_ui54 = require("@elementor/ui");
|
|
1987
|
+
var import_i18n42 = require("@wordpress/i18n");
|
|
1760
1988
|
|
|
1761
1989
|
// src/dynamics/dynamic-control.tsx
|
|
1762
|
-
var
|
|
1763
|
-
var
|
|
1990
|
+
var React61 = __toESM(require("react"));
|
|
1991
|
+
var import_editor_controls43 = require("@elementor/editor-controls");
|
|
1992
|
+
var import_editor_props5 = require("@elementor/editor-props");
|
|
1764
1993
|
|
|
1765
1994
|
// src/dynamics/hooks/use-dynamic-tag.ts
|
|
1766
|
-
var
|
|
1995
|
+
var import_react19 = require("react");
|
|
1767
1996
|
|
|
1768
1997
|
// src/dynamics/hooks/use-prop-dynamic-tags.ts
|
|
1769
|
-
var
|
|
1998
|
+
var import_react18 = require("react");
|
|
1770
1999
|
|
|
1771
2000
|
// src/dynamics/sync/get-elementor-config.ts
|
|
1772
2001
|
var getElementorConfig2 = () => {
|
|
@@ -1787,7 +2016,8 @@ var getAtomicDynamicTags = () => {
|
|
|
1787
2016
|
};
|
|
1788
2017
|
|
|
1789
2018
|
// src/dynamics/utils.ts
|
|
1790
|
-
var
|
|
2019
|
+
var import_editor_props4 = require("@elementor/editor-props");
|
|
2020
|
+
var import_schema = require("@elementor/schema");
|
|
1791
2021
|
var DYNAMIC_PROP_TYPE_KEY = "dynamic";
|
|
1792
2022
|
var isDynamicPropType = (prop) => prop.key === DYNAMIC_PROP_TYPE_KEY;
|
|
1793
2023
|
var getDynamicPropType = (propType) => {
|
|
@@ -1795,11 +2025,18 @@ var getDynamicPropType = (propType) => {
|
|
|
1795
2025
|
return dynamicPropType && isDynamicPropType(dynamicPropType) ? dynamicPropType : null;
|
|
1796
2026
|
};
|
|
1797
2027
|
var isDynamicPropValue = (prop) => {
|
|
1798
|
-
return (0,
|
|
2028
|
+
return (0, import_editor_props4.isTransformable)(prop) && prop.$$type === DYNAMIC_PROP_TYPE_KEY;
|
|
1799
2029
|
};
|
|
1800
2030
|
var supportsDynamic = (propType) => {
|
|
1801
2031
|
return !!getDynamicPropType(propType);
|
|
1802
2032
|
};
|
|
2033
|
+
var dynamicPropTypeUtil = (0, import_editor_props4.createPropUtils)(
|
|
2034
|
+
DYNAMIC_PROP_TYPE_KEY,
|
|
2035
|
+
import_schema.z.strictObject({
|
|
2036
|
+
name: import_schema.z.string(),
|
|
2037
|
+
settings: import_schema.z.record(import_schema.z.any()).optional()
|
|
2038
|
+
})
|
|
2039
|
+
);
|
|
1803
2040
|
|
|
1804
2041
|
// src/dynamics/hooks/use-prop-dynamic-tags.ts
|
|
1805
2042
|
var usePropDynamicTags = (propName) => {
|
|
@@ -1810,7 +2047,7 @@ var usePropDynamicTags = (propName) => {
|
|
|
1810
2047
|
const propDynamicType = getDynamicPropType(propType);
|
|
1811
2048
|
categories = propDynamicType?.settings.categories || [];
|
|
1812
2049
|
}
|
|
1813
|
-
return (0,
|
|
2050
|
+
return (0, import_react18.useMemo)(() => getDynamicTagsByCategories(categories), [categories.join()]);
|
|
1814
2051
|
};
|
|
1815
2052
|
var getDynamicTagsByCategories = (categories) => {
|
|
1816
2053
|
const dynamicTags = getAtomicDynamicTags();
|
|
@@ -1826,13 +2063,13 @@ var getDynamicTagsByCategories = (categories) => {
|
|
|
1826
2063
|
// src/dynamics/hooks/use-dynamic-tag.ts
|
|
1827
2064
|
var useDynamicTag = (propName, tagName) => {
|
|
1828
2065
|
const dynamicTags = usePropDynamicTags(propName);
|
|
1829
|
-
return (0,
|
|
2066
|
+
return (0, import_react19.useMemo)(() => dynamicTags.find((tag) => tag.name === tagName) ?? null, [dynamicTags, tagName]);
|
|
1830
2067
|
};
|
|
1831
2068
|
|
|
1832
2069
|
// src/dynamics/dynamic-control.tsx
|
|
1833
2070
|
var DynamicControl = ({ bind, children }) => {
|
|
1834
|
-
const { value, setValue, bind: propName } = (0,
|
|
1835
|
-
const { name = "", settings } = value
|
|
2071
|
+
const { value, setValue, bind: propName } = (0, import_editor_controls43.useBoundProp)(dynamicPropTypeUtil);
|
|
2072
|
+
const { name = "", settings } = value ?? {};
|
|
1836
2073
|
const dynamicTag = useDynamicTag(propName, name);
|
|
1837
2074
|
if (!dynamicTag) {
|
|
1838
2075
|
throw new Error(`Dynamic tag ${name} not found`);
|
|
@@ -1841,60 +2078,59 @@ var DynamicControl = ({ bind, children }) => {
|
|
|
1841
2078
|
const dynamicValue = settings?.[bind] ?? defaultValue;
|
|
1842
2079
|
const setDynamicValue = (newValue) => {
|
|
1843
2080
|
setValue({
|
|
1844
|
-
|
|
1845
|
-
|
|
1846
|
-
|
|
1847
|
-
|
|
1848
|
-
|
|
1849
|
-
[bind]: newValue
|
|
1850
|
-
}
|
|
2081
|
+
name,
|
|
2082
|
+
settings: {
|
|
2083
|
+
...settings,
|
|
2084
|
+
// The value inside the dynamic is not a transformable value, so we need to store the whole object.
|
|
2085
|
+
[bind]: (0, import_editor_props5.isTransformable)(newValue) ? newValue.value : newValue
|
|
1851
2086
|
}
|
|
1852
2087
|
});
|
|
1853
2088
|
};
|
|
1854
|
-
return /* @__PURE__ */
|
|
2089
|
+
return /* @__PURE__ */ React61.createElement(import_editor_controls43.BoundPropProvider, { setValue: setDynamicValue, value: dynamicValue, bind }, children);
|
|
1855
2090
|
};
|
|
1856
2091
|
|
|
1857
2092
|
// src/dynamics/components/dynamic-selection.tsx
|
|
1858
|
-
var
|
|
1859
|
-
var
|
|
1860
|
-
var
|
|
1861
|
-
var
|
|
1862
|
-
var
|
|
1863
|
-
var
|
|
2093
|
+
var React62 = __toESM(require("react"));
|
|
2094
|
+
var import_react20 = require("react");
|
|
2095
|
+
var import_editor_controls44 = require("@elementor/editor-controls");
|
|
2096
|
+
var import_icons19 = require("@elementor/icons");
|
|
2097
|
+
var import_ui53 = require("@elementor/ui");
|
|
2098
|
+
var import_i18n41 = require("@wordpress/i18n");
|
|
1864
2099
|
var SIZE3 = "tiny";
|
|
1865
2100
|
var DynamicSelection = ({ onSelect }) => {
|
|
1866
|
-
const [searchValue, setSearchValue] = (0,
|
|
2101
|
+
const [searchValue, setSearchValue] = (0, import_react20.useState)("");
|
|
1867
2102
|
const { groups: dynamicGroups } = getAtomicDynamicTags() || {};
|
|
1868
|
-
const {
|
|
2103
|
+
const { value: anyValue } = (0, import_editor_controls44.useBoundProp)();
|
|
2104
|
+
const { bind, value: dynamicvalue, setValue } = (0, import_editor_controls44.useBoundProp)(dynamicPropTypeUtil);
|
|
1869
2105
|
const { setPropValue: updatePropValueHistory } = usePropValueHistory();
|
|
1870
|
-
const isCurrentValueDynamic =
|
|
1871
|
-
const
|
|
2106
|
+
const isCurrentValueDynamic = !!dynamicvalue;
|
|
2107
|
+
const options10 = useFilteredOptions(bind, searchValue);
|
|
1872
2108
|
const handleSearch = (event) => {
|
|
1873
2109
|
setSearchValue(event.target.value);
|
|
1874
2110
|
};
|
|
1875
2111
|
const handleSetDynamicTag = (value) => {
|
|
1876
2112
|
if (!isCurrentValueDynamic) {
|
|
1877
|
-
updatePropValueHistory(bind,
|
|
2113
|
+
updatePropValueHistory(bind, anyValue);
|
|
1878
2114
|
}
|
|
1879
|
-
setValue({
|
|
2115
|
+
setValue({ name: value, settings: {} });
|
|
1880
2116
|
onSelect?.();
|
|
1881
2117
|
};
|
|
1882
|
-
return /* @__PURE__ */
|
|
1883
|
-
|
|
2118
|
+
return /* @__PURE__ */ React62.createElement(import_ui53.Stack, null, /* @__PURE__ */ React62.createElement(import_ui53.Box, { px: 1.5, pb: 1 }, /* @__PURE__ */ React62.createElement(
|
|
2119
|
+
import_ui53.TextField,
|
|
1884
2120
|
{
|
|
1885
2121
|
fullWidth: true,
|
|
1886
2122
|
size: SIZE3,
|
|
1887
2123
|
value: searchValue,
|
|
1888
2124
|
onChange: handleSearch,
|
|
1889
|
-
placeholder: (0,
|
|
2125
|
+
placeholder: (0, import_i18n41.__)("Search dynamic tag", "elementor"),
|
|
1890
2126
|
InputProps: {
|
|
1891
|
-
startAdornment: /* @__PURE__ */
|
|
2127
|
+
startAdornment: /* @__PURE__ */ React62.createElement(import_ui53.InputAdornment, { position: "start" }, /* @__PURE__ */ React62.createElement(import_icons19.SearchIcon, { fontSize: SIZE3 }))
|
|
1892
2128
|
}
|
|
1893
2129
|
}
|
|
1894
|
-
)), /* @__PURE__ */
|
|
1895
|
-
const isSelected = isCurrentValueDynamic && value ===
|
|
1896
|
-
return /* @__PURE__ */
|
|
1897
|
-
|
|
2130
|
+
)), /* @__PURE__ */ React62.createElement(import_ui53.Divider, null), /* @__PURE__ */ React62.createElement(import_ui53.Box, { sx: { overflowY: "auto", height: 260, width: 220 } }, options10.length > 0 ? /* @__PURE__ */ React62.createElement(import_ui53.MenuList, { role: "listbox", tabIndex: 0 }, options10.map(([category, items3], index) => /* @__PURE__ */ React62.createElement(import_react20.Fragment, { key: index }, /* @__PURE__ */ React62.createElement(import_ui53.ListSubheader, { sx: { typography: "caption", color: "text.tertiary" } }, dynamicGroups?.[category]?.title || category), items3.map(({ value, label: tagLabel }) => {
|
|
2131
|
+
const isSelected = isCurrentValueDynamic && value === dynamicvalue?.name;
|
|
2132
|
+
return /* @__PURE__ */ React62.createElement(
|
|
2133
|
+
import_ui53.MenuItem,
|
|
1898
2134
|
{
|
|
1899
2135
|
key: value,
|
|
1900
2136
|
selected: isSelected,
|
|
@@ -1904,20 +2140,20 @@ var DynamicSelection = ({ onSelect }) => {
|
|
|
1904
2140
|
},
|
|
1905
2141
|
tagLabel
|
|
1906
2142
|
);
|
|
1907
|
-
})))) : /* @__PURE__ */
|
|
1908
|
-
|
|
2143
|
+
})))) : /* @__PURE__ */ React62.createElement(import_ui53.Stack, { alignItems: "center", p: 2.5, gap: 1.5 }, /* @__PURE__ */ React62.createElement(import_icons19.PhotoIcon, { fontSize: "large" }), /* @__PURE__ */ React62.createElement(import_ui53.Typography, { align: "center", variant: "caption", color: "text.secondary" }, (0, import_i18n41.__)("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React62.createElement("br", null), "\u201C", searchValue, "\u201D."), /* @__PURE__ */ React62.createElement(import_ui53.Typography, { align: "center", variant: "caption", color: "text.secondary" }, /* @__PURE__ */ React62.createElement(
|
|
2144
|
+
import_ui53.Link,
|
|
1909
2145
|
{
|
|
1910
2146
|
color: "secondary",
|
|
1911
2147
|
variant: "caption",
|
|
1912
2148
|
component: "button",
|
|
1913
2149
|
onClick: () => setSearchValue("")
|
|
1914
2150
|
},
|
|
1915
|
-
(0,
|
|
1916
|
-
), "\xA0", (0,
|
|
2151
|
+
(0, import_i18n41.__)("Clear the filters", "elementor")
|
|
2152
|
+
), "\xA0", (0, import_i18n41.__)("and try again.", "elementor")))));
|
|
1917
2153
|
};
|
|
1918
2154
|
var useFilteredOptions = (bind, searchValue) => {
|
|
1919
2155
|
const dynamicTags = usePropDynamicTags(bind);
|
|
1920
|
-
const
|
|
2156
|
+
const options10 = dynamicTags.reduce((categories, { name, label, group }) => {
|
|
1921
2157
|
const isVisible = label.toLowerCase().includes(searchValue.trim().toLowerCase());
|
|
1922
2158
|
if (!isVisible) {
|
|
1923
2159
|
return categories;
|
|
@@ -1928,89 +2164,90 @@ var useFilteredOptions = (bind, searchValue) => {
|
|
|
1928
2164
|
categories.get(group)?.push({ label, value: name });
|
|
1929
2165
|
return categories;
|
|
1930
2166
|
}, /* @__PURE__ */ new Map());
|
|
1931
|
-
return [...
|
|
2167
|
+
return [...options10];
|
|
1932
2168
|
};
|
|
1933
2169
|
|
|
1934
2170
|
// src/dynamics/components/dynamic-selection-control.tsx
|
|
1935
2171
|
var SIZE4 = "tiny";
|
|
1936
2172
|
var DynamicSelectionControl = () => {
|
|
1937
|
-
const {
|
|
2173
|
+
const { setValue: setAnyValue } = (0, import_editor_controls45.useBoundProp)();
|
|
2174
|
+
const { bind, value } = (0, import_editor_controls45.useBoundProp)(dynamicPropTypeUtil);
|
|
1938
2175
|
const { getPropValue: getPropValueFromHistory } = usePropValueHistory();
|
|
1939
|
-
const { name: tagName = "" } = value
|
|
1940
|
-
const selectionPopoverId = (0,
|
|
1941
|
-
const selectionPopoverState = (0,
|
|
2176
|
+
const { name: tagName = "" } = value;
|
|
2177
|
+
const selectionPopoverId = (0, import_react21.useId)();
|
|
2178
|
+
const selectionPopoverState = (0, import_ui54.usePopupState)({ variant: "popover", popupId: selectionPopoverId });
|
|
1942
2179
|
const dynamicTag = useDynamicTag(bind, tagName);
|
|
1943
2180
|
const removeDynamicTag = () => {
|
|
1944
2181
|
const propValue = getPropValueFromHistory(bind);
|
|
1945
|
-
|
|
2182
|
+
setAnyValue(propValue ?? null);
|
|
1946
2183
|
};
|
|
1947
2184
|
if (!dynamicTag) {
|
|
1948
2185
|
throw new Error(`Dynamic tag ${tagName} not found`);
|
|
1949
2186
|
}
|
|
1950
|
-
return /* @__PURE__ */
|
|
1951
|
-
|
|
2187
|
+
return /* @__PURE__ */ React63.createElement(import_ui54.Box, null, /* @__PURE__ */ React63.createElement(
|
|
2188
|
+
import_ui54.UnstableTag,
|
|
1952
2189
|
{
|
|
1953
2190
|
fullWidth: true,
|
|
1954
2191
|
showActionsOnHover: true,
|
|
1955
2192
|
label: dynamicTag.label,
|
|
1956
|
-
startIcon: /* @__PURE__ */
|
|
1957
|
-
...(0,
|
|
1958
|
-
actions: /* @__PURE__ */
|
|
1959
|
-
|
|
2193
|
+
startIcon: /* @__PURE__ */ React63.createElement(import_icons20.DatabaseIcon, { fontSize: SIZE4 }),
|
|
2194
|
+
...(0, import_ui54.bindTrigger)(selectionPopoverState),
|
|
2195
|
+
actions: /* @__PURE__ */ React63.createElement(React63.Fragment, null, /* @__PURE__ */ React63.createElement(DynamicSettingsPopover, { dynamicTag }), /* @__PURE__ */ React63.createElement(
|
|
2196
|
+
import_ui54.IconButton,
|
|
1960
2197
|
{
|
|
1961
2198
|
size: SIZE4,
|
|
1962
2199
|
onClick: removeDynamicTag,
|
|
1963
|
-
"aria-label": (0,
|
|
2200
|
+
"aria-label": (0, import_i18n42.__)("Remove dynamic value", "elementor")
|
|
1964
2201
|
},
|
|
1965
|
-
/* @__PURE__ */
|
|
2202
|
+
/* @__PURE__ */ React63.createElement(import_icons20.XIcon, { fontSize: SIZE4 })
|
|
1966
2203
|
))
|
|
1967
2204
|
}
|
|
1968
|
-
), /* @__PURE__ */
|
|
1969
|
-
|
|
2205
|
+
), /* @__PURE__ */ React63.createElement(
|
|
2206
|
+
import_ui54.Popover,
|
|
1970
2207
|
{
|
|
1971
2208
|
disablePortal: true,
|
|
1972
2209
|
disableScrollLock: true,
|
|
1973
2210
|
anchorOrigin: { vertical: "bottom", horizontal: "left" },
|
|
1974
|
-
...(0,
|
|
2211
|
+
...(0, import_ui54.bindPopover)(selectionPopoverState)
|
|
1975
2212
|
},
|
|
1976
|
-
/* @__PURE__ */
|
|
2213
|
+
/* @__PURE__ */ React63.createElement(import_ui54.Stack, null, /* @__PURE__ */ React63.createElement(import_ui54.Stack, { direction: "row", alignItems: "center", pl: 1.5, pr: 0.5, py: 1.5 }, /* @__PURE__ */ React63.createElement(import_icons20.DatabaseIcon, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React63.createElement(import_ui54.Typography, { variant: "subtitle2" }, (0, import_i18n42.__)("Dynamic Tags", "elementor")), /* @__PURE__ */ React63.createElement(import_ui54.IconButton, { size: SIZE4, sx: { ml: "auto" }, onClick: selectionPopoverState.close }, /* @__PURE__ */ React63.createElement(import_icons20.XIcon, { fontSize: SIZE4 }))), /* @__PURE__ */ React63.createElement(DynamicSelection, { onSelect: selectionPopoverState.close }))
|
|
1977
2214
|
));
|
|
1978
2215
|
};
|
|
1979
2216
|
var DynamicSettingsPopover = ({ dynamicTag }) => {
|
|
1980
|
-
const popupId = (0,
|
|
1981
|
-
const settingsPopupState = (0,
|
|
2217
|
+
const popupId = (0, import_react21.useId)();
|
|
2218
|
+
const settingsPopupState = (0, import_ui54.usePopupState)({ variant: "popover", popupId });
|
|
1982
2219
|
const hasDynamicSettings = !!dynamicTag.atomic_controls.length;
|
|
1983
2220
|
if (!hasDynamicSettings) {
|
|
1984
2221
|
return null;
|
|
1985
2222
|
}
|
|
1986
|
-
return /* @__PURE__ */
|
|
1987
|
-
|
|
2223
|
+
return /* @__PURE__ */ React63.createElement(React63.Fragment, null, /* @__PURE__ */ React63.createElement(
|
|
2224
|
+
import_ui54.IconButton,
|
|
1988
2225
|
{
|
|
1989
2226
|
size: SIZE4,
|
|
1990
|
-
...(0,
|
|
1991
|
-
"aria-label": (0,
|
|
2227
|
+
...(0, import_ui54.bindTrigger)(settingsPopupState),
|
|
2228
|
+
"aria-label": (0, import_i18n42.__)("Settings", "elementor")
|
|
1992
2229
|
},
|
|
1993
|
-
/* @__PURE__ */
|
|
1994
|
-
), /* @__PURE__ */
|
|
1995
|
-
|
|
2230
|
+
/* @__PURE__ */ React63.createElement(import_icons20.SettingsIcon, { fontSize: SIZE4 })
|
|
2231
|
+
), /* @__PURE__ */ React63.createElement(
|
|
2232
|
+
import_ui54.Popover,
|
|
1996
2233
|
{
|
|
1997
2234
|
disableScrollLock: true,
|
|
1998
2235
|
anchorOrigin: { vertical: "bottom", horizontal: "center" },
|
|
1999
|
-
...(0,
|
|
2236
|
+
...(0, import_ui54.bindPopover)(settingsPopupState)
|
|
2000
2237
|
},
|
|
2001
|
-
/* @__PURE__ */
|
|
2238
|
+
/* @__PURE__ */ React63.createElement(import_ui54.Paper, { component: import_ui54.Stack, sx: { minHeight: "300px", width: "220px" } }, /* @__PURE__ */ React63.createElement(import_ui54.Stack, { direction: "row", alignItems: "center", px: 1.5, pt: 2, pb: 1 }, /* @__PURE__ */ React63.createElement(import_icons20.DatabaseIcon, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React63.createElement(import_ui54.Typography, { variant: "subtitle2" }, dynamicTag.label), /* @__PURE__ */ React63.createElement(import_ui54.IconButton, { sx: { ml: "auto" }, size: SIZE4, onClick: settingsPopupState.close }, /* @__PURE__ */ React63.createElement(import_icons20.XIcon, { fontSize: SIZE4 }))), /* @__PURE__ */ React63.createElement(DynamicSettings, { controls: dynamicTag.atomic_controls }))
|
|
2002
2239
|
));
|
|
2003
2240
|
};
|
|
2004
2241
|
var DynamicSettings = ({ controls }) => {
|
|
2005
2242
|
const tabs = controls.filter(({ type }) => type === "section");
|
|
2006
|
-
const { getTabsProps, getTabProps, getTabPanelProps } = (0,
|
|
2243
|
+
const { getTabsProps, getTabProps, getTabPanelProps } = (0, import_ui54.useTabs)(0);
|
|
2007
2244
|
if (!tabs.length) {
|
|
2008
2245
|
return null;
|
|
2009
2246
|
}
|
|
2010
|
-
return /* @__PURE__ */
|
|
2011
|
-
return /* @__PURE__ */
|
|
2247
|
+
return /* @__PURE__ */ React63.createElement(React63.Fragment, null, /* @__PURE__ */ React63.createElement(import_ui54.Tabs, { indicatorColor: "secondary", textColor: "secondary", ...getTabsProps() }, tabs.map(({ value }, index) => /* @__PURE__ */ React63.createElement(import_ui54.Tab, { key: index, label: value.label, sx: { px: 1, py: 0.5 }, ...getTabProps(index) }))), /* @__PURE__ */ React63.createElement(import_ui54.Divider, null), tabs.map(({ value }, index) => {
|
|
2248
|
+
return /* @__PURE__ */ React63.createElement(import_ui54.TabPanel, { key: index, sx: { flexGrow: 1 }, ...getTabPanelProps(index) }, /* @__PURE__ */ React63.createElement(import_ui54.Stack, { gap: 1, px: 2 }, value.items.map((item) => {
|
|
2012
2249
|
if (item.type === "control") {
|
|
2013
|
-
return /* @__PURE__ */
|
|
2250
|
+
return /* @__PURE__ */ React63.createElement(Control3, { key: item.value.bind, control: item.value });
|
|
2014
2251
|
}
|
|
2015
2252
|
return null;
|
|
2016
2253
|
})));
|
|
@@ -2020,24 +2257,24 @@ var Control3 = ({ control }) => {
|
|
|
2020
2257
|
if (!getControlByType(control.type)) {
|
|
2021
2258
|
return null;
|
|
2022
2259
|
}
|
|
2023
|
-
return /* @__PURE__ */
|
|
2260
|
+
return /* @__PURE__ */ React63.createElement(DynamicControl, { bind: control.bind }, control.label ? /* @__PURE__ */ React63.createElement(import_editor_controls45.ControlLabel, null, control.label) : null, /* @__PURE__ */ React63.createElement(Control, { type: control.type, props: control.props }));
|
|
2024
2261
|
};
|
|
2025
2262
|
|
|
2026
2263
|
// src/dynamics/hooks/use-prop-dynamic-action.tsx
|
|
2027
|
-
var
|
|
2028
|
-
var
|
|
2029
|
-
var
|
|
2030
|
-
var
|
|
2264
|
+
var React64 = __toESM(require("react"));
|
|
2265
|
+
var import_editor_controls46 = require("@elementor/editor-controls");
|
|
2266
|
+
var import_icons21 = require("@elementor/icons");
|
|
2267
|
+
var import_i18n43 = require("@wordpress/i18n");
|
|
2031
2268
|
var usePropDynamicAction = () => {
|
|
2032
|
-
const { bind } = (0,
|
|
2269
|
+
const { bind } = (0, import_editor_controls46.useBoundProp)();
|
|
2033
2270
|
const { elementType } = useElement();
|
|
2034
2271
|
const propType = elementType.propsSchema[bind];
|
|
2035
2272
|
const visible = !!propType && supportsDynamic(propType);
|
|
2036
2273
|
return {
|
|
2037
2274
|
visible,
|
|
2038
|
-
icon:
|
|
2039
|
-
title: (0,
|
|
2040
|
-
popoverContent: ({ closePopover }) => /* @__PURE__ */
|
|
2275
|
+
icon: import_icons21.DatabaseIcon,
|
|
2276
|
+
title: (0, import_i18n43.__)("Dynamic Tags", "elementor"),
|
|
2277
|
+
popoverContent: ({ closePopover }) => /* @__PURE__ */ React64.createElement(DynamicSelection, { onSelect: closePopover })
|
|
2041
2278
|
};
|
|
2042
2279
|
};
|
|
2043
2280
|
|