@elementor/editor-editing-panel 1.6.0 → 1.7.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 +20 -0
- package/dist/index.js +354 -314
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +215 -171
- package/dist/index.mjs.map +1 -1
- package/package.json +6 -6
- package/src/components/css-class-selector.tsx +87 -26
- package/src/components/multi-combobox.tsx +184 -0
- package/src/components/style-sections/border-section/border-field.tsx +1 -5
- package/src/components/style-sections/position-section/position-field.tsx +1 -0
- package/src/components/style-tab.tsx +1 -1
- package/src/controls-registry/create-top-level-object-type.ts +14 -0
- package/src/controls-registry/settings-field.tsx +12 -14
- package/src/controls-registry/styles-field.tsx +17 -5
- package/src/dynamics/components/dynamic-selection-control.tsx +1 -1
- package/src/dynamics/components/dynamic-selection.tsx +3 -4
- package/src/dynamics/dynamic-control.tsx +16 -11
- package/src/dynamics/hooks/use-dynamic-tag.ts +2 -3
- package/src/dynamics/hooks/use-prop-dynamic-action.tsx +1 -4
- package/src/dynamics/hooks/use-prop-dynamic-tags.ts +3 -6
- package/src/dynamics/utils.ts +1 -1
- package/src/hooks/use-styles-fields.ts +1 -0
- package/src/components/multi-combobox/index.ts +0 -3
- package/src/components/multi-combobox/multi-combobox.tsx +0 -122
- package/src/components/multi-combobox/types.ts +0 -29
- package/src/components/multi-combobox/use-combobox-actions.ts +0 -62
package/dist/index.js
CHANGED
|
@@ -33,10 +33,10 @@ __export(index_exports, {
|
|
|
33
33
|
registerGlobalClassMenuItem: () => registerGlobalClassMenuItem,
|
|
34
34
|
registerStateMenuItem: () => registerStateMenuItem,
|
|
35
35
|
replaceControl: () => replaceControl,
|
|
36
|
-
useBoundProp: () =>
|
|
36
|
+
useBoundProp: () => import_editor_controls47.useBoundProp
|
|
37
37
|
});
|
|
38
38
|
module.exports = __toCommonJS(index_exports);
|
|
39
|
-
var
|
|
39
|
+
var import_editor_controls47 = require("@elementor/editor-controls");
|
|
40
40
|
|
|
41
41
|
// src/control-replacement.tsx
|
|
42
42
|
var import_editor_controls = require("@elementor/editor-controls");
|
|
@@ -157,7 +157,7 @@ var import_editor_panels3 = require("@elementor/editor-panels");
|
|
|
157
157
|
var import_editor_v1_adapters4 = require("@elementor/editor-v1-adapters");
|
|
158
158
|
|
|
159
159
|
// src/hooks/use-close-editor-panel.ts
|
|
160
|
-
var
|
|
160
|
+
var import_react16 = require("react");
|
|
161
161
|
var import_editor_elements8 = require("@elementor/editor-elements");
|
|
162
162
|
var import_editor_v1_adapters2 = require("@elementor/editor-v1-adapters");
|
|
163
163
|
|
|
@@ -169,7 +169,7 @@ var React61 = __toESM(require("react"));
|
|
|
169
169
|
var import_editor_controls41 = require("@elementor/editor-controls");
|
|
170
170
|
var import_editor_elements6 = require("@elementor/editor-elements");
|
|
171
171
|
var import_editor_panels = require("@elementor/editor-panels");
|
|
172
|
-
var
|
|
172
|
+
var import_ui50 = require("@elementor/ui");
|
|
173
173
|
var import_i18n40 = require("@wordpress/i18n");
|
|
174
174
|
|
|
175
175
|
// src/contexts/element-context.tsx
|
|
@@ -242,8 +242,8 @@ function EditorPanelErrorFallback() {
|
|
|
242
242
|
|
|
243
243
|
// src/components/editing-panel-tabs.tsx
|
|
244
244
|
var React60 = __toESM(require("react"));
|
|
245
|
-
var
|
|
246
|
-
var
|
|
245
|
+
var import_react15 = require("react");
|
|
246
|
+
var import_ui49 = require("@elementor/ui");
|
|
247
247
|
var import_i18n39 = require("@wordpress/i18n");
|
|
248
248
|
|
|
249
249
|
// src/components/settings-tab.tsx
|
|
@@ -312,20 +312,33 @@ var getGridLayout = (layout) => ({
|
|
|
312
312
|
var React9 = __toESM(require("react"));
|
|
313
313
|
var import_editor_controls3 = require("@elementor/editor-controls");
|
|
314
314
|
var import_editor_elements = require("@elementor/editor-elements");
|
|
315
|
+
|
|
316
|
+
// src/controls-registry/create-top-level-object-type.ts
|
|
317
|
+
var createTopLevelOjectType = ({ schema }) => {
|
|
318
|
+
const schemaPropType = {
|
|
319
|
+
key: "",
|
|
320
|
+
kind: "object",
|
|
321
|
+
meta: {},
|
|
322
|
+
settings: {},
|
|
323
|
+
default: null,
|
|
324
|
+
shape: schema
|
|
325
|
+
};
|
|
326
|
+
return schemaPropType;
|
|
327
|
+
};
|
|
328
|
+
|
|
329
|
+
// src/controls-registry/settings-field.tsx
|
|
315
330
|
var SettingsField = ({ bind, children }) => {
|
|
316
331
|
const { element, elementType } = useElement();
|
|
317
|
-
const defaultValue = elementType.propsSchema[bind]?.default;
|
|
318
332
|
const settingsValue = (0, import_editor_elements.useElementSetting)(element.id, bind);
|
|
319
|
-
const value =
|
|
333
|
+
const value = { [bind]: settingsValue };
|
|
334
|
+
const propType = createTopLevelOjectType({ schema: elementType.propsSchema });
|
|
320
335
|
const setValue = (newValue) => {
|
|
321
336
|
(0, import_editor_elements.updateSettings)({
|
|
322
337
|
id: element.id,
|
|
323
|
-
props: {
|
|
324
|
-
[bind]: newValue
|
|
325
|
-
}
|
|
338
|
+
props: { ...newValue }
|
|
326
339
|
});
|
|
327
340
|
};
|
|
328
|
-
return /* @__PURE__ */ React9.createElement(import_editor_controls3.
|
|
341
|
+
return /* @__PURE__ */ React9.createElement(import_editor_controls3.PropProvider, { propType, value, setValue }, /* @__PURE__ */ React9.createElement(import_editor_controls3.PropKeyProvider, { bind }, children));
|
|
329
342
|
};
|
|
330
343
|
|
|
331
344
|
// src/components/section.tsx
|
|
@@ -397,10 +410,10 @@ var Control2 = ({ control }) => {
|
|
|
397
410
|
|
|
398
411
|
// src/components/style-tab.tsx
|
|
399
412
|
var React59 = __toESM(require("react"));
|
|
400
|
-
var
|
|
413
|
+
var import_react14 = require("react");
|
|
401
414
|
var import_editor_elements5 = require("@elementor/editor-elements");
|
|
402
415
|
var import_editor_responsive = require("@elementor/editor-responsive");
|
|
403
|
-
var
|
|
416
|
+
var import_ui48 = require("@elementor/ui");
|
|
404
417
|
var import_i18n38 = require("@wordpress/i18n");
|
|
405
418
|
|
|
406
419
|
// src/contexts/classes-prop-context.tsx
|
|
@@ -420,12 +433,12 @@ function useClassesProp() {
|
|
|
420
433
|
|
|
421
434
|
// src/components/css-class-selector.tsx
|
|
422
435
|
var React16 = __toESM(require("react"));
|
|
423
|
-
var
|
|
436
|
+
var import_react9 = require("react");
|
|
424
437
|
var import_editor_elements2 = require("@elementor/editor-elements");
|
|
425
438
|
var import_editor_props = require("@elementor/editor-props");
|
|
426
439
|
var import_editor_styles_repository = require("@elementor/editor-styles-repository");
|
|
427
440
|
var import_icons4 = require("@elementor/icons");
|
|
428
|
-
var
|
|
441
|
+
var import_ui10 = require("@elementor/ui");
|
|
429
442
|
var import_i18n2 = require("@wordpress/i18n");
|
|
430
443
|
|
|
431
444
|
// src/components/conditional-tooltip-wrapper.tsx
|
|
@@ -463,75 +476,21 @@ var Content = React14.forwardRef(({ maxWidth, ...tooltipProps }, ref) => /* @__P
|
|
|
463
476
|
}
|
|
464
477
|
));
|
|
465
478
|
|
|
466
|
-
// src/components/multi-combobox
|
|
479
|
+
// src/components/multi-combobox.tsx
|
|
467
480
|
var React15 = __toESM(require("react"));
|
|
468
|
-
var
|
|
469
|
-
|
|
470
|
-
// src/components/multi-combobox/use-combobox-actions.ts
|
|
481
|
+
var import_react8 = require("react");
|
|
471
482
|
var import_ui9 = require("@elementor/ui");
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
is: (opt) => typeof opt !== "string" && "action" in opt,
|
|
475
|
-
getLabel: (option) => option.action.getLabel(option.label),
|
|
476
|
-
groupBy: (option) => option.action.groupLabel,
|
|
477
|
-
onChange: ({ action, label }) => action?.apply(label),
|
|
478
|
-
getFilteredActions: (optionList, params) => {
|
|
479
|
-
const actionGroups = Object.values(actions);
|
|
480
|
-
return actionGroups.reduce((groups, group) => {
|
|
481
|
-
const actionOptions = group.actions.reduce((groupActions, action) => {
|
|
482
|
-
const shouldShowAction = action.condition(optionList, params.inputValue);
|
|
483
|
-
if (shouldShowAction) {
|
|
484
|
-
const actionOption = createActionOption(group.label, action, params.inputValue);
|
|
485
|
-
groupActions.unshift(actionOption);
|
|
486
|
-
}
|
|
487
|
-
return groupActions;
|
|
488
|
-
}, []);
|
|
489
|
-
return [...groups, ...actionOptions];
|
|
490
|
-
}, []);
|
|
491
|
-
}
|
|
492
|
-
},
|
|
493
|
-
option: {
|
|
494
|
-
is: (opt) => typeof opt !== "string" && !("action" in opt),
|
|
495
|
-
getLabel: (option) => option.label,
|
|
496
|
-
groupBy: () => optionsLabel ?? "",
|
|
497
|
-
onChange: (optionValues) => onSelect?.(optionValues),
|
|
498
|
-
getFilteredOptions: (optionList, params) => {
|
|
499
|
-
const appliedValues = applied.map((option) => option.value);
|
|
500
|
-
const optionsWithoutApplied = optionList.filter((option) => !appliedValues.includes(option.value));
|
|
501
|
-
return filter(optionsWithoutApplied, params);
|
|
502
|
-
}
|
|
503
|
-
}
|
|
504
|
-
});
|
|
505
|
-
var filter = (0, import_ui9.createFilterOptions)();
|
|
506
|
-
var createActionOption = (groupLabel, action, inputValue) => ({
|
|
507
|
-
value: "",
|
|
508
|
-
label: inputValue,
|
|
509
|
-
action: {
|
|
510
|
-
groupLabel,
|
|
511
|
-
apply: action.apply,
|
|
512
|
-
getLabel: action.getLabel
|
|
513
|
-
}
|
|
514
|
-
});
|
|
515
|
-
|
|
516
|
-
// src/components/multi-combobox/multi-combobox.tsx
|
|
517
|
-
var MultiCombobox = ({
|
|
518
|
-
actions = {},
|
|
483
|
+
function MultiCombobox({
|
|
484
|
+
actions = [],
|
|
519
485
|
selected,
|
|
520
486
|
options: options10,
|
|
521
|
-
optionsLabel,
|
|
522
487
|
onSelect,
|
|
523
|
-
onCreate,
|
|
524
488
|
...props
|
|
525
|
-
})
|
|
526
|
-
const
|
|
527
|
-
|
|
528
|
-
actions,
|
|
529
|
-
// TODO: make the group mechanism more generic, allow passing list of groups.
|
|
530
|
-
optionsLabel,
|
|
531
|
-
onSelect
|
|
532
|
-
);
|
|
489
|
+
}) {
|
|
490
|
+
const filter = useFilterOptions();
|
|
491
|
+
const { run, loading } = useActionRunner();
|
|
533
492
|
return /* @__PURE__ */ React15.createElement(
|
|
534
|
-
|
|
493
|
+
import_ui9.Autocomplete,
|
|
535
494
|
{
|
|
536
495
|
...props,
|
|
537
496
|
freeSolo: true,
|
|
@@ -540,57 +499,94 @@ var MultiCombobox = ({
|
|
|
540
499
|
selectOnFocus: true,
|
|
541
500
|
disableClearable: true,
|
|
542
501
|
handleHomeEndKeys: true,
|
|
502
|
+
disabled: loading,
|
|
543
503
|
value: selected,
|
|
544
504
|
options: options10,
|
|
545
|
-
renderGroup,
|
|
546
|
-
renderInput: (params) => /* @__PURE__ */ React15.createElement(
|
|
547
|
-
|
|
548
|
-
|
|
505
|
+
renderGroup: (params) => /* @__PURE__ */ React15.createElement(Group, { ...params }),
|
|
506
|
+
renderInput: (params) => /* @__PURE__ */ React15.createElement(import_ui9.TextField, { ...params }),
|
|
507
|
+
onChange: (_, selectedOrInputValue, reason) => {
|
|
508
|
+
const inputValue = selectedOrInputValue.find((option) => typeof option === "string");
|
|
509
|
+
const optionsAndActions = selectedOrInputValue.filter((option) => typeof option !== "string");
|
|
549
510
|
if (reason === "createOption") {
|
|
550
|
-
const
|
|
551
|
-
|
|
511
|
+
const [firstAction] = filterActions(actions, { options: options10, inputValue: inputValue ?? "" });
|
|
512
|
+
if (firstAction) {
|
|
513
|
+
return run(firstAction.apply, firstAction.value);
|
|
514
|
+
}
|
|
552
515
|
}
|
|
553
|
-
const action =
|
|
516
|
+
const action = optionsAndActions.find((value) => isAction(value));
|
|
554
517
|
if (reason === "selectOption" && action) {
|
|
555
|
-
return
|
|
518
|
+
return run(action.apply, action.value);
|
|
556
519
|
}
|
|
557
|
-
const
|
|
558
|
-
|
|
559
|
-
optionProps.onChange([.../* @__PURE__ */ new Set([...fixedValues, ...selectedValues])]);
|
|
520
|
+
const fixedValues = options10.filter((option) => !!option.fixed);
|
|
521
|
+
onSelect?.([.../* @__PURE__ */ new Set([...optionsAndActions, ...fixedValues])]);
|
|
560
522
|
},
|
|
561
|
-
getOptionLabel: (option) =>
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
if (actionProps.is(option)) {
|
|
566
|
-
return actionProps.getLabel(option);
|
|
523
|
+
getOptionLabel: (option) => typeof option === "string" ? option : option.label,
|
|
524
|
+
getOptionKey: (option) => {
|
|
525
|
+
if (typeof option === "string") {
|
|
526
|
+
return option;
|
|
567
527
|
}
|
|
568
|
-
return
|
|
528
|
+
return option.key ?? option.value;
|
|
569
529
|
},
|
|
570
530
|
filterOptions: (optionList, params) => {
|
|
571
|
-
const
|
|
572
|
-
|
|
573
|
-
|
|
531
|
+
const selectedValues = selected.map((option) => option.value);
|
|
532
|
+
return [
|
|
533
|
+
...filterActions(actions, { options: optionList, inputValue: params.inputValue }),
|
|
534
|
+
...filter(
|
|
535
|
+
optionList.filter((option) => !selectedValues.includes(option.value)),
|
|
536
|
+
params
|
|
537
|
+
)
|
|
538
|
+
];
|
|
574
539
|
},
|
|
575
|
-
groupBy: (option) =>
|
|
540
|
+
groupBy: (option) => option.group ?? ""
|
|
576
541
|
}
|
|
577
542
|
);
|
|
543
|
+
}
|
|
544
|
+
var Group = (params) => {
|
|
545
|
+
const id = `combobox-group-${(0, import_react8.useId)().replace(/:/g, "_")}`;
|
|
546
|
+
return /* @__PURE__ */ React15.createElement(StyledGroup, { role: "group", "aria-labelledby": id }, /* @__PURE__ */ React15.createElement(StyledGroupHeader, { id }, " ", params.group), /* @__PURE__ */ React15.createElement(StyledGroupItems, { role: "listbox" }, params.children));
|
|
578
547
|
};
|
|
579
|
-
var
|
|
580
|
-
var Group = (0, import_ui10.styled)("li")`
|
|
548
|
+
var StyledGroup = (0, import_ui9.styled)("li")`
|
|
581
549
|
&:not( :last-of-type ) {
|
|
582
550
|
border-bottom: 1px solid ${({ theme }) => theme.palette.divider};
|
|
583
551
|
}
|
|
584
552
|
`;
|
|
585
|
-
var
|
|
553
|
+
var StyledGroupHeader = (0, import_ui9.styled)(import_ui9.Box)(({ theme }) => ({
|
|
586
554
|
position: "sticky",
|
|
587
555
|
top: "-8px",
|
|
588
556
|
padding: theme.spacing(1, 2),
|
|
589
557
|
color: theme.palette.text.tertiary
|
|
590
558
|
}));
|
|
591
|
-
var
|
|
559
|
+
var StyledGroupItems = (0, import_ui9.styled)("ul")`
|
|
592
560
|
padding: 0;
|
|
593
561
|
`;
|
|
562
|
+
function useFilterOptions() {
|
|
563
|
+
return (0, import_react8.useState)(() => (0, import_ui9.createFilterOptions)())[0];
|
|
564
|
+
}
|
|
565
|
+
function useActionRunner() {
|
|
566
|
+
const [loading, setLoading] = (0, import_react8.useState)(false);
|
|
567
|
+
const run = async (apply, value) => {
|
|
568
|
+
setLoading(true);
|
|
569
|
+
try {
|
|
570
|
+
await apply(value);
|
|
571
|
+
} catch {
|
|
572
|
+
}
|
|
573
|
+
setLoading(false);
|
|
574
|
+
};
|
|
575
|
+
return { run, loading };
|
|
576
|
+
}
|
|
577
|
+
function filterActions(actions, { options: options10, inputValue }) {
|
|
578
|
+
return actions.filter((action) => action.condition(options10, inputValue)).map((action, index) => ({
|
|
579
|
+
label: action.label(inputValue),
|
|
580
|
+
value: inputValue,
|
|
581
|
+
group: action.group,
|
|
582
|
+
apply: action.apply,
|
|
583
|
+
condition: action.condition,
|
|
584
|
+
key: index.toString()
|
|
585
|
+
}));
|
|
586
|
+
}
|
|
587
|
+
function isAction(option) {
|
|
588
|
+
return "apply" in option && "condition" in option;
|
|
589
|
+
}
|
|
594
590
|
|
|
595
591
|
// src/components/css-class-selector.tsx
|
|
596
592
|
var ID = "elementor-css-class-selector";
|
|
@@ -604,13 +600,14 @@ var EMPTY_OPTION = {
|
|
|
604
600
|
};
|
|
605
601
|
function CssClassSelector() {
|
|
606
602
|
const options10 = useOptions();
|
|
607
|
-
const
|
|
603
|
+
const { value: appliedIds, setValue: setAppliedIds, pushValue: pushAppliedId } = useAppliedClassesIds();
|
|
608
604
|
const { id: activeId, setId: setActiveId } = useStyle();
|
|
605
|
+
const actions = useCreateActions({ pushAppliedId, setActiveId });
|
|
609
606
|
const handleApply = useHandleApply(appliedIds, setAppliedIds);
|
|
610
607
|
const handleActivate = ({ value }) => setActiveId(value);
|
|
611
608
|
const applied = useAppliedOptions(options10, appliedIds);
|
|
612
609
|
const active = applied.find((option) => option.value === activeId) ?? EMPTY_OPTION;
|
|
613
|
-
return /* @__PURE__ */ React16.createElement(
|
|
610
|
+
return /* @__PURE__ */ React16.createElement(import_ui10.Stack, { gap: 1, p: 2 }, /* @__PURE__ */ React16.createElement(import_ui10.Typography, { component: "label", variant: "caption", htmlFor: ID }, (0, import_i18n2.__)("CSS Classes", "elementor")), /* @__PURE__ */ React16.createElement(
|
|
614
611
|
MultiCombobox,
|
|
615
612
|
{
|
|
616
613
|
id: ID,
|
|
@@ -619,7 +616,8 @@ function CssClassSelector() {
|
|
|
619
616
|
selected: applied,
|
|
620
617
|
onSelect: handleApply,
|
|
621
618
|
limitTags: TAGS_LIMIT,
|
|
622
|
-
|
|
619
|
+
actions,
|
|
620
|
+
getLimitTagsText: (more) => /* @__PURE__ */ React16.createElement(import_ui10.Chip, { size: "tiny", variant: "standard", label: `+${more}`, clickable: true }),
|
|
623
621
|
renderTags: (values, getTagProps) => values.map((value, index) => {
|
|
624
622
|
const chipProps = getTagProps({ index });
|
|
625
623
|
const isActive = value.value === active?.value;
|
|
@@ -642,15 +640,15 @@ function CssClassSelector() {
|
|
|
642
640
|
}
|
|
643
641
|
function CssClassItem({ id, label, isActive, isGlobal, color, chipProps, onClickActive }) {
|
|
644
642
|
const { meta } = useStyle();
|
|
645
|
-
const popupId = (0,
|
|
646
|
-
const popupState = (0,
|
|
647
|
-
const chipRef = (0,
|
|
643
|
+
const popupId = (0, import_react9.useId)().replace(/:/g, "_");
|
|
644
|
+
const popupState = (0, import_ui10.usePopupState)({ variant: "popover", popupId });
|
|
645
|
+
const chipRef = (0, import_react9.useRef)(null);
|
|
648
646
|
const { onDelete, ...chipGroupProps } = chipProps;
|
|
649
|
-
return /* @__PURE__ */ React16.createElement(CssClassItemProvider, { styleId: id, isActive, isGlobal }, /* @__PURE__ */ React16.createElement(
|
|
650
|
-
|
|
647
|
+
return /* @__PURE__ */ React16.createElement(CssClassItemProvider, { styleId: id, isActive, isGlobal }, /* @__PURE__ */ React16.createElement(import_ui10.UnstableChipGroup, { ref: chipRef, ...chipGroupProps, "aria-label": `Edit ${label}`, role: "group" }, /* @__PURE__ */ React16.createElement(
|
|
648
|
+
import_ui10.Chip,
|
|
651
649
|
{
|
|
652
650
|
key: chipProps.key,
|
|
653
|
-
size: "
|
|
651
|
+
size: "tiny",
|
|
654
652
|
label: /* @__PURE__ */ React16.createElement(ConditionalTooltipWrapper, { maxWidth: "10ch", title: label }),
|
|
655
653
|
variant: isActive && !meta.state ? "filled" : "standard",
|
|
656
654
|
color,
|
|
@@ -658,34 +656,64 @@ function CssClassItem({ id, label, isActive, isGlobal, color, chipProps, onClick
|
|
|
658
656
|
"aria-pressed": isActive
|
|
659
657
|
}
|
|
660
658
|
), /* @__PURE__ */ React16.createElement(
|
|
661
|
-
|
|
659
|
+
import_ui10.Chip,
|
|
662
660
|
{
|
|
663
661
|
key: `${chipProps.key}-menu`,
|
|
664
|
-
size: "
|
|
665
|
-
label: /* @__PURE__ */ React16.createElement(
|
|
662
|
+
size: "tiny",
|
|
663
|
+
label: /* @__PURE__ */ React16.createElement(import_ui10.Stack, { direction: "row", gap: 0.5, alignItems: "center" }, isActive && meta.state && /* @__PURE__ */ React16.createElement(import_ui10.Typography, { variant: "inherit" }, meta.state), /* @__PURE__ */ React16.createElement(import_icons4.DotsVerticalIcon, { fontSize: "inherit" })),
|
|
666
664
|
variant: "filled",
|
|
667
665
|
color,
|
|
668
|
-
...(0,
|
|
666
|
+
...(0, import_ui10.bindTrigger)(popupState),
|
|
669
667
|
"aria-label": (0, import_i18n2.__)("Open CSS Class Menu", "elementor")
|
|
670
668
|
}
|
|
671
669
|
)), /* @__PURE__ */ React16.createElement(CssClassMenu, { popupState, containerRef: chipRef }));
|
|
672
670
|
}
|
|
673
671
|
function useOptions() {
|
|
674
672
|
const { element } = useElement();
|
|
675
|
-
return (0, import_editor_styles_repository.useAllStylesByProvider)({ elementId: element.id }).flatMap(
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
673
|
+
return (0, import_editor_styles_repository.useAllStylesByProvider)({ elementId: element.id }).flatMap(
|
|
674
|
+
([provider, styleDefs]) => {
|
|
675
|
+
const isElements = provider.key === import_editor_styles_repository.ELEMENTS_STYLES_PROVIDER_KEY;
|
|
676
|
+
if (isElements && styleDefs.length === 0) {
|
|
677
|
+
return [EMPTY_OPTION];
|
|
678
|
+
}
|
|
679
|
+
return styleDefs.map((styleDef) => {
|
|
680
|
+
return {
|
|
681
|
+
label: styleDef.label,
|
|
682
|
+
value: styleDef.id,
|
|
683
|
+
fixed: isElements,
|
|
684
|
+
color: isElements ? "primary" : "global",
|
|
685
|
+
provider: provider.key,
|
|
686
|
+
group: provider.labels?.plural
|
|
687
|
+
};
|
|
688
|
+
});
|
|
679
689
|
}
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
690
|
+
);
|
|
691
|
+
}
|
|
692
|
+
function useCreateActions({
|
|
693
|
+
pushAppliedId,
|
|
694
|
+
setActiveId
|
|
695
|
+
}) {
|
|
696
|
+
return (0, import_editor_styles_repository.useCreateActionsByProvider)().map(([provider, create]) => {
|
|
697
|
+
return {
|
|
698
|
+
// translators: %s is the label of the new class.
|
|
699
|
+
label: (value) => (0, import_i18n2.__)('Create new "%s"', "elementor").replace("%s", value),
|
|
700
|
+
apply: async (value) => {
|
|
701
|
+
const created = await create({ label: value });
|
|
702
|
+
if (!created) {
|
|
703
|
+
return;
|
|
704
|
+
}
|
|
705
|
+
pushAppliedId(created.id);
|
|
706
|
+
setActiveId(created.id);
|
|
707
|
+
},
|
|
708
|
+
condition: (options10, inputValue) => {
|
|
709
|
+
const isUniqueLabel = !options10.some(
|
|
710
|
+
(option) => option.label.toLowerCase() === inputValue.toLowerCase()
|
|
711
|
+
);
|
|
712
|
+
return !!inputValue && isUniqueLabel;
|
|
713
|
+
},
|
|
714
|
+
// translators: %s is the singular label of css class provider (e.g "Global CSS Class").
|
|
715
|
+
group: (0, import_i18n2.__)("Create New %s", "elementor").replace("%s", provider.labels?.singular ?? "")
|
|
716
|
+
};
|
|
689
717
|
});
|
|
690
718
|
}
|
|
691
719
|
function useAppliedOptions(options10, appliedIds) {
|
|
@@ -710,7 +738,15 @@ function useAppliedClassesIds() {
|
|
|
710
738
|
}
|
|
711
739
|
});
|
|
712
740
|
};
|
|
713
|
-
|
|
741
|
+
const pushValue = (id) => {
|
|
742
|
+
const ids = (0, import_editor_elements2.getElementSetting)(element.id, currentClassesProp)?.value || [];
|
|
743
|
+
setValue([...ids, id]);
|
|
744
|
+
};
|
|
745
|
+
return {
|
|
746
|
+
value,
|
|
747
|
+
setValue,
|
|
748
|
+
pushValue
|
|
749
|
+
};
|
|
714
750
|
}
|
|
715
751
|
function useHandleApply(appliedIds, setAppliedIds) {
|
|
716
752
|
const { id: activeId, setId: setActiveId } = useStyle();
|
|
@@ -740,6 +776,7 @@ var import_editor_controls6 = require("@elementor/editor-controls");
|
|
|
740
776
|
// src/controls-registry/styles-field.tsx
|
|
741
777
|
var React17 = __toESM(require("react"));
|
|
742
778
|
var import_editor_controls5 = require("@elementor/editor-controls");
|
|
779
|
+
var import_editor_styles = require("@elementor/editor-styles");
|
|
743
780
|
|
|
744
781
|
// src/hooks/use-styles-fields.ts
|
|
745
782
|
var import_editor_elements3 = require("@elementor/editor-elements");
|
|
@@ -782,7 +819,13 @@ function useStylesField(propName) {
|
|
|
782
819
|
// src/controls-registry/styles-field.tsx
|
|
783
820
|
var StylesField = ({ bind, children }) => {
|
|
784
821
|
const [value, setValue] = useStylesField(bind);
|
|
785
|
-
|
|
822
|
+
const stylesSchema = (0, import_editor_styles.getStylesSchema)();
|
|
823
|
+
const propType = createTopLevelOjectType({ schema: stylesSchema });
|
|
824
|
+
const values = { [bind]: value };
|
|
825
|
+
const setValues = (newValue) => {
|
|
826
|
+
setValue(newValue[bind]);
|
|
827
|
+
};
|
|
828
|
+
return /* @__PURE__ */ React17.createElement(import_editor_controls5.PropProvider, { propType, value: values, setValue: setValues }, /* @__PURE__ */ React17.createElement(import_editor_controls5.PropKeyProvider, { bind }, children));
|
|
786
829
|
};
|
|
787
830
|
|
|
788
831
|
// src/components/style-sections/background-section/background-section.tsx
|
|
@@ -792,7 +835,7 @@ var BackgroundSection = () => {
|
|
|
792
835
|
|
|
793
836
|
// src/components/style-sections/border-section/border-section.tsx
|
|
794
837
|
var React25 = __toESM(require("react"));
|
|
795
|
-
var
|
|
838
|
+
var import_ui14 = require("@elementor/ui");
|
|
796
839
|
|
|
797
840
|
// src/components/style-sections/border-section/border-field.tsx
|
|
798
841
|
var React23 = __toESM(require("react"));
|
|
@@ -802,11 +845,11 @@ var import_i18n7 = require("@wordpress/i18n");
|
|
|
802
845
|
var React19 = __toESM(require("react"));
|
|
803
846
|
var import_editor_controls7 = require("@elementor/editor-controls");
|
|
804
847
|
var import_icons5 = require("@elementor/icons");
|
|
805
|
-
var
|
|
848
|
+
var import_ui11 = require("@elementor/ui");
|
|
806
849
|
var SIZE2 = "tiny";
|
|
807
850
|
var AddOrRemoveContent = ({ isAdded, label, onAdd, onRemove, children }) => {
|
|
808
|
-
return /* @__PURE__ */ React19.createElement(
|
|
809
|
-
|
|
851
|
+
return /* @__PURE__ */ React19.createElement(import_ui11.Stack, { gap: 1.5 }, /* @__PURE__ */ React19.createElement(
|
|
852
|
+
import_ui11.Stack,
|
|
810
853
|
{
|
|
811
854
|
direction: "row",
|
|
812
855
|
sx: {
|
|
@@ -815,23 +858,23 @@ var AddOrRemoveContent = ({ isAdded, label, onAdd, onRemove, children }) => {
|
|
|
815
858
|
}
|
|
816
859
|
},
|
|
817
860
|
/* @__PURE__ */ React19.createElement(import_editor_controls7.ControlLabel, null, label),
|
|
818
|
-
isAdded ? /* @__PURE__ */ React19.createElement(
|
|
819
|
-
), /* @__PURE__ */ React19.createElement(
|
|
861
|
+
isAdded ? /* @__PURE__ */ React19.createElement(import_ui11.IconButton, { size: SIZE2, onClick: onRemove }, /* @__PURE__ */ React19.createElement(import_icons5.MinusIcon, { fontSize: SIZE2 })) : /* @__PURE__ */ React19.createElement(import_ui11.IconButton, { size: SIZE2, onClick: onAdd }, /* @__PURE__ */ React19.createElement(import_icons5.PlusIcon, { fontSize: SIZE2 }))
|
|
862
|
+
), /* @__PURE__ */ React19.createElement(import_ui11.Collapse, { in: isAdded, unmountOnExit: true }, /* @__PURE__ */ React19.createElement(import_ui11.Stack, { gap: 1.5 }, children)));
|
|
820
863
|
};
|
|
821
864
|
|
|
822
865
|
// src/components/style-sections/border-section/border-color-field.tsx
|
|
823
866
|
var React20 = __toESM(require("react"));
|
|
824
867
|
var import_editor_controls8 = require("@elementor/editor-controls");
|
|
825
|
-
var
|
|
868
|
+
var import_ui12 = require("@elementor/ui");
|
|
826
869
|
var import_i18n4 = require("@wordpress/i18n");
|
|
827
870
|
var BorderColorField = () => {
|
|
828
|
-
return /* @__PURE__ */ React20.createElement(StylesField, { bind: "border-color" }, /* @__PURE__ */ React20.createElement(
|
|
871
|
+
return /* @__PURE__ */ React20.createElement(StylesField, { bind: "border-color" }, /* @__PURE__ */ React20.createElement(import_ui12.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React20.createElement(import_ui12.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React20.createElement(import_editor_controls8.ControlLabel, null, (0, import_i18n4.__)("Border Color", "elementor"))), /* @__PURE__ */ React20.createElement(import_ui12.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React20.createElement(import_editor_controls8.ColorControl, null))));
|
|
829
872
|
};
|
|
830
873
|
|
|
831
874
|
// src/components/style-sections/border-section/border-style-field.tsx
|
|
832
875
|
var React21 = __toESM(require("react"));
|
|
833
876
|
var import_editor_controls9 = require("@elementor/editor-controls");
|
|
834
|
-
var
|
|
877
|
+
var import_ui13 = require("@elementor/ui");
|
|
835
878
|
var import_i18n5 = require("@wordpress/i18n");
|
|
836
879
|
var borderStyles = [
|
|
837
880
|
{ value: "none", label: (0, import_i18n5.__)("None", "elementor") },
|
|
@@ -845,7 +888,7 @@ var borderStyles = [
|
|
|
845
888
|
{ value: "outset", label: (0, import_i18n5.__)("Outset", "elementor") }
|
|
846
889
|
];
|
|
847
890
|
var BorderStyleField = () => {
|
|
848
|
-
return /* @__PURE__ */ React21.createElement(StylesField, { bind: "border-style" }, /* @__PURE__ */ React21.createElement(
|
|
891
|
+
return /* @__PURE__ */ React21.createElement(StylesField, { bind: "border-style" }, /* @__PURE__ */ React21.createElement(import_ui13.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React21.createElement(import_ui13.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React21.createElement(import_editor_controls9.ControlLabel, null, (0, import_i18n5.__)("Border Type", "elementor"))), /* @__PURE__ */ React21.createElement(import_ui13.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React21.createElement(import_editor_controls9.SelectControl, { options: borderStyles }))));
|
|
849
892
|
};
|
|
850
893
|
|
|
851
894
|
// src/components/style-sections/border-section/border-width-field.tsx
|
|
@@ -889,11 +932,7 @@ var BorderWidthField = () => {
|
|
|
889
932
|
};
|
|
890
933
|
|
|
891
934
|
// src/components/style-sections/border-section/border-field.tsx
|
|
892
|
-
var
|
|
893
|
-
var initialBorderWidth = {
|
|
894
|
-
$$type: "border-width",
|
|
895
|
-
value: { top: initialSize, right: initialSize, bottom: initialSize, left: initialSize }
|
|
896
|
-
};
|
|
935
|
+
var initialBorderWidth = { $$type: "size", value: { size: 1, unit: "px" } };
|
|
897
936
|
var initialBorderColor = { $$type: "color", value: "#000000" };
|
|
898
937
|
var initialBorderStyle = "solid";
|
|
899
938
|
var BorderField = () => {
|
|
@@ -966,21 +1005,21 @@ var BorderRadiusField = () => {
|
|
|
966
1005
|
};
|
|
967
1006
|
|
|
968
1007
|
// src/components/style-sections/border-section/border-section.tsx
|
|
969
|
-
var BorderSection = () => /* @__PURE__ */ React25.createElement(
|
|
1008
|
+
var BorderSection = () => /* @__PURE__ */ React25.createElement(import_ui14.Stack, { gap: 1.5 }, /* @__PURE__ */ React25.createElement(BorderRadiusField, null), /* @__PURE__ */ React25.createElement(import_ui14.Divider, null), /* @__PURE__ */ React25.createElement(BorderField, null));
|
|
970
1009
|
|
|
971
1010
|
// src/components/style-sections/effects-section/effects-section.tsx
|
|
972
1011
|
var React26 = __toESM(require("react"));
|
|
973
1012
|
var import_editor_controls12 = require("@elementor/editor-controls");
|
|
974
|
-
var
|
|
1013
|
+
var import_ui15 = require("@elementor/ui");
|
|
975
1014
|
var EffectsSection = () => {
|
|
976
|
-
return /* @__PURE__ */ React26.createElement(
|
|
1015
|
+
return /* @__PURE__ */ React26.createElement(import_ui15.Stack, { gap: 1.5 }, /* @__PURE__ */ React26.createElement(StylesField, { bind: "box-shadow" }, /* @__PURE__ */ React26.createElement(import_editor_controls12.BoxShadowRepeaterControl, null)));
|
|
977
1016
|
};
|
|
978
1017
|
|
|
979
1018
|
// src/components/style-sections/layout-section/layout-section.tsx
|
|
980
1019
|
var React37 = __toESM(require("react"));
|
|
981
1020
|
var import_editor_controls22 = require("@elementor/editor-controls");
|
|
982
1021
|
var import_editor_elements4 = require("@elementor/editor-elements");
|
|
983
|
-
var
|
|
1022
|
+
var import_ui27 = require("@elementor/ui");
|
|
984
1023
|
var import_i18n18 = require("@wordpress/i18n");
|
|
985
1024
|
|
|
986
1025
|
// src/hooks/use-computed-style.ts
|
|
@@ -1012,21 +1051,21 @@ function useComputedStyle(elementId) {
|
|
|
1012
1051
|
var React28 = __toESM(require("react"));
|
|
1013
1052
|
var import_editor_controls13 = require("@elementor/editor-controls");
|
|
1014
1053
|
var import_icons8 = require("@elementor/icons");
|
|
1015
|
-
var
|
|
1054
|
+
var import_ui18 = require("@elementor/ui");
|
|
1016
1055
|
var import_i18n9 = require("@wordpress/i18n");
|
|
1017
1056
|
|
|
1018
1057
|
// src/hooks/use-direction.ts
|
|
1019
|
-
var
|
|
1058
|
+
var import_ui16 = require("@elementor/ui");
|
|
1020
1059
|
function useDirection() {
|
|
1021
|
-
const theme = (0,
|
|
1060
|
+
const theme = (0, import_ui16.useTheme)(), extendedWindow = window;
|
|
1022
1061
|
const isUiRtl = "rtl" === theme.direction, isSiteRtl = !!extendedWindow.elementorFrontend?.config?.is_rtl;
|
|
1023
1062
|
return { isSiteRtl, isUiRtl };
|
|
1024
1063
|
}
|
|
1025
1064
|
|
|
1026
1065
|
// src/components/style-sections/layout-section/utils/rotated-icon.tsx
|
|
1027
1066
|
var React27 = __toESM(require("react"));
|
|
1028
|
-
var
|
|
1029
|
-
var
|
|
1067
|
+
var import_react10 = require("react");
|
|
1068
|
+
var import_ui17 = require("@elementor/ui");
|
|
1030
1069
|
var CLOCKWISE_ANGLES = {
|
|
1031
1070
|
row: 0,
|
|
1032
1071
|
column: 90,
|
|
@@ -1040,13 +1079,13 @@ var COUNTER_CLOCKWISE_ANGLES = {
|
|
|
1040
1079
|
"column-reverse": -270
|
|
1041
1080
|
};
|
|
1042
1081
|
var RotatedIcon = ({ icon: Icon, size, isClockwise = true, offset = 0 }) => {
|
|
1043
|
-
const rotate = (0,
|
|
1082
|
+
const rotate = (0, import_react10.useRef)(useGetTargetAngle(isClockwise, offset));
|
|
1044
1083
|
rotate.current = useGetTargetAngle(isClockwise, offset, rotate);
|
|
1045
1084
|
return /* @__PURE__ */ React27.createElement(Icon, { fontSize: size, sx: { transition: ".3s", rotate: `${rotate.current}deg` } });
|
|
1046
1085
|
};
|
|
1047
1086
|
var useGetTargetAngle = (isClockwise, offset, existingRef) => {
|
|
1048
1087
|
const [direction] = useStylesField("flex-direction");
|
|
1049
|
-
const isRtl = "rtl" === (0,
|
|
1088
|
+
const isRtl = "rtl" === (0, import_ui17.useTheme)().direction;
|
|
1050
1089
|
const rotationMultiplier = isRtl ? -1 : 1;
|
|
1051
1090
|
const angleMap = isClockwise ? CLOCKWISE_ANGLES : COUNTER_CLOCKWISE_ANGLES;
|
|
1052
1091
|
const currentAngle = existingRef ? existingRef.current * rotationMultiplier : angleMap[direction?.value || "row"] + offset;
|
|
@@ -1057,8 +1096,8 @@ var useGetTargetAngle = (isClockwise, offset, existingRef) => {
|
|
|
1057
1096
|
};
|
|
1058
1097
|
|
|
1059
1098
|
// src/components/style-sections/layout-section/align-items-field.tsx
|
|
1060
|
-
var StartIcon = (0,
|
|
1061
|
-
var EndIcon = (0,
|
|
1099
|
+
var StartIcon = (0, import_ui18.withDirection)(import_icons8.LayoutAlignLeftIcon);
|
|
1100
|
+
var EndIcon = (0, import_ui18.withDirection)(import_icons8.LayoutAlignRightIcon);
|
|
1062
1101
|
var iconProps = {
|
|
1063
1102
|
isClockwise: false,
|
|
1064
1103
|
offset: 90
|
|
@@ -1091,17 +1130,17 @@ var options = [
|
|
|
1091
1130
|
];
|
|
1092
1131
|
var AlignItemsField = () => {
|
|
1093
1132
|
const { isSiteRtl } = useDirection();
|
|
1094
|
-
return /* @__PURE__ */ React28.createElement(
|
|
1133
|
+
return /* @__PURE__ */ React28.createElement(import_ui18.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React28.createElement(import_ui18.ThemeProvider, null, /* @__PURE__ */ React28.createElement(StylesField, { bind: "align-items" }, /* @__PURE__ */ React28.createElement(import_ui18.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React28.createElement(import_ui18.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React28.createElement(import_editor_controls13.ControlLabel, null, (0, import_i18n9.__)("Align items", "elementor"))), /* @__PURE__ */ React28.createElement(import_ui18.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React28.createElement(import_editor_controls13.ToggleControl, { options }))))));
|
|
1095
1134
|
};
|
|
1096
1135
|
|
|
1097
1136
|
// src/components/style-sections/layout-section/align-self-child-field.tsx
|
|
1098
1137
|
var React29 = __toESM(require("react"));
|
|
1099
1138
|
var import_editor_controls14 = require("@elementor/editor-controls");
|
|
1100
1139
|
var import_icons9 = require("@elementor/icons");
|
|
1101
|
-
var
|
|
1140
|
+
var import_ui19 = require("@elementor/ui");
|
|
1102
1141
|
var import_i18n10 = require("@wordpress/i18n");
|
|
1103
|
-
var StartIcon2 = (0,
|
|
1104
|
-
var EndIcon2 = (0,
|
|
1142
|
+
var StartIcon2 = (0, import_ui19.withDirection)(import_icons9.LayoutAlignLeftIcon);
|
|
1143
|
+
var EndIcon2 = (0, import_ui19.withDirection)(import_icons9.LayoutAlignRightIcon);
|
|
1105
1144
|
var iconProps2 = {
|
|
1106
1145
|
isClockwise: false,
|
|
1107
1146
|
offset: 90
|
|
@@ -1134,13 +1173,13 @@ var options2 = [
|
|
|
1134
1173
|
];
|
|
1135
1174
|
var AlignSelfChild = () => {
|
|
1136
1175
|
const { isSiteRtl } = useDirection();
|
|
1137
|
-
return /* @__PURE__ */ React29.createElement(
|
|
1176
|
+
return /* @__PURE__ */ React29.createElement(import_ui19.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React29.createElement(import_ui19.ThemeProvider, null, /* @__PURE__ */ React29.createElement(StylesField, { bind: "align-self" }, /* @__PURE__ */ React29.createElement(import_ui19.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React29.createElement(import_ui19.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React29.createElement(import_editor_controls14.ControlLabel, null, (0, import_i18n10.__)("Align self", "elementor"))), /* @__PURE__ */ React29.createElement(import_ui19.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React29.createElement(import_editor_controls14.ToggleControl, { options: options2 }))))));
|
|
1138
1177
|
};
|
|
1139
1178
|
|
|
1140
1179
|
// src/components/style-sections/layout-section/display-field.tsx
|
|
1141
1180
|
var React30 = __toESM(require("react"));
|
|
1142
1181
|
var import_editor_controls15 = require("@elementor/editor-controls");
|
|
1143
|
-
var
|
|
1182
|
+
var import_ui20 = require("@elementor/ui");
|
|
1144
1183
|
var import_i18n11 = require("@wordpress/i18n");
|
|
1145
1184
|
var DisplayField = () => {
|
|
1146
1185
|
const options10 = [
|
|
@@ -1155,21 +1194,21 @@ var DisplayField = () => {
|
|
|
1155
1194
|
label: (0, import_i18n11.__)("Flex", "elementor")
|
|
1156
1195
|
}
|
|
1157
1196
|
];
|
|
1158
|
-
return /* @__PURE__ */ React30.createElement(StylesField, { bind: "display" }, /* @__PURE__ */ React30.createElement(
|
|
1197
|
+
return /* @__PURE__ */ React30.createElement(StylesField, { bind: "display" }, /* @__PURE__ */ React30.createElement(import_ui20.Stack, { gap: 1 }, /* @__PURE__ */ React30.createElement(import_editor_controls15.ControlLabel, null, (0, import_i18n11.__)("Display", "elementor")), /* @__PURE__ */ React30.createElement(import_editor_controls15.ToggleControl, { options: options10, fullWidth: true })));
|
|
1159
1198
|
};
|
|
1160
1199
|
|
|
1161
1200
|
// src/components/style-sections/layout-section/flex-direction-field.tsx
|
|
1162
1201
|
var React31 = __toESM(require("react"));
|
|
1163
1202
|
var import_editor_controls16 = require("@elementor/editor-controls");
|
|
1164
1203
|
var import_icons10 = require("@elementor/icons");
|
|
1165
|
-
var
|
|
1204
|
+
var import_ui21 = require("@elementor/ui");
|
|
1166
1205
|
var import_i18n12 = require("@wordpress/i18n");
|
|
1167
1206
|
var options3 = [
|
|
1168
1207
|
{
|
|
1169
1208
|
value: "row",
|
|
1170
1209
|
label: (0, import_i18n12.__)("Row", "elementor"),
|
|
1171
1210
|
renderContent: ({ size }) => {
|
|
1172
|
-
const StartIcon4 = (0,
|
|
1211
|
+
const StartIcon4 = (0, import_ui21.withDirection)(import_icons10.ArrowRightIcon);
|
|
1173
1212
|
return /* @__PURE__ */ React31.createElement(StartIcon4, { fontSize: size });
|
|
1174
1213
|
},
|
|
1175
1214
|
showTooltip: true
|
|
@@ -1184,7 +1223,7 @@ var options3 = [
|
|
|
1184
1223
|
value: "row-reverse",
|
|
1185
1224
|
label: (0, import_i18n12.__)("Reversed row", "elementor"),
|
|
1186
1225
|
renderContent: ({ size }) => {
|
|
1187
|
-
const EndIcon4 = (0,
|
|
1226
|
+
const EndIcon4 = (0, import_ui21.withDirection)(import_icons10.ArrowLeftIcon);
|
|
1188
1227
|
return /* @__PURE__ */ React31.createElement(EndIcon4, { fontSize: size });
|
|
1189
1228
|
},
|
|
1190
1229
|
showTooltip: true
|
|
@@ -1198,15 +1237,15 @@ var options3 = [
|
|
|
1198
1237
|
];
|
|
1199
1238
|
var FlexDirectionField = () => {
|
|
1200
1239
|
const { isSiteRtl } = useDirection();
|
|
1201
|
-
return /* @__PURE__ */ React31.createElement(
|
|
1240
|
+
return /* @__PURE__ */ React31.createElement(import_ui21.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React31.createElement(import_ui21.ThemeProvider, null, /* @__PURE__ */ React31.createElement(StylesField, { bind: "flex-direction" }, /* @__PURE__ */ React31.createElement(import_ui21.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React31.createElement(import_ui21.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React31.createElement(import_editor_controls16.ControlLabel, null, (0, import_i18n12.__)("Direction", "elementor"))), /* @__PURE__ */ React31.createElement(import_ui21.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React31.createElement(import_editor_controls16.ToggleControl, { options: options3 }))))));
|
|
1202
1241
|
};
|
|
1203
1242
|
|
|
1204
1243
|
// src/components/style-sections/layout-section/flex-order-field.tsx
|
|
1205
1244
|
var React32 = __toESM(require("react"));
|
|
1206
|
-
var
|
|
1245
|
+
var import_react11 = require("react");
|
|
1207
1246
|
var import_editor_controls17 = require("@elementor/editor-controls");
|
|
1208
1247
|
var import_icons11 = require("@elementor/icons");
|
|
1209
|
-
var
|
|
1248
|
+
var import_ui22 = require("@elementor/ui");
|
|
1210
1249
|
var import_i18n13 = require("@wordpress/i18n");
|
|
1211
1250
|
var FIRST_DEFAULT_VALUE = -99999;
|
|
1212
1251
|
var LAST_DEFAULT_VALUE = 99999;
|
|
@@ -1239,7 +1278,7 @@ var items = [
|
|
|
1239
1278
|
];
|
|
1240
1279
|
var FlexOrderField = () => {
|
|
1241
1280
|
const { isSiteRtl } = useDirection(), [order, setOrder] = useStylesField("order");
|
|
1242
|
-
const [groupControlValue, setGroupControlValue] = (0,
|
|
1281
|
+
const [groupControlValue, setGroupControlValue] = (0, import_react11.useState)(getGroupControlValue(order?.value || null));
|
|
1243
1282
|
const handleToggleButtonChange = (group) => {
|
|
1244
1283
|
setGroupControlValue(group);
|
|
1245
1284
|
if (!group || group === CUSTOM) {
|
|
@@ -1248,7 +1287,7 @@ var FlexOrderField = () => {
|
|
|
1248
1287
|
}
|
|
1249
1288
|
setOrder({ $$type: "number", value: orderValueMap[group] });
|
|
1250
1289
|
};
|
|
1251
|
-
return /* @__PURE__ */ React32.createElement(
|
|
1290
|
+
return /* @__PURE__ */ React32.createElement(import_ui22.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React32.createElement(import_ui22.ThemeProvider, null, /* @__PURE__ */ React32.createElement(import_ui22.Stack, { gap: 2 }, /* @__PURE__ */ React32.createElement(import_ui22.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React32.createElement(import_ui22.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React32.createElement(import_editor_controls17.ControlLabel, null, (0, import_i18n13.__)("Order", "elementor"))), /* @__PURE__ */ React32.createElement(import_ui22.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React32.createElement(
|
|
1252
1291
|
import_editor_controls17.ControlToggleButtonGroup,
|
|
1253
1292
|
{
|
|
1254
1293
|
items,
|
|
@@ -1256,7 +1295,7 @@ var FlexOrderField = () => {
|
|
|
1256
1295
|
onChange: handleToggleButtonChange,
|
|
1257
1296
|
exclusive: true
|
|
1258
1297
|
}
|
|
1259
|
-
))), CUSTOM === groupControlValue && /* @__PURE__ */ React32.createElement(StylesField, { bind: "order" }, /* @__PURE__ */ React32.createElement(
|
|
1298
|
+
))), CUSTOM === groupControlValue && /* @__PURE__ */ React32.createElement(StylesField, { bind: "order" }, /* @__PURE__ */ React32.createElement(import_ui22.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React32.createElement(import_ui22.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React32.createElement(import_editor_controls17.ControlLabel, null, (0, import_i18n13.__)("Custom order", "elementor"))), /* @__PURE__ */ React32.createElement(import_ui22.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React32.createElement(
|
|
1260
1299
|
import_editor_controls17.NumberControl,
|
|
1261
1300
|
{
|
|
1262
1301
|
min: FIRST_DEFAULT_VALUE + 1,
|
|
@@ -1279,7 +1318,7 @@ var getGroupControlValue = (order) => {
|
|
|
1279
1318
|
var React33 = __toESM(require("react"));
|
|
1280
1319
|
var import_editor_controls18 = require("@elementor/editor-controls");
|
|
1281
1320
|
var import_icons12 = require("@elementor/icons");
|
|
1282
|
-
var
|
|
1321
|
+
var import_ui23 = require("@elementor/ui");
|
|
1283
1322
|
var import_i18n14 = require("@wordpress/i18n");
|
|
1284
1323
|
var DEFAULT = 1;
|
|
1285
1324
|
var items2 = [
|
|
@@ -1322,7 +1361,7 @@ var FlexSizeField = () => {
|
|
|
1322
1361
|
setGrowField(null);
|
|
1323
1362
|
setShrinkField({ $$type: "number", value: DEFAULT });
|
|
1324
1363
|
};
|
|
1325
|
-
return /* @__PURE__ */ React33.createElement(
|
|
1364
|
+
return /* @__PURE__ */ React33.createElement(import_ui23.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React33.createElement(import_ui23.ThemeProvider, null, /* @__PURE__ */ React33.createElement(import_ui23.Stack, { gap: 2 }, /* @__PURE__ */ React33.createElement(import_ui23.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React33.createElement(import_ui23.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React33.createElement(import_editor_controls18.ControlLabel, null, (0, import_i18n14.__)("Size", "elementor"))), /* @__PURE__ */ React33.createElement(import_ui23.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React33.createElement(
|
|
1326
1365
|
import_editor_controls18.ControlToggleButtonGroup,
|
|
1327
1366
|
{
|
|
1328
1367
|
value: activeGroup,
|
|
@@ -1332,7 +1371,7 @@ var FlexSizeField = () => {
|
|
|
1332
1371
|
}
|
|
1333
1372
|
))), "custom" === activeGroup && /* @__PURE__ */ React33.createElement(FlexCustomField, null))));
|
|
1334
1373
|
};
|
|
1335
|
-
var FlexCustomField = () => /* @__PURE__ */ React33.createElement(React33.Fragment, null, /* @__PURE__ */ React33.createElement(StylesField, { bind: "flex-grow" }, /* @__PURE__ */ React33.createElement(
|
|
1374
|
+
var FlexCustomField = () => /* @__PURE__ */ React33.createElement(React33.Fragment, null, /* @__PURE__ */ React33.createElement(StylesField, { bind: "flex-grow" }, /* @__PURE__ */ React33.createElement(import_ui23.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React33.createElement(import_ui23.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React33.createElement(import_editor_controls18.ControlLabel, null, (0, import_i18n14.__)("Grow", "elementor"))), /* @__PURE__ */ React33.createElement(import_ui23.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React33.createElement(import_editor_controls18.NumberControl, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React33.createElement(StylesField, { bind: "flex-shrink" }, /* @__PURE__ */ React33.createElement(import_ui23.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React33.createElement(import_ui23.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React33.createElement(import_editor_controls18.ControlLabel, null, (0, import_i18n14.__)("Shrink", "elementor"))), /* @__PURE__ */ React33.createElement(import_ui23.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React33.createElement(import_editor_controls18.NumberControl, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React33.createElement(StylesField, { bind: "flex-basis" }, /* @__PURE__ */ React33.createElement(import_ui23.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React33.createElement(import_ui23.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React33.createElement(import_editor_controls18.ControlLabel, null, (0, import_i18n14.__)("Basis", "elementor"))), /* @__PURE__ */ React33.createElement(import_ui23.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React33.createElement(import_editor_controls18.SizeControl, null)))));
|
|
1336
1375
|
var getActiveGroup = ({
|
|
1337
1376
|
grow,
|
|
1338
1377
|
shrink,
|
|
@@ -1356,20 +1395,20 @@ var getActiveGroup = ({
|
|
|
1356
1395
|
// src/components/style-sections/layout-section/gap-control-field.tsx
|
|
1357
1396
|
var React34 = __toESM(require("react"));
|
|
1358
1397
|
var import_editor_controls19 = require("@elementor/editor-controls");
|
|
1359
|
-
var
|
|
1398
|
+
var import_ui24 = require("@elementor/ui");
|
|
1360
1399
|
var import_i18n15 = require("@wordpress/i18n");
|
|
1361
1400
|
var GapControlField = () => {
|
|
1362
|
-
return /* @__PURE__ */ React34.createElement(
|
|
1401
|
+
return /* @__PURE__ */ React34.createElement(import_ui24.Stack, { gap: 1 }, /* @__PURE__ */ React34.createElement(StylesField, { bind: "gap" }, /* @__PURE__ */ React34.createElement(import_editor_controls19.GapControl, { label: (0, import_i18n15.__)("Gaps", "elementor") })));
|
|
1363
1402
|
};
|
|
1364
1403
|
|
|
1365
1404
|
// src/components/style-sections/layout-section/justify-content-field.tsx
|
|
1366
1405
|
var React35 = __toESM(require("react"));
|
|
1367
1406
|
var import_editor_controls20 = require("@elementor/editor-controls");
|
|
1368
1407
|
var import_icons13 = require("@elementor/icons");
|
|
1369
|
-
var
|
|
1408
|
+
var import_ui25 = require("@elementor/ui");
|
|
1370
1409
|
var import_i18n16 = require("@wordpress/i18n");
|
|
1371
|
-
var StartIcon3 = (0,
|
|
1372
|
-
var EndIcon3 = (0,
|
|
1410
|
+
var StartIcon3 = (0, import_ui25.withDirection)(import_icons13.JustifyTopIcon);
|
|
1411
|
+
var EndIcon3 = (0, import_ui25.withDirection)(import_icons13.JustifyBottomIcon);
|
|
1373
1412
|
var iconProps3 = {
|
|
1374
1413
|
isClockwise: true,
|
|
1375
1414
|
offset: -90
|
|
@@ -1414,14 +1453,14 @@ var options4 = [
|
|
|
1414
1453
|
];
|
|
1415
1454
|
var JustifyContentField = () => {
|
|
1416
1455
|
const { isSiteRtl } = useDirection();
|
|
1417
|
-
return /* @__PURE__ */ React35.createElement(
|
|
1456
|
+
return /* @__PURE__ */ React35.createElement(import_ui25.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React35.createElement(import_ui25.ThemeProvider, null, /* @__PURE__ */ React35.createElement(StylesField, { bind: "justify-content" }, /* @__PURE__ */ React35.createElement(import_ui25.Stack, { gap: 1 }, /* @__PURE__ */ React35.createElement(import_editor_controls20.ControlLabel, null, (0, import_i18n16.__)("Justify content", "elementor")), /* @__PURE__ */ React35.createElement(import_editor_controls20.ToggleControl, { options: options4, fullWidth: true })))));
|
|
1418
1457
|
};
|
|
1419
1458
|
|
|
1420
1459
|
// src/components/style-sections/layout-section/wrap-field.tsx
|
|
1421
1460
|
var React36 = __toESM(require("react"));
|
|
1422
1461
|
var import_editor_controls21 = require("@elementor/editor-controls");
|
|
1423
1462
|
var import_icons14 = require("@elementor/icons");
|
|
1424
|
-
var
|
|
1463
|
+
var import_ui26 = require("@elementor/ui");
|
|
1425
1464
|
var import_i18n17 = require("@wordpress/i18n");
|
|
1426
1465
|
var options5 = [
|
|
1427
1466
|
{
|
|
@@ -1445,7 +1484,7 @@ var options5 = [
|
|
|
1445
1484
|
];
|
|
1446
1485
|
var WrapField = () => {
|
|
1447
1486
|
const { isSiteRtl } = useDirection();
|
|
1448
|
-
return /* @__PURE__ */ React36.createElement(
|
|
1487
|
+
return /* @__PURE__ */ React36.createElement(import_ui26.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React36.createElement(import_ui26.ThemeProvider, null, /* @__PURE__ */ React36.createElement(StylesField, { bind: "flex-wrap" }, /* @__PURE__ */ React36.createElement(import_ui26.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React36.createElement(import_ui26.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React36.createElement(import_editor_controls21.ControlLabel, null, (0, import_i18n17.__)("Wrap", "elementor"))), /* @__PURE__ */ React36.createElement(import_ui26.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React36.createElement(import_editor_controls21.ToggleControl, { options: options5 }))))));
|
|
1449
1488
|
};
|
|
1450
1489
|
|
|
1451
1490
|
// src/components/style-sections/layout-section/layout-section.tsx
|
|
@@ -1454,22 +1493,22 @@ var LayoutSection = () => {
|
|
|
1454
1493
|
const { element } = useElement();
|
|
1455
1494
|
const parent = (0, import_editor_elements4.useParentElement)(element.id);
|
|
1456
1495
|
const parentStyle = useComputedStyle(parent?.id || null);
|
|
1457
|
-
return /* @__PURE__ */ React37.createElement(
|
|
1496
|
+
return /* @__PURE__ */ React37.createElement(import_ui27.Stack, { gap: 2 }, /* @__PURE__ */ React37.createElement(DisplayField, null), "flex" === display?.value && /* @__PURE__ */ React37.createElement(FlexFields, null), "flex" === parentStyle?.display && /* @__PURE__ */ React37.createElement(FlexChildFields, null));
|
|
1458
1497
|
};
|
|
1459
|
-
var FlexFields = () => /* @__PURE__ */ React37.createElement(React37.Fragment, null, /* @__PURE__ */ React37.createElement(FlexDirectionField, null), /* @__PURE__ */ React37.createElement(JustifyContentField, null), /* @__PURE__ */ React37.createElement(AlignItemsField, null), /* @__PURE__ */ React37.createElement(
|
|
1460
|
-
var FlexChildFields = () => /* @__PURE__ */ React37.createElement(React37.Fragment, null, /* @__PURE__ */ React37.createElement(
|
|
1498
|
+
var FlexFields = () => /* @__PURE__ */ React37.createElement(React37.Fragment, null, /* @__PURE__ */ React37.createElement(FlexDirectionField, null), /* @__PURE__ */ React37.createElement(JustifyContentField, null), /* @__PURE__ */ React37.createElement(AlignItemsField, null), /* @__PURE__ */ React37.createElement(import_ui27.Divider, null), /* @__PURE__ */ React37.createElement(GapControlField, null), /* @__PURE__ */ React37.createElement(WrapField, null));
|
|
1499
|
+
var FlexChildFields = () => /* @__PURE__ */ React37.createElement(React37.Fragment, null, /* @__PURE__ */ React37.createElement(import_ui27.Divider, null), /* @__PURE__ */ React37.createElement(import_editor_controls22.ControlLabel, null, (0, import_i18n18.__)("Flex child", "elementor")), /* @__PURE__ */ React37.createElement(AlignSelfChild, null), /* @__PURE__ */ React37.createElement(FlexOrderField, null), /* @__PURE__ */ React37.createElement(FlexSizeField, null));
|
|
1461
1500
|
|
|
1462
1501
|
// src/components/style-sections/position-section/position-section.tsx
|
|
1463
1502
|
var React41 = __toESM(require("react"));
|
|
1464
|
-
var
|
|
1503
|
+
var import_ui31 = require("@elementor/ui");
|
|
1465
1504
|
|
|
1466
1505
|
// src/hooks/use-session-storage.ts
|
|
1467
|
-
var
|
|
1506
|
+
var import_react12 = require("react");
|
|
1468
1507
|
var import_utils2 = require("@elementor/utils");
|
|
1469
1508
|
var useSessionStorage = (key) => {
|
|
1470
1509
|
const prefixedKey = `elementor/${key}`;
|
|
1471
|
-
const [value, setValue] = (0,
|
|
1472
|
-
(0,
|
|
1510
|
+
const [value, setValue] = (0, import_react12.useState)();
|
|
1511
|
+
(0, import_react12.useEffect)(() => {
|
|
1473
1512
|
return subscribeToSessionStorage(prefixedKey, (newValue) => {
|
|
1474
1513
|
setValue(newValue ?? null);
|
|
1475
1514
|
});
|
|
@@ -1504,7 +1543,7 @@ var subscribeToSessionStorage = (key, subscriber) => {
|
|
|
1504
1543
|
var React38 = __toESM(require("react"));
|
|
1505
1544
|
var import_editor_controls23 = require("@elementor/editor-controls");
|
|
1506
1545
|
var import_icons15 = require("@elementor/icons");
|
|
1507
|
-
var
|
|
1546
|
+
var import_ui28 = require("@elementor/ui");
|
|
1508
1547
|
var import_i18n19 = require("@wordpress/i18n");
|
|
1509
1548
|
var sideIcons = {
|
|
1510
1549
|
left: /* @__PURE__ */ React38.createElement(import_icons15.SideLeftIcon, { fontSize: "tiny" }),
|
|
@@ -1513,34 +1552,35 @@ var sideIcons = {
|
|
|
1513
1552
|
bottom: /* @__PURE__ */ React38.createElement(import_icons15.SideBottomIcon, { fontSize: "tiny" })
|
|
1514
1553
|
};
|
|
1515
1554
|
var DimensionsField = () => {
|
|
1516
|
-
return /* @__PURE__ */ React38.createElement(React38.Fragment, null, /* @__PURE__ */ React38.createElement(
|
|
1555
|
+
return /* @__PURE__ */ React38.createElement(React38.Fragment, null, /* @__PURE__ */ React38.createElement(import_ui28.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React38.createElement(DimensionField, { side: "top", label: (0, import_i18n19.__)("Top", "elementor") }), /* @__PURE__ */ React38.createElement(DimensionField, { side: "right", label: (0, import_i18n19.__)("Right", "elementor") })), /* @__PURE__ */ React38.createElement(import_ui28.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React38.createElement(DimensionField, { side: "bottom", label: (0, import_i18n19.__)("Bottom", "elementor") }), /* @__PURE__ */ React38.createElement(DimensionField, { side: "left", label: (0, import_i18n19.__)("Left", "elementor") })));
|
|
1517
1556
|
};
|
|
1518
1557
|
var DimensionField = ({ side, label }) => {
|
|
1519
|
-
return /* @__PURE__ */ React38.createElement(
|
|
1558
|
+
return /* @__PURE__ */ React38.createElement(import_ui28.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React38.createElement(import_ui28.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React38.createElement(import_editor_controls23.ControlLabel, null, label)), /* @__PURE__ */ React38.createElement(import_ui28.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React38.createElement(StylesField, { bind: side }, /* @__PURE__ */ React38.createElement(import_editor_controls23.SizeControl, { startIcon: sideIcons[side] }))));
|
|
1520
1559
|
};
|
|
1521
1560
|
|
|
1522
1561
|
// src/components/style-sections/position-section/position-field.tsx
|
|
1523
1562
|
var React39 = __toESM(require("react"));
|
|
1524
1563
|
var import_editor_controls24 = require("@elementor/editor-controls");
|
|
1525
|
-
var
|
|
1564
|
+
var import_ui29 = require("@elementor/ui");
|
|
1526
1565
|
var import_i18n20 = require("@wordpress/i18n");
|
|
1527
1566
|
var positionOptions = [
|
|
1528
1567
|
{ label: (0, import_i18n20.__)("Static", "elementor"), value: "static" },
|
|
1529
1568
|
{ label: (0, import_i18n20.__)("Relative", "elementor"), value: "relative" },
|
|
1530
1569
|
{ label: (0, import_i18n20.__)("Absolute", "elementor"), value: "absolute" },
|
|
1531
|
-
{ label: (0, import_i18n20.__)("Fixed", "elementor"), value: "fixed" }
|
|
1570
|
+
{ label: (0, import_i18n20.__)("Fixed", "elementor"), value: "fixed" },
|
|
1571
|
+
{ label: (0, import_i18n20.__)("Sticky", "elementor"), value: "sticky" }
|
|
1532
1572
|
];
|
|
1533
1573
|
var PositionField = ({ onChange }) => {
|
|
1534
|
-
return /* @__PURE__ */ React39.createElement(StylesField, { bind: "position" }, /* @__PURE__ */ React39.createElement(
|
|
1574
|
+
return /* @__PURE__ */ React39.createElement(StylesField, { bind: "position" }, /* @__PURE__ */ React39.createElement(import_ui29.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React39.createElement(import_ui29.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React39.createElement(import_editor_controls24.ControlLabel, null, (0, import_i18n20.__)("Position", "elementor"))), /* @__PURE__ */ React39.createElement(import_ui29.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React39.createElement(import_editor_controls24.SelectControl, { options: positionOptions, onChange }))));
|
|
1535
1575
|
};
|
|
1536
1576
|
|
|
1537
1577
|
// src/components/style-sections/position-section/z-index-field.tsx
|
|
1538
1578
|
var React40 = __toESM(require("react"));
|
|
1539
1579
|
var import_editor_controls25 = require("@elementor/editor-controls");
|
|
1540
|
-
var
|
|
1580
|
+
var import_ui30 = require("@elementor/ui");
|
|
1541
1581
|
var import_i18n21 = require("@wordpress/i18n");
|
|
1542
1582
|
var ZIndexField = () => {
|
|
1543
|
-
return /* @__PURE__ */ React40.createElement(StylesField, { bind: "z-index" }, /* @__PURE__ */ React40.createElement(
|
|
1583
|
+
return /* @__PURE__ */ React40.createElement(StylesField, { bind: "z-index" }, /* @__PURE__ */ React40.createElement(import_ui30.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React40.createElement(import_ui30.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(import_editor_controls25.ControlLabel, null, (0, import_i18n21.__)("Z-Index", "elementor"))), /* @__PURE__ */ React40.createElement(import_ui30.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(import_editor_controls25.NumberControl, null))));
|
|
1544
1584
|
};
|
|
1545
1585
|
|
|
1546
1586
|
// src/components/style-sections/position-section/position-section.tsx
|
|
@@ -1572,7 +1612,7 @@ var PositionSection = () => {
|
|
|
1572
1612
|
}
|
|
1573
1613
|
};
|
|
1574
1614
|
const isNotStatic = positionValue && positionValue?.value !== "static";
|
|
1575
|
-
return /* @__PURE__ */ React41.createElement(
|
|
1615
|
+
return /* @__PURE__ */ React41.createElement(import_ui31.Stack, { gap: 1.5 }, /* @__PURE__ */ React41.createElement(PositionField, { onChange: onPositionChange }), isNotStatic ? /* @__PURE__ */ React41.createElement(React41.Fragment, null, /* @__PURE__ */ React41.createElement(DimensionsField, null), /* @__PURE__ */ React41.createElement(ZIndexField, null)) : null);
|
|
1576
1616
|
};
|
|
1577
1617
|
var usePersistDimensions = () => {
|
|
1578
1618
|
const { id: styleDefID, meta } = useStyle();
|
|
@@ -1584,14 +1624,14 @@ var usePersistDimensions = () => {
|
|
|
1584
1624
|
// src/components/style-sections/size-section/size-section.tsx
|
|
1585
1625
|
var React43 = __toESM(require("react"));
|
|
1586
1626
|
var import_editor_controls27 = require("@elementor/editor-controls");
|
|
1587
|
-
var
|
|
1627
|
+
var import_ui33 = require("@elementor/ui");
|
|
1588
1628
|
var import_i18n23 = require("@wordpress/i18n");
|
|
1589
1629
|
|
|
1590
1630
|
// src/components/style-sections/size-section/overflow-field.tsx
|
|
1591
1631
|
var React42 = __toESM(require("react"));
|
|
1592
1632
|
var import_editor_controls26 = require("@elementor/editor-controls");
|
|
1593
1633
|
var import_icons16 = require("@elementor/icons");
|
|
1594
|
-
var
|
|
1634
|
+
var import_ui32 = require("@elementor/ui");
|
|
1595
1635
|
var import_i18n22 = require("@wordpress/i18n");
|
|
1596
1636
|
var options6 = [
|
|
1597
1637
|
{
|
|
@@ -1614,42 +1654,42 @@ var options6 = [
|
|
|
1614
1654
|
}
|
|
1615
1655
|
];
|
|
1616
1656
|
var OverflowField = () => {
|
|
1617
|
-
return /* @__PURE__ */ React42.createElement(StylesField, { bind: "overflow" }, /* @__PURE__ */ React42.createElement(
|
|
1657
|
+
return /* @__PURE__ */ React42.createElement(StylesField, { bind: "overflow" }, /* @__PURE__ */ React42.createElement(import_ui32.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React42.createElement(import_ui32.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(import_editor_controls26.ControlLabel, null, (0, import_i18n22.__)("Overflow", "elementor"))), /* @__PURE__ */ React42.createElement(import_ui32.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React42.createElement(import_editor_controls26.ToggleControl, { options: options6 }))));
|
|
1618
1658
|
};
|
|
1619
1659
|
|
|
1620
1660
|
// src/components/style-sections/size-section/size-section.tsx
|
|
1621
1661
|
var SizeSection = () => {
|
|
1622
|
-
return /* @__PURE__ */ React43.createElement(
|
|
1662
|
+
return /* @__PURE__ */ React43.createElement(import_ui33.Stack, { gap: 1.5 }, /* @__PURE__ */ React43.createElement(import_ui33.Grid, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React43.createElement(import_ui33.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React43.createElement(SizeField, { bind: "width", label: (0, import_i18n23.__)("Width", "elementor") })), /* @__PURE__ */ React43.createElement(import_ui33.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React43.createElement(SizeField, { bind: "height", label: (0, import_i18n23.__)("Height", "elementor") }))), /* @__PURE__ */ React43.createElement(import_ui33.Grid, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React43.createElement(import_ui33.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React43.createElement(SizeField, { bind: "min-width", label: (0, import_i18n23.__)("Min. Width", "elementor") })), /* @__PURE__ */ React43.createElement(import_ui33.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React43.createElement(SizeField, { bind: "min-height", label: (0, import_i18n23.__)("Min. Height", "elementor") }))), /* @__PURE__ */ React43.createElement(import_ui33.Grid, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React43.createElement(import_ui33.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React43.createElement(SizeField, { bind: "max-width", label: (0, import_i18n23.__)("Max. Width", "elementor") })), /* @__PURE__ */ React43.createElement(import_ui33.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React43.createElement(SizeField, { bind: "max-height", label: (0, import_i18n23.__)("Max. Height", "elementor") }))), /* @__PURE__ */ React43.createElement(import_ui33.Divider, null), /* @__PURE__ */ React43.createElement(import_ui33.Stack, null, /* @__PURE__ */ React43.createElement(OverflowField, null)));
|
|
1623
1663
|
};
|
|
1624
1664
|
var SizeField = ({ label, bind }) => {
|
|
1625
|
-
return /* @__PURE__ */ React43.createElement(StylesField, { bind }, /* @__PURE__ */ React43.createElement(
|
|
1665
|
+
return /* @__PURE__ */ React43.createElement(StylesField, { bind }, /* @__PURE__ */ React43.createElement(import_ui33.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React43.createElement(import_ui33.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React43.createElement(import_editor_controls27.ControlLabel, null, label)), /* @__PURE__ */ React43.createElement(import_ui33.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React43.createElement(import_editor_controls27.SizeControl, null))));
|
|
1626
1666
|
};
|
|
1627
1667
|
|
|
1628
1668
|
// src/components/style-sections/spacing-section/spacing-section.tsx
|
|
1629
1669
|
var React44 = __toESM(require("react"));
|
|
1630
1670
|
var import_editor_controls28 = require("@elementor/editor-controls");
|
|
1631
|
-
var
|
|
1671
|
+
var import_ui34 = require("@elementor/ui");
|
|
1632
1672
|
var import_i18n24 = require("@wordpress/i18n");
|
|
1633
1673
|
var SpacingSection = () => {
|
|
1634
|
-
return /* @__PURE__ */ React44.createElement(
|
|
1674
|
+
return /* @__PURE__ */ React44.createElement(import_ui34.Stack, { gap: 1.5 }, /* @__PURE__ */ React44.createElement(StylesField, { bind: "padding" }, /* @__PURE__ */ React44.createElement(import_editor_controls28.LinkedDimensionsControl, { label: (0, import_i18n24.__)("Padding", "elementor") })), /* @__PURE__ */ React44.createElement(import_ui34.Divider, null), /* @__PURE__ */ React44.createElement(StylesField, { bind: "margin" }, /* @__PURE__ */ React44.createElement(import_editor_controls28.LinkedDimensionsControl, { label: (0, import_i18n24.__)("Margin", "elementor") })));
|
|
1635
1675
|
};
|
|
1636
1676
|
|
|
1637
1677
|
// src/components/style-sections/typography-section/typography-section.tsx
|
|
1638
1678
|
var React58 = __toESM(require("react"));
|
|
1639
|
-
var
|
|
1679
|
+
var import_ui47 = require("@elementor/ui");
|
|
1640
1680
|
|
|
1641
1681
|
// src/components/collapsible-content.tsx
|
|
1642
1682
|
var React45 = __toESM(require("react"));
|
|
1643
|
-
var
|
|
1644
|
-
var
|
|
1683
|
+
var import_react13 = require("react");
|
|
1684
|
+
var import_ui35 = require("@elementor/ui");
|
|
1645
1685
|
var import_i18n25 = require("@wordpress/i18n");
|
|
1646
1686
|
var CollapsibleContent = ({ children, defaultOpen = false }) => {
|
|
1647
|
-
const [open, setOpen] = (0,
|
|
1687
|
+
const [open, setOpen] = (0, import_react13.useState)(defaultOpen);
|
|
1648
1688
|
const handleToggle = () => {
|
|
1649
1689
|
setOpen((prevOpen) => !prevOpen);
|
|
1650
1690
|
};
|
|
1651
|
-
return /* @__PURE__ */ React45.createElement(
|
|
1652
|
-
|
|
1691
|
+
return /* @__PURE__ */ React45.createElement(import_ui35.Stack, { sx: { py: 0.5 } }, /* @__PURE__ */ React45.createElement(
|
|
1692
|
+
import_ui35.Button,
|
|
1653
1693
|
{
|
|
1654
1694
|
fullWidth: true,
|
|
1655
1695
|
size: "small",
|
|
@@ -1659,13 +1699,13 @@ var CollapsibleContent = ({ children, defaultOpen = false }) => {
|
|
|
1659
1699
|
endIcon: /* @__PURE__ */ React45.createElement(CollapseIcon, { open })
|
|
1660
1700
|
},
|
|
1661
1701
|
open ? (0, import_i18n25.__)("Show less", "elementor") : (0, import_i18n25.__)("Show more", "elementor")
|
|
1662
|
-
), /* @__PURE__ */ React45.createElement(
|
|
1702
|
+
), /* @__PURE__ */ React45.createElement(import_ui35.Collapse, { in: open, timeout: "auto", unmountOnExit: true }, children));
|
|
1663
1703
|
};
|
|
1664
1704
|
|
|
1665
1705
|
// src/components/style-sections/typography-section/font-family-field.tsx
|
|
1666
1706
|
var React46 = __toESM(require("react"));
|
|
1667
1707
|
var import_editor_controls29 = require("@elementor/editor-controls");
|
|
1668
|
-
var
|
|
1708
|
+
var import_ui36 = require("@elementor/ui");
|
|
1669
1709
|
var import_i18n26 = require("@wordpress/i18n");
|
|
1670
1710
|
|
|
1671
1711
|
// src/sync/get-elementor-config.ts
|
|
@@ -1680,7 +1720,7 @@ var FontFamilyField = () => {
|
|
|
1680
1720
|
if (!fontFamilies) {
|
|
1681
1721
|
return null;
|
|
1682
1722
|
}
|
|
1683
|
-
return /* @__PURE__ */ React46.createElement(StylesField, { bind: "font-family" }, /* @__PURE__ */ React46.createElement(
|
|
1723
|
+
return /* @__PURE__ */ React46.createElement(StylesField, { bind: "font-family" }, /* @__PURE__ */ React46.createElement(import_ui36.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React46.createElement(import_ui36.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React46.createElement(import_editor_controls29.ControlLabel, null, (0, import_i18n26.__)("Font Family", "elementor"))), /* @__PURE__ */ React46.createElement(import_ui36.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React46.createElement(import_editor_controls29.FontFamilyControl, { fontFamilies }))));
|
|
1684
1724
|
};
|
|
1685
1725
|
var getFontFamilies = () => {
|
|
1686
1726
|
const { controls } = getElementorConfig();
|
|
@@ -1694,16 +1734,16 @@ var getFontFamilies = () => {
|
|
|
1694
1734
|
// src/components/style-sections/typography-section/font-size-field.tsx
|
|
1695
1735
|
var React47 = __toESM(require("react"));
|
|
1696
1736
|
var import_editor_controls30 = require("@elementor/editor-controls");
|
|
1697
|
-
var
|
|
1737
|
+
var import_ui37 = require("@elementor/ui");
|
|
1698
1738
|
var import_i18n27 = require("@wordpress/i18n");
|
|
1699
1739
|
var FontSizeField = () => {
|
|
1700
|
-
return /* @__PURE__ */ React47.createElement(StylesField, { bind: "font-size" }, /* @__PURE__ */ React47.createElement(
|
|
1740
|
+
return /* @__PURE__ */ React47.createElement(StylesField, { bind: "font-size" }, /* @__PURE__ */ React47.createElement(import_ui37.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React47.createElement(import_ui37.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(import_editor_controls30.ControlLabel, null, (0, import_i18n27.__)("Font Size", "elementor"))), /* @__PURE__ */ React47.createElement(import_ui37.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(import_editor_controls30.SizeControl, null))));
|
|
1701
1741
|
};
|
|
1702
1742
|
|
|
1703
1743
|
// src/components/style-sections/typography-section/font-weight-field.tsx
|
|
1704
1744
|
var React48 = __toESM(require("react"));
|
|
1705
1745
|
var import_editor_controls31 = require("@elementor/editor-controls");
|
|
1706
|
-
var
|
|
1746
|
+
var import_ui38 = require("@elementor/ui");
|
|
1707
1747
|
var import_i18n28 = require("@wordpress/i18n");
|
|
1708
1748
|
var fontWeightOptions = [
|
|
1709
1749
|
{ label: (0, import_i18n28.__)("Light - 400", "elementor"), value: "400" },
|
|
@@ -1713,32 +1753,32 @@ var fontWeightOptions = [
|
|
|
1713
1753
|
{ label: (0, import_i18n28.__)("Black - 900", "elementor"), value: "900" }
|
|
1714
1754
|
];
|
|
1715
1755
|
var FontWeightField = () => {
|
|
1716
|
-
return /* @__PURE__ */ React48.createElement(StylesField, { bind: "font-weight" }, /* @__PURE__ */ React48.createElement(
|
|
1756
|
+
return /* @__PURE__ */ React48.createElement(StylesField, { bind: "font-weight" }, /* @__PURE__ */ React48.createElement(import_ui38.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React48.createElement(import_ui38.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React48.createElement(import_editor_controls31.ControlLabel, null, (0, import_i18n28.__)("Font Weight", "elementor"))), /* @__PURE__ */ React48.createElement(import_ui38.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React48.createElement(import_editor_controls31.SelectControl, { options: fontWeightOptions }))));
|
|
1717
1757
|
};
|
|
1718
1758
|
|
|
1719
1759
|
// src/components/style-sections/typography-section/letter-spacing-field.tsx
|
|
1720
1760
|
var React49 = __toESM(require("react"));
|
|
1721
1761
|
var import_editor_controls32 = require("@elementor/editor-controls");
|
|
1722
|
-
var
|
|
1762
|
+
var import_ui39 = require("@elementor/ui");
|
|
1723
1763
|
var import_i18n29 = require("@wordpress/i18n");
|
|
1724
1764
|
var LetterSpacingField = () => {
|
|
1725
|
-
return /* @__PURE__ */ React49.createElement(StylesField, { bind: "letter-spacing" }, /* @__PURE__ */ React49.createElement(
|
|
1765
|
+
return /* @__PURE__ */ React49.createElement(StylesField, { bind: "letter-spacing" }, /* @__PURE__ */ React49.createElement(import_ui39.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React49.createElement(import_ui39.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(import_editor_controls32.ControlLabel, null, (0, import_i18n29.__)("Letter Spacing", "elementor"))), /* @__PURE__ */ React49.createElement(import_ui39.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(import_editor_controls32.SizeControl, null))));
|
|
1726
1766
|
};
|
|
1727
1767
|
|
|
1728
1768
|
// src/components/style-sections/typography-section/line-height-field.tsx
|
|
1729
1769
|
var React50 = __toESM(require("react"));
|
|
1730
1770
|
var import_editor_controls33 = require("@elementor/editor-controls");
|
|
1731
|
-
var
|
|
1771
|
+
var import_ui40 = require("@elementor/ui");
|
|
1732
1772
|
var import_i18n30 = require("@wordpress/i18n");
|
|
1733
1773
|
var LineHeightField = () => {
|
|
1734
|
-
return /* @__PURE__ */ React50.createElement(StylesField, { bind: "line-height" }, /* @__PURE__ */ React50.createElement(
|
|
1774
|
+
return /* @__PURE__ */ React50.createElement(StylesField, { bind: "line-height" }, /* @__PURE__ */ React50.createElement(import_ui40.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React50.createElement(import_ui40.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React50.createElement(import_editor_controls33.ControlLabel, null, (0, import_i18n30.__)("Line Height", "elementor"))), /* @__PURE__ */ React50.createElement(import_ui40.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React50.createElement(import_editor_controls33.SizeControl, null))));
|
|
1735
1775
|
};
|
|
1736
1776
|
|
|
1737
1777
|
// src/components/style-sections/typography-section/text-alignment-field.tsx
|
|
1738
1778
|
var React51 = __toESM(require("react"));
|
|
1739
1779
|
var import_editor_controls34 = require("@elementor/editor-controls");
|
|
1740
1780
|
var import_icons17 = require("@elementor/icons");
|
|
1741
|
-
var
|
|
1781
|
+
var import_ui41 = require("@elementor/ui");
|
|
1742
1782
|
var import_i18n31 = require("@wordpress/i18n");
|
|
1743
1783
|
var options7 = [
|
|
1744
1784
|
{
|
|
@@ -1763,23 +1803,23 @@ var options7 = [
|
|
|
1763
1803
|
}
|
|
1764
1804
|
];
|
|
1765
1805
|
var TextAlignmentField = () => {
|
|
1766
|
-
return /* @__PURE__ */ React51.createElement(StylesField, { bind: "text-align" }, /* @__PURE__ */ React51.createElement(
|
|
1806
|
+
return /* @__PURE__ */ React51.createElement(StylesField, { bind: "text-align" }, /* @__PURE__ */ React51.createElement(import_ui41.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React51.createElement(import_ui41.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React51.createElement(import_editor_controls34.ControlLabel, null, (0, import_i18n31.__)("Alignment", "elementor"))), /* @__PURE__ */ React51.createElement(import_ui41.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React51.createElement(import_editor_controls34.ToggleControl, { options: options7 }))));
|
|
1767
1807
|
};
|
|
1768
1808
|
|
|
1769
1809
|
// src/components/style-sections/typography-section/text-color-field.tsx
|
|
1770
1810
|
var React52 = __toESM(require("react"));
|
|
1771
1811
|
var import_editor_controls35 = require("@elementor/editor-controls");
|
|
1772
|
-
var
|
|
1812
|
+
var import_ui42 = require("@elementor/ui");
|
|
1773
1813
|
var import_i18n32 = require("@wordpress/i18n");
|
|
1774
1814
|
var TextColorField = () => {
|
|
1775
|
-
return /* @__PURE__ */ React52.createElement(StylesField, { bind: "color" }, /* @__PURE__ */ React52.createElement(
|
|
1815
|
+
return /* @__PURE__ */ React52.createElement(StylesField, { bind: "color" }, /* @__PURE__ */ React52.createElement(import_ui42.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React52.createElement(import_ui42.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React52.createElement(import_editor_controls35.ControlLabel, null, (0, import_i18n32.__)("Text Color", "elementor"))), /* @__PURE__ */ React52.createElement(import_ui42.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React52.createElement(import_editor_controls35.ColorControl, null))));
|
|
1776
1816
|
};
|
|
1777
1817
|
|
|
1778
1818
|
// src/components/style-sections/typography-section/text-direction-field.tsx
|
|
1779
1819
|
var React53 = __toESM(require("react"));
|
|
1780
1820
|
var import_editor_controls36 = require("@elementor/editor-controls");
|
|
1781
1821
|
var import_icons18 = require("@elementor/icons");
|
|
1782
|
-
var
|
|
1822
|
+
var import_ui43 = require("@elementor/ui");
|
|
1783
1823
|
var import_i18n33 = require("@wordpress/i18n");
|
|
1784
1824
|
var options8 = [
|
|
1785
1825
|
{
|
|
@@ -1794,7 +1834,7 @@ var options8 = [
|
|
|
1794
1834
|
}
|
|
1795
1835
|
];
|
|
1796
1836
|
var TextDirectionField = () => {
|
|
1797
|
-
return /* @__PURE__ */ React53.createElement(StylesField, { bind: "direction" }, /* @__PURE__ */ React53.createElement(
|
|
1837
|
+
return /* @__PURE__ */ React53.createElement(StylesField, { bind: "direction" }, /* @__PURE__ */ React53.createElement(import_ui43.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React53.createElement(import_ui43.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React53.createElement(import_editor_controls36.ControlLabel, null, (0, import_i18n33.__)("Direction", "elementor"))), /* @__PURE__ */ React53.createElement(import_ui43.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React53.createElement(import_editor_controls36.ToggleControl, { options: options8 }))));
|
|
1798
1838
|
};
|
|
1799
1839
|
|
|
1800
1840
|
// src/components/style-sections/typography-section/text-stroke-field.tsx
|
|
@@ -1842,7 +1882,7 @@ var TextStrokeField = () => {
|
|
|
1842
1882
|
var React55 = __toESM(require("react"));
|
|
1843
1883
|
var import_editor_controls38 = require("@elementor/editor-controls");
|
|
1844
1884
|
var import_icons19 = require("@elementor/icons");
|
|
1845
|
-
var
|
|
1885
|
+
var import_ui44 = require("@elementor/ui");
|
|
1846
1886
|
var import_i18n35 = require("@wordpress/i18n");
|
|
1847
1887
|
var buttonSize = "tiny";
|
|
1848
1888
|
var TextStyleField = () => {
|
|
@@ -1867,7 +1907,7 @@ var TextStyleField = () => {
|
|
|
1867
1907
|
value: newValue
|
|
1868
1908
|
});
|
|
1869
1909
|
};
|
|
1870
|
-
return /* @__PURE__ */ React55.createElement(
|
|
1910
|
+
return /* @__PURE__ */ React55.createElement(import_ui44.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React55.createElement(import_ui44.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(import_editor_controls38.ControlLabel, null, (0, import_i18n35.__)("Style", "elementor"))), /* @__PURE__ */ React55.createElement(import_ui44.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React55.createElement(import_ui44.ToggleButtonGroup, { value: formats }, /* @__PURE__ */ React55.createElement(
|
|
1871
1911
|
ToggleButton,
|
|
1872
1912
|
{
|
|
1873
1913
|
value: "italic",
|
|
@@ -1918,14 +1958,14 @@ var ToggleButton = ({ onChange, ...props }) => {
|
|
|
1918
1958
|
const handleChange = (_e, newValue) => {
|
|
1919
1959
|
onChange(newValue);
|
|
1920
1960
|
};
|
|
1921
|
-
return /* @__PURE__ */ React55.createElement(
|
|
1961
|
+
return /* @__PURE__ */ React55.createElement(import_ui44.ToggleButton, { ...props, onChange: handleChange, size: buttonSize });
|
|
1922
1962
|
};
|
|
1923
1963
|
|
|
1924
1964
|
// src/components/style-sections/typography-section/transform-field.tsx
|
|
1925
1965
|
var React56 = __toESM(require("react"));
|
|
1926
1966
|
var import_editor_controls39 = require("@elementor/editor-controls");
|
|
1927
1967
|
var import_icons20 = require("@elementor/icons");
|
|
1928
|
-
var
|
|
1968
|
+
var import_ui45 = require("@elementor/ui");
|
|
1929
1969
|
var import_i18n36 = require("@wordpress/i18n");
|
|
1930
1970
|
var options9 = [
|
|
1931
1971
|
{
|
|
@@ -1944,20 +1984,20 @@ var options9 = [
|
|
|
1944
1984
|
renderContent: ({ size }) => /* @__PURE__ */ React56.createElement(import_icons20.LetterCaseLowerIcon, { fontSize: size })
|
|
1945
1985
|
}
|
|
1946
1986
|
];
|
|
1947
|
-
var TransformField = () => /* @__PURE__ */ React56.createElement(StylesField, { bind: "text-transform" }, /* @__PURE__ */ React56.createElement(
|
|
1987
|
+
var TransformField = () => /* @__PURE__ */ React56.createElement(StylesField, { bind: "text-transform" }, /* @__PURE__ */ React56.createElement(import_ui45.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React56.createElement(import_ui45.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React56.createElement(import_editor_controls39.ControlLabel, null, (0, import_i18n36.__)("Transform", "elementor"))), /* @__PURE__ */ React56.createElement(import_ui45.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React56.createElement(import_editor_controls39.ToggleControl, { options: options9 }))));
|
|
1948
1988
|
|
|
1949
1989
|
// src/components/style-sections/typography-section/word-spacing-field.tsx
|
|
1950
1990
|
var React57 = __toESM(require("react"));
|
|
1951
1991
|
var import_editor_controls40 = require("@elementor/editor-controls");
|
|
1952
|
-
var
|
|
1992
|
+
var import_ui46 = require("@elementor/ui");
|
|
1953
1993
|
var import_i18n37 = require("@wordpress/i18n");
|
|
1954
1994
|
var WordSpacingField = () => {
|
|
1955
|
-
return /* @__PURE__ */ React57.createElement(StylesField, { bind: "word-spacing" }, /* @__PURE__ */ React57.createElement(
|
|
1995
|
+
return /* @__PURE__ */ React57.createElement(StylesField, { bind: "word-spacing" }, /* @__PURE__ */ React57.createElement(import_ui46.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React57.createElement(import_ui46.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React57.createElement(import_editor_controls40.ControlLabel, null, (0, import_i18n37.__)("Word Spacing", "elementor"))), /* @__PURE__ */ React57.createElement(import_ui46.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React57.createElement(import_editor_controls40.SizeControl, null))));
|
|
1956
1996
|
};
|
|
1957
1997
|
|
|
1958
1998
|
// src/components/style-sections/typography-section/typography-section.tsx
|
|
1959
1999
|
var TypographySection = () => {
|
|
1960
|
-
return /* @__PURE__ */ React58.createElement(
|
|
2000
|
+
return /* @__PURE__ */ React58.createElement(import_ui47.Stack, { gap: 1.5 }, /* @__PURE__ */ React58.createElement(FontFamilyField, null), /* @__PURE__ */ React58.createElement(FontWeightField, null), /* @__PURE__ */ React58.createElement(FontSizeField, null), /* @__PURE__ */ React58.createElement(import_ui47.Divider, null), /* @__PURE__ */ React58.createElement(TextAlignmentField, null), /* @__PURE__ */ React58.createElement(TextColorField, null), /* @__PURE__ */ React58.createElement(CollapsibleContent, null, /* @__PURE__ */ React58.createElement(import_ui47.Stack, { gap: 1.5, sx: { pt: 1.5 } }, /* @__PURE__ */ React58.createElement(LineHeightField, null), /* @__PURE__ */ React58.createElement(LetterSpacingField, null), /* @__PURE__ */ React58.createElement(WordSpacingField, null), /* @__PURE__ */ React58.createElement(import_ui47.Divider, null), /* @__PURE__ */ React58.createElement(TextStyleField, null), /* @__PURE__ */ React58.createElement(TransformField, null), /* @__PURE__ */ React58.createElement(TextDirectionField, null), /* @__PURE__ */ React58.createElement(TextStrokeField, null))));
|
|
1961
2001
|
};
|
|
1962
2002
|
|
|
1963
2003
|
// src/components/style-tab.tsx
|
|
@@ -1965,7 +2005,7 @@ var CLASSES_PROP_KEY = "classes";
|
|
|
1965
2005
|
var StyleTab = () => {
|
|
1966
2006
|
const currentClassesProp = useCurrentClassesProp();
|
|
1967
2007
|
const [activeStyleDefId, setActiveStyleDefId] = useActiveStyleDefId(currentClassesProp);
|
|
1968
|
-
const [activeStyleState, setActiveStyleState] = (0,
|
|
2008
|
+
const [activeStyleState, setActiveStyleState] = (0, import_react14.useState)(null);
|
|
1969
2009
|
const breakpoint = (0, import_editor_responsive.useActiveBreakpoint)();
|
|
1970
2010
|
return /* @__PURE__ */ React59.createElement(ClassesPropProvider, { prop: currentClassesProp }, /* @__PURE__ */ React59.createElement(
|
|
1971
2011
|
StyleProvider,
|
|
@@ -1979,12 +2019,12 @@ var StyleTab = () => {
|
|
|
1979
2019
|
setMetaState: setActiveStyleState
|
|
1980
2020
|
},
|
|
1981
2021
|
/* @__PURE__ */ React59.createElement(CssClassSelector, null),
|
|
1982
|
-
/* @__PURE__ */ React59.createElement(
|
|
2022
|
+
/* @__PURE__ */ React59.createElement(import_ui48.Divider, null),
|
|
1983
2023
|
/* @__PURE__ */ React59.createElement(SectionsList, null, /* @__PURE__ */ React59.createElement(Section, { title: (0, import_i18n38.__)("Layout", "elementor") }, /* @__PURE__ */ React59.createElement(LayoutSection, null)), /* @__PURE__ */ React59.createElement(Section, { title: (0, import_i18n38.__)("Spacing", "elementor") }, /* @__PURE__ */ React59.createElement(SpacingSection, null)), /* @__PURE__ */ React59.createElement(Section, { title: (0, import_i18n38.__)("Size", "elementor") }, /* @__PURE__ */ React59.createElement(SizeSection, null)), /* @__PURE__ */ React59.createElement(Section, { title: (0, import_i18n38.__)("Position", "elementor") }, /* @__PURE__ */ React59.createElement(PositionSection, null)), /* @__PURE__ */ React59.createElement(Section, { title: (0, import_i18n38.__)("Typography", "elementor") }, /* @__PURE__ */ React59.createElement(TypographySection, null)), /* @__PURE__ */ React59.createElement(Section, { title: (0, import_i18n38.__)("Background", "elementor") }, /* @__PURE__ */ React59.createElement(BackgroundSection, null)), /* @__PURE__ */ React59.createElement(Section, { title: (0, import_i18n38.__)("Border", "elementor") }, /* @__PURE__ */ React59.createElement(BorderSection, null)), /* @__PURE__ */ React59.createElement(Section, { title: (0, import_i18n38.__)("Effects", "elementor") }, /* @__PURE__ */ React59.createElement(EffectsSection, null)))
|
|
1984
2024
|
));
|
|
1985
2025
|
};
|
|
1986
2026
|
function useActiveStyleDefId(currentClassesProp) {
|
|
1987
|
-
const [activeStyledDefId, setActiveStyledDefId] = (0,
|
|
2027
|
+
const [activeStyledDefId, setActiveStyledDefId] = (0, import_react14.useState)(null);
|
|
1988
2028
|
const fallback = useFirstElementStyleDef(currentClassesProp);
|
|
1989
2029
|
return [activeStyledDefId || fallback?.id || null, setActiveStyledDefId];
|
|
1990
2030
|
}
|
|
@@ -1997,7 +2037,7 @@ function useFirstElementStyleDef(currentClassesProp) {
|
|
|
1997
2037
|
function useCurrentClassesProp() {
|
|
1998
2038
|
const { elementType } = useElement();
|
|
1999
2039
|
const prop = Object.entries(elementType.propsSchema).find(
|
|
2000
|
-
([, propType]) => propType.kind === "
|
|
2040
|
+
([, propType]) => propType.kind === "plain" && propType.key === CLASSES_PROP_KEY
|
|
2001
2041
|
);
|
|
2002
2042
|
if (!prop) {
|
|
2003
2043
|
throw new Error("Element does not have a classes prop");
|
|
@@ -2008,11 +2048,11 @@ function useCurrentClassesProp() {
|
|
|
2008
2048
|
// src/components/editing-panel-tabs.tsx
|
|
2009
2049
|
var EditingPanelTabs = () => {
|
|
2010
2050
|
const { element } = useElement();
|
|
2011
|
-
const { getTabProps, getTabPanelProps, getTabsProps } = (0,
|
|
2051
|
+
const { getTabProps, getTabPanelProps, getTabsProps } = (0, import_ui49.useTabs)("settings");
|
|
2012
2052
|
return (
|
|
2013
2053
|
// When switching between elements, the local states should be reset. We are using key to rerender the tabs.
|
|
2014
2054
|
// Reference: https://react.dev/learn/preserving-and-resetting-state#resetting-a-form-with-a-key
|
|
2015
|
-
/* @__PURE__ */ React60.createElement(
|
|
2055
|
+
/* @__PURE__ */ React60.createElement(import_react15.Fragment, { key: element.id }, /* @__PURE__ */ React60.createElement(import_ui49.Stack, { direction: "column", sx: { width: "100%" } }, /* @__PURE__ */ React60.createElement(import_ui49.Tabs, { variant: "fullWidth", indicatorColor: "secondary", textColor: "inherit", ...getTabsProps() }, /* @__PURE__ */ React60.createElement(import_ui49.Tab, { label: (0, import_i18n39.__)("General", "elementor"), ...getTabProps("settings") }), /* @__PURE__ */ React60.createElement(import_ui49.Tab, { label: (0, import_i18n39.__)("Style", "elementor"), ...getTabProps("style") })), /* @__PURE__ */ React60.createElement(import_ui49.Divider, null), /* @__PURE__ */ React60.createElement(import_ui49.TabPanel, { ...getTabPanelProps("settings"), disablePadding: true }, /* @__PURE__ */ React60.createElement(SettingsTab, null)), /* @__PURE__ */ React60.createElement(import_ui49.TabPanel, { ...getTabPanelProps("style"), disablePadding: true }, /* @__PURE__ */ React60.createElement(StyleTab, null))))
|
|
2016
2056
|
);
|
|
2017
2057
|
};
|
|
2018
2058
|
|
|
@@ -2026,7 +2066,7 @@ var EditingPanel = () => {
|
|
|
2026
2066
|
return null;
|
|
2027
2067
|
}
|
|
2028
2068
|
const panelTitle = (0, import_i18n40.__)("Edit %s", "elementor").replace("%s", elementType.title);
|
|
2029
|
-
return /* @__PURE__ */ React61.createElement(
|
|
2069
|
+
return /* @__PURE__ */ React61.createElement(import_ui50.ErrorBoundary, { fallback: /* @__PURE__ */ React61.createElement(EditorPanelErrorFallback, null) }, /* @__PURE__ */ React61.createElement(import_editor_panels.Panel, null, /* @__PURE__ */ React61.createElement(import_editor_panels.PanelHeader, null, /* @__PURE__ */ React61.createElement(import_editor_panels.PanelHeaderTitle, null, panelTitle)), /* @__PURE__ */ React61.createElement(import_editor_panels.PanelBody, null, /* @__PURE__ */ React61.createElement(import_editor_controls41.ControlActionsProvider, { items: menuItems }, /* @__PURE__ */ React61.createElement(import_editor_controls41.ControlReplacementProvider, { ...controlReplacement }, /* @__PURE__ */ React61.createElement(ElementProvider, { element, elementType }, /* @__PURE__ */ React61.createElement(EditingPanelTabs, null)))))));
|
|
2030
2070
|
};
|
|
2031
2071
|
|
|
2032
2072
|
// src/panel.ts
|
|
@@ -2049,7 +2089,7 @@ var isAtomicWidgetSelected = () => {
|
|
|
2049
2089
|
// src/hooks/use-close-editor-panel.ts
|
|
2050
2090
|
var useCloseEditorPanel = () => {
|
|
2051
2091
|
const { close } = usePanelActions();
|
|
2052
|
-
return (0,
|
|
2092
|
+
return (0, import_react16.useEffect)(() => {
|
|
2053
2093
|
return (0, import_editor_v1_adapters2.__privateListenTo)((0, import_editor_v1_adapters2.commandStartEvent)("document/elements/delete"), (e) => {
|
|
2054
2094
|
const selectedElement = (0, import_editor_elements8.getSelectedElements)()[0];
|
|
2055
2095
|
const { container: deletedContainer } = e?.args;
|
|
@@ -2062,11 +2102,11 @@ var useCloseEditorPanel = () => {
|
|
|
2062
2102
|
};
|
|
2063
2103
|
|
|
2064
2104
|
// src/hooks/use-open-editor-panel.ts
|
|
2065
|
-
var
|
|
2105
|
+
var import_react17 = require("react");
|
|
2066
2106
|
var import_editor_v1_adapters3 = require("@elementor/editor-v1-adapters");
|
|
2067
2107
|
var useOpenEditorPanel = () => {
|
|
2068
2108
|
const { open } = usePanelActions();
|
|
2069
|
-
(0,
|
|
2109
|
+
(0, import_react17.useEffect)(() => {
|
|
2070
2110
|
return (0, import_editor_v1_adapters3.__privateListenTo)((0, import_editor_v1_adapters3.commandStartEvent)("panel/editor/open"), () => {
|
|
2071
2111
|
if (isAtomicWidgetSelected()) {
|
|
2072
2112
|
open();
|
|
@@ -2109,10 +2149,10 @@ function registerGlobalClassItems() {
|
|
|
2109
2149
|
|
|
2110
2150
|
// src/dynamics/components/dynamic-selection-control.tsx
|
|
2111
2151
|
var React64 = __toESM(require("react"));
|
|
2112
|
-
var
|
|
2113
|
-
var
|
|
2152
|
+
var import_react21 = require("react");
|
|
2153
|
+
var import_editor_controls45 = require("@elementor/editor-controls");
|
|
2114
2154
|
var import_icons22 = require("@elementor/icons");
|
|
2115
|
-
var
|
|
2155
|
+
var import_ui52 = require("@elementor/ui");
|
|
2116
2156
|
var import_i18n42 = require("@wordpress/i18n");
|
|
2117
2157
|
|
|
2118
2158
|
// src/hooks/use-persist-dynamic-value.ts
|
|
@@ -2124,13 +2164,14 @@ var usePersistDynamicValue = (propKey) => {
|
|
|
2124
2164
|
|
|
2125
2165
|
// src/dynamics/dynamic-control.tsx
|
|
2126
2166
|
var React62 = __toESM(require("react"));
|
|
2127
|
-
var
|
|
2167
|
+
var import_editor_controls43 = require("@elementor/editor-controls");
|
|
2128
2168
|
|
|
2129
2169
|
// src/dynamics/hooks/use-dynamic-tag.ts
|
|
2130
|
-
var
|
|
2170
|
+
var import_react19 = require("react");
|
|
2131
2171
|
|
|
2132
2172
|
// src/dynamics/hooks/use-prop-dynamic-tags.ts
|
|
2133
|
-
var
|
|
2173
|
+
var import_react18 = require("react");
|
|
2174
|
+
var import_editor_controls42 = require("@elementor/editor-controls");
|
|
2134
2175
|
|
|
2135
2176
|
// src/dynamics/sync/get-elementor-config.ts
|
|
2136
2177
|
var getElementorConfig2 = () => {
|
|
@@ -2169,20 +2210,19 @@ var dynamicPropTypeUtil = (0, import_editor_props4.createPropUtils)(
|
|
|
2169
2210
|
DYNAMIC_PROP_TYPE_KEY,
|
|
2170
2211
|
import_schema.z.strictObject({
|
|
2171
2212
|
name: import_schema.z.string(),
|
|
2172
|
-
settings: import_schema.z.
|
|
2213
|
+
settings: import_schema.z.any().optional()
|
|
2173
2214
|
})
|
|
2174
2215
|
);
|
|
2175
2216
|
|
|
2176
2217
|
// src/dynamics/hooks/use-prop-dynamic-tags.ts
|
|
2177
|
-
var usePropDynamicTags = (
|
|
2218
|
+
var usePropDynamicTags = () => {
|
|
2178
2219
|
let categories = [];
|
|
2179
|
-
const {
|
|
2180
|
-
const propType = elementType.propsSchema?.[propName];
|
|
2220
|
+
const { propType } = (0, import_editor_controls42.useBoundProp)();
|
|
2181
2221
|
if (propType) {
|
|
2182
2222
|
const propDynamicType = getDynamicPropType(propType);
|
|
2183
2223
|
categories = propDynamicType?.settings.categories || [];
|
|
2184
2224
|
}
|
|
2185
|
-
return (0,
|
|
2225
|
+
return (0, import_react18.useMemo)(() => getDynamicTagsByCategories(categories), [categories.join()]);
|
|
2186
2226
|
};
|
|
2187
2227
|
var getDynamicTagsByCategories = (categories) => {
|
|
2188
2228
|
const dynamicTags = getAtomicDynamicTags();
|
|
@@ -2196,49 +2236,51 @@ var getDynamicTagsByCategories = (categories) => {
|
|
|
2196
2236
|
};
|
|
2197
2237
|
|
|
2198
2238
|
// src/dynamics/hooks/use-dynamic-tag.ts
|
|
2199
|
-
var useDynamicTag = (
|
|
2200
|
-
const dynamicTags = usePropDynamicTags(
|
|
2201
|
-
return (0,
|
|
2239
|
+
var useDynamicTag = (tagName) => {
|
|
2240
|
+
const dynamicTags = usePropDynamicTags();
|
|
2241
|
+
return (0, import_react19.useMemo)(() => dynamicTags.find((tag) => tag.name === tagName) ?? null, [dynamicTags, tagName]);
|
|
2202
2242
|
};
|
|
2203
2243
|
|
|
2204
2244
|
// src/dynamics/dynamic-control.tsx
|
|
2205
2245
|
var DynamicControl = ({ bind, children }) => {
|
|
2206
|
-
const { value, setValue
|
|
2246
|
+
const { value, setValue } = (0, import_editor_controls43.useBoundProp)(dynamicPropTypeUtil);
|
|
2207
2247
|
const { name = "", settings } = value ?? {};
|
|
2208
|
-
const dynamicTag = useDynamicTag(
|
|
2248
|
+
const dynamicTag = useDynamicTag(name);
|
|
2209
2249
|
if (!dynamicTag) {
|
|
2210
2250
|
throw new Error(`Dynamic tag ${name} not found`);
|
|
2211
2251
|
}
|
|
2212
|
-
const
|
|
2252
|
+
const dynamicPropType = dynamicTag.props_schema[bind];
|
|
2253
|
+
const defaultValue = dynamicPropType?.default;
|
|
2213
2254
|
const dynamicValue = settings?.[bind] ?? defaultValue;
|
|
2214
|
-
const setDynamicValue = (
|
|
2255
|
+
const setDynamicValue = (newValues) => {
|
|
2215
2256
|
setValue({
|
|
2216
2257
|
name,
|
|
2217
2258
|
settings: {
|
|
2218
2259
|
...settings,
|
|
2219
|
-
|
|
2260
|
+
...newValues
|
|
2220
2261
|
}
|
|
2221
2262
|
});
|
|
2222
2263
|
};
|
|
2223
|
-
|
|
2264
|
+
const propType = createTopLevelOjectType({ schema: dynamicTag.props_schema });
|
|
2265
|
+
return /* @__PURE__ */ React62.createElement(import_editor_controls43.PropProvider, { propType, setValue: setDynamicValue, value: { [bind]: dynamicValue } }, /* @__PURE__ */ React62.createElement(import_editor_controls43.PropKeyProvider, { bind }, children));
|
|
2224
2266
|
};
|
|
2225
2267
|
|
|
2226
2268
|
// src/dynamics/components/dynamic-selection.tsx
|
|
2227
2269
|
var React63 = __toESM(require("react"));
|
|
2228
|
-
var
|
|
2229
|
-
var
|
|
2270
|
+
var import_react20 = require("react");
|
|
2271
|
+
var import_editor_controls44 = require("@elementor/editor-controls");
|
|
2230
2272
|
var import_icons21 = require("@elementor/icons");
|
|
2231
|
-
var
|
|
2273
|
+
var import_ui51 = require("@elementor/ui");
|
|
2232
2274
|
var import_i18n41 = require("@wordpress/i18n");
|
|
2233
2275
|
var SIZE3 = "tiny";
|
|
2234
2276
|
var DynamicSelection = ({ onSelect }) => {
|
|
2235
|
-
const [searchValue, setSearchValue] = (0,
|
|
2277
|
+
const [searchValue, setSearchValue] = (0, import_react20.useState)("");
|
|
2236
2278
|
const { groups: dynamicGroups } = getAtomicDynamicTags() || {};
|
|
2237
|
-
const { value: anyValue } = (0,
|
|
2238
|
-
const { bind, value: dynamicValue, setValue } = (0,
|
|
2279
|
+
const { value: anyValue } = (0, import_editor_controls44.useBoundProp)();
|
|
2280
|
+
const { bind, value: dynamicValue, setValue } = (0, import_editor_controls44.useBoundProp)(dynamicPropTypeUtil);
|
|
2239
2281
|
const [, updatePropValueHistory] = usePersistDynamicValue(bind);
|
|
2240
2282
|
const isCurrentValueDynamic = !!dynamicValue;
|
|
2241
|
-
const options10 = useFilteredOptions(
|
|
2283
|
+
const options10 = useFilteredOptions(searchValue);
|
|
2242
2284
|
const handleSearch = (event) => {
|
|
2243
2285
|
setSearchValue(event.target.value);
|
|
2244
2286
|
};
|
|
@@ -2249,8 +2291,8 @@ var DynamicSelection = ({ onSelect }) => {
|
|
|
2249
2291
|
setValue({ name: value, settings: {} });
|
|
2250
2292
|
onSelect?.();
|
|
2251
2293
|
};
|
|
2252
|
-
return /* @__PURE__ */ React63.createElement(
|
|
2253
|
-
|
|
2294
|
+
return /* @__PURE__ */ React63.createElement(import_ui51.Stack, null, /* @__PURE__ */ React63.createElement(import_ui51.Box, { px: 1.5, pb: 1 }, /* @__PURE__ */ React63.createElement(
|
|
2295
|
+
import_ui51.TextField,
|
|
2254
2296
|
{
|
|
2255
2297
|
fullWidth: true,
|
|
2256
2298
|
size: SIZE3,
|
|
@@ -2258,13 +2300,13 @@ var DynamicSelection = ({ onSelect }) => {
|
|
|
2258
2300
|
onChange: handleSearch,
|
|
2259
2301
|
placeholder: (0, import_i18n41.__)("Search dynamic tag", "elementor"),
|
|
2260
2302
|
InputProps: {
|
|
2261
|
-
startAdornment: /* @__PURE__ */ React63.createElement(
|
|
2303
|
+
startAdornment: /* @__PURE__ */ React63.createElement(import_ui51.InputAdornment, { position: "start" }, /* @__PURE__ */ React63.createElement(import_icons21.SearchIcon, { fontSize: SIZE3 }))
|
|
2262
2304
|
}
|
|
2263
2305
|
}
|
|
2264
|
-
)), /* @__PURE__ */ React63.createElement(
|
|
2306
|
+
)), /* @__PURE__ */ React63.createElement(import_ui51.Divider, null), /* @__PURE__ */ React63.createElement(import_ui51.Box, { sx: { overflowY: "auto", height: 260, width: 220 } }, options10.length > 0 ? /* @__PURE__ */ React63.createElement(import_ui51.MenuList, { role: "listbox", tabIndex: 0 }, options10.map(([category, items3], index) => /* @__PURE__ */ React63.createElement(import_react20.Fragment, { key: index }, /* @__PURE__ */ React63.createElement(import_ui51.ListSubheader, { sx: { typography: "caption", color: "text.tertiary" } }, dynamicGroups?.[category]?.title || category), items3.map(({ value, label: tagLabel }) => {
|
|
2265
2307
|
const isSelected = isCurrentValueDynamic && value === dynamicValue?.name;
|
|
2266
2308
|
return /* @__PURE__ */ React63.createElement(
|
|
2267
|
-
|
|
2309
|
+
import_ui51.MenuItem,
|
|
2268
2310
|
{
|
|
2269
2311
|
key: value,
|
|
2270
2312
|
selected: isSelected,
|
|
@@ -2274,8 +2316,8 @@ var DynamicSelection = ({ onSelect }) => {
|
|
|
2274
2316
|
},
|
|
2275
2317
|
tagLabel
|
|
2276
2318
|
);
|
|
2277
|
-
})))) : /* @__PURE__ */ React63.createElement(
|
|
2278
|
-
|
|
2319
|
+
})))) : /* @__PURE__ */ React63.createElement(import_ui51.Stack, { alignItems: "center", p: 2.5, gap: 1.5 }, /* @__PURE__ */ React63.createElement(import_icons21.PhotoIcon, { fontSize: "large" }), /* @__PURE__ */ React63.createElement(import_ui51.Typography, { align: "center", variant: "caption", color: "text.secondary" }, (0, import_i18n41.__)("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React63.createElement("br", null), "\u201C", searchValue, "\u201D."), /* @__PURE__ */ React63.createElement(import_ui51.Typography, { align: "center", variant: "caption", color: "text.secondary" }, /* @__PURE__ */ React63.createElement(
|
|
2320
|
+
import_ui51.Link,
|
|
2279
2321
|
{
|
|
2280
2322
|
color: "secondary",
|
|
2281
2323
|
variant: "caption",
|
|
@@ -2285,8 +2327,8 @@ var DynamicSelection = ({ onSelect }) => {
|
|
|
2285
2327
|
(0, import_i18n41.__)("Clear the filters", "elementor")
|
|
2286
2328
|
), "\xA0", (0, import_i18n41.__)("and try again.", "elementor")))));
|
|
2287
2329
|
};
|
|
2288
|
-
var useFilteredOptions = (
|
|
2289
|
-
const dynamicTags = usePropDynamicTags(
|
|
2330
|
+
var useFilteredOptions = (searchValue) => {
|
|
2331
|
+
const dynamicTags = usePropDynamicTags();
|
|
2290
2332
|
const options10 = dynamicTags.reduce((categories, { name, label, group }) => {
|
|
2291
2333
|
const isVisible = label.toLowerCase().includes(searchValue.trim().toLowerCase());
|
|
2292
2334
|
if (!isVisible) {
|
|
@@ -2304,29 +2346,29 @@ var useFilteredOptions = (bind, searchValue) => {
|
|
|
2304
2346
|
// src/dynamics/components/dynamic-selection-control.tsx
|
|
2305
2347
|
var SIZE4 = "tiny";
|
|
2306
2348
|
var DynamicSelectionControl = () => {
|
|
2307
|
-
const { setValue: setAnyValue } = (0,
|
|
2308
|
-
const { bind, value } = (0,
|
|
2349
|
+
const { setValue: setAnyValue } = (0, import_editor_controls45.useBoundProp)();
|
|
2350
|
+
const { bind, value } = (0, import_editor_controls45.useBoundProp)(dynamicPropTypeUtil);
|
|
2309
2351
|
const [propValueFromHistory] = usePersistDynamicValue(bind);
|
|
2310
2352
|
const { name: tagName = "" } = value;
|
|
2311
|
-
const selectionPopoverId = (0,
|
|
2312
|
-
const selectionPopoverState = (0,
|
|
2313
|
-
const dynamicTag = useDynamicTag(
|
|
2353
|
+
const selectionPopoverId = (0, import_react21.useId)();
|
|
2354
|
+
const selectionPopoverState = (0, import_ui52.usePopupState)({ variant: "popover", popupId: selectionPopoverId });
|
|
2355
|
+
const dynamicTag = useDynamicTag(tagName);
|
|
2314
2356
|
const removeDynamicTag = () => {
|
|
2315
2357
|
setAnyValue(propValueFromHistory ?? null);
|
|
2316
2358
|
};
|
|
2317
2359
|
if (!dynamicTag) {
|
|
2318
2360
|
throw new Error(`Dynamic tag ${tagName} not found`);
|
|
2319
2361
|
}
|
|
2320
|
-
return /* @__PURE__ */ React64.createElement(
|
|
2321
|
-
|
|
2362
|
+
return /* @__PURE__ */ React64.createElement(import_ui52.Box, null, /* @__PURE__ */ React64.createElement(
|
|
2363
|
+
import_ui52.UnstableTag,
|
|
2322
2364
|
{
|
|
2323
2365
|
fullWidth: true,
|
|
2324
2366
|
showActionsOnHover: true,
|
|
2325
2367
|
label: dynamicTag.label,
|
|
2326
2368
|
startIcon: /* @__PURE__ */ React64.createElement(import_icons22.DatabaseIcon, { fontSize: SIZE4 }),
|
|
2327
|
-
...(0,
|
|
2369
|
+
...(0, import_ui52.bindTrigger)(selectionPopoverState),
|
|
2328
2370
|
actions: /* @__PURE__ */ React64.createElement(React64.Fragment, null, /* @__PURE__ */ React64.createElement(DynamicSettingsPopover, { dynamicTag }), /* @__PURE__ */ React64.createElement(
|
|
2329
|
-
|
|
2371
|
+
import_ui52.IconButton,
|
|
2330
2372
|
{
|
|
2331
2373
|
size: SIZE4,
|
|
2332
2374
|
onClick: removeDynamicTag,
|
|
@@ -2336,49 +2378,49 @@ var DynamicSelectionControl = () => {
|
|
|
2336
2378
|
))
|
|
2337
2379
|
}
|
|
2338
2380
|
), /* @__PURE__ */ React64.createElement(
|
|
2339
|
-
|
|
2381
|
+
import_ui52.Popover,
|
|
2340
2382
|
{
|
|
2341
2383
|
disablePortal: true,
|
|
2342
2384
|
disableScrollLock: true,
|
|
2343
2385
|
anchorOrigin: { vertical: "bottom", horizontal: "left" },
|
|
2344
|
-
...(0,
|
|
2386
|
+
...(0, import_ui52.bindPopover)(selectionPopoverState)
|
|
2345
2387
|
},
|
|
2346
|
-
/* @__PURE__ */ React64.createElement(
|
|
2388
|
+
/* @__PURE__ */ React64.createElement(import_ui52.Stack, null, /* @__PURE__ */ React64.createElement(import_ui52.Stack, { direction: "row", alignItems: "center", pl: 1.5, pr: 0.5, py: 1.5 }, /* @__PURE__ */ React64.createElement(import_icons22.DatabaseIcon, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React64.createElement(import_ui52.Typography, { variant: "subtitle2" }, (0, import_i18n42.__)("Dynamic Tags", "elementor")), /* @__PURE__ */ React64.createElement(import_ui52.IconButton, { size: SIZE4, sx: { ml: "auto" }, onClick: selectionPopoverState.close }, /* @__PURE__ */ React64.createElement(import_icons22.XIcon, { fontSize: SIZE4 }))), /* @__PURE__ */ React64.createElement(DynamicSelection, { onSelect: selectionPopoverState.close }))
|
|
2347
2389
|
));
|
|
2348
2390
|
};
|
|
2349
2391
|
var DynamicSettingsPopover = ({ dynamicTag }) => {
|
|
2350
|
-
const popupId = (0,
|
|
2351
|
-
const settingsPopupState = (0,
|
|
2392
|
+
const popupId = (0, import_react21.useId)();
|
|
2393
|
+
const settingsPopupState = (0, import_ui52.usePopupState)({ variant: "popover", popupId });
|
|
2352
2394
|
const hasDynamicSettings = !!dynamicTag.atomic_controls.length;
|
|
2353
2395
|
if (!hasDynamicSettings) {
|
|
2354
2396
|
return null;
|
|
2355
2397
|
}
|
|
2356
2398
|
return /* @__PURE__ */ React64.createElement(React64.Fragment, null, /* @__PURE__ */ React64.createElement(
|
|
2357
|
-
|
|
2399
|
+
import_ui52.IconButton,
|
|
2358
2400
|
{
|
|
2359
2401
|
size: SIZE4,
|
|
2360
|
-
...(0,
|
|
2402
|
+
...(0, import_ui52.bindTrigger)(settingsPopupState),
|
|
2361
2403
|
"aria-label": (0, import_i18n42.__)("Settings", "elementor")
|
|
2362
2404
|
},
|
|
2363
2405
|
/* @__PURE__ */ React64.createElement(import_icons22.SettingsIcon, { fontSize: SIZE4 })
|
|
2364
2406
|
), /* @__PURE__ */ React64.createElement(
|
|
2365
|
-
|
|
2407
|
+
import_ui52.Popover,
|
|
2366
2408
|
{
|
|
2367
2409
|
disableScrollLock: true,
|
|
2368
2410
|
anchorOrigin: { vertical: "bottom", horizontal: "center" },
|
|
2369
|
-
...(0,
|
|
2411
|
+
...(0, import_ui52.bindPopover)(settingsPopupState)
|
|
2370
2412
|
},
|
|
2371
|
-
/* @__PURE__ */ React64.createElement(
|
|
2413
|
+
/* @__PURE__ */ React64.createElement(import_ui52.Paper, { component: import_ui52.Stack, sx: { minHeight: "300px", width: "220px" } }, /* @__PURE__ */ React64.createElement(import_ui52.Stack, { direction: "row", alignItems: "center", px: 1.5, pt: 2, pb: 1 }, /* @__PURE__ */ React64.createElement(import_icons22.DatabaseIcon, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React64.createElement(import_ui52.Typography, { variant: "subtitle2" }, dynamicTag.label), /* @__PURE__ */ React64.createElement(import_ui52.IconButton, { sx: { ml: "auto" }, size: SIZE4, onClick: settingsPopupState.close }, /* @__PURE__ */ React64.createElement(import_icons22.XIcon, { fontSize: SIZE4 }))), /* @__PURE__ */ React64.createElement(DynamicSettings, { controls: dynamicTag.atomic_controls }))
|
|
2372
2414
|
));
|
|
2373
2415
|
};
|
|
2374
2416
|
var DynamicSettings = ({ controls }) => {
|
|
2375
2417
|
const tabs = controls.filter(({ type }) => type === "section");
|
|
2376
|
-
const { getTabsProps, getTabProps, getTabPanelProps } = (0,
|
|
2418
|
+
const { getTabsProps, getTabProps, getTabPanelProps } = (0, import_ui52.useTabs)(0);
|
|
2377
2419
|
if (!tabs.length) {
|
|
2378
2420
|
return null;
|
|
2379
2421
|
}
|
|
2380
|
-
return /* @__PURE__ */ React64.createElement(React64.Fragment, null, /* @__PURE__ */ React64.createElement(
|
|
2381
|
-
return /* @__PURE__ */ React64.createElement(
|
|
2422
|
+
return /* @__PURE__ */ React64.createElement(React64.Fragment, null, /* @__PURE__ */ React64.createElement(import_ui52.Tabs, { indicatorColor: "secondary", textColor: "secondary", ...getTabsProps() }, tabs.map(({ value }, index) => /* @__PURE__ */ React64.createElement(import_ui52.Tab, { key: index, label: value.label, sx: { px: 1, py: 0.5 }, ...getTabProps(index) }))), /* @__PURE__ */ React64.createElement(import_ui52.Divider, null), tabs.map(({ value }, index) => {
|
|
2423
|
+
return /* @__PURE__ */ React64.createElement(import_ui52.TabPanel, { key: index, sx: { flexGrow: 1 }, ...getTabPanelProps(index) }, /* @__PURE__ */ React64.createElement(import_ui52.Stack, { gap: 1, px: 2 }, value.items.map((item) => {
|
|
2382
2424
|
if (item.type === "control") {
|
|
2383
2425
|
return /* @__PURE__ */ React64.createElement(Control3, { key: item.value.bind, control: item.value });
|
|
2384
2426
|
}
|
|
@@ -2390,18 +2432,16 @@ var Control3 = ({ control }) => {
|
|
|
2390
2432
|
if (!getControlByType(control.type)) {
|
|
2391
2433
|
return null;
|
|
2392
2434
|
}
|
|
2393
|
-
return /* @__PURE__ */ React64.createElement(DynamicControl, { bind: control.bind }, control.label ? /* @__PURE__ */ React64.createElement(
|
|
2435
|
+
return /* @__PURE__ */ React64.createElement(DynamicControl, { bind: control.bind }, control.label ? /* @__PURE__ */ React64.createElement(import_editor_controls45.ControlLabel, null, control.label) : null, /* @__PURE__ */ React64.createElement(Control, { type: control.type, props: control.props }));
|
|
2394
2436
|
};
|
|
2395
2437
|
|
|
2396
2438
|
// src/dynamics/hooks/use-prop-dynamic-action.tsx
|
|
2397
2439
|
var React65 = __toESM(require("react"));
|
|
2398
|
-
var
|
|
2440
|
+
var import_editor_controls46 = require("@elementor/editor-controls");
|
|
2399
2441
|
var import_icons23 = require("@elementor/icons");
|
|
2400
2442
|
var import_i18n43 = require("@wordpress/i18n");
|
|
2401
2443
|
var usePropDynamicAction = () => {
|
|
2402
|
-
const {
|
|
2403
|
-
const { elementType } = useElement();
|
|
2404
|
-
const propType = elementType.propsSchema[bind];
|
|
2444
|
+
const { propType } = (0, import_editor_controls46.useBoundProp)();
|
|
2405
2445
|
const visible = !!propType && supportsDynamic(propType);
|
|
2406
2446
|
return {
|
|
2407
2447
|
visible,
|