PluginProbe
Elementor Website Builder – more than just a page builder / 3.18.2
Elementor Website Builder – more than just a page builder v3.18.2
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.18.2, at assets/js/packages/editor-app-bar/editor-app-bar.js

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