@elementor/editor-editing-panel 1.1.0 → 1.2.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 +24 -0
- package/dist/index.js +630 -377
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +605 -337
- package/dist/index.mjs.map +1 -1
- package/package.json +10 -10
- package/src/components/css-class-selector.tsx +131 -0
- package/src/components/multi-combobox/multi-combobox.tsx +34 -32
- package/src/components/multi-combobox/types.ts +2 -0
- package/src/components/multi-combobox/use-combobox-actions.ts +4 -4
- package/src/components/style-sections/layout-section/align-items-field.tsx +92 -0
- package/src/components/style-sections/layout-section/flex-direction-field.tsx +64 -0
- package/src/components/style-sections/layout-section/flex-order-field.tsx +114 -0
- package/src/components/style-sections/layout-section/justify-content-field.tsx +58 -31
- package/src/components/style-sections/layout-section/layout-section.tsx +21 -2
- package/src/components/style-sections/layout-section/wrap-field.tsx +52 -0
- package/src/components/style-sections/typography-section/text-stroke-field.tsx +41 -6
- package/src/components/style-tab.tsx +2 -2
- package/src/components/css-class-selector-section.tsx +0 -76
- package/src/components/style-sections/layout-section/utils/rotate-flex-icon.ts +0 -12
package/dist/index.js
CHANGED
|
@@ -31,10 +31,10 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
31
31
|
var src_exports = {};
|
|
32
32
|
__export(src_exports, {
|
|
33
33
|
replaceControl: () => replaceControl,
|
|
34
|
-
useBoundProp: () =>
|
|
34
|
+
useBoundProp: () => import_editor_controls43.useBoundProp
|
|
35
35
|
});
|
|
36
36
|
module.exports = __toCommonJS(src_exports);
|
|
37
|
-
var
|
|
37
|
+
var import_editor_controls43 = require("@elementor/editor-controls");
|
|
38
38
|
|
|
39
39
|
// src/control-replacement.tsx
|
|
40
40
|
var import_editor_controls = require("@elementor/editor-controls");
|
|
@@ -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 React54 = __toESM(require("react"));
|
|
58
|
+
var import_editor_controls38 = 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_ui46 = require("@elementor/ui");
|
|
62
|
+
var import_i18n35 = 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
|
|
133
|
+
var React53 = __toESM(require("react"));
|
|
134
134
|
var import_react13 = require("react");
|
|
135
|
-
var
|
|
136
|
-
var
|
|
135
|
+
var import_ui45 = require("@elementor/ui");
|
|
136
|
+
var import_i18n34 = require("@wordpress/i18n");
|
|
137
137
|
|
|
138
138
|
// src/components/settings-tab.tsx
|
|
139
139
|
var React9 = __toESM(require("react"));
|
|
@@ -283,13 +283,13 @@ var Control2 = ({ control }) => {
|
|
|
283
283
|
};
|
|
284
284
|
|
|
285
285
|
// src/components/style-tab.tsx
|
|
286
|
-
var
|
|
286
|
+
var React52 = __toESM(require("react"));
|
|
287
287
|
var import_react12 = require("react");
|
|
288
288
|
var import_editor_elements5 = require("@elementor/editor-elements");
|
|
289
289
|
var import_editor_responsive = require("@elementor/editor-responsive");
|
|
290
290
|
var import_editor_styles = require("@elementor/editor-styles");
|
|
291
|
-
var
|
|
292
|
-
var
|
|
291
|
+
var import_ui44 = require("@elementor/ui");
|
|
292
|
+
var import_i18n33 = require("@wordpress/i18n");
|
|
293
293
|
|
|
294
294
|
// src/contexts/classes-prop-context.tsx
|
|
295
295
|
var React10 = __toESM(require("react"));
|
|
@@ -321,9 +321,10 @@ function useStyle() {
|
|
|
321
321
|
return context;
|
|
322
322
|
}
|
|
323
323
|
|
|
324
|
-
// src/components/css-class-selector
|
|
324
|
+
// src/components/css-class-selector.tsx
|
|
325
325
|
var React13 = __toESM(require("react"));
|
|
326
326
|
var import_editor_elements2 = require("@elementor/editor-elements");
|
|
327
|
+
var import_editor_props = require("@elementor/editor-props");
|
|
327
328
|
var import_ui9 = require("@elementor/ui");
|
|
328
329
|
var import_i18n = require("@wordpress/i18n");
|
|
329
330
|
|
|
@@ -333,9 +334,9 @@ var import_ui8 = require("@elementor/ui");
|
|
|
333
334
|
|
|
334
335
|
// src/components/multi-combobox/use-combobox-actions.ts
|
|
335
336
|
var import_ui7 = require("@elementor/ui");
|
|
336
|
-
var useComboboxActions = (applied, actions, optionsLabel,
|
|
337
|
+
var useComboboxActions = (applied, actions, optionsLabel, onSelect) => ({
|
|
337
338
|
action: {
|
|
338
|
-
is: (opt) =>
|
|
339
|
+
is: (opt) => typeof opt !== "string" && "action" in opt,
|
|
339
340
|
getLabel: (option) => option.action.getLabel(option.label),
|
|
340
341
|
groupBy: (option) => option.action.groupLabel,
|
|
341
342
|
onChange: ({ action, label }) => action?.apply(label),
|
|
@@ -355,10 +356,10 @@ var useComboboxActions = (applied, actions, optionsLabel, onApply) => ({
|
|
|
355
356
|
}
|
|
356
357
|
},
|
|
357
358
|
option: {
|
|
358
|
-
is: (opt) => !("action" in opt),
|
|
359
|
+
is: (opt) => typeof opt !== "string" && !("action" in opt),
|
|
359
360
|
getLabel: (option) => option.label,
|
|
360
361
|
groupBy: () => optionsLabel ?? "",
|
|
361
|
-
onChange: (optionValues) =>
|
|
362
|
+
onChange: (optionValues) => onSelect?.(optionValues),
|
|
362
363
|
getFilteredOptions: (optionList, params) => {
|
|
363
364
|
const appliedValues = applied.map((option) => option.value);
|
|
364
365
|
const optionsWithoutApplied = optionList.filter((option) => !appliedValues.includes(option.value));
|
|
@@ -381,24 +382,19 @@ var createActionOption = (groupLabel, action, inputValue) => ({
|
|
|
381
382
|
var MultiCombobox = ({
|
|
382
383
|
actions = {},
|
|
383
384
|
selected,
|
|
384
|
-
options:
|
|
385
|
+
options: options7,
|
|
385
386
|
optionsLabel,
|
|
386
|
-
|
|
387
|
+
onSelect,
|
|
387
388
|
onCreate,
|
|
388
389
|
...props
|
|
389
390
|
}) => {
|
|
390
|
-
const { action: actionProps, option: optionProps } = useComboboxActions(
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
};
|
|
398
|
-
const handleCreateOption = (values) => {
|
|
399
|
-
const value = values.find((option) => typeof option === "string");
|
|
400
|
-
onCreate?.(value);
|
|
401
|
-
};
|
|
391
|
+
const { action: actionProps, option: optionProps } = useComboboxActions(
|
|
392
|
+
selected,
|
|
393
|
+
actions,
|
|
394
|
+
// TODO: make the group mechanism more generic, allow passing list of groups.
|
|
395
|
+
optionsLabel,
|
|
396
|
+
onSelect
|
|
397
|
+
);
|
|
402
398
|
return /* @__PURE__ */ React12.createElement(
|
|
403
399
|
import_ui8.Autocomplete,
|
|
404
400
|
{
|
|
@@ -410,29 +406,36 @@ var MultiCombobox = ({
|
|
|
410
406
|
disableClearable: true,
|
|
411
407
|
handleHomeEndKeys: true,
|
|
412
408
|
value: selected,
|
|
413
|
-
options:
|
|
409
|
+
options: options7,
|
|
414
410
|
renderGroup,
|
|
415
411
|
renderInput: (params) => /* @__PURE__ */ React12.createElement(import_ui8.TextField, { ...params }),
|
|
416
412
|
getLimitTagsText: (more) => /* @__PURE__ */ React12.createElement(import_ui8.Chip, { size: "tiny", variant: "standard", label: `+${more}`, clickable: true }),
|
|
417
|
-
onChange: (_,
|
|
418
|
-
if (reason === "selectOption") {
|
|
419
|
-
return handleSelectOption(values);
|
|
420
|
-
}
|
|
413
|
+
onChange: (_, selectedOrTypedValue, reason) => {
|
|
421
414
|
if (reason === "createOption") {
|
|
422
|
-
|
|
415
|
+
const typedValue = selectedOrTypedValue.find((option) => typeof option === "string");
|
|
416
|
+
return typedValue && onCreate?.(typedValue);
|
|
423
417
|
}
|
|
424
|
-
|
|
418
|
+
const action = selectedOrTypedValue.find((value) => actionProps.is(value));
|
|
419
|
+
if (reason === "selectOption" && action) {
|
|
420
|
+
return actionProps.onChange(action);
|
|
421
|
+
}
|
|
422
|
+
const selectedValues = selectedOrTypedValue.filter((v) => typeof v !== "string");
|
|
423
|
+
const fixedValues = options7.filter((option) => option.fixed);
|
|
424
|
+
optionProps.onChange([.../* @__PURE__ */ new Set([...fixedValues, ...selectedValues])]);
|
|
425
425
|
},
|
|
426
426
|
getOptionLabel: (option) => {
|
|
427
427
|
if (optionProps.is(option)) {
|
|
428
428
|
return optionProps.getLabel(option);
|
|
429
429
|
}
|
|
430
|
-
|
|
430
|
+
if (actionProps.is(option)) {
|
|
431
|
+
return actionProps.getLabel(option);
|
|
432
|
+
}
|
|
433
|
+
return "";
|
|
431
434
|
},
|
|
432
435
|
filterOptions: (optionList, params) => {
|
|
433
|
-
const
|
|
436
|
+
const filteredOptions = optionProps.getFilteredOptions(optionList, params);
|
|
434
437
|
const actionOptions = actionProps.getFilteredActions(optionList, params);
|
|
435
|
-
return [...actionOptions, ...
|
|
438
|
+
return [...actionOptions, ...filteredOptions];
|
|
436
439
|
},
|
|
437
440
|
groupBy: (option) => (optionProps.is(option) ? optionProps.groupBy() : actionProps.groupBy(option)) ?? ""
|
|
438
441
|
}
|
|
@@ -454,36 +457,40 @@ var GroupItems = (0, import_ui8.styled)("ul")`
|
|
|
454
457
|
padding: 0;
|
|
455
458
|
`;
|
|
456
459
|
|
|
457
|
-
// src/components/css-class-selector
|
|
460
|
+
// src/components/css-class-selector.tsx
|
|
458
461
|
var ID = "elementor-css-class-selector";
|
|
459
462
|
var TAGS_LIMIT = 8;
|
|
460
|
-
function
|
|
461
|
-
const
|
|
463
|
+
function CssClassSelector() {
|
|
464
|
+
const options7 = useOptions();
|
|
462
465
|
const { id: activeId, setId: setActiveId } = useStyle();
|
|
463
|
-
const appliedIds = useAppliedClassesIds();
|
|
464
|
-
const
|
|
465
|
-
const
|
|
466
|
+
const [appliedIds] = useAppliedClassesIds();
|
|
467
|
+
const handleApply = useHandleApply();
|
|
468
|
+
const handleActivate = ({ value }) => setActiveId(value);
|
|
469
|
+
const active = options7.find((option) => option.value === activeId) || null;
|
|
470
|
+
const applied = appliedIds.map((id) => options7.find((option) => option.value === id)).filter((option) => !!option);
|
|
466
471
|
return /* @__PURE__ */ React13.createElement(import_ui9.Stack, { gap: 1, p: 2 }, /* @__PURE__ */ React13.createElement(import_ui9.Typography, { component: "label", variant: "caption", htmlFor: ID }, (0, import_i18n.__)("CSS Classes", "elementor")), /* @__PURE__ */ React13.createElement(
|
|
467
472
|
MultiCombobox,
|
|
468
473
|
{
|
|
469
474
|
id: ID,
|
|
470
475
|
size: "tiny",
|
|
471
|
-
options:
|
|
476
|
+
options: options7,
|
|
472
477
|
selected: applied,
|
|
478
|
+
onSelect: handleApply,
|
|
473
479
|
limitTags: TAGS_LIMIT,
|
|
474
480
|
optionsLabel: (0, import_i18n.__)("Global CSS Classes", "elementor"),
|
|
475
|
-
renderTags: (
|
|
481
|
+
renderTags: (values, getTagProps) => values.map((value, index) => {
|
|
476
482
|
const chipProps = getTagProps({ index });
|
|
483
|
+
const isActive = value.value === active?.value;
|
|
477
484
|
return /* @__PURE__ */ React13.createElement(
|
|
478
485
|
import_ui9.Chip,
|
|
479
486
|
{
|
|
480
487
|
...chipProps,
|
|
481
488
|
key: chipProps.key,
|
|
482
489
|
size: "small",
|
|
483
|
-
label:
|
|
484
|
-
variant:
|
|
485
|
-
color:
|
|
486
|
-
onClick: () =>
|
|
490
|
+
label: value.label,
|
|
491
|
+
variant: isActive ? "filled" : "standard",
|
|
492
|
+
color: isActive && value.color ? value.color : "default",
|
|
493
|
+
onClick: () => handleActivate(value),
|
|
487
494
|
onDelete: null
|
|
488
495
|
}
|
|
489
496
|
);
|
|
@@ -491,20 +498,51 @@ function CssClassSelectorSection() {
|
|
|
491
498
|
}
|
|
492
499
|
));
|
|
493
500
|
}
|
|
494
|
-
function useAppliedClassesIds() {
|
|
495
|
-
const { element } = useElement();
|
|
496
|
-
const currentClassesProp = useClassesProp();
|
|
497
|
-
return (0, import_editor_elements2.useElementSetting)(element.id, currentClassesProp)?.value || [];
|
|
498
|
-
}
|
|
499
501
|
function useOptions() {
|
|
500
502
|
const { element } = useElement();
|
|
501
503
|
const styleDefs = (0, import_editor_elements2.useElementStyles)(element.id);
|
|
502
504
|
return Object.values(styleDefs).map((styleDef) => ({
|
|
503
505
|
label: styleDef.label,
|
|
504
506
|
value: styleDef.id,
|
|
507
|
+
fixed: true,
|
|
505
508
|
color: "primary"
|
|
506
509
|
}));
|
|
507
510
|
}
|
|
511
|
+
function useAppliedClassesIds() {
|
|
512
|
+
const { element } = useElement();
|
|
513
|
+
const currentClassesProp = useClassesProp();
|
|
514
|
+
const value = (0, import_editor_elements2.useElementSetting)(element.id, currentClassesProp)?.value || [];
|
|
515
|
+
const setValue = (ids) => {
|
|
516
|
+
(0, import_editor_elements2.updateSettings)({
|
|
517
|
+
id: element.id,
|
|
518
|
+
props: {
|
|
519
|
+
[currentClassesProp]: import_editor_props.classesPropTypeUtil.create(ids)
|
|
520
|
+
}
|
|
521
|
+
});
|
|
522
|
+
};
|
|
523
|
+
return [value, setValue];
|
|
524
|
+
}
|
|
525
|
+
function useHandleApply() {
|
|
526
|
+
const { id: activeId, setId: setActiveId } = useStyle();
|
|
527
|
+
const [appliedIds, setAppliedIds] = useAppliedClassesIds();
|
|
528
|
+
return (selectedOptions) => {
|
|
529
|
+
const selectedValues = selectedOptions.map(({ value }) => value);
|
|
530
|
+
const isSameClassesAlreadyApplied = selectedValues.length === appliedIds.length && selectedValues.every((value) => appliedIds.includes(value));
|
|
531
|
+
if (isSameClassesAlreadyApplied) {
|
|
532
|
+
return;
|
|
533
|
+
}
|
|
534
|
+
setAppliedIds(selectedValues);
|
|
535
|
+
const addedValue = selectedValues.find((id) => !appliedIds.includes(id));
|
|
536
|
+
if (addedValue) {
|
|
537
|
+
setActiveId(addedValue);
|
|
538
|
+
return;
|
|
539
|
+
}
|
|
540
|
+
const removedValue = appliedIds.find((id) => !selectedValues.includes(id));
|
|
541
|
+
if (removedValue && removedValue === activeId) {
|
|
542
|
+
setActiveId(selectedValues[0] ?? null);
|
|
543
|
+
}
|
|
544
|
+
};
|
|
545
|
+
}
|
|
508
546
|
|
|
509
547
|
// src/components/style-sections/background-section/background-section.tsx
|
|
510
548
|
var React16 = __toESM(require("react"));
|
|
@@ -756,139 +794,345 @@ var EffectsSection = () => {
|
|
|
756
794
|
};
|
|
757
795
|
|
|
758
796
|
// src/components/style-sections/layout-section/layout-section.tsx
|
|
759
|
-
var
|
|
760
|
-
var
|
|
797
|
+
var React31 = __toESM(require("react"));
|
|
798
|
+
var import_editor_controls20 = require("@elementor/editor-controls");
|
|
799
|
+
var import_ui24 = require("@elementor/ui");
|
|
800
|
+
var import_i18n14 = require("@wordpress/i18n");
|
|
761
801
|
|
|
762
|
-
// src/components/style-sections/layout-section/
|
|
802
|
+
// src/components/style-sections/layout-section/align-items-field.tsx
|
|
763
803
|
var React25 = __toESM(require("react"));
|
|
764
804
|
var import_editor_controls14 = require("@elementor/editor-controls");
|
|
765
|
-
var
|
|
805
|
+
var import_icons6 = require("@elementor/icons");
|
|
806
|
+
var import_ui18 = require("@elementor/ui");
|
|
766
807
|
var import_i18n8 = require("@wordpress/i18n");
|
|
767
|
-
|
|
768
|
-
|
|
808
|
+
|
|
809
|
+
// src/hooks/use-direction.ts
|
|
810
|
+
var import_ui17 = require("@elementor/ui");
|
|
811
|
+
function useDirection() {
|
|
812
|
+
const theme = (0, import_ui17.useTheme)(), extendedWindow = window;
|
|
813
|
+
const isUiRtl = "rtl" === theme.direction, isSiteRtl = !!extendedWindow.elementorFrontend?.config?.is_rtl;
|
|
814
|
+
return { isSiteRtl, isUiRtl };
|
|
815
|
+
}
|
|
816
|
+
|
|
817
|
+
// src/components/style-sections/layout-section/align-items-field.tsx
|
|
818
|
+
var AlignItemsField = () => {
|
|
819
|
+
const options7 = useOptions2(), { isSiteRtl } = useDirection();
|
|
820
|
+
return /* @__PURE__ */ React25.createElement(import_ui18.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React25.createElement(import_ui18.ThemeProvider, null, /* @__PURE__ */ React25.createElement(StylesField, { bind: "align-items" }, /* @__PURE__ */ React25.createElement(import_ui18.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React25.createElement(import_ui18.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React25.createElement(import_editor_controls14.ControlLabel, null, (0, import_i18n8.__)("Align Items", "elementor"))), /* @__PURE__ */ React25.createElement(import_ui18.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React25.createElement(import_editor_controls14.ToggleControl, { options: options7 }))))));
|
|
821
|
+
};
|
|
822
|
+
var useOptions2 = () => {
|
|
823
|
+
const StartIcon = (0, import_ui18.withDirection)(import_icons6.LayoutAlignLeftIcon), EndIcon = (0, import_ui18.withDirection)(import_icons6.LayoutAlignRightIcon);
|
|
824
|
+
return [
|
|
769
825
|
{
|
|
770
|
-
value: "
|
|
771
|
-
|
|
772
|
-
|
|
826
|
+
value: "start",
|
|
827
|
+
label: (0, import_i18n8.__)("Start", "elementor"),
|
|
828
|
+
renderContent: ({ size }) => /* @__PURE__ */ React25.createElement(RotatedIcon, { icon: StartIcon, size }),
|
|
829
|
+
showTooltip: true
|
|
773
830
|
},
|
|
774
831
|
{
|
|
775
|
-
value: "
|
|
776
|
-
|
|
777
|
-
|
|
832
|
+
value: "center",
|
|
833
|
+
label: (0, import_i18n8.__)("Center", "elementor"),
|
|
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
|
|
778
848
|
}
|
|
779
849
|
];
|
|
780
|
-
|
|
850
|
+
};
|
|
851
|
+
var RotatedIcon = ({ icon: Icon, size }) => {
|
|
852
|
+
const [direction] = useStylesField("flex-direction"), isRtl = "rtl" === (0, import_ui18.useTheme)().direction, rotationMultiplier = isRtl ? -1 : 1;
|
|
853
|
+
const rotationAngelMap = {
|
|
854
|
+
row: 90,
|
|
855
|
+
column: 0,
|
|
856
|
+
"row-reverse": -90,
|
|
857
|
+
"column-reverse": -180
|
|
858
|
+
};
|
|
859
|
+
return /* @__PURE__ */ React25.createElement(
|
|
860
|
+
Icon,
|
|
861
|
+
{
|
|
862
|
+
fontSize: size,
|
|
863
|
+
sx: { transition: ".3s", rotate: `${rotationAngelMap[direction || "row"] * rotationMultiplier}deg` }
|
|
864
|
+
}
|
|
865
|
+
);
|
|
781
866
|
};
|
|
782
867
|
|
|
783
|
-
// src/components/style-sections/layout-section/
|
|
868
|
+
// src/components/style-sections/layout-section/display-field.tsx
|
|
784
869
|
var React26 = __toESM(require("react"));
|
|
785
870
|
var import_editor_controls15 = require("@elementor/editor-controls");
|
|
786
|
-
var import_icons6 = require("@elementor/icons");
|
|
787
871
|
var import_ui19 = require("@elementor/ui");
|
|
788
872
|
var import_i18n9 = require("@wordpress/i18n");
|
|
873
|
+
var DisplayField = () => {
|
|
874
|
+
const options7 = [
|
|
875
|
+
{
|
|
876
|
+
value: "block",
|
|
877
|
+
renderContent: () => (0, import_i18n9.__)("Block", "elementor"),
|
|
878
|
+
label: (0, import_i18n9.__)("Block", "elementor")
|
|
879
|
+
},
|
|
880
|
+
{
|
|
881
|
+
value: "flex",
|
|
882
|
+
renderContent: () => (0, import_i18n9.__)("Flex", "elementor"),
|
|
883
|
+
label: (0, import_i18n9.__)("Flex", "elementor")
|
|
884
|
+
}
|
|
885
|
+
];
|
|
886
|
+
return /* @__PURE__ */ React26.createElement(StylesField, { bind: "display" }, /* @__PURE__ */ React26.createElement(import_ui19.Stack, { gap: 1 }, /* @__PURE__ */ React26.createElement(import_editor_controls15.ControlLabel, null, (0, import_i18n9.__)("Display", "elementor")), /* @__PURE__ */ React26.createElement(import_editor_controls15.ToggleControl, { options: options7, fullWidth: true })));
|
|
887
|
+
};
|
|
789
888
|
|
|
790
|
-
// src/
|
|
791
|
-
var
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
889
|
+
// src/components/style-sections/layout-section/flex-direction-field.tsx
|
|
890
|
+
var React27 = __toESM(require("react"));
|
|
891
|
+
var import_editor_controls16 = require("@elementor/editor-controls");
|
|
892
|
+
var import_icons7 = require("@elementor/icons");
|
|
893
|
+
var import_ui20 = require("@elementor/ui");
|
|
894
|
+
var import_i18n10 = require("@wordpress/i18n");
|
|
895
|
+
var options = [
|
|
896
|
+
{
|
|
897
|
+
value: "row",
|
|
898
|
+
label: (0, import_i18n10.__)("Row", "elementor"),
|
|
899
|
+
renderContent: ({ size }) => {
|
|
900
|
+
const StartIcon = (0, import_ui20.withDirection)(import_icons7.ArrowRightIcon);
|
|
901
|
+
return /* @__PURE__ */ React27.createElement(StartIcon, { fontSize: size });
|
|
902
|
+
},
|
|
903
|
+
showTooltip: true
|
|
904
|
+
},
|
|
905
|
+
{
|
|
906
|
+
value: "column",
|
|
907
|
+
label: (0, import_i18n10.__)("Column", "elementor"),
|
|
908
|
+
renderContent: ({ size }) => /* @__PURE__ */ React27.createElement(import_icons7.ArrowDownSmallIcon, { fontSize: size }),
|
|
909
|
+
showTooltip: true
|
|
910
|
+
},
|
|
911
|
+
{
|
|
912
|
+
value: "row-reverse",
|
|
913
|
+
label: (0, import_i18n10.__)("Row reverse", "elementor"),
|
|
914
|
+
renderContent: ({ size }) => {
|
|
915
|
+
const EndIcon = (0, import_ui20.withDirection)(import_icons7.ArrowLeftIcon);
|
|
916
|
+
return /* @__PURE__ */ React27.createElement(EndIcon, { fontSize: size });
|
|
917
|
+
},
|
|
918
|
+
showTooltip: true
|
|
919
|
+
},
|
|
920
|
+
{
|
|
921
|
+
value: "column-reverse",
|
|
922
|
+
label: (0, import_i18n10.__)("Column reverse", "elementor"),
|
|
923
|
+
renderContent: ({ size }) => /* @__PURE__ */ React27.createElement(import_icons7.ArrowUpSmallIcon, { fontSize: size }),
|
|
924
|
+
showTooltip: true
|
|
925
|
+
}
|
|
926
|
+
];
|
|
927
|
+
var FlexDirectionField = () => {
|
|
928
|
+
const { isSiteRtl } = useDirection();
|
|
929
|
+
return /* @__PURE__ */ React27.createElement(import_ui20.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React27.createElement(import_ui20.ThemeProvider, null, /* @__PURE__ */ React27.createElement(StylesField, { bind: "flex-direction" }, /* @__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_controls16.ControlLabel, null, (0, import_i18n10.__)("Direction", "elementor"))), /* @__PURE__ */ React27.createElement(import_ui20.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React27.createElement(import_editor_controls16.ToggleControl, { options }))))));
|
|
930
|
+
};
|
|
797
931
|
|
|
798
|
-
// src/components/style-sections/layout-section/
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
932
|
+
// src/components/style-sections/layout-section/flex-order-field.tsx
|
|
933
|
+
var React28 = __toESM(require("react"));
|
|
934
|
+
var import_react7 = require("react");
|
|
935
|
+
var import_editor_controls17 = require("@elementor/editor-controls");
|
|
936
|
+
var import_icons8 = require("@elementor/icons");
|
|
937
|
+
var import_ui21 = require("@elementor/ui");
|
|
938
|
+
var import_i18n11 = require("@wordpress/i18n");
|
|
939
|
+
var FIRST_DEFAULT_VALUE = -99999;
|
|
940
|
+
var LAST_DEFAULT_VALUE = 99999;
|
|
941
|
+
var FIRST = "first";
|
|
942
|
+
var LAST = "last";
|
|
943
|
+
var CUSTOM = "custom";
|
|
944
|
+
var items = [
|
|
945
|
+
{
|
|
946
|
+
value: FIRST,
|
|
947
|
+
label: (0, import_i18n11.__)("First", "elementor"),
|
|
948
|
+
renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(import_icons8.ArrowUpSmallIcon, { fontSize: size }),
|
|
949
|
+
showTooltip: true
|
|
950
|
+
},
|
|
951
|
+
{
|
|
952
|
+
value: LAST,
|
|
953
|
+
label: (0, import_i18n11.__)("Last", "elementor"),
|
|
954
|
+
renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(import_icons8.ArrowDownSmallIcon, { fontSize: size }),
|
|
955
|
+
showTooltip: true
|
|
956
|
+
},
|
|
957
|
+
{
|
|
958
|
+
value: CUSTOM,
|
|
959
|
+
label: (0, import_i18n11.__)("Custom", "elementor"),
|
|
960
|
+
renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(import_icons8.PencilIcon, { fontSize: size }),
|
|
961
|
+
showTooltip: true
|
|
962
|
+
}
|
|
963
|
+
];
|
|
964
|
+
var FlexOrderField = () => {
|
|
965
|
+
const { isSiteRtl } = useDirection(), [order, setOrder] = useStylesField("order");
|
|
966
|
+
const [groupControlValue, setGroupControlValue] = (0, import_react7.useState)(getGroupControlValue(order));
|
|
967
|
+
const handleToggleButtonChange = (group) => {
|
|
968
|
+
setGroupControlValue(group);
|
|
969
|
+
const orderValueMap = {
|
|
970
|
+
[FIRST]: FIRST_DEFAULT_VALUE,
|
|
971
|
+
[LAST]: LAST_DEFAULT_VALUE,
|
|
972
|
+
[CUSTOM]: null
|
|
973
|
+
};
|
|
974
|
+
setOrder(group ? orderValueMap[group] : null);
|
|
805
975
|
};
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
976
|
+
return /* @__PURE__ */ React28.createElement(import_ui21.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React28.createElement(import_ui21.ThemeProvider, null, /* @__PURE__ */ React28.createElement(import_ui21.Stack, { gap: 2 }, /* @__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_controls17.ControlLabel, null, (0, import_i18n11.__)("Order", "elementor"))), /* @__PURE__ */ React28.createElement(import_ui21.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React28.createElement(
|
|
977
|
+
import_editor_controls17.ControlToggleButtonGroup,
|
|
978
|
+
{
|
|
979
|
+
items,
|
|
980
|
+
value: groupControlValue,
|
|
981
|
+
onChange: handleToggleButtonChange,
|
|
982
|
+
exclusive: true
|
|
983
|
+
}
|
|
984
|
+
))), CUSTOM === groupControlValue && /* @__PURE__ */ React28.createElement(StylesField, { bind: "order" }, /* @__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_controls17.ControlLabel, null, (0, import_i18n11.__)("Custom order", "elementor"))), /* @__PURE__ */ React28.createElement(import_ui21.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React28.createElement(
|
|
985
|
+
import_editor_controls17.NumberControl,
|
|
986
|
+
{
|
|
987
|
+
min: FIRST_DEFAULT_VALUE + 1,
|
|
988
|
+
max: LAST_DEFAULT_VALUE - 1,
|
|
989
|
+
shouldForceInt: true
|
|
990
|
+
}
|
|
991
|
+
)))))));
|
|
992
|
+
};
|
|
993
|
+
var getGroupControlValue = (order) => {
|
|
994
|
+
if (LAST_DEFAULT_VALUE === order) {
|
|
995
|
+
return LAST;
|
|
996
|
+
}
|
|
997
|
+
if (FIRST_DEFAULT_VALUE === order) {
|
|
998
|
+
return FIRST;
|
|
999
|
+
}
|
|
1000
|
+
return 0 === order || order ? CUSTOM : null;
|
|
1001
|
+
};
|
|
809
1002
|
|
|
810
1003
|
// src/components/style-sections/layout-section/justify-content-field.tsx
|
|
1004
|
+
var React29 = __toESM(require("react"));
|
|
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");
|
|
811
1009
|
var JustifyContentField = () => {
|
|
812
|
-
const
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
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 [
|
|
816
1016
|
{
|
|
817
1017
|
value: "start",
|
|
818
|
-
label: (0,
|
|
819
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1018
|
+
label: (0, import_i18n12.__)("Start", "elementor"),
|
|
1019
|
+
renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon2, { icon: StartIcon, size }),
|
|
820
1020
|
showTooltip: true
|
|
821
1021
|
},
|
|
822
1022
|
{
|
|
823
1023
|
value: "center",
|
|
824
|
-
label: (0,
|
|
825
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1024
|
+
label: (0, import_i18n12.__)("Center", "elementor"),
|
|
1025
|
+
renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon2, { icon: import_icons9.JustifyCenterIcon, size }),
|
|
826
1026
|
showTooltip: true
|
|
827
1027
|
},
|
|
828
1028
|
{
|
|
829
1029
|
value: "end",
|
|
830
|
-
label: (0,
|
|
831
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1030
|
+
label: (0, import_i18n12.__)("End", "elementor"),
|
|
1031
|
+
renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon2, { icon: EndIcon, size }),
|
|
832
1032
|
showTooltip: true
|
|
833
1033
|
},
|
|
834
1034
|
{
|
|
835
1035
|
value: "space-between",
|
|
836
|
-
label: (0,
|
|
837
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1036
|
+
label: (0, import_i18n12.__)("Space between", "elementor"),
|
|
1037
|
+
renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon2, { icon: import_icons9.JustifySpaceBetweenVerticalIcon, size }),
|
|
838
1038
|
showTooltip: true
|
|
839
1039
|
},
|
|
840
1040
|
{
|
|
841
1041
|
value: "space-around",
|
|
842
|
-
label: (0,
|
|
843
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1042
|
+
label: (0, import_i18n12.__)("Space around", "elementor"),
|
|
1043
|
+
renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon2, { icon: import_icons9.JustifySpaceAroundVerticalIcon, size }),
|
|
844
1044
|
showTooltip: true
|
|
845
1045
|
},
|
|
846
1046
|
{
|
|
847
1047
|
value: "space-evenly",
|
|
848
|
-
label: (0,
|
|
849
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1048
|
+
label: (0, import_i18n12.__)("Space evenly", "elementor"),
|
|
1049
|
+
renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon2, { icon: import_icons9.JustifyDistributeVerticalIcon, size }),
|
|
850
1050
|
showTooltip: true
|
|
851
1051
|
}
|
|
852
1052
|
];
|
|
853
|
-
|
|
854
|
-
|
|
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"));
|
|
1073
|
+
var import_editor_controls19 = require("@elementor/editor-controls");
|
|
1074
|
+
var import_icons10 = require("@elementor/icons");
|
|
1075
|
+
var import_ui23 = require("@elementor/ui");
|
|
1076
|
+
var import_i18n13 = require("@wordpress/i18n");
|
|
1077
|
+
var options2 = [
|
|
1078
|
+
{
|
|
1079
|
+
value: "nowrap",
|
|
1080
|
+
label: (0, import_i18n13.__)("No wrap", "elementor"),
|
|
1081
|
+
renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(import_icons10.ArrowRightIcon, { fontSize: size }),
|
|
1082
|
+
showTooltip: true
|
|
1083
|
+
},
|
|
1084
|
+
{
|
|
1085
|
+
value: "wrap",
|
|
1086
|
+
label: (0, import_i18n13.__)("Wrap", "elementor"),
|
|
1087
|
+
renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(import_icons10.ArrowBackIcon, { fontSize: size }),
|
|
1088
|
+
showTooltip: true
|
|
1089
|
+
},
|
|
1090
|
+
{
|
|
1091
|
+
value: "wrap-reverse",
|
|
1092
|
+
label: (0, import_i18n13.__)("Wrap reverse", "elementor"),
|
|
1093
|
+
renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(import_icons10.ArrowForwardIcon, { fontSize: size }),
|
|
1094
|
+
showTooltip: true
|
|
855
1095
|
}
|
|
856
|
-
|
|
1096
|
+
];
|
|
1097
|
+
var WrapField = () => {
|
|
1098
|
+
const { isSiteRtl } = useDirection();
|
|
1099
|
+
return /* @__PURE__ */ React30.createElement(import_ui23.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React30.createElement(import_ui23.ThemeProvider, null, /* @__PURE__ */ React30.createElement(StylesField, { bind: "flex-wrap" }, /* @__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_controls19.ControlLabel, null, (0, import_i18n13.__)("Wrap", "elementor"))), /* @__PURE__ */ React30.createElement(import_ui23.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React30.createElement(import_editor_controls19.ToggleControl, { options: options2 }))))));
|
|
857
1100
|
};
|
|
858
1101
|
|
|
859
1102
|
// src/components/style-sections/layout-section/layout-section.tsx
|
|
860
1103
|
var LayoutSection = () => {
|
|
861
1104
|
const [display] = useStylesField("display");
|
|
862
|
-
return /* @__PURE__ */
|
|
1105
|
+
return /* @__PURE__ */ React31.createElement(import_ui24.Stack, { gap: 2 }, /* @__PURE__ */ React31.createElement(DisplayField, null), "flex" === display && /* @__PURE__ */ React31.createElement(FlexFields, null));
|
|
863
1106
|
};
|
|
1107
|
+
var FlexFields = () => /* @__PURE__ */ React31.createElement(React31.Fragment, null, /* @__PURE__ */ React31.createElement(FlexDirectionField, null), /* @__PURE__ */ React31.createElement(JustifyContentField, null), /* @__PURE__ */ React31.createElement(AlignItemsField, null), /* @__PURE__ */ React31.createElement(import_ui24.Divider, null), /* @__PURE__ */ React31.createElement(WrapField, null), /* @__PURE__ */ React31.createElement(import_ui24.Divider, null), /* @__PURE__ */ React31.createElement(import_editor_controls20.ControlLabel, null, (0, import_i18n14.__)("Flex child", "elementor")), /* @__PURE__ */ React31.createElement(FlexOrderField, null));
|
|
864
1108
|
|
|
865
1109
|
// src/components/style-sections/position-section/position-section.tsx
|
|
866
|
-
var
|
|
867
|
-
var
|
|
868
|
-
var
|
|
1110
|
+
var React35 = __toESM(require("react"));
|
|
1111
|
+
var import_react10 = require("react");
|
|
1112
|
+
var import_ui28 = require("@elementor/ui");
|
|
869
1113
|
|
|
870
1114
|
// src/hooks/use-style-prop-history.ts
|
|
871
|
-
var
|
|
1115
|
+
var import_react9 = require("react");
|
|
872
1116
|
var import_editor_elements4 = require("@elementor/editor-elements");
|
|
873
1117
|
|
|
874
1118
|
// src/hooks/use-prop-value-history.ts
|
|
875
|
-
var
|
|
1119
|
+
var import_react8 = require("react");
|
|
876
1120
|
var import_utils2 = require("@elementor/utils");
|
|
877
1121
|
var PROPS_VALUES_HISTORY_PREFIX = "elementor/editor-editing-panel/prop-value-history";
|
|
878
1122
|
var usePropValueHistory = () => {
|
|
879
1123
|
const { element } = useElement();
|
|
880
1124
|
const elementKey = `${PROPS_VALUES_HISTORY_PREFIX}/${element.id}`;
|
|
881
|
-
const getElementPropsHistory = (0,
|
|
1125
|
+
const getElementPropsHistory = (0, import_react8.useCallback)(() => {
|
|
882
1126
|
return (0, import_utils2.getSessionStorageItem)(elementKey);
|
|
883
1127
|
}, [elementKey]);
|
|
884
|
-
const getPropValue = (0,
|
|
1128
|
+
const getPropValue = (0, import_react8.useCallback)(
|
|
885
1129
|
(propKey) => {
|
|
886
1130
|
const elementPropValues = getElementPropsHistory();
|
|
887
1131
|
return elementPropValues?.[propKey] ?? null;
|
|
888
1132
|
},
|
|
889
1133
|
[getElementPropsHistory]
|
|
890
1134
|
);
|
|
891
|
-
const setPropValue = (0,
|
|
1135
|
+
const setPropValue = (0, import_react8.useCallback)(
|
|
892
1136
|
(propKey, propValue) => {
|
|
893
1137
|
const elementPropValues = getElementPropsHistory();
|
|
894
1138
|
const updatedElementPropValues = { ...elementPropValues, [propKey]: propValue };
|
|
@@ -896,7 +1140,7 @@ var usePropValueHistory = () => {
|
|
|
896
1140
|
},
|
|
897
1141
|
[getElementPropsHistory, elementKey]
|
|
898
1142
|
);
|
|
899
|
-
const removeProp = (0,
|
|
1143
|
+
const removeProp = (0, import_react8.useCallback)(
|
|
900
1144
|
(propKey) => {
|
|
901
1145
|
const elementPropValues = getElementPropsHistory();
|
|
902
1146
|
const updatedElementPropValues = Object.fromEntries(
|
|
@@ -906,7 +1150,7 @@ var usePropValueHistory = () => {
|
|
|
906
1150
|
},
|
|
907
1151
|
[getElementPropsHistory, elementKey]
|
|
908
1152
|
);
|
|
909
|
-
return (0,
|
|
1153
|
+
return (0, import_react8.useMemo)(() => ({ getPropValue, setPropValue, removeProp }), [getPropValue, removeProp, setPropValue]);
|
|
910
1154
|
};
|
|
911
1155
|
|
|
912
1156
|
// src/hooks/use-style-prop-history.ts
|
|
@@ -917,7 +1161,7 @@ var useStylePropsHistory = (props) => {
|
|
|
917
1161
|
const styleDef = (0, import_editor_elements4.getElementStyles)(element.id)?.[styleDefID];
|
|
918
1162
|
const styleVariant = styleDef ? (0, import_editor_elements4.getVariantByMeta)(styleDef, meta) : null;
|
|
919
1163
|
const styleVariantPath = `${styleDefID}-${styleVariant?.meta.breakpoint}-${styleVariant?.meta.state}`;
|
|
920
|
-
const saveStylePropsHistory = (0,
|
|
1164
|
+
const saveStylePropsHistory = (0, import_react9.useCallback)(() => {
|
|
921
1165
|
props.forEach((propKey) => {
|
|
922
1166
|
const propValue = styleVariant?.props[propKey];
|
|
923
1167
|
if (propValue) {
|
|
@@ -926,7 +1170,7 @@ var useStylePropsHistory = (props) => {
|
|
|
926
1170
|
}
|
|
927
1171
|
});
|
|
928
1172
|
}, [props, setPropValue, styleVariant?.props, styleVariantPath]);
|
|
929
|
-
const updateStylePropsFromHistory = (0,
|
|
1173
|
+
const updateStylePropsFromHistory = (0, import_react9.useCallback)(() => {
|
|
930
1174
|
const propValuesFromHistory = props.reduce((allProps, currentPropKey) => {
|
|
931
1175
|
const propPath = `${styleVariantPath}-${currentPropKey}`;
|
|
932
1176
|
const propHistory = getPropValue(propPath);
|
|
@@ -946,7 +1190,7 @@ var useStylePropsHistory = (props) => {
|
|
|
946
1190
|
});
|
|
947
1191
|
}
|
|
948
1192
|
}, [element.id, getPropValue, meta, props, removeProp, styleDefID, styleVariantPath]);
|
|
949
|
-
const clearCurrentStyleProps = (0,
|
|
1193
|
+
const clearCurrentStyleProps = (0, import_react9.useCallback)(() => {
|
|
950
1194
|
const resetValues = props.reduce(
|
|
951
1195
|
(allProps, currentPropKey) => ({
|
|
952
1196
|
...allProps,
|
|
@@ -962,53 +1206,53 @@ var useStylePropsHistory = (props) => {
|
|
|
962
1206
|
bind: "classes"
|
|
963
1207
|
});
|
|
964
1208
|
}, [element.id, meta, props, styleDefID]);
|
|
965
|
-
return (0,
|
|
1209
|
+
return (0, import_react9.useMemo)(
|
|
966
1210
|
() => ({ saveStylePropsHistory, updateStylePropsFromHistory, clearCurrentStyleProps }),
|
|
967
1211
|
[saveStylePropsHistory, updateStylePropsFromHistory, clearCurrentStyleProps]
|
|
968
1212
|
);
|
|
969
1213
|
};
|
|
970
1214
|
|
|
971
1215
|
// src/components/style-sections/position-section/dimensions-field.tsx
|
|
972
|
-
var
|
|
973
|
-
var
|
|
974
|
-
var
|
|
975
|
-
var
|
|
976
|
-
var
|
|
1216
|
+
var React32 = __toESM(require("react"));
|
|
1217
|
+
var import_editor_controls21 = require("@elementor/editor-controls");
|
|
1218
|
+
var import_icons11 = require("@elementor/icons");
|
|
1219
|
+
var import_ui25 = require("@elementor/ui");
|
|
1220
|
+
var import_i18n15 = require("@wordpress/i18n");
|
|
977
1221
|
var sideIcons = {
|
|
978
|
-
left: /* @__PURE__ */
|
|
979
|
-
right: /* @__PURE__ */
|
|
980
|
-
top: /* @__PURE__ */
|
|
981
|
-
bottom: /* @__PURE__ */
|
|
1222
|
+
left: /* @__PURE__ */ React32.createElement(import_icons11.SideLeftIcon, { fontSize: "tiny" }),
|
|
1223
|
+
right: /* @__PURE__ */ React32.createElement(import_icons11.SideRightIcon, { fontSize: "tiny" }),
|
|
1224
|
+
top: /* @__PURE__ */ React32.createElement(import_icons11.SideTopIcon, { fontSize: "tiny" }),
|
|
1225
|
+
bottom: /* @__PURE__ */ React32.createElement(import_icons11.SideBottomIcon, { fontSize: "tiny" })
|
|
982
1226
|
};
|
|
983
1227
|
var DimensionsField = () => {
|
|
984
|
-
return /* @__PURE__ */
|
|
1228
|
+
return /* @__PURE__ */ React32.createElement(React32.Fragment, null, /* @__PURE__ */ React32.createElement(import_ui25.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React32.createElement(DimensionField, { side: "top", label: (0, import_i18n15.__)("Top", "elementor") }), /* @__PURE__ */ React32.createElement(DimensionField, { side: "right", label: (0, import_i18n15.__)("Right", "elementor") })), /* @__PURE__ */ React32.createElement(import_ui25.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React32.createElement(DimensionField, { side: "bottom", label: (0, import_i18n15.__)("Bottom", "elementor") }), /* @__PURE__ */ React32.createElement(DimensionField, { side: "left", label: (0, import_i18n15.__)("Left", "elementor") })));
|
|
985
1229
|
};
|
|
986
1230
|
var DimensionField = ({ side, label }) => {
|
|
987
|
-
return /* @__PURE__ */
|
|
1231
|
+
return /* @__PURE__ */ React32.createElement(import_ui25.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React32.createElement(import_ui25.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React32.createElement(import_editor_controls21.ControlLabel, null, label)), /* @__PURE__ */ React32.createElement(import_ui25.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React32.createElement(StylesField, { bind: side }, /* @__PURE__ */ React32.createElement(import_editor_controls21.SizeControl, { startIcon: sideIcons[side] }))));
|
|
988
1232
|
};
|
|
989
1233
|
|
|
990
1234
|
// src/components/style-sections/position-section/position-field.tsx
|
|
991
|
-
var
|
|
992
|
-
var
|
|
993
|
-
var
|
|
994
|
-
var
|
|
1235
|
+
var React33 = __toESM(require("react"));
|
|
1236
|
+
var import_editor_controls22 = require("@elementor/editor-controls");
|
|
1237
|
+
var import_ui26 = require("@elementor/ui");
|
|
1238
|
+
var import_i18n16 = require("@wordpress/i18n");
|
|
995
1239
|
var positionOptions = [
|
|
996
|
-
{ label: (0,
|
|
997
|
-
{ label: (0,
|
|
998
|
-
{ label: (0,
|
|
999
|
-
{ label: (0,
|
|
1240
|
+
{ label: (0, import_i18n16.__)("Static", "elementor"), value: "static" },
|
|
1241
|
+
{ label: (0, import_i18n16.__)("Relative", "elementor"), value: "relative" },
|
|
1242
|
+
{ label: (0, import_i18n16.__)("Absolute", "elementor"), value: "absolute" },
|
|
1243
|
+
{ label: (0, import_i18n16.__)("Fixed", "elementor"), value: "fixed" }
|
|
1000
1244
|
];
|
|
1001
1245
|
var PositionField = () => {
|
|
1002
|
-
return /* @__PURE__ */
|
|
1246
|
+
return /* @__PURE__ */ React33.createElement(StylesField, { bind: "position" }, /* @__PURE__ */ React33.createElement(import_ui26.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React33.createElement(import_ui26.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React33.createElement(import_editor_controls22.ControlLabel, null, (0, import_i18n16.__)("Position", "elementor"))), /* @__PURE__ */ React33.createElement(import_ui26.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React33.createElement(import_editor_controls22.SelectControl, { options: positionOptions }))));
|
|
1003
1247
|
};
|
|
1004
1248
|
|
|
1005
1249
|
// src/components/style-sections/position-section/z-index-field.tsx
|
|
1006
|
-
var
|
|
1007
|
-
var
|
|
1008
|
-
var
|
|
1009
|
-
var
|
|
1250
|
+
var React34 = __toESM(require("react"));
|
|
1251
|
+
var import_editor_controls23 = require("@elementor/editor-controls");
|
|
1252
|
+
var import_ui27 = require("@elementor/ui");
|
|
1253
|
+
var import_i18n17 = require("@wordpress/i18n");
|
|
1010
1254
|
var ZIndexField = () => {
|
|
1011
|
-
return /* @__PURE__ */
|
|
1255
|
+
return /* @__PURE__ */ React34.createElement(StylesField, { bind: "z-index" }, /* @__PURE__ */ React34.createElement(import_ui27.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React34.createElement(import_ui27.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React34.createElement(import_editor_controls23.ControlLabel, null, (0, import_i18n17.__)("Z-Index", "elementor"))), /* @__PURE__ */ React34.createElement(import_ui27.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React34.createElement(import_editor_controls23.NumberControl, null))));
|
|
1012
1256
|
};
|
|
1013
1257
|
|
|
1014
1258
|
// src/components/style-sections/position-section/position-section.tsx
|
|
@@ -1017,11 +1261,11 @@ var PositionSection = () => {
|
|
|
1017
1261
|
const [positionValue] = useStylesField("position");
|
|
1018
1262
|
usePositionChangeHandler();
|
|
1019
1263
|
const isNotStatic = positionValue && positionValue !== "static";
|
|
1020
|
-
return /* @__PURE__ */
|
|
1264
|
+
return /* @__PURE__ */ React35.createElement(import_ui28.Stack, { gap: 1.5 }, /* @__PURE__ */ React35.createElement(PositionField, null), isNotStatic ? /* @__PURE__ */ React35.createElement(React35.Fragment, null, /* @__PURE__ */ React35.createElement(DimensionsField, null), /* @__PURE__ */ React35.createElement(ZIndexField, null)) : null);
|
|
1021
1265
|
};
|
|
1022
1266
|
var usePositionChangeHandler = () => {
|
|
1023
1267
|
const dimensionsHistory = useStylePropsHistory(dimensionsPropKeys);
|
|
1024
|
-
const onPositionChange = (0,
|
|
1268
|
+
const onPositionChange = (0, import_react10.useCallback)(
|
|
1025
1269
|
(newPositionValue, previousPosition) => {
|
|
1026
1270
|
if (!dimensionsHistory) {
|
|
1027
1271
|
return;
|
|
@@ -1042,91 +1286,91 @@ var usePositionChangeHandler = () => {
|
|
|
1042
1286
|
};
|
|
1043
1287
|
|
|
1044
1288
|
// src/components/style-sections/size-section/size-section.tsx
|
|
1045
|
-
var
|
|
1046
|
-
var
|
|
1047
|
-
var
|
|
1048
|
-
var
|
|
1289
|
+
var React37 = __toESM(require("react"));
|
|
1290
|
+
var import_editor_controls25 = require("@elementor/editor-controls");
|
|
1291
|
+
var import_ui30 = require("@elementor/ui");
|
|
1292
|
+
var import_i18n19 = require("@wordpress/i18n");
|
|
1049
1293
|
|
|
1050
1294
|
// src/components/style-sections/size-section/overflow-field.tsx
|
|
1051
|
-
var
|
|
1052
|
-
var
|
|
1053
|
-
var
|
|
1054
|
-
var
|
|
1055
|
-
var
|
|
1056
|
-
var
|
|
1295
|
+
var React36 = __toESM(require("react"));
|
|
1296
|
+
var import_editor_controls24 = require("@elementor/editor-controls");
|
|
1297
|
+
var import_icons12 = require("@elementor/icons");
|
|
1298
|
+
var import_ui29 = require("@elementor/ui");
|
|
1299
|
+
var import_i18n18 = require("@wordpress/i18n");
|
|
1300
|
+
var options3 = [
|
|
1057
1301
|
{
|
|
1058
1302
|
value: "visible",
|
|
1059
|
-
label: (0,
|
|
1060
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1303
|
+
label: (0, import_i18n18.__)("Visible", "elementor"),
|
|
1304
|
+
renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(import_icons12.EyeIcon, { fontSize: size }),
|
|
1061
1305
|
showTooltip: true
|
|
1062
1306
|
},
|
|
1063
1307
|
{
|
|
1064
1308
|
value: "hidden",
|
|
1065
|
-
label: (0,
|
|
1066
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1309
|
+
label: (0, import_i18n18.__)("Hidden", "elementor"),
|
|
1310
|
+
renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(import_icons12.EyeOffIcon, { fontSize: size }),
|
|
1067
1311
|
showTooltip: true
|
|
1068
1312
|
},
|
|
1069
1313
|
{
|
|
1070
1314
|
value: "auto",
|
|
1071
|
-
label: (0,
|
|
1072
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1315
|
+
label: (0, import_i18n18.__)("Auto", "elementor"),
|
|
1316
|
+
renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(import_icons12.ExpandBottomIcon, { fontSize: size }),
|
|
1073
1317
|
showTooltip: true
|
|
1074
1318
|
}
|
|
1075
1319
|
];
|
|
1076
1320
|
var OverflowField = () => {
|
|
1077
|
-
return /* @__PURE__ */
|
|
1321
|
+
return /* @__PURE__ */ React36.createElement(StylesField, { bind: "overflow" }, /* @__PURE__ */ React36.createElement(import_ui29.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React36.createElement(import_ui29.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React36.createElement(import_editor_controls24.ControlLabel, null, (0, import_i18n18.__)("Overflow", "elementor"))), /* @__PURE__ */ React36.createElement(import_ui29.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React36.createElement(import_editor_controls24.ToggleControl, { options: options3 }))));
|
|
1078
1322
|
};
|
|
1079
1323
|
|
|
1080
1324
|
// src/components/style-sections/size-section/size-section.tsx
|
|
1081
1325
|
var SizeSection = () => {
|
|
1082
|
-
return /* @__PURE__ */
|
|
1326
|
+
return /* @__PURE__ */ React37.createElement(import_ui30.Stack, { gap: 1.5 }, /* @__PURE__ */ React37.createElement(import_ui30.Grid, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React37.createElement(import_ui30.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(SizeField, { bind: "width", label: (0, import_i18n19.__)("Width", "elementor") })), /* @__PURE__ */ React37.createElement(import_ui30.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(SizeField, { bind: "height", label: (0, import_i18n19.__)("Height", "elementor") }))), /* @__PURE__ */ React37.createElement(import_ui30.Grid, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React37.createElement(import_ui30.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(SizeField, { bind: "min-width", label: (0, import_i18n19.__)("Min. Width", "elementor") })), /* @__PURE__ */ React37.createElement(import_ui30.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(SizeField, { bind: "min-height", label: (0, import_i18n19.__)("Min. Height", "elementor") }))), /* @__PURE__ */ React37.createElement(import_ui30.Grid, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React37.createElement(import_ui30.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(SizeField, { bind: "max-width", label: (0, import_i18n19.__)("Max. Width", "elementor") })), /* @__PURE__ */ React37.createElement(import_ui30.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(SizeField, { bind: "max-height", label: (0, import_i18n19.__)("Max. Height", "elementor") }))), /* @__PURE__ */ React37.createElement(import_ui30.Divider, null), /* @__PURE__ */ React37.createElement(import_ui30.Stack, null, /* @__PURE__ */ React37.createElement(OverflowField, null)));
|
|
1083
1327
|
};
|
|
1084
1328
|
var SizeField = ({ label, bind }) => {
|
|
1085
|
-
return /* @__PURE__ */
|
|
1329
|
+
return /* @__PURE__ */ React37.createElement(StylesField, { bind }, /* @__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_controls25.ControlLabel, null, label)), /* @__PURE__ */ React37.createElement(import_ui30.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React37.createElement(import_editor_controls25.SizeControl, null))));
|
|
1086
1330
|
};
|
|
1087
1331
|
|
|
1088
1332
|
// src/components/style-sections/spacing-section/spacing-section.tsx
|
|
1089
|
-
var
|
|
1090
|
-
var
|
|
1091
|
-
var
|
|
1092
|
-
var
|
|
1333
|
+
var React38 = __toESM(require("react"));
|
|
1334
|
+
var import_editor_controls26 = require("@elementor/editor-controls");
|
|
1335
|
+
var import_ui31 = require("@elementor/ui");
|
|
1336
|
+
var import_i18n20 = require("@wordpress/i18n");
|
|
1093
1337
|
var SpacingSection = () => {
|
|
1094
|
-
return /* @__PURE__ */
|
|
1338
|
+
return /* @__PURE__ */ React38.createElement(import_ui31.Stack, { gap: 1.5 }, /* @__PURE__ */ React38.createElement(StylesField, { bind: "padding" }, /* @__PURE__ */ React38.createElement(import_editor_controls26.LinkedDimensionsControl, { label: (0, import_i18n20.__)("Padding", "elementor") })), /* @__PURE__ */ React38.createElement(import_ui31.Divider, null), /* @__PURE__ */ React38.createElement(StylesField, { bind: "margin" }, /* @__PURE__ */ React38.createElement(import_editor_controls26.LinkedDimensionsControl, { label: (0, import_i18n20.__)("Margin", "elementor") })));
|
|
1095
1339
|
};
|
|
1096
1340
|
|
|
1097
1341
|
// src/components/style-sections/typography-section/typography-section.tsx
|
|
1098
|
-
var
|
|
1099
|
-
var
|
|
1342
|
+
var React51 = __toESM(require("react"));
|
|
1343
|
+
var import_ui43 = require("@elementor/ui");
|
|
1100
1344
|
|
|
1101
1345
|
// src/components/collapsible-content.tsx
|
|
1102
|
-
var
|
|
1103
|
-
var
|
|
1104
|
-
var
|
|
1105
|
-
var
|
|
1346
|
+
var React39 = __toESM(require("react"));
|
|
1347
|
+
var import_react11 = require("react");
|
|
1348
|
+
var import_ui32 = require("@elementor/ui");
|
|
1349
|
+
var import_i18n21 = require("@wordpress/i18n");
|
|
1106
1350
|
var CollapsibleContent = ({ children, defaultOpen = false }) => {
|
|
1107
|
-
const [open, setOpen] = (0,
|
|
1351
|
+
const [open, setOpen] = (0, import_react11.useState)(defaultOpen);
|
|
1108
1352
|
const handleToggle = () => {
|
|
1109
1353
|
setOpen((prevOpen) => !prevOpen);
|
|
1110
1354
|
};
|
|
1111
|
-
return /* @__PURE__ */
|
|
1112
|
-
|
|
1355
|
+
return /* @__PURE__ */ React39.createElement(import_ui32.Stack, { sx: { py: 0.5 } }, /* @__PURE__ */ React39.createElement(
|
|
1356
|
+
import_ui32.Button,
|
|
1113
1357
|
{
|
|
1114
1358
|
fullWidth: true,
|
|
1115
1359
|
size: "small",
|
|
1116
1360
|
color: "secondary",
|
|
1117
1361
|
variant: "outlined",
|
|
1118
1362
|
onClick: handleToggle,
|
|
1119
|
-
endIcon: /* @__PURE__ */
|
|
1363
|
+
endIcon: /* @__PURE__ */ React39.createElement(CollapseIcon, { open })
|
|
1120
1364
|
},
|
|
1121
|
-
open ? (0,
|
|
1122
|
-
), /* @__PURE__ */
|
|
1365
|
+
open ? (0, import_i18n21.__)("Show less", "elementor") : (0, import_i18n21.__)("Show more", "elementor")
|
|
1366
|
+
), /* @__PURE__ */ React39.createElement(import_ui32.Collapse, { in: open, timeout: "auto", unmountOnExit: true }, children));
|
|
1123
1367
|
};
|
|
1124
1368
|
|
|
1125
1369
|
// src/components/style-sections/typography-section/font-family-field.tsx
|
|
1126
|
-
var
|
|
1127
|
-
var
|
|
1128
|
-
var
|
|
1129
|
-
var
|
|
1370
|
+
var React40 = __toESM(require("react"));
|
|
1371
|
+
var import_editor_controls27 = require("@elementor/editor-controls");
|
|
1372
|
+
var import_ui33 = require("@elementor/ui");
|
|
1373
|
+
var import_i18n22 = require("@wordpress/i18n");
|
|
1130
1374
|
|
|
1131
1375
|
// src/sync/get-elementor-config.ts
|
|
1132
1376
|
var getElementorConfig = () => {
|
|
@@ -1140,158 +1384,167 @@ var FontFamilyField = () => {
|
|
|
1140
1384
|
if (!fontFamilies) {
|
|
1141
1385
|
return null;
|
|
1142
1386
|
}
|
|
1143
|
-
return /* @__PURE__ */
|
|
1387
|
+
return /* @__PURE__ */ React40.createElement(StylesField, { bind: "font-family" }, /* @__PURE__ */ React40.createElement(import_ui33.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React40.createElement(import_ui33.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(import_editor_controls27.ControlLabel, null, (0, import_i18n22.__)("Font Family", "elementor"))), /* @__PURE__ */ React40.createElement(import_ui33.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(import_editor_controls27.FontFamilyControl, { fontFamilies }))));
|
|
1144
1388
|
};
|
|
1145
1389
|
var getFontFamilies = () => {
|
|
1146
1390
|
const { controls } = getElementorConfig();
|
|
1147
|
-
const
|
|
1148
|
-
if (!
|
|
1391
|
+
const options7 = controls?.font?.options;
|
|
1392
|
+
if (!options7) {
|
|
1149
1393
|
return null;
|
|
1150
1394
|
}
|
|
1151
|
-
return
|
|
1395
|
+
return options7;
|
|
1152
1396
|
};
|
|
1153
1397
|
|
|
1154
1398
|
// src/components/style-sections/typography-section/font-size-field.tsx
|
|
1155
|
-
var
|
|
1156
|
-
var
|
|
1157
|
-
var
|
|
1158
|
-
var
|
|
1399
|
+
var React41 = __toESM(require("react"));
|
|
1400
|
+
var import_editor_controls28 = require("@elementor/editor-controls");
|
|
1401
|
+
var import_ui34 = require("@elementor/ui");
|
|
1402
|
+
var import_i18n23 = require("@wordpress/i18n");
|
|
1159
1403
|
var FontSizeField = () => {
|
|
1160
|
-
return /* @__PURE__ */
|
|
1404
|
+
return /* @__PURE__ */ React41.createElement(StylesField, { bind: "font-size" }, /* @__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_controls28.ControlLabel, null, (0, import_i18n23.__)("Font Size", "elementor"))), /* @__PURE__ */ React41.createElement(import_ui34.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(import_editor_controls28.SizeControl, null))));
|
|
1161
1405
|
};
|
|
1162
1406
|
|
|
1163
1407
|
// src/components/style-sections/typography-section/font-weight-field.tsx
|
|
1164
|
-
var
|
|
1165
|
-
var
|
|
1166
|
-
var
|
|
1167
|
-
var
|
|
1408
|
+
var React42 = __toESM(require("react"));
|
|
1409
|
+
var import_editor_controls29 = require("@elementor/editor-controls");
|
|
1410
|
+
var import_ui35 = require("@elementor/ui");
|
|
1411
|
+
var import_i18n24 = require("@wordpress/i18n");
|
|
1168
1412
|
var fontWeightOptions = [
|
|
1169
|
-
{ label: (0,
|
|
1170
|
-
{ label: (0,
|
|
1171
|
-
{ label: (0,
|
|
1172
|
-
{ label: (0,
|
|
1173
|
-
{ label: (0,
|
|
1413
|
+
{ label: (0, import_i18n24.__)("Light - 400", "elementor"), value: "400" },
|
|
1414
|
+
{ label: (0, import_i18n24.__)("Regular - 500", "elementor"), value: "500" },
|
|
1415
|
+
{ label: (0, import_i18n24.__)("Semi Bold - 600", "elementor"), value: "600" },
|
|
1416
|
+
{ label: (0, import_i18n24.__)("Bold - 700", "elementor"), value: "700" },
|
|
1417
|
+
{ label: (0, import_i18n24.__)("Black - 900", "elementor"), value: "900" }
|
|
1174
1418
|
];
|
|
1175
1419
|
var FontWeightField = () => {
|
|
1176
|
-
return /* @__PURE__ */
|
|
1420
|
+
return /* @__PURE__ */ React42.createElement(StylesField, { bind: "font-weight" }, /* @__PURE__ */ React42.createElement(import_ui35.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React42.createElement(import_ui35.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(import_editor_controls29.ControlLabel, null, (0, import_i18n24.__)("Font Weight", "elementor"))), /* @__PURE__ */ React42.createElement(import_ui35.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(import_editor_controls29.SelectControl, { options: fontWeightOptions }))));
|
|
1177
1421
|
};
|
|
1178
1422
|
|
|
1179
1423
|
// src/components/style-sections/typography-section/letter-spacing-field.tsx
|
|
1180
|
-
var
|
|
1181
|
-
var
|
|
1182
|
-
var
|
|
1183
|
-
var
|
|
1424
|
+
var React43 = __toESM(require("react"));
|
|
1425
|
+
var import_editor_controls30 = require("@elementor/editor-controls");
|
|
1426
|
+
var import_ui36 = require("@elementor/ui");
|
|
1427
|
+
var import_i18n25 = require("@wordpress/i18n");
|
|
1184
1428
|
var LetterSpacingField = () => {
|
|
1185
|
-
return /* @__PURE__ */
|
|
1429
|
+
return /* @__PURE__ */ React43.createElement(StylesField, { bind: "letter-spacing" }, /* @__PURE__ */ React43.createElement(import_ui36.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React43.createElement(import_ui36.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React43.createElement(import_editor_controls30.ControlLabel, null, (0, import_i18n25.__)("Letter Spacing", "elementor"))), /* @__PURE__ */ React43.createElement(import_ui36.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React43.createElement(import_editor_controls30.SizeControl, null))));
|
|
1186
1430
|
};
|
|
1187
1431
|
|
|
1188
1432
|
// src/components/style-sections/typography-section/text-alignment-field.tsx
|
|
1189
|
-
var
|
|
1190
|
-
var
|
|
1191
|
-
var
|
|
1192
|
-
var
|
|
1193
|
-
var
|
|
1194
|
-
var
|
|
1433
|
+
var React44 = __toESM(require("react"));
|
|
1434
|
+
var import_editor_controls31 = require("@elementor/editor-controls");
|
|
1435
|
+
var import_icons13 = require("@elementor/icons");
|
|
1436
|
+
var import_ui37 = require("@elementor/ui");
|
|
1437
|
+
var import_i18n26 = require("@wordpress/i18n");
|
|
1438
|
+
var options4 = [
|
|
1195
1439
|
{
|
|
1196
1440
|
value: "left",
|
|
1197
|
-
label: (0,
|
|
1198
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1441
|
+
label: (0, import_i18n26.__)("Left", "elementor"),
|
|
1442
|
+
renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(import_icons13.AlignLeftIcon, { fontSize: size })
|
|
1199
1443
|
},
|
|
1200
1444
|
{
|
|
1201
1445
|
value: "center",
|
|
1202
|
-
label: (0,
|
|
1203
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1446
|
+
label: (0, import_i18n26.__)("Center", "elementor"),
|
|
1447
|
+
renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(import_icons13.AlignCenterIcon, { fontSize: size })
|
|
1204
1448
|
},
|
|
1205
1449
|
{
|
|
1206
1450
|
value: "right",
|
|
1207
|
-
label: (0,
|
|
1208
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1451
|
+
label: (0, import_i18n26.__)("Right", "elementor"),
|
|
1452
|
+
renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(import_icons13.AlignRightIcon, { fontSize: size })
|
|
1209
1453
|
},
|
|
1210
1454
|
{
|
|
1211
1455
|
value: "justify",
|
|
1212
|
-
label: (0,
|
|
1213
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1456
|
+
label: (0, import_i18n26.__)("Justify", "elementor"),
|
|
1457
|
+
renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(import_icons13.AlignJustifiedIcon, { fontSize: size })
|
|
1214
1458
|
}
|
|
1215
1459
|
];
|
|
1216
1460
|
var TextAlignmentField = () => {
|
|
1217
|
-
return /* @__PURE__ */
|
|
1461
|
+
return /* @__PURE__ */ React44.createElement(StylesField, { bind: "text-align" }, /* @__PURE__ */ React44.createElement(import_ui37.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React44.createElement(import_ui37.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React44.createElement(import_editor_controls31.ControlLabel, null, (0, import_i18n26.__)("Alignment", "elementor"))), /* @__PURE__ */ React44.createElement(import_ui37.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React44.createElement(import_editor_controls31.ToggleControl, { options: options4 }))));
|
|
1218
1462
|
};
|
|
1219
1463
|
|
|
1220
1464
|
// src/components/style-sections/typography-section/text-color-field.tsx
|
|
1221
|
-
var
|
|
1222
|
-
var
|
|
1223
|
-
var
|
|
1224
|
-
var
|
|
1465
|
+
var React45 = __toESM(require("react"));
|
|
1466
|
+
var import_editor_controls32 = require("@elementor/editor-controls");
|
|
1467
|
+
var import_ui38 = require("@elementor/ui");
|
|
1468
|
+
var import_i18n27 = require("@wordpress/i18n");
|
|
1225
1469
|
var TextColorField = () => {
|
|
1226
|
-
return /* @__PURE__ */
|
|
1470
|
+
return /* @__PURE__ */ React45.createElement(StylesField, { bind: "color" }, /* @__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_controls32.ControlLabel, null, (0, import_i18n27.__)("Text Color", "elementor"))), /* @__PURE__ */ React45.createElement(import_ui38.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React45.createElement(import_editor_controls32.ColorControl, null))));
|
|
1227
1471
|
};
|
|
1228
1472
|
|
|
1229
1473
|
// src/components/style-sections/typography-section/text-direction-field.tsx
|
|
1230
|
-
var
|
|
1231
|
-
var
|
|
1232
|
-
var
|
|
1233
|
-
var
|
|
1234
|
-
var
|
|
1235
|
-
var
|
|
1474
|
+
var React46 = __toESM(require("react"));
|
|
1475
|
+
var import_editor_controls33 = require("@elementor/editor-controls");
|
|
1476
|
+
var import_icons14 = require("@elementor/icons");
|
|
1477
|
+
var import_ui39 = require("@elementor/ui");
|
|
1478
|
+
var import_i18n28 = require("@wordpress/i18n");
|
|
1479
|
+
var options5 = [
|
|
1236
1480
|
{
|
|
1237
1481
|
value: "ltr",
|
|
1238
|
-
label: (0,
|
|
1239
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1482
|
+
label: (0, import_i18n28.__)("Left to Right", "elementor"),
|
|
1483
|
+
renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(import_icons14.TextDirectionLtrIcon, { fontSize: size })
|
|
1240
1484
|
},
|
|
1241
1485
|
{
|
|
1242
1486
|
value: "rtl",
|
|
1243
|
-
label: (0,
|
|
1244
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1487
|
+
label: (0, import_i18n28.__)("Right to Left", "elementor"),
|
|
1488
|
+
renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(import_icons14.TextDirectionRtlIcon, { fontSize: size })
|
|
1245
1489
|
}
|
|
1246
1490
|
];
|
|
1247
1491
|
var TextDirectionField = () => {
|
|
1248
|
-
return /* @__PURE__ */
|
|
1492
|
+
return /* @__PURE__ */ React46.createElement(StylesField, { bind: "direction" }, /* @__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_controls33.ControlLabel, null, (0, import_i18n28.__)("Direction", "elementor"))), /* @__PURE__ */ React46.createElement(import_ui39.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React46.createElement(import_editor_controls33.ToggleControl, { options: options5 }))));
|
|
1249
1493
|
};
|
|
1250
1494
|
|
|
1251
1495
|
// src/components/style-sections/typography-section/text-stroke-field.tsx
|
|
1252
|
-
var
|
|
1253
|
-
var
|
|
1254
|
-
var
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
var import_i18n24 = require("@wordpress/i18n");
|
|
1262
|
-
var CollapsibleField = ({ label, children, defaultOpen = false }) => {
|
|
1263
|
-
const [open, setOpen] = (0, import_react11.useState)(defaultOpen);
|
|
1264
|
-
const handleToggle = () => {
|
|
1265
|
-
setOpen((prevOpen) => !prevOpen);
|
|
1266
|
-
};
|
|
1267
|
-
return /* @__PURE__ */ React43.createElement(import_ui36.Stack, { gap: 1.5 }, /* @__PURE__ */ React43.createElement(import_ui36.Stack, { direction: "row", justifyContent: "space-between", alignItems: "center", sx: { py: 0.5 } }, label, /* @__PURE__ */ React43.createElement(
|
|
1268
|
-
import_ui36.IconButton,
|
|
1269
|
-
{
|
|
1270
|
-
onClick: handleToggle,
|
|
1271
|
-
size: "tiny",
|
|
1272
|
-
"aria-label": open ? (0, import_i18n24.__)("Close", "elementor") : (0, import_i18n24.__)("Expand", "elementor")
|
|
1496
|
+
var React47 = __toESM(require("react"));
|
|
1497
|
+
var import_editor_controls34 = require("@elementor/editor-controls");
|
|
1498
|
+
var import_i18n29 = require("@wordpress/i18n");
|
|
1499
|
+
var initTextStroke = {
|
|
1500
|
+
$$type: "stroke",
|
|
1501
|
+
value: {
|
|
1502
|
+
color: {
|
|
1503
|
+
$$type: "color",
|
|
1504
|
+
value: "#000000"
|
|
1273
1505
|
},
|
|
1274
|
-
|
|
1275
|
-
|
|
1506
|
+
width: {
|
|
1507
|
+
$$type: "size",
|
|
1508
|
+
value: {
|
|
1509
|
+
unit: "px",
|
|
1510
|
+
size: 1
|
|
1511
|
+
}
|
|
1512
|
+
}
|
|
1513
|
+
}
|
|
1276
1514
|
};
|
|
1277
|
-
|
|
1278
|
-
// src/components/style-sections/typography-section/text-stroke-field.tsx
|
|
1279
1515
|
var TextStrokeField = () => {
|
|
1280
|
-
|
|
1516
|
+
const [textStroke, setTextStroke] = useStylesField("-webkit-text-stroke");
|
|
1517
|
+
const addTextStroke = () => {
|
|
1518
|
+
setTextStroke(initTextStroke);
|
|
1519
|
+
};
|
|
1520
|
+
const removeTextStroke = () => {
|
|
1521
|
+
setTextStroke(null);
|
|
1522
|
+
};
|
|
1523
|
+
const hasTextStroke = Boolean(textStroke);
|
|
1524
|
+
return /* @__PURE__ */ React47.createElement(
|
|
1525
|
+
AddOrRemoveContent,
|
|
1526
|
+
{
|
|
1527
|
+
label: (0, import_i18n29.__)("Text Stroke", "elementor"),
|
|
1528
|
+
isAdded: hasTextStroke,
|
|
1529
|
+
onAdd: addTextStroke,
|
|
1530
|
+
onRemove: removeTextStroke
|
|
1531
|
+
},
|
|
1532
|
+
/* @__PURE__ */ React47.createElement(StylesField, { bind: "-webkit-text-stroke" }, /* @__PURE__ */ React47.createElement(import_editor_controls34.StrokeControl, null))
|
|
1533
|
+
);
|
|
1281
1534
|
};
|
|
1282
1535
|
|
|
1283
1536
|
// src/components/style-sections/typography-section/text-style-field.tsx
|
|
1284
|
-
var
|
|
1285
|
-
var
|
|
1286
|
-
var
|
|
1287
|
-
var
|
|
1288
|
-
var
|
|
1537
|
+
var React48 = __toESM(require("react"));
|
|
1538
|
+
var import_editor_controls35 = require("@elementor/editor-controls");
|
|
1539
|
+
var import_icons15 = require("@elementor/icons");
|
|
1540
|
+
var import_ui40 = require("@elementor/ui");
|
|
1541
|
+
var import_i18n30 = require("@wordpress/i18n");
|
|
1289
1542
|
var buttonSize = "tiny";
|
|
1290
1543
|
var TextStyleField = () => {
|
|
1291
1544
|
const [fontStyle, setFontStyle] = useStylesField("font-style");
|
|
1292
1545
|
const [textDecoration, setTextDecoration] = useStylesField("text-decoration");
|
|
1293
1546
|
const formats = [fontStyle, ...(textDecoration || "").split(" ")];
|
|
1294
|
-
return /* @__PURE__ */
|
|
1547
|
+
return /* @__PURE__ */ React48.createElement(import_ui40.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React48.createElement(import_ui40.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React48.createElement(import_editor_controls35.ControlLabel, null, (0, import_i18n30.__)("Style", "elementor"))), /* @__PURE__ */ React48.createElement(import_ui40.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React48.createElement(import_ui40.ToggleButtonGroup, { value: formats }, /* @__PURE__ */ React48.createElement(
|
|
1295
1548
|
ToggleButton,
|
|
1296
1549
|
{
|
|
1297
1550
|
value: "italic",
|
|
@@ -1299,8 +1552,8 @@ var TextStyleField = () => {
|
|
|
1299
1552
|
"aria-label": "italic",
|
|
1300
1553
|
sx: { marginLeft: "auto" }
|
|
1301
1554
|
},
|
|
1302
|
-
/* @__PURE__ */
|
|
1303
|
-
), /* @__PURE__ */
|
|
1555
|
+
/* @__PURE__ */ React48.createElement(import_icons15.ItalicIcon, { fontSize: buttonSize })
|
|
1556
|
+
), /* @__PURE__ */ React48.createElement(
|
|
1304
1557
|
ShorthandControl,
|
|
1305
1558
|
{
|
|
1306
1559
|
value: "line-through",
|
|
@@ -1308,8 +1561,8 @@ var TextStyleField = () => {
|
|
|
1308
1561
|
updateValues: setTextDecoration,
|
|
1309
1562
|
"aria-label": "line-through"
|
|
1310
1563
|
},
|
|
1311
|
-
/* @__PURE__ */
|
|
1312
|
-
), /* @__PURE__ */
|
|
1564
|
+
/* @__PURE__ */ React48.createElement(import_icons15.StrikethroughIcon, { fontSize: buttonSize })
|
|
1565
|
+
), /* @__PURE__ */ React48.createElement(
|
|
1313
1566
|
ShorthandControl,
|
|
1314
1567
|
{
|
|
1315
1568
|
value: "underline",
|
|
@@ -1317,7 +1570,7 @@ var TextStyleField = () => {
|
|
|
1317
1570
|
updateValues: setTextDecoration,
|
|
1318
1571
|
"aria-label": "underline"
|
|
1319
1572
|
},
|
|
1320
|
-
/* @__PURE__ */
|
|
1573
|
+
/* @__PURE__ */ React48.createElement(import_icons15.UnderlineIcon, { fontSize: buttonSize })
|
|
1321
1574
|
))));
|
|
1322
1575
|
};
|
|
1323
1576
|
var ShorthandControl = ({
|
|
@@ -1336,52 +1589,52 @@ var ShorthandControl = ({
|
|
|
1336
1589
|
updateValues([...valuesArr, newValue].join(" "));
|
|
1337
1590
|
}
|
|
1338
1591
|
};
|
|
1339
|
-
return /* @__PURE__ */
|
|
1592
|
+
return /* @__PURE__ */ React48.createElement(ToggleButton, { value, onChange: toggleValue, selected, "aria-label": ariaLabel }, children);
|
|
1340
1593
|
};
|
|
1341
1594
|
var ToggleButton = ({ onChange, ...props }) => {
|
|
1342
1595
|
const handleChange = (_e, newValue) => {
|
|
1343
1596
|
onChange(newValue);
|
|
1344
1597
|
};
|
|
1345
|
-
return /* @__PURE__ */
|
|
1598
|
+
return /* @__PURE__ */ React48.createElement(import_ui40.ToggleButton, { ...props, onChange: handleChange, size: buttonSize });
|
|
1346
1599
|
};
|
|
1347
1600
|
|
|
1348
1601
|
// src/components/style-sections/typography-section/transform-field.tsx
|
|
1349
|
-
var
|
|
1350
|
-
var
|
|
1351
|
-
var
|
|
1352
|
-
var
|
|
1353
|
-
var
|
|
1354
|
-
var
|
|
1602
|
+
var React49 = __toESM(require("react"));
|
|
1603
|
+
var import_editor_controls36 = require("@elementor/editor-controls");
|
|
1604
|
+
var import_icons16 = require("@elementor/icons");
|
|
1605
|
+
var import_ui41 = require("@elementor/ui");
|
|
1606
|
+
var import_i18n31 = require("@wordpress/i18n");
|
|
1607
|
+
var options6 = [
|
|
1355
1608
|
{
|
|
1356
1609
|
value: "capitalize",
|
|
1357
|
-
label: (0,
|
|
1358
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1610
|
+
label: (0, import_i18n31.__)("Capitalize", "elementor"),
|
|
1611
|
+
renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(import_icons16.LetterCaseIcon, { fontSize: size })
|
|
1359
1612
|
},
|
|
1360
1613
|
{
|
|
1361
1614
|
value: "uppercase",
|
|
1362
|
-
label: (0,
|
|
1363
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1615
|
+
label: (0, import_i18n31.__)("Uppercase", "elementor"),
|
|
1616
|
+
renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(import_icons16.LetterCaseUpperIcon, { fontSize: size })
|
|
1364
1617
|
},
|
|
1365
1618
|
{
|
|
1366
1619
|
value: "lowercase",
|
|
1367
|
-
label: (0,
|
|
1368
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1620
|
+
label: (0, import_i18n31.__)("Lowercase", "elementor"),
|
|
1621
|
+
renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(import_icons16.LetterCaseLowerIcon, { fontSize: size })
|
|
1369
1622
|
}
|
|
1370
1623
|
];
|
|
1371
|
-
var TransformField = () => /* @__PURE__ */
|
|
1624
|
+
var TransformField = () => /* @__PURE__ */ React49.createElement(StylesField, { bind: "text-transform" }, /* @__PURE__ */ React49.createElement(import_ui41.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React49.createElement(import_ui41.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(import_editor_controls36.ControlLabel, null, (0, import_i18n31.__)("Transform", "elementor"))), /* @__PURE__ */ React49.createElement(import_ui41.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React49.createElement(import_editor_controls36.ToggleControl, { options: options6 }))));
|
|
1372
1625
|
|
|
1373
1626
|
// src/components/style-sections/typography-section/word-spacing-field.tsx
|
|
1374
|
-
var
|
|
1375
|
-
var
|
|
1376
|
-
var
|
|
1377
|
-
var
|
|
1627
|
+
var React50 = __toESM(require("react"));
|
|
1628
|
+
var import_editor_controls37 = require("@elementor/editor-controls");
|
|
1629
|
+
var import_ui42 = require("@elementor/ui");
|
|
1630
|
+
var import_i18n32 = require("@wordpress/i18n");
|
|
1378
1631
|
var WordSpacingField = () => {
|
|
1379
|
-
return /* @__PURE__ */
|
|
1632
|
+
return /* @__PURE__ */ React50.createElement(StylesField, { bind: "word-spacing" }, /* @__PURE__ */ React50.createElement(import_ui42.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React50.createElement(import_ui42.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React50.createElement(import_editor_controls37.ControlLabel, null, (0, import_i18n32.__)("Word Spacing", "elementor"))), /* @__PURE__ */ React50.createElement(import_ui42.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React50.createElement(import_editor_controls37.SizeControl, null))));
|
|
1380
1633
|
};
|
|
1381
1634
|
|
|
1382
1635
|
// src/components/style-sections/typography-section/typography-section.tsx
|
|
1383
1636
|
var TypographySection = () => {
|
|
1384
|
-
return /* @__PURE__ */
|
|
1637
|
+
return /* @__PURE__ */ React51.createElement(import_ui43.Stack, { gap: 1.5 }, /* @__PURE__ */ React51.createElement(FontFamilyField, null), /* @__PURE__ */ React51.createElement(FontWeightField, null), /* @__PURE__ */ React51.createElement(FontSizeField, null), /* @__PURE__ */ React51.createElement(import_ui43.Divider, null), /* @__PURE__ */ React51.createElement(TextColorField, null), /* @__PURE__ */ React51.createElement(CollapsibleContent, null, /* @__PURE__ */ React51.createElement(import_ui43.Stack, { gap: 1.5, sx: { pt: 1.5 } }, /* @__PURE__ */ React51.createElement(LetterSpacingField, null), /* @__PURE__ */ React51.createElement(WordSpacingField, null), /* @__PURE__ */ React51.createElement(import_ui43.Divider, null), /* @__PURE__ */ React51.createElement(TextAlignmentField, null), /* @__PURE__ */ React51.createElement(TextStyleField, null), /* @__PURE__ */ React51.createElement(TransformField, null), /* @__PURE__ */ React51.createElement(TextDirectionField, null), /* @__PURE__ */ React51.createElement(TextStrokeField, null))));
|
|
1385
1638
|
};
|
|
1386
1639
|
|
|
1387
1640
|
// src/components/style-tab.tsx
|
|
@@ -1390,7 +1643,7 @@ var StyleTab = () => {
|
|
|
1390
1643
|
const currentClassesProp = useCurrentClassesProp();
|
|
1391
1644
|
const [activeStyleDefId, setActiveStyleDefId] = useActiveStyleDefId(currentClassesProp);
|
|
1392
1645
|
const breakpoint = (0, import_editor_responsive.useActiveBreakpoint)();
|
|
1393
|
-
return /* @__PURE__ */
|
|
1646
|
+
return /* @__PURE__ */ React52.createElement(ClassesPropProvider, { prop: currentClassesProp }, /* @__PURE__ */ React52.createElement(StyleProvider, { meta: { breakpoint, state: null }, id: activeStyleDefId, setId: setActiveStyleDefId }, /* @__PURE__ */ React52.createElement(CssClassSelector, null), /* @__PURE__ */ React52.createElement(import_ui44.Divider, null), /* @__PURE__ */ React52.createElement(SectionsList, null, /* @__PURE__ */ React52.createElement(Section, { title: (0, import_i18n33.__)("Layout", "elementor") }, /* @__PURE__ */ React52.createElement(LayoutSection, null)), /* @__PURE__ */ React52.createElement(Section, { title: (0, import_i18n33.__)("Spacing", "elementor") }, /* @__PURE__ */ React52.createElement(SpacingSection, null)), /* @__PURE__ */ React52.createElement(Section, { title: (0, import_i18n33.__)("Size", "elementor") }, /* @__PURE__ */ React52.createElement(SizeSection, null)), /* @__PURE__ */ React52.createElement(Section, { title: (0, import_i18n33.__)("Position", "elementor") }, /* @__PURE__ */ React52.createElement(PositionSection, null)), /* @__PURE__ */ React52.createElement(Section, { title: (0, import_i18n33.__)("Typography", "elementor") }, /* @__PURE__ */ React52.createElement(TypographySection, null)), /* @__PURE__ */ React52.createElement(Section, { title: (0, import_i18n33.__)("Background", "elementor") }, /* @__PURE__ */ React52.createElement(BackgroundSection, null)), /* @__PURE__ */ React52.createElement(Section, { title: (0, import_i18n33.__)("Border", "elementor") }, /* @__PURE__ */ React52.createElement(BorderSection, null)), /* @__PURE__ */ React52.createElement(Section, { title: (0, import_i18n33.__)("Effects", "elementor") }, /* @__PURE__ */ React52.createElement(EffectsSection, null)))));
|
|
1394
1647
|
};
|
|
1395
1648
|
function useActiveStyleDefId(currentClassesProp) {
|
|
1396
1649
|
const [activeStyledDefId, setActiveStyledDefId] = (0, import_react12.useState)(null);
|
|
@@ -1423,11 +1676,11 @@ function useCurrentClassesProp() {
|
|
|
1423
1676
|
// src/components/editing-panel-tabs.tsx
|
|
1424
1677
|
var EditingPanelTabs = () => {
|
|
1425
1678
|
const { element } = useElement();
|
|
1426
|
-
const { getTabProps, getTabPanelProps, getTabsProps } = (0,
|
|
1679
|
+
const { getTabProps, getTabPanelProps, getTabsProps } = (0, import_ui45.useTabs)("settings");
|
|
1427
1680
|
return (
|
|
1428
1681
|
// When switching between elements, the local states should be reset. We are using key to rerender the tabs.
|
|
1429
1682
|
// Reference: https://react.dev/learn/preserving-and-resetting-state#resetting-a-form-with-a-key
|
|
1430
|
-
/* @__PURE__ */
|
|
1683
|
+
/* @__PURE__ */ React53.createElement(import_react13.Fragment, { key: element.id }, /* @__PURE__ */ React53.createElement(import_ui45.Stack, { direction: "column", sx: { width: "100%" } }, /* @__PURE__ */ React53.createElement(import_ui45.Tabs, { variant: "fullWidth", indicatorColor: "secondary", textColor: "inherit", ...getTabsProps() }, /* @__PURE__ */ React53.createElement(import_ui45.Tab, { label: (0, import_i18n34.__)("General", "elementor"), ...getTabProps("settings") }), /* @__PURE__ */ React53.createElement(import_ui45.Tab, { label: (0, import_i18n34.__)("Style", "elementor"), ...getTabProps("style") })), /* @__PURE__ */ React53.createElement(import_ui45.Divider, null), /* @__PURE__ */ React53.createElement(import_ui45.TabPanel, { ...getTabPanelProps("settings"), disablePadding: true }, /* @__PURE__ */ React53.createElement(SettingsTab, null)), /* @__PURE__ */ React53.createElement(import_ui45.TabPanel, { ...getTabPanelProps("style"), disablePadding: true }, /* @__PURE__ */ React53.createElement(StyleTab, null))))
|
|
1431
1684
|
);
|
|
1432
1685
|
};
|
|
1433
1686
|
|
|
@@ -1440,8 +1693,8 @@ var EditingPanel = () => {
|
|
|
1440
1693
|
if (!element || !elementType) {
|
|
1441
1694
|
return null;
|
|
1442
1695
|
}
|
|
1443
|
-
const panelTitle = (0,
|
|
1444
|
-
return /* @__PURE__ */
|
|
1696
|
+
const panelTitle = (0, import_i18n35.__)("Edit %s", "elementor").replace("%s", elementType.title);
|
|
1697
|
+
return /* @__PURE__ */ React54.createElement(import_ui46.ErrorBoundary, { fallback: /* @__PURE__ */ React54.createElement(EditorPanelErrorFallback, null) }, /* @__PURE__ */ React54.createElement(import_editor_panels.Panel, null, /* @__PURE__ */ React54.createElement(import_editor_panels.PanelHeader, null, /* @__PURE__ */ React54.createElement(import_editor_panels.PanelHeaderTitle, null, panelTitle)), /* @__PURE__ */ React54.createElement(import_editor_panels.PanelBody, null, /* @__PURE__ */ React54.createElement(import_editor_controls38.ControlActionsProvider, { items: menuItems }, /* @__PURE__ */ React54.createElement(import_editor_controls38.ControlReplacementProvider, { ...controlReplacement }, /* @__PURE__ */ React54.createElement(ElementProvider, { element, elementType }, /* @__PURE__ */ React54.createElement(EditingPanelTabs, null)))))));
|
|
1445
1698
|
};
|
|
1446
1699
|
|
|
1447
1700
|
// src/panel.ts
|
|
@@ -1498,16 +1751,16 @@ var EditingPanelHooks = () => {
|
|
|
1498
1751
|
};
|
|
1499
1752
|
|
|
1500
1753
|
// src/dynamics/components/dynamic-selection-control.tsx
|
|
1501
|
-
var
|
|
1754
|
+
var React57 = __toESM(require("react"));
|
|
1502
1755
|
var import_react19 = require("react");
|
|
1503
|
-
var
|
|
1504
|
-
var
|
|
1505
|
-
var
|
|
1506
|
-
var
|
|
1756
|
+
var import_editor_controls41 = require("@elementor/editor-controls");
|
|
1757
|
+
var import_icons18 = require("@elementor/icons");
|
|
1758
|
+
var import_ui48 = require("@elementor/ui");
|
|
1759
|
+
var import_i18n37 = require("@wordpress/i18n");
|
|
1507
1760
|
|
|
1508
1761
|
// src/dynamics/dynamic-control.tsx
|
|
1509
|
-
var
|
|
1510
|
-
var
|
|
1762
|
+
var React55 = __toESM(require("react"));
|
|
1763
|
+
var import_editor_controls39 = require("@elementor/editor-controls");
|
|
1511
1764
|
|
|
1512
1765
|
// src/dynamics/hooks/use-dynamic-tag.ts
|
|
1513
1766
|
var import_react17 = require("react");
|
|
@@ -1534,7 +1787,7 @@ var getAtomicDynamicTags = () => {
|
|
|
1534
1787
|
};
|
|
1535
1788
|
|
|
1536
1789
|
// src/dynamics/utils.ts
|
|
1537
|
-
var
|
|
1790
|
+
var import_editor_props2 = require("@elementor/editor-props");
|
|
1538
1791
|
var DYNAMIC_PROP_TYPE_KEY = "dynamic";
|
|
1539
1792
|
var isDynamicPropType = (prop) => prop.key === DYNAMIC_PROP_TYPE_KEY;
|
|
1540
1793
|
var getDynamicPropType = (propType) => {
|
|
@@ -1542,7 +1795,7 @@ var getDynamicPropType = (propType) => {
|
|
|
1542
1795
|
return dynamicPropType && isDynamicPropType(dynamicPropType) ? dynamicPropType : null;
|
|
1543
1796
|
};
|
|
1544
1797
|
var isDynamicPropValue = (prop) => {
|
|
1545
|
-
return (0,
|
|
1798
|
+
return (0, import_editor_props2.isTransformable)(prop) && prop.$$type === DYNAMIC_PROP_TYPE_KEY;
|
|
1546
1799
|
};
|
|
1547
1800
|
var supportsDynamic = (propType) => {
|
|
1548
1801
|
return !!getDynamicPropType(propType);
|
|
@@ -1578,7 +1831,7 @@ var useDynamicTag = (propName, tagName) => {
|
|
|
1578
1831
|
|
|
1579
1832
|
// src/dynamics/dynamic-control.tsx
|
|
1580
1833
|
var DynamicControl = ({ bind, children }) => {
|
|
1581
|
-
const { value, setValue, bind: propName } = (0,
|
|
1834
|
+
const { value, setValue, bind: propName } = (0, import_editor_controls39.useBoundProp)();
|
|
1582
1835
|
const { name = "", settings } = value?.value ?? {};
|
|
1583
1836
|
const dynamicTag = useDynamicTag(propName, name);
|
|
1584
1837
|
if (!dynamicTag) {
|
|
@@ -1598,24 +1851,24 @@ var DynamicControl = ({ bind, children }) => {
|
|
|
1598
1851
|
}
|
|
1599
1852
|
});
|
|
1600
1853
|
};
|
|
1601
|
-
return /* @__PURE__ */
|
|
1854
|
+
return /* @__PURE__ */ React55.createElement(import_editor_controls39.BoundPropProvider, { setValue: setDynamicValue, value: dynamicValue, bind }, children);
|
|
1602
1855
|
};
|
|
1603
1856
|
|
|
1604
1857
|
// src/dynamics/components/dynamic-selection.tsx
|
|
1605
|
-
var
|
|
1858
|
+
var React56 = __toESM(require("react"));
|
|
1606
1859
|
var import_react18 = require("react");
|
|
1607
|
-
var
|
|
1608
|
-
var
|
|
1609
|
-
var
|
|
1610
|
-
var
|
|
1860
|
+
var import_editor_controls40 = require("@elementor/editor-controls");
|
|
1861
|
+
var import_icons17 = require("@elementor/icons");
|
|
1862
|
+
var import_ui47 = require("@elementor/ui");
|
|
1863
|
+
var import_i18n36 = require("@wordpress/i18n");
|
|
1611
1864
|
var SIZE3 = "tiny";
|
|
1612
1865
|
var DynamicSelection = ({ onSelect }) => {
|
|
1613
1866
|
const [searchValue, setSearchValue] = (0, import_react18.useState)("");
|
|
1614
1867
|
const { groups: dynamicGroups } = getAtomicDynamicTags() || {};
|
|
1615
|
-
const { bind, value: currentValue, setValue } = (0,
|
|
1868
|
+
const { bind, value: currentValue, setValue } = (0, import_editor_controls40.useBoundProp)();
|
|
1616
1869
|
const { setPropValue: updatePropValueHistory } = usePropValueHistory();
|
|
1617
1870
|
const isCurrentValueDynamic = isDynamicPropValue(currentValue);
|
|
1618
|
-
const
|
|
1871
|
+
const options7 = useFilteredOptions(bind, searchValue);
|
|
1619
1872
|
const handleSearch = (event) => {
|
|
1620
1873
|
setSearchValue(event.target.value);
|
|
1621
1874
|
};
|
|
@@ -1626,22 +1879,22 @@ var DynamicSelection = ({ onSelect }) => {
|
|
|
1626
1879
|
setValue({ $$type: "dynamic", value: { name: value, settings: {} } });
|
|
1627
1880
|
onSelect?.();
|
|
1628
1881
|
};
|
|
1629
|
-
return /* @__PURE__ */
|
|
1630
|
-
|
|
1882
|
+
return /* @__PURE__ */ React56.createElement(import_ui47.Stack, null, /* @__PURE__ */ React56.createElement(import_ui47.Box, { px: 1.5, pb: 1 }, /* @__PURE__ */ React56.createElement(
|
|
1883
|
+
import_ui47.TextField,
|
|
1631
1884
|
{
|
|
1632
1885
|
fullWidth: true,
|
|
1633
1886
|
size: SIZE3,
|
|
1634
1887
|
value: searchValue,
|
|
1635
1888
|
onChange: handleSearch,
|
|
1636
|
-
placeholder: (0,
|
|
1889
|
+
placeholder: (0, import_i18n36.__)("Search dynamic tag", "elementor"),
|
|
1637
1890
|
InputProps: {
|
|
1638
|
-
startAdornment: /* @__PURE__ */
|
|
1891
|
+
startAdornment: /* @__PURE__ */ React56.createElement(import_ui47.InputAdornment, { position: "start" }, /* @__PURE__ */ React56.createElement(import_icons17.SearchIcon, { fontSize: SIZE3 }))
|
|
1639
1892
|
}
|
|
1640
1893
|
}
|
|
1641
|
-
)), /* @__PURE__ */
|
|
1894
|
+
)), /* @__PURE__ */ React56.createElement(import_ui47.Divider, null), /* @__PURE__ */ React56.createElement(import_ui47.Box, { sx: { overflowY: "auto", height: 260, width: 220 } }, options7.length > 0 ? /* @__PURE__ */ React56.createElement(import_ui47.MenuList, { role: "listbox", tabIndex: 0 }, options7.map(([category, items2], index) => /* @__PURE__ */ React56.createElement(import_react18.Fragment, { key: index }, /* @__PURE__ */ React56.createElement(import_ui47.ListSubheader, { sx: { typography: "caption", color: "text.tertiary" } }, dynamicGroups?.[category]?.title || category), items2.map(({ value, label: tagLabel }) => {
|
|
1642
1895
|
const isSelected = isCurrentValueDynamic && value === currentValue?.value?.name;
|
|
1643
|
-
return /* @__PURE__ */
|
|
1644
|
-
|
|
1896
|
+
return /* @__PURE__ */ React56.createElement(
|
|
1897
|
+
import_ui47.MenuItem,
|
|
1645
1898
|
{
|
|
1646
1899
|
key: value,
|
|
1647
1900
|
selected: isSelected,
|
|
@@ -1651,20 +1904,20 @@ var DynamicSelection = ({ onSelect }) => {
|
|
|
1651
1904
|
},
|
|
1652
1905
|
tagLabel
|
|
1653
1906
|
);
|
|
1654
|
-
})))) : /* @__PURE__ */
|
|
1655
|
-
|
|
1907
|
+
})))) : /* @__PURE__ */ React56.createElement(import_ui47.Stack, { alignItems: "center", p: 2.5, gap: 1.5 }, /* @__PURE__ */ React56.createElement(import_icons17.PhotoIcon, { fontSize: "large" }), /* @__PURE__ */ React56.createElement(import_ui47.Typography, { align: "center", variant: "caption", color: "text.secondary" }, (0, import_i18n36.__)("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React56.createElement("br", null), "\u201C", searchValue, "\u201D."), /* @__PURE__ */ React56.createElement(import_ui47.Typography, { align: "center", variant: "caption", color: "text.secondary" }, /* @__PURE__ */ React56.createElement(
|
|
1908
|
+
import_ui47.Link,
|
|
1656
1909
|
{
|
|
1657
1910
|
color: "secondary",
|
|
1658
1911
|
variant: "caption",
|
|
1659
1912
|
component: "button",
|
|
1660
1913
|
onClick: () => setSearchValue("")
|
|
1661
1914
|
},
|
|
1662
|
-
(0,
|
|
1663
|
-
), "\xA0", (0,
|
|
1915
|
+
(0, import_i18n36.__)("Clear the filters", "elementor")
|
|
1916
|
+
), "\xA0", (0, import_i18n36.__)("and try again.", "elementor")))));
|
|
1664
1917
|
};
|
|
1665
1918
|
var useFilteredOptions = (bind, searchValue) => {
|
|
1666
1919
|
const dynamicTags = usePropDynamicTags(bind);
|
|
1667
|
-
const
|
|
1920
|
+
const options7 = dynamicTags.reduce((categories, { name, label, group }) => {
|
|
1668
1921
|
const isVisible = label.toLowerCase().includes(searchValue.trim().toLowerCase());
|
|
1669
1922
|
if (!isVisible) {
|
|
1670
1923
|
return categories;
|
|
@@ -1675,17 +1928,17 @@ var useFilteredOptions = (bind, searchValue) => {
|
|
|
1675
1928
|
categories.get(group)?.push({ label, value: name });
|
|
1676
1929
|
return categories;
|
|
1677
1930
|
}, /* @__PURE__ */ new Map());
|
|
1678
|
-
return [...
|
|
1931
|
+
return [...options7];
|
|
1679
1932
|
};
|
|
1680
1933
|
|
|
1681
1934
|
// src/dynamics/components/dynamic-selection-control.tsx
|
|
1682
1935
|
var SIZE4 = "tiny";
|
|
1683
1936
|
var DynamicSelectionControl = () => {
|
|
1684
|
-
const { bind, value, setValue } = (0,
|
|
1937
|
+
const { bind, value, setValue } = (0, import_editor_controls41.useBoundProp)();
|
|
1685
1938
|
const { getPropValue: getPropValueFromHistory } = usePropValueHistory();
|
|
1686
1939
|
const { name: tagName = "" } = value?.value || {};
|
|
1687
1940
|
const selectionPopoverId = (0, import_react19.useId)();
|
|
1688
|
-
const selectionPopoverState = (0,
|
|
1941
|
+
const selectionPopoverState = (0, import_ui48.usePopupState)({ variant: "popover", popupId: selectionPopoverId });
|
|
1689
1942
|
const dynamicTag = useDynamicTag(bind, tagName);
|
|
1690
1943
|
const removeDynamicTag = () => {
|
|
1691
1944
|
const propValue = getPropValueFromHistory(bind);
|
|
@@ -1694,70 +1947,70 @@ var DynamicSelectionControl = () => {
|
|
|
1694
1947
|
if (!dynamicTag) {
|
|
1695
1948
|
throw new Error(`Dynamic tag ${tagName} not found`);
|
|
1696
1949
|
}
|
|
1697
|
-
return /* @__PURE__ */
|
|
1698
|
-
|
|
1950
|
+
return /* @__PURE__ */ React57.createElement(import_ui48.Box, null, /* @__PURE__ */ React57.createElement(
|
|
1951
|
+
import_ui48.UnstableTag,
|
|
1699
1952
|
{
|
|
1700
1953
|
fullWidth: true,
|
|
1701
1954
|
showActionsOnHover: true,
|
|
1702
1955
|
label: dynamicTag.label,
|
|
1703
|
-
startIcon: /* @__PURE__ */
|
|
1704
|
-
...(0,
|
|
1705
|
-
actions: /* @__PURE__ */
|
|
1706
|
-
|
|
1956
|
+
startIcon: /* @__PURE__ */ React57.createElement(import_icons18.DatabaseIcon, { fontSize: SIZE4 }),
|
|
1957
|
+
...(0, import_ui48.bindTrigger)(selectionPopoverState),
|
|
1958
|
+
actions: /* @__PURE__ */ React57.createElement(React57.Fragment, null, /* @__PURE__ */ React57.createElement(DynamicSettingsPopover, { dynamicTag }), /* @__PURE__ */ React57.createElement(
|
|
1959
|
+
import_ui48.IconButton,
|
|
1707
1960
|
{
|
|
1708
1961
|
size: SIZE4,
|
|
1709
1962
|
onClick: removeDynamicTag,
|
|
1710
|
-
"aria-label": (0,
|
|
1963
|
+
"aria-label": (0, import_i18n37.__)("Remove dynamic value", "elementor")
|
|
1711
1964
|
},
|
|
1712
|
-
/* @__PURE__ */
|
|
1965
|
+
/* @__PURE__ */ React57.createElement(import_icons18.XIcon, { fontSize: SIZE4 })
|
|
1713
1966
|
))
|
|
1714
1967
|
}
|
|
1715
|
-
), /* @__PURE__ */
|
|
1716
|
-
|
|
1968
|
+
), /* @__PURE__ */ React57.createElement(
|
|
1969
|
+
import_ui48.Popover,
|
|
1717
1970
|
{
|
|
1718
1971
|
disablePortal: true,
|
|
1719
1972
|
disableScrollLock: true,
|
|
1720
1973
|
anchorOrigin: { vertical: "bottom", horizontal: "left" },
|
|
1721
|
-
...(0,
|
|
1974
|
+
...(0, import_ui48.bindPopover)(selectionPopoverState)
|
|
1722
1975
|
},
|
|
1723
|
-
/* @__PURE__ */
|
|
1976
|
+
/* @__PURE__ */ React57.createElement(import_ui48.Stack, null, /* @__PURE__ */ React57.createElement(import_ui48.Stack, { direction: "row", alignItems: "center", pl: 1.5, pr: 0.5, py: 1.5 }, /* @__PURE__ */ React57.createElement(import_icons18.DatabaseIcon, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React57.createElement(import_ui48.Typography, { variant: "subtitle2" }, (0, import_i18n37.__)("Dynamic Tags", "elementor")), /* @__PURE__ */ React57.createElement(import_ui48.IconButton, { size: SIZE4, sx: { ml: "auto" }, onClick: selectionPopoverState.close }, /* @__PURE__ */ React57.createElement(import_icons18.XIcon, { fontSize: SIZE4 }))), /* @__PURE__ */ React57.createElement(DynamicSelection, { onSelect: selectionPopoverState.close }))
|
|
1724
1977
|
));
|
|
1725
1978
|
};
|
|
1726
1979
|
var DynamicSettingsPopover = ({ dynamicTag }) => {
|
|
1727
1980
|
const popupId = (0, import_react19.useId)();
|
|
1728
|
-
const settingsPopupState = (0,
|
|
1981
|
+
const settingsPopupState = (0, import_ui48.usePopupState)({ variant: "popover", popupId });
|
|
1729
1982
|
const hasDynamicSettings = !!dynamicTag.atomic_controls.length;
|
|
1730
1983
|
if (!hasDynamicSettings) {
|
|
1731
1984
|
return null;
|
|
1732
1985
|
}
|
|
1733
|
-
return /* @__PURE__ */
|
|
1734
|
-
|
|
1986
|
+
return /* @__PURE__ */ React57.createElement(React57.Fragment, null, /* @__PURE__ */ React57.createElement(
|
|
1987
|
+
import_ui48.IconButton,
|
|
1735
1988
|
{
|
|
1736
1989
|
size: SIZE4,
|
|
1737
|
-
...(0,
|
|
1738
|
-
"aria-label": (0,
|
|
1990
|
+
...(0, import_ui48.bindTrigger)(settingsPopupState),
|
|
1991
|
+
"aria-label": (0, import_i18n37.__)("Settings", "elementor")
|
|
1739
1992
|
},
|
|
1740
|
-
/* @__PURE__ */
|
|
1741
|
-
), /* @__PURE__ */
|
|
1742
|
-
|
|
1993
|
+
/* @__PURE__ */ React57.createElement(import_icons18.SettingsIcon, { fontSize: SIZE4 })
|
|
1994
|
+
), /* @__PURE__ */ React57.createElement(
|
|
1995
|
+
import_ui48.Popover,
|
|
1743
1996
|
{
|
|
1744
1997
|
disableScrollLock: true,
|
|
1745
1998
|
anchorOrigin: { vertical: "bottom", horizontal: "center" },
|
|
1746
|
-
...(0,
|
|
1999
|
+
...(0, import_ui48.bindPopover)(settingsPopupState)
|
|
1747
2000
|
},
|
|
1748
|
-
/* @__PURE__ */
|
|
2001
|
+
/* @__PURE__ */ React57.createElement(import_ui48.Paper, { component: import_ui48.Stack, sx: { minHeight: "300px", width: "220px" } }, /* @__PURE__ */ React57.createElement(import_ui48.Stack, { direction: "row", alignItems: "center", px: 1.5, pt: 2, pb: 1 }, /* @__PURE__ */ React57.createElement(import_icons18.DatabaseIcon, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React57.createElement(import_ui48.Typography, { variant: "subtitle2" }, dynamicTag.label), /* @__PURE__ */ React57.createElement(import_ui48.IconButton, { sx: { ml: "auto" }, size: SIZE4, onClick: settingsPopupState.close }, /* @__PURE__ */ React57.createElement(import_icons18.XIcon, { fontSize: SIZE4 }))), /* @__PURE__ */ React57.createElement(DynamicSettings, { controls: dynamicTag.atomic_controls }))
|
|
1749
2002
|
));
|
|
1750
2003
|
};
|
|
1751
2004
|
var DynamicSettings = ({ controls }) => {
|
|
1752
2005
|
const tabs = controls.filter(({ type }) => type === "section");
|
|
1753
|
-
const { getTabsProps, getTabProps, getTabPanelProps } = (0,
|
|
2006
|
+
const { getTabsProps, getTabProps, getTabPanelProps } = (0, import_ui48.useTabs)(0);
|
|
1754
2007
|
if (!tabs.length) {
|
|
1755
2008
|
return null;
|
|
1756
2009
|
}
|
|
1757
|
-
return /* @__PURE__ */
|
|
1758
|
-
return /* @__PURE__ */
|
|
2010
|
+
return /* @__PURE__ */ React57.createElement(React57.Fragment, null, /* @__PURE__ */ React57.createElement(import_ui48.Tabs, { indicatorColor: "secondary", textColor: "secondary", ...getTabsProps() }, tabs.map(({ value }, index) => /* @__PURE__ */ React57.createElement(import_ui48.Tab, { key: index, label: value.label, sx: { px: 1, py: 0.5 }, ...getTabProps(index) }))), /* @__PURE__ */ React57.createElement(import_ui48.Divider, null), tabs.map(({ value }, index) => {
|
|
2011
|
+
return /* @__PURE__ */ React57.createElement(import_ui48.TabPanel, { key: index, sx: { flexGrow: 1 }, ...getTabPanelProps(index) }, /* @__PURE__ */ React57.createElement(import_ui48.Stack, { gap: 1, px: 2 }, value.items.map((item) => {
|
|
1759
2012
|
if (item.type === "control") {
|
|
1760
|
-
return /* @__PURE__ */
|
|
2013
|
+
return /* @__PURE__ */ React57.createElement(Control3, { key: item.value.bind, control: item.value });
|
|
1761
2014
|
}
|
|
1762
2015
|
return null;
|
|
1763
2016
|
})));
|
|
@@ -1767,24 +2020,24 @@ var Control3 = ({ control }) => {
|
|
|
1767
2020
|
if (!getControlByType(control.type)) {
|
|
1768
2021
|
return null;
|
|
1769
2022
|
}
|
|
1770
|
-
return /* @__PURE__ */
|
|
2023
|
+
return /* @__PURE__ */ React57.createElement(DynamicControl, { bind: control.bind }, control.label ? /* @__PURE__ */ React57.createElement(import_editor_controls41.ControlLabel, null, control.label) : null, /* @__PURE__ */ React57.createElement(Control, { type: control.type, props: control.props }));
|
|
1771
2024
|
};
|
|
1772
2025
|
|
|
1773
2026
|
// src/dynamics/hooks/use-prop-dynamic-action.tsx
|
|
1774
|
-
var
|
|
1775
|
-
var
|
|
1776
|
-
var
|
|
1777
|
-
var
|
|
2027
|
+
var React58 = __toESM(require("react"));
|
|
2028
|
+
var import_editor_controls42 = require("@elementor/editor-controls");
|
|
2029
|
+
var import_icons19 = require("@elementor/icons");
|
|
2030
|
+
var import_i18n38 = require("@wordpress/i18n");
|
|
1778
2031
|
var usePropDynamicAction = () => {
|
|
1779
|
-
const { bind } = (0,
|
|
2032
|
+
const { bind } = (0, import_editor_controls42.useBoundProp)();
|
|
1780
2033
|
const { elementType } = useElement();
|
|
1781
2034
|
const propType = elementType.propsSchema[bind];
|
|
1782
2035
|
const visible = !!propType && supportsDynamic(propType);
|
|
1783
2036
|
return {
|
|
1784
2037
|
visible,
|
|
1785
|
-
icon:
|
|
1786
|
-
title: (0,
|
|
1787
|
-
popoverContent: ({ closePopover }) => /* @__PURE__ */
|
|
2038
|
+
icon: import_icons19.DatabaseIcon,
|
|
2039
|
+
title: (0, import_i18n38.__)("Dynamic Tags", "elementor"),
|
|
2040
|
+
popoverContent: ({ closePopover }) => /* @__PURE__ */ React58.createElement(DynamicSelection, { onSelect: closePopover })
|
|
1788
2041
|
};
|
|
1789
2042
|
};
|
|
1790
2043
|
|