PluginProbe
Elementor Website Builder – more than just a page builder / 3.17.0-dev3
Elementor Website Builder – more than just a page builder v3.17.0-dev3
4.3.4 4.3.3 4.3.2 4.3.1 4.3.0 4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 All 457 releases
elementor / assets / js / packages / editor-app-bar / editor-app-bar.js

editor-app-bar.js in Elementor Website Builder – more than just a page builder 3.17.0-dev3, at assets/js/packages/editor-app-bar/editor-app-bar.js

1,305 lines 49.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /******/ (function() { // webpackBootstrap
2 /******/ "use strict";
3 /******/ var __webpack_modules__ = ({
4
5 /***/ "react":
6 /*!**************************!*\
7 !*** external ["React"] ***!
8 \**************************/
9 /***/ (function(module) {
10
11 module.exports = window["React"];
12
13 /***/ }),
14
15 /***/ "@elementor/editor":
16 /*!*****************************************!*\
17 !*** external ["elementorV2","editor"] ***!
18 \*****************************************/
19 /***/ (function(module) {
20
21 module.exports = window["elementorV2"]["editor"];
22
23 /***/ }),
24
25 /***/ "@elementor/editor-documents":
26 /*!**************************************************!*\
27 !*** external ["elementorV2","editorDocuments"] ***!
28 \**************************************************/
29 /***/ (function(module) {
30
31 module.exports = window["elementorV2"]["editorDocuments"];
32
33 /***/ }),
34
35 /***/ "@elementor/editor-v1-adapters":
36 /*!***************************************************!*\
37 !*** external ["elementorV2","editorV1Adapters"] ***!
38 \***************************************************/
39 /***/ (function(module) {
40
41 module.exports = window["elementorV2"]["editorV1Adapters"];
42
43 /***/ }),
44
45 /***/ "@elementor/icons":
46 /*!****************************************!*\
47 !*** external ["elementorV2","icons"] ***!
48 \****************************************/
49 /***/ (function(module) {
50
51 module.exports = window["elementorV2"]["icons"];
52
53 /***/ }),
54
55 /***/ "@elementor/locations":
56 /*!********************************************!*\
57 !*** external ["elementorV2","locations"] ***!
58 \********************************************/
59 /***/ (function(module) {
60
61 module.exports = window["elementorV2"]["locations"];
62
63 /***/ }),
64
65 /***/ "@elementor/ui":
66 /*!*************************************!*\
67 !*** external ["elementorV2","ui"] ***!
68 \*************************************/
69 /***/ (function(module) {
70
71 module.exports = window["elementorV2"]["ui"];
72
73 /***/ }),
74
75 /***/ "@wordpress/i18n":
76 /*!******************************!*\
77 !*** external ["wp","i18n"] ***!
78 \******************************/
79 /***/ (function(module) {
80
81 module.exports = window["wp"]["i18n"];
82
83 /***/ })
84
85 /******/ });
86 /************************************************************************/
87 /******/ // The module cache
88 /******/ var __webpack_module_cache__ = {};
89 /******/
90 /******/ // The require function
91 /******/ function __webpack_require__(moduleId) {
92 /******/ // Check if module is in cache
93 /******/ var cachedModule = __webpack_module_cache__[moduleId];
94 /******/ if (cachedModule !== undefined) {
95 /******/ return cachedModule.exports;
96 /******/ }
97 /******/ // Create a new module (and put it into the cache)
98 /******/ var module = __webpack_module_cache__[moduleId] = {
99 /******/ // no module.id needed
100 /******/ // no module.loaded needed
101 /******/ exports: {}
102 /******/ };
103 /******/
104 /******/ // Execute the module function
105 /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
106 /******/
107 /******/ // Return the exports of the module
108 /******/ return module.exports;
109 /******/ }
110 /******/
111 /************************************************************************/
112 /******/ /* webpack/runtime/define property getters */
113 /******/ !function() {
114 /******/ // define getter functions for harmony exports
115 /******/ __webpack_require__.d = function(exports, definition) {
116 /******/ for(var key in definition) {
117 /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
118 /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
119 /******/ }
120 /******/ }
121 /******/ };
122 /******/ }();
123 /******/
124 /******/ /* webpack/runtime/hasOwnProperty shorthand */
125 /******/ !function() {
126 /******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
127 /******/ }();
128 /******/
129 /******/ /* webpack/runtime/make namespace object */
130 /******/ !function() {
131 /******/ // define __esModule on exports
132 /******/ __webpack_require__.r = function(exports) {
133 /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
134 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
135 /******/ }
136 /******/ Object.defineProperty(exports, '__esModule', { value: true });
137 /******/ };
138 /******/ }();
139 /******/
140 /************************************************************************/
141 var __webpack_exports__ = {};
142 // This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
143 !function() {
144 /*!***************************************************************!*\
145 !*** ./node_modules/@elementor/editor-app-bar/dist/index.mjs ***!
146 \***************************************************************/
147 __webpack_require__.r(__webpack_exports__);
148 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
149 /* harmony export */ documentOptionsMenu: function() { return /* binding */ documentOptionsMenu; },
150 /* harmony export */ injectIntoPageIndication: function() { return /* binding */ injectIntoPageIndication; },
151 /* harmony export */ injectIntoPrimaryAction: function() { return /* binding */ injectIntoPrimaryAction; },
152 /* harmony export */ injectIntoResponsive: function() { return /* binding */ injectIntoResponsive; },
153 /* harmony export */ integrationsMenu: function() { return /* binding */ integrationsMenu; },
154 /* harmony export */ mainMenu: function() { return /* binding */ mainMenu; },
155 /* harmony export */ toolsMenu: function() { return /* binding */ toolsMenu; },
156 /* harmony export */ utilitiesMenu: function() { return /* binding */ utilitiesMenu; }
157 /* harmony export */ });
158 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
159 /* harmony import */ var _elementor_locations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/locations */ "@elementor/locations");
160 /* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
161 /* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
162 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
163 /* harmony import */ var _elementor_editor__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @elementor/editor */ "@elementor/editor");
164 /* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters");
165 /* harmony import */ var _elementor_editor_documents__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @elementor/editor-documents */ "@elementor/editor-documents");
166 // src/locations/menus.tsx
167
168
169
170
171 // src/components/actions/action.tsx
172
173
174 // src/contexts/menu-context.tsx
175
176
177 var MenuContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({ type: "toolbar" });
178 function MenuContextProvider({ type, children }) {
179 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(MenuContext.Provider, { value: { type } }, children);
180 }
181 function useMenuContext() {
182 return (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(MenuContext);
183 }
184
185 // src/components/ui/toolbar-menu-item.tsx
186
187
188 function ToolbarMenuItem({ title, ...props }) {
189 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(Tooltip, { title }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Box, { component: "span", "aria-label": void 0 }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(
190 _elementor_ui__WEBPACK_IMPORTED_MODULE_2__.IconButton,
191 {
192 ...props,
193 "aria-label": title,
194 size: "medium",
195 sx: {
196 "& .MuiSvgIcon-root": {
197 fontSize: "1.25rem"
198 },
199 "&:hover": {
200 color: "text.primary"
201 }
202 }
203 }
204 )));
205 }
206 function Tooltip(props) {
207 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(
208 _elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Tooltip,
209 {
210 PopperProps: {
211 sx: {
212 "&.MuiTooltip-popper .MuiTooltip-tooltip.MuiTooltip-tooltipPlacementBottom": {
213 mt: 2
214 }
215 }
216 },
217 ...props
218 }
219 );
220 }
221
222 // src/components/ui/popover-menu-item.tsx
223
224
225
226 var DirectionalArrowIcon = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.withDirection)(_elementor_icons__WEBPACK_IMPORTED_MODULE_3__.ArrowUpRightIcon);
227 function PopoverMenuItem({ text, icon, onClick, href, target, disabled, ...props }) {
228 const isExternalLink = href && target === "_blank";
229 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(
230 _elementor_ui__WEBPACK_IMPORTED_MODULE_2__.MenuItem,
231 {
232 ...props,
233 disabled,
234 onClick,
235 component: href ? "a" : "div",
236 href,
237 target,
238 sx: {
239 "&:hover": {
240 color: "text.primary"
241 // Overriding global CSS from the editor.
242 }
243 }
244 },
245 /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.ListItemIcon, null, icon),
246 /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.ListItemText, { primary: text }),
247 isExternalLink && /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(DirectionalArrowIcon, null)
248 );
249 }
250
251 // src/components/actions/action.tsx
252 function Action({ icon: Icon, title, visible = true, ...props }) {
253 const { type } = useMenuContext();
254 if (!visible) {
255 return null;
256 }
257 return type === "toolbar" ? /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(ToolbarMenuItem, { title, ...props }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(Icon, null)) : /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(
258 PopoverMenuItem,
259 {
260 ...props,
261 text: title,
262 icon: /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(Icon, null)
263 }
264 );
265 }
266
267 // src/components/actions/toggle-action.tsx
268
269
270 // src/components/ui/toolbar-menu-toggle-item.tsx
271
272
273 function ToolbarMenuToggleItem({ title, onClick, ...props }) {
274 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Tooltip, { title }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Box, { component: "span", "aria-label": void 0 }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(
275 _elementor_ui__WEBPACK_IMPORTED_MODULE_2__.ToggleButton,
276 {
277 ...props,
278 onChange: onClick,
279 "aria-label": title,
280 size: "small",
281 sx: {
282 border: 0,
283 // Temp fix until the style of the ToggleButton component will be decided.
284 "&.Mui-disabled": {
285 border: 0
286 // Temp fix until the style of the ToggleButton component will be decided.
287 },
288 "& .MuiSvgIcon-root": {
289 fontSize: "1.25rem"
290 }
291 }
292 }
293 )));
294 }
295
296 // src/components/actions/toggle-action.tsx
297 function ToggleAction({ icon: Icon, title, value, visible = true, ...props }) {
298 const { type } = useMenuContext();
299 if (!visible) {
300 return null;
301 }
302 return type === "toolbar" ? /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(ToolbarMenuToggleItem, { value: value || title, title, ...props }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(Icon, null)) : /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(
303 PopoverMenuItem,
304 {
305 ...props,
306 text: title,
307 icon: /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(Icon, null)
308 }
309 );
310 }
311
312 // src/components/actions/link.tsx
313
314 function Link({ icon: Icon, title, visible = true, ...props }) {
315 const { type } = useMenuContext();
316 if (!visible) {
317 return null;
318 }
319 return type === "toolbar" ? /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(ToolbarMenuItem, { title, ...props }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(Icon, null)) : /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(
320 PopoverMenuItem,
321 {
322 ...props,
323 text: title,
324 icon: /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(Icon, null)
325 }
326 );
327 }
328
329 // src/locations/menus.tsx
330 function createMenu(groups = []) {
331 const menuGroups = [
332 ...groups,
333 "default"
334 ];
335 const locations = menuGroups.reduce(
336 (carry, group) => ({
337 ...carry,
338 [group]: (0,_elementor_locations__WEBPACK_IMPORTED_MODULE_1__.createLocation)()
339 }),
340 {}
341 );
342 const [
343 registerAction,
344 registerToggleAction,
345 registerLink
346 ] = [Action, ToggleAction, Link].map(
347 (Component) => createRegisterMenuItem({
348 locations,
349 menuGroups,
350 component: Component
351 })
352 );
353 const useMenuItems6 = createUseMenuItems(locations);
354 return {
355 registerAction,
356 registerToggleAction,
357 registerLink,
358 useMenuItems: useMenuItems6
359 };
360 }
361 function createRegisterMenuItem({ locations, menuGroups, component }) {
362 return ({ group = "default", id, overwrite, priority, ...args }) => {
363 if (!menuGroups.includes(group)) {
364 return;
365 }
366 const useProps = "props" in args ? () => args.props : args.useProps;
367 const Component = component;
368 const InjectedComponent = (props) => {
369 const componentProps = useProps();
370 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(Component, { ...props, ...componentProps });
371 };
372 locations[group].inject({
373 id,
374 component: InjectedComponent,
375 options: {
376 priority,
377 overwrite
378 }
379 });
380 };
381 }
382 function createUseMenuItems(locations) {
383 return () => {
384 return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {
385 return Object.entries(locations).reduce(
386 (carry, [groupName, location]) => {
387 const items = location.getInjections().map((injection) => ({
388 id: injection.id,
389 MenuItem: injection.component
390 }));
391 return {
392 ...carry,
393 [groupName]: items
394 };
395 },
396 {}
397 );
398 }, []);
399 };
400 }
401
402 // src/locations/index.ts
403
404 var {
405 inject: injectIntoPageIndication,
406 Slot: PageIndicationSlot
407 } = (0,_elementor_locations__WEBPACK_IMPORTED_MODULE_1__.createLocation)();
408 var {
409 inject: injectIntoResponsive,
410 Slot: ResponsiveSlot
411 } = (0,_elementor_locations__WEBPACK_IMPORTED_MODULE_1__.createLocation)();
412 var {
413 inject: injectIntoPrimaryAction,
414 Slot: PrimaryActionSlot
415 } = (0,_elementor_locations__WEBPACK_IMPORTED_MODULE_1__.createLocation)();
416 var mainMenu = createMenu(["exits"]);
417 var toolsMenu = createMenu();
418 var utilitiesMenu = createMenu();
419 var integrationsMenu = createMenu();
420 var documentOptionsMenu = createMenu(["save"]);
421
422 // src/components/app-bar.tsx
423
424
425
426 // src/components/locations/main-menu-location.tsx
427
428
429
430 // src/components/ui/popover-menu.tsx
431
432
433 function PopoverMenu({ children, ...props }) {
434 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(MenuContextProvider, { type: "popover" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(
435 _elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Menu,
436 {
437 PaperProps: {
438 sx: { mt: 1.5 }
439 },
440 ...props,
441 MenuListProps: {
442 component: "div",
443 dense: true
444 }
445 },
446 children
447 ));
448 }
449
450 // src/components/ui/toolbar-logo.tsx
451
452
453
454
455 var ElementorLogo = (props) => {
456 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.SvgIcon, { viewBox: "0 0 32 32", ...props }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("g", null, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("circle", { cx: "16", cy: "16", r: "16" }), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", { d: "M11.7 9H9V22.3H11.7V9Z" }), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", { d: "M22.4 9H9V11.7H22.4V9Z" }), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", { d: "M22.4 14.4004H9V17.1004H22.4V14.4004Z" }), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", { d: "M22.4 19.6992H9V22.3992H22.4V19.6992Z" })));
457 };
458 var StyledToggleButton = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.styled)(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.ToggleButton)(({ theme }) => ({
459 padding: 0,
460 border: 0,
461 color: theme.palette.text.primary,
462 "&.MuiToggleButton-root:hover": {
463 backgroundColor: "initial"
464 },
465 "&.MuiToggleButton-root.Mui-selected": {
466 backgroundColor: "initial"
467 }
468 }));
469 var StyledElementorLogo = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.styled)(ElementorLogo, {
470 shouldForwardProp: (prop) => prop !== "showMenuIcon"
471 })(({ theme, showMenuIcon }) => ({
472 "& path": {
473 fill: theme.palette.background.default,
474 transition: "all 0.2s linear",
475 transformOrigin: "bottom left",
476 "&:first-of-type": {
477 transitionDelay: !showMenuIcon && "0.2s",
478 transform: showMenuIcon && "translateY(-9px) scaleY(0)"
479 },
480 "&:not(:first-of-type)": {
481 // Emotion automatically change 4 to -4 in RTL moode.
482 transform: !showMenuIcon && `translateX(${theme.direction === "rtl" ? "4" : "9"}px) scaleX(0.6)`
483 },
484 "&:nth-of-type(2)": {
485 transitionDelay: showMenuIcon ? "0" : "0.2s"
486 },
487 "&:nth-of-type(3)": {
488 transitionDelay: "0.1s"
489 },
490 "&:nth-of-type(4)": {
491 transitionDelay: showMenuIcon ? "0.2s" : "0"
492 }
493 }
494 }));
495 function ToolbarLogo(props) {
496 const [isHoverState, setIsHoverState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
497 const showMenuIcon = props.selected || isHoverState;
498 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(
499 StyledToggleButton,
500 {
501 ...props,
502 value: "selected",
503 size: "large",
504 onMouseEnter: () => setIsHoverState(true),
505 onMouseLeave: () => setIsHoverState(false)
506 },
507 /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(
508 StyledElementorLogo,
509 {
510 fontSize: "large",
511 showMenuIcon,
512 titleAccess: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Elementor Logo", "elementor")
513 }
514 )
515 );
516 }
517
518 // src/components/locations/integrations-menu-location.tsx
519
520
521
522
523
524 // src/components/ui/popover-sub-menu.tsx
525
526
527 function PopoverSubMenu({ children, ...props }) {
528 const theme = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.useTheme)();
529 const isRTL = theme.direction === "rtl";
530 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(
531 PopoverMenu,
532 {
533 sx: { pointerEvents: "none" },
534 PaperProps: {
535 sx: {
536 // This is a workaround to support RTL in PopoverMenu, since it doesn't support it yet.
537 ...isRTL ? { marginInlineEnd: -2 } : { marginInlineStart: 2 },
538 pointerEvents: "auto"
539 }
540 },
541 anchorOrigin: { vertical: "center", horizontal: isRTL ? "left" : "right" },
542 transformOrigin: { vertical: "center", horizontal: isRTL ? "right" : "left" },
543 ...props
544 },
545 children
546 );
547 }
548
549 // src/components/locations/integrations-menu-location.tsx
550 var { useMenuItems } = integrationsMenu;
551 var DirectionalChevronIcon = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.withDirection)(_elementor_icons__WEBPACK_IMPORTED_MODULE_3__.ChevronRightIcon);
552 function IntegrationsMenuLocation({ parentPopupState }) {
553 const menuItems = useMenuItems();
554 const popupState = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.usePopupState)({
555 parentPopupState,
556 variant: "popover",
557 popupId: "elementor-v2-app-bar-integrations"
558 });
559 if (menuItems.default.length === 0) {
560 return null;
561 }
562 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Divider, null), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(
563 _elementor_ui__WEBPACK_IMPORTED_MODULE_2__.MenuItem,
564 {
565 ...(0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.bindHover)(popupState),
566 ...(0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.bindFocus)(popupState)
567 },
568 /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.ListItemIcon, null, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_3__.PlugIcon, null)),
569 /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.ListItemText, { primary: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Integrations", "elementor") }),
570 /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(DirectionalChevronIcon, null),
571 /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(PopoverSubMenu, { ...(0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.bindMenu)(popupState), onClick: popupState.close }, menuItems.default.map(
572 ({ MenuItem: IntegrationsMenuItem, id }) => /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(IntegrationsMenuItem, { key: id })
573 ))
574 ));
575 }
576
577 // src/components/locations/main-menu-location.tsx
578 var { useMenuItems: useMenuItems2 } = mainMenu;
579 function MainMenuLocation() {
580 const menuItems = useMenuItems2();
581 const popupState = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.usePopupState)({
582 variant: "popover",
583 popupId: "elementor-v2-app-bar-main-menu"
584 });
585 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Stack, { sx: { paddingInlineStart: 3 }, direction: "row", alignItems: "center" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(
586 ToolbarLogo,
587 {
588 ...(0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.bindTrigger)(popupState),
589 selected: popupState.isOpen
590 }
591 ), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(
592 PopoverMenu,
593 {
594 onClick: popupState.close,
595 ...(0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.bindMenu)(popupState),
596 marginThreshold: 8
597 },
598 menuItems.default.map(({ MenuItem: MenuItem3, id }) => /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(MenuItem3, { key: id })),
599 /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(IntegrationsMenuLocation, { key: "integrations-location", parentPopupState: popupState }),
600 menuItems.exits.length > 0 && /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Divider, null),
601 menuItems.exits.map(({ MenuItem: MenuItem3, id }) => /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(MenuItem3, { key: id }))
602 ));
603 }
604
605 // src/components/locations/tools-menu-location.tsx
606
607
608 // src/components/ui/toolbar-menu.tsx
609
610
611 function ToolbarMenu({ children, ...props }) {
612 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(MenuContextProvider, { type: "toolbar" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Stack, { sx: { px: 1.5 }, spacing: 1.5, direction: "row", alignItems: "center", ...props }, children));
613 }
614
615 // src/components/ui/toolbar-menu-more.tsx
616
617
618
619
620 function ToolbarMenuMore({ children, id }) {
621 const popupState = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.usePopupState)({
622 variant: "popover",
623 popupId: id
624 });
625 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(ToolbarMenuItem, { ...(0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.bindTrigger)(popupState), title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("More", "elementor") }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_3__.DotsVerticalIcon, null)), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(PopoverMenu, { onClick: popupState.close, ...(0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.bindMenu)(popupState) }, children));
626 }
627
628 // src/components/locations/tools-menu-location.tsx
629 var MAX_TOOLBAR_ACTIONS = 5;
630 var { useMenuItems: useMenuItems3 } = toolsMenu;
631 function ToolsMenuLocation() {
632 const menuItems = useMenuItems3();
633 const toolbarMenuItems = menuItems.default.slice(0, MAX_TOOLBAR_ACTIONS);
634 const popoverMenuItems = menuItems.default.slice(MAX_TOOLBAR_ACTIONS);
635 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(ToolbarMenu, null, toolbarMenuItems.map(({ MenuItem: MenuItem3, id }) => /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(MenuItem3, { key: id })), popoverMenuItems.length > 0 && /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(ToolbarMenuMore, { id: "elementor-editor-app-bar-tools-more" }, popoverMenuItems.map(({ MenuItem: MenuItem3, id }) => /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(MenuItem3, { key: id }))));
636 }
637
638 // src/components/locations/utilities-menu-location.tsx
639
640
641
642 var MAX_TOOLBAR_ACTIONS2 = 3;
643 var { useMenuItems: useMenuItems4 } = utilitiesMenu;
644 function UtilitiesMenuLocation() {
645 const menuItems = useMenuItems4();
646 const toolbarMenuItems = menuItems.default.slice(0, MAX_TOOLBAR_ACTIONS2);
647 const popoverMenuItems = menuItems.default.slice(MAX_TOOLBAR_ACTIONS2);
648 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(ToolbarMenu, null, toolbarMenuItems.map(
649 ({ MenuItem: MenuItem3, id }, index) => /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, { key: id }, index === 0 && /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Divider, { orientation: "vertical" }), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(MenuItem3, null))
650 ), popoverMenuItems.length > 0 && /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(ToolbarMenuMore, { id: "elementor-editor-app-bar-utilities-more" }, popoverMenuItems.map(({ MenuItem: MenuItem3, id }) => /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(MenuItem3, { key: id }))));
651 }
652
653 // src/components/locations/primary-action-location.tsx
654
655 function PrimaryActionLocation() {
656 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(PrimaryActionSlot, null);
657 }
658
659 // src/components/locations/page-indication-location.tsx
660
661 function PageIndicationLocation() {
662 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(PageIndicationSlot, null);
663 }
664
665 // src/components/locations/responsive-location.tsx
666
667 function ResponsiveLocation() {
668 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(ResponsiveSlot, null);
669 }
670
671 // src/components/app-bar.tsx
672 function AppBar() {
673 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.ThemeProvider, { colorScheme: "dark" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.AppBar, { position: "sticky" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Box, { display: "grid", gridTemplateColumns: "repeat(3, 1fr)" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Grid, { container: true }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(MainMenuLocation, null), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(ToolsMenuLocation, null)), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Grid, { container: true, justifyContent: "center" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(ToolbarMenu, { spacing: 1.5 }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Divider, { orientation: "vertical" }), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(PageIndicationLocation, null), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Divider, { orientation: "vertical" }), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(ResponsiveLocation, null), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Divider, { orientation: "vertical" }))), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Grid, { container: true, justifyContent: "flex-end" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(UtilitiesMenuLocation, null), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(PrimaryActionLocation, null)))));
674 }
675
676 // src/init.ts
677
678
679 // src/sync/redirect-old-menus.ts
680
681 function redirectOldMenus() {
682 (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.__privateListenTo)((0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.routeOpenEvent)("panel/menu"), () => {
683 (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.__privateOpenRoute)("panel/elements/categories");
684 });
685 }
686
687 // src/extensions/documents-indicator/components/settings-button.tsx
688
689
690
691
692
693
694 function SettingsButton() {
695 const activeDocument = (0,_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_7__.__useActiveDocument)();
696 const hostDocument = (0,_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_7__.__useHostDocument)();
697 const document2 = activeDocument && activeDocument.type.value !== "kit" ? activeDocument : hostDocument;
698 const { isActive, isBlocked } = (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.__privateUseRouteStatus)("panel/page-settings");
699 if (!document2) {
700 return null;
701 }
702 const title = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("%s Settings", "elementor").replace("%s", document2.type.label);
703 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(Tooltip3, { title }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Box, { component: "span", "aria-label": void 0 }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(
704 _elementor_ui__WEBPACK_IMPORTED_MODULE_2__.ToggleButton,
705 {
706 value: "document-settings",
707 selected: isActive,
708 disabled: isBlocked,
709 onChange: () => (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.__privateOpenRoute)("panel/page-settings/settings"),
710 "aria-label": title,
711 size: "small",
712 sx: {
713 border: 0,
714 // Temp fix until the style of the ToggleButton component will be decided.
715 "&.Mui-disabled": {
716 border: 0
717 // Temp fix until the style of the ToggleButton component will be decided.
718 }
719 }
720 },
721 /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_3__.SettingsIcon, { fontSize: "small" })
722 )));
723 }
724 function Tooltip3(props) {
725 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(
726 _elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Tooltip,
727 {
728 PopperProps: {
729 sx: {
730 "&.MuiTooltip-popper .MuiTooltip-tooltip.MuiTooltip-tooltipPlacementBottom": {
731 mt: 1.7
732 }
733 }
734 },
735 ...props
736 }
737 );
738 }
739
740 // src/extensions/documents-indicator/index.ts
741 function init() {
742 injectIntoPageIndication({
743 id: "document-settings-button",
744 component: SettingsButton,
745 options: {
746 priority: 20
747 // After document indicator.
748 }
749 });
750 }
751
752 // src/extensions/documents-preview/hooks/use-action-props.ts
753
754
755
756
757 function useActionProps() {
758 const document2 = (0,_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_7__.__useActiveDocument)();
759 return {
760 icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_3__.EyeIcon,
761 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Preview Changes", "elementor"),
762 onClick: () => document2 && (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.__privateRunCommand)("editor/documents/preview", {
763 id: document2.id,
764 force: true
765 })
766 };
767 }
768
769 // src/extensions/documents-preview/index.ts
770 function init2() {
771 utilitiesMenu.registerAction({
772 id: "document-preview-button",
773 priority: 30,
774 // After help.
775 useProps: useActionProps
776 });
777 }
778
779 // src/extensions/documents-save/hooks/use-document-save-draft-props.ts
780
781
782
783 function useDocumentSaveDraftProps() {
784 const document2 = (0,_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_7__.__useActiveDocument)();
785 const { saveDraft } = (0,_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_7__.__useActiveDocumentActions)();
786 return {
787 icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_3__.FileReportIcon,
788 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Save Draft", "elementor"),
789 onClick: saveDraft,
790 disabled: !document2 || document2.isSaving || document2.isSavingDraft || !document2.isDirty
791 };
792 }
793
794 // src/extensions/documents-save/hooks/use-document-save-template-props.ts
795
796
797
798 function useDocumentSaveTemplateProps() {
799 const { saveTemplate } = (0,_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_7__.__useActiveDocumentActions)();
800 return {
801 icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_3__.FolderIcon,
802 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Save as Template", "elementor"),
803 onClick: saveTemplate
804 };
805 }
806
807 // src/extensions/documents-save/components/primary-action.tsx
808
809
810
811 // src/extensions/documents-save/components/primary-action-menu.tsx
812
813
814 var { useMenuItems: useMenuItems5 } = documentOptionsMenu;
815 var StyledPopoverMenu = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.styled)(PopoverMenu)`
816 & > .MuiPopover-paper > .MuiList-root > .MuiDivider-root {
817 &:only-child, /* A divider is being rendered lonely */
818 &:last-child, /* The last group renders empty but renders a divider */
819 & + .MuiDivider-root /* Multiple dividers due to multiple empty groups */ {
820 display: none;
821 }
822 }
823 `;
824 function PrimaryActionMenu(props) {
825 const { save: saveActions, default: defaultActions } = useMenuItems5();
826 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(
827 StyledPopoverMenu,
828 {
829 ...props,
830 anchorOrigin: {
831 vertical: "bottom",
832 horizontal: "right"
833 },
834 transformOrigin: {
835 vertical: "top",
836 horizontal: "right"
837 },
838 marginThreshold: 4,
839 PaperProps: {
840 sx: { mt: 0.5 }
841 }
842 },
843 saveActions.map(({ MenuItem: MenuItem3, id }, index) => [
844 index > 0 && /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Divider, { key: `${id}-divider` }),
845 /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(MenuItem3, { key: id })
846 ]),
847 defaultActions.length > 0 && /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Divider, null),
848 defaultActions.map(({ MenuItem: MenuItem3, id }) => /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(MenuItem3, { key: id }))
849 );
850 }
851
852 // src/extensions/documents-save/components/primary-action.tsx
853
854
855
856
857 function PrimaryAction() {
858 const document2 = (0,_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_7__.__useActiveDocument)();
859 const { save } = (0,_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_7__.__useActiveDocumentActions)();
860 const isPreviewMode = (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.__privateUseIsPreviewMode)();
861 const popupState = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.usePopupState)({
862 variant: "popover",
863 popupId: "document-save-options"
864 });
865 if (!document2) {
866 return null;
867 }
868 const isPublishDisabled = isPreviewMode || !isPublishEnabled(document2);
869 const isSaveOptionsDisabled = isPreviewMode || document2.type.value === "kit";
870 const shouldShowSpinner = document2.isSaving && !isPublishDisabled;
871 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.ButtonGroup, { size: "large", variant: "contained" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(
872 _elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Button,
873 {
874 onClick: () => !document2.isSaving && save(),
875 sx: {
876 height: "100%",
877 borderRadius: 0,
878 maxWidth: "158px",
879 "&.MuiButtonBase-root.MuiButtonGroup-grouped": {
880 minWidth: "110px"
881 }
882 },
883 disabled: isPublishDisabled
884 },
885 shouldShowSpinner ? /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.CircularProgress, { color: "inherit", size: "1.5em" }) : getLabel(document2)
886 ), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(
887 _elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Tooltip,
888 {
889 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Save Options", "elementor"),
890 PopperProps: {
891 sx: {
892 "&.MuiTooltip-popper .MuiTooltip-tooltip.MuiTooltip-tooltipPlacementBottom": {
893 mt: 1,
894 mr: 0.25
895 }
896 }
897 }
898 },
899 /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Box, { component: "span", "aria-label": void 0 }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(
900 _elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Button,
901 {
902 size: "small",
903 ...(0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.bindTrigger)(popupState),
904 sx: { px: 0, height: "100%", borderRadius: 0 },
905 disabled: isSaveOptionsDisabled,
906 "aria-label": (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Save Options", "elementor")
907 },
908 /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_3__.ChevronDownIcon, null)
909 ))
910 )), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(PrimaryActionMenu, { ...(0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.bindMenu)(popupState), onClick: popupState.close }));
911 }
912 function getLabel(document2) {
913 return document2.userCan.publish ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Publish", "elementor") : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Submit", "elementor");
914 }
915 function isPublishEnabled(document2) {
916 if (document2.type.value === "kit") {
917 return false;
918 }
919 return document2.isDirty || document2.status.value === "draft";
920 }
921
922 // src/extensions/documents-save/index.ts
923 function init3() {
924 injectIntoPrimaryAction({
925 id: "document-primary-action",
926 component: PrimaryAction
927 });
928 documentOptionsMenu.registerAction({
929 group: "save",
930 id: "document-save-draft",
931 priority: 10,
932 // Before save as template.
933 useProps: useDocumentSaveDraftProps
934 });
935 documentOptionsMenu.registerAction({
936 group: "save",
937 id: "document-save-as-template",
938 priority: 20,
939 // After save draft.
940 useProps: useDocumentSaveTemplateProps
941 });
942 }
943
944 // src/extensions/elements/sync/sync-panel-title.ts
945
946
947 function syncPanelTitle() {
948 const panelTitle = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Elements", "elementor");
949 const tabTitle = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Widgets", "elementor");
950 (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.__privateListenTo)(
951 (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.routeOpenEvent)("panel/elements"),
952 () => {
953 setPanelTitle(panelTitle);
954 setTabTitle(tabTitle);
955 }
956 );
957 (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.__privateListenTo)(
958 (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.v1ReadyEvent)(),
959 () => {
960 if ((0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.__privateIsRouteActive)("panel/elements")) {
961 setPanelTitle(panelTitle);
962 setTabTitle(tabTitle);
963 }
964 }
965 );
966 }
967 function setPanelTitle(title) {
968 window.elementor?.getPanelView?.()?.getHeaderView?.()?.setTitle?.(title);
969 }
970 function setTabTitle(title) {
971 const tab = document.querySelector('.elementor-component-tab[data-tab="categories"]');
972 if (tab) {
973 tab.textContent = title;
974 }
975 }
976
977 // src/extensions/elements/hooks/use-action-props.ts
978
979
980
981 function useActionProps2() {
982 const { isActive, isBlocked } = (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.__privateUseRouteStatus)("panel/elements");
983 return {
984 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Add Element", "elementor"),
985 icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_3__.PlusIcon,
986 onClick: () => (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.__privateOpenRoute)("panel/elements/categories"),
987 selected: isActive,
988 disabled: isBlocked
989 };
990 }
991
992 // src/extensions/elements/index.ts
993 function init4() {
994 syncPanelTitle();
995 toolsMenu.registerToggleAction({
996 id: "open-elements-panel",
997 priority: 1,
998 useProps: useActionProps2
999 });
1000 }
1001
1002 // src/extensions/finder/hooks/use-action-props.ts
1003
1004
1005
1006 function useActionProps3() {
1007 const { isBlocked } = (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.__privateUseRouteStatus)("finder", {
1008 blockOnKitRoutes: false,
1009 blockOnPreviewMode: false
1010 });
1011 return {
1012 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Finder", "elementor"),
1013 icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_3__.SearchIcon,
1014 onClick: () => (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.__privateRunCommand)("finder/toggle"),
1015 disabled: isBlocked
1016 };
1017 }
1018
1019 // src/extensions/finder/index.ts
1020 function init5() {
1021 utilitiesMenu.registerAction({
1022 id: "toggle-finder",
1023 priority: 10,
1024 // Before help.
1025 useProps: useActionProps3
1026 });
1027 }
1028
1029 // src/extensions/help/index.ts
1030
1031
1032 function init6() {
1033 utilitiesMenu.registerLink({
1034 id: "open-help-center",
1035 priority: 20,
1036 // After Finder.
1037 useProps: () => {
1038 return {
1039 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Help", "elementor"),
1040 href: "https://go.elementor.com/editor-top-bar-learn/",
1041 icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_3__.HelpIcon,
1042 target: "_blank"
1043 };
1044 }
1045 });
1046 }
1047
1048 // src/extensions/history/hooks/use-action-props.ts
1049
1050
1051
1052 function useActionProps4() {
1053 const { isActive, isBlocked } = (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.__privateUseRouteStatus)("panel/history");
1054 return {
1055 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("History", "elementor"),
1056 icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_3__.HistoryIcon,
1057 onClick: () => (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.__privateOpenRoute)("panel/history/actions"),
1058 selected: isActive,
1059 disabled: isBlocked
1060 };
1061 }
1062
1063 // src/extensions/history/index.ts
1064 function init7() {
1065 mainMenu.registerToggleAction({
1066 id: "open-history",
1067 priority: 20,
1068 useProps: useActionProps4
1069 });
1070 }
1071
1072 // src/extensions/keyboard-shortcuts/hooks/use-action-props.ts
1073
1074
1075
1076 function useActionProps5() {
1077 return {
1078 icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_3__.KeyboardIcon,
1079 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Keyboard Shortcuts", "elementor"),
1080 onClick: () => (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.__privateRunCommand)("shortcuts/open")
1081 };
1082 }
1083
1084 // src/extensions/keyboard-shortcuts/index.ts
1085 function init8() {
1086 mainMenu.registerAction({
1087 id: "open-keyboard-shortcuts",
1088 group: "default",
1089 priority: 40,
1090 // After user preferences.
1091 useProps: useActionProps5
1092 });
1093 }
1094
1095 // src/extensions/site-settings/index.ts
1096
1097
1098 // src/extensions/site-settings/components/portalled-primary-action.tsx
1099
1100
1101 // src/extensions/site-settings/components/portal.tsx
1102
1103
1104
1105 function Portal(props) {
1106 const containerRef = (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.__privateUseListenTo)(
1107 [
1108 (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.routeOpenEvent)("panel/global"),
1109 (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.routeCloseEvent)("panel/global")
1110 ],
1111 getContainerRef
1112 );
1113 if (!containerRef.current) {
1114 return null;
1115 }
1116 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Portal, { container: containerRef.current, ...props });
1117 }
1118 function getContainerRef() {
1119 return (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.__privateIsRouteActive)("panel/global") ? { current: document.querySelector("#elementor-panel-inner") } : { current: null };
1120 }
1121
1122 // src/extensions/site-settings/components/primary-action.tsx
1123
1124
1125
1126
1127 function PrimaryAction2() {
1128 const document2 = (0,_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_7__.__useActiveDocument)();
1129 const { save } = (0,_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_7__.__useActiveDocumentActions)();
1130 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Paper, { sx: {
1131 px: 5,
1132 py: 4,
1133 borderTop: 1,
1134 borderColor: "divider"
1135 } }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(
1136 _elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Button,
1137 {
1138 variant: "contained",
1139 disabled: !document2 || !document2.isDirty,
1140 size: "medium",
1141 sx: { width: "100%" },
1142 onClick: () => document2 && !document2.isSaving ? save() : null
1143 },
1144 document2?.isSaving ? /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.CircularProgress, null) : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Save Changes", "elementor")
1145 ));
1146 }
1147
1148 // src/extensions/site-settings/components/portalled-primary-action.tsx
1149 function PortalledPrimaryAction() {
1150 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(Portal, null, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(PrimaryAction2, null));
1151 }
1152
1153 // src/extensions/site-settings/hooks/use-action-props.ts
1154
1155
1156
1157 function useActionProps6() {
1158 const { isActive, isBlocked } = (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.__privateUseRouteStatus)("panel/global", {
1159 blockOnKitRoutes: false
1160 });
1161 return {
1162 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Site Settings", "elementor"),
1163 icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_3__.AdjustmentsHorizontalIcon,
1164 onClick: () => isActive ? (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.__privateRunCommand)("panel/global/close") : (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.__privateRunCommand)("panel/global/open"),
1165 selected: isActive,
1166 disabled: isBlocked
1167 };
1168 }
1169
1170 // src/extensions/site-settings/index.ts
1171 function init9() {
1172 (0,_elementor_editor__WEBPACK_IMPORTED_MODULE_5__.injectIntoTop)({
1173 id: "site-settings-primary-action-portal",
1174 component: PortalledPrimaryAction
1175 });
1176 toolsMenu.registerToggleAction({
1177 id: "toggle-site-settings",
1178 priority: 2,
1179 useProps: useActionProps6
1180 });
1181 }
1182
1183 // src/extensions/structure/hooks/use-action-props.ts
1184
1185
1186
1187 function useActionProps7() {
1188 const { isActive, isBlocked } = (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.__privateUseRouteStatus)("navigator");
1189 return {
1190 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Structure", "elementor"),
1191 icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_3__.StructureIcon,
1192 onClick: () => (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.__privateRunCommand)("navigator/toggle"),
1193 selected: isActive,
1194 disabled: isBlocked
1195 };
1196 }
1197
1198 // src/extensions/structure/index.ts
1199 function init10() {
1200 toolsMenu.registerToggleAction({
1201 id: "toggle-structure-view",
1202 priority: 3,
1203 useProps: useActionProps7
1204 });
1205 }
1206
1207 // src/extensions/theme-builder/hooks/use-action-props.ts
1208
1209
1210
1211 function useActionProps8() {
1212 return {
1213 icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_3__.ThemeBuilderIcon,
1214 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Theme Builder", "elementor"),
1215 onClick: () => (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.__privateRunCommand)("app/open")
1216 };
1217 }
1218
1219 // src/extensions/theme-builder/index.ts
1220 function init11() {
1221 mainMenu.registerAction({
1222 id: "open-theme-builder",
1223 useProps: useActionProps8
1224 });
1225 }
1226
1227 // src/extensions/user-preferences/hooks/use-action-props.ts
1228
1229
1230
1231 function useActionProps9() {
1232 const { isActive, isBlocked } = (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.__privateUseRouteStatus)("panel/editor-preferences");
1233 return {
1234 icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_3__.ToggleRightIcon,
1235 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("User Preferences", "elementor"),
1236 onClick: () => (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.__privateOpenRoute)("panel/editor-preferences"),
1237 selected: isActive,
1238 disabled: isBlocked
1239 };
1240 }
1241
1242 // src/extensions/user-preferences/index.ts
1243 function init12() {
1244 mainMenu.registerToggleAction({
1245 id: "open-user-preferences",
1246 priority: 30,
1247 // After history.
1248 useProps: useActionProps9
1249 });
1250 }
1251
1252 // src/extensions/wordpress/index.ts
1253
1254
1255
1256 function init13() {
1257 mainMenu.registerLink({
1258 id: "exit-to-wordpress",
1259 group: "exits",
1260 useProps: () => {
1261 const document2 = (0,_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_7__.__useActiveDocument)();
1262 return {
1263 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Exit to WordPress", "elementor"),
1264 href: document2?.links?.platformEdit,
1265 icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_3__.WordpressIcon
1266 };
1267 }
1268 });
1269 }
1270
1271 // src/extensions/index.ts
1272 function init14() {
1273 init();
1274 init2();
1275 init3();
1276 init4();
1277 init5();
1278 init6();
1279 init7();
1280 init8();
1281 init9();
1282 init10();
1283 init11();
1284 init12();
1285 init13();
1286 }
1287
1288 // src/init.ts
1289 function init15() {
1290 redirectOldMenus();
1291 init14();
1292 (0,_elementor_editor__WEBPACK_IMPORTED_MODULE_5__.injectIntoTop)({
1293 id: "app-bar",
1294 component: AppBar
1295 });
1296 }
1297
1298 // src/index.ts
1299 init15();
1300
1301 //# sourceMappingURL=index.mjs.map
1302 }();
1303 (window.elementorV2 = window.elementorV2 || {}).editorAppBar = __webpack_exports__;
1304 /******/ })()
1305 ;