@elementor/editor-editing-panel 4.3.0-1047 → 4.3.0-1049
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/dist/index.d.mts +12 -103
- package/dist/index.d.ts +12 -103
- package/dist/index.js +627 -289
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +546 -201
- package/dist/index.mjs.map +1 -1
- package/package.json +24 -24
- package/src/controls-registry/controls-registry.tsx +2 -2
- package/src/controls-registry/element-controls/accordion-items-control/accordion-items-control.tsx +141 -0
- package/src/controls-registry/element-controls/accordion-items-control/use-actions.ts +235 -0
- package/src/controls-registry/element-controls/accordion-items-control/use-show-icon-write-through.ts +135 -0
- package/src/controls-registry/element-controls/registry.ts +2 -0
package/dist/index.mjs
CHANGED
|
@@ -2416,7 +2416,7 @@ import {
|
|
|
2416
2416
|
dateRangePropTypeUtil,
|
|
2417
2417
|
DateTimePropTypeUtil,
|
|
2418
2418
|
emailsPropTypeUtil,
|
|
2419
|
-
|
|
2419
|
+
escapedHtmlPropTypeUtil,
|
|
2420
2420
|
imagePropTypeUtil,
|
|
2421
2421
|
keyValuePropTypeUtil,
|
|
2422
2422
|
linkPropTypeUtil,
|
|
@@ -2456,7 +2456,7 @@ var controlTypes = {
|
|
|
2456
2456
|
toggle: { component: ToggleControl, layout: "full", propTypeUtil: stringPropTypeUtil2 },
|
|
2457
2457
|
"date-time": { component: DateTimeControl, layout: "full", propTypeUtil: DateTimePropTypeUtil },
|
|
2458
2458
|
video: { component: VideoMediaControl, layout: "full", propTypeUtil: videoSrcPropTypeUtil },
|
|
2459
|
-
"inline-editing": { component: InlineEditingControl, layout: "full", propTypeUtil:
|
|
2459
|
+
"inline-editing": { component: InlineEditingControl, layout: "full", propTypeUtil: escapedHtmlPropTypeUtil },
|
|
2460
2460
|
email: { component: EmailFormActionControl, layout: "custom", propTypeUtil: emailsPropTypeUtil },
|
|
2461
2461
|
"date-range": {
|
|
2462
2462
|
component: DateRangeControl,
|
|
@@ -5885,27 +5885,371 @@ var init = () => {
|
|
|
5885
5885
|
}
|
|
5886
5886
|
};
|
|
5887
5887
|
|
|
5888
|
-
// src/controls-registry/element-controls/
|
|
5888
|
+
// src/controls-registry/element-controls/accordion-items-control/accordion-items-control.tsx
|
|
5889
5889
|
import * as React95 from "react";
|
|
5890
|
+
import { ControlFormLabel as ControlFormLabel3, Repeater } from "@elementor/editor-controls";
|
|
5891
|
+
import { updateElementEditorSettings as updateElementEditorSettings2, useElementChildren, useElementEditorSettings as useElementEditorSettings2 } from "@elementor/editor-elements";
|
|
5892
|
+
import { booleanPropTypeUtil as booleanPropTypeUtil4 } from "@elementor/editor-props";
|
|
5893
|
+
import { Stack as Stack15, TextField as TextField2 } from "@elementor/ui";
|
|
5894
|
+
import { __ as __70 } from "@wordpress/i18n";
|
|
5895
|
+
|
|
5896
|
+
// src/controls-registry/element-controls/accordion-items-control/use-actions.ts
|
|
5890
5897
|
import {
|
|
5891
|
-
|
|
5892
|
-
|
|
5898
|
+
createElements,
|
|
5899
|
+
duplicateElements,
|
|
5900
|
+
generateElementId,
|
|
5901
|
+
getContainer as getContainer2,
|
|
5902
|
+
moveElements,
|
|
5903
|
+
removeElements
|
|
5904
|
+
} from "@elementor/editor-elements";
|
|
5905
|
+
import { booleanPropTypeUtil as booleanPropTypeUtil2, escapedHtmlPropTypeUtil as escapedHtmlPropTypeUtil2 } from "@elementor/editor-props";
|
|
5906
|
+
import { __ as __68, sprintf } from "@wordpress/i18n";
|
|
5907
|
+
var ACCORDION_ELEMENT_TYPE = "e-accordion";
|
|
5908
|
+
var ACCORDION_ITEM_ELEMENT_TYPE = "e-accordion-item";
|
|
5909
|
+
var ACCORDION_ITEM_HEADER_ELEMENT_TYPE = "e-accordion-item-header";
|
|
5910
|
+
var ACCORDION_ITEM_TITLE_ELEMENT_TYPE = "e-accordion-item-title";
|
|
5911
|
+
var ACCORDION_ITEM_ICON_ELEMENT_TYPE = "e-accordion-item-icon";
|
|
5912
|
+
var ACCORDION_ITEM_CONTENT_ELEMENT_TYPE = "e-accordion-item-content";
|
|
5913
|
+
var PARAGRAPH_WIDGET_TYPE = "e-paragraph";
|
|
5914
|
+
var getItemTitle = (position) => (
|
|
5915
|
+
/* translators: %d: Accordion item position. */
|
|
5916
|
+
sprintf(__68("Accordion Item %d", "elementor"), position)
|
|
5917
|
+
);
|
|
5918
|
+
var TRAILING_NUMBER = /(\d+)\s*$/;
|
|
5919
|
+
var getNextItemNumber = (existingTitles) => {
|
|
5920
|
+
const taken = new Set(existingTitles.filter((title) => Boolean(title)));
|
|
5921
|
+
const highest = existingTitles.reduce((max, title) => {
|
|
5922
|
+
const [, trailingNumber] = title?.match(TRAILING_NUMBER) ?? [];
|
|
5923
|
+
const parsed = trailingNumber ? Number(trailingNumber) : 0;
|
|
5924
|
+
return Number.isFinite(parsed) && parsed > max ? parsed : max;
|
|
5925
|
+
}, 0);
|
|
5926
|
+
let next = highest + 1;
|
|
5927
|
+
while (taken.has(getItemTitle(next))) {
|
|
5928
|
+
next += 1;
|
|
5929
|
+
}
|
|
5930
|
+
return next;
|
|
5931
|
+
};
|
|
5932
|
+
var buildItemModel = (position, showIcon) => {
|
|
5933
|
+
const numberedTitle = getItemTitle(position);
|
|
5934
|
+
return {
|
|
5935
|
+
elType: ACCORDION_ITEM_ELEMENT_TYPE,
|
|
5936
|
+
id: generateElementId(),
|
|
5937
|
+
editor_settings: { title: numberedTitle, initial_position: position },
|
|
5938
|
+
elements: [
|
|
5939
|
+
{
|
|
5940
|
+
elType: ACCORDION_ITEM_HEADER_ELEMENT_TYPE,
|
|
5941
|
+
id: generateElementId(),
|
|
5942
|
+
editor_settings: { title: __68("Header", "elementor") },
|
|
5943
|
+
// Seeded from the root's *current* `show_icon` value, not the schema default: if a user
|
|
5944
|
+
// has already turned Show Icon off, a newly added item must start with its icon hidden
|
|
5945
|
+
// too, not re-show one just because the item itself is brand new. See the comment on
|
|
5946
|
+
// the mirrored prop in `Atomic_Accordion_Item_Header` for why this duplication exists.
|
|
5947
|
+
settings: { show_icon: booleanPropTypeUtil2.create(showIcon) },
|
|
5948
|
+
elements: [
|
|
5949
|
+
{
|
|
5950
|
+
elType: ACCORDION_ITEM_TITLE_ELEMENT_TYPE,
|
|
5951
|
+
id: generateElementId(),
|
|
5952
|
+
editor_settings: { title: __68("Title", "elementor") },
|
|
5953
|
+
elements: [
|
|
5954
|
+
{
|
|
5955
|
+
elType: "widget",
|
|
5956
|
+
widgetType: PARAGRAPH_WIDGET_TYPE,
|
|
5957
|
+
id: generateElementId(),
|
|
5958
|
+
// A leaf still needs an explicit empty `elements`: `ElementModel.initialize()` only
|
|
5959
|
+
// turns the attribute into a collection when it is defined, and v1 code walking a
|
|
5960
|
+
// subtree (`deselectRecursive()` on delete) calls `.forEach()` on it unguarded.
|
|
5961
|
+
elements: [],
|
|
5962
|
+
settings: {
|
|
5963
|
+
paragraph: escapedHtmlPropTypeUtil2.create(numberedTitle),
|
|
5964
|
+
tag: { $$type: "string", value: "span" }
|
|
5965
|
+
}
|
|
5966
|
+
}
|
|
5967
|
+
]
|
|
5968
|
+
},
|
|
5969
|
+
{
|
|
5970
|
+
elType: ACCORDION_ITEM_ICON_ELEMENT_TYPE,
|
|
5971
|
+
id: generateElementId(),
|
|
5972
|
+
editor_settings: { title: __68("Icon", "elementor") },
|
|
5973
|
+
elements: [],
|
|
5974
|
+
hydrateDefaultChildren: true
|
|
5975
|
+
}
|
|
5976
|
+
]
|
|
5977
|
+
},
|
|
5978
|
+
{
|
|
5979
|
+
elType: ACCORDION_ITEM_CONTENT_ELEMENT_TYPE,
|
|
5980
|
+
id: generateElementId(),
|
|
5981
|
+
editor_settings: { title: __68("Content", "elementor") },
|
|
5982
|
+
elements: [],
|
|
5983
|
+
hydrateDefaultChildren: true
|
|
5984
|
+
}
|
|
5985
|
+
]
|
|
5986
|
+
};
|
|
5987
|
+
};
|
|
5988
|
+
var useActions = () => {
|
|
5989
|
+
const addItem = ({
|
|
5990
|
+
accordionId,
|
|
5991
|
+
existingTitles,
|
|
5992
|
+
items: items3,
|
|
5993
|
+
showIcon
|
|
5994
|
+
}) => {
|
|
5995
|
+
const accordion = getContainer2(accordionId);
|
|
5996
|
+
if (!accordion) {
|
|
5997
|
+
throw new Error("Accordion container not found");
|
|
5998
|
+
}
|
|
5999
|
+
const titles = [...existingTitles];
|
|
6000
|
+
items3.forEach(() => {
|
|
6001
|
+
const position = getNextItemNumber(titles);
|
|
6002
|
+
createElements({
|
|
6003
|
+
title: __68("Accordion", "elementor"),
|
|
6004
|
+
elements: [
|
|
6005
|
+
{
|
|
6006
|
+
container: accordion,
|
|
6007
|
+
// `buildItemModel()` returns `V1ElementData`, whose `elements` field is plain nested
|
|
6008
|
+
// data (`V1ElementData[]`) - correct for a tree we're constructing to send as a
|
|
6009
|
+
// creation payload. `CreateElementParams['model']` is derived from
|
|
6010
|
+
// `V1ElementModelProps`, whose `elements` field is typed as `V1Model<...>[]` - live
|
|
6011
|
+
// Backbone-model wrappers with `get`/`set`/`toJSON`, the shape for reading an
|
|
6012
|
+
// *existing* element out of the document, not for describing one to create. A single
|
|
6013
|
+
// cast is enough (the two types overlap enough for TS to allow it directly); no
|
|
6014
|
+
// `unknown` escape hatch needed.
|
|
6015
|
+
model: buildItemModel(position, showIcon)
|
|
6016
|
+
}
|
|
6017
|
+
]
|
|
6018
|
+
});
|
|
6019
|
+
titles.push(getItemTitle(position));
|
|
6020
|
+
});
|
|
6021
|
+
};
|
|
6022
|
+
const removeItem = ({ items: items3 }) => {
|
|
6023
|
+
removeElements({
|
|
6024
|
+
title: __68("Accordion", "elementor"),
|
|
6025
|
+
elementIds: items3.map(({ item }) => item.id)
|
|
6026
|
+
});
|
|
6027
|
+
};
|
|
6028
|
+
const duplicateItem = ({ items: items3 }) => {
|
|
6029
|
+
duplicateElements({
|
|
6030
|
+
title: __68("Duplicate Accordion Item", "elementor"),
|
|
6031
|
+
elementIds: items3.map(({ item }) => item.id)
|
|
6032
|
+
});
|
|
6033
|
+
};
|
|
6034
|
+
const moveItem = ({
|
|
6035
|
+
accordionId,
|
|
6036
|
+
movedElementId,
|
|
6037
|
+
toIndex
|
|
6038
|
+
}) => {
|
|
6039
|
+
const accordion = getContainer2(accordionId);
|
|
6040
|
+
const movedElement = getContainer2(movedElementId);
|
|
6041
|
+
if (!accordion || !movedElement) {
|
|
6042
|
+
throw new Error("Accordion item or container not found");
|
|
6043
|
+
}
|
|
6044
|
+
moveElements({
|
|
6045
|
+
title: __68("Reorder Accordion Items", "elementor"),
|
|
6046
|
+
moves: [
|
|
6047
|
+
{
|
|
6048
|
+
element: movedElement,
|
|
6049
|
+
targetContainer: accordion,
|
|
6050
|
+
options: { at: toIndex }
|
|
6051
|
+
}
|
|
6052
|
+
]
|
|
6053
|
+
});
|
|
6054
|
+
};
|
|
6055
|
+
return {
|
|
6056
|
+
addItem,
|
|
6057
|
+
removeItem,
|
|
6058
|
+
duplicateItem,
|
|
6059
|
+
moveItem
|
|
6060
|
+
};
|
|
6061
|
+
};
|
|
6062
|
+
|
|
6063
|
+
// src/controls-registry/element-controls/accordion-items-control/use-show-icon-write-through.ts
|
|
6064
|
+
import { useEffect as useEffect9, useRef as useRef20 } from "react";
|
|
6065
|
+
import { getContainer as getContainer3, getElementSettings as getElementSettings2, updateElementSettings as updateElementSettings4 } from "@elementor/editor-elements";
|
|
6066
|
+
import { booleanPropTypeUtil as booleanPropTypeUtil3 } from "@elementor/editor-props";
|
|
6067
|
+
import { undoable as undoable5 } from "@elementor/editor-v1-adapters";
|
|
6068
|
+
import { __ as __69 } from "@wordpress/i18n";
|
|
6069
|
+
var ACCORDION_ITEM_HEADER_ELEMENT_TYPE2 = "e-accordion-item-header";
|
|
6070
|
+
var cascadeShowIconToHeaders = undoable5(
|
|
6071
|
+
{
|
|
6072
|
+
do: ({ accordionId, showIcon }) => {
|
|
6073
|
+
const headerIds = getAccordionHeaderIds(accordionId);
|
|
6074
|
+
const previous = Object.fromEntries(
|
|
6075
|
+
headerIds.map(
|
|
6076
|
+
(headerId) => [
|
|
6077
|
+
headerId,
|
|
6078
|
+
getElementSettings2(headerId, [
|
|
6079
|
+
"show_icon"
|
|
6080
|
+
]).show_icon
|
|
6081
|
+
]
|
|
6082
|
+
)
|
|
6083
|
+
);
|
|
6084
|
+
headerIds.forEach((headerId) => {
|
|
6085
|
+
updateElementSettings4({
|
|
6086
|
+
id: headerId,
|
|
6087
|
+
props: { show_icon: booleanPropTypeUtil3.create(showIcon) },
|
|
6088
|
+
withHistory: false
|
|
6089
|
+
});
|
|
6090
|
+
});
|
|
6091
|
+
return { previous };
|
|
6092
|
+
},
|
|
6093
|
+
undo: (_payload, { previous }) => {
|
|
6094
|
+
Object.entries(previous).forEach(([headerId, previousValue]) => {
|
|
6095
|
+
updateElementSettings4({
|
|
6096
|
+
id: headerId,
|
|
6097
|
+
props: { show_icon: previousValue ?? null },
|
|
6098
|
+
withHistory: false
|
|
6099
|
+
});
|
|
6100
|
+
});
|
|
6101
|
+
}
|
|
6102
|
+
},
|
|
6103
|
+
{
|
|
6104
|
+
title: __69("Accordion", "elementor"),
|
|
6105
|
+
subtitle: __69("Show Icon", "elementor"),
|
|
6106
|
+
// `undoable()`'s debounce only delays when the *history entry* is pushed onto the undo stack -
|
|
6107
|
+
// the settings write itself (`do()`) still runs synchronously on every call. The root's own
|
|
6108
|
+
// `show_icon` change goes through `SettingsField` -> `useUndoableUpdateElementProp`
|
|
6109
|
+
// (`settings-field.tsx`), which debounces its history push by `HISTORY_DEBOUNCE_WAIT` (800ms).
|
|
6110
|
+
// Without matching that here, this cascade's history entry (pushed immediately) would land on
|
|
6111
|
+
// the undo stack *before* the root's (pushed 800ms later), so the first Undo after a toggle
|
|
6112
|
+
// would revert the root switch alone while every header stayed on its new value - the switch and
|
|
6113
|
+
// the icons would visibly disagree until a second Undo. Matching the debounce window fixes the
|
|
6114
|
+
// stack order to be deterministic (root's own entry, then this one) regardless of how quickly a
|
|
6115
|
+
// user hits Undo. It does not make the two changes one atomic transaction - see the comment on
|
|
6116
|
+
// `useShowIconWriteThrough` for why that would require forking the shared `Switch_Control`.
|
|
6117
|
+
debounce: { wait: HISTORY_DEBOUNCE_WAIT }
|
|
6118
|
+
}
|
|
6119
|
+
);
|
|
6120
|
+
function getAccordionHeaderIds(accordionId) {
|
|
6121
|
+
const accordion = getContainer3(accordionId);
|
|
6122
|
+
const itemContainers = (accordion?.children ?? []).filter(
|
|
6123
|
+
(child) => child.model.get("elType") === ACCORDION_ITEM_ELEMENT_TYPE
|
|
6124
|
+
);
|
|
6125
|
+
const headerContainers = itemContainers.map(
|
|
6126
|
+
(item) => item.children?.find((child) => child.model.get("elType") === ACCORDION_ITEM_HEADER_ELEMENT_TYPE2)
|
|
6127
|
+
).filter((header) => Boolean(header));
|
|
6128
|
+
return headerContainers.map((header) => header.id);
|
|
6129
|
+
}
|
|
6130
|
+
function useShowIconWriteThrough(accordionId, showIcon) {
|
|
6131
|
+
const previousRef = useRef20(null);
|
|
6132
|
+
useEffect9(() => {
|
|
6133
|
+
const previous = previousRef.current;
|
|
6134
|
+
previousRef.current = { accordionId, showIcon };
|
|
6135
|
+
if (!previous || previous.accordionId !== accordionId || previous.showIcon === showIcon) {
|
|
6136
|
+
return;
|
|
6137
|
+
}
|
|
6138
|
+
cascadeShowIconToHeaders({ accordionId, showIcon });
|
|
6139
|
+
}, [accordionId, showIcon]);
|
|
6140
|
+
}
|
|
6141
|
+
|
|
6142
|
+
// src/controls-registry/element-controls/accordion-items-control/accordion-items-control.tsx
|
|
6143
|
+
var AccordionItemsControl = ({ label }) => {
|
|
6144
|
+
const { element, settings } = useElement();
|
|
6145
|
+
const { addItem, duplicateItem, moveItem, removeItem } = useActions();
|
|
6146
|
+
const { [ACCORDION_ITEM_ELEMENT_TYPE]: items3 } = useElementChildren(
|
|
6147
|
+
element.id,
|
|
6148
|
+
{ [ACCORDION_ELEMENT_TYPE]: ACCORDION_ITEM_ELEMENT_TYPE },
|
|
6149
|
+
{ includeSelfAsParent: true }
|
|
6150
|
+
);
|
|
6151
|
+
const showIcon = booleanPropTypeUtil4.extract(settings.show_icon) ?? true;
|
|
6152
|
+
useShowIconWriteThrough(element.id, showIcon);
|
|
6153
|
+
const repeaterValues = items3.map((item, index) => {
|
|
6154
|
+
return {
|
|
6155
|
+
id: item.id,
|
|
6156
|
+
title: item.editorSettings?.title,
|
|
6157
|
+
index
|
|
6158
|
+
};
|
|
6159
|
+
});
|
|
6160
|
+
const setValue = (_newValues, _options, meta) => {
|
|
6161
|
+
if (meta?.action?.type === "add") {
|
|
6162
|
+
return addItem({
|
|
6163
|
+
accordionId: element.id,
|
|
6164
|
+
// The new item's number comes from the titles already in use, not from the item count -
|
|
6165
|
+
// see `getNextItemNumber`.
|
|
6166
|
+
existingTitles: repeaterValues.map(({ title }) => title),
|
|
6167
|
+
items: meta.action.payload,
|
|
6168
|
+
showIcon
|
|
6169
|
+
});
|
|
6170
|
+
}
|
|
6171
|
+
if (meta?.action?.type === "remove") {
|
|
6172
|
+
return removeItem({ items: meta.action.payload });
|
|
6173
|
+
}
|
|
6174
|
+
if (meta?.action?.type === "duplicate") {
|
|
6175
|
+
return duplicateItem({ items: meta.action.payload });
|
|
6176
|
+
}
|
|
6177
|
+
if (meta?.action?.type === "reorder") {
|
|
6178
|
+
const { from, to } = meta.action.payload;
|
|
6179
|
+
return moveItem({
|
|
6180
|
+
accordionId: element.id,
|
|
6181
|
+
movedElementId: items3[from].id,
|
|
6182
|
+
toIndex: to
|
|
6183
|
+
});
|
|
6184
|
+
}
|
|
6185
|
+
};
|
|
6186
|
+
return /* @__PURE__ */ React95.createElement(
|
|
6187
|
+
Repeater,
|
|
6188
|
+
{
|
|
6189
|
+
showToggle: false,
|
|
6190
|
+
values: repeaterValues,
|
|
6191
|
+
setValues: setValue,
|
|
6192
|
+
showRemove: repeaterValues.length > 1,
|
|
6193
|
+
label,
|
|
6194
|
+
adornment: () => null,
|
|
6195
|
+
itemSettings: {
|
|
6196
|
+
getId: ({ item }) => item.id,
|
|
6197
|
+
initialValues: { id: "", title: __70("Accordion Item", "elementor") },
|
|
6198
|
+
Label: ItemLabel,
|
|
6199
|
+
Content: ItemContent,
|
|
6200
|
+
Icon: () => null
|
|
6201
|
+
}
|
|
6202
|
+
}
|
|
6203
|
+
);
|
|
6204
|
+
};
|
|
6205
|
+
var ItemLabel = ({ value }) => {
|
|
6206
|
+
return /* @__PURE__ */ React95.createElement(Stack15, { sx: { minHeight: 20 }, direction: "row", alignItems: "center", gap: 1.5 }, /* @__PURE__ */ React95.createElement("span", null, value?.title));
|
|
6207
|
+
};
|
|
6208
|
+
var ItemContent = ({ value }) => {
|
|
6209
|
+
if (!value.id) {
|
|
6210
|
+
return null;
|
|
6211
|
+
}
|
|
6212
|
+
return /* @__PURE__ */ React95.createElement(Stack15, { p: 2, gap: 1.5 }, /* @__PURE__ */ React95.createElement(ItemNameControl, { elementId: value.id }));
|
|
6213
|
+
};
|
|
6214
|
+
var ItemNameControl = ({ elementId }) => {
|
|
6215
|
+
const editorSettings = useElementEditorSettings2(elementId);
|
|
6216
|
+
const label = editorSettings?.title ?? "";
|
|
6217
|
+
return /* @__PURE__ */ React95.createElement(Stack15, { gap: 1 }, /* @__PURE__ */ React95.createElement(ControlFormLabel3, null, __70("Name", "elementor")), /* @__PURE__ */ React95.createElement(
|
|
6218
|
+
TextField2,
|
|
6219
|
+
{
|
|
6220
|
+
size: "tiny",
|
|
6221
|
+
value: label,
|
|
6222
|
+
onChange: ({ target }) => {
|
|
6223
|
+
updateElementEditorSettings2({
|
|
6224
|
+
elementId,
|
|
6225
|
+
settings: { title: target.value }
|
|
6226
|
+
});
|
|
6227
|
+
}
|
|
6228
|
+
}
|
|
6229
|
+
));
|
|
6230
|
+
};
|
|
6231
|
+
|
|
6232
|
+
// src/controls-registry/element-controls/tabs-control/tabs-control.tsx
|
|
6233
|
+
import * as React96 from "react";
|
|
6234
|
+
import {
|
|
6235
|
+
ControlFormLabel as ControlFormLabel4,
|
|
6236
|
+
Repeater as Repeater2,
|
|
5893
6237
|
useBoundProp as useBoundProp7
|
|
5894
6238
|
} from "@elementor/editor-controls";
|
|
5895
6239
|
import {
|
|
5896
|
-
updateElementEditorSettings as
|
|
5897
|
-
useElementChildren,
|
|
5898
|
-
useElementEditorSettings as
|
|
6240
|
+
updateElementEditorSettings as updateElementEditorSettings3,
|
|
6241
|
+
useElementChildren as useElementChildren2,
|
|
6242
|
+
useElementEditorSettings as useElementEditorSettings3
|
|
5899
6243
|
} from "@elementor/editor-elements";
|
|
5900
6244
|
import { numberPropTypeUtil as numberPropTypeUtil4 } from "@elementor/editor-props";
|
|
5901
6245
|
import { InfoCircleFilledIcon as InfoCircleFilledIcon2 } from "@elementor/icons";
|
|
5902
|
-
import { Alert as Alert4, Chip as Chip4, Infotip as Infotip2, Stack as
|
|
5903
|
-
import { __ as
|
|
6246
|
+
import { Alert as Alert4, Chip as Chip4, Infotip as Infotip2, Stack as Stack16, Switch as Switch2, TextField as TextField3, Typography as Typography5 } from "@elementor/ui";
|
|
6247
|
+
import { __ as __72 } from "@wordpress/i18n";
|
|
5904
6248
|
|
|
5905
6249
|
// src/controls-registry/element-controls/get-element-by-type.ts
|
|
5906
|
-
import { getContainer as
|
|
6250
|
+
import { getContainer as getContainer4 } from "@elementor/editor-elements";
|
|
5907
6251
|
var getElementByType = (elementId, type) => {
|
|
5908
|
-
const currentElement =
|
|
6252
|
+
const currentElement = getContainer4(elementId);
|
|
5909
6253
|
if (!currentElement) {
|
|
5910
6254
|
return null;
|
|
5911
6255
|
}
|
|
@@ -5918,17 +6262,17 @@ var getElementByType = (elementId, type) => {
|
|
|
5918
6262
|
// src/controls-registry/element-controls/tabs-control/use-actions.ts
|
|
5919
6263
|
import { useBoundProp as useBoundProp6 } from "@elementor/editor-controls";
|
|
5920
6264
|
import {
|
|
5921
|
-
createElements,
|
|
5922
|
-
duplicateElements,
|
|
5923
|
-
getContainer as
|
|
5924
|
-
moveElements,
|
|
5925
|
-
removeElements
|
|
6265
|
+
createElements as createElements2,
|
|
6266
|
+
duplicateElements as duplicateElements2,
|
|
6267
|
+
getContainer as getContainer5,
|
|
6268
|
+
moveElements as moveElements2,
|
|
6269
|
+
removeElements as removeElements2
|
|
5926
6270
|
} from "@elementor/editor-elements";
|
|
5927
6271
|
import { numberPropTypeUtil as numberPropTypeUtil3 } from "@elementor/editor-props";
|
|
5928
|
-
import { __ as
|
|
6272
|
+
import { __ as __71 } from "@wordpress/i18n";
|
|
5929
6273
|
var TAB_ELEMENT_TYPE = "e-tab";
|
|
5930
6274
|
var TAB_CONTENT_ELEMENT_TYPE = "e-tab-content";
|
|
5931
|
-
var
|
|
6275
|
+
var useActions2 = () => {
|
|
5932
6276
|
const { value, setValue: setDefaultActiveTab } = useBoundProp6(numberPropTypeUtil3);
|
|
5933
6277
|
const defaultActiveTab = value ?? 0;
|
|
5934
6278
|
const duplicateItem = ({
|
|
@@ -5941,14 +6285,14 @@ var useActions = () => {
|
|
|
5941
6285
|
});
|
|
5942
6286
|
items3.forEach(({ item, index }) => {
|
|
5943
6287
|
const tabId = item.id;
|
|
5944
|
-
const tabContentAreaContainer =
|
|
6288
|
+
const tabContentAreaContainer = getContainer5(tabContentAreaId);
|
|
5945
6289
|
const tabContentId = tabContentAreaContainer?.children?.[index]?.id;
|
|
5946
6290
|
if (!tabContentId) {
|
|
5947
6291
|
throw new Error("Original content ID is required for duplication");
|
|
5948
6292
|
}
|
|
5949
|
-
|
|
6293
|
+
duplicateElements2({
|
|
5950
6294
|
elementIds: [tabId, tabContentId],
|
|
5951
|
-
title:
|
|
6295
|
+
title: __71("Duplicate Tab", "elementor"),
|
|
5952
6296
|
onDuplicateElements: () => {
|
|
5953
6297
|
if (newDefault !== defaultActiveTab) {
|
|
5954
6298
|
setDefaultActiveTab(newDefault, {}, { withHistory: false });
|
|
@@ -5969,10 +6313,10 @@ var useActions = () => {
|
|
|
5969
6313
|
movedElementId,
|
|
5970
6314
|
movedElementIndex
|
|
5971
6315
|
}) => {
|
|
5972
|
-
const tabContentContainer =
|
|
6316
|
+
const tabContentContainer = getContainer5(tabContentAreaId);
|
|
5973
6317
|
const tabContent = tabContentContainer?.children?.[movedElementIndex];
|
|
5974
|
-
const movedElement =
|
|
5975
|
-
const tabsMenu =
|
|
6318
|
+
const movedElement = getContainer5(movedElementId);
|
|
6319
|
+
const tabsMenu = getContainer5(tabsMenuId);
|
|
5976
6320
|
if (!tabContent) {
|
|
5977
6321
|
throw new Error("Content element is required");
|
|
5978
6322
|
}
|
|
@@ -5984,8 +6328,8 @@ var useActions = () => {
|
|
|
5984
6328
|
to: toIndex,
|
|
5985
6329
|
defaultActiveTab
|
|
5986
6330
|
});
|
|
5987
|
-
|
|
5988
|
-
title:
|
|
6331
|
+
moveElements2({
|
|
6332
|
+
title: __71("Reorder Tabs", "elementor"),
|
|
5989
6333
|
moves: [
|
|
5990
6334
|
{
|
|
5991
6335
|
element: movedElement,
|
|
@@ -6018,11 +6362,11 @@ var useActions = () => {
|
|
|
6018
6362
|
items: items3,
|
|
6019
6363
|
defaultActiveTab
|
|
6020
6364
|
});
|
|
6021
|
-
|
|
6022
|
-
title:
|
|
6365
|
+
removeElements2({
|
|
6366
|
+
title: __71("Tabs", "elementor"),
|
|
6023
6367
|
elementIds: items3.flatMap(({ item, index }) => {
|
|
6024
6368
|
const tabId = item.id;
|
|
6025
|
-
const tabContentContainer =
|
|
6369
|
+
const tabContentContainer = getContainer5(tabContentAreaId);
|
|
6026
6370
|
const tabContentId = tabContentContainer?.children?.[index]?.id;
|
|
6027
6371
|
if (!tabContentId) {
|
|
6028
6372
|
throw new Error("Content ID is required");
|
|
@@ -6046,15 +6390,15 @@ var useActions = () => {
|
|
|
6046
6390
|
tabsMenuId,
|
|
6047
6391
|
items: items3
|
|
6048
6392
|
}) => {
|
|
6049
|
-
const tabContentArea =
|
|
6050
|
-
const tabsMenu =
|
|
6393
|
+
const tabContentArea = getContainer5(tabContentAreaId);
|
|
6394
|
+
const tabsMenu = getContainer5(tabsMenuId);
|
|
6051
6395
|
if (!tabContentArea || !tabsMenu) {
|
|
6052
6396
|
throw new Error("Tab containers not found");
|
|
6053
6397
|
}
|
|
6054
6398
|
items3.forEach(({ index }) => {
|
|
6055
6399
|
const position = index + 1;
|
|
6056
|
-
|
|
6057
|
-
title:
|
|
6400
|
+
createElements2({
|
|
6401
|
+
title: __71("Tabs", "elementor"),
|
|
6058
6402
|
elements: [
|
|
6059
6403
|
{
|
|
6060
6404
|
container: tabContentArea,
|
|
@@ -6123,12 +6467,12 @@ var calculateDefaultOnDuplicate = ({
|
|
|
6123
6467
|
var TAB_MENU_ELEMENT_TYPE = "e-tabs-menu";
|
|
6124
6468
|
var TAB_CONTENT_AREA_ELEMENT_TYPE = "e-tabs-content-area";
|
|
6125
6469
|
var TabsControl = ({ label }) => {
|
|
6126
|
-
return /* @__PURE__ */
|
|
6470
|
+
return /* @__PURE__ */ React96.createElement(SettingsField, { bind: "default-active-tab", propDisplayName: __72("Tabs", "elementor") }, /* @__PURE__ */ React96.createElement(TabsControlContent, { label }));
|
|
6127
6471
|
};
|
|
6128
6472
|
var TabsControlContent = ({ label }) => {
|
|
6129
6473
|
const { element } = useElement();
|
|
6130
|
-
const { addItem, duplicateItem, moveItem, removeItem } =
|
|
6131
|
-
const { [TAB_ELEMENT_TYPE]: tabLinks } =
|
|
6474
|
+
const { addItem, duplicateItem, moveItem, removeItem } = useActions2();
|
|
6475
|
+
const { [TAB_ELEMENT_TYPE]: tabLinks } = useElementChildren2(element.id, {
|
|
6132
6476
|
[TAB_MENU_ELEMENT_TYPE]: TAB_ELEMENT_TYPE
|
|
6133
6477
|
});
|
|
6134
6478
|
const tabList = getElementByType(element.id, TAB_MENU_ELEMENT_TYPE);
|
|
@@ -6167,8 +6511,8 @@ var TabsControlContent = ({ label }) => {
|
|
|
6167
6511
|
});
|
|
6168
6512
|
}
|
|
6169
6513
|
};
|
|
6170
|
-
return /* @__PURE__ */
|
|
6171
|
-
|
|
6514
|
+
return /* @__PURE__ */ React96.createElement(
|
|
6515
|
+
Repeater2,
|
|
6172
6516
|
{
|
|
6173
6517
|
showToggle: false,
|
|
6174
6518
|
values: repeaterValues,
|
|
@@ -6178,16 +6522,16 @@ var TabsControlContent = ({ label }) => {
|
|
|
6178
6522
|
itemSettings: {
|
|
6179
6523
|
getId: ({ item }) => item.id,
|
|
6180
6524
|
initialValues: { id: "", title: "Tab" },
|
|
6181
|
-
Label:
|
|
6182
|
-
Content:
|
|
6525
|
+
Label: ItemLabel2,
|
|
6526
|
+
Content: ItemContent2,
|
|
6183
6527
|
Icon: () => null
|
|
6184
6528
|
}
|
|
6185
6529
|
}
|
|
6186
6530
|
);
|
|
6187
6531
|
};
|
|
6188
|
-
var
|
|
6532
|
+
var ItemLabel2 = ({ value, index }) => {
|
|
6189
6533
|
const elementTitle = value?.title;
|
|
6190
|
-
return /* @__PURE__ */
|
|
6534
|
+
return /* @__PURE__ */ React96.createElement(Stack16, { sx: { minHeight: 20 }, direction: "row", alignItems: "center", gap: 1.5 }, /* @__PURE__ */ React96.createElement("span", null, elementTitle), /* @__PURE__ */ React96.createElement(ItemDefaultTab, { index }));
|
|
6191
6535
|
};
|
|
6192
6536
|
var ItemDefaultTab = ({ index }) => {
|
|
6193
6537
|
const { value: defaultItem } = useBoundProp7(numberPropTypeUtil4);
|
|
@@ -6195,18 +6539,18 @@ var ItemDefaultTab = ({ index }) => {
|
|
|
6195
6539
|
if (!isDefault) {
|
|
6196
6540
|
return null;
|
|
6197
6541
|
}
|
|
6198
|
-
return /* @__PURE__ */
|
|
6542
|
+
return /* @__PURE__ */ React96.createElement(Chip4, { size: "tiny", shape: "rounded", label: __72("Default", "elementor") });
|
|
6199
6543
|
};
|
|
6200
|
-
var
|
|
6544
|
+
var ItemContent2 = ({ value, index }) => {
|
|
6201
6545
|
if (!value.id) {
|
|
6202
6546
|
return null;
|
|
6203
6547
|
}
|
|
6204
|
-
return /* @__PURE__ */
|
|
6548
|
+
return /* @__PURE__ */ React96.createElement(Stack16, { p: 2, gap: 1.5 }, /* @__PURE__ */ React96.createElement(TabLabelControl, { elementId: value.id }), /* @__PURE__ */ React96.createElement(SettingsField, { bind: "default-active-tab", propDisplayName: __72("Tabs", "elementor") }, /* @__PURE__ */ React96.createElement(DefaultTabControl, { tabIndex: index })));
|
|
6205
6549
|
};
|
|
6206
6550
|
var DefaultTabControl = ({ tabIndex }) => {
|
|
6207
6551
|
const { value, setValue } = useBoundProp7(numberPropTypeUtil4);
|
|
6208
6552
|
const isDefault = value === tabIndex;
|
|
6209
|
-
return /* @__PURE__ */
|
|
6553
|
+
return /* @__PURE__ */ React96.createElement(Stack16, { direction: "row", alignItems: "center", justifyContent: "space-between", gap: 2 }, /* @__PURE__ */ React96.createElement(ControlFormLabel4, null, __72("Set as default tab", "elementor")), /* @__PURE__ */ React96.createElement(ConditionalTooltip, { showTooltip: isDefault, placement: "right" }, /* @__PURE__ */ React96.createElement(
|
|
6210
6554
|
Switch2,
|
|
6211
6555
|
{
|
|
6212
6556
|
size: "small",
|
|
@@ -6222,15 +6566,15 @@ var DefaultTabControl = ({ tabIndex }) => {
|
|
|
6222
6566
|
)));
|
|
6223
6567
|
};
|
|
6224
6568
|
var TabLabelControl = ({ elementId }) => {
|
|
6225
|
-
const editorSettings =
|
|
6569
|
+
const editorSettings = useElementEditorSettings3(elementId);
|
|
6226
6570
|
const label = editorSettings?.title ?? "";
|
|
6227
|
-
return /* @__PURE__ */
|
|
6228
|
-
|
|
6571
|
+
return /* @__PURE__ */ React96.createElement(Stack16, { gap: 1 }, /* @__PURE__ */ React96.createElement(ControlFormLabel4, null, __72("Tab name", "elementor")), /* @__PURE__ */ React96.createElement(
|
|
6572
|
+
TextField3,
|
|
6229
6573
|
{
|
|
6230
6574
|
size: "tiny",
|
|
6231
6575
|
value: label,
|
|
6232
6576
|
onChange: ({ target }) => {
|
|
6233
|
-
|
|
6577
|
+
updateElementEditorSettings3({
|
|
6234
6578
|
elementId,
|
|
6235
6579
|
settings: { title: target.value }
|
|
6236
6580
|
});
|
|
@@ -6245,28 +6589,29 @@ var ConditionalTooltip = ({
|
|
|
6245
6589
|
if (!showTooltip) {
|
|
6246
6590
|
return children;
|
|
6247
6591
|
}
|
|
6248
|
-
return /* @__PURE__ */
|
|
6592
|
+
return /* @__PURE__ */ React96.createElement(
|
|
6249
6593
|
Infotip2,
|
|
6250
6594
|
{
|
|
6251
6595
|
arrow: false,
|
|
6252
|
-
content: /* @__PURE__ */
|
|
6596
|
+
content: /* @__PURE__ */ React96.createElement(
|
|
6253
6597
|
Alert4,
|
|
6254
6598
|
{
|
|
6255
6599
|
color: "secondary",
|
|
6256
|
-
icon: /* @__PURE__ */
|
|
6600
|
+
icon: /* @__PURE__ */ React96.createElement(InfoCircleFilledIcon2, { fontSize: "tiny" }),
|
|
6257
6601
|
size: "small",
|
|
6258
6602
|
sx: { width: 288 }
|
|
6259
6603
|
},
|
|
6260
|
-
/* @__PURE__ */
|
|
6604
|
+
/* @__PURE__ */ React96.createElement(Typography5, { variant: "body2" }, __72("To change the default tab, simply set another tab as default.", "elementor"))
|
|
6261
6605
|
)
|
|
6262
6606
|
},
|
|
6263
|
-
/* @__PURE__ */
|
|
6607
|
+
/* @__PURE__ */ React96.createElement("span", null, children)
|
|
6264
6608
|
);
|
|
6265
6609
|
};
|
|
6266
6610
|
|
|
6267
6611
|
// src/controls-registry/element-controls/registry.ts
|
|
6268
6612
|
var controlTypes2 = {
|
|
6269
|
-
tabs: { component: TabsControl, layout: "full" }
|
|
6613
|
+
tabs: { component: TabsControl, layout: "full" },
|
|
6614
|
+
"accordion-items": { component: AccordionItemsControl, layout: "full" }
|
|
6270
6615
|
};
|
|
6271
6616
|
var registerElementControls = () => {
|
|
6272
6617
|
Object.entries(controlTypes2).forEach(
|
|
@@ -6286,7 +6631,7 @@ import {
|
|
|
6286
6631
|
import { controlActionsMenu as controlActionsMenu2 } from "@elementor/menus";
|
|
6287
6632
|
|
|
6288
6633
|
// src/dynamics/components/background-control-dynamic-tag.tsx
|
|
6289
|
-
import * as
|
|
6634
|
+
import * as React97 from "react";
|
|
6290
6635
|
import { PropKeyProvider as PropKeyProvider4, PropProvider as PropProvider4, useBoundProp as useBoundProp9 } from "@elementor/editor-controls";
|
|
6291
6636
|
import {
|
|
6292
6637
|
backgroundImageOverlayPropTypeUtil
|
|
@@ -6429,26 +6774,26 @@ var useDynamicTag = (tagName) => {
|
|
|
6429
6774
|
};
|
|
6430
6775
|
|
|
6431
6776
|
// src/dynamics/components/background-control-dynamic-tag.tsx
|
|
6432
|
-
var BackgroundControlDynamicTagIcon = () => /* @__PURE__ */
|
|
6777
|
+
var BackgroundControlDynamicTagIcon = () => /* @__PURE__ */ React97.createElement(DatabaseIcon, { fontSize: "tiny" });
|
|
6433
6778
|
var BackgroundControlDynamicTagLabel = ({ value }) => {
|
|
6434
6779
|
const context = useBoundProp9(backgroundImageOverlayPropTypeUtil);
|
|
6435
|
-
return /* @__PURE__ */
|
|
6780
|
+
return /* @__PURE__ */ React97.createElement(PropProvider4, { ...context, value: value.value }, /* @__PURE__ */ React97.createElement(PropKeyProvider4, { bind: "image" }, /* @__PURE__ */ React97.createElement(Wrapper2, { rawValue: value.value })));
|
|
6436
6781
|
};
|
|
6437
6782
|
var Wrapper2 = ({ rawValue }) => {
|
|
6438
6783
|
const { propType } = useBoundProp9();
|
|
6439
6784
|
const imageOverlayPropType = propType.prop_types["background-image-overlay"];
|
|
6440
|
-
return /* @__PURE__ */
|
|
6785
|
+
return /* @__PURE__ */ React97.createElement(PropProvider4, { propType: imageOverlayPropType.shape.image, value: rawValue, setValue: () => void 0 }, /* @__PURE__ */ React97.createElement(PropKeyProvider4, { bind: "src" }, /* @__PURE__ */ React97.createElement(Content, { rawValue: rawValue.image })));
|
|
6441
6786
|
};
|
|
6442
6787
|
var Content = ({ rawValue }) => {
|
|
6443
6788
|
const src = rawValue.value.src;
|
|
6444
6789
|
const dynamicTag = useDynamicTag(src.value.name || "");
|
|
6445
|
-
return /* @__PURE__ */
|
|
6790
|
+
return /* @__PURE__ */ React97.createElement(React97.Fragment, null, dynamicTag?.label);
|
|
6446
6791
|
};
|
|
6447
6792
|
|
|
6448
6793
|
// src/dynamics/components/dynamic-selection-control.tsx
|
|
6449
|
-
import * as
|
|
6794
|
+
import * as React101 from "react";
|
|
6450
6795
|
import {
|
|
6451
|
-
ControlFormLabel as
|
|
6796
|
+
ControlFormLabel as ControlFormLabel5,
|
|
6452
6797
|
PropKeyProvider as PropKeyProvider6,
|
|
6453
6798
|
PropProvider as PropProvider6,
|
|
6454
6799
|
useBoundProp as useBoundProp12
|
|
@@ -6463,7 +6808,7 @@ import {
|
|
|
6463
6808
|
Grid as Grid8,
|
|
6464
6809
|
IconButton as IconButton2,
|
|
6465
6810
|
Popover,
|
|
6466
|
-
Stack as
|
|
6811
|
+
Stack as Stack18,
|
|
6467
6812
|
Tab as Tab2,
|
|
6468
6813
|
TabPanel as TabPanel2,
|
|
6469
6814
|
Tabs as Tabs2,
|
|
@@ -6471,7 +6816,7 @@ import {
|
|
|
6471
6816
|
usePopupState as usePopupState2,
|
|
6472
6817
|
useTabs as useTabs2
|
|
6473
6818
|
} from "@elementor/ui";
|
|
6474
|
-
import { __ as
|
|
6819
|
+
import { __ as __74 } from "@wordpress/i18n";
|
|
6475
6820
|
|
|
6476
6821
|
// src/hooks/use-persist-dynamic-value.ts
|
|
6477
6822
|
import { useSessionStorage as useSessionStorage5 } from "@elementor/session";
|
|
@@ -6482,11 +6827,11 @@ var usePersistDynamicValue = (propKey) => {
|
|
|
6482
6827
|
};
|
|
6483
6828
|
|
|
6484
6829
|
// src/dynamics/dynamic-control.tsx
|
|
6485
|
-
import * as
|
|
6830
|
+
import * as React99 from "react";
|
|
6486
6831
|
import { PropKeyProvider as PropKeyProvider5, PropProvider as PropProvider5, useBoundProp as useBoundProp10 } from "@elementor/editor-controls";
|
|
6487
6832
|
|
|
6488
6833
|
// src/dynamics/components/dynamic-conditional-control.tsx
|
|
6489
|
-
import * as
|
|
6834
|
+
import * as React98 from "react";
|
|
6490
6835
|
import { useMemo as useMemo13 } from "react";
|
|
6491
6836
|
import { isDependencyMet as isDependencyMet3 } from "@elementor/editor-props";
|
|
6492
6837
|
var DynamicConditionalControl = ({
|
|
@@ -6528,10 +6873,10 @@ var DynamicConditionalControl = ({
|
|
|
6528
6873
|
return { ...defaults, ...convertedSettings };
|
|
6529
6874
|
}, [defaults, convertedSettings]);
|
|
6530
6875
|
if (!propType?.dependencies?.terms.length) {
|
|
6531
|
-
return /* @__PURE__ */
|
|
6876
|
+
return /* @__PURE__ */ React98.createElement(React98.Fragment, null, children);
|
|
6532
6877
|
}
|
|
6533
6878
|
const isHidden = !isDependencyMet3(propType?.dependencies, effectiveSettings).isMet;
|
|
6534
|
-
return isHidden ? null : /* @__PURE__ */
|
|
6879
|
+
return isHidden ? null : /* @__PURE__ */ React98.createElement(React98.Fragment, null, children);
|
|
6535
6880
|
};
|
|
6536
6881
|
|
|
6537
6882
|
// src/dynamics/dynamic-control.tsx
|
|
@@ -6556,7 +6901,7 @@ var DynamicControl = ({ bind, children }) => {
|
|
|
6556
6901
|
});
|
|
6557
6902
|
};
|
|
6558
6903
|
const propType = createTopLevelObjectType({ schema: dynamicTag.props_schema });
|
|
6559
|
-
return /* @__PURE__ */
|
|
6904
|
+
return /* @__PURE__ */ React99.createElement(PropProvider5, { propType, setValue: setDynamicValue, value: { [bind]: dynamicValue } }, /* @__PURE__ */ React99.createElement(PropKeyProvider5, { bind }, /* @__PURE__ */ React99.createElement(
|
|
6560
6905
|
DynamicConditionalControl,
|
|
6561
6906
|
{
|
|
6562
6907
|
propType: dynamicPropType,
|
|
@@ -6568,13 +6913,13 @@ var DynamicControl = ({ bind, children }) => {
|
|
|
6568
6913
|
};
|
|
6569
6914
|
|
|
6570
6915
|
// src/dynamics/components/dynamic-selection.tsx
|
|
6571
|
-
import * as
|
|
6572
|
-
import { Fragment as Fragment16, useEffect as
|
|
6916
|
+
import * as React100 from "react";
|
|
6917
|
+
import { Fragment as Fragment16, useEffect as useEffect10, useState as useState10 } from "react";
|
|
6573
6918
|
import { trackUpgradePromotionClick, trackViewPromotion, useBoundProp as useBoundProp11 } from "@elementor/editor-controls";
|
|
6574
6919
|
import { CtaButton, PopoverHeader, PopoverMenuList, SearchField, SectionPopoverBody } from "@elementor/editor-ui";
|
|
6575
6920
|
import { DatabaseIcon as DatabaseIcon2 } from "@elementor/icons";
|
|
6576
|
-
import { Divider as Divider7, Link as Link2, Stack as
|
|
6577
|
-
import { __ as
|
|
6921
|
+
import { Divider as Divider7, Link as Link2, Stack as Stack17, Typography as Typography6, useTheme as useTheme3 } from "@elementor/ui";
|
|
6922
|
+
import { __ as __73 } from "@wordpress/i18n";
|
|
6578
6923
|
var SIZE2 = "tiny";
|
|
6579
6924
|
var PROMO_TEXT_WIDTH = 170;
|
|
6580
6925
|
var PRO_DYNAMIC_TAGS_URL = "https://go.elementor.com/go-pro-dynamic-tags-modal/";
|
|
@@ -6589,7 +6934,7 @@ var DynamicSelection = ({ close: closePopover, expired = false }) => {
|
|
|
6589
6934
|
const isCurrentValueDynamic = !!dynamicValue;
|
|
6590
6935
|
const options13 = useFilteredOptions(searchValue);
|
|
6591
6936
|
const hasNoDynamicTags = !options13.length && !searchValue.trim();
|
|
6592
|
-
|
|
6937
|
+
useEffect10(() => {
|
|
6593
6938
|
if (hasNoDynamicTags) {
|
|
6594
6939
|
trackViewPromotion({ target_name: "dynamic_tags" });
|
|
6595
6940
|
} else if (expired) {
|
|
@@ -6621,19 +6966,19 @@ var DynamicSelection = ({ close: closePopover, expired = false }) => {
|
|
|
6621
6966
|
]);
|
|
6622
6967
|
const getPopOverContent = () => {
|
|
6623
6968
|
if (hasNoDynamicTags) {
|
|
6624
|
-
return /* @__PURE__ */
|
|
6969
|
+
return /* @__PURE__ */ React100.createElement(NoDynamicTags, null);
|
|
6625
6970
|
}
|
|
6626
6971
|
if (expired) {
|
|
6627
|
-
return /* @__PURE__ */
|
|
6972
|
+
return /* @__PURE__ */ React100.createElement(ExpiredDynamicTags, null);
|
|
6628
6973
|
}
|
|
6629
|
-
return /* @__PURE__ */
|
|
6974
|
+
return /* @__PURE__ */ React100.createElement(Fragment16, null, /* @__PURE__ */ React100.createElement(
|
|
6630
6975
|
SearchField,
|
|
6631
6976
|
{
|
|
6632
6977
|
value: searchValue,
|
|
6633
6978
|
onSearch: handleSearch,
|
|
6634
|
-
placeholder:
|
|
6979
|
+
placeholder: __73("Search dynamic tags\u2026", "elementor")
|
|
6635
6980
|
}
|
|
6636
|
-
), /* @__PURE__ */
|
|
6981
|
+
), /* @__PURE__ */ React100.createElement(Divider7, null), /* @__PURE__ */ React100.createElement(
|
|
6637
6982
|
PopoverMenuList,
|
|
6638
6983
|
{
|
|
6639
6984
|
items: virtualizedItems,
|
|
@@ -6641,21 +6986,21 @@ var DynamicSelection = ({ close: closePopover, expired = false }) => {
|
|
|
6641
6986
|
onClose: closePopover,
|
|
6642
6987
|
selectedValue: dynamicValue?.name,
|
|
6643
6988
|
itemStyle: (item) => item.type === "item" ? { paddingInlineStart: theme.spacing(3.5) } : {},
|
|
6644
|
-
noResultsComponent: /* @__PURE__ */
|
|
6989
|
+
noResultsComponent: /* @__PURE__ */ React100.createElement(NoResults, { searchValue, onClear: () => setSearchValue("") })
|
|
6645
6990
|
}
|
|
6646
6991
|
));
|
|
6647
6992
|
};
|
|
6648
|
-
return /* @__PURE__ */
|
|
6993
|
+
return /* @__PURE__ */ React100.createElement(SectionPopoverBody, { "aria-label": __73("Dynamic tags", "elementor") }, /* @__PURE__ */ React100.createElement(
|
|
6649
6994
|
PopoverHeader,
|
|
6650
6995
|
{
|
|
6651
|
-
title:
|
|
6996
|
+
title: __73("Dynamic tags", "elementor"),
|
|
6652
6997
|
onClose: closePopover,
|
|
6653
|
-
icon: /* @__PURE__ */
|
|
6998
|
+
icon: /* @__PURE__ */ React100.createElement(DatabaseIcon2, { fontSize: SIZE2 })
|
|
6654
6999
|
}
|
|
6655
7000
|
), getPopOverContent());
|
|
6656
7001
|
};
|
|
6657
|
-
var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */
|
|
6658
|
-
|
|
7002
|
+
var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */ React100.createElement(
|
|
7003
|
+
Stack17,
|
|
6659
7004
|
{
|
|
6660
7005
|
gap: 1,
|
|
6661
7006
|
alignItems: "center",
|
|
@@ -6665,12 +7010,12 @@ var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */ React99.createElem
|
|
|
6665
7010
|
color: "text.secondary",
|
|
6666
7011
|
sx: { pb: 3.5 }
|
|
6667
7012
|
},
|
|
6668
|
-
/* @__PURE__ */
|
|
6669
|
-
/* @__PURE__ */
|
|
6670
|
-
/* @__PURE__ */
|
|
7013
|
+
/* @__PURE__ */ React100.createElement(DatabaseIcon2, { fontSize: "large" }),
|
|
7014
|
+
/* @__PURE__ */ React100.createElement(Typography6, { align: "center", variant: "subtitle2" }, __73("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React100.createElement("br", null), "\u201C", searchValue, "\u201D."),
|
|
7015
|
+
/* @__PURE__ */ React100.createElement(Typography6, { align: "center", variant: "caption", sx: { display: "flex", flexDirection: "column" } }, __73("Try something else.", "elementor"), /* @__PURE__ */ React100.createElement(Link2, { color: "text.secondary", variant: "caption", component: "button", onClick: onClear }, __73("Clear & try again", "elementor")))
|
|
6671
7016
|
);
|
|
6672
|
-
var NoDynamicTags = () => /* @__PURE__ */
|
|
6673
|
-
|
|
7017
|
+
var NoDynamicTags = () => /* @__PURE__ */ React100.createElement(React100.Fragment, null, /* @__PURE__ */ React100.createElement(Divider7, null), /* @__PURE__ */ React100.createElement(
|
|
7018
|
+
Stack17,
|
|
6674
7019
|
{
|
|
6675
7020
|
gap: 1,
|
|
6676
7021
|
alignItems: "center",
|
|
@@ -6680,10 +7025,10 @@ var NoDynamicTags = () => /* @__PURE__ */ React99.createElement(React99.Fragment
|
|
|
6680
7025
|
color: "text.secondary",
|
|
6681
7026
|
sx: { pb: 3.5 }
|
|
6682
7027
|
},
|
|
6683
|
-
/* @__PURE__ */
|
|
6684
|
-
/* @__PURE__ */
|
|
6685
|
-
/* @__PURE__ */
|
|
6686
|
-
/* @__PURE__ */
|
|
7028
|
+
/* @__PURE__ */ React100.createElement(DatabaseIcon2, { fontSize: "large" }),
|
|
7029
|
+
/* @__PURE__ */ React100.createElement(Typography6, { align: "center", variant: "subtitle2" }, __73("Streamline your workflow with dynamic tags", "elementor")),
|
|
7030
|
+
/* @__PURE__ */ React100.createElement(Typography6, { align: "center", variant: "caption", width: PROMO_TEXT_WIDTH }, __73("Upgrade now to display your content dynamically.", "elementor")),
|
|
7031
|
+
/* @__PURE__ */ React100.createElement(
|
|
6687
7032
|
CtaButton,
|
|
6688
7033
|
{
|
|
6689
7034
|
size: "small",
|
|
@@ -6692,8 +7037,8 @@ var NoDynamicTags = () => /* @__PURE__ */ React99.createElement(React99.Fragment
|
|
|
6692
7037
|
}
|
|
6693
7038
|
)
|
|
6694
7039
|
));
|
|
6695
|
-
var ExpiredDynamicTags = () => /* @__PURE__ */
|
|
6696
|
-
|
|
7040
|
+
var ExpiredDynamicTags = () => /* @__PURE__ */ React100.createElement(React100.Fragment, null, /* @__PURE__ */ React100.createElement(Divider7, null), /* @__PURE__ */ React100.createElement(
|
|
7041
|
+
Stack17,
|
|
6697
7042
|
{
|
|
6698
7043
|
gap: 1,
|
|
6699
7044
|
alignItems: "center",
|
|
@@ -6703,16 +7048,16 @@ var ExpiredDynamicTags = () => /* @__PURE__ */ React99.createElement(React99.Fra
|
|
|
6703
7048
|
color: "text.secondary",
|
|
6704
7049
|
sx: { pb: 3.5 }
|
|
6705
7050
|
},
|
|
6706
|
-
/* @__PURE__ */
|
|
6707
|
-
/* @__PURE__ */
|
|
6708
|
-
/* @__PURE__ */
|
|
6709
|
-
/* @__PURE__ */
|
|
7051
|
+
/* @__PURE__ */ React100.createElement(DatabaseIcon2, { fontSize: "large" }),
|
|
7052
|
+
/* @__PURE__ */ React100.createElement(Typography6, { align: "center", variant: "subtitle2" }, __73("Unlock your Dynamic tags again", "elementor")),
|
|
7053
|
+
/* @__PURE__ */ React100.createElement(Typography6, { align: "center", variant: "caption", width: PROMO_TEXT_WIDTH }, __73("Dynamic tags need Elementor Pro. Renew now to keep them active.", "elementor")),
|
|
7054
|
+
/* @__PURE__ */ React100.createElement(
|
|
6710
7055
|
CtaButton,
|
|
6711
7056
|
{
|
|
6712
7057
|
size: "small",
|
|
6713
7058
|
href: RENEW_DYNAMIC_TAGS_URL,
|
|
6714
7059
|
onClick: () => trackUpgradePromotionClick({ target_name: "dynamic_tags" }),
|
|
6715
|
-
children:
|
|
7060
|
+
children: __73("Renew Now", "elementor")
|
|
6716
7061
|
}
|
|
6717
7062
|
)
|
|
6718
7063
|
));
|
|
@@ -6749,7 +7094,7 @@ var DynamicSelectionControl = ({ OriginalControl, ...props }) => {
|
|
|
6749
7094
|
const { name: tagName = "" } = value;
|
|
6750
7095
|
const dynamicTag = useDynamicTag(tagName);
|
|
6751
7096
|
if (!isDynamicTagSupported(tagName) && OriginalControl) {
|
|
6752
|
-
return /* @__PURE__ */
|
|
7097
|
+
return /* @__PURE__ */ React101.createElement(PropProvider6, { propType: originalPropType, value: { [bind]: null }, setValue: setAnyValue }, /* @__PURE__ */ React101.createElement(PropKeyProvider6, { bind }, /* @__PURE__ */ React101.createElement(OriginalControl, { ...props })));
|
|
6753
7098
|
}
|
|
6754
7099
|
const removeDynamicTag = () => {
|
|
6755
7100
|
setAnyValue(propValueFromHistory ?? null);
|
|
@@ -6757,25 +7102,25 @@ var DynamicSelectionControl = ({ OriginalControl, ...props }) => {
|
|
|
6757
7102
|
if (!dynamicTag) {
|
|
6758
7103
|
throw new Error(`Dynamic tag ${tagName} not found`);
|
|
6759
7104
|
}
|
|
6760
|
-
return /* @__PURE__ */
|
|
7105
|
+
return /* @__PURE__ */ React101.createElement(Box8, null, /* @__PURE__ */ React101.createElement(
|
|
6761
7106
|
Tag,
|
|
6762
7107
|
{
|
|
6763
7108
|
fullWidth: true,
|
|
6764
7109
|
showActionsOnHover: true,
|
|
6765
7110
|
label: dynamicTag.label,
|
|
6766
|
-
startIcon: /* @__PURE__ */
|
|
7111
|
+
startIcon: /* @__PURE__ */ React101.createElement(DatabaseIcon3, { fontSize: SIZE3 }),
|
|
6767
7112
|
...bindTrigger2(selectionPopoverState),
|
|
6768
|
-
actions: /* @__PURE__ */
|
|
7113
|
+
actions: /* @__PURE__ */ React101.createElement(React101.Fragment, null, /* @__PURE__ */ React101.createElement(DynamicSettingsPopover, { dynamicTag, disabled: readonly }), /* @__PURE__ */ React101.createElement(
|
|
6769
7114
|
IconButton2,
|
|
6770
7115
|
{
|
|
6771
7116
|
size: SIZE3,
|
|
6772
7117
|
onClick: removeDynamicTag,
|
|
6773
|
-
"aria-label":
|
|
7118
|
+
"aria-label": __74("Remove dynamic value", "elementor")
|
|
6774
7119
|
},
|
|
6775
|
-
/* @__PURE__ */
|
|
7120
|
+
/* @__PURE__ */ React101.createElement(XIcon, { fontSize: SIZE3 })
|
|
6776
7121
|
))
|
|
6777
7122
|
}
|
|
6778
|
-
), /* @__PURE__ */
|
|
7123
|
+
), /* @__PURE__ */ React101.createElement(
|
|
6779
7124
|
Popover,
|
|
6780
7125
|
{
|
|
6781
7126
|
disablePortal: true,
|
|
@@ -6787,7 +7132,7 @@ var DynamicSelectionControl = ({ OriginalControl, ...props }) => {
|
|
|
6787
7132
|
},
|
|
6788
7133
|
...bindPopover(selectionPopoverState)
|
|
6789
7134
|
},
|
|
6790
|
-
/* @__PURE__ */
|
|
7135
|
+
/* @__PURE__ */ React101.createElement(SectionPopoverBody2, { "aria-label": __74("Dynamic tags", "elementor") }, /* @__PURE__ */ React101.createElement(DynamicSelection, { close: selectionPopoverState.close, expired: readonly }))
|
|
6791
7136
|
));
|
|
6792
7137
|
};
|
|
6793
7138
|
var DynamicSettingsPopover = ({
|
|
@@ -6799,16 +7144,16 @@ var DynamicSettingsPopover = ({
|
|
|
6799
7144
|
if (!hasDynamicSettings) {
|
|
6800
7145
|
return null;
|
|
6801
7146
|
}
|
|
6802
|
-
return /* @__PURE__ */
|
|
7147
|
+
return /* @__PURE__ */ React101.createElement(React101.Fragment, null, /* @__PURE__ */ React101.createElement(
|
|
6803
7148
|
IconButton2,
|
|
6804
7149
|
{
|
|
6805
7150
|
size: SIZE3,
|
|
6806
7151
|
disabled,
|
|
6807
7152
|
...!disabled && bindTrigger2(popupState),
|
|
6808
|
-
"aria-label":
|
|
7153
|
+
"aria-label": __74("Dynamic settings", "elementor")
|
|
6809
7154
|
},
|
|
6810
|
-
/* @__PURE__ */
|
|
6811
|
-
), /* @__PURE__ */
|
|
7155
|
+
/* @__PURE__ */ React101.createElement(SettingsIcon, { fontSize: SIZE3 })
|
|
7156
|
+
), /* @__PURE__ */ React101.createElement(
|
|
6812
7157
|
Popover,
|
|
6813
7158
|
{
|
|
6814
7159
|
disablePortal: true,
|
|
@@ -6820,14 +7165,14 @@ var DynamicSettingsPopover = ({
|
|
|
6820
7165
|
},
|
|
6821
7166
|
...bindPopover(popupState)
|
|
6822
7167
|
},
|
|
6823
|
-
/* @__PURE__ */
|
|
7168
|
+
/* @__PURE__ */ React101.createElement(SectionPopoverBody2, { "aria-label": __74("Dynamic settings", "elementor") }, /* @__PURE__ */ React101.createElement(
|
|
6824
7169
|
PopoverHeader2,
|
|
6825
7170
|
{
|
|
6826
7171
|
title: dynamicTag.label,
|
|
6827
7172
|
onClose: popupState.close,
|
|
6828
|
-
icon: /* @__PURE__ */
|
|
7173
|
+
icon: /* @__PURE__ */ React101.createElement(DatabaseIcon3, { fontSize: SIZE3 })
|
|
6829
7174
|
}
|
|
6830
|
-
), /* @__PURE__ */
|
|
7175
|
+
), /* @__PURE__ */ React101.createElement(DynamicSettings, { controls: dynamicTag.atomic_controls, tagName: dynamicTag.name }))
|
|
6831
7176
|
));
|
|
6832
7177
|
};
|
|
6833
7178
|
var DynamicSettings = ({ controls, tagName }) => {
|
|
@@ -6838,9 +7183,9 @@ var DynamicSettings = ({ controls, tagName }) => {
|
|
|
6838
7183
|
}
|
|
6839
7184
|
if (tagsWithoutTabs.includes(tagName)) {
|
|
6840
7185
|
const singleTab = tabs[0];
|
|
6841
|
-
return /* @__PURE__ */
|
|
7186
|
+
return /* @__PURE__ */ React101.createElement(React101.Fragment, null, /* @__PURE__ */ React101.createElement(Divider8, null), /* @__PURE__ */ React101.createElement(ControlsItemsStack, { items: singleTab.value.items }));
|
|
6842
7187
|
}
|
|
6843
|
-
return /* @__PURE__ */
|
|
7188
|
+
return /* @__PURE__ */ React101.createElement(React101.Fragment, null, tabs.length > 1 && /* @__PURE__ */ React101.createElement(Tabs2, { size: "small", variant: "fullWidth", ...getTabsProps() }, tabs.map(({ value }, index) => /* @__PURE__ */ React101.createElement(
|
|
6844
7189
|
Tab2,
|
|
6845
7190
|
{
|
|
6846
7191
|
key: index,
|
|
@@ -6848,15 +7193,15 @@ var DynamicSettings = ({ controls, tagName }) => {
|
|
|
6848
7193
|
sx: { px: 1, py: 0.5 },
|
|
6849
7194
|
...getTabProps(index)
|
|
6850
7195
|
}
|
|
6851
|
-
))), /* @__PURE__ */
|
|
6852
|
-
return /* @__PURE__ */
|
|
7196
|
+
))), /* @__PURE__ */ React101.createElement(Divider8, null), tabs.map(({ value }, index) => {
|
|
7197
|
+
return /* @__PURE__ */ React101.createElement(
|
|
6853
7198
|
TabPanel2,
|
|
6854
7199
|
{
|
|
6855
7200
|
key: index,
|
|
6856
7201
|
sx: { flexGrow: 1, py: 0, overflowY: "auto" },
|
|
6857
7202
|
...getTabPanelProps(index)
|
|
6858
7203
|
},
|
|
6859
|
-
/* @__PURE__ */
|
|
7204
|
+
/* @__PURE__ */ React101.createElement(ControlsItemsStack, { items: value.items })
|
|
6860
7205
|
);
|
|
6861
7206
|
}));
|
|
6862
7207
|
};
|
|
@@ -6898,11 +7243,11 @@ var Control2 = ({ control }) => {
|
|
|
6898
7243
|
display: "grid",
|
|
6899
7244
|
gridTemplateColumns: isSwitchControl ? "minmax(0, 1fr) max-content" : "1fr 1fr"
|
|
6900
7245
|
} : {};
|
|
6901
|
-
return /* @__PURE__ */
|
|
7246
|
+
return /* @__PURE__ */ React101.createElement(DynamicControl, { bind: control.bind }, /* @__PURE__ */ React101.createElement(Grid8, { container: true, gap: 0.75, sx: layoutStyleProps }, control.label ? /* @__PURE__ */ React101.createElement(Grid8, { item: true, xs: 12 }, /* @__PURE__ */ React101.createElement(ControlFormLabel5, null, control.label)) : null, /* @__PURE__ */ React101.createElement(Grid8, { item: true, xs: 12 }, /* @__PURE__ */ React101.createElement(Control, { type: control.type, props: controlProps }))));
|
|
6902
7247
|
};
|
|
6903
7248
|
function ControlsItemsStack({ items: items3 }) {
|
|
6904
|
-
return /* @__PURE__ */
|
|
6905
|
-
(item) => item.type === "control" ? /* @__PURE__ */
|
|
7249
|
+
return /* @__PURE__ */ React101.createElement(Stack18, { p: 2, gap: 2, sx: { overflowY: "auto" } }, items3.map(
|
|
7250
|
+
(item) => item.type === "control" ? /* @__PURE__ */ React101.createElement(Control2, { key: item.value.bind, control: item.value }) : null
|
|
6906
7251
|
));
|
|
6907
7252
|
}
|
|
6908
7253
|
|
|
@@ -6959,18 +7304,18 @@ function getDynamicValue(name, settings, renderPostId) {
|
|
|
6959
7304
|
}
|
|
6960
7305
|
|
|
6961
7306
|
// src/dynamics/hooks/use-prop-dynamic-action.tsx
|
|
6962
|
-
import * as
|
|
7307
|
+
import * as React102 from "react";
|
|
6963
7308
|
import { useBoundProp as useBoundProp13 } from "@elementor/editor-controls";
|
|
6964
7309
|
import { DatabaseIcon as DatabaseIcon4 } from "@elementor/icons";
|
|
6965
|
-
import { __ as
|
|
7310
|
+
import { __ as __75 } from "@wordpress/i18n";
|
|
6966
7311
|
var usePropDynamicAction = () => {
|
|
6967
7312
|
const { propType } = useBoundProp13();
|
|
6968
7313
|
const visible = !!propType && supportsDynamic(propType);
|
|
6969
7314
|
return {
|
|
6970
7315
|
visible,
|
|
6971
7316
|
icon: DatabaseIcon4,
|
|
6972
|
-
title:
|
|
6973
|
-
content: ({ close }) => /* @__PURE__ */
|
|
7317
|
+
title: __75("Dynamic tags", "elementor"),
|
|
7318
|
+
content: ({ close }) => /* @__PURE__ */ React102.createElement(DynamicSelection, { close })
|
|
6974
7319
|
};
|
|
6975
7320
|
};
|
|
6976
7321
|
|
|
@@ -7005,7 +7350,7 @@ import { useBoundProp as useBoundProp14 } from "@elementor/editor-controls";
|
|
|
7005
7350
|
import { hasVariable as hasVariable2 } from "@elementor/editor-variables";
|
|
7006
7351
|
import { BrushBigIcon } from "@elementor/icons";
|
|
7007
7352
|
import { controlActionsMenu as controlActionsMenu3 } from "@elementor/menus";
|
|
7008
|
-
import { __ as
|
|
7353
|
+
import { __ as __76 } from "@wordpress/i18n";
|
|
7009
7354
|
|
|
7010
7355
|
// src/utils/is-equal.ts
|
|
7011
7356
|
function isEqual(a, b) {
|
|
@@ -7081,22 +7426,22 @@ function useResetStyleValueProps() {
|
|
|
7081
7426
|
const visible = calculateVisibility();
|
|
7082
7427
|
return {
|
|
7083
7428
|
visible,
|
|
7084
|
-
title:
|
|
7429
|
+
title: __76("Clear", "elementor"),
|
|
7085
7430
|
icon: BrushBigIcon,
|
|
7086
7431
|
onClick: () => resetValue()
|
|
7087
7432
|
};
|
|
7088
7433
|
}
|
|
7089
7434
|
|
|
7090
7435
|
// src/styles-inheritance/components/styles-inheritance-indicator.tsx
|
|
7091
|
-
import * as
|
|
7436
|
+
import * as React108 from "react";
|
|
7092
7437
|
import { useBoundProp as useBoundProp15 } from "@elementor/editor-controls";
|
|
7093
7438
|
import { isEmpty as isEmpty3 } from "@elementor/editor-props";
|
|
7094
7439
|
import { ELEMENTS_BASE_STYLES_PROVIDER_KEY as ELEMENTS_BASE_STYLES_PROVIDER_KEY4 } from "@elementor/editor-styles-repository";
|
|
7095
|
-
import { __ as
|
|
7440
|
+
import { __ as __80 } from "@wordpress/i18n";
|
|
7096
7441
|
|
|
7097
7442
|
// src/styles-inheritance/components/styles-inheritance-infotip.tsx
|
|
7098
|
-
import * as
|
|
7099
|
-
import { useMemo as useMemo14, useRef as
|
|
7443
|
+
import * as React107 from "react";
|
|
7444
|
+
import { useMemo as useMemo14, useRef as useRef21, useState as useState12 } from "react";
|
|
7100
7445
|
import {
|
|
7101
7446
|
createPropsResolver as createPropsResolver2,
|
|
7102
7447
|
stylesInheritanceTransformersRegistry
|
|
@@ -7110,31 +7455,31 @@ import {
|
|
|
7110
7455
|
ClickAwayListener,
|
|
7111
7456
|
IconButton as IconButton3,
|
|
7112
7457
|
Infotip as Infotip3,
|
|
7113
|
-
Stack as
|
|
7458
|
+
Stack as Stack19,
|
|
7114
7459
|
Tooltip as Tooltip7
|
|
7115
7460
|
} from "@elementor/ui";
|
|
7116
|
-
import { __ as
|
|
7461
|
+
import { __ as __79 } from "@wordpress/i18n";
|
|
7117
7462
|
|
|
7118
7463
|
// src/styles-inheritance/hooks/use-normalized-inheritance-chain-items.tsx
|
|
7119
|
-
import { isValidElement, useEffect as
|
|
7464
|
+
import { isValidElement, useEffect as useEffect11, useState as useState11 } from "react";
|
|
7120
7465
|
import { UnknownStyleStateError } from "@elementor/editor-canvas";
|
|
7121
7466
|
import {
|
|
7122
7467
|
isClassState as isClassState2,
|
|
7123
7468
|
isPseudoState
|
|
7124
7469
|
} from "@elementor/editor-styles";
|
|
7125
7470
|
import { ELEMENTS_BASE_STYLES_PROVIDER_KEY as ELEMENTS_BASE_STYLES_PROVIDER_KEY2 } from "@elementor/editor-styles-repository";
|
|
7126
|
-
import { __ as
|
|
7471
|
+
import { __ as __77 } from "@wordpress/i18n";
|
|
7127
7472
|
var MAXIMUM_ITEMS = 2;
|
|
7128
7473
|
var useNormalizedInheritanceChainItems = (inheritanceChain, bind, resolve) => {
|
|
7129
7474
|
const [items3, setItems] = useState11([]);
|
|
7130
|
-
|
|
7475
|
+
useEffect11(() => {
|
|
7131
7476
|
(async () => {
|
|
7132
7477
|
const normalizedItems = await Promise.all(
|
|
7133
7478
|
inheritanceChain.filter(({ style }) => style).map((item, index) => normalizeInheritanceItem(item, index, bind, resolve))
|
|
7134
7479
|
);
|
|
7135
7480
|
const validItems = normalizedItems.map((item) => ({
|
|
7136
7481
|
...item,
|
|
7137
|
-
displayLabel: ELEMENTS_BASE_STYLES_PROVIDER_KEY2 !== item.provider ? item.displayLabel :
|
|
7482
|
+
displayLabel: ELEMENTS_BASE_STYLES_PROVIDER_KEY2 !== item.provider ? item.displayLabel : __77("Base", "elementor")
|
|
7138
7483
|
})).filter((item) => !item.value || item.displayLabel !== "").slice(0, MAXIMUM_ITEMS);
|
|
7139
7484
|
setItems(validItems);
|
|
7140
7485
|
})();
|
|
@@ -7191,7 +7536,7 @@ var getTransformedValue = async (item, bind, resolve) => {
|
|
|
7191
7536
|
};
|
|
7192
7537
|
|
|
7193
7538
|
// src/styles-inheritance/components/infotip/breakpoint-icon.tsx
|
|
7194
|
-
import * as
|
|
7539
|
+
import * as React103 from "react";
|
|
7195
7540
|
import { useBreakpoints } from "@elementor/editor-responsive";
|
|
7196
7541
|
import {
|
|
7197
7542
|
DesktopIcon,
|
|
@@ -7222,20 +7567,20 @@ var BreakpointIcon = ({ breakpoint }) => {
|
|
|
7222
7567
|
return null;
|
|
7223
7568
|
}
|
|
7224
7569
|
const breakpointLabel = breakpoints.find((breakpointItem) => breakpointItem.id === currentBreakpoint)?.label;
|
|
7225
|
-
return /* @__PURE__ */
|
|
7570
|
+
return /* @__PURE__ */ React103.createElement(Tooltip4, { title: breakpointLabel, placement: "top" }, /* @__PURE__ */ React103.createElement(IconComponent, { fontSize: SIZE4, sx: { mt: "2px" } }));
|
|
7226
7571
|
};
|
|
7227
7572
|
|
|
7228
7573
|
// src/styles-inheritance/components/infotip/label-chip.tsx
|
|
7229
|
-
import * as
|
|
7574
|
+
import * as React104 from "react";
|
|
7230
7575
|
import { ELEMENTS_BASE_STYLES_PROVIDER_KEY as ELEMENTS_BASE_STYLES_PROVIDER_KEY3 } from "@elementor/editor-styles-repository";
|
|
7231
7576
|
import { InfoCircleIcon as InfoCircleIcon2 } from "@elementor/icons";
|
|
7232
7577
|
import { Chip as Chip5, Tooltip as Tooltip5 } from "@elementor/ui";
|
|
7233
|
-
import { __ as
|
|
7578
|
+
import { __ as __78 } from "@wordpress/i18n";
|
|
7234
7579
|
var SIZE5 = "tiny";
|
|
7235
7580
|
var LabelChip = ({ displayLabel, provider }) => {
|
|
7236
7581
|
const isBaseStyle = provider === ELEMENTS_BASE_STYLES_PROVIDER_KEY3;
|
|
7237
|
-
const chipIcon = isBaseStyle ? /* @__PURE__ */
|
|
7238
|
-
return /* @__PURE__ */
|
|
7582
|
+
const chipIcon = isBaseStyle ? /* @__PURE__ */ React104.createElement(Tooltip5, { title: __78("Inherited from base styles", "elementor"), placement: "top" }, /* @__PURE__ */ React104.createElement(InfoCircleIcon2, { fontSize: SIZE5 })) : void 0;
|
|
7583
|
+
return /* @__PURE__ */ React104.createElement(
|
|
7239
7584
|
Chip5,
|
|
7240
7585
|
{
|
|
7241
7586
|
label: displayLabel,
|
|
@@ -7261,10 +7606,10 @@ var LabelChip = ({ displayLabel, provider }) => {
|
|
|
7261
7606
|
};
|
|
7262
7607
|
|
|
7263
7608
|
// src/styles-inheritance/components/infotip/value-component.tsx
|
|
7264
|
-
import * as
|
|
7609
|
+
import * as React105 from "react";
|
|
7265
7610
|
import { Tooltip as Tooltip6, Typography as Typography7 } from "@elementor/ui";
|
|
7266
7611
|
var ValueComponent = ({ index, value }) => {
|
|
7267
|
-
return /* @__PURE__ */
|
|
7612
|
+
return /* @__PURE__ */ React105.createElement(Tooltip6, { title: value, placement: "top" }, /* @__PURE__ */ React105.createElement(
|
|
7268
7613
|
Typography7,
|
|
7269
7614
|
{
|
|
7270
7615
|
variant: "caption",
|
|
@@ -7286,9 +7631,9 @@ var ValueComponent = ({ index, value }) => {
|
|
|
7286
7631
|
};
|
|
7287
7632
|
|
|
7288
7633
|
// src/styles-inheritance/components/infotip/action-icons.tsx
|
|
7289
|
-
import * as
|
|
7634
|
+
import * as React106 from "react";
|
|
7290
7635
|
import { Box as Box9 } from "@elementor/ui";
|
|
7291
|
-
var ActionIcons = () => /* @__PURE__ */
|
|
7636
|
+
var ActionIcons = () => /* @__PURE__ */ React106.createElement(Box9, { display: "flex", gap: 0.5, alignItems: "center" });
|
|
7292
7637
|
|
|
7293
7638
|
// src/styles-inheritance/components/styles-inheritance-infotip.tsx
|
|
7294
7639
|
var SECTION_PADDING_INLINE = 32;
|
|
@@ -7302,7 +7647,7 @@ var StylesInheritanceInfotip = ({
|
|
|
7302
7647
|
isDisabled
|
|
7303
7648
|
}) => {
|
|
7304
7649
|
const [showInfotip, setShowInfotip] = useState12(false);
|
|
7305
|
-
const triggerRef =
|
|
7650
|
+
const triggerRef = useRef21(null);
|
|
7306
7651
|
const toggleInfotip = () => {
|
|
7307
7652
|
if (isDisabled) {
|
|
7308
7653
|
return;
|
|
@@ -7324,7 +7669,7 @@ var StylesInheritanceInfotip = ({
|
|
|
7324
7669
|
});
|
|
7325
7670
|
}, [key, propType]);
|
|
7326
7671
|
const items3 = useNormalizedInheritanceChainItems(inheritanceChain, key, resolve);
|
|
7327
|
-
const infotipContent = /* @__PURE__ */
|
|
7672
|
+
const infotipContent = /* @__PURE__ */ React107.createElement(ClickAwayListener, { onClickAway: closeInfotip }, /* @__PURE__ */ React107.createElement(
|
|
7328
7673
|
Card,
|
|
7329
7674
|
{
|
|
7330
7675
|
elevation: 0,
|
|
@@ -7337,7 +7682,7 @@ var StylesInheritanceInfotip = ({
|
|
|
7337
7682
|
flexDirection: "column"
|
|
7338
7683
|
}
|
|
7339
7684
|
},
|
|
7340
|
-
/* @__PURE__ */
|
|
7685
|
+
/* @__PURE__ */ React107.createElement(
|
|
7341
7686
|
Box10,
|
|
7342
7687
|
{
|
|
7343
7688
|
sx: {
|
|
@@ -7347,9 +7692,9 @@ var StylesInheritanceInfotip = ({
|
|
|
7347
7692
|
backgroundColor: "background.paper"
|
|
7348
7693
|
}
|
|
7349
7694
|
},
|
|
7350
|
-
/* @__PURE__ */
|
|
7695
|
+
/* @__PURE__ */ React107.createElement(PopoverHeader3, { title: __79("Style origin", "elementor"), onClose: closeInfotip })
|
|
7351
7696
|
),
|
|
7352
|
-
/* @__PURE__ */
|
|
7697
|
+
/* @__PURE__ */ React107.createElement(
|
|
7353
7698
|
CardContent,
|
|
7354
7699
|
{
|
|
7355
7700
|
sx: {
|
|
@@ -7363,39 +7708,39 @@ var StylesInheritanceInfotip = ({
|
|
|
7363
7708
|
}
|
|
7364
7709
|
}
|
|
7365
7710
|
},
|
|
7366
|
-
/* @__PURE__ */
|
|
7367
|
-
return /* @__PURE__ */
|
|
7711
|
+
/* @__PURE__ */ React107.createElement(Stack19, { gap: 1.5, sx: { pl: 2, pr: 1, pt: 1.5, pb: 1.5 }, role: "list" }, items3.map((item, index) => {
|
|
7712
|
+
return /* @__PURE__ */ React107.createElement(
|
|
7368
7713
|
Box10,
|
|
7369
7714
|
{
|
|
7370
7715
|
key: item.id,
|
|
7371
7716
|
display: "flex",
|
|
7372
7717
|
gap: 0.5,
|
|
7373
7718
|
role: "listitem",
|
|
7374
|
-
"aria-label":
|
|
7719
|
+
"aria-label": __79("Inheritance item: %s", "elementor").replace(
|
|
7375
7720
|
"%s",
|
|
7376
7721
|
item.displayLabel
|
|
7377
7722
|
)
|
|
7378
7723
|
},
|
|
7379
|
-
/* @__PURE__ */
|
|
7724
|
+
/* @__PURE__ */ React107.createElement(
|
|
7380
7725
|
Box10,
|
|
7381
7726
|
{
|
|
7382
7727
|
display: "flex",
|
|
7383
7728
|
gap: 0.5,
|
|
7384
7729
|
sx: { flexWrap: "wrap", width: "100%", alignItems: "flex-start" }
|
|
7385
7730
|
},
|
|
7386
|
-
/* @__PURE__ */
|
|
7387
|
-
/* @__PURE__ */
|
|
7388
|
-
/* @__PURE__ */
|
|
7731
|
+
/* @__PURE__ */ React107.createElement(BreakpointIcon, { breakpoint: item.breakpoint }),
|
|
7732
|
+
/* @__PURE__ */ React107.createElement(LabelChip, { displayLabel: item.displayLabel, provider: item.provider }),
|
|
7733
|
+
/* @__PURE__ */ React107.createElement(ValueComponent, { index, value: item.value })
|
|
7389
7734
|
),
|
|
7390
|
-
/* @__PURE__ */
|
|
7735
|
+
/* @__PURE__ */ React107.createElement(ActionIcons, null)
|
|
7391
7736
|
);
|
|
7392
7737
|
}))
|
|
7393
7738
|
)
|
|
7394
7739
|
));
|
|
7395
7740
|
if (isDisabled) {
|
|
7396
|
-
return /* @__PURE__ */
|
|
7741
|
+
return /* @__PURE__ */ React107.createElement(Box10, { sx: { display: "inline-flex" } }, children);
|
|
7397
7742
|
}
|
|
7398
|
-
return /* @__PURE__ */
|
|
7743
|
+
return /* @__PURE__ */ React107.createElement(Box10, { ref: triggerRef, sx: { display: "inline-flex" } }, /* @__PURE__ */ React107.createElement(
|
|
7399
7744
|
TooltipOrInfotip,
|
|
7400
7745
|
{
|
|
7401
7746
|
showInfotip,
|
|
@@ -7403,7 +7748,7 @@ var StylesInheritanceInfotip = ({
|
|
|
7403
7748
|
infotipContent,
|
|
7404
7749
|
isDisabled
|
|
7405
7750
|
},
|
|
7406
|
-
/* @__PURE__ */
|
|
7751
|
+
/* @__PURE__ */ React107.createElement(
|
|
7407
7752
|
IconButton3,
|
|
7408
7753
|
{
|
|
7409
7754
|
onClick: toggleInfotip,
|
|
@@ -7423,10 +7768,10 @@ function TooltipOrInfotip({
|
|
|
7423
7768
|
isDisabled
|
|
7424
7769
|
}) {
|
|
7425
7770
|
if (isDisabled) {
|
|
7426
|
-
return /* @__PURE__ */
|
|
7771
|
+
return /* @__PURE__ */ React107.createElement(Box10, { sx: { display: "inline-flex" } }, children);
|
|
7427
7772
|
}
|
|
7428
7773
|
if (showInfotip) {
|
|
7429
|
-
return /* @__PURE__ */
|
|
7774
|
+
return /* @__PURE__ */ React107.createElement(React107.Fragment, null, /* @__PURE__ */ React107.createElement(
|
|
7430
7775
|
Backdrop,
|
|
7431
7776
|
{
|
|
7432
7777
|
open: showInfotip,
|
|
@@ -7436,7 +7781,7 @@ function TooltipOrInfotip({
|
|
|
7436
7781
|
zIndex: (theme) => theme.zIndex.modal - 1
|
|
7437
7782
|
}
|
|
7438
7783
|
}
|
|
7439
|
-
), /* @__PURE__ */
|
|
7784
|
+
), /* @__PURE__ */ React107.createElement(
|
|
7440
7785
|
Infotip3,
|
|
7441
7786
|
{
|
|
7442
7787
|
placement: "top-end",
|
|
@@ -7448,7 +7793,7 @@ function TooltipOrInfotip({
|
|
|
7448
7793
|
children
|
|
7449
7794
|
));
|
|
7450
7795
|
}
|
|
7451
|
-
return /* @__PURE__ */
|
|
7796
|
+
return /* @__PURE__ */ React107.createElement(Tooltip7, { title: __79("Style origin", "elementor"), placement: "top" }, children);
|
|
7452
7797
|
}
|
|
7453
7798
|
|
|
7454
7799
|
// src/styles-inheritance/components/styles-inheritance-indicator.tsx
|
|
@@ -7461,7 +7806,7 @@ var StylesInheritanceIndicator = ({
|
|
|
7461
7806
|
if (!path || !inheritanceChain.length) {
|
|
7462
7807
|
return null;
|
|
7463
7808
|
}
|
|
7464
|
-
return /* @__PURE__ */
|
|
7809
|
+
return /* @__PURE__ */ React108.createElement(Indicator, { inheritanceChain, path, propType });
|
|
7465
7810
|
};
|
|
7466
7811
|
var Indicator = ({ inheritanceChain, path, propType, isDisabled }) => {
|
|
7467
7812
|
const { id: currentStyleId, provider: currentStyleProvider, meta: currentStyleMeta } = useStyle();
|
|
@@ -7477,7 +7822,7 @@ var Indicator = ({ inheritanceChain, path, propType, isDisabled }) => {
|
|
|
7477
7822
|
getColor: isFinalValue && currentStyleProvider ? getStylesProviderThemeColor(currentStyleProvider.getKey()) : void 0,
|
|
7478
7823
|
isOverridden: hasValue && !isFinalValue ? true : void 0
|
|
7479
7824
|
};
|
|
7480
|
-
return /* @__PURE__ */
|
|
7825
|
+
return /* @__PURE__ */ React108.createElement(
|
|
7481
7826
|
StylesInheritanceInfotip,
|
|
7482
7827
|
{
|
|
7483
7828
|
inheritanceChain,
|
|
@@ -7486,17 +7831,17 @@ var Indicator = ({ inheritanceChain, path, propType, isDisabled }) => {
|
|
|
7486
7831
|
label,
|
|
7487
7832
|
isDisabled
|
|
7488
7833
|
},
|
|
7489
|
-
/* @__PURE__ */
|
|
7834
|
+
/* @__PURE__ */ React108.createElement(StyleIndicator, { ...styleIndicatorProps })
|
|
7490
7835
|
);
|
|
7491
7836
|
};
|
|
7492
7837
|
var getLabel = ({ isFinalValue, hasValue }) => {
|
|
7493
7838
|
if (isFinalValue) {
|
|
7494
|
-
return
|
|
7839
|
+
return __80("This is the final value", "elementor");
|
|
7495
7840
|
}
|
|
7496
7841
|
if (hasValue) {
|
|
7497
|
-
return
|
|
7842
|
+
return __80("This value is overridden by another style", "elementor");
|
|
7498
7843
|
}
|
|
7499
|
-
return
|
|
7844
|
+
return __80("This has value from another style", "elementor");
|
|
7500
7845
|
};
|
|
7501
7846
|
|
|
7502
7847
|
// src/styles-inheritance/init-styles-inheritance-transformers.ts
|
|
@@ -7521,7 +7866,7 @@ var excludePropTypeTransformers = /* @__PURE__ */ new Set([
|
|
|
7521
7866
|
]);
|
|
7522
7867
|
|
|
7523
7868
|
// src/styles-inheritance/transformers/array-transformer.tsx
|
|
7524
|
-
import * as
|
|
7869
|
+
import * as React109 from "react";
|
|
7525
7870
|
import { createTransformer as createTransformer2 } from "@elementor/editor-canvas";
|
|
7526
7871
|
var arrayTransformer = createTransformer2((values) => {
|
|
7527
7872
|
if (!values || values.length === 0) {
|
|
@@ -7531,16 +7876,16 @@ var arrayTransformer = createTransformer2((values) => {
|
|
|
7531
7876
|
if (allStrings) {
|
|
7532
7877
|
return values.join(" ");
|
|
7533
7878
|
}
|
|
7534
|
-
return /* @__PURE__ */
|
|
7879
|
+
return /* @__PURE__ */ React109.createElement(React109.Fragment, null, values.map((item, index) => /* @__PURE__ */ React109.createElement(React109.Fragment, { key: index }, index > 0 && " ", item)));
|
|
7535
7880
|
});
|
|
7536
7881
|
|
|
7537
7882
|
// src/styles-inheritance/transformers/background-color-overlay-transformer.tsx
|
|
7538
|
-
import * as
|
|
7883
|
+
import * as React110 from "react";
|
|
7539
7884
|
import { createTransformer as createTransformer3 } from "@elementor/editor-canvas";
|
|
7540
|
-
import { Stack as
|
|
7541
|
-
var backgroundColorOverlayTransformer = createTransformer3((value) => /* @__PURE__ */
|
|
7885
|
+
import { Stack as Stack20, styled as styled7, UnstableColorIndicator } from "@elementor/ui";
|
|
7886
|
+
var backgroundColorOverlayTransformer = createTransformer3((value) => /* @__PURE__ */ React110.createElement(Stack20, { direction: "row", gap: 1, alignItems: "center" }, /* @__PURE__ */ React110.createElement(ItemLabelColor, { value })));
|
|
7542
7887
|
var ItemLabelColor = ({ value: { color } }) => {
|
|
7543
|
-
return /* @__PURE__ */
|
|
7888
|
+
return /* @__PURE__ */ React110.createElement("span", null, color);
|
|
7544
7889
|
};
|
|
7545
7890
|
var StyledUnstableColorIndicator = styled7(UnstableColorIndicator)(({ theme }) => ({
|
|
7546
7891
|
width: "1em",
|
|
@@ -7551,20 +7896,20 @@ var StyledUnstableColorIndicator = styled7(UnstableColorIndicator)(({ theme }) =
|
|
|
7551
7896
|
}));
|
|
7552
7897
|
|
|
7553
7898
|
// src/styles-inheritance/transformers/background-gradient-overlay-transformer.tsx
|
|
7554
|
-
import * as
|
|
7899
|
+
import * as React111 from "react";
|
|
7555
7900
|
import { createTransformer as createTransformer4 } from "@elementor/editor-canvas";
|
|
7556
|
-
import { Stack as
|
|
7557
|
-
import { __ as
|
|
7558
|
-
var backgroundGradientOverlayTransformer = createTransformer4((value) => /* @__PURE__ */
|
|
7901
|
+
import { Stack as Stack21 } from "@elementor/ui";
|
|
7902
|
+
import { __ as __81 } from "@wordpress/i18n";
|
|
7903
|
+
var backgroundGradientOverlayTransformer = createTransformer4((value) => /* @__PURE__ */ React111.createElement(Stack21, { direction: "row", gap: 1, alignItems: "center" }, /* @__PURE__ */ React111.createElement(ItemIconGradient, { value }), /* @__PURE__ */ React111.createElement(ItemLabelGradient, { value })));
|
|
7559
7904
|
var ItemIconGradient = ({ value }) => {
|
|
7560
7905
|
const gradient = getGradientValue(value);
|
|
7561
|
-
return /* @__PURE__ */
|
|
7906
|
+
return /* @__PURE__ */ React111.createElement(StyledUnstableColorIndicator, { size: "inherit", component: "span", value: gradient });
|
|
7562
7907
|
};
|
|
7563
7908
|
var ItemLabelGradient = ({ value }) => {
|
|
7564
7909
|
if (value.type === "linear") {
|
|
7565
|
-
return /* @__PURE__ */
|
|
7910
|
+
return /* @__PURE__ */ React111.createElement("span", null, __81("Linear gradient", "elementor"));
|
|
7566
7911
|
}
|
|
7567
|
-
return /* @__PURE__ */
|
|
7912
|
+
return /* @__PURE__ */ React111.createElement("span", null, __81("Radial gradient", "elementor"));
|
|
7568
7913
|
};
|
|
7569
7914
|
var getGradientValue = (gradient) => {
|
|
7570
7915
|
const stops = gradient.stops?.map(({ color, offset }) => `${color} ${offset ?? 0}%`)?.join(",");
|
|
@@ -7575,15 +7920,15 @@ var getGradientValue = (gradient) => {
|
|
|
7575
7920
|
};
|
|
7576
7921
|
|
|
7577
7922
|
// src/styles-inheritance/transformers/background-image-overlay-transformer.tsx
|
|
7578
|
-
import * as
|
|
7923
|
+
import * as React112 from "react";
|
|
7579
7924
|
import { createTransformer as createTransformer5 } from "@elementor/editor-canvas";
|
|
7580
7925
|
import { EllipsisWithTooltip as EllipsisWithTooltip2 } from "@elementor/editor-ui";
|
|
7581
|
-
import { CardMedia, Stack as
|
|
7926
|
+
import { CardMedia, Stack as Stack22 } from "@elementor/ui";
|
|
7582
7927
|
import { useWpMediaAttachment } from "@elementor/wp-media";
|
|
7583
|
-
var backgroundImageOverlayTransformer = createTransformer5((value) => /* @__PURE__ */
|
|
7928
|
+
var backgroundImageOverlayTransformer = createTransformer5((value) => /* @__PURE__ */ React112.createElement(Stack22, { direction: "row", gap: 1, alignItems: "center" }, /* @__PURE__ */ React112.createElement(ItemIconImage, { value }), /* @__PURE__ */ React112.createElement(ItemLabelImage, { value })));
|
|
7584
7929
|
var ItemIconImage = ({ value }) => {
|
|
7585
7930
|
const { imageUrl } = useImage(value);
|
|
7586
|
-
return /* @__PURE__ */
|
|
7931
|
+
return /* @__PURE__ */ React112.createElement(
|
|
7587
7932
|
CardMedia,
|
|
7588
7933
|
{
|
|
7589
7934
|
image: imageUrl,
|
|
@@ -7599,7 +7944,7 @@ var ItemIconImage = ({ value }) => {
|
|
|
7599
7944
|
};
|
|
7600
7945
|
var ItemLabelImage = ({ value }) => {
|
|
7601
7946
|
const { imageTitle } = useImage(value);
|
|
7602
|
-
return /* @__PURE__ */
|
|
7947
|
+
return /* @__PURE__ */ React112.createElement(EllipsisWithTooltip2, { title: imageTitle }, /* @__PURE__ */ React112.createElement("span", null, imageTitle));
|
|
7603
7948
|
};
|
|
7604
7949
|
var useImage = (image) => {
|
|
7605
7950
|
let imageTitle, imageUrl = null;
|
|
@@ -7624,7 +7969,7 @@ var getFileExtensionFromFilename = (filename) => {
|
|
|
7624
7969
|
};
|
|
7625
7970
|
|
|
7626
7971
|
// src/styles-inheritance/transformers/box-shadow-transformer.tsx
|
|
7627
|
-
import * as
|
|
7972
|
+
import * as React113 from "react";
|
|
7628
7973
|
import { createTransformer as createTransformer6 } from "@elementor/editor-canvas";
|
|
7629
7974
|
var boxShadowTransformer = createTransformer6((value) => {
|
|
7630
7975
|
if (!value) {
|
|
@@ -7634,13 +7979,13 @@ var boxShadowTransformer = createTransformer6((value) => {
|
|
|
7634
7979
|
const colorValue = color || "#000000";
|
|
7635
7980
|
const sizes = [hOffset || "0px", vOffset || "0px", blur || "10px", spread || "0px"].join(" ");
|
|
7636
7981
|
const positionValue = position || "outset";
|
|
7637
|
-
return /* @__PURE__ */
|
|
7982
|
+
return /* @__PURE__ */ React113.createElement(React113.Fragment, null, colorValue, " ", positionValue, ", ", sizes);
|
|
7638
7983
|
});
|
|
7639
7984
|
|
|
7640
7985
|
// src/styles-inheritance/transformers/color-transformer.tsx
|
|
7641
|
-
import * as
|
|
7986
|
+
import * as React114 from "react";
|
|
7642
7987
|
import { createTransformer as createTransformer7 } from "@elementor/editor-canvas";
|
|
7643
|
-
import { Stack as
|
|
7988
|
+
import { Stack as Stack23, styled as styled8, UnstableColorIndicator as UnstableColorIndicator2 } from "@elementor/ui";
|
|
7644
7989
|
function isValidCSSColor(value) {
|
|
7645
7990
|
if (!value.trim()) {
|
|
7646
7991
|
return false;
|
|
@@ -7658,7 +8003,7 @@ var colorTransformer = createTransformer7((value) => {
|
|
|
7658
8003
|
if (!isValidCSSColor(value)) {
|
|
7659
8004
|
return value;
|
|
7660
8005
|
}
|
|
7661
|
-
return /* @__PURE__ */
|
|
8006
|
+
return /* @__PURE__ */ React114.createElement(Stack23, { direction: "row", gap: 1, alignItems: "center" }, /* @__PURE__ */ React114.createElement(StyledColorIndicator, { size: "inherit", component: "span", value }), /* @__PURE__ */ React114.createElement("span", null, value));
|
|
7662
8007
|
});
|
|
7663
8008
|
|
|
7664
8009
|
// src/styles-inheritance/transformers/repeater-to-items-transformer.tsx
|