@elementor/editor-editing-panel 1.6.0 → 1.8.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 +46 -0
- package/dist/index.js +652 -401
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +665 -409
- package/dist/index.mjs.map +1 -1
- package/package.json +7 -6
- package/src/components/add-or-remove-content.tsx +2 -2
- package/src/components/css-class-selector.tsx +198 -51
- package/src/components/editable-field.tsx +158 -0
- package/src/components/editing-panel.tsx +17 -14
- package/src/components/multi-combobox.tsx +184 -0
- package/src/components/settings-tab.tsx +28 -25
- package/src/components/style-sections/border-section/border-field.tsx +14 -17
- package/src/components/style-sections/position-section/position-field.tsx +1 -0
- package/src/components/style-tab.tsx +32 -29
- 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/css-classes.ts +15 -7
- 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/hooks/use-unapply-class.ts +25 -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_react17 = 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
|
|
|
@@ -165,10 +165,11 @@ var import_editor_v1_adapters2 = require("@elementor/editor-v1-adapters");
|
|
|
165
165
|
var import_editor_panels2 = require("@elementor/editor-panels");
|
|
166
166
|
|
|
167
167
|
// src/components/editing-panel.tsx
|
|
168
|
-
var
|
|
168
|
+
var React62 = __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 import_session3 = require("@elementor/session");
|
|
172
173
|
var import_ui51 = require("@elementor/ui");
|
|
173
174
|
var import_i18n40 = require("@wordpress/i18n");
|
|
174
175
|
|
|
@@ -241,14 +242,15 @@ function EditorPanelErrorFallback() {
|
|
|
241
242
|
}
|
|
242
243
|
|
|
243
244
|
// src/components/editing-panel-tabs.tsx
|
|
244
|
-
var
|
|
245
|
-
var
|
|
245
|
+
var React61 = __toESM(require("react"));
|
|
246
|
+
var import_react16 = require("react");
|
|
246
247
|
var import_ui50 = require("@elementor/ui");
|
|
247
248
|
var import_i18n39 = require("@wordpress/i18n");
|
|
248
249
|
|
|
249
250
|
// src/components/settings-tab.tsx
|
|
250
251
|
var React12 = __toESM(require("react"));
|
|
251
252
|
var import_editor_controls4 = require("@elementor/editor-controls");
|
|
253
|
+
var import_session = require("@elementor/session");
|
|
252
254
|
|
|
253
255
|
// src/controls-registry/control.tsx
|
|
254
256
|
var React7 = __toESM(require("react"));
|
|
@@ -312,20 +314,33 @@ var getGridLayout = (layout) => ({
|
|
|
312
314
|
var React9 = __toESM(require("react"));
|
|
313
315
|
var import_editor_controls3 = require("@elementor/editor-controls");
|
|
314
316
|
var import_editor_elements = require("@elementor/editor-elements");
|
|
317
|
+
|
|
318
|
+
// src/controls-registry/create-top-level-object-type.ts
|
|
319
|
+
var createTopLevelOjectType = ({ schema }) => {
|
|
320
|
+
const schemaPropType = {
|
|
321
|
+
key: "",
|
|
322
|
+
kind: "object",
|
|
323
|
+
meta: {},
|
|
324
|
+
settings: {},
|
|
325
|
+
default: null,
|
|
326
|
+
shape: schema
|
|
327
|
+
};
|
|
328
|
+
return schemaPropType;
|
|
329
|
+
};
|
|
330
|
+
|
|
331
|
+
// src/controls-registry/settings-field.tsx
|
|
315
332
|
var SettingsField = ({ bind, children }) => {
|
|
316
333
|
const { element, elementType } = useElement();
|
|
317
|
-
const defaultValue = elementType.propsSchema[bind]?.default;
|
|
318
334
|
const settingsValue = (0, import_editor_elements.useElementSetting)(element.id, bind);
|
|
319
|
-
const value =
|
|
335
|
+
const value = { [bind]: settingsValue };
|
|
336
|
+
const propType = createTopLevelOjectType({ schema: elementType.propsSchema });
|
|
320
337
|
const setValue = (newValue) => {
|
|
321
338
|
(0, import_editor_elements.updateSettings)({
|
|
322
339
|
id: element.id,
|
|
323
|
-
props: {
|
|
324
|
-
[bind]: newValue
|
|
325
|
-
}
|
|
340
|
+
props: { ...newValue }
|
|
326
341
|
});
|
|
327
342
|
};
|
|
328
|
-
return /* @__PURE__ */ React9.createElement(import_editor_controls3.
|
|
343
|
+
return /* @__PURE__ */ React9.createElement(import_editor_controls3.PropProvider, { propType, value, setValue }, /* @__PURE__ */ React9.createElement(import_editor_controls3.PropKeyProvider, { bind }, children));
|
|
329
344
|
};
|
|
330
345
|
|
|
331
346
|
// src/components/section.tsx
|
|
@@ -372,8 +387,8 @@ function SectionsList(props) {
|
|
|
372
387
|
|
|
373
388
|
// src/components/settings-tab.tsx
|
|
374
389
|
var SettingsTab = () => {
|
|
375
|
-
const { elementType } = useElement();
|
|
376
|
-
return /* @__PURE__ */ React12.createElement(SectionsList, null, elementType.controls.map(({ type, value }, index) => {
|
|
390
|
+
const { elementType, element } = useElement();
|
|
391
|
+
return /* @__PURE__ */ React12.createElement(import_session.SessionStorageProvider, { prefix: element.id }, /* @__PURE__ */ React12.createElement(SectionsList, null, elementType.controls.map(({ type, value }, index) => {
|
|
377
392
|
if (type === "control") {
|
|
378
393
|
return /* @__PURE__ */ React12.createElement(Control2, { key: value.bind, control: value });
|
|
379
394
|
}
|
|
@@ -386,7 +401,7 @@ var SettingsTab = () => {
|
|
|
386
401
|
}));
|
|
387
402
|
}
|
|
388
403
|
return null;
|
|
389
|
-
}));
|
|
404
|
+
})));
|
|
390
405
|
};
|
|
391
406
|
var Control2 = ({ control }) => {
|
|
392
407
|
if (!getControlByType(control.type)) {
|
|
@@ -396,10 +411,11 @@ var Control2 = ({ control }) => {
|
|
|
396
411
|
};
|
|
397
412
|
|
|
398
413
|
// src/components/style-tab.tsx
|
|
399
|
-
var
|
|
400
|
-
var
|
|
414
|
+
var React60 = __toESM(require("react"));
|
|
415
|
+
var import_react15 = require("react");
|
|
401
416
|
var import_editor_elements5 = require("@elementor/editor-elements");
|
|
402
417
|
var import_editor_responsive = require("@elementor/editor-responsive");
|
|
418
|
+
var import_session2 = require("@elementor/session");
|
|
403
419
|
var import_ui49 = require("@elementor/ui");
|
|
404
420
|
var import_i18n38 = require("@wordpress/i18n");
|
|
405
421
|
|
|
@@ -419,8 +435,8 @@ function useClassesProp() {
|
|
|
419
435
|
}
|
|
420
436
|
|
|
421
437
|
// src/components/css-class-selector.tsx
|
|
422
|
-
var
|
|
423
|
-
var
|
|
438
|
+
var React17 = __toESM(require("react"));
|
|
439
|
+
var import_react10 = require("react");
|
|
424
440
|
var import_editor_elements2 = require("@elementor/editor-elements");
|
|
425
441
|
var import_editor_props = require("@elementor/editor-props");
|
|
426
442
|
var import_editor_styles_repository = require("@elementor/editor-styles-repository");
|
|
@@ -463,74 +479,130 @@ var Content = React14.forwardRef(({ maxWidth, ...tooltipProps }, ref) => /* @__P
|
|
|
463
479
|
}
|
|
464
480
|
));
|
|
465
481
|
|
|
466
|
-
// src/components/
|
|
482
|
+
// src/components/editable-field.tsx
|
|
467
483
|
var React15 = __toESM(require("react"));
|
|
468
|
-
var
|
|
469
|
-
|
|
470
|
-
// src/components/multi-combobox/use-combobox-actions.ts
|
|
484
|
+
var import_react8 = require("react");
|
|
471
485
|
var import_ui9 = require("@elementor/ui");
|
|
472
|
-
var
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
486
|
+
var Context4 = (0, import_react8.createContext)(null);
|
|
487
|
+
var EditableFieldProvider = ({
|
|
488
|
+
children,
|
|
489
|
+
value,
|
|
490
|
+
onSubmit,
|
|
491
|
+
validation,
|
|
492
|
+
editable
|
|
493
|
+
}) => {
|
|
494
|
+
const [isEditing, setIsEditing] = (0, import_react8.useState)(false);
|
|
495
|
+
const [submitting, setSubmitting] = (0, import_react8.useState)(false);
|
|
496
|
+
const [error, setError] = (0, import_react8.useState)(null);
|
|
497
|
+
const openEditMode = () => {
|
|
498
|
+
setIsEditing(true);
|
|
499
|
+
};
|
|
500
|
+
const closeEditMode = () => {
|
|
501
|
+
setError(null);
|
|
502
|
+
setIsEditing(false);
|
|
503
|
+
};
|
|
504
|
+
const submit = async (newValue) => {
|
|
505
|
+
if (!error) {
|
|
506
|
+
setSubmitting(true);
|
|
507
|
+
try {
|
|
508
|
+
await onSubmit(newValue);
|
|
509
|
+
} finally {
|
|
510
|
+
setSubmitting(false);
|
|
511
|
+
}
|
|
491
512
|
}
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
513
|
+
closeEditMode();
|
|
514
|
+
};
|
|
515
|
+
const onChange = (event) => {
|
|
516
|
+
const { innerText: newValue } = event.target;
|
|
517
|
+
if (validation) {
|
|
518
|
+
setError(validation(newValue));
|
|
519
|
+
}
|
|
520
|
+
};
|
|
521
|
+
return /* @__PURE__ */ React15.createElement(
|
|
522
|
+
Context4.Provider,
|
|
523
|
+
{
|
|
524
|
+
value: {
|
|
525
|
+
isEditing,
|
|
526
|
+
openEditMode,
|
|
527
|
+
closeEditMode,
|
|
528
|
+
onChange,
|
|
529
|
+
value,
|
|
530
|
+
error,
|
|
531
|
+
submit,
|
|
532
|
+
editable,
|
|
533
|
+
submitting
|
|
534
|
+
}
|
|
535
|
+
},
|
|
536
|
+
children
|
|
537
|
+
);
|
|
538
|
+
};
|
|
539
|
+
var EditableField = ({ children, ...props }) => {
|
|
540
|
+
const ref = (0, import_react8.useRef)(null);
|
|
541
|
+
const { isEditing, closeEditMode, value, onChange, error, submit, editable } = useEditableField();
|
|
542
|
+
(0, import_react8.useEffect)(() => {
|
|
543
|
+
if (isEditing) {
|
|
544
|
+
ref.current?.focus();
|
|
545
|
+
selectAll();
|
|
502
546
|
}
|
|
547
|
+
}, [isEditing]);
|
|
548
|
+
const handleKeyDown = (event) => {
|
|
549
|
+
event.stopPropagation();
|
|
550
|
+
if (["Escape"].includes(event.key)) {
|
|
551
|
+
return closeEditMode();
|
|
552
|
+
}
|
|
553
|
+
if (["Enter"].includes(event.key)) {
|
|
554
|
+
event.preventDefault();
|
|
555
|
+
return submit(event.target.innerText);
|
|
556
|
+
}
|
|
557
|
+
};
|
|
558
|
+
const selectAll = () => {
|
|
559
|
+
const selection = getSelection();
|
|
560
|
+
if (!selection || !ref.current) {
|
|
561
|
+
return;
|
|
562
|
+
}
|
|
563
|
+
const range = document.createRange();
|
|
564
|
+
range.selectNodeContents(ref.current);
|
|
565
|
+
selection.removeAllRanges();
|
|
566
|
+
selection.addRange(range);
|
|
567
|
+
};
|
|
568
|
+
if (!editable) {
|
|
569
|
+
return children;
|
|
503
570
|
}
|
|
504
|
-
}
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
571
|
+
return /* @__PURE__ */ React15.createElement(import_ui9.Tooltip, { open: !!error, title: error, placement: "top" }, /* @__PURE__ */ React15.createElement("div", { onKeyDown: handleKeyDown, ...props }, /* @__PURE__ */ React15.createElement(
|
|
572
|
+
"span",
|
|
573
|
+
{
|
|
574
|
+
ref,
|
|
575
|
+
role: "textbox",
|
|
576
|
+
onInput: onChange,
|
|
577
|
+
contentEditable: isEditing,
|
|
578
|
+
suppressContentEditableWarning: true,
|
|
579
|
+
onBlur: closeEditMode
|
|
580
|
+
},
|
|
581
|
+
isEditing ? value : children
|
|
582
|
+
)));
|
|
583
|
+
};
|
|
584
|
+
var useEditableField = () => {
|
|
585
|
+
const contextValue = (0, import_react8.useContext)(Context4);
|
|
586
|
+
if (!contextValue) {
|
|
587
|
+
throw new Error("useEditableField must be used within a EditableFieldProvider");
|
|
513
588
|
}
|
|
514
|
-
|
|
589
|
+
return contextValue;
|
|
590
|
+
};
|
|
515
591
|
|
|
516
|
-
// src/components/multi-combobox
|
|
517
|
-
var
|
|
518
|
-
|
|
592
|
+
// src/components/multi-combobox.tsx
|
|
593
|
+
var React16 = __toESM(require("react"));
|
|
594
|
+
var import_react9 = require("react");
|
|
595
|
+
var import_ui10 = require("@elementor/ui");
|
|
596
|
+
function MultiCombobox({
|
|
597
|
+
actions = [],
|
|
519
598
|
selected,
|
|
520
599
|
options: options10,
|
|
521
|
-
optionsLabel,
|
|
522
600
|
onSelect,
|
|
523
|
-
onCreate,
|
|
524
601
|
...props
|
|
525
|
-
})
|
|
526
|
-
const
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
// TODO: make the group mechanism more generic, allow passing list of groups.
|
|
530
|
-
optionsLabel,
|
|
531
|
-
onSelect
|
|
532
|
-
);
|
|
533
|
-
return /* @__PURE__ */ React15.createElement(
|
|
602
|
+
}) {
|
|
603
|
+
const filter = useFilterOptions();
|
|
604
|
+
const { run, loading } = useActionRunner();
|
|
605
|
+
return /* @__PURE__ */ React16.createElement(
|
|
534
606
|
import_ui10.Autocomplete,
|
|
535
607
|
{
|
|
536
608
|
...props,
|
|
@@ -540,57 +612,94 @@ var MultiCombobox = ({
|
|
|
540
612
|
selectOnFocus: true,
|
|
541
613
|
disableClearable: true,
|
|
542
614
|
handleHomeEndKeys: true,
|
|
615
|
+
disabled: loading,
|
|
543
616
|
value: selected,
|
|
544
617
|
options: options10,
|
|
545
|
-
renderGroup,
|
|
546
|
-
renderInput: (params) => /* @__PURE__ */
|
|
547
|
-
|
|
548
|
-
|
|
618
|
+
renderGroup: (params) => /* @__PURE__ */ React16.createElement(Group, { ...params }),
|
|
619
|
+
renderInput: (params) => /* @__PURE__ */ React16.createElement(import_ui10.TextField, { ...params }),
|
|
620
|
+
onChange: (_, selectedOrInputValue, reason) => {
|
|
621
|
+
const inputValue = selectedOrInputValue.find((option) => typeof option === "string");
|
|
622
|
+
const optionsAndActions = selectedOrInputValue.filter((option) => typeof option !== "string");
|
|
549
623
|
if (reason === "createOption") {
|
|
550
|
-
const
|
|
551
|
-
|
|
624
|
+
const [firstAction] = filterActions(actions, { options: options10, inputValue: inputValue ?? "" });
|
|
625
|
+
if (firstAction) {
|
|
626
|
+
return run(firstAction.apply, firstAction.value);
|
|
627
|
+
}
|
|
552
628
|
}
|
|
553
|
-
const action =
|
|
629
|
+
const action = optionsAndActions.find((value) => isAction(value));
|
|
554
630
|
if (reason === "selectOption" && action) {
|
|
555
|
-
return
|
|
631
|
+
return run(action.apply, action.value);
|
|
556
632
|
}
|
|
557
|
-
const
|
|
558
|
-
|
|
559
|
-
optionProps.onChange([.../* @__PURE__ */ new Set([...fixedValues, ...selectedValues])]);
|
|
633
|
+
const fixedValues = options10.filter((option) => !!option.fixed);
|
|
634
|
+
onSelect?.([.../* @__PURE__ */ new Set([...optionsAndActions, ...fixedValues])]);
|
|
560
635
|
},
|
|
561
|
-
getOptionLabel: (option) =>
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
if (actionProps.is(option)) {
|
|
566
|
-
return actionProps.getLabel(option);
|
|
636
|
+
getOptionLabel: (option) => typeof option === "string" ? option : option.label,
|
|
637
|
+
getOptionKey: (option) => {
|
|
638
|
+
if (typeof option === "string") {
|
|
639
|
+
return option;
|
|
567
640
|
}
|
|
568
|
-
return
|
|
641
|
+
return option.key ?? option.value;
|
|
569
642
|
},
|
|
570
643
|
filterOptions: (optionList, params) => {
|
|
571
|
-
const
|
|
572
|
-
|
|
573
|
-
|
|
644
|
+
const selectedValues = selected.map((option) => option.value);
|
|
645
|
+
return [
|
|
646
|
+
...filterActions(actions, { options: optionList, inputValue: params.inputValue }),
|
|
647
|
+
...filter(
|
|
648
|
+
optionList.filter((option) => !selectedValues.includes(option.value)),
|
|
649
|
+
params
|
|
650
|
+
)
|
|
651
|
+
];
|
|
574
652
|
},
|
|
575
|
-
groupBy: (option) =>
|
|
653
|
+
groupBy: (option) => option.group ?? ""
|
|
576
654
|
}
|
|
577
655
|
);
|
|
656
|
+
}
|
|
657
|
+
var Group = (params) => {
|
|
658
|
+
const id = `combobox-group-${(0, import_react9.useId)().replace(/:/g, "_")}`;
|
|
659
|
+
return /* @__PURE__ */ React16.createElement(StyledGroup, { role: "group", "aria-labelledby": id }, /* @__PURE__ */ React16.createElement(StyledGroupHeader, { id }, " ", params.group), /* @__PURE__ */ React16.createElement(StyledGroupItems, { role: "listbox" }, params.children));
|
|
578
660
|
};
|
|
579
|
-
var
|
|
580
|
-
var Group = (0, import_ui10.styled)("li")`
|
|
661
|
+
var StyledGroup = (0, import_ui10.styled)("li")`
|
|
581
662
|
&:not( :last-of-type ) {
|
|
582
663
|
border-bottom: 1px solid ${({ theme }) => theme.palette.divider};
|
|
583
664
|
}
|
|
584
665
|
`;
|
|
585
|
-
var
|
|
666
|
+
var StyledGroupHeader = (0, import_ui10.styled)(import_ui10.Box)(({ theme }) => ({
|
|
586
667
|
position: "sticky",
|
|
587
668
|
top: "-8px",
|
|
588
669
|
padding: theme.spacing(1, 2),
|
|
589
670
|
color: theme.palette.text.tertiary
|
|
590
671
|
}));
|
|
591
|
-
var
|
|
672
|
+
var StyledGroupItems = (0, import_ui10.styled)("ul")`
|
|
592
673
|
padding: 0;
|
|
593
674
|
`;
|
|
675
|
+
function useFilterOptions() {
|
|
676
|
+
return (0, import_react9.useState)(() => (0, import_ui10.createFilterOptions)())[0];
|
|
677
|
+
}
|
|
678
|
+
function useActionRunner() {
|
|
679
|
+
const [loading, setLoading] = (0, import_react9.useState)(false);
|
|
680
|
+
const run = async (apply, value) => {
|
|
681
|
+
setLoading(true);
|
|
682
|
+
try {
|
|
683
|
+
await apply(value);
|
|
684
|
+
} catch {
|
|
685
|
+
}
|
|
686
|
+
setLoading(false);
|
|
687
|
+
};
|
|
688
|
+
return { run, loading };
|
|
689
|
+
}
|
|
690
|
+
function filterActions(actions, { options: options10, inputValue }) {
|
|
691
|
+
return actions.filter((action) => action.condition(options10, inputValue)).map((action, index) => ({
|
|
692
|
+
label: action.label(inputValue),
|
|
693
|
+
value: inputValue,
|
|
694
|
+
group: action.group,
|
|
695
|
+
apply: action.apply,
|
|
696
|
+
condition: action.condition,
|
|
697
|
+
key: index.toString()
|
|
698
|
+
}));
|
|
699
|
+
}
|
|
700
|
+
function isAction(option) {
|
|
701
|
+
return "apply" in option && "condition" in option;
|
|
702
|
+
}
|
|
594
703
|
|
|
595
704
|
// src/components/css-class-selector.tsx
|
|
596
705
|
var ID = "elementor-css-class-selector";
|
|
@@ -604,13 +713,14 @@ var EMPTY_OPTION = {
|
|
|
604
713
|
};
|
|
605
714
|
function CssClassSelector() {
|
|
606
715
|
const options10 = useOptions();
|
|
607
|
-
const
|
|
716
|
+
const { value: appliedIds, setValue: setAppliedIds, pushValue: pushAppliedId } = useAppliedClassesIds();
|
|
608
717
|
const { id: activeId, setId: setActiveId } = useStyle();
|
|
718
|
+
const actions = useCreateActions({ pushAppliedId, setActiveId });
|
|
609
719
|
const handleApply = useHandleApply(appliedIds, setAppliedIds);
|
|
610
720
|
const handleActivate = ({ value }) => setActiveId(value);
|
|
611
721
|
const applied = useAppliedOptions(options10, appliedIds);
|
|
612
722
|
const active = applied.find((option) => option.value === activeId) ?? EMPTY_OPTION;
|
|
613
|
-
return /* @__PURE__ */
|
|
723
|
+
return /* @__PURE__ */ React17.createElement(import_ui11.Stack, { gap: 1, p: 2 }, /* @__PURE__ */ React17.createElement(import_ui11.Typography, { component: "label", variant: "caption", htmlFor: ID }, (0, import_i18n2.__)("CSS Classes", "elementor")), /* @__PURE__ */ React17.createElement(
|
|
614
724
|
MultiCombobox,
|
|
615
725
|
{
|
|
616
726
|
id: ID,
|
|
@@ -619,73 +729,173 @@ function CssClassSelector() {
|
|
|
619
729
|
selected: applied,
|
|
620
730
|
onSelect: handleApply,
|
|
621
731
|
limitTags: TAGS_LIMIT,
|
|
622
|
-
|
|
732
|
+
actions,
|
|
733
|
+
getLimitTagsText: (more) => /* @__PURE__ */ React17.createElement(import_ui11.Chip, { size: "tiny", variant: "standard", label: `+${more}`, clickable: true }),
|
|
623
734
|
renderTags: (values, getTagProps) => values.map((value, index) => {
|
|
624
735
|
const chipProps = getTagProps({ index });
|
|
625
736
|
const isActive = value.value === active?.value;
|
|
626
|
-
|
|
627
|
-
|
|
737
|
+
const renameLabel = (newLabel) => {
|
|
738
|
+
return updateClassByProvider(value.provider, { label: newLabel, id: value.value });
|
|
739
|
+
};
|
|
740
|
+
return /* @__PURE__ */ React17.createElement(
|
|
741
|
+
EditableFieldProvider,
|
|
628
742
|
{
|
|
629
743
|
key: chipProps.key,
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
}
|
|
744
|
+
value: value.label,
|
|
745
|
+
onSubmit: renameLabel,
|
|
746
|
+
editable: value.provider !== import_editor_styles_repository.ELEMENTS_STYLES_PROVIDER_KEY,
|
|
747
|
+
validation: (newLabel) => renameValidation(
|
|
748
|
+
newLabel,
|
|
749
|
+
options10.filter((option) => option.value !== value.value)
|
|
750
|
+
)
|
|
751
|
+
},
|
|
752
|
+
/* @__PURE__ */ React17.createElement(
|
|
753
|
+
CssClassItem,
|
|
754
|
+
{
|
|
755
|
+
label: value.label,
|
|
756
|
+
id: value.value,
|
|
757
|
+
isActive,
|
|
758
|
+
isGlobal: value.color === "global",
|
|
759
|
+
color: isActive && value.color ? value.color : "default",
|
|
760
|
+
chipProps,
|
|
761
|
+
onClickActive: () => handleActivate(value)
|
|
762
|
+
}
|
|
763
|
+
)
|
|
638
764
|
);
|
|
639
765
|
})
|
|
640
766
|
}
|
|
641
767
|
));
|
|
642
768
|
}
|
|
643
|
-
|
|
769
|
+
var CHIP_SIZE = "tiny";
|
|
770
|
+
function CssClassItem({
|
|
771
|
+
id,
|
|
772
|
+
label,
|
|
773
|
+
isActive,
|
|
774
|
+
isGlobal,
|
|
775
|
+
color: colorProp,
|
|
776
|
+
chipProps,
|
|
777
|
+
onClickActive
|
|
778
|
+
}) {
|
|
644
779
|
const { meta } = useStyle();
|
|
645
|
-
const popupId = (0,
|
|
780
|
+
const popupId = (0, import_react10.useId)().replace(/:/g, "_");
|
|
646
781
|
const popupState = (0, import_ui11.usePopupState)({ variant: "popover", popupId });
|
|
647
|
-
const chipRef = (0,
|
|
782
|
+
const chipRef = (0, import_react10.useRef)(null);
|
|
648
783
|
const { onDelete, ...chipGroupProps } = chipProps;
|
|
649
|
-
|
|
784
|
+
const { isEditing, openEditMode, error, submitting } = useEditableField();
|
|
785
|
+
const color = error ? "error" : colorProp;
|
|
786
|
+
return /* @__PURE__ */ React17.createElement(CssClassItemProvider, { styleId: id, isActive, isGlobal }, /* @__PURE__ */ React17.createElement(import_ui11.UnstableChipGroup, { ref: chipRef, ...chipGroupProps, "aria-label": `Edit ${label}`, role: "group" }, /* @__PURE__ */ React17.createElement(
|
|
650
787
|
import_ui11.Chip,
|
|
651
788
|
{
|
|
652
|
-
|
|
653
|
-
size:
|
|
654
|
-
label: /* @__PURE__ */
|
|
789
|
+
disabled: submitting,
|
|
790
|
+
size: CHIP_SIZE,
|
|
791
|
+
label: /* @__PURE__ */ React17.createElement(
|
|
792
|
+
EditableField,
|
|
793
|
+
{
|
|
794
|
+
onDoubleClick: () => {
|
|
795
|
+
if (!isActive) {
|
|
796
|
+
openEditMode();
|
|
797
|
+
}
|
|
798
|
+
},
|
|
799
|
+
onClick: () => {
|
|
800
|
+
if (isActive) {
|
|
801
|
+
openEditMode();
|
|
802
|
+
}
|
|
803
|
+
}
|
|
804
|
+
},
|
|
805
|
+
/* @__PURE__ */ React17.createElement(ConditionalTooltipWrapper, { maxWidth: "10ch", title: label })
|
|
806
|
+
),
|
|
655
807
|
variant: isActive && !meta.state ? "filled" : "standard",
|
|
656
808
|
color,
|
|
657
809
|
onClick: () => onClickActive(id),
|
|
658
|
-
"aria-pressed": isActive
|
|
810
|
+
"aria-pressed": isActive,
|
|
811
|
+
sx: {
|
|
812
|
+
"&.Mui-focusVisible": {
|
|
813
|
+
boxShadow: "none !important"
|
|
814
|
+
}
|
|
815
|
+
}
|
|
659
816
|
}
|
|
660
|
-
), /* @__PURE__ */
|
|
817
|
+
), !isEditing && /* @__PURE__ */ React17.createElement(
|
|
661
818
|
import_ui11.Chip,
|
|
662
819
|
{
|
|
663
|
-
|
|
664
|
-
size:
|
|
665
|
-
label: /* @__PURE__ */
|
|
820
|
+
disabled: submitting,
|
|
821
|
+
size: CHIP_SIZE,
|
|
822
|
+
label: /* @__PURE__ */ React17.createElement(import_ui11.Stack, { direction: "row", gap: 0.5, alignItems: "center" }, isActive && meta.state && /* @__PURE__ */ React17.createElement(import_ui11.Typography, { variant: "inherit" }, meta.state), /* @__PURE__ */ React17.createElement(import_icons4.DotsVerticalIcon, { fontSize: "inherit" })),
|
|
666
823
|
variant: "filled",
|
|
667
824
|
color,
|
|
668
825
|
...(0, import_ui11.bindTrigger)(popupState),
|
|
669
826
|
"aria-label": (0, import_i18n2.__)("Open CSS Class Menu", "elementor")
|
|
670
827
|
}
|
|
671
|
-
)), /* @__PURE__ */
|
|
828
|
+
)), /* @__PURE__ */ React17.createElement(CssClassMenu, { popupState, containerRef: chipRef }));
|
|
672
829
|
}
|
|
830
|
+
var updateClassByProvider = (provider, data) => {
|
|
831
|
+
const providerInstance = import_editor_styles_repository.stylesRepository.getProviderByKey(provider);
|
|
832
|
+
if (!providerInstance) {
|
|
833
|
+
return;
|
|
834
|
+
}
|
|
835
|
+
return providerInstance.actions.update?.(data);
|
|
836
|
+
};
|
|
837
|
+
var VALID_SELECTOR_REGEX = /^[a-zA-Z0-9_-]+$/;
|
|
838
|
+
var renameValidation = (newLabel, options10) => {
|
|
839
|
+
if (isNameExist(newLabel, options10)) {
|
|
840
|
+
return (0, import_i18n2.__)("Existing name", "elementor");
|
|
841
|
+
}
|
|
842
|
+
if (isCharactersNotSupported(newLabel)) {
|
|
843
|
+
return (0, import_i18n2.__)("Format is not valid", "elementor");
|
|
844
|
+
}
|
|
845
|
+
};
|
|
846
|
+
var isNameExist = (newLabel, options10) => {
|
|
847
|
+
if (!options10?.length) {
|
|
848
|
+
return false;
|
|
849
|
+
}
|
|
850
|
+
return options10.some((option) => option.label.toLowerCase() === newLabel.toLowerCase());
|
|
851
|
+
};
|
|
852
|
+
var isCharactersNotSupported = (newLabel) => !VALID_SELECTOR_REGEX.test(newLabel);
|
|
673
853
|
function useOptions() {
|
|
674
854
|
const { element } = useElement();
|
|
675
|
-
return (0, import_editor_styles_repository.useAllStylesByProvider)({ elementId: element.id }).flatMap(
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
855
|
+
return (0, import_editor_styles_repository.useAllStylesByProvider)({ elementId: element.id }).flatMap(
|
|
856
|
+
([provider, styleDefs]) => {
|
|
857
|
+
const isElements = provider.key === import_editor_styles_repository.ELEMENTS_STYLES_PROVIDER_KEY;
|
|
858
|
+
if (isElements && styleDefs.length === 0) {
|
|
859
|
+
return [EMPTY_OPTION];
|
|
860
|
+
}
|
|
861
|
+
return styleDefs.map((styleDef) => {
|
|
862
|
+
return {
|
|
863
|
+
label: styleDef.label,
|
|
864
|
+
value: styleDef.id,
|
|
865
|
+
fixed: isElements,
|
|
866
|
+
color: isElements ? "primary" : "global",
|
|
867
|
+
provider: provider.key,
|
|
868
|
+
group: provider.labels?.plural
|
|
869
|
+
};
|
|
870
|
+
});
|
|
679
871
|
}
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
872
|
+
);
|
|
873
|
+
}
|
|
874
|
+
function useCreateActions({
|
|
875
|
+
pushAppliedId,
|
|
876
|
+
setActiveId
|
|
877
|
+
}) {
|
|
878
|
+
return (0, import_editor_styles_repository.useCreateActionsByProvider)().map(([provider, create]) => {
|
|
879
|
+
return {
|
|
880
|
+
// translators: %s is the label of the new class.
|
|
881
|
+
label: (value) => (0, import_i18n2.__)('Create new "%s"', "elementor").replace("%s", value),
|
|
882
|
+
apply: async (value) => {
|
|
883
|
+
const created = await create({ label: value });
|
|
884
|
+
if (!created) {
|
|
885
|
+
return;
|
|
886
|
+
}
|
|
887
|
+
pushAppliedId(created.id);
|
|
888
|
+
setActiveId(created.id);
|
|
889
|
+
},
|
|
890
|
+
condition: (options10, inputValue) => {
|
|
891
|
+
const isUniqueLabel = !options10.some(
|
|
892
|
+
(option) => option.label.toLowerCase() === inputValue.toLowerCase()
|
|
893
|
+
);
|
|
894
|
+
return !!inputValue && isUniqueLabel;
|
|
895
|
+
},
|
|
896
|
+
// translators: %s is the singular label of css class provider (e.g "Global CSS Class").
|
|
897
|
+
group: (0, import_i18n2.__)("Create New %s", "elementor").replace("%s", provider.labels?.singular ?? "")
|
|
898
|
+
};
|
|
689
899
|
});
|
|
690
900
|
}
|
|
691
901
|
function useAppliedOptions(options10, appliedIds) {
|
|
@@ -710,7 +920,15 @@ function useAppliedClassesIds() {
|
|
|
710
920
|
}
|
|
711
921
|
});
|
|
712
922
|
};
|
|
713
|
-
|
|
923
|
+
const pushValue = (id) => {
|
|
924
|
+
const ids = (0, import_editor_elements2.getElementSetting)(element.id, currentClassesProp)?.value || [];
|
|
925
|
+
setValue([...ids, id]);
|
|
926
|
+
};
|
|
927
|
+
return {
|
|
928
|
+
value,
|
|
929
|
+
setValue,
|
|
930
|
+
pushValue
|
|
931
|
+
};
|
|
714
932
|
}
|
|
715
933
|
function useHandleApply(appliedIds, setAppliedIds) {
|
|
716
934
|
const { id: activeId, setId: setActiveId } = useStyle();
|
|
@@ -734,12 +952,13 @@ function useHandleApply(appliedIds, setAppliedIds) {
|
|
|
734
952
|
}
|
|
735
953
|
|
|
736
954
|
// src/components/style-sections/background-section/background-section.tsx
|
|
737
|
-
var
|
|
955
|
+
var React19 = __toESM(require("react"));
|
|
738
956
|
var import_editor_controls6 = require("@elementor/editor-controls");
|
|
739
957
|
|
|
740
958
|
// src/controls-registry/styles-field.tsx
|
|
741
|
-
var
|
|
959
|
+
var React18 = __toESM(require("react"));
|
|
742
960
|
var import_editor_controls5 = require("@elementor/editor-controls");
|
|
961
|
+
var import_editor_styles = require("@elementor/editor-styles");
|
|
743
962
|
|
|
744
963
|
// src/hooks/use-styles-fields.ts
|
|
745
964
|
var import_editor_elements3 = require("@elementor/editor-elements");
|
|
@@ -782,30 +1001,36 @@ function useStylesField(propName) {
|
|
|
782
1001
|
// src/controls-registry/styles-field.tsx
|
|
783
1002
|
var StylesField = ({ bind, children }) => {
|
|
784
1003
|
const [value, setValue] = useStylesField(bind);
|
|
785
|
-
|
|
1004
|
+
const stylesSchema = (0, import_editor_styles.getStylesSchema)();
|
|
1005
|
+
const propType = createTopLevelOjectType({ schema: stylesSchema });
|
|
1006
|
+
const values = { [bind]: value };
|
|
1007
|
+
const setValues = (newValue) => {
|
|
1008
|
+
setValue(newValue[bind]);
|
|
1009
|
+
};
|
|
1010
|
+
return /* @__PURE__ */ React18.createElement(import_editor_controls5.PropProvider, { propType, value: values, setValue: setValues }, /* @__PURE__ */ React18.createElement(import_editor_controls5.PropKeyProvider, { bind }, children));
|
|
786
1011
|
};
|
|
787
1012
|
|
|
788
1013
|
// src/components/style-sections/background-section/background-section.tsx
|
|
789
1014
|
var BackgroundSection = () => {
|
|
790
|
-
return /* @__PURE__ */
|
|
1015
|
+
return /* @__PURE__ */ React19.createElement(StylesField, { bind: "background" }, /* @__PURE__ */ React19.createElement(import_editor_controls6.BackgroundControl, null));
|
|
791
1016
|
};
|
|
792
1017
|
|
|
793
1018
|
// src/components/style-sections/border-section/border-section.tsx
|
|
794
|
-
var
|
|
1019
|
+
var React26 = __toESM(require("react"));
|
|
795
1020
|
var import_ui15 = require("@elementor/ui");
|
|
796
1021
|
|
|
797
1022
|
// src/components/style-sections/border-section/border-field.tsx
|
|
798
|
-
var
|
|
1023
|
+
var React24 = __toESM(require("react"));
|
|
799
1024
|
var import_i18n7 = require("@wordpress/i18n");
|
|
800
1025
|
|
|
801
1026
|
// src/components/add-or-remove-content.tsx
|
|
802
|
-
var
|
|
1027
|
+
var React20 = __toESM(require("react"));
|
|
803
1028
|
var import_editor_controls7 = require("@elementor/editor-controls");
|
|
804
1029
|
var import_icons5 = require("@elementor/icons");
|
|
805
1030
|
var import_ui12 = require("@elementor/ui");
|
|
806
1031
|
var SIZE2 = "tiny";
|
|
807
1032
|
var AddOrRemoveContent = ({ isAdded, label, onAdd, onRemove, children }) => {
|
|
808
|
-
return /* @__PURE__ */
|
|
1033
|
+
return /* @__PURE__ */ React20.createElement(import_ui12.Stack, { gap: 1.5 }, /* @__PURE__ */ React20.createElement(
|
|
809
1034
|
import_ui12.Stack,
|
|
810
1035
|
{
|
|
811
1036
|
direction: "row",
|
|
@@ -814,22 +1039,22 @@ var AddOrRemoveContent = ({ isAdded, label, onAdd, onRemove, children }) => {
|
|
|
814
1039
|
alignItems: "center"
|
|
815
1040
|
}
|
|
816
1041
|
},
|
|
817
|
-
/* @__PURE__ */
|
|
818
|
-
isAdded ? /* @__PURE__ */
|
|
819
|
-
), /* @__PURE__ */
|
|
1042
|
+
/* @__PURE__ */ React20.createElement(import_editor_controls7.ControlLabel, null, label),
|
|
1043
|
+
isAdded ? /* @__PURE__ */ React20.createElement(import_ui12.IconButton, { size: SIZE2, onClick: onRemove, "aria-label": "Remove" }, /* @__PURE__ */ React20.createElement(import_icons5.MinusIcon, { fontSize: SIZE2 })) : /* @__PURE__ */ React20.createElement(import_ui12.IconButton, { size: SIZE2, onClick: onAdd, "aria-label": "Add" }, /* @__PURE__ */ React20.createElement(import_icons5.PlusIcon, { fontSize: SIZE2 }))
|
|
1044
|
+
), /* @__PURE__ */ React20.createElement(import_ui12.Collapse, { in: isAdded, unmountOnExit: true }, /* @__PURE__ */ React20.createElement(import_ui12.Stack, { gap: 1.5 }, children)));
|
|
820
1045
|
};
|
|
821
1046
|
|
|
822
1047
|
// src/components/style-sections/border-section/border-color-field.tsx
|
|
823
|
-
var
|
|
1048
|
+
var React21 = __toESM(require("react"));
|
|
824
1049
|
var import_editor_controls8 = require("@elementor/editor-controls");
|
|
825
1050
|
var import_ui13 = require("@elementor/ui");
|
|
826
1051
|
var import_i18n4 = require("@wordpress/i18n");
|
|
827
1052
|
var BorderColorField = () => {
|
|
828
|
-
return /* @__PURE__ */
|
|
1053
|
+
return /* @__PURE__ */ React21.createElement(StylesField, { bind: "border-color" }, /* @__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_controls8.ControlLabel, null, (0, import_i18n4.__)("Border Color", "elementor"))), /* @__PURE__ */ React21.createElement(import_ui13.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React21.createElement(import_editor_controls8.ColorControl, null))));
|
|
829
1054
|
};
|
|
830
1055
|
|
|
831
1056
|
// src/components/style-sections/border-section/border-style-field.tsx
|
|
832
|
-
var
|
|
1057
|
+
var React22 = __toESM(require("react"));
|
|
833
1058
|
var import_editor_controls9 = require("@elementor/editor-controls");
|
|
834
1059
|
var import_ui14 = require("@elementor/ui");
|
|
835
1060
|
var import_i18n5 = require("@wordpress/i18n");
|
|
@@ -845,11 +1070,11 @@ var borderStyles = [
|
|
|
845
1070
|
{ value: "outset", label: (0, import_i18n5.__)("Outset", "elementor") }
|
|
846
1071
|
];
|
|
847
1072
|
var BorderStyleField = () => {
|
|
848
|
-
return /* @__PURE__ */
|
|
1073
|
+
return /* @__PURE__ */ React22.createElement(StylesField, { bind: "border-style" }, /* @__PURE__ */ React22.createElement(import_ui14.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React22.createElement(import_ui14.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React22.createElement(import_editor_controls9.ControlLabel, null, (0, import_i18n5.__)("Border Type", "elementor"))), /* @__PURE__ */ React22.createElement(import_ui14.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React22.createElement(import_editor_controls9.SelectControl, { options: borderStyles }))));
|
|
849
1074
|
};
|
|
850
1075
|
|
|
851
1076
|
// src/components/style-sections/border-section/border-width-field.tsx
|
|
852
|
-
var
|
|
1077
|
+
var React23 = __toESM(require("react"));
|
|
853
1078
|
var import_editor_controls10 = require("@elementor/editor-controls");
|
|
854
1079
|
var import_editor_props2 = require("@elementor/editor-props");
|
|
855
1080
|
var import_icons6 = require("@elementor/icons");
|
|
@@ -857,61 +1082,57 @@ var import_i18n6 = require("@wordpress/i18n");
|
|
|
857
1082
|
var edges = [
|
|
858
1083
|
{
|
|
859
1084
|
label: (0, import_i18n6.__)("Top", "elementor"),
|
|
860
|
-
icon: /* @__PURE__ */
|
|
1085
|
+
icon: /* @__PURE__ */ React23.createElement(import_icons6.SideTopIcon, { fontSize: "tiny" }),
|
|
861
1086
|
bind: "top"
|
|
862
1087
|
},
|
|
863
1088
|
{
|
|
864
1089
|
label: (0, import_i18n6.__)("Right", "elementor"),
|
|
865
|
-
icon: /* @__PURE__ */
|
|
1090
|
+
icon: /* @__PURE__ */ React23.createElement(import_icons6.SideRightIcon, { fontSize: "tiny" }),
|
|
866
1091
|
bind: "right"
|
|
867
1092
|
},
|
|
868
1093
|
{
|
|
869
1094
|
label: (0, import_i18n6.__)("Bottom", "elementor"),
|
|
870
|
-
icon: /* @__PURE__ */
|
|
1095
|
+
icon: /* @__PURE__ */ React23.createElement(import_icons6.SideBottomIcon, { fontSize: "tiny" }),
|
|
871
1096
|
bind: "bottom"
|
|
872
1097
|
},
|
|
873
1098
|
{
|
|
874
1099
|
label: (0, import_i18n6.__)("Left", "elementor"),
|
|
875
|
-
icon: /* @__PURE__ */
|
|
1100
|
+
icon: /* @__PURE__ */ React23.createElement(import_icons6.SideLeftIcon, { fontSize: "tiny" }),
|
|
876
1101
|
bind: "left"
|
|
877
1102
|
}
|
|
878
1103
|
];
|
|
879
1104
|
var BorderWidthField = () => {
|
|
880
|
-
return /* @__PURE__ */
|
|
1105
|
+
return /* @__PURE__ */ React23.createElement(StylesField, { bind: "border-width" }, /* @__PURE__ */ React23.createElement(
|
|
881
1106
|
import_editor_controls10.EqualUnequalSizesControl,
|
|
882
1107
|
{
|
|
883
1108
|
items: edges,
|
|
884
1109
|
label: (0, import_i18n6.__)("Border Width", "elementor"),
|
|
885
|
-
icon: /* @__PURE__ */
|
|
1110
|
+
icon: /* @__PURE__ */ React23.createElement(import_icons6.SideAllIcon, { fontSize: "tiny" }),
|
|
886
1111
|
multiSizePropTypeUtil: import_editor_props2.borderWidthPropTypeUtil
|
|
887
1112
|
}
|
|
888
1113
|
));
|
|
889
1114
|
};
|
|
890
1115
|
|
|
891
1116
|
// src/components/style-sections/border-section/border-field.tsx
|
|
892
|
-
var
|
|
893
|
-
|
|
894
|
-
$$type: "
|
|
895
|
-
|
|
1117
|
+
var initialBorder = {
|
|
1118
|
+
"border-width": { $$type: "size", value: { size: 1, unit: "px" } },
|
|
1119
|
+
"border-color": { $$type: "color", value: "#000000" },
|
|
1120
|
+
"border-style": { $$type: "string", value: "solid" }
|
|
896
1121
|
};
|
|
897
|
-
var initialBorderColor = { $$type: "color", value: "#000000" };
|
|
898
|
-
var initialBorderStyle = "solid";
|
|
899
1122
|
var BorderField = () => {
|
|
900
|
-
const [
|
|
901
|
-
const [borderColor, setBorderColor] = useStylesField("border-color");
|
|
902
|
-
const [borderStyle, setBorderStyle] = useStylesField("border-style");
|
|
1123
|
+
const [border, setBorder] = useStylesFields(Object.keys(initialBorder));
|
|
903
1124
|
const addBorder = () => {
|
|
904
|
-
|
|
905
|
-
setBorderColor(initialBorderColor);
|
|
906
|
-
setBorderStyle(initialBorderStyle);
|
|
1125
|
+
setBorder(initialBorder);
|
|
907
1126
|
};
|
|
908
1127
|
const removeBorder = () => {
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
1128
|
+
setBorder({
|
|
1129
|
+
"border-width": null,
|
|
1130
|
+
"border-color": null,
|
|
1131
|
+
"border-style": null
|
|
1132
|
+
});
|
|
912
1133
|
};
|
|
913
|
-
const hasBorder =
|
|
914
|
-
return /* @__PURE__ */
|
|
1134
|
+
const hasBorder = Object.values(border ?? {}).some(Boolean);
|
|
1135
|
+
return /* @__PURE__ */ React24.createElement(
|
|
915
1136
|
AddOrRemoveContent,
|
|
916
1137
|
{
|
|
917
1138
|
label: (0, import_i18n7.__)("Border", "elementor"),
|
|
@@ -919,14 +1140,14 @@ var BorderField = () => {
|
|
|
919
1140
|
onAdd: addBorder,
|
|
920
1141
|
onRemove: removeBorder
|
|
921
1142
|
},
|
|
922
|
-
/* @__PURE__ */
|
|
923
|
-
/* @__PURE__ */
|
|
924
|
-
/* @__PURE__ */
|
|
1143
|
+
/* @__PURE__ */ React24.createElement(BorderWidthField, null),
|
|
1144
|
+
/* @__PURE__ */ React24.createElement(BorderColorField, null),
|
|
1145
|
+
/* @__PURE__ */ React24.createElement(BorderStyleField, null)
|
|
925
1146
|
);
|
|
926
1147
|
};
|
|
927
1148
|
|
|
928
1149
|
// src/components/style-sections/border-section/border-radius-field.tsx
|
|
929
|
-
var
|
|
1150
|
+
var React25 = __toESM(require("react"));
|
|
930
1151
|
var import_editor_controls11 = require("@elementor/editor-controls");
|
|
931
1152
|
var import_editor_props3 = require("@elementor/editor-props");
|
|
932
1153
|
var import_icons7 = require("@elementor/icons");
|
|
@@ -934,50 +1155,50 @@ var import_i18n8 = require("@wordpress/i18n");
|
|
|
934
1155
|
var corners = [
|
|
935
1156
|
{
|
|
936
1157
|
label: (0, import_i18n8.__)("Top Left", "elementor"),
|
|
937
|
-
icon: /* @__PURE__ */
|
|
1158
|
+
icon: /* @__PURE__ */ React25.createElement(import_icons7.RadiusTopLeftIcon, { fontSize: "tiny" }),
|
|
938
1159
|
bind: "top-left"
|
|
939
1160
|
},
|
|
940
1161
|
{
|
|
941
1162
|
label: (0, import_i18n8.__)("Top Right", "elementor"),
|
|
942
|
-
icon: /* @__PURE__ */
|
|
1163
|
+
icon: /* @__PURE__ */ React25.createElement(import_icons7.RadiusTopRightIcon, { fontSize: "tiny" }),
|
|
943
1164
|
bind: "top-right"
|
|
944
1165
|
},
|
|
945
1166
|
{
|
|
946
1167
|
label: (0, import_i18n8.__)("Bottom Right", "elementor"),
|
|
947
|
-
icon: /* @__PURE__ */
|
|
1168
|
+
icon: /* @__PURE__ */ React25.createElement(import_icons7.RadiusBottomRightIcon, { fontSize: "tiny" }),
|
|
948
1169
|
bind: "bottom-right"
|
|
949
1170
|
},
|
|
950
1171
|
{
|
|
951
1172
|
label: (0, import_i18n8.__)("Bottom Left", "elementor"),
|
|
952
|
-
icon: /* @__PURE__ */
|
|
1173
|
+
icon: /* @__PURE__ */ React25.createElement(import_icons7.RadiusBottomLeftIcon, { fontSize: "tiny" }),
|
|
953
1174
|
bind: "bottom-left"
|
|
954
1175
|
}
|
|
955
1176
|
];
|
|
956
1177
|
var BorderRadiusField = () => {
|
|
957
|
-
return /* @__PURE__ */
|
|
1178
|
+
return /* @__PURE__ */ React25.createElement(StylesField, { bind: "border-radius" }, /* @__PURE__ */ React25.createElement(
|
|
958
1179
|
import_editor_controls11.EqualUnequalSizesControl,
|
|
959
1180
|
{
|
|
960
1181
|
items: corners,
|
|
961
1182
|
label: (0, import_i18n8.__)("Border Radius", "elementor"),
|
|
962
|
-
icon: /* @__PURE__ */
|
|
1183
|
+
icon: /* @__PURE__ */ React25.createElement(import_icons7.BorderCornersIcon, { fontSize: "tiny" }),
|
|
963
1184
|
multiSizePropTypeUtil: import_editor_props3.borderRadiusPropTypeUtil
|
|
964
1185
|
}
|
|
965
1186
|
));
|
|
966
1187
|
};
|
|
967
1188
|
|
|
968
1189
|
// src/components/style-sections/border-section/border-section.tsx
|
|
969
|
-
var BorderSection = () => /* @__PURE__ */
|
|
1190
|
+
var BorderSection = () => /* @__PURE__ */ React26.createElement(import_ui15.Stack, { gap: 1.5 }, /* @__PURE__ */ React26.createElement(BorderRadiusField, null), /* @__PURE__ */ React26.createElement(import_ui15.Divider, null), /* @__PURE__ */ React26.createElement(BorderField, null));
|
|
970
1191
|
|
|
971
1192
|
// src/components/style-sections/effects-section/effects-section.tsx
|
|
972
|
-
var
|
|
1193
|
+
var React27 = __toESM(require("react"));
|
|
973
1194
|
var import_editor_controls12 = require("@elementor/editor-controls");
|
|
974
1195
|
var import_ui16 = require("@elementor/ui");
|
|
975
1196
|
var EffectsSection = () => {
|
|
976
|
-
return /* @__PURE__ */
|
|
1197
|
+
return /* @__PURE__ */ React27.createElement(import_ui16.Stack, { gap: 1.5 }, /* @__PURE__ */ React27.createElement(StylesField, { bind: "box-shadow" }, /* @__PURE__ */ React27.createElement(import_editor_controls12.BoxShadowRepeaterControl, null)));
|
|
977
1198
|
};
|
|
978
1199
|
|
|
979
1200
|
// src/components/style-sections/layout-section/layout-section.tsx
|
|
980
|
-
var
|
|
1201
|
+
var React38 = __toESM(require("react"));
|
|
981
1202
|
var import_editor_controls22 = require("@elementor/editor-controls");
|
|
982
1203
|
var import_editor_elements4 = require("@elementor/editor-elements");
|
|
983
1204
|
var import_ui28 = require("@elementor/ui");
|
|
@@ -1009,7 +1230,7 @@ function useComputedStyle(elementId) {
|
|
|
1009
1230
|
}
|
|
1010
1231
|
|
|
1011
1232
|
// src/components/style-sections/layout-section/align-items-field.tsx
|
|
1012
|
-
var
|
|
1233
|
+
var React29 = __toESM(require("react"));
|
|
1013
1234
|
var import_editor_controls13 = require("@elementor/editor-controls");
|
|
1014
1235
|
var import_icons8 = require("@elementor/icons");
|
|
1015
1236
|
var import_ui19 = require("@elementor/ui");
|
|
@@ -1024,8 +1245,8 @@ function useDirection() {
|
|
|
1024
1245
|
}
|
|
1025
1246
|
|
|
1026
1247
|
// src/components/style-sections/layout-section/utils/rotated-icon.tsx
|
|
1027
|
-
var
|
|
1028
|
-
var
|
|
1248
|
+
var React28 = __toESM(require("react"));
|
|
1249
|
+
var import_react11 = require("react");
|
|
1029
1250
|
var import_ui18 = require("@elementor/ui");
|
|
1030
1251
|
var CLOCKWISE_ANGLES = {
|
|
1031
1252
|
row: 0,
|
|
@@ -1040,9 +1261,9 @@ var COUNTER_CLOCKWISE_ANGLES = {
|
|
|
1040
1261
|
"column-reverse": -270
|
|
1041
1262
|
};
|
|
1042
1263
|
var RotatedIcon = ({ icon: Icon, size, isClockwise = true, offset = 0 }) => {
|
|
1043
|
-
const rotate = (0,
|
|
1264
|
+
const rotate = (0, import_react11.useRef)(useGetTargetAngle(isClockwise, offset));
|
|
1044
1265
|
rotate.current = useGetTargetAngle(isClockwise, offset, rotate);
|
|
1045
|
-
return /* @__PURE__ */
|
|
1266
|
+
return /* @__PURE__ */ React28.createElement(Icon, { fontSize: size, sx: { transition: ".3s", rotate: `${rotate.current}deg` } });
|
|
1046
1267
|
};
|
|
1047
1268
|
var useGetTargetAngle = (isClockwise, offset, existingRef) => {
|
|
1048
1269
|
const [direction] = useStylesField("flex-direction");
|
|
@@ -1067,35 +1288,35 @@ var options = [
|
|
|
1067
1288
|
{
|
|
1068
1289
|
value: "start",
|
|
1069
1290
|
label: (0, import_i18n9.__)("Start", "elementor"),
|
|
1070
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1291
|
+
renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon, { icon: StartIcon, size, ...iconProps }),
|
|
1071
1292
|
showTooltip: true
|
|
1072
1293
|
},
|
|
1073
1294
|
{
|
|
1074
1295
|
value: "center",
|
|
1075
1296
|
label: (0, import_i18n9.__)("Center", "elementor"),
|
|
1076
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1297
|
+
renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon, { icon: import_icons8.LayoutAlignCenterIcon, size, ...iconProps }),
|
|
1077
1298
|
showTooltip: true
|
|
1078
1299
|
},
|
|
1079
1300
|
{
|
|
1080
1301
|
value: "end",
|
|
1081
1302
|
label: (0, import_i18n9.__)("End", "elementor"),
|
|
1082
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1303
|
+
renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon, { icon: EndIcon, size, ...iconProps }),
|
|
1083
1304
|
showTooltip: true
|
|
1084
1305
|
},
|
|
1085
1306
|
{
|
|
1086
1307
|
value: "stretch",
|
|
1087
1308
|
label: (0, import_i18n9.__)("Stretch", "elementor"),
|
|
1088
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1309
|
+
renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon, { icon: import_icons8.LayoutDistributeVerticalIcon, size, ...iconProps }),
|
|
1089
1310
|
showTooltip: true
|
|
1090
1311
|
}
|
|
1091
1312
|
];
|
|
1092
1313
|
var AlignItemsField = () => {
|
|
1093
1314
|
const { isSiteRtl } = useDirection();
|
|
1094
|
-
return /* @__PURE__ */
|
|
1315
|
+
return /* @__PURE__ */ React29.createElement(import_ui19.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React29.createElement(import_ui19.ThemeProvider, null, /* @__PURE__ */ React29.createElement(StylesField, { bind: "align-items" }, /* @__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_controls13.ControlLabel, null, (0, import_i18n9.__)("Align items", "elementor"))), /* @__PURE__ */ React29.createElement(import_ui19.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React29.createElement(import_editor_controls13.ToggleControl, { options }))))));
|
|
1095
1316
|
};
|
|
1096
1317
|
|
|
1097
1318
|
// src/components/style-sections/layout-section/align-self-child-field.tsx
|
|
1098
|
-
var
|
|
1319
|
+
var React30 = __toESM(require("react"));
|
|
1099
1320
|
var import_editor_controls14 = require("@elementor/editor-controls");
|
|
1100
1321
|
var import_icons9 = require("@elementor/icons");
|
|
1101
1322
|
var import_ui20 = require("@elementor/ui");
|
|
@@ -1110,35 +1331,35 @@ var options2 = [
|
|
|
1110
1331
|
{
|
|
1111
1332
|
value: "start",
|
|
1112
1333
|
label: (0, import_i18n10.__)("Start", "elementor"),
|
|
1113
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1334
|
+
renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(RotatedIcon, { icon: StartIcon2, size, ...iconProps2 }),
|
|
1114
1335
|
showTooltip: true
|
|
1115
1336
|
},
|
|
1116
1337
|
{
|
|
1117
1338
|
value: "center",
|
|
1118
1339
|
label: (0, import_i18n10.__)("Center", "elementor"),
|
|
1119
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1340
|
+
renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(RotatedIcon, { icon: import_icons9.LayoutAlignCenterIcon, size, ...iconProps2 }),
|
|
1120
1341
|
showTooltip: true
|
|
1121
1342
|
},
|
|
1122
1343
|
{
|
|
1123
1344
|
value: "end",
|
|
1124
1345
|
label: (0, import_i18n10.__)("End", "elementor"),
|
|
1125
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1346
|
+
renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(RotatedIcon, { icon: EndIcon2, size, ...iconProps2 }),
|
|
1126
1347
|
showTooltip: true
|
|
1127
1348
|
},
|
|
1128
1349
|
{
|
|
1129
1350
|
value: "stretch",
|
|
1130
1351
|
label: (0, import_i18n10.__)("Stretch", "elementor"),
|
|
1131
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1352
|
+
renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(RotatedIcon, { icon: import_icons9.LayoutDistributeVerticalIcon, size, ...iconProps2 }),
|
|
1132
1353
|
showTooltip: true
|
|
1133
1354
|
}
|
|
1134
1355
|
];
|
|
1135
1356
|
var AlignSelfChild = () => {
|
|
1136
1357
|
const { isSiteRtl } = useDirection();
|
|
1137
|
-
return /* @__PURE__ */
|
|
1358
|
+
return /* @__PURE__ */ React30.createElement(import_ui20.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React30.createElement(import_ui20.ThemeProvider, null, /* @__PURE__ */ React30.createElement(StylesField, { bind: "align-self" }, /* @__PURE__ */ React30.createElement(import_ui20.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React30.createElement(import_ui20.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React30.createElement(import_editor_controls14.ControlLabel, null, (0, import_i18n10.__)("Align self", "elementor"))), /* @__PURE__ */ React30.createElement(import_ui20.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React30.createElement(import_editor_controls14.ToggleControl, { options: options2 }))))));
|
|
1138
1359
|
};
|
|
1139
1360
|
|
|
1140
1361
|
// src/components/style-sections/layout-section/display-field.tsx
|
|
1141
|
-
var
|
|
1362
|
+
var React31 = __toESM(require("react"));
|
|
1142
1363
|
var import_editor_controls15 = require("@elementor/editor-controls");
|
|
1143
1364
|
var import_ui21 = require("@elementor/ui");
|
|
1144
1365
|
var import_i18n11 = require("@wordpress/i18n");
|
|
@@ -1155,11 +1376,11 @@ var DisplayField = () => {
|
|
|
1155
1376
|
label: (0, import_i18n11.__)("Flex", "elementor")
|
|
1156
1377
|
}
|
|
1157
1378
|
];
|
|
1158
|
-
return /* @__PURE__ */
|
|
1379
|
+
return /* @__PURE__ */ React31.createElement(StylesField, { bind: "display" }, /* @__PURE__ */ React31.createElement(import_ui21.Stack, { gap: 1 }, /* @__PURE__ */ React31.createElement(import_editor_controls15.ControlLabel, null, (0, import_i18n11.__)("Display", "elementor")), /* @__PURE__ */ React31.createElement(import_editor_controls15.ToggleControl, { options: options10, fullWidth: true })));
|
|
1159
1380
|
};
|
|
1160
1381
|
|
|
1161
1382
|
// src/components/style-sections/layout-section/flex-direction-field.tsx
|
|
1162
|
-
var
|
|
1383
|
+
var React32 = __toESM(require("react"));
|
|
1163
1384
|
var import_editor_controls16 = require("@elementor/editor-controls");
|
|
1164
1385
|
var import_icons10 = require("@elementor/icons");
|
|
1165
1386
|
var import_ui22 = require("@elementor/ui");
|
|
@@ -1170,14 +1391,14 @@ var options3 = [
|
|
|
1170
1391
|
label: (0, import_i18n12.__)("Row", "elementor"),
|
|
1171
1392
|
renderContent: ({ size }) => {
|
|
1172
1393
|
const StartIcon4 = (0, import_ui22.withDirection)(import_icons10.ArrowRightIcon);
|
|
1173
|
-
return /* @__PURE__ */
|
|
1394
|
+
return /* @__PURE__ */ React32.createElement(StartIcon4, { fontSize: size });
|
|
1174
1395
|
},
|
|
1175
1396
|
showTooltip: true
|
|
1176
1397
|
},
|
|
1177
1398
|
{
|
|
1178
1399
|
value: "column",
|
|
1179
1400
|
label: (0, import_i18n12.__)("Column", "elementor"),
|
|
1180
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1401
|
+
renderContent: ({ size }) => /* @__PURE__ */ React32.createElement(import_icons10.ArrowDownSmallIcon, { fontSize: size }),
|
|
1181
1402
|
showTooltip: true
|
|
1182
1403
|
},
|
|
1183
1404
|
{
|
|
@@ -1185,25 +1406,25 @@ var options3 = [
|
|
|
1185
1406
|
label: (0, import_i18n12.__)("Reversed row", "elementor"),
|
|
1186
1407
|
renderContent: ({ size }) => {
|
|
1187
1408
|
const EndIcon4 = (0, import_ui22.withDirection)(import_icons10.ArrowLeftIcon);
|
|
1188
|
-
return /* @__PURE__ */
|
|
1409
|
+
return /* @__PURE__ */ React32.createElement(EndIcon4, { fontSize: size });
|
|
1189
1410
|
},
|
|
1190
1411
|
showTooltip: true
|
|
1191
1412
|
},
|
|
1192
1413
|
{
|
|
1193
1414
|
value: "column-reverse",
|
|
1194
1415
|
label: (0, import_i18n12.__)("Reversed column", "elementor"),
|
|
1195
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1416
|
+
renderContent: ({ size }) => /* @__PURE__ */ React32.createElement(import_icons10.ArrowUpSmallIcon, { fontSize: size }),
|
|
1196
1417
|
showTooltip: true
|
|
1197
1418
|
}
|
|
1198
1419
|
];
|
|
1199
1420
|
var FlexDirectionField = () => {
|
|
1200
1421
|
const { isSiteRtl } = useDirection();
|
|
1201
|
-
return /* @__PURE__ */
|
|
1422
|
+
return /* @__PURE__ */ React32.createElement(import_ui22.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React32.createElement(import_ui22.ThemeProvider, null, /* @__PURE__ */ React32.createElement(StylesField, { bind: "flex-direction" }, /* @__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_controls16.ControlLabel, null, (0, import_i18n12.__)("Direction", "elementor"))), /* @__PURE__ */ React32.createElement(import_ui22.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React32.createElement(import_editor_controls16.ToggleControl, { options: options3 }))))));
|
|
1202
1423
|
};
|
|
1203
1424
|
|
|
1204
1425
|
// src/components/style-sections/layout-section/flex-order-field.tsx
|
|
1205
|
-
var
|
|
1206
|
-
var
|
|
1426
|
+
var React33 = __toESM(require("react"));
|
|
1427
|
+
var import_react12 = require("react");
|
|
1207
1428
|
var import_editor_controls17 = require("@elementor/editor-controls");
|
|
1208
1429
|
var import_icons11 = require("@elementor/icons");
|
|
1209
1430
|
var import_ui23 = require("@elementor/ui");
|
|
@@ -1221,25 +1442,25 @@ var items = [
|
|
|
1221
1442
|
{
|
|
1222
1443
|
value: FIRST,
|
|
1223
1444
|
label: (0, import_i18n13.__)("First", "elementor"),
|
|
1224
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1445
|
+
renderContent: ({ size }) => /* @__PURE__ */ React33.createElement(import_icons11.ArrowUpSmallIcon, { fontSize: size }),
|
|
1225
1446
|
showTooltip: true
|
|
1226
1447
|
},
|
|
1227
1448
|
{
|
|
1228
1449
|
value: LAST,
|
|
1229
1450
|
label: (0, import_i18n13.__)("Last", "elementor"),
|
|
1230
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1451
|
+
renderContent: ({ size }) => /* @__PURE__ */ React33.createElement(import_icons11.ArrowDownSmallIcon, { fontSize: size }),
|
|
1231
1452
|
showTooltip: true
|
|
1232
1453
|
},
|
|
1233
1454
|
{
|
|
1234
1455
|
value: CUSTOM,
|
|
1235
1456
|
label: (0, import_i18n13.__)("Custom", "elementor"),
|
|
1236
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1457
|
+
renderContent: ({ size }) => /* @__PURE__ */ React33.createElement(import_icons11.PencilIcon, { fontSize: size }),
|
|
1237
1458
|
showTooltip: true
|
|
1238
1459
|
}
|
|
1239
1460
|
];
|
|
1240
1461
|
var FlexOrderField = () => {
|
|
1241
1462
|
const { isSiteRtl } = useDirection(), [order, setOrder] = useStylesField("order");
|
|
1242
|
-
const [groupControlValue, setGroupControlValue] = (0,
|
|
1463
|
+
const [groupControlValue, setGroupControlValue] = (0, import_react12.useState)(getGroupControlValue(order?.value || null));
|
|
1243
1464
|
const handleToggleButtonChange = (group) => {
|
|
1244
1465
|
setGroupControlValue(group);
|
|
1245
1466
|
if (!group || group === CUSTOM) {
|
|
@@ -1248,7 +1469,7 @@ var FlexOrderField = () => {
|
|
|
1248
1469
|
}
|
|
1249
1470
|
setOrder({ $$type: "number", value: orderValueMap[group] });
|
|
1250
1471
|
};
|
|
1251
|
-
return /* @__PURE__ */
|
|
1472
|
+
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_controls17.ControlLabel, null, (0, import_i18n13.__)("Order", "elementor"))), /* @__PURE__ */ React33.createElement(import_ui23.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React33.createElement(
|
|
1252
1473
|
import_editor_controls17.ControlToggleButtonGroup,
|
|
1253
1474
|
{
|
|
1254
1475
|
items,
|
|
@@ -1256,7 +1477,7 @@ var FlexOrderField = () => {
|
|
|
1256
1477
|
onChange: handleToggleButtonChange,
|
|
1257
1478
|
exclusive: true
|
|
1258
1479
|
}
|
|
1259
|
-
))), CUSTOM === groupControlValue && /* @__PURE__ */
|
|
1480
|
+
))), CUSTOM === groupControlValue && /* @__PURE__ */ React33.createElement(StylesField, { bind: "order" }, /* @__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_controls17.ControlLabel, null, (0, import_i18n13.__)("Custom order", "elementor"))), /* @__PURE__ */ React33.createElement(import_ui23.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React33.createElement(
|
|
1260
1481
|
import_editor_controls17.NumberControl,
|
|
1261
1482
|
{
|
|
1262
1483
|
min: FIRST_DEFAULT_VALUE + 1,
|
|
@@ -1276,7 +1497,7 @@ var getGroupControlValue = (order) => {
|
|
|
1276
1497
|
};
|
|
1277
1498
|
|
|
1278
1499
|
// src/components/style-sections/layout-section/flex-size-field.tsx
|
|
1279
|
-
var
|
|
1500
|
+
var React34 = __toESM(require("react"));
|
|
1280
1501
|
var import_editor_controls18 = require("@elementor/editor-controls");
|
|
1281
1502
|
var import_icons12 = require("@elementor/icons");
|
|
1282
1503
|
var import_ui24 = require("@elementor/ui");
|
|
@@ -1286,26 +1507,26 @@ var items2 = [
|
|
|
1286
1507
|
{
|
|
1287
1508
|
value: "flex-grow",
|
|
1288
1509
|
label: (0, import_i18n14.__)("Grow", "elementor"),
|
|
1289
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1510
|
+
renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(import_icons12.ExpandIcon, { fontSize: size }),
|
|
1290
1511
|
showTooltip: true
|
|
1291
1512
|
},
|
|
1292
1513
|
{
|
|
1293
1514
|
value: "flex-shrink",
|
|
1294
1515
|
label: (0, import_i18n14.__)("Shrink", "elementor"),
|
|
1295
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1516
|
+
renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(import_icons12.ShrinkIcon, { fontSize: size }),
|
|
1296
1517
|
showTooltip: true
|
|
1297
1518
|
},
|
|
1298
1519
|
{
|
|
1299
1520
|
value: "custom",
|
|
1300
1521
|
label: (0, import_i18n14.__)("Custom", "elementor"),
|
|
1301
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1522
|
+
renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(import_icons12.PencilIcon, { fontSize: size }),
|
|
1302
1523
|
showTooltip: true
|
|
1303
1524
|
}
|
|
1304
1525
|
];
|
|
1305
1526
|
var FlexSizeField = () => {
|
|
1306
1527
|
const { isSiteRtl } = useDirection(), [growField, setGrowField] = useStylesField("flex-grow"), [shrinkField, setShrinkField] = useStylesField("flex-shrink"), [basisField, setBasisField] = useStylesField("flex-basis");
|
|
1307
1528
|
const grow = growField?.value || null, shrink = shrinkField?.value || null, basis = basisField?.value || null;
|
|
1308
|
-
const currentGroup =
|
|
1529
|
+
const currentGroup = React34.useMemo(() => getActiveGroup({ grow, shrink, basis }), [grow, shrink, basis]), [activeGroup, setActiveGroup] = React34.useState(currentGroup);
|
|
1309
1530
|
const onChangeGroup = (group = null) => {
|
|
1310
1531
|
setActiveGroup(group);
|
|
1311
1532
|
setBasisField(null);
|
|
@@ -1322,7 +1543,7 @@ var FlexSizeField = () => {
|
|
|
1322
1543
|
setGrowField(null);
|
|
1323
1544
|
setShrinkField({ $$type: "number", value: DEFAULT });
|
|
1324
1545
|
};
|
|
1325
|
-
return /* @__PURE__ */
|
|
1546
|
+
return /* @__PURE__ */ React34.createElement(import_ui24.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React34.createElement(import_ui24.ThemeProvider, null, /* @__PURE__ */ React34.createElement(import_ui24.Stack, { gap: 2 }, /* @__PURE__ */ React34.createElement(import_ui24.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React34.createElement(import_ui24.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React34.createElement(import_editor_controls18.ControlLabel, null, (0, import_i18n14.__)("Size", "elementor"))), /* @__PURE__ */ React34.createElement(import_ui24.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React34.createElement(
|
|
1326
1547
|
import_editor_controls18.ControlToggleButtonGroup,
|
|
1327
1548
|
{
|
|
1328
1549
|
value: activeGroup,
|
|
@@ -1330,9 +1551,9 @@ var FlexSizeField = () => {
|
|
|
1330
1551
|
items: items2,
|
|
1331
1552
|
exclusive: true
|
|
1332
1553
|
}
|
|
1333
|
-
))), "custom" === activeGroup && /* @__PURE__ */
|
|
1554
|
+
))), "custom" === activeGroup && /* @__PURE__ */ React34.createElement(FlexCustomField, null))));
|
|
1334
1555
|
};
|
|
1335
|
-
var FlexCustomField = () => /* @__PURE__ */
|
|
1556
|
+
var FlexCustomField = () => /* @__PURE__ */ React34.createElement(React34.Fragment, null, /* @__PURE__ */ React34.createElement(StylesField, { bind: "flex-grow" }, /* @__PURE__ */ React34.createElement(import_ui24.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React34.createElement(import_ui24.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React34.createElement(import_editor_controls18.ControlLabel, null, (0, import_i18n14.__)("Grow", "elementor"))), /* @__PURE__ */ React34.createElement(import_ui24.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React34.createElement(import_editor_controls18.NumberControl, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React34.createElement(StylesField, { bind: "flex-shrink" }, /* @__PURE__ */ React34.createElement(import_ui24.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React34.createElement(import_ui24.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React34.createElement(import_editor_controls18.ControlLabel, null, (0, import_i18n14.__)("Shrink", "elementor"))), /* @__PURE__ */ React34.createElement(import_ui24.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React34.createElement(import_editor_controls18.NumberControl, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React34.createElement(StylesField, { bind: "flex-basis" }, /* @__PURE__ */ React34.createElement(import_ui24.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React34.createElement(import_ui24.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React34.createElement(import_editor_controls18.ControlLabel, null, (0, import_i18n14.__)("Basis", "elementor"))), /* @__PURE__ */ React34.createElement(import_ui24.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React34.createElement(import_editor_controls18.SizeControl, null)))));
|
|
1336
1557
|
var getActiveGroup = ({
|
|
1337
1558
|
grow,
|
|
1338
1559
|
shrink,
|
|
@@ -1354,16 +1575,16 @@ var getActiveGroup = ({
|
|
|
1354
1575
|
};
|
|
1355
1576
|
|
|
1356
1577
|
// src/components/style-sections/layout-section/gap-control-field.tsx
|
|
1357
|
-
var
|
|
1578
|
+
var React35 = __toESM(require("react"));
|
|
1358
1579
|
var import_editor_controls19 = require("@elementor/editor-controls");
|
|
1359
1580
|
var import_ui25 = require("@elementor/ui");
|
|
1360
1581
|
var import_i18n15 = require("@wordpress/i18n");
|
|
1361
1582
|
var GapControlField = () => {
|
|
1362
|
-
return /* @__PURE__ */
|
|
1583
|
+
return /* @__PURE__ */ React35.createElement(import_ui25.Stack, { gap: 1 }, /* @__PURE__ */ React35.createElement(StylesField, { bind: "gap" }, /* @__PURE__ */ React35.createElement(import_editor_controls19.GapControl, { label: (0, import_i18n15.__)("Gaps", "elementor") })));
|
|
1363
1584
|
};
|
|
1364
1585
|
|
|
1365
1586
|
// src/components/style-sections/layout-section/justify-content-field.tsx
|
|
1366
|
-
var
|
|
1587
|
+
var React36 = __toESM(require("react"));
|
|
1367
1588
|
var import_editor_controls20 = require("@elementor/editor-controls");
|
|
1368
1589
|
var import_icons13 = require("@elementor/icons");
|
|
1369
1590
|
var import_ui26 = require("@elementor/ui");
|
|
@@ -1378,47 +1599,47 @@ var options4 = [
|
|
|
1378
1599
|
{
|
|
1379
1600
|
value: "start",
|
|
1380
1601
|
label: (0, import_i18n16.__)("Start", "elementor"),
|
|
1381
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1602
|
+
renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(RotatedIcon, { icon: StartIcon3, size, ...iconProps3 }),
|
|
1382
1603
|
showTooltip: true
|
|
1383
1604
|
},
|
|
1384
1605
|
{
|
|
1385
1606
|
value: "center",
|
|
1386
1607
|
label: (0, import_i18n16.__)("Center", "elementor"),
|
|
1387
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1608
|
+
renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(RotatedIcon, { icon: import_icons13.JustifyCenterIcon, size, ...iconProps3 }),
|
|
1388
1609
|
showTooltip: true
|
|
1389
1610
|
},
|
|
1390
1611
|
{
|
|
1391
1612
|
value: "end",
|
|
1392
1613
|
label: (0, import_i18n16.__)("End", "elementor"),
|
|
1393
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1614
|
+
renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(RotatedIcon, { icon: EndIcon3, size, ...iconProps3 }),
|
|
1394
1615
|
showTooltip: true
|
|
1395
1616
|
},
|
|
1396
1617
|
{
|
|
1397
1618
|
value: "space-between",
|
|
1398
1619
|
label: (0, import_i18n16.__)("Space between", "elementor"),
|
|
1399
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1620
|
+
renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(RotatedIcon, { icon: import_icons13.JustifySpaceBetweenVerticalIcon, size, ...iconProps3 }),
|
|
1400
1621
|
showTooltip: true
|
|
1401
1622
|
},
|
|
1402
1623
|
{
|
|
1403
1624
|
value: "space-around",
|
|
1404
1625
|
label: (0, import_i18n16.__)("Space around", "elementor"),
|
|
1405
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1626
|
+
renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(RotatedIcon, { icon: import_icons13.JustifySpaceAroundVerticalIcon, size, ...iconProps3 }),
|
|
1406
1627
|
showTooltip: true
|
|
1407
1628
|
},
|
|
1408
1629
|
{
|
|
1409
1630
|
value: "space-evenly",
|
|
1410
1631
|
label: (0, import_i18n16.__)("Space evenly", "elementor"),
|
|
1411
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1632
|
+
renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(RotatedIcon, { icon: import_icons13.JustifyDistributeVerticalIcon, size, ...iconProps3 }),
|
|
1412
1633
|
showTooltip: true
|
|
1413
1634
|
}
|
|
1414
1635
|
];
|
|
1415
1636
|
var JustifyContentField = () => {
|
|
1416
1637
|
const { isSiteRtl } = useDirection();
|
|
1417
|
-
return /* @__PURE__ */
|
|
1638
|
+
return /* @__PURE__ */ React36.createElement(import_ui26.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React36.createElement(import_ui26.ThemeProvider, null, /* @__PURE__ */ React36.createElement(StylesField, { bind: "justify-content" }, /* @__PURE__ */ React36.createElement(import_ui26.Stack, { gap: 1 }, /* @__PURE__ */ React36.createElement(import_editor_controls20.ControlLabel, null, (0, import_i18n16.__)("Justify content", "elementor")), /* @__PURE__ */ React36.createElement(import_editor_controls20.ToggleControl, { options: options4, fullWidth: true })))));
|
|
1418
1639
|
};
|
|
1419
1640
|
|
|
1420
1641
|
// src/components/style-sections/layout-section/wrap-field.tsx
|
|
1421
|
-
var
|
|
1642
|
+
var React37 = __toESM(require("react"));
|
|
1422
1643
|
var import_editor_controls21 = require("@elementor/editor-controls");
|
|
1423
1644
|
var import_icons14 = require("@elementor/icons");
|
|
1424
1645
|
var import_ui27 = require("@elementor/ui");
|
|
@@ -1427,25 +1648,25 @@ var options5 = [
|
|
|
1427
1648
|
{
|
|
1428
1649
|
value: "nowrap",
|
|
1429
1650
|
label: (0, import_i18n17.__)("No wrap", "elementor"),
|
|
1430
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1651
|
+
renderContent: ({ size }) => /* @__PURE__ */ React37.createElement(import_icons14.ArrowRightIcon, { fontSize: size }),
|
|
1431
1652
|
showTooltip: true
|
|
1432
1653
|
},
|
|
1433
1654
|
{
|
|
1434
1655
|
value: "wrap",
|
|
1435
1656
|
label: (0, import_i18n17.__)("Wrap", "elementor"),
|
|
1436
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1657
|
+
renderContent: ({ size }) => /* @__PURE__ */ React37.createElement(import_icons14.ArrowBackIcon, { fontSize: size }),
|
|
1437
1658
|
showTooltip: true
|
|
1438
1659
|
},
|
|
1439
1660
|
{
|
|
1440
1661
|
value: "wrap-reverse",
|
|
1441
1662
|
label: (0, import_i18n17.__)("Reversed wrap", "elementor"),
|
|
1442
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1663
|
+
renderContent: ({ size }) => /* @__PURE__ */ React37.createElement(import_icons14.ArrowForwardIcon, { fontSize: size }),
|
|
1443
1664
|
showTooltip: true
|
|
1444
1665
|
}
|
|
1445
1666
|
];
|
|
1446
1667
|
var WrapField = () => {
|
|
1447
1668
|
const { isSiteRtl } = useDirection();
|
|
1448
|
-
return /* @__PURE__ */
|
|
1669
|
+
return /* @__PURE__ */ React37.createElement(import_ui27.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React37.createElement(import_ui27.ThemeProvider, null, /* @__PURE__ */ React37.createElement(StylesField, { bind: "flex-wrap" }, /* @__PURE__ */ React37.createElement(import_ui27.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React37.createElement(import_ui27.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(import_editor_controls21.ControlLabel, null, (0, import_i18n17.__)("Wrap", "elementor"))), /* @__PURE__ */ React37.createElement(import_ui27.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React37.createElement(import_editor_controls21.ToggleControl, { options: options5 }))))));
|
|
1449
1670
|
};
|
|
1450
1671
|
|
|
1451
1672
|
// src/components/style-sections/layout-section/layout-section.tsx
|
|
@@ -1454,22 +1675,22 @@ var LayoutSection = () => {
|
|
|
1454
1675
|
const { element } = useElement();
|
|
1455
1676
|
const parent = (0, import_editor_elements4.useParentElement)(element.id);
|
|
1456
1677
|
const parentStyle = useComputedStyle(parent?.id || null);
|
|
1457
|
-
return /* @__PURE__ */
|
|
1678
|
+
return /* @__PURE__ */ React38.createElement(import_ui28.Stack, { gap: 2 }, /* @__PURE__ */ React38.createElement(DisplayField, null), "flex" === display?.value && /* @__PURE__ */ React38.createElement(FlexFields, null), "flex" === parentStyle?.display && /* @__PURE__ */ React38.createElement(FlexChildFields, null));
|
|
1458
1679
|
};
|
|
1459
|
-
var FlexFields = () => /* @__PURE__ */
|
|
1460
|
-
var FlexChildFields = () => /* @__PURE__ */
|
|
1680
|
+
var FlexFields = () => /* @__PURE__ */ React38.createElement(React38.Fragment, null, /* @__PURE__ */ React38.createElement(FlexDirectionField, null), /* @__PURE__ */ React38.createElement(JustifyContentField, null), /* @__PURE__ */ React38.createElement(AlignItemsField, null), /* @__PURE__ */ React38.createElement(import_ui28.Divider, null), /* @__PURE__ */ React38.createElement(GapControlField, null), /* @__PURE__ */ React38.createElement(WrapField, null));
|
|
1681
|
+
var FlexChildFields = () => /* @__PURE__ */ React38.createElement(React38.Fragment, null, /* @__PURE__ */ React38.createElement(import_ui28.Divider, null), /* @__PURE__ */ React38.createElement(import_editor_controls22.ControlLabel, null, (0, import_i18n18.__)("Flex child", "elementor")), /* @__PURE__ */ React38.createElement(AlignSelfChild, null), /* @__PURE__ */ React38.createElement(FlexOrderField, null), /* @__PURE__ */ React38.createElement(FlexSizeField, null));
|
|
1461
1682
|
|
|
1462
1683
|
// src/components/style-sections/position-section/position-section.tsx
|
|
1463
|
-
var
|
|
1684
|
+
var React42 = __toESM(require("react"));
|
|
1464
1685
|
var import_ui32 = require("@elementor/ui");
|
|
1465
1686
|
|
|
1466
1687
|
// src/hooks/use-session-storage.ts
|
|
1467
|
-
var
|
|
1688
|
+
var import_react13 = require("react");
|
|
1468
1689
|
var import_utils2 = require("@elementor/utils");
|
|
1469
1690
|
var useSessionStorage = (key) => {
|
|
1470
1691
|
const prefixedKey = `elementor/${key}`;
|
|
1471
|
-
const [value, setValue] = (0,
|
|
1472
|
-
(0,
|
|
1692
|
+
const [value, setValue] = (0, import_react13.useState)();
|
|
1693
|
+
(0, import_react13.useEffect)(() => {
|
|
1473
1694
|
return subscribeToSessionStorage(prefixedKey, (newValue) => {
|
|
1474
1695
|
setValue(newValue ?? null);
|
|
1475
1696
|
});
|
|
@@ -1501,26 +1722,26 @@ var subscribeToSessionStorage = (key, subscriber) => {
|
|
|
1501
1722
|
};
|
|
1502
1723
|
|
|
1503
1724
|
// src/components/style-sections/position-section/dimensions-field.tsx
|
|
1504
|
-
var
|
|
1725
|
+
var React39 = __toESM(require("react"));
|
|
1505
1726
|
var import_editor_controls23 = require("@elementor/editor-controls");
|
|
1506
1727
|
var import_icons15 = require("@elementor/icons");
|
|
1507
1728
|
var import_ui29 = require("@elementor/ui");
|
|
1508
1729
|
var import_i18n19 = require("@wordpress/i18n");
|
|
1509
1730
|
var sideIcons = {
|
|
1510
|
-
left: /* @__PURE__ */
|
|
1511
|
-
right: /* @__PURE__ */
|
|
1512
|
-
top: /* @__PURE__ */
|
|
1513
|
-
bottom: /* @__PURE__ */
|
|
1731
|
+
left: /* @__PURE__ */ React39.createElement(import_icons15.SideLeftIcon, { fontSize: "tiny" }),
|
|
1732
|
+
right: /* @__PURE__ */ React39.createElement(import_icons15.SideRightIcon, { fontSize: "tiny" }),
|
|
1733
|
+
top: /* @__PURE__ */ React39.createElement(import_icons15.SideTopIcon, { fontSize: "tiny" }),
|
|
1734
|
+
bottom: /* @__PURE__ */ React39.createElement(import_icons15.SideBottomIcon, { fontSize: "tiny" })
|
|
1514
1735
|
};
|
|
1515
1736
|
var DimensionsField = () => {
|
|
1516
|
-
return /* @__PURE__ */
|
|
1737
|
+
return /* @__PURE__ */ React39.createElement(React39.Fragment, null, /* @__PURE__ */ React39.createElement(import_ui29.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React39.createElement(DimensionField, { side: "top", label: (0, import_i18n19.__)("Top", "elementor") }), /* @__PURE__ */ React39.createElement(DimensionField, { side: "right", label: (0, import_i18n19.__)("Right", "elementor") })), /* @__PURE__ */ React39.createElement(import_ui29.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React39.createElement(DimensionField, { side: "bottom", label: (0, import_i18n19.__)("Bottom", "elementor") }), /* @__PURE__ */ React39.createElement(DimensionField, { side: "left", label: (0, import_i18n19.__)("Left", "elementor") })));
|
|
1517
1738
|
};
|
|
1518
1739
|
var DimensionField = ({ side, label }) => {
|
|
1519
|
-
return /* @__PURE__ */
|
|
1740
|
+
return /* @__PURE__ */ React39.createElement(import_ui29.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React39.createElement(import_ui29.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React39.createElement(import_editor_controls23.ControlLabel, null, label)), /* @__PURE__ */ React39.createElement(import_ui29.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React39.createElement(StylesField, { bind: side }, /* @__PURE__ */ React39.createElement(import_editor_controls23.SizeControl, { startIcon: sideIcons[side] }))));
|
|
1520
1741
|
};
|
|
1521
1742
|
|
|
1522
1743
|
// src/components/style-sections/position-section/position-field.tsx
|
|
1523
|
-
var
|
|
1744
|
+
var React40 = __toESM(require("react"));
|
|
1524
1745
|
var import_editor_controls24 = require("@elementor/editor-controls");
|
|
1525
1746
|
var import_ui30 = require("@elementor/ui");
|
|
1526
1747
|
var import_i18n20 = require("@wordpress/i18n");
|
|
@@ -1528,19 +1749,20 @@ var positionOptions = [
|
|
|
1528
1749
|
{ label: (0, import_i18n20.__)("Static", "elementor"), value: "static" },
|
|
1529
1750
|
{ label: (0, import_i18n20.__)("Relative", "elementor"), value: "relative" },
|
|
1530
1751
|
{ label: (0, import_i18n20.__)("Absolute", "elementor"), value: "absolute" },
|
|
1531
|
-
{ label: (0, import_i18n20.__)("Fixed", "elementor"), value: "fixed" }
|
|
1752
|
+
{ label: (0, import_i18n20.__)("Fixed", "elementor"), value: "fixed" },
|
|
1753
|
+
{ label: (0, import_i18n20.__)("Sticky", "elementor"), value: "sticky" }
|
|
1532
1754
|
];
|
|
1533
1755
|
var PositionField = ({ onChange }) => {
|
|
1534
|
-
return /* @__PURE__ */
|
|
1756
|
+
return /* @__PURE__ */ React40.createElement(StylesField, { bind: "position" }, /* @__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_controls24.ControlLabel, null, (0, import_i18n20.__)("Position", "elementor"))), /* @__PURE__ */ React40.createElement(import_ui30.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(import_editor_controls24.SelectControl, { options: positionOptions, onChange }))));
|
|
1535
1757
|
};
|
|
1536
1758
|
|
|
1537
1759
|
// src/components/style-sections/position-section/z-index-field.tsx
|
|
1538
|
-
var
|
|
1760
|
+
var React41 = __toESM(require("react"));
|
|
1539
1761
|
var import_editor_controls25 = require("@elementor/editor-controls");
|
|
1540
1762
|
var import_ui31 = require("@elementor/ui");
|
|
1541
1763
|
var import_i18n21 = require("@wordpress/i18n");
|
|
1542
1764
|
var ZIndexField = () => {
|
|
1543
|
-
return /* @__PURE__ */
|
|
1765
|
+
return /* @__PURE__ */ React41.createElement(StylesField, { bind: "z-index" }, /* @__PURE__ */ React41.createElement(import_ui31.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React41.createElement(import_ui31.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(import_editor_controls25.ControlLabel, null, (0, import_i18n21.__)("Z-Index", "elementor"))), /* @__PURE__ */ React41.createElement(import_ui31.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(import_editor_controls25.NumberControl, null))));
|
|
1544
1766
|
};
|
|
1545
1767
|
|
|
1546
1768
|
// src/components/style-sections/position-section/position-section.tsx
|
|
@@ -1572,7 +1794,7 @@ var PositionSection = () => {
|
|
|
1572
1794
|
}
|
|
1573
1795
|
};
|
|
1574
1796
|
const isNotStatic = positionValue && positionValue?.value !== "static";
|
|
1575
|
-
return /* @__PURE__ */
|
|
1797
|
+
return /* @__PURE__ */ React42.createElement(import_ui32.Stack, { gap: 1.5 }, /* @__PURE__ */ React42.createElement(PositionField, { onChange: onPositionChange }), isNotStatic ? /* @__PURE__ */ React42.createElement(React42.Fragment, null, /* @__PURE__ */ React42.createElement(DimensionsField, null), /* @__PURE__ */ React42.createElement(ZIndexField, null)) : null);
|
|
1576
1798
|
};
|
|
1577
1799
|
var usePersistDimensions = () => {
|
|
1578
1800
|
const { id: styleDefID, meta } = useStyle();
|
|
@@ -1582,13 +1804,13 @@ var usePersistDimensions = () => {
|
|
|
1582
1804
|
};
|
|
1583
1805
|
|
|
1584
1806
|
// src/components/style-sections/size-section/size-section.tsx
|
|
1585
|
-
var
|
|
1807
|
+
var React44 = __toESM(require("react"));
|
|
1586
1808
|
var import_editor_controls27 = require("@elementor/editor-controls");
|
|
1587
1809
|
var import_ui34 = require("@elementor/ui");
|
|
1588
1810
|
var import_i18n23 = require("@wordpress/i18n");
|
|
1589
1811
|
|
|
1590
1812
|
// src/components/style-sections/size-section/overflow-field.tsx
|
|
1591
|
-
var
|
|
1813
|
+
var React43 = __toESM(require("react"));
|
|
1592
1814
|
var import_editor_controls26 = require("@elementor/editor-controls");
|
|
1593
1815
|
var import_icons16 = require("@elementor/icons");
|
|
1594
1816
|
var import_ui33 = require("@elementor/ui");
|
|
@@ -1597,58 +1819,58 @@ var options6 = [
|
|
|
1597
1819
|
{
|
|
1598
1820
|
value: "visible",
|
|
1599
1821
|
label: (0, import_i18n22.__)("Visible", "elementor"),
|
|
1600
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1822
|
+
renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(import_icons16.EyeIcon, { fontSize: size }),
|
|
1601
1823
|
showTooltip: true
|
|
1602
1824
|
},
|
|
1603
1825
|
{
|
|
1604
1826
|
value: "hidden",
|
|
1605
1827
|
label: (0, import_i18n22.__)("Hidden", "elementor"),
|
|
1606
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1828
|
+
renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(import_icons16.EyeOffIcon, { fontSize: size }),
|
|
1607
1829
|
showTooltip: true
|
|
1608
1830
|
},
|
|
1609
1831
|
{
|
|
1610
1832
|
value: "auto",
|
|
1611
1833
|
label: (0, import_i18n22.__)("Auto", "elementor"),
|
|
1612
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1834
|
+
renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(import_icons16.ExpandBottomIcon, { fontSize: size }),
|
|
1613
1835
|
showTooltip: true
|
|
1614
1836
|
}
|
|
1615
1837
|
];
|
|
1616
1838
|
var OverflowField = () => {
|
|
1617
|
-
return /* @__PURE__ */
|
|
1839
|
+
return /* @__PURE__ */ React43.createElement(StylesField, { bind: "overflow" }, /* @__PURE__ */ React43.createElement(import_ui33.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React43.createElement(import_ui33.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React43.createElement(import_editor_controls26.ControlLabel, null, (0, import_i18n22.__)("Overflow", "elementor"))), /* @__PURE__ */ React43.createElement(import_ui33.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React43.createElement(import_editor_controls26.ToggleControl, { options: options6 }))));
|
|
1618
1840
|
};
|
|
1619
1841
|
|
|
1620
1842
|
// src/components/style-sections/size-section/size-section.tsx
|
|
1621
1843
|
var SizeSection = () => {
|
|
1622
|
-
return /* @__PURE__ */
|
|
1844
|
+
return /* @__PURE__ */ React44.createElement(import_ui34.Stack, { gap: 1.5 }, /* @__PURE__ */ React44.createElement(import_ui34.Grid, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React44.createElement(import_ui34.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React44.createElement(SizeField, { bind: "width", label: (0, import_i18n23.__)("Width", "elementor") })), /* @__PURE__ */ React44.createElement(import_ui34.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React44.createElement(SizeField, { bind: "height", label: (0, import_i18n23.__)("Height", "elementor") }))), /* @__PURE__ */ React44.createElement(import_ui34.Grid, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React44.createElement(import_ui34.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React44.createElement(SizeField, { bind: "min-width", label: (0, import_i18n23.__)("Min. Width", "elementor") })), /* @__PURE__ */ React44.createElement(import_ui34.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React44.createElement(SizeField, { bind: "min-height", label: (0, import_i18n23.__)("Min. Height", "elementor") }))), /* @__PURE__ */ React44.createElement(import_ui34.Grid, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React44.createElement(import_ui34.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React44.createElement(SizeField, { bind: "max-width", label: (0, import_i18n23.__)("Max. Width", "elementor") })), /* @__PURE__ */ React44.createElement(import_ui34.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React44.createElement(SizeField, { bind: "max-height", label: (0, import_i18n23.__)("Max. Height", "elementor") }))), /* @__PURE__ */ React44.createElement(import_ui34.Divider, null), /* @__PURE__ */ React44.createElement(import_ui34.Stack, null, /* @__PURE__ */ React44.createElement(OverflowField, null)));
|
|
1623
1845
|
};
|
|
1624
1846
|
var SizeField = ({ label, bind }) => {
|
|
1625
|
-
return /* @__PURE__ */
|
|
1847
|
+
return /* @__PURE__ */ React44.createElement(StylesField, { bind }, /* @__PURE__ */ React44.createElement(import_ui34.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React44.createElement(import_ui34.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React44.createElement(import_editor_controls27.ControlLabel, null, label)), /* @__PURE__ */ React44.createElement(import_ui34.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React44.createElement(import_editor_controls27.SizeControl, null))));
|
|
1626
1848
|
};
|
|
1627
1849
|
|
|
1628
1850
|
// src/components/style-sections/spacing-section/spacing-section.tsx
|
|
1629
|
-
var
|
|
1851
|
+
var React45 = __toESM(require("react"));
|
|
1630
1852
|
var import_editor_controls28 = require("@elementor/editor-controls");
|
|
1631
1853
|
var import_ui35 = require("@elementor/ui");
|
|
1632
1854
|
var import_i18n24 = require("@wordpress/i18n");
|
|
1633
1855
|
var SpacingSection = () => {
|
|
1634
|
-
return /* @__PURE__ */
|
|
1856
|
+
return /* @__PURE__ */ React45.createElement(import_ui35.Stack, { gap: 1.5 }, /* @__PURE__ */ React45.createElement(StylesField, { bind: "padding" }, /* @__PURE__ */ React45.createElement(import_editor_controls28.LinkedDimensionsControl, { label: (0, import_i18n24.__)("Padding", "elementor") })), /* @__PURE__ */ React45.createElement(import_ui35.Divider, null), /* @__PURE__ */ React45.createElement(StylesField, { bind: "margin" }, /* @__PURE__ */ React45.createElement(import_editor_controls28.LinkedDimensionsControl, { label: (0, import_i18n24.__)("Margin", "elementor") })));
|
|
1635
1857
|
};
|
|
1636
1858
|
|
|
1637
1859
|
// src/components/style-sections/typography-section/typography-section.tsx
|
|
1638
|
-
var
|
|
1860
|
+
var React59 = __toESM(require("react"));
|
|
1639
1861
|
var import_ui48 = require("@elementor/ui");
|
|
1640
1862
|
|
|
1641
1863
|
// src/components/collapsible-content.tsx
|
|
1642
|
-
var
|
|
1643
|
-
var
|
|
1864
|
+
var React46 = __toESM(require("react"));
|
|
1865
|
+
var import_react14 = require("react");
|
|
1644
1866
|
var import_ui36 = require("@elementor/ui");
|
|
1645
1867
|
var import_i18n25 = require("@wordpress/i18n");
|
|
1646
1868
|
var CollapsibleContent = ({ children, defaultOpen = false }) => {
|
|
1647
|
-
const [open, setOpen] = (0,
|
|
1869
|
+
const [open, setOpen] = (0, import_react14.useState)(defaultOpen);
|
|
1648
1870
|
const handleToggle = () => {
|
|
1649
1871
|
setOpen((prevOpen) => !prevOpen);
|
|
1650
1872
|
};
|
|
1651
|
-
return /* @__PURE__ */
|
|
1873
|
+
return /* @__PURE__ */ React46.createElement(import_ui36.Stack, { sx: { py: 0.5 } }, /* @__PURE__ */ React46.createElement(
|
|
1652
1874
|
import_ui36.Button,
|
|
1653
1875
|
{
|
|
1654
1876
|
fullWidth: true,
|
|
@@ -1656,14 +1878,14 @@ var CollapsibleContent = ({ children, defaultOpen = false }) => {
|
|
|
1656
1878
|
color: "secondary",
|
|
1657
1879
|
variant: "outlined",
|
|
1658
1880
|
onClick: handleToggle,
|
|
1659
|
-
endIcon: /* @__PURE__ */
|
|
1881
|
+
endIcon: /* @__PURE__ */ React46.createElement(CollapseIcon, { open })
|
|
1660
1882
|
},
|
|
1661
1883
|
open ? (0, import_i18n25.__)("Show less", "elementor") : (0, import_i18n25.__)("Show more", "elementor")
|
|
1662
|
-
), /* @__PURE__ */
|
|
1884
|
+
), /* @__PURE__ */ React46.createElement(import_ui36.Collapse, { in: open, timeout: "auto", unmountOnExit: true }, children));
|
|
1663
1885
|
};
|
|
1664
1886
|
|
|
1665
1887
|
// src/components/style-sections/typography-section/font-family-field.tsx
|
|
1666
|
-
var
|
|
1888
|
+
var React47 = __toESM(require("react"));
|
|
1667
1889
|
var import_editor_controls29 = require("@elementor/editor-controls");
|
|
1668
1890
|
var import_ui37 = require("@elementor/ui");
|
|
1669
1891
|
var import_i18n26 = require("@wordpress/i18n");
|
|
@@ -1680,7 +1902,7 @@ var FontFamilyField = () => {
|
|
|
1680
1902
|
if (!fontFamilies) {
|
|
1681
1903
|
return null;
|
|
1682
1904
|
}
|
|
1683
|
-
return /* @__PURE__ */
|
|
1905
|
+
return /* @__PURE__ */ React47.createElement(StylesField, { bind: "font-family" }, /* @__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_controls29.ControlLabel, null, (0, import_i18n26.__)("Font Family", "elementor"))), /* @__PURE__ */ React47.createElement(import_ui37.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(import_editor_controls29.FontFamilyControl, { fontFamilies }))));
|
|
1684
1906
|
};
|
|
1685
1907
|
var getFontFamilies = () => {
|
|
1686
1908
|
const { controls } = getElementorConfig();
|
|
@@ -1692,16 +1914,16 @@ var getFontFamilies = () => {
|
|
|
1692
1914
|
};
|
|
1693
1915
|
|
|
1694
1916
|
// src/components/style-sections/typography-section/font-size-field.tsx
|
|
1695
|
-
var
|
|
1917
|
+
var React48 = __toESM(require("react"));
|
|
1696
1918
|
var import_editor_controls30 = require("@elementor/editor-controls");
|
|
1697
1919
|
var import_ui38 = require("@elementor/ui");
|
|
1698
1920
|
var import_i18n27 = require("@wordpress/i18n");
|
|
1699
1921
|
var FontSizeField = () => {
|
|
1700
|
-
return /* @__PURE__ */
|
|
1922
|
+
return /* @__PURE__ */ React48.createElement(StylesField, { bind: "font-size" }, /* @__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_controls30.ControlLabel, null, (0, import_i18n27.__)("Font Size", "elementor"))), /* @__PURE__ */ React48.createElement(import_ui38.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React48.createElement(import_editor_controls30.SizeControl, null))));
|
|
1701
1923
|
};
|
|
1702
1924
|
|
|
1703
1925
|
// src/components/style-sections/typography-section/font-weight-field.tsx
|
|
1704
|
-
var
|
|
1926
|
+
var React49 = __toESM(require("react"));
|
|
1705
1927
|
var import_editor_controls31 = require("@elementor/editor-controls");
|
|
1706
1928
|
var import_ui39 = require("@elementor/ui");
|
|
1707
1929
|
var import_i18n28 = require("@wordpress/i18n");
|
|
@@ -1713,29 +1935,29 @@ var fontWeightOptions = [
|
|
|
1713
1935
|
{ label: (0, import_i18n28.__)("Black - 900", "elementor"), value: "900" }
|
|
1714
1936
|
];
|
|
1715
1937
|
var FontWeightField = () => {
|
|
1716
|
-
return /* @__PURE__ */
|
|
1938
|
+
return /* @__PURE__ */ React49.createElement(StylesField, { bind: "font-weight" }, /* @__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_controls31.ControlLabel, null, (0, import_i18n28.__)("Font Weight", "elementor"))), /* @__PURE__ */ React49.createElement(import_ui39.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(import_editor_controls31.SelectControl, { options: fontWeightOptions }))));
|
|
1717
1939
|
};
|
|
1718
1940
|
|
|
1719
1941
|
// src/components/style-sections/typography-section/letter-spacing-field.tsx
|
|
1720
|
-
var
|
|
1942
|
+
var React50 = __toESM(require("react"));
|
|
1721
1943
|
var import_editor_controls32 = require("@elementor/editor-controls");
|
|
1722
1944
|
var import_ui40 = require("@elementor/ui");
|
|
1723
1945
|
var import_i18n29 = require("@wordpress/i18n");
|
|
1724
1946
|
var LetterSpacingField = () => {
|
|
1725
|
-
return /* @__PURE__ */
|
|
1947
|
+
return /* @__PURE__ */ React50.createElement(StylesField, { bind: "letter-spacing" }, /* @__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_controls32.ControlLabel, null, (0, import_i18n29.__)("Letter Spacing", "elementor"))), /* @__PURE__ */ React50.createElement(import_ui40.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React50.createElement(import_editor_controls32.SizeControl, null))));
|
|
1726
1948
|
};
|
|
1727
1949
|
|
|
1728
1950
|
// src/components/style-sections/typography-section/line-height-field.tsx
|
|
1729
|
-
var
|
|
1951
|
+
var React51 = __toESM(require("react"));
|
|
1730
1952
|
var import_editor_controls33 = require("@elementor/editor-controls");
|
|
1731
1953
|
var import_ui41 = require("@elementor/ui");
|
|
1732
1954
|
var import_i18n30 = require("@wordpress/i18n");
|
|
1733
1955
|
var LineHeightField = () => {
|
|
1734
|
-
return /* @__PURE__ */
|
|
1956
|
+
return /* @__PURE__ */ React51.createElement(StylesField, { bind: "line-height" }, /* @__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_controls33.ControlLabel, null, (0, import_i18n30.__)("Line Height", "elementor"))), /* @__PURE__ */ React51.createElement(import_ui41.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React51.createElement(import_editor_controls33.SizeControl, null))));
|
|
1735
1957
|
};
|
|
1736
1958
|
|
|
1737
1959
|
// src/components/style-sections/typography-section/text-alignment-field.tsx
|
|
1738
|
-
var
|
|
1960
|
+
var React52 = __toESM(require("react"));
|
|
1739
1961
|
var import_editor_controls34 = require("@elementor/editor-controls");
|
|
1740
1962
|
var import_icons17 = require("@elementor/icons");
|
|
1741
1963
|
var import_ui42 = require("@elementor/ui");
|
|
@@ -1744,39 +1966,39 @@ var options7 = [
|
|
|
1744
1966
|
{
|
|
1745
1967
|
value: "left",
|
|
1746
1968
|
label: (0, import_i18n31.__)("Left", "elementor"),
|
|
1747
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1969
|
+
renderContent: ({ size }) => /* @__PURE__ */ React52.createElement(import_icons17.AlignLeftIcon, { fontSize: size })
|
|
1748
1970
|
},
|
|
1749
1971
|
{
|
|
1750
1972
|
value: "center",
|
|
1751
1973
|
label: (0, import_i18n31.__)("Center", "elementor"),
|
|
1752
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1974
|
+
renderContent: ({ size }) => /* @__PURE__ */ React52.createElement(import_icons17.AlignCenterIcon, { fontSize: size })
|
|
1753
1975
|
},
|
|
1754
1976
|
{
|
|
1755
1977
|
value: "right",
|
|
1756
1978
|
label: (0, import_i18n31.__)("Right", "elementor"),
|
|
1757
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1979
|
+
renderContent: ({ size }) => /* @__PURE__ */ React52.createElement(import_icons17.AlignRightIcon, { fontSize: size })
|
|
1758
1980
|
},
|
|
1759
1981
|
{
|
|
1760
1982
|
value: "justify",
|
|
1761
1983
|
label: (0, import_i18n31.__)("Justify", "elementor"),
|
|
1762
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1984
|
+
renderContent: ({ size }) => /* @__PURE__ */ React52.createElement(import_icons17.AlignJustifiedIcon, { fontSize: size })
|
|
1763
1985
|
}
|
|
1764
1986
|
];
|
|
1765
1987
|
var TextAlignmentField = () => {
|
|
1766
|
-
return /* @__PURE__ */
|
|
1988
|
+
return /* @__PURE__ */ React52.createElement(StylesField, { bind: "text-align" }, /* @__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_controls34.ControlLabel, null, (0, import_i18n31.__)("Alignment", "elementor"))), /* @__PURE__ */ React52.createElement(import_ui42.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React52.createElement(import_editor_controls34.ToggleControl, { options: options7 }))));
|
|
1767
1989
|
};
|
|
1768
1990
|
|
|
1769
1991
|
// src/components/style-sections/typography-section/text-color-field.tsx
|
|
1770
|
-
var
|
|
1992
|
+
var React53 = __toESM(require("react"));
|
|
1771
1993
|
var import_editor_controls35 = require("@elementor/editor-controls");
|
|
1772
1994
|
var import_ui43 = require("@elementor/ui");
|
|
1773
1995
|
var import_i18n32 = require("@wordpress/i18n");
|
|
1774
1996
|
var TextColorField = () => {
|
|
1775
|
-
return /* @__PURE__ */
|
|
1997
|
+
return /* @__PURE__ */ React53.createElement(StylesField, { bind: "color" }, /* @__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_controls35.ControlLabel, null, (0, import_i18n32.__)("Text Color", "elementor"))), /* @__PURE__ */ React53.createElement(import_ui43.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React53.createElement(import_editor_controls35.ColorControl, null))));
|
|
1776
1998
|
};
|
|
1777
1999
|
|
|
1778
2000
|
// src/components/style-sections/typography-section/text-direction-field.tsx
|
|
1779
|
-
var
|
|
2001
|
+
var React54 = __toESM(require("react"));
|
|
1780
2002
|
var import_editor_controls36 = require("@elementor/editor-controls");
|
|
1781
2003
|
var import_icons18 = require("@elementor/icons");
|
|
1782
2004
|
var import_ui44 = require("@elementor/ui");
|
|
@@ -1785,20 +2007,20 @@ var options8 = [
|
|
|
1785
2007
|
{
|
|
1786
2008
|
value: "ltr",
|
|
1787
2009
|
label: (0, import_i18n33.__)("Left to Right", "elementor"),
|
|
1788
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2010
|
+
renderContent: ({ size }) => /* @__PURE__ */ React54.createElement(import_icons18.TextDirectionLtrIcon, { fontSize: size })
|
|
1789
2011
|
},
|
|
1790
2012
|
{
|
|
1791
2013
|
value: "rtl",
|
|
1792
2014
|
label: (0, import_i18n33.__)("Right to Left", "elementor"),
|
|
1793
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2015
|
+
renderContent: ({ size }) => /* @__PURE__ */ React54.createElement(import_icons18.TextDirectionRtlIcon, { fontSize: size })
|
|
1794
2016
|
}
|
|
1795
2017
|
];
|
|
1796
2018
|
var TextDirectionField = () => {
|
|
1797
|
-
return /* @__PURE__ */
|
|
2019
|
+
return /* @__PURE__ */ React54.createElement(StylesField, { bind: "direction" }, /* @__PURE__ */ React54.createElement(import_ui44.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React54.createElement(import_ui44.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(import_editor_controls36.ControlLabel, null, (0, import_i18n33.__)("Direction", "elementor"))), /* @__PURE__ */ React54.createElement(import_ui44.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React54.createElement(import_editor_controls36.ToggleControl, { options: options8 }))));
|
|
1798
2020
|
};
|
|
1799
2021
|
|
|
1800
2022
|
// src/components/style-sections/typography-section/text-stroke-field.tsx
|
|
1801
|
-
var
|
|
2023
|
+
var React55 = __toESM(require("react"));
|
|
1802
2024
|
var import_editor_controls37 = require("@elementor/editor-controls");
|
|
1803
2025
|
var import_i18n34 = require("@wordpress/i18n");
|
|
1804
2026
|
var initTextStroke = {
|
|
@@ -1826,7 +2048,7 @@ var TextStrokeField = () => {
|
|
|
1826
2048
|
setTextStroke(null);
|
|
1827
2049
|
};
|
|
1828
2050
|
const hasTextStroke = Boolean(textStroke);
|
|
1829
|
-
return /* @__PURE__ */
|
|
2051
|
+
return /* @__PURE__ */ React55.createElement(
|
|
1830
2052
|
AddOrRemoveContent,
|
|
1831
2053
|
{
|
|
1832
2054
|
label: (0, import_i18n34.__)("Text Stroke", "elementor"),
|
|
@@ -1834,12 +2056,12 @@ var TextStrokeField = () => {
|
|
|
1834
2056
|
onAdd: addTextStroke,
|
|
1835
2057
|
onRemove: removeTextStroke
|
|
1836
2058
|
},
|
|
1837
|
-
/* @__PURE__ */
|
|
2059
|
+
/* @__PURE__ */ React55.createElement(StylesField, { bind: "-webkit-text-stroke" }, /* @__PURE__ */ React55.createElement(import_editor_controls37.StrokeControl, null))
|
|
1838
2060
|
);
|
|
1839
2061
|
};
|
|
1840
2062
|
|
|
1841
2063
|
// src/components/style-sections/typography-section/text-style-field.tsx
|
|
1842
|
-
var
|
|
2064
|
+
var React56 = __toESM(require("react"));
|
|
1843
2065
|
var import_editor_controls38 = require("@elementor/editor-controls");
|
|
1844
2066
|
var import_icons19 = require("@elementor/icons");
|
|
1845
2067
|
var import_ui45 = require("@elementor/ui");
|
|
@@ -1867,7 +2089,7 @@ var TextStyleField = () => {
|
|
|
1867
2089
|
value: newValue
|
|
1868
2090
|
});
|
|
1869
2091
|
};
|
|
1870
|
-
return /* @__PURE__ */
|
|
2092
|
+
return /* @__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_controls38.ControlLabel, null, (0, import_i18n35.__)("Style", "elementor"))), /* @__PURE__ */ React56.createElement(import_ui45.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React56.createElement(import_ui45.ToggleButtonGroup, { value: formats }, /* @__PURE__ */ React56.createElement(
|
|
1871
2093
|
ToggleButton,
|
|
1872
2094
|
{
|
|
1873
2095
|
value: "italic",
|
|
@@ -1875,8 +2097,8 @@ var TextStyleField = () => {
|
|
|
1875
2097
|
"aria-label": "italic",
|
|
1876
2098
|
sx: { marginLeft: "auto" }
|
|
1877
2099
|
},
|
|
1878
|
-
/* @__PURE__ */
|
|
1879
|
-
), /* @__PURE__ */
|
|
2100
|
+
/* @__PURE__ */ React56.createElement(import_icons19.ItalicIcon, { fontSize: buttonSize })
|
|
2101
|
+
), /* @__PURE__ */ React56.createElement(
|
|
1880
2102
|
ShorthandControl,
|
|
1881
2103
|
{
|
|
1882
2104
|
value: "line-through",
|
|
@@ -1884,8 +2106,8 @@ var TextStyleField = () => {
|
|
|
1884
2106
|
updateValues: handleSetTextDecoration,
|
|
1885
2107
|
"aria-label": "line-through"
|
|
1886
2108
|
},
|
|
1887
|
-
/* @__PURE__ */
|
|
1888
|
-
), /* @__PURE__ */
|
|
2109
|
+
/* @__PURE__ */ React56.createElement(import_icons19.StrikethroughIcon, { fontSize: buttonSize })
|
|
2110
|
+
), /* @__PURE__ */ React56.createElement(
|
|
1889
2111
|
ShorthandControl,
|
|
1890
2112
|
{
|
|
1891
2113
|
value: "underline",
|
|
@@ -1893,7 +2115,7 @@ var TextStyleField = () => {
|
|
|
1893
2115
|
updateValues: handleSetTextDecoration,
|
|
1894
2116
|
"aria-label": "underline"
|
|
1895
2117
|
},
|
|
1896
|
-
/* @__PURE__ */
|
|
2118
|
+
/* @__PURE__ */ React56.createElement(import_icons19.UnderlineIcon, { fontSize: buttonSize })
|
|
1897
2119
|
))));
|
|
1898
2120
|
};
|
|
1899
2121
|
var ShorthandControl = ({
|
|
@@ -1912,17 +2134,17 @@ var ShorthandControl = ({
|
|
|
1912
2134
|
updateValues([...valuesArr, newValue].join(" "));
|
|
1913
2135
|
}
|
|
1914
2136
|
};
|
|
1915
|
-
return /* @__PURE__ */
|
|
2137
|
+
return /* @__PURE__ */ React56.createElement(ToggleButton, { value, onChange: toggleValue, selected, "aria-label": ariaLabel }, children);
|
|
1916
2138
|
};
|
|
1917
2139
|
var ToggleButton = ({ onChange, ...props }) => {
|
|
1918
2140
|
const handleChange = (_e, newValue) => {
|
|
1919
2141
|
onChange(newValue);
|
|
1920
2142
|
};
|
|
1921
|
-
return /* @__PURE__ */
|
|
2143
|
+
return /* @__PURE__ */ React56.createElement(import_ui45.ToggleButton, { ...props, onChange: handleChange, size: buttonSize });
|
|
1922
2144
|
};
|
|
1923
2145
|
|
|
1924
2146
|
// src/components/style-sections/typography-section/transform-field.tsx
|
|
1925
|
-
var
|
|
2147
|
+
var React57 = __toESM(require("react"));
|
|
1926
2148
|
var import_editor_controls39 = require("@elementor/editor-controls");
|
|
1927
2149
|
var import_icons20 = require("@elementor/icons");
|
|
1928
2150
|
var import_ui46 = require("@elementor/ui");
|
|
@@ -1931,33 +2153,33 @@ var options9 = [
|
|
|
1931
2153
|
{
|
|
1932
2154
|
value: "capitalize",
|
|
1933
2155
|
label: (0, import_i18n36.__)("Capitalize", "elementor"),
|
|
1934
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2156
|
+
renderContent: ({ size }) => /* @__PURE__ */ React57.createElement(import_icons20.LetterCaseIcon, { fontSize: size })
|
|
1935
2157
|
},
|
|
1936
2158
|
{
|
|
1937
2159
|
value: "uppercase",
|
|
1938
2160
|
label: (0, import_i18n36.__)("Uppercase", "elementor"),
|
|
1939
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2161
|
+
renderContent: ({ size }) => /* @__PURE__ */ React57.createElement(import_icons20.LetterCaseUpperIcon, { fontSize: size })
|
|
1940
2162
|
},
|
|
1941
2163
|
{
|
|
1942
2164
|
value: "lowercase",
|
|
1943
2165
|
label: (0, import_i18n36.__)("Lowercase", "elementor"),
|
|
1944
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2166
|
+
renderContent: ({ size }) => /* @__PURE__ */ React57.createElement(import_icons20.LetterCaseLowerIcon, { fontSize: size })
|
|
1945
2167
|
}
|
|
1946
2168
|
];
|
|
1947
|
-
var TransformField = () => /* @__PURE__ */
|
|
2169
|
+
var TransformField = () => /* @__PURE__ */ React57.createElement(StylesField, { bind: "text-transform" }, /* @__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_controls39.ControlLabel, null, (0, import_i18n36.__)("Transform", "elementor"))), /* @__PURE__ */ React57.createElement(import_ui46.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React57.createElement(import_editor_controls39.ToggleControl, { options: options9 }))));
|
|
1948
2170
|
|
|
1949
2171
|
// src/components/style-sections/typography-section/word-spacing-field.tsx
|
|
1950
|
-
var
|
|
2172
|
+
var React58 = __toESM(require("react"));
|
|
1951
2173
|
var import_editor_controls40 = require("@elementor/editor-controls");
|
|
1952
2174
|
var import_ui47 = require("@elementor/ui");
|
|
1953
2175
|
var import_i18n37 = require("@wordpress/i18n");
|
|
1954
2176
|
var WordSpacingField = () => {
|
|
1955
|
-
return /* @__PURE__ */
|
|
2177
|
+
return /* @__PURE__ */ React58.createElement(StylesField, { bind: "word-spacing" }, /* @__PURE__ */ React58.createElement(import_ui47.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React58.createElement(import_ui47.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React58.createElement(import_editor_controls40.ControlLabel, null, (0, import_i18n37.__)("Word Spacing", "elementor"))), /* @__PURE__ */ React58.createElement(import_ui47.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React58.createElement(import_editor_controls40.SizeControl, null))));
|
|
1956
2178
|
};
|
|
1957
2179
|
|
|
1958
2180
|
// src/components/style-sections/typography-section/typography-section.tsx
|
|
1959
2181
|
var TypographySection = () => {
|
|
1960
|
-
return /* @__PURE__ */
|
|
2182
|
+
return /* @__PURE__ */ React59.createElement(import_ui48.Stack, { gap: 1.5 }, /* @__PURE__ */ React59.createElement(FontFamilyField, null), /* @__PURE__ */ React59.createElement(FontWeightField, null), /* @__PURE__ */ React59.createElement(FontSizeField, null), /* @__PURE__ */ React59.createElement(import_ui48.Divider, null), /* @__PURE__ */ React59.createElement(TextAlignmentField, null), /* @__PURE__ */ React59.createElement(TextColorField, null), /* @__PURE__ */ React59.createElement(CollapsibleContent, null, /* @__PURE__ */ React59.createElement(import_ui48.Stack, { gap: 1.5, sx: { pt: 1.5 } }, /* @__PURE__ */ React59.createElement(LineHeightField, null), /* @__PURE__ */ React59.createElement(LetterSpacingField, null), /* @__PURE__ */ React59.createElement(WordSpacingField, null), /* @__PURE__ */ React59.createElement(import_ui48.Divider, null), /* @__PURE__ */ React59.createElement(TextStyleField, null), /* @__PURE__ */ React59.createElement(TransformField, null), /* @__PURE__ */ React59.createElement(TextDirectionField, null), /* @__PURE__ */ React59.createElement(TextStrokeField, null))));
|
|
1961
2183
|
};
|
|
1962
2184
|
|
|
1963
2185
|
// src/components/style-tab.tsx
|
|
@@ -1965,9 +2187,9 @@ var CLASSES_PROP_KEY = "classes";
|
|
|
1965
2187
|
var StyleTab = () => {
|
|
1966
2188
|
const currentClassesProp = useCurrentClassesProp();
|
|
1967
2189
|
const [activeStyleDefId, setActiveStyleDefId] = useActiveStyleDefId(currentClassesProp);
|
|
1968
|
-
const [activeStyleState, setActiveStyleState] = (0,
|
|
2190
|
+
const [activeStyleState, setActiveStyleState] = (0, import_react15.useState)(null);
|
|
1969
2191
|
const breakpoint = (0, import_editor_responsive.useActiveBreakpoint)();
|
|
1970
|
-
return /* @__PURE__ */
|
|
2192
|
+
return /* @__PURE__ */ React60.createElement(ClassesPropProvider, { prop: currentClassesProp }, /* @__PURE__ */ React60.createElement(
|
|
1971
2193
|
StyleProvider,
|
|
1972
2194
|
{
|
|
1973
2195
|
meta: { breakpoint, state: activeStyleState },
|
|
@@ -1978,13 +2200,11 @@ var StyleTab = () => {
|
|
|
1978
2200
|
},
|
|
1979
2201
|
setMetaState: setActiveStyleState
|
|
1980
2202
|
},
|
|
1981
|
-
/* @__PURE__ */
|
|
1982
|
-
/* @__PURE__ */ React59.createElement(import_ui49.Divider, null),
|
|
1983
|
-
/* @__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)))
|
|
2203
|
+
/* @__PURE__ */ React60.createElement(import_session2.SessionStorageProvider, { prefix: activeStyleDefId ?? "" }, /* @__PURE__ */ React60.createElement(CssClassSelector, null), /* @__PURE__ */ React60.createElement(import_ui49.Divider, null), /* @__PURE__ */ React60.createElement(SectionsList, null, /* @__PURE__ */ React60.createElement(Section, { title: (0, import_i18n38.__)("Layout", "elementor") }, /* @__PURE__ */ React60.createElement(LayoutSection, null)), /* @__PURE__ */ React60.createElement(Section, { title: (0, import_i18n38.__)("Spacing", "elementor") }, /* @__PURE__ */ React60.createElement(SpacingSection, null)), /* @__PURE__ */ React60.createElement(Section, { title: (0, import_i18n38.__)("Size", "elementor") }, /* @__PURE__ */ React60.createElement(SizeSection, null)), /* @__PURE__ */ React60.createElement(Section, { title: (0, import_i18n38.__)("Position", "elementor") }, /* @__PURE__ */ React60.createElement(PositionSection, null)), /* @__PURE__ */ React60.createElement(Section, { title: (0, import_i18n38.__)("Typography", "elementor") }, /* @__PURE__ */ React60.createElement(TypographySection, null)), /* @__PURE__ */ React60.createElement(Section, { title: (0, import_i18n38.__)("Background", "elementor") }, /* @__PURE__ */ React60.createElement(BackgroundSection, null)), /* @__PURE__ */ React60.createElement(Section, { title: (0, import_i18n38.__)("Border", "elementor") }, /* @__PURE__ */ React60.createElement(BorderSection, null)), /* @__PURE__ */ React60.createElement(Section, { title: (0, import_i18n38.__)("Effects", "elementor") }, /* @__PURE__ */ React60.createElement(EffectsSection, null))))
|
|
1984
2204
|
));
|
|
1985
2205
|
};
|
|
1986
2206
|
function useActiveStyleDefId(currentClassesProp) {
|
|
1987
|
-
const [activeStyledDefId, setActiveStyledDefId] = (0,
|
|
2207
|
+
const [activeStyledDefId, setActiveStyledDefId] = (0, import_react15.useState)(null);
|
|
1988
2208
|
const fallback = useFirstElementStyleDef(currentClassesProp);
|
|
1989
2209
|
return [activeStyledDefId || fallback?.id || null, setActiveStyledDefId];
|
|
1990
2210
|
}
|
|
@@ -1997,7 +2217,7 @@ function useFirstElementStyleDef(currentClassesProp) {
|
|
|
1997
2217
|
function useCurrentClassesProp() {
|
|
1998
2218
|
const { elementType } = useElement();
|
|
1999
2219
|
const prop = Object.entries(elementType.propsSchema).find(
|
|
2000
|
-
([, propType]) => propType.kind === "
|
|
2220
|
+
([, propType]) => propType.kind === "plain" && propType.key === CLASSES_PROP_KEY
|
|
2001
2221
|
);
|
|
2002
2222
|
if (!prop) {
|
|
2003
2223
|
throw new Error("Element does not have a classes prop");
|
|
@@ -2012,7 +2232,7 @@ var EditingPanelTabs = () => {
|
|
|
2012
2232
|
return (
|
|
2013
2233
|
// When switching between elements, the local states should be reset. We are using key to rerender the tabs.
|
|
2014
2234
|
// Reference: https://react.dev/learn/preserving-and-resetting-state#resetting-a-form-with-a-key
|
|
2015
|
-
/* @__PURE__ */
|
|
2235
|
+
/* @__PURE__ */ React61.createElement(import_react16.Fragment, { key: element.id }, /* @__PURE__ */ React61.createElement(import_ui50.Stack, { direction: "column", sx: { width: "100%" } }, /* @__PURE__ */ React61.createElement(import_ui50.Tabs, { variant: "fullWidth", indicatorColor: "secondary", textColor: "inherit", ...getTabsProps() }, /* @__PURE__ */ React61.createElement(import_ui50.Tab, { label: (0, import_i18n39.__)("General", "elementor"), ...getTabProps("settings") }), /* @__PURE__ */ React61.createElement(import_ui50.Tab, { label: (0, import_i18n39.__)("Style", "elementor"), ...getTabProps("style") })), /* @__PURE__ */ React61.createElement(import_ui50.Divider, null), /* @__PURE__ */ React61.createElement(import_ui50.TabPanel, { ...getTabPanelProps("settings"), disablePadding: true }, /* @__PURE__ */ React61.createElement(SettingsTab, null)), /* @__PURE__ */ React61.createElement(import_ui50.TabPanel, { ...getTabPanelProps("style"), disablePadding: true }, /* @__PURE__ */ React61.createElement(StyleTab, null))))
|
|
2016
2236
|
);
|
|
2017
2237
|
};
|
|
2018
2238
|
|
|
@@ -2026,7 +2246,7 @@ var EditingPanel = () => {
|
|
|
2026
2246
|
return null;
|
|
2027
2247
|
}
|
|
2028
2248
|
const panelTitle = (0, import_i18n40.__)("Edit %s", "elementor").replace("%s", elementType.title);
|
|
2029
|
-
return /* @__PURE__ */
|
|
2249
|
+
return /* @__PURE__ */ React62.createElement(import_ui51.ErrorBoundary, { fallback: /* @__PURE__ */ React62.createElement(EditorPanelErrorFallback, null) }, /* @__PURE__ */ React62.createElement(import_session3.SessionStorageProvider, { prefix: "elementor" }, /* @__PURE__ */ React62.createElement(import_editor_panels.Panel, null, /* @__PURE__ */ React62.createElement(import_editor_panels.PanelHeader, null, /* @__PURE__ */ React62.createElement(import_editor_panels.PanelHeaderTitle, null, panelTitle)), /* @__PURE__ */ React62.createElement(import_editor_panels.PanelBody, null, /* @__PURE__ */ React62.createElement(import_editor_controls41.ControlActionsProvider, { items: menuItems }, /* @__PURE__ */ React62.createElement(import_editor_controls41.ControlReplacementProvider, { ...controlReplacement }, /* @__PURE__ */ React62.createElement(ElementProvider, { element, elementType }, /* @__PURE__ */ React62.createElement(EditingPanelTabs, null))))))));
|
|
2030
2250
|
};
|
|
2031
2251
|
|
|
2032
2252
|
// src/panel.ts
|
|
@@ -2049,7 +2269,7 @@ var isAtomicWidgetSelected = () => {
|
|
|
2049
2269
|
// src/hooks/use-close-editor-panel.ts
|
|
2050
2270
|
var useCloseEditorPanel = () => {
|
|
2051
2271
|
const { close } = usePanelActions();
|
|
2052
|
-
return (0,
|
|
2272
|
+
return (0, import_react17.useEffect)(() => {
|
|
2053
2273
|
return (0, import_editor_v1_adapters2.__privateListenTo)((0, import_editor_v1_adapters2.commandStartEvent)("document/elements/delete"), (e) => {
|
|
2054
2274
|
const selectedElement = (0, import_editor_elements8.getSelectedElements)()[0];
|
|
2055
2275
|
const { container: deletedContainer } = e?.args;
|
|
@@ -2062,11 +2282,11 @@ var useCloseEditorPanel = () => {
|
|
|
2062
2282
|
};
|
|
2063
2283
|
|
|
2064
2284
|
// src/hooks/use-open-editor-panel.ts
|
|
2065
|
-
var
|
|
2285
|
+
var import_react18 = require("react");
|
|
2066
2286
|
var import_editor_v1_adapters3 = require("@elementor/editor-v1-adapters");
|
|
2067
2287
|
var useOpenEditorPanel = () => {
|
|
2068
2288
|
const { open } = usePanelActions();
|
|
2069
|
-
(0,
|
|
2289
|
+
(0, import_react18.useEffect)(() => {
|
|
2070
2290
|
return (0, import_editor_v1_adapters3.__privateListenTo)((0, import_editor_v1_adapters3.commandStartEvent)("panel/editor/open"), () => {
|
|
2071
2291
|
if (isAtomicWidgetSelected()) {
|
|
2072
2292
|
open();
|
|
@@ -2082,6 +2302,26 @@ var EditingPanelHooks = () => {
|
|
|
2082
2302
|
return null;
|
|
2083
2303
|
};
|
|
2084
2304
|
|
|
2305
|
+
// src/hooks/use-unapply-class.ts
|
|
2306
|
+
var import_editor_elements9 = require("@elementor/editor-elements");
|
|
2307
|
+
var useUnapplyClass = (classId) => {
|
|
2308
|
+
const { element } = useElement();
|
|
2309
|
+
const classesProp = useClassesProp();
|
|
2310
|
+
const classes = (0, import_editor_elements9.useElementSetting)(element.id, classesProp);
|
|
2311
|
+
const filteredClasses = classes?.value.filter((className) => className !== classId);
|
|
2312
|
+
return () => {
|
|
2313
|
+
(0, import_editor_elements9.updateSettings)({
|
|
2314
|
+
id: element.id,
|
|
2315
|
+
props: {
|
|
2316
|
+
[classesProp]: {
|
|
2317
|
+
$$type: "classes",
|
|
2318
|
+
value: filteredClasses
|
|
2319
|
+
}
|
|
2320
|
+
}
|
|
2321
|
+
});
|
|
2322
|
+
};
|
|
2323
|
+
};
|
|
2324
|
+
|
|
2085
2325
|
// src/css-classes.ts
|
|
2086
2326
|
var STATES = ["hover", "focus", "active"];
|
|
2087
2327
|
function initCssClasses() {
|
|
@@ -2105,12 +2345,23 @@ function registerStateItems() {
|
|
|
2105
2345
|
});
|
|
2106
2346
|
}
|
|
2107
2347
|
function registerGlobalClassItems() {
|
|
2348
|
+
registerGlobalClassMenuItem({
|
|
2349
|
+
id: "unapply-class",
|
|
2350
|
+
useProps: () => {
|
|
2351
|
+
const { styleId: currentClass } = useCssClassItem();
|
|
2352
|
+
const unapplyClass = useUnapplyClass(currentClass);
|
|
2353
|
+
return {
|
|
2354
|
+
text: "Remove",
|
|
2355
|
+
onClick: unapplyClass
|
|
2356
|
+
};
|
|
2357
|
+
}
|
|
2358
|
+
});
|
|
2108
2359
|
}
|
|
2109
2360
|
|
|
2110
2361
|
// src/dynamics/components/dynamic-selection-control.tsx
|
|
2111
|
-
var
|
|
2112
|
-
var
|
|
2113
|
-
var
|
|
2362
|
+
var React65 = __toESM(require("react"));
|
|
2363
|
+
var import_react22 = require("react");
|
|
2364
|
+
var import_editor_controls45 = require("@elementor/editor-controls");
|
|
2114
2365
|
var import_icons22 = require("@elementor/icons");
|
|
2115
2366
|
var import_ui53 = require("@elementor/ui");
|
|
2116
2367
|
var import_i18n42 = require("@wordpress/i18n");
|
|
@@ -2123,14 +2374,15 @@ var usePersistDynamicValue = (propKey) => {
|
|
|
2123
2374
|
};
|
|
2124
2375
|
|
|
2125
2376
|
// src/dynamics/dynamic-control.tsx
|
|
2126
|
-
var
|
|
2127
|
-
var
|
|
2377
|
+
var React63 = __toESM(require("react"));
|
|
2378
|
+
var import_editor_controls43 = require("@elementor/editor-controls");
|
|
2128
2379
|
|
|
2129
2380
|
// src/dynamics/hooks/use-dynamic-tag.ts
|
|
2130
|
-
var
|
|
2381
|
+
var import_react20 = require("react");
|
|
2131
2382
|
|
|
2132
2383
|
// src/dynamics/hooks/use-prop-dynamic-tags.ts
|
|
2133
|
-
var
|
|
2384
|
+
var import_react19 = require("react");
|
|
2385
|
+
var import_editor_controls42 = require("@elementor/editor-controls");
|
|
2134
2386
|
|
|
2135
2387
|
// src/dynamics/sync/get-elementor-config.ts
|
|
2136
2388
|
var getElementorConfig2 = () => {
|
|
@@ -2169,20 +2421,19 @@ var dynamicPropTypeUtil = (0, import_editor_props4.createPropUtils)(
|
|
|
2169
2421
|
DYNAMIC_PROP_TYPE_KEY,
|
|
2170
2422
|
import_schema.z.strictObject({
|
|
2171
2423
|
name: import_schema.z.string(),
|
|
2172
|
-
settings: import_schema.z.
|
|
2424
|
+
settings: import_schema.z.any().optional()
|
|
2173
2425
|
})
|
|
2174
2426
|
);
|
|
2175
2427
|
|
|
2176
2428
|
// src/dynamics/hooks/use-prop-dynamic-tags.ts
|
|
2177
|
-
var usePropDynamicTags = (
|
|
2429
|
+
var usePropDynamicTags = () => {
|
|
2178
2430
|
let categories = [];
|
|
2179
|
-
const {
|
|
2180
|
-
const propType = elementType.propsSchema?.[propName];
|
|
2431
|
+
const { propType } = (0, import_editor_controls42.useBoundProp)();
|
|
2181
2432
|
if (propType) {
|
|
2182
2433
|
const propDynamicType = getDynamicPropType(propType);
|
|
2183
2434
|
categories = propDynamicType?.settings.categories || [];
|
|
2184
2435
|
}
|
|
2185
|
-
return (0,
|
|
2436
|
+
return (0, import_react19.useMemo)(() => getDynamicTagsByCategories(categories), [categories.join()]);
|
|
2186
2437
|
};
|
|
2187
2438
|
var getDynamicTagsByCategories = (categories) => {
|
|
2188
2439
|
const dynamicTags = getAtomicDynamicTags();
|
|
@@ -2196,49 +2447,51 @@ var getDynamicTagsByCategories = (categories) => {
|
|
|
2196
2447
|
};
|
|
2197
2448
|
|
|
2198
2449
|
// src/dynamics/hooks/use-dynamic-tag.ts
|
|
2199
|
-
var useDynamicTag = (
|
|
2200
|
-
const dynamicTags = usePropDynamicTags(
|
|
2201
|
-
return (0,
|
|
2450
|
+
var useDynamicTag = (tagName) => {
|
|
2451
|
+
const dynamicTags = usePropDynamicTags();
|
|
2452
|
+
return (0, import_react20.useMemo)(() => dynamicTags.find((tag) => tag.name === tagName) ?? null, [dynamicTags, tagName]);
|
|
2202
2453
|
};
|
|
2203
2454
|
|
|
2204
2455
|
// src/dynamics/dynamic-control.tsx
|
|
2205
2456
|
var DynamicControl = ({ bind, children }) => {
|
|
2206
|
-
const { value, setValue
|
|
2457
|
+
const { value, setValue } = (0, import_editor_controls43.useBoundProp)(dynamicPropTypeUtil);
|
|
2207
2458
|
const { name = "", settings } = value ?? {};
|
|
2208
|
-
const dynamicTag = useDynamicTag(
|
|
2459
|
+
const dynamicTag = useDynamicTag(name);
|
|
2209
2460
|
if (!dynamicTag) {
|
|
2210
2461
|
throw new Error(`Dynamic tag ${name} not found`);
|
|
2211
2462
|
}
|
|
2212
|
-
const
|
|
2463
|
+
const dynamicPropType = dynamicTag.props_schema[bind];
|
|
2464
|
+
const defaultValue = dynamicPropType?.default;
|
|
2213
2465
|
const dynamicValue = settings?.[bind] ?? defaultValue;
|
|
2214
|
-
const setDynamicValue = (
|
|
2466
|
+
const setDynamicValue = (newValues) => {
|
|
2215
2467
|
setValue({
|
|
2216
2468
|
name,
|
|
2217
2469
|
settings: {
|
|
2218
2470
|
...settings,
|
|
2219
|
-
|
|
2471
|
+
...newValues
|
|
2220
2472
|
}
|
|
2221
2473
|
});
|
|
2222
2474
|
};
|
|
2223
|
-
|
|
2475
|
+
const propType = createTopLevelOjectType({ schema: dynamicTag.props_schema });
|
|
2476
|
+
return /* @__PURE__ */ React63.createElement(import_editor_controls43.PropProvider, { propType, setValue: setDynamicValue, value: { [bind]: dynamicValue } }, /* @__PURE__ */ React63.createElement(import_editor_controls43.PropKeyProvider, { bind }, children));
|
|
2224
2477
|
};
|
|
2225
2478
|
|
|
2226
2479
|
// src/dynamics/components/dynamic-selection.tsx
|
|
2227
|
-
var
|
|
2228
|
-
var
|
|
2229
|
-
var
|
|
2480
|
+
var React64 = __toESM(require("react"));
|
|
2481
|
+
var import_react21 = require("react");
|
|
2482
|
+
var import_editor_controls44 = require("@elementor/editor-controls");
|
|
2230
2483
|
var import_icons21 = require("@elementor/icons");
|
|
2231
2484
|
var import_ui52 = require("@elementor/ui");
|
|
2232
2485
|
var import_i18n41 = require("@wordpress/i18n");
|
|
2233
2486
|
var SIZE3 = "tiny";
|
|
2234
2487
|
var DynamicSelection = ({ onSelect }) => {
|
|
2235
|
-
const [searchValue, setSearchValue] = (0,
|
|
2488
|
+
const [searchValue, setSearchValue] = (0, import_react21.useState)("");
|
|
2236
2489
|
const { groups: dynamicGroups } = getAtomicDynamicTags() || {};
|
|
2237
|
-
const { value: anyValue } = (0,
|
|
2238
|
-
const { bind, value: dynamicValue, setValue } = (0,
|
|
2490
|
+
const { value: anyValue } = (0, import_editor_controls44.useBoundProp)();
|
|
2491
|
+
const { bind, value: dynamicValue, setValue } = (0, import_editor_controls44.useBoundProp)(dynamicPropTypeUtil);
|
|
2239
2492
|
const [, updatePropValueHistory] = usePersistDynamicValue(bind);
|
|
2240
2493
|
const isCurrentValueDynamic = !!dynamicValue;
|
|
2241
|
-
const options10 = useFilteredOptions(
|
|
2494
|
+
const options10 = useFilteredOptions(searchValue);
|
|
2242
2495
|
const handleSearch = (event) => {
|
|
2243
2496
|
setSearchValue(event.target.value);
|
|
2244
2497
|
};
|
|
@@ -2249,7 +2502,7 @@ var DynamicSelection = ({ onSelect }) => {
|
|
|
2249
2502
|
setValue({ name: value, settings: {} });
|
|
2250
2503
|
onSelect?.();
|
|
2251
2504
|
};
|
|
2252
|
-
return /* @__PURE__ */
|
|
2505
|
+
return /* @__PURE__ */ React64.createElement(import_ui52.Stack, null, /* @__PURE__ */ React64.createElement(import_ui52.Box, { px: 1.5, pb: 1 }, /* @__PURE__ */ React64.createElement(
|
|
2253
2506
|
import_ui52.TextField,
|
|
2254
2507
|
{
|
|
2255
2508
|
fullWidth: true,
|
|
@@ -2258,12 +2511,12 @@ var DynamicSelection = ({ onSelect }) => {
|
|
|
2258
2511
|
onChange: handleSearch,
|
|
2259
2512
|
placeholder: (0, import_i18n41.__)("Search dynamic tag", "elementor"),
|
|
2260
2513
|
InputProps: {
|
|
2261
|
-
startAdornment: /* @__PURE__ */
|
|
2514
|
+
startAdornment: /* @__PURE__ */ React64.createElement(import_ui52.InputAdornment, { position: "start" }, /* @__PURE__ */ React64.createElement(import_icons21.SearchIcon, { fontSize: SIZE3 }))
|
|
2262
2515
|
}
|
|
2263
2516
|
}
|
|
2264
|
-
)), /* @__PURE__ */
|
|
2517
|
+
)), /* @__PURE__ */ React64.createElement(import_ui52.Divider, null), /* @__PURE__ */ React64.createElement(import_ui52.Box, { sx: { overflowY: "auto", height: 260, width: 220 } }, options10.length > 0 ? /* @__PURE__ */ React64.createElement(import_ui52.MenuList, { role: "listbox", tabIndex: 0 }, options10.map(([category, items3], index) => /* @__PURE__ */ React64.createElement(import_react21.Fragment, { key: index }, /* @__PURE__ */ React64.createElement(import_ui52.ListSubheader, { sx: { typography: "caption", color: "text.tertiary" } }, dynamicGroups?.[category]?.title || category), items3.map(({ value, label: tagLabel }) => {
|
|
2265
2518
|
const isSelected = isCurrentValueDynamic && value === dynamicValue?.name;
|
|
2266
|
-
return /* @__PURE__ */
|
|
2519
|
+
return /* @__PURE__ */ React64.createElement(
|
|
2267
2520
|
import_ui52.MenuItem,
|
|
2268
2521
|
{
|
|
2269
2522
|
key: value,
|
|
@@ -2274,7 +2527,7 @@ var DynamicSelection = ({ onSelect }) => {
|
|
|
2274
2527
|
},
|
|
2275
2528
|
tagLabel
|
|
2276
2529
|
);
|
|
2277
|
-
})))) : /* @__PURE__ */
|
|
2530
|
+
})))) : /* @__PURE__ */ React64.createElement(import_ui52.Stack, { alignItems: "center", p: 2.5, gap: 1.5 }, /* @__PURE__ */ React64.createElement(import_icons21.PhotoIcon, { fontSize: "large" }), /* @__PURE__ */ React64.createElement(import_ui52.Typography, { align: "center", variant: "caption", color: "text.secondary" }, (0, import_i18n41.__)("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React64.createElement("br", null), "\u201C", searchValue, "\u201D."), /* @__PURE__ */ React64.createElement(import_ui52.Typography, { align: "center", variant: "caption", color: "text.secondary" }, /* @__PURE__ */ React64.createElement(
|
|
2278
2531
|
import_ui52.Link,
|
|
2279
2532
|
{
|
|
2280
2533
|
color: "secondary",
|
|
@@ -2285,8 +2538,8 @@ var DynamicSelection = ({ onSelect }) => {
|
|
|
2285
2538
|
(0, import_i18n41.__)("Clear the filters", "elementor")
|
|
2286
2539
|
), "\xA0", (0, import_i18n41.__)("and try again.", "elementor")))));
|
|
2287
2540
|
};
|
|
2288
|
-
var useFilteredOptions = (
|
|
2289
|
-
const dynamicTags = usePropDynamicTags(
|
|
2541
|
+
var useFilteredOptions = (searchValue) => {
|
|
2542
|
+
const dynamicTags = usePropDynamicTags();
|
|
2290
2543
|
const options10 = dynamicTags.reduce((categories, { name, label, group }) => {
|
|
2291
2544
|
const isVisible = label.toLowerCase().includes(searchValue.trim().toLowerCase());
|
|
2292
2545
|
if (!isVisible) {
|
|
@@ -2304,38 +2557,38 @@ var useFilteredOptions = (bind, searchValue) => {
|
|
|
2304
2557
|
// src/dynamics/components/dynamic-selection-control.tsx
|
|
2305
2558
|
var SIZE4 = "tiny";
|
|
2306
2559
|
var DynamicSelectionControl = () => {
|
|
2307
|
-
const { setValue: setAnyValue } = (0,
|
|
2308
|
-
const { bind, value } = (0,
|
|
2560
|
+
const { setValue: setAnyValue } = (0, import_editor_controls45.useBoundProp)();
|
|
2561
|
+
const { bind, value } = (0, import_editor_controls45.useBoundProp)(dynamicPropTypeUtil);
|
|
2309
2562
|
const [propValueFromHistory] = usePersistDynamicValue(bind);
|
|
2310
2563
|
const { name: tagName = "" } = value;
|
|
2311
|
-
const selectionPopoverId = (0,
|
|
2564
|
+
const selectionPopoverId = (0, import_react22.useId)();
|
|
2312
2565
|
const selectionPopoverState = (0, import_ui53.usePopupState)({ variant: "popover", popupId: selectionPopoverId });
|
|
2313
|
-
const dynamicTag = useDynamicTag(
|
|
2566
|
+
const dynamicTag = useDynamicTag(tagName);
|
|
2314
2567
|
const removeDynamicTag = () => {
|
|
2315
2568
|
setAnyValue(propValueFromHistory ?? null);
|
|
2316
2569
|
};
|
|
2317
2570
|
if (!dynamicTag) {
|
|
2318
2571
|
throw new Error(`Dynamic tag ${tagName} not found`);
|
|
2319
2572
|
}
|
|
2320
|
-
return /* @__PURE__ */
|
|
2573
|
+
return /* @__PURE__ */ React65.createElement(import_ui53.Box, null, /* @__PURE__ */ React65.createElement(
|
|
2321
2574
|
import_ui53.UnstableTag,
|
|
2322
2575
|
{
|
|
2323
2576
|
fullWidth: true,
|
|
2324
2577
|
showActionsOnHover: true,
|
|
2325
2578
|
label: dynamicTag.label,
|
|
2326
|
-
startIcon: /* @__PURE__ */
|
|
2579
|
+
startIcon: /* @__PURE__ */ React65.createElement(import_icons22.DatabaseIcon, { fontSize: SIZE4 }),
|
|
2327
2580
|
...(0, import_ui53.bindTrigger)(selectionPopoverState),
|
|
2328
|
-
actions: /* @__PURE__ */
|
|
2581
|
+
actions: /* @__PURE__ */ React65.createElement(React65.Fragment, null, /* @__PURE__ */ React65.createElement(DynamicSettingsPopover, { dynamicTag }), /* @__PURE__ */ React65.createElement(
|
|
2329
2582
|
import_ui53.IconButton,
|
|
2330
2583
|
{
|
|
2331
2584
|
size: SIZE4,
|
|
2332
2585
|
onClick: removeDynamicTag,
|
|
2333
2586
|
"aria-label": (0, import_i18n42.__)("Remove dynamic value", "elementor")
|
|
2334
2587
|
},
|
|
2335
|
-
/* @__PURE__ */
|
|
2588
|
+
/* @__PURE__ */ React65.createElement(import_icons22.XIcon, { fontSize: SIZE4 })
|
|
2336
2589
|
))
|
|
2337
2590
|
}
|
|
2338
|
-
), /* @__PURE__ */
|
|
2591
|
+
), /* @__PURE__ */ React65.createElement(
|
|
2339
2592
|
import_ui53.Popover,
|
|
2340
2593
|
{
|
|
2341
2594
|
disablePortal: true,
|
|
@@ -2343,32 +2596,32 @@ var DynamicSelectionControl = () => {
|
|
|
2343
2596
|
anchorOrigin: { vertical: "bottom", horizontal: "left" },
|
|
2344
2597
|
...(0, import_ui53.bindPopover)(selectionPopoverState)
|
|
2345
2598
|
},
|
|
2346
|
-
/* @__PURE__ */
|
|
2599
|
+
/* @__PURE__ */ React65.createElement(import_ui53.Stack, null, /* @__PURE__ */ React65.createElement(import_ui53.Stack, { direction: "row", alignItems: "center", pl: 1.5, pr: 0.5, py: 1.5 }, /* @__PURE__ */ React65.createElement(import_icons22.DatabaseIcon, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React65.createElement(import_ui53.Typography, { variant: "subtitle2" }, (0, import_i18n42.__)("Dynamic Tags", "elementor")), /* @__PURE__ */ React65.createElement(import_ui53.IconButton, { size: SIZE4, sx: { ml: "auto" }, onClick: selectionPopoverState.close }, /* @__PURE__ */ React65.createElement(import_icons22.XIcon, { fontSize: SIZE4 }))), /* @__PURE__ */ React65.createElement(DynamicSelection, { onSelect: selectionPopoverState.close }))
|
|
2347
2600
|
));
|
|
2348
2601
|
};
|
|
2349
2602
|
var DynamicSettingsPopover = ({ dynamicTag }) => {
|
|
2350
|
-
const popupId = (0,
|
|
2603
|
+
const popupId = (0, import_react22.useId)();
|
|
2351
2604
|
const settingsPopupState = (0, import_ui53.usePopupState)({ variant: "popover", popupId });
|
|
2352
2605
|
const hasDynamicSettings = !!dynamicTag.atomic_controls.length;
|
|
2353
2606
|
if (!hasDynamicSettings) {
|
|
2354
2607
|
return null;
|
|
2355
2608
|
}
|
|
2356
|
-
return /* @__PURE__ */
|
|
2609
|
+
return /* @__PURE__ */ React65.createElement(React65.Fragment, null, /* @__PURE__ */ React65.createElement(
|
|
2357
2610
|
import_ui53.IconButton,
|
|
2358
2611
|
{
|
|
2359
2612
|
size: SIZE4,
|
|
2360
2613
|
...(0, import_ui53.bindTrigger)(settingsPopupState),
|
|
2361
2614
|
"aria-label": (0, import_i18n42.__)("Settings", "elementor")
|
|
2362
2615
|
},
|
|
2363
|
-
/* @__PURE__ */
|
|
2364
|
-
), /* @__PURE__ */
|
|
2616
|
+
/* @__PURE__ */ React65.createElement(import_icons22.SettingsIcon, { fontSize: SIZE4 })
|
|
2617
|
+
), /* @__PURE__ */ React65.createElement(
|
|
2365
2618
|
import_ui53.Popover,
|
|
2366
2619
|
{
|
|
2367
2620
|
disableScrollLock: true,
|
|
2368
2621
|
anchorOrigin: { vertical: "bottom", horizontal: "center" },
|
|
2369
2622
|
...(0, import_ui53.bindPopover)(settingsPopupState)
|
|
2370
2623
|
},
|
|
2371
|
-
/* @__PURE__ */
|
|
2624
|
+
/* @__PURE__ */ React65.createElement(import_ui53.Paper, { component: import_ui53.Stack, sx: { minHeight: "300px", width: "220px" } }, /* @__PURE__ */ React65.createElement(import_ui53.Stack, { direction: "row", alignItems: "center", px: 1.5, pt: 2, pb: 1 }, /* @__PURE__ */ React65.createElement(import_icons22.DatabaseIcon, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React65.createElement(import_ui53.Typography, { variant: "subtitle2" }, dynamicTag.label), /* @__PURE__ */ React65.createElement(import_ui53.IconButton, { sx: { ml: "auto" }, size: SIZE4, onClick: settingsPopupState.close }, /* @__PURE__ */ React65.createElement(import_icons22.XIcon, { fontSize: SIZE4 }))), /* @__PURE__ */ React65.createElement(DynamicSettings, { controls: dynamicTag.atomic_controls }))
|
|
2372
2625
|
));
|
|
2373
2626
|
};
|
|
2374
2627
|
var DynamicSettings = ({ controls }) => {
|
|
@@ -2377,10 +2630,10 @@ var DynamicSettings = ({ controls }) => {
|
|
|
2377
2630
|
if (!tabs.length) {
|
|
2378
2631
|
return null;
|
|
2379
2632
|
}
|
|
2380
|
-
return /* @__PURE__ */
|
|
2381
|
-
return /* @__PURE__ */
|
|
2633
|
+
return /* @__PURE__ */ React65.createElement(React65.Fragment, null, /* @__PURE__ */ React65.createElement(import_ui53.Tabs, { indicatorColor: "secondary", textColor: "secondary", ...getTabsProps() }, tabs.map(({ value }, index) => /* @__PURE__ */ React65.createElement(import_ui53.Tab, { key: index, label: value.label, sx: { px: 1, py: 0.5 }, ...getTabProps(index) }))), /* @__PURE__ */ React65.createElement(import_ui53.Divider, null), tabs.map(({ value }, index) => {
|
|
2634
|
+
return /* @__PURE__ */ React65.createElement(import_ui53.TabPanel, { key: index, sx: { flexGrow: 1 }, ...getTabPanelProps(index) }, /* @__PURE__ */ React65.createElement(import_ui53.Stack, { gap: 1, px: 2 }, value.items.map((item) => {
|
|
2382
2635
|
if (item.type === "control") {
|
|
2383
|
-
return /* @__PURE__ */
|
|
2636
|
+
return /* @__PURE__ */ React65.createElement(Control3, { key: item.value.bind, control: item.value });
|
|
2384
2637
|
}
|
|
2385
2638
|
return null;
|
|
2386
2639
|
})));
|
|
@@ -2390,24 +2643,22 @@ var Control3 = ({ control }) => {
|
|
|
2390
2643
|
if (!getControlByType(control.type)) {
|
|
2391
2644
|
return null;
|
|
2392
2645
|
}
|
|
2393
|
-
return /* @__PURE__ */
|
|
2646
|
+
return /* @__PURE__ */ React65.createElement(DynamicControl, { bind: control.bind }, control.label ? /* @__PURE__ */ React65.createElement(import_editor_controls45.ControlLabel, null, control.label) : null, /* @__PURE__ */ React65.createElement(Control, { type: control.type, props: control.props }));
|
|
2394
2647
|
};
|
|
2395
2648
|
|
|
2396
2649
|
// src/dynamics/hooks/use-prop-dynamic-action.tsx
|
|
2397
|
-
var
|
|
2398
|
-
var
|
|
2650
|
+
var React66 = __toESM(require("react"));
|
|
2651
|
+
var import_editor_controls46 = require("@elementor/editor-controls");
|
|
2399
2652
|
var import_icons23 = require("@elementor/icons");
|
|
2400
2653
|
var import_i18n43 = require("@wordpress/i18n");
|
|
2401
2654
|
var usePropDynamicAction = () => {
|
|
2402
|
-
const {
|
|
2403
|
-
const { elementType } = useElement();
|
|
2404
|
-
const propType = elementType.propsSchema[bind];
|
|
2655
|
+
const { propType } = (0, import_editor_controls46.useBoundProp)();
|
|
2405
2656
|
const visible = !!propType && supportsDynamic(propType);
|
|
2406
2657
|
return {
|
|
2407
2658
|
visible,
|
|
2408
2659
|
icon: import_icons23.DatabaseIcon,
|
|
2409
2660
|
title: (0, import_i18n43.__)("Dynamic Tags", "elementor"),
|
|
2410
|
-
popoverContent: ({ closePopover }) => /* @__PURE__ */
|
|
2661
|
+
popoverContent: ({ closePopover }) => /* @__PURE__ */ React66.createElement(DynamicSelection, { onSelect: closePopover })
|
|
2411
2662
|
};
|
|
2412
2663
|
};
|
|
2413
2664
|
|