PluginProbe
Elementor Website Builder – more than just a page builder / 3.14.0-beta5
Elementor Website Builder – more than just a page builder v3.14.0-beta5
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 4.1.0-beta2 4.1.0-dev2 All 455 releases
elementor / assets / js / packages / editor-app-bar.js

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

1,157 lines 44.7 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 ["__UNSTABLE__elementorPackages","editor"] ***!
18 \***********************************************************/
19 /***/ (function(module) {
20
21 module.exports = window["__UNSTABLE__elementorPackages"]["editor"];
22
23 /***/ }),
24
25 /***/ "@elementor/editor-documents":
26 /*!********************************************************************!*\
27 !*** external ["__UNSTABLE__elementorPackages","editorDocuments"] ***!
28 \********************************************************************/
29 /***/ (function(module) {
30
31 module.exports = window["__UNSTABLE__elementorPackages"]["editorDocuments"];
32
33 /***/ }),
34
35 /***/ "@elementor/editor-v1-adapters":
36 /*!*********************************************************************!*\
37 !*** external ["__UNSTABLE__elementorPackages","editorV1Adapters"] ***!
38 \*********************************************************************/
39 /***/ (function(module) {
40
41 module.exports = window["__UNSTABLE__elementorPackages"]["editorV1Adapters"];
42
43 /***/ }),
44
45 /***/ "@elementor/icons":
46 /*!**********************************************************!*\
47 !*** external ["__UNSTABLE__elementorPackages","icons"] ***!
48 \**********************************************************/
49 /***/ (function(module) {
50
51 module.exports = window["__UNSTABLE__elementorPackages"]["icons"];
52
53 /***/ }),
54
55 /***/ "@elementor/locations":
56 /*!**************************************************************!*\
57 !*** external ["__UNSTABLE__elementorPackages","locations"] ***!
58 \**************************************************************/
59 /***/ (function(module) {
60
61 module.exports = window["__UNSTABLE__elementorPackages"]["locations"];
62
63 /***/ }),
64
65 /***/ "@elementor/ui":
66 /*!*******************************************************!*\
67 !*** external ["__UNSTABLE__elementorPackages","ui"] ***!
68 \*******************************************************/
69 /***/ (function(module) {
70
71 module.exports = window["__UNSTABLE__elementorPackages"]["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 */ "mainMenu": function() { return /* binding */ mainMenu; },
154 /* harmony export */ "toolsMenu": function() { return /* binding */ toolsMenu; },
155 /* harmony export */ "utilitiesMenu": function() { return /* binding */ utilitiesMenu; }
156 /* harmony export */ });
157 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
158 /* harmony import */ var _elementor_locations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/locations */ "@elementor/locations");
159 /* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
160 /* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
161 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
162 /* harmony import */ var _elementor_editor__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @elementor/editor */ "@elementor/editor");
163 /* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters");
164 /* harmony import */ var _elementor_editor_documents__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @elementor/editor-documents */ "@elementor/editor-documents");
165 // src/locations/menus.tsx
166
167
168
169
170 // src/components/actions/action.tsx
171
172
173 // src/contexts/menu-context.tsx
174
175
176 var MenuContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({ type: "toolbar" });
177 function MenuContextProvider({ type, children }) {
178 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(MenuContext.Provider, { value: { type } }, children);
179 }
180 function useMenuContext() {
181 return (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(MenuContext);
182 }
183
184 // src/components/ui/toolbar-menu-item.tsx
185
186
187 function ToolbarMenuItem({ title, ...props }) {
188 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(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.IconButton, { ...props, "aria-label": title, size: "small" })));
189 }
190
191 // src/components/ui/popover-menu-item.tsx
192
193
194
195 var DirectionalArrowIcon = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.withDirection)(_elementor_icons__WEBPACK_IMPORTED_MODULE_3__.ArrowUpRightIcon);
196 function PopoverMenuItem({ text, icon, onClick, href, target, disabled, ...props }) {
197 const isExternalLink = href && target === "_blank";
198 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(
199 _elementor_ui__WEBPACK_IMPORTED_MODULE_2__.MenuItem,
200 {
201 ...props,
202 disabled,
203 onClick,
204 component: href ? "a" : "div",
205 href,
206 target
207 },
208 /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.ListItemIcon, null, icon),
209 /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.ListItemText, { primary: text }),
210 isExternalLink && /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(DirectionalArrowIcon, null)
211 );
212 }
213
214 // src/components/actions/action.tsx
215 function Action({ icon: Icon, title, visible = true, ...props }) {
216 const { type } = useMenuContext();
217 if (!visible) {
218 return null;
219 }
220 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(
221 PopoverMenuItem,
222 {
223 ...props,
224 text: title,
225 icon: /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(Icon, null)
226 }
227 );
228 }
229
230 // src/components/actions/toggle-action.tsx
231
232
233 // src/components/ui/toolbar-menu-toggle-item.tsx
234
235
236 function ToolbarMenuToggleItem({ title, onClick, ...props }) {
237 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(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.ToggleButton, { ...props, onChange: onClick, "aria-label": title, size: "small" })));
238 }
239
240 // src/components/actions/toggle-action.tsx
241 function ToggleAction({ icon: Icon, title, value, visible = true, ...props }) {
242 const { type } = useMenuContext();
243 if (!visible) {
244 return null;
245 }
246 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(
247 PopoverMenuItem,
248 {
249 ...props,
250 text: title,
251 icon: /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(Icon, null)
252 }
253 );
254 }
255
256 // src/components/actions/link.tsx
257
258 function Link({ icon: Icon, title, visible = true, ...props }) {
259 const { type } = useMenuContext();
260 if (!visible) {
261 return null;
262 }
263 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(
264 PopoverMenuItem,
265 {
266 ...props,
267 text: title,
268 icon: /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(Icon, null)
269 }
270 );
271 }
272
273 // src/locations/menus.tsx
274 function createMenu(groups = []) {
275 const menuGroups = [
276 ...groups,
277 "default"
278 ];
279 const locations = menuGroups.reduce(
280 (carry, group) => ({
281 ...carry,
282 [group]: (0,_elementor_locations__WEBPACK_IMPORTED_MODULE_1__.createLocation)()
283 }),
284 {}
285 );
286 const [
287 registerAction,
288 registerToggleAction,
289 registerLink
290 ] = [Action, ToggleAction, Link].map(
291 (Component) => createRegisterMenuItem({
292 locations,
293 menuGroups,
294 component: Component
295 })
296 );
297 const useMenuItems5 = createUseMenuItems(locations);
298 return {
299 registerAction,
300 registerToggleAction,
301 registerLink,
302 useMenuItems: useMenuItems5
303 };
304 }
305 function createRegisterMenuItem({ locations, menuGroups, component }) {
306 return ({ group = "default", id, overwrite, priority, ...args }) => {
307 if (!menuGroups.includes(group)) {
308 return;
309 }
310 const useProps = "props" in args ? () => args.props : args.useProps;
311 const Component = component;
312 const Filler = (props) => {
313 const componentProps = useProps();
314 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(Component, { ...props, ...componentProps });
315 };
316 locations[group].inject({
317 id,
318 filler: Filler,
319 options: {
320 priority,
321 overwrite
322 }
323 });
324 };
325 }
326 function createUseMenuItems(locations) {
327 return () => {
328 return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {
329 return Object.entries(locations).reduce(
330 (carry, [groupName, location]) => {
331 const items = location.getInjections().map((injection) => ({
332 id: injection.id,
333 MenuItem: injection.filler
334 }));
335 return {
336 ...carry,
337 [groupName]: items
338 };
339 },
340 {}
341 );
342 }, []);
343 };
344 }
345
346 // src/locations/index.ts
347
348 var {
349 inject: injectIntoPageIndication,
350 Slot: PageIndicationSlot
351 } = (0,_elementor_locations__WEBPACK_IMPORTED_MODULE_1__.createLocation)();
352 var {
353 inject: injectIntoResponsive,
354 Slot: ResponsiveSlot
355 } = (0,_elementor_locations__WEBPACK_IMPORTED_MODULE_1__.createLocation)();
356 var {
357 inject: injectIntoPrimaryAction,
358 Slot: PrimaryActionSlot
359 } = (0,_elementor_locations__WEBPACK_IMPORTED_MODULE_1__.createLocation)();
360 var mainMenu = createMenu(["exits"]);
361 var toolsMenu = createMenu();
362 var utilitiesMenu = createMenu();
363 var documentOptionsMenu = createMenu(["save"]);
364
365 // src/components/app-bar.tsx
366
367
368
369 // src/components/locations/main-menu-location.tsx
370
371
372
373 // src/components/ui/popover-menu.tsx
374
375
376 function PopoverMenu({ children, ...props }) {
377 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(MenuContextProvider, { type: "popover" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(
378 _elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Menu,
379 {
380 PaperProps: {
381 sx: { mt: 4 }
382 },
383 ...props,
384 MenuListProps: {
385 component: "div"
386 }
387 },
388 children
389 ));
390 }
391
392 // src/components/ui/toolbar-logo.tsx
393
394
395
396
397 var ElementorLogo = (props) => {
398 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" })));
399 };
400 var StyledToggleButton = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.styled)(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.ToggleButton)(() => ({
401 padding: 0,
402 "&.MuiToggleButton-root:hover": {
403 backgroundColor: "initial"
404 },
405 "&.MuiToggleButton-root.Mui-selected": {
406 backgroundColor: "initial"
407 }
408 }));
409 var StyledElementorLogo = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.styled)(ElementorLogo, {
410 shouldForwardProp: (prop) => prop !== "showMenuIcon"
411 })(({ theme, showMenuIcon }) => ({
412 width: "auto",
413 height: "100%",
414 "& path": {
415 fill: "initial",
416 transition: "all 0.2s linear",
417 transformOrigin: "bottom left",
418 "&:first-of-type": {
419 transitionDelay: !showMenuIcon && "0.2s",
420 transform: showMenuIcon && "translateY(-9px) scaleY(0)"
421 },
422 "&:not(:first-of-type)": {
423 // Emotion automatically change 4 to -4 in RTL moode.
424 transform: !showMenuIcon && `translateX(${theme.direction === "rtl" ? "4" : "9"}px) scaleX(0.6)`
425 },
426 "&:nth-of-type(2)": {
427 transitionDelay: showMenuIcon ? "0" : "0.2s"
428 },
429 "&:nth-of-type(3)": {
430 transitionDelay: "0.1s"
431 },
432 "&:nth-of-type(4)": {
433 transitionDelay: showMenuIcon ? "0.2s" : "0"
434 }
435 }
436 }));
437 function ToolbarLogo(props) {
438 const [isHoverState, setIsHoverState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
439 const showMenuIcon = props.selected || isHoverState;
440 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(
441 StyledToggleButton,
442 {
443 ...props,
444 value: "selected",
445 size: "small",
446 onMouseEnter: () => setIsHoverState(true),
447 onMouseLeave: () => setIsHoverState(false)
448 },
449 /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(StyledElementorLogo, { titleAccess: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Elementor Logo", "elementor"), showMenuIcon })
450 );
451 }
452
453 // src/components/locations/main-menu-location.tsx
454 var { useMenuItems } = mainMenu;
455 function MainMenuLocation() {
456 const menuItems = useMenuItems();
457 const orderedGroups = [
458 menuItems.default,
459 menuItems.exits
460 ];
461 const popupState = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.usePopupState)({
462 variant: "popover",
463 popupId: "elementor-v2-app-bar-main-menu"
464 });
465 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Stack, { sx: { paddingInlineStart: 4 }, direction: "row", alignItems: "center" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(
466 ToolbarLogo,
467 {
468 ...(0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.bindTrigger)(popupState),
469 selected: popupState.isOpen
470 }
471 ), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(
472 PopoverMenu,
473 {
474 onClick: popupState.close,
475 ...(0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.bindMenu)(popupState),
476 PaperProps: {
477 sx: { mt: 4, marginInlineStart: -2 }
478 }
479 },
480 orderedGroups.filter((group) => group.length).map((group, index) => {
481 return [
482 index > 0 ? /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Divider, { key: index, orientation: "horizontal" }) : null,
483 ...group.map(
484 ({ MenuItem: MenuItem2, id }) => /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(MenuItem2, { key: id })
485 )
486 ];
487 })
488 ));
489 }
490
491 // src/components/locations/tools-menu-location.tsx
492
493
494 // src/components/ui/toolbar-menu.tsx
495
496
497 function ToolbarMenu({ children, ...props }) {
498 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: 4 }, spacing: 4, direction: "row", alignItems: "center", ...props }, children));
499 }
500
501 // src/components/ui/toolbar-menu-more.tsx
502
503
504
505
506 function ToolbarMenuMore({ children, id }) {
507 const popupState = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.usePopupState)({
508 variant: "popover",
509 popupId: id
510 });
511 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));
512 }
513
514 // src/components/locations/tools-menu-location.tsx
515 var MAX_TOOLBAR_ACTIONS = 5;
516 var { useMenuItems: useMenuItems2 } = toolsMenu;
517 function ToolsMenuLocation() {
518 const menuItems = useMenuItems2();
519 const toolbarMenuItems = menuItems.default.slice(0, MAX_TOOLBAR_ACTIONS);
520 const popoverMenuItems = menuItems.default.slice(MAX_TOOLBAR_ACTIONS);
521 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(ToolbarMenu, null, toolbarMenuItems.map(({ MenuItem: MenuItem2, id }) => /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(MenuItem2, { key: id })), popoverMenuItems.length > 0 && /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(ToolbarMenuMore, { id: "elementor-editor-app-bar-tools-more" }, popoverMenuItems.map(({ MenuItem: MenuItem2, id }) => /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(MenuItem2, { key: id }))));
522 }
523
524 // src/components/locations/utilities-menu-location.tsx
525
526
527
528 var MAX_TOOLBAR_ACTIONS2 = 3;
529 var { useMenuItems: useMenuItems3 } = utilitiesMenu;
530 function UtilitiesMenuLocation() {
531 const menuItems = useMenuItems3();
532 const toolbarMenuItems = menuItems.default.slice(0, MAX_TOOLBAR_ACTIONS2);
533 const popoverMenuItems = menuItems.default.slice(MAX_TOOLBAR_ACTIONS2);
534 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(ToolbarMenu, null, toolbarMenuItems.map(
535 ({ MenuItem: MenuItem2, 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(MenuItem2, null))
536 ), popoverMenuItems.length > 0 && /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(ToolbarMenuMore, { id: "elementor-editor-app-bar-utilities-more" }, popoverMenuItems.map(({ MenuItem: MenuItem2, id }) => /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(MenuItem2, { key: id }))));
537 }
538
539 // src/components/locations/primary-action-location.tsx
540
541 function PrimaryActionLocation() {
542 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(PrimaryActionSlot, null);
543 }
544
545 // src/components/locations/page-indication-location.tsx
546
547 function PageIndicationLocation() {
548 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(PageIndicationSlot, null);
549 }
550
551 // src/components/locations/responsive-location.tsx
552
553 function ResponsiveLocation() {
554 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(ResponsiveSlot, null);
555 }
556
557 // src/components/app-bar.tsx
558 function AppBar() {
559 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: 3 }, /* @__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)))));
560 }
561
562 // src/init.ts
563
564
565 // src/sync/redirect-old-menus.ts
566
567 function redirectOldMenus() {
568 (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.listenTo)((0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.routeOpenEvent)("panel/menu"), () => {
569 (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.openRoute)("panel/elements/categories");
570 });
571 }
572
573 // src/extensions/documents-indicator/components/settings-button.tsx
574
575
576
577
578
579
580 function SettingsButton() {
581 const activeDocument = (0,_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_7__.useActiveDocument)();
582 const hostDocument = (0,_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_7__.useHostDocument)();
583 const document2 = activeDocument && activeDocument.type.value !== "kit" ? activeDocument : hostDocument;
584 const { isActive, isBlocked } = (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.useRouteStatus)("panel/page-settings");
585 if (!document2) {
586 return null;
587 }
588 const title = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("%s Settings", "elementor").replace("%s", document2.type.label);
589 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(
590 _elementor_ui__WEBPACK_IMPORTED_MODULE_2__.ToggleButton,
591 {
592 value: "document-settings",
593 selected: isActive,
594 disabled: isBlocked,
595 onChange: () => (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.openRoute)("panel/page-settings/settings"),
596 "aria-label": title,
597 size: "small"
598 },
599 /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_3__.SettingsIcon, null)
600 )));
601 }
602
603 // src/extensions/documents-indicator/index.ts
604 function init() {
605 injectIntoPageIndication({
606 id: "document-settings-button",
607 filler: SettingsButton,
608 options: {
609 priority: 20
610 // After document indicator.
611 }
612 });
613 }
614
615 // src/extensions/documents-preview/hooks/use-action-props.ts
616
617
618
619
620 function useActionProps() {
621 const document2 = (0,_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_7__.useActiveDocument)();
622 return {
623 icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_3__.EyeIcon,
624 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Preview Changes", "elementor"),
625 onClick: () => document2 && (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.runCommand)("editor/documents/preview", {
626 id: document2.id,
627 force: true
628 })
629 };
630 }
631
632 // src/extensions/documents-preview/index.ts
633 function init2() {
634 utilitiesMenu.registerAction({
635 id: "document-preview-button",
636 priority: 30,
637 // After help.
638 useProps: useActionProps
639 });
640 }
641
642 // src/extensions/documents-save/hooks/use-document-save-draft-props.ts
643
644
645
646 function useDocumentSaveDraftProps() {
647 const document2 = (0,_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_7__.useActiveDocument)();
648 const { saveDraft } = (0,_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_7__.useActiveDocumentActions)();
649 return {
650 icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_3__.FileReportIcon,
651 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Save Draft", "elementor"),
652 onClick: saveDraft,
653 disabled: !document2 || document2.isSaving || document2.isSavingDraft || !document2.isDirty
654 };
655 }
656
657 // src/extensions/documents-save/hooks/use-document-save-template-props.ts
658
659
660
661 function useDocumentSaveTemplateProps() {
662 const { saveTemplate } = (0,_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_7__.useActiveDocumentActions)();
663 return {
664 icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_3__.FolderIcon,
665 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Save as Template", "elementor"),
666 onClick: saveTemplate
667 };
668 }
669
670 // src/extensions/documents-save/components/primary-action.tsx
671
672
673
674 // src/extensions/documents-save/components/primary-action-menu.tsx
675
676
677 var { useMenuItems: useMenuItems4 } = documentOptionsMenu;
678 var StyledPopoverMenu = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.styled)(PopoverMenu)`
679 & > .MuiPopover-paper > .MuiList-root > .MuiDivider-root {
680 &:only-child, /* A divider is being rendered lonely */
681 &:last-child, /* The last group renders empty but renders a divider */
682 & + .MuiDivider-root /* Multiple dividers due to multiple empty groups */ {
683 display: none;
684 }
685 }
686 `;
687 function PrimaryActionMenu(props) {
688 const { save: saveActions, default: defaultActions } = useMenuItems4();
689 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(
690 StyledPopoverMenu,
691 {
692 ...props,
693 anchorOrigin: {
694 vertical: "bottom",
695 horizontal: "right"
696 },
697 transformOrigin: {
698 vertical: "top",
699 horizontal: "right"
700 },
701 PaperProps: {
702 sx: { mt: 2, ml: 3 }
703 }
704 },
705 saveActions.map(({ MenuItem: MenuItem2, id }, index) => [
706 index > 0 && /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Divider, { key: `${id}-divider` }),
707 /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(MenuItem2, { key: id })
708 ]),
709 defaultActions.length > 0 && /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Divider, null),
710 defaultActions.map(({ MenuItem: MenuItem2, id }) => /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(MenuItem2, { key: id }))
711 );
712 }
713
714 // src/extensions/documents-save/components/primary-action.tsx
715
716
717
718 function PrimaryAction() {
719 const document2 = (0,_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_7__.useActiveDocument)();
720 const { save } = (0,_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_7__.useActiveDocumentActions)();
721 const popupState = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.usePopupState)({
722 variant: "popover",
723 popupId: "document-save-options"
724 });
725 if (!document2) {
726 return null;
727 }
728 const isDisabled = !isEnabled(document2);
729 const shouldShowSpinner = document2.isSaving && !isDisabled;
730 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(
731 _elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Button,
732 {
733 onClick: () => !document2.isSaving && save(),
734 sx: { width: "120px" },
735 disabled: isDisabled
736 },
737 shouldShowSpinner ? /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.CircularProgress, null) : getLabel(document2)
738 ), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(
739 _elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Tooltip,
740 {
741 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Save Options", "elementor"),
742 PopperProps: {
743 sx: {
744 "&.MuiTooltip-popper .MuiTooltip-tooltip.MuiTooltip-tooltipPlacementBottom": {
745 mt: 3,
746 mr: 1
747 }
748 }
749 }
750 },
751 /* @__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(
752 _elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Button,
753 {
754 ...(0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.bindTrigger)(popupState),
755 sx: { px: 0 },
756 disabled: document2.type.value === "kit",
757 "aria-label": (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Save Options", "elementor")
758 },
759 /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_3__.ChevronDownIcon, null)
760 ))
761 )), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(PrimaryActionMenu, { ...(0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.bindMenu)(popupState), onClick: popupState.close }));
762 }
763 function getLabel(document2) {
764 return document2.userCan.publish ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Publish", "elementor") : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Submit", "elementor");
765 }
766 function isEnabled(document2) {
767 if (document2.type.value === "kit") {
768 return false;
769 }
770 return document2.isDirty || document2.status.value === "draft";
771 }
772
773 // src/extensions/documents-save/index.ts
774 function init3() {
775 injectIntoPrimaryAction({
776 id: "document-primary-action",
777 filler: PrimaryAction
778 });
779 documentOptionsMenu.registerAction({
780 group: "save",
781 id: "document-save-draft",
782 priority: 10,
783 // Before save as template.
784 useProps: useDocumentSaveDraftProps
785 });
786 documentOptionsMenu.registerAction({
787 group: "save",
788 id: "document-save-as-template",
789 priority: 20,
790 // After save draft.
791 useProps: useDocumentSaveTemplateProps
792 });
793 }
794
795 // src/extensions/elements/sync/sync-panel-title.ts
796
797
798 function syncPanelTitle() {
799 const panelTitle = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Elements", "elementor");
800 const tabTitle = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Widgets", "elementor");
801 (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.listenTo)(
802 (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.routeOpenEvent)("panel/elements"),
803 () => {
804 setPanelTitle(panelTitle);
805 setTabTitle(tabTitle);
806 }
807 );
808 (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.listenTo)(
809 (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.v1ReadyEvent)(),
810 () => {
811 if ((0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.isRouteActive)("panel/elements")) {
812 setPanelTitle(panelTitle);
813 setTabTitle(tabTitle);
814 }
815 }
816 );
817 }
818 function setPanelTitle(title) {
819 window.elementor?.getPanelView?.()?.getHeaderView?.()?.setTitle?.(title);
820 }
821 function setTabTitle(title) {
822 const tab = document.querySelector('.elementor-component-tab[data-tab="categories"]');
823 if (tab) {
824 tab.textContent = title;
825 }
826 }
827
828 // src/extensions/elements/hooks/use-action-props.ts
829
830
831
832 function useActionProps2() {
833 const { isActive, isBlocked } = (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.useRouteStatus)("panel/elements");
834 return {
835 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Add Element", "elementor"),
836 icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_3__.PlusIcon,
837 onClick: () => (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.openRoute)("panel/elements/categories"),
838 selected: isActive,
839 disabled: isBlocked
840 };
841 }
842
843 // src/extensions/elements/index.ts
844 function init4() {
845 syncPanelTitle();
846 toolsMenu.registerToggleAction({
847 id: "open-elements-panel",
848 priority: 1,
849 useProps: useActionProps2
850 });
851 }
852
853 // src/extensions/finder/hooks/use-action-props.ts
854
855
856
857 function useActionProps3() {
858 const { isActive, isBlocked } = (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.useRouteStatus)("finder", {
859 blockOnKitRoutes: false,
860 blockOnPreviewMode: false
861 });
862 return {
863 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Finder", "elementor"),
864 icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_3__.SearchIcon,
865 onClick: () => (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.runCommand)("finder/toggle"),
866 selected: isActive,
867 disabled: isBlocked
868 };
869 }
870
871 // src/extensions/finder/index.ts
872 function init5() {
873 utilitiesMenu.registerToggleAction({
874 id: "toggle-finder",
875 priority: 10,
876 // Before help.
877 useProps: useActionProps3
878 });
879 }
880
881 // src/extensions/help/index.ts
882
883
884 function init6() {
885 utilitiesMenu.registerLink({
886 id: "open-help-center",
887 priority: 20,
888 // After Finder.
889 useProps: () => {
890 return {
891 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Help", "elementor"),
892 href: "https://go.elementor.com/editor-top-bar-learn/",
893 icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_3__.HelpIcon,
894 target: "_blank"
895 };
896 }
897 });
898 }
899
900 // src/extensions/history/hooks/use-action-props.ts
901
902
903
904 function useActionProps4() {
905 const { isActive, isBlocked } = (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.useRouteStatus)("panel/history");
906 return {
907 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("History", "elementor"),
908 icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_3__.HistoryIcon,
909 onClick: () => (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.openRoute)("panel/history/actions"),
910 selected: isActive,
911 disabled: isBlocked
912 };
913 }
914
915 // src/extensions/history/index.ts
916 function init7() {
917 mainMenu.registerToggleAction({
918 id: "open-history",
919 priority: 20,
920 useProps: useActionProps4
921 });
922 }
923
924 // src/extensions/keyboard-shortcuts/hooks/use-action-props.ts
925
926
927
928 function useActionProps5() {
929 return {
930 icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_3__.KeyboardIcon,
931 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Keyboard Shortcuts", "elementor"),
932 onClick: () => (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.runCommand)("shortcuts/open")
933 };
934 }
935
936 // src/extensions/keyboard-shortcuts/index.ts
937 function init8() {
938 mainMenu.registerAction({
939 id: "open-keyboard-shortcuts",
940 group: "default",
941 priority: 40,
942 // After user preferences.
943 useProps: useActionProps5
944 });
945 }
946
947 // src/extensions/site-settings/index.ts
948
949
950 // src/extensions/site-settings/components/portalled-primary-action.tsx
951
952
953 // src/extensions/site-settings/components/portal.tsx
954
955
956
957 function Portal(props) {
958 const containerRef = (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.useListenTo)(
959 [
960 (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.routeOpenEvent)("panel/global"),
961 (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.routeCloseEvent)("panel/global")
962 ],
963 getContainerRef
964 );
965 if (!containerRef.current) {
966 return null;
967 }
968 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Portal, { container: containerRef.current, ...props });
969 }
970 function getContainerRef() {
971 return (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.isRouteActive)("panel/global") ? { current: document.querySelector("#elementor-panel-inner") } : { current: null };
972 }
973
974 // src/extensions/site-settings/components/primary-action.tsx
975
976
977
978
979 function PrimaryAction2() {
980 const document2 = (0,_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_7__.useActiveDocument)();
981 const { save } = (0,_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_7__.useActiveDocumentActions)();
982 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Paper, { sx: {
983 px: 5,
984 py: 4,
985 borderTop: 1,
986 borderColor: "divider"
987 } }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(
988 _elementor_ui__WEBPACK_IMPORTED_MODULE_2__.Button,
989 {
990 variant: "contained",
991 disabled: !document2 || !document2.isDirty,
992 size: "medium",
993 sx: { width: "100%" },
994 onClick: () => document2 && !document2.isSaving ? save() : null
995 },
996 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")
997 ));
998 }
999
1000 // src/extensions/site-settings/components/portalled-primary-action.tsx
1001 function PortalledPrimaryAction() {
1002 return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(Portal, null, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(PrimaryAction2, null));
1003 }
1004
1005 // src/extensions/site-settings/hooks/use-action-props.ts
1006
1007
1008
1009 function useActionProps6() {
1010 const { isActive, isBlocked } = (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.useRouteStatus)("panel/global", {
1011 blockOnKitRoutes: false
1012 });
1013 return {
1014 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Site Settings", "elementor"),
1015 icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_3__.AdjustmentsHorizontalIcon,
1016 onClick: () => isActive ? (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.runCommand)("panel/global/close") : (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.runCommand)("panel/global/open"),
1017 selected: isActive,
1018 disabled: isBlocked
1019 };
1020 }
1021
1022 // src/extensions/site-settings/index.ts
1023 function init9() {
1024 (0,_elementor_editor__WEBPACK_IMPORTED_MODULE_5__.injectIntoTop)({
1025 id: "site-settings-primary-action-portal",
1026 filler: PortalledPrimaryAction
1027 });
1028 toolsMenu.registerToggleAction({
1029 id: "toggle-site-settings",
1030 priority: 2,
1031 useProps: useActionProps6
1032 });
1033 }
1034
1035 // src/extensions/structure/hooks/use-action-props.ts
1036
1037
1038
1039 function useActionProps7() {
1040 const { isActive, isBlocked } = (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.useRouteStatus)("navigator");
1041 return {
1042 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Structure", "elementor"),
1043 icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_3__.StructureIcon,
1044 onClick: () => (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.runCommand)("navigator/toggle"),
1045 selected: isActive,
1046 disabled: isBlocked
1047 };
1048 }
1049
1050 // src/extensions/structure/index.ts
1051 function init10() {
1052 toolsMenu.registerToggleAction({
1053 id: "toggle-structure-view",
1054 priority: 3,
1055 useProps: useActionProps7
1056 });
1057 }
1058
1059 // src/extensions/theme-builder/hooks/use-action-props.ts
1060
1061
1062
1063 function useActionProps8() {
1064 return {
1065 icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_3__.ThemeBuilderIcon,
1066 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Theme Builder", "elementor"),
1067 onClick: () => (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.runCommand)("app/open")
1068 };
1069 }
1070
1071 // src/extensions/theme-builder/index.ts
1072 function init11() {
1073 mainMenu.registerAction({
1074 id: "open-theme-builder",
1075 useProps: useActionProps8
1076 });
1077 }
1078
1079 // src/extensions/user-preferences/hooks/use-action-props.ts
1080
1081
1082
1083 function useActionProps9() {
1084 const { isActive, isBlocked } = (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.useRouteStatus)("panel/editor-preferences");
1085 return {
1086 icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_3__.ToggleRightIcon,
1087 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("User Preferences", "elementor"),
1088 onClick: () => (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_6__.openRoute)("panel/editor-preferences"),
1089 selected: isActive,
1090 disabled: isBlocked
1091 };
1092 }
1093
1094 // src/extensions/user-preferences/index.ts
1095 function init12() {
1096 mainMenu.registerToggleAction({
1097 id: "open-user-preferences",
1098 priority: 30,
1099 // After history.
1100 useProps: useActionProps9
1101 });
1102 }
1103
1104 // src/extensions/wordpress/index.ts
1105
1106
1107
1108 function init13() {
1109 mainMenu.registerLink({
1110 id: "exit-to-wordpress",
1111 group: "exits",
1112 useProps: () => {
1113 const document2 = (0,_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_7__.useActiveDocument)();
1114 return {
1115 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Exit to WordPress", "elementor"),
1116 href: document2?.links?.platformEdit,
1117 icon: _elementor_icons__WEBPACK_IMPORTED_MODULE_3__.WordpressIcon
1118 };
1119 }
1120 });
1121 }
1122
1123 // src/extensions/index.ts
1124 function init14() {
1125 init();
1126 init2();
1127 init3();
1128 init4();
1129 init5();
1130 init6();
1131 init7();
1132 init8();
1133 init9();
1134 init10();
1135 init11();
1136 init12();
1137 init13();
1138 }
1139
1140 // src/init.ts
1141 function init15() {
1142 redirectOldMenus();
1143 init14();
1144 (0,_elementor_editor__WEBPACK_IMPORTED_MODULE_5__.injectIntoTop)({
1145 id: "app-bar",
1146 filler: AppBar
1147 });
1148 }
1149
1150 // src/index.ts
1151 init15();
1152
1153 //# sourceMappingURL=index.mjs.map
1154 }();
1155 (window.__UNSTABLE__elementorPackages = window.__UNSTABLE__elementorPackages || {}).editorAppBar = __webpack_exports__;
1156 /******/ })()
1157 ;