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