@elementor/editor-editing-panel 1.5.1 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +36 -0
- package/dist/index.d.mts +37 -3
- package/dist/index.d.ts +37 -3
- package/dist/index.js +816 -606
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +798 -570
- package/dist/index.mjs.map +1 -1
- package/package.json +6 -6
- package/src/components/css-class-menu.tsx +125 -0
- package/src/components/css-class-selector.tsx +156 -33
- package/src/components/multi-combobox.tsx +184 -0
- package/src/components/style-sections/border-section/border-field.tsx +1 -5
- package/src/components/style-sections/position-section/position-field.tsx +1 -0
- package/src/components/style-tab.tsx +13 -4
- package/src/contexts/css-class-item-context.tsx +31 -0
- package/src/contexts/style-context.tsx +4 -3
- 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 +37 -0
- 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/index.ts +1 -0
- package/src/init.ts +2 -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
|
@@ -30,23 +30,134 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
30
30
|
// src/index.ts
|
|
31
31
|
var index_exports = {};
|
|
32
32
|
__export(index_exports, {
|
|
33
|
+
registerGlobalClassMenuItem: () => registerGlobalClassMenuItem,
|
|
34
|
+
registerStateMenuItem: () => registerStateMenuItem,
|
|
33
35
|
replaceControl: () => replaceControl,
|
|
34
|
-
useBoundProp: () =>
|
|
36
|
+
useBoundProp: () => import_editor_controls47.useBoundProp
|
|
35
37
|
});
|
|
36
38
|
module.exports = __toCommonJS(index_exports);
|
|
37
|
-
var
|
|
39
|
+
var import_editor_controls47 = require("@elementor/editor-controls");
|
|
38
40
|
|
|
39
41
|
// src/control-replacement.tsx
|
|
40
42
|
var import_editor_controls = require("@elementor/editor-controls");
|
|
41
43
|
var { replaceControl, getControlReplacement } = (0, import_editor_controls.createControlReplacement)();
|
|
42
44
|
|
|
45
|
+
// src/components/css-class-menu.tsx
|
|
46
|
+
var React3 = __toESM(require("react"));
|
|
47
|
+
var import_icons = require("@elementor/icons");
|
|
48
|
+
var import_menus = require("@elementor/menus");
|
|
49
|
+
var import_ui = require("@elementor/ui");
|
|
50
|
+
var import_i18n = require("@wordpress/i18n");
|
|
51
|
+
|
|
52
|
+
// src/contexts/css-class-item-context.tsx
|
|
53
|
+
var React = __toESM(require("react"));
|
|
54
|
+
var import_react = require("react");
|
|
55
|
+
var ClassItemContext = (0, import_react.createContext)({
|
|
56
|
+
styleId: "",
|
|
57
|
+
isGlobal: false,
|
|
58
|
+
isActive: false
|
|
59
|
+
});
|
|
60
|
+
function CssClassItemProvider({ styleId, isGlobal, isActive, children }) {
|
|
61
|
+
return /* @__PURE__ */ React.createElement(ClassItemContext.Provider, { value: { styleId, isGlobal, isActive } }, children);
|
|
62
|
+
}
|
|
63
|
+
function useCssClassItem() {
|
|
64
|
+
const context = React.useContext(ClassItemContext);
|
|
65
|
+
if (!context) {
|
|
66
|
+
throw new Error("useCssClassItem must be used within a CssClassItemProvider");
|
|
67
|
+
}
|
|
68
|
+
return context;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// src/contexts/style-context.tsx
|
|
72
|
+
var React2 = __toESM(require("react"));
|
|
73
|
+
var import_react2 = require("react");
|
|
74
|
+
var Context = (0, import_react2.createContext)(null);
|
|
75
|
+
function StyleProvider({ children, id, setId, meta, setMetaState }) {
|
|
76
|
+
return /* @__PURE__ */ React2.createElement(Context.Provider, { value: { id, setId, meta, setMetaState } }, children);
|
|
77
|
+
}
|
|
78
|
+
function useStyle() {
|
|
79
|
+
const context = (0, import_react2.useContext)(Context);
|
|
80
|
+
if (!context) {
|
|
81
|
+
throw new Error("useStyle must be used within a StyleProvider");
|
|
82
|
+
}
|
|
83
|
+
return context;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// src/components/css-class-menu.tsx
|
|
87
|
+
var { useMenuItems: useStateMenuItems, registerStateMenuItem } = (0, import_menus.createMenu)({
|
|
88
|
+
components: {
|
|
89
|
+
StateMenuItem
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
var { useMenuItems: useGlobalClassMenuItems, registerGlobalClassMenuItem } = (0, import_menus.createMenu)({
|
|
93
|
+
components: {
|
|
94
|
+
GlobalClassMenuItem
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
function CssClassMenu({
|
|
98
|
+
popupState,
|
|
99
|
+
containerRef
|
|
100
|
+
}) {
|
|
101
|
+
const { isGlobal } = useCssClassItem();
|
|
102
|
+
const { default: globalClassMenuItems } = useGlobalClassMenuItems();
|
|
103
|
+
const { default: stateMenuItems } = useStateMenuItems();
|
|
104
|
+
return /* @__PURE__ */ React3.createElement(
|
|
105
|
+
import_ui.Menu,
|
|
106
|
+
{
|
|
107
|
+
MenuListProps: { dense: true },
|
|
108
|
+
...(0, import_ui.bindMenu)(popupState),
|
|
109
|
+
anchorOrigin: {
|
|
110
|
+
vertical: "top",
|
|
111
|
+
horizontal: "right"
|
|
112
|
+
},
|
|
113
|
+
anchorEl: containerRef.current
|
|
114
|
+
},
|
|
115
|
+
isGlobal && /* @__PURE__ */ React3.createElement(GlobalClassMenuSection, null, globalClassMenuItems.map(({ id, MenuItem: MenuItemComponent }) => /* @__PURE__ */ React3.createElement(MenuItemComponent, { key: id }))),
|
|
116
|
+
/* @__PURE__ */ React3.createElement(import_ui.ListSubheader, null, (0, import_i18n.__)("Add a pseudo selector", "elementor")),
|
|
117
|
+
stateMenuItems.map(({ id, MenuItem: MenuItemComponent }) => /* @__PURE__ */ React3.createElement(MenuItemComponent, { key: id }))
|
|
118
|
+
);
|
|
119
|
+
}
|
|
120
|
+
function StateMenuItem({ state, disabled }) {
|
|
121
|
+
const { isActive, styleId } = useCssClassItem();
|
|
122
|
+
const { setId: setActiveId, setMetaState: setActiveMetaState, meta } = useStyle();
|
|
123
|
+
const { state: activeState } = meta;
|
|
124
|
+
const isSelected = state === activeState && isActive;
|
|
125
|
+
return /* @__PURE__ */ React3.createElement(
|
|
126
|
+
StyledMenuItem,
|
|
127
|
+
{
|
|
128
|
+
selected: state === activeState && isActive,
|
|
129
|
+
disabled,
|
|
130
|
+
onClick: () => {
|
|
131
|
+
if (!isActive) {
|
|
132
|
+
setActiveId(styleId);
|
|
133
|
+
}
|
|
134
|
+
setActiveMetaState(state);
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
isSelected && /* @__PURE__ */ React3.createElement(import_ui.ListItemIcon, null, /* @__PURE__ */ React3.createElement(import_icons.CheckIcon, null)),
|
|
138
|
+
/* @__PURE__ */ React3.createElement(import_ui.ListItemText, { primary: state ? `:${state}` : "Normal" })
|
|
139
|
+
);
|
|
140
|
+
}
|
|
141
|
+
function GlobalClassMenuItem({ text, onClick }) {
|
|
142
|
+
return /* @__PURE__ */ React3.createElement(StyledMenuItem, { onClick }, /* @__PURE__ */ React3.createElement(import_ui.ListItemText, { primary: text }));
|
|
143
|
+
}
|
|
144
|
+
var GlobalClassMenuSection = (0, import_ui.styled)(import_ui.Box)(({ theme }) => ({
|
|
145
|
+
borderBottom: `1px solid ${theme?.palette.divider}`
|
|
146
|
+
}));
|
|
147
|
+
var StyledMenuItem = (0, import_ui.styled)(import_ui.MenuItem)({
|
|
148
|
+
"&:hover": {
|
|
149
|
+
color: "text.primary"
|
|
150
|
+
// Overriding global CSS from the editor.
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
|
|
43
154
|
// src/init.ts
|
|
44
155
|
var import_editor = require("@elementor/editor");
|
|
45
156
|
var import_editor_panels3 = require("@elementor/editor-panels");
|
|
46
157
|
var import_editor_v1_adapters4 = require("@elementor/editor-v1-adapters");
|
|
47
158
|
|
|
48
159
|
// src/hooks/use-close-editor-panel.ts
|
|
49
|
-
var
|
|
160
|
+
var import_react16 = require("react");
|
|
50
161
|
var import_editor_elements8 = require("@elementor/editor-elements");
|
|
51
162
|
var import_editor_v1_adapters2 = require("@elementor/editor-v1-adapters");
|
|
52
163
|
|
|
@@ -54,22 +165,22 @@ var import_editor_v1_adapters2 = require("@elementor/editor-v1-adapters");
|
|
|
54
165
|
var import_editor_panels2 = require("@elementor/editor-panels");
|
|
55
166
|
|
|
56
167
|
// src/components/editing-panel.tsx
|
|
57
|
-
var
|
|
168
|
+
var React61 = __toESM(require("react"));
|
|
58
169
|
var import_editor_controls41 = require("@elementor/editor-controls");
|
|
59
170
|
var import_editor_elements6 = require("@elementor/editor-elements");
|
|
60
171
|
var import_editor_panels = require("@elementor/editor-panels");
|
|
61
172
|
var import_ui50 = require("@elementor/ui");
|
|
62
|
-
var
|
|
173
|
+
var import_i18n40 = require("@wordpress/i18n");
|
|
63
174
|
|
|
64
175
|
// src/contexts/element-context.tsx
|
|
65
|
-
var
|
|
66
|
-
var
|
|
67
|
-
var
|
|
176
|
+
var React4 = __toESM(require("react"));
|
|
177
|
+
var import_react3 = require("react");
|
|
178
|
+
var Context2 = (0, import_react3.createContext)(null);
|
|
68
179
|
function ElementProvider({ children, element, elementType }) {
|
|
69
|
-
return /* @__PURE__ */
|
|
180
|
+
return /* @__PURE__ */ React4.createElement(Context2.Provider, { value: { element, elementType } }, children);
|
|
70
181
|
}
|
|
71
182
|
function useElement() {
|
|
72
|
-
const context = (0,
|
|
183
|
+
const context = (0, import_react3.useContext)(Context2);
|
|
73
184
|
if (!context) {
|
|
74
185
|
throw new Error("useElement must be used within a ElementProvider");
|
|
75
186
|
}
|
|
@@ -77,13 +188,13 @@ function useElement() {
|
|
|
77
188
|
}
|
|
78
189
|
|
|
79
190
|
// src/controls-actions.ts
|
|
80
|
-
var
|
|
191
|
+
var import_menus2 = require("@elementor/menus");
|
|
81
192
|
|
|
82
193
|
// src/popover-action.tsx
|
|
83
|
-
var
|
|
84
|
-
var
|
|
85
|
-
var
|
|
86
|
-
var
|
|
194
|
+
var React5 = __toESM(require("react"));
|
|
195
|
+
var import_react4 = require("react");
|
|
196
|
+
var import_icons2 = require("@elementor/icons");
|
|
197
|
+
var import_ui2 = require("@elementor/ui");
|
|
87
198
|
var SIZE = "tiny";
|
|
88
199
|
function PopoverAction({
|
|
89
200
|
title,
|
|
@@ -91,16 +202,16 @@ function PopoverAction({
|
|
|
91
202
|
icon: Icon,
|
|
92
203
|
popoverContent: PopoverContent
|
|
93
204
|
}) {
|
|
94
|
-
const id = (0,
|
|
95
|
-
const popupState = (0,
|
|
205
|
+
const id = (0, import_react4.useId)();
|
|
206
|
+
const popupState = (0, import_ui2.usePopupState)({
|
|
96
207
|
variant: "popover",
|
|
97
208
|
popupId: `elementor-popover-action-${id}`
|
|
98
209
|
});
|
|
99
210
|
if (!visible) {
|
|
100
211
|
return null;
|
|
101
212
|
}
|
|
102
|
-
return /* @__PURE__ */
|
|
103
|
-
|
|
213
|
+
return /* @__PURE__ */ React5.createElement(React5.Fragment, null, /* @__PURE__ */ React5.createElement(import_ui2.Tooltip, { placement: "top", title }, /* @__PURE__ */ React5.createElement(import_ui2.IconButton, { "aria-label": title, key: id, size: SIZE, ...(0, import_ui2.bindToggle)(popupState) }, /* @__PURE__ */ React5.createElement(Icon, { fontSize: SIZE }))), /* @__PURE__ */ React5.createElement(
|
|
214
|
+
import_ui2.Popover,
|
|
104
215
|
{
|
|
105
216
|
disablePortal: true,
|
|
106
217
|
disableScrollLock: true,
|
|
@@ -108,39 +219,39 @@ function PopoverAction({
|
|
|
108
219
|
vertical: "bottom",
|
|
109
220
|
horizontal: "center"
|
|
110
221
|
},
|
|
111
|
-
...(0,
|
|
222
|
+
...(0, import_ui2.bindPopover)(popupState)
|
|
112
223
|
},
|
|
113
|
-
/* @__PURE__ */
|
|
114
|
-
/* @__PURE__ */
|
|
224
|
+
/* @__PURE__ */ React5.createElement(import_ui2.Stack, { direction: "row", alignItems: "center", pl: 1.5, pr: 0.5, py: 1.5 }, /* @__PURE__ */ React5.createElement(Icon, { fontSize: SIZE, sx: { mr: 0.5 } }), /* @__PURE__ */ React5.createElement(import_ui2.Typography, { variant: "subtitle2" }, title), /* @__PURE__ */ React5.createElement(import_ui2.IconButton, { sx: { ml: "auto" }, size: SIZE, onClick: popupState.close }, /* @__PURE__ */ React5.createElement(import_icons2.XIcon, { fontSize: SIZE }))),
|
|
225
|
+
/* @__PURE__ */ React5.createElement(PopoverContent, { closePopover: popupState.close })
|
|
115
226
|
));
|
|
116
227
|
}
|
|
117
228
|
|
|
118
229
|
// src/controls-actions.ts
|
|
119
|
-
var controlActionsMenu = (0,
|
|
230
|
+
var controlActionsMenu = (0, import_menus2.createMenu)({
|
|
120
231
|
components: {
|
|
121
232
|
PopoverAction
|
|
122
233
|
}
|
|
123
234
|
});
|
|
124
235
|
|
|
125
236
|
// src/components/editing-panel-error-fallback.tsx
|
|
126
|
-
var
|
|
127
|
-
var
|
|
237
|
+
var React6 = __toESM(require("react"));
|
|
238
|
+
var import_ui3 = require("@elementor/ui");
|
|
128
239
|
function EditorPanelErrorFallback() {
|
|
129
|
-
return /* @__PURE__ */
|
|
240
|
+
return /* @__PURE__ */ React6.createElement(import_ui3.Box, { role: "alert", sx: { minHeight: "100%", p: 2 } }, /* @__PURE__ */ React6.createElement(import_ui3.Alert, { severity: "error", sx: { mb: 2, maxWidth: 400, textAlign: "center" } }, /* @__PURE__ */ React6.createElement("strong", null, "Something went wrong")));
|
|
130
241
|
}
|
|
131
242
|
|
|
132
243
|
// src/components/editing-panel-tabs.tsx
|
|
133
|
-
var
|
|
134
|
-
var
|
|
244
|
+
var React60 = __toESM(require("react"));
|
|
245
|
+
var import_react15 = require("react");
|
|
135
246
|
var import_ui49 = require("@elementor/ui");
|
|
136
|
-
var
|
|
247
|
+
var import_i18n39 = require("@wordpress/i18n");
|
|
137
248
|
|
|
138
249
|
// src/components/settings-tab.tsx
|
|
139
|
-
var
|
|
250
|
+
var React12 = __toESM(require("react"));
|
|
140
251
|
var import_editor_controls4 = require("@elementor/editor-controls");
|
|
141
252
|
|
|
142
253
|
// src/controls-registry/control.tsx
|
|
143
|
-
var
|
|
254
|
+
var React7 = __toESM(require("react"));
|
|
144
255
|
var import_utils = require("@elementor/utils");
|
|
145
256
|
|
|
146
257
|
// src/controls-registry/controls-registry.tsx
|
|
@@ -169,20 +280,20 @@ var Control = ({ props, type }) => {
|
|
|
169
280
|
context: { type }
|
|
170
281
|
});
|
|
171
282
|
}
|
|
172
|
-
return /* @__PURE__ */
|
|
283
|
+
return /* @__PURE__ */ React7.createElement(ControlByType, { ...props });
|
|
173
284
|
};
|
|
174
285
|
|
|
175
286
|
// src/controls-registry/control-type-container.tsx
|
|
176
|
-
var
|
|
177
|
-
var
|
|
287
|
+
var React8 = __toESM(require("react"));
|
|
288
|
+
var import_ui4 = require("@elementor/ui");
|
|
178
289
|
var ControlTypeContainer = ({
|
|
179
290
|
controlType,
|
|
180
291
|
children
|
|
181
292
|
}) => {
|
|
182
293
|
const layout = getLayoutByType(controlType);
|
|
183
|
-
return /* @__PURE__ */
|
|
294
|
+
return /* @__PURE__ */ React8.createElement(StyledContainer, { layout }, children);
|
|
184
295
|
};
|
|
185
|
-
var StyledContainer = (0,
|
|
296
|
+
var StyledContainer = (0, import_ui4.styled)(import_ui4.Box, {
|
|
186
297
|
shouldForwardProp: (prop) => !["layout"].includes(prop)
|
|
187
298
|
})(({ layout, theme }) => ({
|
|
188
299
|
display: "grid",
|
|
@@ -198,34 +309,47 @@ var getGridLayout = (layout) => ({
|
|
|
198
309
|
});
|
|
199
310
|
|
|
200
311
|
// src/controls-registry/settings-field.tsx
|
|
201
|
-
var
|
|
312
|
+
var React9 = __toESM(require("react"));
|
|
202
313
|
var import_editor_controls3 = require("@elementor/editor-controls");
|
|
203
314
|
var import_editor_elements = require("@elementor/editor-elements");
|
|
315
|
+
|
|
316
|
+
// src/controls-registry/create-top-level-object-type.ts
|
|
317
|
+
var createTopLevelOjectType = ({ schema }) => {
|
|
318
|
+
const schemaPropType = {
|
|
319
|
+
key: "",
|
|
320
|
+
kind: "object",
|
|
321
|
+
meta: {},
|
|
322
|
+
settings: {},
|
|
323
|
+
default: null,
|
|
324
|
+
shape: schema
|
|
325
|
+
};
|
|
326
|
+
return schemaPropType;
|
|
327
|
+
};
|
|
328
|
+
|
|
329
|
+
// src/controls-registry/settings-field.tsx
|
|
204
330
|
var SettingsField = ({ bind, children }) => {
|
|
205
331
|
const { element, elementType } = useElement();
|
|
206
|
-
const defaultValue = elementType.propsSchema[bind]?.default;
|
|
207
332
|
const settingsValue = (0, import_editor_elements.useElementSetting)(element.id, bind);
|
|
208
|
-
const value =
|
|
333
|
+
const value = { [bind]: settingsValue };
|
|
334
|
+
const propType = createTopLevelOjectType({ schema: elementType.propsSchema });
|
|
209
335
|
const setValue = (newValue) => {
|
|
210
336
|
(0, import_editor_elements.updateSettings)({
|
|
211
337
|
id: element.id,
|
|
212
|
-
props: {
|
|
213
|
-
[bind]: newValue
|
|
214
|
-
}
|
|
338
|
+
props: { ...newValue }
|
|
215
339
|
});
|
|
216
340
|
};
|
|
217
|
-
return /* @__PURE__ */
|
|
341
|
+
return /* @__PURE__ */ React9.createElement(import_editor_controls3.PropProvider, { propType, value, setValue }, /* @__PURE__ */ React9.createElement(import_editor_controls3.PropKeyProvider, { bind }, children));
|
|
218
342
|
};
|
|
219
343
|
|
|
220
344
|
// src/components/section.tsx
|
|
221
|
-
var
|
|
222
|
-
var
|
|
223
|
-
var
|
|
345
|
+
var React10 = __toESM(require("react"));
|
|
346
|
+
var import_react5 = require("react");
|
|
347
|
+
var import_ui6 = require("@elementor/ui");
|
|
224
348
|
|
|
225
349
|
// src/components/collapse-icon.tsx
|
|
226
|
-
var
|
|
227
|
-
var
|
|
228
|
-
var CollapseIcon = (0,
|
|
350
|
+
var import_icons3 = require("@elementor/icons");
|
|
351
|
+
var import_ui5 = require("@elementor/ui");
|
|
352
|
+
var CollapseIcon = (0, import_ui5.styled)(import_icons3.ChevronDownIcon, {
|
|
229
353
|
shouldForwardProp: (prop) => prop !== "open"
|
|
230
354
|
})(({ theme, open }) => ({
|
|
231
355
|
transform: open ? "rotate(180deg)" : "rotate(0deg)",
|
|
@@ -236,40 +360,40 @@ var CollapseIcon = (0, import_ui4.styled)(import_icons2.ChevronDownIcon, {
|
|
|
236
360
|
|
|
237
361
|
// src/components/section.tsx
|
|
238
362
|
function Section({ title, children, defaultExpanded = false }) {
|
|
239
|
-
const [isOpen, setIsOpen] = (0,
|
|
240
|
-
const id = (0,
|
|
363
|
+
const [isOpen, setIsOpen] = (0, import_react5.useState)(!!defaultExpanded);
|
|
364
|
+
const id = (0, import_react5.useId)();
|
|
241
365
|
const labelId = `label-${id}`;
|
|
242
366
|
const contentId = `content-${id}`;
|
|
243
|
-
return /* @__PURE__ */
|
|
244
|
-
|
|
367
|
+
return /* @__PURE__ */ React10.createElement(React10.Fragment, null, /* @__PURE__ */ React10.createElement(
|
|
368
|
+
import_ui6.ListItemButton,
|
|
245
369
|
{
|
|
246
370
|
id: labelId,
|
|
247
371
|
"aria-controls": contentId,
|
|
248
372
|
onClick: () => setIsOpen((prev) => !prev)
|
|
249
373
|
},
|
|
250
|
-
/* @__PURE__ */
|
|
251
|
-
/* @__PURE__ */
|
|
252
|
-
), /* @__PURE__ */
|
|
374
|
+
/* @__PURE__ */ React10.createElement(import_ui6.ListItemText, { secondary: title }),
|
|
375
|
+
/* @__PURE__ */ React10.createElement(CollapseIcon, { open: isOpen, color: "secondary" })
|
|
376
|
+
), /* @__PURE__ */ React10.createElement(import_ui6.Collapse, { id: contentId, "aria-labelledby": labelId, in: isOpen, timeout: "auto", unmountOnExit: true }, /* @__PURE__ */ React10.createElement(import_ui6.Stack, { gap: 2.5, p: 2 }, children)), /* @__PURE__ */ React10.createElement(import_ui6.Divider, null));
|
|
253
377
|
}
|
|
254
378
|
|
|
255
379
|
// src/components/sections-list.tsx
|
|
256
|
-
var
|
|
257
|
-
var
|
|
380
|
+
var React11 = __toESM(require("react"));
|
|
381
|
+
var import_ui7 = require("@elementor/ui");
|
|
258
382
|
function SectionsList(props) {
|
|
259
|
-
return /* @__PURE__ */
|
|
383
|
+
return /* @__PURE__ */ React11.createElement(import_ui7.List, { disablePadding: true, component: "div", ...props });
|
|
260
384
|
}
|
|
261
385
|
|
|
262
386
|
// src/components/settings-tab.tsx
|
|
263
387
|
var SettingsTab = () => {
|
|
264
388
|
const { elementType } = useElement();
|
|
265
|
-
return /* @__PURE__ */
|
|
389
|
+
return /* @__PURE__ */ React12.createElement(SectionsList, null, elementType.controls.map(({ type, value }, index) => {
|
|
266
390
|
if (type === "control") {
|
|
267
|
-
return /* @__PURE__ */
|
|
391
|
+
return /* @__PURE__ */ React12.createElement(Control2, { key: value.bind, control: value });
|
|
268
392
|
}
|
|
269
393
|
if (type === "section") {
|
|
270
|
-
return /* @__PURE__ */
|
|
394
|
+
return /* @__PURE__ */ React12.createElement(Section, { title: value.label, key: type + "." + index, defaultExpanded: true }, value.items?.map((item) => {
|
|
271
395
|
if (item.type === "control") {
|
|
272
|
-
return /* @__PURE__ */
|
|
396
|
+
return /* @__PURE__ */ React12.createElement(Control2, { key: item.value.bind, control: item.value });
|
|
273
397
|
}
|
|
274
398
|
return null;
|
|
275
399
|
}));
|
|
@@ -281,63 +405,50 @@ var Control2 = ({ control }) => {
|
|
|
281
405
|
if (!getControlByType(control.type)) {
|
|
282
406
|
return null;
|
|
283
407
|
}
|
|
284
|
-
return /* @__PURE__ */
|
|
408
|
+
return /* @__PURE__ */ React12.createElement(SettingsField, { bind: control.bind }, /* @__PURE__ */ React12.createElement(ControlTypeContainer, { controlType: control.type }, control.label ? /* @__PURE__ */ React12.createElement(import_editor_controls4.ControlLabel, null, control.label) : null, /* @__PURE__ */ React12.createElement(Control, { type: control.type, props: control.props })));
|
|
285
409
|
};
|
|
286
410
|
|
|
287
411
|
// src/components/style-tab.tsx
|
|
288
|
-
var
|
|
289
|
-
var
|
|
412
|
+
var React59 = __toESM(require("react"));
|
|
413
|
+
var import_react14 = require("react");
|
|
290
414
|
var import_editor_elements5 = require("@elementor/editor-elements");
|
|
291
415
|
var import_editor_responsive = require("@elementor/editor-responsive");
|
|
292
416
|
var import_ui48 = require("@elementor/ui");
|
|
293
|
-
var
|
|
417
|
+
var import_i18n38 = require("@wordpress/i18n");
|
|
294
418
|
|
|
295
419
|
// src/contexts/classes-prop-context.tsx
|
|
296
|
-
var
|
|
297
|
-
var
|
|
298
|
-
var
|
|
420
|
+
var React13 = __toESM(require("react"));
|
|
421
|
+
var import_react6 = require("react");
|
|
422
|
+
var Context3 = (0, import_react6.createContext)(null);
|
|
299
423
|
function ClassesPropProvider({ children, prop }) {
|
|
300
|
-
return /* @__PURE__ */
|
|
424
|
+
return /* @__PURE__ */ React13.createElement(Context3.Provider, { value: { prop } }, children);
|
|
301
425
|
}
|
|
302
426
|
function useClassesProp() {
|
|
303
|
-
const context = (0,
|
|
427
|
+
const context = (0, import_react6.useContext)(Context3);
|
|
304
428
|
if (!context) {
|
|
305
429
|
throw new Error("useClassesProp must be used within a ClassesPropProvider");
|
|
306
430
|
}
|
|
307
431
|
return context.prop;
|
|
308
432
|
}
|
|
309
433
|
|
|
310
|
-
// src/contexts/style-context.tsx
|
|
311
|
-
var React11 = __toESM(require("react"));
|
|
312
|
-
var import_react5 = require("react");
|
|
313
|
-
var Context3 = (0, import_react5.createContext)(null);
|
|
314
|
-
function StyleProvider({ children, id, setId, meta }) {
|
|
315
|
-
return /* @__PURE__ */ React11.createElement(Context3.Provider, { value: { id, setId, meta } }, children);
|
|
316
|
-
}
|
|
317
|
-
function useStyle() {
|
|
318
|
-
const context = (0, import_react5.useContext)(Context3);
|
|
319
|
-
if (!context) {
|
|
320
|
-
throw new Error("useStyle must be used within a StyleProvider");
|
|
321
|
-
}
|
|
322
|
-
return context;
|
|
323
|
-
}
|
|
324
|
-
|
|
325
434
|
// src/components/css-class-selector.tsx
|
|
326
|
-
var
|
|
435
|
+
var React16 = __toESM(require("react"));
|
|
436
|
+
var import_react9 = require("react");
|
|
327
437
|
var import_editor_elements2 = require("@elementor/editor-elements");
|
|
328
438
|
var import_editor_props = require("@elementor/editor-props");
|
|
329
439
|
var import_editor_styles_repository = require("@elementor/editor-styles-repository");
|
|
440
|
+
var import_icons4 = require("@elementor/icons");
|
|
330
441
|
var import_ui10 = require("@elementor/ui");
|
|
331
|
-
var
|
|
442
|
+
var import_i18n2 = require("@wordpress/i18n");
|
|
332
443
|
|
|
333
444
|
// src/components/conditional-tooltip-wrapper.tsx
|
|
334
|
-
var
|
|
335
|
-
var
|
|
336
|
-
var
|
|
445
|
+
var import_react7 = require("react");
|
|
446
|
+
var React14 = __toESM(require("react"));
|
|
447
|
+
var import_ui8 = require("@elementor/ui");
|
|
337
448
|
var ConditionalTooltipWrapper = ({ maxWidth, title }) => {
|
|
338
|
-
const elRef = (0,
|
|
339
|
-
const [isOverflown, setIsOverflown] = (0,
|
|
340
|
-
(0,
|
|
449
|
+
const elRef = (0, import_react7.useRef)(null);
|
|
450
|
+
const [isOverflown, setIsOverflown] = (0, import_react7.useState)(false);
|
|
451
|
+
(0, import_react7.useEffect)(() => {
|
|
341
452
|
const onResize = () => {
|
|
342
453
|
const element = elRef.current;
|
|
343
454
|
if (element) {
|
|
@@ -351,12 +462,12 @@ var ConditionalTooltipWrapper = ({ maxWidth, title }) => {
|
|
|
351
462
|
};
|
|
352
463
|
}, []);
|
|
353
464
|
if (isOverflown) {
|
|
354
|
-
return /* @__PURE__ */
|
|
465
|
+
return /* @__PURE__ */ React14.createElement(import_ui8.Tooltip, { title, placement: "top" }, /* @__PURE__ */ React14.createElement(Content, { maxWidth, ref: elRef }, title));
|
|
355
466
|
}
|
|
356
|
-
return /* @__PURE__ */
|
|
467
|
+
return /* @__PURE__ */ React14.createElement(Content, { maxWidth, ref: elRef }, title);
|
|
357
468
|
};
|
|
358
|
-
var Content =
|
|
359
|
-
|
|
469
|
+
var Content = React14.forwardRef(({ maxWidth, ...tooltipProps }, ref) => /* @__PURE__ */ React14.createElement(
|
|
470
|
+
import_ui8.Box,
|
|
360
471
|
{
|
|
361
472
|
ref,
|
|
362
473
|
position: "relative",
|
|
@@ -365,74 +476,20 @@ var Content = React12.forwardRef(({ maxWidth, ...tooltipProps }, ref) => /* @__P
|
|
|
365
476
|
}
|
|
366
477
|
));
|
|
367
478
|
|
|
368
|
-
// src/components/multi-combobox
|
|
369
|
-
var
|
|
479
|
+
// src/components/multi-combobox.tsx
|
|
480
|
+
var React15 = __toESM(require("react"));
|
|
481
|
+
var import_react8 = require("react");
|
|
370
482
|
var import_ui9 = require("@elementor/ui");
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
var import_ui8 = require("@elementor/ui");
|
|
374
|
-
var useComboboxActions = (applied, actions, optionsLabel, onSelect) => ({
|
|
375
|
-
action: {
|
|
376
|
-
is: (opt) => typeof opt !== "string" && "action" in opt,
|
|
377
|
-
getLabel: (option) => option.action.getLabel(option.label),
|
|
378
|
-
groupBy: (option) => option.action.groupLabel,
|
|
379
|
-
onChange: ({ action, label }) => action?.apply(label),
|
|
380
|
-
getFilteredActions: (optionList, params) => {
|
|
381
|
-
const actionGroups = Object.values(actions);
|
|
382
|
-
return actionGroups.reduce((groups, group) => {
|
|
383
|
-
const actionOptions = group.actions.reduce((groupActions, action) => {
|
|
384
|
-
const shouldShowAction = action.condition(optionList, params.inputValue);
|
|
385
|
-
if (shouldShowAction) {
|
|
386
|
-
const actionOption = createActionOption(group.label, action, params.inputValue);
|
|
387
|
-
groupActions.unshift(actionOption);
|
|
388
|
-
}
|
|
389
|
-
return groupActions;
|
|
390
|
-
}, []);
|
|
391
|
-
return [...groups, ...actionOptions];
|
|
392
|
-
}, []);
|
|
393
|
-
}
|
|
394
|
-
},
|
|
395
|
-
option: {
|
|
396
|
-
is: (opt) => typeof opt !== "string" && !("action" in opt),
|
|
397
|
-
getLabel: (option) => option.label,
|
|
398
|
-
groupBy: () => optionsLabel ?? "",
|
|
399
|
-
onChange: (optionValues) => onSelect?.(optionValues),
|
|
400
|
-
getFilteredOptions: (optionList, params) => {
|
|
401
|
-
const appliedValues = applied.map((option) => option.value);
|
|
402
|
-
const optionsWithoutApplied = optionList.filter((option) => !appliedValues.includes(option.value));
|
|
403
|
-
return filter(optionsWithoutApplied, params);
|
|
404
|
-
}
|
|
405
|
-
}
|
|
406
|
-
});
|
|
407
|
-
var filter = (0, import_ui8.createFilterOptions)();
|
|
408
|
-
var createActionOption = (groupLabel, action, inputValue) => ({
|
|
409
|
-
value: "",
|
|
410
|
-
label: inputValue,
|
|
411
|
-
action: {
|
|
412
|
-
groupLabel,
|
|
413
|
-
apply: action.apply,
|
|
414
|
-
getLabel: action.getLabel
|
|
415
|
-
}
|
|
416
|
-
});
|
|
417
|
-
|
|
418
|
-
// src/components/multi-combobox/multi-combobox.tsx
|
|
419
|
-
var MultiCombobox = ({
|
|
420
|
-
actions = {},
|
|
483
|
+
function MultiCombobox({
|
|
484
|
+
actions = [],
|
|
421
485
|
selected,
|
|
422
486
|
options: options10,
|
|
423
|
-
optionsLabel,
|
|
424
487
|
onSelect,
|
|
425
|
-
onCreate,
|
|
426
488
|
...props
|
|
427
|
-
})
|
|
428
|
-
const
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
// TODO: make the group mechanism more generic, allow passing list of groups.
|
|
432
|
-
optionsLabel,
|
|
433
|
-
onSelect
|
|
434
|
-
);
|
|
435
|
-
return /* @__PURE__ */ React13.createElement(
|
|
489
|
+
}) {
|
|
490
|
+
const filter = useFilterOptions();
|
|
491
|
+
const { run, loading } = useActionRunner();
|
|
492
|
+
return /* @__PURE__ */ React15.createElement(
|
|
436
493
|
import_ui9.Autocomplete,
|
|
437
494
|
{
|
|
438
495
|
...props,
|
|
@@ -442,63 +499,100 @@ var MultiCombobox = ({
|
|
|
442
499
|
selectOnFocus: true,
|
|
443
500
|
disableClearable: true,
|
|
444
501
|
handleHomeEndKeys: true,
|
|
502
|
+
disabled: loading,
|
|
445
503
|
value: selected,
|
|
446
504
|
options: options10,
|
|
447
|
-
renderGroup,
|
|
448
|
-
renderInput: (params) => /* @__PURE__ */
|
|
449
|
-
|
|
450
|
-
|
|
505
|
+
renderGroup: (params) => /* @__PURE__ */ React15.createElement(Group, { ...params }),
|
|
506
|
+
renderInput: (params) => /* @__PURE__ */ React15.createElement(import_ui9.TextField, { ...params }),
|
|
507
|
+
onChange: (_, selectedOrInputValue, reason) => {
|
|
508
|
+
const inputValue = selectedOrInputValue.find((option) => typeof option === "string");
|
|
509
|
+
const optionsAndActions = selectedOrInputValue.filter((option) => typeof option !== "string");
|
|
451
510
|
if (reason === "createOption") {
|
|
452
|
-
const
|
|
453
|
-
|
|
511
|
+
const [firstAction] = filterActions(actions, { options: options10, inputValue: inputValue ?? "" });
|
|
512
|
+
if (firstAction) {
|
|
513
|
+
return run(firstAction.apply, firstAction.value);
|
|
514
|
+
}
|
|
454
515
|
}
|
|
455
|
-
const action =
|
|
516
|
+
const action = optionsAndActions.find((value) => isAction(value));
|
|
456
517
|
if (reason === "selectOption" && action) {
|
|
457
|
-
return
|
|
518
|
+
return run(action.apply, action.value);
|
|
458
519
|
}
|
|
459
|
-
const
|
|
460
|
-
|
|
461
|
-
optionProps.onChange([.../* @__PURE__ */ new Set([...fixedValues, ...selectedValues])]);
|
|
520
|
+
const fixedValues = options10.filter((option) => !!option.fixed);
|
|
521
|
+
onSelect?.([.../* @__PURE__ */ new Set([...optionsAndActions, ...fixedValues])]);
|
|
462
522
|
},
|
|
463
|
-
getOptionLabel: (option) =>
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
if (actionProps.is(option)) {
|
|
468
|
-
return actionProps.getLabel(option);
|
|
523
|
+
getOptionLabel: (option) => typeof option === "string" ? option : option.label,
|
|
524
|
+
getOptionKey: (option) => {
|
|
525
|
+
if (typeof option === "string") {
|
|
526
|
+
return option;
|
|
469
527
|
}
|
|
470
|
-
return
|
|
528
|
+
return option.key ?? option.value;
|
|
471
529
|
},
|
|
472
530
|
filterOptions: (optionList, params) => {
|
|
473
|
-
const
|
|
474
|
-
|
|
475
|
-
|
|
531
|
+
const selectedValues = selected.map((option) => option.value);
|
|
532
|
+
return [
|
|
533
|
+
...filterActions(actions, { options: optionList, inputValue: params.inputValue }),
|
|
534
|
+
...filter(
|
|
535
|
+
optionList.filter((option) => !selectedValues.includes(option.value)),
|
|
536
|
+
params
|
|
537
|
+
)
|
|
538
|
+
];
|
|
476
539
|
},
|
|
477
|
-
groupBy: (option) =>
|
|
540
|
+
groupBy: (option) => option.group ?? ""
|
|
478
541
|
}
|
|
479
542
|
);
|
|
543
|
+
}
|
|
544
|
+
var Group = (params) => {
|
|
545
|
+
const id = `combobox-group-${(0, import_react8.useId)().replace(/:/g, "_")}`;
|
|
546
|
+
return /* @__PURE__ */ React15.createElement(StyledGroup, { role: "group", "aria-labelledby": id }, /* @__PURE__ */ React15.createElement(StyledGroupHeader, { id }, " ", params.group), /* @__PURE__ */ React15.createElement(StyledGroupItems, { role: "listbox" }, params.children));
|
|
480
547
|
};
|
|
481
|
-
var
|
|
482
|
-
var Group = (0, import_ui9.styled)("li")`
|
|
548
|
+
var StyledGroup = (0, import_ui9.styled)("li")`
|
|
483
549
|
&:not( :last-of-type ) {
|
|
484
550
|
border-bottom: 1px solid ${({ theme }) => theme.palette.divider};
|
|
485
551
|
}
|
|
486
552
|
`;
|
|
487
|
-
var
|
|
553
|
+
var StyledGroupHeader = (0, import_ui9.styled)(import_ui9.Box)(({ theme }) => ({
|
|
488
554
|
position: "sticky",
|
|
489
555
|
top: "-8px",
|
|
490
556
|
padding: theme.spacing(1, 2),
|
|
491
557
|
color: theme.palette.text.tertiary
|
|
492
558
|
}));
|
|
493
|
-
var
|
|
559
|
+
var StyledGroupItems = (0, import_ui9.styled)("ul")`
|
|
494
560
|
padding: 0;
|
|
495
561
|
`;
|
|
562
|
+
function useFilterOptions() {
|
|
563
|
+
return (0, import_react8.useState)(() => (0, import_ui9.createFilterOptions)())[0];
|
|
564
|
+
}
|
|
565
|
+
function useActionRunner() {
|
|
566
|
+
const [loading, setLoading] = (0, import_react8.useState)(false);
|
|
567
|
+
const run = async (apply, value) => {
|
|
568
|
+
setLoading(true);
|
|
569
|
+
try {
|
|
570
|
+
await apply(value);
|
|
571
|
+
} catch {
|
|
572
|
+
}
|
|
573
|
+
setLoading(false);
|
|
574
|
+
};
|
|
575
|
+
return { run, loading };
|
|
576
|
+
}
|
|
577
|
+
function filterActions(actions, { options: options10, inputValue }) {
|
|
578
|
+
return actions.filter((action) => action.condition(options10, inputValue)).map((action, index) => ({
|
|
579
|
+
label: action.label(inputValue),
|
|
580
|
+
value: inputValue,
|
|
581
|
+
group: action.group,
|
|
582
|
+
apply: action.apply,
|
|
583
|
+
condition: action.condition,
|
|
584
|
+
key: index.toString()
|
|
585
|
+
}));
|
|
586
|
+
}
|
|
587
|
+
function isAction(option) {
|
|
588
|
+
return "apply" in option && "condition" in option;
|
|
589
|
+
}
|
|
496
590
|
|
|
497
591
|
// src/components/css-class-selector.tsx
|
|
498
592
|
var ID = "elementor-css-class-selector";
|
|
499
593
|
var TAGS_LIMIT = 8;
|
|
500
594
|
var EMPTY_OPTION = {
|
|
501
|
-
label: (0,
|
|
595
|
+
label: (0, import_i18n2.__)("local", "elementor"),
|
|
502
596
|
value: "",
|
|
503
597
|
fixed: true,
|
|
504
598
|
color: "primary",
|
|
@@ -506,13 +600,14 @@ var EMPTY_OPTION = {
|
|
|
506
600
|
};
|
|
507
601
|
function CssClassSelector() {
|
|
508
602
|
const options10 = useOptions();
|
|
509
|
-
const
|
|
603
|
+
const { value: appliedIds, setValue: setAppliedIds, pushValue: pushAppliedId } = useAppliedClassesIds();
|
|
510
604
|
const { id: activeId, setId: setActiveId } = useStyle();
|
|
605
|
+
const actions = useCreateActions({ pushAppliedId, setActiveId });
|
|
511
606
|
const handleApply = useHandleApply(appliedIds, setAppliedIds);
|
|
512
607
|
const handleActivate = ({ value }) => setActiveId(value);
|
|
513
608
|
const applied = useAppliedOptions(options10, appliedIds);
|
|
514
609
|
const active = applied.find((option) => option.value === activeId) ?? EMPTY_OPTION;
|
|
515
|
-
return /* @__PURE__ */
|
|
610
|
+
return /* @__PURE__ */ React16.createElement(import_ui10.Stack, { gap: 1, p: 2 }, /* @__PURE__ */ React16.createElement(import_ui10.Typography, { component: "label", variant: "caption", htmlFor: ID }, (0, import_i18n2.__)("CSS Classes", "elementor")), /* @__PURE__ */ React16.createElement(
|
|
516
611
|
MultiCombobox,
|
|
517
612
|
{
|
|
518
613
|
id: ID,
|
|
@@ -521,44 +616,104 @@ function CssClassSelector() {
|
|
|
521
616
|
selected: applied,
|
|
522
617
|
onSelect: handleApply,
|
|
523
618
|
limitTags: TAGS_LIMIT,
|
|
524
|
-
|
|
619
|
+
actions,
|
|
620
|
+
getLimitTagsText: (more) => /* @__PURE__ */ React16.createElement(import_ui10.Chip, { size: "tiny", variant: "standard", label: `+${more}`, clickable: true }),
|
|
525
621
|
renderTags: (values, getTagProps) => values.map((value, index) => {
|
|
526
622
|
const chipProps = getTagProps({ index });
|
|
527
623
|
const isActive = value.value === active?.value;
|
|
528
|
-
return /* @__PURE__ */
|
|
529
|
-
|
|
624
|
+
return /* @__PURE__ */ React16.createElement(
|
|
625
|
+
CssClassItem,
|
|
530
626
|
{
|
|
531
|
-
...chipProps,
|
|
532
627
|
key: chipProps.key,
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
628
|
+
label: value.label,
|
|
629
|
+
id: value.value,
|
|
630
|
+
isActive,
|
|
631
|
+
isGlobal: value.color === "global",
|
|
536
632
|
color: isActive && value.color ? value.color : "default",
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
"aria-pressed": isActive
|
|
633
|
+
chipProps,
|
|
634
|
+
onClickActive: () => handleActivate(value)
|
|
540
635
|
}
|
|
541
636
|
);
|
|
542
637
|
})
|
|
543
638
|
}
|
|
544
639
|
));
|
|
545
640
|
}
|
|
641
|
+
function CssClassItem({ id, label, isActive, isGlobal, color, chipProps, onClickActive }) {
|
|
642
|
+
const { meta } = useStyle();
|
|
643
|
+
const popupId = (0, import_react9.useId)().replace(/:/g, "_");
|
|
644
|
+
const popupState = (0, import_ui10.usePopupState)({ variant: "popover", popupId });
|
|
645
|
+
const chipRef = (0, import_react9.useRef)(null);
|
|
646
|
+
const { onDelete, ...chipGroupProps } = chipProps;
|
|
647
|
+
return /* @__PURE__ */ React16.createElement(CssClassItemProvider, { styleId: id, isActive, isGlobal }, /* @__PURE__ */ React16.createElement(import_ui10.UnstableChipGroup, { ref: chipRef, ...chipGroupProps, "aria-label": `Edit ${label}`, role: "group" }, /* @__PURE__ */ React16.createElement(
|
|
648
|
+
import_ui10.Chip,
|
|
649
|
+
{
|
|
650
|
+
key: chipProps.key,
|
|
651
|
+
size: "tiny",
|
|
652
|
+
label: /* @__PURE__ */ React16.createElement(ConditionalTooltipWrapper, { maxWidth: "10ch", title: label }),
|
|
653
|
+
variant: isActive && !meta.state ? "filled" : "standard",
|
|
654
|
+
color,
|
|
655
|
+
onClick: () => onClickActive(id),
|
|
656
|
+
"aria-pressed": isActive
|
|
657
|
+
}
|
|
658
|
+
), /* @__PURE__ */ React16.createElement(
|
|
659
|
+
import_ui10.Chip,
|
|
660
|
+
{
|
|
661
|
+
key: `${chipProps.key}-menu`,
|
|
662
|
+
size: "tiny",
|
|
663
|
+
label: /* @__PURE__ */ React16.createElement(import_ui10.Stack, { direction: "row", gap: 0.5, alignItems: "center" }, isActive && meta.state && /* @__PURE__ */ React16.createElement(import_ui10.Typography, { variant: "inherit" }, meta.state), /* @__PURE__ */ React16.createElement(import_icons4.DotsVerticalIcon, { fontSize: "inherit" })),
|
|
664
|
+
variant: "filled",
|
|
665
|
+
color,
|
|
666
|
+
...(0, import_ui10.bindTrigger)(popupState),
|
|
667
|
+
"aria-label": (0, import_i18n2.__)("Open CSS Class Menu", "elementor")
|
|
668
|
+
}
|
|
669
|
+
)), /* @__PURE__ */ React16.createElement(CssClassMenu, { popupState, containerRef: chipRef }));
|
|
670
|
+
}
|
|
546
671
|
function useOptions() {
|
|
547
672
|
const { element } = useElement();
|
|
548
|
-
return (0, import_editor_styles_repository.useAllStylesByProvider)({ elementId: element.id }).flatMap(
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
673
|
+
return (0, import_editor_styles_repository.useAllStylesByProvider)({ elementId: element.id }).flatMap(
|
|
674
|
+
([provider, styleDefs]) => {
|
|
675
|
+
const isElements = provider.key === import_editor_styles_repository.ELEMENTS_STYLES_PROVIDER_KEY;
|
|
676
|
+
if (isElements && styleDefs.length === 0) {
|
|
677
|
+
return [EMPTY_OPTION];
|
|
678
|
+
}
|
|
679
|
+
return styleDefs.map((styleDef) => {
|
|
680
|
+
return {
|
|
681
|
+
label: styleDef.label,
|
|
682
|
+
value: styleDef.id,
|
|
683
|
+
fixed: isElements,
|
|
684
|
+
color: isElements ? "primary" : "global",
|
|
685
|
+
provider: provider.key,
|
|
686
|
+
group: provider.labels?.plural
|
|
687
|
+
};
|
|
688
|
+
});
|
|
552
689
|
}
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
690
|
+
);
|
|
691
|
+
}
|
|
692
|
+
function useCreateActions({
|
|
693
|
+
pushAppliedId,
|
|
694
|
+
setActiveId
|
|
695
|
+
}) {
|
|
696
|
+
return (0, import_editor_styles_repository.useCreateActionsByProvider)().map(([provider, create]) => {
|
|
697
|
+
return {
|
|
698
|
+
// translators: %s is the label of the new class.
|
|
699
|
+
label: (value) => (0, import_i18n2.__)('Create new "%s"', "elementor").replace("%s", value),
|
|
700
|
+
apply: async (value) => {
|
|
701
|
+
const created = await create({ label: value });
|
|
702
|
+
if (!created) {
|
|
703
|
+
return;
|
|
704
|
+
}
|
|
705
|
+
pushAppliedId(created.id);
|
|
706
|
+
setActiveId(created.id);
|
|
707
|
+
},
|
|
708
|
+
condition: (options10, inputValue) => {
|
|
709
|
+
const isUniqueLabel = !options10.some(
|
|
710
|
+
(option) => option.label.toLowerCase() === inputValue.toLowerCase()
|
|
711
|
+
);
|
|
712
|
+
return !!inputValue && isUniqueLabel;
|
|
713
|
+
},
|
|
714
|
+
// translators: %s is the singular label of css class provider (e.g "Global CSS Class").
|
|
715
|
+
group: (0, import_i18n2.__)("Create New %s", "elementor").replace("%s", provider.labels?.singular ?? "")
|
|
716
|
+
};
|
|
562
717
|
});
|
|
563
718
|
}
|
|
564
719
|
function useAppliedOptions(options10, appliedIds) {
|
|
@@ -583,7 +738,15 @@ function useAppliedClassesIds() {
|
|
|
583
738
|
}
|
|
584
739
|
});
|
|
585
740
|
};
|
|
586
|
-
|
|
741
|
+
const pushValue = (id) => {
|
|
742
|
+
const ids = (0, import_editor_elements2.getElementSetting)(element.id, currentClassesProp)?.value || [];
|
|
743
|
+
setValue([...ids, id]);
|
|
744
|
+
};
|
|
745
|
+
return {
|
|
746
|
+
value,
|
|
747
|
+
setValue,
|
|
748
|
+
pushValue
|
|
749
|
+
};
|
|
587
750
|
}
|
|
588
751
|
function useHandleApply(appliedIds, setAppliedIds) {
|
|
589
752
|
const { id: activeId, setId: setActiveId } = useStyle();
|
|
@@ -607,16 +770,17 @@ function useHandleApply(appliedIds, setAppliedIds) {
|
|
|
607
770
|
}
|
|
608
771
|
|
|
609
772
|
// src/components/style-sections/background-section/background-section.tsx
|
|
610
|
-
var
|
|
773
|
+
var React18 = __toESM(require("react"));
|
|
611
774
|
var import_editor_controls6 = require("@elementor/editor-controls");
|
|
612
775
|
|
|
613
776
|
// src/controls-registry/styles-field.tsx
|
|
614
|
-
var
|
|
777
|
+
var React17 = __toESM(require("react"));
|
|
615
778
|
var import_editor_controls5 = require("@elementor/editor-controls");
|
|
779
|
+
var import_editor_styles = require("@elementor/editor-styles");
|
|
616
780
|
|
|
617
781
|
// src/hooks/use-styles-fields.ts
|
|
618
782
|
var import_editor_elements3 = require("@elementor/editor-elements");
|
|
619
|
-
var
|
|
783
|
+
var import_i18n3 = require("@wordpress/i18n");
|
|
620
784
|
function useStylesFields(propNames) {
|
|
621
785
|
const { element } = useElement();
|
|
622
786
|
const { id, meta } = useStyle();
|
|
@@ -634,7 +798,7 @@ function useStylesFields(propNames) {
|
|
|
634
798
|
props: newValues,
|
|
635
799
|
meta,
|
|
636
800
|
bind: classesProp,
|
|
637
|
-
label: (0,
|
|
801
|
+
label: (0, import_i18n3.__)("local", "elementor")
|
|
638
802
|
});
|
|
639
803
|
};
|
|
640
804
|
return [value, setValue];
|
|
@@ -655,30 +819,36 @@ function useStylesField(propName) {
|
|
|
655
819
|
// src/controls-registry/styles-field.tsx
|
|
656
820
|
var StylesField = ({ bind, children }) => {
|
|
657
821
|
const [value, setValue] = useStylesField(bind);
|
|
658
|
-
|
|
822
|
+
const stylesSchema = (0, import_editor_styles.getStylesSchema)();
|
|
823
|
+
const propType = createTopLevelOjectType({ schema: stylesSchema });
|
|
824
|
+
const values = { [bind]: value };
|
|
825
|
+
const setValues = (newValue) => {
|
|
826
|
+
setValue(newValue[bind]);
|
|
827
|
+
};
|
|
828
|
+
return /* @__PURE__ */ React17.createElement(import_editor_controls5.PropProvider, { propType, value: values, setValue: setValues }, /* @__PURE__ */ React17.createElement(import_editor_controls5.PropKeyProvider, { bind }, children));
|
|
659
829
|
};
|
|
660
830
|
|
|
661
831
|
// src/components/style-sections/background-section/background-section.tsx
|
|
662
832
|
var BackgroundSection = () => {
|
|
663
|
-
return /* @__PURE__ */
|
|
833
|
+
return /* @__PURE__ */ React18.createElement(StylesField, { bind: "background" }, /* @__PURE__ */ React18.createElement(import_editor_controls6.BackgroundControl, null));
|
|
664
834
|
};
|
|
665
835
|
|
|
666
836
|
// src/components/style-sections/border-section/border-section.tsx
|
|
667
|
-
var
|
|
837
|
+
var React25 = __toESM(require("react"));
|
|
668
838
|
var import_ui14 = require("@elementor/ui");
|
|
669
839
|
|
|
670
840
|
// src/components/style-sections/border-section/border-field.tsx
|
|
671
|
-
var
|
|
672
|
-
var
|
|
841
|
+
var React23 = __toESM(require("react"));
|
|
842
|
+
var import_i18n7 = require("@wordpress/i18n");
|
|
673
843
|
|
|
674
844
|
// src/components/add-or-remove-content.tsx
|
|
675
|
-
var
|
|
845
|
+
var React19 = __toESM(require("react"));
|
|
676
846
|
var import_editor_controls7 = require("@elementor/editor-controls");
|
|
677
|
-
var
|
|
847
|
+
var import_icons5 = require("@elementor/icons");
|
|
678
848
|
var import_ui11 = require("@elementor/ui");
|
|
679
849
|
var SIZE2 = "tiny";
|
|
680
850
|
var AddOrRemoveContent = ({ isAdded, label, onAdd, onRemove, children }) => {
|
|
681
|
-
return /* @__PURE__ */
|
|
851
|
+
return /* @__PURE__ */ React19.createElement(import_ui11.Stack, { gap: 1.5 }, /* @__PURE__ */ React19.createElement(
|
|
682
852
|
import_ui11.Stack,
|
|
683
853
|
{
|
|
684
854
|
direction: "row",
|
|
@@ -687,86 +857,82 @@ var AddOrRemoveContent = ({ isAdded, label, onAdd, onRemove, children }) => {
|
|
|
687
857
|
alignItems: "center"
|
|
688
858
|
}
|
|
689
859
|
},
|
|
690
|
-
/* @__PURE__ */
|
|
691
|
-
isAdded ? /* @__PURE__ */
|
|
692
|
-
), /* @__PURE__ */
|
|
860
|
+
/* @__PURE__ */ React19.createElement(import_editor_controls7.ControlLabel, null, label),
|
|
861
|
+
isAdded ? /* @__PURE__ */ React19.createElement(import_ui11.IconButton, { size: SIZE2, onClick: onRemove }, /* @__PURE__ */ React19.createElement(import_icons5.MinusIcon, { fontSize: SIZE2 })) : /* @__PURE__ */ React19.createElement(import_ui11.IconButton, { size: SIZE2, onClick: onAdd }, /* @__PURE__ */ React19.createElement(import_icons5.PlusIcon, { fontSize: SIZE2 }))
|
|
862
|
+
), /* @__PURE__ */ React19.createElement(import_ui11.Collapse, { in: isAdded, unmountOnExit: true }, /* @__PURE__ */ React19.createElement(import_ui11.Stack, { gap: 1.5 }, children)));
|
|
693
863
|
};
|
|
694
864
|
|
|
695
865
|
// src/components/style-sections/border-section/border-color-field.tsx
|
|
696
|
-
var
|
|
866
|
+
var React20 = __toESM(require("react"));
|
|
697
867
|
var import_editor_controls8 = require("@elementor/editor-controls");
|
|
698
868
|
var import_ui12 = require("@elementor/ui");
|
|
699
|
-
var
|
|
869
|
+
var import_i18n4 = require("@wordpress/i18n");
|
|
700
870
|
var BorderColorField = () => {
|
|
701
|
-
return /* @__PURE__ */
|
|
871
|
+
return /* @__PURE__ */ React20.createElement(StylesField, { bind: "border-color" }, /* @__PURE__ */ React20.createElement(import_ui12.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React20.createElement(import_ui12.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React20.createElement(import_editor_controls8.ControlLabel, null, (0, import_i18n4.__)("Border Color", "elementor"))), /* @__PURE__ */ React20.createElement(import_ui12.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React20.createElement(import_editor_controls8.ColorControl, null))));
|
|
702
872
|
};
|
|
703
873
|
|
|
704
874
|
// src/components/style-sections/border-section/border-style-field.tsx
|
|
705
|
-
var
|
|
875
|
+
var React21 = __toESM(require("react"));
|
|
706
876
|
var import_editor_controls9 = require("@elementor/editor-controls");
|
|
707
877
|
var import_ui13 = require("@elementor/ui");
|
|
708
|
-
var
|
|
878
|
+
var import_i18n5 = require("@wordpress/i18n");
|
|
709
879
|
var borderStyles = [
|
|
710
|
-
{ value: "none", label: (0,
|
|
711
|
-
{ value: "solid", label: (0,
|
|
712
|
-
{ value: "dashed", label: (0,
|
|
713
|
-
{ value: "dotted", label: (0,
|
|
714
|
-
{ value: "double", label: (0,
|
|
715
|
-
{ value: "groove", label: (0,
|
|
716
|
-
{ value: "ridge", label: (0,
|
|
717
|
-
{ value: "inset", label: (0,
|
|
718
|
-
{ value: "outset", label: (0,
|
|
880
|
+
{ value: "none", label: (0, import_i18n5.__)("None", "elementor") },
|
|
881
|
+
{ value: "solid", label: (0, import_i18n5.__)("Solid", "elementor") },
|
|
882
|
+
{ value: "dashed", label: (0, import_i18n5.__)("Dashed", "elementor") },
|
|
883
|
+
{ value: "dotted", label: (0, import_i18n5.__)("Dotted", "elementor") },
|
|
884
|
+
{ value: "double", label: (0, import_i18n5.__)("Double", "elementor") },
|
|
885
|
+
{ value: "groove", label: (0, import_i18n5.__)("Groove", "elementor") },
|
|
886
|
+
{ value: "ridge", label: (0, import_i18n5.__)("Ridge", "elementor") },
|
|
887
|
+
{ value: "inset", label: (0, import_i18n5.__)("Inset", "elementor") },
|
|
888
|
+
{ value: "outset", label: (0, import_i18n5.__)("Outset", "elementor") }
|
|
719
889
|
];
|
|
720
890
|
var BorderStyleField = () => {
|
|
721
|
-
return /* @__PURE__ */
|
|
891
|
+
return /* @__PURE__ */ React21.createElement(StylesField, { bind: "border-style" }, /* @__PURE__ */ React21.createElement(import_ui13.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React21.createElement(import_ui13.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React21.createElement(import_editor_controls9.ControlLabel, null, (0, import_i18n5.__)("Border Type", "elementor"))), /* @__PURE__ */ React21.createElement(import_ui13.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React21.createElement(import_editor_controls9.SelectControl, { options: borderStyles }))));
|
|
722
892
|
};
|
|
723
893
|
|
|
724
894
|
// src/components/style-sections/border-section/border-width-field.tsx
|
|
725
|
-
var
|
|
895
|
+
var React22 = __toESM(require("react"));
|
|
726
896
|
var import_editor_controls10 = require("@elementor/editor-controls");
|
|
727
897
|
var import_editor_props2 = require("@elementor/editor-props");
|
|
728
|
-
var
|
|
729
|
-
var
|
|
898
|
+
var import_icons6 = require("@elementor/icons");
|
|
899
|
+
var import_i18n6 = require("@wordpress/i18n");
|
|
730
900
|
var edges = [
|
|
731
901
|
{
|
|
732
|
-
label: (0,
|
|
733
|
-
icon: /* @__PURE__ */
|
|
902
|
+
label: (0, import_i18n6.__)("Top", "elementor"),
|
|
903
|
+
icon: /* @__PURE__ */ React22.createElement(import_icons6.SideTopIcon, { fontSize: "tiny" }),
|
|
734
904
|
bind: "top"
|
|
735
905
|
},
|
|
736
906
|
{
|
|
737
|
-
label: (0,
|
|
738
|
-
icon: /* @__PURE__ */
|
|
907
|
+
label: (0, import_i18n6.__)("Right", "elementor"),
|
|
908
|
+
icon: /* @__PURE__ */ React22.createElement(import_icons6.SideRightIcon, { fontSize: "tiny" }),
|
|
739
909
|
bind: "right"
|
|
740
910
|
},
|
|
741
911
|
{
|
|
742
|
-
label: (0,
|
|
743
|
-
icon: /* @__PURE__ */
|
|
912
|
+
label: (0, import_i18n6.__)("Bottom", "elementor"),
|
|
913
|
+
icon: /* @__PURE__ */ React22.createElement(import_icons6.SideBottomIcon, { fontSize: "tiny" }),
|
|
744
914
|
bind: "bottom"
|
|
745
915
|
},
|
|
746
916
|
{
|
|
747
|
-
label: (0,
|
|
748
|
-
icon: /* @__PURE__ */
|
|
917
|
+
label: (0, import_i18n6.__)("Left", "elementor"),
|
|
918
|
+
icon: /* @__PURE__ */ React22.createElement(import_icons6.SideLeftIcon, { fontSize: "tiny" }),
|
|
749
919
|
bind: "left"
|
|
750
920
|
}
|
|
751
921
|
];
|
|
752
922
|
var BorderWidthField = () => {
|
|
753
|
-
return /* @__PURE__ */
|
|
923
|
+
return /* @__PURE__ */ React22.createElement(StylesField, { bind: "border-width" }, /* @__PURE__ */ React22.createElement(
|
|
754
924
|
import_editor_controls10.EqualUnequalSizesControl,
|
|
755
925
|
{
|
|
756
926
|
items: edges,
|
|
757
|
-
label: (0,
|
|
758
|
-
icon: /* @__PURE__ */
|
|
927
|
+
label: (0, import_i18n6.__)("Border Width", "elementor"),
|
|
928
|
+
icon: /* @__PURE__ */ React22.createElement(import_icons6.SideAllIcon, { fontSize: "tiny" }),
|
|
759
929
|
multiSizePropTypeUtil: import_editor_props2.borderWidthPropTypeUtil
|
|
760
930
|
}
|
|
761
931
|
));
|
|
762
932
|
};
|
|
763
933
|
|
|
764
934
|
// src/components/style-sections/border-section/border-field.tsx
|
|
765
|
-
var
|
|
766
|
-
var initialBorderWidth = {
|
|
767
|
-
$$type: "border-width",
|
|
768
|
-
value: { top: initialSize, right: initialSize, bottom: initialSize, left: initialSize }
|
|
769
|
-
};
|
|
935
|
+
var initialBorderWidth = { $$type: "size", value: { size: 1, unit: "px" } };
|
|
770
936
|
var initialBorderColor = { $$type: "color", value: "#000000" };
|
|
771
937
|
var initialBorderStyle = "solid";
|
|
772
938
|
var BorderField = () => {
|
|
@@ -784,77 +950,77 @@ var BorderField = () => {
|
|
|
784
950
|
setBorderStyle(null);
|
|
785
951
|
};
|
|
786
952
|
const hasBorder = Boolean(borderWidth || borderColor || borderStyle);
|
|
787
|
-
return /* @__PURE__ */
|
|
953
|
+
return /* @__PURE__ */ React23.createElement(
|
|
788
954
|
AddOrRemoveContent,
|
|
789
955
|
{
|
|
790
|
-
label: (0,
|
|
956
|
+
label: (0, import_i18n7.__)("Border", "elementor"),
|
|
791
957
|
isAdded: hasBorder,
|
|
792
958
|
onAdd: addBorder,
|
|
793
959
|
onRemove: removeBorder
|
|
794
960
|
},
|
|
795
|
-
/* @__PURE__ */
|
|
796
|
-
/* @__PURE__ */
|
|
797
|
-
/* @__PURE__ */
|
|
961
|
+
/* @__PURE__ */ React23.createElement(BorderWidthField, null),
|
|
962
|
+
/* @__PURE__ */ React23.createElement(BorderColorField, null),
|
|
963
|
+
/* @__PURE__ */ React23.createElement(BorderStyleField, null)
|
|
798
964
|
);
|
|
799
965
|
};
|
|
800
966
|
|
|
801
967
|
// src/components/style-sections/border-section/border-radius-field.tsx
|
|
802
|
-
var
|
|
968
|
+
var React24 = __toESM(require("react"));
|
|
803
969
|
var import_editor_controls11 = require("@elementor/editor-controls");
|
|
804
970
|
var import_editor_props3 = require("@elementor/editor-props");
|
|
805
|
-
var
|
|
806
|
-
var
|
|
971
|
+
var import_icons7 = require("@elementor/icons");
|
|
972
|
+
var import_i18n8 = require("@wordpress/i18n");
|
|
807
973
|
var corners = [
|
|
808
974
|
{
|
|
809
|
-
label: (0,
|
|
810
|
-
icon: /* @__PURE__ */
|
|
975
|
+
label: (0, import_i18n8.__)("Top Left", "elementor"),
|
|
976
|
+
icon: /* @__PURE__ */ React24.createElement(import_icons7.RadiusTopLeftIcon, { fontSize: "tiny" }),
|
|
811
977
|
bind: "top-left"
|
|
812
978
|
},
|
|
813
979
|
{
|
|
814
|
-
label: (0,
|
|
815
|
-
icon: /* @__PURE__ */
|
|
980
|
+
label: (0, import_i18n8.__)("Top Right", "elementor"),
|
|
981
|
+
icon: /* @__PURE__ */ React24.createElement(import_icons7.RadiusTopRightIcon, { fontSize: "tiny" }),
|
|
816
982
|
bind: "top-right"
|
|
817
983
|
},
|
|
818
984
|
{
|
|
819
|
-
label: (0,
|
|
820
|
-
icon: /* @__PURE__ */
|
|
985
|
+
label: (0, import_i18n8.__)("Bottom Right", "elementor"),
|
|
986
|
+
icon: /* @__PURE__ */ React24.createElement(import_icons7.RadiusBottomRightIcon, { fontSize: "tiny" }),
|
|
821
987
|
bind: "bottom-right"
|
|
822
988
|
},
|
|
823
989
|
{
|
|
824
|
-
label: (0,
|
|
825
|
-
icon: /* @__PURE__ */
|
|
990
|
+
label: (0, import_i18n8.__)("Bottom Left", "elementor"),
|
|
991
|
+
icon: /* @__PURE__ */ React24.createElement(import_icons7.RadiusBottomLeftIcon, { fontSize: "tiny" }),
|
|
826
992
|
bind: "bottom-left"
|
|
827
993
|
}
|
|
828
994
|
];
|
|
829
995
|
var BorderRadiusField = () => {
|
|
830
|
-
return /* @__PURE__ */
|
|
996
|
+
return /* @__PURE__ */ React24.createElement(StylesField, { bind: "border-radius" }, /* @__PURE__ */ React24.createElement(
|
|
831
997
|
import_editor_controls11.EqualUnequalSizesControl,
|
|
832
998
|
{
|
|
833
999
|
items: corners,
|
|
834
|
-
label: (0,
|
|
835
|
-
icon: /* @__PURE__ */
|
|
1000
|
+
label: (0, import_i18n8.__)("Border Radius", "elementor"),
|
|
1001
|
+
icon: /* @__PURE__ */ React24.createElement(import_icons7.BorderCornersIcon, { fontSize: "tiny" }),
|
|
836
1002
|
multiSizePropTypeUtil: import_editor_props3.borderRadiusPropTypeUtil
|
|
837
1003
|
}
|
|
838
1004
|
));
|
|
839
1005
|
};
|
|
840
1006
|
|
|
841
1007
|
// src/components/style-sections/border-section/border-section.tsx
|
|
842
|
-
var BorderSection = () => /* @__PURE__ */
|
|
1008
|
+
var BorderSection = () => /* @__PURE__ */ React25.createElement(import_ui14.Stack, { gap: 1.5 }, /* @__PURE__ */ React25.createElement(BorderRadiusField, null), /* @__PURE__ */ React25.createElement(import_ui14.Divider, null), /* @__PURE__ */ React25.createElement(BorderField, null));
|
|
843
1009
|
|
|
844
1010
|
// src/components/style-sections/effects-section/effects-section.tsx
|
|
845
|
-
var
|
|
1011
|
+
var React26 = __toESM(require("react"));
|
|
846
1012
|
var import_editor_controls12 = require("@elementor/editor-controls");
|
|
847
1013
|
var import_ui15 = require("@elementor/ui");
|
|
848
1014
|
var EffectsSection = () => {
|
|
849
|
-
return /* @__PURE__ */
|
|
1015
|
+
return /* @__PURE__ */ React26.createElement(import_ui15.Stack, { gap: 1.5 }, /* @__PURE__ */ React26.createElement(StylesField, { bind: "box-shadow" }, /* @__PURE__ */ React26.createElement(import_editor_controls12.BoxShadowRepeaterControl, null)));
|
|
850
1016
|
};
|
|
851
1017
|
|
|
852
1018
|
// src/components/style-sections/layout-section/layout-section.tsx
|
|
853
|
-
var
|
|
1019
|
+
var React37 = __toESM(require("react"));
|
|
854
1020
|
var import_editor_controls22 = require("@elementor/editor-controls");
|
|
855
1021
|
var import_editor_elements4 = require("@elementor/editor-elements");
|
|
856
1022
|
var import_ui27 = require("@elementor/ui");
|
|
857
|
-
var
|
|
1023
|
+
var import_i18n18 = require("@wordpress/i18n");
|
|
858
1024
|
|
|
859
1025
|
// src/hooks/use-computed-style.ts
|
|
860
1026
|
var import_editor_v1_adapters = require("@elementor/editor-v1-adapters");
|
|
@@ -882,11 +1048,11 @@ function useComputedStyle(elementId) {
|
|
|
882
1048
|
}
|
|
883
1049
|
|
|
884
1050
|
// src/components/style-sections/layout-section/align-items-field.tsx
|
|
885
|
-
var
|
|
1051
|
+
var React28 = __toESM(require("react"));
|
|
886
1052
|
var import_editor_controls13 = require("@elementor/editor-controls");
|
|
887
|
-
var
|
|
1053
|
+
var import_icons8 = require("@elementor/icons");
|
|
888
1054
|
var import_ui18 = require("@elementor/ui");
|
|
889
|
-
var
|
|
1055
|
+
var import_i18n9 = require("@wordpress/i18n");
|
|
890
1056
|
|
|
891
1057
|
// src/hooks/use-direction.ts
|
|
892
1058
|
var import_ui16 = require("@elementor/ui");
|
|
@@ -897,8 +1063,8 @@ function useDirection() {
|
|
|
897
1063
|
}
|
|
898
1064
|
|
|
899
1065
|
// src/components/style-sections/layout-section/utils/rotated-icon.tsx
|
|
900
|
-
var
|
|
901
|
-
var
|
|
1066
|
+
var React27 = __toESM(require("react"));
|
|
1067
|
+
var import_react10 = require("react");
|
|
902
1068
|
var import_ui17 = require("@elementor/ui");
|
|
903
1069
|
var CLOCKWISE_ANGLES = {
|
|
904
1070
|
row: 0,
|
|
@@ -913,9 +1079,9 @@ var COUNTER_CLOCKWISE_ANGLES = {
|
|
|
913
1079
|
"column-reverse": -270
|
|
914
1080
|
};
|
|
915
1081
|
var RotatedIcon = ({ icon: Icon, size, isClockwise = true, offset = 0 }) => {
|
|
916
|
-
const rotate = (0,
|
|
1082
|
+
const rotate = (0, import_react10.useRef)(useGetTargetAngle(isClockwise, offset));
|
|
917
1083
|
rotate.current = useGetTargetAngle(isClockwise, offset, rotate);
|
|
918
|
-
return /* @__PURE__ */
|
|
1084
|
+
return /* @__PURE__ */ React27.createElement(Icon, { fontSize: size, sx: { transition: ".3s", rotate: `${rotate.current}deg` } });
|
|
919
1085
|
};
|
|
920
1086
|
var useGetTargetAngle = (isClockwise, offset, existingRef) => {
|
|
921
1087
|
const [direction] = useStylesField("flex-direction");
|
|
@@ -930,8 +1096,8 @@ var useGetTargetAngle = (isClockwise, offset, existingRef) => {
|
|
|
930
1096
|
};
|
|
931
1097
|
|
|
932
1098
|
// src/components/style-sections/layout-section/align-items-field.tsx
|
|
933
|
-
var StartIcon = (0, import_ui18.withDirection)(
|
|
934
|
-
var EndIcon = (0, import_ui18.withDirection)(
|
|
1099
|
+
var StartIcon = (0, import_ui18.withDirection)(import_icons8.LayoutAlignLeftIcon);
|
|
1100
|
+
var EndIcon = (0, import_ui18.withDirection)(import_icons8.LayoutAlignRightIcon);
|
|
935
1101
|
var iconProps = {
|
|
936
1102
|
isClockwise: false,
|
|
937
1103
|
offset: 90
|
|
@@ -939,42 +1105,42 @@ var iconProps = {
|
|
|
939
1105
|
var options = [
|
|
940
1106
|
{
|
|
941
1107
|
value: "start",
|
|
942
|
-
label: (0,
|
|
943
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1108
|
+
label: (0, import_i18n9.__)("Start", "elementor"),
|
|
1109
|
+
renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(RotatedIcon, { icon: StartIcon, size, ...iconProps }),
|
|
944
1110
|
showTooltip: true
|
|
945
1111
|
},
|
|
946
1112
|
{
|
|
947
1113
|
value: "center",
|
|
948
|
-
label: (0,
|
|
949
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1114
|
+
label: (0, import_i18n9.__)("Center", "elementor"),
|
|
1115
|
+
renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(RotatedIcon, { icon: import_icons8.LayoutAlignCenterIcon, size, ...iconProps }),
|
|
950
1116
|
showTooltip: true
|
|
951
1117
|
},
|
|
952
1118
|
{
|
|
953
1119
|
value: "end",
|
|
954
|
-
label: (0,
|
|
955
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1120
|
+
label: (0, import_i18n9.__)("End", "elementor"),
|
|
1121
|
+
renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(RotatedIcon, { icon: EndIcon, size, ...iconProps }),
|
|
956
1122
|
showTooltip: true
|
|
957
1123
|
},
|
|
958
1124
|
{
|
|
959
1125
|
value: "stretch",
|
|
960
|
-
label: (0,
|
|
961
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1126
|
+
label: (0, import_i18n9.__)("Stretch", "elementor"),
|
|
1127
|
+
renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(RotatedIcon, { icon: import_icons8.LayoutDistributeVerticalIcon, size, ...iconProps }),
|
|
962
1128
|
showTooltip: true
|
|
963
1129
|
}
|
|
964
1130
|
];
|
|
965
1131
|
var AlignItemsField = () => {
|
|
966
1132
|
const { isSiteRtl } = useDirection();
|
|
967
|
-
return /* @__PURE__ */
|
|
1133
|
+
return /* @__PURE__ */ React28.createElement(import_ui18.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React28.createElement(import_ui18.ThemeProvider, null, /* @__PURE__ */ React28.createElement(StylesField, { bind: "align-items" }, /* @__PURE__ */ React28.createElement(import_ui18.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React28.createElement(import_ui18.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React28.createElement(import_editor_controls13.ControlLabel, null, (0, import_i18n9.__)("Align items", "elementor"))), /* @__PURE__ */ React28.createElement(import_ui18.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React28.createElement(import_editor_controls13.ToggleControl, { options }))))));
|
|
968
1134
|
};
|
|
969
1135
|
|
|
970
1136
|
// src/components/style-sections/layout-section/align-self-child-field.tsx
|
|
971
|
-
var
|
|
1137
|
+
var React29 = __toESM(require("react"));
|
|
972
1138
|
var import_editor_controls14 = require("@elementor/editor-controls");
|
|
973
|
-
var
|
|
1139
|
+
var import_icons9 = require("@elementor/icons");
|
|
974
1140
|
var import_ui19 = require("@elementor/ui");
|
|
975
|
-
var
|
|
976
|
-
var StartIcon2 = (0, import_ui19.withDirection)(
|
|
977
|
-
var EndIcon2 = (0, import_ui19.withDirection)(
|
|
1141
|
+
var import_i18n10 = require("@wordpress/i18n");
|
|
1142
|
+
var StartIcon2 = (0, import_ui19.withDirection)(import_icons9.LayoutAlignLeftIcon);
|
|
1143
|
+
var EndIcon2 = (0, import_ui19.withDirection)(import_icons9.LayoutAlignRightIcon);
|
|
978
1144
|
var iconProps2 = {
|
|
979
1145
|
isClockwise: false,
|
|
980
1146
|
offset: 90
|
|
@@ -982,105 +1148,105 @@ var iconProps2 = {
|
|
|
982
1148
|
var options2 = [
|
|
983
1149
|
{
|
|
984
1150
|
value: "start",
|
|
985
|
-
label: (0,
|
|
986
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1151
|
+
label: (0, import_i18n10.__)("Start", "elementor"),
|
|
1152
|
+
renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon, { icon: StartIcon2, size, ...iconProps2 }),
|
|
987
1153
|
showTooltip: true
|
|
988
1154
|
},
|
|
989
1155
|
{
|
|
990
1156
|
value: "center",
|
|
991
|
-
label: (0,
|
|
992
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1157
|
+
label: (0, import_i18n10.__)("Center", "elementor"),
|
|
1158
|
+
renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon, { icon: import_icons9.LayoutAlignCenterIcon, size, ...iconProps2 }),
|
|
993
1159
|
showTooltip: true
|
|
994
1160
|
},
|
|
995
1161
|
{
|
|
996
1162
|
value: "end",
|
|
997
|
-
label: (0,
|
|
998
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1163
|
+
label: (0, import_i18n10.__)("End", "elementor"),
|
|
1164
|
+
renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon, { icon: EndIcon2, size, ...iconProps2 }),
|
|
999
1165
|
showTooltip: true
|
|
1000
1166
|
},
|
|
1001
1167
|
{
|
|
1002
1168
|
value: "stretch",
|
|
1003
|
-
label: (0,
|
|
1004
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1169
|
+
label: (0, import_i18n10.__)("Stretch", "elementor"),
|
|
1170
|
+
renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon, { icon: import_icons9.LayoutDistributeVerticalIcon, size, ...iconProps2 }),
|
|
1005
1171
|
showTooltip: true
|
|
1006
1172
|
}
|
|
1007
1173
|
];
|
|
1008
1174
|
var AlignSelfChild = () => {
|
|
1009
1175
|
const { isSiteRtl } = useDirection();
|
|
1010
|
-
return /* @__PURE__ */
|
|
1176
|
+
return /* @__PURE__ */ React29.createElement(import_ui19.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React29.createElement(import_ui19.ThemeProvider, null, /* @__PURE__ */ React29.createElement(StylesField, { bind: "align-self" }, /* @__PURE__ */ React29.createElement(import_ui19.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React29.createElement(import_ui19.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React29.createElement(import_editor_controls14.ControlLabel, null, (0, import_i18n10.__)("Align self", "elementor"))), /* @__PURE__ */ React29.createElement(import_ui19.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React29.createElement(import_editor_controls14.ToggleControl, { options: options2 }))))));
|
|
1011
1177
|
};
|
|
1012
1178
|
|
|
1013
1179
|
// src/components/style-sections/layout-section/display-field.tsx
|
|
1014
|
-
var
|
|
1180
|
+
var React30 = __toESM(require("react"));
|
|
1015
1181
|
var import_editor_controls15 = require("@elementor/editor-controls");
|
|
1016
1182
|
var import_ui20 = require("@elementor/ui");
|
|
1017
|
-
var
|
|
1183
|
+
var import_i18n11 = require("@wordpress/i18n");
|
|
1018
1184
|
var DisplayField = () => {
|
|
1019
1185
|
const options10 = [
|
|
1020
1186
|
{
|
|
1021
1187
|
value: "block",
|
|
1022
|
-
renderContent: () => (0,
|
|
1023
|
-
label: (0,
|
|
1188
|
+
renderContent: () => (0, import_i18n11.__)("Block", "elementor"),
|
|
1189
|
+
label: (0, import_i18n11.__)("Block", "elementor")
|
|
1024
1190
|
},
|
|
1025
1191
|
{
|
|
1026
1192
|
value: "flex",
|
|
1027
|
-
renderContent: () => (0,
|
|
1028
|
-
label: (0,
|
|
1193
|
+
renderContent: () => (0, import_i18n11.__)("Flex", "elementor"),
|
|
1194
|
+
label: (0, import_i18n11.__)("Flex", "elementor")
|
|
1029
1195
|
}
|
|
1030
1196
|
];
|
|
1031
|
-
return /* @__PURE__ */
|
|
1197
|
+
return /* @__PURE__ */ React30.createElement(StylesField, { bind: "display" }, /* @__PURE__ */ React30.createElement(import_ui20.Stack, { gap: 1 }, /* @__PURE__ */ React30.createElement(import_editor_controls15.ControlLabel, null, (0, import_i18n11.__)("Display", "elementor")), /* @__PURE__ */ React30.createElement(import_editor_controls15.ToggleControl, { options: options10, fullWidth: true })));
|
|
1032
1198
|
};
|
|
1033
1199
|
|
|
1034
1200
|
// src/components/style-sections/layout-section/flex-direction-field.tsx
|
|
1035
|
-
var
|
|
1201
|
+
var React31 = __toESM(require("react"));
|
|
1036
1202
|
var import_editor_controls16 = require("@elementor/editor-controls");
|
|
1037
|
-
var
|
|
1203
|
+
var import_icons10 = require("@elementor/icons");
|
|
1038
1204
|
var import_ui21 = require("@elementor/ui");
|
|
1039
|
-
var
|
|
1205
|
+
var import_i18n12 = require("@wordpress/i18n");
|
|
1040
1206
|
var options3 = [
|
|
1041
1207
|
{
|
|
1042
1208
|
value: "row",
|
|
1043
|
-
label: (0,
|
|
1209
|
+
label: (0, import_i18n12.__)("Row", "elementor"),
|
|
1044
1210
|
renderContent: ({ size }) => {
|
|
1045
|
-
const StartIcon4 = (0, import_ui21.withDirection)(
|
|
1046
|
-
return /* @__PURE__ */
|
|
1211
|
+
const StartIcon4 = (0, import_ui21.withDirection)(import_icons10.ArrowRightIcon);
|
|
1212
|
+
return /* @__PURE__ */ React31.createElement(StartIcon4, { fontSize: size });
|
|
1047
1213
|
},
|
|
1048
1214
|
showTooltip: true
|
|
1049
1215
|
},
|
|
1050
1216
|
{
|
|
1051
1217
|
value: "column",
|
|
1052
|
-
label: (0,
|
|
1053
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1218
|
+
label: (0, import_i18n12.__)("Column", "elementor"),
|
|
1219
|
+
renderContent: ({ size }) => /* @__PURE__ */ React31.createElement(import_icons10.ArrowDownSmallIcon, { fontSize: size }),
|
|
1054
1220
|
showTooltip: true
|
|
1055
1221
|
},
|
|
1056
1222
|
{
|
|
1057
1223
|
value: "row-reverse",
|
|
1058
|
-
label: (0,
|
|
1224
|
+
label: (0, import_i18n12.__)("Reversed row", "elementor"),
|
|
1059
1225
|
renderContent: ({ size }) => {
|
|
1060
|
-
const EndIcon4 = (0, import_ui21.withDirection)(
|
|
1061
|
-
return /* @__PURE__ */
|
|
1226
|
+
const EndIcon4 = (0, import_ui21.withDirection)(import_icons10.ArrowLeftIcon);
|
|
1227
|
+
return /* @__PURE__ */ React31.createElement(EndIcon4, { fontSize: size });
|
|
1062
1228
|
},
|
|
1063
1229
|
showTooltip: true
|
|
1064
1230
|
},
|
|
1065
1231
|
{
|
|
1066
1232
|
value: "column-reverse",
|
|
1067
|
-
label: (0,
|
|
1068
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1233
|
+
label: (0, import_i18n12.__)("Reversed column", "elementor"),
|
|
1234
|
+
renderContent: ({ size }) => /* @__PURE__ */ React31.createElement(import_icons10.ArrowUpSmallIcon, { fontSize: size }),
|
|
1069
1235
|
showTooltip: true
|
|
1070
1236
|
}
|
|
1071
1237
|
];
|
|
1072
1238
|
var FlexDirectionField = () => {
|
|
1073
1239
|
const { isSiteRtl } = useDirection();
|
|
1074
|
-
return /* @__PURE__ */
|
|
1240
|
+
return /* @__PURE__ */ React31.createElement(import_ui21.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React31.createElement(import_ui21.ThemeProvider, null, /* @__PURE__ */ React31.createElement(StylesField, { bind: "flex-direction" }, /* @__PURE__ */ React31.createElement(import_ui21.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React31.createElement(import_ui21.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React31.createElement(import_editor_controls16.ControlLabel, null, (0, import_i18n12.__)("Direction", "elementor"))), /* @__PURE__ */ React31.createElement(import_ui21.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React31.createElement(import_editor_controls16.ToggleControl, { options: options3 }))))));
|
|
1075
1241
|
};
|
|
1076
1242
|
|
|
1077
1243
|
// src/components/style-sections/layout-section/flex-order-field.tsx
|
|
1078
|
-
var
|
|
1079
|
-
var
|
|
1244
|
+
var React32 = __toESM(require("react"));
|
|
1245
|
+
var import_react11 = require("react");
|
|
1080
1246
|
var import_editor_controls17 = require("@elementor/editor-controls");
|
|
1081
|
-
var
|
|
1247
|
+
var import_icons11 = require("@elementor/icons");
|
|
1082
1248
|
var import_ui22 = require("@elementor/ui");
|
|
1083
|
-
var
|
|
1249
|
+
var import_i18n13 = require("@wordpress/i18n");
|
|
1084
1250
|
var FIRST_DEFAULT_VALUE = -99999;
|
|
1085
1251
|
var LAST_DEFAULT_VALUE = 99999;
|
|
1086
1252
|
var FIRST = "first";
|
|
@@ -1093,26 +1259,26 @@ var orderValueMap = {
|
|
|
1093
1259
|
var items = [
|
|
1094
1260
|
{
|
|
1095
1261
|
value: FIRST,
|
|
1096
|
-
label: (0,
|
|
1097
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1262
|
+
label: (0, import_i18n13.__)("First", "elementor"),
|
|
1263
|
+
renderContent: ({ size }) => /* @__PURE__ */ React32.createElement(import_icons11.ArrowUpSmallIcon, { fontSize: size }),
|
|
1098
1264
|
showTooltip: true
|
|
1099
1265
|
},
|
|
1100
1266
|
{
|
|
1101
1267
|
value: LAST,
|
|
1102
|
-
label: (0,
|
|
1103
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1268
|
+
label: (0, import_i18n13.__)("Last", "elementor"),
|
|
1269
|
+
renderContent: ({ size }) => /* @__PURE__ */ React32.createElement(import_icons11.ArrowDownSmallIcon, { fontSize: size }),
|
|
1104
1270
|
showTooltip: true
|
|
1105
1271
|
},
|
|
1106
1272
|
{
|
|
1107
1273
|
value: CUSTOM,
|
|
1108
|
-
label: (0,
|
|
1109
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1274
|
+
label: (0, import_i18n13.__)("Custom", "elementor"),
|
|
1275
|
+
renderContent: ({ size }) => /* @__PURE__ */ React32.createElement(import_icons11.PencilIcon, { fontSize: size }),
|
|
1110
1276
|
showTooltip: true
|
|
1111
1277
|
}
|
|
1112
1278
|
];
|
|
1113
1279
|
var FlexOrderField = () => {
|
|
1114
1280
|
const { isSiteRtl } = useDirection(), [order, setOrder] = useStylesField("order");
|
|
1115
|
-
const [groupControlValue, setGroupControlValue] = (0,
|
|
1281
|
+
const [groupControlValue, setGroupControlValue] = (0, import_react11.useState)(getGroupControlValue(order?.value || null));
|
|
1116
1282
|
const handleToggleButtonChange = (group) => {
|
|
1117
1283
|
setGroupControlValue(group);
|
|
1118
1284
|
if (!group || group === CUSTOM) {
|
|
@@ -1121,7 +1287,7 @@ var FlexOrderField = () => {
|
|
|
1121
1287
|
}
|
|
1122
1288
|
setOrder({ $$type: "number", value: orderValueMap[group] });
|
|
1123
1289
|
};
|
|
1124
|
-
return /* @__PURE__ */
|
|
1290
|
+
return /* @__PURE__ */ React32.createElement(import_ui22.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React32.createElement(import_ui22.ThemeProvider, null, /* @__PURE__ */ React32.createElement(import_ui22.Stack, { gap: 2 }, /* @__PURE__ */ React32.createElement(import_ui22.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React32.createElement(import_ui22.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React32.createElement(import_editor_controls17.ControlLabel, null, (0, import_i18n13.__)("Order", "elementor"))), /* @__PURE__ */ React32.createElement(import_ui22.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React32.createElement(
|
|
1125
1291
|
import_editor_controls17.ControlToggleButtonGroup,
|
|
1126
1292
|
{
|
|
1127
1293
|
items,
|
|
@@ -1129,7 +1295,7 @@ var FlexOrderField = () => {
|
|
|
1129
1295
|
onChange: handleToggleButtonChange,
|
|
1130
1296
|
exclusive: true
|
|
1131
1297
|
}
|
|
1132
|
-
))), CUSTOM === groupControlValue && /* @__PURE__ */
|
|
1298
|
+
))), CUSTOM === groupControlValue && /* @__PURE__ */ React32.createElement(StylesField, { bind: "order" }, /* @__PURE__ */ React32.createElement(import_ui22.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React32.createElement(import_ui22.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React32.createElement(import_editor_controls17.ControlLabel, null, (0, import_i18n13.__)("Custom order", "elementor"))), /* @__PURE__ */ React32.createElement(import_ui22.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React32.createElement(
|
|
1133
1299
|
import_editor_controls17.NumberControl,
|
|
1134
1300
|
{
|
|
1135
1301
|
min: FIRST_DEFAULT_VALUE + 1,
|
|
@@ -1149,36 +1315,36 @@ var getGroupControlValue = (order) => {
|
|
|
1149
1315
|
};
|
|
1150
1316
|
|
|
1151
1317
|
// src/components/style-sections/layout-section/flex-size-field.tsx
|
|
1152
|
-
var
|
|
1318
|
+
var React33 = __toESM(require("react"));
|
|
1153
1319
|
var import_editor_controls18 = require("@elementor/editor-controls");
|
|
1154
|
-
var
|
|
1320
|
+
var import_icons12 = require("@elementor/icons");
|
|
1155
1321
|
var import_ui23 = require("@elementor/ui");
|
|
1156
|
-
var
|
|
1322
|
+
var import_i18n14 = require("@wordpress/i18n");
|
|
1157
1323
|
var DEFAULT = 1;
|
|
1158
1324
|
var items2 = [
|
|
1159
1325
|
{
|
|
1160
1326
|
value: "flex-grow",
|
|
1161
|
-
label: (0,
|
|
1162
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1327
|
+
label: (0, import_i18n14.__)("Grow", "elementor"),
|
|
1328
|
+
renderContent: ({ size }) => /* @__PURE__ */ React33.createElement(import_icons12.ExpandIcon, { fontSize: size }),
|
|
1163
1329
|
showTooltip: true
|
|
1164
1330
|
},
|
|
1165
1331
|
{
|
|
1166
1332
|
value: "flex-shrink",
|
|
1167
|
-
label: (0,
|
|
1168
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1333
|
+
label: (0, import_i18n14.__)("Shrink", "elementor"),
|
|
1334
|
+
renderContent: ({ size }) => /* @__PURE__ */ React33.createElement(import_icons12.ShrinkIcon, { fontSize: size }),
|
|
1169
1335
|
showTooltip: true
|
|
1170
1336
|
},
|
|
1171
1337
|
{
|
|
1172
1338
|
value: "custom",
|
|
1173
|
-
label: (0,
|
|
1174
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1339
|
+
label: (0, import_i18n14.__)("Custom", "elementor"),
|
|
1340
|
+
renderContent: ({ size }) => /* @__PURE__ */ React33.createElement(import_icons12.PencilIcon, { fontSize: size }),
|
|
1175
1341
|
showTooltip: true
|
|
1176
1342
|
}
|
|
1177
1343
|
];
|
|
1178
1344
|
var FlexSizeField = () => {
|
|
1179
1345
|
const { isSiteRtl } = useDirection(), [growField, setGrowField] = useStylesField("flex-grow"), [shrinkField, setShrinkField] = useStylesField("flex-shrink"), [basisField, setBasisField] = useStylesField("flex-basis");
|
|
1180
1346
|
const grow = growField?.value || null, shrink = shrinkField?.value || null, basis = basisField?.value || null;
|
|
1181
|
-
const currentGroup =
|
|
1347
|
+
const currentGroup = React33.useMemo(() => getActiveGroup({ grow, shrink, basis }), [grow, shrink, basis]), [activeGroup, setActiveGroup] = React33.useState(currentGroup);
|
|
1182
1348
|
const onChangeGroup = (group = null) => {
|
|
1183
1349
|
setActiveGroup(group);
|
|
1184
1350
|
setBasisField(null);
|
|
@@ -1195,7 +1361,7 @@ var FlexSizeField = () => {
|
|
|
1195
1361
|
setGrowField(null);
|
|
1196
1362
|
setShrinkField({ $$type: "number", value: DEFAULT });
|
|
1197
1363
|
};
|
|
1198
|
-
return /* @__PURE__ */
|
|
1364
|
+
return /* @__PURE__ */ React33.createElement(import_ui23.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React33.createElement(import_ui23.ThemeProvider, null, /* @__PURE__ */ React33.createElement(import_ui23.Stack, { gap: 2 }, /* @__PURE__ */ React33.createElement(import_ui23.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React33.createElement(import_ui23.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React33.createElement(import_editor_controls18.ControlLabel, null, (0, import_i18n14.__)("Size", "elementor"))), /* @__PURE__ */ React33.createElement(import_ui23.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React33.createElement(
|
|
1199
1365
|
import_editor_controls18.ControlToggleButtonGroup,
|
|
1200
1366
|
{
|
|
1201
1367
|
value: activeGroup,
|
|
@@ -1203,9 +1369,9 @@ var FlexSizeField = () => {
|
|
|
1203
1369
|
items: items2,
|
|
1204
1370
|
exclusive: true
|
|
1205
1371
|
}
|
|
1206
|
-
))), "custom" === activeGroup && /* @__PURE__ */
|
|
1372
|
+
))), "custom" === activeGroup && /* @__PURE__ */ React33.createElement(FlexCustomField, null))));
|
|
1207
1373
|
};
|
|
1208
|
-
var FlexCustomField = () => /* @__PURE__ */
|
|
1374
|
+
var FlexCustomField = () => /* @__PURE__ */ React33.createElement(React33.Fragment, null, /* @__PURE__ */ React33.createElement(StylesField, { bind: "flex-grow" }, /* @__PURE__ */ React33.createElement(import_ui23.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React33.createElement(import_ui23.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React33.createElement(import_editor_controls18.ControlLabel, null, (0, import_i18n14.__)("Grow", "elementor"))), /* @__PURE__ */ React33.createElement(import_ui23.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React33.createElement(import_editor_controls18.NumberControl, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React33.createElement(StylesField, { bind: "flex-shrink" }, /* @__PURE__ */ React33.createElement(import_ui23.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React33.createElement(import_ui23.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React33.createElement(import_editor_controls18.ControlLabel, null, (0, import_i18n14.__)("Shrink", "elementor"))), /* @__PURE__ */ React33.createElement(import_ui23.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React33.createElement(import_editor_controls18.NumberControl, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React33.createElement(StylesField, { bind: "flex-basis" }, /* @__PURE__ */ React33.createElement(import_ui23.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React33.createElement(import_ui23.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React33.createElement(import_editor_controls18.ControlLabel, null, (0, import_i18n14.__)("Basis", "elementor"))), /* @__PURE__ */ React33.createElement(import_ui23.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React33.createElement(import_editor_controls18.SizeControl, null)))));
|
|
1209
1375
|
var getActiveGroup = ({
|
|
1210
1376
|
grow,
|
|
1211
1377
|
shrink,
|
|
@@ -1227,22 +1393,22 @@ var getActiveGroup = ({
|
|
|
1227
1393
|
};
|
|
1228
1394
|
|
|
1229
1395
|
// src/components/style-sections/layout-section/gap-control-field.tsx
|
|
1230
|
-
var
|
|
1396
|
+
var React34 = __toESM(require("react"));
|
|
1231
1397
|
var import_editor_controls19 = require("@elementor/editor-controls");
|
|
1232
1398
|
var import_ui24 = require("@elementor/ui");
|
|
1233
|
-
var
|
|
1399
|
+
var import_i18n15 = require("@wordpress/i18n");
|
|
1234
1400
|
var GapControlField = () => {
|
|
1235
|
-
return /* @__PURE__ */
|
|
1401
|
+
return /* @__PURE__ */ React34.createElement(import_ui24.Stack, { gap: 1 }, /* @__PURE__ */ React34.createElement(StylesField, { bind: "gap" }, /* @__PURE__ */ React34.createElement(import_editor_controls19.GapControl, { label: (0, import_i18n15.__)("Gaps", "elementor") })));
|
|
1236
1402
|
};
|
|
1237
1403
|
|
|
1238
1404
|
// src/components/style-sections/layout-section/justify-content-field.tsx
|
|
1239
|
-
var
|
|
1405
|
+
var React35 = __toESM(require("react"));
|
|
1240
1406
|
var import_editor_controls20 = require("@elementor/editor-controls");
|
|
1241
|
-
var
|
|
1407
|
+
var import_icons13 = require("@elementor/icons");
|
|
1242
1408
|
var import_ui25 = require("@elementor/ui");
|
|
1243
|
-
var
|
|
1244
|
-
var StartIcon3 = (0, import_ui25.withDirection)(
|
|
1245
|
-
var EndIcon3 = (0, import_ui25.withDirection)(
|
|
1409
|
+
var import_i18n16 = require("@wordpress/i18n");
|
|
1410
|
+
var StartIcon3 = (0, import_ui25.withDirection)(import_icons13.JustifyTopIcon);
|
|
1411
|
+
var EndIcon3 = (0, import_ui25.withDirection)(import_icons13.JustifyBottomIcon);
|
|
1246
1412
|
var iconProps3 = {
|
|
1247
1413
|
isClockwise: true,
|
|
1248
1414
|
offset: -90
|
|
@@ -1250,75 +1416,75 @@ var iconProps3 = {
|
|
|
1250
1416
|
var options4 = [
|
|
1251
1417
|
{
|
|
1252
1418
|
value: "start",
|
|
1253
|
-
label: (0,
|
|
1254
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1419
|
+
label: (0, import_i18n16.__)("Start", "elementor"),
|
|
1420
|
+
renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(RotatedIcon, { icon: StartIcon3, size, ...iconProps3 }),
|
|
1255
1421
|
showTooltip: true
|
|
1256
1422
|
},
|
|
1257
1423
|
{
|
|
1258
1424
|
value: "center",
|
|
1259
|
-
label: (0,
|
|
1260
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1425
|
+
label: (0, import_i18n16.__)("Center", "elementor"),
|
|
1426
|
+
renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(RotatedIcon, { icon: import_icons13.JustifyCenterIcon, size, ...iconProps3 }),
|
|
1261
1427
|
showTooltip: true
|
|
1262
1428
|
},
|
|
1263
1429
|
{
|
|
1264
1430
|
value: "end",
|
|
1265
|
-
label: (0,
|
|
1266
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1431
|
+
label: (0, import_i18n16.__)("End", "elementor"),
|
|
1432
|
+
renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(RotatedIcon, { icon: EndIcon3, size, ...iconProps3 }),
|
|
1267
1433
|
showTooltip: true
|
|
1268
1434
|
},
|
|
1269
1435
|
{
|
|
1270
1436
|
value: "space-between",
|
|
1271
|
-
label: (0,
|
|
1272
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1437
|
+
label: (0, import_i18n16.__)("Space between", "elementor"),
|
|
1438
|
+
renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(RotatedIcon, { icon: import_icons13.JustifySpaceBetweenVerticalIcon, size, ...iconProps3 }),
|
|
1273
1439
|
showTooltip: true
|
|
1274
1440
|
},
|
|
1275
1441
|
{
|
|
1276
1442
|
value: "space-around",
|
|
1277
|
-
label: (0,
|
|
1278
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1443
|
+
label: (0, import_i18n16.__)("Space around", "elementor"),
|
|
1444
|
+
renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(RotatedIcon, { icon: import_icons13.JustifySpaceAroundVerticalIcon, size, ...iconProps3 }),
|
|
1279
1445
|
showTooltip: true
|
|
1280
1446
|
},
|
|
1281
1447
|
{
|
|
1282
1448
|
value: "space-evenly",
|
|
1283
|
-
label: (0,
|
|
1284
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1449
|
+
label: (0, import_i18n16.__)("Space evenly", "elementor"),
|
|
1450
|
+
renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(RotatedIcon, { icon: import_icons13.JustifyDistributeVerticalIcon, size, ...iconProps3 }),
|
|
1285
1451
|
showTooltip: true
|
|
1286
1452
|
}
|
|
1287
1453
|
];
|
|
1288
1454
|
var JustifyContentField = () => {
|
|
1289
1455
|
const { isSiteRtl } = useDirection();
|
|
1290
|
-
return /* @__PURE__ */
|
|
1456
|
+
return /* @__PURE__ */ React35.createElement(import_ui25.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React35.createElement(import_ui25.ThemeProvider, null, /* @__PURE__ */ React35.createElement(StylesField, { bind: "justify-content" }, /* @__PURE__ */ React35.createElement(import_ui25.Stack, { gap: 1 }, /* @__PURE__ */ React35.createElement(import_editor_controls20.ControlLabel, null, (0, import_i18n16.__)("Justify content", "elementor")), /* @__PURE__ */ React35.createElement(import_editor_controls20.ToggleControl, { options: options4, fullWidth: true })))));
|
|
1291
1457
|
};
|
|
1292
1458
|
|
|
1293
1459
|
// src/components/style-sections/layout-section/wrap-field.tsx
|
|
1294
|
-
var
|
|
1460
|
+
var React36 = __toESM(require("react"));
|
|
1295
1461
|
var import_editor_controls21 = require("@elementor/editor-controls");
|
|
1296
|
-
var
|
|
1462
|
+
var import_icons14 = require("@elementor/icons");
|
|
1297
1463
|
var import_ui26 = require("@elementor/ui");
|
|
1298
|
-
var
|
|
1464
|
+
var import_i18n17 = require("@wordpress/i18n");
|
|
1299
1465
|
var options5 = [
|
|
1300
1466
|
{
|
|
1301
1467
|
value: "nowrap",
|
|
1302
|
-
label: (0,
|
|
1303
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1468
|
+
label: (0, import_i18n17.__)("No wrap", "elementor"),
|
|
1469
|
+
renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(import_icons14.ArrowRightIcon, { fontSize: size }),
|
|
1304
1470
|
showTooltip: true
|
|
1305
1471
|
},
|
|
1306
1472
|
{
|
|
1307
1473
|
value: "wrap",
|
|
1308
|
-
label: (0,
|
|
1309
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1474
|
+
label: (0, import_i18n17.__)("Wrap", "elementor"),
|
|
1475
|
+
renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(import_icons14.ArrowBackIcon, { fontSize: size }),
|
|
1310
1476
|
showTooltip: true
|
|
1311
1477
|
},
|
|
1312
1478
|
{
|
|
1313
1479
|
value: "wrap-reverse",
|
|
1314
|
-
label: (0,
|
|
1315
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1480
|
+
label: (0, import_i18n17.__)("Reversed wrap", "elementor"),
|
|
1481
|
+
renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(import_icons14.ArrowForwardIcon, { fontSize: size }),
|
|
1316
1482
|
showTooltip: true
|
|
1317
1483
|
}
|
|
1318
1484
|
];
|
|
1319
1485
|
var WrapField = () => {
|
|
1320
1486
|
const { isSiteRtl } = useDirection();
|
|
1321
|
-
return /* @__PURE__ */
|
|
1487
|
+
return /* @__PURE__ */ React36.createElement(import_ui26.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React36.createElement(import_ui26.ThemeProvider, null, /* @__PURE__ */ React36.createElement(StylesField, { bind: "flex-wrap" }, /* @__PURE__ */ React36.createElement(import_ui26.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React36.createElement(import_ui26.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React36.createElement(import_editor_controls21.ControlLabel, null, (0, import_i18n17.__)("Wrap", "elementor"))), /* @__PURE__ */ React36.createElement(import_ui26.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React36.createElement(import_editor_controls21.ToggleControl, { options: options5 }))))));
|
|
1322
1488
|
};
|
|
1323
1489
|
|
|
1324
1490
|
// src/components/style-sections/layout-section/layout-section.tsx
|
|
@@ -1327,22 +1493,22 @@ var LayoutSection = () => {
|
|
|
1327
1493
|
const { element } = useElement();
|
|
1328
1494
|
const parent = (0, import_editor_elements4.useParentElement)(element.id);
|
|
1329
1495
|
const parentStyle = useComputedStyle(parent?.id || null);
|
|
1330
|
-
return /* @__PURE__ */
|
|
1496
|
+
return /* @__PURE__ */ React37.createElement(import_ui27.Stack, { gap: 2 }, /* @__PURE__ */ React37.createElement(DisplayField, null), "flex" === display?.value && /* @__PURE__ */ React37.createElement(FlexFields, null), "flex" === parentStyle?.display && /* @__PURE__ */ React37.createElement(FlexChildFields, null));
|
|
1331
1497
|
};
|
|
1332
|
-
var FlexFields = () => /* @__PURE__ */
|
|
1333
|
-
var FlexChildFields = () => /* @__PURE__ */
|
|
1498
|
+
var FlexFields = () => /* @__PURE__ */ React37.createElement(React37.Fragment, null, /* @__PURE__ */ React37.createElement(FlexDirectionField, null), /* @__PURE__ */ React37.createElement(JustifyContentField, null), /* @__PURE__ */ React37.createElement(AlignItemsField, null), /* @__PURE__ */ React37.createElement(import_ui27.Divider, null), /* @__PURE__ */ React37.createElement(GapControlField, null), /* @__PURE__ */ React37.createElement(WrapField, null));
|
|
1499
|
+
var FlexChildFields = () => /* @__PURE__ */ React37.createElement(React37.Fragment, null, /* @__PURE__ */ React37.createElement(import_ui27.Divider, null), /* @__PURE__ */ React37.createElement(import_editor_controls22.ControlLabel, null, (0, import_i18n18.__)("Flex child", "elementor")), /* @__PURE__ */ React37.createElement(AlignSelfChild, null), /* @__PURE__ */ React37.createElement(FlexOrderField, null), /* @__PURE__ */ React37.createElement(FlexSizeField, null));
|
|
1334
1500
|
|
|
1335
1501
|
// src/components/style-sections/position-section/position-section.tsx
|
|
1336
|
-
var
|
|
1502
|
+
var React41 = __toESM(require("react"));
|
|
1337
1503
|
var import_ui31 = require("@elementor/ui");
|
|
1338
1504
|
|
|
1339
1505
|
// src/hooks/use-session-storage.ts
|
|
1340
|
-
var
|
|
1506
|
+
var import_react12 = require("react");
|
|
1341
1507
|
var import_utils2 = require("@elementor/utils");
|
|
1342
1508
|
var useSessionStorage = (key) => {
|
|
1343
1509
|
const prefixedKey = `elementor/${key}`;
|
|
1344
|
-
const [value, setValue] = (0,
|
|
1345
|
-
(0,
|
|
1510
|
+
const [value, setValue] = (0, import_react12.useState)();
|
|
1511
|
+
(0, import_react12.useEffect)(() => {
|
|
1346
1512
|
return subscribeToSessionStorage(prefixedKey, (newValue) => {
|
|
1347
1513
|
setValue(newValue ?? null);
|
|
1348
1514
|
});
|
|
@@ -1374,46 +1540,47 @@ var subscribeToSessionStorage = (key, subscriber) => {
|
|
|
1374
1540
|
};
|
|
1375
1541
|
|
|
1376
1542
|
// src/components/style-sections/position-section/dimensions-field.tsx
|
|
1377
|
-
var
|
|
1543
|
+
var React38 = __toESM(require("react"));
|
|
1378
1544
|
var import_editor_controls23 = require("@elementor/editor-controls");
|
|
1379
|
-
var
|
|
1545
|
+
var import_icons15 = require("@elementor/icons");
|
|
1380
1546
|
var import_ui28 = require("@elementor/ui");
|
|
1381
|
-
var
|
|
1547
|
+
var import_i18n19 = require("@wordpress/i18n");
|
|
1382
1548
|
var sideIcons = {
|
|
1383
|
-
left: /* @__PURE__ */
|
|
1384
|
-
right: /* @__PURE__ */
|
|
1385
|
-
top: /* @__PURE__ */
|
|
1386
|
-
bottom: /* @__PURE__ */
|
|
1549
|
+
left: /* @__PURE__ */ React38.createElement(import_icons15.SideLeftIcon, { fontSize: "tiny" }),
|
|
1550
|
+
right: /* @__PURE__ */ React38.createElement(import_icons15.SideRightIcon, { fontSize: "tiny" }),
|
|
1551
|
+
top: /* @__PURE__ */ React38.createElement(import_icons15.SideTopIcon, { fontSize: "tiny" }),
|
|
1552
|
+
bottom: /* @__PURE__ */ React38.createElement(import_icons15.SideBottomIcon, { fontSize: "tiny" })
|
|
1387
1553
|
};
|
|
1388
1554
|
var DimensionsField = () => {
|
|
1389
|
-
return /* @__PURE__ */
|
|
1555
|
+
return /* @__PURE__ */ React38.createElement(React38.Fragment, null, /* @__PURE__ */ React38.createElement(import_ui28.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React38.createElement(DimensionField, { side: "top", label: (0, import_i18n19.__)("Top", "elementor") }), /* @__PURE__ */ React38.createElement(DimensionField, { side: "right", label: (0, import_i18n19.__)("Right", "elementor") })), /* @__PURE__ */ React38.createElement(import_ui28.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React38.createElement(DimensionField, { side: "bottom", label: (0, import_i18n19.__)("Bottom", "elementor") }), /* @__PURE__ */ React38.createElement(DimensionField, { side: "left", label: (0, import_i18n19.__)("Left", "elementor") })));
|
|
1390
1556
|
};
|
|
1391
1557
|
var DimensionField = ({ side, label }) => {
|
|
1392
|
-
return /* @__PURE__ */
|
|
1558
|
+
return /* @__PURE__ */ React38.createElement(import_ui28.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React38.createElement(import_ui28.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React38.createElement(import_editor_controls23.ControlLabel, null, label)), /* @__PURE__ */ React38.createElement(import_ui28.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React38.createElement(StylesField, { bind: side }, /* @__PURE__ */ React38.createElement(import_editor_controls23.SizeControl, { startIcon: sideIcons[side] }))));
|
|
1393
1559
|
};
|
|
1394
1560
|
|
|
1395
1561
|
// src/components/style-sections/position-section/position-field.tsx
|
|
1396
|
-
var
|
|
1562
|
+
var React39 = __toESM(require("react"));
|
|
1397
1563
|
var import_editor_controls24 = require("@elementor/editor-controls");
|
|
1398
1564
|
var import_ui29 = require("@elementor/ui");
|
|
1399
|
-
var
|
|
1565
|
+
var import_i18n20 = require("@wordpress/i18n");
|
|
1400
1566
|
var positionOptions = [
|
|
1401
|
-
{ label: (0,
|
|
1402
|
-
{ label: (0,
|
|
1403
|
-
{ label: (0,
|
|
1404
|
-
{ label: (0,
|
|
1567
|
+
{ label: (0, import_i18n20.__)("Static", "elementor"), value: "static" },
|
|
1568
|
+
{ label: (0, import_i18n20.__)("Relative", "elementor"), value: "relative" },
|
|
1569
|
+
{ label: (0, import_i18n20.__)("Absolute", "elementor"), value: "absolute" },
|
|
1570
|
+
{ label: (0, import_i18n20.__)("Fixed", "elementor"), value: "fixed" },
|
|
1571
|
+
{ label: (0, import_i18n20.__)("Sticky", "elementor"), value: "sticky" }
|
|
1405
1572
|
];
|
|
1406
1573
|
var PositionField = ({ onChange }) => {
|
|
1407
|
-
return /* @__PURE__ */
|
|
1574
|
+
return /* @__PURE__ */ React39.createElement(StylesField, { bind: "position" }, /* @__PURE__ */ React39.createElement(import_ui29.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React39.createElement(import_ui29.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React39.createElement(import_editor_controls24.ControlLabel, null, (0, import_i18n20.__)("Position", "elementor"))), /* @__PURE__ */ React39.createElement(import_ui29.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React39.createElement(import_editor_controls24.SelectControl, { options: positionOptions, onChange }))));
|
|
1408
1575
|
};
|
|
1409
1576
|
|
|
1410
1577
|
// src/components/style-sections/position-section/z-index-field.tsx
|
|
1411
|
-
var
|
|
1578
|
+
var React40 = __toESM(require("react"));
|
|
1412
1579
|
var import_editor_controls25 = require("@elementor/editor-controls");
|
|
1413
1580
|
var import_ui30 = require("@elementor/ui");
|
|
1414
|
-
var
|
|
1581
|
+
var import_i18n21 = require("@wordpress/i18n");
|
|
1415
1582
|
var ZIndexField = () => {
|
|
1416
|
-
return /* @__PURE__ */
|
|
1583
|
+
return /* @__PURE__ */ React40.createElement(StylesField, { bind: "z-index" }, /* @__PURE__ */ React40.createElement(import_ui30.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React40.createElement(import_ui30.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(import_editor_controls25.ControlLabel, null, (0, import_i18n21.__)("Z-Index", "elementor"))), /* @__PURE__ */ React40.createElement(import_ui30.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(import_editor_controls25.NumberControl, null))));
|
|
1417
1584
|
};
|
|
1418
1585
|
|
|
1419
1586
|
// src/components/style-sections/position-section/position-section.tsx
|
|
@@ -1445,7 +1612,7 @@ var PositionSection = () => {
|
|
|
1445
1612
|
}
|
|
1446
1613
|
};
|
|
1447
1614
|
const isNotStatic = positionValue && positionValue?.value !== "static";
|
|
1448
|
-
return /* @__PURE__ */
|
|
1615
|
+
return /* @__PURE__ */ React41.createElement(import_ui31.Stack, { gap: 1.5 }, /* @__PURE__ */ React41.createElement(PositionField, { onChange: onPositionChange }), isNotStatic ? /* @__PURE__ */ React41.createElement(React41.Fragment, null, /* @__PURE__ */ React41.createElement(DimensionsField, null), /* @__PURE__ */ React41.createElement(ZIndexField, null)) : null);
|
|
1449
1616
|
};
|
|
1450
1617
|
var usePersistDimensions = () => {
|
|
1451
1618
|
const { id: styleDefID, meta } = useStyle();
|
|
@@ -1455,73 +1622,73 @@ var usePersistDimensions = () => {
|
|
|
1455
1622
|
};
|
|
1456
1623
|
|
|
1457
1624
|
// src/components/style-sections/size-section/size-section.tsx
|
|
1458
|
-
var
|
|
1625
|
+
var React43 = __toESM(require("react"));
|
|
1459
1626
|
var import_editor_controls27 = require("@elementor/editor-controls");
|
|
1460
1627
|
var import_ui33 = require("@elementor/ui");
|
|
1461
|
-
var
|
|
1628
|
+
var import_i18n23 = require("@wordpress/i18n");
|
|
1462
1629
|
|
|
1463
1630
|
// src/components/style-sections/size-section/overflow-field.tsx
|
|
1464
|
-
var
|
|
1631
|
+
var React42 = __toESM(require("react"));
|
|
1465
1632
|
var import_editor_controls26 = require("@elementor/editor-controls");
|
|
1466
|
-
var
|
|
1633
|
+
var import_icons16 = require("@elementor/icons");
|
|
1467
1634
|
var import_ui32 = require("@elementor/ui");
|
|
1468
|
-
var
|
|
1635
|
+
var import_i18n22 = require("@wordpress/i18n");
|
|
1469
1636
|
var options6 = [
|
|
1470
1637
|
{
|
|
1471
1638
|
value: "visible",
|
|
1472
|
-
label: (0,
|
|
1473
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1639
|
+
label: (0, import_i18n22.__)("Visible", "elementor"),
|
|
1640
|
+
renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(import_icons16.EyeIcon, { fontSize: size }),
|
|
1474
1641
|
showTooltip: true
|
|
1475
1642
|
},
|
|
1476
1643
|
{
|
|
1477
1644
|
value: "hidden",
|
|
1478
|
-
label: (0,
|
|
1479
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1645
|
+
label: (0, import_i18n22.__)("Hidden", "elementor"),
|
|
1646
|
+
renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(import_icons16.EyeOffIcon, { fontSize: size }),
|
|
1480
1647
|
showTooltip: true
|
|
1481
1648
|
},
|
|
1482
1649
|
{
|
|
1483
1650
|
value: "auto",
|
|
1484
|
-
label: (0,
|
|
1485
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1651
|
+
label: (0, import_i18n22.__)("Auto", "elementor"),
|
|
1652
|
+
renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(import_icons16.ExpandBottomIcon, { fontSize: size }),
|
|
1486
1653
|
showTooltip: true
|
|
1487
1654
|
}
|
|
1488
1655
|
];
|
|
1489
1656
|
var OverflowField = () => {
|
|
1490
|
-
return /* @__PURE__ */
|
|
1657
|
+
return /* @__PURE__ */ React42.createElement(StylesField, { bind: "overflow" }, /* @__PURE__ */ React42.createElement(import_ui32.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React42.createElement(import_ui32.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(import_editor_controls26.ControlLabel, null, (0, import_i18n22.__)("Overflow", "elementor"))), /* @__PURE__ */ React42.createElement(import_ui32.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React42.createElement(import_editor_controls26.ToggleControl, { options: options6 }))));
|
|
1491
1658
|
};
|
|
1492
1659
|
|
|
1493
1660
|
// src/components/style-sections/size-section/size-section.tsx
|
|
1494
1661
|
var SizeSection = () => {
|
|
1495
|
-
return /* @__PURE__ */
|
|
1662
|
+
return /* @__PURE__ */ React43.createElement(import_ui33.Stack, { gap: 1.5 }, /* @__PURE__ */ React43.createElement(import_ui33.Grid, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React43.createElement(import_ui33.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React43.createElement(SizeField, { bind: "width", label: (0, import_i18n23.__)("Width", "elementor") })), /* @__PURE__ */ React43.createElement(import_ui33.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React43.createElement(SizeField, { bind: "height", label: (0, import_i18n23.__)("Height", "elementor") }))), /* @__PURE__ */ React43.createElement(import_ui33.Grid, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React43.createElement(import_ui33.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React43.createElement(SizeField, { bind: "min-width", label: (0, import_i18n23.__)("Min. Width", "elementor") })), /* @__PURE__ */ React43.createElement(import_ui33.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React43.createElement(SizeField, { bind: "min-height", label: (0, import_i18n23.__)("Min. Height", "elementor") }))), /* @__PURE__ */ React43.createElement(import_ui33.Grid, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React43.createElement(import_ui33.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React43.createElement(SizeField, { bind: "max-width", label: (0, import_i18n23.__)("Max. Width", "elementor") })), /* @__PURE__ */ React43.createElement(import_ui33.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React43.createElement(SizeField, { bind: "max-height", label: (0, import_i18n23.__)("Max. Height", "elementor") }))), /* @__PURE__ */ React43.createElement(import_ui33.Divider, null), /* @__PURE__ */ React43.createElement(import_ui33.Stack, null, /* @__PURE__ */ React43.createElement(OverflowField, null)));
|
|
1496
1663
|
};
|
|
1497
1664
|
var SizeField = ({ label, bind }) => {
|
|
1498
|
-
return /* @__PURE__ */
|
|
1665
|
+
return /* @__PURE__ */ React43.createElement(StylesField, { bind }, /* @__PURE__ */ React43.createElement(import_ui33.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React43.createElement(import_ui33.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React43.createElement(import_editor_controls27.ControlLabel, null, label)), /* @__PURE__ */ React43.createElement(import_ui33.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React43.createElement(import_editor_controls27.SizeControl, null))));
|
|
1499
1666
|
};
|
|
1500
1667
|
|
|
1501
1668
|
// src/components/style-sections/spacing-section/spacing-section.tsx
|
|
1502
|
-
var
|
|
1669
|
+
var React44 = __toESM(require("react"));
|
|
1503
1670
|
var import_editor_controls28 = require("@elementor/editor-controls");
|
|
1504
1671
|
var import_ui34 = require("@elementor/ui");
|
|
1505
|
-
var
|
|
1672
|
+
var import_i18n24 = require("@wordpress/i18n");
|
|
1506
1673
|
var SpacingSection = () => {
|
|
1507
|
-
return /* @__PURE__ */
|
|
1674
|
+
return /* @__PURE__ */ React44.createElement(import_ui34.Stack, { gap: 1.5 }, /* @__PURE__ */ React44.createElement(StylesField, { bind: "padding" }, /* @__PURE__ */ React44.createElement(import_editor_controls28.LinkedDimensionsControl, { label: (0, import_i18n24.__)("Padding", "elementor") })), /* @__PURE__ */ React44.createElement(import_ui34.Divider, null), /* @__PURE__ */ React44.createElement(StylesField, { bind: "margin" }, /* @__PURE__ */ React44.createElement(import_editor_controls28.LinkedDimensionsControl, { label: (0, import_i18n24.__)("Margin", "elementor") })));
|
|
1508
1675
|
};
|
|
1509
1676
|
|
|
1510
1677
|
// src/components/style-sections/typography-section/typography-section.tsx
|
|
1511
|
-
var
|
|
1678
|
+
var React58 = __toESM(require("react"));
|
|
1512
1679
|
var import_ui47 = require("@elementor/ui");
|
|
1513
1680
|
|
|
1514
1681
|
// src/components/collapsible-content.tsx
|
|
1515
|
-
var
|
|
1516
|
-
var
|
|
1682
|
+
var React45 = __toESM(require("react"));
|
|
1683
|
+
var import_react13 = require("react");
|
|
1517
1684
|
var import_ui35 = require("@elementor/ui");
|
|
1518
|
-
var
|
|
1685
|
+
var import_i18n25 = require("@wordpress/i18n");
|
|
1519
1686
|
var CollapsibleContent = ({ children, defaultOpen = false }) => {
|
|
1520
|
-
const [open, setOpen] = (0,
|
|
1687
|
+
const [open, setOpen] = (0, import_react13.useState)(defaultOpen);
|
|
1521
1688
|
const handleToggle = () => {
|
|
1522
1689
|
setOpen((prevOpen) => !prevOpen);
|
|
1523
1690
|
};
|
|
1524
|
-
return /* @__PURE__ */
|
|
1691
|
+
return /* @__PURE__ */ React45.createElement(import_ui35.Stack, { sx: { py: 0.5 } }, /* @__PURE__ */ React45.createElement(
|
|
1525
1692
|
import_ui35.Button,
|
|
1526
1693
|
{
|
|
1527
1694
|
fullWidth: true,
|
|
@@ -1529,17 +1696,17 @@ var CollapsibleContent = ({ children, defaultOpen = false }) => {
|
|
|
1529
1696
|
color: "secondary",
|
|
1530
1697
|
variant: "outlined",
|
|
1531
1698
|
onClick: handleToggle,
|
|
1532
|
-
endIcon: /* @__PURE__ */
|
|
1699
|
+
endIcon: /* @__PURE__ */ React45.createElement(CollapseIcon, { open })
|
|
1533
1700
|
},
|
|
1534
|
-
open ? (0,
|
|
1535
|
-
), /* @__PURE__ */
|
|
1701
|
+
open ? (0, import_i18n25.__)("Show less", "elementor") : (0, import_i18n25.__)("Show more", "elementor")
|
|
1702
|
+
), /* @__PURE__ */ React45.createElement(import_ui35.Collapse, { in: open, timeout: "auto", unmountOnExit: true }, children));
|
|
1536
1703
|
};
|
|
1537
1704
|
|
|
1538
1705
|
// src/components/style-sections/typography-section/font-family-field.tsx
|
|
1539
|
-
var
|
|
1706
|
+
var React46 = __toESM(require("react"));
|
|
1540
1707
|
var import_editor_controls29 = require("@elementor/editor-controls");
|
|
1541
1708
|
var import_ui36 = require("@elementor/ui");
|
|
1542
|
-
var
|
|
1709
|
+
var import_i18n26 = require("@wordpress/i18n");
|
|
1543
1710
|
|
|
1544
1711
|
// src/sync/get-elementor-config.ts
|
|
1545
1712
|
var getElementorConfig = () => {
|
|
@@ -1553,7 +1720,7 @@ var FontFamilyField = () => {
|
|
|
1553
1720
|
if (!fontFamilies) {
|
|
1554
1721
|
return null;
|
|
1555
1722
|
}
|
|
1556
|
-
return /* @__PURE__ */
|
|
1723
|
+
return /* @__PURE__ */ React46.createElement(StylesField, { bind: "font-family" }, /* @__PURE__ */ React46.createElement(import_ui36.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React46.createElement(import_ui36.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React46.createElement(import_editor_controls29.ControlLabel, null, (0, import_i18n26.__)("Font Family", "elementor"))), /* @__PURE__ */ React46.createElement(import_ui36.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React46.createElement(import_editor_controls29.FontFamilyControl, { fontFamilies }))));
|
|
1557
1724
|
};
|
|
1558
1725
|
var getFontFamilies = () => {
|
|
1559
1726
|
const { controls } = getElementorConfig();
|
|
@@ -1565,115 +1732,115 @@ var getFontFamilies = () => {
|
|
|
1565
1732
|
};
|
|
1566
1733
|
|
|
1567
1734
|
// src/components/style-sections/typography-section/font-size-field.tsx
|
|
1568
|
-
var
|
|
1735
|
+
var React47 = __toESM(require("react"));
|
|
1569
1736
|
var import_editor_controls30 = require("@elementor/editor-controls");
|
|
1570
1737
|
var import_ui37 = require("@elementor/ui");
|
|
1571
|
-
var
|
|
1738
|
+
var import_i18n27 = require("@wordpress/i18n");
|
|
1572
1739
|
var FontSizeField = () => {
|
|
1573
|
-
return /* @__PURE__ */
|
|
1740
|
+
return /* @__PURE__ */ React47.createElement(StylesField, { bind: "font-size" }, /* @__PURE__ */ React47.createElement(import_ui37.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React47.createElement(import_ui37.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(import_editor_controls30.ControlLabel, null, (0, import_i18n27.__)("Font Size", "elementor"))), /* @__PURE__ */ React47.createElement(import_ui37.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(import_editor_controls30.SizeControl, null))));
|
|
1574
1741
|
};
|
|
1575
1742
|
|
|
1576
1743
|
// src/components/style-sections/typography-section/font-weight-field.tsx
|
|
1577
|
-
var
|
|
1744
|
+
var React48 = __toESM(require("react"));
|
|
1578
1745
|
var import_editor_controls31 = require("@elementor/editor-controls");
|
|
1579
1746
|
var import_ui38 = require("@elementor/ui");
|
|
1580
|
-
var
|
|
1747
|
+
var import_i18n28 = require("@wordpress/i18n");
|
|
1581
1748
|
var fontWeightOptions = [
|
|
1582
|
-
{ label: (0,
|
|
1583
|
-
{ label: (0,
|
|
1584
|
-
{ label: (0,
|
|
1585
|
-
{ label: (0,
|
|
1586
|
-
{ label: (0,
|
|
1749
|
+
{ label: (0, import_i18n28.__)("Light - 400", "elementor"), value: "400" },
|
|
1750
|
+
{ label: (0, import_i18n28.__)("Regular - 500", "elementor"), value: "500" },
|
|
1751
|
+
{ label: (0, import_i18n28.__)("Semi Bold - 600", "elementor"), value: "600" },
|
|
1752
|
+
{ label: (0, import_i18n28.__)("Bold - 700", "elementor"), value: "700" },
|
|
1753
|
+
{ label: (0, import_i18n28.__)("Black - 900", "elementor"), value: "900" }
|
|
1587
1754
|
];
|
|
1588
1755
|
var FontWeightField = () => {
|
|
1589
|
-
return /* @__PURE__ */
|
|
1756
|
+
return /* @__PURE__ */ React48.createElement(StylesField, { bind: "font-weight" }, /* @__PURE__ */ React48.createElement(import_ui38.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React48.createElement(import_ui38.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React48.createElement(import_editor_controls31.ControlLabel, null, (0, import_i18n28.__)("Font Weight", "elementor"))), /* @__PURE__ */ React48.createElement(import_ui38.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React48.createElement(import_editor_controls31.SelectControl, { options: fontWeightOptions }))));
|
|
1590
1757
|
};
|
|
1591
1758
|
|
|
1592
1759
|
// src/components/style-sections/typography-section/letter-spacing-field.tsx
|
|
1593
|
-
var
|
|
1760
|
+
var React49 = __toESM(require("react"));
|
|
1594
1761
|
var import_editor_controls32 = require("@elementor/editor-controls");
|
|
1595
1762
|
var import_ui39 = require("@elementor/ui");
|
|
1596
|
-
var
|
|
1763
|
+
var import_i18n29 = require("@wordpress/i18n");
|
|
1597
1764
|
var LetterSpacingField = () => {
|
|
1598
|
-
return /* @__PURE__ */
|
|
1765
|
+
return /* @__PURE__ */ React49.createElement(StylesField, { bind: "letter-spacing" }, /* @__PURE__ */ React49.createElement(import_ui39.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React49.createElement(import_ui39.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(import_editor_controls32.ControlLabel, null, (0, import_i18n29.__)("Letter Spacing", "elementor"))), /* @__PURE__ */ React49.createElement(import_ui39.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(import_editor_controls32.SizeControl, null))));
|
|
1599
1766
|
};
|
|
1600
1767
|
|
|
1601
1768
|
// src/components/style-sections/typography-section/line-height-field.tsx
|
|
1602
|
-
var
|
|
1769
|
+
var React50 = __toESM(require("react"));
|
|
1603
1770
|
var import_editor_controls33 = require("@elementor/editor-controls");
|
|
1604
1771
|
var import_ui40 = require("@elementor/ui");
|
|
1605
|
-
var
|
|
1772
|
+
var import_i18n30 = require("@wordpress/i18n");
|
|
1606
1773
|
var LineHeightField = () => {
|
|
1607
|
-
return /* @__PURE__ */
|
|
1774
|
+
return /* @__PURE__ */ React50.createElement(StylesField, { bind: "line-height" }, /* @__PURE__ */ React50.createElement(import_ui40.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React50.createElement(import_ui40.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React50.createElement(import_editor_controls33.ControlLabel, null, (0, import_i18n30.__)("Line Height", "elementor"))), /* @__PURE__ */ React50.createElement(import_ui40.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React50.createElement(import_editor_controls33.SizeControl, null))));
|
|
1608
1775
|
};
|
|
1609
1776
|
|
|
1610
1777
|
// src/components/style-sections/typography-section/text-alignment-field.tsx
|
|
1611
|
-
var
|
|
1778
|
+
var React51 = __toESM(require("react"));
|
|
1612
1779
|
var import_editor_controls34 = require("@elementor/editor-controls");
|
|
1613
|
-
var
|
|
1780
|
+
var import_icons17 = require("@elementor/icons");
|
|
1614
1781
|
var import_ui41 = require("@elementor/ui");
|
|
1615
|
-
var
|
|
1782
|
+
var import_i18n31 = require("@wordpress/i18n");
|
|
1616
1783
|
var options7 = [
|
|
1617
1784
|
{
|
|
1618
1785
|
value: "left",
|
|
1619
|
-
label: (0,
|
|
1620
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1786
|
+
label: (0, import_i18n31.__)("Left", "elementor"),
|
|
1787
|
+
renderContent: ({ size }) => /* @__PURE__ */ React51.createElement(import_icons17.AlignLeftIcon, { fontSize: size })
|
|
1621
1788
|
},
|
|
1622
1789
|
{
|
|
1623
1790
|
value: "center",
|
|
1624
|
-
label: (0,
|
|
1625
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1791
|
+
label: (0, import_i18n31.__)("Center", "elementor"),
|
|
1792
|
+
renderContent: ({ size }) => /* @__PURE__ */ React51.createElement(import_icons17.AlignCenterIcon, { fontSize: size })
|
|
1626
1793
|
},
|
|
1627
1794
|
{
|
|
1628
1795
|
value: "right",
|
|
1629
|
-
label: (0,
|
|
1630
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1796
|
+
label: (0, import_i18n31.__)("Right", "elementor"),
|
|
1797
|
+
renderContent: ({ size }) => /* @__PURE__ */ React51.createElement(import_icons17.AlignRightIcon, { fontSize: size })
|
|
1631
1798
|
},
|
|
1632
1799
|
{
|
|
1633
1800
|
value: "justify",
|
|
1634
|
-
label: (0,
|
|
1635
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1801
|
+
label: (0, import_i18n31.__)("Justify", "elementor"),
|
|
1802
|
+
renderContent: ({ size }) => /* @__PURE__ */ React51.createElement(import_icons17.AlignJustifiedIcon, { fontSize: size })
|
|
1636
1803
|
}
|
|
1637
1804
|
];
|
|
1638
1805
|
var TextAlignmentField = () => {
|
|
1639
|
-
return /* @__PURE__ */
|
|
1806
|
+
return /* @__PURE__ */ React51.createElement(StylesField, { bind: "text-align" }, /* @__PURE__ */ React51.createElement(import_ui41.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React51.createElement(import_ui41.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React51.createElement(import_editor_controls34.ControlLabel, null, (0, import_i18n31.__)("Alignment", "elementor"))), /* @__PURE__ */ React51.createElement(import_ui41.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React51.createElement(import_editor_controls34.ToggleControl, { options: options7 }))));
|
|
1640
1807
|
};
|
|
1641
1808
|
|
|
1642
1809
|
// src/components/style-sections/typography-section/text-color-field.tsx
|
|
1643
|
-
var
|
|
1810
|
+
var React52 = __toESM(require("react"));
|
|
1644
1811
|
var import_editor_controls35 = require("@elementor/editor-controls");
|
|
1645
1812
|
var import_ui42 = require("@elementor/ui");
|
|
1646
|
-
var
|
|
1813
|
+
var import_i18n32 = require("@wordpress/i18n");
|
|
1647
1814
|
var TextColorField = () => {
|
|
1648
|
-
return /* @__PURE__ */
|
|
1815
|
+
return /* @__PURE__ */ React52.createElement(StylesField, { bind: "color" }, /* @__PURE__ */ React52.createElement(import_ui42.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React52.createElement(import_ui42.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React52.createElement(import_editor_controls35.ControlLabel, null, (0, import_i18n32.__)("Text Color", "elementor"))), /* @__PURE__ */ React52.createElement(import_ui42.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React52.createElement(import_editor_controls35.ColorControl, null))));
|
|
1649
1816
|
};
|
|
1650
1817
|
|
|
1651
1818
|
// src/components/style-sections/typography-section/text-direction-field.tsx
|
|
1652
|
-
var
|
|
1819
|
+
var React53 = __toESM(require("react"));
|
|
1653
1820
|
var import_editor_controls36 = require("@elementor/editor-controls");
|
|
1654
|
-
var
|
|
1821
|
+
var import_icons18 = require("@elementor/icons");
|
|
1655
1822
|
var import_ui43 = require("@elementor/ui");
|
|
1656
|
-
var
|
|
1823
|
+
var import_i18n33 = require("@wordpress/i18n");
|
|
1657
1824
|
var options8 = [
|
|
1658
1825
|
{
|
|
1659
1826
|
value: "ltr",
|
|
1660
|
-
label: (0,
|
|
1661
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1827
|
+
label: (0, import_i18n33.__)("Left to Right", "elementor"),
|
|
1828
|
+
renderContent: ({ size }) => /* @__PURE__ */ React53.createElement(import_icons18.TextDirectionLtrIcon, { fontSize: size })
|
|
1662
1829
|
},
|
|
1663
1830
|
{
|
|
1664
1831
|
value: "rtl",
|
|
1665
|
-
label: (0,
|
|
1666
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1832
|
+
label: (0, import_i18n33.__)("Right to Left", "elementor"),
|
|
1833
|
+
renderContent: ({ size }) => /* @__PURE__ */ React53.createElement(import_icons18.TextDirectionRtlIcon, { fontSize: size })
|
|
1667
1834
|
}
|
|
1668
1835
|
];
|
|
1669
1836
|
var TextDirectionField = () => {
|
|
1670
|
-
return /* @__PURE__ */
|
|
1837
|
+
return /* @__PURE__ */ React53.createElement(StylesField, { bind: "direction" }, /* @__PURE__ */ React53.createElement(import_ui43.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React53.createElement(import_ui43.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React53.createElement(import_editor_controls36.ControlLabel, null, (0, import_i18n33.__)("Direction", "elementor"))), /* @__PURE__ */ React53.createElement(import_ui43.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React53.createElement(import_editor_controls36.ToggleControl, { options: options8 }))));
|
|
1671
1838
|
};
|
|
1672
1839
|
|
|
1673
1840
|
// src/components/style-sections/typography-section/text-stroke-field.tsx
|
|
1674
|
-
var
|
|
1841
|
+
var React54 = __toESM(require("react"));
|
|
1675
1842
|
var import_editor_controls37 = require("@elementor/editor-controls");
|
|
1676
|
-
var
|
|
1843
|
+
var import_i18n34 = require("@wordpress/i18n");
|
|
1677
1844
|
var initTextStroke = {
|
|
1678
1845
|
$$type: "stroke",
|
|
1679
1846
|
value: {
|
|
@@ -1699,24 +1866,24 @@ var TextStrokeField = () => {
|
|
|
1699
1866
|
setTextStroke(null);
|
|
1700
1867
|
};
|
|
1701
1868
|
const hasTextStroke = Boolean(textStroke);
|
|
1702
|
-
return /* @__PURE__ */
|
|
1869
|
+
return /* @__PURE__ */ React54.createElement(
|
|
1703
1870
|
AddOrRemoveContent,
|
|
1704
1871
|
{
|
|
1705
|
-
label: (0,
|
|
1872
|
+
label: (0, import_i18n34.__)("Text Stroke", "elementor"),
|
|
1706
1873
|
isAdded: hasTextStroke,
|
|
1707
1874
|
onAdd: addTextStroke,
|
|
1708
1875
|
onRemove: removeTextStroke
|
|
1709
1876
|
},
|
|
1710
|
-
/* @__PURE__ */
|
|
1877
|
+
/* @__PURE__ */ React54.createElement(StylesField, { bind: "-webkit-text-stroke" }, /* @__PURE__ */ React54.createElement(import_editor_controls37.StrokeControl, null))
|
|
1711
1878
|
);
|
|
1712
1879
|
};
|
|
1713
1880
|
|
|
1714
1881
|
// src/components/style-sections/typography-section/text-style-field.tsx
|
|
1715
|
-
var
|
|
1882
|
+
var React55 = __toESM(require("react"));
|
|
1716
1883
|
var import_editor_controls38 = require("@elementor/editor-controls");
|
|
1717
|
-
var
|
|
1884
|
+
var import_icons19 = require("@elementor/icons");
|
|
1718
1885
|
var import_ui44 = require("@elementor/ui");
|
|
1719
|
-
var
|
|
1886
|
+
var import_i18n35 = require("@wordpress/i18n");
|
|
1720
1887
|
var buttonSize = "tiny";
|
|
1721
1888
|
var TextStyleField = () => {
|
|
1722
1889
|
const [fontStyle, setFontStyle] = useStylesField("font-style");
|
|
@@ -1740,7 +1907,7 @@ var TextStyleField = () => {
|
|
|
1740
1907
|
value: newValue
|
|
1741
1908
|
});
|
|
1742
1909
|
};
|
|
1743
|
-
return /* @__PURE__ */
|
|
1910
|
+
return /* @__PURE__ */ React55.createElement(import_ui44.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React55.createElement(import_ui44.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(import_editor_controls38.ControlLabel, null, (0, import_i18n35.__)("Style", "elementor"))), /* @__PURE__ */ React55.createElement(import_ui44.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React55.createElement(import_ui44.ToggleButtonGroup, { value: formats }, /* @__PURE__ */ React55.createElement(
|
|
1744
1911
|
ToggleButton,
|
|
1745
1912
|
{
|
|
1746
1913
|
value: "italic",
|
|
@@ -1748,8 +1915,8 @@ var TextStyleField = () => {
|
|
|
1748
1915
|
"aria-label": "italic",
|
|
1749
1916
|
sx: { marginLeft: "auto" }
|
|
1750
1917
|
},
|
|
1751
|
-
/* @__PURE__ */
|
|
1752
|
-
), /* @__PURE__ */
|
|
1918
|
+
/* @__PURE__ */ React55.createElement(import_icons19.ItalicIcon, { fontSize: buttonSize })
|
|
1919
|
+
), /* @__PURE__ */ React55.createElement(
|
|
1753
1920
|
ShorthandControl,
|
|
1754
1921
|
{
|
|
1755
1922
|
value: "line-through",
|
|
@@ -1757,8 +1924,8 @@ var TextStyleField = () => {
|
|
|
1757
1924
|
updateValues: handleSetTextDecoration,
|
|
1758
1925
|
"aria-label": "line-through"
|
|
1759
1926
|
},
|
|
1760
|
-
/* @__PURE__ */
|
|
1761
|
-
), /* @__PURE__ */
|
|
1927
|
+
/* @__PURE__ */ React55.createElement(import_icons19.StrikethroughIcon, { fontSize: buttonSize })
|
|
1928
|
+
), /* @__PURE__ */ React55.createElement(
|
|
1762
1929
|
ShorthandControl,
|
|
1763
1930
|
{
|
|
1764
1931
|
value: "underline",
|
|
@@ -1766,7 +1933,7 @@ var TextStyleField = () => {
|
|
|
1766
1933
|
updateValues: handleSetTextDecoration,
|
|
1767
1934
|
"aria-label": "underline"
|
|
1768
1935
|
},
|
|
1769
|
-
/* @__PURE__ */
|
|
1936
|
+
/* @__PURE__ */ React55.createElement(import_icons19.UnderlineIcon, { fontSize: buttonSize })
|
|
1770
1937
|
))));
|
|
1771
1938
|
};
|
|
1772
1939
|
var ShorthandControl = ({
|
|
@@ -1785,52 +1952,52 @@ var ShorthandControl = ({
|
|
|
1785
1952
|
updateValues([...valuesArr, newValue].join(" "));
|
|
1786
1953
|
}
|
|
1787
1954
|
};
|
|
1788
|
-
return /* @__PURE__ */
|
|
1955
|
+
return /* @__PURE__ */ React55.createElement(ToggleButton, { value, onChange: toggleValue, selected, "aria-label": ariaLabel }, children);
|
|
1789
1956
|
};
|
|
1790
1957
|
var ToggleButton = ({ onChange, ...props }) => {
|
|
1791
1958
|
const handleChange = (_e, newValue) => {
|
|
1792
1959
|
onChange(newValue);
|
|
1793
1960
|
};
|
|
1794
|
-
return /* @__PURE__ */
|
|
1961
|
+
return /* @__PURE__ */ React55.createElement(import_ui44.ToggleButton, { ...props, onChange: handleChange, size: buttonSize });
|
|
1795
1962
|
};
|
|
1796
1963
|
|
|
1797
1964
|
// src/components/style-sections/typography-section/transform-field.tsx
|
|
1798
|
-
var
|
|
1965
|
+
var React56 = __toESM(require("react"));
|
|
1799
1966
|
var import_editor_controls39 = require("@elementor/editor-controls");
|
|
1800
|
-
var
|
|
1967
|
+
var import_icons20 = require("@elementor/icons");
|
|
1801
1968
|
var import_ui45 = require("@elementor/ui");
|
|
1802
|
-
var
|
|
1969
|
+
var import_i18n36 = require("@wordpress/i18n");
|
|
1803
1970
|
var options9 = [
|
|
1804
1971
|
{
|
|
1805
1972
|
value: "capitalize",
|
|
1806
|
-
label: (0,
|
|
1807
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1973
|
+
label: (0, import_i18n36.__)("Capitalize", "elementor"),
|
|
1974
|
+
renderContent: ({ size }) => /* @__PURE__ */ React56.createElement(import_icons20.LetterCaseIcon, { fontSize: size })
|
|
1808
1975
|
},
|
|
1809
1976
|
{
|
|
1810
1977
|
value: "uppercase",
|
|
1811
|
-
label: (0,
|
|
1812
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1978
|
+
label: (0, import_i18n36.__)("Uppercase", "elementor"),
|
|
1979
|
+
renderContent: ({ size }) => /* @__PURE__ */ React56.createElement(import_icons20.LetterCaseUpperIcon, { fontSize: size })
|
|
1813
1980
|
},
|
|
1814
1981
|
{
|
|
1815
1982
|
value: "lowercase",
|
|
1816
|
-
label: (0,
|
|
1817
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
1983
|
+
label: (0, import_i18n36.__)("Lowercase", "elementor"),
|
|
1984
|
+
renderContent: ({ size }) => /* @__PURE__ */ React56.createElement(import_icons20.LetterCaseLowerIcon, { fontSize: size })
|
|
1818
1985
|
}
|
|
1819
1986
|
];
|
|
1820
|
-
var TransformField = () => /* @__PURE__ */
|
|
1987
|
+
var TransformField = () => /* @__PURE__ */ React56.createElement(StylesField, { bind: "text-transform" }, /* @__PURE__ */ React56.createElement(import_ui45.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React56.createElement(import_ui45.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React56.createElement(import_editor_controls39.ControlLabel, null, (0, import_i18n36.__)("Transform", "elementor"))), /* @__PURE__ */ React56.createElement(import_ui45.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React56.createElement(import_editor_controls39.ToggleControl, { options: options9 }))));
|
|
1821
1988
|
|
|
1822
1989
|
// src/components/style-sections/typography-section/word-spacing-field.tsx
|
|
1823
|
-
var
|
|
1990
|
+
var React57 = __toESM(require("react"));
|
|
1824
1991
|
var import_editor_controls40 = require("@elementor/editor-controls");
|
|
1825
1992
|
var import_ui46 = require("@elementor/ui");
|
|
1826
|
-
var
|
|
1993
|
+
var import_i18n37 = require("@wordpress/i18n");
|
|
1827
1994
|
var WordSpacingField = () => {
|
|
1828
|
-
return /* @__PURE__ */
|
|
1995
|
+
return /* @__PURE__ */ React57.createElement(StylesField, { bind: "word-spacing" }, /* @__PURE__ */ React57.createElement(import_ui46.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React57.createElement(import_ui46.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React57.createElement(import_editor_controls40.ControlLabel, null, (0, import_i18n37.__)("Word Spacing", "elementor"))), /* @__PURE__ */ React57.createElement(import_ui46.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React57.createElement(import_editor_controls40.SizeControl, null))));
|
|
1829
1996
|
};
|
|
1830
1997
|
|
|
1831
1998
|
// src/components/style-sections/typography-section/typography-section.tsx
|
|
1832
1999
|
var TypographySection = () => {
|
|
1833
|
-
return /* @__PURE__ */
|
|
2000
|
+
return /* @__PURE__ */ React58.createElement(import_ui47.Stack, { gap: 1.5 }, /* @__PURE__ */ React58.createElement(FontFamilyField, null), /* @__PURE__ */ React58.createElement(FontWeightField, null), /* @__PURE__ */ React58.createElement(FontSizeField, null), /* @__PURE__ */ React58.createElement(import_ui47.Divider, null), /* @__PURE__ */ React58.createElement(TextAlignmentField, null), /* @__PURE__ */ React58.createElement(TextColorField, null), /* @__PURE__ */ React58.createElement(CollapsibleContent, null, /* @__PURE__ */ React58.createElement(import_ui47.Stack, { gap: 1.5, sx: { pt: 1.5 } }, /* @__PURE__ */ React58.createElement(LineHeightField, null), /* @__PURE__ */ React58.createElement(LetterSpacingField, null), /* @__PURE__ */ React58.createElement(WordSpacingField, null), /* @__PURE__ */ React58.createElement(import_ui47.Divider, null), /* @__PURE__ */ React58.createElement(TextStyleField, null), /* @__PURE__ */ React58.createElement(TransformField, null), /* @__PURE__ */ React58.createElement(TextDirectionField, null), /* @__PURE__ */ React58.createElement(TextStrokeField, null))));
|
|
1834
2001
|
};
|
|
1835
2002
|
|
|
1836
2003
|
// src/components/style-tab.tsx
|
|
@@ -1838,11 +2005,26 @@ var CLASSES_PROP_KEY = "classes";
|
|
|
1838
2005
|
var StyleTab = () => {
|
|
1839
2006
|
const currentClassesProp = useCurrentClassesProp();
|
|
1840
2007
|
const [activeStyleDefId, setActiveStyleDefId] = useActiveStyleDefId(currentClassesProp);
|
|
2008
|
+
const [activeStyleState, setActiveStyleState] = (0, import_react14.useState)(null);
|
|
1841
2009
|
const breakpoint = (0, import_editor_responsive.useActiveBreakpoint)();
|
|
1842
|
-
return /* @__PURE__ */
|
|
2010
|
+
return /* @__PURE__ */ React59.createElement(ClassesPropProvider, { prop: currentClassesProp }, /* @__PURE__ */ React59.createElement(
|
|
2011
|
+
StyleProvider,
|
|
2012
|
+
{
|
|
2013
|
+
meta: { breakpoint, state: activeStyleState },
|
|
2014
|
+
id: activeStyleDefId,
|
|
2015
|
+
setId: (id) => {
|
|
2016
|
+
setActiveStyleDefId(id);
|
|
2017
|
+
setActiveStyleState(null);
|
|
2018
|
+
},
|
|
2019
|
+
setMetaState: setActiveStyleState
|
|
2020
|
+
},
|
|
2021
|
+
/* @__PURE__ */ React59.createElement(CssClassSelector, null),
|
|
2022
|
+
/* @__PURE__ */ React59.createElement(import_ui48.Divider, null),
|
|
2023
|
+
/* @__PURE__ */ React59.createElement(SectionsList, null, /* @__PURE__ */ React59.createElement(Section, { title: (0, import_i18n38.__)("Layout", "elementor") }, /* @__PURE__ */ React59.createElement(LayoutSection, null)), /* @__PURE__ */ React59.createElement(Section, { title: (0, import_i18n38.__)("Spacing", "elementor") }, /* @__PURE__ */ React59.createElement(SpacingSection, null)), /* @__PURE__ */ React59.createElement(Section, { title: (0, import_i18n38.__)("Size", "elementor") }, /* @__PURE__ */ React59.createElement(SizeSection, null)), /* @__PURE__ */ React59.createElement(Section, { title: (0, import_i18n38.__)("Position", "elementor") }, /* @__PURE__ */ React59.createElement(PositionSection, null)), /* @__PURE__ */ React59.createElement(Section, { title: (0, import_i18n38.__)("Typography", "elementor") }, /* @__PURE__ */ React59.createElement(TypographySection, null)), /* @__PURE__ */ React59.createElement(Section, { title: (0, import_i18n38.__)("Background", "elementor") }, /* @__PURE__ */ React59.createElement(BackgroundSection, null)), /* @__PURE__ */ React59.createElement(Section, { title: (0, import_i18n38.__)("Border", "elementor") }, /* @__PURE__ */ React59.createElement(BorderSection, null)), /* @__PURE__ */ React59.createElement(Section, { title: (0, import_i18n38.__)("Effects", "elementor") }, /* @__PURE__ */ React59.createElement(EffectsSection, null)))
|
|
2024
|
+
));
|
|
1843
2025
|
};
|
|
1844
2026
|
function useActiveStyleDefId(currentClassesProp) {
|
|
1845
|
-
const [activeStyledDefId, setActiveStyledDefId] = (0,
|
|
2027
|
+
const [activeStyledDefId, setActiveStyledDefId] = (0, import_react14.useState)(null);
|
|
1846
2028
|
const fallback = useFirstElementStyleDef(currentClassesProp);
|
|
1847
2029
|
return [activeStyledDefId || fallback?.id || null, setActiveStyledDefId];
|
|
1848
2030
|
}
|
|
@@ -1855,7 +2037,7 @@ function useFirstElementStyleDef(currentClassesProp) {
|
|
|
1855
2037
|
function useCurrentClassesProp() {
|
|
1856
2038
|
const { elementType } = useElement();
|
|
1857
2039
|
const prop = Object.entries(elementType.propsSchema).find(
|
|
1858
|
-
([, propType]) => propType.kind === "
|
|
2040
|
+
([, propType]) => propType.kind === "plain" && propType.key === CLASSES_PROP_KEY
|
|
1859
2041
|
);
|
|
1860
2042
|
if (!prop) {
|
|
1861
2043
|
throw new Error("Element does not have a classes prop");
|
|
@@ -1870,7 +2052,7 @@ var EditingPanelTabs = () => {
|
|
|
1870
2052
|
return (
|
|
1871
2053
|
// When switching between elements, the local states should be reset. We are using key to rerender the tabs.
|
|
1872
2054
|
// Reference: https://react.dev/learn/preserving-and-resetting-state#resetting-a-form-with-a-key
|
|
1873
|
-
/* @__PURE__ */
|
|
2055
|
+
/* @__PURE__ */ React60.createElement(import_react15.Fragment, { key: element.id }, /* @__PURE__ */ React60.createElement(import_ui49.Stack, { direction: "column", sx: { width: "100%" } }, /* @__PURE__ */ React60.createElement(import_ui49.Tabs, { variant: "fullWidth", indicatorColor: "secondary", textColor: "inherit", ...getTabsProps() }, /* @__PURE__ */ React60.createElement(import_ui49.Tab, { label: (0, import_i18n39.__)("General", "elementor"), ...getTabProps("settings") }), /* @__PURE__ */ React60.createElement(import_ui49.Tab, { label: (0, import_i18n39.__)("Style", "elementor"), ...getTabProps("style") })), /* @__PURE__ */ React60.createElement(import_ui49.Divider, null), /* @__PURE__ */ React60.createElement(import_ui49.TabPanel, { ...getTabPanelProps("settings"), disablePadding: true }, /* @__PURE__ */ React60.createElement(SettingsTab, null)), /* @__PURE__ */ React60.createElement(import_ui49.TabPanel, { ...getTabPanelProps("style"), disablePadding: true }, /* @__PURE__ */ React60.createElement(StyleTab, null))))
|
|
1874
2056
|
);
|
|
1875
2057
|
};
|
|
1876
2058
|
|
|
@@ -1883,8 +2065,8 @@ var EditingPanel = () => {
|
|
|
1883
2065
|
if (!element || !elementType) {
|
|
1884
2066
|
return null;
|
|
1885
2067
|
}
|
|
1886
|
-
const panelTitle = (0,
|
|
1887
|
-
return /* @__PURE__ */
|
|
2068
|
+
const panelTitle = (0, import_i18n40.__)("Edit %s", "elementor").replace("%s", elementType.title);
|
|
2069
|
+
return /* @__PURE__ */ React61.createElement(import_ui50.ErrorBoundary, { fallback: /* @__PURE__ */ React61.createElement(EditorPanelErrorFallback, null) }, /* @__PURE__ */ React61.createElement(import_editor_panels.Panel, null, /* @__PURE__ */ React61.createElement(import_editor_panels.PanelHeader, null, /* @__PURE__ */ React61.createElement(import_editor_panels.PanelHeaderTitle, null, panelTitle)), /* @__PURE__ */ React61.createElement(import_editor_panels.PanelBody, null, /* @__PURE__ */ React61.createElement(import_editor_controls41.ControlActionsProvider, { items: menuItems }, /* @__PURE__ */ React61.createElement(import_editor_controls41.ControlReplacementProvider, { ...controlReplacement }, /* @__PURE__ */ React61.createElement(ElementProvider, { element, elementType }, /* @__PURE__ */ React61.createElement(EditingPanelTabs, null)))))));
|
|
1888
2070
|
};
|
|
1889
2071
|
|
|
1890
2072
|
// src/panel.ts
|
|
@@ -1907,7 +2089,7 @@ var isAtomicWidgetSelected = () => {
|
|
|
1907
2089
|
// src/hooks/use-close-editor-panel.ts
|
|
1908
2090
|
var useCloseEditorPanel = () => {
|
|
1909
2091
|
const { close } = usePanelActions();
|
|
1910
|
-
return (0,
|
|
2092
|
+
return (0, import_react16.useEffect)(() => {
|
|
1911
2093
|
return (0, import_editor_v1_adapters2.__privateListenTo)((0, import_editor_v1_adapters2.commandStartEvent)("document/elements/delete"), (e) => {
|
|
1912
2094
|
const selectedElement = (0, import_editor_elements8.getSelectedElements)()[0];
|
|
1913
2095
|
const { container: deletedContainer } = e?.args;
|
|
@@ -1920,11 +2102,11 @@ var useCloseEditorPanel = () => {
|
|
|
1920
2102
|
};
|
|
1921
2103
|
|
|
1922
2104
|
// src/hooks/use-open-editor-panel.ts
|
|
1923
|
-
var
|
|
2105
|
+
var import_react17 = require("react");
|
|
1924
2106
|
var import_editor_v1_adapters3 = require("@elementor/editor-v1-adapters");
|
|
1925
2107
|
var useOpenEditorPanel = () => {
|
|
1926
2108
|
const { open } = usePanelActions();
|
|
1927
|
-
(0,
|
|
2109
|
+
(0, import_react17.useEffect)(() => {
|
|
1928
2110
|
return (0, import_editor_v1_adapters3.__privateListenTo)((0, import_editor_v1_adapters3.commandStartEvent)("panel/editor/open"), () => {
|
|
1929
2111
|
if (isAtomicWidgetSelected()) {
|
|
1930
2112
|
open();
|
|
@@ -1940,13 +2122,38 @@ var EditingPanelHooks = () => {
|
|
|
1940
2122
|
return null;
|
|
1941
2123
|
};
|
|
1942
2124
|
|
|
2125
|
+
// src/css-classes.ts
|
|
2126
|
+
var STATES = ["hover", "focus", "active"];
|
|
2127
|
+
function initCssClasses() {
|
|
2128
|
+
registerStateItems();
|
|
2129
|
+
registerGlobalClassItems();
|
|
2130
|
+
}
|
|
2131
|
+
function registerStateItems() {
|
|
2132
|
+
registerStateMenuItem({
|
|
2133
|
+
id: "normal",
|
|
2134
|
+
props: {
|
|
2135
|
+
state: null
|
|
2136
|
+
}
|
|
2137
|
+
});
|
|
2138
|
+
STATES.forEach((state) => {
|
|
2139
|
+
registerStateMenuItem({
|
|
2140
|
+
id: state,
|
|
2141
|
+
props: {
|
|
2142
|
+
state
|
|
2143
|
+
}
|
|
2144
|
+
});
|
|
2145
|
+
});
|
|
2146
|
+
}
|
|
2147
|
+
function registerGlobalClassItems() {
|
|
2148
|
+
}
|
|
2149
|
+
|
|
1943
2150
|
// src/dynamics/components/dynamic-selection-control.tsx
|
|
1944
|
-
var
|
|
1945
|
-
var
|
|
1946
|
-
var
|
|
1947
|
-
var
|
|
2151
|
+
var React64 = __toESM(require("react"));
|
|
2152
|
+
var import_react21 = require("react");
|
|
2153
|
+
var import_editor_controls45 = require("@elementor/editor-controls");
|
|
2154
|
+
var import_icons22 = require("@elementor/icons");
|
|
1948
2155
|
var import_ui52 = require("@elementor/ui");
|
|
1949
|
-
var
|
|
2156
|
+
var import_i18n42 = require("@wordpress/i18n");
|
|
1950
2157
|
|
|
1951
2158
|
// src/hooks/use-persist-dynamic-value.ts
|
|
1952
2159
|
var usePersistDynamicValue = (propKey) => {
|
|
@@ -1956,14 +2163,15 @@ var usePersistDynamicValue = (propKey) => {
|
|
|
1956
2163
|
};
|
|
1957
2164
|
|
|
1958
2165
|
// src/dynamics/dynamic-control.tsx
|
|
1959
|
-
var
|
|
1960
|
-
var
|
|
2166
|
+
var React62 = __toESM(require("react"));
|
|
2167
|
+
var import_editor_controls43 = require("@elementor/editor-controls");
|
|
1961
2168
|
|
|
1962
2169
|
// src/dynamics/hooks/use-dynamic-tag.ts
|
|
1963
|
-
var
|
|
2170
|
+
var import_react19 = require("react");
|
|
1964
2171
|
|
|
1965
2172
|
// src/dynamics/hooks/use-prop-dynamic-tags.ts
|
|
1966
|
-
var
|
|
2173
|
+
var import_react18 = require("react");
|
|
2174
|
+
var import_editor_controls42 = require("@elementor/editor-controls");
|
|
1967
2175
|
|
|
1968
2176
|
// src/dynamics/sync/get-elementor-config.ts
|
|
1969
2177
|
var getElementorConfig2 = () => {
|
|
@@ -2002,20 +2210,19 @@ var dynamicPropTypeUtil = (0, import_editor_props4.createPropUtils)(
|
|
|
2002
2210
|
DYNAMIC_PROP_TYPE_KEY,
|
|
2003
2211
|
import_schema.z.strictObject({
|
|
2004
2212
|
name: import_schema.z.string(),
|
|
2005
|
-
settings: import_schema.z.
|
|
2213
|
+
settings: import_schema.z.any().optional()
|
|
2006
2214
|
})
|
|
2007
2215
|
);
|
|
2008
2216
|
|
|
2009
2217
|
// src/dynamics/hooks/use-prop-dynamic-tags.ts
|
|
2010
|
-
var usePropDynamicTags = (
|
|
2218
|
+
var usePropDynamicTags = () => {
|
|
2011
2219
|
let categories = [];
|
|
2012
|
-
const {
|
|
2013
|
-
const propType = elementType.propsSchema?.[propName];
|
|
2220
|
+
const { propType } = (0, import_editor_controls42.useBoundProp)();
|
|
2014
2221
|
if (propType) {
|
|
2015
2222
|
const propDynamicType = getDynamicPropType(propType);
|
|
2016
2223
|
categories = propDynamicType?.settings.categories || [];
|
|
2017
2224
|
}
|
|
2018
|
-
return (0,
|
|
2225
|
+
return (0, import_react18.useMemo)(() => getDynamicTagsByCategories(categories), [categories.join()]);
|
|
2019
2226
|
};
|
|
2020
2227
|
var getDynamicTagsByCategories = (categories) => {
|
|
2021
2228
|
const dynamicTags = getAtomicDynamicTags();
|
|
@@ -2029,49 +2236,51 @@ var getDynamicTagsByCategories = (categories) => {
|
|
|
2029
2236
|
};
|
|
2030
2237
|
|
|
2031
2238
|
// src/dynamics/hooks/use-dynamic-tag.ts
|
|
2032
|
-
var useDynamicTag = (
|
|
2033
|
-
const dynamicTags = usePropDynamicTags(
|
|
2034
|
-
return (0,
|
|
2239
|
+
var useDynamicTag = (tagName) => {
|
|
2240
|
+
const dynamicTags = usePropDynamicTags();
|
|
2241
|
+
return (0, import_react19.useMemo)(() => dynamicTags.find((tag) => tag.name === tagName) ?? null, [dynamicTags, tagName]);
|
|
2035
2242
|
};
|
|
2036
2243
|
|
|
2037
2244
|
// src/dynamics/dynamic-control.tsx
|
|
2038
2245
|
var DynamicControl = ({ bind, children }) => {
|
|
2039
|
-
const { value, setValue
|
|
2246
|
+
const { value, setValue } = (0, import_editor_controls43.useBoundProp)(dynamicPropTypeUtil);
|
|
2040
2247
|
const { name = "", settings } = value ?? {};
|
|
2041
|
-
const dynamicTag = useDynamicTag(
|
|
2248
|
+
const dynamicTag = useDynamicTag(name);
|
|
2042
2249
|
if (!dynamicTag) {
|
|
2043
2250
|
throw new Error(`Dynamic tag ${name} not found`);
|
|
2044
2251
|
}
|
|
2045
|
-
const
|
|
2252
|
+
const dynamicPropType = dynamicTag.props_schema[bind];
|
|
2253
|
+
const defaultValue = dynamicPropType?.default;
|
|
2046
2254
|
const dynamicValue = settings?.[bind] ?? defaultValue;
|
|
2047
|
-
const setDynamicValue = (
|
|
2255
|
+
const setDynamicValue = (newValues) => {
|
|
2048
2256
|
setValue({
|
|
2049
2257
|
name,
|
|
2050
2258
|
settings: {
|
|
2051
2259
|
...settings,
|
|
2052
|
-
|
|
2260
|
+
...newValues
|
|
2053
2261
|
}
|
|
2054
2262
|
});
|
|
2055
2263
|
};
|
|
2056
|
-
|
|
2264
|
+
const propType = createTopLevelOjectType({ schema: dynamicTag.props_schema });
|
|
2265
|
+
return /* @__PURE__ */ React62.createElement(import_editor_controls43.PropProvider, { propType, setValue: setDynamicValue, value: { [bind]: dynamicValue } }, /* @__PURE__ */ React62.createElement(import_editor_controls43.PropKeyProvider, { bind }, children));
|
|
2057
2266
|
};
|
|
2058
2267
|
|
|
2059
2268
|
// src/dynamics/components/dynamic-selection.tsx
|
|
2060
|
-
var
|
|
2061
|
-
var
|
|
2062
|
-
var
|
|
2063
|
-
var
|
|
2269
|
+
var React63 = __toESM(require("react"));
|
|
2270
|
+
var import_react20 = require("react");
|
|
2271
|
+
var import_editor_controls44 = require("@elementor/editor-controls");
|
|
2272
|
+
var import_icons21 = require("@elementor/icons");
|
|
2064
2273
|
var import_ui51 = require("@elementor/ui");
|
|
2065
|
-
var
|
|
2274
|
+
var import_i18n41 = require("@wordpress/i18n");
|
|
2066
2275
|
var SIZE3 = "tiny";
|
|
2067
2276
|
var DynamicSelection = ({ onSelect }) => {
|
|
2068
|
-
const [searchValue, setSearchValue] = (0,
|
|
2277
|
+
const [searchValue, setSearchValue] = (0, import_react20.useState)("");
|
|
2069
2278
|
const { groups: dynamicGroups } = getAtomicDynamicTags() || {};
|
|
2070
|
-
const { value: anyValue } = (0,
|
|
2071
|
-
const { bind, value: dynamicValue, setValue } = (0,
|
|
2279
|
+
const { value: anyValue } = (0, import_editor_controls44.useBoundProp)();
|
|
2280
|
+
const { bind, value: dynamicValue, setValue } = (0, import_editor_controls44.useBoundProp)(dynamicPropTypeUtil);
|
|
2072
2281
|
const [, updatePropValueHistory] = usePersistDynamicValue(bind);
|
|
2073
2282
|
const isCurrentValueDynamic = !!dynamicValue;
|
|
2074
|
-
const options10 = useFilteredOptions(
|
|
2283
|
+
const options10 = useFilteredOptions(searchValue);
|
|
2075
2284
|
const handleSearch = (event) => {
|
|
2076
2285
|
setSearchValue(event.target.value);
|
|
2077
2286
|
};
|
|
@@ -2082,21 +2291,21 @@ var DynamicSelection = ({ onSelect }) => {
|
|
|
2082
2291
|
setValue({ name: value, settings: {} });
|
|
2083
2292
|
onSelect?.();
|
|
2084
2293
|
};
|
|
2085
|
-
return /* @__PURE__ */
|
|
2294
|
+
return /* @__PURE__ */ React63.createElement(import_ui51.Stack, null, /* @__PURE__ */ React63.createElement(import_ui51.Box, { px: 1.5, pb: 1 }, /* @__PURE__ */ React63.createElement(
|
|
2086
2295
|
import_ui51.TextField,
|
|
2087
2296
|
{
|
|
2088
2297
|
fullWidth: true,
|
|
2089
2298
|
size: SIZE3,
|
|
2090
2299
|
value: searchValue,
|
|
2091
2300
|
onChange: handleSearch,
|
|
2092
|
-
placeholder: (0,
|
|
2301
|
+
placeholder: (0, import_i18n41.__)("Search dynamic tag", "elementor"),
|
|
2093
2302
|
InputProps: {
|
|
2094
|
-
startAdornment: /* @__PURE__ */
|
|
2303
|
+
startAdornment: /* @__PURE__ */ React63.createElement(import_ui51.InputAdornment, { position: "start" }, /* @__PURE__ */ React63.createElement(import_icons21.SearchIcon, { fontSize: SIZE3 }))
|
|
2095
2304
|
}
|
|
2096
2305
|
}
|
|
2097
|
-
)), /* @__PURE__ */
|
|
2306
|
+
)), /* @__PURE__ */ React63.createElement(import_ui51.Divider, null), /* @__PURE__ */ React63.createElement(import_ui51.Box, { sx: { overflowY: "auto", height: 260, width: 220 } }, options10.length > 0 ? /* @__PURE__ */ React63.createElement(import_ui51.MenuList, { role: "listbox", tabIndex: 0 }, options10.map(([category, items3], index) => /* @__PURE__ */ React63.createElement(import_react20.Fragment, { key: index }, /* @__PURE__ */ React63.createElement(import_ui51.ListSubheader, { sx: { typography: "caption", color: "text.tertiary" } }, dynamicGroups?.[category]?.title || category), items3.map(({ value, label: tagLabel }) => {
|
|
2098
2307
|
const isSelected = isCurrentValueDynamic && value === dynamicValue?.name;
|
|
2099
|
-
return /* @__PURE__ */
|
|
2308
|
+
return /* @__PURE__ */ React63.createElement(
|
|
2100
2309
|
import_ui51.MenuItem,
|
|
2101
2310
|
{
|
|
2102
2311
|
key: value,
|
|
@@ -2107,7 +2316,7 @@ var DynamicSelection = ({ onSelect }) => {
|
|
|
2107
2316
|
},
|
|
2108
2317
|
tagLabel
|
|
2109
2318
|
);
|
|
2110
|
-
})))) : /* @__PURE__ */
|
|
2319
|
+
})))) : /* @__PURE__ */ React63.createElement(import_ui51.Stack, { alignItems: "center", p: 2.5, gap: 1.5 }, /* @__PURE__ */ React63.createElement(import_icons21.PhotoIcon, { fontSize: "large" }), /* @__PURE__ */ React63.createElement(import_ui51.Typography, { align: "center", variant: "caption", color: "text.secondary" }, (0, import_i18n41.__)("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React63.createElement("br", null), "\u201C", searchValue, "\u201D."), /* @__PURE__ */ React63.createElement(import_ui51.Typography, { align: "center", variant: "caption", color: "text.secondary" }, /* @__PURE__ */ React63.createElement(
|
|
2111
2320
|
import_ui51.Link,
|
|
2112
2321
|
{
|
|
2113
2322
|
color: "secondary",
|
|
@@ -2115,11 +2324,11 @@ var DynamicSelection = ({ onSelect }) => {
|
|
|
2115
2324
|
component: "button",
|
|
2116
2325
|
onClick: () => setSearchValue("")
|
|
2117
2326
|
},
|
|
2118
|
-
(0,
|
|
2119
|
-
), "\xA0", (0,
|
|
2327
|
+
(0, import_i18n41.__)("Clear the filters", "elementor")
|
|
2328
|
+
), "\xA0", (0, import_i18n41.__)("and try again.", "elementor")))));
|
|
2120
2329
|
};
|
|
2121
|
-
var useFilteredOptions = (
|
|
2122
|
-
const dynamicTags = usePropDynamicTags(
|
|
2330
|
+
var useFilteredOptions = (searchValue) => {
|
|
2331
|
+
const dynamicTags = usePropDynamicTags();
|
|
2123
2332
|
const options10 = dynamicTags.reduce((categories, { name, label, group }) => {
|
|
2124
2333
|
const isVisible = label.toLowerCase().includes(searchValue.trim().toLowerCase());
|
|
2125
2334
|
if (!isVisible) {
|
|
@@ -2137,38 +2346,38 @@ var useFilteredOptions = (bind, searchValue) => {
|
|
|
2137
2346
|
// src/dynamics/components/dynamic-selection-control.tsx
|
|
2138
2347
|
var SIZE4 = "tiny";
|
|
2139
2348
|
var DynamicSelectionControl = () => {
|
|
2140
|
-
const { setValue: setAnyValue } = (0,
|
|
2141
|
-
const { bind, value } = (0,
|
|
2349
|
+
const { setValue: setAnyValue } = (0, import_editor_controls45.useBoundProp)();
|
|
2350
|
+
const { bind, value } = (0, import_editor_controls45.useBoundProp)(dynamicPropTypeUtil);
|
|
2142
2351
|
const [propValueFromHistory] = usePersistDynamicValue(bind);
|
|
2143
2352
|
const { name: tagName = "" } = value;
|
|
2144
|
-
const selectionPopoverId = (0,
|
|
2353
|
+
const selectionPopoverId = (0, import_react21.useId)();
|
|
2145
2354
|
const selectionPopoverState = (0, import_ui52.usePopupState)({ variant: "popover", popupId: selectionPopoverId });
|
|
2146
|
-
const dynamicTag = useDynamicTag(
|
|
2355
|
+
const dynamicTag = useDynamicTag(tagName);
|
|
2147
2356
|
const removeDynamicTag = () => {
|
|
2148
2357
|
setAnyValue(propValueFromHistory ?? null);
|
|
2149
2358
|
};
|
|
2150
2359
|
if (!dynamicTag) {
|
|
2151
2360
|
throw new Error(`Dynamic tag ${tagName} not found`);
|
|
2152
2361
|
}
|
|
2153
|
-
return /* @__PURE__ */
|
|
2362
|
+
return /* @__PURE__ */ React64.createElement(import_ui52.Box, null, /* @__PURE__ */ React64.createElement(
|
|
2154
2363
|
import_ui52.UnstableTag,
|
|
2155
2364
|
{
|
|
2156
2365
|
fullWidth: true,
|
|
2157
2366
|
showActionsOnHover: true,
|
|
2158
2367
|
label: dynamicTag.label,
|
|
2159
|
-
startIcon: /* @__PURE__ */
|
|
2368
|
+
startIcon: /* @__PURE__ */ React64.createElement(import_icons22.DatabaseIcon, { fontSize: SIZE4 }),
|
|
2160
2369
|
...(0, import_ui52.bindTrigger)(selectionPopoverState),
|
|
2161
|
-
actions: /* @__PURE__ */
|
|
2370
|
+
actions: /* @__PURE__ */ React64.createElement(React64.Fragment, null, /* @__PURE__ */ React64.createElement(DynamicSettingsPopover, { dynamicTag }), /* @__PURE__ */ React64.createElement(
|
|
2162
2371
|
import_ui52.IconButton,
|
|
2163
2372
|
{
|
|
2164
2373
|
size: SIZE4,
|
|
2165
2374
|
onClick: removeDynamicTag,
|
|
2166
|
-
"aria-label": (0,
|
|
2375
|
+
"aria-label": (0, import_i18n42.__)("Remove dynamic value", "elementor")
|
|
2167
2376
|
},
|
|
2168
|
-
/* @__PURE__ */
|
|
2377
|
+
/* @__PURE__ */ React64.createElement(import_icons22.XIcon, { fontSize: SIZE4 })
|
|
2169
2378
|
))
|
|
2170
2379
|
}
|
|
2171
|
-
), /* @__PURE__ */
|
|
2380
|
+
), /* @__PURE__ */ React64.createElement(
|
|
2172
2381
|
import_ui52.Popover,
|
|
2173
2382
|
{
|
|
2174
2383
|
disablePortal: true,
|
|
@@ -2176,32 +2385,32 @@ var DynamicSelectionControl = () => {
|
|
|
2176
2385
|
anchorOrigin: { vertical: "bottom", horizontal: "left" },
|
|
2177
2386
|
...(0, import_ui52.bindPopover)(selectionPopoverState)
|
|
2178
2387
|
},
|
|
2179
|
-
/* @__PURE__ */
|
|
2388
|
+
/* @__PURE__ */ React64.createElement(import_ui52.Stack, null, /* @__PURE__ */ React64.createElement(import_ui52.Stack, { direction: "row", alignItems: "center", pl: 1.5, pr: 0.5, py: 1.5 }, /* @__PURE__ */ React64.createElement(import_icons22.DatabaseIcon, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React64.createElement(import_ui52.Typography, { variant: "subtitle2" }, (0, import_i18n42.__)("Dynamic Tags", "elementor")), /* @__PURE__ */ React64.createElement(import_ui52.IconButton, { size: SIZE4, sx: { ml: "auto" }, onClick: selectionPopoverState.close }, /* @__PURE__ */ React64.createElement(import_icons22.XIcon, { fontSize: SIZE4 }))), /* @__PURE__ */ React64.createElement(DynamicSelection, { onSelect: selectionPopoverState.close }))
|
|
2180
2389
|
));
|
|
2181
2390
|
};
|
|
2182
2391
|
var DynamicSettingsPopover = ({ dynamicTag }) => {
|
|
2183
|
-
const popupId = (0,
|
|
2392
|
+
const popupId = (0, import_react21.useId)();
|
|
2184
2393
|
const settingsPopupState = (0, import_ui52.usePopupState)({ variant: "popover", popupId });
|
|
2185
2394
|
const hasDynamicSettings = !!dynamicTag.atomic_controls.length;
|
|
2186
2395
|
if (!hasDynamicSettings) {
|
|
2187
2396
|
return null;
|
|
2188
2397
|
}
|
|
2189
|
-
return /* @__PURE__ */
|
|
2398
|
+
return /* @__PURE__ */ React64.createElement(React64.Fragment, null, /* @__PURE__ */ React64.createElement(
|
|
2190
2399
|
import_ui52.IconButton,
|
|
2191
2400
|
{
|
|
2192
2401
|
size: SIZE4,
|
|
2193
2402
|
...(0, import_ui52.bindTrigger)(settingsPopupState),
|
|
2194
|
-
"aria-label": (0,
|
|
2403
|
+
"aria-label": (0, import_i18n42.__)("Settings", "elementor")
|
|
2195
2404
|
},
|
|
2196
|
-
/* @__PURE__ */
|
|
2197
|
-
), /* @__PURE__ */
|
|
2405
|
+
/* @__PURE__ */ React64.createElement(import_icons22.SettingsIcon, { fontSize: SIZE4 })
|
|
2406
|
+
), /* @__PURE__ */ React64.createElement(
|
|
2198
2407
|
import_ui52.Popover,
|
|
2199
2408
|
{
|
|
2200
2409
|
disableScrollLock: true,
|
|
2201
2410
|
anchorOrigin: { vertical: "bottom", horizontal: "center" },
|
|
2202
2411
|
...(0, import_ui52.bindPopover)(settingsPopupState)
|
|
2203
2412
|
},
|
|
2204
|
-
/* @__PURE__ */
|
|
2413
|
+
/* @__PURE__ */ React64.createElement(import_ui52.Paper, { component: import_ui52.Stack, sx: { minHeight: "300px", width: "220px" } }, /* @__PURE__ */ React64.createElement(import_ui52.Stack, { direction: "row", alignItems: "center", px: 1.5, pt: 2, pb: 1 }, /* @__PURE__ */ React64.createElement(import_icons22.DatabaseIcon, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React64.createElement(import_ui52.Typography, { variant: "subtitle2" }, dynamicTag.label), /* @__PURE__ */ React64.createElement(import_ui52.IconButton, { sx: { ml: "auto" }, size: SIZE4, onClick: settingsPopupState.close }, /* @__PURE__ */ React64.createElement(import_icons22.XIcon, { fontSize: SIZE4 }))), /* @__PURE__ */ React64.createElement(DynamicSettings, { controls: dynamicTag.atomic_controls }))
|
|
2205
2414
|
));
|
|
2206
2415
|
};
|
|
2207
2416
|
var DynamicSettings = ({ controls }) => {
|
|
@@ -2210,10 +2419,10 @@ var DynamicSettings = ({ controls }) => {
|
|
|
2210
2419
|
if (!tabs.length) {
|
|
2211
2420
|
return null;
|
|
2212
2421
|
}
|
|
2213
|
-
return /* @__PURE__ */
|
|
2214
|
-
return /* @__PURE__ */
|
|
2422
|
+
return /* @__PURE__ */ React64.createElement(React64.Fragment, null, /* @__PURE__ */ React64.createElement(import_ui52.Tabs, { indicatorColor: "secondary", textColor: "secondary", ...getTabsProps() }, tabs.map(({ value }, index) => /* @__PURE__ */ React64.createElement(import_ui52.Tab, { key: index, label: value.label, sx: { px: 1, py: 0.5 }, ...getTabProps(index) }))), /* @__PURE__ */ React64.createElement(import_ui52.Divider, null), tabs.map(({ value }, index) => {
|
|
2423
|
+
return /* @__PURE__ */ React64.createElement(import_ui52.TabPanel, { key: index, sx: { flexGrow: 1 }, ...getTabPanelProps(index) }, /* @__PURE__ */ React64.createElement(import_ui52.Stack, { gap: 1, px: 2 }, value.items.map((item) => {
|
|
2215
2424
|
if (item.type === "control") {
|
|
2216
|
-
return /* @__PURE__ */
|
|
2425
|
+
return /* @__PURE__ */ React64.createElement(Control3, { key: item.value.bind, control: item.value });
|
|
2217
2426
|
}
|
|
2218
2427
|
return null;
|
|
2219
2428
|
})));
|
|
@@ -2223,24 +2432,22 @@ var Control3 = ({ control }) => {
|
|
|
2223
2432
|
if (!getControlByType(control.type)) {
|
|
2224
2433
|
return null;
|
|
2225
2434
|
}
|
|
2226
|
-
return /* @__PURE__ */
|
|
2435
|
+
return /* @__PURE__ */ React64.createElement(DynamicControl, { bind: control.bind }, control.label ? /* @__PURE__ */ React64.createElement(import_editor_controls45.ControlLabel, null, control.label) : null, /* @__PURE__ */ React64.createElement(Control, { type: control.type, props: control.props }));
|
|
2227
2436
|
};
|
|
2228
2437
|
|
|
2229
2438
|
// src/dynamics/hooks/use-prop-dynamic-action.tsx
|
|
2230
|
-
var
|
|
2231
|
-
var
|
|
2232
|
-
var
|
|
2233
|
-
var
|
|
2439
|
+
var React65 = __toESM(require("react"));
|
|
2440
|
+
var import_editor_controls46 = require("@elementor/editor-controls");
|
|
2441
|
+
var import_icons23 = require("@elementor/icons");
|
|
2442
|
+
var import_i18n43 = require("@wordpress/i18n");
|
|
2234
2443
|
var usePropDynamicAction = () => {
|
|
2235
|
-
const {
|
|
2236
|
-
const { elementType } = useElement();
|
|
2237
|
-
const propType = elementType.propsSchema[bind];
|
|
2444
|
+
const { propType } = (0, import_editor_controls46.useBoundProp)();
|
|
2238
2445
|
const visible = !!propType && supportsDynamic(propType);
|
|
2239
2446
|
return {
|
|
2240
2447
|
visible,
|
|
2241
|
-
icon:
|
|
2242
|
-
title: (0,
|
|
2243
|
-
popoverContent: ({ closePopover }) => /* @__PURE__ */
|
|
2448
|
+
icon: import_icons23.DatabaseIcon,
|
|
2449
|
+
title: (0, import_i18n43.__)("Dynamic Tags", "elementor"),
|
|
2450
|
+
popoverContent: ({ closePopover }) => /* @__PURE__ */ React65.createElement(DynamicSelection, { onSelect: closePopover })
|
|
2244
2451
|
};
|
|
2245
2452
|
};
|
|
2246
2453
|
|
|
@@ -2266,6 +2473,7 @@ function init2() {
|
|
|
2266
2473
|
component: EditingPanelHooks
|
|
2267
2474
|
});
|
|
2268
2475
|
init();
|
|
2476
|
+
initCssClasses();
|
|
2269
2477
|
}
|
|
2270
2478
|
var blockV1Panel = () => {
|
|
2271
2479
|
(0, import_editor_v1_adapters4.__privateBlockDataCommand)({
|
|
@@ -2278,6 +2486,8 @@ var blockV1Panel = () => {
|
|
|
2278
2486
|
init2();
|
|
2279
2487
|
// Annotate the CommonJS export names for ESM import in node:
|
|
2280
2488
|
0 && (module.exports = {
|
|
2489
|
+
registerGlobalClassMenuItem,
|
|
2490
|
+
registerStateMenuItem,
|
|
2281
2491
|
replaceControl,
|
|
2282
2492
|
useBoundProp
|
|
2283
2493
|
});
|